monkey-front-core 0.0.221 → 0.0.224

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.
@@ -5,6 +5,13 @@ import { filter, take, takeWhile } from 'rxjs/operators';
5
5
  import { MonkeyEcxRequestPagedHandling } from '../request-paged/monkeyecx-request-request-paged-handling';
6
6
  import { MonkeyEcxUtils } from '../../utils/utils';
7
7
  import { MonkeyEcxCoreService } from '../../decorators/monkeyecx-decorators';
8
+ import { MonkeyEcxModel } from '../../model';
9
+ class LinksModel extends MonkeyEcxModel {
10
+ constructor(data) {
11
+ super();
12
+ this._links = data?._links;
13
+ }
14
+ }
8
15
  export class MonkeyEcxCommonsService {
9
16
  constructor(monkeyecxService, tokenStorage, otherArgs) {
10
17
  this.monkeyecxService = monkeyecxService;
@@ -314,6 +321,16 @@ export class MonkeyEcxCommonsService {
314
321
  throwError(err);
315
322
  });
316
323
  }
324
+ async getGenericData(data, action) {
325
+ const { monkeyecxService } = this;
326
+ if (!monkeyecxService)
327
+ return null;
328
+ const { href, type } = new LinksModel(data)?.getAction(action) || {
329
+ href: '', type: 'get'
330
+ };
331
+ return monkeyecxService[type.toLowerCase()](href)
332
+ .pipe(take(1)).toPromise();
333
+ }
317
334
  geti18n(translateService, keys) {
318
335
  translateService.onDefaultLangChange.subscribe(() => {
319
336
  this.__i18n = translateService.instant(keys);
@@ -339,7 +356,7 @@ export class MonkeyEcxCommonsService {
339
356
  doPaginationv2(type, callback) {
340
357
  if (!this.__onLoadingInProgress$.value) {
341
358
  if (callback) {
342
- callback();
359
+ callback(type);
343
360
  }
344
361
  }
345
362
  }
@@ -378,4 +395,11 @@ __decorate([
378
395
  }
379
396
  })
380
397
  ], MonkeyEcxCommonsService.prototype, "genericMethod", null);
381
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9ua2V5ZWN4LWNvbW1vbnMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21vbmtleS1mcm9udC1jb3JlL3NyYy9saWIvY29yZS9zZXJ2aWNlcy9jb21tb25zL21vbmtleWVjeC1jb21tb25zLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFFTCxlQUFlLEVBR2hCLE1BQU0saUJBQWlCLENBQUM7QUFHekIsT0FBTyxFQUFFLGVBQWUsRUFBYyxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0QsT0FBTyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFrQnpELE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLDJEQUEyRCxDQUFDO0FBRTFHLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUk3RSxNQUFNLE9BQU8sdUJBQXVCO0lBa0VsQyxZQUNTLGdCQUFtQyxFQUNuQyxZQUEyQyxFQUMzQyxTQVdOO1FBYk0scUJBQWdCLEdBQWhCLGdCQUFnQixDQUFtQjtRQUNuQyxpQkFBWSxHQUFaLFlBQVksQ0FBK0I7UUFDM0MsY0FBUyxHQUFULFNBQVMsQ0FXZjtRQS9FSyxrQkFBYSxHQUFHLElBQUksQ0FBQztRQUU3QixZQUFPLEdBQTJCLElBQUksQ0FBQztRQUV2QyxrQkFBYSxHQUEyQixJQUFJLENBQUM7UUFFN0MsZUFBVSxHQUEyQixJQUFJLENBQUM7UUFJMUMsaUJBQVksR0FBK0IsSUFBSSxDQUFDO1FBSWhELFlBQU8sR0FBa0MsSUFBSSxDQUFDO1FBRTlDLG1CQUFjLEdBQXlDLElBQUksQ0FBQztRQUU1RCxXQUFNLEdBQWtDLElBQUksQ0FBQztRQUU3QyxZQUFPLEdBQWtDLElBQUksQ0FBQztR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QUFDO0lBRUQsU0FBUyxDQUFDLEtBQTBCO1FBQ2xDLElBQUksQ0FBQyxZQUFZLEdBQUc7WUFDbEIsSUFBSSxFQUFFLElBQUksQ0FBQyxNQUFNO1lBQ2pCLEdBQUcsS0FBSztTQUNULENBQUM7SUFDSixDQUFDO0NBQ0Y7QUE3RUM7SUFMQyxvQkFBb0IsQ0FBQztRQUNwQixpQkFBaUIsRUFBRTtZQUNqQixZQUFZLEVBQUUsSUFBSTtTQUNuQjtLQUNGLENBQUM7NERBYUQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LFxuICBOYXZpZ2F0aW9uU3RhcnQsXG4gIFJvdXRlcixcbiAgUm91dGVyU3RhdGVTbmFwc2hvdFxufSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgSHR0cEVycm9yUmVzcG9uc2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIHRocm93RXJyb3IgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpbHRlciwgdGFrZSwgdGFrZVdoaWxlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtcbiAgTW9ua2V5RWN4RXJyb3JSZXNwb25zZSxcbiAgTW9ua2V5RWN4SGFuZGxlZEVycm9yUmVzcG9uc2UsXG4gIE1vbmtleUVjeFJlcXVlc3RQYWdlZCxcbiAgTW9ua2V5RWN4UmVxdWVzdFNjaGVkdWxlLFxuICBNb25rZXlFY3hSZXNwb25zZVBhZ2VkLFxuICBNb25rZXlFY3hSZXNwb25zZUxpbmtzLFxuICBNb25rZXlFY3hUb2tlbkNyZWRlbnRpYWxzLFxuICBNb25rZXlFY3hUcmFuc2xhdGVPcHRpb25zLFxuICBNb25rZXlFY3hDb21wYW55UGVuZGVuY2llc1ZhbGlkYXRlZCxcbiAgTW9ua2V5RWN4Q291bnRyeVNlY3VyaXR5LFxuICBNb25rZXlFY3hTYXZlZFN0YXRlLFxuICBNb25rZXlFY3hDb25maWdcbn0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBNb25rZXlFY3hUb2tlblN0b3JhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vc3RvcmFnZS9tb25rZXllY3gtdG9rZW4tc3RvcmFnZS5zZXJ2aWNlJztcbmltcG9ydCB7IE1vbmtleUVjeFJlcXVlc3RTY2hlZHVsZVNlcnZpY2UgfSBmcm9tICcuLi9zY2hlZHVsZXMvbW9ua2V5ZWN4LXJlcXVlc3Qtc2NoZWR1bGUuc2VydmljZSc7XG5pbXBvcnQgeyBNb25rZXlFY3hSZXF1ZXN0UXVldWVIYW5kbGluZ1NlcnZpY2UgfSBmcm9tICcuLi9yZXF1ZXN0LXF1ZXVlL21vbmtleWVjeC1yZXF1ZXN0LXF1ZXVlLWhhbmRsaW5nLnNlcnZpY2UnO1xuaW1wb3J0IHsgTW9ua2V5RWN4UmVxdWVzdFBhZ2VkSGFuZGxpbmcgfSBmcm9tICcuLi9yZXF1ZXN0LXBhZ2VkL21vbmtleWVjeC1yZXF1ZXN0LXJlcXVlc3QtcGFnZWQtaGFuZGxpbmcnO1xuaW1wb3J0IHsgTW9ua2V5RWN4RmVhdHVyZVRvZ2dsZVNlcnZpY2UgfSBmcm9tICcuLi9jb25maWcvbW9ua2V5ZWN4LWZlYXR1cmUtdG9nZ2xlLnNlcnZpY2UnO1xuaW1wb3J0IHsgTW9ua2V5RWN4VXRpbHMgfSBmcm9tICcuLi8uLi91dGlscy91dGlscyc7XG5pbXBvcnQgeyBNb25rZXlFY3hDb3JlU2VydmljZSB9IGZyb20gJy4uLy4uL2RlY29yYXRvcnMvbW9ua2V5ZWN4LWRlY29yYXRvcnMnO1xuaW1wb3J0IHsgTW9ua2V5RWN4U2VydmljZSB9IGZyb20gJy4uL21vbmtleWVjeC1zZXJ2aWNlLnNlcnZpY2UnO1xuaW1wb3J0IHsgTW9ua2V5RWN4UGFnaW5hdGlvblNlcnZpY2UgfSBmcm9tICcuLi9wYWdpbmF0aW9uJztcblxuZXhwb3J0IGNsYXNzIE1vbmtleUVjeENvbW1vbnNTZXJ2aWNlIHtcbiAgcHJpdmF0ZSBmbGFnVmFsaWRhdG9yID0gdHJ1ZTtcblxuICBfX2RhdGEkOiBPYnNlcnZhYmxlPGFueT4gfCBudWxsID0gbnVsbDtcblxuICBfX3BhZ2luYXRpb24kOiBPYnNlcnZhYmxlPGFueT4gfCBudWxsID0gbnVsbDtcblxuICBfX2NvbnRyb2wkOiBPYnNlcnZhYmxlPGFueT4gfCBudWxsID0gbnVsbDtcblxuICBfX2RhdGE6IGFueSB8IGFueVtdO1xuXG4gIF9fc2F2ZWRTdGF0ZTogTW9ua2V5RWN4U2F2ZWRTdGF0ZSB8IG51bGwgPSBudWxsO1xuXG4gIF9fcGFyYW1zOiBhbnkgfCBhbnlbXTtcblxuICBfX2Vycm9yOiBNb25rZXlFY3hFcnJvclJlc3BvbnNlIHwgbnVsbCA9IG51bGw7XG5cbiAgX19oYW5kbGVkRXJyb3I6IE1vbmtleUVjeEhhbmRsZWRFcnJvclJlc3BvbnNlIHwgbnVsbCA9IG51bGw7XG5cbiAgX19wYWdlOiBNb25rZXlFY3hSZXNwb25zZVBhZ2VkIHwgbnVsbCA9IG51bGw7XG5cbiAgX19saW5rczogTW9ua2V5RWN4UmVzcG9uc2VMaW5rcyB8IG51bGwgPSBudWxsO1xuXG4gIF9fc2VhcmNoOiBhbnk7XG5cbiAgX19yZXF1ZXN0UGFnZWQ6IE1vbmtleUVjeFJlcXVlc3RQYWdlZCB8IG51bGwgPSBudWxsO1xuXG4gIF9fb25TZWFyY2hDaGFuZ2VkJDogQmVoYXZpb3JTdWJqZWN0PGFueT4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KG51bGwpO1xuXG4gIF9fb25EYXRhQ2hhbmdlZCQ6IEJlaGF2aW9yU3ViamVjdDxhbnk+ID0gbmV3IEJlaGF2aW9yU3ViamVjdChudWxsKTtcblxuICBfX29uTG9hZGluZ0luUHJvZ3Jlc3MkOiBCZWhhdmlvclN1YmplY3Q8YW55PiA9IG5ldyBCZWhhdmlvclN1YmplY3QoZmFsc2UpO1xuXG4gIF9fb25VcGxvYWRJblByb2dyZXNzJDogQmVoYXZpb3JTdWJqZWN0PGFueT4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KGZhbHNlKTtcblxuICBfX29uRGF0YURlbGV0ZWQkOiBCZWhhdmlvclN1YmplY3Q8YW55PiA9IG5ldyBCZWhhdmlvclN1YmplY3QobnVsbCk7XG5cbiAgX19vbkVycm9yQ2hhbmdlZCQ6IEJlaGF2aW9yU3ViamVjdDxhbnk+ID0gbmV3IEJlaGF2aW9yU3ViamVjdChudWxsKTtcblxuICBfX29uR292ZXJubWVudElkRGF0YUNoYW5nZWQkOiBCZWhhdmlvclN1YmplY3Q8YW55PiA9IG5ldyBCZWhhdmlvclN1YmplY3QobnVsbCk7XG5cbiAgX19vblppcENvZGVEYXRhQ2hhbmdlZCQ6IEJlaGF2aW9yU3ViamVjdDxhbnk+ID0gbmV3IEJlaGF2aW9yU3ViamVjdChudWxsKTtcblxuICBfX29uaTE4bkRhdGFDaGFuZ2VkJDogQmVoYXZpb3JTdWJqZWN0PGFueT4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KG51bGwpO1xuXG4gIF9fb25Eb1NlYXJjaCQ6IEJlaGF2aW9yU3ViamVjdDxNb25rZXlFY3hSZXF1ZXN0UGFnZWQ+ID0gbmV3IEJlaGF2aW9yU3ViamVjdCh7fSk7XG5cbiAgX190b2tlbkNyZWRlbnRpYWxzOiBNb25rZXlFY3hUb2tlbkNyZWRlbnRpYWxzIHwgbnVsbCA9IG51bGw7XG5cbiAgX19zY2hlZHVsZTogTW9ua2V5RWN4UmVxdWVzdFNjaGVkdWxlIHwgbnVsbCA9IG51bGw7XG5cbiAgX19pMThuOiBhbnk7XG5cbiAgX19jYWxsYmFja1BhZ2luYXRpb246IEZ1bmN0aW9uID0gKCkgPT4ge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gICAgcmV0dXJuIGNvbnNvbGUuZXJyb3IoJ01ldGhvZCBjYWxsYmFja1BhZ2luYXRpb24gbmVlZHMgdG8gYmUgZGVjbGFyZWQnKTtcbiAgfTtcblxuICBfX3BhZ2luYXRpb25PcHRpb25zOiB7XG4gICAgc2VydmljZTogTW9ua2V5RWN4UGFnaW5hdGlvblNlcnZpY2U7XG4gICAgY2FsbGJhY2s6IEZ1bmN0aW9uO1xuICAgIG5hbWU/OiBzdHJpbmc7XG4gIH0gfCB1bmRlZmluZWQ7XG5cbiAgX19pc0FibGVUb0RvUGFnaW5hdGlvbiA9IHt9O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBtb25rZXllY3hTZXJ2aWNlPzogTW9ua2V5RWN4U2VydmljZSxcbiAgICBwdWJsaWMgdG9rZW5TdG9yYWdlPzogTW9ua2V5RWN4VG9rZW5TdG9yYWdlU2VydmljZSxcbiAgICBwdWJsaWMgb3RoZXJBcmdzPzoge1xuICAgICAgcm91dGVyPzogUm91dGVyO1xuICAgICAgc2NoZWR1bGU/OiB7XG4gICAgICAgIHNlcnZpY2U6IE1vbmtleUVjeFJlcXVlc3RTY2hlZHVsZVNlcnZpY2U7XG4gICAgICAgIG9wdGlvbnM/OiB7XG4gICAgICAgICAgY2xlYXJPbkNoYW5nZVJvdXRlPzogYm9vbGVhbjtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgICBxdWV1ZT86IHtcbiAgICAgICAgc2VydmljZTogTW9ua2V5RWN4UmVxdWVzdFF1ZXVlSGFuZGxpbmdTZXJ2aWNlO1xuICAgICAgfTtcbiAgICB9XG4gICkge1xuICAgIHRoaXMuaGFuZGxlSW5pdCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVJbml0KCkge1xuICAgIGlmICh0aGlzLnRva2VuU3RvcmFnZSkge1xuICAgICAgdGhpcy5fX3Rva2VuQ3JlZGVudGlhbHMgPSB0aGlzLnRva2VuU3RvcmFnZS5nZXRUb2tlbigpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLm90aGVyQXJncz8ucm91dGVyKSB7XG4gICAgICBjb25zdCB7IGNsZWFyT25DaGFuZ2VSb3V0ZSB9ID0gdGhpcy5vdGhlckFyZ3M/LnNjaGVkdWxlPy5vcHRpb25zIHx8IHtcbiAgICAgICAgY2xlYXJPbkNoYW5nZVJvdXRlOiBmYWxzZVxuICAgICAgfTtcbiAgICAgIHRoaXMub3RoZXJBcmdzLnJvdXRlci5ldmVudHNcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgZmlsdGVyKChldmVudDogYW55KSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uU3RhcnQ7XG4gICAgICAgICAgfSksXG4gICAgICAgICAgdGFrZSgxKVxuICAgICAgICApXG4gICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgIGlmICh0aGlzLl9fc2NoZWR1bGUgJiYgY2xlYXJPbkNoYW5nZVJvdXRlKSB7XG4gICAgICAgICAgICB0aGlzLm90aGVyQXJncz8uc2NoZWR1bGU/LnNlcnZpY2U/LnJlbW92ZVNjaGVkdWxlKHRoaXMuX19zY2hlZHVsZSk7XG4gICAgICAgICAgICB0aGlzLl9fc2NoZWR1bGUgPSBudWxsO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBuYXZpZ2F0ZVRvUGVuZGVuY3lQYWdlKGFyZzogTW9ua2V5RWN4Q29tcGFueVBlbmRlbmNpZXNWYWxpZGF0ZWQsIHJvdXRlcj86IFJvdXRlcikge1xuICAgIGNvbnN0IHsgY29tcGFueVR5cGUgfSA9IHRoaXMuX190b2tlbkNyZWRlbnRpYWxzIHx8IHtcbiAgICAgIGNvbXBhbnlUeXBlOiAnJ1xuICAgIH07XG4gICAgbGV0IHJvdXRlID0gJy9hcHAnO1xuXG4gICAgaWYgKGNvbXBhbnlUeXBlKSB7XG4gICAgICByb3V0ZSA9IGAke3JvdXRlfS8ke2NvbXBhbnlUeXBlfS9wYWdlc2A7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJvdXRlID0gYCR7cm91dGV9L3VzZXIvcHJvZmlsZS9wYWdlc2A7XG4gICAgfVxuXG4gICAgaWYgKCFyb3V0ZXIpIHtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gICAgICBjb25zb2xlLmVycm9yKCdSb3V0ZXIgbXVzdCBiZSBkZWNsYXJlZCcpO1xuICAgIH0gZWxzZSB7XG4gICAgICByb3V0ZXIubmF2aWdhdGUoW2Ake3JvdXRlfS9jb21wYW55LXBlbmRlbmN5YC50b0xvd2VyQ2FzZSgpXSwge1xuICAgICAgICBzdGF0ZToge1xuICAgICAgICAgIHBlbmRlbmN5RGF0YTogYXJnXG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZ2V0Um9sZSgpOiBzdHJpbmcge1xuICAgIGNvbnN0IHsgX190b2tlbkNyZWRlbnRpYWxzIH0gPSB0aGlzO1xuXG4gICAgaWYgKCFfX3Rva2VuQ3JlZGVudGlhbHMpIHJldHVybiAnJztcblxuICAgIGlmIChfX3Rva2VuQ3JlZGVudGlhbHM/LnByb2dyYW1BZG1pbiA9PT0gJ3RydWUnKSB7XG4gICAgICByZXR1cm4gJ1BST0dSQU1fQURNSU4nO1xuICAgIH1cblxuICAgIHJldHVybiBfX3Rva2VuQ3JlZGVudGlhbHM/LnJvbGUgfHwgJyc7XG4gIH1cblxuICBwcml2YXRlIGFsbG93ZWRTZWN1cml0eUFjY2Vzc0J5UGVuZGVuY3koYXJnczogYW55KTogTW9ua2V5RWN4Q29tcGFueVBlbmRlbmNpZXNWYWxpZGF0ZWQge1xuICAgIGlmICghYXJncykge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgaGFzUGVuZGVuY2llczogZmFsc2VcbiAgICAgIH07XG4gICAgfVxuICAgIGNvbnN0IHsgc2VydmljZSwgdHlwZSB9ID0gYXJncztcbiAgICByZXR1cm4gc2VydmljZS5oYXNQZW5kZW5jaWVzKHR5cGUpO1xuICB9XG5cbiAgcHJpdmF0ZSBhbGxvd2VkU2VjdXJpdHlBY2Nlc3NCeUZlYXR1cmUoYXJnczogYW55KTogYm9vbGVhbiB7XG4gICAgaWYgKCFhcmdzKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgY29uc3QgeyBjb25maWcsIGZlYXR1cmUgfSA9IGFyZ3M7XG4gICAgdHJ5IHtcbiAgICAgIGlmICghTW9ua2V5RWN4VXRpbHMucGVyc2lzdE51bGxFbXB0eVVuZGVmaW5lZChmZWF0dXJlKSB8fFxuICAgICAgICAhTW9ua2V5RWN4VXRpbHMucGVyc2lzdE51bGxFbXB0eVVuZGVmaW5lZChjb25maWc/LnByb2dyYW0/LnNldHRpbmdzKSkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIHJldHVybiAhY29uZmlnPy5wcm9ncmFtPy5zZXR0aW5ncz8uW2ZlYXR1cmVdO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIC8vIG5vdCB0byBkb1xuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHByaXZhdGUgYWxsb3dlZFNlY3VyaXR5QWNjZXNzQnlDb3VudHJ5KGFyZz86IE1vbmtleUVjeENvdW50cnlTZWN1cml0eSk6IGJvb2xlYW4ge1xuICAgIGlmICghYXJnKSByZXR1cm4gdHJ1ZTtcbiAgICByZXR1cm4gYXJnLmNvdW50cnkgPT09IGFyZy5lbnZDb3VudHJ5O1xuICB9XG5cbiAgcHJpdmF0ZSBhbGxvd2VkU2VjdXJpdHlBY2Nlc3MoYXJnczogYW55KTogYm9vbGVhbiB7XG4gICAgaWYgKCFhcmdzKSByZXR1cm4gdHJ1ZTtcbiAgICBjb25zdCByb2xlcyA9IGFyZ3M/LnJvbGVzO1xuICAgIGNvbnN0IGJ5RXhjbHVzaW9uID0gYXJncz8uYnlFeGNsdXNpb247XG4gICAgY29uc3QgZm91bmQgPSByb2xlcz8uaW5kZXhPZih0aGlzLmdldFJvbGUoKSk7XG4gICAgbGV0IHJldCA9IGZhbHNlO1xuICAgIGlmIChieUV4Y2x1c2lvbikge1xuICAgICAgcmV0ID0gdHJ1ZTtcbiAgICAgIGlmIChmb3VuZCA+IC0xKSB7XG4gICAgICAgIHJldCA9IGZhbHNlO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICByZXQgPSBmYWxzZTtcbiAgICAgIGlmIChmb3VuZCA+IC0xKSB7XG4gICAgICAgIHJldCA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuICAgIGlmICghcm9sZXMgfHwgcm9sZXMubGVuZ3RoID09PSAwIHx8IHRoaXMuZ2V0Um9sZSgpID09PSAnUFJPR1JBTV9BRE1JTicpIHtcbiAgICAgIHJldCA9IHRydWU7XG4gICAgfVxuICAgIHJldHVybiByZXQ7XG4gIH1cblxuICBwcml2YXRlIG5hdmlnYXRlVG9FcnJvclBhZ2Uoc3RhdHVzQ29kZTogbnVtYmVyLCByb3V0ZXI/OiBSb3V0ZXIpIHtcbiAgICBjb25zdCByb3V0ZXM6IGFueSA9IHtcbiAgICAgIDQwMzogJ2ZvcmJpZGRlbicsXG4gICAgICA0MDQ6ICdub3QtZm91bmQnLFxuICAgICAgNTAwOiAnc2VydmljZS1wcm9ibGVtcycsXG4gICAgICA1MDM6ICdzZXJ2aWNlLXByb2JsZW1zJ1xuICAgIH07XG5cbiAgICBpZiAoIXJvdXRlcikge1xuICAgICAgY29uc29sZS5lcnJvcignUm91dGVyIG11c3QgYmUgZGVjbGFyZWQnKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcm91dGVyPy5uYXZpZ2F0ZShbYC9hcHAvcGFnZXMvJHtyb3V0ZXNbc3RhdHVzQ29kZV19YC50b0xvd2VyQ2FzZSgpXSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVQYWdpbmF0aW9uT3B0aW9ucygpIHtcbiAgICBjb25zdCB7IF9fcGFnaW5hdGlvbk9wdGlvbnMgfSA9IHRoaXM7XG4gICAgaWYgKF9fcGFnaW5hdGlvbk9wdGlvbnMpIHtcbiAgICAgIGNvbnN0IHsgc2VydmljZSwgY2FsbGJhY2ssIG5hbWUgfSA9IF9fcGFnaW5hdGlvbk9wdGlvbnM7XG4gICAgICBzZXJ2aWNlPy5zZXRDYWxsYmFjaygodHlwZTogc3RyaW5nKSA9PiB7XG4gICAgICAgIHRoaXMuZG9QYWdpbmF0aW9udjIodHlwZSwgY2FsbGJhY2spO1xuICAgICAgfSwgbmFtZSB8fCAnbWFpbicpO1xuICAgIH1cbiAgfVxuXG4gIHNldFBhZ2UocmVxdWVzdFBhZ2VkOiBNb25rZXlFY3hSZXF1ZXN0UGFnZWQpIHtcbiAgICB0aGlzLl9fcmVxdWVzdFBhZ2VkID0ge1xuICAgICAgLi4udGhpcy5fX3JlcXVlc3RQYWdlZCxcbiAgICAgIC4uLnJlcXVlc3RQYWdlZFxuICAgIH07XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBuZXh0UGFnZSgpOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy5fX2xpbmtzKSB7XG4gICAgICByZXR1cm4gISF0aGlzLl9fbGlua3M/Lm5leHQ7XG4gICAgfVxuICAgIGlmICghdGhpcy5fX3JlcXVlc3RQYWdlZCkgcmV0dXJuIGZhbHNlO1xuICAgIGNvbnN0IHsgcGFnZSB9ID0gdGhpcy5fX3JlcXVlc3RQYWdlZCBhcyBhbnk7XG4gICAgY29uc3QgeyBudW1iZXIsIHRvdGFsUGFnZXMgfSA9IHBhZ2U7XG4gICAgaWYgKG51bWJlciA8IHRvdGFsUGFnZXMpIHtcbiAgICAgIHRoaXMuX19yZXF1ZXN0UGFnZWQgPSB7XG4gICAgICAgIC4uLnRoaXMuX19yZXF1ZXN0UGFnZWQsXG4gICAgICAgIHBhZ2U6IHtcbiAgICAgICAgICAuLi5wYWdlLFxuICAgICAgICAgIG51bWJlcjogbnVtYmVyICsgMVxuICAgICAgICB9XG4gICAgICB9O1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGdldEVtYmVkZGVkRGF0YShkYXRhOiBhbnksIGZpZWxkOiBzdHJpbmcpOiBhbnlbXSB8IGFueSB7XG4gICAgY29uc3QgeyBfZW1iZWRkZWQgfSA9IGRhdGE7XG4gICAgcmV0dXJuIF9lbWJlZGRlZCA/IF9lbWJlZGRlZFtmaWVsZF0gOiBudWxsO1xuICB9XG5cbiAgZ2V0Tm9ybWFsaXplZFVybCh1cmw6IHN0cmluZywgc2FtZVBhZ2UgPSBmYWxzZSk6IHN0cmluZyB7XG4gICAgY29uc3QgeyBfX3JlcXVlc3RQYWdlZCwgX19saW5rcyB9ID0gdGhpcztcbiAgICByZXR1cm4gbmV3IE1vbmtleUVjeFJlcXVlc3RQYWdlZEhhbmRsaW5nKFxuICAgICAgdXJsLFxuICAgICAgX19yZXF1ZXN0UGFnZWQgfHwge30sXG4gICAgICBfX2xpbmtzLFxuICAgICAgc2FtZVBhZ2VcbiAgICApLmdldFJlcXVlc3RXaXRoUGFnZWRQYXJhbXMoKTtcbiAgfVxuXG4gIGNsZWFyKGNsZWFyRGF0YTogYm9vbGVhbikge1xuICAgIGlmIChjbGVhckRhdGEpIHtcbiAgICAgIHRoaXMuX19kYXRhID0gbnVsbDtcbiAgICAgIHRoaXMuX19yZXF1ZXN0UGFnZWQgPSBudWxsO1xuICAgICAgdGhpcy5fX3BhcmFtcyA9IG51bGw7XG4gICAgICB0aGlzLl9fcGFnZSA9IG51bGw7XG4gICAgICB0aGlzLl9fbGlua3MgPSBudWxsO1xuXG4gICAgICBpZiAodGhpcy5fX3NjaGVkdWxlKSB7XG4gICAgICAgIGNvbnN0IHsgcXVldWUgfSA9IHRoaXMuX19zY2hlZHVsZTtcbiAgICAgICAgaWYgKHF1ZXVlKSB7XG4gICAgICAgICAgdGhpcy5vdGhlckFyZ3M/LnF1ZXVlPy5zZXJ2aWNlPy5yZW1vdmVRdWV1ZUl0ZW0ocXVldWUpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMub3RoZXJBcmdzPy5zY2hlZHVsZT8uc2VydmljZT8ucmVtb3ZlU2NoZWR1bGUodGhpcy5fX3NjaGVkdWxlKTtcbiAgICAgICAgdGhpcy5fX3NjaGVkdWxlID0gbnVsbDtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5fX2Vycm9yID0gbnVsbDtcbiAgICB0aGlzLl9faGFuZGxlZEVycm9yID0gbnVsbDtcbiAgICB0aGlzLmZsYWdWYWxpZGF0b3IgPSBmYWxzZTtcbiAgfVxuXG4gIHJlc29sdmUoXG4gICAgcm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QgfCBudWxsLFxuICAgIHN0YXRlOiBSb3V0ZXJTdGF0ZVNuYXBzaG90IHwgbnVsbCxcbiAgICBvdGhlckFyZ3M/OiB7XG4gICAgICBjYWxsYmFja01haW46IEZ1bmN0aW9uO1xuICAgICAgcm91dGVyPzogUm91dGVyO1xuICAgICAgc2VjdXJpdHk/OiB7XG4gICAgICAgIHJvbGVzOiBzdHJpbmdbXTtcbiAgICAgICAgYnlFeGNsdXNpb24/OiBib29sZWFuO1xuICAgICAgfTtcbiAgICAgIGNhbGxiYWNrUGFnaW5hdGlvbj86IEZ1bmN0aW9uO1xuICAgICAgdHJhbnNsYXRlT3B0aW9ucz86IE1vbmtleUVjeFRyYW5zbGF0ZU9wdGlvbnM7XG4gICAgICBmZWF0dXJlPzoge1xuICAgICAgICBzZXJ2aWNlOiBNb25rZXlFY3hGZWF0dXJlVG9nZ2xlU2VydmljZTtcbiAgICAgICAgZmxhZzogc3RyaW5nO1xuICAgICAgfTtcbiAgICAgIGZlYXR1cmVCeVByb2dyYW0/OiB7XG4gICAgICAgIGNvbmZpZzogTW9ua2V5RWN4Q29uZmlnO1xuICAgICAgICBmZWF0dXJlOiBzdHJpbmc7XG4gICAgICB9O1xuICAgICAgY291bnRyeVNlY3VyaXR5PzogTW9ua2V5RWN4Q291bnRyeVNlY3VyaXR5O1xuICAgICAgcGVuZGVuY3k/OiB7XG4gICAgICAgIHNlcnZpY2U6IHtcbiAgICAgICAgICBoYXNQZW5kZW5jaWVzOiBGdW5jdGlvbjtcbiAgICAgICAgfTtcbiAgICAgICAgdHlwZTogc3RyaW5nO1xuICAgICAgfTtcbiAgICAgIHBhZ2luYXRpb25PcHRpb25zPzoge1xuICAgICAgICBzZXJ2aWNlOiBNb25rZXlFY3hQYWdpbmF0aW9uU2VydmljZSxcbiAgICAgICAgY2FsbGJhY2s6IEZ1bmN0aW9uLFxuICAgICAgICBuYW1lPzogc3RyaW5nXG4gICAgICB9XG4gICAgfVxuICApIHtcbiAgICBpZiAoSlNPTi5zdHJpbmdpZnkocm91dGU/LnF1ZXJ5UGFyYW1zKSA9PT0gJ3t9Jykge1xuICAgICAgdGhpcy5fX2RhdGEgPSBudWxsO1xuICAgICAgdGhpcy5fX3BhZ2UgPSBudWxsO1xuICAgIH1cblxuICAgIHRoaXMuX19yZXF1ZXN0UGFnZWQgPSBudWxsO1xuICAgIHRoaXMuZmxhZ1ZhbGlkYXRvciA9IHRydWU7XG5cbiAgICBpZiAodGhpcy50b2tlblN0b3JhZ2UpIHtcbiAgICAgIHRoaXMuX190b2tlbkNyZWRlbnRpYWxzID0gdGhpcy50b2tlblN0b3JhZ2UuZ2V0VG9rZW4oKTtcbiAgICB9XG5cbiAgICBjb25zdCBwZW5kID0gdGhpcy5hbGxvd2VkU2VjdXJpdHlBY2Nlc3NCeVBlbmRlbmN5KG90aGVyQXJncz8ucGVuZGVuY3kpO1xuICAgIGNvbnN0IGFsbG93ZWRCeVByb2dyYW0gPSB0aGlzLmFsbG93ZWRTZWN1cml0eUFjY2Vzc0J5RmVhdHVyZShvdGhlckFyZ3M/LmZlYXR1cmVCeVByb2dyYW0pO1xuXG4gICAgaWYgKFxuICAgICAgdGhpcy5hbGxvd2VkU2VjdXJpdHlBY2Nlc3Mob3RoZXJBcmdzPy5zZWN1cml0eSkgJiZcbiAgICAgIHRoaXMuYWxsb3dlZFNlY3VyaXR5QWNjZXNzQnlDb3VudHJ5KG90aGVyQXJncz8uY291bnRyeVNlY3VyaXR5KSAmJlxuICAgICAgIXBlbmQuaGFzUGVuZGVuY2llcyAmJlxuICAgICAgYWxsb3dlZEJ5UHJvZ3JhbVxuICAgICkge1xuICAgICAgaWYgKHRoaXMuX19zY2hlZHVsZSkge1xuICAgICAgICB0aGlzLm90aGVyQXJncz8uc2NoZWR1bGU/LnNlcnZpY2U/LnJlbW92ZVNjaGVkdWxlKHRoaXMuX19zY2hlZHVsZSk7XG4gICAgICAgIHRoaXMuX19zY2hlZHVsZSA9IG51bGw7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHsgX19yZXF1ZXN0UGFnZWQgfSA9IHRoaXM7XG4gICAgICBpZiAoIV9fcmVxdWVzdFBhZ2VkKSB7XG4gICAgICAgIHRoaXMuc2V0UGFnZSh7XG4gICAgICAgICAgcGFnZToge1xuICAgICAgICAgICAgbnVtYmVyOiAwLFxuICAgICAgICAgICAgc2l6ZTogMTBcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICBpZiAob3RoZXJBcmdzPy50cmFuc2xhdGVPcHRpb25zKSB7XG4gICAgICAgIGNvbnN0IHsgc2VydmljZSwga2V5cyB9ID0gb3RoZXJBcmdzPy50cmFuc2xhdGVPcHRpb25zO1xuICAgICAgICB0aGlzLmdldGkxOG4oc2VydmljZSwga2V5cyB8fCAnJyk7XG4gICAgICB9XG5cbiAgICAgIGlmIChvdGhlckFyZ3M/LmNhbGxiYWNrUGFnaW5hdGlvbikge1xuICAgICAgICB0aGlzLl9fY2FsbGJhY2tQYWdpbmF0aW9uID0gb3RoZXJBcmdzLmNhbGxiYWNrUGFnaW5hdGlvbjtcbiAgICAgIH1cblxuICAgICAgaWYgKG90aGVyQXJncz8ucGFnaW5hdGlvbk9wdGlvbnMpIHtcbiAgICAgICAgdGhpcy5fX3BhZ2luYXRpb25PcHRpb25zID0gb3RoZXJBcmdzPy5wYWdpbmF0aW9uT3B0aW9ucztcbiAgICAgICAgdGhpcy5oYW5kbGVQYWdpbmF0aW9uT3B0aW9ucygpO1xuICAgICAgfVxuXG4gICAgICBpZiAob3RoZXJBcmdzPy5mZWF0dXJlKSB7XG4gICAgICAgIGNvbnN0IHsgZmxhZywgc2VydmljZSB9ID0gb3RoZXJBcmdzLmZlYXR1cmU7XG5cbiAgICAgICAgc2VydmljZS5vbkZsYWdzXG4gICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICB0YWtlV2hpbGUoKCkgPT4ge1xuICAgICAgICAgICAgICByZXR1cm4gdGhpcy5mbGFnVmFsaWRhdG9yO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICApXG4gICAgICAgICAgLnN1YnNjcmliZSgodmFsOiBib29sZWFuKSA9PiB7XG4gICAgICAgICAgICBpZiAodmFsKSB7XG4gICAgICAgICAgICAgIGNvbnN0IGhhc0ZsYWcgPSBzZXJ2aWNlLmdldEZsYWcoZmxhZyk7XG5cbiAgICAgICAgICAgICAgaWYgKE1vbmtleUVjeFV0aWxzLnBlcnNpc3ROdWxsRW1wdHlVbmRlZmluZWQoaGFzRmxhZykpIHtcbiAgICAgICAgICAgICAgICBpZiAoIWhhc0ZsYWcpIHtcbiAgICAgICAgICAgICAgICAgIHRoaXMubmF2aWdhdGVUb0Vycm9yUGFnZSg0MDQsIG90aGVyQXJncz8ucm91dGVyKTtcbiAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgb3RoZXJBcmdzPy5jYWxsYmFja01haW4oKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG90aGVyQXJncz8uY2FsbGJhY2tNYWluKCk7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmICghYWxsb3dlZEJ5UHJvZ3JhbSkge1xuICAgICAgdGhpcy5uYXZpZ2F0ZVRvRXJyb3JQYWdlKDQwNCwgb3RoZXJBcmdzPy5yb3V0ZXIpO1xuICAgIH0gZWxzZSBpZiAocGVuZC5oYXNQZW5kZW5jaWVzKSB7XG4gICAgICB0aGlzLm5hdmlnYXRlVG9QZW5kZW5jeVBhZ2UocGVuZCwgb3RoZXJBcmdzPy5yb3V0ZXIpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm5hdmlnYXRlVG9FcnJvclBhZ2UoNDAzLCBvdGhlckFyZ3M/LnJvdXRlcik7XG4gICAgfVxuICB9XG5cbiAgZ2V0SFRUUEhlYWRlckFwcGxpY2F0aW9uUERGKCk6IE9iamVjdCB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG9ic2VydmU6ICdyZXNwb25zZScsXG4gICAgICByZXNwb25zZVR5cGU6ICdibG9iJ1xuICAgIH07XG4gIH1cblxuICBATW9ua2V5RWN4Q29yZVNlcnZpY2Uoe1xuICAgIHJlcXVlc3RJblByb2dyZXNzOiB7XG4gICAgICBzaG93UHJvZ3Jlc3M6IHRydWVcbiAgICB9XG4gIH0pXG4gIGdlbmVyaWNNZXRob2QobGluazogYW55LCBkYXRhPzogYW55LCBjYWxsYmFjaz86IEZ1bmN0aW9uKSB7XG4gICAgY29uc3QgeyBocmVmLCB0eXBlID0gJ2dldCcgfSA9IGxpbms7XG5cbiAgICB0aGlzLm1vbmtleWVjeFNlcnZpY2U/Llt0eXBlLnRvTG93ZXJDYXNlKCldKGAke2hyZWZ9YCwgZGF0YSk/LnN1YnNjcmliZShcbiAgICAgIChyZXNwOiBhbnkpID0+IHtcbiAgICAgICAgaWYgKGNhbGxiYWNrKSBjYWxsYmFjayhyZXNwKTtcbiAgICAgIH0sXG4gICAgICAoZXJyOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4ge1xuICAgICAgICBpZiAoY2FsbGJhY2spIGNhbGxiYWNrKCk7XG4gICAgICAgIHRocm93RXJyb3IoZXJyKTtcbiAgICAgIH1cbiAgICApO1xuICB9XG5cbiAgZ2V0aTE4bih0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLCBrZXlzOiBzdHJpbmcgfCBzdHJpbmdbXSkge1xuICAgIHRyYW5zbGF0ZVNlcnZpY2Uub25EZWZhdWx0TGFuZ0NoYW5nZS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5fX2kxOG4gPSB0cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoa2V5cyk7XG4gICAgICB0aGlzLl9fb25pMThuRGF0YUNoYW5nZWQkLm5leHQobnVsbCk7XG4gICAgfSk7XG4gICAgdHJhbnNsYXRlU2VydmljZS5nZXRTdHJlYW1PblRyYW5zbGF0aW9uQ2hhbmdlKGtleXMpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLl9faTE4biA9IHRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChrZXlzKTtcbiAgICAgIHRoaXMuX19vbmkxOG5EYXRhQ2hhbmdlZCQubmV4dChudWxsKTtcbiAgICB9KTtcbiAgfVxuXG4gIGRvUGFnaW5hdGlvbigpIHtcbiAgICBpZiAoIXRoaXMuX19vbkxvYWRpbmdJblByb2dyZXNzJC52YWx1ZSkge1xuICAgICAgY29uc3QgaGFzTW9yZVBhZ2VzID0gdGhpcy5zZXRQYWdlKHtcbiAgICAgICAgcGFnZToge1xuICAgICAgICAgIC4uLnRoaXMuX19wYWdlXG4gICAgICAgIH1cbiAgICAgIH0pLm5leHRQYWdlKCk7XG5cbiAgICAgIGlmIChoYXNNb3JlUGFnZXMgJiYgdGhpcy5fX2NhbGxiYWNrUGFnaW5hdGlvbikge1xuICAgICAgICB0aGlzLl9fY2FsbGJhY2tQYWdpbmF0aW9uKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgZG9QYWdpbmF0aW9udjIodHlwZTogc3RyaW5nLCBjYWxsYmFjazogRnVuY3Rpb24pIHtcbiAgICBpZiAoIXRoaXMuX19vbkxvYWRpbmdJblByb2dyZXNzJC52YWx1ZSkge1xuICAgICAgaWYgKGNhbGxiYWNrKSB7XG4gICAgICAgIGNhbGxiYWNrKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgc2V0TGlua3MobGlua3M6IGFueSkge1xuICAgIHRoaXMuX19pc0FibGVUb0RvUGFnaW5hdGlvbiA9IHtcbiAgICAgIGZpcnN0OiAhIWxpbmtzPy5maXJzdCxcbiAgICAgIG5leHQ6ICEhbGlua3M/Lm5leHRcbiAgICB9O1xuICAgIHRoaXMuX19saW5rcyA9IGxpbmtzO1xuICB9XG5cbiAgc2V0U2VhcmNoQnlVcmwocm91dGVyOiBSb3V0ZXIsIHVybDogc3RyaW5nLCBzZWFyY2g6IGFueSwgZXh0cmFzPzogYW55KSB7XG4gICAgdGhpcy5fX2RhdGEgPSBudWxsO1xuICAgIHRoaXMuX19wYWdlID0gbnVsbDtcbiAgICB0aGlzLl9fb25EYXRhQ2hhbmdlZCQubmV4dChudWxsKTtcbiAgICB0aGlzLl9fb25Mb2FkaW5nSW5Qcm9ncmVzcyQubmV4dChmYWxzZSk7XG5cbiAgICByb3V0ZXIubmF2aWdhdGUoW3VybF0sIHtcbiAgICAgIHF1ZXJ5UGFyYW1zOiB7XG4gICAgICAgIC4uLnNlYXJjaCxcbiAgICAgICAgcjogTW9ua2V5RWN4VXRpbHMuZ2V0UmFuZG9tU3RyaW5nKDMwKVxuICAgICAgfSxcbiAgICAgIHF1ZXJ5UGFyYW1zSGFuZGxpbmc6ICdtZXJnZScsXG4gICAgICAuLi5leHRyYXNcbiAgICB9KTtcbiAgfVxuXG4gIHNhdmVTdGF0ZShzdGF0ZTogTW9ua2V5RWN4U2F2ZWRTdGF0ZSkge1xuICAgIHRoaXMuX19zYXZlZFN0YXRlID0ge1xuICAgICAgcGFnZTogdGhpcy5fX3BhZ2UsXG4gICAgICAuLi5zdGF0ZVxuICAgIH07XG4gIH1cbn1cbiJdfQ==
398
+ __decorate([
399
+ MonkeyEcxCoreService({
400
+ requestInProgress: {
401
+ showProgress: true
402
+ }
403
+ })
404
+ ], MonkeyEcxCommonsService.prototype, "getGenericData", null);
405
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9ua2V5ZWN4LWNvbW1vbnMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21vbmtleS1mcm9udC1jb3JlL3NyYy9saWIvY29yZS9zZXJ2aWNlcy9jb21tb25zL21vbmtleWVjeC1jb21tb25zLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFFTCxlQUFlLEVBR2hCLE1BQU0saUJBQWlCLENBQUM7QUFHekIsT0FBTyxFQUFFLGVBQWUsRUFBYyxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0QsT0FBTyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFrQnpELE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLDJEQUEyRCxDQUFDO0FBRTFHLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUc3RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRTdDLE1BQU0sVUFBVyxTQUFRLGNBQWM7SUFDckMsWUFBWSxJQUFVO1FBQ3BCLEtBQUssRUFBRSxDQUFDO1FBQ1IsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLEVBQUUsTUFBTSxDQUFDO0lBQzdCLENBQUM7Q0FDRjtBQUVELE1BQU0sT0FBTyx1QkFBdUI7SUFrRWxDLFlBQ1MsZ0JBQW1DLEVBQ25DLFlBQTJDLEVBQzNDLFNBV047UUFiTSxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQW1CO1FBQ25DLGlCQUFZLEdBQVosWUFBWSxDQUErQjtRQUMzQyxjQUFTLEdBQVQsU0FBUyxDQVdmO1FBL0VLLGtCQUFhLEdBQUcsSUFBSSxDQUFDO1FBRTdCLFlBQU8sR0FBMkIsSUFBSSxDQUFDO1FBRXZDLGtCQUFhLEdBQTJCLElBQUksQ0FBQztR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e1xuICBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LFxuICBOYXZpZ2F0aW9uU3RhcnQsXG4gIFJvdXRlcixcbiAgUm91dGVyU3RhdGVTbmFwc2hvdFxufSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgSHR0cEVycm9yUmVzcG9uc2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIHRocm93RXJyb3IgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpbHRlciwgdGFrZSwgdGFrZVdoaWxlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtcbiAgTW9ua2V5RWN4RXJyb3JSZXNwb25zZSxcbiAgTW9ua2V5RWN4SGFuZGxlZEVycm9yUmVzcG9uc2UsXG4gIE1vbmtleUVjeFJlcXVlc3RQYWdlZCxcbiAgTW9ua2V5RWN4UmVxdWVzdFNjaGVkdWxlLFxuICBNb25rZXlFY3hSZXNwb25zZVBhZ2VkLFxuICBNb25rZXlFY3hSZXNwb25zZUxpbmtzLFxuICBNb25rZXlFY3hUb2tlbkNyZWRlbnRpYWxzLFxuICBNb25rZXlFY3hUcmFuc2xhdGVPcHRpb25zLFxuICBNb25rZXlFY3hDb21wYW55UGVuZGVuY2llc1ZhbGlkYXRlZCxcbiAgTW9ua2V5RWN4Q291bnRyeVNlY3VyaXR5LFxuICBNb25rZXlFY3hTYXZlZFN0YXRlLFxuICBNb25rZXlFY3hDb25maWdcbn0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBNb25rZXlFY3hUb2tlblN0b3JhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vc3RvcmFnZS9tb25rZXllY3gtdG9rZW4tc3RvcmFnZS5zZXJ2aWNlJztcbmltcG9ydCB7IE1vbmtleUVjeFJlcXVlc3RTY2hlZHVsZVNlcnZpY2UgfSBmcm9tICcuLi9zY2hlZHVsZXMvbW9ua2V5ZWN4LXJlcXVlc3Qtc2NoZWR1bGUuc2VydmljZSc7XG5pbXBvcnQgeyBNb25rZXlFY3hSZXF1ZXN0UXVldWVIYW5kbGluZ1NlcnZpY2UgfSBmcm9tICcuLi9yZXF1ZXN0LXF1ZXVlL21vbmtleWVjeC1yZXF1ZXN0LXF1ZXVlLWhhbmRsaW5nLnNlcnZpY2UnO1xuaW1wb3J0IHsgTW9ua2V5RWN4UmVxdWVzdFBhZ2VkSGFuZGxpbmcgfSBmcm9tICcuLi9yZXF1ZXN0LXBhZ2VkL21vbmtleWVjeC1yZXF1ZXN0LXJlcXVlc3QtcGFnZWQtaGFuZGxpbmcnO1xuaW1wb3J0IHsgTW9ua2V5RWN4RmVhdHVyZVRvZ2dsZVNlcnZpY2UgfSBmcm9tICcuLi9jb25maWcvbW9ua2V5ZWN4LWZlYXR1cmUtdG9nZ2xlLnNlcnZpY2UnO1xuaW1wb3J0IHsgTW9ua2V5RWN4VXRpbHMgfSBmcm9tICcuLi8uLi91dGlscy91dGlscyc7XG5pbXBvcnQgeyBNb25rZXlFY3hDb3JlU2VydmljZSB9IGZyb20gJy4uLy4uL2RlY29yYXRvcnMvbW9ua2V5ZWN4LWRlY29yYXRvcnMnO1xuaW1wb3J0IHsgTW9ua2V5RWN4U2VydmljZSB9IGZyb20gJy4uL21vbmtleWVjeC1zZXJ2aWNlLnNlcnZpY2UnO1xuaW1wb3J0IHsgTW9ua2V5RWN4UGFnaW5hdGlvblNlcnZpY2UgfSBmcm9tICcuLi9wYWdpbmF0aW9uJztcbmltcG9ydCB7IE1vbmtleUVjeE1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWwnO1xuXG5jbGFzcyBMaW5rc01vZGVsIGV4dGVuZHMgTW9ua2V5RWN4TW9kZWwge1xuICBjb25zdHJ1Y3RvcihkYXRhPzogYW55KSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLl9saW5rcyA9IGRhdGE/Ll9saW5rcztcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgTW9ua2V5RWN4Q29tbW9uc1NlcnZpY2Uge1xuICBwcml2YXRlIGZsYWdWYWxpZGF0b3IgPSB0cnVlO1xuXG4gIF9fZGF0YSQ6IE9ic2VydmFibGU8YW55PiB8IG51bGwgPSBudWxsO1xuXG4gIF9fcGFnaW5hdGlvbiQ6IE9ic2VydmFibGU8YW55PiB8IG51bGwgPSBudWxsO1xuXG4gIF9fY29udHJvbCQ6IE9ic2VydmFibGU8YW55PiB8IG51bGwgPSBudWxsO1xuXG4gIF9fZGF0YTogYW55IHwgYW55W107XG5cbiAgX19zYXZlZFN0YXRlOiBNb25rZXlFY3hTYXZlZFN0YXRlIHwgbnVsbCA9IG51bGw7XG5cbiAgX19wYXJhbXM6IGFueSB8IGFueVtdO1xuXG4gIF9fZXJyb3I6IE1vbmtleUVjeEVycm9yUmVzcG9uc2UgfCBudWxsID0gbnVsbDtcblxuICBfX2hhbmRsZWRFcnJvcjogTW9ua2V5RWN4SGFuZGxlZEVycm9yUmVzcG9uc2UgfCBudWxsID0gbnVsbDtcblxuICBfX3BhZ2U6IE1vbmtleUVjeFJlc3BvbnNlUGFnZWQgfCBudWxsID0gbnVsbDtcblxuICBfX2xpbmtzOiBNb25rZXlFY3hSZXNwb25zZUxpbmtzIHwgbnVsbCA9IG51bGw7XG5cbiAgX19zZWFyY2g6IGFueTtcblxuICBfX3JlcXVlc3RQYWdlZDogTW9ua2V5RWN4UmVxdWVzdFBhZ2VkIHwgbnVsbCA9IG51bGw7XG5cbiAgX19vblNlYXJjaENoYW5nZWQkOiBCZWhhdmlvclN1YmplY3Q8YW55PiA9IG5ldyBCZWhhdmlvclN1YmplY3QobnVsbCk7XG5cbiAgX19vbkRhdGFDaGFuZ2VkJDogQmVoYXZpb3JTdWJqZWN0PGFueT4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KG51bGwpO1xuXG4gIF9fb25Mb2FkaW5nSW5Qcm9ncmVzcyQ6IEJlaGF2aW9yU3ViamVjdDxhbnk+ID0gbmV3IEJlaGF2aW9yU3ViamVjdChmYWxzZSk7XG5cbiAgX19vblVwbG9hZEluUHJvZ3Jlc3MkOiBCZWhhdmlvclN1YmplY3Q8YW55PiA9IG5ldyBCZWhhdmlvclN1YmplY3QoZmFsc2UpO1xuXG4gIF9fb25EYXRhRGVsZXRlZCQ6IEJlaGF2aW9yU3ViamVjdDxhbnk+ID0gbmV3IEJlaGF2aW9yU3ViamVjdChudWxsKTtcblxuICBfX29uRXJyb3JDaGFuZ2VkJDogQmVoYXZpb3JTdWJqZWN0PGFueT4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KG51bGwpO1xuXG4gIF9fb25Hb3Zlcm5tZW50SWREYXRhQ2hhbmdlZCQ6IEJlaGF2aW9yU3ViamVjdDxhbnk+ID0gbmV3IEJlaGF2aW9yU3ViamVjdChudWxsKTtcblxuICBfX29uWmlwQ29kZURhdGFDaGFuZ2VkJDogQmVoYXZpb3JTdWJqZWN0PGFueT4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KG51bGwpO1xuXG4gIF9fb25pMThuRGF0YUNoYW5nZWQkOiBCZWhhdmlvclN1YmplY3Q8YW55PiA9IG5ldyBCZWhhdmlvclN1YmplY3QobnVsbCk7XG5cbiAgX19vbkRvU2VhcmNoJDogQmVoYXZpb3JTdWJqZWN0PE1vbmtleUVjeFJlcXVlc3RQYWdlZD4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KHt9KTtcblxuICBfX3Rva2VuQ3JlZGVudGlhbHM6IE1vbmtleUVjeFRva2VuQ3JlZGVudGlhbHMgfCBudWxsID0gbnVsbDtcblxuICBfX3NjaGVkdWxlOiBNb25rZXlFY3hSZXF1ZXN0U2NoZWR1bGUgfCBudWxsID0gbnVsbDtcblxuICBfX2kxOG46IGFueTtcblxuICBfX2NhbGxiYWNrUGFnaW5hdGlvbjogRnVuY3Rpb24gPSAoKSA9PiB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcbiAgICByZXR1cm4gY29uc29sZS5lcnJvcignTWV0aG9kIGNhbGxiYWNrUGFnaW5hdGlvbiBuZWVkcyB0byBiZSBkZWNsYXJlZCcpO1xuICB9O1xuXG4gIF9fcGFnaW5hdGlvbk9wdGlvbnM6IHtcbiAgICBzZXJ2aWNlOiBNb25rZXlFY3hQYWdpbmF0aW9uU2VydmljZTtcbiAgICBjYWxsYmFjazogRnVuY3Rpb247XG4gICAgbmFtZT86IHN0cmluZztcbiAgfSB8IHVuZGVmaW5lZDtcblxuICBfX2lzQWJsZVRvRG9QYWdpbmF0aW9uID0ge307XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIG1vbmtleWVjeFNlcnZpY2U/OiBNb25rZXlFY3hTZXJ2aWNlLFxuICAgIHB1YmxpYyB0b2tlblN0b3JhZ2U/OiBNb25rZXlFY3hUb2tlblN0b3JhZ2VTZXJ2aWNlLFxuICAgIHB1YmxpYyBvdGhlckFyZ3M/OiB7XG4gICAgICByb3V0ZXI/OiBSb3V0ZXI7XG4gICAgICBzY2hlZHVsZT86IHtcbiAgICAgICAgc2VydmljZTogTW9ua2V5RWN4UmVxdWVzdFNjaGVkdWxlU2VydmljZTtcbiAgICAgICAgb3B0aW9ucz86IHtcbiAgICAgICAgICBjbGVhck9uQ2hhbmdlUm91dGU/OiBib29sZWFuO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICAgIHF1ZXVlPzoge1xuICAgICAgICBzZXJ2aWNlOiBNb25rZXlFY3hSZXF1ZXN0UXVldWVIYW5kbGluZ1NlcnZpY2U7XG4gICAgICB9O1xuICAgIH1cbiAgKSB7XG4gICAgdGhpcy5oYW5kbGVJbml0KCk7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZUluaXQoKSB7XG4gICAgaWYgKHRoaXMudG9rZW5TdG9yYWdlKSB7XG4gICAgICB0aGlzLl9fdG9rZW5DcmVkZW50aWFscyA9IHRoaXMudG9rZW5TdG9yYWdlLmdldFRva2VuKCk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMub3RoZXJBcmdzPy5yb3V0ZXIpIHtcbiAgICAgIGNvbnN0IHsgY2xlYXJPbkNoYW5nZVJvdXRlIH0gPSB0aGlzLm90aGVyQXJncz8uc2NoZWR1bGU/Lm9wdGlvbnMgfHwge1xuICAgICAgICBjbGVhck9uQ2hhbmdlUm91dGU6IGZhbHNlXG4gICAgICB9O1xuICAgICAgdGhpcy5vdGhlckFyZ3Mucm91dGVyLmV2ZW50c1xuICAgICAgICAucGlwZShcbiAgICAgICAgICBmaWx0ZXIoKGV2ZW50OiBhbnkpID0+IHtcbiAgICAgICAgICAgIHJldHVybiBldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25TdGFydDtcbiAgICAgICAgICB9KSxcbiAgICAgICAgICB0YWtlKDEpXG4gICAgICAgIClcbiAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgaWYgKHRoaXMuX19zY2hlZHVsZSAmJiBjbGVhck9uQ2hhbmdlUm91dGUpIHtcbiAgICAgICAgICAgIHRoaXMub3RoZXJBcmdzPy5zY2hlZHVsZT8uc2VydmljZT8ucmVtb3ZlU2NoZWR1bGUodGhpcy5fX3NjaGVkdWxlKTtcbiAgICAgICAgICAgIHRoaXMuX19zY2hlZHVsZSA9IG51bGw7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIG5hdmlnYXRlVG9QZW5kZW5jeVBhZ2UoYXJnOiBNb25rZXlFY3hDb21wYW55UGVuZGVuY2llc1ZhbGlkYXRlZCwgcm91dGVyPzogUm91dGVyKSB7XG4gICAgY29uc3QgeyBjb21wYW55VHlwZSB9ID0gdGhpcy5fX3Rva2VuQ3JlZGVudGlhbHMgfHwge1xuICAgICAgY29tcGFueVR5cGU6ICcnXG4gICAgfTtcbiAgICBsZXQgcm91dGUgPSAnL2FwcCc7XG5cbiAgICBpZiAoY29tcGFueVR5cGUpIHtcbiAgICAgIHJvdXRlID0gYCR7cm91dGV9LyR7Y29tcGFueVR5cGV9L3BhZ2VzYDtcbiAgICB9IGVsc2Uge1xuICAgICAgcm91dGUgPSBgJHtyb3V0ZX0vdXNlci9wcm9maWxlL3BhZ2VzYDtcbiAgICB9XG5cbiAgICBpZiAoIXJvdXRlcikge1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ1JvdXRlciBtdXN0IGJlIGRlY2xhcmVkJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJvdXRlci5uYXZpZ2F0ZShbYCR7cm91dGV9L2NvbXBhbnktcGVuZGVuY3lgLnRvTG93ZXJDYXNlKCldLCB7XG4gICAgICAgIHN0YXRlOiB7XG4gICAgICAgICAgcGVuZGVuY3lEYXRhOiBhcmdcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBnZXRSb2xlKCk6IHN0cmluZyB7XG4gICAgY29uc3QgeyBfX3Rva2VuQ3JlZGVudGlhbHMgfSA9IHRoaXM7XG5cbiAgICBpZiAoIV9fdG9rZW5DcmVkZW50aWFscykgcmV0dXJuICcnO1xuXG4gICAgaWYgKF9fdG9rZW5DcmVkZW50aWFscz8ucHJvZ3JhbUFkbWluID09PSAndHJ1ZScpIHtcbiAgICAgIHJldHVybiAnUFJPR1JBTV9BRE1JTic7XG4gICAgfVxuXG4gICAgcmV0dXJuIF9fdG9rZW5DcmVkZW50aWFscz8ucm9sZSB8fCAnJztcbiAgfVxuXG4gIHByaXZhdGUgYWxsb3dlZFNlY3VyaXR5QWNjZXNzQnlQZW5kZW5jeShhcmdzOiBhbnkpOiBNb25rZXlFY3hDb21wYW55UGVuZGVuY2llc1ZhbGlkYXRlZCB7XG4gICAgaWYgKCFhcmdzKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBoYXNQZW5kZW5jaWVzOiBmYWxzZVxuICAgICAgfTtcbiAgICB9XG4gICAgY29uc3QgeyBzZXJ2aWNlLCB0eXBlIH0gPSBhcmdzO1xuICAgIHJldHVybiBzZXJ2aWNlLmhhc1BlbmRlbmNpZXModHlwZSk7XG4gIH1cblxuICBwcml2YXRlIGFsbG93ZWRTZWN1cml0eUFjY2Vzc0J5RmVhdHVyZShhcmdzOiBhbnkpOiBib29sZWFuIHtcbiAgICBpZiAoIWFyZ3MpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBjb25zdCB7IGNvbmZpZywgZmVhdHVyZSB9ID0gYXJncztcbiAgICB0cnkge1xuICAgICAgaWYgKCFNb25rZXlFY3hVdGlscy5wZXJzaXN0TnVsbEVtcHR5VW5kZWZpbmVkKGZlYXR1cmUpIHx8XG4gICAgICAgICFNb25rZXlFY3hVdGlscy5wZXJzaXN0TnVsbEVtcHR5VW5kZWZpbmVkKGNvbmZpZz8ucHJvZ3JhbT8uc2V0dGluZ3MpKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgICAgcmV0dXJuICFjb25maWc/LnByb2dyYW0/LnNldHRpbmdzPy5bZmVhdHVyZV07XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgLy8gbm90IHRvIGRvXG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgcHJpdmF0ZSBhbGxvd2VkU2VjdXJpdHlBY2Nlc3NCeUNvdW50cnkoYXJnPzogTW9ua2V5RWN4Q291bnRyeVNlY3VyaXR5KTogYm9vbGVhbiB7XG4gICAgaWYgKCFhcmcpIHJldHVybiB0cnVlO1xuICAgIHJldHVybiBhcmcuY291bnRyeSA9PT0gYXJnLmVudkNvdW50cnk7XG4gIH1cblxuICBwcml2YXRlIGFsbG93ZWRTZWN1cml0eUFjY2VzcyhhcmdzOiBhbnkpOiBib29sZWFuIHtcbiAgICBpZiAoIWFyZ3MpIHJldHVybiB0cnVlO1xuICAgIGNvbnN0IHJvbGVzID0gYXJncz8ucm9sZXM7XG4gICAgY29uc3QgYnlFeGNsdXNpb24gPSBhcmdzPy5ieUV4Y2x1c2lvbjtcbiAgICBjb25zdCBmb3VuZCA9IHJvbGVzPy5pbmRleE9mKHRoaXMuZ2V0Um9sZSgpKTtcbiAgICBsZXQgcmV0ID0gZmFsc2U7XG4gICAgaWYgKGJ5RXhjbHVzaW9uKSB7XG4gICAgICByZXQgPSB0cnVlO1xuICAgICAgaWYgKGZvdW5kID4gLTEpIHtcbiAgICAgICAgcmV0ID0gZmFsc2U7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldCA9IGZhbHNlO1xuICAgICAgaWYgKGZvdW5kID4gLTEpIHtcbiAgICAgICAgcmV0ID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKCFyb2xlcyB8fCByb2xlcy5sZW5ndGggPT09IDAgfHwgdGhpcy5nZXRSb2xlKCkgPT09ICdQUk9HUkFNX0FETUlOJykge1xuICAgICAgcmV0ID0gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIHJldDtcbiAgfVxuXG4gIHByaXZhdGUgbmF2aWdhdGVUb0Vycm9yUGFnZShzdGF0dXNDb2RlOiBudW1iZXIsIHJvdXRlcj86IFJvdXRlcikge1xuICAgIGNvbnN0IHJvdXRlczogYW55ID0ge1xuICAgICAgNDAzOiAnZm9yYmlkZGVuJyxcbiAgICAgIDQwNDogJ25vdC1mb3VuZCcsXG4gICAgICA1MDA6ICdzZXJ2aWNlLXByb2JsZW1zJyxcbiAgICAgIDUwMzogJ3NlcnZpY2UtcHJvYmxlbXMnXG4gICAgfTtcblxuICAgIGlmICghcm91dGVyKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdSb3V0ZXIgbXVzdCBiZSBkZWNsYXJlZCcpO1xuICAgIH0gZWxzZSB7XG4gICAgICByb3V0ZXI/Lm5hdmlnYXRlKFtgL2FwcC9wYWdlcy8ke3JvdXRlc1tzdGF0dXNDb2RlXX1gLnRvTG93ZXJDYXNlKCldKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZVBhZ2luYXRpb25PcHRpb25zKCkge1xuICAgIGNvbnN0IHsgX19wYWdpbmF0aW9uT3B0aW9ucyB9ID0gdGhpcztcbiAgICBpZiAoX19wYWdpbmF0aW9uT3B0aW9ucykge1xuICAgICAgY29uc3QgeyBzZXJ2aWNlLCBjYWxsYmFjaywgbmFtZSB9ID0gX19wYWdpbmF0aW9uT3B0aW9ucztcbiAgICAgIHNlcnZpY2U/LnNldENhbGxiYWNrKCh0eXBlOiBzdHJpbmcpID0+IHtcbiAgICAgICAgdGhpcy5kb1BhZ2luYXRpb252Mih0eXBlLCBjYWxsYmFjayk7XG4gICAgICB9LCBuYW1lIHx8ICdtYWluJyk7XG4gICAgfVxuICB9XG5cbiAgc2V0UGFnZShyZXF1ZXN0UGFnZWQ6IE1vbmtleUVjeFJlcXVlc3RQYWdlZCkge1xuICAgIHRoaXMuX19yZXF1ZXN0UGFnZWQgPSB7XG4gICAgICAuLi50aGlzLl9fcmVxdWVzdFBhZ2VkLFxuICAgICAgLi4ucmVxdWVzdFBhZ2VkXG4gICAgfTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIG5leHRQYWdlKCk6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLl9fbGlua3MpIHtcbiAgICAgIHJldHVybiAhIXRoaXMuX19saW5rcz8ubmV4dDtcbiAgICB9XG4gICAgaWYgKCF0aGlzLl9fcmVxdWVzdFBhZ2VkKSByZXR1cm4gZmFsc2U7XG4gICAgY29uc3QgeyBwYWdlIH0gPSB0aGlzLl9fcmVxdWVzdFBhZ2VkIGFzIGFueTtcbiAgICBjb25zdCB7IG51bWJlciwgdG90YWxQYWdlcyB9ID0gcGFnZTtcbiAgICBpZiAobnVtYmVyIDwgdG90YWxQYWdlcykge1xuICAgICAgdGhpcy5fX3JlcXVlc3RQYWdlZCA9IHtcbiAgICAgICAgLi4udGhpcy5fX3JlcXVlc3RQYWdlZCxcbiAgICAgICAgcGFnZToge1xuICAgICAgICAgIC4uLnBhZ2UsXG4gICAgICAgICAgbnVtYmVyOiBudW1iZXIgKyAxXG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgZ2V0RW1iZWRkZWREYXRhKGRhdGE6IGFueSwgZmllbGQ6IHN0cmluZyk6IGFueVtdIHwgYW55IHtcbiAgICBjb25zdCB7IF9lbWJlZGRlZCB9ID0gZGF0YTtcbiAgICByZXR1cm4gX2VtYmVkZGVkID8gX2VtYmVkZGVkW2ZpZWxkXSA6IG51bGw7XG4gIH1cblxuICBnZXROb3JtYWxpemVkVXJsKHVybDogc3RyaW5nLCBzYW1lUGFnZSA9IGZhbHNlKTogc3RyaW5nIHtcbiAgICBjb25zdCB7IF9fcmVxdWVzdFBhZ2VkLCBfX2xpbmtzIH0gPSB0aGlzO1xuICAgIHJldHVybiBuZXcgTW9ua2V5RWN4UmVxdWVzdFBhZ2VkSGFuZGxpbmcoXG4gICAgICB1cmwsXG4gICAgICBfX3JlcXVlc3RQYWdlZCB8fCB7fSxcbiAgICAgIF9fbGlua3MsXG4gICAgICBzYW1lUGFnZVxuICAgICkuZ2V0UmVxdWVzdFdpdGhQYWdlZFBhcmFtcygpO1xuICB9XG5cbiAgY2xlYXIoY2xlYXJEYXRhOiBib29sZWFuKSB7XG4gICAgaWYgKGNsZWFyRGF0YSkge1xuICAgICAgdGhpcy5fX2RhdGEgPSBudWxsO1xuICAgICAgdGhpcy5fX3JlcXVlc3RQYWdlZCA9IG51bGw7XG4gICAgICB0aGlzLl9fcGFyYW1zID0gbnVsbDtcbiAgICAgIHRoaXMuX19wYWdlID0gbnVsbDtcbiAgICAgIHRoaXMuX19saW5rcyA9IG51bGw7XG5cbiAgICAgIGlmICh0aGlzLl9fc2NoZWR1bGUpIHtcbiAgICAgICAgY29uc3QgeyBxdWV1ZSB9ID0gdGhpcy5fX3NjaGVkdWxlO1xuICAgICAgICBpZiAocXVldWUpIHtcbiAgICAgICAgICB0aGlzLm90aGVyQXJncz8ucXVldWU/LnNlcnZpY2U/LnJlbW92ZVF1ZXVlSXRlbShxdWV1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5vdGhlckFyZ3M/LnNjaGVkdWxlPy5zZXJ2aWNlPy5yZW1vdmVTY2hlZHVsZSh0aGlzLl9fc2NoZWR1bGUpO1xuICAgICAgICB0aGlzLl9fc2NoZWR1bGUgPSBudWxsO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLl9fZXJyb3IgPSBudWxsO1xuICAgIHRoaXMuX19oYW5kbGVkRXJyb3IgPSBudWxsO1xuICAgIHRoaXMuZmxhZ1ZhbGlkYXRvciA9IGZhbHNlO1xuICB9XG5cbiAgcmVzb2x2ZShcbiAgICByb3V0ZTogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCB8IG51bGwsXG4gICAgc3RhdGU6IFJvdXRlclN0YXRlU25hcHNob3QgfCBudWxsLFxuICAgIG90aGVyQXJncz86IHtcbiAgICAgIGNhbGxiYWNrTWFpbjogRnVuY3Rpb247XG4gICAgICByb3V0ZXI/OiBSb3V0ZXI7XG4gICAgICBzZWN1cml0eT86IHtcbiAgICAgICAgcm9sZXM6IHN0cmluZ1tdO1xuICAgICAgICBieUV4Y2x1c2lvbj86IGJvb2xlYW47XG4gICAgICB9O1xuICAgICAgY2FsbGJhY2tQYWdpbmF0aW9uPzogRnVuY3Rpb247XG4gICAgICB0cmFuc2xhdGVPcHRpb25zPzogTW9ua2V5RWN4VHJhbnNsYXRlT3B0aW9ucztcbiAgICAgIGZlYXR1cmU/OiB7XG4gICAgICAgIHNlcnZpY2U6IE1vbmtleUVjeEZlYXR1cmVUb2dnbGVTZXJ2aWNlO1xuICAgICAgICBmbGFnOiBzdHJpbmc7XG4gICAgICB9O1xuICAgICAgZmVhdHVyZUJ5UHJvZ3JhbT86IHtcbiAgICAgICAgY29uZmlnOiBNb25rZXlFY3hDb25maWc7XG4gICAgICAgIGZlYXR1cmU6IHN0cmluZztcbiAgICAgIH07XG4gICAgICBjb3VudHJ5U2VjdXJpdHk/OiBNb25rZXlFY3hDb3VudHJ5U2VjdXJpdHk7XG4gICAgICBwZW5kZW5jeT86IHtcbiAgICAgICAgc2VydmljZToge1xuICAgICAgICAgIGhhc1BlbmRlbmNpZXM6IEZ1bmN0aW9uO1xuICAgICAgICB9O1xuICAgICAgICB0eXBlOiBzdHJpbmc7XG4gICAgICB9O1xuICAgICAgcGFnaW5hdGlvbk9wdGlvbnM/OiB7XG4gICAgICAgIHNlcnZpY2U6IE1vbmtleUVjeFBhZ2luYXRpb25TZXJ2aWNlLFxuICAgICAgICBjYWxsYmFjazogRnVuY3Rpb24sXG4gICAgICAgIG5hbWU/OiBzdHJpbmdcbiAgICAgIH1cbiAgICB9XG4gICkge1xuICAgIGlmIChKU09OLnN0cmluZ2lmeShyb3V0ZT8ucXVlcnlQYXJhbXMpID09PSAne30nKSB7XG4gICAgICB0aGlzLl9fZGF0YSA9IG51bGw7XG4gICAgICB0aGlzLl9fcGFnZSA9IG51bGw7XG4gICAgfVxuXG4gICAgdGhpcy5fX3JlcXVlc3RQYWdlZCA9IG51bGw7XG4gICAgdGhpcy5mbGFnVmFsaWRhdG9yID0gdHJ1ZTtcblxuICAgIGlmICh0aGlzLnRva2VuU3RvcmFnZSkge1xuICAgICAgdGhpcy5fX3Rva2VuQ3JlZGVudGlhbHMgPSB0aGlzLnRva2VuU3RvcmFnZS5nZXRUb2tlbigpO1xuICAgIH1cblxuICAgIGNvbnN0IHBlbmQgPSB0aGlzLmFsbG93ZWRTZWN1cml0eUFjY2Vzc0J5UGVuZGVuY3kob3RoZXJBcmdzPy5wZW5kZW5jeSk7XG4gICAgY29uc3QgYWxsb3dlZEJ5UHJvZ3JhbSA9IHRoaXMuYWxsb3dlZFNlY3VyaXR5QWNjZXNzQnlGZWF0dXJlKG90aGVyQXJncz8uZmVhdHVyZUJ5UHJvZ3JhbSk7XG5cbiAgICBpZiAoXG4gICAgICB0aGlzLmFsbG93ZWRTZWN1cml0eUFjY2VzcyhvdGhlckFyZ3M/LnNlY3VyaXR5KSAmJlxuICAgICAgdGhpcy5hbGxvd2VkU2VjdXJpdHlBY2Nlc3NCeUNvdW50cnkob3RoZXJBcmdzPy5jb3VudHJ5U2VjdXJpdHkpICYmXG4gICAgICAhcGVuZC5oYXNQZW5kZW5jaWVzICYmXG4gICAgICBhbGxvd2VkQnlQcm9ncmFtXG4gICAgKSB7XG4gICAgICBpZiAodGhpcy5fX3NjaGVkdWxlKSB7XG4gICAgICAgIHRoaXMub3RoZXJBcmdzPy5zY2hlZHVsZT8uc2VydmljZT8ucmVtb3ZlU2NoZWR1bGUodGhpcy5fX3NjaGVkdWxlKTtcbiAgICAgICAgdGhpcy5fX3NjaGVkdWxlID0gbnVsbDtcbiAgICAgIH1cblxuICAgICAgY29uc3QgeyBfX3JlcXVlc3RQYWdlZCB9ID0gdGhpcztcbiAgICAgIGlmICghX19yZXF1ZXN0UGFnZWQpIHtcbiAgICAgICAgdGhpcy5zZXRQYWdlKHtcbiAgICAgICAgICBwYWdlOiB7XG4gICAgICAgICAgICBudW1iZXI6IDAsXG4gICAgICAgICAgICBzaXplOiAxMFxuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIGlmIChvdGhlckFyZ3M/LnRyYW5zbGF0ZU9wdGlvbnMpIHtcbiAgICAgICAgY29uc3QgeyBzZXJ2aWNlLCBrZXlzIH0gPSBvdGhlckFyZ3M/LnRyYW5zbGF0ZU9wdGlvbnM7XG4gICAgICAgIHRoaXMuZ2V0aTE4bihzZXJ2aWNlLCBrZXlzIHx8ICcnKTtcbiAgICAgIH1cblxuICAgICAgaWYgKG90aGVyQXJncz8uY2FsbGJhY2tQYWdpbmF0aW9uKSB7XG4gICAgICAgIHRoaXMuX19jYWxsYmFja1BhZ2luYXRpb24gPSBvdGhlckFyZ3MuY2FsbGJhY2tQYWdpbmF0aW9uO1xuICAgICAgfVxuXG4gICAgICBpZiAob3RoZXJBcmdzPy5wYWdpbmF0aW9uT3B0aW9ucykge1xuICAgICAgICB0aGlzLl9fcGFnaW5hdGlvbk9wdGlvbnMgPSBvdGhlckFyZ3M/LnBhZ2luYXRpb25PcHRpb25zO1xuICAgICAgICB0aGlzLmhhbmRsZVBhZ2luYXRpb25PcHRpb25zKCk7XG4gICAgICB9XG5cbiAgICAgIGlmIChvdGhlckFyZ3M/LmZlYXR1cmUpIHtcbiAgICAgICAgY29uc3QgeyBmbGFnLCBzZXJ2aWNlIH0gPSBvdGhlckFyZ3MuZmVhdHVyZTtcblxuICAgICAgICBzZXJ2aWNlLm9uRmxhZ3NcbiAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgIHRha2VXaGlsZSgoKSA9PiB7XG4gICAgICAgICAgICAgIHJldHVybiB0aGlzLmZsYWdWYWxpZGF0b3I7XG4gICAgICAgICAgICB9KVxuICAgICAgICAgIClcbiAgICAgICAgICAuc3Vic2NyaWJlKCh2YWw6IGJvb2xlYW4pID0+IHtcbiAgICAgICAgICAgIGlmICh2YWwpIHtcbiAgICAgICAgICAgICAgY29uc3QgaGFzRmxhZyA9IHNlcnZpY2UuZ2V0RmxhZyhmbGFnKTtcblxuICAgICAgICAgICAgICBpZiAoTW9ua2V5RWN4VXRpbHMucGVyc2lzdE51bGxFbXB0eVVuZGVmaW5lZChoYXNGbGFnKSkge1xuICAgICAgICAgICAgICAgIGlmICghaGFzRmxhZykge1xuICAgICAgICAgICAgICAgICAgdGhpcy5uYXZpZ2F0ZVRvRXJyb3JQYWdlKDQwNCwgb3RoZXJBcmdzPy5yb3V0ZXIpO1xuICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBvdGhlckFyZ3M/LmNhbGxiYWNrTWFpbigpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgb3RoZXJBcmdzPy5jYWxsYmFja01haW4oKTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKCFhbGxvd2VkQnlQcm9ncmFtKSB7XG4gICAgICB0aGlzLm5hdmlnYXRlVG9FcnJvclBhZ2UoNDA0LCBvdGhlckFyZ3M/LnJvdXRlcik7XG4gICAgfSBlbHNlIGlmIChwZW5kLmhhc1BlbmRlbmNpZXMpIHtcbiAgICAgIHRoaXMubmF2aWdhdGVUb1BlbmRlbmN5UGFnZShwZW5kLCBvdGhlckFyZ3M/LnJvdXRlcik7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubmF2aWdhdGVUb0Vycm9yUGFnZSg0MDMsIG90aGVyQXJncz8ucm91dGVyKTtcbiAgICB9XG4gIH1cblxuICBnZXRIVFRQSGVhZGVyQXBwbGljYXRpb25QREYoKTogT2JqZWN0IHtcbiAgICByZXR1cm4ge1xuICAgICAgb2JzZXJ2ZTogJ3Jlc3BvbnNlJyxcbiAgICAgIHJlc3BvbnNlVHlwZTogJ2Jsb2InXG4gICAgfTtcbiAgfVxuXG4gIEBNb25rZXlFY3hDb3JlU2VydmljZSh7XG4gICAgcmVxdWVzdEluUHJvZ3Jlc3M6IHtcbiAgICAgIHNob3dQcm9ncmVzczogdHJ1ZVxuICAgIH1cbiAgfSlcbiAgZ2VuZXJpY01ldGhvZChsaW5rOiBhbnksIGRhdGE/OiBhbnksIGNhbGxiYWNrPzogRnVuY3Rpb24pIHtcbiAgICBjb25zdCB7IGhyZWYsIHR5cGUgPSAnZ2V0JyB9ID0gbGluaztcblxuICAgIHRoaXMubW9ua2V5ZWN4U2VydmljZT8uW3R5cGUudG9Mb3dlckNhc2UoKV0oYCR7aHJlZn1gLCBkYXRhKT8uc3Vic2NyaWJlKFxuICAgICAgKHJlc3A6IGFueSkgPT4ge1xuICAgICAgICBpZiAoY2FsbGJhY2spIGNhbGxiYWNrKHJlc3ApO1xuICAgICAgfSxcbiAgICAgIChlcnI6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiB7XG4gICAgICAgIGlmIChjYWxsYmFjaykgY2FsbGJhY2soKTtcbiAgICAgICAgdGhyb3dFcnJvcihlcnIpO1xuICAgICAgfVxuICAgICk7XG4gIH1cblxuICBATW9ua2V5RWN4Q29yZVNlcnZpY2Uoe1xuICAgIHJlcXVlc3RJblByb2dyZXNzOiB7XG4gICAgICBzaG93UHJvZ3Jlc3M6IHRydWVcbiAgICB9XG4gIH0pXG4gIGFzeW5jIGdldEdlbmVyaWNEYXRhKGRhdGE6IGFueSwgYWN0aW9uOiBzdHJpbmcpIHtcbiAgICBjb25zdCB7IG1vbmtleWVjeFNlcnZpY2UgfSA9IHRoaXM7XG4gICAgaWYgKCFtb25rZXllY3hTZXJ2aWNlKSByZXR1cm4gbnVsbDtcbiAgICBjb25zdCB7IGhyZWYsIHR5cGUgfSA9IG5ldyBMaW5rc01vZGVsKGRhdGEpPy5nZXRBY3Rpb24oYWN0aW9uKSB8fCB7XG4gICAgICBocmVmOiAnJywgdHlwZTogJ2dldCdcbiAgICB9O1xuXG4gICAgcmV0dXJuIG1vbmtleWVjeFNlcnZpY2VbdHlwZS50b0xvd2VyQ2FzZSgpXTxhbnk+KGhyZWYpXG4gICAgICAucGlwZSh0YWtlKDEpKS50b1Byb21pc2UoKTtcbiAgfVxuXG4gIGdldGkxOG4odHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSwga2V5czogc3RyaW5nIHwgc3RyaW5nW10pIHtcbiAgICB0cmFuc2xhdGVTZXJ2aWNlLm9uRGVmYXVsdExhbmdDaGFuZ2Uuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMuX19pMThuID0gdHJhbnNsYXRlU2VydmljZS5pbnN0YW50KGtleXMpO1xuICAgICAgdGhpcy5fX29uaTE4bkRhdGFDaGFuZ2VkJC5uZXh0KG51bGwpO1xuICAgIH0pO1xuICAgIHRyYW5zbGF0ZVNlcnZpY2UuZ2V0U3RyZWFtT25UcmFuc2xhdGlvbkNoYW5nZShrZXlzKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5fX2kxOG4gPSB0cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoa2V5cyk7XG4gICAgICB0aGlzLl9fb25pMThuRGF0YUNoYW5nZWQkLm5leHQobnVsbCk7XG4gICAgfSk7XG4gIH1cblxuICBkb1BhZ2luYXRpb24oKSB7XG4gICAgaWYgKCF0aGlzLl9fb25Mb2FkaW5nSW5Qcm9ncmVzcyQudmFsdWUpIHtcbiAgICAgIGNvbnN0IGhhc01vcmVQYWdlcyA9IHRoaXMuc2V0UGFnZSh7XG4gICAgICAgIHBhZ2U6IHtcbiAgICAgICAgICAuLi50aGlzLl9fcGFnZVxuICAgICAgICB9XG4gICAgICB9KS5uZXh0UGFnZSgpO1xuXG4gICAgICBpZiAoaGFzTW9yZVBhZ2VzICYmIHRoaXMuX19jYWxsYmFja1BhZ2luYXRpb24pIHtcbiAgICAgICAgdGhpcy5fX2NhbGxiYWNrUGFnaW5hdGlvbigpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGRvUGFnaW5hdGlvbnYyKHR5cGU6IHN0cmluZywgY2FsbGJhY2s6IEZ1bmN0aW9uKSB7XG4gICAgaWYgKCF0aGlzLl9fb25Mb2FkaW5nSW5Qcm9ncmVzcyQudmFsdWUpIHtcbiAgICAgIGlmIChjYWxsYmFjaykge1xuICAgICAgICBjYWxsYmFjayh0eXBlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBzZXRMaW5rcyhsaW5rczogYW55KSB7XG4gICAgdGhpcy5fX2lzQWJsZVRvRG9QYWdpbmF0aW9uID0ge1xuICAgICAgZmlyc3Q6ICEhbGlua3M/LmZpcnN0LFxuICAgICAgbmV4dDogISFsaW5rcz8ubmV4dFxuICAgIH07XG4gICAgdGhpcy5fX2xpbmtzID0gbGlua3M7XG4gIH1cblxuICBzZXRTZWFyY2hCeVVybChyb3V0ZXI6IFJvdXRlciwgdXJsOiBzdHJpbmcsIHNlYXJjaDogYW55LCBleHRyYXM/OiBhbnkpIHtcbiAgICB0aGlzLl9fZGF0YSA9IG51bGw7XG4gICAgdGhpcy5fX3BhZ2UgPSBudWxsO1xuICAgIHRoaXMuX19vbkRhdGFDaGFuZ2VkJC5uZXh0KG51bGwpO1xuICAgIHRoaXMuX19vbkxvYWRpbmdJblByb2dyZXNzJC5uZXh0KGZhbHNlKTtcblxuICAgIHJvdXRlci5uYXZpZ2F0ZShbdXJsXSwge1xuICAgICAgcXVlcnlQYXJhbXM6IHtcbiAgICAgICAgLi4uc2VhcmNoLFxuICAgICAgICByOiBNb25rZXlFY3hVdGlscy5nZXRSYW5kb21TdHJpbmcoMzApXG4gICAgICB9LFxuICAgICAgcXVlcnlQYXJhbXNIYW5kbGluZzogJ21lcmdlJyxcbiAgICAgIC4uLmV4dHJhc1xuICAgIH0pO1xuICB9XG5cbiAgc2F2ZVN0YXRlKHN0YXRlOiBNb25rZXlFY3hTYXZlZFN0YXRlKSB7XG4gICAgdGhpcy5fX3NhdmVkU3RhdGUgPSB7XG4gICAgICBwYWdlOiB0aGlzLl9fcGFnZSxcbiAgICAgIC4uLnN0YXRlXG4gICAgfTtcbiAgfVxufVxuIl19
@@ -16,7 +16,7 @@ import { NG_VALUE_ACCESSOR } from '@angular/forms';
16
16
  import { TemplatePortal } from '@angular/cdk/portal';
17
17
  import * as i1$4 from '@angular/cdk/overlay';
18
18
  import { OverlayModule } from '@angular/cdk/overlay';
19
- import { __decorate, __awaiter } from 'tslib';
19
+ import { __awaiter, __decorate } from 'tslib';
20
20
  import * as i1$5 from '@angular/common/http';
21
21
  import { HttpParams, HttpErrorResponse, HTTP_INTERCEPTORS, HttpClientModule } from '@angular/common/http';
22
22
  import { datadogRum } from '@datadog/browser-rum';
@@ -2150,6 +2150,34 @@ class MonkeyEcxRequestPagedHandling {
2150
2150
  }
2151
2151
  }
2152
2152
 
2153
+ class Link {
2154
+ constructor(data) {
2155
+ this.href = data === null || data === void 0 ? void 0 : data.href;
2156
+ this.type = data === null || data === void 0 ? void 0 : data.type;
2157
+ this.templated = data === null || data === void 0 ? void 0 : data.templated;
2158
+ }
2159
+ }
2160
+ class MonkeyEcxModel {
2161
+ getAction(type, replaceOptions) {
2162
+ const { _links } = this;
2163
+ if (!_links)
2164
+ return null;
2165
+ let link = _links[type.toLowerCase()];
2166
+ link = new Link(link);
2167
+ if (link && replaceOptions && (link === null || link === void 0 ? void 0 : link.templated)) {
2168
+ const { from, to } = replaceOptions;
2169
+ link = new Link(Object.assign(Object.assign({}, link), { href: `${link.href}`.replace(from, to) }));
2170
+ }
2171
+ return link;
2172
+ }
2173
+ }
2174
+
2175
+ class LinksModel extends MonkeyEcxModel {
2176
+ constructor(data) {
2177
+ super();
2178
+ this._links = data === null || data === void 0 ? void 0 : data._links;
2179
+ }
2180
+ }
2153
2181
  class MonkeyEcxCommonsService {
2154
2182
  constructor(monkeyecxService, tokenStorage, otherArgs) {
2155
2183
  this.monkeyecxService = monkeyecxService;
@@ -2457,6 +2485,19 @@ class MonkeyEcxCommonsService {
2457
2485
  throwError(err);
2458
2486
  });
2459
2487
  }
2488
+ getGenericData(data, action) {
2489
+ var _a;
2490
+ return __awaiter(this, void 0, void 0, function* () {
2491
+ const { monkeyecxService } = this;
2492
+ if (!monkeyecxService)
2493
+ return null;
2494
+ const { href, type } = ((_a = new LinksModel(data)) === null || _a === void 0 ? void 0 : _a.getAction(action)) || {
2495
+ href: '', type: 'get'
2496
+ };
2497
+ return monkeyecxService[type.toLowerCase()](href)
2498
+ .pipe(take(1)).toPromise();
2499
+ });
2500
+ }
2460
2501
  geti18n(translateService, keys) {
2461
2502
  translateService.onDefaultLangChange.subscribe(() => {
2462
2503
  this.__i18n = translateService.instant(keys);
@@ -2480,7 +2521,7 @@ class MonkeyEcxCommonsService {
2480
2521
  doPaginationv2(type, callback) {
2481
2522
  if (!this.__onLoadingInProgress$.value) {
2482
2523
  if (callback) {
2483
- callback();
2524
+ callback(type);
2484
2525
  }
2485
2526
  }
2486
2527
  }
@@ -2508,7 +2549,14 @@ __decorate([
2508
2549
  showProgress: true
2509
2550
  }
2510
2551
  })
2511
- ], MonkeyEcxCommonsService.prototype, "genericMethod", null);
2552
+ ], MonkeyEcxCommonsService.prototype, "genericMethod", null);
2553
+ __decorate([
2554
+ MonkeyEcxCoreService({
2555
+ requestInProgress: {
2556
+ showProgress: true
2557
+ }
2558
+ })
2559
+ ], MonkeyEcxCommonsService.prototype, "getGenericData", null);
2512
2560
 
2513
2561
  /* eslint-disable max-len */
2514
2562
  class MonkeyEcxHandlingService {
@@ -4802,28 +4850,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
4802
4850
  }]
4803
4851
  }] });
4804
4852
 
4805
- class Link {
4806
- constructor(data) {
4807
- this.href = data === null || data === void 0 ? void 0 : data.href;
4808
- this.type = data === null || data === void 0 ? void 0 : data.type;
4809
- this.templated = data === null || data === void 0 ? void 0 : data.templated;
4810
- }
4811
- }
4812
- class MonkeyEcxModel {
4813
- getAction(type, replaceOptions) {
4814
- const { _links } = this;
4815
- if (!_links)
4816
- return null;
4817
- let link = _links[type.toLowerCase()];
4818
- link = new Link(link);
4819
- if (link && replaceOptions && (link === null || link === void 0 ? void 0 : link.templated)) {
4820
- const { from, to } = replaceOptions;
4821
- link = new Link(Object.assign(Object.assign({}, link), { href: `${link.href}`.replace(from, to) }));
4822
- }
4823
- return link;
4824
- }
4825
- }
4826
-
4827
4853
  /* eslint-disable no-unused-vars */
4828
4854
  var OpSearch;
4829
4855
  (function (OpSearch) {