@sunbird-cb/tree-hierarchy 0.0.1-cbrelease-4.8.26 → 0.0.1-cbrelease-4.8.32
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/action-bar/action-bar.component.mjs +3 -2
- package/esm2022/lib/components/approval/approval.component.mjs +3 -2
- package/esm2022/lib/components/approve-view/approve-view.component.mjs +4 -3
- package/esm2022/lib/components/categories-preview/categories-preview.component.mjs +3 -2
- package/esm2022/lib/components/category-edit/category-edit-module/category-edit-module.component.mjs +56 -0
- package/esm2022/lib/components/conforamtion-popup/conforamtion-popup.component.mjs +3 -2
- package/esm2022/lib/components/connector/connector.component.mjs +3 -2
- package/esm2022/lib/components/create-categories/create-categories.component.mjs +3 -2
- package/esm2022/lib/components/create-term/create-term.component.mjs +3 -2
- package/esm2022/lib/components/create-term-from-framework/create-term-from-framework.component.mjs +6 -4
- package/esm2022/lib/components/org-hierarchy-add-modal/org-hierarchy-add-modal.component.mjs +122 -47
- package/esm2022/lib/components/pending-approval/pending-approval.component.mjs +3 -2
- package/esm2022/lib/components/term-card/term-card.component.mjs +39 -7
- package/esm2022/lib/components/tree-column-view/tree-column-view.component.mjs +41 -6
- package/esm2022/lib/components/tree-view/tree-view.component.mjs +396 -31
- package/esm2022/lib/containers/config-framework/config-framework.component.mjs +3 -2
- package/esm2022/lib/containers/dashboard/dashboard.component.mjs +3 -2
- package/esm2022/lib/models/framework.model.mjs +1 -1
- package/esm2022/lib/pipes/order-by.pipe.mjs +3 -2
- package/esm2022/lib/services/approval.service.mjs +3 -2
- package/esm2022/lib/services/connector.service.mjs +53 -6
- package/esm2022/lib/services/framework.service.mjs +159 -14
- package/esm2022/lib/services/local-connection.service.mjs +3 -2
- package/esm2022/lib/services/odcs.service.mjs +3 -2
- package/esm2022/lib/tree-hierarchy-routing.module.mjs +3 -2
- package/esm2022/lib/tree-hierarchy.component.mjs +3 -2
- package/esm2022/lib/tree-hierarchy.module.mjs +13 -5
- package/esm2022/lib/tree-hierarchy.service.mjs +24 -3
- package/esm2022/material.module.mjs +4 -3
- package/fesm2022/sunbird-cb-tree-hierarchy.mjs +888 -131
- package/fesm2022/sunbird-cb-tree-hierarchy.mjs.map +1 -1
- package/lib/components/category-edit/category-edit-module/category-edit-module.component.d.ts +18 -0
- package/lib/components/category-edit/category-edit-module/category-edit-module.component.d.ts.map +1 -0
- package/lib/components/org-hierarchy-add-modal/org-hierarchy-add-modal.component.d.ts +18 -3
- package/lib/components/org-hierarchy-add-modal/org-hierarchy-add-modal.component.d.ts.map +1 -1
- package/lib/components/term-card/term-card.component.d.ts +13 -2
- package/lib/components/term-card/term-card.component.d.ts.map +1 -1
- package/lib/components/tree-column-view/tree-column-view.component.d.ts +6 -1
- package/lib/components/tree-column-view/tree-column-view.component.d.ts.map +1 -1
- package/lib/components/tree-view/tree-view.component.d.ts +16 -4
- package/lib/components/tree-view/tree-view.component.d.ts.map +1 -1
- package/lib/models/framework.model.d.ts +1 -0
- package/lib/models/framework.model.d.ts.map +1 -1
- package/lib/services/connector.service.d.ts +1 -0
- package/lib/services/connector.service.d.ts.map +1 -1
- package/lib/services/framework.service.d.ts +10 -3
- package/lib/services/framework.service.d.ts.map +1 -1
- package/lib/tree-hierarchy.module.d.ts +6 -4
- package/lib/tree-hierarchy.module.d.ts.map +1 -1
- package/lib/tree-hierarchy.service.d.ts +5 -0
- package/lib/tree-hierarchy.service.d.ts.map +1 -1
- package/material.module.d.ts +2 -2
- package/package.json +2 -2
|
@@ -1,13 +1,23 @@
|
|
|
1
1
|
import { Injectable } from '@angular/core';
|
|
2
2
|
import { BehaviorSubject, of } from 'rxjs';
|
|
3
|
-
import { catchError, map, tap } from 'rxjs/operators';
|
|
3
|
+
import { catchError, map, switchMap, tap } from 'rxjs/operators';
|
|
4
4
|
import { FRAMEWORK } from '../constants/data';
|
|
5
5
|
import { v4 as uuidv4 } from 'uuid';
|
|
6
6
|
import _ from 'lodash';
|
|
7
7
|
import * as i0 from "@angular/core";
|
|
8
8
|
import * as i1 from "@angular/common/http";
|
|
9
9
|
import * as i2 from "./local-connection.service";
|
|
10
|
-
|
|
10
|
+
const API_ENDPOINT = {
|
|
11
|
+
ORG_V1_SEARCH: '/apis/proxies/v8/org/v1/search',
|
|
12
|
+
CREATE_TERMS: `/apis/proxies/v8/action/framework/v3/term/create`,
|
|
13
|
+
UPDATE_TERMS: `/apis/proxies/v8/framework/v1/term/update/`,
|
|
14
|
+
UPDATE_ASSOCIATION: `/apis/proxies/v8/framework/v1/term/update/`,
|
|
15
|
+
PUBLISH_FRAMEWORK: `/apis/proxies/v8/framework/v1/publish/`,
|
|
16
|
+
RETIRE_TREM: `/apis/proxies/v8/framework/v1/term/retire`,
|
|
17
|
+
UPDATE_CATEGORY: `/apis/proxies/v8/framework/v1/category/update/`,
|
|
18
|
+
USERS_SEARCH: `apis/proxies/v8/user/v1/search`
|
|
19
|
+
};
|
|
20
|
+
class FrameworkService {
|
|
11
21
|
constructor(http, localConfig) {
|
|
12
22
|
this.http = http;
|
|
13
23
|
this.localConfig = localConfig;
|
|
@@ -22,19 +32,28 @@ export class FrameworkService {
|
|
|
22
32
|
this.proxiesPath = 'apis/proxies/v8';
|
|
23
33
|
this.CurrentCardClk = new BehaviorSubject(null);
|
|
24
34
|
}
|
|
25
|
-
getFrameworkInfo(_orgData) {
|
|
35
|
+
getFrameworkInfo(_orgData, _childOrgData) {
|
|
26
36
|
localStorage.removeItem('terms');
|
|
27
37
|
if (this.localConfig.connectionType === 'online') {
|
|
28
38
|
let url = `/${this.proxiesPath}/framework/v1/read/`;
|
|
29
39
|
if (_orgData) {
|
|
30
|
-
url = url + _orgData.
|
|
40
|
+
url = url + _orgData.orgHierarchyFrameworkId;
|
|
31
41
|
}
|
|
32
42
|
else {
|
|
33
43
|
url = url + this.environment.frameworkName;
|
|
34
44
|
}
|
|
35
|
-
return this.http.get(`${url}`, { withCredentials: true }).pipe(
|
|
45
|
+
return this.http.get(`${url}`, { withCredentials: true }).pipe(switchMap((frameworkResponse) => {
|
|
46
|
+
const originalFrameworkResponse = frameworkResponse;
|
|
47
|
+
return this.getSelectedStateOrg(_orgData).pipe(switchMap((orgListData) => {
|
|
48
|
+
this.additionalData = orgListData?.result?.response?.content || [];
|
|
49
|
+
return this.getUserPerOrg().pipe(map(() => {
|
|
50
|
+
return originalFrameworkResponse;
|
|
51
|
+
}));
|
|
52
|
+
}));
|
|
53
|
+
}), tap(async (response) => {
|
|
36
54
|
this.resetAll();
|
|
37
|
-
this.formateData(response);
|
|
55
|
+
this.formateData(response, _orgData, _childOrgData);
|
|
56
|
+
this.completeResponse = response.result.framework;
|
|
38
57
|
}), catchError((err) => {
|
|
39
58
|
this.resetAll();
|
|
40
59
|
this.list.clear();
|
|
@@ -163,13 +182,21 @@ export class FrameworkService {
|
|
|
163
182
|
}) || [];
|
|
164
183
|
return filteredData;
|
|
165
184
|
}
|
|
166
|
-
formateData(response) {
|
|
185
|
+
formateData(response, _orgData, _childOrgData) {
|
|
167
186
|
this.frameworkId = response.result.framework.code;
|
|
168
|
-
|
|
187
|
+
let categories = response.result.framework.categories;
|
|
188
|
+
if (_childOrgData?.id !== _orgData?.id) {
|
|
189
|
+
categories = this.getOrgFromChildOnwards(categories || [], _childOrgData || '');
|
|
190
|
+
}
|
|
191
|
+
if (categories?.length > 0) {
|
|
192
|
+
categories = _.sortBy(categories, 'index');
|
|
193
|
+
}
|
|
194
|
+
response.result.framework.categories = categories;
|
|
195
|
+
(categories).forEach((a, _idx) => {
|
|
169
196
|
this.list.set(a.code, {
|
|
170
|
-
code: a.code,
|
|
197
|
+
code: a.code || '',
|
|
171
198
|
identifier: a.identifier,
|
|
172
|
-
index:
|
|
199
|
+
index: (_idx + 1),
|
|
173
200
|
name: a.name,
|
|
174
201
|
selected: a.selected,
|
|
175
202
|
status: a.status,
|
|
@@ -177,9 +204,11 @@ export class FrameworkService {
|
|
|
177
204
|
translations: a.translations,
|
|
178
205
|
category: a.category,
|
|
179
206
|
associations: a.associations,
|
|
180
|
-
config: this.getConfig(a.code),
|
|
207
|
+
config: this.getConfig(a.code, _childOrgData),
|
|
181
208
|
children: (a.terms || []).map((c) => {
|
|
182
209
|
const associations = c.associations || [];
|
|
210
|
+
const tempCount = this.getUserCount(c);
|
|
211
|
+
Object.assign(c, { userCount: tempCount });
|
|
183
212
|
if (associations.length > 0) {
|
|
184
213
|
Object.assign(c, { children: associations });
|
|
185
214
|
}
|
|
@@ -201,6 +230,25 @@ export class FrameworkService {
|
|
|
201
230
|
});
|
|
202
231
|
this.categoriesHash.next(allCategories);
|
|
203
232
|
}
|
|
233
|
+
getOrgFromChildOnwards(_categories, _childOrgData) {
|
|
234
|
+
const colIndexToBeRemoved = [];
|
|
235
|
+
let termFoundIndex = -1;
|
|
236
|
+
if (_categories?.length > 0) {
|
|
237
|
+
_categories.forEach((ele) => {
|
|
238
|
+
if (ele?.terms?.length > 0) {
|
|
239
|
+
const termFound = ele.terms.find((term) => term.name === _childOrgData.channel);
|
|
240
|
+
if (!termFound && termFoundIndex === -1) {
|
|
241
|
+
colIndexToBeRemoved.push(ele.index);
|
|
242
|
+
}
|
|
243
|
+
else if (termFoundIndex === -1) {
|
|
244
|
+
termFoundIndex = ele.index;
|
|
245
|
+
ele.terms = ele.terms.filter((term) => term.name === _childOrgData.channel);
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
});
|
|
249
|
+
}
|
|
250
|
+
return _categories.filter((category) => !colIndexToBeRemoved.includes(category.index));
|
|
251
|
+
}
|
|
204
252
|
removeOldLine() {
|
|
205
253
|
const eles = Array.from(document.getElementsByClassName('leader-line') || []);
|
|
206
254
|
if (eles.length > 0) {
|
|
@@ -210,7 +258,7 @@ export class FrameworkService {
|
|
|
210
258
|
setConfig(config) {
|
|
211
259
|
this.rootConfig = config;
|
|
212
260
|
}
|
|
213
|
-
getConfig(code) {
|
|
261
|
+
getConfig(code, _childOrgData) {
|
|
214
262
|
let categoryConfig;
|
|
215
263
|
if (this.rootConfig && this.rootConfig[0]) {
|
|
216
264
|
this.rootConfig.forEach((config) => {
|
|
@@ -220,7 +268,8 @@ export class FrameworkService {
|
|
|
220
268
|
});
|
|
221
269
|
}
|
|
222
270
|
if (!categoryConfig) {
|
|
223
|
-
|
|
271
|
+
const config = this.rootConfig.config[0];
|
|
272
|
+
return config;
|
|
224
273
|
}
|
|
225
274
|
return categoryConfig;
|
|
226
275
|
}
|
|
@@ -375,13 +424,109 @@ export class FrameworkService {
|
|
|
375
424
|
});
|
|
376
425
|
}
|
|
377
426
|
}
|
|
427
|
+
getSelectedStateOrg(_orgData) {
|
|
428
|
+
debugger;
|
|
429
|
+
const requestBody = {
|
|
430
|
+
request: {
|
|
431
|
+
filters: {
|
|
432
|
+
status: 1,
|
|
433
|
+
ministryOrStateType: (_orgData) ?
|
|
434
|
+
_orgData.sbOrgType : '',
|
|
435
|
+
ministryOrStateId: (_orgData?.identifier) ?
|
|
436
|
+
_orgData?.identifier : (_orgData?.rootOrgId) ? _orgData.rootOrgId : ''
|
|
437
|
+
},
|
|
438
|
+
sort_by: {
|
|
439
|
+
createdDate: "desc"
|
|
440
|
+
},
|
|
441
|
+
limit: 9999,
|
|
442
|
+
offset: 0,
|
|
443
|
+
fields: [
|
|
444
|
+
'identifier',
|
|
445
|
+
'orgName',
|
|
446
|
+
'description',
|
|
447
|
+
'parentOrgName',
|
|
448
|
+
'ministryOrStateId',
|
|
449
|
+
'ministryOrStateType',
|
|
450
|
+
'ministryOrStateName',
|
|
451
|
+
'sbOrgSubType',
|
|
452
|
+
'rootOrgId'
|
|
453
|
+
]
|
|
454
|
+
}
|
|
455
|
+
};
|
|
456
|
+
return this.http.post(`${API_ENDPOINT.ORG_V1_SEARCH}`, requestBody).pipe(catchError(error => {
|
|
457
|
+
console.error('Error fetching Org data:', error);
|
|
458
|
+
return of({});
|
|
459
|
+
}));
|
|
460
|
+
}
|
|
461
|
+
getUserPerOrg(_orgData) {
|
|
462
|
+
const orgIds = this.additionalData.map((org) => org.identifier);
|
|
463
|
+
const requestBody = {
|
|
464
|
+
request: {
|
|
465
|
+
filters: {
|
|
466
|
+
rootOrgId: orgIds
|
|
467
|
+
},
|
|
468
|
+
fields: [
|
|
469
|
+
'identifier',
|
|
470
|
+
'rootOrgId'
|
|
471
|
+
],
|
|
472
|
+
limit: 1,
|
|
473
|
+
facets: [
|
|
474
|
+
"rootOrgId"
|
|
475
|
+
],
|
|
476
|
+
sort_by: {
|
|
477
|
+
"createdDate": "desc"
|
|
478
|
+
}
|
|
479
|
+
}
|
|
480
|
+
};
|
|
481
|
+
const orgIdCounts = [];
|
|
482
|
+
if (this.additionalData && this.additionalData.length > 0) {
|
|
483
|
+
this.additionalData.forEach((org) => {
|
|
484
|
+
if (org.identifier) {
|
|
485
|
+
orgIdCounts.push({
|
|
486
|
+
id: org.identifier,
|
|
487
|
+
count: 0
|
|
488
|
+
});
|
|
489
|
+
}
|
|
490
|
+
});
|
|
491
|
+
}
|
|
492
|
+
return this.http.post(`${API_ENDPOINT.USERS_SEARCH}`, requestBody).pipe(map((res) => {
|
|
493
|
+
if (res && res.result && res.result.response && res.result.response.count) {
|
|
494
|
+
const facetsValue = res.result.response.facets || [];
|
|
495
|
+
if (facetsValue && facetsValue.length > 0) {
|
|
496
|
+
const orgFacet = facetsValue.find((facet) => facet.name === 'rootOrgId');
|
|
497
|
+
if (orgFacet && orgFacet.values) {
|
|
498
|
+
orgFacet.values.forEach((value) => {
|
|
499
|
+
const orgIndex = orgIdCounts.findIndex(org => org.id === value.name);
|
|
500
|
+
if (orgIndex !== -1) {
|
|
501
|
+
orgIdCounts[orgIndex].count = value.count || 0;
|
|
502
|
+
}
|
|
503
|
+
});
|
|
504
|
+
}
|
|
505
|
+
}
|
|
506
|
+
}
|
|
507
|
+
this.userCountData = orgIdCounts;
|
|
508
|
+
}), catchError(error => {
|
|
509
|
+
console.error('Error fetching user count data:', error);
|
|
510
|
+
return of({});
|
|
511
|
+
}));
|
|
512
|
+
}
|
|
513
|
+
getUserCount(term) {
|
|
514
|
+
if (term && term.additionalProperties && term.additionalProperties.orgId) {
|
|
515
|
+
if (this.userCountData && this.userCountData.length > 0) {
|
|
516
|
+
const userCount = this.userCountData.filter((user) => user.id === term.additionalProperties.orgId)[0]?.count;
|
|
517
|
+
return userCount || 0;
|
|
518
|
+
}
|
|
519
|
+
}
|
|
520
|
+
return 0;
|
|
521
|
+
}
|
|
378
522
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FrameworkService, deps: [{ token: i1.HttpClient }, { token: i2.LocalConnectionService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
379
523
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FrameworkService, providedIn: 'root' }); }
|
|
380
524
|
}
|
|
525
|
+
export { FrameworkService };
|
|
381
526
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FrameworkService, decorators: [{
|
|
382
527
|
type: Injectable,
|
|
383
528
|
args: [{
|
|
384
529
|
providedIn: 'root'
|
|
385
530
|
}]
|
|
386
531
|
}], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.LocalConnectionService }]; } });
|
|
387
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJhbWV3b3JrLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJ5L3N1bmJpcmQtY2IvdHJlZS1oaWVyYXJjaHkvc3JjL2xpYi9zZXJ2aWNlcy9mcmFtZXdvcmsuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxlQUFlLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3ZELE9BQU8sRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUc5QyxPQUFPLEVBQUUsRUFBRSxJQUFJLE1BQU0sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUlwQyxPQUFPLENBQUMsTUFBTSxRQUFRLENBQUM7Ozs7QUFZdkIsTUFBTSxPQUFPLGdCQUFnQjtJQWtCM0IsWUFDVSxJQUFnQixFQUNqQixXQUFtQztRQURsQyxTQUFJLEdBQUosSUFBSSxDQUFZO1FBQ2pCLGdCQUFXLEdBQVgsV0FBVyxDQUF3QjtRQW5CNUMsbUJBQWMsR0FBa0QsSUFBSSxlQUFlLENBQStCLEVBQUUsQ0FBQyxDQUFDO1FBQ3RILGtCQUFhLEdBQTZCLElBQUksZUFBZSxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBQzlFLHFCQUFnQixHQUNkLElBQUksZUFBZSxDQUF1RSxJQUFJLENBQUMsQ0FBQztRQUNsRyxnQkFBVyxHQUF5QixJQUFJLGVBQWUsQ0FBTSxJQUFJLENBQUMsQ0FBQztRQUNuRSwwQkFBcUIsR0FBeUIsSUFBSSxlQUFlLENBQU0sSUFBSSxDQUFDLENBQUM7UUFDN0UsU0FBSSxHQUFHLElBQUksR0FBRyxFQUFtQyxDQUFDO1FBQ2xELGtCQUFhLEdBQUcsSUFBSSxHQUFHLEVBQWUsQ0FBQztRQUN2QywrQkFBMEIsR0FBeUMsSUFBSSxlQUFlLENBQXNCLElBQUksQ0FBQyxDQUFDO1FBS2xILGdCQUFXLEdBQUcsaUJBQWlCLENBQUM7UUFFaEMsbUJBQWMsR0FBRyxJQUFJLGVBQWUsQ0FBTSxJQUFJLENBQUMsQ0FBQztJQUs3QyxDQUFDO0lBRUosZ0JBQWdCLENBQUMsUUFBYTtRQUM1QixZQUFZLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2pDLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxjQUFjLEtBQUssUUFBUSxFQUFFO1lBR2hELElBQUksR0FBRyxHQUFHLElBQUksSUFBSSxDQUFDLFdBQVcscUJBQXFCLENBQUE7WUFDbkQsSUFBSSxRQUFRLEVBQUU7Z0JBQ1osR0FBRyxHQUFJLEdBQUcsR0FBRyxRQUFRLENBQUMsVUFBVSxHQUFHLGdCQUFnQixDQUFDO2FBQ3JEO2lCQUFNO2dCQUNMLEdBQUcsR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUM7YUFDNUM7WUFDRCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsR0FBRyxFQUFFLEVBQUUsRUFBRSxlQUFlLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQzVELEdBQUcsQ0FBQyxDQUFDLFFBQWEsRUFBRSxFQUFFO2dCQUNwQixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBQ2hCLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDN0IsQ0FBQyxDQUFDLEVBQ0YsVUFBVSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7Z0JBQ2pCLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDaEIsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDbEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQzdCLE1BQU0sNEJBQTRCLEdBQUcsR0FBRyxDQUFDO1lBQzNDLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDUDthQUFNO1lBQ0wsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2hCLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDNUIsT0FBTyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUM7U0FDdEI7SUFDSCxDQUFDO0lBRUQsU0FBUyxDQUFDLFdBQW1CLEVBQUUsVUFBa0IsRUFBRSxXQUFnQjtRQUNqRSxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLFdBQVcsdUNBQXVDLFdBQVcsYUFBYSxVQUFVLEVBQUUsRUFBRSxXQUFXLENBQUMsQ0FBQyxJQUFJLENBQ3RJLEdBQUcsQ0FBQyxDQUFDLEdBQVEsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVELFVBQVUsQ0FBQyxXQUFtQixFQUFFLFVBQWtCLEVBQUUsV0FBZ0I7UUFDbEUsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxXQUFXLHVDQUF1QyxXQUFXLGFBQWEsVUFBVSxFQUFFLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDdEksQ0FBQztJQUVELGtCQUFrQixDQUFDLFFBQWdCLEVBQUUsV0FBZ0I7UUFDbkQsSUFBSSxZQUFvQixDQUFDO1FBQ3pCLElBQUksUUFBUSxLQUFLLE9BQU8sRUFBRTtZQUN4QixZQUFZLEdBQUcsaUJBQWlCLENBQUM7U0FDbEM7YUFBTTtZQUNMLFlBQVksR0FBRyxvQkFBb0IsQ0FBQztTQUNyQztRQUVELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsV0FBVyxJQUFJLFlBQVksY0FBYyxFQUFFLFdBQVcsQ0FBQzthQUNuRixJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFRCxVQUFVLENBQUMsV0FBbUIsRUFBRSxVQUFrQixFQUFFLGdCQUF3QjtRQUMxRSxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksSUFBSSxDQUFDLFdBQVcsNkJBQTZCLGdCQUFnQixjQUFjLFdBQVcsYUFBYSxVQUFVLEVBQUUsQ0FBQyxDQUFDO0lBQy9JLENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxXQUFtQixFQUFFLFVBQWtCLEVBQUUsV0FBZ0I7UUFDMUUsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxXQUFXLHVDQUF1QyxXQUFXLGFBQWEsVUFBVSxFQUFFLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDdEksQ0FBQztJQUVELFVBQVUsQ0FBQyxXQUFtQixFQUFFLFVBQWtCLEVBQUUsZ0JBQXdCLEVBQUUsV0FBZ0I7UUFDNUYsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQyxXQUFXLDZCQUE2QixnQkFBZ0IsY0FBYyxXQUFXLGFBQWEsVUFBVSxFQUFFLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDM0osQ0FBQztJQUVELGdCQUFnQjtRQUNkLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsV0FBVyx5QkFBeUIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUMzRyxDQUFDO0lBRUQsT0FBTztRQUNMLE9BQU8sTUFBTSxFQUFFLENBQUM7SUFDbEIsQ0FBQztJQUVELGlCQUFpQixDQUFDLEdBQVE7UUFDeEIsSUFBSSxDQUFDLFdBQVcsR0FBRyxHQUFHLENBQUM7SUFDekIsQ0FBQztJQUVELGFBQWE7UUFDWCxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDMUIsQ0FBQztJQUVELGNBQWM7UUFDWixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDMUIsQ0FBQztJQUVELGVBQWUsQ0FBQyxlQUF1QjtRQUNyQyxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUF3QixFQUFFLEVBQUU7WUFDcEYsT0FBTyxDQUFDLENBQUMsSUFBSSxLQUFLLGVBQWUsQ0FBQztRQUNwQyxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksY0FBYyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxFQUFFLENBQUMsTUFBTSxDQUFDO1FBQzNELE9BQU8sQ0FBQyxZQUFZLEdBQUcsQ0FBQyxDQUFDLEdBQUcsY0FBYyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsRUFBRSxDQUFDLFlBQVksR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ3ZHLENBQUM7SUFFRCxtQkFBbUIsQ0FBQyxlQUF1QjtRQUN6QyxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUF3QixFQUFFLEVBQUU7WUFDcEYsT0FBTyxDQUFDLENBQUMsSUFBSSxLQUFLLGVBQWUsQ0FBQztRQUNwQyxDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8sQ0FBQyxZQUFZLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsRUFBRSxDQUFDLFlBQVksR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQzNGLENBQUM7SUFFRCxhQUFhLENBQUMsZUFBdUI7UUFDbkMsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLGVBQWUsQ0FBQyxJQUFJLElBQUksQ0FBQztRQUNqRSxPQUFPLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDN0QsQ0FBQztJQUVELFVBQVUsQ0FBQyxLQUFrQztRQUMzQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDN0IsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNqQyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQzNCLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDcEIsQ0FBQztJQUVELFlBQVksQ0FBQyxPQUFlO1FBQzFCLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUF3QixFQUFFLEVBQUU7WUFDcEcsT0FBTyxDQUFDLENBQUMsSUFBSSxLQUFLLE9BQU8sQ0FBQztRQUM1QixDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFRCxtQkFBbUIsQ0FBQyxLQUFZLEVBQUUsSUFBUztRQUV6QyxJQUFJLEdBQUcsR0FBVSxFQUFFLENBQUM7UUFFcEIsS0FBSyxJQUFJLEtBQUssSUFBSSxLQUFLLEVBQUU7WUFDdkIsSUFBSSxLQUFLLENBQUMsS0FBSyxDQUFDLEtBQUssSUFBSSxFQUFFO2dCQUV6QixHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO2FBQ3hCO1NBQ0Y7UUFFRCxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFFRCxJQUFJLE9BQU8sQ0FBQyxHQUFRO1FBQ2xCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzNCLElBQUksUUFBUSxHQUFHLElBQUksQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDO1FBQ2xDLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDbkIsWUFBWSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFFRCxJQUFJLE9BQU87UUFDVCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDakUsQ0FBQztJQUVELDJCQUEyQixDQUFDLEdBQVE7UUFDbEMsSUFBSSxHQUFHLEVBQUU7WUFDUCxJQUFJLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQ3RDO0lBQ0gsQ0FBQztJQUVELHFCQUFxQixDQUFDLFVBQWtCO1FBQ3RDLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQzNDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLFFBQVEsS0FBSyxVQUFVLENBQUM7UUFDdEQsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO1FBRVQsT0FBTyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQzFCLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQztRQUNoQixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCx1QkFBdUIsQ0FBQyxVQUFrQjtRQUN4QyxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUMzQyxPQUFPLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLEtBQUssVUFBVSxDQUFDO1FBQ2xELENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUVULE9BQU8sWUFBWSxDQUFDO0lBQ3RCLENBQUM7SUFFRCxxQkFBcUIsQ0FBQyxRQUFnQjtRQUNwQyxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUMzQyxPQUFPLENBQUMsQ0FBQyxRQUFRLEtBQUssUUFBUSxDQUFDO1FBQ2pDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUVULE9BQU8sWUFBWSxDQUFDO0lBQ3RCLENBQUM7SUFFRCxXQUFXLENBQUMsUUFBYTtRQUN2QixJQUFJLENBQUMsV0FBVyxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQztRQUNsRCxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQU0sRUFBRSxJQUFZLEVBQUUsRUFBRTtZQUN0RSxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFO2dCQUNwQixJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUk7Z0JBQ1osVUFBVSxFQUFFLENBQUMsQ0FBQyxVQUFVO2dCQUN4QixLQUFLLEVBQUUsQ0FBQyxDQUFDLEtBQUs7Z0JBQ2QsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJO2dCQUNaLFFBQVEsRUFBRSxDQUFDLENBQUMsUUFBUTtnQkFDcEIsTUFBTSxFQUFFLENBQUMsQ0FBQyxNQUFpQztnQkFDM0MsV0FBVyxFQUFFLENBQUMsQ0FBQyxXQUFXO2dCQUMxQixZQUFZLEVBQUUsQ0FBQyxDQUFDLFlBQVk7Z0JBQzVCLFFBQVEsRUFBRSxDQUFDLENBQUMsUUFBUTtnQkFDcEIsWUFBWSxFQUFFLENBQUMsQ0FBQyxZQUFZO2dCQUM1QixNQUFNLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO2dCQUM5QixRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQU0sRUFBRSxFQUFFO29CQUN2QyxNQUFNLFlBQVksR0FBRyxDQUFDLENBQUMsWUFBWSxJQUFJLEVBQUUsQ0FBQztvQkFDMUMsSUFBSSxZQUFZLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTt3QkFDM0IsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsRUFBRSxRQUFRLEVBQUUsWUFBWSxFQUFFLENBQUMsQ0FBQztxQkFDOUM7b0JBQ0QsT0FBTyxDQUFDLENBQUM7Z0JBQ1gsQ0FBQyxDQUFDO2FBQ0gsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUFFSCxNQUFNLGFBQWEsR0FBNEIsRUFBRSxDQUFDO1FBQ2xELElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ3BCLGFBQWEsQ0FBQyxJQUFJLENBQUM7Z0JBQ2pCLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSTtnQkFDWixVQUFVLEVBQUUsQ0FBQyxDQUFDLFVBQVU7Z0JBQ3hCLEtBQUssRUFBRSxDQUFDLENBQUMsS0FBSztnQkFDZCxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUk7Z0JBQ1osTUFBTSxFQUFFLENBQUMsQ0FBQyxNQUFpQztnQkFDM0MsV0FBVyxFQUFFLENBQUMsQ0FBQyxXQUFXO2dCQUMxQixZQUFZLEVBQUUsQ0FBQyxDQUFDLFlBQVk7YUFDSixDQUFDLENBQUM7UUFDOUIsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQsYUFBYTtRQUNYLE1BQU0sSUFBSSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLHNCQUFzQixDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQzlFLElBQUksSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDbkIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO1NBQ25DO0lBQ0gsQ0FBQztJQUVELFNBQVMsQ0FBQyxNQUFXO1FBQ25CLElBQUksQ0FBQyxVQUFVLEdBQUcsTUFBTSxDQUFDO0lBQzNCLENBQUM7SUFFRCxTQUFTLENBQUMsSUFBWTtRQUNwQixJQUFJLGNBQW1CLENBQUM7UUFDeEIsSUFBSSxJQUFJLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDekMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFXLEVBQUUsRUFBRTtnQkFDdEMsSUFBSSxJQUFJLENBQUMsV0FBVyxJQUFJLE1BQU0sQ0FBQyxXQUFXLEVBQUU7b0JBQzFDLGNBQWMsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQVEsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsQ0FBQztpQkFDekU7WUFDSCxDQUFDLENBQUMsQ0FBQztTQUNKO1FBQ0QsSUFBSSxDQUFDLGNBQWMsRUFBRTtZQUNuQixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFBO1NBQ2pDO1FBQ0QsT0FBTyxjQUFjLENBQUM7SUFDeEIsQ0FBQztJQUVELG1CQUFtQjtRQUNqQixNQUFNLGFBQWEsR0FBVSxFQUFFLENBQUM7UUFDaEMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDcEIsSUFBSSxDQUFDLENBQUMsUUFBUSxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFO2dCQUNuQyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRTtvQkFDckIsSUFBSSxDQUFDLENBQUMsUUFBUSxFQUFFO3dCQUNkLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7cUJBQ3ZCO2dCQUNILENBQUMsQ0FBQyxDQUFDO2FBQ0o7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8sYUFBYSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCx3QkFBd0IsQ0FBQyxJQUFZO1FBQ25DLElBQUksaUJBQWlCLEdBQVUsRUFBRSxDQUFDO1FBQ2xDLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxFQUFFO1lBQzlCLElBQUksRUFBRSxDQUFDLFFBQVEsS0FBSyxJQUFJLEVBQUU7Z0JBQ3hCLGlCQUFpQixDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQzthQUM1QjtRQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxpQkFBaUIsQ0FBQztJQUMzQixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsV0FBZ0IsRUFBRSxRQUFnQjtRQUNqRCxJQUFJLFlBQW9CLENBQUM7UUFDekIsSUFBSSxRQUFRLEtBQUssT0FBTyxFQUFFO1lBQ3hCLFlBQVksR0FBRyxpQkFBaUIsQ0FBQztTQUNsQzthQUFNO1lBQ0wsWUFBWSxHQUFHLG9CQUFvQixDQUFDO1NBQ3JDO1FBRUQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxXQUFXLElBQUksWUFBWSxTQUFTLEVBQUUsV0FBVyxDQUFDO2FBQzlFLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVELGVBQWUsQ0FBQyxJQUFTLEVBQUUsTUFBVyxFQUFFLGlCQUF3QixFQUFFLFVBQWtCO1FBQ2xGLElBQUksSUFBSSxJQUFJLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUU7WUFDakQsSUFBSSxVQUFVLEtBQUssUUFBUSxFQUFFO2dCQUMzQixJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQVksRUFBRSxFQUFFO29CQUNyQyxJQUFJLE9BQU8sQ0FBQyxVQUFVLEtBQUssTUFBTSxDQUFDLFVBQVUsRUFBRTt3QkFDNUMsTUFBTSxlQUFlLEdBQVEsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLGlCQUFpQixFQUFFLENBQUMsQ0FBSyxFQUFFLENBQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFVBQVUsS0FBSyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUM7d0JBQ3pJLE1BQU0sWUFBWSxHQUFRLENBQUMsQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxpQkFBaUIsRUFBRSxDQUFDLENBQUssRUFBRSxDQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxVQUFVLEtBQUssQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDO3dCQUNsSSxPQUFPLENBQUMsY0FBYyxDQUFDLEdBQUcsZUFBZSxDQUFDO3dCQUMxQyxPQUFPLENBQUMsVUFBVSxDQUFDLEdBQUcsWUFBWSxDQUFDO3FCQUNwQztvQkFDRCxJQUFJLE9BQU8sQ0FBQyxRQUFRLEVBQUU7d0JBQ3BCLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxpQkFBaUIsRUFBRSxVQUFVLENBQUMsQ0FBQztxQkFDdEU7Z0JBQ0gsQ0FBQyxDQUFDLENBQUM7YUFDSjtpQkFBTTtnQkFDTCxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQVksRUFBRSxFQUFFO29CQUNyQyxJQUFJLE9BQU8sQ0FBQyxVQUFVLEtBQUssTUFBTSxDQUFDLFVBQVUsRUFBRTt3QkFDNUMsSUFBSSxjQUFjLEdBQVUsRUFBRSxDQUFDO3dCQUMvQixJQUFJLE9BQU8sSUFBSSxPQUFPLENBQUMsUUFBUSxJQUFJLE9BQU8sQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFOzRCQUMxRCxjQUFjLEdBQUksQ0FBQyxDQUFDLFlBQVksQ0FBQyxpQkFBaUIsRUFBRSxPQUFPLENBQUMsUUFBUSxFQUFFLFlBQVksQ0FBQyxDQUFDO3lCQUNyRjs2QkFBTTs0QkFDTCxjQUFjLEdBQUcsaUJBQWlCLENBQUM7eUJBQ3BDO3dCQUNELE9BQU8sQ0FBQyxjQUFjLENBQUMsR0FBRyxPQUFPLElBQUksT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxZQUFZLEVBQUUsR0FBRyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDO3dCQUMxSCxPQUFPLENBQUMsVUFBVSxDQUFDLEdBQUcsT0FBTyxJQUFJLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxPQUFPLENBQUMsUUFBUSxFQUFFLEdBQUcsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQztxQkFDL0c7b0JBQ0QsSUFBSSxPQUFPLENBQUMsUUFBUSxFQUFFO3dCQUNwQixJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsaUJBQWlCLEVBQUUsVUFBVSxDQUFDLENBQUM7cUJBQ3RFO2dCQUNILENBQUMsQ0FBQyxDQUFDO2FBQ0o7U0FDRjtJQUNILENBQUM7SUFFRCxtQkFBbUIsQ0FBQyxVQUFrQixFQUFFLFVBQWUsRUFBRSxpQkFBd0IsRUFBRSxVQUFtQjtRQUNwRyxJQUFJLFFBQVEsR0FBUSxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUM5QyxJQUFJLFVBQVUsS0FBSyxRQUFRLEVBQUU7WUFDM0IsTUFBTSxlQUFlLEdBQVEsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsWUFBWSxFQUFFLGlCQUFpQixFQUFFLENBQUMsQ0FBSyxFQUFFLENBQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFVBQVUsS0FBSyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDMUksTUFBTSxZQUFZLEdBQVEsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLGlCQUFpQixFQUFFLENBQUMsQ0FBSyxFQUFFLENBQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFVBQVUsS0FBSyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDbkksUUFBUSxDQUFDLGNBQWMsQ0FBQyxHQUFHLGVBQWUsQ0FBQztZQUMzQyxRQUFRLENBQUMsVUFBVSxDQUFDLEdBQUcsWUFBWSxDQUFDO1lBRXBDLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUMsWUFBaUIsRUFBRSxFQUFFO2dCQUMvQyxJQUFJLFFBQVEsR0FBUSxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQ3pELElBQUksUUFBUSxJQUFJLFFBQVEsQ0FBQyxRQUFRLElBQUksUUFBUSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUU7b0JBQzdELElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxFQUFFLFVBQVUsRUFBRSxpQkFBaUIsRUFBRSxVQUFVLENBQUMsQ0FBQztpQkFDM0U7WUFDSCxDQUFDLENBQUMsQ0FBQztTQUNKO2FBQU07WUFDTCxJQUFJLGNBQWMsR0FBVSxFQUFFLENBQUM7WUFDL0IsSUFBSSxRQUFRLElBQUksUUFBUSxDQUFDLFFBQVEsSUFBSSxRQUFRLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRTtnQkFDN0QsY0FBYyxHQUFHLENBQUMsQ0FBQyxZQUFZLENBQUMsaUJBQWlCLEVBQUUsUUFBUSxDQUFDLFFBQVEsRUFBRSxZQUFZLENBQUMsQ0FBQzthQUNyRjtpQkFBTTtnQkFDTCxjQUFjLEdBQUcsaUJBQWlCLENBQUM7YUFDcEM7WUFDRCxRQUFRLENBQUMsY0FBYyxDQUFDLEdBQUcsUUFBUSxJQUFJLFFBQVEsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxRQUFRLENBQUMsWUFBWSxFQUFFLEdBQUcsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQztZQUM5SCxRQUFRLENBQUMsVUFBVSxDQUFDLEdBQUcsUUFBUSxJQUFJLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxRQUFRLENBQUMsUUFBUSxFQUFFLEdBQUcsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQztZQUVsSCxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFlBQWlCLEVBQUUsRUFBRTtnQkFDL0MsSUFBSSxRQUFRLEdBQVEsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUN6RCxJQUFJLFFBQVEsSUFBSSxRQUFRLENBQUMsUUFBUSxJQUFJLFFBQVEsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFO29CQUM3RCxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsRUFBRSxVQUFVLEVBQUUsaUJBQWlCLEVBQUUsVUFBVSxJQUFJLEVBQUUsQ0FBQyxDQUFDO2lCQUNqRjtZQUNILENBQUMsQ0FBQyxDQUFDO1NBQ0o7SUFDSCxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsV0FBbUI7UUFDbEMsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLGNBQWMsS0FBSyxRQUFRLEVBQUU7WUFDaEQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLElBQUksQ0FBQyxXQUFXLHNCQUFzQixXQUFXLEVBQUUsRUFBRSxFQUFFLGVBQWUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FDM0csR0FBRyxDQUFDLENBQUMsUUFBYSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxrQkFBa0IsQ0FBQyxDQUFDLENBQzVELENBQUM7U0FDSDthQUFNO1lBQ0wsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7U0FDZjtJQUNILENBQUM7SUFFRCxzQ0FBc0MsQ0FBQyxJQUFZLEVBQUUsV0FBbUI7UUFDdEUsSUFBSSxjQUFtQixDQUFDO1FBQ3hCLElBQUksSUFBSSxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ3pDLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBVyxFQUFFLEVBQUU7Z0JBQ3RDLElBQUksV0FBVyxJQUFJLE1BQU0sQ0FBQyxXQUFXLEVBQUU7b0JBQ3JDLGNBQWMsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQVEsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsQ0FBQztpQkFDekU7WUFDSCxDQUFDLENBQUMsQ0FBQztTQUNKO1FBQ0QsT0FBTyxjQUFjLENBQUM7SUFDeEIsQ0FBQztJQUVELHNCQUFzQixDQUFDLFdBQW1CO1FBQ3hDLElBQUksY0FBbUIsQ0FBQztRQUN4QixJQUFJLElBQUksQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUN6QyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQVcsRUFBRSxFQUFFO2dCQUN0QyxJQUFJLFdBQVcsSUFBSSxNQUFNLENBQUMsV0FBVyxFQUFFO29CQUNyQyxjQUFjLEdBQUcsTUFBTSxDQUFDO2lCQUN6QjtZQUNILENBQUMsQ0FBQyxDQUFDO1NBQ0o7UUFDRCxPQUFPLGNBQWMsQ0FBQztJQUN4QixDQUFDO0lBRUQsMEJBQTBCLENBQUMsV0FBbUIsRUFBRSxVQUFlO1FBQzdELElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUMsWUFBaUIsRUFBRSxFQUFFO1lBQy9DLElBQUksUUFBUSxHQUFRLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUN6RCxJQUFJLFFBQVEsSUFBSSxRQUFRLENBQUMsUUFBUSxJQUFJLFFBQVEsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFO2dCQUM3RCxJQUFJLENBQUMsbUJBQW1CLENBQUMsUUFBUSxFQUFFLFVBQVUsQ0FBQyxDQUFDO2FBQ2hEO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsbUJBQW1CLENBQUMsSUFBUyxFQUFFLE1BQVc7UUFDeEMsSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRTtZQUNqRCxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQVksRUFBRSxFQUFFO2dCQUNyQyxJQUFJLE9BQU8sQ0FBQyxVQUFVLEtBQUssTUFBTSxDQUFDLFVBQVUsRUFBRTtvQkFDNUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztvQkFDL0MsT0FBTyxDQUFDLHNCQUFzQixDQUFDLEdBQUcsTUFBTSxDQUFDLHNCQUFzQixDQUFDLENBQUM7aUJBQ2xFO2dCQUNELElBQUksT0FBTyxDQUFDLFFBQVEsRUFBRTtvQkFDcEIsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQztpQkFDM0M7WUFDSCxDQUFDLENBQUMsQ0FBQztTQUNKO0lBQ0gsQ0FBQzsrR0F2YVUsZ0JBQWdCO21IQUFoQixnQkFBZ0IsY0FGZixNQUFNOzs0RkFFUCxnQkFBZ0I7a0JBSDVCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgbWFwLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBGUkFNRVdPUksgfSBmcm9tICcuLi9jb25zdGFudHMvZGF0YSc7XG5pbXBvcnQgeyBOU0ZyYW1ld29yayB9IGZyb20gJy4uL21vZGVscy9mcmFtZXdvcmsubW9kZWwnO1xuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IHY0IGFzIHV1aWR2NCB9IGZyb20gJ3V1aWQnO1xuaW1wb3J0IHsgSUNvbm5lY3Rpb24gfSBmcm9tICcuLi9tb2RlbHMvY29ubmVjdGlvbi5tb2RlbCc7XG5pbXBvcnQgeyBMb2NhbENvbm5lY3Rpb25TZXJ2aWNlIH0gZnJvbSAnLi9sb2NhbC1jb25uZWN0aW9uLnNlcnZpY2UnO1xuLyogdHNsaW50OmRpc2FibGUgKi9cbmltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG4vKiB0c2xpbnQ6ZW5hYmxlICovXG5cbmludGVyZmFjZSBOb3RpZmllclR5cGUge1xuICB0eXBlOiAnc2VsZWN0JyB8ICdpbnNlcnQnIHwgJ3VwZGF0ZScgfCAnZGVsZXRlJztcbiAgYWN0aW9uOiBzdHJpbmc7XG4gIGRhdGE6IGFueTtcbn1cblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgRnJhbWV3b3JrU2VydmljZSB7XG4gIGNhdGVnb3JpZXNIYXNoOiBCZWhhdmlvclN1YmplY3Q8TlNGcmFtZXdvcmsuSUNhdGVnb3J5W10gfCBbXT4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PE5TRnJhbWV3b3JrLklDYXRlZ29yeVtdIHwgW10+KFtdKTtcbiAgaXNEYXRhVXBkYXRlZDogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG4gIGN1cnJlbnRTZWxlY3Rpb246IEJlaGF2aW9yU3ViamVjdDx7IHR5cGU6IHN0cmluZywgZGF0YTogYW55LCBjYXJkUmVmPzogYW55LCBpc1VwZGF0ZT86Ym9vbGVhbiB9IHwgbnVsbD4gPSBcbiAgICBuZXcgQmVoYXZpb3JTdWJqZWN0PHsgdHlwZTogc3RyaW5nLCBkYXRhOiBhbnksIGNhcmRSZWY/OiBhbnksIGlzVXBkYXRlPzpib29sZWFuIH0gfCBudWxsPihudWxsKTtcbiAgdGVybVN1YmplY3Q6IEJlaGF2aW9yU3ViamVjdDxhbnk+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxhbnk+KG51bGwpO1xuICBhZnRlckFkZE9yRWRpdFN1YmplY3Q6IEJlaGF2aW9yU3ViamVjdDxhbnk+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxhbnk+KG51bGwpO1xuICBsaXN0ID0gbmV3IE1hcDxzdHJpbmcsIE5TRnJhbWV3b3JrLklDb2x1bW5WaWV3PigpO1xuICBzZWxlY3Rpb25MaXN0ID0gbmV3IE1hcDxzdHJpbmcsIGFueT4oKTtcbiAgaW5zZXJ0VXBkYXRlRGVsZXRlTm90aWZpZXI6IEJlaGF2aW9yU3ViamVjdDxOb3RpZmllclR5cGUgfCBudWxsPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Tm90aWZpZXJUeXBlIHwgbnVsbD4obnVsbCk7XG4gIGVudmlyb25tZW50OiBhbnk7XG4gIGxpYkNvbmZpZyE6IElDb25uZWN0aW9uO1xuICBmcmFtZXdvcmtJZCE6IHN0cmluZztcbiAgcm9vdENvbmZpZzogYW55O1xuICBwcm94aWVzUGF0aCA9ICdhcGlzL3Byb3hpZXMvdjgnO1xuICBjYXJkQ2xrRGF0YTogYW55O1xuICBDdXJyZW50Q2FyZENsayA9IG5ldyBCZWhhdmlvclN1YmplY3Q8YW55PihudWxsKTtcbiAgXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcbiAgICBwdWJsaWMgbG9jYWxDb25maWc6IExvY2FsQ29ubmVjdGlvblNlcnZpY2VcbiAgKSB7fVxuXG4gIGdldEZyYW1ld29ya0luZm8oX29yZ0RhdGE/OmFueSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oJ3Rlcm1zJyk7XG4gICAgaWYgKHRoaXMubG9jYWxDb25maWcuY29ubmVjdGlvblR5cGUgPT09ICdvbmxpbmUnKSB7XG4gICAgICAvL2ZyYW1ld29yay92MS9yZWFkLzAxMzU4OTEyMjkzODM5NjY3MjQxX29yZ19oaWVyYXJjaHlcbiAgICAgIC8vZnJhbWV3b3JrL3YxL3JlYWQvJHt0aGlzLmVudmlyb25tZW50LmZyYW1ld29ya05hbWV9XG4gICAgICBsZXQgdXJsID0gYC8ke3RoaXMucHJveGllc1BhdGh9L2ZyYW1ld29yay92MS9yZWFkL2BcbiAgICAgIGlmIChfb3JnRGF0YSkge1xuICAgICAgICB1cmwgID0gdXJsICsgX29yZ0RhdGEuaWRlbnRpZmllciArICdfb3JnX2hpZXJhcmNoeSc7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB1cmwgPSB1cmwgKyB0aGlzLmVudmlyb25tZW50LmZyYW1ld29ya05hbWU7XG4gICAgICB9XG4gICAgICByZXR1cm4gdGhpcy5odHRwLmdldChgJHt1cmx9YCwgeyB3aXRoQ3JlZGVudGlhbHM6IHRydWUgfSkucGlwZShcbiAgICAgICAgdGFwKChyZXNwb25zZTogYW55KSA9PiB7XG4gICAgICAgICAgdGhpcy5yZXNldEFsbCgpO1xuICAgICAgICAgIHRoaXMuZm9ybWF0ZURhdGEocmVzcG9uc2UpO1xuICAgICAgICB9KSxcbiAgICAgICAgY2F0Y2hFcnJvcigoZXJyKSA9PiB7XG4gICAgICAgICAgdGhpcy5yZXNldEFsbCgpO1xuICAgICAgICAgIHRoaXMubGlzdC5jbGVhcigpO1xuICAgICAgICAgIHRoaXMuY2F0ZWdvcmllc0hhc2gubmV4dChbXSk7XG4gICAgICAgICAgdGhyb3cgJ0Vycm9yIGluIHNvdXJjZS4gRGV0YWlsczogJyArIGVycjtcbiAgICAgICAgfSkpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnJlc2V0QWxsKCk7XG4gICAgICB0aGlzLmZvcm1hdGVEYXRhKEZSQU1FV09SSyk7XG4gICAgICByZXR1cm4gb2YoRlJBTUVXT1JLKTtcbiAgICB9XG4gIH1cblxuICByZWFkVGVybXMoZnJhbWV3b3JrSWQ6IHN0cmluZywgY2F0ZWdvcnlJZDogc3RyaW5nLCByZXF1ZXN0Qm9keTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYC8ke3RoaXMucHJveGllc1BhdGh9L2ZyYW1ld29yay92MS90ZXJtL3NlYXJjaD9mcmFtZXdvcms9JHtmcmFtZXdvcmtJZH0mY2F0ZWdvcnk9JHtjYXRlZ29yeUlkfWAsIHJlcXVlc3RCb2R5KS5waXBlKFxuICAgICAgbWFwKChyZXM6IGFueSkgPT4gcmVzLnJlc3VsdCkpO1xuICB9XG5cbiAgY3JlYXRlVGVybShmcmFtZXdvcmtJZDogc3RyaW5nLCBjYXRlZ29yeUlkOiBzdHJpbmcsIHJlcXVlc3RCb2R5OiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgLyR7dGhpcy5wcm94aWVzUGF0aH0vZnJhbWV3b3JrL3YxL3Rlcm0vY3JlYXRlP2ZyYW1ld29yaz0ke2ZyYW1ld29ya0lkfSZjYXRlZ29yeT0ke2NhdGVnb3J5SWR9YCwgcmVxdWVzdEJvZHkpO1xuICB9XG4gXG4gIGNyZWF0ZVRlcm1zV3JhcHBlcihjYXRlZ29yeTogc3RyaW5nLCByZXF1ZXN0Qm9keTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBsZXQgY2F0ZWdvcnlJdGVtOiBzdHJpbmc7XG4gICAgaWYgKGNhdGVnb3J5ID09PSAndGhlbWUnKSB7XG4gICAgICBjYXRlZ29yeUl0ZW0gPSAnY29tcGV0ZW5jeVRoZW1lJztcbiAgICB9IGVsc2Uge1xuICAgICAgY2F0ZWdvcnlJdGVtID0gJ2NvbXBldGVuY3lTdWJUaGVtZSc7XG4gICAgfVxuICAgXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAvJHt0aGlzLnByb3hpZXNQYXRofS8ke2NhdGVnb3J5SXRlbX0vY3JlYXRlL3Rlcm1gLCByZXF1ZXN0Qm9keSlcbiAgICAgIC5waXBlKG1hcChyZXMgPT4gXy5nZXQocmVzLCAncmVzdWx0JykpKTtcbiAgfVxuXG4gIHJldGlyZVRlcm0oZnJhbWV3b3JrSWQ6IHN0cmluZywgY2F0ZWdvcnlJZDogc3RyaW5nLCBjYXRlZ29yeVRlcm1Db2RlOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZGVsZXRlKGAvJHt0aGlzLnByb3hpZXNQYXRofS9mcmFtZXdvcmsvdjEvdGVybS9yZXRpcmUvJHtjYXRlZ29yeVRlcm1Db2RlfT9mcmFtZXdvcms9JHtmcmFtZXdvcmtJZH0mY2F0ZWdvcnk9JHtjYXRlZ29yeUlkfWApO1xuICB9XG5cbiAgcmV0aXJlTXVsdGlwbGVUZXJtKGZyYW1ld29ya0lkOiBzdHJpbmcsIGNhdGVnb3J5SWQ6IHN0cmluZywgcmVxdWVzdEJvZHk6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAvJHt0aGlzLnByb3hpZXNQYXRofS9mcmFtZXdvcmsvdjEvdGVybS9yZXRpcmU/ZnJhbWV3b3JrPSR7ZnJhbWV3b3JrSWR9JmNhdGVnb3J5PSR7Y2F0ZWdvcnlJZH1gLCByZXF1ZXN0Qm9keSk7XG4gIH1cblxuICB1cGRhdGVUZXJtKGZyYW1ld29ya0lkOiBzdHJpbmcsIGNhdGVnb3J5SWQ6IHN0cmluZywgY2F0ZWdvcnlUZXJtQ29kZTogc3RyaW5nLCByZXF1ZXN0Qm9keTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBhdGNoKGAvJHt0aGlzLnByb3hpZXNQYXRofS9mcmFtZXdvcmsvdjEvdGVybS91cGRhdGUvJHtjYXRlZ29yeVRlcm1Db2RlfT9mcmFtZXdvcms9JHtmcmFtZXdvcmtJZH0mY2F0ZWdvcnk9JHtjYXRlZ29yeUlkfWAsIHJlcXVlc3RCb2R5KTtcbiAgfVxuXG4gIHB1Ymxpc2hGcmFtZXdvcmsoKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYC8ke3RoaXMucHJveGllc1BhdGh9L2ZyYW1ld29yay92MS9wdWJsaXNoLyR7dGhpcy5lbnZpcm9ubWVudC5mcmFtZXdvcmtOYW1lfWAsIHt9KTtcbiAgfVxuXG4gIGdldFV1aWQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdXVpZHY0KCk7XG4gIH1cblxuICB1cGRhdGVFbnZpcm9ubWVudChlbnY6IGFueSk6IHZvaWQge1xuICAgIHRoaXMuZW52aXJvbm1lbnQgPSBlbnY7XG4gIH1cblxuICBnZXRFbnZpcm9tZW50KCk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMuZW52aXJvbm1lbnQ7XG4gIH1cblxuICBnZXRGcmFtZXdvcmtJZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmZyYW1ld29ya0lkO1xuICB9XG5cbiAgZ2V0TmV4dENhdGVnb3J5KGN1cnJlbnRDYXRlZ29yeTogc3RyaW5nKTogTlNGcmFtZXdvcmsuSUNhdGVnb3J5IHwgbnVsbCB7XG4gICAgY29uc3QgY3VycmVudEluZGV4ID0gdGhpcy5jYXRlZ29yaWVzSGFzaC52YWx1ZS5maW5kSW5kZXgoKGE6IE5TRnJhbWV3b3JrLklDYXRlZ29yeSkgPT4ge1xuICAgICAgcmV0dXJuIGEuY29kZSA9PT0gY3VycmVudENhdGVnb3J5O1xuICAgIH0pO1xuICAgIGxldCBjYXRlZ29yeUxlbmd0aCA9IHRoaXMuY2F0ZWdvcmllc0hhc2guZ2V0VmFsdWUoKS5sZW5ndGg7XG4gICAgcmV0dXJuIChjdXJyZW50SW5kZXggKyAxKSA8IGNhdGVnb3J5TGVuZ3RoID8gdGhpcy5jYXRlZ29yaWVzSGFzaC5nZXRWYWx1ZSgpW2N1cnJlbnRJbmRleCArIDFdIDogbnVsbDtcbiAgfVxuXG4gIGdldFByZXZpb3VzQ2F0ZWdvcnkoY3VycmVudENhdGVnb3J5OiBzdHJpbmcpOiBOU0ZyYW1ld29yay5JQ2F0ZWdvcnkgfCBudWxsIHtcbiAgICBjb25zdCBjdXJyZW50SW5kZXggPSB0aGlzLmNhdGVnb3JpZXNIYXNoLnZhbHVlLmZpbmRJbmRleCgoYTogTlNGcmFtZXdvcmsuSUNhdGVnb3J5KSA9PiB7XG4gICAgICByZXR1cm4gYS5jb2RlID09PSBjdXJyZW50Q2F0ZWdvcnk7XG4gICAgfSk7XG4gICAgcmV0dXJuIChjdXJyZW50SW5kZXggLSAxKSA+PSAwID8gdGhpcy5jYXRlZ29yaWVzSGFzaC5nZXRWYWx1ZSgpW2N1cnJlbnRJbmRleCAtIDFdIDogbnVsbDtcbiAgfVxuXG4gIGdldFBhcmVudFRlcm0oY3VycmVudENhdGVnb3J5OiBzdHJpbmcpOiBhbnkge1xuICAgIGNvbnN0IHBhcmVudCA9IHRoaXMuZ2V0UHJldmlvdXNDYXRlZ29yeShjdXJyZW50Q2F0ZWdvcnkpIHx8IG51bGw7XG4gICAgcmV0dXJuIHBhcmVudCA/IHRoaXMuc2VsZWN0aW9uTGlzdC5nZXQocGFyZW50LmNvZGUpIDogbnVsbDtcbiAgfVxuXG4gIGNoaWxkQ2xpY2soZXZlbnQ6IHsgdHlwZTogc3RyaW5nLCBkYXRhOiBhbnkgfSk6IHZvaWQge1xuICAgIHRoaXMuY3VycmVudFNlbGVjdGlvbi5uZXh0KGV2ZW50KTtcbiAgfVxuXG4gIHJlc2V0QWxsKCk6IHZvaWQge1xuICAgIHRoaXMuY2F0ZWdvcmllc0hhc2gubmV4dChbXSk7XG4gICAgdGhpcy5jdXJyZW50U2VsZWN0aW9uLm5leHQobnVsbCk7XG4gICAgdGhpcy5zZWxlY3Rpb25MaXN0LmNsZWFyKCk7XG4gICAgdGhpcy5saXN0LmNsZWFyKCk7XG4gIH1cblxuICBpc0xhc3RDb2x1bW4oY29sQ29kZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuY2F0ZWdvcmllc0hhc2gudmFsdWUgJiYgKHRoaXMuY2F0ZWdvcmllc0hhc2gudmFsdWUuZmluZEluZGV4KChhOiBOU0ZyYW1ld29yay5JQ2F0ZWdvcnkpID0+IHtcbiAgICAgIHJldHVybiBhLmNvZGUgPT09IGNvbENvZGU7XG4gICAgfSkpID09PSAodGhpcy5jYXRlZ29yaWVzSGFzaC52YWx1ZS5sZW5ndGggLSAxKTtcbiAgfVxuXG4gIHJlbW92ZUl0ZW1Gcm9tQXJyYXkoYXJyYXk6IGFueVtdLCBpdGVtOiBhbnkpOiBhbnlbXSB7XG4gICAgLyogYXNzaWduIGEgZW1wdHkgYXJyYXkgKi9cbiAgICB2YXIgdG1wOiBhbnlbXSA9IFtdO1xuICAgIC8qIGxvb3Agb3ZlciBhbGwgYXJyYXkgaXRlbXMgKi9cbiAgICBmb3IgKHZhciBpbmRleCBpbiBhcnJheSkge1xuICAgICAgaWYgKGFycmF5W2luZGV4XSAhPT0gaXRlbSkge1xuICAgICAgICAvKiBwdXNoIHRvIHRlbXBvcmFyeSBhcnJheSBpZiBub3QgbGlrZSBpdGVtICovXG4gICAgICAgIHRtcC5wdXNoKGFycmF5W2luZGV4XSk7XG4gICAgICB9XG4gICAgfVxuICAgIC8qIHJldHVybiB0aGUgdGVtcG9yYXJ5IGFycmF5ICovXG4gICAgcmV0dXJuIHRtcDtcbiAgfVxuXG4gIHNldCBzZXRUZXJtKHJlczogYW55KSB7XG4gICAgdGhpcy50ZXJtU3ViamVjdC5uZXh0KHJlcyk7XG4gICAgbGV0IG9sZFRlcm1zID0gdGhpcy5nZXRUZXJtIHx8IFtdO1xuICAgIG9sZFRlcm1zLnB1c2gocmVzKTtcbiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgndGVybXMnLCBKU09OLnN0cmluZ2lmeShvbGRUZXJtcykpO1xuICB9XG5cbiAgZ2V0IGdldFRlcm0oKTogYW55W10ge1xuICAgIHJldHVybiBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKCd0ZXJtcycpIHx8ICdbXScpIHx8IFtdO1xuICB9XG5cbiAgdXBkYXRlQWZ0ZXJBZGRPckVkaXRTdWJqZWN0KHJlczogYW55KTogdm9pZCB7XG4gICAgaWYgKHJlcykge1xuICAgICAgdGhpcy5hZnRlckFkZE9yRWRpdFN1YmplY3QubmV4dChyZXMpO1xuICAgIH0gXG4gIH1cblxuICBnZXRMb2NhbFRlcm1zQnlQYXJlbnQocGFyZW50Q29kZTogc3RyaW5nKTogYW55W10ge1xuICAgIGNvbnN0IGZpbHRlcmVkRGF0YSA9IHRoaXMuZ2V0VGVybS5maWx0ZXIoeCA9PiB7XG4gICAgICByZXR1cm4geC5wYXJlbnQgJiYgeC5wYXJlbnQuY2F0ZWdvcnkgPT09IHBhcmVudENvZGU7XG4gICAgfSkgfHwgW107XG5cbiAgICByZXR1cm4gZmlsdGVyZWREYXRhLm1hcCh4ID0+IHtcbiAgICAgIHJldHVybiB4LnRlcm07XG4gICAgfSk7XG4gIH1cblxuICBnZXRMb2NhbFRlcm1zQnlDYXRlZ29yeShwYXJlbnRDb2RlOiBzdHJpbmcpOiBhbnlbXSB7XG4gICAgY29uc3QgZmlsdGVyZWREYXRhID0gdGhpcy5nZXRUZXJtLmZpbHRlcih4ID0+IHtcbiAgICAgIHJldHVybiB4LnRlcm0gJiYgeC50ZXJtLmNhdGVnb3J5ID09PSBwYXJlbnRDb2RlO1xuICAgIH0pIHx8IFtdO1xuXG4gICAgcmV0dXJuIGZpbHRlcmVkRGF0YTtcbiAgfVxuXG4gIGdldExvY2FsVGVybXNDYXRlZ29yeShjYXRlZ29yeTogc3RyaW5nKTogYW55W10ge1xuICAgIGNvbnN0IGZpbHRlcmVkRGF0YSA9IHRoaXMuZ2V0VGVybS5maWx0ZXIoeCA9PiB7XG4gICAgICByZXR1cm4geC5jYXRlZ29yeSA9PT0gY2F0ZWdvcnk7XG4gICAgfSkgfHwgW107XG5cbiAgICByZXR1cm4gZmlsdGVyZWREYXRhO1xuICB9XG5cbiAgZm9ybWF0ZURhdGEocmVzcG9uc2U6IGFueSk6IHZvaWQge1xuICAgIHRoaXMuZnJhbWV3b3JrSWQgPSByZXNwb25zZS5yZXN1bHQuZnJhbWV3b3JrLmNvZGU7XG4gICAgKHJlc3BvbnNlLnJlc3VsdC5mcmFtZXdvcmsuY2F0ZWdvcmllcykuZm9yRWFjaCgoYTogYW55LCBfaWR4OiBudW1iZXIpID0+IHtcbiAgICAgIHRoaXMubGlzdC5zZXQoYS5jb2RlLCB7XG4gICAgICAgIGNvZGU6IGEuY29kZSxcbiAgICAgICAgaWRlbnRpZmllcjogYS5pZGVudGlmaWVyLFxuICAgICAgICBpbmRleDogYS5pbmRleCxcbiAgICAgICAgbmFtZTogYS5uYW1lLFxuICAgICAgICBzZWxlY3RlZDogYS5zZWxlY3RlZCxcbiAgICAgICAgc3RhdHVzOiBhLnN0YXR1cyBhcyBOU0ZyYW1ld29yay5UTm9kZVN0YXR1cyxcbiAgICAgICAgZGVzY3JpcHRpb246IGEuZGVzY3JpcHRpb24sXG4gICAgICAgIHRyYW5zbGF0aW9uczogYS50cmFuc2xhdGlvbnMsXG4gICAgICAgIGNhdGVnb3J5OiBhLmNhdGVnb3J5LFxuICAgICAgICBhc3NvY2lhdGlvbnM6IGEuYXNzb2NpYXRpb25zLFxuICAgICAgICBjb25maWc6IHRoaXMuZ2V0Q29uZmlnKGEuY29kZSksXG4gICAgICAgIGNoaWxkcmVuOiAoYS50ZXJtcyB8fCBbXSkubWFwKChjOiBhbnkpID0+IHtcbiAgICAgICAgICBjb25zdCBhc3NvY2lhdGlvbnMgPSBjLmFzc29jaWF0aW9ucyB8fCBbXTtcbiAgICAgICAgICBpZiAoYXNzb2NpYXRpb25zLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIE9iamVjdC5hc3NpZ24oYywgeyBjaGlsZHJlbjogYXNzb2NpYXRpb25zIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gYztcbiAgICAgICAgfSlcbiAgICAgIH0pO1xuICAgIH0pO1xuICAgIFxuICAgIGNvbnN0IGFsbENhdGVnb3JpZXM6IE5TRnJhbWV3b3JrLklDYXRlZ29yeVtdID0gW107XG4gICAgdGhpcy5saXN0LmZvckVhY2goYSA9PiB7XG4gICAgICBhbGxDYXRlZ29yaWVzLnB1c2goe1xuICAgICAgICBjb2RlOiBhLmNvZGUsXG4gICAgICAgIGlkZW50aWZpZXI6IGEuaWRlbnRpZmllcixcbiAgICAgICAgaW5kZXg6IGEuaW5kZXgsXG4gICAgICAgIG5hbWU6IGEubmFtZSxcbiAgICAgICAgc3RhdHVzOiBhLnN0YXR1cyBhcyBOU0ZyYW1ld29yay5UTm9kZVN0YXR1cyxcbiAgICAgICAgZGVzY3JpcHRpb246IGEuZGVzY3JpcHRpb24sXG4gICAgICAgIHRyYW5zbGF0aW9uczogYS50cmFuc2xhdGlvbnMsXG4gICAgICB9IGFzIE5TRnJhbWV3b3JrLklDYXRlZ29yeSk7XG4gICAgfSk7XG4gICAgdGhpcy5jYXRlZ29yaWVzSGFzaC5uZXh0KGFsbENhdGVnb3JpZXMpO1xuICB9XG5cbiAgcmVtb3ZlT2xkTGluZSgpOiB2b2lkIHtcbiAgICBjb25zdCBlbGVzID0gQXJyYXkuZnJvbShkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCdsZWFkZXItbGluZScpIHx8IFtdKTtcbiAgICBpZiAoZWxlcy5sZW5ndGggPiAwKSB7XG4gICAgICBlbGVzLmZvckVhY2goZWxlID0+IGVsZS5yZW1vdmUoKSk7XG4gICAgfVxuICB9XG5cbiAgc2V0Q29uZmlnKGNvbmZpZzogYW55KTogdm9pZCB7XG4gICAgdGhpcy5yb290Q29uZmlnID0gY29uZmlnO1xuICB9XG5cbiAgZ2V0Q29uZmlnKGNvZGU6IHN0cmluZyk6IGFueSB7XG4gICAgbGV0IGNhdGVnb3J5Q29uZmlnOiBhbnk7XG4gICAgaWYgKHRoaXMucm9vdENvbmZpZyAmJiB0aGlzLnJvb3RDb25maWdbMF0pIHtcbiAgICAgIHRoaXMucm9vdENvbmZpZy5mb3JFYWNoKChjb25maWc6IGFueSkgPT4ge1xuICAgICAgICBpZiAodGhpcy5mcmFtZXdvcmtJZCA9PSBjb25maWcuZnJhbWV3b3JrSWQpIHtcbiAgICAgICAgICBjYXRlZ29yeUNvbmZpZyA9IGNvbmZpZy5jb25maWcuZmluZCgob2JqOiBhbnkpID0+IG9iai5jYXRlZ29yeSA9PSBjb2RlKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICAgIGlmICghY2F0ZWdvcnlDb25maWcpIHtcbiAgICAgIHJldHVybiB0aGlzLnJvb3RDb25maWcuY29uZmlnWzBdXG4gICAgfVxuICAgIHJldHVybiBjYXRlZ29yeUNvbmZpZztcbiAgfVxuXG4gIGdldEFsbFNlbGVjdGVkVGVybXMoKTogYW55W10ge1xuICAgIGNvbnN0IHNlbGVjdGVkVGVybXM6IGFueVtdID0gW107XG4gICAgdGhpcy5saXN0LmZvckVhY2gobCA9PiB7XG4gICAgICBpZiAobC5jaGlsZHJlbiAmJiBsLmNoaWxkcmVuLmxlbmd0aCkge1xuICAgICAgICBsLmNoaWxkcmVuLmZvckVhY2goYyA9PiB7XG4gICAgICAgICAgaWYgKGMuc2VsZWN0ZWQpIHtcbiAgICAgICAgICAgIHNlbGVjdGVkVGVybXMucHVzaChjKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiBzZWxlY3RlZFRlcm1zO1xuICB9XG5cbiAgZ2V0UHJldmlvdXNTZWxlY3RlZFRlcm1zKGNvZGU6IHN0cmluZyk6IGFueVtdIHtcbiAgICBsZXQgcHJldlNlbGVjdGVkVGVybXM6IGFueVtdID0gW107XG4gICAgdGhpcy5zZWxlY3Rpb25MaXN0LmZvckVhY2goc2wgPT4ge1xuICAgICAgaWYgKHNsLmNhdGVnb3J5ICE9PSBjb2RlKSB7XG4gICAgICAgIHByZXZTZWxlY3RlZFRlcm1zLnB1c2goc2wpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiBwcmV2U2VsZWN0ZWRUZXJtcztcbiAgfVxuXG4gIGdldEtjbVNlYXJjaExpc3QocmVxdWVzdEJvZHk6IGFueSwgY2F0ZWdvcnk6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgbGV0IGNhdGVnb3J5SXRlbTogc3RyaW5nO1xuICAgIGlmIChjYXRlZ29yeSA9PT0gJ3RoZW1lJykge1xuICAgICAgY2F0ZWdvcnlJdGVtID0gJ2NvbXBldGVuY3lUaGVtZSc7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNhdGVnb3J5SXRlbSA9ICdjb21wZXRlbmN5U3ViVGhlbWUnO1xuICAgIH1cbiAgICBcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYC8ke3RoaXMucHJveGllc1BhdGh9LyR7Y2F0ZWdvcnlJdGVtfS9zZWFyY2hgLCByZXF1ZXN0Qm9keSlcbiAgICAgIC5waXBlKG1hcChyZXMgPT4gXy5nZXQocmVzLCAncmVzdWx0LnJlc3VsdCcpKSk7XG4gIH1cblxuICB1cGRhdGVMb2NhbExpc3QoaXRlbTogYW55LCBwYXJlbnQ6IGFueSwgc2VsZWN0ZWRUZXJtQXJyYXk6IGFueVtdLCB1cGRhdGVUeXBlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAoaXRlbSAmJiBpdGVtLmNoaWxkcmVuICYmIGl0ZW0uY2hpbGRyZW4ubGVuZ3RoKSB7XG4gICAgICBpZiAodXBkYXRlVHlwZSA9PT0gJ2RlbGV0ZScpIHtcbiAgICAgICAgaXRlbS5jaGlsZHJlbi5mb3JFYWNoKChpdG1EYXRhOiBhbnkpID0+IHtcbiAgICAgICAgICBpZiAoaXRtRGF0YS5pZGVudGlmaWVyID09PSBwYXJlbnQuaWRlbnRpZmllcikge1xuICAgICAgICAgICAgY29uc3QgYXNzb2NpYXRpb25MaXN0OiBhbnkgPSBfLmRpZmZlcmVuY2VXaXRoKGl0bURhdGEuYXNzb2NpYXRpb25zLCBzZWxlY3RlZFRlcm1BcnJheSwgKGE6YW55LCBiOiBhbnkpID0+IGEuaWRlbnRpZmllciA9PT0gYi5pZGVudGlmaWVyKTtcbiAgICAgICAgICAgIGNvbnN0IGNoaWxkcmVuTGlzdDogYW55ID0gXy5kaWZmZXJlbmNlV2l0aChpdG1EYXRhLmNoaWxkcmVuLCBzZWxlY3RlZFRlcm1BcnJheSwgKGE6YW55LCBiOiBhbnkpID0+IGEuaWRlbnRpZmllciA9PT0gYi5pZGVudGlmaWVyKTtcbiAgICAgICAgICAgIGl0bURhdGFbJ2Fzc29jaWF0aW9ucyddID0gYXNzb2NpYXRpb25MaXN0O1xuICAgICAgICAgICAgaXRtRGF0YVsnY2hpbGRyZW4nXSA9IGNoaWxkcmVuTGlzdDtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGl0bURhdGEuY2hpbGRyZW4pIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlTG9jYWxMaXN0KGl0bURhdGEsIHBhcmVudCwgc2VsZWN0ZWRUZXJtQXJyYXksIHVwZGF0ZVR5cGUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpdGVtLmNoaWxkcmVuLmZvckVhY2goKGl0bURhdGE6IGFueSkgPT4ge1xuICAgICAgICAgIGlmIChpdG1EYXRhLmlkZW50aWZpZXIgPT09IHBhcmVudC5pZGVudGlmaWVyKSB7XG4gICAgICAgICAgICBsZXQgZGlmZmVyZW5jZURhdGE6IGFueVtdID0gW107XG4gICAgICAgICAgICBpZiAoaXRtRGF0YSAmJiBpdG1EYXRhLmNoaWxkcmVuICYmIGl0bURhdGEuY2hpbGRyZW4ubGVuZ3RoKSB7XG4gICAgICAgICAgICAgIGRpZmZlcmVuY2VEYXRhICA9IF8uZGlmZmVyZW5jZUJ5KHNlbGVjdGVkVGVybUFycmF5LCBpdG1EYXRhLmNoaWxkcmVuLCAnaWRlbnRpZmllcicpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgZGlmZmVyZW5jZURhdGEgPSBzZWxlY3RlZFRlcm1BcnJheTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGl0bURhdGFbJ2Fzc29jaWF0aW9ucyddID0gaXRtRGF0YSAmJiBpdG1EYXRhLmFzc29jaWF0aW9ucyA/IFsuLi5pdG1EYXRhLmFzc29jaWF0aW9ucywgLi4uZGlmZmVyZW5jZURhdGFdIDogZGlmZmVyZW5jZURhdGE7XG4gICAgICAgICAgICBpdG1EYXRhWydjaGlsZHJlbiddID0gaXRtRGF0YSAmJiBpdG1EYXRhLmNoaWxkcmVuID8gWy4uLml0bURhdGEuY2hpbGRyZW4sIC4uLmRpZmZlcmVuY2VEYXRhXSA6IGRpZmZlcmVuY2VEYXRhO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoaXRtRGF0YS5jaGlsZHJlbikge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVMb2NhbExpc3QoaXRtRGF0YSwgcGFyZW50LCBzZWxlY3RlZFRlcm1BcnJheSwgdXBkYXRlVHlwZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICB1cGRhdGVGcmFtZXdvcmtMaXN0KGNvbHVtbkNvZGU6IHN0cmluZywgcGFyZW50RGF0YTogYW55LCBzZWxlY3RlZFRlcm1BcnJheTogYW55W10sIHVwZGF0ZVR5cGU/OiBzdHJpbmcpOiB2b2lkIHtcbiAgICBsZXQgbGlzdERhdGE6IGFueSA9IHRoaXMubGlzdC5nZXQoY29sdW1uQ29kZSk7XG4gICAgaWYgKHVwZGF0ZVR5cGUgPT09ICdkZWxldGUnKSB7XG4gICAgICBjb25zdCBhc3NvY2lhdGlvbkxpc3Q6IGFueSA9IF8uZGlmZmVyZW5jZVdpdGgobGlzdERhdGEuYXNzb2NpYXRpb25zLCBzZWxlY3RlZFRlcm1BcnJheSwgKGE6YW55LCBiOiBhbnkpID0+IGEuaWRlbnRpZmllciA9PT0gYi5pZGVudGlmaWVyKTtcbiAgICAgIGNvbnN0IGNoaWxkcmVuTGlzdDogYW55ID0gXy5kaWZmZXJlbmNlV2l0aChsaXN0RGF0YS5jaGlsZHJlbiwgc2VsZWN0ZWRUZXJtQXJyYXksIChhOmFueSwgYjogYW55KSA9PiBhLmlkZW50aWZpZXIgPT09IGIuaWRlbnRpZmllcik7XG4gICAgICBsaXN0RGF0YVsnYXNzb2NpYXRpb25zJ10gPSBhc3NvY2lhdGlvbkxpc3Q7XG4gICAgICBsaXN0RGF0YVsnY2hpbGRyZW4nXSA9IGNoaWxkcmVuTGlzdDtcblxuICAgICAgdGhpcy5zZWxlY3Rpb25MaXN0LmZvckVhY2goKHNlbGVjdGVkRGF0YTogYW55KSA9PiB7XG4gICAgICAgIGxldCBsaXN0RGF0YTogYW55ID0gdGhpcy5saXN0LmdldChzZWxlY3RlZERhdGEuY2F0ZWdvcnkpO1xuICAgICAgICBpZiAobGlzdERhdGEgJiYgbGlzdERhdGEuY2hpbGRyZW4gJiYgbGlzdERhdGEuY2hpbGRyZW4ubGVuZ3RoKSB7XG4gICAgICAgICAgdGhpcy51cGRhdGVMb2NhbExpc3QobGlzdERhdGEsIHBhcmVudERhdGEsIHNlbGVjdGVkVGVybUFycmF5LCB1cGRhdGVUeXBlKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGxldCBkaWZmZXJlbmNlRGF0YTogYW55W10gPSBbXTtcbiAgICAgIGlmIChsaXN0RGF0YSAmJiBsaXN0RGF0YS5jaGlsZHJlbiAmJiBsaXN0RGF0YS5jaGlsZHJlbi5sZW5ndGgpIHtcbiAgICAgICAgZGlmZmVyZW5jZURhdGEgPSBfLmRpZmZlcmVuY2VCeShzZWxlY3RlZFRlcm1BcnJheSwgbGlzdERhdGEuY2hpbGRyZW4sICdpZGVudGlmaWVyJyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBkaWZmZXJlbmNlRGF0YSA9IHNlbGVjdGVkVGVybUFycmF5O1xuICAgICAgfVxuICAgICAgbGlzdERhdGFbJ2Fzc29jaWF0aW9ucyddID0gbGlzdERhdGEgJiYgbGlzdERhdGEuYXNzb2NpYXRpb25zID8gWy4uLmxpc3REYXRhLmFzc29jaWF0aW9ucywgLi4uZGlmZmVyZW5jZURhdGFdIDogZGlmZmVyZW5jZURhdGE7XG4gICAgICBsaXN0RGF0YVsnY2hpbGRyZW4nXSA9IGxpc3REYXRhICYmIGxpc3REYXRhLmNoaWxkcmVuID8gWy4uLmxpc3REYXRhLmNoaWxkcmVuLCAuLi5kaWZmZXJlbmNlRGF0YV0gOiBkaWZmZXJlbmNlRGF0YTtcblxuICAgICAgdGhpcy5zZWxlY3Rpb25MaXN0LmZvckVhY2goKHNlbGVjdGVkRGF0YTogYW55KSA9PiB7XG4gICAgICAgIGxldCBsaXN0RGF0YTogYW55ID0gdGhpcy5saXN0LmdldChzZWxlY3RlZERhdGEuY2F0ZWdvcnkpO1xuICAgICAgICBpZiAobGlzdERhdGEgJiYgbGlzdERhdGEuY2hpbGRyZW4gJiYgbGlzdERhdGEuY2hpbGRyZW4ubGVuZ3RoKSB7XG4gICAgICAgICAgdGhpcy51cGRhdGVMb2NhbExpc3QobGlzdERhdGEsIHBhcmVudERhdGEsIHNlbGVjdGVkVGVybUFycmF5LCB1cGRhdGVUeXBlIHx8ICcnKTtcbiAgICAgICAgfVxuICAgICAgfSk7IFxuICAgIH1cbiAgfVxuXG4gIGdldEZyYW1ld29ya1JlYWQoZnJhbWVXb3JrSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgaWYgKHRoaXMubG9jYWxDb25maWcuY29ubmVjdGlvblR5cGUgPT09ICdvbmxpbmUnKSB7XG4gICAgICByZXR1cm4gdGhpcy5odHRwLmdldChgLyR7dGhpcy5wcm94aWVzUGF0aH0vZnJhbWV3b3JrL3YxL3JlYWQvJHtmcmFtZVdvcmtJZH1gLCB7IHdpdGhDcmVkZW50aWFsczogdHJ1ZSB9KS5waXBlKFxuICAgICAgICBtYXAoKHJlc3BvbnNlOiBhbnkpID0+IF8uZ2V0KHJlc3BvbnNlLCAncmVzdWx0LmZyYW1ld29yaycpKVxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIG9mKHt9KTtcbiAgICB9XG4gIH1cblxuICBnZXRDb25maWdPZkNhdGVnb3J5Q29uZmlnQnlGcmFtZVdvcmtJZChjb2RlOiBzdHJpbmcsIGZyYW1ld29ya0lkOiBzdHJpbmcpOiBhbnkge1xuICAgIGxldCBjYXRlZ29yeUNvbmZpZzogYW55O1xuICAgIGlmICh0aGlzLnJvb3RDb25maWcgJiYgdGhpcy5yb290Q29uZmlnWzBdKSB7XG4gICAgICB0aGlzLnJvb3RDb25maWcuZm9yRWFjaCgoY29uZmlnOiBhbnkpID0+IHtcbiAgICAgICAgaWYgKGZyYW1ld29ya0lkID09IGNvbmZpZy5mcmFtZXdvcmtJZCkge1xuICAgICAgICAgIGNhdGVnb3J5Q29uZmlnID0gY29uZmlnLmNvbmZpZy5maW5kKChvYmo6IGFueSkgPT4gb2JqLmNhdGVnb3J5ID09IGNvZGUpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIGNhdGVnb3J5Q29uZmlnO1xuICB9XG5cbiAgZ2V0Q29uZmlnQnlGcmFtZVdvcmtJZChmcmFtZXdvcmtJZDogc3RyaW5nKTogYW55IHtcbiAgICBsZXQgY2F0ZWdvcnlDb25maWc6IGFueTtcbiAgICBpZiAodGhpcy5yb290Q29uZmlnICYmIHRoaXMucm9vdENvbmZpZ1swXSkge1xuICAgICAgdGhpcy5yb290Q29uZmlnLmZvckVhY2goKGNvbmZpZzogYW55KSA9PiB7XG4gICAgICAgIGlmIChmcmFtZXdvcmtJZCA9PSBjb25maWcuZnJhbWV3b3JrSWQpIHtcbiAgICAgICAgICBjYXRlZ29yeUNvbmZpZyA9IGNvbmZpZztcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiBjYXRlZ29yeUNvbmZpZztcbiAgfVxuXG4gIHVwZGF0ZUZ1bGxUZXJtRGF0YUxvY2FsTWFwKF9jb2x1bW5Db2RlOiBzdHJpbmcsIHBhcmVudERhdGE6IGFueSk6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0aW9uTGlzdC5mb3JFYWNoKChzZWxlY3RlZERhdGE6IGFueSkgPT4ge1xuICAgICAgbGV0IGxpc3REYXRhOiBhbnkgPSB0aGlzLmxpc3QuZ2V0KHNlbGVjdGVkRGF0YS5jYXRlZ29yeSk7XG4gICAgICBpZiAobGlzdERhdGEgJiYgbGlzdERhdGEuY2hpbGRyZW4gJiYgbGlzdERhdGEuY2hpbGRyZW4ubGVuZ3RoKSB7XG4gICAgICAgIHRoaXMudXBkYXRlTG9jYWxMaXN0VGVybShsaXN0RGF0YSwgcGFyZW50RGF0YSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICB1cGRhdGVMb2NhbExpc3RUZXJtKGl0ZW06IGFueSwgcGFyZW50OiBhbnkpOiB2b2lkIHtcbiAgICBpZiAoaXRlbSAmJiBpdGVtLmNoaWxkcmVuICYmIGl0ZW0uY2hpbGRyZW4ubGVuZ3RoKSB7XG4gICAgICBpdGVtLmNoaWxkcmVuLmZvckVhY2goKGl0bURhdGE6IGFueSkgPT4ge1xuICAgICAgICBpZiAoaXRtRGF0YS5pZGVudGlmaWVyID09PSBwYXJlbnQuaWRlbnRpZmllcikge1xuICAgICAgICAgIGl0bURhdGFbJ2Rlc2NyaXB0aW9uJ10gPSBwYXJlbnRbJ2Rlc2NyaXB0aW9uJ107XG4gICAgICAgICAgaXRtRGF0YVsnYWRkaXRpb25hbFByb3BlcnRpZXMnXSA9IHBhcmVudFsnYWRkaXRpb25hbFByb3BlcnRpZXMnXTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaXRtRGF0YS5jaGlsZHJlbikge1xuICAgICAgICAgIHRoaXMudXBkYXRlTG9jYWxMaXN0VGVybShpdG1EYXRhLCBwYXJlbnQpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cbn0iXX0=
|
|
532
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJhbWV3b3JrLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJ5L3N1bmJpcmQtY2IvdHJlZS1oaWVyYXJjaHkvc3JjL2xpYi9zZXJ2aWNlcy9mcmFtZXdvcmsuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxlQUFlLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3ZELE9BQU8sRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFHOUMsT0FBTyxFQUFFLEVBQUUsSUFBSSxNQUFNLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFJcEMsT0FBTyxDQUFDLE1BQU0sUUFBUSxDQUFDOzs7O0FBSXZCLE1BQU0sWUFBWSxHQUFHO0lBQ25CLGFBQWEsRUFBRSxnQ0FBZ0M7SUFDL0MsWUFBWSxFQUFFLGtEQUFrRDtJQUNoRSxZQUFZLEVBQUUsNENBQTRDO0lBQzFELGtCQUFrQixFQUFFLDRDQUE0QztJQUNoRSxpQkFBaUIsRUFBRSx3Q0FBd0M7SUFDM0QsV0FBVyxFQUFFLDJDQUEyQztJQUN4RCxlQUFlLEVBQUUsZ0RBQWdEO0lBQ2pFLFlBQVksRUFBRSxnQ0FBZ0M7Q0FDL0MsQ0FBQTtBQVFELE1BR2EsZ0JBQWdCO0lBcUIzQixZQUNVLElBQWdCLEVBQ2pCLFdBQW1DO1FBRGxDLFNBQUksR0FBSixJQUFJLENBQVk7UUFDakIsZ0JBQVcsR0FBWCxXQUFXLENBQXdCO1FBdEI1QyxtQkFBYyxHQUFrRCxJQUFJLGVBQWUsQ0FBK0IsRUFBRSxDQUFDLENBQUM7UUFDdEgsa0JBQWEsR0FBNkIsSUFBSSxlQUFlLENBQVUsS0FBSyxDQUFDLENBQUM7UUFD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QUFNOztTQUVQLGdCQUFnQjs0RkFBaEIsZ0JBQWdCO2tCQUg1QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGNhdGNoRXJyb3IsIG1hcCwgc3dpdGNoTWFwLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBGUkFNRVdPUksgfSBmcm9tICcuLi9jb25zdGFudHMvZGF0YSc7XG5pbXBvcnQgeyBOU0ZyYW1ld29yayB9IGZyb20gJy4uL21vZGVscy9mcmFtZXdvcmsubW9kZWwnO1xuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IHY0IGFzIHV1aWR2NCB9IGZyb20gJ3V1aWQnO1xuaW1wb3J0IHsgSUNvbm5lY3Rpb24gfSBmcm9tICcuLi9tb2RlbHMvY29ubmVjdGlvbi5tb2RlbCc7XG5pbXBvcnQgeyBMb2NhbENvbm5lY3Rpb25TZXJ2aWNlIH0gZnJvbSAnLi9sb2NhbC1jb25uZWN0aW9uLnNlcnZpY2UnO1xuLyogdHNsaW50OmRpc2FibGUgKi9cbmltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG4vLyBpbXBvcnQgeyBUcmVlSGllcmFyY2h5U2VydmljZSB9IGZyb20gJy4uL3RyZWUtaGllcmFyY2h5LnNlcnZpY2UnO1xuLyogdHNsaW50OmVuYWJsZSAqL1xuXG5jb25zdCBBUElfRU5EUE9JTlQgPSB7XG4gIE9SR19WMV9TRUFSQ0g6ICcvYXBpcy9wcm94aWVzL3Y4L29yZy92MS9zZWFyY2gnLFxuICBDUkVBVEVfVEVSTVM6IGAvYXBpcy9wcm94aWVzL3Y4L2FjdGlvbi9mcmFtZXdvcmsvdjMvdGVybS9jcmVhdGVgLFxuICBVUERBVEVfVEVSTVM6IGAvYXBpcy9wcm94aWVzL3Y4L2ZyYW1ld29yay92MS90ZXJtL3VwZGF0ZS9gLFxuICBVUERBVEVfQVNTT0NJQVRJT046IGAvYXBpcy9wcm94aWVzL3Y4L2ZyYW1ld29yay92MS90ZXJtL3VwZGF0ZS9gLFxuICBQVUJMSVNIX0ZSQU1FV09SSzogYC9hcGlzL3Byb3hpZXMvdjgvZnJhbWV3b3JrL3YxL3B1Ymxpc2gvYCxcbiAgUkVUSVJFX1RSRU06IGAvYXBpcy9wcm94aWVzL3Y4L2ZyYW1ld29yay92MS90ZXJtL3JldGlyZWAsXG4gIFVQREFURV9DQVRFR09SWTogYC9hcGlzL3Byb3hpZXMvdjgvZnJhbWV3b3JrL3YxL2NhdGVnb3J5L3VwZGF0ZS9gLFxuICBVU0VSU19TRUFSQ0g6IGBhcGlzL3Byb3hpZXMvdjgvdXNlci92MS9zZWFyY2hgXG59XG5cbmludGVyZmFjZSBOb3RpZmllclR5cGUge1xuICB0eXBlOiAnc2VsZWN0JyB8ICdpbnNlcnQnIHwgJ3VwZGF0ZScgfCAnZGVsZXRlJztcbiAgYWN0aW9uOiBzdHJpbmc7XG4gIGRhdGE6IGFueTtcbn1cblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgRnJhbWV3b3JrU2VydmljZSB7XG4gIGNhdGVnb3JpZXNIYXNoOiBCZWhhdmlvclN1YmplY3Q8TlNGcmFtZXdvcmsuSUNhdGVnb3J5W10gfCBbXT4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PE5TRnJhbWV3b3JrLklDYXRlZ29yeVtdIHwgW10+KFtdKTtcbiAgaXNEYXRhVXBkYXRlZDogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG4gIGN1cnJlbnRTZWxlY3Rpb246IEJlaGF2aW9yU3ViamVjdDx7IHR5cGU6IHN0cmluZywgZGF0YTogYW55LCBjYXJkUmVmPzogYW55LCBpc1VwZGF0ZT86Ym9vbGVhbiB9IHwgbnVsbD4gPSBcbiAgICBuZXcgQmVoYXZpb3JTdWJqZWN0PHsgdHlwZTogc3RyaW5nLCBkYXRhOiBhbnksIGNhcmRSZWY/OiBhbnksIGlzVXBkYXRlPzpib29sZWFuIH0gfCBudWxsPihudWxsKTtcbiAgdGVybVN1YmplY3Q6IEJlaGF2aW9yU3ViamVjdDxhbnk+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxhbnk+KG51bGwpO1xuICBhZnRlckFkZE9yRWRpdFN1YmplY3Q6IEJlaGF2aW9yU3ViamVjdDxhbnk+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxhbnk+KG51bGwpO1xuICBsaXN0ID0gbmV3IE1hcDxzdHJpbmcsIE5TRnJhbWV3b3JrLklDb2x1bW5WaWV3PigpO1xuICBzZWxlY3Rpb25MaXN0ID0gbmV3IE1hcDxzdHJpbmcsIGFueT4oKTtcbiAgaW5zZXJ0VXBkYXRlRGVsZXRlTm90aWZpZXI6IEJlaGF2aW9yU3ViamVjdDxOb3RpZmllclR5cGUgfCBudWxsPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Tm90aWZpZXJUeXBlIHwgbnVsbD4obnVsbCk7XG4gIGVudmlyb25tZW50OiBhbnk7XG4gIGxpYkNvbmZpZyE6IElDb25uZWN0aW9uO1xuICBmcmFtZXdvcmtJZCE6IHN0cmluZztcbiAgcm9vdENvbmZpZzogYW55O1xuICBwcm94aWVzUGF0aCA9ICdhcGlzL3Byb3hpZXMvdjgnO1xuICBjYXJkQ2xrRGF0YTogYW55O1xuICBDdXJyZW50Q2FyZENsayA9IG5ldyBCZWhhdmlvclN1YmplY3Q8YW55PihudWxsKTtcbiAgY29tcGxldGVSZXNwb25zZTogYW55O1xuICBhZGRpdGlvbmFsRGF0YTogYW55OyAvLyBBZGQgYSBwcm9wZXJ0eSB0byBzdG9yZSBhZGRpdGlvbmFsIGRhdGFcbiAgdXNlckNvdW50RGF0YTogYW55OyAvLyBBZGQgYSBwcm9wZXJ0eSB0byBzdG9yZSB1c2VyIGNvdW50IGRhdGFcbiAgXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcbiAgICBwdWJsaWMgbG9jYWxDb25maWc6IExvY2FsQ29ubmVjdGlvblNlcnZpY2UsXG4gICAgLy8gcHJpdmF0ZSB0cmVlSGllcmFyY2h5U3ZjOiBUcmVlSGllcmFyY2h5U2VydmljZVxuICApIHt9XG5cbiAgZ2V0RnJhbWV3b3JrSW5mbyhfb3JnRGF0YT86YW55LCBfY2hpbGRPcmdEYXRhPzphbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCd0ZXJtcycpO1xuICAgIGlmICh0aGlzLmxvY2FsQ29uZmlnLmNvbm5lY3Rpb25UeXBlID09PSAnb25saW5lJykge1xuICAgICAgbGV0IHVybCA9IGAvJHt0aGlzLnByb3hpZXNQYXRofS9mcmFtZXdvcmsvdjEvcmVhZC9gXG4gICAgICBpZiAoX29yZ0RhdGEpIHtcbiAgICAgICAgdXJsID0gdXJsICsgX29yZ0RhdGEub3JnSGllcmFyY2h5RnJhbWV3b3JrSWQ7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB1cmwgPSB1cmwgKyB0aGlzLmVudmlyb25tZW50LmZyYW1ld29ya05hbWU7XG4gICAgICB9XG4gICAgICByZXR1cm4gdGhpcy5odHRwLmdldChgJHt1cmx9YCwgeyB3aXRoQ3JlZGVudGlhbHM6IHRydWUgfSkucGlwZShcbiAgICAgICAgc3dpdGNoTWFwKChmcmFtZXdvcmtSZXNwb25zZTogYW55KSA9PiB7XG4gICAgICAgICAgY29uc3Qgb3JpZ2luYWxGcmFtZXdvcmtSZXNwb25zZSA9IGZyYW1ld29ya1Jlc3BvbnNlO1xuICAgICAgICAgIHJldHVybiB0aGlzLmdldFNlbGVjdGVkU3RhdGVPcmcoX29yZ0RhdGEpLnBpcGUoXG4gICAgICAgICAgICBzd2l0Y2hNYXAoKG9yZ0xpc3REYXRhOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgdGhpcy5hZGRpdGlvbmFsRGF0YSA9IG9yZ0xpc3REYXRhPy5yZXN1bHQ/LnJlc3BvbnNlPy5jb250ZW50IHx8IFtdO1xuICAgICAgICAgICAgICByZXR1cm4gdGhpcy5nZXRVc2VyUGVyT3JnKCkucGlwZShcbiAgICAgICAgICAgICAgICBtYXAoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgcmV0dXJuIG9yaWdpbmFsRnJhbWV3b3JrUmVzcG9uc2VcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICApO1xuICAgICAgICB9KSxcbiAgICAgICAgdGFwKGFzeW5jIChyZXNwb25zZTogYW55KSA9PiB7XG4gICAgICAgICAgdGhpcy5yZXNldEFsbCgpO1xuICAgICAgICAgIHRoaXMuZm9ybWF0ZURhdGEocmVzcG9uc2UsIF9vcmdEYXRhLCBfY2hpbGRPcmdEYXRhKTtcbiAgICAgICAgICB0aGlzLmNvbXBsZXRlUmVzcG9uc2UgPSByZXNwb25zZS5yZXN1bHQuZnJhbWV3b3JrO1xuICAgICAgICB9KSxcbiAgICAgICAgY2F0Y2hFcnJvcigoZXJyKSA9PiB7XG4gICAgICAgICAgdGhpcy5yZXNldEFsbCgpO1xuICAgICAgICAgIHRoaXMubGlzdC5jbGVhcigpO1xuICAgICAgICAgIHRoaXMuY2F0ZWdvcmllc0hhc2gubmV4dChbXSk7XG4gICAgICAgICAgdGhyb3cgJ0Vycm9yIGluIHNvdXJjZS4gRGV0YWlsczogJyArIGVycjtcbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucmVzZXRBbGwoKTtcbiAgICAgIHRoaXMuZm9ybWF0ZURhdGEoRlJBTUVXT1JLKTtcbiAgICAgIHJldHVybiBvZihGUkFNRVdPUkspO1xuICAgIH1cbiAgfVxuXG4gIHJlYWRUZXJtcyhmcmFtZXdvcmtJZDogc3RyaW5nLCBjYXRlZ29yeUlkOiBzdHJpbmcsIHJlcXVlc3RCb2R5OiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgLyR7dGhpcy5wcm94aWVzUGF0aH0vZnJhbWV3b3JrL3YxL3Rlcm0vc2VhcmNoP2ZyYW1ld29yaz0ke2ZyYW1ld29ya0lkfSZjYXRlZ29yeT0ke2NhdGVnb3J5SWR9YCwgcmVxdWVzdEJvZHkpLnBpcGUoXG4gICAgICBtYXAoKHJlczogYW55KSA9PiByZXMucmVzdWx0KSk7XG4gIH1cblxuICBjcmVhdGVUZXJtKGZyYW1ld29ya0lkOiBzdHJpbmcsIGNhdGVnb3J5SWQ6IHN0cmluZywgcmVxdWVzdEJvZHk6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAvJHt0aGlzLnByb3hpZXNQYXRofS9mcmFtZXdvcmsvdjEvdGVybS9jcmVhdGU/ZnJhbWV3b3JrPSR7ZnJhbWV3b3JrSWR9JmNhdGVnb3J5PSR7Y2F0ZWdvcnlJZH1gLCByZXF1ZXN0Qm9keSk7XG4gIH1cbiBcbiAgY3JlYXRlVGVybXNXcmFwcGVyKGNhdGVnb3J5OiBzdHJpbmcsIHJlcXVlc3RCb2R5OiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGxldCBjYXRlZ29yeUl0ZW06IHN0cmluZztcbiAgICBpZiAoY2F0ZWdvcnkgPT09ICd0aGVtZScpIHtcbiAgICAgIGNhdGVnb3J5SXRlbSA9ICdjb21wZXRlbmN5VGhlbWUnO1xuICAgIH0gZWxzZSB7XG4gICAgICBjYXRlZ29yeUl0ZW0gPSAnY29tcGV0ZW5jeVN1YlRoZW1lJztcbiAgICB9XG4gICBcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYC8ke3RoaXMucHJveGllc1BhdGh9LyR7Y2F0ZWdvcnlJdGVtfS9jcmVhdGUvdGVybWAsIHJlcXVlc3RCb2R5KVxuICAgICAgLnBpcGUobWFwKHJlcyA9PiBfLmdldChyZXMsICdyZXN1bHQnKSkpO1xuICB9XG5cbiAgcmV0aXJlVGVybShmcmFtZXdvcmtJZDogc3RyaW5nLCBjYXRlZ29yeUlkOiBzdHJpbmcsIGNhdGVnb3J5VGVybUNvZGU6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGUoYC8ke3RoaXMucHJveGllc1BhdGh9L2ZyYW1ld29yay92MS90ZXJtL3JldGlyZS8ke2NhdGVnb3J5VGVybUNvZGV9P2ZyYW1ld29yaz0ke2ZyYW1ld29ya0lkfSZjYXRlZ29yeT0ke2NhdGVnb3J5SWR9YCk7XG4gIH1cblxuICByZXRpcmVNdWx0aXBsZVRlcm0oZnJhbWV3b3JrSWQ6IHN0cmluZywgY2F0ZWdvcnlJZDogc3RyaW5nLCByZXF1ZXN0Qm9keTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYC8ke3RoaXMucHJveGllc1BhdGh9L2ZyYW1ld29yay92MS90ZXJtL3JldGlyZT9mcmFtZXdvcms9JHtmcmFtZXdvcmtJZH0mY2F0ZWdvcnk9JHtjYXRlZ29yeUlkfWAsIHJlcXVlc3RCb2R5KTtcbiAgfVxuXG4gIHVwZGF0ZVRlcm0oZnJhbWV3b3JrSWQ6IHN0cmluZywgY2F0ZWdvcnlJZDogc3RyaW5nLCBjYXRlZ29yeVRlcm1Db2RlOiBzdHJpbmcsIHJlcXVlc3RCb2R5OiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucGF0Y2goYC8ke3RoaXMucHJveGllc1BhdGh9L2ZyYW1ld29yay92MS90ZXJtL3VwZGF0ZS8ke2NhdGVnb3J5VGVybUNvZGV9P2ZyYW1ld29yaz0ke2ZyYW1ld29ya0lkfSZjYXRlZ29yeT0ke2NhdGVnb3J5SWR9YCwgcmVxdWVzdEJvZHkpO1xuICB9XG5cbiAgcHVibGlzaEZyYW1ld29yaygpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgLyR7dGhpcy5wcm94aWVzUGF0aH0vZnJhbWV3b3JrL3YxL3B1Ymxpc2gvJHt0aGlzLmVudmlyb25tZW50LmZyYW1ld29ya05hbWV9YCwge30pO1xuICB9XG5cbiAgZ2V0VXVpZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB1dWlkdjQoKTtcbiAgfVxuXG4gIHVwZGF0ZUVudmlyb25tZW50KGVudjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5lbnZpcm9ubWVudCA9IGVudjtcbiAgfVxuXG4gIGdldEVudmlyb21lbnQoKTogYW55IHtcbiAgICByZXR1cm4gdGhpcy5lbnZpcm9ubWVudDtcbiAgfVxuXG4gIGdldEZyYW1ld29ya0lkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZnJhbWV3b3JrSWQ7XG4gIH1cblxuICBnZXROZXh0Q2F0ZWdvcnkoY3VycmVudENhdGVnb3J5OiBzdHJpbmcpOiBOU0ZyYW1ld29yay5JQ2F0ZWdvcnkgfCBudWxsIHtcbiAgICBjb25zdCBjdXJyZW50SW5kZXggPSB0aGlzLmNhdGVnb3JpZXNIYXNoLnZhbHVlLmZpbmRJbmRleCgoYTogTlNGcmFtZXdvcmsuSUNhdGVnb3J5KSA9PiB7XG4gICAgICByZXR1cm4gYS5jb2RlID09PSBjdXJyZW50Q2F0ZWdvcnk7XG4gICAgfSk7XG4gICAgbGV0IGNhdGVnb3J5TGVuZ3RoID0gdGhpcy5jYXRlZ29yaWVzSGFzaC5nZXRWYWx1ZSgpLmxlbmd0aDtcbiAgICByZXR1cm4gKGN1cnJlbnRJbmRleCArIDEpIDwgY2F0ZWdvcnlMZW5ndGggPyB0aGlzLmNhdGVnb3JpZXNIYXNoLmdldFZhbHVlKClbY3VycmVudEluZGV4ICsgMV0gOiBudWxsO1xuICB9XG5cbiAgZ2V0UHJldmlvdXNDYXRlZ29yeShjdXJyZW50Q2F0ZWdvcnk6IHN0cmluZyk6IE5TRnJhbWV3b3JrLklDYXRlZ29yeSB8IG51bGwge1xuICAgIGNvbnN0IGN1cnJlbnRJbmRleCA9IHRoaXMuY2F0ZWdvcmllc0hhc2gudmFsdWUuZmluZEluZGV4KChhOiBOU0ZyYW1ld29yay5JQ2F0ZWdvcnkpID0+IHtcbiAgICAgIHJldHVybiBhLmNvZGUgPT09IGN1cnJlbnRDYXRlZ29yeTtcbiAgICB9KTtcbiAgICByZXR1cm4gKGN1cnJlbnRJbmRleCAtIDEpID49IDAgPyB0aGlzLmNhdGVnb3JpZXNIYXNoLmdldFZhbHVlKClbY3VycmVudEluZGV4IC0gMV0gOiBudWxsO1xuICB9XG5cbiAgZ2V0UGFyZW50VGVybShjdXJyZW50Q2F0ZWdvcnk6IHN0cmluZyk6IGFueSB7XG4gICAgY29uc3QgcGFyZW50ID0gdGhpcy5nZXRQcmV2aW91c0NhdGVnb3J5KGN1cnJlbnRDYXRlZ29yeSkgfHwgbnVsbDtcbiAgICByZXR1cm4gcGFyZW50ID8gdGhpcy5zZWxlY3Rpb25MaXN0LmdldChwYXJlbnQuY29kZSkgOiBudWxsO1xuICB9XG5cbiAgY2hpbGRDbGljayhldmVudDogeyB0eXBlOiBzdHJpbmcsIGRhdGE6IGFueSB9KTogdm9pZCB7XG4gICAgdGhpcy5jdXJyZW50U2VsZWN0aW9uLm5leHQoZXZlbnQpO1xuICB9XG5cbiAgcmVzZXRBbGwoKTogdm9pZCB7XG4gICAgdGhpcy5jYXRlZ29yaWVzSGFzaC5uZXh0KFtdKTtcbiAgICB0aGlzLmN1cnJlbnRTZWxlY3Rpb24ubmV4dChudWxsKTtcbiAgICB0aGlzLnNlbGVjdGlvbkxpc3QuY2xlYXIoKTtcbiAgICB0aGlzLmxpc3QuY2xlYXIoKTtcbiAgfVxuXG4gIGlzTGFzdENvbHVtbihjb2xDb2RlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5jYXRlZ29yaWVzSGFzaC52YWx1ZSAmJiAodGhpcy5jYXRlZ29yaWVzSGFzaC52YWx1ZS5maW5kSW5kZXgoKGE6IE5TRnJhbWV3b3JrLklDYXRlZ29yeSkgPT4ge1xuICAgICAgcmV0dXJuIGEuY29kZSA9PT0gY29sQ29kZTtcbiAgICB9KSkgPT09ICh0aGlzLmNhdGVnb3JpZXNIYXNoLnZhbHVlLmxlbmd0aCAtIDEpO1xuICB9XG5cbiAgcmVtb3ZlSXRlbUZyb21BcnJheShhcnJheTogYW55W10sIGl0ZW06IGFueSk6IGFueVtdIHtcbiAgICAvKiBhc3NpZ24gYSBlbXB0eSBhcnJheSAqL1xuICAgIHZhciB0bXA6IGFueVtdID0gW107XG4gICAgLyogbG9vcCBvdmVyIGFsbCBhcnJheSBpdGVtcyAqL1xuICAgIGZvciAodmFyIGluZGV4IGluIGFycmF5KSB7XG4gICAgICBpZiAoYXJyYXlbaW5kZXhdICE9PSBpdGVtKSB7XG4gICAgICAgIC8qIHB1c2ggdG8gdGVtcG9yYXJ5IGFycmF5IGlmIG5vdCBsaWtlIGl0ZW0gKi9cbiAgICAgICAgdG1wLnB1c2goYXJyYXlbaW5kZXhdKTtcbiAgICAgIH1cbiAgICB9XG4gICAgLyogcmV0dXJuIHRoZSB0ZW1wb3JhcnkgYXJyYXkgKi9cbiAgICByZXR1cm4gdG1wO1xuICB9XG5cbiAgc2V0IHNldFRlcm0ocmVzOiBhbnkpIHtcbiAgICB0aGlzLnRlcm1TdWJqZWN0Lm5leHQocmVzKTtcbiAgICBsZXQgb2xkVGVybXMgPSB0aGlzLmdldFRlcm0gfHwgW107XG4gICAgb2xkVGVybXMucHVzaChyZXMpO1xuICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCd0ZXJtcycsIEpTT04uc3RyaW5naWZ5KG9sZFRlcm1zKSk7XG4gIH1cblxuICBnZXQgZ2V0VGVybSgpOiBhbnlbXSB7XG4gICAgcmV0dXJuIEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3Rlcm1zJykgfHwgJ1tdJykgfHwgW107XG4gIH1cblxuICB1cGRhdGVBZnRlckFkZE9yRWRpdFN1YmplY3QocmVzOiBhbnkpOiB2b2lkIHtcbiAgICBpZiAocmVzKSB7XG4gICAgICB0aGlzLmFmdGVyQWRkT3JFZGl0U3ViamVjdC5uZXh0KHJlcyk7XG4gICAgfSBcbiAgfVxuXG4gIGdldExvY2FsVGVybXNCeVBhcmVudChwYXJlbnRDb2RlOiBzdHJpbmcpOiBhbnlbXSB7XG4gICAgY29uc3QgZmlsdGVyZWREYXRhID0gdGhpcy5nZXRUZXJtLmZpbHRlcih4ID0+IHtcbiAgICAgIHJldHVybiB4LnBhcmVudCAmJiB4LnBhcmVudC5jYXRlZ29yeSA9PT0gcGFyZW50Q29kZTtcbiAgICB9KSB8fCBbXTtcblxuICAgIHJldHVybiBmaWx0ZXJlZERhdGEubWFwKHggPT4ge1xuICAgICAgcmV0dXJuIHgudGVybTtcbiAgICB9KTtcbiAgfVxuXG4gIGdldExvY2FsVGVybXNCeUNhdGVnb3J5KHBhcmVudENvZGU6IHN0cmluZyk6IGFueVtdIHtcbiAgICBjb25zdCBmaWx0ZXJlZERhdGEgPSB0aGlzLmdldFRlcm0uZmlsdGVyKHggPT4ge1xuICAgICAgcmV0dXJuIHgudGVybSAmJiB4LnRlcm0uY2F0ZWdvcnkgPT09IHBhcmVudENvZGU7XG4gICAgfSkgfHwgW107XG5cbiAgICByZXR1cm4gZmlsdGVyZWREYXRhO1xuICB9XG5cbiAgZ2V0TG9jYWxUZXJtc0NhdGVnb3J5KGNhdGVnb3J5OiBzdHJpbmcpOiBhbnlbXSB7XG4gICAgY29uc3QgZmlsdGVyZWREYXRhID0gdGhpcy5nZXRUZXJtLmZpbHRlcih4ID0+IHtcbiAgICAgIHJldHVybiB4LmNhdGVnb3J5ID09PSBjYXRlZ29yeTtcbiAgICB9KSB8fCBbXTtcblxuICAgIHJldHVybiBmaWx0ZXJlZERhdGE7XG4gIH1cblxuICBmb3JtYXRlRGF0YShyZXNwb25zZTogYW55LCBfb3JnRGF0YT86IGFueSwgX2NoaWxkT3JnRGF0YT86IGFueSk6IHZvaWQge1xuICAgIHRoaXMuZnJhbWV3b3JrSWQgPSByZXNwb25zZS5yZXN1bHQuZnJhbWV3b3JrLmNvZGU7IFxuICAgIGxldCBjYXRlZ29yaWVzID0gcmVzcG9uc2UucmVzdWx0LmZyYW1ld29yay5jYXRlZ29yaWVzO1xuICAgIGlmIChfY2hpbGRPcmdEYXRhPy5pZCAhPT0gX29yZ0RhdGE/LmlkKSB7XG4gICAgICBjYXRlZ29yaWVzID0gdGhpcy5nZXRPcmdGcm9tQ2hpbGRPbndhcmRzKGNhdGVnb3JpZXMgfHwgW10sIF9jaGlsZE9yZ0RhdGEgfHwgJycpXG4gICAgfVxuICAgIGlmIChjYXRlZ29yaWVzPy5sZW5ndGggPiAwKSB7XG4gICAgICBjYXRlZ29yaWVzID0gXy5zb3J0QnkoY2F0ZWdvcmllcywgJ2luZGV4Jyk7XG4gICAgfVxuICAgIHJlc3BvbnNlLnJlc3VsdC5mcmFtZXdvcmsuY2F0ZWdvcmllcyA9IGNhdGVnb3JpZXM7XG4gICAgKGNhdGVnb3JpZXMpLmZvckVhY2goKGE6IGFueSwgX2lkeDogbnVtYmVyKSA9PiB7XG4gICAgICB0aGlzLmxpc3Quc2V0KGEuY29kZSwge1xuICAgICAgICBjb2RlOiBhLmNvZGUgfHwgJycsXG4gICAgICAgIGlkZW50aWZpZXI6IGEuaWRlbnRpZmllcixcbiAgICAgICAgaW5kZXg6IChfaWR4ICsgMSksXG4gICAgICAgIG5hbWU6IGEubmFtZSxcbiAgICAgICAgc2VsZWN0ZWQ6IGEuc2VsZWN0ZWQsXG4gICAgICAgIHN0YXR1czogYS5zdGF0dXMgYXMgTlNGcmFtZXdvcmsuVE5vZGVTdGF0dXMsXG4gICAgICAgIGRlc2NyaXB0aW9uOiBhLmRlc2NyaXB0aW9uLFxuICAgICAgICB0cmFuc2xhdGlvbnM6IGEudHJhbnNsYXRpb25zLFxuICAgICAgICBjYXRlZ29yeTogYS5jYXRlZ29yeSxcbiAgICAgICAgYXNzb2NpYXRpb25zOiBhLmFzc29jaWF0aW9ucyxcbiAgICAgICAgY29uZmlnOiB0aGlzLmdldENvbmZpZyhhLmNvZGUsX2NoaWxkT3JnRGF0YSksXG4gICAgICAgIGNoaWxkcmVuOiAoYS50ZXJtcyB8fCBbXSkubWFwKChjOiBhbnkpID0+IHtcbiAgICAgICAgICBjb25zdCBhc3NvY2lhdGlvbnMgPSBjLmFzc29jaWF0aW9ucyB8fCBbXTtcbiAgICAgICAgICBjb25zdCB0ZW1wQ291bnQgPSB0aGlzLmdldFVzZXJDb3VudChjKVxuICAgICAgICAgIE9iamVjdC5hc3NpZ24oYywgeyB1c2VyQ291bnQ6IHRlbXBDb3VudCB9KVxuICAgICAgICAgIGlmIChhc3NvY2lhdGlvbnMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgT2JqZWN0LmFzc2lnbihjLCB7IGNoaWxkcmVuOiBhc3NvY2lhdGlvbnMgfSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBjO1xuICAgICAgICB9KVxuICAgICAgfSlcbiAgICB9KVxuICAgIFxuICAgIGNvbnN0IGFsbENhdGVnb3JpZXM6IE5TRnJhbWV3b3JrLklDYXRlZ29yeVtdID0gW107XG4gICAgdGhpcy5saXN0LmZvckVhY2goYSA9PiB7XG4gICAgICBhbGxDYXRlZ29yaWVzLnB1c2goe1xuICAgICAgICBjb2RlOiBhLmNvZGUsXG4gICAgICAgIGlkZW50aWZpZXI6IGEuaWRlbnRpZmllcixcbiAgICAgICAgaW5kZXg6IGEuaW5kZXgsXG4gICAgICAgIG5hbWU6IGEubmFtZSxcbiAgICAgICAgc3RhdHVzOiBhLnN0YXR1cyBhcyBOU0ZyYW1ld29yay5UTm9kZVN0YXR1cyxcbiAgICAgICAgZGVzY3JpcHRpb246IGEuZGVzY3JpcHRpb24sXG4gICAgICAgIHRyYW5zbGF0aW9uczogYS50cmFuc2xhdGlvbnMsXG4gICAgICB9IGFzIE5TRnJhbWV3b3JrLklDYXRlZ29yeSk7XG4gICAgfSk7XG4gICAgdGhpcy5jYXRlZ29yaWVzSGFzaC5uZXh0KGFsbENhdGVnb3JpZXMpO1xuICB9XG5cbiAgZ2V0T3JnRnJvbUNoaWxkT253YXJkcyhfY2F0ZWdvcmllczogYW55LCBfY2hpbGRPcmdEYXRhOiBhbnkpIHtcbiAgICBjb25zdCBjb2xJbmRleFRvQmVSZW1vdmVkOiBudW1iZXJbXSA9IFtdXG4gICAgbGV0IHRlcm1Gb3VuZEluZGV4OiBhbnkgPSAtMTtcbiAgICBpZiAoX2NhdGVnb3JpZXM/Lmxlbmd0aCA+IDApIHtcbiAgICAgIF9jYXRlZ29yaWVzLmZvckVhY2goKGVsZTphbnkpID0+IHtcbiAgICAgICAgaWYgKGVsZT8udGVybXM/Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgICBjb25zdCB0ZXJtRm91bmQgPSBlbGUudGVybXMuZmluZCgodGVybTogYW55KSA9PiB0ZXJtLm5hbWUgPT09IF9jaGlsZE9yZ0RhdGEuY2hhbm5lbCk7XG4gICAgICAgICAgaWYgKCF0ZXJtRm91bmQgJiYgdGVybUZvdW5kSW5kZXggPT09IC0xKSB7XG4gICAgICAgICAgICBjb2xJbmRleFRvQmVSZW1vdmVkLnB1c2goZWxlLmluZGV4KVxuICAgICAgICAgIH0gZWxzZSBpZih0ZXJtRm91bmRJbmRleCA9PT0gLTEpIHtcbiAgICAgICAgICAgIHRlcm1Gb3VuZEluZGV4ID0gZWxlLmluZGV4O1xuICAgICAgICAgICAgZWxlLnRlcm1zID0gZWxlLnRlcm1zLmZpbHRlcigodGVybTogYW55KSA9PiB0ZXJtLm5hbWUgPT09IF9jaGlsZE9yZ0RhdGEuY2hhbm5lbCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KVxuICAgIH1cbiAgICByZXR1cm4gX2NhdGVnb3JpZXMuZmlsdGVyKChjYXRlZ29yeTogYW55KSA9PiAhY29sSW5kZXhUb0JlUmVtb3ZlZC5pbmNsdWRlcyhjYXRlZ29yeS5pbmRleCkpO1xuICB9XG5cbiAgcmVtb3ZlT2xkTGluZSgpOiB2b2lkIHtcbiAgICBjb25zdCBlbGVzID0gQXJyYXkuZnJvbShkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCdsZWFkZXItbGluZScpIHx8IFtdKTtcbiAgICBpZiAoZWxlcy5sZW5ndGggPiAwKSB7XG4gICAgICBlbGVzLmZvckVhY2goZWxlID0+IGVsZS5yZW1vdmUoKSk7XG4gICAgfVxuICB9XG5cbiAgc2V0Q29uZmlnKGNvbmZpZzogYW55KTogdm9pZCB7XG4gICAgdGhpcy5yb290Q29uZmlnID0gY29uZmlnO1xuICB9XG5cbiAgZ2V0Q29uZmlnKGNvZGU6IHN0cmluZyxfY2hpbGRPcmdEYXRhPzogYW55KTogYW55IHtcbiAgICBsZXQgY2F0ZWdvcnlDb25maWc6IGFueTtcbiAgICBpZiAodGhpcy5yb290Q29uZmlnICYmIHRoaXMucm9vdENvbmZpZ1swXSkge1xuICAgICAgdGhpcy5yb290Q29uZmlnLmZvckVhY2goKGNvbmZpZzogYW55KSA9PiB7XG4gICAgICAgIGlmICh0aGlzLmZyYW1ld29ya0lkID09IGNvbmZpZy5mcmFtZXdvcmtJZCkge1xuICAgICAgICAgIGNhdGVnb3J5Q29uZmlnID0gY29uZmlnLmNvbmZpZy5maW5kKChvYmo6IGFueSkgPT4gb2JqLmNhdGVnb3J5ID09IGNvZGUpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gICAgaWYgKCFjYXRlZ29yeUNvbmZpZykge1xuICAgICAgY29uc3QgY29uZmlnID0gdGhpcy5yb290Q29uZmlnLmNvbmZpZ1swXVxuICAgICAgcmV0dXJuIGNvbmZpZ1xuICAgIH1cbiAgICByZXR1cm4gY2F0ZWdvcnlDb25maWc7XG4gIH1cblxuICBnZXRBbGxTZWxlY3RlZFRlcm1zKCk6IGFueVtdIHtcbiAgICBjb25zdCBzZWxlY3RlZFRlcm1zOiBhbnlbXSA9IFtdO1xuICAgIHRoaXMubGlzdC5mb3JFYWNoKGwgPT4ge1xuICAgICAgaWYgKGwuY2hpbGRyZW4gJiYgbC5jaGlsZHJlbi5sZW5ndGgpIHtcbiAgICAgICAgbC5jaGlsZHJlbi5mb3JFYWNoKGMgPT4ge1xuICAgICAgICAgIGlmIChjLnNlbGVjdGVkKSB7XG4gICAgICAgICAgICBzZWxlY3RlZFRlcm1zLnB1c2goYyk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gc2VsZWN0ZWRUZXJtcztcbiAgfVxuXG4gIGdldFByZXZpb3VzU2VsZWN0ZWRUZXJtcyhjb2RlOiBzdHJpbmcpOiBhbnlbXSB7XG4gICAgbGV0IHByZXZTZWxlY3RlZFRlcm1zOiBhbnlbXSA9IFtdO1xuICAgIHRoaXMuc2VsZWN0aW9uTGlzdC5mb3JFYWNoKHNsID0+IHtcbiAgICAgIGlmIChzbC5jYXRlZ29yeSAhPT0gY29kZSkge1xuICAgICAgICBwcmV2U2VsZWN0ZWRUZXJtcy5wdXNoKHNsKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gcHJldlNlbGVjdGVkVGVybXM7XG4gIH1cblxuICBnZXRLY21TZWFyY2hMaXN0KHJlcXVlc3RCb2R5OiBhbnksIGNhdGVnb3J5OiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGxldCBjYXRlZ29yeUl0ZW06IHN0cmluZztcbiAgICBpZiAoY2F0ZWdvcnkgPT09ICd0aGVtZScpIHtcbiAgICAgIGNhdGVnb3J5SXRlbSA9ICdjb21wZXRlbmN5VGhlbWUnO1xuICAgIH0gZWxzZSB7XG4gICAgICBjYXRlZ29yeUl0ZW0gPSAnY29tcGV0ZW5jeVN1YlRoZW1lJztcbiAgICB9XG4gICAgXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAvJHt0aGlzLnByb3hpZXNQYXRofS8ke2NhdGVnb3J5SXRlbX0vc2VhcmNoYCwgcmVxdWVzdEJvZHkpXG4gICAgICAucGlwZShtYXAocmVzID0+IF8uZ2V0KHJlcywgJ3Jlc3VsdC5yZXN1bHQnKSkpO1xuICB9XG5cbiAgdXBkYXRlTG9jYWxMaXN0KGl0ZW06IGFueSwgcGFyZW50OiBhbnksIHNlbGVjdGVkVGVybUFycmF5OiBhbnlbXSwgdXBkYXRlVHlwZTogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKGl0ZW0gJiYgaXRlbS5jaGlsZHJlbiAmJiBpdGVtLmNoaWxkcmVuLmxlbmd0aCkge1xuICAgICAgaWYgKHVwZGF0ZVR5cGUgPT09ICdkZWxldGUnKSB7XG4gICAgICAgIGl0ZW0uY2hpbGRyZW4uZm9yRWFjaCgoaXRtRGF0YTogYW55KSA9PiB7XG4gICAgICAgICAgaWYgKGl0bURhdGEuaWRlbnRpZmllciA9PT0gcGFyZW50LmlkZW50aWZpZXIpIHtcbiAgICAgICAgICAgIGNvbnN0IGFzc29jaWF0aW9uTGlzdDogYW55ID0gXy5kaWZmZXJlbmNlV2l0aChpdG1EYXRhLmFzc29jaWF0aW9ucywgc2VsZWN0ZWRUZXJtQXJyYXksIChhOmFueSwgYjogYW55KSA9PiBhLmlkZW50aWZpZXIgPT09IGIuaWRlbnRpZmllcik7XG4gICAgICAgICAgICBjb25zdCBjaGlsZHJlbkxpc3Q6IGFueSA9IF8uZGlmZmVyZW5jZVdpdGgoaXRtRGF0YS5jaGlsZHJlbiwgc2VsZWN0ZWRUZXJtQXJyYXksIChhOmFueSwgYjogYW55KSA9PiBhLmlkZW50aWZpZXIgPT09IGIuaWRlbnRpZmllcik7XG4gICAgICAgICAgICBpdG1EYXRhWydhc3NvY2lhdGlvbnMnXSA9IGFzc29jaWF0aW9uTGlzdDtcbiAgICAgICAgICAgIGl0bURhdGFbJ2NoaWxkcmVuJ10gPSBjaGlsZHJlbkxpc3Q7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChpdG1EYXRhLmNoaWxkcmVuKSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZUxvY2FsTGlzdChpdG1EYXRhLCBwYXJlbnQsIHNlbGVjdGVkVGVybUFycmF5LCB1cGRhdGVUeXBlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaXRlbS5jaGlsZHJlbi5mb3JFYWNoKChpdG1EYXRhOiBhbnkpID0+IHtcbiAgICAgICAgICBpZiAoaXRtRGF0YS5pZGVudGlmaWVyID09PSBwYXJlbnQuaWRlbnRpZmllcikge1xuICAgICAgICAgICAgbGV0IGRpZmZlcmVuY2VEYXRhOiBhbnlbXSA9IFtdO1xuICAgICAgICAgICAgaWYgKGl0bURhdGEgJiYgaXRtRGF0YS5jaGlsZHJlbiAmJiBpdG1EYXRhLmNoaWxkcmVuLmxlbmd0aCkge1xuICAgICAgICAgICAgICBkaWZmZXJlbmNlRGF0YSAgPSBfLmRpZmZlcmVuY2VCeShzZWxlY3RlZFRlcm1BcnJheSwgaXRtRGF0YS5jaGlsZHJlbiwgJ2lkZW50aWZpZXInKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIGRpZmZlcmVuY2VEYXRhID0gc2VsZWN0ZWRUZXJtQXJyYXk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpdG1EYXRhWydhc3NvY2lhdGlvbnMnXSA9IGl0bURhdGEgJiYgaXRtRGF0YS5hc3NvY2lhdGlvbnMgPyBbLi4uaXRtRGF0YS5hc3NvY2lhdGlvbnMsIC4uLmRpZmZlcmVuY2VEYXRhXSA6IGRpZmZlcmVuY2VEYXRhO1xuICAgICAgICAgICAgaXRtRGF0YVsnY2hpbGRyZW4nXSA9IGl0bURhdGEgJiYgaXRtRGF0YS5jaGlsZHJlbiA/IFsuLi5pdG1EYXRhLmNoaWxkcmVuLCAuLi5kaWZmZXJlbmNlRGF0YV0gOiBkaWZmZXJlbmNlRGF0YTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGl0bURhdGEuY2hpbGRyZW4pIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlTG9jYWxMaXN0KGl0bURhdGEsIHBhcmVudCwgc2VsZWN0ZWRUZXJtQXJyYXksIHVwZGF0ZVR5cGUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgdXBkYXRlRnJhbWV3b3JrTGlzdChjb2x1bW5Db2RlOiBzdHJpbmcsIHBhcmVudERhdGE6IGFueSwgc2VsZWN0ZWRUZXJtQXJyYXk6IGFueVtdLCB1cGRhdGVUeXBlPzogc3RyaW5nKTogdm9pZCB7XG4gICAgbGV0IGxpc3REYXRhOiBhbnkgPSB0aGlzLmxpc3QuZ2V0KGNvbHVtbkNvZGUpO1xuICAgIGlmICh1cGRhdGVUeXBlID09PSAnZGVsZXRlJykge1xuICAgICAgY29uc3QgYXNzb2NpYXRpb25MaXN0OiBhbnkgPSBfLmRpZmZlcmVuY2VXaXRoKGxpc3REYXRhLmFzc29jaWF0aW9ucywgc2VsZWN0ZWRUZXJtQXJyYXksIChhOmFueSwgYjogYW55KSA9PiBhLmlkZW50aWZpZXIgPT09IGIuaWRlbnRpZmllcik7XG4gICAgICBjb25zdCBjaGlsZHJlbkxpc3Q6IGFueSA9IF8uZGlmZmVyZW5jZVdpdGgobGlzdERhdGEuY2hpbGRyZW4sIHNlbGVjdGVkVGVybUFycmF5LCAoYTphbnksIGI6IGFueSkgPT4gYS5pZGVudGlmaWVyID09PSBiLmlkZW50aWZpZXIpO1xuICAgICAgbGlzdERhdGFbJ2Fzc29jaWF0aW9ucyddID0gYXNzb2NpYXRpb25MaXN0O1xuICAgICAgbGlzdERhdGFbJ2NoaWxkcmVuJ10gPSBjaGlsZHJlbkxpc3Q7XG5cbiAgICAgIHRoaXMuc2VsZWN0aW9uTGlzdC5mb3JFYWNoKChzZWxlY3RlZERhdGE6IGFueSkgPT4ge1xuICAgICAgICBsZXQgbGlzdERhdGE6IGFueSA9IHRoaXMubGlzdC5nZXQoc2VsZWN0ZWREYXRhLmNhdGVnb3J5KTtcbiAgICAgICAgaWYgKGxpc3REYXRhICYmIGxpc3REYXRhLmNoaWxkcmVuICYmIGxpc3REYXRhLmNoaWxkcmVuLmxlbmd0aCkge1xuICAgICAgICAgIHRoaXMudXBkYXRlTG9jYWxMaXN0KGxpc3REYXRhLCBwYXJlbnREYXRhLCBzZWxlY3RlZFRlcm1BcnJheSwgdXBkYXRlVHlwZSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBsZXQgZGlmZmVyZW5jZURhdGE6IGFueVtdID0gW107XG4gICAgICBpZiAobGlzdERhdGEgJiYgbGlzdERhdGEuY2hpbGRyZW4gJiYgbGlzdERhdGEuY2hpbGRyZW4ubGVuZ3RoKSB7XG4gICAgICAgIGRpZmZlcmVuY2VEYXRhID0gXy5kaWZmZXJlbmNlQnkoc2VsZWN0ZWRUZXJtQXJyYXksIGxpc3REYXRhLmNoaWxkcmVuLCAnaWRlbnRpZmllcicpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZGlmZmVyZW5jZURhdGEgPSBzZWxlY3RlZFRlcm1BcnJheTtcbiAgICAgIH1cbiAgICAgIGxpc3REYXRhWydhc3NvY2lhdGlvbnMnXSA9IGxpc3REYXRhICYmIGxpc3REYXRhLmFzc29jaWF0aW9ucyA/IFsuLi5saXN0RGF0YS5hc3NvY2lhdGlvbnMsIC4uLmRpZmZlcmVuY2VEYXRhXSA6IGRpZmZlcmVuY2VEYXRhO1xuICAgICAgbGlzdERhdGFbJ2NoaWxkcmVuJ10gPSBsaXN0RGF0YSAmJiBsaXN0RGF0YS5jaGlsZHJlbiA/IFsuLi5saXN0RGF0YS5jaGlsZHJlbiwgLi4uZGlmZmVyZW5jZURhdGFdIDogZGlmZmVyZW5jZURhdGE7XG5cbiAgICAgIHRoaXMuc2VsZWN0aW9uTGlzdC5mb3JFYWNoKChzZWxlY3RlZERhdGE6IGFueSkgPT4ge1xuICAgICAgICBsZXQgbGlzdERhdGE6IGFueSA9IHRoaXMubGlzdC5nZXQoc2VsZWN0ZWREYXRhLmNhdGVnb3J5KTtcbiAgICAgICAgaWYgKGxpc3REYXRhICYmIGxpc3REYXRhLmNoaWxkcmVuICYmIGxpc3REYXRhLmNoaWxkcmVuLmxlbmd0aCkge1xuICAgICAgICAgIHRoaXMudXBkYXRlTG9jYWxMaXN0KGxpc3REYXRhLCBwYXJlbnREYXRhLCBzZWxlY3RlZFRlcm1BcnJheSwgdXBkYXRlVHlwZSB8fCAnJyk7XG4gICAgICAgIH1cbiAgICAgIH0pOyBcbiAgICB9XG4gIH1cblxuICBnZXRGcmFtZXdvcmtSZWFkKGZyYW1lV29ya0lkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGlmICh0aGlzLmxvY2FsQ29uZmlnLmNvbm5lY3Rpb25UeXBlID09PSAnb25saW5lJykge1xuICAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYC8ke3RoaXMucHJveGllc1BhdGh9L2ZyYW1ld29yay92MS9yZWFkLyR7ZnJhbWVXb3JrSWR9YCwgeyB3aXRoQ3JlZGVudGlhbHM6IHRydWUgfSkucGlwZShcbiAgICAgICAgbWFwKChyZXNwb25zZTogYW55KSA9PiBfLmdldChyZXNwb25zZSwgJ3Jlc3VsdC5mcmFtZXdvcmsnKSlcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBvZih7fSk7XG4gICAgfVxuICB9XG5cbiAgZ2V0Q29uZmlnT2ZDYXRlZ29yeUNvbmZpZ0J5RnJhbWVXb3JrSWQoY29kZTogc3RyaW5nLCBmcmFtZXdvcmtJZDogc3RyaW5nKTogYW55IHtcbiAgICBsZXQgY2F0ZWdvcnlDb25maWc6IGFueTtcbiAgICBpZiAodGhpcy5yb290Q29uZmlnICYmIHRoaXMucm9vdENvbmZpZ1swXSkge1xuICAgICAgdGhpcy5yb290Q29uZmlnLmZvckVhY2goKGNvbmZpZzogYW55KSA9PiB7XG4gICAgICAgIGlmIChmcmFtZXdvcmtJZCA9PSBjb25maWcuZnJhbWV3b3JrSWQpIHtcbiAgICAgICAgICBjYXRlZ29yeUNvbmZpZyA9IGNvbmZpZy5jb25maWcuZmluZCgob2JqOiBhbnkpID0+IG9iai5jYXRlZ29yeSA9PSBjb2RlKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiBjYXRlZ29yeUNvbmZpZztcbiAgfVxuXG4gIGdldENvbmZpZ0J5RnJhbWVXb3JrSWQoZnJhbWV3b3JrSWQ6IHN0cmluZyk6IGFueSB7XG4gICAgbGV0IGNhdGVnb3J5Q29uZmlnOiBhbnk7XG4gICAgaWYgKHRoaXMucm9vdENvbmZpZyAmJiB0aGlzLnJvb3RDb25maWdbMF0pIHtcbiAgICAgIHRoaXMucm9vdENvbmZpZy5mb3JFYWNoKChjb25maWc6IGFueSkgPT4ge1xuICAgICAgICBpZiAoZnJhbWV3b3JrSWQgPT0gY29uZmlnLmZyYW1ld29ya0lkKSB7XG4gICAgICAgICAgY2F0ZWdvcnlDb25maWcgPSBjb25maWc7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gY2F0ZWdvcnlDb25maWc7XG4gIH1cblxuICB1cGRhdGVGdWxsVGVybURhdGFMb2NhbE1hcChfY29sdW1uQ29kZTogc3RyaW5nLCBwYXJlbnREYXRhOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdGlvbkxpc3QuZm9yRWFjaCgoc2VsZWN0ZWREYXRhOiBhbnkpID0+IHtcbiAgICAgIGxldCBsaXN0RGF0YTogYW55ID0gdGhpcy5saXN0LmdldChzZWxlY3RlZERhdGEuY2F0ZWdvcnkpO1xuICAgICAgaWYgKGxpc3REYXRhICYmIGxpc3REYXRhLmNoaWxkcmVuICYmIGxpc3REYXRhLmNoaWxkcmVuLmxlbmd0aCkge1xuICAgICAgICB0aGlzLnVwZGF0ZUxvY2FsTGlzdFRlcm0obGlzdERhdGEsIHBhcmVudERhdGEpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgdXBkYXRlTG9jYWxMaXN0VGVybShpdGVtOiBhbnksIHBhcmVudDogYW55KTogdm9pZCB7XG4gICAgaWYgKGl0ZW0gJiYgaXRlbS5jaGlsZHJlbiAmJiBpdGVtLmNoaWxkcmVuLmxlbmd0aCkge1xuICAgICAgaXRlbS5jaGlsZHJlbi5mb3JFYWNoKChpdG1EYXRhOiBhbnkpID0+IHtcbiAgICAgICAgaWYgKGl0bURhdGEuaWRlbnRpZmllciA9PT0gcGFyZW50LmlkZW50aWZpZXIpIHtcbiAgICAgICAgICBpdG1EYXRhWydkZXNjcmlwdGlvbiddID0gcGFyZW50WydkZXNjcmlwdGlvbiddO1xuICAgICAgICAgIGl0bURhdGFbJ2FkZGl0aW9uYWxQcm9wZXJ0aWVzJ10gPSBwYXJlbnRbJ2FkZGl0aW9uYWxQcm9wZXJ0aWVzJ107XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGl0bURhdGEuY2hpbGRyZW4pIHtcbiAgICAgICAgICB0aGlzLnVwZGF0ZUxvY2FsTGlzdFRlcm0oaXRtRGF0YSwgcGFyZW50KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBnZXRTZWxlY3RlZFN0YXRlT3JnKF9vcmdEYXRhPzogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBkZWJ1Z2dlclxuICAgIGNvbnN0IHJlcXVlc3RCb2R5ID0ge1xuICAgICAgICByZXF1ZXN0OiB7XG4gICAgICAgICAgZmlsdGVyczoge1xuICAgICAgICAgICAgc3RhdHVzOiAxLFxuICAgICAgICAgICAgbWluaXN0cnlPclN0YXRlVHlwZTogKF9vcmdEYXRhKSA/XG4gICAgICAgICAgICAgIF9vcmdEYXRhLnNiT3JnVHlwZSA6ICcnLFxuICAgICAgICAgICAgbWluaXN0cnlPclN0YXRlSWQ6IChfb3JnRGF0YT8uaWRlbnRpZmllcikgPyBcbiAgICAgICAgICAgICAgX29yZ0RhdGE/LmlkZW50aWZpZXIgOiAoX29yZ0RhdGE/LnJvb3RPcmdJZCkgPyBfb3JnRGF0YS5yb290T3JnSWQgOiAnJ1xuICAgICAgICAgIH0sXG4gICAgICAgICAgc29ydF9ieToge1xuICAgICAgICAgICAgY3JlYXRlZERhdGU6IFwiZGVzY1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBsaW1pdDogOTk5OSxcbiAgICAgICAgICBvZmZzZXQ6IDAsXG4gICAgICAgICAgZmllbGRzOiBbXG4gICAgICAgICAgICAnaWRlbnRpZmllcicsXG4gICAgICAgICAgICAnb3JnTmFtZScsXG4gICAgICAgICAgICAnZGVzY3JpcHRpb24nLFxuICAgICAgICAgICAgJ3BhcmVudE9yZ05hbWUnLFxuICAgICAgICAgICAgJ21pbmlzdHJ5T3JTdGF0ZUlkJyxcbiAgICAgICAgICAgICdtaW5pc3RyeU9yU3RhdGVUeXBlJyxcbiAgICAgICAgICAgICdtaW5pc3RyeU9yU3RhdGVOYW1lJywgXG4gICAgICAgICAgICAnc2JPcmdTdWJUeXBlJyxcbiAgICAgICAgICAgICdyb290T3JnSWQnXG4gICAgICAgICAgXVxuICAgICAgICB9XG4gICAgICB9ICAgIFxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHtBUElfRU5EUE9JTlQuT1JHX1YxX1NFQVJDSH1gLCByZXF1ZXN0Qm9keSkucGlwZShcbiAgICAgIGNhdGNoRXJyb3IoZXJyb3IgPT4ge1xuICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBmZXRjaGluZyBPcmcgZGF0YTonLCBlcnJvcik7XG4gICAgICAgIC8vIFJldHVybiBlbXB0eSBkYXRhIHRvIGNvbnRpbnVlIHRoZSBjaGFpbiBldmVuIGlmIHRoaXMgQVBJIGZhaWxzXG4gICAgICAgIHJldHVybiBvZih7fSk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGdldFVzZXJQZXJPcmcoX29yZ0RhdGE/OiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGNvbnN0IG9yZ0lkcyA9IHRoaXMuYWRkaXRpb25hbERhdGEubWFwKChvcmc6IGFueSkgPT4gb3JnLmlkZW50aWZpZXIpO1xuICAgIGNvbnN0IHJlcXVlc3RCb2R5ID0ge1xuICAgICAgcmVxdWVzdDoge1xuICAgICAgICBmaWx0ZXJzOiB7XG4gICAgICAgICAgICByb290T3JnSWQ6IG9yZ0lkc1xuICAgICAgICB9LFxuICAgICAgICBmaWVsZHM6IFtcbiAgICAgICAgICAgICdpZGVudGlmaWVyJyxcbiAgICAgICAgICAgICdyb290T3JnSWQnXG4gICAgICAgICAgXSxcbiAgICAgICAgbGltaXQ6IDEsXG4gICAgICAgIGZhY2V0czogW1xuICAgICAgICAgICAgXCJyb290T3JnSWRcIlxuICAgICAgICBdLFxuICAgICAgICBzb3J0X2J5OiB7XG4gICAgICAgICAgICBcImNyZWF0ZWREYXRlXCI6IFwiZGVzY1wiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgY29uc3Qgb3JnSWRDb3VudHM6IHsgaWQ6IHN0cmluZywgY291bnQ6IG51bWJlciB9W10gPSBbXTtcbiAgICBpZiAodGhpcy5hZGRpdGlvbmFsRGF0YSAmJiB0aGlzLmFkZGl0aW9uYWxEYXRhLmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMuYWRkaXRpb25hbERhdGEuZm9yRWFjaCgob3JnOiBhbnkpID0+IHtcbiAgICAgICAgaWYgKG9yZy5pZGVudGlmaWVyKSB7XG4gICAgICAgICAgb3JnSWRDb3VudHMucHVzaCh7XG4gICAgICAgICAgICBpZDogb3JnLmlkZW50aWZpZXIsXG4gICAgICAgICAgICBjb3VudDogMCBcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke0FQSV9FTkRQT0lOVC5VU0VSU19TRUFSQ0h9YCwgcmVxdWVzdEJvZHkpLnBpcGUoXG4gICAgICBtYXAoKHJlczogYW55KSA9PiB7XG4gICAgICAgIGlmIChyZXMgJiYgcmVzLnJlc3VsdCAmJiByZXMucmVzdWx0LnJlc3BvbnNlICYmIHJlcy5yZXN1bHQucmVzcG9uc2UuY291bnQpe1xuICAgICAgICBjb25zdCBmYWNldHNWYWx1ZSA9IHJlcy5yZXN1bHQucmVzcG9uc2UuZmFjZXRzIHx8IFtdOyAgXG4gICAgICAgICAgaWYgKGZhY2V0c1ZhbHVlICYmIGZhY2V0c1ZhbHVlLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGNvbnN0IG9yZ0ZhY2V0ID0gZmFjZXRzVmFsdWUuZmluZCgoZmFjZXQ6IGFueSkgPT4gZmFjZXQubmFtZSA9PT0gJ3Jvb3RPcmdJZCcpO1xuICAgICAgICAgICAgaWYgKG9yZ0ZhY2V0ICYmIG9yZ0ZhY2V0LnZhbHVlcykge1xuICAgICAgICAgICAgICBvcmdGYWNldC52YWx1ZXMuZm9yRWFjaCgodmFsdWU6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IG9yZ0luZGV4ID0gb3JnSWRDb3VudHMuZmluZEluZGV4KG9yZyA9PiBvcmcuaWQgPT09IHZhbHVlLm5hbWUpO1xuICAgICAgICAgICAgICAgIGlmIChvcmdJbmRleCAhPT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgIG9yZ0lkQ291bnRzW29yZ0luZGV4XS5jb3VudCA9IHZhbHVlLmNvdW50IHx8IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy51c2VyQ291bnREYXRhID0gb3JnSWRDb3VudHM7XG4gICAgICB9KSxcbiAgICAgIGNhdGNoRXJyb3IoZXJyb3IgPT4ge1xuICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBmZXRjaGluZyB1c2VyIGNvdW50IGRhdGE6JywgZXJyb3IpO1xuICAgICAgICByZXR1cm4gb2Yoe30pO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgZ2V0VXNlckNvdW50KHRlcm06IGFueSk6IG51bWJlciB7XG4gICAgaWYgKHRlcm0gJiYgdGVybS5hZGRpdGlvbmFsUHJvcGVydGllcyAmJiB0ZXJtLmFkZGl0aW9uYWxQcm9wZXJ0aWVzLm9yZ0lkKSB7XG4gICAgICBpZiAodGhpcy51c2VyQ291bnREYXRhICYmIHRoaXMudXNlckNvdW50RGF0YS5sZW5ndGggPiAwKSB7XG4gICAgICAgIGNvbnN0IHVzZXJDb3VudCA9IHRoaXMudXNlckNvdW50RGF0YS5maWx0ZXIoKHVzZXI6YW55KSA9PiB1c2VyLmlkID09PSB0ZXJtLmFkZGl0aW9uYWxQcm9wZXJ0aWVzLm9yZ0lkKVswXT8uY291bnQ7XG4gICAgICAgIHJldHVybiB1c2VyQ291bnQgfHwgMDtcbiAgICAgIH1cbiAgICB9IFxuICAgIHJldHVybiAwXG4gIH1cbn0iXX0=
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Injectable } from '@angular/core';
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
|
-
|
|
3
|
+
class LocalConnectionService {
|
|
4
4
|
constructor() {
|
|
5
5
|
this._vars = {
|
|
6
6
|
data: {
|
|
@@ -66,10 +66,11 @@ export class LocalConnectionService {
|
|
|
66
66
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: LocalConnectionService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
67
67
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: LocalConnectionService, providedIn: 'root' }); }
|
|
68
68
|
}
|
|
69
|
+
export { LocalConnectionService };
|
|
69
70
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: LocalConnectionService, decorators: [{
|
|
70
71
|
type: Injectable,
|
|
71
72
|
args: [{
|
|
72
73
|
providedIn: 'root'
|
|
73
74
|
}]
|
|
74
75
|
}], ctorParameters: function () { return []; } });
|
|
75
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
76
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWwtY29ubmVjdGlvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyeS9zdW5iaXJkLWNiL3RyZWUtaGllcmFyY2h5L3NyYy9saWIvc2VydmljZXMvbG9jYWwtY29ubmVjdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBRzNDLE1BR2Esc0JBQXNCO0lBWS9CO1FBVlEsVUFBSyxHQUFvQjtZQUM3QixJQUFJLEVBQUU7Z0JBQ0YsUUFBUSxFQUFFLEVBQUU7Z0JBQ1osYUFBYSxFQUFFLEVBQUU7Z0JBQ2pCLEtBQUssRUFBRSxFQUFFO2dCQUNULGtCQUFrQixFQUFFLEtBQUs7YUFDNUI7WUFDRCxNQUFNLEVBQUUsUUFBUTtTQUNuQixDQUFBO1FBR0csTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxJQUFJLGFBQWEsQ0FBQyxDQUFDO1FBQzdFLElBQUksR0FBRyxJQUFJLEdBQUcsQ0FBQyxJQUFJLEVBQUU7WUFDakIsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsUUFBUSxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO1lBQzdDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztZQUN2QyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxhQUFhLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUM7WUFDdkQsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQztTQUNwRTtJQUNMLENBQUM7SUFDRCxJQUFJLE1BQU07UUFDTixJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNqQyxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQTtTQUN6QztRQUNELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3BDLENBQUM7SUFDRCxJQUFJLEtBQUs7UUFDTCxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUM5QixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQTtTQUN0QztRQUNELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ2pDLENBQUM7SUFDRCxJQUFJLGFBQWE7UUFDYixJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUN0QyxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQTtTQUM5QztRQUNELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDO0lBQ3pDLENBQUM7SUFDRCxJQUFJLGNBQWM7UUFDZCxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFO1lBQzFCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUE7U0FDbEM7UUFDRCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFBO0lBQzVCLENBQUM7SUFDRCxJQUFJLFlBQVksQ0FBQyxHQUFvQjtRQUNqQyxZQUFZLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUE7SUFDcEQsQ0FBQztJQUNELElBQUksWUFBWTtRQUNaLE1BQU0sR0FBRyxHQUFHLFlBQVksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUE7UUFDdkMsSUFBSSxHQUFHLEtBQUssV0FBVyxJQUFJLEdBQUcsS0FBSyxJQUFJLEVBQUU7WUFDckMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksK0JBQStCLENBQUMsQ0FBQTtTQUNwRjtRQUNELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFBO0lBQ3ZELENBQUM7SUFDRCxrQkFBa0IsQ0FBQyxHQUFvQjtRQUNuQyxJQUFJLENBQUMsWUFBWSxHQUFHLEdBQUcsQ0FBQTtJQUMzQixDQUFDO0lBQ0QsaUJBQWlCO1FBQ2IsWUFBWSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUM5QixZQUFZLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFBO0lBQ3BDLENBQUM7SUFDRCxhQUFhO1FBQ1QsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQTtJQUMxQixDQUFDOytHQWhFUSxzQkFBc0I7bUhBQXRCLHNCQUFzQixjQUZuQixNQUFNOztTQUVULHNCQUFzQjs0RkFBdEIsc0JBQXNCO2tCQUhsQyxVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElDb25uZWN0aW9uVHlwZSB9IGZyb20gJy4uL21vZGVscy9jb25uZWN0aW9uLXR5cGUubW9kZWwnO1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIExvY2FsQ29ubmVjdGlvblNlcnZpY2Uge1xuXG4gICAgcHJpdmF0ZSBfdmFyczogSUNvbm5lY3Rpb25UeXBlID0ge1xuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICBlbmRwb2ludDogJycsXG4gICAgICAgICAgICBmcmFtZXdvcmtOYW1lOiAnJyxcbiAgICAgICAgICAgIHRva2VuOiAnJyxcbiAgICAgICAgICAgIGlzQXBwcm92YWxSZXF1aXJlZDogZmFsc2VcbiAgICAgICAgfSxcbiAgICAgICAgc291cmNlOiAnb25saW5lJ1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBjb25zdCBlbnYgPSBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdlbnZpcm9ubWVudCcpIHx8ICd7XCJkYXRhXCI6e319Jyk7XG4gICAgICAgIGlmIChlbnYgJiYgZW52LmRhdGEpIHtcbiAgICAgICAgICAgIHRoaXMuX3ZhcnMuZGF0YS5lbmRwb2ludCA9IGVudi5kYXRhLmVuZHBvaW50O1xuICAgICAgICAgICAgdGhpcy5fdmFycy5kYXRhLnRva2VuID0gZW52LmRhdGEudG9rZW47XG4gICAgICAgICAgICB0aGlzLl92YXJzLmRhdGEuZnJhbWV3b3JrTmFtZSA9IGVudi5kYXRhLmZyYW1ld29ya05hbWU7XG4gICAgICAgICAgICB0aGlzLl92YXJzLmRhdGEuaXNBcHByb3ZhbFJlcXVpcmVkID0gZW52LmRhdGEuaXNBcHByb3ZhbFJlcXVpcmVkO1xuICAgICAgICB9XG4gICAgfVxuICAgIGdldCBhcGlVcmwoKSB7XG4gICAgICAgIGlmICh0aGlzLmxvY2FsU3RvcmFnZS5kYXRhLmVuZHBvaW50KSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5sb2NhbFN0b3JhZ2UuZGF0YS5lbmRwb2ludFxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLl92YXJzLmRhdGEuZW5kcG9pbnQ7XG4gICAgfVxuICAgIGdldCB0b2tlbigpIHtcbiAgICAgICAgaWYgKHRoaXMubG9jYWxTdG9yYWdlLmRhdGEudG9rZW4pIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmxvY2FsU3RvcmFnZS5kYXRhLnRva2VuXG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuX3ZhcnMuZGF0YS50b2tlbjtcbiAgICB9XG4gICAgZ2V0IGZyYW1ld29ya05hbWUoKSB7XG4gICAgICAgIGlmICh0aGlzLmxvY2FsU3RvcmFnZS5kYXRhLmZyYW1ld29ya05hbWUpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmxvY2FsU3RvcmFnZS5kYXRhLmZyYW1ld29ya05hbWVcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5fdmFycy5kYXRhLmZyYW1ld29ya05hbWU7XG4gICAgfVxuICAgIGdldCBjb25uZWN0aW9uVHlwZSgpIHtcbiAgICAgICAgaWYgKHRoaXMubG9jYWxTdG9yYWdlLnNvdXJjZSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMubG9jYWxTdG9yYWdlLnNvdXJjZVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLl92YXJzLnNvdXJjZVxuICAgIH1cbiAgICBzZXQgbG9jYWxTdG9yYWdlKHZhbDogSUNvbm5lY3Rpb25UeXBlKSB7XG4gICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCdlbnYnLCBKU09OLnN0cmluZ2lmeSh2YWwpKVxuICAgIH1cbiAgICBnZXQgbG9jYWxTdG9yYWdlKCk6IElDb25uZWN0aW9uVHlwZSB7XG4gICAgICAgIGNvbnN0IHZhbCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdlbnYnKVxuICAgICAgICBpZiAodmFsICE9PSAndW5kZWZpbmVkJyAmJiB2YWwgIT09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdlbnYnKSB8fCBge1wic291cmNlXCI6XCJvbmxpbmVcIixcImRhdGFcIjp7fX1gKVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBKU09OLnBhcnNlKGB7XCJzb3VyY2VcIjpcIm9ubGluZVwiLCBcImRhdGFcIjp7fX1gKVxuICAgIH1cbiAgICB1cGRhdGVMb2NhbFN0b3JhZ2UodmFsOiBJQ29ubmVjdGlvblR5cGUpIHtcbiAgICAgICAgdGhpcy5sb2NhbFN0b3JhZ2UgPSB2YWxcbiAgICB9XG4gICAgY2xlYXJMb2NhbFN0b3JhZ2UoKSB7XG4gICAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCdlbnYnKVxuICAgICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgndGVybXMnKVxuICAgIH1cbiAgICBnZXRDb25maWdJbmZvKCl7XG4gICAgICAgIHJldHVybiB0aGlzLl92YXJzLmRhdGFcbiAgICB9XG59XG4iXX0=
|
|
@@ -4,7 +4,7 @@ import * as i1 from "@angular/common/http";
|
|
|
4
4
|
const API_ENDPOINTS = {
|
|
5
5
|
getDesignation: '/apis/proxies/v8/user/v1/positions',
|
|
6
6
|
};
|
|
7
|
-
|
|
7
|
+
class OdcsService {
|
|
8
8
|
constructor(http) {
|
|
9
9
|
this.http = http;
|
|
10
10
|
}
|
|
@@ -14,10 +14,11 @@ export class OdcsService {
|
|
|
14
14
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: OdcsService, deps: [{ token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
15
15
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: OdcsService, providedIn: 'root' }); }
|
|
16
16
|
}
|
|
17
|
+
export { OdcsService };
|
|
17
18
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: OdcsService, decorators: [{
|
|
18
19
|
type: Injectable,
|
|
19
20
|
args: [{
|
|
20
21
|
providedIn: 'root'
|
|
21
22
|
}]
|
|
22
23
|
}], ctorParameters: function () { return [{ type: i1.HttpClient }]; } });
|
|
23
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2Rjcy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyeS9zdW5iaXJkLWNiL3RyZWUtaGllcmFyY2h5L3NyYy9saWIvc2VydmljZXMvb2Rjcy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQUczQyxNQUFNLGFBQWEsR0FBRztJQUNwQixjQUFjLEVBQUUsb0NBQW9DO0NBQ3JELENBQUE7QUFFRCxNQUdhLFdBQVc7SUFFdEIsWUFDVSxJQUFnQjtRQUFoQixTQUFJLEdBQUosSUFBSSxDQUFZO0lBQ3RCLENBQUM7SUFFTCxlQUFlLENBQUMsSUFBUztRQUN2QixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFNLGFBQWEsQ0FBQyxjQUFjLENBQUMsQ0FBQTtJQUN6RCxDQUFDOytHQVJVLFdBQVc7bUhBQVgsV0FBVyxjQUZWLE1BQU07O1NBRVAsV0FBVzs0RkFBWCxXQUFXO2tCQUh2QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbmNvbnN0IEFQSV9FTkRQT0lOVFMgPSB7XG4gIGdldERlc2lnbmF0aW9uOiAnL2FwaXMvcHJveGllcy92OC91c2VyL3YxL3Bvc2l0aW9ucycsXG59XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIE9kY3NTZXJ2aWNlIHtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXG4gICkgeyB9XG5cbiAgZ2V0RGVzaWduYXRpb25zKF9yZXE6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8YW55PihBUElfRU5EUE9JTlRTLmdldERlc2lnbmF0aW9uKVxuICB9XG59XG4iXX0=
|
|
@@ -25,11 +25,12 @@ const routes = [
|
|
|
25
25
|
path: 'approval/:id', component: ApproveViewComponent
|
|
26
26
|
}
|
|
27
27
|
];
|
|
28
|
-
|
|
28
|
+
class TreeEditorRoutingModule {
|
|
29
29
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TreeEditorRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
30
30
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: TreeEditorRoutingModule, imports: [i1.RouterModule], exports: [RouterModule] }); }
|
|
31
31
|
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TreeEditorRoutingModule, imports: [RouterModule.forChild(routes), RouterModule] }); }
|
|
32
32
|
}
|
|
33
|
+
export { TreeEditorRoutingModule };
|
|
33
34
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TreeEditorRoutingModule, decorators: [{
|
|
34
35
|
type: NgModule,
|
|
35
36
|
args: [{
|
|
@@ -40,4 +41,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
40
41
|
providers: [],
|
|
41
42
|
}]
|
|
42
43
|
}] });
|
|
43
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
44
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS1oaWVyYXJjaHktcm91dGluZy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJyYXJ5L3N1bmJpcmQtY2IvdHJlZS1oaWVyYXJjaHkvc3JjL2xpYi90cmVlLWhpZXJhcmNoeS1yb3V0aW5nLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQ3hDLE9BQU8sRUFBRSxZQUFZLEVBQVUsTUFBTSxpQkFBaUIsQ0FBQTtBQUN0RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQTtBQUM5RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQTtBQUM1RSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwwREFBMEQsQ0FBQTtBQUNuRyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxrREFBa0QsQ0FBQTs7O0FBRXZGLE1BQU0sTUFBTSxHQUFXO0lBQ25CO1FBQ0ksSUFBSSxFQUFFLEVBQUU7UUFDUixTQUFTLEVBQUUsTUFBTTtRQUNqQixTQUFTLEVBQUUsaUJBQWlCO0tBQy9CO0lBQ0Q7UUFDSSxJQUFJLEVBQUMsTUFBTSxFQUFFLFNBQVMsRUFBQyx3QkFBd0I7S0FDbEQ7SUFDRDtRQUNJLElBQUksRUFBQyxXQUFXLEVBQUUsU0FBUyxFQUFDLGlCQUFpQjtLQUNoRDtJQUNEO1FBQ0ksSUFBSSxFQUFDLFVBQVUsRUFBRyxTQUFTLEVBQUMsaUJBQWlCO0tBQ2hEO0lBQ0Q7UUFDSSxJQUFJLEVBQUMsY0FBYyxFQUFHLFNBQVMsRUFBQyxvQkFBb0I7S0FDdkQ7Q0FDSixDQUFBO0FBQ0QsTUFPZSx1QkFBdUI7K0dBQXZCLHVCQUF1QjtnSEFBdkIsdUJBQXVCLHdDQUh4QixZQUFZO2dIQUdYLHVCQUF1QixZQUxoQyxZQUFZLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUVyQixZQUFZOztTQUdYLHVCQUF1Qjs0RkFBdkIsdUJBQXVCO2tCQVByQyxRQUFRO21CQUFDO29CQUNOLE9BQU8sRUFBRTt3QkFDUCxZQUFZLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQztxQkFDOUI7b0JBQ0QsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO29CQUN2QixTQUFTLEVBQUUsRUFBRTtpQkFDZCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IFJvdXRlck1vZHVsZSwgUm91dGVzIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJ1xuaW1wb3J0IHsgVHJlZVZpZXdDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvdHJlZS12aWV3L3RyZWUtdmlldy5jb21wb25lbnQnXG5pbXBvcnQgeyBBcHByb3ZhbENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hcHByb3ZhbC9hcHByb3ZhbC5jb21wb25lbnQnXG5pbXBvcnQgeyBDb25maWdGcmFtZXdvcmtDb21wb25lbnQgfSBmcm9tICcuL2NvbnRhaW5lcnMvY29uZmlnLWZyYW1ld29yay9jb25maWctZnJhbWV3b3JrLmNvbXBvbmVudCdcbmltcG9ydCB7IEFwcHJvdmVWaWV3Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2FwcHJvdmUtdmlldy9hcHByb3ZlLXZpZXcuY29tcG9uZW50J1xuXG5jb25zdCByb3V0ZXM6IFJvdXRlcyA9IFtcbiAgICB7XG4gICAgICAgIHBhdGg6ICcnLFxuICAgICAgICBwYXRoTWF0Y2g6ICdmdWxsJyxcbiAgICAgICAgY29tcG9uZW50OiBUcmVlVmlld0NvbXBvbmVudCxcbiAgICB9LFxuICAgIHtcbiAgICAgICAgcGF0aDonaG9tZScsIGNvbXBvbmVudDpDb25maWdGcmFtZXdvcmtDb21wb25lbnRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgcGF0aDonZGFzaGJvYXJkJywgY29tcG9uZW50OlRyZWVWaWV3Q29tcG9uZW50XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHBhdGg6J2FwcHJvdmFsJywgIGNvbXBvbmVudDpBcHByb3ZhbENvbXBvbmVudFxuICAgIH0sXG4gICAge1xuICAgICAgICBwYXRoOidhcHByb3ZhbC86aWQnLCAgY29tcG9uZW50OkFwcHJvdmVWaWV3Q29tcG9uZW50XG4gICAgfVxuXVxuQE5nTW9kdWxlKHtcbiAgICBpbXBvcnRzOiBbXG4gICAgICBSb3V0ZXJNb2R1bGUuZm9yQ2hpbGQocm91dGVzKSxcbiAgICBdLFxuICAgIGV4cG9ydHM6IFtSb3V0ZXJNb2R1bGVdLFxuICAgIHByb3ZpZGVyczogW10sXG4gIH0pXG4gIGV4cG9ydCBjbGFzcyBUcmVlRWRpdG9yUm91dGluZ01vZHVsZSB7IH1cbiAgIl19
|
|
@@ -2,7 +2,7 @@ import { Component, Input } from '@angular/core';
|
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
3
|
import * as i1 from "./services/framework.service";
|
|
4
4
|
import * as i2 from "@angular/router";
|
|
5
|
-
|
|
5
|
+
class TreeHierarchyComponent {
|
|
6
6
|
constructor(frameworkService) {
|
|
7
7
|
this.frameworkService = frameworkService;
|
|
8
8
|
}
|
|
@@ -13,6 +13,7 @@ export class TreeHierarchyComponent {
|
|
|
13
13
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TreeHierarchyComponent, deps: [{ token: i1.FrameworkService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
14
14
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TreeHierarchyComponent, selector: "d-v2-tree-hierarchy", inputs: { environment: "environment", taxonomyConfig: "taxonomyConfig" }, ngImport: i0, template: "<router-outlet></router-outlet>", styles: [""], dependencies: [{ kind: "directive", type: i2.RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }] }); }
|
|
15
15
|
}
|
|
16
|
+
export { TreeHierarchyComponent };
|
|
16
17
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TreeHierarchyComponent, decorators: [{
|
|
17
18
|
type: Component,
|
|
18
19
|
args: [{ selector: 'd-v2-tree-hierarchy', template: "<router-outlet></router-outlet>" }]
|
|
@@ -21,4 +22,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
21
22
|
}], taxonomyConfig: [{
|
|
22
23
|
type: Input
|
|
23
24
|
}] } });
|
|
24
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS1oaWVyYXJjaHkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicmFyeS9zdW5iaXJkLWNiL3RyZWUtaGllcmFyY2h5L3NyYy9saWIvdHJlZS1oaWVyYXJjaHkuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGlicmFyeS9zdW5iaXJkLWNiL3RyZWUtaGllcmFyY2h5L3NyYy9saWIvdHJlZS1oaWVyYXJjaHkuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7Ozs7QUFHekQsTUFLYSxzQkFBc0I7SUFJakMsWUFBb0IsZ0JBQWtDO1FBQWxDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7SUFDdEQsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsZ0JBQWdCLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzFELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7K0dBVlUsc0JBQXNCO21HQUF0QixzQkFBc0IscUlDUm5DLGlDQUErQjs7U0RRbEIsc0JBQXNCOzRGQUF0QixzQkFBc0I7a0JBTGxDLFNBQVM7K0JBQ0UscUJBQXFCO3VHQUt0QixXQUFXO3NCQUFuQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZyYW1ld29ya1NlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL2ZyYW1ld29yay5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZC12Mi10cmVlLWhpZXJhcmNoeScsXG4gIHRlbXBsYXRlVXJsOiAnLi90cmVlLWhpZXJhcmNoeS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3RyZWUtaGllcmFyY2h5LmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFRyZWVIaWVyYXJjaHlDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSBlbnZpcm9ubWVudDogYW55O1xuICBASW5wdXQoKSB0YXhvbm9teUNvbmZpZzogYW55O1xuICBcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBmcmFtZXdvcmtTZXJ2aWNlOiBGcmFtZXdvcmtTZXJ2aWNlKSB7IFxuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5mcmFtZXdvcmtTZXJ2aWNlLnVwZGF0ZUVudmlyb25tZW50KHRoaXMuZW52aXJvbm1lbnQpO1xuICAgIHRoaXMuZnJhbWV3b3JrU2VydmljZS5zZXRDb25maWcodGhpcy50YXhvbm9teUNvbmZpZyk7XG4gIH1cbn1cbiIsIjxyb3V0ZXItb3V0bGV0Pjwvcm91dGVyLW91dGxldD4iXX0=
|