nuxeo-development-framework 3.2.9 → 3.3.1

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.
@@ -14,7 +14,7 @@ export class MainfolderService {
14
14
  this.localStoragKeys = this.appConfigService.myConfiguration.localStorageKey;
15
15
  });
16
16
  }
17
- fetchfileManager_mainFolderId(apiName) {
17
+ fetchfileManager_mainFolderId(apiName, failIfEmptyRes = true) {
18
18
  return from(this.nuxeoService.nuxeoClient
19
19
  .operation(apiName ? apiName : 'AC_UA_GetFileManagerID')
20
20
  .execute({
@@ -26,8 +26,11 @@ export class MainfolderService {
26
26
  },
27
27
  })).pipe(tap((res) => {
28
28
  var _a;
29
- if (!((_a = res === null || res === void 0 ? void 0 : res.entries) === null || _a === void 0 ? void 0 : _a.length)) {
30
- throw Error('Main Folder - empty response');
29
+ // fail if res,entries was empty and we are making this check since there is cases we need to return empty response and not failsing like files in dgda
30
+ if (failIfEmptyRes) {
31
+ if (!((_a = res === null || res === void 0 ? void 0 : res.entries) === null || _a === void 0 ? void 0 : _a.length)) {
32
+ throw Error('Main Folder - empty response');
33
+ }
31
34
  }
32
35
  }), catchError((err) => {
33
36
  console.error(err);
@@ -66,21 +69,26 @@ export class MainfolderService {
66
69
  return of(false);
67
70
  }));
68
71
  }
69
- save_fileManagerObj_ToLocalStorage(apiName = 'AC_UA_GetFileManagerID') {
72
+ save_fileManagerObj_ToLocalStorage(apiName = 'AC_UA_GetFileManagerID', failIfEmptyRes = true) {
70
73
  /*return this.userPreference.hasItem('fileManagerObj') && !reset
71
74
  ? of(true):*/
72
- return this.fetchfileManager_mainFolderId(apiName).pipe(tap((res) => {
75
+ return this.fetchfileManager_mainFolderId(apiName, failIfEmptyRes).pipe(tap((res) => {
73
76
  console.log('res: ', res);
74
77
  if (res) {
75
- this.fileManagerObj = {
76
- entries: res.entries.map((item) => {
77
- delete item._baseOptions;
78
- delete item._dirtyProperties;
79
- delete item._nuxeo;
80
- delete item._repository;
81
- return item;
82
- }),
83
- };
78
+ if (res.entries) {
79
+ this.fileManagerObj = {
80
+ entries: res.entries.map((item) => {
81
+ delete item._baseOptions;
82
+ delete item._dirtyProperties;
83
+ delete item._nuxeo;
84
+ delete item._repository;
85
+ return item;
86
+ }),
87
+ };
88
+ }
89
+ else {
90
+ this.fileManagerObj = {};
91
+ }
84
92
  this.userPreference.set(apiName ? this.localStoragKeys[apiName] : 'fileManagerObj', JSON.stringify(this.fileManagerObj));
85
93
  }
86
94
  }), switchMap(value => of(this.get_fileManagerObj_FromLocalStorage(apiName ? this.localStoragKeys[apiName] : 'fileManagerObj'))));
@@ -159,4 +167,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImpor
159
167
  providedIn: 'root',
160
168
  }]
161
169
  }], ctorParameters: function () { return [{ type: i1.NuxeoService }, { type: i2.AppConfigService }, { type: i3.UserPreferencesService }]; } });
162
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbmZvbGRlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvc2hhcmVkLXNlcnZpY2VzL21haW5mb2xkZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxJQUFJLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7QUFTbEUsTUFBTSxPQUFPLGlCQUFpQjtJQVExQixZQUNZLFlBQTBCLEVBQzFCLGdCQUFtQyxFQUNuQyxjQUFzQztRQUZ0QyxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQW1CO1FBQ25DLG1CQUFjLEdBQWQsY0FBYyxDQUF3QjtRQUU5QyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDN0QsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsZUFBZSxDQUFDLGVBQWUsQ0FBQTtRQUNoRixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCw2QkFBNkIsQ0FBQyxPQUFRO1FBQ2xDLE9BQU8sSUFBSSxDQUNQLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVzthQUN4QixTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLHdCQUF3QixDQUFDO2FBQ3ZELE9BQU8sQ0FBQztZQUNMLE9BQU8sRUFBRTtnQkFDTCxVQUFVLEVBQUUsdURBQXVEO2dCQUNuRSxnQkFBZ0IsRUFBRSxnQ0FBZ0M7Z0JBQ2xELG9CQUFvQixFQUNoQixpRUFBaUU7Z0JBQ3JFLHdCQUF3QixFQUFFLGtCQUFrQjthQUMvQztTQUNKLENBQUMsQ0FDVCxDQUFDLElBQUksQ0FDRixHQUFHLENBQUMsQ0FBQyxHQUFRLEVBQUUsRUFBRTs7WUFDYixJQUFJLENBQUMsQ0FBQSxNQUFBLEdBQUcsYUFBSCxHQUFHLHVCQUFILEdBQUcsQ0FBRSxPQUFPLDBDQUFFLE1BQU0sQ0FBQSxFQUFFO2dCQUN2QixNQUFNLEtBQUssQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDO2FBQy9DO1FBQ0wsQ0FBQyxDQUFDLEVBQ0YsVUFBVSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDZixPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ25CLE9BQU8sRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3JCLENBQUMsQ0FBQyxDQUNMLENBQUM7SUFDTixDQUFDO0lBRUQsZ0NBQWdDO1FBQzVCLE9BQU8sSUFBSSxDQUNQLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVzthQUN4QixTQUFTLENBQUMsaUNBQWlDLENBQUM7YUFDNUMsT0FBTyxFQUFFLENBQ2pCLENBQUMsSUFBSSxDQUNGLEdBQUcsQ0FBQyxDQUFDLEdBQVEsRUFBRSxFQUFFO1lBQ2IsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDNUIsQ0FBQyxDQUFDLEVBQ0YsVUFBVSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDZixPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ25CLE9BQU8sRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3JCLENBQUMsQ0FBQyxDQUNMLENBQUM7SUFDTixDQUFDO0lBQ0QsZ0NBQWdDO1FBQzVCLE9BQU8sSUFBSSxDQUNQLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVzthQUN4QixTQUFTLENBQUMsa0JBQWtCLENBQUM7YUFDN0IsT0FBTyxFQUFFLENBQ2pCLENBQUMsSUFBSSxDQUNGLEdBQUcsQ0FBQyxDQUFDLEdBQVEsRUFBRSxFQUFFO1lBQ2IsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDNUIsQ0FBQyxDQUFDLEVBQ0YsVUFBVSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDZixPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ25CLE9BQU8sRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3JCLENBQUMsQ0FBQyxDQUNMLENBQUM7SUFDTixDQUFDO0lBRUQsMEJBQTBCO1FBQ3RCLE9BQU8sSUFBSSxDQUNQLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVzthQUN4QixTQUFTLENBQUMseUJBQXlCLENBQUM7YUFDcEMsT0FBTyxFQUFFLENBQ2pCLENBQUMsSUFBSSxDQUNGLEdBQUcsQ0FBQyxDQUFDLEdBQVEsRUFBRSxFQUFFO1lBQ2IsK0JBQStCO1lBQy9CLHVEQUF1RDtZQUN2RCxJQUFJO1FBQ1IsQ0FBQyxDQUFDLEVBQ0YsVUFBVSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDZixPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ25CLE9BQU8sRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3JCLENBQUMsQ0FBQyxDQUNMLENBQUM7SUFDTixDQUFDO0lBRUQsa0NBQWtDLENBQUMsT0FBTyxHQUFHLHdCQUF3QjtRQUNqRTswQkFDa0I7UUFDbEIsT0FBTyxJQUFJLENBQUMsNkJBQTZCLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUNuRCxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUNSLE9BQU8sQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1lBQzFCLElBQUksR0FBRyxFQUFFO2dCQUNMLElBQUksQ0FBQyxjQUFjLEdBQUc7b0JBQ2xCLE9BQU8sRUFBRSxHQUFHLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO3dCQUM5QixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7d0JBQ3pCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDO3dCQUM3QixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7d0JBQ25CLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQzt3QkFDeEIsT0FBTyxJQUFJLENBQUM7b0JBQ2hCLENBQUMsQ0FBQztpQkFDTCxDQUFDO2dCQUVGLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUNuQixPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixFQUMxRCxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FDdEMsQ0FBQzthQUNMO1FBQ0wsQ0FBQyxDQUFDLEVBQ0YsU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxtQ0FBbUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUMvSCxDQUFDO0lBQ04sQ0FBQztJQUVELHFDQUFxQztRQUNqQyxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLG1CQUFtQixDQUFDO1lBQ25ELENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDO1lBQ1YsQ0FBQyxDQUFDLElBQUksQ0FBQyxnQ0FBZ0MsRUFBRSxDQUFDLElBQUksQ0FDMUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7Z0JBQ1IsT0FBTyxDQUFDLEdBQUcsQ0FBQyxPQUFPLEdBQUcsR0FBRyxDQUFDLENBQUM7Z0JBQzNCLElBQUksR0FBRyxFQUFFO29CQUNMLElBQUksQ0FBQyxpQkFBaUIsR0FBRzt3QkFDckIsRUFBRSxFQUFFLEdBQUcsQ0FBQyxHQUFHO3dCQUNYLElBQUksRUFBRSxHQUFHLENBQUMsSUFBSTtxQkFDakIsQ0FBQztvQkFFRixJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FDbkIsbUJBQW1CLEVBQ25CLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQ3pDLENBQUM7aUJBQ0w7WUFDTCxDQUFDLENBQUMsQ0FDTCxDQUFDO0lBQ1YsQ0FBQztJQUVELHdDQUF3QztRQUNwQyxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLG1CQUFtQixDQUFDO1lBQ25ELENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDO1lBQ1YsQ0FBQyxDQUFDLElBQUksQ0FBQyxnQ0FBZ0MsRUFBRSxDQUFDLElBQUksQ0FDMUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7Z0JBQ1IsT0FBTyxDQUFDLEdBQUcsQ0FBQyxPQUFPLEdBQUcsR0FBRyxDQUFDLENBQUM7Z0JBQzNCLElBQUksR0FBRyxFQUFFO29CQUNMLElBQUksQ0FBQyxpQkFBaUIsR0FBRzt3QkFDckIsRUFBRSxFQUFFLEdBQUcsQ0FBQyxHQUFHO3dCQUNYLElBQUksRUFBRSxHQUFHLENBQUMsSUFBSTtxQkFDakIsQ0FBQztvQkFFRixJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FDbkIsbUJBQW1CLEVBQ25CLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQ3pDLENBQUM7aUJBQ0w7WUFDTCxDQUFDLENBQUMsQ0FDTCxDQUFDO0lBQ1YsQ0FBQztJQUVELCtCQUErQjtRQUMzQixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQztZQUM3QyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQztZQUNWLENBQUMsQ0FBQyxJQUFJLENBQUMsMEJBQTBCLEVBQUUsQ0FBQyxJQUFJLENBQ3BDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO2dCQUNSLElBQUksR0FBRyxFQUFFO29CQUNMLElBQUksQ0FBQyxXQUFXLEdBQUc7d0JBQ2YsRUFBRSxFQUFFLEdBQUcsQ0FBQyxHQUFHO3dCQUNYLElBQUksRUFBRSxHQUFHLENBQUMsSUFBSTtxQkFDakIsQ0FBQztvQkFFRixJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FDbkIsYUFBYSxFQUNiLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUNuQyxDQUFDO2lCQUNMO1lBQ0wsQ0FBQyxDQUFDLENBQ0wsQ0FBQztJQUNWLENBQUM7SUFFRCxtQ0FBbUMsQ0FBQyxHQUFJO1FBQ3BDLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLEVBQUU7WUFDNUQsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUM7U0FDNUU7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRUQsc0NBQXNDO1FBQ2xDLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsbUJBQW1CLENBQUMsRUFBRTtZQUNsRCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDO1NBQ25FO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUNELHNDQUFzQztRQUNsQyxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLG1CQUFtQixDQUFDLEVBQUU7WUFDbEQsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLG1CQUFtQixDQUFDLENBQUMsQ0FBQztTQUNuRTtRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxnQ0FBZ0M7UUFDNUIsSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsRUFBRTtZQUM1QyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQztTQUM3RDtRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7OzhHQS9NUSxpQkFBaUI7a0hBQWpCLGlCQUFpQixjQUhkLE1BQU07MkZBR1QsaUJBQWlCO2tCQUo3QixVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgZnJvbSwgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgY2F0Y2hFcnJvciwgc3dpdGNoTWFwLCB0YWtlLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IE51eGVvU2VydmljZSB9IGZyb20gJy4uL0NvcmUvc2VydmljZXMvbnV4ZW8vbnV4ZW8uc2VydmljZSc7XHJcbmltcG9ydCB7IFVzZXJQcmVmZXJlbmNlc1NlcnZpY2UgfSBmcm9tICcuLi9Db3JlL3NlcnZpY2VzL3VzZXIvdXNlci1wcmVmZXJlbmNlcy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQXBwQ29uZmlnU2VydmljZSB9IGZyb20gJy4uL2NvbmZpZ3VyYXRpb24vYXBwLWNvbmZpZy5zZXJ2aWNlJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICAgIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuXHJcbmV4cG9ydCBjbGFzcyBNYWluZm9sZGVyU2VydmljZSB7XHJcbiAgICBmaWxlTWFuYWdlcl9tYWluRm9sZGVySWQ7XHJcbiAgICBjYXRlZ29yeV9tYWluRm9sZGVySWQ7XHJcbiAgICBmaWxlTWFuYWdlck9iajogYW55O1xyXG4gICAgbXlGaWxlc01hbmFnZXJPYmo6IGFueTtcclxuICAgIEFyY2hpdmVNYW5hZ2VyT2JqOiBhbnk7XHJcbiAgICBjYXRlZ29yeU9iajogYW55O1xyXG4gICAgbG9jYWxTdG9yYWdLZXlzO1xyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHJpdmF0ZSBudXhlb1NlcnZpY2U6IE51eGVvU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIGFwcENvbmZpZ1NlcnZpY2UgOiBBcHBDb25maWdTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgdXNlclByZWZlcmVuY2U6IFVzZXJQcmVmZXJlbmNlc1NlcnZpY2VcclxuICAgICkgeyBcclxuICAgICAgICB0aGlzLmFwcENvbmZpZ1NlcnZpY2UuY29uZmlnTG9hZGVkLnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKHJlcyA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMubG9jYWxTdG9yYWdLZXlzID0gdGhpcy5hcHBDb25maWdTZXJ2aWNlLm15Q29uZmlndXJhdGlvbi5sb2NhbFN0b3JhZ2VLZXlcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBmZXRjaGZpbGVNYW5hZ2VyX21haW5Gb2xkZXJJZChhcGlOYW1lPyk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICAgICAgcmV0dXJuIGZyb20oXHJcbiAgICAgICAgICAgIHRoaXMubnV4ZW9TZXJ2aWNlLm51eGVvQ2xpZW50XHJcbiAgICAgICAgICAgICAgICAub3BlcmF0aW9uKGFwaU5hbWUgPyBhcGlOYW1lIDogJ0FDX1VBX0dldEZpbGVNYW5hZ2VySUQnKVxyXG4gICAgICAgICAgICAgICAgLmV4ZWN1dGUoe1xyXG4gICAgICAgICAgICAgICAgICAgIGhlYWRlcnM6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcHJvcGVydGllczogJ2ZpbGUsIGR1YmxpbmNvcmUsIGNyZWF0b3IsIGRyaXZlcm9vdCwgZGVwYXJ0bWVudHNwYWNlJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgJ2ZldGNoLWRvY3VtZW50JzogJ2RjOmNyZWF0b3IsIGRjOmxhc3RDb250cmlidXRvcicsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICdlbnJpY2hlcnMtZG9jdW1lbnQnOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2hhc0ZvbGRlcmlzaENoaWxkLCBmYXZvcml0ZXMsIHRodW1ibmFpbCwgcXVpY2tBY2Nlc3MsYnJlYWRjcnVtYicsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICdYLU5YZW5yaWNoZXJzLWRvY3VtZW50JzogJ3RhZ3MscGVybWlzc2lvbnMnLFxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICkucGlwZShcclxuICAgICAgICAgICAgdGFwKChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKCFyZXM/LmVudHJpZXM/Lmxlbmd0aCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRocm93IEVycm9yKCdNYWluIEZvbGRlciAtIGVtcHR5IHJlc3BvbnNlJyk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICBjYXRjaEVycm9yKChlcnIpID0+IHtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyKTtcclxuICAgICAgICAgICAgICAgIHJldHVybiBvZihmYWxzZSk7XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBmZXRjaE15RmlsZXNNYW5hZ2VyX21haW5Gb2xkZXJJZCgpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgICAgIHJldHVybiBmcm9tKFxyXG4gICAgICAgICAgICB0aGlzLm51eGVvU2VydmljZS5udXhlb0NsaWVudFxyXG4gICAgICAgICAgICAgICAgLm9wZXJhdGlvbignQUNfVUFfUGVyc29uYWxTcGFjZV9HZXRPckNyZWF0ZScpXHJcbiAgICAgICAgICAgICAgICAuZXhlY3V0ZSgpXHJcbiAgICAgICAgKS5waXBlKFxyXG4gICAgICAgICAgICB0YXAoKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygncmVzJywgcmVzKTtcclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgIGNhdGNoRXJyb3IoKGVycikgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihlcnIpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIG9mKGZhbHNlKTtcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICApO1xyXG4gICAgfVxyXG4gICAgZmV0Y2hBcmNoaXZlTWFuYWdlcl9tYWluRm9sZGVySWQoKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgICAgICByZXR1cm4gZnJvbShcclxuICAgICAgICAgICAgdGhpcy5udXhlb1NlcnZpY2UubnV4ZW9DbGllbnRcclxuICAgICAgICAgICAgICAgIC5vcGVyYXRpb24oJ0FDX1VBX0dldFNwYWNlSUQnKVxyXG4gICAgICAgICAgICAgICAgLmV4ZWN1dGUoKVxyXG4gICAgICAgICkucGlwZShcclxuICAgICAgICAgICAgdGFwKChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ3JlcycsIHJlcyk7XHJcbiAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICBjYXRjaEVycm9yKChlcnIpID0+IHtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyKTtcclxuICAgICAgICAgICAgICAgIHJldHVybiBvZihmYWxzZSk7XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBmZXRjaGNhdGVnb3J5X21haW5Gb2xkZXJJZCgpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgICAgIHJldHVybiBmcm9tKFxyXG4gICAgICAgICAgICB0aGlzLm51eGVvU2VydmljZS5udXhlb0NsaWVudFxyXG4gICAgICAgICAgICAgICAgLm9wZXJhdGlvbignQUNfVUFfR2V0TkNBUkNhdGVnb3J5SUQnKVxyXG4gICAgICAgICAgICAgICAgLmV4ZWN1dGUoKVxyXG4gICAgICAgICkucGlwZShcclxuICAgICAgICAgICAgdGFwKChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgLy8gaWYgKCFyZXM/LmVudHJpZXM/Lmxlbmd0aCkge1xyXG4gICAgICAgICAgICAgICAgLy8gICAgIHRocm93IEVycm9yKCdDYXRlZ29yeSBGb2xkZXIgLSBlbXB0eSByZXNwb25zZScpO1xyXG4gICAgICAgICAgICAgICAgLy8gfVxyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKGVycik7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gb2YoZmFsc2UpO1xyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgc2F2ZV9maWxlTWFuYWdlck9ial9Ub0xvY2FsU3RvcmFnZShhcGlOYW1lID0gJ0FDX1VBX0dldEZpbGVNYW5hZ2VySUQnKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgICAgICAvKnJldHVybiB0aGlzLnVzZXJQcmVmZXJlbmNlLmhhc0l0ZW0oJ2ZpbGVNYW5hZ2VyT2JqJykgJiYgIXJlc2V0XHJcbiAgICAgICAgICAgICA/IG9mKHRydWUpOiovXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZmV0Y2hmaWxlTWFuYWdlcl9tYWluRm9sZGVySWQoYXBpTmFtZSkucGlwZShcclxuICAgICAgICAgICAgdGFwKChyZXMpID0+IHtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdyZXM6ICcsIHJlcyk7XHJcbiAgICAgICAgICAgICAgICBpZiAocmVzKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5maWxlTWFuYWdlck9iaiA9IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZW50cmllczogcmVzLmVudHJpZXMubWFwKChpdGVtKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWxldGUgaXRlbS5fYmFzZU9wdGlvbnM7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWxldGUgaXRlbS5fZGlydHlQcm9wZXJ0aWVzO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVsZXRlIGl0ZW0uX251eGVvO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVsZXRlIGl0ZW0uX3JlcG9zaXRvcnk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gaXRlbTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgICAgICAgICAgfTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy51c2VyUHJlZmVyZW5jZS5zZXQoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFwaU5hbWUgPyB0aGlzLmxvY2FsU3RvcmFnS2V5c1thcGlOYW1lXSA6ICdmaWxlTWFuYWdlck9iaicsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIEpTT04uc3RyaW5naWZ5KHRoaXMuZmlsZU1hbmFnZXJPYmopXHJcbiAgICAgICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgIHN3aXRjaE1hcCh2YWx1ZSA9PiBvZih0aGlzLmdldF9maWxlTWFuYWdlck9ial9Gcm9tTG9jYWxTdG9yYWdlKGFwaU5hbWUgPyB0aGlzLmxvY2FsU3RvcmFnS2V5c1thcGlOYW1lXSA6ICdmaWxlTWFuYWdlck9iaicpKSlcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIHNhdmVfbXlmaWxlc01hbmFnZXJPYmpfVG9Mb2NhbFN0b3JhZ2UoKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy51c2VyUHJlZmVyZW5jZS5oYXNJdGVtKCdteUZpbGVzTWFuYWdlck9iaicpXHJcbiAgICAgICAgICAgID8gb2YodHJ1ZSlcclxuICAgICAgICAgICAgOiB0aGlzLmZldGNoTXlGaWxlc01hbmFnZXJfbWFpbkZvbGRlcklkKCkucGlwZShcclxuICAgICAgICAgICAgICAgIHRhcCgocmVzKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ3JlczogJyArIHJlcyk7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlcykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm15RmlsZXNNYW5hZ2VyT2JqID0ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IHJlcy51aWQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXRoOiByZXMucGF0aCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgfTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudXNlclByZWZlcmVuY2Uuc2V0KFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ215RmlsZXNNYW5hZ2VyT2JqJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEpTT04uc3RyaW5naWZ5KHRoaXMubXlGaWxlc01hbmFnZXJPYmopXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBzYXZlX0FyY2hpdmVNYW5hZ2VyT2JqZWN0X1RvTG9jYWxTdG9yYWdlKCk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMudXNlclByZWZlcmVuY2UuaGFzSXRlbSgnQXJjaGl2ZU1hbmFnZXJPYmonKVxyXG4gICAgICAgICAgICA/IG9mKHRydWUpXHJcbiAgICAgICAgICAgIDogdGhpcy5mZXRjaEFyY2hpdmVNYW5hZ2VyX21haW5Gb2xkZXJJZCgpLnBpcGUoXHJcbiAgICAgICAgICAgICAgICB0YXAoKHJlcykgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdyZXM6ICcgKyByZXMpO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXMpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5BcmNoaXZlTWFuYWdlck9iaiA9IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkOiByZXMudWlkLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0aDogcmVzLnBhdGgsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH07XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnVzZXJQcmVmZXJlbmNlLnNldChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICdBcmNoaXZlTWFuYWdlck9iaicsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBKU09OLnN0cmluZ2lmeSh0aGlzLkFyY2hpdmVNYW5hZ2VyT2JqKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgc2F2ZV9jYXRlZ29yeU9ial9Ub0xvY2FsU3RvcmFnZSgpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnVzZXJQcmVmZXJlbmNlLmhhc0l0ZW0oJ2NhdGVnb3J5T2JqJylcclxuICAgICAgICAgICAgPyBvZih0cnVlKVxyXG4gICAgICAgICAgICA6IHRoaXMuZmV0Y2hjYXRlZ29yeV9tYWluRm9sZGVySWQoKS5waXBlKFxyXG4gICAgICAgICAgICAgICAgdGFwKChyZXMpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAocmVzKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY2F0ZWdvcnlPYmogPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZDogcmVzLnVpZCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdGg6IHJlcy5wYXRoLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9O1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy51c2VyUHJlZmVyZW5jZS5zZXQoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY2F0ZWdvcnlPYmonLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgSlNPTi5zdHJpbmdpZnkodGhpcy5jYXRlZ29yeU9iailcclxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIGdldF9maWxlTWFuYWdlck9ial9Gcm9tTG9jYWxTdG9yYWdlKGtleT8pIHtcclxuICAgICAgICBpZiAodGhpcy51c2VyUHJlZmVyZW5jZS5oYXNJdGVtKCBrZXkgPyBrZXkgOiAnZmlsZU1hbmFnZXJPYmonKSkge1xyXG4gICAgICAgICAgICByZXR1cm4gSlNPTi5wYXJzZSh0aGlzLnVzZXJQcmVmZXJlbmNlLmdldChrZXkgPyBrZXkgOiAnZmlsZU1hbmFnZXJPYmonKSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIGdldF9teUZpbGVzTWFuYWdlck9ial9Gcm9tTG9jYWxTdG9yYWdlKCkge1xyXG4gICAgICAgIGlmICh0aGlzLnVzZXJQcmVmZXJlbmNlLmhhc0l0ZW0oJ215RmlsZXNNYW5hZ2VyT2JqJykpIHtcclxuICAgICAgICAgICAgcmV0dXJuIEpTT04ucGFyc2UodGhpcy51c2VyUHJlZmVyZW5jZS5nZXQoJ215RmlsZXNNYW5hZ2VyT2JqJykpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICAgIGdldF9BcmNoaXZlTWFuYWdlck9ial9Gcm9tTG9jYWxTdG9yYWdlKCkge1xyXG4gICAgICAgIGlmICh0aGlzLnVzZXJQcmVmZXJlbmNlLmhhc0l0ZW0oJ0FyY2hpdmVNYW5hZ2VyT2JqJykpIHtcclxuICAgICAgICAgICAgcmV0dXJuIEpTT04ucGFyc2UodGhpcy51c2VyUHJlZmVyZW5jZS5nZXQoJ0FyY2hpdmVNYW5hZ2VyT2JqJykpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICBnZXRfY2F0ZWdvcnlPYmpfRnJvbUxvY2FsU3RvcmFnZSgpIHtcclxuICAgICAgICBpZiAodGhpcy51c2VyUHJlZmVyZW5jZS5oYXNJdGVtKCdjYXRlZ29yeU9iaicpKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBKU09OLnBhcnNlKHRoaXMudXNlclByZWZlcmVuY2UuZ2V0KCdjYXRlZ29yeU9iaicpKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbn1cclxuIl19
170
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbmZvbGRlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvc2hhcmVkLXNlcnZpY2VzL21haW5mb2xkZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxJQUFJLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7QUFTbEUsTUFBTSxPQUFPLGlCQUFpQjtJQVExQixZQUNZLFlBQTBCLEVBQzFCLGdCQUFtQyxFQUNuQyxjQUFzQztRQUZ0QyxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQW1CO1FBQ25DLG1CQUFjLEdBQWQsY0FBYyxDQUF3QjtRQUU5QyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDN0QsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsZUFBZSxDQUFDLGVBQWUsQ0FBQTtRQUNoRixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCw2QkFBNkIsQ0FBQyxPQUFRLEVBQUcsY0FBYyxHQUFHLElBQUk7UUFDMUQsT0FBTyxJQUFJLENBQ1AsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXO2FBQ3hCLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsd0JBQXdCLENBQUM7YUFDdkQsT0FBTyxDQUFDO1lBQ0wsT0FBTyxF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Q0FBQyxPQUFPLENBQUMsbUJBQW1CLENBQUMsRUFBRTtZQUNsRCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDO1NBQ25FO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVELGdDQUFnQztRQUM1QixJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxFQUFFO1lBQzVDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDO1NBQzdEO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQzs7OEdBdE5RLGlCQUFpQjtrSEFBakIsaUJBQWlCLGNBSGQsTUFBTTsyRkFHVCxpQkFBaUI7a0JBSjdCLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBmcm9tLCBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBjYXRjaEVycm9yLCBzd2l0Y2hNYXAsIHRha2UsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgTnV4ZW9TZXJ2aWNlIH0gZnJvbSAnLi4vQ29yZS9zZXJ2aWNlcy9udXhlby9udXhlby5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVXNlclByZWZlcmVuY2VzU2VydmljZSB9IGZyb20gJy4uL0NvcmUvc2VydmljZXMvdXNlci91c2VyLXByZWZlcmVuY2VzLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBcHBDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi4vY29uZmlndXJhdGlvbi9hcHAtY29uZmlnLnNlcnZpY2UnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5cclxuZXhwb3J0IGNsYXNzIE1haW5mb2xkZXJTZXJ2aWNlIHtcclxuICAgIGZpbGVNYW5hZ2VyX21haW5Gb2xkZXJJZDtcclxuICAgIGNhdGVnb3J5X21haW5Gb2xkZXJJZDtcclxuICAgIGZpbGVNYW5hZ2VyT2JqOiBhbnk7XHJcbiAgICBteUZpbGVzTWFuYWdlck9iajogYW55O1xyXG4gICAgQXJjaGl2ZU1hbmFnZXJPYmo6IGFueTtcclxuICAgIGNhdGVnb3J5T2JqOiBhbnk7XHJcbiAgICBsb2NhbFN0b3JhZ0tleXM7XHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcml2YXRlIG51eGVvU2VydmljZTogTnV4ZW9TZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgYXBwQ29uZmlnU2VydmljZSA6IEFwcENvbmZpZ1NlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSB1c2VyUHJlZmVyZW5jZTogVXNlclByZWZlcmVuY2VzU2VydmljZVxyXG4gICAgKSB7IFxyXG4gICAgICAgIHRoaXMuYXBwQ29uZmlnU2VydmljZS5jb25maWdMb2FkZWQucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUocmVzID0+IHtcclxuICAgICAgICAgICAgdGhpcy5sb2NhbFN0b3JhZ0tleXMgPSB0aGlzLmFwcENvbmZpZ1NlcnZpY2UubXlDb25maWd1cmF0aW9uLmxvY2FsU3RvcmFnZUtleVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGZldGNoZmlsZU1hbmFnZXJfbWFpbkZvbGRlcklkKGFwaU5hbWU/ICwgZmFpbElmRW1wdHlSZXMgPSB0cnVlKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgICAgICByZXR1cm4gZnJvbShcclxuICAgICAgICAgICAgdGhpcy5udXhlb1NlcnZpY2UubnV4ZW9DbGllbnRcclxuICAgICAgICAgICAgICAgIC5vcGVyYXRpb24oYXBpTmFtZSA/IGFwaU5hbWUgOiAnQUNfVUFfR2V0RmlsZU1hbmFnZXJJRCcpXHJcbiAgICAgICAgICAgICAgICAuZXhlY3V0ZSh7XHJcbiAgICAgICAgICAgICAgICAgICAgaGVhZGVyczoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0aWVzOiAnZmlsZSwgZHVibGluY29yZSwgY3JlYXRvciwgZHJpdmVyb290LCBkZXBhcnRtZW50c3BhY2UnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAnZmV0Y2gtZG9jdW1lbnQnOiAnZGM6Y3JlYXRvciwgZGM6bGFzdENvbnRyaWJ1dG9yJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgJ2VucmljaGVycy1kb2N1bWVudCc6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaGFzRm9sZGVyaXNoQ2hpbGQsIGZhdm9yaXRlcywgdGh1bWJuYWlsLCBxdWlja0FjY2VzcyxicmVhZGNydW1iJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgJ1gtTlhlbnJpY2hlcnMtZG9jdW1lbnQnOiAndGFncyxwZXJtaXNzaW9ucycsXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgKS5waXBlKFxyXG4gICAgICAgICAgICB0YXAoKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAvLyBmYWlsIGlmIHJlcyxlbnRyaWVzIHdhcyBlbXB0eSBhbmQgd2UgYXJlIG1ha2luZyB0aGlzIGNoZWNrIHNpbmNlIHRoZXJlIGlzIGNhc2VzIHdlIG5lZWQgdG8gcmV0dXJuIGVtcHR5IHJlc3BvbnNlIGFuZCBub3QgZmFpbHNpbmcgbGlrZSBmaWxlcyBpbiBkZ2RhXHJcbiAgICAgICAgICAgICAgICBpZihmYWlsSWZFbXB0eVJlcyl7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFyZXM/LmVudHJpZXM/Lmxlbmd0aCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBFcnJvcignTWFpbiBGb2xkZXIgLSBlbXB0eSByZXNwb25zZScpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgIGNhdGNoRXJyb3IoKGVycikgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihlcnIpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIG9mKGZhbHNlKTtcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIGZldGNoTXlGaWxlc01hbmFnZXJfbWFpbkZvbGRlcklkKCk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICAgICAgcmV0dXJuIGZyb20oXHJcbiAgICAgICAgICAgIHRoaXMubnV4ZW9TZXJ2aWNlLm51eGVvQ2xpZW50XHJcbiAgICAgICAgICAgICAgICAub3BlcmF0aW9uKCdBQ19VQV9QZXJzb25hbFNwYWNlX0dldE9yQ3JlYXRlJylcclxuICAgICAgICAgICAgICAgIC5leGVjdXRlKClcclxuICAgICAgICApLnBpcGUoXHJcbiAgICAgICAgICAgIHRhcCgocmVzOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdyZXMnLCByZXMpO1xyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKGVycik7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gb2YoZmFsc2UpO1xyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcbiAgICBmZXRjaEFyY2hpdmVNYW5hZ2VyX21haW5Gb2xkZXJJZCgpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgICAgIHJldHVybiBmcm9tKFxyXG4gICAgICAgICAgICB0aGlzLm51eGVvU2VydmljZS5udXhlb0NsaWVudFxyXG4gICAgICAgICAgICAgICAgLm9wZXJhdGlvbignQUNfVUFfR2V0U3BhY2VJRCcpXHJcbiAgICAgICAgICAgICAgICAuZXhlY3V0ZSgpXHJcbiAgICAgICAgKS5waXBlKFxyXG4gICAgICAgICAgICB0YXAoKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygncmVzJywgcmVzKTtcclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgIGNhdGNoRXJyb3IoKGVycikgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihlcnIpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIG9mKGZhbHNlKTtcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIGZldGNoY2F0ZWdvcnlfbWFpbkZvbGRlcklkKCk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICAgICAgcmV0dXJuIGZyb20oXHJcbiAgICAgICAgICAgIHRoaXMubnV4ZW9TZXJ2aWNlLm51eGVvQ2xpZW50XHJcbiAgICAgICAgICAgICAgICAub3BlcmF0aW9uKCdBQ19VQV9HZXROQ0FSQ2F0ZWdvcnlJRCcpXHJcbiAgICAgICAgICAgICAgICAuZXhlY3V0ZSgpXHJcbiAgICAgICAgKS5waXBlKFxyXG4gICAgICAgICAgICB0YXAoKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAvLyBpZiAoIXJlcz8uZW50cmllcz8ubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgICAvLyAgICAgdGhyb3cgRXJyb3IoJ0NhdGVnb3J5IEZvbGRlciAtIGVtcHR5IHJlc3BvbnNlJyk7XHJcbiAgICAgICAgICAgICAgICAvLyB9XHJcbiAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICBjYXRjaEVycm9yKChlcnIpID0+IHtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyKTtcclxuICAgICAgICAgICAgICAgIHJldHVybiBvZihmYWxzZSk7XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBzYXZlX2ZpbGVNYW5hZ2VyT2JqX1RvTG9jYWxTdG9yYWdlKGFwaU5hbWUgPSAnQUNfVUFfR2V0RmlsZU1hbmFnZXJJRCcgLCBmYWlsSWZFbXB0eVJlcyA9IHRydWUpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgICAgIC8qcmV0dXJuIHRoaXMudXNlclByZWZlcmVuY2UuaGFzSXRlbSgnZmlsZU1hbmFnZXJPYmonKSAmJiAhcmVzZXRcclxuICAgICAgICAgICAgID8gb2YodHJ1ZSk6Ki9cclxuICAgICAgICByZXR1cm4gdGhpcy5mZXRjaGZpbGVNYW5hZ2VyX21haW5Gb2xkZXJJZChhcGlOYW1lICwgZmFpbElmRW1wdHlSZXMpLnBpcGUoXHJcbiAgICAgICAgICAgIHRhcCgocmVzKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygncmVzOiAnLCByZXMpO1xyXG4gICAgICAgICAgICAgICAgaWYgKHJlcykge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmKHJlcy5lbnRyaWVzKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5maWxlTWFuYWdlck9iaiA9IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudHJpZXM6IHJlcy5lbnRyaWVzLm1hcCgoaXRlbSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlbGV0ZSBpdGVtLl9iYXNlT3B0aW9ucztcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWxldGUgaXRlbS5fZGlydHlQcm9wZXJ0aWVzO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlbGV0ZSBpdGVtLl9udXhlbztcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWxldGUgaXRlbS5fcmVwb3NpdG9yeTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gaXRlbTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZpbGVNYW5hZ2VyT2JqID0ge31cclxuICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMudXNlclByZWZlcmVuY2Uuc2V0KFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBhcGlOYW1lID8gdGhpcy5sb2NhbFN0b3JhZ0tleXNbYXBpTmFtZV0gOiAnZmlsZU1hbmFnZXJPYmonLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBKU09OLnN0cmluZ2lmeSh0aGlzLmZpbGVNYW5hZ2VyT2JqKVxyXG4gICAgICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICBzd2l0Y2hNYXAodmFsdWUgPT4gb2YodGhpcy5nZXRfZmlsZU1hbmFnZXJPYmpfRnJvbUxvY2FsU3RvcmFnZShhcGlOYW1lID8gdGhpcy5sb2NhbFN0b3JhZ0tleXNbYXBpTmFtZV0gOiAnZmlsZU1hbmFnZXJPYmonKSkpXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBzYXZlX215ZmlsZXNNYW5hZ2VyT2JqX1RvTG9jYWxTdG9yYWdlKCk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMudXNlclByZWZlcmVuY2UuaGFzSXRlbSgnbXlGaWxlc01hbmFnZXJPYmonKVxyXG4gICAgICAgICAgICA/IG9mKHRydWUpXHJcbiAgICAgICAgICAgIDogdGhpcy5mZXRjaE15RmlsZXNNYW5hZ2VyX21haW5Gb2xkZXJJZCgpLnBpcGUoXHJcbiAgICAgICAgICAgICAgICB0YXAoKHJlcykgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdyZXM6ICcgKyByZXMpO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXMpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5teUZpbGVzTWFuYWdlck9iaiA9IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkOiByZXMudWlkLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0aDogcmVzLnBhdGgsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH07XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnVzZXJQcmVmZXJlbmNlLnNldChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICdteUZpbGVzTWFuYWdlck9iaicsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBKU09OLnN0cmluZ2lmeSh0aGlzLm15RmlsZXNNYW5hZ2VyT2JqKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgc2F2ZV9BcmNoaXZlTWFuYWdlck9iamVjdF9Ub0xvY2FsU3RvcmFnZSgpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnVzZXJQcmVmZXJlbmNlLmhhc0l0ZW0oJ0FyY2hpdmVNYW5hZ2VyT2JqJylcclxuICAgICAgICAgICAgPyBvZih0cnVlKVxyXG4gICAgICAgICAgICA6IHRoaXMuZmV0Y2hBcmNoaXZlTWFuYWdlcl9tYWluRm9sZGVySWQoKS5waXBlKFxyXG4gICAgICAgICAgICAgICAgdGFwKChyZXMpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygncmVzOiAnICsgcmVzKTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAocmVzKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuQXJjaGl2ZU1hbmFnZXJPYmogPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZDogcmVzLnVpZCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdGg6IHJlcy5wYXRoLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9O1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy51c2VyUHJlZmVyZW5jZS5zZXQoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnQXJjaGl2ZU1hbmFnZXJPYmonLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgSlNPTi5zdHJpbmdpZnkodGhpcy5BcmNoaXZlTWFuYWdlck9iailcclxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIHNhdmVfY2F0ZWdvcnlPYmpfVG9Mb2NhbFN0b3JhZ2UoKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy51c2VyUHJlZmVyZW5jZS5oYXNJdGVtKCdjYXRlZ29yeU9iaicpXHJcbiAgICAgICAgICAgID8gb2YodHJ1ZSlcclxuICAgICAgICAgICAgOiB0aGlzLmZldGNoY2F0ZWdvcnlfbWFpbkZvbGRlcklkKCkucGlwZShcclxuICAgICAgICAgICAgICAgIHRhcCgocmVzKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlcykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNhdGVnb3J5T2JqID0ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IHJlcy51aWQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXRoOiByZXMucGF0aCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgfTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudXNlclByZWZlcmVuY2Uuc2V0KFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NhdGVnb3J5T2JqJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEpTT04uc3RyaW5naWZ5KHRoaXMuY2F0ZWdvcnlPYmopXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRfZmlsZU1hbmFnZXJPYmpfRnJvbUxvY2FsU3RvcmFnZShrZXk/KSB7XHJcbiAgICAgICAgaWYgKHRoaXMudXNlclByZWZlcmVuY2UuaGFzSXRlbSgga2V5ID8ga2V5IDogJ2ZpbGVNYW5hZ2VyT2JqJykpIHtcclxuICAgICAgICAgICAgcmV0dXJuIEpTT04ucGFyc2UodGhpcy51c2VyUHJlZmVyZW5jZS5nZXQoa2V5ID8ga2V5IDogJ2ZpbGVNYW5hZ2VyT2JqJykpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICBnZXRfbXlGaWxlc01hbmFnZXJPYmpfRnJvbUxvY2FsU3RvcmFnZSgpIHtcclxuICAgICAgICBpZiAodGhpcy51c2VyUHJlZmVyZW5jZS5oYXNJdGVtKCdteUZpbGVzTWFuYWdlck9iaicpKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBKU09OLnBhcnNlKHRoaXMudXNlclByZWZlcmVuY2UuZ2V0KCdteUZpbGVzTWFuYWdlck9iaicpKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgICBnZXRfQXJjaGl2ZU1hbmFnZXJPYmpfRnJvbUxvY2FsU3RvcmFnZSgpIHtcclxuICAgICAgICBpZiAodGhpcy51c2VyUHJlZmVyZW5jZS5oYXNJdGVtKCdBcmNoaXZlTWFuYWdlck9iaicpKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBKU09OLnBhcnNlKHRoaXMudXNlclByZWZlcmVuY2UuZ2V0KCdBcmNoaXZlTWFuYWdlck9iaicpKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0X2NhdGVnb3J5T2JqX0Zyb21Mb2NhbFN0b3JhZ2UoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMudXNlclByZWZlcmVuY2UuaGFzSXRlbSgnY2F0ZWdvcnlPYmonKSkge1xyXG4gICAgICAgICAgICByZXR1cm4gSlNPTi5wYXJzZSh0aGlzLnVzZXJQcmVmZXJlbmNlLmdldCgnY2F0ZWdvcnlPYmonKSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==