vcomply-workflow-engine 6.0.33 → 6.0.35

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.
@@ -101,7 +101,7 @@ export class ProgramsService {
101
101
  const headers = new HttpHeaders()
102
102
  .set('token', this.authService.getAuthorizationToken())
103
103
  .set('x-business-cycle', JSON.stringify(this.getBusinessCycle()));
104
- return this.http.post(this.env.programEndpoint + '/category/?isBusinessCycle=true', payload, { headers });
104
+ return this.http.post(this.env.programEndpoint + '/category/?isBusinessCycle=true&serviceType=1', payload, { headers });
105
105
  }
106
106
  buildPayload(formData, instance) {
107
107
  const form = formData?.value;
@@ -196,7 +196,7 @@ export class ProgramsService {
196
196
  return this.http.post(this.env.programEndpoint +
197
197
  '/category/editCategory/' +
198
198
  id +
199
- '?isBusinessCycle=true&bypass-businessCycle=true', payload, { headers });
199
+ '?isBusinessCycle=true&bypass-businessCycle=true&serviceType=1', payload, { headers });
200
200
  }
201
201
  getMemeberByIds(ids) {
202
202
  const headers = new HttpHeaders().set('token', this.authService.getAuthorizationToken());
@@ -230,4 +230,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
230
230
  }], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.AuthService }, { type: i3.Configurations, decorators: [{
231
231
  type: Optional
232
232
  }] }]; } });
233
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZ3JhbXMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Z4LXdvcmtmbG93LWVuZ2luZS9zcmMvbGliL3dvcmtmbG93LXNlcnZpY2VzL3Byb2dyYW1zLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFjLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7O0FBTzdCLE1BQU0sT0FBTyxlQUFlO0lBRTFCLFlBQ1UsSUFBZ0IsRUFDaEIsV0FBd0IsRUFDcEIsTUFBdUI7UUFGM0IsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUNoQixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUdoQyxJQUFJLE1BQU0sRUFBRTtZQUNWLElBQUksQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQztTQUM3QjtJQUNILENBQUM7SUFFRCxRQUFRO1FBQ04sTUFBTSxPQUFPLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQyxHQUFHLENBQ25DLE9BQU8sRUFDUCxJQUFJLENBQUMsV0FBVyxDQUFDLHFCQUFxQixFQUFFLENBQ3pDLENBQUM7UUFDRixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUNsQixJQUFJLENBQUMsR0FBRyxFQUFFLGVBQWU7WUFDdkIsaURBQWlELEVBQ25ELEVBQUUsT0FBTyxFQUFFLENBQ1osQ0FBQztJQUNKLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILFdBQVcsQ0FBQyxPQUFZLEVBQUUsSUFBUztRQUNqQyxNQUFNLE9BQU8sR0FBRyxJQUFJLFdBQVcsRUFBRSxDQUFDLEdBQUcsQ0FDbkMsT0FBTyxFQUNQLElBQUksQ0FBQyxXQUFXLENBQUMscUJBQXFCLEVBQUUsQ0FDekMsQ0FB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cEIsQ0FBQztJQUVELGlCQUFpQixDQUFDLEdBQVE7UUFDeEIsTUFBTSxPQUFPLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQyxHQUFHLENBQ25DLE9BQU8sRUFDUCxJQUFJLENBQUMsV0FBVyxDQUFDLHFCQUFxQixFQUFFLENBQ3pDLENBQUM7UUFDRixPQUFPLElBQUksQ0FBQyxJQUFJO2FBQ2IsSUFBSSxDQUNILElBQUksQ0FBQyxHQUFHLENBQUMsZ0JBQWdCO1lBQ3ZCLDZDQUE2QyxFQUMvQyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsRUFDbEIsRUFBRSxPQUFPLEVBQUUsQ0FDWjthQUNBLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNwQixDQUFDOytHQTFUVSxlQUFlO21IQUFmLGVBQWUsY0FGZCxNQUFNOzs0RkFFUCxlQUFlO2tCQUgzQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBTUksUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBIZWFkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHJldHJ5IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBDb25maWd1cmF0aW9ucyB9IGZyb20gJy4uL2NvbmZpZ3VyYXRpb25zJztcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi9hdXRoLnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgUHJvZ3JhbXNTZXJ2aWNlIHtcbiAgZW52ITogYW55O1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXG4gICAgcHJpdmF0ZSBhdXRoU2VydmljZTogQXV0aFNlcnZpY2UsXG4gICAgQE9wdGlvbmFsKCkgY29uZmlnPzogQ29uZmlndXJhdGlvbnNcbiAgKSB7XG4gICAgaWYgKGNvbmZpZykge1xuICAgICAgdGhpcy5lbnYgPSBjb25maWcuZW52Q29uZmlnO1xuICAgIH1cbiAgfVxuXG4gIGdldFJvbGVzKCkge1xuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoXG4gICAgICAndG9rZW4nLFxuICAgICAgdGhpcy5hdXRoU2VydmljZS5nZXRBdXRob3JpemF0aW9uVG9rZW4oKVxuICAgICk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoXG4gICAgICB0aGlzLmVudj8ub3JnYW5pemF0aW9uR2V0ICtcbiAgICAgICAgJ3JvbGVzL2dldFByb2dyYW1Sb2xlcyZieXBhc3MtYnVzaW5lc3NDeWNsZT10cnVlJyxcbiAgICAgIHsgaGVhZGVycyB9XG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGxvYWRzIHRoZSBnaXZlbiBmaWxlIHRvIHNlcnZlclxuICAgKiBAcGFyYW0gcGF5bG9hZCBwYXlsb2FkIEZpbGUgZGF0YSB0byBiZSB1cGxvYWRlZFxuICAgKiBAcGFyYW0gcGF0aCBwYXRoIFBhdGggb2YgZmlsZSB0byBiZSB1cGxvYWRlZFxuICAgKiBAcmV0dXJucyByZXNwb25zZSBhZnRlciB1cGxvYWRpbmcgYSBmaWxlXG4gICAqL1xuICB1cGxvYWRGaWxlcyhwYXlsb2FkOiBhbnksIHBhdGg6IGFueSkge1xuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoXG4gICAgICAndG9rZW4nLFxuICAgICAgdGhpcy5hdXRoU2VydmljZS5nZXRBdXRob3JpemF0aW9uVG9rZW4oKVxuICAgICk7XG4gICAgY29uc3QgT1JHX1BBVEggPSBgby8ke3BhdGh9YDtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXG4gICAgICB0aGlzLmVudi5maWxlVXBsb2FkRW5kUG9pbnQgKyBPUkdfUEFUSCArICcmbmdzdy1ieXBhc3M9dHJ1ZScsXG4gICAgICBwYXlsb2FkLFxuICAgICAgeyBoZWFkZXJzIH1cbiAgICApO1xuICB9XG5cbiAgZ2V0UmVzcG9uc2liaWxpdHlDZW50ZXJMaXN0KCkge1xuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoXG4gICAgICAndG9rZW4nLFxuICAgICAgdGhpcy5hdXRoU2VydmljZS5nZXRBdXRob3JpemF0aW9uVG9rZW4oKVxuICAgICk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgLmdldDxhbnlbXT4oXG4gICAgICAgIHRoaXMuZW52Py5jb21wbGlhbmNlR2V0ICtcbiAgICAgICAgICAncmVzcG9uc2liaWxpdHlDZW50ZXJUcmVlJmJ5cGFzcy1idXNpbmVzc0N5Y2xlPXRydWUnLFxuICAgICAgICB7XG4gICAgICAgICAgaGVhZGVycyxcbiAgICAgICAgfVxuICAgICAgKVxuICAgICAgLnBpcGUocmV0cnkoMikpO1xuICB9XG5cbiAgZmV0Y2hSb2xlVXNlcnMocm9sZXM6IGFueSwgcGFnZT86IGFueSwgc2VhcmNoS2V5PzogYW55KSB7XG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldChcbiAgICAgICd0b2tlbicsXG4gICAgICB0aGlzLmF1dGhTZXJ2aWNlLmdldEF1dGhvcml6YXRpb25Ub2tlbigpXG4gICAgKTtcbiAgICBsZXQgcXVlcnlTdHJpbmcgPSAnJztcbiAgICBpZiAocGFnZSkge1xuICAgICAgcXVlcnlTdHJpbmcgKz0gYCZwYWdlPSR7cGFnZX1gO1xuICAgIH1cbiAgICBpZiAoc2VhcmNoS2V5KSB7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgIC5wb3N0PGFueVtdPihcbiAgICAgICAgdGhpcy5lbnYub3JnYW5pemF0aW9uUG9zdCArXG4gICAgICAgICAgJ3JvbGVzL2dldFVzZXJEZXRhaWxzJmxpbWl0PTMwJmJ5cGFzcy1idXNpbmVzc0N5Y2xlPXRydWUnICtcbiAgICAgICAgICBxdWVyeVN0cmluZyxcbiAgICAgICAgeyByb2xlX2lkczogcm9sZXMgPz8gW10gfSxcbiAgICAgICAgeyBoZWFkZXJzIH1cbiAgICAgIClcbiAgICAgIC5waXBlKHJldHJ5KDIpKTtcbiAgfVxuXG4gIGZldGNoQWxsUm9sZVVzZXJzKHJvbGVzOiBhbnkpIHtcbiAgICBjb25zdCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCkuc2V0KFxuICAgICAgJ3Rva2VuJyxcbiAgICAgIHRoaXMuYXV0aFNlcnZpY2UuZ2V0QXV0aG9yaXphdGlvblRva2VuKClcbiAgICApO1xuICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgIC5wb3N0PGFueVtdPihcbiAgICAgICAgdGhpcy5lbnY/Lm9yZ2FuaXphdGlvblBvc3QgK1xuICAgICAgICAgICdyb2xlcy9nZXRVc2VyRGV0YWlscyZ0eXBlPWFsbCZieXBhc3MtYnVzaW5lc3NDeWNsZT10cnVlJyxcbiAgICAgICAgeyByb2xlX2lkczogcm9sZXMgPz8gW10gfSxcbiAgICAgICAgeyBoZWFkZXJzIH1cbiAgICAgIClcbiAgICAgIC5waXBlKHJldHJ5KDIpKTtcbiAgfVxuXG4gIGZldGNoQWxsUm9sZUdyb3Vwcyhyb2xlczogYW55KSB7XG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldChcbiAgICAgICd0b2tlbicsXG4gICAgICB0aGlzLmF1dGhTZXJ2aWNlLmdldEF1dGhvcml6YXRpb25Ub2tlbigpXG4gICAgKTtcbiAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAucG9zdDxhbnlbXT4oXG4gICAgICAgIHRoaXMuZW52Lm9yZ2FuaXphdGlvblBvc3QgK1xuICAgICAgICAgICdyb2xlcy9nZXRHcm91cERldGFpbHMmdHlwZT1hbGwmYnlwYXNzLWJ1c2luZXNzQ3ljbGU9dHJ1ZScsXG4gICAgICAgIHsgcm9sZV9pZHM6IHJvbGVzID8/IFtdIH0sXG4gICAgICAgIHsgaGVhZGVycyB9XG4gICAgICApXG4gICAgICAucGlwZShyZXRyeSgyKSk7XG4gIH1cbiAgZmV0Y2hBbGxPcmdVc2VyKCkge1xuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoXG4gICAgICAndG9rZW4nLFxuICAgICAgdGhpcy5hdXRoU2VydmljZS5nZXRBdXRob3JpemF0aW9uVG9rZW4oKVxuICAgICk7XG4gICAgLy9odHRwczovL2RldmFwaS52LWNvbXBseS5jb20vb3JnYW5pemF0aW9uLz9tb2RlPW9yZ2FuaXNhdGlvblVzZXJzTGlzdCZwYWdpbmF0aW9uVHlwZT1zbWFsbCZhZG1pbj0xXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgLmdldDxhbnlbXT4oXG4gICAgICAgIHRoaXMuZW52Py5vcmdhbml6YXRpb25HZXQgK1xuICAgICAgICAgICdvcmdhbmlzYXRpb25Vc2Vyc0xpc3QmcGFnaW5hdGlvblR5cGU9c21hbGwmYnlwYXNzLWJ1c2luZXNzQ3ljbGU9dHJ1ZScsXG4gICAgICAgIHsgaGVhZGVycyB9XG4gICAgICApXG4gICAgICAucGlwZShyZXRyeSgyKSk7XG4gIH1cbiAgZmV0Y2hDb21wbGlhbmNlR3JvdXBzKCkge1xuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoXG4gICAgICAndG9rZW4nLFxuICAgICAgdGhpcy5hdXRoU2VydmljZS5nZXRBdXRob3JpemF0aW9uVG9rZW4oKVxuICAgICk7XG4gICAgLy9odHRwczovL2RldmFwaS52LWNvbXBseS5jb20vb3JnYW5pemF0aW9uLz9tb2RlPWdyb3Vwc0xpc3Qmc3RhdHVzPTEmdHlwZT1jb21wbGlhbmNlXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgLmdldDxhbnlbXT4oXG4gICAgICAgIHRoaXMuZW52Py5vcmdhbml6YXRpb25HZXQgK1xuICAgICAgICAgICdncm91cHNMaXN0JnN0YXR1cz0xJnR5cGU9Y29tcGxpYW5jZSZieXBhc3MtYnVzaW5lc3NDeWNsZT10cnVlJyxcbiAgICAgICAgeyBoZWFkZXJzIH1cbiAgICAgIClcbiAgICAgIC5waXBlKHJldHJ5KDIpKTtcbiAgfVxuXG4gIGdldEJ1c2luZXNzQ3ljbGUoKSB7XG4gICAgY29uc3QgYnVzaW5lc3NDeWNsZSA9IEpTT04ucGFyc2UoXG4gICAgICBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnYnVzaW5lc3NDeWNsZScpID8/ICd7fSdcbiAgICApO1xuICAgIHJldHVybiB7XG4gICAgICBzZWxlY3RlZF9jeWNsZTogYnVzaW5lc3NDeWNsZVxuICAgICAgICA/IGJ1c2luZXNzQ3ljbGU/LnNlbGVjdGVkQ3ljbGU/LnN0YXJ0X2RhdGUgK1xuICAgICAgICAgICctJyArXG4gICAgICAgICAgYnVzaW5lc3NDeWNsZT8uc2VsZWN0ZWRDeWNsZT8uZW5kX2RhdGVcbiAgICAgICAgOiAnJyxcbiAgICAgIHN0YXJ0X2RhdGU6IGJ1c2luZXNzQ3ljbGUgPyBidXNpbmVzc0N5Y2xlPy5zZWxlY3RlZEN5Y2xlPy5zdGFydF9kYXRlIDogJycsXG4gICAgICBlbmRfZGF0ZTogYnVzaW5lc3NDeWNsZSA/IGJ1c2luZXNzQ3ljbGU/LnNlbGVjdGVkQ3ljbGU/LmVuZF9kYXRlIDogJycsXG4gICAgICBzZWxlY3RlZF9jeWNsZV9hcnI6IGJ1c2luZXNzQ3ljbGVcbiAgICAgICAgPyBidXNpbmVzc0N5Y2xlPy5zZWxlY3RlZEN5Y2xlPy5zZWxlY3RlZF9jeWNsZV9hcnJcbiAgICAgICAgOiBbXSxcbiAgICB9O1xuICB9XG5cbiAgc2F2ZVByb2dyYW0ocGF5bG9hZDogYW55KSB7XG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpXG4gICAgICAuc2V0KCd0b2tlbicsIHRoaXMuYXV0aFNlcnZpY2UuZ2V0QXV0aG9yaXphdGlvblRva2VuKCkpXG4gICAgICAuc2V0KCd4LWJ1c2luZXNzLWN5Y2xlJywgSlNPTi5zdHJpbmdpZnkodGhpcy5nZXRCdXNpbmVzc0N5Y2xlKCkpKTtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55W10+KFxuICAgICAgdGhpcy5lbnYucHJvZ3JhbUVuZHBvaW50ICsgJy9jYXRlZ29yeS8/aXNCdXNpbmVzc0N5Y2xlPXRydWUnLFxuICAgICAgcGF5bG9hZCxcbiAgICAgIHsgaGVhZGVycyB9XG4gICAgKTtcbiAgfVxuXG4gIGJ1aWxkUGF5bG9hZChmb3JtRGF0YTogYW55LCBpbnN0YW5jZTogYW55KSB7XG4gICAgY29uc3QgZm9ybSA9IGZvcm1EYXRhPy52YWx1ZTtcbiAgICBjb25zdCBvcHRpb24gPSBpbnN0YW5jZS5hZGRpdGlvbmFsT3B0aW9uO1xuICAgIGNvbnN0IHR5cGUgPSBbXCJvdGhlcnNcIiwgXCJyZWd1bGF0aW9uc1wiLCBcInN0YW5kYXJkc1wiLCBcImludGVybmFsX2NvbnRyb2xzXCJdXG4gICAgcmV0dXJuIHtcbiAgICAgIFwibmFtZVwiOiBmb3JtPy5wcm9ncmFtX25hbWUudHJpbSgpID8/ICcnLFxuICAgICAgXCJ0eXBlXCI6IHR5cGVbZm9ybT8ucHJvZ3JhbV90eXBlXSA/PyBcIm90aGVyc1wiLFxuICAgICAgXCJkZXNjcmlwdGlvblwiOiBmb3JtPy5wcm9ncmFtX29iamVjdGl2ZSA/PyBcIlwiLFxuICAgICAgXCJvd25lcnNcIjoge1xuICAgICAgICBcImFkbWluc1wiOiB7ICAvLyBPd25lcnNcbiAgICAgICAgICBcInVzZXJzXCI6IHRoaXMubGlzdFRvSWQoZm9ybT8ucHJvZ3JhbV9vd25lcnMsICd1aWQnKSA/PyBbXSxcbiAgICAgICAgICB1c2VyR3JvdXBzOiBvcHRpb24/LlJPTEVTXG4gICAgICAgICAgICA/IHRoaXMubGlzdFRvSWQoZm9ybT8ucHJvZ3JhbV9vd25lcnNfZ3JvdXAsICd1Z2lkJykgPz8gW11cbiAgICAgICAgICAgIDogW11cbiAgICAgICAgfSxcbiAgICAgICAgXCJtYW5hZ2Vyc1wiOiB7ICAvLyBDb2xsYWJvcmF0b3JzXG4gICAgICAgICAgXCJ1c2Vyc1wiOiB0aGlzLmxpc3RUb0lkKGZvcm0/LmNvbGxhYm9yYXRvcnMsICd1aWQnKSA/PyBbXSxcbiAgICAgICAgICB1c2VyR3JvdXBzOiBvcHRpb24/LlJPTEVTXG4gICAgICAgICAgICA/IHRoaXMubGlzdFRvSWQoZm9ybT8uY29sbGFib3JhdG9yc19ncm91cCwgJ3VnaWQnKSA/PyBbXVxuICAgICAgICAgICAgOiBbXVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJjdXN0b21GaWVsZHNcIjogb3B0aW9uPy5DVVNUT01fRklFTERTID8gZm9ybT8uY3VzdG9tX2ZpZWxkcyA/PyBbXSA6IFtdLFxuICAgIH1cbiAgfVxuICBnZW5lcmF0ZUFzc2Vzc21lbnQoYXNzZXNzbWVudDogYW55KSB7XG4gICAgaWYgKGFzc2Vzc21lbnQgJiYgYXNzZXNzbWVudD8ubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gYXNzZXNzbWVudC5tYXAoKGNhdDogYW55KSA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgLi4uY2F0LFxuICAgICAgICAgIGFzc2Vzc21lbnRJZHM6IGNhdC5hc3Nlc3NtZW50SWRzPy5tYXAoKGFzc2VzczogYW55KSA9PiBhc3Nlc3MuaWQpLFxuICAgICAgICB9O1xuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG4gIH1cbiAgZ2V0RnJhbWV3b3JrKGlucHV0OiBhbnkpIHtcbiAgICBpZiAoaW5wdXQpIHtcbiAgICAgIHJldHVybiBbXG4gICAgICAgIHtcbiAgICAgICAgICBfaWQ6IGlucHV0Py5faWQsXG4gICAgICAgICAgZnJhbWV3b3JrX25hbWU6IGlucHV0Py5uYW1lLFxuICAgICAgICAgIHR5cGU6IGlucHV0Py50eXBlLFxuICAgICAgICAgIGluX3Njb3BlOiBpbnB1dD8uaW5fc2NvcGVcbiAgICAgICAgICAgID8gdGhpcy5saXN0VG9JZChpbnB1dD8uaW5fc2NvcGUsICdfaWQnKVxuICAgICAgICAgICAgOiBbXSxcbiAgICAgICAgICBvdXRfc2NvcGU6IGlucHV0Py5vdXRfc2NvcGVcbiAgICAgICAgICAgID8gdGhpcy5saXN0VG9JZChpbnB1dD8ub3V0X3Njb3BlLCAnX2lkJylcbiAgICAgICAgICAgIDogW10sXG4gICAgICAgIH0sXG4gICAgICBdO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuICB9XG5cbiAgbGlzdFRvSWQobGlzdDogYW55LCBrZXk6IHN0cmluZykge1xuICAgIGlmIChsaXN0ICYmIGxpc3Q/Lmxlbmd0aCkge1xuICAgICAgcmV0dXJuIGxpc3QubWFwKChlbGU6IGFueSkgPT4gZWxlW2tleV0pO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqXG4gICAqIEBwYXJhbSBpZCA6IHByb2dyYW0gb2JqZWN0IGlkXG4gICAqIEByZXR1cm5zXG4gICAqL1xuICBnZXRQcm9ncmFtKGlkOiBhbnkpIHtcbiAgICBjb25zdCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKClcbiAgICAgIC5zZXQoJ3Rva2VuJywgdGhpcy5hdXRoU2VydmljZS5nZXRBdXRob3JpemF0aW9uVG9rZW4oKSlcbiAgICAgIC5zZXQoJ3gtYnVzaW5lc3MtY3ljbGUnLCBKU09OLnN0cmluZ2lmeSh0aGlzLmdldEJ1c2luZXNzQ3ljbGUoKSkpO1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PGFueVtdPihcbiAgICAgIHRoaXMuZW52Py5wcm9ncmFtRW5kcG9pbnQgK1xuICAgICAgICAnLycgK1xuICAgICAgICBpZCArXG4gICAgICAgICc/aXNCdXNpbmVzc0N5Y2xlPXRydWUmYnlwYXNzLWJ1c2luZXNzQ3ljbGU9dHJ1ZScsXG4gICAgICB7IGhlYWRlcnMgfVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICpcbiAgICogQHBhcmFtIHBheWxvYWQgcGF5bG9hZCB3aGljaCBuZWVkIHRvIGJlIHVwZGF0ZWRcbiAgICogQHBhcmFtIGlkIHByb2dyYW0gb2JqZWN0IGlkXG4gICAqIEByZXR1cm5zXG4gICAqL1xuICB1cGRhdGVQcm9ncmFtKHBheWxvYWQ6IGFueSwgaWQ6IHN0cmluZykge1xuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKVxuICAgICAgLnNldCgndG9rZW4nLCB0aGlzLmF1dGhTZXJ2aWNlLmdldEF1dGhvcml6YXRpb25Ub2tlbigpKVxuICAgICAgLnNldCgneC1idXNpbmVzcy1jeWNsZScsIEpTT04uc3RyaW5naWZ5KHRoaXMuZ2V0QnVzaW5lc3NDeWNsZSgpKSk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueVtdPihcbiAgICAgIHRoaXMuZW52LnByb2dyYW1FbmRwb2ludCArXG4gICAgICAgICcvY2F0ZWdvcnkvZWRpdENhdGVnb3J5LycgK1xuICAgICAgICBpZCArXG4gICAgICAgICc/aXNCdXNpbmVzc0N5Y2xlPXRydWUmYnlwYXNzLWJ1c2luZXNzQ3ljbGU9dHJ1ZScsXG4gICAgICBwYXlsb2FkLFxuICAgICAgeyBoZWFkZXJzIH1cbiAgICApO1xuICB9XG5cbiAgZ2V0TWVtZWJlckJ5SWRzKGlkczogYW55KSB7XG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldChcbiAgICAgICd0b2tlbicsXG4gICAgICB0aGlzLmF1dGhTZXJ2aWNlLmdldEF1dGhvcml6YXRpb25Ub2tlbigpXG4gICAgKTtcbiAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAucG9zdDxhbnlbXT4oXG4gICAgICAgIHRoaXMuZW52Lm9yZ2FuaXphdGlvblBvc3QgK1xuICAgICAgICAgICdtZW1iZXJEZXRhaWxzYnlJZHMmYnlwYXNzLWJ1c2luZXNzQ3ljbGU9dHJ1ZScsXG4gICAgICAgIHsgbWVtYmVyX2lkOiBpZHMgfSxcbiAgICAgICAgeyBoZWFkZXJzIH1cbiAgICAgIClcbiAgICAgIC5waXBlKHJldHJ5KDIpKTtcbiAgfVxuXG4gIGdldE1lbWViZXJCeVVJZHMoaWRzOiBhbnkpIHtcbiAgICBjb25zdCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCkuc2V0KFxuICAgICAgJ3Rva2VuJyxcbiAgICAgIHRoaXMuYXV0aFNlcnZpY2UuZ2V0QXV0aG9yaXphdGlvblRva2VuKClcbiAgICApO1xuICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgIC5wb3N0PGFueVtdPihcbiAgICAgICAgdGhpcy5lbnYub3JnYW5pemF0aW9uUG9zdCArXG4gICAgICAgICAgJ21lbWJlckRldGFpbHNieUlkc1NhaWxzJmJ5cGFzcy1idXNpbmVzc0N5Y2xlPXRydWUnLFxuICAgICAgICB7IG1lbWJlcl9pZDogaWRzIH0sXG4gICAgICAgIHsgaGVhZGVycyB9XG4gICAgICApXG4gICAgICAucGlwZShyZXRyeSgyKSk7XG4gIH1cblxuICBnZXRNZW1iZXJCeUdyb3VwcyhpZHM6IGFueSkge1xuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoXG4gICAgICAndG9rZW4nLFxuICAgICAgdGhpcy5hdXRoU2VydmljZS5nZXRBdXRob3JpemF0aW9uVG9rZW4oKVxuICAgICk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgLnBvc3Q8YW55W10+KFxuICAgICAgICB0aGlzLmVudi5vcmdhbml6YXRpb25Qb3N0ICtcbiAgICAgICAgICAnZ3JvdXBEZXRhaWxzYnlJZHMmYnlwYXNzLWJ1c2luZXNzQ3ljbGU9dHJ1ZScsXG4gICAgICAgIHsgZ3JvdXBfaWRzOiBpZHMgfSxcbiAgICAgICAgeyBoZWFkZXJzIH1cbiAgICAgIClcbiAgICAgIC5waXBlKHJldHJ5KDIpKTtcbiAgfVxufSJdfQ==
233
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZ3JhbXMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Z4LXdvcmtmbG93LWVuZ2luZS9zcmMvbGliL3dvcmtmbG93LXNlcnZpY2VzL3Byb2dyYW1zLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFjLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7O0FBTzdCLE1BQU0sT0FBTyxlQUFlO0lBRTFCLFlBQ1UsSUFBZ0IsRUFDaEIsV0FBd0IsRUFDcEIsTUFBdUI7UUFGM0IsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUNoQixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUdoQyxJQUFJLE1BQU0sRUFBRTtZQUNWLElBQUksQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQztTQUM3QjtJQUNILENBQUM7SUFFRCxRQUFRO1FBQ04sTUFBTSxPQUFPLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQyxHQUFHLENBQ25DLE9BQU8sRUFDUCxJQUFJLENBQUMsV0FBVyxDQUFDLHFCQUFxQixFQUFFLENBQ3pDLENBQUM7UUFDRixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUNsQixJQUFJLENBQUMsR0FBRyxFQUFFLGVBQWU7WUFDdkIsaURBQWlELEVBQ25ELEVBQUUsT0FBTyxFQUFFLENBQ1osQ0FBQztJQUNKLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILFdBQVcsQ0FBQyxPQUFZLEVBQUUsSUFBUztRQUNqQyxNQUFNLE9BQU8sR0FBRyxJQUFJLFdBQVcsRUFBRSxDQUFDLEdBQUcsQ0FDbkMsT0FBTyxFQUNQLElBQUksQ0FBQyxXQUFXLENBQUMscUJBQXFCLEVBQUUsQ0FDekMsQ0FBQztRQUNGLE1BQU0sUUFBUSxHQUFHLEtBQUssSUFBSSxFQUFFLENBQUM7UUFDN0IsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FDbkIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsR0FBRyxRQUFRLEdBQUcsbUJBQW1CLEVBQzVELE9BQU8sRUFDUCxFQUFFLE9BQU8sRUFBRSxDQUNaLENBQUM7SUFDSixDQUFDO0lBRUQsMkJBQTJCO1FBQ3pCLE1BQU0sT0FBTyxHQUFHLElBQUksV0FBVyxFQUFFLENBQUMsR0FBRyxDQUNuQyxPQUFPLEVBQ1AsSUFBSSxDQUFDLFdBQVcsQ0FBQyxxQkFBcUIsRUFBRSxDQUN6QyxDQUFDO1FBQ0YsT0FBTyxJQUFJLENBQUMsSUFBSTthQUNiLEdBQUcsQ0FDRixJQUFJLENBQUMsR0FBRyxFQUFFLGFBQWE7WUFDckIsb0RBQW9ELEVBQ3REO1lBQ0UsT0FBTztTQUNSLENBQ0Y7YUFDQSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDcEIsQ0FBQztJQUVELGNBQWMsQ0FBQyxLQUFVLEVBQUUsSUFBVSxFQUFFLFNBQWU7UUFDcEQsTUFBTSxPQUFPLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQyxHQUFHLENBQ25DLE9BQU8sRUFDUCxJQUFJLENBQUMsV0FBVyxDQUFDLHFCQUFxQixFQUFFLENBQ3pDLENBQUM7UUFDRixJQUFJLFdBQVcsR0FBRyxFQUFFLENBQUM7UUFDckIsSUFBSSxJQUFJLEVBQUU7WUFDUixXQUFXLElBQUksU0FBUyxJQUFJLEVBQUUsQ0FBQztTQUNoQztRQUNELElBQUksU0FBUyxFQUFFO1NBQ2Q7UUFDRCxPQUFPLElBQUksQ0FBQyxJQUFJO2FBQ2IsSUFBSSxDQUNILElBQUksQ0FBQyxHQUFHLENBQUMsZ0JBQWdCO1lBQ3ZCLHlEQUF5RDtZQUN6RCxXQUFXLEVBQ2IsRUFBRSxRQUFRLEVBQUUsS0FBSyxJQUFJLEVBQUUsRUFBRSxFQUN6QixFQUFFLE9BQU8sRUFBRSxDQUNaO2FBQ0EsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3BCLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxLQUFVO1FBQzFCLE1BQU0sT0FBTyxHQUFHLElBQUksV0FBVyxFQUFFLENBQUMsR0FBRyxDQUNuQyxPQUFPLEVBQ1AsSUFBSSxDQUFDLFdBQVcsQ0FBQyxxQkFBcUIsRUFBRSxDQUN6QyxDQUFDO1FBQ0YsT0FBTyxJQUFJLENBQUMsSUFBSTthQUNiLElBQUksQ0FDSCxJQUFJLENBQUMsR0FBRyxFQUFFLGdCQUFnQjtZQUN4Qix5REFBeUQsRUFDM0QsRUFBRSxRQUFRLEVBQUUsS0FBSyxJQUFJLEVBQUUsRUFBRSxFQUN6QixFQUFFLE9BQU8sRUFBRSxDQUNaO2FBQ0EsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3BCLENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxLQUFVO1FBQzNCLE1BQU0sT0FBTyxHQUFHLElBQUksV0FBVyxFQUFFLENBQUMsR0FBRyxDQUNuQyxPQUFPLEVBQ1AsSUFBSSxDQUFDLFdBQVcsQ0FBQyxxQkFBcUIsRUFBRSxDQUN6QyxDQUFDO1FBQ0YsT0FBTyxJQUFJLENBQUMsSUFBSTthQUNiLElBQUksQ0FDSCxJQUFJLENBQUMsR0FBRyxDQUFDLGdCQUFnQjtZQUN2QiwwREFBMEQsRUFDNUQsRUFBRSxRQUFRLEVBQUUsS0FBSyxJQUFJLEVBQUUsRUFBRSxFQUN6QixFQUFFLE9BQU8sRUFBRSxDQUNaO2FBQ0EsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3BCLENBQUM7SUFDRCxlQUFlO1FBQ2IsTUFBTSxPQUFPLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQyxHQUFHLENBQ25DLE9BQU8sRUFDUCxJQUFJLENBQUMsV0FBVyxDQUFDLHFCQUFxQixFQUFFLENBQ3pDLENBQUM7UUFDRixtR0FBbUc7UUFDbkcsT0FBTyxJQUFJLENBQUMsSUFBSTthQUNiLEdBQUcsQ0FDRixJQUFJLENBQUMsR0FBRyxFQUFFLGVBQWU7WUFDdkIsc0VBQXNFLEVBQ3hFLEVBQUUsT0FBTyxFQUFFLENBQ1o7YUFDQSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDcEIsQ0FBQztJQUNELHFCQUFxQjtRQUNuQixNQUFNLE9BQU8sR0FBRyxJQUFJLFdBQVcsRUFBRSxDQUFDLEdBQUcsQ0FDbkMsT0FBTyxFQUNQLElBQUksQ0FBQyxXQUFXLENBQUMscUJBQXFCLEVBQUUsQ0FDekMsQ0FBQztRQUNGLG9GQUFvRjtRQUNwRixPQUFPLElBQUksQ0FBQyxJQUFJO2FBQ2IsR0FBRyxDQUNGLElBQUksQ0FBQyxHQUFHLEVBQUUsZUFBZTtZQUN2QiwrREFBK0QsRUFDakUsRUFBRSxPQUFPLEVBQUUsQ0FDWjthQUNBLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNwQixDQUFDO0lBRUQsZ0JBQWdCO1FBQ2QsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FDOUIsWUFBWSxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsSUFBSSxJQUFJLENBQzlDLENBQUM7UUFDRixPQUFPO1lBQ0wsY0FBYyxFQUFFLGFBQWE7Z0JBQzNCLENBQUMsQ0FBQyxhQUFhLEVBQUUsYUFBYSxFQUFFLFVBQVU7b0JBQ3hDLEdBQUc7b0JBQ0gsYUFBYSxFQUFFLGFBQWEsRUFBRSxRQUFRO2dCQUN4QyxDQUFDLENBQUMsRUFBRTtZQUNOLFVBQVUsRUFBRSxhQUFhLENBQUMsQ0FBQyxDQUFDLGFBQWEsRUFBRSxhQUFhLEVBQUUsVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ3pFLFFBQVEsRUFBRSxhQUFhLENBQUMsQ0FBQyxDQUFDLGFBQWEsRUFBRSxhQUFhLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ3JFLGtCQUFrQixFQUFFLGFBQWE7Z0JBQy9CLENBQUMsQ0FBQyxhQUFhLEVBQUUsYUFBYSxFQUFFLGtCQUFrQjtnQkFDbEQsQ0FBQyxDQUFDLEVBQUU7U0FDUCxDQUFDO0lBQ0osQ0FBQztJQUVELFdBQVcsQ0FBQyxPQUFZO1FBQ3RCLE1BQU0sT0FBTyxHQUFHLElBQUksV0FBVyxFQUFFO2FBQzlCLEdBQUcsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO2FBQ3RELEdBQUcsQ0FBQyxrQkFBa0IsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNwRSxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUNuQixJQUFJLENBQUMsR0FBRyxDQUFDLGVBQWUsR0FBRywrQ0FBK0MsRUFDMUUsT0FBTyxFQUNQLEVBQUUsT0FBTyxFQUFFLENBQ1osQ0FBQztJQUNKLENBQUM7SUFFRCxZQUFZLENBQUMsUUFBYSxFQUFFLFFBQWE7UUFDdkMsTUFBTSxJQUFJLEdBQUcsUUFBUSxFQUFFLEtBQUssQ0FBQztRQUM3QixNQUFNLE1BQU0sR0FBRyxRQUFRLENBQUMsZ0JBQWdCLENBQUM7UUFDekMsTUFBTSxJQUFJLEdBQUcsQ0FBQyxRQUFRLEVBQUUsYUFBYSxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsQ0FBQyxDQUFBO1FBQ3hFLE9BQU87WUFDTCxNQUFNLEVBQUUsSUFBSSxFQUFFLFlBQVksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFO1lBQ3ZDLE1BQU0sRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLFlBQVksQ0FBQyxJQUFJLFFBQVE7WUFDNUMsYUFBYSxFQUFFLElBQUksRUFBRSxpQkFBaUIsSUFBSSxFQUFFO1lBQzVDLFFBQVEsRUFBRTtnQkFDUixRQUFRLEVBQUU7b0JBQ1IsT0FBTyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLGNBQWMsRUFBRSxLQUFLLENBQUMsSUFBSSxFQUFFO29CQUN6RCxVQUFVLEVBQUUsTUFBTSxFQUFFLEtBQUs7d0JBQ3ZCLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxvQkFBb0IsRUFBRSxNQUFNLENBQUMsSUFBSSxFQUFFO3dCQUN6RCxDQUFDLENBQUMsRUFBRTtpQkFDUDtnQkFDRCxVQUFVLEVBQUU7b0JBQ1YsT0FBTyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLGFBQWEsRUFBRSxLQUFLLENBQUMsSUFBSSxFQUFFO29CQUN4RCxVQUFVLEVBQUUsTUFBTSxFQUFFLEtBQUs7d0JBQ3ZCLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxtQkFBbUIsRUFBRSxNQUFNLENBQUMsSUFBSSxFQUFFO3dCQUN4RCxDQUFDLENBQUMsRUFBRTtpQkFDUDthQUNGO1lBQ0QsY0FBYyxFQUFFLE1BQU0sRUFBRSxhQUFhLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxhQUFhLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFO1NBQ3ZFLENBQUE7SUFDSCxDQUFDO0lBQ0Qsa0JBQWtCLENBQUMsVUFBZTtRQUNoQyxJQUFJLFVBQVUsSUFBSSxVQUFVLEVBQUUsTUFBTSxFQUFFO1lBQ3BDLE9BQU8sVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQVEsRUFBRSxFQUFFO2dCQUNqQyxPQUFPO29CQUNMLEdBQUcsR0FBRztvQkFDTixhQUFhLEVBQUUsR0FBRyxDQUFDLGFBQWEsRUFBRSxHQUFHLENBQUMsQ0FBQyxNQUFXLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7aUJBQ2xFLENBQUM7WUFDSixDQUFDLENBQUMsQ0FBQztTQUNKO2FBQU07WUFDTCxPQUFPLEVBQUUsQ0FBQztTQUNYO0lBQ0gsQ0FBQztJQUNELFlBQVksQ0FBQyxLQUFVO1FBQ3JCLElBQUksS0FBSyxFQUFFO1lBQ1QsT0FBTztnQkFDTDtvQkFDRSxHQUFHLEVBQUUsS0FBSyxFQUFFLEdBQUc7b0JBQ2YsY0FBYyxFQUFFLEtBQUssRUFBRSxJQUFJO29CQUMzQixJQUFJLEVBQUUsS0FBSyxFQUFFLElBQUk7b0JBQ2pCLFFBQVEsRUFBRSxLQUFLLEVBQUUsUUFBUTt3QkFDdkIsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLFFBQVEsRUFBRSxLQUFLLENBQUM7d0JBQ3ZDLENBQUMsQ0FBQyxFQUFFO29CQUNOLFNBQVMsRUFBRSxLQUFLLEVBQUUsU0FBUzt3QkFDekIsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLFNBQVMsRUFBRSxLQUFLLENBQUM7d0JBQ3hDLENBQUMsQ0FBQyxFQUFFO2lCQUNQO2FBQ0YsQ0FBQztTQUNIO2FBQU07WUFDTCxPQUFPLEVBQUUsQ0FBQztTQUNYO0lBQ0gsQ0FBQztJQUVELFFBQVEsQ0FBQyxJQUFTLEVBQUUsR0FBVztRQUM3QixJQUFJLElBQUksSUFBSSxJQUFJLEVBQUUsTUFBTSxFQUFFO1lBQ3hCLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQVEsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7U0FDekM7YUFBTTtZQUNMLE9BQU8sRUFBRSxDQUFDO1NBQ1g7SUFDSCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILFVBQVUsQ0FBQyxFQUFPO1FBQ2hCLE1BQU0sT0FBTyxHQUFHLElBQUksV0FBVyxFQUFFO2FBQzlCLEdBQUcsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO2FBQ3RELEdBQUcsQ0FBQyxrQkFBa0IsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNwRSxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUNsQixJQUFJLENBQUMsR0FBRyxFQUFFLGVBQWU7WUFDdkIsR0FBRztZQUNILEVBQUU7WUFDRixpREFBaUQsRUFDbkQsRUFBRSxPQUFPLEVBQUUsQ0FDWixDQUFDO0lBQ0osQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsYUFBYSxDQUFDLE9BQVksRUFBRSxFQUFVO1FBQ3BDLE1BQU0sT0FBTyxHQUFHLElBQUksV0FBVyxFQUFFO2FBQzlCLEdBQUcsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO2FBQ3RELEdBQUcsQ0FBQyxrQkFBa0IsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNwRSxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUNuQixJQUFJLENBQUMsR0FBRyxDQUFDLGVBQWU7WUFDdEIseUJBQXlCO1lBQ3pCLEVBQUU7WUFDRiwrREFBK0QsRUFDakUsT0FBTyxFQUNQLEVBQUUsT0FBTyxFQUFFLENBQ1osQ0FBQztJQUNKLENBQUM7SUFFRCxlQUFlLENBQUMsR0FBUTtRQUN0QixNQUFNLE9BQU8sR0FBRyxJQUFJLFdBQVcsRUFBRSxDQUFDLEdBQUcsQ0FDbkMsT0FBTyxFQUNQLElBQUksQ0FBQyxXQUFXLENBQUMscUJBQXFCLEVBQUUsQ0FDekMsQ0FBQztRQUNGLE9BQU8sSUFBSSxDQUFDLElBQUk7YUFDYixJQUFJLENBQ0gsSUFBSSxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0I7WUFDdkIsOENBQThDLEVBQ2hELEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxFQUNsQixFQUFFLE9BQU8sRUFBRSxDQUNaO2FBQ0EsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3BCLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxHQUFRO1FBQ3ZCLE1BQU0sT0FBTyxHQUFHLElBQUksV0FBVyxFQUFFLENBQUMsR0FBRyxDQUNuQyxPQUFPLEVBQ1AsSUFBSSxDQUFDLFdBQVcsQ0FBQyxxQkFBcUIsRUFBRSxDQUN6QyxDQUFDO1FBQ0YsT0FBTyxJQUFJLENBQUMsSUFBSTthQUNiLElBQUksQ0FDSCxJQUFJLENBQUMsR0FBRyxDQUFDLGdCQUFnQjtZQUN2QixtREFBbUQsRUFDckQsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLEVBQ2xCLEVBQUUsT0FBTyxFQUFFLENBQ1o7YUFDQSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDcEIsQ0FBQztJQUVELGlCQUFpQixDQUFDLEdBQVE7UUFDeEIsTUFBTSxPQUFPLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQyxHQUFHLENBQ25DLE9BQU8sRUFDUCxJQUFJLENBQUMsV0FBVyxDQUFDLHFCQUFxQixFQUFFLENBQ3pDLENBQUM7UUFDRixPQUFPLElBQUksQ0FBQyxJQUFJO2FBQ2IsSUFBSSxDQUNILElBQUksQ0FBQyxHQUFHLENBQUMsZ0JBQWdCO1lBQ3ZCLDZDQUE2QyxFQUMvQyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsRUFDbEIsRUFBRSxPQUFPLEVBQUUsQ0FDWjthQUNBLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNwQixDQUFDOytHQTFUVSxlQUFlO21IQUFmLGVBQWUsY0FGZCxNQUFNOzs0RkFFUCxlQUFlO2tCQUgzQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBTUksUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBIZWFkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHJldHJ5IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBDb25maWd1cmF0aW9ucyB9IGZyb20gJy4uL2NvbmZpZ3VyYXRpb25zJztcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi9hdXRoLnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgUHJvZ3JhbXNTZXJ2aWNlIHtcbiAgZW52ITogYW55O1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXG4gICAgcHJpdmF0ZSBhdXRoU2VydmljZTogQXV0aFNlcnZpY2UsXG4gICAgQE9wdGlvbmFsKCkgY29uZmlnPzogQ29uZmlndXJhdGlvbnNcbiAgKSB7XG4gICAgaWYgKGNvbmZpZykge1xuICAgICAgdGhpcy5lbnYgPSBjb25maWcuZW52Q29uZmlnO1xuICAgIH1cbiAgfVxuXG4gIGdldFJvbGVzKCkge1xuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoXG4gICAgICAndG9rZW4nLFxuICAgICAgdGhpcy5hdXRoU2VydmljZS5nZXRBdXRob3JpemF0aW9uVG9rZW4oKVxuICAgICk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoXG4gICAgICB0aGlzLmVudj8ub3JnYW5pemF0aW9uR2V0ICtcbiAgICAgICAgJ3JvbGVzL2dldFByb2dyYW1Sb2xlcyZieXBhc3MtYnVzaW5lc3NDeWNsZT10cnVlJyxcbiAgICAgIHsgaGVhZGVycyB9XG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGxvYWRzIHRoZSBnaXZlbiBmaWxlIHRvIHNlcnZlclxuICAgKiBAcGFyYW0gcGF5bG9hZCBwYXlsb2FkIEZpbGUgZGF0YSB0byBiZSB1cGxvYWRlZFxuICAgKiBAcGFyYW0gcGF0aCBwYXRoIFBhdGggb2YgZmlsZSB0byBiZSB1cGxvYWRlZFxuICAgKiBAcmV0dXJucyByZXNwb25zZSBhZnRlciB1cGxvYWRpbmcgYSBmaWxlXG4gICAqL1xuICB1cGxvYWRGaWxlcyhwYXlsb2FkOiBhbnksIHBhdGg6IGFueSkge1xuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoXG4gICAgICAndG9rZW4nLFxuICAgICAgdGhpcy5hdXRoU2VydmljZS5nZXRBdXRob3JpemF0aW9uVG9rZW4oKVxuICAgICk7XG4gICAgY29uc3QgT1JHX1BBVEggPSBgby8ke3BhdGh9YDtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXG4gICAgICB0aGlzLmVudi5maWxlVXBsb2FkRW5kUG9pbnQgKyBPUkdfUEFUSCArICcmbmdzdy1ieXBhc3M9dHJ1ZScsXG4gICAgICBwYXlsb2FkLFxuICAgICAgeyBoZWFkZXJzIH1cbiAgICApO1xuICB9XG5cbiAgZ2V0UmVzcG9uc2liaWxpdHlDZW50ZXJMaXN0KCkge1xuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoXG4gICAgICAndG9rZW4nLFxuICAgICAgdGhpcy5hdXRoU2VydmljZS5nZXRBdXRob3JpemF0aW9uVG9rZW4oKVxuICAgICk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgLmdldDxhbnlbXT4oXG4gICAgICAgIHRoaXMuZW52Py5jb21wbGlhbmNlR2V0ICtcbiAgICAgICAgICAncmVzcG9uc2liaWxpdHlDZW50ZXJUcmVlJmJ5cGFzcy1idXNpbmVzc0N5Y2xlPXRydWUnLFxuICAgICAgICB7XG4gICAgICAgICAgaGVhZGVycyxcbiAgICAgICAgfVxuICAgICAgKVxuICAgICAgLnBpcGUocmV0cnkoMikpO1xuICB9XG5cbiAgZmV0Y2hSb2xlVXNlcnMocm9sZXM6IGFueSwgcGFnZT86IGFueSwgc2VhcmNoS2V5PzogYW55KSB7XG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldChcbiAgICAgICd0b2tlbicsXG4gICAgICB0aGlzLmF1dGhTZXJ2aWNlLmdldEF1dGhvcml6YXRpb25Ub2tlbigpXG4gICAgKTtcbiAgICBsZXQgcXVlcnlTdHJpbmcgPSAnJztcbiAgICBpZiAocGFnZSkge1xuICAgICAgcXVlcnlTdHJpbmcgKz0gYCZwYWdlPSR7cGFnZX1gO1xuICAgIH1cbiAgICBpZiAoc2VhcmNoS2V5KSB7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgIC5wb3N0PGFueVtdPihcbiAgICAgICAgdGhpcy5lbnYub3JnYW5pemF0aW9uUG9zdCArXG4gICAgICAgICAgJ3JvbGVzL2dldFVzZXJEZXRhaWxzJmxpbWl0PTMwJmJ5cGFzcy1idXNpbmVzc0N5Y2xlPXRydWUnICtcbiAgICAgICAgICBxdWVyeVN0cmluZyxcbiAgICAgICAgeyByb2xlX2lkczogcm9sZXMgPz8gW10gfSxcbiAgICAgICAgeyBoZWFkZXJzIH1cbiAgICAgIClcbiAgICAgIC5waXBlKHJldHJ5KDIpKTtcbiAgfVxuXG4gIGZldGNoQWxsUm9sZVVzZXJzKHJvbGVzOiBhbnkpIHtcbiAgICBjb25zdCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCkuc2V0KFxuICAgICAgJ3Rva2VuJyxcbiAgICAgIHRoaXMuYXV0aFNlcnZpY2UuZ2V0QXV0aG9yaXphdGlvblRva2VuKClcbiAgICApO1xuICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgIC5wb3N0PGFueVtdPihcbiAgICAgICAgdGhpcy5lbnY/Lm9yZ2FuaXphdGlvblBvc3QgK1xuICAgICAgICAgICdyb2xlcy9nZXRVc2VyRGV0YWlscyZ0eXBlPWFsbCZieXBhc3MtYnVzaW5lc3NDeWNsZT10cnVlJyxcbiAgICAgICAgeyByb2xlX2lkczogcm9sZXMgPz8gW10gfSxcbiAgICAgICAgeyBoZWFkZXJzIH1cbiAgICAgIClcbiAgICAgIC5waXBlKHJldHJ5KDIpKTtcbiAgfVxuXG4gIGZldGNoQWxsUm9sZUdyb3Vwcyhyb2xlczogYW55KSB7XG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldChcbiAgICAgICd0b2tlbicsXG4gICAgICB0aGlzLmF1dGhTZXJ2aWNlLmdldEF1dGhvcml6YXRpb25Ub2tlbigpXG4gICAgKTtcbiAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAucG9zdDxhbnlbXT4oXG4gICAgICAgIHRoaXMuZW52Lm9yZ2FuaXphdGlvblBvc3QgK1xuICAgICAgICAgICdyb2xlcy9nZXRHcm91cERldGFpbHMmdHlwZT1hbGwmYnlwYXNzLWJ1c2luZXNzQ3ljbGU9dHJ1ZScsXG4gICAgICAgIHsgcm9sZV9pZHM6IHJvbGVzID8/IFtdIH0sXG4gICAgICAgIHsgaGVhZGVycyB9XG4gICAgICApXG4gICAgICAucGlwZShyZXRyeSgyKSk7XG4gIH1cbiAgZmV0Y2hBbGxPcmdVc2VyKCkge1xuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoXG4gICAgICAndG9rZW4nLFxuICAgICAgdGhpcy5hdXRoU2VydmljZS5nZXRBdXRob3JpemF0aW9uVG9rZW4oKVxuICAgICk7XG4gICAgLy9odHRwczovL2RldmFwaS52LWNvbXBseS5jb20vb3JnYW5pemF0aW9uLz9tb2RlPW9yZ2FuaXNhdGlvblVzZXJzTGlzdCZwYWdpbmF0aW9uVHlwZT1zbWFsbCZhZG1pbj0xXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgLmdldDxhbnlbXT4oXG4gICAgICAgIHRoaXMuZW52Py5vcmdhbml6YXRpb25HZXQgK1xuICAgICAgICAgICdvcmdhbmlzYXRpb25Vc2Vyc0xpc3QmcGFnaW5hdGlvblR5cGU9c21hbGwmYnlwYXNzLWJ1c2luZXNzQ3ljbGU9dHJ1ZScsXG4gICAgICAgIHsgaGVhZGVycyB9XG4gICAgICApXG4gICAgICAucGlwZShyZXRyeSgyKSk7XG4gIH1cbiAgZmV0Y2hDb21wbGlhbmNlR3JvdXBzKCkge1xuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoXG4gICAgICAndG9rZW4nLFxuICAgICAgdGhpcy5hdXRoU2VydmljZS5nZXRBdXRob3JpemF0aW9uVG9rZW4oKVxuICAgICk7XG4gICAgLy9odHRwczovL2RldmFwaS52LWNvbXBseS5jb20vb3JnYW5pemF0aW9uLz9tb2RlPWdyb3Vwc0xpc3Qmc3RhdHVzPTEmdHlwZT1jb21wbGlhbmNlXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgLmdldDxhbnlbXT4oXG4gICAgICAgIHRoaXMuZW52Py5vcmdhbml6YXRpb25HZXQgK1xuICAgICAgICAgICdncm91cHNMaXN0JnN0YXR1cz0xJnR5cGU9Y29tcGxpYW5jZSZieXBhc3MtYnVzaW5lc3NDeWNsZT10cnVlJyxcbiAgICAgICAgeyBoZWFkZXJzIH1cbiAgICAgIClcbiAgICAgIC5waXBlKHJldHJ5KDIpKTtcbiAgfVxuXG4gIGdldEJ1c2luZXNzQ3ljbGUoKSB7XG4gICAgY29uc3QgYnVzaW5lc3NDeWNsZSA9IEpTT04ucGFyc2UoXG4gICAgICBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnYnVzaW5lc3NDeWNsZScpID8/ICd7fSdcbiAgICApO1xuICAgIHJldHVybiB7XG4gICAgICBzZWxlY3RlZF9jeWNsZTogYnVzaW5lc3NDeWNsZVxuICAgICAgICA/IGJ1c2luZXNzQ3ljbGU/LnNlbGVjdGVkQ3ljbGU/LnN0YXJ0X2RhdGUgK1xuICAgICAgICAgICctJyArXG4gICAgICAgICAgYnVzaW5lc3NDeWNsZT8uc2VsZWN0ZWRDeWNsZT8uZW5kX2RhdGVcbiAgICAgICAgOiAnJyxcbiAgICAgIHN0YXJ0X2RhdGU6IGJ1c2luZXNzQ3ljbGUgPyBidXNpbmVzc0N5Y2xlPy5zZWxlY3RlZEN5Y2xlPy5zdGFydF9kYXRlIDogJycsXG4gICAgICBlbmRfZGF0ZTogYnVzaW5lc3NDeWNsZSA/IGJ1c2luZXNzQ3ljbGU/LnNlbGVjdGVkQ3ljbGU/LmVuZF9kYXRlIDogJycsXG4gICAgICBzZWxlY3RlZF9jeWNsZV9hcnI6IGJ1c2luZXNzQ3ljbGVcbiAgICAgICAgPyBidXNpbmVzc0N5Y2xlPy5zZWxlY3RlZEN5Y2xlPy5zZWxlY3RlZF9jeWNsZV9hcnJcbiAgICAgICAgOiBbXSxcbiAgICB9O1xuICB9XG5cbiAgc2F2ZVByb2dyYW0ocGF5bG9hZDogYW55KSB7XG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpXG4gICAgICAuc2V0KCd0b2tlbicsIHRoaXMuYXV0aFNlcnZpY2UuZ2V0QXV0aG9yaXphdGlvblRva2VuKCkpXG4gICAgICAuc2V0KCd4LWJ1c2luZXNzLWN5Y2xlJywgSlNPTi5zdHJpbmdpZnkodGhpcy5nZXRCdXNpbmVzc0N5Y2xlKCkpKTtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55W10+KFxuICAgICAgdGhpcy5lbnYucHJvZ3JhbUVuZHBvaW50ICsgJy9jYXRlZ29yeS8/aXNCdXNpbmVzc0N5Y2xlPXRydWUmc2VydmljZVR5cGU9MScsXG4gICAgICBwYXlsb2FkLFxuICAgICAgeyBoZWFkZXJzIH1cbiAgICApO1xuICB9XG5cbiAgYnVpbGRQYXlsb2FkKGZvcm1EYXRhOiBhbnksIGluc3RhbmNlOiBhbnkpIHtcbiAgICBjb25zdCBmb3JtID0gZm9ybURhdGE/LnZhbHVlO1xuICAgIGNvbnN0IG9wdGlvbiA9IGluc3RhbmNlLmFkZGl0aW9uYWxPcHRpb247XG4gICAgY29uc3QgdHlwZSA9IFtcIm90aGVyc1wiLCBcInJlZ3VsYXRpb25zXCIsIFwic3RhbmRhcmRzXCIsIFwiaW50ZXJuYWxfY29udHJvbHNcIl1cbiAgICByZXR1cm4ge1xuICAgICAgXCJuYW1lXCI6IGZvcm0/LnByb2dyYW1fbmFtZS50cmltKCkgPz8gJycsXG4gICAgICBcInR5cGVcIjogdHlwZVtmb3JtPy5wcm9ncmFtX3R5cGVdID8/IFwib3RoZXJzXCIsXG4gICAgICBcImRlc2NyaXB0aW9uXCI6IGZvcm0/LnByb2dyYW1fb2JqZWN0aXZlID8/IFwiXCIsXG4gICAgICBcIm93bmVyc1wiOiB7XG4gICAgICAgIFwiYWRtaW5zXCI6IHsgIC8vIE93bmVyc1xuICAgICAgICAgIFwidXNlcnNcIjogdGhpcy5saXN0VG9JZChmb3JtPy5wcm9ncmFtX293bmVycywgJ3VpZCcpID8/IFtdLFxuICAgICAgICAgIHVzZXJHcm91cHM6IG9wdGlvbj8uUk9MRVNcbiAgICAgICAgICAgID8gdGhpcy5saXN0VG9JZChmb3JtPy5wcm9ncmFtX293bmVyc19ncm91cCwgJ3VnaWQnKSA/PyBbXVxuICAgICAgICAgICAgOiBbXVxuICAgICAgICB9LFxuICAgICAgICBcIm1hbmFnZXJzXCI6IHsgIC8vIENvbGxhYm9yYXRvcnNcbiAgICAgICAgICBcInVzZXJzXCI6IHRoaXMubGlzdFRvSWQoZm9ybT8uY29sbGFib3JhdG9ycywgJ3VpZCcpID8/IFtdLFxuICAgICAgICAgIHVzZXJHcm91cHM6IG9wdGlvbj8uUk9MRVNcbiAgICAgICAgICAgID8gdGhpcy5saXN0VG9JZChmb3JtPy5jb2xsYWJvcmF0b3JzX2dyb3VwLCAndWdpZCcpID8/IFtdXG4gICAgICAgICAgICA6IFtdXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcImN1c3RvbUZpZWxkc1wiOiBvcHRpb24/LkNVU1RPTV9GSUVMRFMgPyBmb3JtPy5jdXN0b21fZmllbGRzID8/IFtdIDogW10sXG4gICAgfVxuICB9XG4gIGdlbmVyYXRlQXNzZXNzbWVudChhc3Nlc3NtZW50OiBhbnkpIHtcbiAgICBpZiAoYXNzZXNzbWVudCAmJiBhc3Nlc3NtZW50Py5sZW5ndGgpIHtcbiAgICAgIHJldHVybiBhc3Nlc3NtZW50Lm1hcCgoY2F0OiBhbnkpID0+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAuLi5jYXQsXG4gICAgICAgICAgYXNzZXNzbWVudElkczogY2F0LmFzc2Vzc21lbnRJZHM/Lm1hcCgoYXNzZXNzOiBhbnkpID0+IGFzc2Vzcy5pZCksXG4gICAgICAgIH07XG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cbiAgfVxuICBnZXRGcmFtZXdvcmsoaW5wdXQ6IGFueSkge1xuICAgIGlmIChpbnB1dCkge1xuICAgICAgcmV0dXJuIFtcbiAgICAgICAge1xuICAgICAgICAgIF9pZDogaW5wdXQ/Ll9pZCxcbiAgICAgICAgICBmcmFtZXdvcmtfbmFtZTogaW5wdXQ/Lm5hbWUsXG4gICAgICAgICAgdHlwZTogaW5wdXQ/LnR5cGUsXG4gICAgICAgICAgaW5fc2NvcGU6IGlucHV0Py5pbl9zY29wZVxuICAgICAgICAgICAgPyB0aGlzLmxpc3RUb0lkKGlucHV0Py5pbl9zY29wZSwgJ19pZCcpXG4gICAgICAgICAgICA6IFtdLFxuICAgICAgICAgIG91dF9zY29wZTogaW5wdXQ/Lm91dF9zY29wZVxuICAgICAgICAgICAgPyB0aGlzLmxpc3RUb0lkKGlucHV0Py5vdXRfc2NvcGUsICdfaWQnKVxuICAgICAgICAgICAgOiBbXSxcbiAgICAgICAgfSxcbiAgICAgIF07XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG4gIH1cblxuICBsaXN0VG9JZChsaXN0OiBhbnksIGtleTogc3RyaW5nKSB7XG4gICAgaWYgKGxpc3QgJiYgbGlzdD8ubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gbGlzdC5tYXAoKGVsZTogYW55KSA9PiBlbGVba2V5XSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICpcbiAgICogQHBhcmFtIGlkIDogcHJvZ3JhbSBvYmplY3QgaWRcbiAgICogQHJldHVybnNcbiAgICovXG4gIGdldFByb2dyYW0oaWQ6IGFueSkge1xuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKVxuICAgICAgLnNldCgndG9rZW4nLCB0aGlzLmF1dGhTZXJ2aWNlLmdldEF1dGhvcml6YXRpb25Ub2tlbigpKVxuICAgICAgLnNldCgneC1idXNpbmVzcy1jeWNsZScsIEpTT04uc3RyaW5naWZ5KHRoaXMuZ2V0QnVzaW5lc3NDeWNsZSgpKSk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8YW55W10+KFxuICAgICAgdGhpcy5lbnY/LnByb2dyYW1FbmRwb2ludCArXG4gICAgICAgICcvJyArXG4gICAgICAgIGlkICtcbiAgICAgICAgJz9pc0J1c2luZXNzQ3ljbGU9dHJ1ZSZieXBhc3MtYnVzaW5lc3NDeWNsZT10cnVlJyxcbiAgICAgIHsgaGVhZGVycyB9XG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKlxuICAgKiBAcGFyYW0gcGF5bG9hZCBwYXlsb2FkIHdoaWNoIG5lZWQgdG8gYmUgdXBkYXRlZFxuICAgKiBAcGFyYW0gaWQgcHJvZ3JhbSBvYmplY3QgaWRcbiAgICogQHJldHVybnNcbiAgICovXG4gIHVwZGF0ZVByb2dyYW0ocGF5bG9hZDogYW55LCBpZDogc3RyaW5nKSB7XG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpXG4gICAgICAuc2V0KCd0b2tlbicsIHRoaXMuYXV0aFNlcnZpY2UuZ2V0QXV0aG9yaXphdGlvblRva2VuKCkpXG4gICAgICAuc2V0KCd4LWJ1c2luZXNzLWN5Y2xlJywgSlNPTi5zdHJpbmdpZnkodGhpcy5nZXRCdXNpbmVzc0N5Y2xlKCkpKTtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55W10+KFxuICAgICAgdGhpcy5lbnYucHJvZ3JhbUVuZHBvaW50ICtcbiAgICAgICAgJy9jYXRlZ29yeS9lZGl0Q2F0ZWdvcnkvJyArXG4gICAgICAgIGlkICtcbiAgICAgICAgJz9pc0J1c2luZXNzQ3ljbGU9dHJ1ZSZieXBhc3MtYnVzaW5lc3NDeWNsZT10cnVlJnNlcnZpY2VUeXBlPTEnLFxuICAgICAgcGF5bG9hZCxcbiAgICAgIHsgaGVhZGVycyB9XG4gICAgKTtcbiAgfVxuXG4gIGdldE1lbWViZXJCeUlkcyhpZHM6IGFueSkge1xuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoXG4gICAgICAndG9rZW4nLFxuICAgICAgdGhpcy5hdXRoU2VydmljZS5nZXRBdXRob3JpemF0aW9uVG9rZW4oKVxuICAgICk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgLnBvc3Q8YW55W10+KFxuICAgICAgICB0aGlzLmVudi5vcmdhbml6YXRpb25Qb3N0ICtcbiAgICAgICAgICAnbWVtYmVyRGV0YWlsc2J5SWRzJmJ5cGFzcy1idXNpbmVzc0N5Y2xlPXRydWUnLFxuICAgICAgICB7IG1lbWJlcl9pZDogaWRzIH0sXG4gICAgICAgIHsgaGVhZGVycyB9XG4gICAgICApXG4gICAgICAucGlwZShyZXRyeSgyKSk7XG4gIH1cblxuICBnZXRNZW1lYmVyQnlVSWRzKGlkczogYW55KSB7XG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldChcbiAgICAgICd0b2tlbicsXG4gICAgICB0aGlzLmF1dGhTZXJ2aWNlLmdldEF1dGhvcml6YXRpb25Ub2tlbigpXG4gICAgKTtcbiAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAucG9zdDxhbnlbXT4oXG4gICAgICAgIHRoaXMuZW52Lm9yZ2FuaXphdGlvblBvc3QgK1xuICAgICAgICAgICdtZW1iZXJEZXRhaWxzYnlJZHNTYWlscyZieXBhc3MtYnVzaW5lc3NDeWNsZT10cnVlJyxcbiAgICAgICAgeyBtZW1iZXJfaWQ6IGlkcyB9LFxuICAgICAgICB7IGhlYWRlcnMgfVxuICAgICAgKVxuICAgICAgLnBpcGUocmV0cnkoMikpO1xuICB9XG5cbiAgZ2V0TWVtYmVyQnlHcm91cHMoaWRzOiBhbnkpIHtcbiAgICBjb25zdCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCkuc2V0KFxuICAgICAgJ3Rva2VuJyxcbiAgICAgIHRoaXMuYXV0aFNlcnZpY2UuZ2V0QXV0aG9yaXphdGlvblRva2VuKClcbiAgICApO1xuICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgIC5wb3N0PGFueVtdPihcbiAgICAgICAgdGhpcy5lbnYub3JnYW5pemF0aW9uUG9zdCArXG4gICAgICAgICAgJ2dyb3VwRGV0YWlsc2J5SWRzJmJ5cGFzcy1idXNpbmVzc0N5Y2xlPXRydWUnLFxuICAgICAgICB7IGdyb3VwX2lkczogaWRzIH0sXG4gICAgICAgIHsgaGVhZGVycyB9XG4gICAgICApXG4gICAgICAucGlwZShyZXRyeSgyKSk7XG4gIH1cbn0iXX0=
@@ -210,14 +210,14 @@ export class ResponsibilityService {
210
210
  }
211
211
  submitEntrust(entrust_body) {
212
212
  const headers = new HttpHeaders().set('token', this.authService.getAuthorizationToken());
213
- return this.http.post(this.env.compliancePost + 'createReport', entrust_body, { headers });
213
+ return this.http.post(this.env.compliancePost + 'createReport&serviceType=1', entrust_body, { headers });
214
214
  }
215
215
  updateEntrust(entrust_body, object_id, isDelegate) {
216
216
  const headers = new HttpHeaders().set('token', this.authService.getAuthorizationToken());
217
217
  return this.http.post(this.env.compliancePost +
218
218
  'createReport&reportId=' +
219
219
  object_id +
220
- '&isDelegate=0', entrust_body, { headers });
220
+ '&isDelegate=0&serviceType=1', entrust_body, { headers });
221
221
  }
222
222
  editResponsibility(objectId) {
223
223
  const headers = new HttpHeaders().set('token', this.authService.getAuthorizationToken());
@@ -412,4 +412,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
412
412
  }], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.AuthService }, { type: i3.Configurations, decorators: [{
413
413
  type: Optional
414
414
  }] }]; } });
415
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzcG9uc2liaWxpdHkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Z4LXdvcmtmbG93LWVuZ2luZS9zcmMvbGliL3dvcmtmbG93LXNlcnZpY2VzL3Jlc3BvbnNpYmlsaXR5LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFjLFdBQVcsRUFBYyxNQUFNLHNCQUFzQixDQUFDO0FBQzNFLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JELE9BQU8sRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBSXhELE9BQU8sRUFBRSxlQUFlLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7OztBQUt2RCxNQUFNLE9BQU8scUJBQXFCO0lBaUJoQyxZQUNVLElBQWdCLEVBQ2hCLFdBQXdCLEVBQ3BCLE1BQXVCO1FBRjNCLFNBQUksR0FBSixJQUFJLENBQVk7UUFDaEIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFqQmxDLGdCQUFXLEdBQUcsRUFBRSxDQUFDO1FBRWpCLGVBQVUsR0FBeUIsSUFBSSxlQUFlLENBQU0sRUFBRSxDQUFDLENBQUM7UUFDekQsV0FBTSxHQUF5QixJQUFJLGVBQWUsQ0FBTSxFQUFFLENBQUMsQ0FBQztRQUM1RCxpQkFBWSxHQUF5QixJQUFJLGVBQWUsQ0FBTSxFQUFFLENBQUMsQ0FBQztRQUNsRSwwQkFBcUIsR0FBeUIsSUFBSSxlQUFlLENBQ3RFLEVBQUUsQ0FDSCxDQUFDO1FBQ0ssY0FBUyxHQUF5QixJQUFJLGVBQWUsQ0FBTSxFQUFFLENBQUMsQ0FBQztRQUMvRCwwQkFBcUIsR0FBeUIsSUFBSSxlQUFlLENBQ3RFLEVBQUUsQ0FDSCxDQUFDO1FBQ00saUJBQVksR0FBeUIsSUFBSSxlQUFlLENBQU0sSUFBSSxDQUFDLENBQUM7UUFDcEUsaUJBQVks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LEtBQUs7WUFDUixDQUFDLEVBQUUsWUFBWTtZQUNmLENBQUMsRUFBRSxhQUFhO1lBQ2hCLENBQUMsRUFBRSxNQUFNO1NBQ1YsQ0FBQztRQUNGLE9BQU8sV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ2hDLENBQUM7K0dBNW1CVSxxQkFBcUI7bUhBQXJCLHFCQUFxQixjQUZwQixNQUFNOzs0RkFFUCxxQkFBcUI7a0JBSGpDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFxQkksUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBIZWFkZXJzLCBIdHRwUGFyYW1zIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGNhdGNoRXJyb3IsIG1hcCwgcmV0cnkgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBDb25maWd1cmF0aW9ucyB9IGZyb20gJy4uL2NvbmZpZ3VyYXRpb25zJztcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi9hdXRoLnNlcnZpY2UnO1xuaW1wb3J0IHsgQXNzZXNzbWVudExpc3QgfSBmcm9tICcuLi9zaGFyZWRDb21wb25lbnRzL2Fzc2Vzc21lbnQtbGlzdC9zZXJ2aWNlL2Fzc2Vzc21lbnQuaW50ZXJmYWNlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFJlc3BvbnNpYmlsaXR5IH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9yZXNwb25zaWJpbHR5LmludGVyZmFjZSc7XG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgUmVzcG9uc2liaWxpdHlTZXJ2aWNlIHtcbiAgZW52ITogYW55O1xuICBkYXRhUGVyUGFnZSA9IDMwO1xuXG4gIGdyY093bmVycyQ6IEJlaGF2aW9yU3ViamVjdDxhbnk+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxhbnk+KFtdKTtcbiAgcHVibGljIFJDTGlzdDogQmVoYXZpb3JTdWJqZWN0PGFueT4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGFueT4oW10pO1xuICBwdWJsaWMgQXNzaWdub3JMaXN0OiBCZWhhdmlvclN1YmplY3Q8YW55PiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8YW55PihbXSk7XG4gIHB1YmxpYyBBc3N1cmFuY2VMaXN0Rm9yQXVkaXQ6IEJlaGF2aW9yU3ViamVjdDxhbnk+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxhbnk+KFxuICAgIFtdXG4gICk7XG4gIHB1YmxpYyBHcm91cExpc3Q6IEJlaGF2aW9yU3ViamVjdDxhbnk+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxhbnk+KFtdKTtcbiAgcHVibGljIEFzc3VyYW5jZUNhdGVnb3J5TGlzdDogQmVoYXZpb3JTdWJqZWN0PGFueT4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGFueT4oXG4gICAgW11cbiAgKTtcbiAgcHJpdmF0ZSBvdmVyc2Vlckxpc3Q6IEJlaGF2aW9yU3ViamVjdDxhbnk+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxhbnk+KG51bGwpO1xuICBwcml2YXRlIHBvbGljeUdyb3VwczogQmVoYXZpb3JTdWJqZWN0PGFueT4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGFueT4obnVsbCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LFxuICAgIHByaXZhdGUgYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlLFxuICAgIEBPcHRpb25hbCgpIGNvbmZpZz86IENvbmZpZ3VyYXRpb25zXG4gICkge1xuICAgIGlmIChjb25maWcpIHtcbiAgICAgIHRoaXMuZW52ID0gY29uZmlnLmVudkNvbmZpZztcbiAgICB9XG4gIH1cblxuICBnZXRSZXNwb25zaWJpbGl0eUNlbnRlckxpc3QocGFyYW1zPzogSHR0cFBhcmFtcykge1xuICAgIGlmICh0aGlzLlJDTGlzdC5nZXRWYWx1ZSgpLmxlbmd0aCkge1xuICAgICAgcmV0dXJuIG9mKHRoaXMuUkNMaXN0LmdldFZhbHVlKCkpO1xuICAgIH1cblxuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoXG4gICAgICAndG9rZW4nLFxuICAgICAgdGhpcy5hdXRoU2VydmljZS5nZXRBdXRob3JpemF0aW9uVG9rZW4oKVxuICAgICk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgLmdldDxhbnlbXT4odGhpcy5lbnY/LmNvbXBsaWFuY2VHZXQgKyAncmVzcG9uc2liaWxpdHlDZW50ZXJUcmVlJywge1xuICAgICAgICBwYXJhbXMsXG4gICAgICAgIGhlYWRlcnMsXG4gICAgICB9KVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgocmVzKSA9PiB7XG4gICAgICAgICAgdGhpcy5SQ0xpc3QubmV4dChyZXMpO1xuICAgICAgICAgIHJldHVybiByZXM7XG4gICAgICAgIH0pXG4gICAgICApXG4gICAgICAucGlwZShyZXRyeSgyKSk7XG4gIH1cblxuICBnZXRPcmdhbml6YXRpb25Hcm91cHMocGFyYW1zPzogSHR0cFBhcmFtcykge1xuICAgIGlmICh0aGlzLkdyb3VwTGlzdC5nZXRWYWx1ZSgpLmxlbmd0aCkge1xuICAgICAgcmV0dXJuIG9mKHRoaXMuR3JvdXBMaXN0LmdldFZhbHVlKCkpO1xuICAgIH1cbiAgICBjb25zdCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCkuc2V0KFxuICAgICAgJ3Rva2VuJyxcbiAgICAgIHRoaXMuYXV0aFNlcnZpY2UuZ2V0QXV0aG9yaXphdGlvblRva2VuKClcbiAgICApO1xuICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgIC5nZXQ8YW55W10+KFxuICAgICAgICB0aGlzLmVudi5vcmdhbml6YXRpb25HZXQgKyAnZ3JvdXBzTGlzdCZzdGF0dXM9MSZ0eXBlPWNvbXBsaWFuY2UnLFxuICAgICAgICB7XG4gICAgICAgICAgcGFyYW1zLFxuICAgICAgICAgIGhlYWRlcnMsXG4gICAgICAgIH1cbiAgICAgIClcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKHJlcykgPT4ge1xuICAgICAgICAgIHRoaXMuR3JvdXBMaXN0Lm5leHQocmVzKTtcbiAgICAgICAgICByZXR1cm4gcmVzO1xuICAgICAgICB9KVxuICAgICAgKVxuICAgICAgLnBpcGUocmV0cnkoMikpO1xuICB9XG5cbiAgZ2V0T3JnYW5pemF0aW9uUG9saWN5R3JvdXBzKHBhcmFtcz86IEh0dHBQYXJhbXMpIHtcbiAgICBpZiAodGhpcy5wb2xpY3lHcm91cHM/LmdldFZhbHVlKCkpIHtcbiAgICAgIHJldHVybiBvZih0aGlzLnBvbGljeUdyb3Vwcz8udmFsdWUpO1xuICAgIH1cbiAgICBjb25zdCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCkuc2V0KFxuICAgICAgJ3Rva2VuJyxcbiAgICAgIHRoaXMuYXV0aFNlcnZpY2UuZ2V0QXV0aG9yaXphdGlvblRva2VuKClcbiAgICApO1xuICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgIC5nZXQ8YW55W10+KFxuICAgICAgICB0aGlzLmVudi5vcmdhbml6YXRpb25HZXQgK1xuICAgICAgICAgICdncm91cHNMaXN0JnBlcm1UeXBlPW1hbmFnZVBvbGljaWVzJmZldGNoX2FsbD10cnVlJyxcbiAgICAgICAge1xuICAgICAgICAgIHBhcmFtcyxcbiAgICAgICAgICBoZWFkZXJzLFxuICAgICAgICB9XG4gICAgICApXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKChyZXMpID0+IHtcbiAgICAgICAgICB0aGlzLnBvbGljeUdyb3Vwcy5uZXh0KHJlcyk7XG4gICAgICAgICAgcmV0dXJuIHJlcztcbiAgICAgICAgfSksXG4gICAgICAgIGNhdGNoRXJyb3IoKGVycm9yKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIG9mKG51bGwpO1xuICAgICAgICB9KVxuICAgICAgKVxuICAgICAgLnBpcGUocmV0cnkoMikpO1xuICB9XG5cbiAgZ2V0T3JnYW5pemF0aW9uT3ZlcnNlZXJzR3JvdXBzKHBhcmFtcz86IEh0dHBQYXJhbXMpIHtcbiAgICBpZiAodGhpcy5vdmVyc2Vlckxpc3Q/LmdldFZhbHVlKCkpIHtcbiAgICAgIHJldHVybiBvZih0aGlzLm92ZXJzZWVyTGlzdD8udmFsdWUpO1xuICAgIH1cbiAgICBjb25zdCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCkuc2V0KFxuICAgICAgJ3Rva2VuJyxcbiAgICAgIHRoaXMuYXV0aFNlcnZpY2UuZ2V0QXV0aG9yaXphdGlvblRva2VuKClcbiAgICApO1xuICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgIC5nZXQ8YW55W10+KHRoaXMuZW52Lm9yZ2FuaXphdGlvbkdldCArICdncm91cHNMaXN0JmZldGNoX2FsbD10cnVlJywge1xuICAgICAgICBwYXJhbXMsXG4gICAgICAgIGhlYWRlcnMsXG4gICAgICB9KVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgocmVzKSA9PiB7XG4gICAgICAgICAgdGhpcy5vdmVyc2Vlckxpc3QubmV4dChyZXMpO1xuICAgICAgICAgIHJldHVybiByZXM7XG4gICAgICAgIH0pLFxuICAgICAgICBjYXRjaEVycm9yKChlcnJvcikgPT4ge1xuICAgICAgICAgIHJldHVybiBvZihudWxsKTtcbiAgICAgICAgfSlcbiAgICAgIClcbiAgICAgIC5waXBlKHJldHJ5KDIpKTtcbiAgfVxuXG4gIGdldE9yZ2FuaXphdGlvblVzZXJzKCkge1xuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoXG4gICAgICAndG9rZW4nLFxuICAgICAgdGhpcy5hdXRoU2VydmljZS5nZXRBdXRob3JpemF0aW9uVG9rZW4oKVxuICAgICk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgLmdldDxhbnlbXT4odGhpcy5lbnYub3JnYW5pemF0aW9uR2V0ICsgJ29yZ2FuaXphdGlvblVzZXJzJywge1xuICAgICAgICBoZWFkZXJzLFxuICAgICAgfSlcbiAgICAgIC5waXBlKHJldHJ5KDIpKTtcbiAgfVxuXG4gIGdldE9yZ2FuaXphdGlvblBlb3BsZShwYXJhbXM/OiBIdHRwUGFyYW1zKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBjb25zdCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCkuc2V0KFxuICAgICAgJ3Rva2VuJyxcbiAgICAgIHRoaXMuYXV0aFNlcnZpY2UuZ2V0QXV0aG9yaXphdGlvblRva2VuKClcbiAgICApO1xuICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgIC5nZXQ8YW55W10+KHRoaXMuZW52Lm9yZ2FuaXphdGlvbkdldCArICdwZW9wbGUnLCB7XG4gICAgICAgIHBhcmFtcyxcbiAgICAgICAgaGVhZGVycyxcbiAgICAgIH0pXG4gICAgICAucGlwZShyZXRyeSgyKSk7XG4gIH1cblxuICBnZXRBc3NpZ25vcnNMaXN0KHBhcmFtcz86IEh0dHBQYXJhbXMpIHtcbiAgICBpZiAodGhpcy5Bc3NpZ25vckxpc3QuZ2V0VmFsdWUoKS5sZW5ndGgpIHtcbiAgICAgIHJldHVybiBvZih0aGlzLkFzc2lnbm9yTGlzdC5nZXRWYWx1ZSgpKTtcbiAgICB9XG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldChcbiAgICAgICd0b2tlbicsXG4gICAgICB0aGlzLmF1dGhTZXJ2aWNlLmdldEF1dGhvcml6YXRpb25Ub2tlbigpXG4gICAgKTtcbiAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAuZ2V0PGFueVtdPihcbiAgICAgICAgdGhpcy5lbnY/Lm9yZ2FuaXphdGlvbkdldCArICdvcmdhbml6YXRpb25Vc2VycyZpc09uQmVoYWxmPTEnLFxuICAgICAgICB7XG4gICAgICAgICAgcGFyYW1zLFxuICAgICAgICAgIGhlYWRlcnMsXG4gICAgICAgIH1cbiAgICAgIClcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKHJlcykgPT4ge1xuICAgICAgICAgIHRoaXMuQXNzaWdub3JMaXN0Lm5leHQocmVzKTtcbiAgICAgICAgICByZXR1cm4gcmVzO1xuICAgICAgICB9KVxuICAgICAgKVxuICAgICAgLnBpcGUocmV0cnkoMikpO1xuICB9XG5cbiAgZ2V0Q2F0ZWdvcmllc0xpc3QoKSB7XG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldChcbiAgICAgICd0b2tlbicsXG4gICAgICB0aGlzLmF1dGhTZXJ2aWNlLmdldEF1dGhvcml6YXRpb25Ub2tlbigpXG4gICAgKTtcbiAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAuZ2V0PGFueVtdPihcbiAgICAgICAgdGhpcy5lbnY/LmNvbXBsaWFuY2VHZXQgKyAnY29tcGxpYW5jZUNhdGVnb3J5L0NhdGVnb3J5TGlzdFRyZWUnLFxuICAgICAgICB7XG4gICAgICAgICAgaGVhZGVycyxcbiAgICAgICAgfVxuICAgICAgKVxuICAgICAgLnBpcGUocmV0cnkoMikpO1xuICB9XG4gIGdldFByb2dyYW1zTGlzdChwYXJhbXM6IEh0dHBQYXJhbXMsIGlkcz86IGFueSkge1xuICAgIGxldCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCkuc2V0KFxuICAgICAgJ3Rva2VuJyxcbiAgICAgIHRoaXMuYXV0aFNlcnZpY2UuZ2V0QXV0aG9yaXphdGlvblRva2VuKClcbiAgICApO1xuICAgIGNvbnN0IHByb2dyYW1JZCA9IHsgcHJvZ3JhbUlkOiBpZHMgfTtcbiAgICBpZiAoaWRzPy5sZW5ndGgpIHtcbiAgICAgIGhlYWRlcnMgPSBoZWFkZXJzLmFwcGVuZCgncGF5bG9hZC1vYmplY3QnLCBKU09OLnN0cmluZ2lmeShwcm9ncmFtSWQpKTtcblxuICAgICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgICAucG9zdDxhbnlbXT4oXG4gICAgICAgICAgdGhpcy5lbnY/LmNvbXBsaWFuY2VQb3N0ICsgJ2NvbXBsaWFuY2VDYXRlZ29yeS9wcm9ncmFtTGlzdCcsXG4gICAgICAgICAgcHJvZ3JhbUlkLFxuICAgICAgICAgIHsgcGFyYW1zLCBoZWFkZXJzIH1cbiAgICAgICAgKVxuICAgICAgICAucGlwZShyZXRyeSgyKSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgLmdldDxhbnlbXT4odGhpcy5lbnYuY29tcGxpYW5jZUdldCArICdjb21wbGlhbmNlQ2F0ZWdvcnkvcHJvZ3JhbUxpc3QnLCB7XG4gICAgICAgIHBhcmFtcyxcbiAgICAgICAgaGVhZGVycyxcbiAgICAgIH0pXG4gICAgICAucGlwZShyZXRyeSgyKSk7XG4gIH1cblxuICBnZXRQcm9ncmFtc0xpc3RDb3VudChwYXJhbXM6IEh0dHBQYXJhbXMsIGlkcz86IGFueSkge1xuICAgIGxldCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCkuc2V0KFxuICAgICAgJ3Rva2VuJyxcbiAgICAgIHRoaXMuYXV0aFNlcnZpY2UuZ2V0QXV0aG9yaXphdGlvblRva2VuKClcbiAgICApO1xuICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgIC5nZXQ8YW55W10+KFxuICAgICAgICB0aGlzLmVudi5jb21wbGlhbmNlR2V0ICsgJ2NvbXBsaWFuY2VDYXRlZ29yeS9wcm9ncmFtTGlzdENvdW50JyxcbiAgICAgICAge1xuICAgICAgICAgIHBhcmFtcyxcbiAgICAgICAgICBoZWFkZXJzLFxuICAgICAgICB9XG4gICAgICApXG4gICAgICAucGlwZShyZXRyeSgyKSk7XG4gIH1cbiAgZ2V0Q2F0ZWdvcmllc1VuZGVyUHJvZ3JhbShwYXJhbXM6IEh0dHBQYXJhbXMpIHtcbiAgICBjb25zdCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCkuc2V0KFxuICAgICAgJ3Rva2VuJyxcbiAgICAgIHRoaXMuYXV0aFNlcnZpY2UuZ2V0QXV0aG9yaXphdGlvblRva2VuKClcbiAgICApO1xuICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgIC5nZXQ8YW55W10+KFxuICAgICAgICB0aGlzLmVudi5jb21wbGlhbmNlR2V0ICsgJ2NvbXBsaWFuY2VDYXRlZ29yeS9DYXRlZ29yeUxpc3RUcmVlJyxcbiAgICAgICAge1xuICAgICAgICAgIHBhcmFtcyxcbiAgICAgICAgICBoZWFkZXJzLFxuICAgICAgICB9XG4gICAgICApXG4gICAgICAucGlwZShyZXRyeSgyKSk7XG4gIH1cbiAgZ2V0QXNzdXJhbmNlKCkge1xuICAgIGlmICh0aGlzLkFzc3VyYW5jZUNhdGVnb3J5TGlzdC5nZXRWYWx1ZSgpLmxlbmd0aCkge1xuICAgICAgcmV0dXJuIG9mKHRoaXMuQXNzdXJhbmNlQ2F0ZWdvcnlMaXN0LmdldFZhbHVlKCkpO1xuICAgIH1cbiAgICBjb25zdCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCkuc2V0KFxuICAgICAgJ3Rva2VuJyxcbiAgICAgIHRoaXMuYXV0aFNlcnZpY2UuZ2V0QXV0aG9yaXphdGlvblRva2VuKClcbiAgICApO1xuICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgIC5nZXQ8YW55W10+KHRoaXMuZW52LmFzc3VyYW5jZUdldCArICdjYXRlZ29yeS9saXN0JmlkPTEnLCB7XG4gICAgICAgIGhlYWRlcnMsXG4gICAgICB9KVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgocmVzKSA9PiB7XG4gICAgICAgICAgdGhpcy5Bc3N1cmFuY2VDYXRlZ29yeUxpc3QubmV4dChyZXMpO1xuICAgICAgICAgIHJldHVybiByZXM7XG4gICAgICAgIH0pXG4gICAgICApXG4gICAgICAucGlwZShyZXRyeSgyKSk7XG4gIH1cblxuICBnZXRBc3N1cmFuY2VGb3JSZXF1aXJlc0F1ZGl0KCkge1xuICAgIGlmICh0aGlzLkFzc3VyYW5jZUxpc3RGb3JBdWRpdC5nZXRWYWx1ZSgpLmxlbmd0aCkge1xuICAgICAgcmV0dXJuIG9mKHRoaXMuQXNzdXJhbmNlTGlzdEZvckF1ZGl0LmdldFZhbHVlKCkpO1xuICAgIH1cbiAgICBjb25zdCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCkuc2V0KFxuICAgICAgJ3Rva2VuJyxcbiAgICAgIHRoaXMuYXV0aFNlcnZpY2UuZ2V0QXV0aG9yaXphdGlvblRva2VuKClcbiAgICApO1xuICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgIC5nZXQ8YW55W10+KFxuICAgICAgICB0aGlzLmVudi5hc3N1cmFuY2VBcGkgKyAnQXVkaXQvQ2F0ZWdvcnkvTGlzdC8/bW9kZT1lbnRydXN0X21vZHVsZScsXG4gICAgICAgIHtcbiAgICAgICAgICBoZWFkZXJzLFxuICAgICAgICB9XG4gICAgICApXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKChyZXMpID0+IHtcbiAgICAgICAgICB0aGlzLkFzc3VyYW5jZUxpc3RGb3JBdWRpdC5uZXh0KHJlcyk7XG4gICAgICAgICAgcmV0dXJuIHJlcztcbiAgICAgICAgfSlcbiAgICAgIClcbiAgICAgIC5waXBlKHJldHJ5KDIpKTtcbiAgfVxuXG4gIGdldFJDRGV0YWlsc09mRnJhbWV3b3JrKHJjX2lkOiBhbnksIGNhdGVnb3J5X2lkOiBhbnkpIHtcbiAgICBjb25zdCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCkuc2V0KFxuICAgICAgJ3Rva2VuJyxcbiAgICAgIHRoaXMuYXV0aFNlcnZpY2UuZ2V0QXV0aG9yaXphdGlvblRva2VuKClcbiAgICApO1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KFxuICAgICAgdGhpcy5lbnYuY29tcGxpYW5jZUdldCArXG4gICAgICAgICdjb21wbGlhbmNlQ2F0ZWdvcnkvQ2F0ZWdvcnlSQ1RyZWVCeUlkJmlkPScgK1xuICAgICAgICBjYXRlZ29yeV9pZCArXG4gICAgICAgICcmcmNfaWQ9JyArXG4gICAgICAgIHJjX2lkLFxuICAgICAgeyBoZWFkZXJzIH1cbiAgICApO1xuICB9XG5cbiAgc3VibWl0RW50cnVzdChlbnRydXN0X2JvZHk6IGFueSkge1xuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoXG4gICAgICAndG9rZW4nLFxuICAgICAgdGhpcy5hdXRoU2VydmljZS5nZXRBdXRob3JpemF0aW9uVG9rZW4oKVxuICAgICk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxuICAgICAgdGhpcy5lbnYuY29tcGxpYW5jZVBvc3QgKyAnY3JlYXRlUmVwb3J0JyxcbiAgICAgIGVudHJ1c3RfYm9keSxcbiAgICAgIHsgaGVhZGVycyB9XG4gICAgKTtcbiAgfVxuICB1cGRhdGVFbnRydXN0KGVudHJ1c3RfYm9keTogYW55LCBvYmplY3RfaWQ6IGFueSwgaXNEZWxlZ2F0ZTogYW55KSB7XG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldChcbiAgICAgICd0b2tlbicsXG4gICAgICB0aGlzLmF1dGhTZXJ2aWNlLmdldEF1dGhvcml6YXRpb25Ub2tlbigpXG4gICAgKTtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXG4gICAgICB0aGlzLmVudi5jb21wbGlhbmNlUG9zdCArXG4gICAgICAgICdjcmVhdGVSZXBvcnQmcmVwb3J0SWQ9JyArXG4gICAgICAgIG9iamVjdF9pZCArXG4gICAgICAgICcmaXNEZWxlZ2F0ZT0wJyxcbiAgICAgIGVudHJ1c3RfYm9keSxcbiAgICAgIHsgaGVhZGVycyB9XG4gICAgKTtcbiAgfVxuXG4gIGVkaXRSZXNwb25zaWJpbGl0eShvYmplY3RJZDogYW55KSB7XG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldChcbiAgICAgICd0b2tlbicsXG4gICAgICB0aGlzLmF1dGhTZXJ2aWNlLmdldEF1dGhvcml6YXRpb25Ub2tlbigpXG4gICAgKTtcbiAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAuZ2V0KFxuICAgICAgICB0aGlzLmVudi5jb21wbGlhbmNlR2V0ICsgJ2NvbXBsaWFuY2VSZXBvcnQvcmVwb3J0QnlJZCZpZD0nICsgb2JqZWN0SWQsXG4gICAgICAgIHsgaGVhZGVycyB9XG4gICAgICApXG4gICAgICAucGlwZShyZXRyeSgyKSk7XG4gIH1cblxuICBhZGRCdWxrUmVzcG9uc2liaWxpdHkoZW50cnVzdF9ib2R5OiBhbnkpIHtcbiAgICBjb25zdCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCkuc2V0KFxuICAgICAgJ3Rva2VuJyxcbiAgICAgIHRoaXMuYXV0aFNlcnZpY2UuZ2V0QXV0aG9yaXphdGlvblRva2VuKClcbiAgICApO1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcbiAgICAgIHRoaXMuZW52LmNvbXBsaWFuY2VQb3N0ICsgJ2ltcG9ydC9jcmVhdGUnLFxuICAgICAgZW50cnVzdF9ib2R5LFxuICAgICAgeyBoZWFkZXJzIH1cbiAgICApO1xuICB9XG5cbiAgdXBsb2FkVG9Ob2RlKHBheWxvYWQ6IGFueSwgZGVzOiBhbnkpIHtcbiAgICBjb25zdCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCkuc2V0KFxuICAgICAgJ3Rva2VuJyxcbiAgICAgIHRoaXMuYXV0aFNlcnZpY2UuZ2V0QXV0aG9yaXphdGlvblRva2VuKClcbiAgICApO1xuICAgIC8vIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnlbXT4odGhpcy5lbnYuZmlsZVVwbG9hZEVuZFBvaW50ICsgJ3Jpc2svcmVzcG9uc2liaWxpdHlDZW50ZXJMaXN0JywgeyByY19pZF9hcnI6IHJjQXJyYXkgPz8gW10gfSwgeyBoZWFkZXJzIH0pLnBpcGUocmV0cnkoMikpO1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KHRoaXMuZW52LmZpbGVVcGxvYWRFbmRQb2ludCArIGRlcywgcGF5bG9hZCwge1xuICAgICAgaGVhZGVycyxcbiAgICB9KTtcbiAgfVxuXG4gIGZpbGVzVXBsb2FkaW5nOiBhbnlbXSA9IFtdO1xuICBmaWxlc1VwbG9hZGVkOiBhbnlbXSA9IFtdO1xuICBmaWxlc1VwbG9hZGVkQW5kVXBsb2FkaW5nOiBhbnlbXSA9IFtdO1xuXG4gIGdldENhdGVnb3J5RGV0YWlsc0J5SWQoaWQ6IGFueSkge1xuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoXG4gICAgICAndG9rZW4nLFxuICAgICAgdGhpcy5hdXRoU2VydmljZS5nZXRBdXRob3JpemF0aW9uVG9rZW4oKVxuICAgICk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgLmdldDxhbnlbXT4oXG4gICAgICAgIHRoaXMuZW52LmNvbXBsaWFuY2VHZXQgKyAnY29tcGxpYW5jZUNhdGVnb3J5L0NhdGVnb3J5VHJlZUJ5SWQmaWQ9JyArIGlkLFxuICAgICAgICB7IGhlYWRlcnMgfVxuICAgICAgKVxuICAgICAgLnBpcGUocmV0cnkoMikpO1xuICB9XG5cbiAgZ2V0RnJhbWVXb3JrQ291bnQocGFyYW1zPzogSHR0cFBhcmFtcykge1xuICAgIGxldCBodHRwT3B0aW9uczogYW55ID0ge307XG4gICAgaHR0cE9wdGlvbnMuaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldChcbiAgICAgICd0b2tlbicsXG4gICAgICB0aGlzLmF1dGhTZXJ2aWNlLmdldEF1dGhvcml6YXRpb25Ub2tlbigpXG4gICAgKTtcbiAgICBpZiAocGFyYW1zKSB7XG4gICAgICBodHRwT3B0aW9ucy5wYXJhbXMgPSBwYXJhbXM7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgIC5nZXQ8YW55W10+KHRoaXMuZW52LnByb2dyYW1FbmRwb2ludCArICcvZnJhbWV3b3JrY291bnQnLCBodHRwT3B0aW9ucylcbiAgICAgIC5waXBlKHJldHJ5KDIpKTtcbiAgfVxuXG4gIGdldEZyYW1lV29ya0xpc3QocGFyYW1zOiBIdHRwUGFyYW1zKSB7XG4gICAgbGV0IGh0dHBPcHRpb25zOiBhbnkgPSB7fTtcbiAgICBodHRwT3B0aW9ucy5oZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCkuc2V0KFxuICAgICAgJ3Rva2VuJyxcbiAgICAgIHRoaXMuYXV0aFNlcnZpY2UuZ2V0QXV0aG9yaXphdGlvblRva2VuKClcbiAgICApO1xuICAgIGlmIChwYXJhbXMpIHtcbiAgICAgIGh0dHBPcHRpb25zLnBhcmFtcyA9IHBhcmFtcztcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgLmdldDxhbnlbXT4odGhpcy5lbnYucHJvZ3JhbUVuZHBvaW50ICsgJy9mcmFtZXdvcmsnLCBodHRwT3B0aW9ucylcbiAgICAgIC5waXBlKHJldHJ5KDIpKTtcbiAgfVxuICBnZXRGcmFtZXdvcmtTdWJDYXRlZ29yaWVzKGlkOiBhbnksIHBhcmFtczogSHR0cFBhcmFtcykge1xuICAgIGxldCBodHRwT3B0aW9uczogYW55ID0ge307XG4gICAgaHR0cE9wdGlvbnMuaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldChcbiAgICAgICd0b2tlbicsXG4gICAgICB0aGlzLmF1dGhTZXJ2aWNlLmdldEF1dGhvcml6YXRpb25Ub2tlbigpXG4gICAgKTtcbiAgICBpZiAocGFyYW1zKSB7XG4gICAgICBodHRwT3B0aW9ucy5wYXJhbXMgPSBwYXJhbXM7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgIC5nZXQ8YW55W10+KHRoaXMuZW52LnByb2dyYW1FbmRwb2ludCArICcvZnJhbWV3b3JrLycgKyBpZCwgaHR0cE9wdGlvbnMpXG4gICAgICAucGlwZShyZXRyeSgyKSk7XG4gIH1cblxuICBnZXRGcmFtZXdvcmtDb250cm9scyhpZDogYW55LCBwYXJhbXM6IEh0dHBQYXJhbXMpIHtcbiAgICBsZXQgaHR0cE9wdGlvbnM6IGFueSA9IHt9O1xuICAgIGh0dHBPcHRpb25zLmhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoXG4gICAgICAndG9rZW4nLFxuICAgICAgdGhpcy5hdXRoU2VydmljZS5nZXRBdXRob3JpemF0aW9uVG9rZW4oKVxuICAgICk7XG4gICAgaWYgKHBhcmFtcykge1xuICAgICAgaHR0cE9wdGlvbnMucGFyYW1zID0gcGFyYW1zO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAuZ2V0PGFueVtdPih0aGlzLmVudi5wcm9ncmFtRW5kcG9pbnQgKyAnL2NvbnRyb2xzLycgKyBpZCwgaHR0cE9wdGlvbnMpXG4gICAgICAucGlwZShyZXRyeSgyKSk7XG4gIH1cblxuICBmaWxlVXBsb2FkKGZpbGU6IGFueSkge1xuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoXG4gICAgICAndG9rZW4nLFxuICAgICAgdGhpcy5hdXRoU2VydmljZS5nZXRBdXRob3JpemF0aW9uVG9rZW4oKVxuICAgICk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KHRoaXMuZW52LmNvbXBsaWFuY2VQb3N0ICsgJ2ZpbGUvdXBsb2FkJywgZmlsZSwge1xuICAgICAgaGVhZGVycyxcbiAgICB9KTtcbiAgfVxuXG4gIGdldEFzc2Vzc21lbnRDYXRlZ29yeShwYXlsb2FkOiBhbnksIHByb2dyYW1faWRzPzogc3RyaW5nKSB7XG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldChcbiAgICAgICd0b2tlbicsXG4gICAgICB0aGlzLmF1dGhTZXJ2aWNlLmdldEF1dGhvcml6YXRpb25Ub2tlbigpXG4gICAgKTtcbiAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAucG9zdChcbiAgICAgICAgdGhpcy5lbnYuYXNzZXNzbWVudEVucG9pbnQgK1xuICAgICAgICAgICdjYXRlZ29yeS9saXN0JmlzQ3JlYXRlUmVzcG9uc2liaWxpdHk9dHJ1ZScgK1xuICAgICAgICAgIChwcm9ncmFtX2lkcyA/ICcmcHJvZ3JhbV9pZHM9JyArIHByb2dyYW1faWRzIDogJycpLFxuICAgICAgICBwYXlsb2FkLFxuICAgICAgICB7IGhlYWRlcnMgfVxuICAgICAgKVxuICAgICAgLnBpcGUocmV0cnkoMikpO1xuICB9XG5cbiAgZ2V0QXNzZXNzbWVudExpc3QocGF5bG9hZDogYW55LCBpZDogc3RyaW5nLCBwcm9ncmFtX2lkcz86IHN0cmluZykge1xuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoXG4gICAgICAndG9rZW4nLFxuICAgICAgdGhpcy5hdXRoU2VydmljZS5nZXRBdXRob3JpemF0aW9uVG9rZW4oKVxuICAgICk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgLnBvc3Q8QXJyYXk8QXNzZXNzbWVudExpc3Q+PihcbiAgICAgICAgdGhpcy5lbnYuYXNzZXNzbWVudEVucG9pbnQgK1xuICAgICAgICAgICdhc3Nlc3NtZW50L3NlbGVjdEFzc2Vzc21lbnQmaXNDcmVhdGVSZXNwb25zaWJpbGl0eT10cnVlJmNhdGlkPScgK1xuICAgICAgICAgIGlkICtcbiAgICAgICAgICAocHJvZ3JhbV9pZHMgPyAnJnByb2dyYW1faWRzPScgKyBwcm9ncmFtX2lkcyA6ICcnKSxcbiAgICAgICAgcGF5bG9hZCxcbiAgICAgICAgeyBoZWFkZXJzIH1cbiAgICAgIClcbiAgICAgIC5waXBlKHJldHJ5KDIpKTtcbiAgfVxuXG4gIGdldEFzc2Vzc21lbnREZXRhaWxzQnlJRChpZDogc3RyaW5nKSB7XG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldChcbiAgICAgICd0b2tlbicsXG4gICAgICB0aGlzLmF1dGhTZXJ2aWNlLmdldEF1dGhvcml6YXRpb25Ub2tlbigpXG4gICAgKTtcbiAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAucG9zdDxBcnJheTxBc3Nlc3NtZW50TGlzdD4+KFxuICAgICAgICB0aGlzLmVudi5hc3Nlc3NtZW50RW5wb2ludCArICdhc3Nlc3NtZW50L2dldEFzc2Vzc21lbnRCeUlkJmlkPScgKyBpZCxcbiAgICAgICAge30sXG4gICAgICAgIHsgaGVhZGVycyB9XG4gICAgICApXG4gICAgICAucGlwZShyZXRyeSgyKSk7XG4gIH1cblxuICBnZXRHUkNPd25lckxpc3QoKSB7XG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldChcbiAgICAgICd0b2tlbicsXG4gICAgICB0aGlzLmF1dGhTZXJ2aWNlLmdldEF1dGhvcml6YXRpb25Ub2tlbigpXG4gICAgKTtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxhbnlbXT4oXG4gICAgICB0aGlzLmVudi5vcmdhbml6YXRpb25HZXQgK1xuICAgICAgICAnb3JnYW5pemF0aW9uTWVtYmVycyZpc0dyY09iamVjdD10cnVlJnR5cGU9YWxsJyxcbiAgICAgIHsgaGVhZGVycyB9XG4gICAgKTtcbiAgfVxuXG4gIGdldE9iamVjdFR5cGUoKSB7XG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldChcbiAgICAgICd0b2tlbicsXG4gICAgICB0aGlzLmF1dGhTZXJ2aWNlLmdldEF1dGhvcml6YXRpb25Ub2tlbigpXG4gICAgKTtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxhbnlbXT4oXG4gICAgICB0aGlzLmVudi5ncmNfZ2V0ICsgJ2dyY09iamVjdC9nZXRHUkNUeXBlTGlzdCZwcm9qZWN0ZWQ9MScsXG4gICAgICB7XG4gICAgICAgIGhlYWRlcnMsXG4gICAgICB9XG4gICAgKTtcbiAgfVxuXG4gIGdldEdSQ09iamVjdERldGFpbHMoaWQ6IHN0cmluZykge1xuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoXG4gICAgICAndG9rZW4nLFxuICAgICAgdGhpcy5hdXRoU2VydmljZS5nZXRBdXRob3JpemF0aW9uVG9rZW4oKVxuICAgICk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8YW55W10+KFxuICAgICAgdGhpcy5lbnYuZ3JjX2dldCArICdncmMvZ3JjQnlJZCZpc0VkaXQ9dHJ1ZSZpZD0nICsgaWQsXG4gICAgICB7XG4gICAgICAgIGhlYWRlcnMsXG4gICAgICB9XG4gICAgKTtcbiAgfVxuXG4gIGFkZEdSQ09iamVjdChwYXlsb2FkOiBhbnkpIHtcbiAgICBjb25zdCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCkuc2V0KFxuICAgICAgJ3Rva2VuJyxcbiAgICAgIHRoaXMuYXV0aFNlcnZpY2UuZ2V0QXV0aG9yaXphdGlvblRva2VuKClcbiAgICApO1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnlbXT4odGhpcy5lbnYuZ3JjX2dldCArICdncmMvc2F2ZUdSQycsIHBheWxvYWQsIHtcbiAgICAgIGhlYWRlcnMsXG4gICAgfSk7XG4gIH1cblxuICB1cGRhdGVHUkNPYmplY3QocGF5bG9hZDogYW55LCBfaWQ6IHN0cmluZykge1xuICAgIHBheWxvYWQuX2lkID0gX2lkO1xuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoXG4gICAgICAndG9rZW4nLFxuICAgICAgdGhpcy5hdXRoU2VydmljZS5nZXRBdXRob3JpemF0aW9uVG9rZW4oKVxuICAgICk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQ8YW55W10+KHRoaXMuZW52LmdyY19nZXQgKyAnZ3JjL3VwZGF0ZUdSQycsIHBheWxvYWQsIHtcbiAgICAgIGhlYWRlcnMsXG4gICAgfSk7XG4gIH1cblxuICBidWlsZFJlc3BvbnNpYmlsaXR5UGF5bG9hZChldmVudDogYW55KTogUmVzcG9uc2liaWxpdHkgfCBudWxsIHtcbiAgICBjb25zb2xlLmxvZygnZXZlbnQnLCBldmVudCk7XG4gICAgY29uc3QgcGF5bG9hZDogUmVzcG9uc2liaWxpdHkgPSB7XG4gICAgICB0aXRsZTogZXZlbnQucmVwb3J0X25hbWUsXG4gICAgICBrZXk6IGV2ZW50LmlzX2tleV9jb21wbGlhbmNlLFxuICAgICAgcmlza0NsYXNzOiB0aGlzLmdldFJpc2tDbGFzcyhldmVudC5yaXNrX2NsYXNzKSxcbiAgICAgIG5vdGVzOiBldmVudC5yZW1hcmtzLFxuICAgICAgb2JqZWN0aXZlOiBldmVudC5vYmplY3RpdmUsXG4gICAgICBmcmVxdWVuY3k6IGV2ZW50LmZyZXF1ZW5jeSxcbiAgICAgIGFzc2lnbm9ySWQ6IGV2ZW50Lm1lbWJlcl9pZCxcbiAgICAgIGFzc2lnbmVlOiB7XG4gICAgICAgIHR5cGU6ICBldmVudC5pc0dyb3VwQXNzaWduVG8gPyAnYW55X29uZScgOiAnYWxsJyxcbiAgICAgICAgdXNlcklkOiBldmVudC5hc3NpZ25lZV9tZW1iZXJfaWQ/LnNwbGl0KCcsJyksXG4gICAgICAgIHVzZXJHcm91cElkOiBldmVudC5pc0dyb3VwQXNzaWduVG8gP2V2ZW50LnVzZXJHcm91cElkcz8uYXNzaWduZWVBbnlvbmVHcm91cElkcyA6ICBldmVudC51c2VyR3JvdXBJZHM/LmFzc2lnbmVlQWxsR3JvdXBJZHNzXG4gICAgICB9LFxuICAgICAgcmVzcG9uc2liaWxpdHlDZW50ZXI6IHtcbiAgICAgICAgdHlwZTogIGV2ZW50LnJlc3BvbnNpYmlsaXR5Q2VudGVyVHlwZSA/ICdhbnknIDogJ2FsbCcsXG4gICAgICAgIGlkOiBldmVudC5yZXNwb25zaWJpbGl0eUNlbnRlckFyclxuICAgICAgfSxcbiAgICAgIHJldmlld2VyOiB7XG4gICAgICAgIHR5cGU6IGV2ZW50LnJldmlld2VyX2Fycj8ubGV2ZWwxPy50eXBlPy50b0xvd2VyQ2FzZSgpLFxuICAgICAgICB1c2VySWQ6IGV2ZW50LnJldmlld2VyX2Fycj8ubGV2ZWwxPy5yZXZpZXdlcnM/Lm1hcCgocmV2aWV3ZXI6IGFueSkgPT4gcmV2aWV3ZXI/Lm1lbWJlcl9pZCksXG4gICAgICAgIGZyZXF1ZW5jeToge1xuICAgICAgICAgIGR1ZURheXM6IGV2ZW50Py5yZXZpZXdfYWZ0ZXJfZGF5cyxcbiAgICAgICAgICBleHRlbnNpb25EYXlzOiBldmVudD8ucmV2aWV3X2ZhaWxlZF9hZnRlcl9kYXlzXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBvdmVyc2Vlcjoge1xuICAgICAgICBzdWNjZXNzOiB7XG4gICAgICAgICAgdXNlcklkOiBldmVudC5jY19tZW1iZXJfZW1haWw/LnNwbGl0KCcsJyk/LmZpbHRlcihCb29sZWFuKSxcbiAgICAgICAgICB1c2VyR3JvdXBJZDogZXZlbnQudXNlckdyb3VwSWRzPy5jY0VtYWlsR3JvdXBJZHNcbiAgICAgICAgfSxcbiAgICAgICAgZmFpbDoge1xuICAgICAgICAgIHVzZXJJZDogZXZlbnQuZmFpbHVyZV9jY19tZW1iZXJfZW1haWw/LnNwbGl0KCcsJyk/LmZpbHRlcihCb29sZWFuKSxcbiAgICAgICAgICB1c2VyR3JvdXBJZDogZXZlbnQudXNlckdyb3VwSWRzPy5mYWlsdXJlQ0NFbWFpbEdyb3VwSWRzXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBldmlkZW5jZToge1xuICAgICAgICByZXF1aXJlZDogZXZlbnQucmVwb3J0X3VwbG9hZF9mbGFnLFxuICAgICAgICBmb3JtYXQ6IHtcbiAgICAgICAgICB0eXBlOiBldmVudC5yZXBvcnRfZm9ybWF0Py5sZW5ndGggPyAnZmlsZScgOiAoZXZlbnQubGlua19mb3JfZGV0YWlscz8ubGVuZ3RoID8gJ2xpbmsnIDogJycpLFxuICAgICAgICAgIGRhdGE6IGV2ZW50Py5yZXBvcnRfZm9ybWF0Py5sZW5ndGggPyBldmVudC5yZXBvcnRfZm9ybWF0IDogZXZlbnQ/LmxpbmtfZm9yX2RldGFpbHNcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHRhZ3M6IEpTT04ucGFyc2UoZXZlbnQuY3VzdG9tX3RhZ3MpLFxuICAgICAgcHJvZ3JhbTogZXZlbnQuc2VsZWN0ZWRDYXRlZ29yeT8ubWFwKChpdGVtOiBhbnkpID0+IGl0ZW0uaWQpLFxuICAgICAgZ3JjT2JqZWN0SWQ6IGV2ZW50LmxpbmtlZF9HUkNfaWRzLFxuICAgICAgYXNzZXNzbWVudElkOiBldmVudC5hc3Nlc3NtZW50Py5hc3Nlc3NtZW50X2lkLFxuICAgICAgXG4gICAgfVxuICAgIHJldHVybiBwYXlsb2FkO1xuICB9XG5cbiAgZ2V0Umlza0NsYXNzKHJpc2tDbGFzczogMCB8IDEgfCAyIHwgMyk6ICdsb3cnIHwgJ2xvdy1tZWRpdW0nIHwgJ21lZGl1bS1oaWdoJyB8ICdoaWdoJyAge1xuICAgIGNvbnN0IHJpc2tDbGFzc2VzOiBSZWNvcmQ8bnVtYmVyLCAnbG93JyB8ICdsb3ctbWVkaXVtJyB8ICdtZWRpdW0taGlnaCcgfCAnaGlnaCc+ID0ge1xuICAgICAgMDogJ2xvdycsXG4gICAgICAxOiAnbG93LW1lZGl1bScsXG4gICAgICAyOiAnbWVkaXVtLWhpZ2gnLFxuICAgICAgMzogJ2hpZ2gnXG4gICAgfTtcbiAgICByZXR1cm4gcmlza0NsYXNzZXNbcmlza0NsYXNzXTtcbiAgfVxufVxuIl19
415
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzcG9uc2liaWxpdHkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Z4LXdvcmtmbG93LWVuZ2luZS9zcmMvbGliL3dvcmtmbG93LXNlcnZpY2VzL3Jlc3BvbnNpYmlsaXR5LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFjLFdBQVcsRUFBYyxNQUFNLHNCQUFzQixDQUFDO0FBQzNFLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JELE9BQU8sRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBSXhELE9BQU8sRUFBRSxlQUFlLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7OztBQUt2RCxNQUFNLE9BQU8scUJBQXFCO0lBaUJoQyxZQUNVLElBQWdCLEVBQ2hCLFdBQXdCLEVBQ3BCLE1BQXVCO1FBRjNCLFNBQUksR0FBSixJQUFJLENBQVk7UUFDaEIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFqQmxDLGdCQUFXLEdBQUcsRUFBRSxDQUFDO1FBRWpCLGVBQVUsR0FBeUIsSUFBSSxlQUFlLENBQU0sRUFBRSxDQUFDLENBQUM7UUFDekQsV0FBTSxHQUF5QixJQUFJLGVBQWUsQ0FBTSxFQUFFLENBQUMsQ0FBQztRQUM1RCxpQkFBWSxHQUF5QixJQUFJLGVBQWUsQ0FBTSxFQUFFLENBQUMsQ0FBQztRQUNsRSwwQkFBcUIsR0FBeUIsSUFBSSxlQUFlLENBQ3RFLEVBQUUsQ0FDSCxDQUFDO1FBQ0ssY0FBUyxHQUF5QixJQUFJLGVBQWUsQ0FBTSxFQUFFLENBQUMsQ0FBQztRQUMvRCwwQkFBcUIsR0FBeUIsSUFBSSxlQUFlLENBQ3RFLEVBQUUsQ0FDSCxDQUFDO1FBQ00saUJBQVksR0FBeUIsSUFBSSxlQUFlLENBQU0sSUFBSSxDQUFDLENBQUM7UUFDcEUsaUJBQVks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RUFBRSxLQUFLO1lBQ1IsQ0FBQyxFQUFFLFlBQVk7WUFDZixDQUFDLEVBQUUsYUFBYTtZQUNoQixDQUFDLEVBQUUsTUFBTTtTQUNWLENBQUM7UUFDRixPQUFPLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNoQyxDQUFDOytHQTVtQlUscUJBQXFCO21IQUFyQixxQkFBcUIsY0FGcEIsTUFBTTs7NEZBRVAscUJBQXFCO2tCQUhqQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBcUJJLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwSGVhZGVycywgSHR0cFBhcmFtcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEluamVjdGFibGUsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCBtYXAsIHJldHJ5IH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQ29uZmlndXJhdGlvbnMgfSBmcm9tICcuLi9jb25maWd1cmF0aW9ucyc7XG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4vYXV0aC5zZXJ2aWNlJztcbmltcG9ydCB7IEFzc2Vzc21lbnRMaXN0IH0gZnJvbSAnLi4vc2hhcmVkQ29tcG9uZW50cy9hc3Nlc3NtZW50LWxpc3Qvc2VydmljZS9hc3Nlc3NtZW50LmludGVyZmFjZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBSZXNwb25zaWJpbGl0eSB9IGZyb20gJy4uL2ludGVyZmFjZXMvcmVzcG9uc2liaWx0eS5pbnRlcmZhY2UnO1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFJlc3BvbnNpYmlsaXR5U2VydmljZSB7XG4gIGVudiE6IGFueTtcbiAgZGF0YVBlclBhZ2UgPSAzMDtcblxuICBncmNPd25lcnMkOiBCZWhhdmlvclN1YmplY3Q8YW55PiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8YW55PihbXSk7XG4gIHB1YmxpYyBSQ0xpc3Q6IEJlaGF2aW9yU3ViamVjdDxhbnk+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxhbnk+KFtdKTtcbiAgcHVibGljIEFzc2lnbm9yTGlzdDogQmVoYXZpb3JTdWJqZWN0PGFueT4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGFueT4oW10pO1xuICBwdWJsaWMgQXNzdXJhbmNlTGlzdEZvckF1ZGl0OiBCZWhhdmlvclN1YmplY3Q8YW55PiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8YW55PihcbiAgICBbXVxuICApO1xuICBwdWJsaWMgR3JvdXBMaXN0OiBCZWhhdmlvclN1YmplY3Q8YW55PiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8YW55PihbXSk7XG4gIHB1YmxpYyBBc3N1cmFuY2VDYXRlZ29yeUxpc3Q6IEJlaGF2aW9yU3ViamVjdDxhbnk+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxhbnk+KFxuICAgIFtdXG4gICk7XG4gIHByaXZhdGUgb3ZlcnNlZXJMaXN0OiBCZWhhdmlvclN1YmplY3Q8YW55PiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8YW55PihudWxsKTtcbiAgcHJpdmF0ZSBwb2xpY3lHcm91cHM6IEJlaGF2aW9yU3ViamVjdDxhbnk+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxhbnk+KG51bGwpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcbiAgICBwcml2YXRlIGF1dGhTZXJ2aWNlOiBBdXRoU2VydmljZSxcbiAgICBAT3B0aW9uYWwoKSBjb25maWc/OiBDb25maWd1cmF0aW9uc1xuICApIHtcbiAgICBpZiAoY29uZmlnKSB7XG4gICAgICB0aGlzLmVudiA9IGNvbmZpZy5lbnZDb25maWc7XG4gICAgfVxuICB9XG5cbiAgZ2V0UmVzcG9uc2liaWxpdHlDZW50ZXJMaXN0KHBhcmFtcz86IEh0dHBQYXJhbXMpIHtcbiAgICBpZiAodGhpcy5SQ0xpc3QuZ2V0VmFsdWUoKS5sZW5ndGgpIHtcbiAgICAgIHJldHVybiBvZih0aGlzLlJDTGlzdC5nZXRWYWx1ZSgpKTtcbiAgICB9XG5cbiAgICBjb25zdCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCkuc2V0KFxuICAgICAgJ3Rva2VuJyxcbiAgICAgIHRoaXMuYXV0aFNlcnZpY2UuZ2V0QXV0aG9yaXphdGlvblRva2VuKClcbiAgICApO1xuICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgIC5nZXQ8YW55W10+KHRoaXMuZW52Py5jb21wbGlhbmNlR2V0ICsgJ3Jlc3BvbnNpYmlsaXR5Q2VudGVyVHJlZScsIHtcbiAgICAgICAgcGFyYW1zLFxuICAgICAgICBoZWFkZXJzLFxuICAgICAgfSlcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKHJlcykgPT4ge1xuICAgICAgICAgIHRoaXMuUkNMaXN0Lm5leHQocmVzKTtcbiAgICAgICAgICByZXR1cm4gcmVzO1xuICAgICAgICB9KVxuICAgICAgKVxuICAgICAgLnBpcGUocmV0cnkoMikpO1xuICB9XG5cbiAgZ2V0T3JnYW5pemF0aW9uR3JvdXBzKHBhcmFtcz86IEh0dHBQYXJhbXMpIHtcbiAgICBpZiAodGhpcy5Hcm91cExpc3QuZ2V0VmFsdWUoKS5sZW5ndGgpIHtcbiAgICAgIHJldHVybiBvZih0aGlzLkdyb3VwTGlzdC5nZXRWYWx1ZSgpKTtcbiAgICB9XG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldChcbiAgICAgICd0b2tlbicsXG4gICAgICB0aGlzLmF1dGhTZXJ2aWNlLmdldEF1dGhvcml6YXRpb25Ub2tlbigpXG4gICAgKTtcbiAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAuZ2V0PGFueVtdPihcbiAgICAgICAgdGhpcy5lbnYub3JnYW5pemF0aW9uR2V0ICsgJ2dyb3Vwc0xpc3Qmc3RhdHVzPTEmdHlwZT1jb21wbGlhbmNlJyxcbiAgICAgICAge1xuICAgICAgICAgIHBhcmFtcyxcbiAgICAgICAgICBoZWFkZXJzLFxuICAgICAgICB9XG4gICAgICApXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKChyZXMpID0+IHtcbiAgICAgICAgICB0aGlzLkdyb3VwTGlzdC5uZXh0KHJlcyk7XG4gICAgICAgICAgcmV0dXJuIHJlcztcbiAgICAgICAgfSlcbiAgICAgIClcbiAgICAgIC5waXBlKHJldHJ5KDIpKTtcbiAgfVxuXG4gIGdldE9yZ2FuaXphdGlvblBvbGljeUdyb3VwcyhwYXJhbXM/OiBIdHRwUGFyYW1zKSB7XG4gICAgaWYgKHRoaXMucG9saWN5R3JvdXBzPy5nZXRWYWx1ZSgpKSB7XG4gICAgICByZXR1cm4gb2YodGhpcy5wb2xpY3lHcm91cHM/LnZhbHVlKTtcbiAgICB9XG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldChcbiAgICAgICd0b2tlbicsXG4gICAgICB0aGlzLmF1dGhTZXJ2aWNlLmdldEF1dGhvcml6YXRpb25Ub2tlbigpXG4gICAgKTtcbiAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAuZ2V0PGFueVtdPihcbiAgICAgICAgdGhpcy5lbnYub3JnYW5pemF0aW9uR2V0ICtcbiAgICAgICAgICAnZ3JvdXBzTGlzdCZwZXJtVHlwZT1tYW5hZ2VQb2xpY2llcyZmZXRjaF9hbGw9dHJ1ZScsXG4gICAgICAgIHtcbiAgICAgICAgICBwYXJhbXMsXG4gICAgICAgICAgaGVhZGVycyxcbiAgICAgICAgfVxuICAgICAgKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgocmVzKSA9PiB7XG4gICAgICAgICAgdGhpcy5wb2xpY3lHcm91cHMubmV4dChyZXMpO1xuICAgICAgICAgIHJldHVybiByZXM7XG4gICAgICAgIH0pLFxuICAgICAgICBjYXRjaEVycm9yKChlcnJvcikgPT4ge1xuICAgICAgICAgIHJldHVybiBvZihudWxsKTtcbiAgICAgICAgfSlcbiAgICAgIClcbiAgICAgIC5waXBlKHJldHJ5KDIpKTtcbiAgfVxuXG4gIGdldE9yZ2FuaXphdGlvbk92ZXJzZWVyc0dyb3VwcyhwYXJhbXM/OiBIdHRwUGFyYW1zKSB7XG4gICAgaWYgKHRoaXMub3ZlcnNlZXJMaXN0Py5nZXRWYWx1ZSgpKSB7XG4gICAgICByZXR1cm4gb2YodGhpcy5vdmVyc2Vlckxpc3Q/LnZhbHVlKTtcbiAgICB9XG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldChcbiAgICAgICd0b2tlbicsXG4gICAgICB0aGlzLmF1dGhTZXJ2aWNlLmdldEF1dGhvcml6YXRpb25Ub2tlbigpXG4gICAgKTtcbiAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAuZ2V0PGFueVtdPih0aGlzLmVudi5vcmdhbml6YXRpb25HZXQgKyAnZ3JvdXBzTGlzdCZmZXRjaF9hbGw9dHJ1ZScsIHtcbiAgICAgICAgcGFyYW1zLFxuICAgICAgICBoZWFkZXJzLFxuICAgICAgfSlcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKHJlcykgPT4ge1xuICAgICAgICAgIHRoaXMub3ZlcnNlZXJMaXN0Lm5leHQocmVzKTtcbiAgICAgICAgICByZXR1cm4gcmVzO1xuICAgICAgICB9KSxcbiAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3IpID0+IHtcbiAgICAgICAgICByZXR1cm4gb2YobnVsbCk7XG4gICAgICAgIH0pXG4gICAgICApXG4gICAgICAucGlwZShyZXRyeSgyKSk7XG4gIH1cblxuICBnZXRPcmdhbml6YXRpb25Vc2VycygpIHtcbiAgICBjb25zdCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCkuc2V0KFxuICAgICAgJ3Rva2VuJyxcbiAgICAgIHRoaXMuYXV0aFNlcnZpY2UuZ2V0QXV0aG9yaXphdGlvblRva2VuKClcbiAgICApO1xuICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgIC5nZXQ8YW55W10+KHRoaXMuZW52Lm9yZ2FuaXphdGlvbkdldCArICdvcmdhbml6YXRpb25Vc2VycycsIHtcbiAgICAgICAgaGVhZGVycyxcbiAgICAgIH0pXG4gICAgICAucGlwZShyZXRyeSgyKSk7XG4gIH1cblxuICBnZXRPcmdhbml6YXRpb25QZW9wbGUocGFyYW1zPzogSHR0cFBhcmFtcyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldChcbiAgICAgICd0b2tlbicsXG4gICAgICB0aGlzLmF1dGhTZXJ2aWNlLmdldEF1dGhvcml6YXRpb25Ub2tlbigpXG4gICAgKTtcbiAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAuZ2V0PGFueVtdPih0aGlzLmVudi5vcmdhbml6YXRpb25HZXQgKyAncGVvcGxlJywge1xuICAgICAgICBwYXJhbXMsXG4gICAgICAgIGhlYWRlcnMsXG4gICAgICB9KVxuICAgICAgLnBpcGUocmV0cnkoMikpO1xuICB9XG5cbiAgZ2V0QXNzaWdub3JzTGlzdChwYXJhbXM/OiBIdHRwUGFyYW1zKSB7XG4gICAgaWYgKHRoaXMuQXNzaWdub3JMaXN0LmdldFZhbHVlKCkubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gb2YodGhpcy5Bc3NpZ25vckxpc3QuZ2V0VmFsdWUoKSk7XG4gICAgfVxuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoXG4gICAgICAndG9rZW4nLFxuICAgICAgdGhpcy5hdXRoU2VydmljZS5nZXRBdXRob3JpemF0aW9uVG9rZW4oKVxuICAgICk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgLmdldDxhbnlbXT4oXG4gICAgICAgIHRoaXMuZW52Py5vcmdhbml6YXRpb25HZXQgKyAnb3JnYW5pemF0aW9uVXNlcnMmaXNPbkJlaGFsZj0xJyxcbiAgICAgICAge1xuICAgICAgICAgIHBhcmFtcyxcbiAgICAgICAgICBoZWFkZXJzLFxuICAgICAgICB9XG4gICAgICApXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKChyZXMpID0+IHtcbiAgICAgICAgICB0aGlzLkFzc2lnbm9yTGlzdC5uZXh0KHJlcyk7XG4gICAgICAgICAgcmV0dXJuIHJlcztcbiAgICAgICAgfSlcbiAgICAgIClcbiAgICAgIC5waXBlKHJldHJ5KDIpKTtcbiAgfVxuXG4gIGdldENhdGVnb3JpZXNMaXN0KCkge1xuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoXG4gICAgICAndG9rZW4nLFxuICAgICAgdGhpcy5hdXRoU2VydmljZS5nZXRBdXRob3JpemF0aW9uVG9rZW4oKVxuICAgICk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgLmdldDxhbnlbXT4oXG4gICAgICAgIHRoaXMuZW52Py5jb21wbGlhbmNlR2V0ICsgJ2NvbXBsaWFuY2VDYXRlZ29yeS9DYXRlZ29yeUxpc3RUcmVlJyxcbiAgICAgICAge1xuICAgICAgICAgIGhlYWRlcnMsXG4gICAgICAgIH1cbiAgICAgIClcbiAgICAgIC5waXBlKHJldHJ5KDIpKTtcbiAgfVxuICBnZXRQcm9ncmFtc0xpc3QocGFyYW1zOiBIdHRwUGFyYW1zLCBpZHM/OiBhbnkpIHtcbiAgICBsZXQgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldChcbiAgICAgICd0b2tlbicsXG4gICAgICB0aGlzLmF1dGhTZXJ2aWNlLmdldEF1dGhvcml6YXRpb25Ub2tlbigpXG4gICAgKTtcbiAgICBjb25zdCBwcm9ncmFtSWQgPSB7IHByb2dyYW1JZDogaWRzIH07XG4gICAgaWYgKGlkcz8ubGVuZ3RoKSB7XG4gICAgICBoZWFkZXJzID0gaGVhZGVycy5hcHBlbmQoJ3BheWxvYWQtb2JqZWN0JywgSlNPTi5zdHJpbmdpZnkocHJvZ3JhbUlkKSk7XG5cbiAgICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgICAgLnBvc3Q8YW55W10+KFxuICAgICAgICAgIHRoaXMuZW52Py5jb21wbGlhbmNlUG9zdCArICdjb21wbGlhbmNlQ2F0ZWdvcnkvcHJvZ3JhbUxpc3QnLFxuICAgICAgICAgIHByb2dyYW1JZCxcbiAgICAgICAgICB7IHBhcmFtcywgaGVhZGVycyB9XG4gICAgICAgIClcbiAgICAgICAgLnBpcGUocmV0cnkoMikpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgIC5nZXQ8YW55W10+KHRoaXMuZW52LmNvbXBsaWFuY2VHZXQgKyAnY29tcGxpYW5jZUNhdGVnb3J5L3Byb2dyYW1MaXN0Jywge1xuICAgICAgICBwYXJhbXMsXG4gICAgICAgIGhlYWRlcnMsXG4gICAgICB9KVxuICAgICAgLnBpcGUocmV0cnkoMikpO1xuICB9XG5cbiAgZ2V0UHJvZ3JhbXNMaXN0Q291bnQocGFyYW1zOiBIdHRwUGFyYW1zLCBpZHM/OiBhbnkpIHtcbiAgICBsZXQgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldChcbiAgICAgICd0b2tlbicsXG4gICAgICB0aGlzLmF1dGhTZXJ2aWNlLmdldEF1dGhvcml6YXRpb25Ub2tlbigpXG4gICAgKTtcbiAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAuZ2V0PGFueVtdPihcbiAgICAgICAgdGhpcy5lbnYuY29tcGxpYW5jZUdldCArICdjb21wbGlhbmNlQ2F0ZWdvcnkvcHJvZ3JhbUxpc3RDb3VudCcsXG4gICAgICAgIHtcbiAgICAgICAgICBwYXJhbXMsXG4gICAgICAgICAgaGVhZGVycyxcbiAgICAgICAgfVxuICAgICAgKVxuICAgICAgLnBpcGUocmV0cnkoMikpO1xuICB9XG4gIGdldENhdGVnb3JpZXNVbmRlclByb2dyYW0ocGFyYW1zOiBIdHRwUGFyYW1zKSB7XG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldChcbiAgICAgICd0b2tlbicsXG4gICAgICB0aGlzLmF1dGhTZXJ2aWNlLmdldEF1dGhvcml6YXRpb25Ub2tlbigpXG4gICAgKTtcbiAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAuZ2V0PGFueVtdPihcbiAgICAgICAgdGhpcy5lbnYuY29tcGxpYW5jZUdldCArICdjb21wbGlhbmNlQ2F0ZWdvcnkvQ2F0ZWdvcnlMaXN0VHJlZScsXG4gICAgICAgIHtcbiAgICAgICAgICBwYXJhbXMsXG4gICAgICAgICAgaGVhZGVycyxcbiAgICAgICAgfVxuICAgICAgKVxuICAgICAgLnBpcGUocmV0cnkoMikpO1xuICB9XG4gIGdldEFzc3VyYW5jZSgpIHtcbiAgICBpZiAodGhpcy5Bc3N1cmFuY2VDYXRlZ29yeUxpc3QuZ2V0VmFsdWUoKS5sZW5ndGgpIHtcbiAgICAgIHJldHVybiBvZih0aGlzLkFzc3VyYW5jZUNhdGVnb3J5TGlzdC5nZXRWYWx1ZSgpKTtcbiAgICB9XG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldChcbiAgICAgICd0b2tlbicsXG4gICAgICB0aGlzLmF1dGhTZXJ2aWNlLmdldEF1dGhvcml6YXRpb25Ub2tlbigpXG4gICAgKTtcbiAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAuZ2V0PGFueVtdPih0aGlzLmVudi5hc3N1cmFuY2VHZXQgKyAnY2F0ZWdvcnkvbGlzdCZpZD0xJywge1xuICAgICAgICBoZWFkZXJzLFxuICAgICAgfSlcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKHJlcykgPT4ge1xuICAgICAgICAgIHRoaXMuQXNzdXJhbmNlQ2F0ZWdvcnlMaXN0Lm5leHQocmVzKTtcbiAgICAgICAgICByZXR1cm4gcmVzO1xuICAgICAgICB9KVxuICAgICAgKVxuICAgICAgLnBpcGUocmV0cnkoMikpO1xuICB9XG5cbiAgZ2V0QXNzdXJhbmNlRm9yUmVxdWlyZXNBdWRpdCgpIHtcbiAgICBpZiAodGhpcy5Bc3N1cmFuY2VMaXN0Rm9yQXVkaXQuZ2V0VmFsdWUoKS5sZW5ndGgpIHtcbiAgICAgIHJldHVybiBvZih0aGlzLkFzc3VyYW5jZUxpc3RGb3JBdWRpdC5nZXRWYWx1ZSgpKTtcbiAgICB9XG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldChcbiAgICAgICd0b2tlbicsXG4gICAgICB0aGlzLmF1dGhTZXJ2aWNlLmdldEF1dGhvcml6YXRpb25Ub2tlbigpXG4gICAgKTtcbiAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAuZ2V0PGFueVtdPihcbiAgICAgICAgdGhpcy5lbnYuYXNzdXJhbmNlQXBpICsgJ0F1ZGl0L0NhdGVnb3J5L0xpc3QvP21vZGU9ZW50cnVzdF9tb2R1bGUnLFxuICAgICAgICB7XG4gICAgICAgICAgaGVhZGVycyxcbiAgICAgICAgfVxuICAgICAgKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgocmVzKSA9PiB7XG4gICAgICAgICAgdGhpcy5Bc3N1cmFuY2VMaXN0Rm9yQXVkaXQubmV4dChyZXMpO1xuICAgICAgICAgIHJldHVybiByZXM7XG4gICAgICAgIH0pXG4gICAgICApXG4gICAgICAucGlwZShyZXRyeSgyKSk7XG4gIH1cblxuICBnZXRSQ0RldGFpbHNPZkZyYW1ld29yayhyY19pZDogYW55LCBjYXRlZ29yeV9pZDogYW55KSB7XG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldChcbiAgICAgICd0b2tlbicsXG4gICAgICB0aGlzLmF1dGhTZXJ2aWNlLmdldEF1dGhvcml6YXRpb25Ub2tlbigpXG4gICAgKTtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChcbiAgICAgIHRoaXMuZW52LmNvbXBsaWFuY2VHZXQgK1xuICAgICAgICAnY29tcGxpYW5jZUNhdGVnb3J5L0NhdGVnb3J5UkNUcmVlQnlJZCZpZD0nICtcbiAgICAgICAgY2F0ZWdvcnlfaWQgK1xuICAgICAgICAnJnJjX2lkPScgK1xuICAgICAgICByY19pZCxcbiAgICAgIHsgaGVhZGVycyB9XG4gICAgKTtcbiAgfVxuXG4gIHN1Ym1pdEVudHJ1c3QoZW50cnVzdF9ib2R5OiBhbnkpIHtcbiAgICBjb25zdCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCkuc2V0KFxuICAgICAgJ3Rva2VuJyxcbiAgICAgIHRoaXMuYXV0aFNlcnZpY2UuZ2V0QXV0aG9yaXphdGlvblRva2VuKClcbiAgICApO1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcbiAgICAgIHRoaXMuZW52LmNvbXBsaWFuY2VQb3N0ICsgJ2NyZWF0ZVJlcG9ydCZzZXJ2aWNlVHlwZT0xJyxcbiAgICAgIGVudHJ1c3RfYm9keSxcbiAgICAgIHsgaGVhZGVycyB9XG4gICAgKTtcbiAgfVxuICB1cGRhdGVFbnRydXN0KGVudHJ1c3RfYm9keTogYW55LCBvYmplY3RfaWQ6IGFueSwgaXNEZWxlZ2F0ZTogYW55KSB7XG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldChcbiAgICAgICd0b2tlbicsXG4gICAgICB0aGlzLmF1dGhTZXJ2aWNlLmdldEF1dGhvcml6YXRpb25Ub2tlbigpXG4gICAgKTtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXG4gICAgICB0aGlzLmVudi5jb21wbGlhbmNlUG9zdCArXG4gICAgICAgICdjcmVhdGVSZXBvcnQmcmVwb3J0SWQ9JyArXG4gICAgICAgIG9iamVjdF9pZCArXG4gICAgICAgICcmaXNEZWxlZ2F0ZT0wJnNlcnZpY2VUeXBlPTEnLFxuICAgICAgZW50cnVzdF9ib2R5LFxuICAgICAgeyBoZWFkZXJzIH1cbiAgICApO1xuICB9XG5cbiAgZWRpdFJlc3BvbnNpYmlsaXR5KG9iamVjdElkOiBhbnkpIHtcbiAgICBjb25zdCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCkuc2V0KFxuICAgICAgJ3Rva2VuJyxcbiAgICAgIHRoaXMuYXV0aFNlcnZpY2UuZ2V0QXV0aG9yaXphdGlvblRva2VuKClcbiAgICApO1xuICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgIC5nZXQoXG4gICAgICAgIHRoaXMuZW52LmNvbXBsaWFuY2VHZXQgKyAnY29tcGxpYW5jZVJlcG9ydC9yZXBvcnRCeUlkJmlkPScgKyBvYmplY3RJZCxcbiAgICAgICAgeyBoZWFkZXJzIH1cbiAgICAgIClcbiAgICAgIC5waXBlKHJldHJ5KDIpKTtcbiAgfVxuXG4gIGFkZEJ1bGtSZXNwb25zaWJpbGl0eShlbnRydXN0X2JvZHk6IGFueSkge1xuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoXG4gICAgICAndG9rZW4nLFxuICAgICAgdGhpcy5hdXRoU2VydmljZS5nZXRBdXRob3JpemF0aW9uVG9rZW4oKVxuICAgICk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxuICAgICAgdGhpcy5lbnYuY29tcGxpYW5jZVBvc3QgKyAnaW1wb3J0L2NyZWF0ZScsXG4gICAgICBlbnRydXN0X2JvZHksXG4gICAgICB7IGhlYWRlcnMgfVxuICAgICk7XG4gIH1cblxuICB1cGxvYWRUb05vZGUocGF5bG9hZDogYW55LCBkZXM6IGFueSkge1xuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoXG4gICAgICAndG9rZW4nLFxuICAgICAgdGhpcy5hdXRoU2VydmljZS5nZXRBdXRob3JpemF0aW9uVG9rZW4oKVxuICAgICk7XG4gICAgLy8gcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueVtdPih0aGlzLmVudi5maWxlVXBsb2FkRW5kUG9pbnQgKyAncmlzay9yZXNwb25zaWJpbGl0eUNlbnRlckxpc3QnLCB7IHJjX2lkX2FycjogcmNBcnJheSA/PyBbXSB9LCB7IGhlYWRlcnMgfSkucGlwZShyZXRyeSgyKSk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4odGhpcy5lbnYuZmlsZVVwbG9hZEVuZFBvaW50ICsgZGVzLCBwYXlsb2FkLCB7XG4gICAgICBoZWFkZXJzLFxuICAgIH0pO1xuICB9XG5cbiAgZmlsZXNVcGxvYWRpbmc6IGFueVtdID0gW107XG4gIGZpbGVzVXBsb2FkZWQ6IGFueVtdID0gW107XG4gIGZpbGVzVXBsb2FkZWRBbmRVcGxvYWRpbmc6IGFueVtdID0gW107XG5cbiAgZ2V0Q2F0ZWdvcnlEZXRhaWxzQnlJZChpZDogYW55KSB7XG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldChcbiAgICAgICd0b2tlbicsXG4gICAgICB0aGlzLmF1dGhTZXJ2aWNlLmdldEF1dGhvcml6YXRpb25Ub2tlbigpXG4gICAgKTtcbiAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAuZ2V0PGFueVtdPihcbiAgICAgICAgdGhpcy5lbnYuY29tcGxpYW5jZUdldCArICdjb21wbGlhbmNlQ2F0ZWdvcnkvQ2F0ZWdvcnlUcmVlQnlJZCZpZD0nICsgaWQsXG4gICAgICAgIHsgaGVhZGVycyB9XG4gICAgICApXG4gICAgICAucGlwZShyZXRyeSgyKSk7XG4gIH1cblxuICBnZXRGcmFtZVdvcmtDb3VudChwYXJhbXM/OiBIdHRwUGFyYW1zKSB7XG4gICAgbGV0IGh0dHBPcHRpb25zOiBhbnkgPSB7fTtcbiAgICBodHRwT3B0aW9ucy5oZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCkuc2V0KFxuICAgICAgJ3Rva2VuJyxcbiAgICAgIHRoaXMuYXV0aFNlcnZpY2UuZ2V0QXV0aG9yaXphdGlvblRva2VuKClcbiAgICApO1xuICAgIGlmIChwYXJhbXMpIHtcbiAgICAgIGh0dHBPcHRpb25zLnBhcmFtcyA9IHBhcmFtcztcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgLmdldDxhbnlbXT4odGhpcy5lbnYucHJvZ3JhbUVuZHBvaW50ICsgJy9mcmFtZXdvcmtjb3VudCcsIGh0dHBPcHRpb25zKVxuICAgICAgLnBpcGUocmV0cnkoMikpO1xuICB9XG5cbiAgZ2V0RnJhbWVXb3JrTGlzdChwYXJhbXM6IEh0dHBQYXJhbXMpIHtcbiAgICBsZXQgaHR0cE9wdGlvbnM6IGFueSA9IHt9O1xuICAgIGh0dHBPcHRpb25zLmhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoXG4gICAgICAndG9rZW4nLFxuICAgICAgdGhpcy5hdXRoU2VydmljZS5nZXRBdXRob3JpemF0aW9uVG9rZW4oKVxuICAgICk7XG4gICAgaWYgKHBhcmFtcykge1xuICAgICAgaHR0cE9wdGlvbnMucGFyYW1zID0gcGFyYW1zO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAuZ2V0PGFueVtdPih0aGlzLmVudi5wcm9ncmFtRW5kcG9pbnQgKyAnL2ZyYW1ld29yaycsIGh0dHBPcHRpb25zKVxuICAgICAgLnBpcGUocmV0cnkoMikpO1xuICB9XG4gIGdldEZyYW1ld29ya1N1YkNhdGVnb3JpZXMoaWQ6IGFueSwgcGFyYW1zOiBIdHRwUGFyYW1zKSB7XG4gICAgbGV0IGh0dHBPcHRpb25zOiBhbnkgPSB7fTtcbiAgICBodHRwT3B0aW9ucy5oZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCkuc2V0KFxuICAgICAgJ3Rva2VuJyxcbiAgICAgIHRoaXMuYXV0aFNlcnZpY2UuZ2V0QXV0aG9yaXphdGlvblRva2VuKClcbiAgICApO1xuICAgIGlmIChwYXJhbXMpIHtcbiAgICAgIGh0dHBPcHRpb25zLnBhcmFtcyA9IHBhcmFtcztcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgLmdldDxhbnlbXT4odGhpcy5lbnYucHJvZ3JhbUVuZHBvaW50ICsgJy9mcmFtZXdvcmsvJyArIGlkLCBodHRwT3B0aW9ucylcbiAgICAgIC5waXBlKHJldHJ5KDIpKTtcbiAgfVxuXG4gIGdldEZyYW1ld29ya0NvbnRyb2xzKGlkOiBhbnksIHBhcmFtczogSHR0cFBhcmFtcykge1xuICAgIGxldCBodHRwT3B0aW9uczogYW55ID0ge307XG4gICAgaHR0cE9wdGlvbnMuaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldChcbiAgICAgICd0b2tlbicsXG4gICAgICB0aGlzLmF1dGhTZXJ2aWNlLmdldEF1dGhvcml6YXRpb25Ub2tlbigpXG4gICAgKTtcbiAgICBpZiAocGFyYW1zKSB7XG4gICAgICBodHRwT3B0aW9ucy5wYXJhbXMgPSBwYXJhbXM7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgIC5nZXQ8YW55W10+KHRoaXMuZW52LnByb2dyYW1FbmRwb2ludCArICcvY29udHJvbHMvJyArIGlkLCBodHRwT3B0aW9ucylcbiAgICAgIC5waXBlKHJldHJ5KDIpKTtcbiAgfVxuXG4gIGZpbGVVcGxvYWQoZmlsZTogYW55KSB7XG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldChcbiAgICAgICd0b2tlbicsXG4gICAgICB0aGlzLmF1dGhTZXJ2aWNlLmdldEF1dGhvcml6YXRpb25Ub2tlbigpXG4gICAgKTtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QodGhpcy5lbnYuY29tcGxpYW5jZVBvc3QgKyAnZmlsZS91cGxvYWQnLCBmaWxlLCB7XG4gICAgICBoZWFkZXJzLFxuICAgIH0pO1xuICB9XG5cbiAgZ2V0QXNzZXNzbWVudENhdGVnb3J5KHBheWxvYWQ6IGFueSwgcHJvZ3JhbV9pZHM/OiBzdHJpbmcpIHtcbiAgICBjb25zdCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCkuc2V0KFxuICAgICAgJ3Rva2VuJyxcbiAgICAgIHRoaXMuYXV0aFNlcnZpY2UuZ2V0QXV0aG9yaXphdGlvblRva2VuKClcbiAgICApO1xuICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgIC5wb3N0KFxuICAgICAgICB0aGlzLmVudi5hc3Nlc3NtZW50RW5wb2ludCArXG4gICAgICAgICAgJ2NhdGVnb3J5L2xpc3QmaXNDcmVhdGVSZXNwb25zaWJpbGl0eT10cnVlJyArXG4gICAgICAgICAgKHByb2dyYW1faWRzID8gJyZwcm9ncmFtX2lkcz0nICsgcHJvZ3JhbV9pZHMgOiAnJyksXG4gICAgICAgIHBheWxvYWQsXG4gICAgICAgIHsgaGVhZGVycyB9XG4gICAgICApXG4gICAgICAucGlwZShyZXRyeSgyKSk7XG4gIH1cblxuICBnZXRBc3Nlc3NtZW50TGlzdChwYXlsb2FkOiBhbnksIGlkOiBzdHJpbmcsIHByb2dyYW1faWRzPzogc3RyaW5nKSB7XG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldChcbiAgICAgICd0b2tlbicsXG4gICAgICB0aGlzLmF1dGhTZXJ2aWNlLmdldEF1dGhvcml6YXRpb25Ub2tlbigpXG4gICAgKTtcbiAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAucG9zdDxBcnJheTxBc3Nlc3NtZW50TGlzdD4+KFxuICAgICAgICB0aGlzLmVudi5hc3Nlc3NtZW50RW5wb2ludCArXG4gICAgICAgICAgJ2Fzc2Vzc21lbnQvc2VsZWN0QXNzZXNzbWVudCZpc0NyZWF0ZVJlc3BvbnNpYmlsaXR5PXRydWUmY2F0aWQ9JyArXG4gICAgICAgICAgaWQgK1xuICAgICAgICAgIChwcm9ncmFtX2lkcyA/ICcmcHJvZ3JhbV9pZHM9JyArIHByb2dyYW1faWRzIDogJycpLFxuICAgICAgICBwYXlsb2FkLFxuICAgICAgICB7IGhlYWRlcnMgfVxuICAgICAgKVxuICAgICAgLnBpcGUocmV0cnkoMikpO1xuICB9XG5cbiAgZ2V0QXNzZXNzbWVudERldGFpbHNCeUlEKGlkOiBzdHJpbmcpIHtcbiAgICBjb25zdCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCkuc2V0KFxuICAgICAgJ3Rva2VuJyxcbiAgICAgIHRoaXMuYXV0aFNlcnZpY2UuZ2V0QXV0aG9yaXphdGlvblRva2VuKClcbiAgICApO1xuICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgIC5wb3N0PEFycmF5PEFzc2Vzc21lbnRMaXN0Pj4oXG4gICAgICAgIHRoaXMuZW52LmFzc2Vzc21lbnRFbnBvaW50ICsgJ2Fzc2Vzc21lbnQvZ2V0QXNzZXNzbWVudEJ5SWQmaWQ9JyArIGlkLFxuICAgICAgICB7fSxcbiAgICAgICAgeyBoZWFkZXJzIH1cbiAgICAgIClcbiAgICAgIC5waXBlKHJldHJ5KDIpKTtcbiAgfVxuXG4gIGdldEdSQ093bmVyTGlzdCgpIHtcbiAgICBjb25zdCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCkuc2V0KFxuICAgICAgJ3Rva2VuJyxcbiAgICAgIHRoaXMuYXV0aFNlcnZpY2UuZ2V0QXV0aG9yaXphdGlvblRva2VuKClcbiAgICApO1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PGFueVtdPihcbiAgICAgIHRoaXMuZW52Lm9yZ2FuaXphdGlvbkdldCArXG4gICAgICAgICdvcmdhbml6YXRpb25NZW1iZXJzJmlzR3JjT2JqZWN0PXRydWUmdHlwZT1hbGwnLFxuICAgICAgeyBoZWFkZXJzIH1cbiAgICApO1xuICB9XG5cbiAgZ2V0T2JqZWN0VHlwZSgpIHtcbiAgICBjb25zdCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCkuc2V0KFxuICAgICAgJ3Rva2VuJyxcbiAgICAgIHRoaXMuYXV0aFNlcnZpY2UuZ2V0QXV0aG9yaXphdGlvblRva2VuKClcbiAgICApO1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PGFueVtdPihcbiAgICAgIHRoaXMuZW52LmdyY19nZXQgKyAnZ3JjT2JqZWN0L2dldEdSQ1R5cGVMaXN0JnByb2plY3RlZD0xJyxcbiAgICAgIHtcbiAgICAgICAgaGVhZGVycyxcbiAgICAgIH1cbiAgICApO1xuICB9XG5cbiAgZ2V0R1JDT2JqZWN0RGV0YWlscyhpZDogc3RyaW5nKSB7XG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldChcbiAgICAgICd0b2tlbicsXG4gICAgICB0aGlzLmF1dGhTZXJ2aWNlLmdldEF1dGhvcml6YXRpb25Ub2tlbigpXG4gICAgKTtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxhbnlbXT4oXG4gICAgICB0aGlzLmVudi5ncmNfZ2V0ICsgJ2dyYy9ncmNCeUlkJmlzRWRpdD10cnVlJmlkPScgKyBpZCxcbiAgICAgIHtcbiAgICAgICAgaGVhZGVycyxcbiAgICAgIH1cbiAgICApO1xuICB9XG5cbiAgYWRkR1JDT2JqZWN0KHBheWxvYWQ6IGFueSkge1xuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoXG4gICAgICAndG9rZW4nLFxuICAgICAgdGhpcy5hdXRoU2VydmljZS5nZXRBdXRob3JpemF0aW9uVG9rZW4oKVxuICAgICk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueVtdPih0aGlzLmVudi5ncmNfZ2V0ICsgJ2dyYy9zYXZlR1JDJywgcGF5bG9hZCwge1xuICAgICAgaGVhZGVycyxcbiAgICB9KTtcbiAgfVxuXG4gIHVwZGF0ZUdSQ09iamVjdChwYXlsb2FkOiBhbnksIF9pZDogc3RyaW5nKSB7XG4gICAgcGF5bG9hZC5faWQgPSBfaWQ7XG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldChcbiAgICAgICd0b2tlbicsXG4gICAgICB0aGlzLmF1dGhTZXJ2aWNlLmdldEF1dGhvcml6YXRpb25Ub2tlbigpXG4gICAgKTtcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dDxhbnlbXT4odGhpcy5lbnYuZ3JjX2dldCArICdncmMvdXBkYXRlR1JDJywgcGF5bG9hZCwge1xuICAgICAgaGVhZGVycyxcbiAgICB9KTtcbiAgfVxuXG4gIGJ1aWxkUmVzcG9uc2liaWxpdHlQYXlsb2FkKGV2ZW50OiBhbnkpOiBSZXNwb25zaWJpbGl0eSB8IG51bGwge1xuICAgIGNvbnNvbGUubG9nKCdldmVudCcsIGV2ZW50KTtcbiAgICBjb25zdCBwYXlsb2FkOiBSZXNwb25zaWJpbGl0eSA9IHtcbiAgICAgIHRpdGxlOiBldmVudC5yZXBvcnRfbmFtZSxcbiAgICAgIGtleTogZXZlbnQuaXNfa2V5X2NvbXBsaWFuY2UsXG4gICAgICByaXNrQ2xhc3M6IHRoaXMuZ2V0Umlza0NsYXNzKGV2ZW50LnJpc2tfY2xhc3MpLFxuICAgICAgbm90ZXM6IGV2ZW50LnJlbWFya3MsXG4gICAgICBvYmplY3RpdmU6IGV2ZW50Lm9iamVjdGl2ZSxcbiAgICAgIGZyZXF1ZW5jeTogZXZlbnQuZnJlcXVlbmN5LFxuICAgICAgYXNzaWdub3JJZDogZXZlbnQubWVtYmVyX2lkLFxuICAgICAgYXNzaWduZWU6IHtcbiAgICAgICAgdHlwZTogIGV2ZW50LmlzR3JvdXBBc3NpZ25UbyA/ICdhbnlfb25lJyA6ICdhbGwnLFxuICAgICAgICB1c2VySWQ6IGV2ZW50LmFzc2lnbmVlX21lbWJlcl9pZD8uc3BsaXQoJywnKSxcbiAgICAgICAgdXNlckdyb3VwSWQ6IGV2ZW50LmlzR3JvdXBBc3NpZ25UbyA/ZXZlbnQudXNlckdyb3VwSWRzPy5hc3NpZ25lZUFueW9uZUdyb3VwSWRzIDogIGV2ZW50LnVzZXJHcm91cElkcz8uYXNzaWduZWVBbGxHcm91cElkc3NcbiAgICAgIH0sXG4gICAgICByZXNwb25zaWJpbGl0eUNlbnRlcjoge1xuICAgICAgICB0eXBlOiAgZXZlbnQucmVzcG9uc2liaWxpdHlDZW50ZXJUeXBlID8gJ2FueScgOiAnYWxsJyxcbiAgICAgICAgaWQ6IGV2ZW50LnJlc3BvbnNpYmlsaXR5Q2VudGVyQXJyXG4gICAgICB9LFxuICAgICAgcmV2aWV3ZXI6IHtcbiAgICAgICAgdHlwZTogZXZlbnQucmV2aWV3ZXJfYXJyPy5sZXZlbDE/LnR5cGU/LnRvTG93ZXJDYXNlKCksXG4gICAgICAgIHVzZXJJZDogZXZlbnQucmV2aWV3ZXJfYXJyPy5sZXZlbDE/LnJldmlld2Vycz8ubWFwKChyZXZpZXdlcjogYW55KSA9PiByZXZpZXdlcj8ubWVtYmVyX2lkKSxcbiAgICAgICAgZnJlcXVlbmN5OiB7XG4gICAgICAgICAgZHVlRGF5czogZXZlbnQ/LnJldmlld19hZnRlcl9kYXlzLFxuICAgICAgICAgIGV4dGVuc2lvbkRheXM6IGV2ZW50Py5yZXZpZXdfZmFpbGVkX2FmdGVyX2RheXNcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIG92ZXJzZWVyOiB7XG4gICAgICAgIHN1Y2Nlc3M6IHtcbiAgICAgICAgICB1c2VySWQ6IGV2ZW50LmNjX21lbWJlcl9lbWFpbD8uc3BsaXQoJywnKT8uZmlsdGVyKEJvb2xlYW4pLFxuICAgICAgICAgIHVzZXJHcm91cElkOiBldmVudC51c2VyR3JvdXBJZHM/LmNjRW1haWxHcm91cElkc1xuICAgICAgICB9LFxuICAgICAgICBmYWlsOiB7XG4gICAgICAgICAgdXNlcklkOiBldmVudC5mYWlsdXJlX2NjX21lbWJlcl9lbWFpbD8uc3BsaXQoJywnKT8uZmlsdGVyKEJvb2xlYW4pLFxuICAgICAgICAgIHVzZXJHcm91cElkOiBldmVudC51c2VyR3JvdXBJZHM/LmZhaWx1cmVDQ0VtYWlsR3JvdXBJZHNcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIGV2aWRlbmNlOiB7XG4gICAgICAgIHJlcXVpcmVkOiBldmVudC5yZXBvcnRfdXBsb2FkX2ZsYWcsXG4gICAgICAgIGZvcm1hdDoge1xuICAgICAgICAgIHR5cGU6IGV2ZW50LnJlcG9ydF9mb3JtYXQ/Lmxlbmd0aCA/ICdmaWxlJyA6IChldmVudC5saW5rX2Zvcl9kZXRhaWxzPy5sZW5ndGggPyAnbGluaycgOiAnJyksXG4gICAgICAgICAgZGF0YTogZXZlbnQ/LnJlcG9ydF9mb3JtYXQ/Lmxlbmd0aCA/IGV2ZW50LnJlcG9ydF9mb3JtYXQgOiBldmVudD8ubGlua19mb3JfZGV0YWlsc1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgdGFnczogSlNPTi5wYXJzZShldmVudC5jdXN0b21fdGFncyksXG4gICAgICBwcm9ncmFtOiBldmVudC5zZWxlY3RlZENhdGVnb3J5Py5tYXAoKGl0ZW06IGFueSkgPT4gaXRlbS5pZCksXG4gICAgICBncmNPYmplY3RJZDogZXZlbnQubGlua2VkX0dSQ19pZHMsXG4gICAgICBhc3Nlc3NtZW50SWQ6IGV2ZW50LmFzc2Vzc21lbnQ/LmFzc2Vzc21lbnRfaWQsXG4gICAgICBcbiAgICB9XG4gICAgcmV0dXJuIHBheWxvYWQ7XG4gIH1cblxuICBnZXRSaXNrQ2xhc3Mocmlza0NsYXNzOiAwIHwgMSB8IDIgfCAzKTogJ2xvdycgfCAnbG93LW1lZGl1bScgfCAnbWVkaXVtLWhpZ2gnIHwgJ2hpZ2gnICB7XG4gICAgY29uc3Qgcmlza0NsYXNzZXM6IFJlY29yZDxudW1iZXIsICdsb3cnIHwgJ2xvdy1tZWRpdW0nIHwgJ21lZGl1bS1oaWdoJyB8ICdoaWdoJz4gPSB7XG4gICAgICAwOiAnbG93JyxcbiAgICAgIDE6ICdsb3ctbWVkaXVtJyxcbiAgICAgIDI6ICdtZWRpdW0taGlnaCcsXG4gICAgICAzOiAnaGlnaCdcbiAgICB9O1xuICAgIHJldHVybiByaXNrQ2xhc3Nlc1tyaXNrQ2xhc3NdO1xuICB9XG59XG4iXX0=
@@ -1769,14 +1769,14 @@ class ResponsibilityService {
1769
1769
  }
1770
1770
  submitEntrust(entrust_body) {
1771
1771
  const headers = new HttpHeaders().set('token', this.authService.getAuthorizationToken());
1772
- return this.http.post(this.env.compliancePost + 'createReport', entrust_body, { headers });
1772
+ return this.http.post(this.env.compliancePost + 'createReport&serviceType=1', entrust_body, { headers });
1773
1773
  }
1774
1774
  updateEntrust(entrust_body, object_id, isDelegate) {
1775
1775
  const headers = new HttpHeaders().set('token', this.authService.getAuthorizationToken());
1776
1776
  return this.http.post(this.env.compliancePost +
1777
1777
  'createReport&reportId=' +
1778
1778
  object_id +
1779
- '&isDelegate=0', entrust_body, { headers });
1779
+ '&isDelegate=0&serviceType=1', entrust_body, { headers });
1780
1780
  }
1781
1781
  editResponsibility(objectId) {
1782
1782
  const headers = new HttpHeaders().set('token', this.authService.getAuthorizationToken());
@@ -19986,7 +19986,7 @@ class ProgramsService {
19986
19986
  const headers = new HttpHeaders()
19987
19987
  .set('token', this.authService.getAuthorizationToken())
19988
19988
  .set('x-business-cycle', JSON.stringify(this.getBusinessCycle()));
19989
- return this.http.post(this.env.programEndpoint + '/category/?isBusinessCycle=true', payload, { headers });
19989
+ return this.http.post(this.env.programEndpoint + '/category/?isBusinessCycle=true&serviceType=1', payload, { headers });
19990
19990
  }
19991
19991
  buildPayload(formData, instance) {
19992
19992
  const form = formData?.value;
@@ -20081,7 +20081,7 @@ class ProgramsService {
20081
20081
  return this.http.post(this.env.programEndpoint +
20082
20082
  '/category/editCategory/' +
20083
20083
  id +
20084
- '?isBusinessCycle=true&bypass-businessCycle=true', payload, { headers });
20084
+ '?isBusinessCycle=true&bypass-businessCycle=true&serviceType=1', payload, { headers });
20085
20085
  }
20086
20086
  getMemeberByIds(ids) {
20087
20087
  const headers = new HttpHeaders().set('token', this.authService.getAuthorizationToken());