bx-rest 0.2.12 → 0.2.13

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.
@@ -0,0 +1,17 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { BaseMapServices } from '../base';
3
+ import * as i0 from "@angular/core";
4
+ export class BXRestMapTaskPlaner extends BaseMapServices {
5
+ getList(v) {
6
+ return (v) ? v.map(i => this.toNum(i)) : undefined;
7
+ }
8
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: BXRestMapTaskPlaner, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
9
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: BXRestMapTaskPlaner, providedIn: 'root' }); }
10
+ }
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: BXRestMapTaskPlaner, decorators: [{
12
+ type: Injectable,
13
+ args: [{
14
+ providedIn: 'root'
15
+ }]
16
+ }] });
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhbm5lci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2J4LXJlc3Qvc3JjL21hcC90YXNrL3BsYW5uZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUMxQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sU0FBUyxDQUFBOztBQUt6QyxNQUFNLE9BQU8sbUJBQW9CLFNBQVEsZUFBZTtJQUV0RCxPQUFPLENBQUMsQ0FBa0M7UUFDeEMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUE7SUFDcEQsQ0FBQzs4R0FKVSxtQkFBbUI7a0hBQW5CLG1CQUFtQixjQUZsQixNQUFNOzsyRkFFUCxtQkFBbUI7a0JBSC9CLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXHJcbmltcG9ydCB7IEJhc2VNYXBTZXJ2aWNlcyB9IGZyb20gJy4uL2Jhc2UnXHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBCWFJlc3RNYXBUYXNrUGxhbmVyIGV4dGVuZHMgQmFzZU1hcFNlcnZpY2VzIHtcclxuXHJcbiAgZ2V0TGlzdCh2OiAoc3RyaW5nIHwgbnVtYmVyKVtdIHwgdW5kZWZpbmVkKSB7XHJcbiAgICByZXR1cm4gKHYpID8gdi5tYXAoaSA9PiB0aGlzLnRvTnVtKGkpKSA6IHVuZGVmaW5lZFxyXG4gIH1cclxuXHJcbn1cclxuIl19
@@ -6,7 +6,7 @@ export class BXRestTaskPlanner {
6
6
  constructor(http) {
7
7
  this.http = http;
8
8
  }
9
- getlist() {
9
+ getList() {
10
10
  return this.http.post([$task, $planner, $getlist]);
11
11
  }
12
12
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: BXRestTaskPlanner, deps: [{ token: i1.HttpBXServices }], target: i0.ɵɵFactoryTarget.Injectable }); }
@@ -18,4 +18,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImpor
18
18
  providedIn: 'root'
19
19
  }]
20
20
  }], ctorParameters: function () { return [{ type: i1.HttpBXServices }]; } });
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhbm5lci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2J4LXJlc3Qvc3JjL3JlcXVlc3QvdGFzay9wbGFubmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDMUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLE1BQU0sK0JBQStCLENBQUE7OztBQU16RSxNQUFNLE9BQU8saUJBQWlCO0lBQzVCLFlBQ1UsSUFBb0I7UUFBcEIsU0FBSSxHQUFKLElBQUksQ0FBZ0I7SUFFOUIsQ0FBQztJQUVELE9BQU87UUFDTCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFzQixDQUFDLEtBQUssRUFBRSxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQTtJQUN6RSxDQUFDOzhHQVJVLGlCQUFpQjtrSEFBakIsaUJBQWlCLGNBRmhCLE1BQU07OzJGQUVQLGlCQUFpQjtrQkFIN0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcclxuaW1wb3J0IHsgJGdldGxpc3QsICRwbGFubmVyLCAkdGFzayB9IGZyb20gJy4uLy4uL2NvbnN0cy9wYXJ0LW5hbWUtbWV0b2RzJ1xyXG5pbXBvcnQgeyBIdHRwQlhTZXJ2aWNlcyB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2h0dHAvSHR0cEJYJ1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQlhSZXN0VGFza1BsYW5uZXIge1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBodHRwOiBIdHRwQlhTZXJ2aWNlc1xyXG4gICkge1xyXG4gIH1cclxuXHJcbiAgZ2V0bGlzdCgpe1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PChzdHJpbmcgfCBudW1iZXIpW10+KFskdGFzaywgJHBsYW5uZXIsICRnZXRsaXN0XSlcclxuICB9XHJcbn1cclxuIl19
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhbm5lci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2J4LXJlc3Qvc3JjL3JlcXVlc3QvdGFzay9wbGFubmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDMUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLE1BQU0sK0JBQStCLENBQUE7OztBQU16RSxNQUFNLE9BQU8saUJBQWlCO0lBRTVCLFlBQ1UsSUFBb0I7UUFBcEIsU0FBSSxHQUFKLElBQUksQ0FBZ0I7SUFFOUIsQ0FBQztJQUVELE9BQU87UUFDTCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFzQixDQUFDLEtBQUssRUFBRSxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQTtJQUN6RSxDQUFDOzhHQVRVLGlCQUFpQjtrSEFBakIsaUJBQWlCLGNBRmhCLE1BQU07OzJGQUVQLGlCQUFpQjtrQkFIN0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcclxuaW1wb3J0IHsgJGdldGxpc3QsICRwbGFubmVyLCAkdGFzayB9IGZyb20gJy4uLy4uL2NvbnN0cy9wYXJ0LW5hbWUtbWV0b2RzJ1xyXG5pbXBvcnQgeyBIdHRwQlhTZXJ2aWNlcyB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2h0dHAvSHR0cEJYJ1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQlhSZXN0VGFza1BsYW5uZXIge1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgaHR0cDogSHR0cEJYU2VydmljZXNcclxuICApIHtcclxuICB9XHJcblxyXG4gIGdldExpc3QoKXtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDwoc3RyaW5nIHwgbnVtYmVyKVtdPihbJHRhc2ssICRwbGFubmVyLCAkZ2V0bGlzdF0pXHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -1,24 +1,17 @@
1
1
  import { Injectable } from '@angular/core';
2
- import { map } from 'rxjs/operators';
3
2
  import { mergeMap, of, tap, throwError } from 'rxjs';
4
3
  import { Permission } from '../../services/permission';
5
4
  import { Navvy } from '../../services/navvy';
6
- import { BXRestNavvyOperationElapseditem } from './operation/elapseditem';
7
5
  import * as i0 from "@angular/core";
8
6
  import * as i1 from "../../request/task/elapseditem";
9
- import * as i2 from "../user";
10
- import * as i3 from "../tasks";
11
- import * as i4 from "../../map/task/elapseditem";
12
- import * as i5 from "../../services/http/HttpBX";
7
+ import * as i2 from "../../map/task/elapseditem";
8
+ import * as i3 from "./operation/elapseditem";
13
9
  export class BXRestNavvyElapseditem {
14
- constructor(BXRestElapseditem, BXRestNavvyUser, BXRestNavvyTasks, BXRestMapElapseditem, http) {
10
+ constructor(BXRestElapseditem, BXRestMapElapseditem, operation) {
15
11
  this.BXRestElapseditem = BXRestElapseditem;
16
- this.BXRestNavvyUser = BXRestNavvyUser;
17
- this.BXRestNavvyTasks = BXRestNavvyTasks;
18
12
  this.BXRestMapElapseditem = BXRestMapElapseditem;
19
- this.http = http;
13
+ this.operation = operation;
20
14
  this.Navvy = new Navvy(this.BXRestElapseditem, this.BXRestMapElapseditem);
21
- this.operation = new BXRestNavvyOperationElapseditem(this.http, this, this.BXRestMapElapseditem);
22
15
  }
23
16
  /*
24
17
  call(methodName: string, ...args: any[]){
@@ -45,9 +38,9 @@ export class BXRestNavvyElapseditem {
45
38
  return this.Navvy.alterPagNav(this.BXRestElapseditem.getList, param, 'Не удалось получить список затраченного на задачу(-и) времени', this.BXRestMapElapseditem.getList);
46
39
  }
47
40
  add(param) {
48
- return this.checkPermissionReadTask(param.TASKID).pipe(mergeMap(allowedReadTask => {
41
+ return this.operation.checkPermissionReadTask(param.TASKID).pipe(mergeMap(allowedReadTask => {
49
42
  if (allowedReadTask) {
50
- return this.checkPermissionAddTask(param.TASKID).pipe(mergeMap(allowed => {
43
+ return this.operation.checkPermissionAddElapsedtimeToTask(param.TASKID).pipe(mergeMap(allowed => {
51
44
  if (allowed) {
52
45
  return this.BXRestElapseditem.add(param);
53
46
  }
@@ -61,8 +54,13 @@ export class BXRestNavvyElapseditem {
61
54
  }
62
55
  }));
63
56
  }
57
+ /**
58
+ * Обновление записи рабочего времени
59
+ *
60
+ * @param param
61
+ */
64
62
  update(param) {
65
- return this.Navvy.simple(() => this.checkPermissionReadTask(param.TASKID).pipe(mergeMap(allowedReadTask => {
63
+ return this.Navvy.simple(() => this.operation.checkPermissionReadTask(param.TASKID).pipe(mergeMap(allowedReadTask => {
66
64
  if (allowedReadTask) {
67
65
  return this.isAllowedModify(param.TASKID, param.ITEMID).pipe(mergeMap(allowed => {
68
66
  if (allowed) {
@@ -182,69 +180,15 @@ export class BXRestNavvyElapseditem {
182
180
  * @param param
183
181
  */
184
182
  isActionAllowed(param) {
185
- return this.Navvy.simple(() => this.checkPermissionReadTask(param.TASKID).pipe(mergeMap(canRead => {
183
+ return this.Navvy.simple(() => this.operation.checkPermissionReadTask(param.TASKID).pipe(mergeMap(canRead => {
186
184
  if (canRead) {
187
185
  return this.BXRestElapseditem.isActionAllowed(param);
188
186
  }
189
187
  return throwError(() => new Error('Отсутствуют права на чтение задачи'));
190
188
  })));
191
189
  }
192
- checkPermissionAddTask(idTask) {
193
- let permission = Permission.get();
194
- if (permission?.tasks?.length) {
195
- let findTask = permission.tasks.find(i => i.id === idTask);
196
- if (findTask?.permission) {
197
- return of(findTask.permission['ELAPSEDTIME.ADD']);
198
- }
199
- return this.BXRestNavvyUser.current().result().pipe(mergeMap(self => {
200
- if (self) {
201
- return this.BXRestNavvyTasks.task.getaccess({
202
- id: idTask,
203
- users: [self.ID]
204
- }).result().pipe(tap(v => {
205
- if (v && v[self.ID]) {
206
- Permission.set({
207
- tasks: [{ id: idTask, permission: v[self.ID], elapsedItem: [] }]
208
- });
209
- }
210
- }), map(v => {
211
- return (v && v[self.ID]) ? v[self.ID]['ELAPSEDTIME.ADD'] : false;
212
- }));
213
- }
214
- return of(undefined);
215
- }));
216
- }
217
- return of(undefined);
218
- }
219
- checkPermissionReadTask(idTask) {
220
- let permission = Permission.get();
221
- if (permission?.tasks?.length) {
222
- let findTask = permission.tasks.find(i => i.id === idTask);
223
- if (findTask?.permission) {
224
- return of(findTask.permission.ACCEPT);
225
- }
226
- return this.BXRestNavvyUser.current().result().pipe(mergeMap(self => {
227
- if (self) {
228
- return this.BXRestNavvyTasks.task.getaccess({
229
- id: idTask,
230
- users: [self.ID]
231
- }).result().pipe(tap(v => {
232
- if (v && v[self.ID]) {
233
- Permission.set({
234
- tasks: [{ id: idTask, permission: v[self.ID], elapsedItem: [] }]
235
- });
236
- }
237
- }), map(v => {
238
- return (v && v[self.ID]) ? v[self.ID].ACCEPT : false;
239
- }));
240
- }
241
- return of(undefined);
242
- }));
243
- }
244
- return of(undefined);
245
- }
246
190
  del(param) {
247
- return this.Navvy.simple(() => this.checkPermissionReadTask(param.TASKID).pipe(mergeMap(allowedReadTask => {
191
+ return this.Navvy.simple(() => this.operation.checkPermissionReadTask(param.TASKID).pipe(mergeMap(allowedReadTask => {
248
192
  if (allowedReadTask) {
249
193
  return this.isAllowedRemove(param.TASKID, param.ITEMID).pipe(mergeMap(allowed => {
250
194
  if (allowed) {
@@ -260,7 +204,7 @@ export class BXRestNavvyElapseditem {
260
204
  }
261
205
  })), 'Не удалось удалить элемент списка', v => (v === null));
262
206
  }
263
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: BXRestNavvyElapseditem, deps: [{ token: i1.BXRestTaskElapseditem }, { token: i2.BXRestNavvyUser }, { token: i3.BXRestNavvyTasks }, { token: i4.BXRestMapTaskElapseditem }, { token: i5.HttpBXServices }], target: i0.ɵɵFactoryTarget.Injectable }); }
207
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: BXRestNavvyElapseditem, deps: [{ token: i1.BXRestTaskElapseditem }, { token: i2.BXRestMapTaskElapseditem }, { token: i3.BXRestNavvyOperationElapseditem }], target: i0.ɵɵFactoryTarget.Injectable }); }
264
208
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: BXRestNavvyElapseditem, providedIn: 'root' }); }
265
209
  }
266
210
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: BXRestNavvyElapseditem, decorators: [{
@@ -268,5 +212,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImpor
268
212
  args: [{
269
213
  providedIn: 'root'
270
214
  }]
271
- }], ctorParameters: function () { return [{ type: i1.BXRestTaskElapseditem }, { type: i2.BXRestNavvyUser }, { type: i3.BXRestNavvyTasks }, { type: i4.BXRestMapTaskElapseditem }, { type: i5.HttpBXServices }]; } });
272
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxhcHNlZGl0ZW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ieC1yZXN0L3NyYy9yZXF1ZXN0LW5hdnZ5L3Rhc2svZWxhcHNlZGl0ZW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUMxQyxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDcEMsT0FBTyxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQTtBQUlwRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sMkJBQTJCLENBQUE7QUFNdEQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLHNCQUFzQixDQUFBO0FBRTVDLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLHlCQUF5QixDQUFBOzs7Ozs7O0FBTXpFLE1BQU0sT0FBTyxzQkFBc0I7SUFJakMsWUFDVSxpQkFBd0MsRUFDeEMsZUFBZ0MsRUFDaEMsZ0JBQWtDLEVBQ2xDLG9CQUE4QyxFQUM5QyxJQUFvQjtRQUpwQixzQkFBaUIsR0FBakIsaUJBQWlCLENBQXVCO1FBQ3hDLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNoQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2xDLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBMEI7UUFDOUMsU0FBSSxHQUFKLElBQUksQ0FBZ0I7UUFFNUIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUE7UUFDekUsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLCtCQUErQixDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFBO0lBQ2xHLENBQUM7SUFFRDs7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O29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xyXG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycydcclxuaW1wb3J0IHsgbWVyZ2VNYXAsIG9mLCB0YXAsIHRocm93RXJyb3IgfSBmcm9tICdyeGpzJ1xyXG5pbXBvcnQgeyBpQlhSZXN0UGFyYW1FbGFwc2VkaXRlbUdldCB9IGZyb20gJy4uLy4uL3R5cGlmaWNhdGlvbi9yZXN0L3Rhc2svZWxhcHNlZGl0ZW0vZ2V0J1xyXG5pbXBvcnQgeyBCWFJlc3RUYXNrRWxhcHNlZGl0ZW0gfSBmcm9tICcuLi8uLi9yZXF1ZXN0L3Rhc2svZWxhcHNlZGl0ZW0nXHJcbmltcG9ydCB7IGlCWFJlc3RQYXJhbUFkZEVsYXBzZWRpdGVtIH0gZnJvbSAnLi4vLi4vdHlwaWZpY2F0aW9uL3Jlc3QvdGFzay9lbGFwc2VkaXRlbS9hZGQnXHJcbmltcG9ydCB7IFBlcm1pc3Npb24gfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9wZXJtaXNzaW9uJ1xyXG5pbXBvcnQgeyBCWFJlc3ROYXZ2eVVzZXIgfSBmcm9tICcuLi91c2VyJ1xyXG5pbXBvcnQgeyBCWFJlc3ROYXZ2eVRhc2tzIH0gZnJvbSAnLi4vdGFza3MnXHJcbmltcG9ydCB7IGlCWFJlc3RQYXJhbVVwZGF0ZUVsYXBzZWRpdGVtIH0gZnJvbSAnLi4vLi4vdHlwaWZpY2F0aW9uL3Jlc3QvdGFzay9lbGFwc2VkaXRlbS91cGRhdGUnXHJcbmltcG9ydCB7IGlJc0FjdGlvbkFsbG93ZWRQYXJhbSB9IGZyb20gJy4uLy4uL3R5cGlmaWNhdGlvbi9yZXN0L3Rhc2svZWxhcHNlZGl0ZW0vaXNBY3Rpb25BbGxvd2VkUGFyYW0nXHJcbmltcG9ydCB7IGlCWFJlc3RQYXJhbURlbEVsYXBzZWRpdGVtIH0gZnJvbSAnLi4vLi4vdHlwaWZpY2F0aW9uL3Jlc3QvdGFzay9lbGFwc2VkaXRlbS9kZWwnXHJcbmltcG9ydCB7IE5hdnZ5IH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbmF2dnknXHJcbmltcG9ydCB7IEJYUmVzdE1hcFRhc2tFbGFwc2VkaXRlbSB9IGZyb20gJy4uLy4uL21hcC90YXNrL2VsYXBzZWRpdGVtJ1xyXG5pbXBvcnQgeyBCWFJlc3ROYXZ2eU9wZXJhdGlvbkVsYXBzZWRpdGVtIH0gZnJvbSAnLi9vcGVyYXRpb24vZWxhcHNlZGl0ZW0nXHJcbmltcG9ydCB7IEh0dHBCWFNlcnZpY2VzIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvaHR0cC9IdHRwQlgnXHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBCWFJlc3ROYXZ2eUVsYXBzZWRpdGVtIHtcclxuICBwcml2YXRlIE5hdnZ5OiBOYXZ2eTxCWFJlc3RUYXNrRWxhcHNlZGl0ZW0sIEJYUmVzdE1hcFRhc2tFbGFwc2VkaXRlbT5cclxuICBwdWJsaWMgb3BlcmF0aW9uOiBCWFJlc3ROYXZ2eU9wZXJhdGlvbkVsYXBzZWRpdGVtXHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBCWFJlc3RFbGFwc2VkaXRlbTogQlhSZXN0VGFza0VsYXBzZWRpdGVtLFxyXG4gICAgcHJpdmF0ZSBCWFJlc3ROYXZ2eVVzZXI6IEJYUmVzdE5hdnZ5VXNlcixcclxuICAgIHByaXZhdGUgQlhSZXN0TmF2dnlUYXNrczogQlhSZXN0TmF2dnlUYXNrcyxcclxuICAgIHByaXZhdGUgQlhSZXN0TWFwRWxhcHNlZGl0ZW06IEJYUmVzdE1hcFRhc2tFbGFwc2VkaXRlbSxcclxuICAgIHByaXZhdGUgaHR0cDogSHR0cEJYU2VydmljZXMsXHJcbiAgKSB7XHJcbiAgICB0aGlzLk5hdnZ5ID0gbmV3IE5hdnZ5KHRoaXMuQlhSZXN0RWxhcHNlZGl0ZW0sIHRoaXMuQlhSZXN0TWFwRWxhcHNlZGl0ZW0pXHJcbiAgICB0aGlzLm9wZXJhdGlvbiA9IG5ldyBCWFJlc3ROYXZ2eU9wZXJhdGlvbkVsYXBzZWRpdGVtKHRoaXMuaHR0cCwgdGhpcywgdGhpcy5CWFJlc3RNYXBFbGFwc2VkaXRlbSlcclxuICB9XHJcblxyXG4gIC8qXHJcbiAgY2FsbChtZXRob2ROYW1lOiBzdHJpbmcsIC4uLmFyZ3M6IGFueVtdKXtcclxuICAgIGlmICh0eXBlb2YgdGhpc1ttZXRob2ROYW1lXSA9PT0gJ2Z1bmN0aW9uJykge1xyXG4gICAgICByZXR1cm4gdGhpc1ttZXRob2ROYW1lXSguLi5hcmdzKTtcclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzW21ldGhvZE5hbWVdKC4uLmFyZ3MpO1xyXG4gIH1cclxuICAgKi9cclxuXHJcbiAgZ2V0TGlzdChcclxuICAgIHBhcmFtOiBpQlhSZXN0UGFyYW1FbGFwc2VkaXRlbUdldCA9IHt9XHJcbiAgKSB7XHJcbiAgICBpZiAocGFyYW0pIHtcclxuICAgICAgaWYgKCFwYXJhbS5UQVNLSUQgJiYgIXBhcmFtLlNFTEVDVCkge1xyXG4gICAgICAgIHBhcmFtLlNFTEVDVCA9IFsnKiddXHJcbiAgICAgIH1cclxuICAgICAgaWYgKCFwYXJhbS5UQVNLSUQgJiYgIXBhcmFtLlBBUkFNUykge1xyXG4gICAgICAgIHBhcmFtLlBBUkFNUyA9IHtcclxuICAgICAgICAgIE5BVl9QQVJBTVM6IHtcclxuICAgICAgICAgICAgblBhZ2VTaXplOiA1MCxcclxuICAgICAgICAgICAgaU51bVBhZ2U6IDFcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLk5hdnZ5LmFsdGVyUGFnTmF2KFxyXG4gICAgICB0aGlzLkJYUmVzdEVsYXBzZWRpdGVtLmdldExpc3QsXHJcbiAgICAgIHBhcmFtLFxyXG4gICAgICAn0J3QtSDRg9C00LDQu9C+0YHRjCDQv9C+0LvRg9GH0LjRgtGMINGB0L/QuNGB0L7QuiDQt9Cw0YLRgNCw0YfQtdC90L3QvtCz0L4g0L3QsCDQt9Cw0LTQsNGH0YMoLdC4KSDQstGA0LXQvNC10L3QuCcsXHJcbiAgICAgIHRoaXMuQlhSZXN0TWFwRWxhcHNlZGl0ZW0uZ2V0TGlzdFxyXG4gICAgKVxyXG4gIH1cclxuXHJcbiAgYWRkKHBhcmFtOiBpQlhSZXN0UGFyYW1BZGRFbGFwc2VkaXRlbSkge1xyXG4gICAgcmV0dXJuIHRoaXMuY2hlY2tQZXJtaXNzaW9uUmVhZFRhc2socGFyYW0uVEFTS0lEKS5waXBlKFxyXG4gICAgICBtZXJnZU1hcChhbGxvd2VkUmVhZFRhc2sgPT4ge1xyXG4gICAgICAgIGlmIChhbGxvd2VkUmVhZFRhc2spIHtcclxuICAgICAgICAgIHJldHVybiB0aGlzLmNoZWNrUGVybWlzc2lvbkFkZFRhc2socGFyYW0uVEFTS0lEKS5waXBlKFxyXG4gICAgICAgICAgICBtZXJnZU1hcChhbGxvd2VkID0+IHtcclxuICAgICAgICAgICAgICBpZiAoYWxsb3dlZCkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuQlhSZXN0RWxhcHNlZGl0ZW0uYWRkKHBhcmFtKVxyXG4gICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiBuZXcgRXJyb3IoJ9Ce0YLRgdGD0YLRgdGC0LLRg9GO0YIg0L/RgNCw0LLQsCDQtNC+0LHQsNCy0LvQtdC90LjQtSDQt9Cw0L/QuNGB0Lgg0LfQsNGC0YDQsNGH0LXQvdC90L7Qs9C+INCy0YDQtdC80LXQvdC4JykpXHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KSlcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gbmV3IEVycm9yKCfQntGC0YHRg9GC0YHRgtCy0YPRjtGCINC/0YDQsNCy0LAg0L3QsCDRh9GC0LXQvdC40LUg0LfQsNC00LDRh9C4JykpXHJcbiAgICAgICAgfVxyXG4gICAgICB9KSlcclxuICB9XHJcblxyXG4gIHVwZGF0ZShwYXJhbTogaUJYUmVzdFBhcmFtVXBkYXRlRWxhcHNlZGl0ZW0pIHtcclxuICAgIHJldHVybiB0aGlzLk5hdnZ5LnNpbXBsZSggKCkgPT4gdGhpcy5jaGVja1Blcm1pc3Npb25SZWFkVGFzayhwYXJhbS5UQVNLSUQpLnBpcGUoXHJcbiAgICAgIG1lcmdlTWFwKGFsbG93ZWRSZWFkVGFzayA9PiB7XHJcbiAgICAgICAgaWYgKGFsbG93ZWRSZWFkVGFzaykge1xyXG4gICAgICAgICAgcmV0dXJuIHRoaXMuaXNBbGxvd2VkTW9kaWZ5KHBhcmFtLlRBU0tJRCwgcGFyYW0uSVRFTUlEKS5waXBlKFxyXG4gICAgICAgICAgICBtZXJnZU1hcChhbGxvd2VkID0+IHtcclxuICAgICAgICAgICAgICBpZiAoYWxsb3dlZCkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuQlhSZXN0RWxhcHNlZGl0ZW0udXBkYXRlKHBhcmFtKVxyXG4gICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiBuZXcgRXJyb3IoJ9Ce0YLRgdGD0YLRgdGC0LLRg9GO0YIg0L/RgNCw0LLQsCDQvdCwINC40LfQvNC10L3QtdC90LjQtSDQt9Cw0L/QuNGB0Lgg0LfQsNGC0YDQsNGH0LXQvdC90L7Qs9C+INCy0YDQtdC80LXQvdC4JykpXHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KSlcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gbmV3IEVycm9yKCfQntGC0YHRg9GC0YHRgtCy0YPRjtGCINC/0YDQsNCy0LAg0L3QsCDRh9GC0LXQvdC40LUg0LfQsNC00LDRh9C4JykpXHJcbiAgICAgICAgfVxyXG4gICAgICB9KSksICfQndC1INGD0LTQsNC70L7RgdGMINC+0LHQvdC+0LLQuNGC0Ywg0Y3Qu9C10LzQtdC90YIg0YHQv9C40YHQutCwJywgdGhpcy5CWFJlc3RNYXBFbGFwc2VkaXRlbS51cGRhdGUpXHJcbiAgfVxyXG5cclxuICAvKlxyXG4gIGdldEFsbChcclxuICAgIHBhcmFtczogUmVxdWVzdFBhcmFtc0VsYXBzZWRHZXRMaXN0IHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkLFxyXG4gICAgY2FjaGUgPSBmYWxzZVxyXG4gICk6IE9ic2VydmFibGU8aUh0dHBBbnN3ZXJCWDxCWFJlc3RFbGFwc2VkW10+IHwgdW5kZWZpbmVkPiB7XHJcbiAgICByZXR1cm4gdGhpcy5nZXQocGFyYW1zLCBjYWNoZSlcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgbWVyZ2VNYXAoaXRlbXMgPT4ge1xyXG4gICAgICAgICAgaWYgKGl0ZW1zICYmIGl0ZW1zLnJlc3VsdCkge1xyXG4gICAgICAgICAgICBpZiAoaXRlbXMubmV4dCkge1xyXG4gICAgICAgICAgICAgIHBhcmFtcyA9IChwYXJhbXMpID8gcGFyYW1zIDoge31cclxuICAgICAgICAgICAgICBwYXJhbXMuUEFSQU1TID0ge1xyXG4gICAgICAgICAgICAgICAgTkFWX1BBUkFNUzoge1xyXG4gICAgICAgICAgICAgICAgICBuUGFnZVNpemU6IHRoaXMucGFnZVNpemUsXHJcbiAgICAgICAgICAgICAgICAgIGlOdW1QYWdlOiBpdGVtcy5uZXh0IC8gdGhpcy5wYWdlU2l6ZSArIDFcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0QWxsKHBhcmFtcywgY2FjaGUpLnBpcGUoXHJcbiAgICAgICAgICAgICAgICBtYXAodkVuZCA9PiB7XHJcbiAgICAgICAgICAgICAgICAgIGlmICh2RW5kICYmIHZFbmQucmVzdWx0ICYmIGl0ZW1zLnJlc3VsdCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBtZXJnZShjbG9uZSh2RW5kKSwge3Jlc3VsdDogWy4uLml0ZW1zLnJlc3VsdCwgLi4udkVuZC5yZXN1bHRdfSlcclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICByZXR1cm4gaXRlbXNcclxuICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiBvZihpdGVtcylcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHJldHVybiBvZih1bmRlZmluZWQpXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSlcclxuICAgICAgKVxyXG4gIH1cclxuICAgKi9cclxuXHJcbiAgLypcclxuICBnZXRDYWNoZU9mZihwYXJhbXM6IFJlcXVlc3RQYXJhbXNFbGFwc2VkR2V0TGlzdCB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZCkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGlIdHRwQW5zd2VyQlg8QlhSZXN0RWxhcHNlZEh0dHBbXT4gfCB1bmRlZmluZWQ+XHJcbiAgICAodGhpcy51cmwuZ2V0bGlzdCwgcGFyYW1zLCAn0L3QtSDRg9C00LDQu9C+0YHRjCDQv9C+0LvRg9GH0LjRgtGMINCy0YDQtdC80Y8g0L/QviDQt9Cw0LTQsNGH0LDQvCcpXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIG1hcCh2ID0+IHtcclxuICAgICAgICAgIGlmICh2ICYmIHYucmVzdWx0KSB7XHJcbiAgICAgICAgICAgIGNvbnN0IG5ld1Jlc3VsdDogQlhSZXN0RWxhcHNlZFtdID0gW11cclxuICAgICAgICAgICAgZm9yIChsZXQgdGFzayBvZiB2LnJlc3VsdCkge1xyXG4gICAgICAgICAgICAgIG5ld1Jlc3VsdC5wdXNoKHRoaXMuZWxhcHNlZEJYTWFwLkFuc3dlckVsYXBzZWRHZXRIdHRwVG9BbnN3ZXJFbGFwc2VkR2V0KHRhc2spKVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiBleHRlbmQodiwge3Jlc3VsdDogbmV3UmVzdWx0fSkgYXMgaUh0dHBBbnN3ZXJCWDxCWFJlc3RFbGFwc2VkW10+XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkXHJcbiAgICAgICAgfSksXHJcbiAgICAgICAgdGFwKHYgPT4ge1xyXG4gICAgICAgICAgaWYgKHYgJiYgcGFyYW1zKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goc2F2ZUh0dHBUYXNrVGltZSh7XHJcbiAgICAgICAgICAgICAgZmlsdGVyOiBjbG9uZShwYXJhbXMpLFxyXG4gICAgICAgICAgICAgIHRpbWU6IHZcclxuICAgICAgICAgICAgfSkpXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSlcclxuICAgICAgKVxyXG4gIH1cclxuICAqL1xyXG5cclxuICBpc0FsbG93ZWRNb2RpZnkoaWRUYXNrOiBudW1iZXIsIGlkSXRlbTogbnVtYmVyKSB7XHJcbiAgICBsZXQgcGVybWlzc2lvbiA9IFBlcm1pc3Npb24uZ2V0KClcclxuICAgIGlmIChwZXJtaXNzaW9uPy50YXNrcz8ubGVuZ3RoKSB7XHJcbiAgICAgIGxldCBmaW5kVGFzayA9IHBlcm1pc3Npb24udGFza3MuZmluZChpID0+IGkuaWQgPT09IGlkVGFzaylcclxuICAgICAgaWYgKGZpbmRUYXNrKSB7XHJcbiAgICAgICAgbGV0IGZpbmQgPSBmaW5kVGFzay5lbGFwc2VkSXRlbS5maW5kKGkgPT4gaS5pZCA9PT0gaWRJdGVtKVxyXG4gICAgICAgIGlmIChmaW5kICYmIGZpbmQudmVyaWZpZWQuZWRpdCkge1xyXG4gICAgICAgICAgcmV0dXJuIG9mKGZpbmQuZWRpdClcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdGhpcy5pc0FjdGlvbkFsbG93ZWQoe1xyXG4gICAgICBUQVNLSUQ6IGlkVGFzayxcclxuICAgICAgSVRFTUlEOiAyLFxyXG4gICAgICBBQ1RJT05JRDogaWRJdGVtXHJcbiAgICB9KS5yZXN1bHQoKS5waXBlKFxyXG4gICAgICB0YXAodiA9PiB7XHJcbiAgICAgICAgaWYgKHYgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgUGVybWlzc2lvbi5zZXRUYXNrRWxhcHNlZEl0ZW0oaWRUYXNrLFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgaWQ6IGlkSXRlbSxcclxuICAgICAgICAgICAgICBlZGl0OiB2LFxyXG4gICAgICAgICAgICAgIGRlbDogZmFsc2UsXHJcbiAgICAgICAgICAgICAgdmVyaWZpZWQ6IHtcclxuICAgICAgICAgICAgICAgIGVkaXQ6IHRydWUsXHJcbiAgICAgICAgICAgICAgICBkZWw6IGZhbHNlLFxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSlcclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgICApXHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGlzQWxsb3dlZFJlbW92ZShpZFRhc2s6IG51bWJlciwgaWRJdGVtOiBudW1iZXIpIHtcclxuICAgIHJldHVybiB0aGlzLmlzQWN0aW9uQWxsb3dlZChcclxuICAgICAge1xyXG4gICAgICAgIFRBU0tJRDogaWRUYXNrLFxyXG4gICAgICAgIElURU1JRDogMyxcclxuICAgICAgICBBQ1RJT05JRDogaWRJdGVtXHJcbiAgICAgIH0pLnJlc3VsdCgpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBpZEFjdGlvbjpcclxuICAgKiAxIC0gQUNUSU9OX0VMQVBTRURfVElNRV9BRERcclxuICAgKiAyIC0gQUNUSU9OX0VMQVBTRURfVElNRV9NT0RJRllcclxuICAgKiAzIC0gQUNUSU9OX0VMQVBTRURfVElNRV9SRU1PVkVcclxuICAgKiBAcGFyYW0gcGFyYW1cclxuICAgKi9cclxuICBpc0FjdGlvbkFsbG93ZWQocGFyYW06IGlJc0FjdGlvbkFsbG93ZWRQYXJhbSkge1xyXG4gICAgcmV0dXJuIHRoaXMuTmF2dnkuc2ltcGxlKCgpID0+IHRoaXMuY2hlY2tQZXJtaXNzaW9uUmVhZFRhc2socGFyYW0uVEFTS0lEKS5waXBlKFxyXG4gICAgICBtZXJnZU1hcChjYW5SZWFkID0+IHtcclxuICAgICAgICBpZiAoY2FuUmVhZCkge1xyXG4gICAgICAgICAgcmV0dXJuIHRoaXMuQlhSZXN0RWxhcHNlZGl0ZW0uaXNBY3Rpb25BbGxvd2VkKHBhcmFtKVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiBuZXcgRXJyb3IoJ9Ce0YLRgdGD0YLRgdGC0LLRg9GO0YIg0L/RgNCw0LLQsCDQvdCwINGH0YLQtdC90LjQtSDQt9Cw0LTQsNGH0LgnKSlcclxuICAgICAgfSlcclxuICAgICkpXHJcbiAgfVxyXG5cclxuICBjaGVja1Blcm1pc3Npb25BZGRUYXNrKGlkVGFzazogbnVtYmVyKSB7XHJcbiAgICBsZXQgcGVybWlzc2lvbiA9IFBlcm1pc3Npb24uZ2V0KClcclxuICAgIGlmIChwZXJtaXNzaW9uPy50YXNrcz8ubGVuZ3RoKSB7XHJcbiAgICAgIGxldCBmaW5kVGFzayA9IHBlcm1pc3Npb24udGFza3MuZmluZChpID0+IGkuaWQgPT09IGlkVGFzaylcclxuICAgICAgaWYgKGZpbmRUYXNrPy5wZXJtaXNzaW9uKSB7XHJcbiAgICAgICAgcmV0dXJuIG9mKGZpbmRUYXNrLnBlcm1pc3Npb25bJ0VMQVBTRURUSU1FLkFERCddKVxyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiB0aGlzLkJYUmVzdE5hdnZ5VXNlci5jdXJyZW50KCkucmVzdWx0KCkucGlwZShcclxuICAgICAgICBtZXJnZU1hcChzZWxmID0+IHtcclxuICAgICAgICAgIGlmIChzZWxmKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLkJYUmVzdE5hdnZ5VGFza3MudGFzay5nZXRhY2Nlc3MoXHJcbiAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgaWQ6IGlkVGFzayxcclxuICAgICAgICAgICAgICAgIHVzZXJzOiBbc2VsZi5JRF1cclxuICAgICAgICAgICAgICB9KS5yZXN1bHQoKS5waXBlKFxyXG4gICAgICAgICAgICAgIHRhcCh2ID0+IHtcclxuICAgICAgICAgICAgICAgIGlmICh2ICYmIHZbc2VsZi5JRF0pIHtcclxuICAgICAgICAgICAgICAgICAgUGVybWlzc2lvbi5zZXQoe1xyXG4gICAgICAgICAgICAgICAgICAgIHRhc2tzOiBbe2lkOiBpZFRhc2ssIHBlcm1pc3Npb246IHZbc2VsZi5JRF0sIGVsYXBzZWRJdGVtOiBbXX1dXHJcbiAgICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgICAgbWFwKHYgPT4ge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuICh2ICYmIHZbc2VsZi5JRF0pID8gdltzZWxmLklEXVsnRUxBUFNFRFRJTUUuQUREJ10gOiBmYWxzZVxyXG4gICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICByZXR1cm4gb2YodW5kZWZpbmVkKVxyXG4gICAgICAgIH0pXHJcbiAgICAgIClcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gb2YodW5kZWZpbmVkKVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjaGVja1Blcm1pc3Npb25SZWFkVGFzayhpZFRhc2s6IG51bWJlcikge1xyXG4gICAgbGV0IHBlcm1pc3Npb24gPSBQZXJtaXNzaW9uLmdldCgpXHJcbiAgICBpZiAocGVybWlzc2lvbj8udGFza3M/Lmxlbmd0aCkge1xyXG4gICAgICBsZXQgZmluZFRhc2sgPSBwZXJtaXNzaW9uLnRhc2tzLmZpbmQoaSA9PiBpLmlkID09PSBpZFRhc2spXHJcbiAgICAgIGlmIChmaW5kVGFzaz8ucGVybWlzc2lvbikge1xyXG4gICAgICAgIHJldHVybiBvZihmaW5kVGFzay5wZXJtaXNzaW9uLkFDQ0VQVClcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gdGhpcy5CWFJlc3ROYXZ2eVVzZXIuY3VycmVudCgpLnJlc3VsdCgpLnBpcGUoXHJcbiAgICAgICAgbWVyZ2VNYXAoc2VsZiA9PiB7XHJcbiAgICAgICAgICBpZiAoc2VsZikge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5CWFJlc3ROYXZ2eVRhc2tzLnRhc2suZ2V0YWNjZXNzKFxyXG4gICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIGlkOiBpZFRhc2ssXHJcbiAgICAgICAgICAgICAgICB1c2VyczogW3NlbGYuSURdXHJcbiAgICAgICAgICAgICAgfSkucmVzdWx0KCkucGlwZShcclxuICAgICAgICAgICAgICB0YXAodiA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAodiAmJiB2W3NlbGYuSURdKSB7XHJcbiAgICAgICAgICAgICAgICAgIFBlcm1pc3Npb24uc2V0KHtcclxuICAgICAgICAgICAgICAgICAgICB0YXNrczogW3tpZDogaWRUYXNrLCBwZXJtaXNzaW9uOiB2W3NlbGYuSURdLCBlbGFwc2VkSXRlbTogW119XVxyXG4gICAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICAgIG1hcCh2ID0+IHtcclxuICAgICAgICAgICAgICAgIHJldHVybiAodiAmJiB2W3NlbGYuSURdKSA/IHZbc2VsZi5JRF0uQUNDRVBUIDogZmFsc2VcclxuICAgICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgcmV0dXJuIG9mKHVuZGVmaW5lZClcclxuICAgICAgICB9KVxyXG4gICAgICApXHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIG9mKHVuZGVmaW5lZClcclxuICB9XHJcblxyXG4gIGRlbChwYXJhbTogaUJYUmVzdFBhcmFtRGVsRWxhcHNlZGl0ZW0pIHtcclxuICAgIHJldHVybiB0aGlzLk5hdnZ5LnNpbXBsZSggKCkgPT4gdGhpcy5jaGVja1Blcm1pc3Npb25SZWFkVGFzayhwYXJhbS5UQVNLSUQpLnBpcGUoXHJcbiAgICAgIG1lcmdlTWFwKGFsbG93ZWRSZWFkVGFzayA9PiB7XHJcbiAgICAgICAgaWYgKGFsbG93ZWRSZWFkVGFzaykge1xyXG4gICAgICAgICAgcmV0dXJuIHRoaXMuaXNBbGxvd2VkUmVtb3ZlKHBhcmFtLlRBU0tJRCwgcGFyYW0uSVRFTUlEKS5waXBlKFxyXG4gICAgICAgICAgICBtZXJnZU1hcChhbGxvd2VkID0+IHtcclxuICAgICAgICAgICAgICBpZiAoYWxsb3dlZCkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuQlhSZXN0RWxhcHNlZGl0ZW0uZGVsKHBhcmFtKVxyXG4gICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiBuZXcgRXJyb3IoJ9Ce0YLRgdGD0YLRgdGC0LLRg9GO0YIg0L/RgNCw0LLQsCDQvdCwINGD0LTQsNC70LXQvdC40LUg0LfQsNC/0LjRgdC4INC30LDRgtGA0LDRh9C10L3QvdC+0LPQviDQstGA0LXQvNC10L3QuCcpKVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSkpXHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+IG5ldyBFcnJvcign0J7RgtGB0YPRgtGB0YLQstGD0Y7RgiDQv9GA0LDQstCwINC90LAg0YfRgtC10L3QuNC1INC30LDQtNCw0YfQuCcpKVxyXG4gICAgICAgIH1cclxuICAgICAgfSlcclxuICAgICksICfQndC1INGD0LTQsNC70L7RgdGMINGD0LTQsNC70LjRgtGMINGN0LvQtdC80LXQvdGCINGB0L/QuNGB0LrQsCcsIHYgPT4gKHYgPT09IG51bGwpKVxyXG4gIH1cclxuXHJcbn1cclxuIl19
215
+ }], ctorParameters: function () { return [{ type: i1.BXRestTaskElapseditem }, { type: i2.BXRestMapTaskElapseditem }, { type: i3.BXRestNavvyOperationElapseditem }]; } });
216
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxhcHNlZGl0ZW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ieC1yZXN0L3NyYy9yZXF1ZXN0LW5hdnZ5L3Rhc2svZWxhcHNlZGl0ZW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUMxQyxPQUFPLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBSXBELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQTtBQUl0RCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sc0JBQXNCLENBQUE7Ozs7O0FBTzVDLE1BQU0sT0FBTyxzQkFBc0I7SUFHakMsWUFDVSxpQkFBd0MsRUFDeEMsb0JBQThDLEVBQy9DLFNBQTBDO1FBRnpDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBdUI7UUFDeEMseUJBQW9CLEdBQXBCLG9CQUFvQixDQUEwQjtRQUMvQyxjQUFTLEdBQVQsU0FBUyxDQUFpQztRQUVqRCxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxJQUFJLENBQUMsb0JBQW9CLENBQUMsQ0FBQTtJQUMzRSxDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUVILE9BQU8sQ0FDTCxRQUFvQyxFQUFFO1FBRXRDLElBQUksS0FBSyxFQUFFO1lBQ1QsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFO2dCQUNsQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUE7YUFDckI7WUFDRCxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUU7Z0JBQ2xDLEtBQUssQ0FBQyxNQUFNLEdBQUc7b0JBQ2IsVUFBVSxFQUFFO3dC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bUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUE7SUFDNUQsQ0FBQzs4R0FqT1Usc0JBQXNCO2tIQUF0QixzQkFBc0IsY0FGckIsTUFBTTs7MkZBRVAsc0JBQXNCO2tCQUhsQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xyXG5pbXBvcnQgeyBtZXJnZU1hcCwgb2YsIHRhcCwgdGhyb3dFcnJvciB9IGZyb20gJ3J4anMnXHJcbmltcG9ydCB7IGlCWFJlc3RQYXJhbUVsYXBzZWRpdGVtR2V0IH0gZnJvbSAnLi4vLi4vdHlwaWZpY2F0aW9uL3Jlc3QvdGFzay9lbGFwc2VkaXRlbS9nZXQnXHJcbmltcG9ydCB7IEJYUmVzdFRhc2tFbGFwc2VkaXRlbSB9IGZyb20gJy4uLy4uL3JlcXVlc3QvdGFzay9lbGFwc2VkaXRlbSdcclxuaW1wb3J0IHsgaUJYUmVzdFBhcmFtQWRkRWxhcHNlZGl0ZW0gfSBmcm9tICcuLi8uLi90eXBpZmljYXRpb24vcmVzdC90YXNrL2VsYXBzZWRpdGVtL2FkZCdcclxuaW1wb3J0IHsgUGVybWlzc2lvbiB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3Blcm1pc3Npb24nXHJcbmltcG9ydCB7IGlCWFJlc3RQYXJhbVVwZGF0ZUVsYXBzZWRpdGVtIH0gZnJvbSAnLi4vLi4vdHlwaWZpY2F0aW9uL3Jlc3QvdGFzay9lbGFwc2VkaXRlbS91cGRhdGUnXHJcbmltcG9ydCB7IGlJc0FjdGlvbkFsbG93ZWRQYXJhbSB9IGZyb20gJy4uLy4uL3R5cGlmaWNhdGlvbi9yZXN0L3Rhc2svZWxhcHNlZGl0ZW0vaXNBY3Rpb25BbGxvd2VkUGFyYW0nXHJcbmltcG9ydCB7IGlCWFJlc3RQYXJhbURlbEVsYXBzZWRpdGVtIH0gZnJvbSAnLi4vLi4vdHlwaWZpY2F0aW9uL3Jlc3QvdGFzay9lbGFwc2VkaXRlbS9kZWwnXHJcbmltcG9ydCB7IE5hdnZ5IH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbmF2dnknXHJcbmltcG9ydCB7IEJYUmVzdE1hcFRhc2tFbGFwc2VkaXRlbSB9IGZyb20gJy4uLy4uL21hcC90YXNrL2VsYXBzZWRpdGVtJ1xyXG5pbXBvcnQgeyBCWFJlc3ROYXZ2eU9wZXJhdGlvbkVsYXBzZWRpdGVtIH0gZnJvbSAnLi9vcGVyYXRpb24vZWxhcHNlZGl0ZW0nXHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBCWFJlc3ROYXZ2eUVsYXBzZWRpdGVtIHtcclxuICBwcml2YXRlIE5hdnZ5OiBOYXZ2eTxCWFJlc3RUYXNrRWxhcHNlZGl0ZW0sIEJYUmVzdE1hcFRhc2tFbGFwc2VkaXRlbT5cclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIEJYUmVzdEVsYXBzZWRpdGVtOiBCWFJlc3RUYXNrRWxhcHNlZGl0ZW0sXHJcbiAgICBwcml2YXRlIEJYUmVzdE1hcEVsYXBzZWRpdGVtOiBCWFJlc3RNYXBUYXNrRWxhcHNlZGl0ZW0sXHJcbiAgICBwdWJsaWMgb3BlcmF0aW9uOiBCWFJlc3ROYXZ2eU9wZXJhdGlvbkVsYXBzZWRpdGVtXHJcbiAgKSB7XHJcbiAgICB0aGlzLk5hdnZ5ID0gbmV3IE5hdnZ5KHRoaXMuQlhSZXN0RWxhcHNlZGl0ZW0sIHRoaXMuQlhSZXN0TWFwRWxhcHNlZGl0ZW0pXHJcbiAgfVxyXG5cclxuICAvKlxyXG4gIGNhbGwobWV0aG9kTmFtZTogc3RyaW5nLCAuLi5hcmdzOiBhbnlbXSl7XHJcbiAgICBpZiAodHlwZW9mIHRoaXNbbWV0aG9kTmFtZV0gPT09ICdmdW5jdGlvbicpIHtcclxuICAgICAgcmV0dXJuIHRoaXNbbWV0aG9kTmFtZV0oLi4uYXJncyk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpc1ttZXRob2ROYW1lXSguLi5hcmdzKTtcclxuICB9XHJcbiAgICovXHJcblxyXG4gIGdldExpc3QoXHJcbiAgICBwYXJhbTogaUJYUmVzdFBhcmFtRWxhcHNlZGl0ZW1HZXQgPSB7fVxyXG4gICkge1xyXG4gICAgaWYgKHBhcmFtKSB7XHJcbiAgICAgIGlmICghcGFyYW0uVEFTS0lEICYmICFwYXJhbS5TRUxFQ1QpIHtcclxuICAgICAgICBwYXJhbS5TRUxFQ1QgPSBbJyonXVxyXG4gICAgICB9XHJcbiAgICAgIGlmICghcGFyYW0uVEFTS0lEICYmICFwYXJhbS5QQVJBTVMpIHtcclxuICAgICAgICBwYXJhbS5QQVJBTVMgPSB7XHJcbiAgICAgICAgICBOQVZfUEFSQU1TOiB7XHJcbiAgICAgICAgICAgIG5QYWdlU2l6ZTogNTAsXHJcbiAgICAgICAgICAgIGlOdW1QYWdlOiAxXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5OYXZ2eS5hbHRlclBhZ05hdihcclxuICAgICAgdGhpcy5CWFJlc3RFbGFwc2VkaXRlbS5nZXRMaXN0LFxyXG4gICAgICBwYXJhbSxcclxuICAgICAgJ9Cd0LUg0YPQtNCw0LvQvtGB0Ywg0L/QvtC70YPRh9C40YLRjCDRgdC/0LjRgdC+0Log0LfQsNGC0YDQsNGH0LXQvdC90L7Qs9C+INC90LAg0LfQsNC00LDRh9GDKC3QuCkg0LLRgNC10LzQtdC90LgnLFxyXG4gICAgICB0aGlzLkJYUmVzdE1hcEVsYXBzZWRpdGVtLmdldExpc3RcclxuICAgIClcclxuICB9XHJcblxyXG4gIGFkZChwYXJhbTogaUJYUmVzdFBhcmFtQWRkRWxhcHNlZGl0ZW0pIHtcclxuICAgIHJldHVybiB0aGlzLm9wZXJhdGlvbi5jaGVja1Blcm1pc3Npb25SZWFkVGFzayhwYXJhbS5UQVNLSUQpLnBpcGUoXHJcbiAgICAgIG1lcmdlTWFwKGFsbG93ZWRSZWFkVGFzayA9PiB7XHJcbiAgICAgICAgaWYgKGFsbG93ZWRSZWFkVGFzaykge1xyXG4gICAgICAgICAgcmV0dXJuIHRoaXMub3BlcmF0aW9uLmNoZWNrUGVybWlzc2lvbkFkZEVsYXBzZWR0aW1lVG9UYXNrKHBhcmFtLlRBU0tJRCkucGlwZShcclxuICAgICAgICAgICAgbWVyZ2VNYXAoYWxsb3dlZCA9PiB7XHJcbiAgICAgICAgICAgICAgaWYgKGFsbG93ZWQpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLkJYUmVzdEVsYXBzZWRpdGVtLmFkZChwYXJhbSlcclxuICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gbmV3IEVycm9yKCfQntGC0YHRg9GC0YHRgtCy0YPRjtGCINC/0YDQsNCy0LAg0LTQvtCx0LDQstC70LXQvdC40LUg0LfQsNC/0LjRgdC4INC30LDRgtGA0LDRh9C10L3QvdC+0LPQviDQstGA0LXQvNC10L3QuCcpKVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSkpXHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+IG5ldyBFcnJvcign0J7RgtGB0YPRgtGB0YLQstGD0Y7RgiDQv9GA0LDQstCwINC90LAg0YfRgtC10L3QuNC1INC30LDQtNCw0YfQuCcpKVxyXG4gICAgICAgIH1cclxuICAgICAgfSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiDQntCx0L3QvtCy0LvQtdC90LjQtSDQt9Cw0L/QuNGB0Lgg0YDQsNCx0L7Rh9C10LPQviDQstGA0LXQvNC10L3QuFxyXG4gICAqXHJcbiAgICogQHBhcmFtIHBhcmFtXHJcbiAgICovXHJcbiAgdXBkYXRlKHBhcmFtOiBpQlhSZXN0UGFyYW1VcGRhdGVFbGFwc2VkaXRlbSkge1xyXG4gICAgcmV0dXJuIHRoaXMuTmF2dnkuc2ltcGxlKCgpID0+IHRoaXMub3BlcmF0aW9uLmNoZWNrUGVybWlzc2lvblJlYWRUYXNrKHBhcmFtLlRBU0tJRCkucGlwZShcclxuICAgICAgbWVyZ2VNYXAoYWxsb3dlZFJlYWRUYXNrID0+IHtcclxuICAgICAgICBpZiAoYWxsb3dlZFJlYWRUYXNrKSB7XHJcbiAgICAgICAgICByZXR1cm4gdGhpcy5pc0FsbG93ZWRNb2RpZnkocGFyYW0uVEFTS0lELCBwYXJhbS5JVEVNSUQpLnBpcGUoXHJcbiAgICAgICAgICAgIG1lcmdlTWFwKGFsbG93ZWQgPT4ge1xyXG4gICAgICAgICAgICAgIGlmIChhbGxvd2VkKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5CWFJlc3RFbGFwc2VkaXRlbS51cGRhdGUocGFyYW0pXHJcbiAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+IG5ldyBFcnJvcign0J7RgtGB0YPRgtGB0YLQstGD0Y7RgiDQv9GA0LDQstCwINC90LAg0LjQt9C80LXQvdC10L3QuNC1INC30LDQv9C40YHQuCDQt9Cw0YLRgNCw0YfQtdC90L3QvtCz0L4g0LLRgNC10LzQtdC90LgnKSlcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pKVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiBuZXcgRXJyb3IoJ9Ce0YLRgdGD0YLRgdGC0LLRg9GO0YIg0L/RgNCw0LLQsCDQvdCwINGH0YLQtdC90LjQtSDQt9Cw0LTQsNGH0LgnKSlcclxuICAgICAgICB9XHJcbiAgICAgIH0pKSwgJ9Cd0LUg0YPQtNCw0LvQvtGB0Ywg0L7QsdC90L7QstC40YLRjCDRjdC70LXQvNC10L3RgiDRgdC/0LjRgdC60LAnLCB0aGlzLkJYUmVzdE1hcEVsYXBzZWRpdGVtLnVwZGF0ZSlcclxuICB9XHJcblxyXG4gIC8qXHJcbiAgZ2V0QWxsKFxyXG4gICAgcGFyYW1zOiBSZXF1ZXN0UGFyYW1zRWxhcHNlZEdldExpc3QgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQsXHJcbiAgICBjYWNoZSA9IGZhbHNlXHJcbiAgKTogT2JzZXJ2YWJsZTxpSHR0cEFuc3dlckJYPEJYUmVzdEVsYXBzZWRbXT4gfCB1bmRlZmluZWQ+IHtcclxuICAgIHJldHVybiB0aGlzLmdldChwYXJhbXMsIGNhY2hlKVxyXG4gICAgICAucGlwZShcclxuICAgICAgICBtZXJnZU1hcChpdGVtcyA9PiB7XHJcbiAgICAgICAgICBpZiAoaXRlbXMgJiYgaXRlbXMucmVzdWx0KSB7XHJcbiAgICAgICAgICAgIGlmIChpdGVtcy5uZXh0KSB7XHJcbiAgICAgICAgICAgICAgcGFyYW1zID0gKHBhcmFtcykgPyBwYXJhbXMgOiB7fVxyXG4gICAgICAgICAgICAgIHBhcmFtcy5QQVJBTVMgPSB7XHJcbiAgICAgICAgICAgICAgICBOQVZfUEFSQU1TOiB7XHJcbiAgICAgICAgICAgICAgICAgIG5QYWdlU2l6ZTogdGhpcy5wYWdlU2l6ZSxcclxuICAgICAgICAgICAgICAgICAgaU51bVBhZ2U6IGl0ZW1zLm5leHQgLyB0aGlzLnBhZ2VTaXplICsgMVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICByZXR1cm4gdGhpcy5nZXRBbGwocGFyYW1zLCBjYWNoZSkucGlwZShcclxuICAgICAgICAgICAgICAgIG1hcCh2RW5kID0+IHtcclxuICAgICAgICAgICAgICAgICAgaWYgKHZFbmQgJiYgdkVuZC5yZXN1bHQgJiYgaXRlbXMucmVzdWx0KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG1lcmdlKGNsb25lKHZFbmQpLCB7cmVzdWx0OiBbLi4uaXRlbXMucmVzdWx0LCAuLi52RW5kLnJlc3VsdF19KVxyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgIHJldHVybiBpdGVtc1xyXG4gICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuIG9mKGl0ZW1zKVxyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgcmV0dXJuIG9mKHVuZGVmaW5lZClcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KVxyXG4gICAgICApXHJcbiAgfVxyXG4gICAqL1xyXG5cclxuICAvKlxyXG4gIGdldENhY2hlT2ZmKHBhcmFtczogUmVxdWVzdFBhcmFtc0VsYXBzZWRHZXRMaXN0IHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkKSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8aUh0dHBBbnN3ZXJCWDxCWFJlc3RFbGFwc2VkSHR0cFtdPiB8IHVuZGVmaW5lZD5cclxuICAgICh0aGlzLnVybC5nZXRsaXN0LCBwYXJhbXMsICfQvdC1INGD0LTQsNC70L7RgdGMINC/0L7Qu9GD0YfQuNGC0Ywg0LLRgNC10LzRjyDQv9C+INC30LDQtNCw0YfQsNC8JylcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgbWFwKHYgPT4ge1xyXG4gICAgICAgICAgaWYgKHYgJiYgdi5yZXN1bHQpIHtcclxuICAgICAgICAgICAgY29uc3QgbmV3UmVzdWx0OiBCWFJlc3RFbGFwc2VkW10gPSBbXVxyXG4gICAgICAgICAgICBmb3IgKGxldCB0YXNrIG9mIHYucmVzdWx0KSB7XHJcbiAgICAgICAgICAgICAgbmV3UmVzdWx0LnB1c2godGhpcy5lbGFwc2VkQlhNYXAuQW5zd2VyRWxhcHNlZEdldEh0dHBUb0Fuc3dlckVsYXBzZWRHZXQodGFzaykpXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuIGV4dGVuZCh2LCB7cmVzdWx0OiBuZXdSZXN1bHR9KSBhcyBpSHR0cEFuc3dlckJYPEJYUmVzdEVsYXBzZWRbXT5cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHJldHVybiB1bmRlZmluZWRcclxuICAgICAgICB9KSxcclxuICAgICAgICB0YXAodiA9PiB7XHJcbiAgICAgICAgICBpZiAodiAmJiBwYXJhbXMpIHtcclxuICAgICAgICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChzYXZlSHR0cFRhc2tUaW1lKHtcclxuICAgICAgICAgICAgICBmaWx0ZXI6IGNsb25lKHBhcmFtcyksXHJcbiAgICAgICAgICAgICAgdGltZTogdlxyXG4gICAgICAgICAgICB9KSlcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KVxyXG4gICAgICApXHJcbiAgfVxyXG4gICovXHJcblxyXG4gIGlzQWxsb3dlZE1vZGlmeShpZFRhc2s6IG51bWJlciwgaWRJdGVtOiBudW1iZXIpIHtcclxuICAgIGxldCBwZXJtaXNzaW9uID0gUGVybWlzc2lvbi5nZXQoKVxyXG4gICAgaWYgKHBlcm1pc3Npb24/LnRhc2tzPy5sZW5ndGgpIHtcclxuICAgICAgbGV0IGZpbmRUYXNrID0gcGVybWlzc2lvbi50YXNrcy5maW5kKGkgPT4gaS5pZCA9PT0gaWRUYXNrKVxyXG4gICAgICBpZiAoZmluZFRhc2spIHtcclxuICAgICAgICBsZXQgZmluZCA9IGZpbmRUYXNrLmVsYXBzZWRJdGVtLmZpbmQoaSA9PiBpLmlkID09PSBpZEl0ZW0pXHJcbiAgICAgICAgaWYgKGZpbmQgJiYgZmluZC52ZXJpZmllZC5lZGl0KSB7XHJcbiAgICAgICAgICByZXR1cm4gb2YoZmluZC5lZGl0KVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0aGlzLmlzQWN0aW9uQWxsb3dlZCh7XHJcbiAgICAgIFRBU0tJRDogaWRUYXNrLFxyXG4gICAgICBJVEVNSUQ6IDIsXHJcbiAgICAgIEFDVElPTklEOiBpZEl0ZW1cclxuICAgIH0pLnJlc3VsdCgpLnBpcGUoXHJcbiAgICAgIHRhcCh2ID0+IHtcclxuICAgICAgICBpZiAodiAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICBQZXJtaXNzaW9uLnNldFRhc2tFbGFwc2VkSXRlbShpZFRhc2ssXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICBpZDogaWRJdGVtLFxyXG4gICAgICAgICAgICAgIGVkaXQ6IHYsXHJcbiAgICAgICAgICAgICAgZGVsOiBmYWxzZSxcclxuICAgICAgICAgICAgICB2ZXJpZmllZDoge1xyXG4gICAgICAgICAgICAgICAgZWRpdDogdHJ1ZSxcclxuICAgICAgICAgICAgICAgIGRlbDogZmFsc2UsXHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgIH1cclxuICAgICAgfSlcclxuICAgIClcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaXNBbGxvd2VkUmVtb3ZlKGlkVGFzazogbnVtYmVyLCBpZEl0ZW06IG51bWJlcikge1xyXG4gICAgcmV0dXJuIHRoaXMuaXNBY3Rpb25BbGxvd2VkKFxyXG4gICAgICB7XHJcbiAgICAgICAgVEFTS0lEOiBpZFRhc2ssXHJcbiAgICAgICAgSVRFTUlEOiAzLFxyXG4gICAgICAgIEFDVElPTklEOiBpZEl0ZW1cclxuICAgICAgfSkucmVzdWx0KClcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIGlkQWN0aW9uOlxyXG4gICAqIDEgLSBBQ1RJT05fRUxBUFNFRF9USU1FX0FERFxyXG4gICAqIDIgLSBBQ1RJT05fRUxBUFNFRF9USU1FX01PRElGWVxyXG4gICAqIDMgLSBBQ1RJT05fRUxBUFNFRF9USU1FX1JFTU9WRVxyXG4gICAqIEBwYXJhbSBwYXJhbVxyXG4gICAqL1xyXG4gIGlzQWN0aW9uQWxsb3dlZChwYXJhbTogaUlzQWN0aW9uQWxsb3dlZFBhcmFtKSB7XHJcbiAgICByZXR1cm4gdGhpcy5OYXZ2eS5zaW1wbGUoKCkgPT4gdGhpcy5vcGVyYXRpb24uY2hlY2tQZXJtaXNzaW9uUmVhZFRhc2socGFyYW0uVEFTS0lEKS5waXBlKFxyXG4gICAgICBtZXJnZU1hcChjYW5SZWFkID0+IHtcclxuICAgICAgICBpZiAoY2FuUmVhZCkge1xyXG4gICAgICAgICAgcmV0dXJuIHRoaXMuQlhSZXN0RWxhcHNlZGl0ZW0uaXNBY3Rpb25BbGxvd2VkKHBhcmFtKVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiBuZXcgRXJyb3IoJ9Ce0YLRgdGD0YLRgdGC0LLRg9GO0YIg0L/RgNCw0LLQsCDQvdCwINGH0YLQtdC90LjQtSDQt9Cw0LTQsNGH0LgnKSlcclxuICAgICAgfSlcclxuICAgICkpXHJcbiAgfVxyXG5cclxuICBkZWwocGFyYW06IGlCWFJlc3RQYXJhbURlbEVsYXBzZWRpdGVtKSB7XHJcbiAgICByZXR1cm4gdGhpcy5OYXZ2eS5zaW1wbGUoKCkgPT4gdGhpcy5vcGVyYXRpb24uY2hlY2tQZXJtaXNzaW9uUmVhZFRhc2socGFyYW0uVEFTS0lEKS5waXBlKFxyXG4gICAgICBtZXJnZU1hcChhbGxvd2VkUmVhZFRhc2sgPT4ge1xyXG4gICAgICAgIGlmIChhbGxvd2VkUmVhZFRhc2spIHtcclxuICAgICAgICAgIHJldHVybiB0aGlzLmlzQWxsb3dlZFJlbW92ZShwYXJhbS5UQVNLSUQsIHBhcmFtLklURU1JRCkucGlwZShcclxuICAgICAgICAgICAgbWVyZ2VNYXAoYWxsb3dlZCA9PiB7XHJcbiAgICAgICAgICAgICAgaWYgKGFsbG93ZWQpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLkJYUmVzdEVsYXBzZWRpdGVtLmRlbChwYXJhbSlcclxuICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gbmV3IEVycm9yKCfQntGC0YHRg9GC0YHRgtCy0YPRjtGCINC/0YDQsNCy0LAg0L3QsCDRg9C00LDQu9C10L3QuNC1INC30LDQv9C40YHQuCDQt9Cw0YLRgNCw0YfQtdC90L3QvtCz0L4g0LLRgNC10LzQtdC90LgnKSlcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pKVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiBuZXcgRXJyb3IoJ9Ce0YLRgdGD0YLRgdGC0LLRg9GO0YIg0L/RgNCw0LLQsCDQvdCwINGH0YLQtdC90LjQtSDQt9Cw0LTQsNGH0LgnKSlcclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgICApLCAn0J3QtSDRg9C00LDQu9C+0YHRjCDRg9C00LDQu9C40YLRjCDRjdC70LXQvNC10L3RgiDRgdC/0LjRgdC60LAnLCB2ID0+ICh2ID09PSBudWxsKSlcclxuICB9XHJcblxyXG59XHJcbiJdfQ==
@@ -1,10 +1,14 @@
1
- import { $elapseditem, $getlist, $task } from '../../../consts/part-name-metods';
2
- import { map } from 'rxjs/operators';
1
+ import { $elapseditem, $getaccess, $getlist, $task, $tasks } from '../../../consts/part-name-metods';
2
+ import { map, take } from 'rxjs/operators';
3
+ import { forkJoin, mergeMap, of, tap } from 'rxjs';
4
+ import { Permission } from '../../../services/permission';
3
5
  export class BXRestNavvyOperationElapseditem {
4
- constructor(http, BXRestNavvyElapseditem, BXRestMapElapseditem) {
6
+ constructor(http, BXRestNavvyElapseditem, BXRestMapElapseditem, BXRestNavvyUser, BXRestNavvyTasks) {
5
7
  this.http = http;
6
8
  this.BXRestNavvyElapseditem = BXRestNavvyElapseditem;
7
9
  this.BXRestMapElapseditem = BXRestMapElapseditem;
10
+ this.BXRestNavvyUser = BXRestNavvyUser;
11
+ this.BXRestNavvyTasks = BXRestNavvyTasks;
8
12
  }
9
13
  getByInterval(idsUsers, dateStart, dateEnd) {
10
14
  const param = {
@@ -34,5 +38,98 @@ export class BXRestNavvyOperationElapseditem {
34
38
  return undefined;
35
39
  }));
36
40
  }
41
+ checkPermissionAddElapsedtimeToTaskArr(tasks) {
42
+ let request = Object.assign({}, ...tasks.map(i => {
43
+ return { [i]: this.checkPermissionAddElapsedtimeToTask(i) };
44
+ }));
45
+ return forkJoin(request)
46
+ .pipe(take(1), mergeMap(v => {
47
+ let forForeach = Object.entries(v).map(([key, value]) => {
48
+ return { id: Number(key), value: value };
49
+ });
50
+ if (forForeach.find(i => i.value === undefined) !== undefined) {
51
+ let forForeachHave = forForeach.filter(i => i.value !== undefined);
52
+ let forForeachNotHave = forForeach.filter(i => i.value === undefined); // тут получаем все id не сохраненных у нас прав
53
+ return this.http.branch(Object.assign({}, ...forForeachNotHave
54
+ .map(i => i.id)
55
+ .map(i => {
56
+ return {
57
+ [i]: {
58
+ name: this.http.getNameMethod([$tasks, $task, $getaccess]),
59
+ param: {
60
+ TASKID: i,
61
+ ITEMID: 1,
62
+ ACTIONID: 1
63
+ }
64
+ }
65
+ };
66
+ }))).pipe(map(v => {
67
+ if (v && v.length) {
68
+ const res = this.http.mapBranchResult(v);
69
+ forForeachNotHave = Object.entries(res).map(([key, value]) => {
70
+ return { id: Number(key), value: value };
71
+ });
72
+ return Object.assign(forForeachHave, forForeachNotHave);
73
+ }
74
+ return undefined;
75
+ }));
76
+ }
77
+ return of(forForeach);
78
+ }));
79
+ }
80
+ checkPermissionAddElapsedtimeToTask(idTask) {
81
+ let permission = Permission.get();
82
+ if (permission?.tasks?.length) {
83
+ let findTask = permission.tasks.find(i => i.id === idTask);
84
+ if (findTask?.permission) {
85
+ return of(findTask.permission['ELAPSEDTIME.ADD']);
86
+ }
87
+ return this.BXRestNavvyUser.current().result().pipe(mergeMap(self => {
88
+ if (self) {
89
+ return this.BXRestNavvyTasks.task.getaccess({
90
+ id: idTask,
91
+ users: [self.ID]
92
+ }).result().pipe(tap(v => {
93
+ if (v && v[self.ID]) {
94
+ Permission.set({
95
+ tasks: [{ id: idTask, permission: v[self.ID], elapsedItem: [] }]
96
+ });
97
+ }
98
+ }), map(v => {
99
+ return (v && v[self.ID]) ? v[self.ID]['ELAPSEDTIME.ADD'] : false;
100
+ }));
101
+ }
102
+ return of(undefined);
103
+ }));
104
+ }
105
+ return of(undefined);
106
+ }
107
+ checkPermissionReadTask(idTask) {
108
+ let permission = Permission.get();
109
+ if (permission?.tasks?.length) {
110
+ let findTask = permission.tasks.find(i => i.id === idTask);
111
+ if (findTask?.permission) {
112
+ return of(findTask.permission.ACCEPT);
113
+ }
114
+ return this.BXRestNavvyUser.current().result().pipe(mergeMap(self => {
115
+ if (self) {
116
+ return this.BXRestNavvyTasks.task.getaccess({
117
+ id: idTask,
118
+ users: [self.ID]
119
+ }).result().pipe(tap(v => {
120
+ if (v && v[self.ID]) {
121
+ Permission.set({
122
+ tasks: [{ id: idTask, permission: v[self.ID], elapsedItem: [] }]
123
+ });
124
+ }
125
+ }), map(v => {
126
+ return (v && v[self.ID]) ? v[self.ID].ACCEPT : false;
127
+ }));
128
+ }
129
+ return of(undefined);
130
+ }));
131
+ }
132
+ return of(undefined);
133
+ }
37
134
  }
38
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxhcHNlZGl0ZW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ieC1yZXN0L3NyYy9yZXF1ZXN0LW5hdnZ5L3Rhc2svb3BlcmF0aW9uL2VsYXBzZWRpdGVtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLE9BQU8sRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxNQUFNLGtDQUFrQyxDQUFBO0FBQ2hGLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUdwQyxNQUFNLE9BQU8sK0JBQStCO0lBRTFDLFlBQ1UsSUFBb0IsRUFDcEIsc0JBQThDLEVBQzlDLG9CQUE4QztRQUY5QyxTQUFJLEdBQUosSUFBSSxDQUFnQjtRQUNwQiwyQkFBc0IsR0FBdEIsc0JBQXNCLENBQXdCO1FBQzlDLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBMEI7SUFFeEQsQ0FBQztJQUVELGFBQWEsQ0FBQyxRQUFrQixFQUFFLFNBQWUsRUFBRSxPQUFhO1FBQzlELE1BQU0sS0FBSyxHQUErQjtZQUN4QyxLQUFLLEVBQUU7Z0JBQ0wsRUFBRSxFQUFFLE1BQU07YUFDWDtZQUNELE1BQU0sRUFBRTtnQkFDTixPQUFPLEVBQUUsUUFBUTtnQkFDakIsZ0JBQWdCLEVBQUUsU0FBUyxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUM7Z0JBQ25ELGdCQUFnQixFQUFFLE9BQU8sQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDO2FBQ2xEO1NBQ0YsQ0FBQTtRQUNELE9BQU8sSUFBSSxDQUFDLHNCQUFzQixDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUNuRCxDQUFDO0lBRUQsZUFBZSxDQUFDLEdBQWE7UUFDM0IsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FFckIsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNWLE9BQU87Z0JBQ0wsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsS0FBSyxFQUFFLFlBQVksRUFBRSxRQUFRLENBQUMsQ0FBQztnQkFDOUQsS0FBSyxFQUFFO29CQUNMLE1BQU0sRUFBRSxDQUFDO2lCQUNWO2FBQ0YsQ0FBQTtRQUNILENBQUMsQ0FBQyxDQUNILENBQUMsSUFBSSxDQUNKLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNOLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLEVBQUU7Z0JBQ2pCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQy9DLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FDMUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQWlDLEVBQUUsQ0FBQyxDQUFDLEtBQUssU0FBUyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUE7YUFDdkU7WUFDRCxPQUFPLFNBQVMsQ0FBQTtRQUNsQixDQUFDLENBQUMsQ0FDSCxDQUFBO0lBQ0gsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaUJYUmVzdFBhcmFtRWxhcHNlZGl0ZW1HZXQgfSBmcm9tICcuLi8uLi8uLi90eXBpZmljYXRpb24vcmVzdC90YXNrL2VsYXBzZWRpdGVtL2dldCdcclxuaW1wb3J0IHsgQlhSZXN0TmF2dnlFbGFwc2VkaXRlbSB9IGZyb20gJy4uL2VsYXBzZWRpdGVtJ1xyXG5pbXBvcnQgeyBIdHRwQlhTZXJ2aWNlcyB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2h0dHAvSHR0cEJYJ1xyXG5pbXBvcnQgeyBpQlhSZXN0VGFza0VsYXBzZWRJdGVtLCBpQlhSZXN0VGFza0VsYXBzZWRJdGVtSHR0cCB9IGZyb20gJy4uLy4uLy4uL3R5cGlmaWNhdGlvbi9yZXN0L3Rhc2svZWxhcHNlZGl0ZW0vaXRlbSdcclxuaW1wb3J0IHsgJGVsYXBzZWRpdGVtLCAkZ2V0bGlzdCwgJHRhc2sgfSBmcm9tICcuLi8uLi8uLi9jb25zdHMvcGFydC1uYW1lLW1ldG9kcydcclxuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnXHJcbmltcG9ydCB7IEJYUmVzdE1hcFRhc2tFbGFwc2VkaXRlbSB9IGZyb20gJy4uLy4uLy4uL21hcC90YXNrL2VsYXBzZWRpdGVtJ1xyXG5cclxuZXhwb3J0IGNsYXNzIEJYUmVzdE5hdnZ5T3BlcmF0aW9uRWxhcHNlZGl0ZW0ge1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgaHR0cDogSHR0cEJYU2VydmljZXMsXHJcbiAgICBwcml2YXRlIEJYUmVzdE5hdnZ5RWxhcHNlZGl0ZW06IEJYUmVzdE5hdnZ5RWxhcHNlZGl0ZW0sXHJcbiAgICBwcml2YXRlIEJYUmVzdE1hcEVsYXBzZWRpdGVtOiBCWFJlc3RNYXBUYXNrRWxhcHNlZGl0ZW0sXHJcbiAgKSB7XHJcbiAgfVxyXG5cclxuICBnZXRCeUludGVydmFsKGlkc1VzZXJzOiBudW1iZXJbXSwgZGF0ZVN0YXJ0OiBEYXRlLCBkYXRlRW5kOiBEYXRlKSB7XHJcbiAgICBjb25zdCBwYXJhbTogaUJYUmVzdFBhcmFtRWxhcHNlZGl0ZW1HZXQgPSB7XHJcbiAgICAgIE9SREVSOiB7XHJcbiAgICAgICAgSUQ6ICdERVNDJ1xyXG4gICAgICB9LFxyXG4gICAgICBGSUxURVI6IHtcclxuICAgICAgICBVU0VSX0lEOiBpZHNVc2VycyxcclxuICAgICAgICAnPj1DUkVBVEVEX0RBVEUnOiBkYXRlU3RhcnQudG9Mb2NhbGVTdHJpbmcoJ3J1LVJ1JyksXHJcbiAgICAgICAgJzw9Q1JFQVRFRF9EQVRFJzogZGF0ZUVuZC50b0xvY2FsZVN0cmluZygncnUtUnUnKSxcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMuQlhSZXN0TmF2dnlFbGFwc2VkaXRlbS5nZXRMaXN0KHBhcmFtKVxyXG4gIH1cclxuXHJcbiAgZ2V0TGlzdEJ5SURUYXNrKGlkczogbnVtYmVyW10pIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuYnJhbmNoPGlCWFJlc3RQYXJhbUVsYXBzZWRpdGVtR2V0LCBpQlhSZXN0VGFza0VsYXBzZWRJdGVtSHR0cFtdPlxyXG4gICAgKFxyXG4gICAgICBpZHMubWFwKGkgPT4ge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICBuYW1lOiB0aGlzLmh0dHAuZ2V0TmFtZU1ldGhvZChbJHRhc2ssICRlbGFwc2VkaXRlbSwgJGdldGxpc3RdKSxcclxuICAgICAgICAgIHBhcmFtOiB7XHJcbiAgICAgICAgICAgIFRBU0tJRDogaVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSlcclxuICAgICkucGlwZShcclxuICAgICAgbWFwKHYgPT4ge1xyXG4gICAgICAgIGlmICh2ICYmIHYubGVuZ3RoKSB7XHJcbiAgICAgICAgICByZXR1cm4gdGhpcy5odHRwLm1hcEJyYW5jaFJlc3VsdFdpdGhvdXRLZXkodikubWFwKFxyXG4gICAgICAgICAgICBpID0+IHRoaXMuQlhSZXN0TWFwRWxhcHNlZGl0ZW0uZ2V0TGlzdChpKVxyXG4gICAgICAgICAgKS5maWx0ZXIoKGkpOiBpIGlzIGlCWFJlc3RUYXNrRWxhcHNlZEl0ZW1bXSA9PiBpICE9PSB1bmRlZmluZWQpLmZsYXQoKVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdW5kZWZpbmVkXHJcbiAgICAgIH0pXHJcbiAgICApXHJcbiAgfVxyXG59XHJcbiJdfQ==
135
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxhcHNlZGl0ZW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ieC1yZXN0L3NyYy9yZXF1ZXN0LW5hdnZ5L3Rhc2svb3BlcmF0aW9uL2VsYXBzZWRpdGVtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLE9BQU8sRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sa0NBQWtDLENBQUE7QUFDcEcsT0FBTyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUUxQyxPQUFPLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBYyxFQUFFLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBRTlELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQTtBQUl6RCxNQUFNLE9BQU8sK0JBQStCO0lBRTFDLFlBQ1UsSUFBb0IsRUFDcEIsc0JBQThDLEVBQzlDLG9CQUE4QyxFQUM5QyxlQUFnQyxFQUNoQyxnQkFBa0M7UUFKbEMsU0FBSSxHQUFKLElBQUksQ0FBZ0I7UUFDcEIsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUF3QjtRQUM5Qyx5QkFBb0IsR0FBcEIsb0JBQW9CLENBQTBCO1FBQzlDLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNoQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO0lBRTVDLENBQUM7SUFFRCxhQUFhLENBQUMsUUFBa0IsRUFBRSxTQUFlLEVBQUUsT0FBYTtRQUM5RCxNQUFNLEtBQUssR0FBK0I7WUFDeEMsS0FBSyxFQUFFO2dCQUNMLEVBQUUsRUFBRSxNQUFNO2FBQ1g7WUFDRCxNQUFNLEVBQUU7Z0JBQ04sT0FBTyxFQUFFLFFBQVE7Z0JBQ2pCLGdCQUFnQixFQUFFLFNBQVMsQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDO2dCQUNuRCxnQkFBZ0IsRUFBRSxPQUFPLENBQUMsY0FBYyxD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NkJBQy9ELENBQUMsQ0FBQTt5QkFDSDtvQkFDSCxDQUFDLENBQUMsRUFDRixHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUU7d0JBQ04sT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUE7b0JBQ3RELENBQUMsQ0FBQyxDQUNILENBQUE7aUJBQ0Y7Z0JBQ0QsT0FBTyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUE7WUFDdEIsQ0FBQyxDQUFDLENBQ0gsQ0FBQTtTQUNGO1FBRUQsT0FBTyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUE7SUFDdEIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaUJYUmVzdFBhcmFtRWxhcHNlZGl0ZW1HZXQgfSBmcm9tICcuLi8uLi8uLi90eXBpZmljYXRpb24vcmVzdC90YXNrL2VsYXBzZWRpdGVtL2dldCdcclxuaW1wb3J0IHsgQlhSZXN0TmF2dnlFbGFwc2VkaXRlbSB9IGZyb20gJy4uL2VsYXBzZWRpdGVtJ1xyXG5pbXBvcnQgeyBIdHRwQlhTZXJ2aWNlcyB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2h0dHAvSHR0cEJYJ1xyXG5pbXBvcnQgeyBpQlhSZXN0VGFza0VsYXBzZWRJdGVtLCBpQlhSZXN0VGFza0VsYXBzZWRJdGVtSHR0cCB9IGZyb20gJy4uLy4uLy4uL3R5cGlmaWNhdGlvbi9yZXN0L3Rhc2svZWxhcHNlZGl0ZW0vaXRlbSdcclxuaW1wb3J0IHsgJGVsYXBzZWRpdGVtLCAkZ2V0YWNjZXNzLCAkZ2V0bGlzdCwgJHRhc2ssICR0YXNrcyB9IGZyb20gJy4uLy4uLy4uL2NvbnN0cy9wYXJ0LW5hbWUtbWV0b2RzJ1xyXG5pbXBvcnQgeyBtYXAsIHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycydcclxuaW1wb3J0IHsgQlhSZXN0TWFwVGFza0VsYXBzZWRpdGVtIH0gZnJvbSAnLi4vLi4vLi4vbWFwL3Rhc2svZWxhcHNlZGl0ZW0nXHJcbmltcG9ydCB7IGZvcmtKb2luLCBtZXJnZU1hcCwgT2JzZXJ2YWJsZSwgb2YsIHRhcCB9IGZyb20gJ3J4anMnXHJcbmltcG9ydCB7IGlJc0FjdGlvbkFsbG93ZWRQYXJhbSB9IGZyb20gJy4uLy4uLy4uL3R5cGlmaWNhdGlvbi9yZXN0L3Rhc2svZWxhcHNlZGl0ZW0vaXNBY3Rpb25BbGxvd2VkUGFyYW0nXHJcbmltcG9ydCB7IFBlcm1pc3Npb24gfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9wZXJtaXNzaW9uJ1xyXG5pbXBvcnQgeyBCWFJlc3ROYXZ2eVVzZXIgfSBmcm9tICcuLi8uLi91c2VyJ1xyXG5pbXBvcnQgeyBCWFJlc3ROYXZ2eVRhc2tzIH0gZnJvbSAnLi4vLi4vdGFza3MnXHJcblxyXG5leHBvcnQgY2xhc3MgQlhSZXN0TmF2dnlPcGVyYXRpb25FbGFwc2VkaXRlbSB7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBodHRwOiBIdHRwQlhTZXJ2aWNlcyxcclxuICAgIHByaXZhdGUgQlhSZXN0TmF2dnlFbGFwc2VkaXRlbTogQlhSZXN0TmF2dnlFbGFwc2VkaXRlbSxcclxuICAgIHByaXZhdGUgQlhSZXN0TWFwRWxhcHNlZGl0ZW06IEJYUmVzdE1hcFRhc2tFbGFwc2VkaXRlbSxcclxuICAgIHByaXZhdGUgQlhSZXN0TmF2dnlVc2VyOiBCWFJlc3ROYXZ2eVVzZXIsXHJcbiAgICBwcml2YXRlIEJYUmVzdE5hdnZ5VGFza3M6IEJYUmVzdE5hdnZ5VGFza3MsXHJcbiAgKSB7XHJcbiAgfVxyXG5cclxuICBnZXRCeUludGVydmFsKGlkc1VzZXJzOiBudW1iZXJbXSwgZGF0ZVN0YXJ0OiBEYXRlLCBkYXRlRW5kOiBEYXRlKSB7XHJcbiAgICBjb25zdCBwYXJhbTogaUJYUmVzdFBhcmFtRWxhcHNlZGl0ZW1HZXQgPSB7XHJcbiAgICAgIE9SREVSOiB7XHJcbiAgICAgICAgSUQ6ICdERVNDJ1xyXG4gICAgICB9LFxyXG4gICAgICBGSUxURVI6IHtcclxuICAgICAgICBVU0VSX0lEOiBpZHNVc2VycyxcclxuICAgICAgICAnPj1DUkVBVEVEX0RBVEUnOiBkYXRlU3RhcnQudG9Mb2NhbGVTdHJpbmcoJ3J1LVJ1JyksXHJcbiAgICAgICAgJzw9Q1JFQVRFRF9EQVRFJzogZGF0ZUVuZC50b0xvY2FsZVN0cmluZygncnUtUnUnKSxcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMuQlhSZXN0TmF2dnlFbGFwc2VkaXRlbS5nZXRMaXN0KHBhcmFtKVxyXG4gIH1cclxuXHJcbiAgZ2V0TGlzdEJ5SURUYXNrKGlkczogbnVtYmVyW10pIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuYnJhbmNoPGlCWFJlc3RQYXJhbUVsYXBzZWRpdGVtR2V0LCBpQlhSZXN0VGFza0VsYXBzZWRJdGVtSHR0cFtdPlxyXG4gICAgKFxyXG4gICAgICBpZHMubWFwKGkgPT4ge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICBuYW1lOiB0aGlzLmh0dHAuZ2V0TmFtZU1ldGhvZChbJHRhc2ssICRlbGFwc2VkaXRlbSwgJGdldGxpc3RdKSxcclxuICAgICAgICAgIHBhcmFtOiB7XHJcbiAgICAgICAgICAgIFRBU0tJRDogaVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSlcclxuICAgICkucGlwZShcclxuICAgICAgbWFwKHYgPT4ge1xyXG4gICAgICAgIGlmICh2ICYmIHYubGVuZ3RoKSB7XHJcbiAgICAgICAgICByZXR1cm4gdGhpcy5odHRwLm1hcEJyYW5jaFJlc3VsdFdpdGhvdXRLZXkodikubWFwKFxyXG4gICAgICAgICAgICBpID0+IHRoaXMuQlhSZXN0TWFwRWxhcHNlZGl0ZW0uZ2V0TGlzdChpKVxyXG4gICAgICAgICAgKS5maWx0ZXIoKGkpOiBpIGlzIGlCWFJlc3RUYXNrRWxhcHNlZEl0ZW1bXSA9PiBpICE9PSB1bmRlZmluZWQpLmZsYXQoKVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdW5kZWZpbmVkXHJcbiAgICAgIH0pXHJcbiAgICApXHJcbiAgfVxyXG5cclxuICBjaGVja1Blcm1pc3Npb25BZGRFbGFwc2VkdGltZVRvVGFza0Fycih0YXNrczogbnVtYmVyW10pIHtcclxuICAgIGxldCByZXF1ZXN0OiB7IFtrZXk6IG51bWJlcl06IE9ic2VydmFibGU8Ym9vbGVhbj4gfSA9IE9iamVjdC5hc3NpZ24oe30sIC4uLnRhc2tzLm1hcChpID0+IHtcclxuICAgICAgcmV0dXJuIHtbaV06IHRoaXMuY2hlY2tQZXJtaXNzaW9uQWRkRWxhcHNlZHRpbWVUb1Rhc2soaSl9XHJcbiAgICB9KSlcclxuICAgIHJldHVybiBmb3JrSm9pbihyZXF1ZXN0KVxyXG4gICAgICAucGlwZShcclxuICAgICAgICB0YWtlKDEpLFxyXG4gICAgICAgIG1lcmdlTWFwKHYgPT4ge1xyXG4gICAgICAgICAgbGV0IGZvckZvcmVhY2ggPSBPYmplY3QuZW50cmllcyh2KS5tYXAoKFtrZXksIHZhbHVlXSkgPT4ge1xyXG4gICAgICAgICAgICByZXR1cm4ge2lkOiBOdW1iZXIoa2V5KSwgdmFsdWU6IHZhbHVlfVxyXG4gICAgICAgICAgfSlcclxuICAgICAgICAgIGlmIChmb3JGb3JlYWNoLmZpbmQoaSA9PiBpLnZhbHVlID09PSB1bmRlZmluZWQpICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgbGV0IGZvckZvcmVhY2hIYXZlID0gZm9yRm9yZWFjaC5maWx0ZXIoaSA9PiBpLnZhbHVlICE9PSB1bmRlZmluZWQpXHJcbiAgICAgICAgICAgIGxldCBmb3JGb3JlYWNoTm90SGF2ZSA9IGZvckZvcmVhY2guZmlsdGVyKGkgPT4gaS52YWx1ZSA9PT0gdW5kZWZpbmVkKSAvLyDRgtGD0YIg0L/QvtC70YPRh9Cw0LXQvCDQstGB0LUgaWQg0L3QtSDRgdC+0YXRgNCw0L3QtdC90L3Ri9GFINGDINC90LDRgSDQv9GA0LDQslxyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5odHRwLmJyYW5jaDxpSXNBY3Rpb25BbGxvd2VkUGFyYW0sIGJvb2xlYW4+KFxyXG4gICAgICAgICAgICAgIE9iamVjdC5hc3NpZ24oe30sIC4uLmZvckZvcmVhY2hOb3RIYXZlXHJcbiAgICAgICAgICAgICAgICAubWFwKGkgPT4gaS5pZClcclxuICAgICAgICAgICAgICAgIC5tYXAoaSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICAgICAgICAgW2ldOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICBuYW1lOiB0aGlzLmh0dHAuZ2V0TmFtZU1ldGhvZChbJHRhc2tzLCAkdGFzaywgJGdldGFjY2Vzc10pLFxyXG4gICAgICAgICAgICAgICAgICAgICAgcGFyYW06IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgVEFTS0lEOiBpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBJVEVNSUQ6IDEsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIEFDVElPTklEOiAxXHJcbiAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9KSlcclxuICAgICAgICAgICAgKS5waXBlKFxyXG4gICAgICAgICAgICAgIG1hcCh2ID0+IHtcclxuICAgICAgICAgICAgICAgIGlmICh2ICYmIHYubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgICAgIGNvbnN0IHJlczogeyBbcDogbnVtYmVyXTogYm9vbGVhbiB9ID0gdGhpcy5odHRwLm1hcEJyYW5jaFJlc3VsdCh2KVxyXG4gICAgICAgICAgICAgICAgICBmb3JGb3JlYWNoTm90SGF2ZSA9IE9iamVjdC5lbnRyaWVzKHJlcykubWFwKChba2V5LCB2YWx1ZV0pID0+IHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4ge2lkOiBOdW1iZXIoa2V5KSwgdmFsdWU6IHZhbHVlfVxyXG4gICAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihmb3JGb3JlYWNoSGF2ZSwgZm9yRm9yZWFjaE5vdEhhdmUpXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkXHJcbiAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgcmV0dXJuIG9mKGZvckZvcmVhY2gpXHJcbiAgICAgICAgfSlcclxuICAgICAgKVxyXG4gIH1cclxuXHJcbiAgY2hlY2tQZXJtaXNzaW9uQWRkRWxhcHNlZHRpbWVUb1Rhc2soaWRUYXNrOiBudW1iZXIpIHtcclxuICAgIGxldCBwZXJtaXNzaW9uID0gUGVybWlzc2lvbi5nZXQoKVxyXG4gICAgaWYgKHBlcm1pc3Npb24/LnRhc2tzPy5sZW5ndGgpIHtcclxuICAgICAgbGV0IGZpbmRUYXNrID0gcGVybWlzc2lvbi50YXNrcy5maW5kKGkgPT4gaS5pZCA9PT0gaWRUYXNrKVxyXG4gICAgICBpZiAoZmluZFRhc2s/LnBlcm1pc3Npb24pIHtcclxuICAgICAgICByZXR1cm4gb2YoZmluZFRhc2sucGVybWlzc2lvblsnRUxBUFNFRFRJTUUuQUREJ10pXHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIHRoaXMuQlhSZXN0TmF2dnlVc2VyLmN1cnJlbnQoKS5yZXN1bHQoKS5waXBlKFxyXG4gICAgICAgIG1lcmdlTWFwKHNlbGYgPT4ge1xyXG4gICAgICAgICAgaWYgKHNlbGYpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuQlhSZXN0TmF2dnlUYXNrcy50YXNrLmdldGFjY2VzcyhcclxuICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBpZDogaWRUYXNrLFxyXG4gICAgICAgICAgICAgICAgdXNlcnM6IFtzZWxmLklEXVxyXG4gICAgICAgICAgICAgIH0pLnJlc3VsdCgpLnBpcGUoXHJcbiAgICAgICAgICAgICAgdGFwKHYgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKHYgJiYgdltzZWxmLklEXSkge1xyXG4gICAgICAgICAgICAgICAgICBQZXJtaXNzaW9uLnNldCh7XHJcbiAgICAgICAgICAgICAgICAgICAgdGFza3M6IFt7aWQ6IGlkVGFzaywgcGVybWlzc2lvbjogdltzZWxmLklEXSwgZWxhcHNlZEl0ZW06IFtdfV1cclxuICAgICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgICBtYXAodiA9PiB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gKHYgJiYgdltzZWxmLklEXSkgPyB2W3NlbGYuSURdWydFTEFQU0VEVElNRS5BREQnXSA6IGZhbHNlXHJcbiAgICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHJldHVybiBvZih1bmRlZmluZWQpXHJcbiAgICAgICAgfSlcclxuICAgICAgKVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBvZih1bmRlZmluZWQpXHJcbiAgfVxyXG5cclxuICBjaGVja1Blcm1pc3Npb25SZWFkVGFzayhpZFRhc2s6IG51bWJlcikge1xyXG4gICAgbGV0IHBlcm1pc3Npb24gPSBQZXJtaXNzaW9uLmdldCgpXHJcbiAgICBpZiAocGVybWlzc2lvbj8udGFza3M/Lmxlbmd0aCkge1xyXG4gICAgICBsZXQgZmluZFRhc2sgPSBwZXJtaXNzaW9uLnRhc2tzLmZpbmQoaSA9PiBpLmlkID09PSBpZFRhc2spXHJcbiAgICAgIGlmIChmaW5kVGFzaz8ucGVybWlzc2lvbikge1xyXG4gICAgICAgIHJldHVybiBvZihmaW5kVGFzay5wZXJtaXNzaW9uLkFDQ0VQVClcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gdGhpcy5CWFJlc3ROYXZ2eVVzZXIuY3VycmVudCgpLnJlc3VsdCgpLnBpcGUoXHJcbiAgICAgICAgbWVyZ2VNYXAoc2VsZiA9PiB7XHJcbiAgICAgICAgICBpZiAoc2VsZikge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5CWFJlc3ROYXZ2eVRhc2tzLnRhc2suZ2V0YWNjZXNzKFxyXG4gICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIGlkOiBpZFRhc2ssXHJcbiAgICAgICAgICAgICAgICB1c2VyczogW3NlbGYuSURdXHJcbiAgICAgICAgICAgICAgfSkucmVzdWx0KCkucGlwZShcclxuICAgICAgICAgICAgICB0YXAodiA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAodiAmJiB2W3NlbGYuSURdKSB7XHJcbiAgICAgICAgICAgICAgICAgIFBlcm1pc3Npb24uc2V0KHtcclxuICAgICAgICAgICAgICAgICAgICB0YXNrczogW3tpZDogaWRUYXNrLCBwZXJtaXNzaW9uOiB2W3NlbGYuSURdLCBlbGFwc2VkSXRlbTogW119XVxyXG4gICAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICAgIG1hcCh2ID0+IHtcclxuICAgICAgICAgICAgICAgIHJldHVybiAodiAmJiB2W3NlbGYuSURdKSA/IHZbc2VsZi5JRF0uQUNDRVBUIDogZmFsc2VcclxuICAgICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgcmV0dXJuIG9mKHVuZGVmaW5lZClcclxuICAgICAgICB9KVxyXG4gICAgICApXHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIG9mKHVuZGVmaW5lZClcclxuICB9XHJcbn1cclxuIl19
@@ -0,0 +1,24 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { Navvy } from '../../services/navvy';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "../../request/task/planner";
5
+ import * as i2 from "../../map/task/planner";
6
+ export class BXRestNavvyTaskPlanner {
7
+ constructor(BXRestTaskPlanner, BXRestMapTaskPlaner) {
8
+ this.BXRestTaskPlanner = BXRestTaskPlanner;
9
+ this.BXRestMapTaskPlaner = BXRestMapTaskPlaner;
10
+ this.Navvy = new Navvy(this.BXRestTaskPlanner, this.BXRestMapTaskPlaner);
11
+ }
12
+ getList() {
13
+ return this.Navvy.simple(this.BXRestTaskPlanner.getList, 'Не удалось получить текущий клан на день', this.BXRestMapTaskPlaner.getList);
14
+ }
15
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: BXRestNavvyTaskPlanner, deps: [{ token: i1.BXRestTaskPlanner }, { token: i2.BXRestMapTaskPlaner }], target: i0.ɵɵFactoryTarget.Injectable }); }
16
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: BXRestNavvyTaskPlanner, providedIn: 'root' }); }
17
+ }
18
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: BXRestNavvyTaskPlanner, decorators: [{
19
+ type: Injectable,
20
+ args: [{
21
+ providedIn: 'root'
22
+ }]
23
+ }], ctorParameters: function () { return [{ type: i1.BXRestTaskPlanner }, { type: i2.BXRestMapTaskPlaner }]; } });
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhbm5lci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2J4LXJlc3Qvc3JjL3JlcXVlc3QtbmF2dnkvdGFzay9wbGFubmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFFMUMsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLHNCQUFzQixDQUFBOzs7O0FBTTVDLE1BQU0sT0FBTyxzQkFBc0I7SUFJakMsWUFDVSxpQkFBb0MsRUFDcEMsbUJBQXdDO1FBRHhDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFDcEMsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQUVoRCxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQTtJQUMxRSxDQUFDO0lBRUQsT0FBTztRQUNMLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQ3RCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLEVBQzlCLDBDQUEwQyxFQUMxQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsT0FBTyxDQUNqQyxDQUFBO0lBQ0gsQ0FBQzs4R0FqQlUsc0JBQXNCO2tIQUF0QixzQkFBc0IsY0FGckIsTUFBTTs7MkZBRVAsc0JBQXNCO2tCQUhsQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xyXG5pbXBvcnQgeyBCWFJlc3RNYXBUYXNrUGxhbmVyIH0gZnJvbSAnLi4vLi4vbWFwL3Rhc2svcGxhbm5lcidcclxuaW1wb3J0IHsgTmF2dnkgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9uYXZ2eSdcclxuaW1wb3J0IHsgQlhSZXN0VGFza1BsYW5uZXIgfSBmcm9tICcuLi8uLi9yZXF1ZXN0L3Rhc2svcGxhbm5lcidcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIEJYUmVzdE5hdnZ5VGFza1BsYW5uZXIge1xyXG5cclxuICBwcml2YXRlIE5hdnZ5OiBOYXZ2eTxCWFJlc3RUYXNrUGxhbm5lciwgQlhSZXN0TWFwVGFza1BsYW5lcj5cclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIEJYUmVzdFRhc2tQbGFubmVyOiBCWFJlc3RUYXNrUGxhbm5lcixcclxuICAgIHByaXZhdGUgQlhSZXN0TWFwVGFza1BsYW5lcjogQlhSZXN0TWFwVGFza1BsYW5lclxyXG4gICkge1xyXG4gICAgdGhpcy5OYXZ2eSA9IG5ldyBOYXZ2eSh0aGlzLkJYUmVzdFRhc2tQbGFubmVyLCB0aGlzLkJYUmVzdE1hcFRhc2tQbGFuZXIpXHJcbiAgfVxyXG5cclxuICBnZXRMaXN0KCkge1xyXG4gICAgcmV0dXJuIHRoaXMuTmF2dnkuc2ltcGxlKFxyXG4gICAgICB0aGlzLkJYUmVzdFRhc2tQbGFubmVyLmdldExpc3QsXHJcbiAgICAgICfQndC1INGD0LTQsNC70L7RgdGMINC/0L7Qu9GD0YfQuNGC0Ywg0YLQtdC60YPRidC40Lkg0LrQu9Cw0L0g0L3QsCDQtNC10L3RjCcsXHJcbiAgICAgIHRoaXMuQlhSZXN0TWFwVGFza1BsYW5lci5nZXRMaXN0XHJcbiAgICApXHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -2,12 +2,14 @@ import { Injectable } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
3
  import * as i1 from "./task/elapseditem";
4
4
  import * as i2 from "./task/commentitem";
5
+ import * as i3 from "./task/planner";
5
6
  export class BXRestNavvyTask {
6
- constructor(elapseditem, commentitem) {
7
+ constructor(elapseditem, commentitem, planner) {
7
8
  this.elapseditem = elapseditem;
8
9
  this.commentitem = commentitem;
10
+ this.planner = planner;
9
11
  }
10
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: BXRestNavvyTask, deps: [{ token: i1.BXRestNavvyElapseditem }, { token: i2.BXRestNavvyTaskCommentItem }], target: i0.ɵɵFactoryTarget.Injectable }); }
12
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: BXRestNavvyTask, deps: [{ token: i1.BXRestNavvyElapseditem }, { token: i2.BXRestNavvyTaskCommentItem }, { token: i3.BXRestNavvyTaskPlanner }], target: i0.ɵɵFactoryTarget.Injectable }); }
11
13
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: BXRestNavvyTask, providedIn: 'root' }); }
12
14
  }
13
15
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: BXRestNavvyTask, decorators: [{
@@ -15,5 +17,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImpor
15
17
  args: [{
16
18
  providedIn: 'root'
17
19
  }]
18
- }], ctorParameters: function () { return [{ type: i1.BXRestNavvyElapseditem }, { type: i2.BXRestNavvyTaskCommentItem }]; } });
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFzay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2J4LXJlc3Qvc3JjL3JlcXVlc3QtbmF2dnkvdGFzay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFBOzs7O0FBTzFDLE1BQU0sT0FBTyxlQUFlO0lBRTFCLFlBQ1MsV0FBbUMsRUFDbkMsV0FBdUM7UUFEdkMsZ0JBQVcsR0FBWCxXQUFXLENBQXdCO1FBQ25DLGdCQUFXLEdBQVgsV0FBVyxDQUE0QjtJQUVoRCxDQUFDOzhHQU5VLGVBQWU7a0hBQWYsZUFBZSxjQUZkLE1BQU07OzJGQUVQLGVBQWU7a0JBSDNCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXHJcbmltcG9ydCB7IEJYUmVzdE5hdnZ5RWxhcHNlZGl0ZW0gfSBmcm9tICcuL3Rhc2svZWxhcHNlZGl0ZW0nXHJcbmltcG9ydCB7IEJYUmVzdE5hdnZ5VGFza0NvbW1lbnRJdGVtIH0gZnJvbSAnLi90YXNrL2NvbW1lbnRpdGVtJ1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQlhSZXN0TmF2dnlUYXNrIHtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgZWxhcHNlZGl0ZW06IEJYUmVzdE5hdnZ5RWxhcHNlZGl0ZW0sXHJcbiAgICBwdWJsaWMgY29tbWVudGl0ZW06IEJYUmVzdE5hdnZ5VGFza0NvbW1lbnRJdGVtLFxyXG4gICkge1xyXG4gIH1cclxuXHJcbn1cclxuIl19
20
+ }], ctorParameters: function () { return [{ type: i1.BXRestNavvyElapseditem }, { type: i2.BXRestNavvyTaskCommentItem }, { type: i3.BXRestNavvyTaskPlanner }]; } });
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFzay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2J4LXJlc3Qvc3JjL3JlcXVlc3QtbmF2dnkvdGFzay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFBOzs7OztBQVExQyxNQUFNLE9BQU8sZUFBZTtJQUUxQixZQUNTLFdBQW1DLEVBQ25DLFdBQXVDLEVBQ3ZDLE9BQStCO1FBRi9CLGdCQUFXLEdBQVgsV0FBVyxDQUF3QjtRQUNuQyxnQkFBVyxHQUFYLFdBQVcsQ0FBNEI7UUFDdkMsWUFBTyxHQUFQLE9BQU8sQ0FBd0I7SUFFeEMsQ0FBQzs4R0FQVSxlQUFlO2tIQUFmLGVBQWUsY0FGZCxNQUFNOzsyRkFFUCxlQUFlO2tCQUgzQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xyXG5pbXBvcnQgeyBCWFJlc3ROYXZ2eUVsYXBzZWRpdGVtIH0gZnJvbSAnLi90YXNrL2VsYXBzZWRpdGVtJ1xyXG5pbXBvcnQgeyBCWFJlc3ROYXZ2eVRhc2tDb21tZW50SXRlbSB9IGZyb20gJy4vdGFzay9jb21tZW50aXRlbSdcclxuaW1wb3J0IHsgQlhSZXN0TmF2dnlUYXNrUGxhbm5lciB9IGZyb20gJy4vdGFzay9wbGFubmVyJ1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQlhSZXN0TmF2dnlUYXNrIHtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgZWxhcHNlZGl0ZW06IEJYUmVzdE5hdnZ5RWxhcHNlZGl0ZW0sXHJcbiAgICBwdWJsaWMgY29tbWVudGl0ZW06IEJYUmVzdE5hdnZ5VGFza0NvbW1lbnRJdGVtLFxyXG4gICAgcHVibGljIHBsYW5uZXI6IEJYUmVzdE5hdnZ5VGFza1BsYW5uZXJcclxuICApIHtcclxuICB9XHJcblxyXG59XHJcbiJdfQ==
@@ -40,12 +40,9 @@ export class HttpBXServices extends HttpServices {
40
40
  }
41
41
  return res;
42
42
  }
43
- // override mapBranchResult<T>(res: iBatchRequestAnswer<T>[]) {
44
- // return Object.assign([], ...res.map(i => (i.result && i.result.result) ? i.result.result : undefined)) as {
45
- // [key: keyBatch]: T
46
- // }
47
- // }
48
- //
43
+ mapBranchResult(res) {
44
+ return Object.assign([], ...res.map(i => (i.result && i.result.result) ? i.result.result : undefined));
45
+ }
49
46
  mapBranchResultWithoutKey(res) {
50
47
  return flatten(Object.assign([], ...res.map(i => (i.result && i.result.result) ? i.result.result : undefined)));
51
48
  }
@@ -121,4 +118,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImpor
121
118
  providedIn: 'root'
122
119
  }]
123
120
  }] });
124
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSHR0cEJYLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYngtcmVzdC9zcmMvc2VydmljZXMvaHR0cC9IdHRwQlgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFjLFVBQVUsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBQ2pFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDMUMsT0FBTyxLQUFLLE1BQU0sWUFBWSxDQUFBO0FBRTlCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxRQUFRLENBQUE7QUFPckMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFBO0FBQ2xELE9BQU8sT0FBTyxNQUFNLGlCQUFpQixDQUFBOztBQUVyQyxrREFBa0Q7QUFLbEQsTUFBTSxPQUFPLGNBQWUsU0FBUSxZQUFZO0lBRTlDOzs7O09BSUc7SUFDSCxNQUFNLENBQU8sS0FBeUQ7UUFDcEUsSUFBSSxZQUFZLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBUyxJQUFJLENBQUMsWUFBWSxDQUFJLEtBQUssQ0FBQyxDQUFDLENBQUE7UUFDdEUsTUFBTSxJQUFJLEdBQUcsRUFBRSxDQUFBLENBQUMsbUJBQW1CO1FBQ25DLElBQUksUUFBUSxHQUFHLEVBQUUsQ0FBQSxDQUFDLDJDQUEyQztRQUM3RCxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQzlELFFBQVEsQ0FBQyxDQUFDLENBQUMsR0FBRyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFBO1NBQ2hFO1FBRUQsT0FBTyxR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MUMsc0NBQXNDO2FBQ3ZDLENBQUE7WUFFRCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLENBQUMsSUFBSSxDQUNuQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUU7Z0JBQ1gsSUFBSSxDQUFDLEVBQUU7b0JBQ0wsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBSSxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxFQUFFLE9BQU8sQ0FBQyxDQUFBO2lCQUNuRTtnQkFDRCxPQUFPLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFBO1lBQy9DLENBQUMsQ0FBQyxDQUNILENBQUE7U0FDRjthQUFNO1lBQ0wsT0FBTyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsY0FBYyxDQUFDLENBQUE7U0FDeEM7SUFFSCxDQUFDO0lBRUQsYUFBYSxDQUFDLEdBQWE7UUFDekIsT0FBTyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFBO0lBQ3RCLENBQUM7OEdBeklVLGNBQWM7a0hBQWQsY0FBYyxjQUZiLE1BQU07OzJGQUVQLGNBQWM7a0JBSDFCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT2JzZXJ2YWJsZSwgdGhyb3dFcnJvciwgbWVyZ2VNYXAsIGZvcmtKb2luIH0gZnJvbSAncnhqcydcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXHJcbmltcG9ydCBjbG9uZSBmcm9tICdqdXN0LWNsb25lJ1xyXG5pbXBvcnQgeyBpSHR0cFBhcmFtU2V0dGluZ3MgfSBmcm9tICcuLi8uLi90eXBpZmljYXRpb24vcmVzdC9zZXR0aW5ncydcclxuaW1wb3J0IHsgSHR0cFNlcnZpY2VzIH0gZnJvbSAnLi9odHRwJ1xyXG5pbXBvcnQge1xyXG4gIGlCYXRjaFJlcXVlc3RBbnN3ZXIsIGlCYXRjaFJlcXVlc3RQYXJhbSxcclxuICBpQmF0Y2hSZXF1ZXN0UGFyYW1BcnIsXHJcbiAgaUJhdGNoUmVxdWVzdFBhcmFtSHR0cCxcclxufSBmcm9tICcuLi8uLi90eXBpZmljYXRpb24vcmVzdC9iYXRjaC9iYXRjaFJlcXVlc3RQYXJhbSdcclxuaW1wb3J0IHsgaUJYUmVzdEFuc3dlciB9IGZyb20gJy4uLy4uL3R5cGlmaWNhdGlvbi9yZXN0L2Jhc2UvYW5zd2VyJ1xyXG5pbXBvcnQgeyBIdHRwSGVhZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJ1xyXG5pbXBvcnQgZmxhdHRlbiBmcm9tICdqdXN0LWZsYXR0ZW4taXQnXHJcblxyXG4vLyB0eXBlIFRyYW5zZm9ybUZ1bmN0aW9uPFQsIFI+ID0gKGlucHV0OiBUKSA9PiBSO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgSHR0cEJYU2VydmljZXMgZXh0ZW5kcyBIdHRwU2VydmljZXMge1xyXG5cclxuICAvKipcclxuICAgKiDQrdGC0L4g0L/QuNC30LTQtdGGINCwINC90LUg0LzQtdGC0L7QtFxyXG4gICAqIFRPRE86INCj0LTQsNC70LjRgtGMINC00LDQvdC90YvQuSDQvNC10YLQvtC0INC/0L7RgdC70LUg0YDQtdCw0LvQuNC30LDRhtC40Lgg0LXQs9C+INCyINGA0LDQt9C00LXQu9C1IE5hdnZ5XHJcbiAgICogQHBhcmFtIHBhcmFtXHJcbiAgICovXHJcbiAgYnJhbmNoPFQsIEE+KHBhcmFtOiBpQmF0Y2hSZXF1ZXN0UGFyYW1BcnI8VD4gfCBpQmF0Y2hSZXF1ZXN0UGFyYW08VD5bXSk6IE9ic2VydmFibGU8aUJhdGNoUmVxdWVzdEFuc3dlcjxBPltdIHwgdW5kZWZpbmVkPiB7XHJcbiAgICBsZXQgcHJlcGFyZVBhcmFtID0gT2JqZWN0LmVudHJpZXM8c3RyaW5nPih0aGlzLnByZXBhcmVCYXRjaDxUPihwYXJhbSkpXHJcbiAgICBjb25zdCBzaXplID0gNTAgLy8g0LHQvtC70YzRiNC1INC90LUg0L7RgtC00LDRgdGCXHJcbiAgICBsZXQgc3ViYXJyYXkgPSBbXSAvL9C80LDRgdGB0LjQsiDQsiDQutC+0YLQvtGA0YvQuSDQsdGD0LTQtdGCINCy0YvQstC10LTQtdC9INGA0LXQt9GD0LvRjNGC0LDRgi5cclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgTWF0aC5jZWlsKHByZXBhcmVQYXJhbS5sZW5ndGggLyBzaXplKTsgaSsrKSB7XHJcbiAgICAgIHN1YmFycmF5W2ldID0gcHJlcGFyZVBhcmFtLnNsaWNlKChpICogc2l6ZSksIChpICogc2l6ZSkgKyBzaXplKVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBmb3JrSm9pbihcclxuICAgICAgc3ViYXJyYXkubWFwKGkgPT4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBQb3N0KCdiYXRjaC5qc29uJywge1xyXG4gICAgICAgICAgaGFsdDogMCxcclxuICAgICAgICAgIGNtZDogT2JqZWN0LmFzc2lnbih7fSwgLi4uaS5tYXAoeCA9PiB7XHJcbiAgICAgICAgICAgIHJldHVybiB7W3hbMF1dOiB4WzFdfVxyXG4gICAgICAgICAgfSkpXHJcbiAgICAgICAgfSlcclxuICAgICAgfSlcclxuICAgICkgYXMgT2JzZXJ2YWJsZTxpQmF0Y2hSZXF1ZXN0QW5zd2VyPEE+W10+XHJcbiAgfVxyXG5cclxuICBwcmVwYXJlQmF0Y2g8VD4ocGFyYW06IGlCYXRjaFJlcXVlc3RQYXJhbUFycjxUPiB8IGlCYXRjaFJlcXVlc3RQYXJhbTxUPltdKTogaUJhdGNoUmVxdWVzdFBhcmFtSHR0cCB7XHJcbiAgICBsZXQgcmVzOiBpQmF0Y2hSZXF1ZXN0UGFyYW1IdHRwID0gT2JqZWN0LmtleXMocGFyYW0pLnJlZHVjZShcclxuICAgICAgKG9iaiwga2V5KSA9PiB7XHJcbiAgICAgICAgb2JqW2tleV0gPSAnJztcclxuICAgICAgICByZXR1cm4gb2JqO1xyXG4gICAgICB9LFxyXG4gICAgICB7fSBhcyBpQmF0Y2hSZXF1ZXN0UGFyYW1IdHRwXHJcbiAgICApO1xyXG4gICAgZm9yIChsZXQga2V5IGluIHBhcmFtKSB7XHJcbiAgICAgIGlmICh0eXBlb2Yga2V5ID09PSAnc3RyaW5nJyB8fCB0eXBlb2Yga2V5ID09PSAnbnVtYmVyJyAmJiBwYXJhbVtrZXldLnBhcmFtKSB7XHJcbiAgICAgICAgcmVzW2tleV0gPSBwYXJhbVtrZXldLm5hbWUgKyAnPycgKyB0aGlzLmdldEh0dHBQYXJhbXNHZXQocGFyYW1ba2V5XS5wYXJhbSkudG9TdHJpbmcoKVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcmVzXHJcbiAgfVxyXG5cclxuICAvLyBvdmVycmlkZSBtYXBCcmFuY2hSZXN1bHQ8VD4ocmVzOiBpQmF0Y2hSZXF1ZXN0QW5zd2VyPFQ+W10pIHtcclxuICAvLyAgIHJldHVybiBPYmplY3QuYXNzaWduKFtdLCAuLi5yZXMubWFwKGkgPT4gKGkucmVzdWx0ICYmIGkucmVzdWx0LnJlc3VsdCkgPyBpLnJlc3VsdC5yZXN1bHQgOiB1bmRlZmluZWQpKSBhcyB7XHJcbiAgLy8gICAgIFtrZXk6IGtleUJhdGNoXTogVFxyXG4gIC8vICAgfVxyXG4gIC8vIH1cclxuICAvL1xyXG4gIG1hcEJyYW5jaFJlc3VsdFdpdGhvdXRLZXk8VD4ocmVzOiBpQmF0Y2hSZXF1ZXN0QW5zd2VyPFQ+W10pOiBUW10ge1xyXG4gICAgcmV0dXJuIGZsYXR0ZW48VD4oT2JqZWN0LmFzc2lnbihbXSwgLi4ucmVzLm1hcChpID0+IChpLnJlc3VsdCAmJiBpLnJlc3VsdC5yZXN1bHQpID8gaS5yZXN1bHQucmVzdWx0IDogdW5kZWZpbmVkKSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiDQntGB0L3QvtCy0L3QvtC5INC80LXRgtC+0LQg0LTQu9GPINC30LDQv9GA0L7RgdC+0LJcclxuICAgKlxyXG4gICAqIEBwYXJhbSBuYW1lXHJcbiAgICogQHBhcmFtIHBhcmFtc1xyXG4gICAqIEBwYXJhbSBzZXR0aW5nc1xyXG4gICAqL1xyXG4gIHBvc3Q8VD4obmFtZTogc3RyaW5nW10sXHJcbiAgICAgICAgICBwYXJhbXM6IGFueSA9IHt9LFxyXG4gICAgICAgICAgc2V0dGluZ3M6IGlIdHRwUGFyYW1TZXR0aW5ncyA9IHRoaXMuZGVmU2V0dGluZ3MpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBQb3N0PGlCWFJlc3RBbnN3ZXI8VD4+KHRoaXMuZ2V0TmFtZU1ldGhvZChuYW1lKSwgcGFyYW1zLCBzZXR0aW5ncylcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqINCS0YLQvtGA0L7RgdGC0LXQv9C10L3QvdGL0Lkg0LzQtdGC0L7QtCDQtNC70Y8g0LfQsNC/0YDQvtGB0L7Qsi4g0J/QviDQstC+0LfQvNC+0LbQvdC+0YHRgtC4INC70YPRh9GI0LUg0L3QtSDQuNGB0L/QvtC70YzQt9C+0LLQsNGC0YxcclxuICAgKlxyXG4gICAqIEBwYXJhbSBuYW1lXHJcbiAgICogQHBhcmFtIHBhcmFtc1xyXG4gICAqIEBwYXJhbSBzZXR0aW5nc1xyXG4gICAqL1xyXG4gIGdldDxUPihuYW1lOiBzdHJpbmdbXSxcclxuICAgICAgICAgcGFyYW1zOiBhbnkgPSB7fSxcclxuICAgICAgICAgc2V0dGluZ3M6IGlIdHRwUGFyYW1TZXR0aW5ncyA9IHRoaXMuZGVmU2V0dGluZ3MpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBHZXQ8aUJYUmVzdEFuc3dlcjxUPj4odGhpcy5nZXROYW1lTWV0aG9kKG5hbWUpLCBwYXJhbXMsIHNldHRpbmdzKVxyXG4gIH1cclxuXHJcbiAgb3ZlcnJpZGUgaHR0cFBvc3Q8VD4odXJsOiBzdHJpbmcsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1zOiBhbnkgPSB7fSxcclxuICAgICAgICAgICAgICAgICAgICAgICBzZXR0aW5nczogaUh0dHBQYXJhbVNldHRpbmdzID0gdGhpcy5kZWZTZXR0aW5nc1xyXG4gICk6IE9ic2VydmFibGU8VCB8IHVuZGVmaW5lZD4ge1xyXG4gICAgbGV0IGF1dGggPSB0aGlzLnNlc3Npb24uZ2V0QXV0aFBhcmFtcygpXHJcbiAgICBpZiAoYXV0aCkge1xyXG4gICAgICBjb25zdCBwYXJhbXNDbG9uZSA9IGNsb25lKHBhcmFtcylcclxuICAgICAgcGFyYW1zQ2xvbmVbdGhpcy5zZXNzaW9uLmdldEtleUF1dGgoKV0gPSBhdXRoXHJcbiAgICAgIHJldHVybiB0aGlzLnNlc3Npb24uZ2V0QmFzZVVybCgpLnBpcGUoXHJcbiAgICAgICAgbWVyZ2VNYXAodiA9PiB7XHJcbiAgICAgICAgICBpZiAodikge1xyXG4gICAgICAgICAgICAvLyDRjdGC0L4g0LHQvtC70LXQtSDQsdGL0YHRgtGA0YvQuSDRgdC/0L7RgdC+0LEg0LfQsNC/0YDQvtGB0LAg0YfQtdC8INC+0YLQv9GA0LDQstC60LAgRm9ybSBEYXRhXHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxUIHwgdW5kZWZpbmVkPihcclxuICAgICAgICAgICAgICB0aGlzLnByZXBhcmVCYXNlQWRkcmVzcyh2KSArIHVybCwgSlNPTi5zdHJpbmdpZnkocGFyYW1zQ2xvbmUpLFxyXG4gICAgICAgICAgICAgIHtoZWFkZXJzOiBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyl9XHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+ICdnZXQgYmFzZSB1cmwgZXJyb3InKVxyXG4gICAgICAgIH0pKVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gJ2F1dGggbm90IGdldCcpXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvdmVycmlkZSBodHRwR2V0PFQ+KFxyXG4gICAgdXJsOiBzdHJpbmcsXHJcbiAgICBwYXJhbXM6IGFueSA9IHt9LFxyXG4gICAgc2V0dGluZ3M6IGlIdHRwUGFyYW1TZXR0aW5ncyA9IHRoaXMuZGVmU2V0dGluZ3NcclxuICApOiBPYnNlcnZhYmxlPFQgfCB1bmRlZmluZWQ+IHtcclxuICAgIGxldCBhdXRoID0gdGhpcy5zZXNzaW9uLmdldEF1dGhQYXJhbXMoKVxyXG5cclxuICAgIGlmIChhdXRoKSB7XHJcbiAgICAgIGlmIChwYXJhbXMgPT09IG51bGwpIHtcclxuICAgICAgICBwYXJhbXMgPSB7fVxyXG4gICAgICB9XHJcbiAgICAgIGNvbnN0IHBhcmFtc0Nsb25lID0gY2xvbmUocGFyYW1zKVxyXG4gICAgICBwYXJhbXNDbG9uZVt0aGlzLnNlc3Npb24uZ2V0S2V5QXV0aCgpXSA9IGF1dGhcclxuICAgICAgbGV0IG9wdGlvbnMgPSB7XHJcbiAgICAgICAgcGFyYW1zOiB0aGlzLmdldEh0dHBQYXJhbXNHZXQocGFyYW1zQ2xvbmUpXHJcbiAgICAgICAgLy8gcGFyYW1zOiBKU09OLnN0cmluZ2lmeShwYXJhbXNDbG9uZSlcclxuICAgICAgfVxyXG5cclxuICAgICAgcmV0dXJuIHRoaXMuc2Vzc2lvbi5nZXRCYXNlVXJsKCkucGlwZShcclxuICAgICAgICBtZXJnZU1hcCh2ID0+IHtcclxuICAgICAgICAgIGlmICh2KSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PFQ+KHRoaXMucHJlcGFyZUJhc2VBZGRyZXNzKHYpICsgdXJsLCBvcHRpb25zKVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gJ2dldCBiYXNlIHVybCBlcnJvcicpXHJcbiAgICAgICAgfSlcclxuICAgICAgKVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gJ2F1dGggbm90IGdldCcpXHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgZ2V0TmFtZU1ldGhvZChhcnI6IHN0cmluZ1tdKSB7XHJcbiAgICByZXR1cm4gYXJyLmpvaW4oJy4nKVxyXG4gIH1cclxuXHJcbn1cclxuXHJcbiJdfQ==
121
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSHR0cEJYLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYngtcmVzdC9zcmMvc2VydmljZXMvaHR0cC9IdHRwQlgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFjLFVBQVUsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBQ2pFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDMUMsT0FBTyxLQUFLLE1BQU0sWUFBWSxDQUFBO0FBRTlCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxRQUFRLENBQUE7QUFRckMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFBO0FBQ2xELE9BQU8sT0FBTyxNQUFNLGlCQUFpQixDQUFBOztBQUVyQyxrREFBa0Q7QUFLbEQsTUFBTSxPQUFPLGNBQWUsU0FBUSxZQUFZO0lBRTlDOzs7O09BSUc7SUFDSCxNQUFNLENBQU8sS0FBeUQ7UUFDcEUsSUFBSSxZQUFZLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBUyxJQUFJLENBQUMsWUFBWSxDQUFJLEtBQUssQ0FBQyxDQUFDLENBQUE7UUFDdEUsTUFBTSxJQUFJLEdBQUcsRUFBRSxDQUFBLENBQUMsbUJBQW1CO1FBQ25DLElBQUksUUFBUSxHQUFHLEVBQUUsQ0FBQSxDQUFDLDJDQUEyQztRQUM3RCxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQzlELFFBQVEsQ0FBQyxDQUFDLENBQUMsR0FBRyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFBO1NBQ2hFO1FBRUQsT0FBTyxR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TUFBTSxXQUFXLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFBO1lBQ2pDLFdBQVcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFBO1lBQzdDLElBQUksT0FBTyxHQUFHO2dCQUNaLE1BQU0sRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxDQUFDO2dCQUMxQyxzQ0FBc0M7YUFDdkMsQ0FBQTtZQUVELE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsQ0FBQyxJQUFJLENBQ25DLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRTtnQkFDWCxJQUFJLENBQUMsRUFBRTtvQkFDTCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFJLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLEVBQUUsT0FBTyxDQUFDLENBQUE7aUJBQ25FO2dCQUNELE9BQU8sVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLG9CQUFvQixDQUFDLENBQUE7WUFDL0MsQ0FBQyxDQUFDLENBQ0gsQ0FBQTtTQUNGO2FBQU07WUFDTCxPQUFPLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxjQUFjLENBQUMsQ0FBQTtTQUN4QztJQUVILENBQUM7SUFFRCxhQUFhLENBQUMsR0FBYTtRQUN6QixPQUFPLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUE7SUFDdEIsQ0FBQzs4R0F6SVUsY0FBYztrSEFBZCxjQUFjLGNBRmIsTUFBTTs7MkZBRVAsY0FBYztrQkFIMUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPYnNlcnZhYmxlLCB0aHJvd0Vycm9yLCBtZXJnZU1hcCwgZm9ya0pvaW4gfSBmcm9tICdyeGpzJ1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcclxuaW1wb3J0IGNsb25lIGZyb20gJ2p1c3QtY2xvbmUnXHJcbmltcG9ydCB7IGlIdHRwUGFyYW1TZXR0aW5ncyB9IGZyb20gJy4uLy4uL3R5cGlmaWNhdGlvbi9yZXN0L3NldHRpbmdzJ1xyXG5pbXBvcnQgeyBIdHRwU2VydmljZXMgfSBmcm9tICcuL2h0dHAnXHJcbmltcG9ydCB7XHJcbiAgaUJhdGNoUmVxdWVzdEFuc3dlciwgaUJhdGNoUmVxdWVzdFBhcmFtLFxyXG4gIGlCYXRjaFJlcXVlc3RQYXJhbUFycixcclxuICBpQmF0Y2hSZXF1ZXN0UGFyYW1IdHRwLFxyXG4gIGtleUJhdGNoLFxyXG59IGZyb20gJy4uLy4uL3R5cGlmaWNhdGlvbi9yZXN0L2JhdGNoL2JhdGNoUmVxdWVzdFBhcmFtJ1xyXG5pbXBvcnQgeyBpQlhSZXN0QW5zd2VyIH0gZnJvbSAnLi4vLi4vdHlwaWZpY2F0aW9uL3Jlc3QvYmFzZS9hbnN3ZXInXHJcbmltcG9ydCB7IEh0dHBIZWFkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnXHJcbmltcG9ydCBmbGF0dGVuIGZyb20gJ2p1c3QtZmxhdHRlbi1pdCdcclxuXHJcbi8vIHR5cGUgVHJhbnNmb3JtRnVuY3Rpb248VCwgUj4gPSAoaW5wdXQ6IFQpID0+IFI7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBIdHRwQlhTZXJ2aWNlcyBleHRlbmRzIEh0dHBTZXJ2aWNlcyB7XHJcblxyXG4gIC8qKlxyXG4gICAqINCt0YLQviDQv9C40LfQtNC10YYg0LAg0L3QtSDQvNC10YLQvtC0XHJcbiAgICogVE9ETzog0KPQtNCw0LvQuNGC0Ywg0LTQsNC90L3Ri9C5INC80LXRgtC+0LQg0L/QvtGB0LvQtSDRgNC10LDQu9C40LfQsNGG0LjQuCDQtdCz0L4g0LIg0YDQsNC30LTQtdC70LUgTmF2dnlcclxuICAgKiBAcGFyYW0gcGFyYW1cclxuICAgKi9cclxuICBicmFuY2g8VCwgQT4ocGFyYW06IGlCYXRjaFJlcXVlc3RQYXJhbUFycjxUPiB8IGlCYXRjaFJlcXVlc3RQYXJhbTxUPltdKTogT2JzZXJ2YWJsZTxpQmF0Y2hSZXF1ZXN0QW5zd2VyPEE+W10gfCB1bmRlZmluZWQ+IHtcclxuICAgIGxldCBwcmVwYXJlUGFyYW0gPSBPYmplY3QuZW50cmllczxzdHJpbmc+KHRoaXMucHJlcGFyZUJhdGNoPFQ+KHBhcmFtKSlcclxuICAgIGNvbnN0IHNpemUgPSA1MCAvLyDQsdC+0LvRjNGI0LUg0L3QtSDQvtGC0LTQsNGB0YJcclxuICAgIGxldCBzdWJhcnJheSA9IFtdIC8v0LzQsNGB0YHQuNCyINCyINC60L7RgtC+0YDRi9C5INCx0YPQtNC10YIg0LLRi9Cy0LXQtNC10L0g0YDQtdC30YPQu9GM0YLQsNGCLlxyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBNYXRoLmNlaWwocHJlcGFyZVBhcmFtLmxlbmd0aCAvIHNpemUpOyBpKyspIHtcclxuICAgICAgc3ViYXJyYXlbaV0gPSBwcmVwYXJlUGFyYW0uc2xpY2UoKGkgKiBzaXplKSwgKGkgKiBzaXplKSArIHNpemUpXHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGZvcmtKb2luKFxyXG4gICAgICBzdWJhcnJheS5tYXAoaSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFBvc3QoJ2JhdGNoLmpzb24nLCB7XHJcbiAgICAgICAgICBoYWx0OiAwLFxyXG4gICAgICAgICAgY21kOiBPYmplY3QuYXNzaWduKHt9LCAuLi5pLm1hcCh4ID0+IHtcclxuICAgICAgICAgICAgcmV0dXJuIHtbeFswXV06IHhbMV19XHJcbiAgICAgICAgICB9KSlcclxuICAgICAgICB9KVxyXG4gICAgICB9KVxyXG4gICAgKSBhcyBPYnNlcnZhYmxlPGlCYXRjaFJlcXVlc3RBbnN3ZXI8QT5bXT5cclxuICB9XHJcblxyXG4gIHByZXBhcmVCYXRjaDxUPihwYXJhbTogaUJhdGNoUmVxdWVzdFBhcmFtQXJyPFQ+IHwgaUJhdGNoUmVxdWVzdFBhcmFtPFQ+W10pOiBpQmF0Y2hSZXF1ZXN0UGFyYW1IdHRwIHtcclxuICAgIGxldCByZXM6IGlCYXRjaFJlcXVlc3RQYXJhbUh0dHAgPSBPYmplY3Qua2V5cyhwYXJhbSkucmVkdWNlKFxyXG4gICAgICAob2JqLCBrZXkpID0+IHtcclxuICAgICAgICBvYmpba2V5XSA9ICcnO1xyXG4gICAgICAgIHJldHVybiBvYmo7XHJcbiAgICAgIH0sXHJcbiAgICAgIHt9IGFzIGlCYXRjaFJlcXVlc3RQYXJhbUh0dHBcclxuICAgICk7XHJcbiAgICBmb3IgKGxldCBrZXkgaW4gcGFyYW0pIHtcclxuICAgICAgaWYgKHR5cGVvZiBrZXkgPT09ICdzdHJpbmcnIHx8IHR5cGVvZiBrZXkgPT09ICdudW1iZXInICYmIHBhcmFtW2tleV0ucGFyYW0pIHtcclxuICAgICAgICByZXNba2V5XSA9IHBhcmFtW2tleV0ubmFtZSArICc/JyArIHRoaXMuZ2V0SHR0cFBhcmFtc0dldChwYXJhbVtrZXldLnBhcmFtKS50b1N0cmluZygpXHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiByZXNcclxuICB9XHJcblxyXG4gIG1hcEJyYW5jaFJlc3VsdDxUPihyZXM6IGlCYXRjaFJlcXVlc3RBbnN3ZXI8VD5bXSkge1xyXG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oW10sIC4uLnJlcy5tYXAoaSA9PiAoaS5yZXN1bHQgJiYgaS5yZXN1bHQucmVzdWx0KSA/IGkucmVzdWx0LnJlc3VsdCA6IHVuZGVmaW5lZCkpIGFzIHtcclxuICAgICAgW2tleToga2V5QmF0Y2hdOiBUXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBtYXBCcmFuY2hSZXN1bHRXaXRob3V0S2V5PFQ+KHJlczogaUJhdGNoUmVxdWVzdEFuc3dlcjxUPltdKTogVFtdIHtcclxuICAgIHJldHVybiBmbGF0dGVuPFQ+KE9iamVjdC5hc3NpZ24oW10sIC4uLnJlcy5tYXAoaSA9PiAoaS5yZXN1bHQgJiYgaS5yZXN1bHQucmVzdWx0KSA/IGkucmVzdWx0LnJlc3VsdCA6IHVuZGVmaW5lZCkpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICog0J7RgdC90L7QstC90L7QuSDQvNC10YLQvtC0INC00LvRjyDQt9Cw0L/RgNC+0YHQvtCyXHJcbiAgICpcclxuICAgKiBAcGFyYW0gbmFtZVxyXG4gICAqIEBwYXJhbSBwYXJhbXNcclxuICAgKiBAcGFyYW0gc2V0dGluZ3NcclxuICAgKi9cclxuICBwb3N0PFQ+KG5hbWU6IHN0cmluZ1tdLFxyXG4gICAgICAgICAgcGFyYW1zOiBhbnkgPSB7fSxcclxuICAgICAgICAgIHNldHRpbmdzOiBpSHR0cFBhcmFtU2V0dGluZ3MgPSB0aGlzLmRlZlNldHRpbmdzKSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwUG9zdDxpQlhSZXN0QW5zd2VyPFQ+Pih0aGlzLmdldE5hbWVNZXRob2QobmFtZSksIHBhcmFtcywgc2V0dGluZ3MpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiDQktGC0L7RgNC+0YHRgtC10L/QtdC90L3Ri9C5INC80LXRgtC+0LQg0LTQu9GPINC30LDQv9GA0L7RgdC+0LIuINCf0L4g0LLQvtC30LzQvtC20L3QvtGB0YLQuCDQu9GD0YfRiNC1INC90LUg0LjRgdC/0L7Qu9GM0LfQvtCy0LDRgtGMXHJcbiAgICpcclxuICAgKiBAcGFyYW0gbmFtZVxyXG4gICAqIEBwYXJhbSBwYXJhbXNcclxuICAgKiBAcGFyYW0gc2V0dGluZ3NcclxuICAgKi9cclxuICBnZXQ8VD4obmFtZTogc3RyaW5nW10sXHJcbiAgICAgICAgIHBhcmFtczogYW55ID0ge30sXHJcbiAgICAgICAgIHNldHRpbmdzOiBpSHR0cFBhcmFtU2V0dGluZ3MgPSB0aGlzLmRlZlNldHRpbmdzKSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwR2V0PGlCWFJlc3RBbnN3ZXI8VD4+KHRoaXMuZ2V0TmFtZU1ldGhvZChuYW1lKSwgcGFyYW1zLCBzZXR0aW5ncylcclxuICB9XHJcblxyXG4gIG92ZXJyaWRlIGh0dHBQb3N0PFQ+KHVybDogc3RyaW5nLFxyXG4gICAgICAgICAgICAgICAgICAgICAgIHBhcmFtczogYW55ID0ge30sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgc2V0dGluZ3M6IGlIdHRwUGFyYW1TZXR0aW5ncyA9IHRoaXMuZGVmU2V0dGluZ3NcclxuICApOiBPYnNlcnZhYmxlPFQgfCB1bmRlZmluZWQ+IHtcclxuICAgIGxldCBhdXRoID0gdGhpcy5zZXNzaW9uLmdldEF1dGhQYXJhbXMoKVxyXG4gICAgaWYgKGF1dGgpIHtcclxuICAgICAgY29uc3QgcGFyYW1zQ2xvbmUgPSBjbG9uZShwYXJhbXMpXHJcbiAgICAgIHBhcmFtc0Nsb25lW3RoaXMuc2Vzc2lvbi5nZXRLZXlBdXRoKCldID0gYXV0aFxyXG4gICAgICByZXR1cm4gdGhpcy5zZXNzaW9uLmdldEJhc2VVcmwoKS5waXBlKFxyXG4gICAgICAgIG1lcmdlTWFwKHYgPT4ge1xyXG4gICAgICAgICAgaWYgKHYpIHtcclxuICAgICAgICAgICAgLy8g0Y3RgtC+INCx0L7Qu9C10LUg0LHRi9GB0YLRgNGL0Lkg0YHQv9C+0YHQvtCxINC30LDQv9GA0L7RgdCwINGH0LXQvCDQvtGC0L/RgNCw0LLQutCwIEZvcm0gRGF0YVxyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8VCB8IHVuZGVmaW5lZD4oXHJcbiAgICAgICAgICAgICAgdGhpcy5wcmVwYXJlQmFzZUFkZHJlc3ModikgKyB1cmwsIEpTT04uc3RyaW5naWZ5KHBhcmFtc0Nsb25lKSxcclxuICAgICAgICAgICAgICB7aGVhZGVyczogbmV3IEh0dHBIZWFkZXJzKCkuc2V0KCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpfVxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiAnZ2V0IGJhc2UgdXJsIGVycm9yJylcclxuICAgICAgICB9KSlcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+ICdhdXRoIG5vdCBnZXQnKVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb3ZlcnJpZGUgaHR0cEdldDxUPihcclxuICAgIHVybDogc3RyaW5nLFxyXG4gICAgcGFyYW1zOiBhbnkgPSB7fSxcclxuICAgIHNldHRpbmdzOiBpSHR0cFBhcmFtU2V0dGluZ3MgPSB0aGlzLmRlZlNldHRpbmdzXHJcbiAgKTogT2JzZXJ2YWJsZTxUIHwgdW5kZWZpbmVkPiB7XHJcbiAgICBsZXQgYXV0aCA9IHRoaXMuc2Vzc2lvbi5nZXRBdXRoUGFyYW1zKClcclxuXHJcbiAgICBpZiAoYXV0aCkge1xyXG4gICAgICBpZiAocGFyYW1zID09PSBudWxsKSB7XHJcbiAgICAgICAgcGFyYW1zID0ge31cclxuICAgICAgfVxyXG4gICAgICBjb25zdCBwYXJhbXNDbG9uZSA9IGNsb25lKHBhcmFtcylcclxuICAgICAgcGFyYW1zQ2xvbmVbdGhpcy5zZXNzaW9uLmdldEtleUF1dGgoKV0gPSBhdXRoXHJcbiAgICAgIGxldCBvcHRpb25zID0ge1xyXG4gICAgICAgIHBhcmFtczogdGhpcy5nZXRIdHRwUGFyYW1zR2V0KHBhcmFtc0Nsb25lKVxyXG4gICAgICAgIC8vIHBhcmFtczogSlNPTi5zdHJpbmdpZnkocGFyYW1zQ2xvbmUpXHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHJldHVybiB0aGlzLnNlc3Npb24uZ2V0QmFzZVVybCgpLnBpcGUoXHJcbiAgICAgICAgbWVyZ2VNYXAodiA9PiB7XHJcbiAgICAgICAgICBpZiAodikge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5odHRwLmdldDxUPih0aGlzLnByZXBhcmVCYXNlQWRkcmVzcyh2KSArIHVybCwgb3B0aW9ucylcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+ICdnZXQgYmFzZSB1cmwgZXJyb3InKVxyXG4gICAgICAgIH0pXHJcbiAgICAgIClcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+ICdhdXRoIG5vdCBnZXQnKVxyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG4gIGdldE5hbWVNZXRob2QoYXJyOiBzdHJpbmdbXSkge1xyXG4gICAgcmV0dXJuIGFyci5qb2luKCcuJylcclxuICB9XHJcblxyXG59XHJcblxyXG4iXX0=