@rfprodz/client-util-eliza 1.0.0 → 1.0.3

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.
@@ -9,10 +9,10 @@ export class AppClientUtilElizaModule {
9
9
  };
10
10
  }
11
11
  }
12
- /** @nocollapse */ AppClientUtilElizaModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: AppClientUtilElizaModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
13
- /** @nocollapse */ AppClientUtilElizaModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.0.6", ngImport: i0, type: AppClientUtilElizaModule });
14
- /** @nocollapse */ AppClientUtilElizaModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: AppClientUtilElizaModule });
15
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: AppClientUtilElizaModule, decorators: [{
12
+ /** @nocollapse */ AppClientUtilElizaModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: AppClientUtilElizaModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
13
+ /** @nocollapse */ AppClientUtilElizaModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.1.0", ngImport: i0, type: AppClientUtilElizaModule });
14
+ /** @nocollapse */ AppClientUtilElizaModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: AppClientUtilElizaModule });
15
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: AppClientUtilElizaModule, decorators: [{
16
16
  type: NgModule,
17
17
  args: [{}]
18
18
  }] });
@@ -7,24 +7,5 @@
7
7
  * - https://cacm.acm.org/
8
8
  * - https://dl.acm.org/doi/10.1145/365153.365168
9
9
  */
10
- export const elizaPosts = [
11
- 'am',
12
- 'are',
13
- 'your',
14
- 'my',
15
- 'me',
16
- 'you',
17
- 'myself',
18
- 'yourself',
19
- 'yourself',
20
- 'myself',
21
- 'i',
22
- 'you',
23
- 'you',
24
- 'I',
25
- 'my',
26
- 'your',
27
- "i'm",
28
- 'you are',
29
- ];
30
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9zdHMuY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jbGllbnQtdXRpbC1lbGl6YS9zcmMvbGliL2NvbmZpZy9wb3N0cy5jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUE7Ozs7Ozs7O0dBUUc7QUFDSCxNQUFNLENBQUMsTUFBTSxVQUFVLEdBQWdCO0lBQ3JDLElBQUk7SUFDSixLQUFLO0lBQ0wsTUFBTTtJQUNOLElBQUk7SUFDSixJQUFJO0lBQ0osS0FBSztJQUNMLFFBQVE7SUFDUixVQUFVO0lBQ1YsVUFBVTtJQUNWLFFBQVE7SUFDUixHQUFHO0lBQ0gsS0FBSztJQUNMLEtBQUs7SUFDTCxHQUFHO0lBQ0gsSUFBSTtJQUNKLE1BQU07SUFDTixLQUFLO0lBQ0wsU0FBUztDQUNWLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBURWxpc2FQb3N0cyB9IGZyb20gJy4uL2ludGVyZmFjZXMvZWxpemEuaW50ZXJmYWNlJztcblxuLyoqXG4gKiBQb3N0IGV4cHJlc3Npb25zLlxuICpcbiAqIEVudHJpZXMgcHJlc3RydWN0dXJlZCBhcyBsYXllZCBvdXQgaW4gV2VpemVuYmF1bSdzIGRlc2NyaXB0aW9uXG4gKiBbY2Y6IENvbW11bmljYXRpb25zIG9mIHRoZSBBQ00sIFZvbC4gOSwgIzEgKEphbnVhcnkgMTk2Nik6IHAgMzYtNDUuXVxuICogTGlua3M6XG4gKiAtIGh0dHBzOi8vY2FjbS5hY20ub3JnL1xuICogLSBodHRwczovL2RsLmFjbS5vcmcvZG9pLzEwLjExNDUvMzY1MTUzLjM2NTE2OFxuICovXG5leHBvcnQgY29uc3QgZWxpemFQb3N0czogVEVsaXNhUG9zdHMgPSBbXG4gICdhbScsXG4gICdhcmUnLFxuICAneW91cicsXG4gICdteScsXG4gICdtZScsXG4gICd5b3UnLFxuICAnbXlzZWxmJyxcbiAgJ3lvdXJzZWxmJyxcbiAgJ3lvdXJzZWxmJyxcbiAgJ215c2VsZicsXG4gICdpJyxcbiAgJ3lvdScsXG4gICd5b3UnLFxuICAnSScsXG4gICdteScsXG4gICd5b3VyJyxcbiAgXCJpJ21cIixcbiAgJ3lvdSBhcmUnLFxuXTtcbiJdfQ==
10
+ export const elizaPosts = ['am', 'are', 'your', 'my', 'me', 'myself', 'yourself', 'i', 'you', 'I', "i'm", 'you are'];
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9zdHMuY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jbGllbnQtdXRpbC1lbGl6YS9zcmMvbGliL2NvbmZpZy9wb3N0cy5jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUE7Ozs7Ozs7O0dBUUc7QUFDSCxNQUFNLENBQUMsTUFBTSxVQUFVLEdBQWdCLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxTQUFTLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRFbGlzYVBvc3RzIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9lbGl6YS5pbnRlcmZhY2UnO1xuXG4vKipcbiAqIFBvc3QgZXhwcmVzc2lvbnMuXG4gKlxuICogRW50cmllcyBwcmVzdHJ1Y3R1cmVkIGFzIGxheWVkIG91dCBpbiBXZWl6ZW5iYXVtJ3MgZGVzY3JpcHRpb25cbiAqIFtjZjogQ29tbXVuaWNhdGlvbnMgb2YgdGhlIEFDTSwgVm9sLiA5LCAjMSAoSmFudWFyeSAxOTY2KTogcCAzNi00NS5dXG4gKiBMaW5rczpcbiAqIC0gaHR0cHM6Ly9jYWNtLmFjbS5vcmcvXG4gKiAtIGh0dHBzOi8vZGwuYWNtLm9yZy9kb2kvMTAuMTE0NS8zNjUxNTMuMzY1MTY4XG4gKi9cbmV4cG9ydCBjb25zdCBlbGl6YVBvc3RzOiBURWxpc2FQb3N0cyA9IFsnYW0nLCAnYXJlJywgJ3lvdXInLCAnbXknLCAnbWUnLCAnbXlzZWxmJywgJ3lvdXJzZWxmJywgJ2knLCAneW91JywgJ0knLCBcImknbVwiLCAneW91IGFyZSddO1xuIl19
@@ -29,9 +29,7 @@ export const elizaPres = [
29
29
  'machine',
30
30
  'computer',
31
31
  'machines',
32
- 'computer',
33
32
  'computers',
34
- 'computer',
35
33
  'were',
36
34
  'was',
37
35
  "you're",
@@ -45,4 +43,4 @@ export const elizaPres = [
45
43
  'equivalent',
46
44
  'alike',
47
45
  ];
48
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlcy5jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NsaWVudC11dGlsLWVsaXphL3NyYy9saWIvY29uZmlnL3ByZXMuY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFlO0lBQ25DLE1BQU07SUFDTixPQUFPO0lBQ1AsTUFBTTtJQUNOLE9BQU87SUFDUCxNQUFNO0lBQ04sT0FBTztJQUNQLFdBQVc7SUFDWCxVQUFVO0lBQ1YsUUFBUTtJQUNSLFVBQVU7SUFDVixRQUFRO0lBQ1IsU0FBUztJQUNULFFBQVE7SUFDUixPQUFPO0lBQ1AsT0FBTztJQUNQLFNBQVM7SUFDVCxXQUFXO0lBQ1gsS0FBSztJQUNMLFNBQVM7SUFDVCxVQUFVO0lBQ1YsVUFBVTtJQUNWLFVBQVU7SUFDVixXQUFXO0lBQ1gsVUFBVTtJQUNWLE1BQU07SUFDTixLQUFLO0lBQ0wsUUFBUTtJQUNSLFNBQVM7SUFDVCxLQUFLO0lBQ0wsTUFBTTtJQUNOLE1BQU07SUFDTixPQUFPO0lBQ1AsV0FBVztJQUNYLE9BQU87SUFDUCxZQUFZO0lBQ1osT0FBTztDQUNSLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBURWxpc2FQcmVzIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9lbGl6YS5pbnRlcmZhY2UnO1xuXG4vKipcbiAqIFByZSBleHByZXNzaW9ucy5cbiAqXG4gKiBFbnRyaWVzIHByZXN0cnVjdHVyZWQgYXMgbGF5ZWQgb3V0IGluIFdlaXplbmJhdW0ncyBkZXNjcmlwdGlvblxuICogW2NmOiBDb21tdW5pY2F0aW9ucyBvZiB0aGUgQUNNLCBWb2wuIDksICMxIChKYW51YXJ5IDE5NjYpOiBwIDM2LTQ1Ll1cbiAqIExpbmtzOlxuICogLSBodHRwczovL2NhY20uYWNtLm9yZy9cbiAqIC0gaHR0cHM6Ly9kbC5hY20ub3JnL2RvaS8xMC4xMTQ1LzM2NTE1My4zNjUxNjhcbiAqL1xuZXhwb3J0IGNvbnN0IGVsaXphUHJlczogVEVsaXNhUHJlcyA9IFtcbiAgJ2RvbnQnLFxuICBcImRvbid0XCIsXG4gICdjYW50JyxcbiAgXCJjYW4ndFwiLFxuICAnd29udCcsXG4gIFwid29uJ3RcIixcbiAgJ3JlY29sbGVjdCcsXG4gICdyZW1lbWJlcicsXG4gICdyZWNhbGwnLFxuICAncmVtZW1iZXInLFxuICAnZHJlYW10JyxcbiAgJ2RyZWFtZWQnLFxuICAnZHJlYW1zJyxcbiAgJ2RyZWFtJyxcbiAgJ21heWJlJyxcbiAgJ3BlcmhhcHMnLFxuICAnY2VydGFpbmx5JyxcbiAgJ3llcycsXG4gICdtYWNoaW5lJyxcbiAgJ2NvbXB1dGVyJyxcbiAgJ21hY2hpbmVzJyxcbiAgJ2NvbXB1dGVyJyxcbiAgJ2NvbXB1dGVycycsXG4gICdjb21wdXRlcicsXG4gICd3ZXJlJyxcbiAgJ3dhcycsXG4gIFwieW91J3JlXCIsXG4gICd5b3UgYXJlJyxcbiAgXCJpJ21cIixcbiAgJ2kgYW0nLFxuICAnc2FtZScsXG4gICdhbGlrZScsXG4gICdpZGVudGljYWwnLFxuICAnYWxpa2UnLFxuICAnZXF1aXZhbGVudCcsXG4gICdhbGlrZScsXG5dO1xuIl19
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlcy5jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NsaWVudC11dGlsLWVsaXphL3NyYy9saWIvY29uZmlnL3ByZXMuY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFlO0lBQ25DLE1BQU07SUFDTixPQUFPO0lBQ1AsTUFBTTtJQUNOLE9BQU87SUFDUCxNQUFNO0lBQ04sT0FBTztJQUNQLFdBQVc7SUFDWCxVQUFVO0lBQ1YsUUFBUTtJQUNSLFVBQVU7SUFDVixRQUFRO0lBQ1IsU0FBUztJQUNULFFBQVE7SUFDUixPQUFPO0lBQ1AsT0FBTztJQUNQLFNBQVM7SUFDVCxXQUFXO0lBQ1gsS0FBSztJQUNMLFNBQVM7SUFDVCxVQUFVO0lBQ1YsVUFBVTtJQUNWLFdBQVc7SUFDWCxNQUFNO0lBQ04sS0FBSztJQUNMLFFBQVE7SUFDUixTQUFTO0lBQ1QsS0FBSztJQUNMLE1BQU07SUFDTixNQUFNO0lBQ04sT0FBTztJQUNQLFdBQVc7SUFDWCxPQUFPO0lBQ1AsWUFBWTtJQUNaLE9BQU87Q0FDUixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVEVsaXNhUHJlcyB9IGZyb20gJy4uL2ludGVyZmFjZXMvZWxpemEuaW50ZXJmYWNlJztcblxuLyoqXG4gKiBQcmUgZXhwcmVzc2lvbnMuXG4gKlxuICogRW50cmllcyBwcmVzdHJ1Y3R1cmVkIGFzIGxheWVkIG91dCBpbiBXZWl6ZW5iYXVtJ3MgZGVzY3JpcHRpb25cbiAqIFtjZjogQ29tbXVuaWNhdGlvbnMgb2YgdGhlIEFDTSwgVm9sLiA5LCAjMSAoSmFudWFyeSAxOTY2KTogcCAzNi00NS5dXG4gKiBMaW5rczpcbiAqIC0gaHR0cHM6Ly9jYWNtLmFjbS5vcmcvXG4gKiAtIGh0dHBzOi8vZGwuYWNtLm9yZy9kb2kvMTAuMTE0NS8zNjUxNTMuMzY1MTY4XG4gKi9cbmV4cG9ydCBjb25zdCBlbGl6YVByZXM6IFRFbGlzYVByZXMgPSBbXG4gICdkb250JyxcbiAgXCJkb24ndFwiLFxuICAnY2FudCcsXG4gIFwiY2FuJ3RcIixcbiAgJ3dvbnQnLFxuICBcIndvbid0XCIsXG4gICdyZWNvbGxlY3QnLFxuICAncmVtZW1iZXInLFxuICAncmVjYWxsJyxcbiAgJ3JlbWVtYmVyJyxcbiAgJ2RyZWFtdCcsXG4gICdkcmVhbWVkJyxcbiAgJ2RyZWFtcycsXG4gICdkcmVhbScsXG4gICdtYXliZScsXG4gICdwZXJoYXBzJyxcbiAgJ2NlcnRhaW5seScsXG4gICd5ZXMnLFxuICAnbWFjaGluZScsXG4gICdjb21wdXRlcicsXG4gICdtYWNoaW5lcycsXG4gICdjb21wdXRlcnMnLFxuICAnd2VyZScsXG4gICd3YXMnLFxuICBcInlvdSdyZVwiLFxuICAneW91IGFyZScsXG4gIFwiaSdtXCIsXG4gICdpIGFtJyxcbiAgJ3NhbWUnLFxuICAnYWxpa2UnLFxuICAnaWRlbnRpY2FsJyxcbiAgJ2FsaWtlJyxcbiAgJ2VxdWl2YWxlbnQnLFxuICAnYWxpa2UnLFxuXTtcbiJdfQ==
@@ -66,7 +66,7 @@ export class AppElizaService {
66
66
  * @param reinitialize indicates that Eliza should be initialized again, even if it's data has already been initialized
67
67
  */
68
68
  setup(data, reinitialize = false) {
69
- if (typeof this.data === 'undefined' && !reinitialize) {
69
+ if (typeof this.data === 'undefined' || reinitialize) {
70
70
  this.init(data);
71
71
  }
72
72
  this.reset();
@@ -427,9 +427,9 @@ export class AppElizaService {
427
427
  });
428
428
  }
429
429
  }
430
- /** @nocollapse */ AppElizaService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: AppElizaService, deps: [{ token: ELIZA_DATA }], target: i0.ɵɵFactoryTarget.Injectable });
431
- /** @nocollapse */ AppElizaService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: AppElizaService, providedIn: 'root' });
432
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: AppElizaService, decorators: [{
430
+ /** @nocollapse */ AppElizaService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: AppElizaService, deps: [{ token: ELIZA_DATA }], target: i0.ɵɵFactoryTarget.Injectable });
431
+ /** @nocollapse */ AppElizaService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: AppElizaService, providedIn: 'root' });
432
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: AppElizaService, decorators: [{
433
433
  type: Injectable,
434
434
  args: [{
435
435
  providedIn: 'root',
@@ -438,4 +438,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
438
438
  type: Inject,
439
439
  args: [ELIZA_DATA]
440
440
  }] }]; } });
441
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxpemEuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY2xpZW50LXV0aWwtZWxpemEvc3JjL2xpYi9zZXJ2aWNlcy9lbGl6YS9lbGl6YS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7O0dBYUc7QUFFSCxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXZDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7QUFPbkUsTUFBTSxPQUFPLGVBQWU7SUFtQzFCLFlBQWdELFNBQXFCO1FBQXJCLGNBQVMsR0FBVCxTQUFTLENBQVk7UUFsQ3JFOztXQUVHO1FBQ2Msa0JBQWEsR0FBRyxJQUFJLGVBQWUsQ0FBZSxFQUFFLEdBQUcsa0JBQWtCLEVBQUUsQ0FBQyxDQUFDO1FBRTlGOztXQUVHO1FBQ2EsWUFBTyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxFQUFFLENBQUM7UUFJcEQsUUFBRyxHQUFhLEVBQUUsQ0FBQztRQUVuQixlQUFVLEdBQWUsRUFBRSxDQUFDO1FBRTVCLFlBQU8sR0FBRyxJQUFJLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUV6QixXQUFNLEdBQUcsSUFBSSxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7UUFFeEIsU0FBSSxHQUEyQixFQUFFLENBQUM7UUFFbEMsVUFBSyxHQUEyQixFQUFFLENBQUM7UUFFM0M7O1dBRUc7UUFDYyxvQkFBZSxHQUFHLElB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TUFBTSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBQzVILENBQUM7SUFFTSxXQUFXLENBQUMsU0FBaUI7UUFDbEMsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztRQUN2QixJQUFJLE9BQU8sSUFBSSxLQUFLLFdBQVcsRUFBRTtZQUMvQixNQUFNLElBQUksS0FBSyxDQUFDLHlCQUF5QixDQUFDLENBQUM7U0FDNUM7UUFDRCxPQUFPLElBQUksT0FBTyxDQUFpQixPQUFPLENBQUMsRUFBRTtZQUMzQyxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1lBQzVELE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN0QixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7OytIQXphVSxlQUFlLGtCQW1DTixVQUFVO21JQW5DbkIsZUFBZSxjQUZkLE1BQU07MkZBRVAsZUFBZTtrQkFIM0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQW9DYyxNQUFNOzJCQUFDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIGVsaXphYm90LmpzIHYuMS4xIC0gRUxJWkEgSlMgbGlicmFyeSAoTi5MYW5kc3RlaW5lciAyMDA1KVxuICogRWxpemEgaXMgYSBtb2NrIFJvZ2VyaWFuIHBzeWNob3RoZXJhcGlzdC5cbiAqIE9yaWdpbmFsIHByb2dyYW0gYnkgSm9zZXBoIFdlaXplbmJhdW0gaW4gTUFELVNMSVAgZm9yIFwiUHJvamVjdCBNQUNcIiBhdCBNSVQuXG4gKiBjZjogV2VpemVuYmF1bSwgSm9zZXBoIFwiRUxJWkEgLSBBIENvbXB1dGVyIFByb2dyYW0gRm9yIHRoZSBTdHVkeSBvZiBOYXR1cmFsIExhbmd1YWdlIENvbW11bmljYXRpb24gQmV0d2VlbiBNYW4gYW5kIE1hY2hpbmVcIlxuICogaW46IENvbW11bmljYXRpb25zIG9mIHRoZSBBQ007IFZvbHVtZSA5ICwgSXNzdWUgMSAoSmFudWFyeSAxOTY2KTogcCAzNi00NS5cbiAqIEphdmFTY3JpcHQgaW1wbGVtZW50YXRpb24gYnkgTm9yYmVydCBMYW5kc3RlaW5lciAyMDA1OyA8aHR0cDovL3d3dy5tYXNzZXJrLmF0PlxuICpcbiAqIGBFbGl6YUJvdCcgaXMgYWxzbyBhIGdlbmVyYWwgY2hhdGJvdCBlbmdpbmUgdGhhdCBjYW4gYmUgc3VwcGxpZWQgd2l0aCBhbnkgcnVsZSBzZXQuXG4gKiAoZm9yIHJlcXVpcmVkIGRhdGEgc3RydWN0dXJlcyBjZi4gXCJlbGl6YWRhdGEuanNcIiBhbmQvb3Igc2VlIHRoZSBkb2N1bWVudGF0aW9uLilcbiAqIGRhdGEgaXMgcGFyc2VkIGFuZCB0cmFuc2Zvcm1lZCBmb3IgaW50ZXJuYWwgdXNlIGF0IHRoZSBjcmVhdGlvbiB0aW1lIG9mIHRoZSBmaXJzdCBpbnN0YW5jZSBvZiB0aGUgYEVsaXphQm90JyBjb25zdHJ1Y3Rvci5cbiAqXG4gKiBKYXZhU2NyaXB0IHNvdXJjZTogaHR0cHM6Ly9naXRodWIuY29tL25hdGVsZXdpcy9lbGl6YS1hcy1wcm9taXNlZFxuICovXG5cbmltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IEVMSVpBX0RBVEEgfSBmcm9tICcuLi8uLi9jb25maWcvZGF0YS5jb25maWcnO1xuaW1wb3J0IHsgZWxpemFJbml0aWFsQ29uZmlnIH0gZnJvbSAnLi4vLi4vY29uZmlnL2VsaXphLmNvbmZpZyc7XG5pbXBvcnQgeyBlbGl6YUZpbmFsRGVmYXVsdCB9IGZyb20gJy4uLy4uL2NvbmZpZy9maW5hbHMuY29uZmlnJztcbmltcG9ydCB7IGVsaXphSW5pdGlhbERlZmF1bHQgfSBmcm9tICcuLi8uLi9jb25maWcvaW5pdGlhbHMuY29uZmlnJztcbmltcG9ydCB7IElDaGF0TWVzc2FnZSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvY2hhdC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSUVsaXphQ29uZmlnLCBJRWxpemFEYXRhLCBJRWxpemFLZXl3b3JkLCBJRWxpemFSZXNwb25zZSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvZWxpemEuaW50ZXJmYWNlJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIEFwcEVsaXphU2VydmljZSB7XG4gIC8qKlxuICAgKiBFbGl6YSBjb25maWd1cmF0aW9uLlxuICAgKi9cbiAgcHJpdmF0ZSByZWFkb25seSBjb25maWdTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxJRWxpemFDb25maWc+KHsgLi4uZWxpemFJbml0aWFsQ29uZmlnIH0pO1xuXG4gIC8qKlxuICAgKiBQdWJsaWNseSByZWFkYWJsZSBFbGl6YSBjb25maWd1cmF0aW9uLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGNvbmZpZyQgPSB0aGlzLmNvbmZpZ1N1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG5cbiAgcHJpdmF0ZSBkYXRhPzogSUVsaXphRGF0YTtcblxuICBwcml2YXRlIG1lbTogc3RyaW5nW10gPSBbXTtcblxuICBwcml2YXRlIGxhc3RDaG9pY2U6IG51bWJlcltdW10gPSBbXTtcblxuICBwcml2YXRlIHBvc3RFeHAgPSBuZXcgUmVnRXhwKCcnKTtcblxuICBwcml2YXRlIHByZUV4cCA9IG5ldyBSZWdFeHAoJycpO1xuXG4gIHByaXZhdGUgcHJlczogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHt9O1xuXG4gIHByaXZhdGUgcG9zdHM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7fTtcblxuICAvKipcbiAgICogQ29udmVyc2F0aW9uIG1lc3NhZ2VzLlxuICAgKi9cbiAgcHJpdmF0ZSByZWFkb25seSBtZXNzYWdlc1N1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PElDaGF0TWVzc2FnZVtdPihbXSk7XG5cbiAgLyoqXG4gICAqIFB1YmxpY2x5IHJlYWRhYmxlIGNvbnZlcnNhdGlvbiBtZXNzYWdlcy5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBtZXNzYWdlcyQgPSB0aGlzLm1lc3NhZ2VzU3ViamVjdC5hc09ic2VydmFibGUoKTtcblxuICBjb25zdHJ1Y3RvcihASW5qZWN0KEVMSVpBX0RBVEEpIHB1YmxpYyByZWFkb25seSBlbGl6YURhdGE6IElFbGl6YURhdGEpIHtcbiAgICB0aGlzLnNldHVwKGVsaXphRGF0YSk7XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBuZXh0IGNoYXQgbWVzc2FnZS5cbiAgICogQHBhcmFtIG1lc3NhZ2UgY2hhdCBtZXNzYWdlXG4gICAqL1xuICBwdWJsaWMgbmV4dE1lc3NhZ2UobWVzc2FnZTogSUNoYXRNZXNzYWdlKTogdm9pZCB7XG4gICAgdGhpcy5tZXNzYWdlc1N1YmplY3QubmV4dChbLi4udGhpcy5tZXNzYWdlc1N1YmplY3QudmFsdWUsIG1lc3NhZ2VdKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNb2RpZmllcyBFbGl6YSBjb25maWd1cmF0aW9uLlxuICAgKiBAcGFyYW0gY29uZmlnIEVsaXphIGNvbmZpZ1xuICAgKi9cbiAgcHVibGljIG5leHRDb25maWcoY29uZmlnOiBQYXJ0aWFsPElFbGl6YUNvbmZpZz4pOiB2b2lkIHtcbiAgICB0aGlzLmNvbmZpZ1N1YmplY3QubmV4dCh7IC4uLnRoaXMuY29uZmlnU3ViamVjdC52YWx1ZSwgLi4uY29uZmlnIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdXAgRWxpemEuXG4gICAqIEBwYXJhbSBkYXRhIEVsaXphIGRhdGFcbiAgICogQHBhcmFtIHJlaW5pdGlhbGl6ZSBpbmRpY2F0ZXMgdGhhdCBFbGl6YSBzaG91bGQgYmUgaW5pdGlhbGl6ZWQgYWdhaW4sIGV2ZW4gaWYgaXQncyBkYXRhIGhhcyBhbHJlYWR5IGJlZW4gaW5pdGlhbGl6ZWRcbiAgICovXG4gIHB1YmxpYyBzZXR1cChkYXRhOiBJRWxpemFEYXRhLCByZWluaXRpYWxpemUgPSBmYWxzZSk6IHZvaWQge1xuICAgIGlmICh0eXBlb2YgdGhpcy5kYXRhID09PSAndW5kZWZpbmVkJyAmJiAhcmVpbml0aWFsaXplKSB7XG4gICAgICB0aGlzLmluaXQoZGF0YSk7XG4gICAgfVxuICAgIHRoaXMucmVzZXQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXNldHMgRWxpemEuXG4gICAqL1xuICBwdWJsaWMgcmVzZXQoKTogdm9pZCB7XG4gICAgY29uc3QgZGF0YSA9IHRoaXMuZGF0YTtcbiAgICBpZiAodHlwZW9mIGRhdGEgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0luaXRpYWxpemUgRWxpemEgZmlyc3QuJyk7XG4gICAgfVxuICAgIHRoaXMubWVtID0gW107XG4gICAgdGhpcy5sYXN0Q2hvaWNlID0gW107XG4gICAgZm9yIChsZXQgayA9IDA7IGsgPCBkYXRhLmtleXdvcmRzLmxlbmd0aDsgayArPSAxKSB7XG4gICAgICB0aGlzLmxhc3RDaG9pY2Vba10gPSBbXTtcbiAgICAgIGNvbnN0IHJ1bGVzID0gZGF0YS5rZXl3b3Jkc1trXS5ydWxlcztcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcnVsZXMubGVuZ3RoOyBpICs9IDEpIHtcbiAgICAgICAgdGhpcy5sYXN0Q2hvaWNlW2tdW2ldID0gLTE7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMubWVzc2FnZXNTdWJqZWN0Lm5leHQoW3sgYm90OiB0cnVlLCB0ZXh0OiB0aGlzLmdldEluaXRpYWwoZGF0YSkgfV0pO1xuICB9XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG1heC1saW5lcy1wZXItZnVuY3Rpb24sIGNvbXBsZXhpdHkgLS0gVE9ETyByZWZhY3RvclxuICBwcml2YXRlIGluaXQoZGF0YTogSUVsaXphRGF0YSk6IHZvaWQge1xuICAgIHRoaXMuZGF0YSA9IHsgLi4uZGF0YSB9O1xuICAgIC8vIFBhcnNlIGRhdGEgYW5kIGNvbnZlcnQgaXQgZnJvbSBjYW5vbmljYWwgZm9ybSB0byBpbnRlcm5hbCB1c2UuXG4gICAgLy8gUHJvZHVjZSBhIGxpc3Qgb2Ygc3lub255bXMuXG4gICAgY29uc3Qgc3luUGF0dGVybnM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7fTtcbiAgICBmb3IgKGNvbnN0IGl0ZW0gaW4gdGhpcy5kYXRhLnN5bm9ueW1zKSB7XG4gICAgICBpZiAoaXRlbSkge1xuICAgICAgICBzeW5QYXR0ZXJuc1tpdGVtXSA9IGAoJHtpdGVtfXwke3RoaXMuZGF0YS5zeW5vbnltc1tpdGVtXS5qb2luKCd8Jyl9KWA7XG4gICAgICB9XG4gICAgfVxuICAgIC8vIENoZWNrIGtleXdvcmRzLlxuICAgIGlmIChkYXRhLmtleXdvcmRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhyb3cgRXJyb3IoJ0VsaXphIGRvZXMgbm90IGhhdmUgYW55IGNvbmZpZ3VyZWQga2V5d29yZHMuJyk7XG4gICAgfVxuICAgIC8vIEZpcnN0LCBjb252ZXJ0IHJ1bGVzIHRvIHJlZ2V4cHMuXG4gICAgLy8gRXhwYW5kIHN5bm9ueW1zIGFuZCBpbnNlcnQgYXN0ZXJpc2sgZXhwcmVzc2lvbnMgZm9yIGJhY2t0cmFja2luZy5cbiAgICBjb25zdCBzcmUgPSAvQChcXFMrKS87XG4gICAgY29uc3QgYXJlID0gLyhcXFMpXFxzKlxcKlxccyooXFxTKS87XG4gICAgY29uc3QgYXJlMSA9IC9eXFxzKlxcKlxccyooXFxTKS87XG4gICAgY29uc3QgYXJlMiA9IC8oXFxTKVxccypcXCpcXHMqJC87XG4gICAgY29uc3QgYXJlMyA9IC9eXFxzKlxcKlxccyokLztcbiAgICBjb25zdCB3c3JlID0gL1xccysvZztcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuZGF0YS5rZXl3b3Jkcy5sZW5ndGg7IGkgKz0gMSkge1xuICAgICAgY29uc3QgcnVsZXMgPSB0aGlzLmRhdGEua2V5d29yZHNbaV0ucnVsZXM7XG4gICAgICBmb3IgKGxldCBqID0gMDsgaiA8IHJ1bGVzLmxlbmd0aDsgaiArPSAxKSB7XG4gICAgICAgIGNvbnN0IHJ1bGUgPSBydWxlc1tqXTtcbiAgICAgICAgLy8gQ2hlY2sgbWVtIGZsYWcgYW5kIHN0b3JlIGl0IGFzIGRlY29tcCdzIGVsZW1lbnQgMi5cbiAgICAgICAgaWYgKHJ1bGUucGF0dGVybi5jaGFyQXQoMCkgPT09ICckJykge1xuICAgICAgICAgIGxldCBvZnMgPSAxO1xuICAgICAgICAgIHdoaWxlIChydWxlLnBhdHRlcm4uY2hhckF0W29mc10gPT09ICcgJykge1xuICAgICAgICAgICAgb2ZzICs9IDE7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJ1bGUucGF0dGVybiA9IHJ1bGUucGF0dGVybi5zdWJzdHJpbmcob2ZzKTtcbiAgICAgICAgICBydWxlLm1lbW9yeSA9IHRydWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcnVsZS5tZW1vcnkgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBsZXQgbWF0Y2ggPSBydWxlLnBhdHRlcm4ubWF0Y2goc3JlKTtcbiAgICAgICAgd2hpbGUgKG1hdGNoICE9PSBudWxsKSB7XG4gICAgICAgICAgY29uc3Qgc3AgPSBzeW5QYXR0ZXJuc1ttYXRjaFsxXV0gPyBzeW5QYXR0ZXJuc1ttYXRjaFsxXV0gOiBtYXRjaFsxXTtcbiAgICAgICAgICBydWxlLnBhdHRlcm4gPSBydWxlLnBhdHRlcm4uc3Vic3RyaW5nKDAsIG1hdGNoLmluZGV4ID8/IDApICsgc3AgKyBydWxlLnBhdHRlcm4uc3Vic3RyaW5nKChtYXRjaC5pbmRleCA/PyAwKSArIG1hdGNoWzBdLmxlbmd0aCk7XG4gICAgICAgICAgbWF0Y2ggPSBydWxlLnBhdHRlcm4ubWF0Y2goc3JlKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBFeHBhbmQgYXN0ZXJpc2sgZXhwcmVzc2lvbnMuXG4gICAgICAgIGlmIChhcmUzLnRlc3QocnVsZS5wYXR0ZXJuKSkge1xuICAgICAgICAgIHJ1bGUucGF0dGVybiA9ICdcXFxccyooLiopXFxcXHMqJztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBtYXRjaCA9IHJ1bGUucGF0dGVybi5tYXRjaChhcmUpO1xuICAgICAgICAgIGlmIChtYXRjaCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgbGV0IGxlZnRQYXJ0ID0gJyc7XG4gICAgICAgICAgICBsZXQgcmlnaHRQYXJ0ID0gcnVsZS5wYXR0ZXJuO1xuICAgICAgICAgICAgd2hpbGUgKG1hdGNoICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgIGxlZnRQYXJ0ICs9IHJpZ2h0UGFydC5zdWJzdHJpbmcoMCwgKG1hdGNoLmluZGV4ID8/IDApICsgMSk7XG4gICAgICAgICAgICAgIGlmIChtYXRjaFsxXSAhPT0gJyknKSB7XG4gICAgICAgICAgICAgICAgbGVmdFBhcnQgKz0gJ1xcXFxiJztcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBsZWZ0UGFydCArPSAnXFxcXHMqKC4qKVxcXFxzKic7XG4gICAgICAgICAgICAgIGlmIChtYXRjaFsyXSAhPT0gJygnICYmIG1hdGNoWzJdICE9PSAnXFxcXCcpIHtcbiAgICAgICAgICAgICAgICBsZWZ0UGFydCArPSAnXFxcXGInO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGxlZnRQYXJ0ICs9IG1hdGNoWzJdO1xuICAgICAgICAgICAgICByaWdodFBhcnQgPSByaWdodFBhcnQuc3Vic3RyaW5nKChtYXRjaC5pbmRleCA/PyAwKSArIG1hdGNoWzBdLmxlbmd0aCk7XG4gICAgICAgICAgICAgIG1hdGNoID0gcmlnaHRQYXJ0Lm1hdGNoKGFyZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBydWxlLnBhdHRlcm4gPSBsZWZ0UGFydCArIHJpZ2h0UGFydDtcbiAgICAgICAgICB9XG4gICAgICAgICAgbWF0Y2ggPSBydWxlLnBhdHRlcm4ubWF0Y2goYXJlMSk7XG4gICAgICAgICAgaWYgKG1hdGNoICE9PSBudWxsKSB7XG4gICAgICAgICAgICBsZXQgbGVmdFBhcnQgPSAnXFxcXHMqKC4qKVxcXFxzKic7XG4gICAgICAgICAgICBpZiAobWF0Y2hbMV0gIT09ICcpJyAmJiBtYXRjaFsxXSAhPT0gJ1xcXFwnKSB7XG4gICAgICAgICAgICAgIGxlZnRQYXJ0ICs9ICdcXFxcYic7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBydWxlLnBhdHRlcm4gPSBsZWZ0UGFydCArIHJ1bGUucGF0dGVybi5zdWJzdHJpbmcoKG1hdGNoLmluZGV4ID8/IDApIC0gMSArIG1hdGNoWzBdLmxlbmd0aCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIG1hdGNoID0gcnVsZS5wYXR0ZXJuLm1hdGNoKGFyZTIpO1xuICAgICAgICAgIGlmIChtYXRjaCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgbGV0IGxlZnRQYXJ0ID0gcnVsZS5wYXR0ZXJuLnN1YnN0cmluZygwLCAobWF0Y2guaW5kZXggPz8gMCkgKyAxKTtcbiAgICAgICAgICAgIGlmIChtYXRjaFsxXSAhPT0gJygnKSB7XG4gICAgICAgICAgICAgIGxlZnRQYXJ0ICs9ICdcXFxcYic7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBydWxlLnBhdHRlcm4gPSBsZWZ0UGFydCArICdcXFxccyooLiopXFxcXHMqJztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLy8gRXhwYW5kIHdoaXRlc3BhY2VzLlxuICAgICAgICBydWxlLnBhdHRlcm4gPSBydWxlLnBhdHRlcm4ucmVwbGFjZSh3c3JlLCAnXFxcXHMrJyk7XG4gICAgICAgIHdzcmUubGFzdEluZGV4ID0gMDtcbiAgICAgIH1cbiAgICB9XG4gICAgLy8gU29ydCBrZXl3b3JkcyBieSByYW5rIChoaWdoZXN0IGZpcnN0KS5cbiAgICB0aGlzLmRhdGEua2V5d29yZHMuc29ydCh0aGlzLnNvcnRLZXl3b3Jkcyk7XG4gICAgLy8gQ29tcG9zZSByZWdleHBzIGFuZCByZWZzIGZvciBwcmVzIGFuZCBwb3N0cy5cbiAgICB0aGlzLmNvbXBvc2VSZWdFeHBzQW5kUHJlc0FuZFBvc3RzKHRoaXMuZGF0YSk7XG4gIH1cblxuICAvKipcbiAgICogQ29tcG9zZXMgcmVnZXhwcyBhbmQgcmVmcyBmb3IgcHJlcyBhbmQgcG9zdHMuXG4gICAqIEBwYXJhbSBkYXRhIEVsaXphIGRhdGFcbiAgICovXG4gIHByaXZhdGUgY29tcG9zZVJlZ0V4cHNBbmRQcmVzQW5kUG9zdHMoZGF0YTogSUVsaXphRGF0YSk6IHZvaWQge1xuICAgIHRoaXMucHJlcyA9IHt9O1xuICAgIHRoaXMucG9zdHMgPSB7fTtcbiAgICBpZiAoZGF0YS5wcmVzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhyb3cgRXJyb3IoJ0VsaXphIGRvZXMgbm90IGhhdmUgYW55IGNvbmZpZ3VyZWQgcHJlIGV4cHJlc3Npb25zLicpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBhID0gW107XG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGRhdGEucHJlcy5sZW5ndGg7IGkgKz0gMikge1xuICAgICAgICBhLnB1c2goZGF0YS5wcmVzW2ldKTtcbiAgICAgICAgdGhpcy5wcmVzW2RhdGEucHJlc1tpXV0gPSBkYXRhLnByZXNbaSArIDFdO1xuICAgICAgfVxuICAgICAgdGhpcy5wcmVFeHAgPSBuZXcgUmVnRXhwKCdcXFxcYignICsgYS5qb2luKCd8JykgKyAnKVxcXFxiJyk7XG4gICAgfVxuICAgIGlmIChkYXRhLnBvc3RzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhyb3cgRXJyb3IoJ0VsaXphIGRvZXMgbm90IGhhdmUgYW55IGNvbmZpZ3VyZWQgcG9zdCBleHByZXNzaW9ucy4nKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgYSA9IFtdO1xuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBkYXRhLnBvc3RzLmxlbmd0aDsgaSArPSAyKSB7XG4gICAgICAgIGEucHVzaChkYXRhLnBvc3RzW2ldKTtcbiAgICAgICAgdGhpcy5wb3N0c1tkYXRhLnBvc3RzW2ldXSA9IGRhdGEucG9zdHNbaSArIDFdO1xuICAgICAgfVxuICAgICAgdGhpcy5wb3N0RXhwID0gbmV3IFJlZ0V4cCgnXFxcXGIoJyArIGEuam9pbignfCcpICsgJylcXFxcYicpO1xuICAgIH1cbiAgfVxuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBtYXgtbGluZXMtcGVyLWZ1bmN0aW9uLCBjb21wbGV4aXR5IC0tIFRPRE8gcmVmYWN0b3JcbiAgcHJpdmF0ZSBleGVjUnVsZShkYXRhOiBJRWxpemFEYXRhLCBrOiBudW1iZXIsIHNlbnRlbmNlOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IGNvbmZpZyA9IHRoaXMuY29uZmlnU3ViamVjdC52YWx1ZTtcbiAgICBjb25zdCBydWxlcyA9IGRhdGEua2V5d29yZHNba10ucnVsZXM7XG4gICAgY29uc3QgcGFyYW1SZWdFeHAgPSAvXFwoKFswLTldKylcXCkvO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcnVsZXMubGVuZ3RoOyBpICs9IDEpIHtcbiAgICAgIGNvbnN0IG1hdGNoID0gc2VudGVuY2UubWF0Y2gocnVsZXNbaV0ucGF0dGVybik7XG4gICAgICBpZiAobWF0Y2ggIT09IG51bGwpIHtcbiAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHJ1bGVzW2ldLm9wdGlvbnM7XG4gICAgICAgIGNvbnN0IG1lbW9yeSA9IHJ1bGVzW2ldLm1lbW9yeTtcbiAgICAgICAgbGV0IG9wdGlvbkluZGV4ID0gY29uZmlnLm5vUmFuZG9tID8gMCA6IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIG9wdGlvbnMubGVuZ3RoKTtcbiAgICAgICAgaWYgKChjb25maWcubm9SYW5kb20gJiYgdGhpcy5sYXN0Q2hvaWNlW2tdW2ldID4gb3B0aW9uSW5kZXgpIHx8IHRoaXMubGFzdENob2ljZVtrXVtpXSA9PT0gb3B0aW9uSW5kZXgpIHtcbiAgICAgICAgICB0aGlzLmxhc3RDaG9pY2Vba11baV0gKz0gMTtcbiAgICAgICAgICBvcHRpb25JbmRleCA9IHRoaXMubGFzdENob2ljZVtrXVtpXTtcbiAgICAgICAgICBpZiAob3B0aW9uSW5kZXggPj0gb3B0aW9ucy5sZW5ndGgpIHtcbiAgICAgICAgICAgIG9wdGlvbkluZGV4ID0gMDtcbiAgICAgICAgICAgIHRoaXMubGFzdENob2ljZVtrXVtpXSA9IC0xO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLmxhc3RDaG9pY2Vba11baV0gPSBvcHRpb25JbmRleDtcbiAgICAgICAgfVxuICAgICAgICBsZXQgcmVwbHkgPSBvcHRpb25zW29wdGlvbkluZGV4XTtcbiAgICAgICAgaWYgKGNvbmZpZy5kZWJ1Zykge1xuICAgICAgICAgIGNvbnN0IGRlYnVnTG9nID0gYG1hdGNoOlxcbmtleTogJHtkYXRhLmtleXdvcmRzW2tdLmtleX1cXG5yYW5rOiAke2RhdGEua2V5d29yZHNba10ucmFua31cXG5kZWNvbXA6ICR7cnVsZXNbaV0ucGF0dGVybn1cXG5yZWFzbWI6ICR7cmVwbHl9XFxubWVtb3J5OiAke21lbW9yeX1gO1xuICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlIC0tIGRlYnVnIG91dHB1dFxuICAgICAgICAgIGNvbnNvbGUud2FybignZGVidWdMb2cnLCBkZWJ1Z0xvZyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHJlcGx5LnNlYXJjaCgnXmdvdG8gJykgPT09IDApIHtcbiAgICAgICAgICBjb25zdCBrZXkgPSByZXBseS5zdWJzdHJpbmcoNSk7XG4gICAgICAgICAgY29uc3Qga2kgPSB0aGlzLmdldFJ1bGVJbmRleEJ5S2V5KGRhdGEsIGtleSk7XG4gICAgICAgICAgaWYgKGtpID49IDApIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmV4ZWNSdWxlKGRhdGEsIGtpLCBzZW50ZW5jZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8vIFN1YnN0aXR1dGUgcG9zaXRpb25hbCBwYXJhbXMuXG4gICAgICAgIGxldCBwYXJhbVJlZ0V4cE1hdGNoID0gcmVwbHkubWF0Y2gocGFyYW1SZWdFeHApO1xuICAgICAgICBpZiAocGFyYW1SZWdFeHBNYXRjaCkge1xuICAgICAgICAgIGxldCBsZWZ0UGFydCA9ICcnO1xuICAgICAgICAgIGxldCByaWdodFBhcnQgPSByZXBseTtcbiAgICAgICAgICB3aGlsZSAocGFyYW1SZWdFeHBNYXRjaCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgbGV0IHBhcmFtID0gbWF0Y2hbcGFyc2VJbnQocGFyYW1SZWdFeHBNYXRjaFsxXSwgMTApXTtcbiAgICAgICAgICAgIC8vIFBvc3Rwcm9jZXNzIHBhcmFtLlxuICAgICAgICAgICAgbGV0IHBvc3RFeHBNYXRjaCA9IHBhcmFtLm1hdGNoKHRoaXMucG9zdEV4cCk7XG4gICAgICAgICAgICBpZiAocG9zdEV4cE1hdGNoICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgIGxldCBsZWZ0UGFydDIgPSAnJztcbiAgICAgICAgICAgICAgbGV0IHJpZ2h0UGFydDIgPSBwYXJhbTtcbiAgICAgICAgICAgICAgd2hpbGUgKHBvc3RFeHBNYXRjaCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIGxlZnRQYXJ0MiArPSByaWdodFBhcnQyLnN1YnN0cmluZygwLCBwb3N0RXhwTWF0Y2guaW5kZXggPz8gMCkgKyB0aGlzLnBvc3RzW3Bvc3RFeHBNYXRjaFsxXV07XG4gICAgICAgICAgICAgICAgcmlnaHRQYXJ0MiA9IHJpZ2h0UGFydDIuc3Vic3RyaW5nKChwb3N0RXhwTWF0Y2guaW5kZXggPz8gMCkgKyBwb3N0RXhwTWF0Y2hbMF0ubGVuZ3RoKTtcbiAgICAgICAgICAgICAgICBwb3N0RXhwTWF0Y2ggPSByaWdodFBhcnQyLm1hdGNoKHRoaXMucG9zdEV4cCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgcGFyYW0gPSBsZWZ0UGFydDIgKyByaWdodFBhcnQyO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbGVmdFBhcnQgKz0gcmlnaHRQYXJ0LnN1YnN0cmluZygwLCBwYXJhbVJlZ0V4cE1hdGNoLmluZGV4KSArIHBhcmFtO1xuICAgICAgICAgICAgcmlnaHRQYXJ0ID0gcmlnaHRQYXJ0LnN1YnN0cmluZygocGFyYW1SZWdFeHBNYXRjaC5pbmRleCA/PyAwKSArIHBhcmFtUmVnRXhwTWF0Y2hbMF0ubGVuZ3RoKTtcbiAgICAgICAgICAgIHBhcmFtUmVnRXhwTWF0Y2ggPSByaWdodFBhcnQubWF0Y2gocGFyYW1SZWdFeHApO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXBseSA9IGxlZnRQYXJ0ICsgcmlnaHRQYXJ0O1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHRyYW5zZm9ybWVkUmVwbHkgPSB0aGlzLnBvc3RUcmFuc2Zvcm0oZGF0YSwgcmVwbHkpO1xuICAgICAgICBpZiAobWVtb3J5KSB7XG4gICAgICAgICAgdGhpcy5tZW1TYXZlKHRyYW5zZm9ybWVkUmVwbHkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiB0cmFuc2Zvcm1lZFJlcGx5O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiAnJztcbiAgfVxuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBjb21wbGV4aXR5IC0tIFRPRE8gcmVmYWN0b3JcbiAgcHJpdmF0ZSB0cmFuc2Zvcm1Vc2VyUXVlcnkoZGF0YTogSUVsaXphRGF0YSwgaW5wdXQ6IHN0cmluZyk6IElFbGl6YVJlc3BvbnNlIHtcbiAgICBsZXQgcmVwbHkgPSAnJztcbiAgICAvLyBVbmlmeSB0ZXh0IHN0cmluZyBhbmQgc3BsaXQgdGV4dCBpbiBwYXJ0IHNlbnRlbmNlcyBhbmQgbG9vcCB0aHJvdWdoIHRoZW0uXG4gICAgY29uc3QgcGFydHMgPSB0aGlzLnNwbGl0VXNlclF1ZXJ5SW50b1BhcnRzKGlucHV0KTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHBhcnRzLmxlbmd0aDsgaSArPSAxKSB7XG4gICAgICBsZXQgcGFydCA9IHBhcnRzW2ldO1xuICAgICAgaWYgKHBhcnQgIT09ICcnKSB7XG4gICAgICAgIC8vIENoZWNrIGZvciBxdWl0IGV4cHJlc3Npb25zLlxuICAgICAgICBmb3IgKGxldCBxID0gMDsgcSA8IGRhdGEucXVpdHMubGVuZ3RoOyBxICs9IDEpIHtcbiAgICAgICAgICBpZiAoZGF0YS5xdWl0c1txXSA9PT0gcGFydCkge1xuICAgICAgICAgICAgcmV0dXJuIHsgcmVwbHk6IHRoaXMuZ2V0RmluYWwoZGF0YSksIGZpbmFsOiB0cnVlIH07XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGxldCBtYXRjaCA9IHBhcnQubWF0Y2godGhpcy5wcmVFeHApO1xuICAgICAgICBpZiAobWF0Y2ggIT09IG51bGwpIHtcbiAgICAgICAgICBsZXQgbGVmdFBhcnQgPSAnJztcbiAgICAgICAgICBsZXQgcmlnaHRQYXJ0ID0gcGFydDtcbiAgICAgICAgICB3aGlsZSAobWF0Y2ggIT09IG51bGwpIHtcbiAgICAgICAgICAgIGxlZnRQYXJ0ICs9IHJpZ2h0UGFydC5zdWJzdHJpbmcoMCwgbWF0Y2guaW5kZXggPz8gMCkgKyB0aGlzLnByZXNbbWF0Y2hbMV1dO1xuICAgICAgICAgICAgcmlnaHRQYXJ0ID0gcmlnaHRQYXJ0LnN1YnN0cmluZygobWF0Y2guaW5kZXggPz8gMCkgKyBtYXRjaFswXS5sZW5ndGgpO1xuICAgICAgICAgICAgbWF0Y2ggPSByaWdodFBhcnQubWF0Y2godGhpcy5wcmVFeHApO1xuICAgICAgICAgIH1cbiAgICAgICAgICBwYXJ0ID0gbGVmdFBhcnQgKyByaWdodFBhcnQ7XG4gICAgICAgIH1cbiAgICAgICAgLy8gTG9vcCB0cm91Z2gga2V5d29yZHMuXG4gICAgICAgIGZvciAobGV0IGsgPSAwOyBrIDwgZGF0YS5rZXl3b3Jkcy5sZW5ndGg7IGsgKz0gMSkge1xuICAgICAgICAgIGlmIChwYXJ0LnNlYXJjaChuZXcgUmVnRXhwKCdcXFxcYicgKyBkYXRhLmtleXdvcmRzW2tdLmtleSArICdcXFxcYicsICdpJykpID49IDApIHtcbiAgICAgICAgICAgIHJlcGx5ID0gdGhpcy5leGVjUnVsZShkYXRhLCBrLCBwYXJ0KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHJlcGx5ICE9PSAnJykge1xuICAgICAgICAgICAgcmV0dXJuIHsgcmVwbHksIGZpbmFsOiBmYWxzZSB9O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICAvLyBOb3RoaW5nIG1hdGNoZWQsIHRyeSBtZW0uXG4gICAgcmVwbHkgPSB0aGlzLm1lbUdldCgpO1xuICAgIC8vIElmIG5vdGhpbmcgaW4gbWVtLCB0cnkgeG5vbmUuXG4gICAgaWYgKHJlcGx5ID09PSAnJykge1xuICAgICAgY29uc3QgayA9IHRoaXMuZ2V0UnVsZUluZGV4QnlLZXkoZGF0YSwgJ3hub25lJyk7XG4gICAgICByZXBseSA9IGsgPj0gMCA/IHRoaXMuZXhlY1J1bGUoZGF0YSwgaywgJyAnKSA6IHJlcGx5O1xuICAgIH1cbiAgICByZXR1cm4geyByZXBseTogcmVwbHkgIT09ICcnID8gcmVwbHkgOiAnSSBhbSBhdCBhIGxvc3MgZm9yIHdvcmRzLicsIGZpbmFsOiBmYWxzZSB9O1xuICB9XG5cbiAgLyoqXG4gICAqIFVuaWZ5IHRleHQgc3RyaW5nLCBzcGxpdCB0ZXh0IGludG8gcGFydGlhbCBzZW50ZW5jZXMgdG8gYmUgYWJsZSB0byBsb29wIHRocm91Z2ggdGhlbS5cbiAgICogQHBhcmFtIGlucHV0IHVzZXIgcXVlcnlcbiAgICogQHJldHVybnMgc3BsaXQgdXNlciBxdWVyeVxuICAgKi9cbiAgcHJpdmF0ZSBzcGxpdFVzZXJRdWVyeUludG9QYXJ0cyhpbnB1dDogc3RyaW5nKTogc3RyaW5nW10ge1xuICAgIGNvbnN0IHBhcnRzID0gaW5wdXRcbiAgICAgIC50b0xvd2VyQ2FzZSgpXG4gICAgICAucmVwbGFjZSgvQCNcXCQlXFxeJlxcKlxcKFxcKV9cXCs9fmBcXHtcXFtcXH1cXF1cXHw6Ozw+XFwvXFxcXFxcdC9nLCAnICcpXG4gICAgICAucmVwbGFjZSgvXFxzKy0rXFxzKy9nLCAnLicpXG4gICAgICAucmVwbGFjZSgvXFxzKlssLj8hO10rXFxzKi9nLCAnLicpXG4gICAgICAucmVwbGFjZSgvXFxzKlxcYmJ1dFxcYlxccyovZywgJy4nKVxuICAgICAgLnJlcGxhY2UoL1xcc3syLH0vZywgJyAnKVxuICAgICAgLnNwbGl0KCcuJyk7XG4gICAgcmV0dXJuIHBhcnRzO1xuICB9XG5cbiAgcHJpdmF0ZSBzb3J0S2V5d29yZHMoYTogSUVsaXphS2V5d29yZCwgYjogSUVsaXphS2V5d29yZCkge1xuICAgIGlmIChhLnJhbmsgPiBiLnJhbmspIHtcbiAgICAgIHJldHVybiAtMTtcbiAgICB9IGVsc2UgaWYgKGEucmFuayA8IGIucmFuaykge1xuICAgICAgcmV0dXJuIDE7XG4gICAgfSBlbHNlIGlmIChhLmluZGV4ID4gYi5pbmRleCkge1xuICAgICAgcmV0dXJuIDE7XG4gICAgfSBlbHNlIGlmIChhLmluZGV4IDwgYi5pbmRleCkge1xuICAgICAgcmV0dXJuIC0xO1xuICAgIH1cbiAgICByZXR1cm4gMDtcbiAgfVxuXG4gIHByaXZhdGUgcG9zdFRyYW5zZm9ybShkYXRhOiBJRWxpemFEYXRhLCBpbnB1dDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAvLyBmaW5hbCBjbGVhbmluZ3NcbiAgICBsZXQgcmVzdWx0ID0gaW5wdXQucmVwbGFjZSgvXFxzezIsfS9nLCAnICcpLnJlcGxhY2UoL1xccytcXC4vZywgJy4nKTtcbiAgICBpZiAoZGF0YS5wb3N0VHJhbnNmb3Jtcy5sZW5ndGggPiAwKSB7XG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGRhdGEucG9zdFRyYW5zZm9ybXMubGVuZ3RoOyBpICs9IDEpIHtcbiAgICAgICAgY29uc3QgcG9zdFRyYW5zZm9ybSA9IGRhdGEucG9zdFRyYW5zZm9ybXNbaV07XG4gICAgICAgIHJlc3VsdCA9IHJlc3VsdC5yZXBsYWNlKHBvc3RUcmFuc2Zvcm0uc2VhcmNoVmFsdWUsIHBvc3RUcmFuc2Zvcm0ucmVwbGFjZVZhbHVlKTtcbiAgICAgICAgZGF0YS5wb3N0VHJhbnNmb3Jtc1tpXS5zZWFyY2hWYWx1ZS5sYXN0SW5kZXggPSAwO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAodGhpcy5jb25maWdTdWJqZWN0LnZhbHVlLmNhcGl0YWxpemVGaXJzdExldHRlcikge1xuICAgICAgY29uc3QgbWF0Y2ggPSByZXN1bHQubWF0Y2goL14oW2Etel0pLyk7XG4gICAgICBpZiAobWF0Y2gpIHtcbiAgICAgICAgcmVzdWx0ID0gbWF0Y2hbMF0udG9VcHBlckNhc2UoKSArIHJlc3VsdC5zdWJzdHJpbmcoMSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBwcml2YXRlIGdldFJ1bGVJbmRleEJ5S2V5KGRhdGE6IElFbGl6YURhdGEsIGtleTogc3RyaW5nKTogbnVtYmVyIHtcbiAgICBmb3IgKGxldCBrID0gMDsgayA8IGRhdGEua2V5d29yZHMubGVuZ3RoOyBrICs9IDEpIHtcbiAgICAgIGlmIChkYXRhLmtleXdvcmRzW2tdLmtleSA9PT0ga2V5KSB7XG4gICAgICAgIHJldHVybiBrO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gLTE7XG4gIH1cblxuICBwcml2YXRlIG1lbVNhdmUoaW5wdXQ6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMubWVtLnB1c2goaW5wdXQpO1xuICAgIGlmICh0aGlzLm1lbS5sZW5ndGggPiB0aGlzLmNvbmZpZ1N1YmplY3QudmFsdWUubWVtU2l6ZSkge1xuICAgICAgdGhpcy5tZW0uc2hpZnQoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIG1lbUdldCgpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLm1lbS5sZW5ndGggPiAwKSB7XG4gICAgICBpZiAodGhpcy5jb25maWdTdWJqZWN0LnZhbHVlLm5vUmFuZG9tKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm1lbS5zaGlmdCgpID8/ICcnO1xuICAgICAgfVxuICAgICAgY29uc3QgbiA9IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIHRoaXMubWVtLmxlbmd0aCk7XG4gICAgICBjb25zdCByZXBseSA9IHRoaXMubWVtW25dO1xuICAgICAgZm9yIChsZXQgaSA9IG4gKyAxOyBpIDwgdGhpcy5tZW0ubGVuZ3RoOyBpICs9IDEpIHtcbiAgICAgICAgdGhpcy5tZW1baSAtIDFdID0gdGhpcy5tZW1baV07XG4gICAgICB9XG4gICAgICB0aGlzLm1lbS5sZW5ndGggLT0gMTtcbiAgICAgIHJldHVybiByZXBseTtcbiAgICB9XG4gICAgcmV0dXJuICcnO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRGaW5hbChkYXRhOiBJRWxpemFEYXRhKTogc3RyaW5nIHtcbiAgICByZXR1cm4gZGF0YS5maW5hbHMubGVuZ3RoID09PSAwID8gZWxpemFGaW5hbERlZmF1bHQgOiBkYXRhLmZpbmFsc1tNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiBkYXRhLmZpbmFscy5sZW5ndGgpXTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0SW5pdGlhbChkYXRhOiBJRWxpemFEYXRhKTogc3RyaW5nIHtcbiAgICByZXR1cm4gZGF0YS5pbml0aWFscy5sZW5ndGggPT09IDAgPyBlbGl6YUluaXRpYWxEZWZhdWx0IDogZGF0YS5pbml0aWFsc1tNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiBkYXRhLmluaXRpYWxzLmxlbmd0aCldO1xuICB9XG5cbiAgcHVibGljIGdldFJlc3BvbnNlKHN0YXRlbWVudDogc3RyaW5nKTogUHJvbWlzZTxJRWxpemFSZXNwb25zZT4ge1xuICAgIGNvbnN0IGRhdGEgPSB0aGlzLmRhdGE7XG4gICAgaWYgKHR5cGVvZiBkYXRhID09PSAndW5kZWZpbmVkJykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbml0aWFsaXplIEVsaXphIGZpcnN0LicpO1xuICAgIH1cbiAgICByZXR1cm4gbmV3IFByb21pc2U8SUVsaXphUmVzcG9uc2U+KHJlc29sdmUgPT4ge1xuICAgICAgY29uc3QgZWxpemFSZXBseSA9IHRoaXMudHJhbnNmb3JtVXNlclF1ZXJ5KGRhdGEsIHN0YXRlbWVudCk7XG4gICAgICByZXNvbHZlKGVsaXphUmVwbHkpO1xuICAgIH0pO1xuICB9XG59XG4iXX0=
441
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxpemEuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY2xpZW50LXV0aWwtZWxpemEvc3JjL2xpYi9zZXJ2aWNlcy9lbGl6YS9lbGl6YS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7O0dBYUc7QUFFSCxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXZDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7QUFPbkUsTUFBTSxPQUFPLGVBQWU7SUFtQzFCLFlBQWdELFNBQXFCO1FBQXJCLGNBQVMsR0FBVCxTQUFTLENBQVk7UUFsQ3JFOztXQUVHO1FBQ2Msa0JBQWEsR0FBRyxJQUFJLGVBQWUsQ0FBZSxFQUFFLEdBQUcsa0JBQWtCLEVBQUUsQ0FBQyxDQUFDO1FBRTlGOztXQUVHO1FBQ2EsWUFBTyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxFQUFFLENBQUM7UUFJcEQsUUFBRyxHQUFhLEVBQUUsQ0FBQztRQUVuQixlQUFVLEdBQWUsRUFBRSxDQUFDO1FBRTVCLFlBQU8sR0FBRyxJQUFJLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUV6QixXQUFNLEdBQUcsSUFBSSxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7UUFFeEIsU0FBSSxHQUEyQixFQUFFLENBQUM7UUFFbEMsVUFBSyxHQUEyQixFQUFFLENBQUM7UUFFM0M7O1dBRUc7UUFDYyxvQkFBZSxHQUFHLElB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S0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLG1CQUFtQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUM1SCxDQUFDO0lBRU0sV0FBVyxDQUFDLFNBQWlCO1FBQ2xDLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDdkIsSUFBSSxPQUFPLElBQUksS0FBSyxXQUFXLEVBQUU7WUFDL0IsTUFBTSxJQUFJLEtBQUssQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO1NBQzVDO1FBQ0QsT0FBTyxJQUFJLE9BQU8sQ0FBaUIsT0FBTyxDQUFDLEVBQUU7WUFDM0MsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksRUFBRSxTQUFTLENBQUMsQ0FBQztZQUM1RCxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDdEIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOzsrSEF6YVUsZUFBZSxrQkFtQ04sVUFBVTttSUFuQ25CLGVBQWUsY0FGZCxNQUFNOzJGQUVQLGVBQWU7a0JBSDNCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFvQ2MsTUFBTTsyQkFBQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBlbGl6YWJvdC5qcyB2LjEuMSAtIEVMSVpBIEpTIGxpYnJhcnkgKE4uTGFuZHN0ZWluZXIgMjAwNSlcbiAqIEVsaXphIGlzIGEgbW9jayBSb2dlcmlhbiBwc3ljaG90aGVyYXBpc3QuXG4gKiBPcmlnaW5hbCBwcm9ncmFtIGJ5IEpvc2VwaCBXZWl6ZW5iYXVtIGluIE1BRC1TTElQIGZvciBcIlByb2plY3QgTUFDXCIgYXQgTUlULlxuICogY2Y6IFdlaXplbmJhdW0sIEpvc2VwaCBcIkVMSVpBIC0gQSBDb21wdXRlciBQcm9ncmFtIEZvciB0aGUgU3R1ZHkgb2YgTmF0dXJhbCBMYW5ndWFnZSBDb21tdW5pY2F0aW9uIEJldHdlZW4gTWFuIGFuZCBNYWNoaW5lXCJcbiAqIGluOiBDb21tdW5pY2F0aW9ucyBvZiB0aGUgQUNNOyBWb2x1bWUgOSAsIElzc3VlIDEgKEphbnVhcnkgMTk2Nik6IHAgMzYtNDUuXG4gKiBKYXZhU2NyaXB0IGltcGxlbWVudGF0aW9uIGJ5IE5vcmJlcnQgTGFuZHN0ZWluZXIgMjAwNTsgPGh0dHA6Ly93d3cubWFzc2Vyay5hdD5cbiAqXG4gKiBgRWxpemFCb3QnIGlzIGFsc28gYSBnZW5lcmFsIGNoYXRib3QgZW5naW5lIHRoYXQgY2FuIGJlIHN1cHBsaWVkIHdpdGggYW55IHJ1bGUgc2V0LlxuICogKGZvciByZXF1aXJlZCBkYXRhIHN0cnVjdHVyZXMgY2YuIFwiZWxpemFkYXRhLmpzXCIgYW5kL29yIHNlZSB0aGUgZG9jdW1lbnRhdGlvbi4pXG4gKiBkYXRhIGlzIHBhcnNlZCBhbmQgdHJhbnNmb3JtZWQgZm9yIGludGVybmFsIHVzZSBhdCB0aGUgY3JlYXRpb24gdGltZSBvZiB0aGUgZmlyc3QgaW5zdGFuY2Ugb2YgdGhlIGBFbGl6YUJvdCcgY29uc3RydWN0b3IuXG4gKlxuICogSmF2YVNjcmlwdCBzb3VyY2U6IGh0dHBzOi8vZ2l0aHViLmNvbS9uYXRlbGV3aXMvZWxpemEtYXMtcHJvbWlzZWRcbiAqL1xuXG5pbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBFTElaQV9EQVRBIH0gZnJvbSAnLi4vLi4vY29uZmlnL2RhdGEuY29uZmlnJztcbmltcG9ydCB7IGVsaXphSW5pdGlhbENvbmZpZyB9IGZyb20gJy4uLy4uL2NvbmZpZy9lbGl6YS5jb25maWcnO1xuaW1wb3J0IHsgZWxpemFGaW5hbERlZmF1bHQgfSBmcm9tICcuLi8uLi9jb25maWcvZmluYWxzLmNvbmZpZyc7XG5pbXBvcnQgeyBlbGl6YUluaXRpYWxEZWZhdWx0IH0gZnJvbSAnLi4vLi4vY29uZmlnL2luaXRpYWxzLmNvbmZpZyc7XG5pbXBvcnQgeyBJQ2hhdE1lc3NhZ2UgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL2NoYXQuaW50ZXJmYWNlJztcbmltcG9ydCB7IElFbGl6YUNvbmZpZywgSUVsaXphRGF0YSwgSUVsaXphS2V5d29yZCwgSUVsaXphUmVzcG9uc2UgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL2VsaXphLmludGVyZmFjZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBBcHBFbGl6YVNlcnZpY2Uge1xuICAvKipcbiAgICogRWxpemEgY29uZmlndXJhdGlvbi5cbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgY29uZmlnU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8SUVsaXphQ29uZmlnPih7IC4uLmVsaXphSW5pdGlhbENvbmZpZyB9KTtcblxuICAvKipcbiAgICogUHVibGljbHkgcmVhZGFibGUgRWxpemEgY29uZmlndXJhdGlvbi5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBjb25maWckID0gdGhpcy5jb25maWdTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuXG4gIHByaXZhdGUgZGF0YT86IElFbGl6YURhdGE7XG5cbiAgcHJpdmF0ZSBtZW06IHN0cmluZ1tdID0gW107XG5cbiAgcHJpdmF0ZSBsYXN0Q2hvaWNlOiBudW1iZXJbXVtdID0gW107XG5cbiAgcHJpdmF0ZSBwb3N0RXhwID0gbmV3IFJlZ0V4cCgnJyk7XG5cbiAgcHJpdmF0ZSBwcmVFeHAgPSBuZXcgUmVnRXhwKCcnKTtcblxuICBwcml2YXRlIHByZXM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7fTtcblxuICBwcml2YXRlIHBvc3RzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge307XG5cbiAgLyoqXG4gICAqIENvbnZlcnNhdGlvbiBtZXNzYWdlcy5cbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgbWVzc2FnZXNTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxJQ2hhdE1lc3NhZ2VbXT4oW10pO1xuXG4gIC8qKlxuICAgKiBQdWJsaWNseSByZWFkYWJsZSBjb252ZXJzYXRpb24gbWVzc2FnZXMuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgbWVzc2FnZXMkID0gdGhpcy5tZXNzYWdlc1N1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG5cbiAgY29uc3RydWN0b3IoQEluamVjdChFTElaQV9EQVRBKSBwdWJsaWMgcmVhZG9ubHkgZWxpemFEYXRhOiBJRWxpemFEYXRhKSB7XG4gICAgdGhpcy5zZXR1cChlbGl6YURhdGEpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgbmV4dCBjaGF0IG1lc3NhZ2UuXG4gICAqIEBwYXJhbSBtZXNzYWdlIGNoYXQgbWVzc2FnZVxuICAgKi9cbiAgcHVibGljIG5leHRNZXNzYWdlKG1lc3NhZ2U6IElDaGF0TWVzc2FnZSk6IHZvaWQge1xuICAgIHRoaXMubWVzc2FnZXNTdWJqZWN0Lm5leHQoWy4uLnRoaXMubWVzc2FnZXNTdWJqZWN0LnZhbHVlLCBtZXNzYWdlXSk7XG4gIH1cblxuICAvKipcbiAgICogTW9kaWZpZXMgRWxpemEgY29uZmlndXJhdGlvbi5cbiAgICogQHBhcmFtIGNvbmZpZyBFbGl6YSBjb25maWdcbiAgICovXG4gIHB1YmxpYyBuZXh0Q29uZmlnKGNvbmZpZzogUGFydGlhbDxJRWxpemFDb25maWc+KTogdm9pZCB7XG4gICAgdGhpcy5jb25maWdTdWJqZWN0Lm5leHQoeyAuLi50aGlzLmNvbmZpZ1N1YmplY3QudmFsdWUsIC4uLmNvbmZpZyB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHVwIEVsaXphLlxuICAgKiBAcGFyYW0gZGF0YSBFbGl6YSBkYXRhXG4gICAqIEBwYXJhbSByZWluaXRpYWxpemUgaW5kaWNhdGVzIHRoYXQgRWxpemEgc2hvdWxkIGJlIGluaXRpYWxpemVkIGFnYWluLCBldmVuIGlmIGl0J3MgZGF0YSBoYXMgYWxyZWFkeSBiZWVuIGluaXRpYWxpemVkXG4gICAqL1xuICBwdWJsaWMgc2V0dXAoZGF0YTogSUVsaXphRGF0YSwgcmVpbml0aWFsaXplID0gZmFsc2UpOiB2b2lkIHtcbiAgICBpZiAodHlwZW9mIHRoaXMuZGF0YSA9PT0gJ3VuZGVmaW5lZCcgfHwgcmVpbml0aWFsaXplKSB7XG4gICAgICB0aGlzLmluaXQoZGF0YSk7XG4gICAgfVxuICAgIHRoaXMucmVzZXQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXNldHMgRWxpemEuXG4gICAqL1xuICBwdWJsaWMgcmVzZXQoKTogdm9pZCB7XG4gICAgY29uc3QgZGF0YSA9IHRoaXMuZGF0YTtcbiAgICBpZiAodHlwZW9mIGRhdGEgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0luaXRpYWxpemUgRWxpemEgZmlyc3QuJyk7XG4gICAgfVxuICAgIHRoaXMubWVtID0gW107XG4gICAgdGhpcy5sYXN0Q2hvaWNlID0gW107XG4gICAgZm9yIChsZXQgayA9IDA7IGsgPCBkYXRhLmtleXdvcmRzLmxlbmd0aDsgayArPSAxKSB7XG4gICAgICB0aGlzLmxhc3RDaG9pY2Vba10gPSBbXTtcbiAgICAgIGNvbnN0IHJ1bGVzID0gZGF0YS5rZXl3b3Jkc1trXS5ydWxlcztcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcnVsZXMubGVuZ3RoOyBpICs9IDEpIHtcbiAgICAgICAgdGhpcy5sYXN0Q2hvaWNlW2tdW2ldID0gLTE7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMubWVzc2FnZXNTdWJqZWN0Lm5leHQoW3sgYm90OiB0cnVlLCB0ZXh0OiB0aGlzLmdldEluaXRpYWwoZGF0YSkgfV0pO1xuICB9XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG1heC1saW5lcy1wZXItZnVuY3Rpb24sIGNvbXBsZXhpdHkgLS0gVE9ETyByZWZhY3RvclxuICBwcml2YXRlIGluaXQoZGF0YTogSUVsaXphRGF0YSk6IHZvaWQge1xuICAgIHRoaXMuZGF0YSA9IHsgLi4uZGF0YSB9O1xuICAgIC8vIFBhcnNlIGRhdGEgYW5kIGNvbnZlcnQgaXQgZnJvbSBjYW5vbmljYWwgZm9ybSB0byBpbnRlcm5hbCB1c2UuXG4gICAgLy8gUHJvZHVjZSBhIGxpc3Qgb2Ygc3lub255bXMuXG4gICAgY29uc3Qgc3luUGF0dGVybnM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7fTtcbiAgICBmb3IgKGNvbnN0IGl0ZW0gaW4gdGhpcy5kYXRhLnN5bm9ueW1zKSB7XG4gICAgICBpZiAoaXRlbSkge1xuICAgICAgICBzeW5QYXR0ZXJuc1tpdGVtXSA9IGAoJHtpdGVtfXwke3RoaXMuZGF0YS5zeW5vbnltc1tpdGVtXS5qb2luKCd8Jyl9KWA7XG4gICAgICB9XG4gICAgfVxuICAgIC8vIENoZWNrIGtleXdvcmRzLlxuICAgIGlmIChkYXRhLmtleXdvcmRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhyb3cgRXJyb3IoJ0VsaXphIGRvZXMgbm90IGhhdmUgYW55IGNvbmZpZ3VyZWQga2V5d29yZHMuJyk7XG4gICAgfVxuICAgIC8vIEZpcnN0LCBjb252ZXJ0IHJ1bGVzIHRvIHJlZ2V4cHMuXG4gICAgLy8gRXhwYW5kIHN5bm9ueW1zIGFuZCBpbnNlcnQgYXN0ZXJpc2sgZXhwcmVzc2lvbnMgZm9yIGJhY2t0cmFja2luZy5cbiAgICBjb25zdCBzcmUgPSAvQChcXFMrKS87XG4gICAgY29uc3QgYXJlID0gLyhcXFMpXFxzKlxcKlxccyooXFxTKS87XG4gICAgY29uc3QgYXJlMSA9IC9eXFxzKlxcKlxccyooXFxTKS87XG4gICAgY29uc3QgYXJlMiA9IC8oXFxTKVxccypcXCpcXHMqJC87XG4gICAgY29uc3QgYXJlMyA9IC9eXFxzKlxcKlxccyokLztcbiAgICBjb25zdCB3c3JlID0gL1xccysvZztcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuZGF0YS5rZXl3b3Jkcy5sZW5ndGg7IGkgKz0gMSkge1xuICAgICAgY29uc3QgcnVsZXMgPSB0aGlzLmRhdGEua2V5d29yZHNbaV0ucnVsZXM7XG4gICAgICBmb3IgKGxldCBqID0gMDsgaiA8IHJ1bGVzLmxlbmd0aDsgaiArPSAxKSB7XG4gICAgICAgIGNvbnN0IHJ1bGUgPSBydWxlc1tqXTtcbiAgICAgICAgLy8gQ2hlY2sgbWVtIGZsYWcgYW5kIHN0b3JlIGl0IGFzIGRlY29tcCdzIGVsZW1lbnQgMi5cbiAgICAgICAgaWYgKHJ1bGUucGF0dGVybi5jaGFyQXQoMCkgPT09ICckJykge1xuICAgICAgICAgIGxldCBvZnMgPSAxO1xuICAgICAgICAgIHdoaWxlIChydWxlLnBhdHRlcm4uY2hhckF0W29mc10gPT09ICcgJykge1xuICAgICAgICAgICAgb2ZzICs9IDE7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJ1bGUucGF0dGVybiA9IHJ1bGUucGF0dGVybi5zdWJzdHJpbmcob2ZzKTtcbiAgICAgICAgICBydWxlLm1lbW9yeSA9IHRydWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcnVsZS5tZW1vcnkgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBsZXQgbWF0Y2ggPSBydWxlLnBhdHRlcm4ubWF0Y2goc3JlKTtcbiAgICAgICAgd2hpbGUgKG1hdGNoICE9PSBudWxsKSB7XG4gICAgICAgICAgY29uc3Qgc3AgPSBzeW5QYXR0ZXJuc1ttYXRjaFsxXV0gPyBzeW5QYXR0ZXJuc1ttYXRjaFsxXV0gOiBtYXRjaFsxXTtcbiAgICAgICAgICBydWxlLnBhdHRlcm4gPSBydWxlLnBhdHRlcm4uc3Vic3RyaW5nKDAsIG1hdGNoLmluZGV4ID8/IDApICsgc3AgKyBydWxlLnBhdHRlcm4uc3Vic3RyaW5nKChtYXRjaC5pbmRleCA/PyAwKSArIG1hdGNoWzBdLmxlbmd0aCk7XG4gICAgICAgICAgbWF0Y2ggPSBydWxlLnBhdHRlcm4ubWF0Y2goc3JlKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBFeHBhbmQgYXN0ZXJpc2sgZXhwcmVzc2lvbnMuXG4gICAgICAgIGlmIChhcmUzLnRlc3QocnVsZS5wYXR0ZXJuKSkge1xuICAgICAgICAgIHJ1bGUucGF0dGVybiA9ICdcXFxccyooLiopXFxcXHMqJztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBtYXRjaCA9IHJ1bGUucGF0dGVybi5tYXRjaChhcmUpO1xuICAgICAgICAgIGlmIChtYXRjaCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgbGV0IGxlZnRQYXJ0ID0gJyc7XG4gICAgICAgICAgICBsZXQgcmlnaHRQYXJ0ID0gcnVsZS5wYXR0ZXJuO1xuICAgICAgICAgICAgd2hpbGUgKG1hdGNoICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgIGxlZnRQYXJ0ICs9IHJpZ2h0UGFydC5zdWJzdHJpbmcoMCwgKG1hdGNoLmluZGV4ID8/IDApICsgMSk7XG4gICAgICAgICAgICAgIGlmIChtYXRjaFsxXSAhPT0gJyknKSB7XG4gICAgICAgICAgICAgICAgbGVmdFBhcnQgKz0gJ1xcXFxiJztcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBsZWZ0UGFydCArPSAnXFxcXHMqKC4qKVxcXFxzKic7XG4gICAgICAgICAgICAgIGlmIChtYXRjaFsyXSAhPT0gJygnICYmIG1hdGNoWzJdICE9PSAnXFxcXCcpIHtcbiAgICAgICAgICAgICAgICBsZWZ0UGFydCArPSAnXFxcXGInO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGxlZnRQYXJ0ICs9IG1hdGNoWzJdO1xuICAgICAgICAgICAgICByaWdodFBhcnQgPSByaWdodFBhcnQuc3Vic3RyaW5nKChtYXRjaC5pbmRleCA/PyAwKSArIG1hdGNoWzBdLmxlbmd0aCk7XG4gICAgICAgICAgICAgIG1hdGNoID0gcmlnaHRQYXJ0Lm1hdGNoKGFyZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBydWxlLnBhdHRlcm4gPSBsZWZ0UGFydCArIHJpZ2h0UGFydDtcbiAgICAgICAgICB9XG4gICAgICAgICAgbWF0Y2ggPSBydWxlLnBhdHRlcm4ubWF0Y2goYXJlMSk7XG4gICAgICAgICAgaWYgKG1hdGNoICE9PSBudWxsKSB7XG4gICAgICAgICAgICBsZXQgbGVmdFBhcnQgPSAnXFxcXHMqKC4qKVxcXFxzKic7XG4gICAgICAgICAgICBpZiAobWF0Y2hbMV0gIT09ICcpJyAmJiBtYXRjaFsxXSAhPT0gJ1xcXFwnKSB7XG4gICAgICAgICAgICAgIGxlZnRQYXJ0ICs9ICdcXFxcYic7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBydWxlLnBhdHRlcm4gPSBsZWZ0UGFydCArIHJ1bGUucGF0dGVybi5zdWJzdHJpbmcoKG1hdGNoLmluZGV4ID8/IDApIC0gMSArIG1hdGNoWzBdLmxlbmd0aCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIG1hdGNoID0gcnVsZS5wYXR0ZXJuLm1hdGNoKGFyZTIpO1xuICAgICAgICAgIGlmIChtYXRjaCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgbGV0IGxlZnRQYXJ0ID0gcnVsZS5wYXR0ZXJuLnN1YnN0cmluZygwLCAobWF0Y2guaW5kZXggPz8gMCkgKyAxKTtcbiAgICAgICAgICAgIGlmIChtYXRjaFsxXSAhPT0gJygnKSB7XG4gICAgICAgICAgICAgIGxlZnRQYXJ0ICs9ICdcXFxcYic7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBydWxlLnBhdHRlcm4gPSBsZWZ0UGFydCArICdcXFxccyooLiopXFxcXHMqJztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLy8gRXhwYW5kIHdoaXRlc3BhY2VzLlxuICAgICAgICBydWxlLnBhdHRlcm4gPSBydWxlLnBhdHRlcm4ucmVwbGFjZSh3c3JlLCAnXFxcXHMrJyk7XG4gICAgICAgIHdzcmUubGFzdEluZGV4ID0gMDtcbiAgICAgIH1cbiAgICB9XG4gICAgLy8gU29ydCBrZXl3b3JkcyBieSByYW5rIChoaWdoZXN0IGZpcnN0KS5cbiAgICB0aGlzLmRhdGEua2V5d29yZHMuc29ydCh0aGlzLnNvcnRLZXl3b3Jkcyk7XG4gICAgLy8gQ29tcG9zZSByZWdleHBzIGFuZCByZWZzIGZvciBwcmVzIGFuZCBwb3N0cy5cbiAgICB0aGlzLmNvbXBvc2VSZWdFeHBzQW5kUHJlc0FuZFBvc3RzKHRoaXMuZGF0YSk7XG4gIH1cblxuICAvKipcbiAgICogQ29tcG9zZXMgcmVnZXhwcyBhbmQgcmVmcyBmb3IgcHJlcyBhbmQgcG9zdHMuXG4gICAqIEBwYXJhbSBkYXRhIEVsaXphIGRhdGFcbiAgICovXG4gIHByaXZhdGUgY29tcG9zZVJlZ0V4cHNBbmRQcmVzQW5kUG9zdHMoZGF0YTogSUVsaXphRGF0YSk6IHZvaWQge1xuICAgIHRoaXMucHJlcyA9IHt9O1xuICAgIHRoaXMucG9zdHMgPSB7fTtcbiAgICBpZiAoZGF0YS5wcmVzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhyb3cgRXJyb3IoJ0VsaXphIGRvZXMgbm90IGhhdmUgYW55IGNvbmZpZ3VyZWQgcHJlIGV4cHJlc3Npb25zLicpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBhID0gW107XG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGRhdGEucHJlcy5sZW5ndGg7IGkgKz0gMikge1xuICAgICAgICBhLnB1c2goZGF0YS5wcmVzW2ldKTtcbiAgICAgICAgdGhpcy5wcmVzW2RhdGEucHJlc1tpXV0gPSBkYXRhLnByZXNbaSArIDFdO1xuICAgICAgfVxuICAgICAgdGhpcy5wcmVFeHAgPSBuZXcgUmVnRXhwKCdcXFxcYignICsgYS5qb2luKCd8JykgKyAnKVxcXFxiJyk7XG4gICAgfVxuICAgIGlmIChkYXRhLnBvc3RzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhyb3cgRXJyb3IoJ0VsaXphIGRvZXMgbm90IGhhdmUgYW55IGNvbmZpZ3VyZWQgcG9zdCBleHByZXNzaW9ucy4nKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgYSA9IFtdO1xuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBkYXRhLnBvc3RzLmxlbmd0aDsgaSArPSAyKSB7XG4gICAgICAgIGEucHVzaChkYXRhLnBvc3RzW2ldKTtcbiAgICAgICAgdGhpcy5wb3N0c1tkYXRhLnBvc3RzW2ldXSA9IGRhdGEucG9zdHNbaSArIDFdO1xuICAgICAgfVxuICAgICAgdGhpcy5wb3N0RXhwID0gbmV3IFJlZ0V4cCgnXFxcXGIoJyArIGEuam9pbignfCcpICsgJylcXFxcYicpO1xuICAgIH1cbiAgfVxuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBtYXgtbGluZXMtcGVyLWZ1bmN0aW9uLCBjb21wbGV4aXR5IC0tIFRPRE8gcmVmYWN0b3JcbiAgcHJpdmF0ZSBleGVjUnVsZShkYXRhOiBJRWxpemFEYXRhLCBrOiBudW1iZXIsIHNlbnRlbmNlOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IGNvbmZpZyA9IHRoaXMuY29uZmlnU3ViamVjdC52YWx1ZTtcbiAgICBjb25zdCBydWxlcyA9IGRhdGEua2V5d29yZHNba10ucnVsZXM7XG4gICAgY29uc3QgcGFyYW1SZWdFeHAgPSAvXFwoKFswLTldKylcXCkvO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcnVsZXMubGVuZ3RoOyBpICs9IDEpIHtcbiAgICAgIGNvbnN0IG1hdGNoID0gc2VudGVuY2UubWF0Y2gocnVsZXNbaV0ucGF0dGVybik7XG4gICAgICBpZiAobWF0Y2ggIT09IG51bGwpIHtcbiAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHJ1bGVzW2ldLm9wdGlvbnM7XG4gICAgICAgIGNvbnN0IG1lbW9yeSA9IHJ1bGVzW2ldLm1lbW9yeTtcbiAgICAgICAgbGV0IG9wdGlvbkluZGV4ID0gY29uZmlnLm5vUmFuZG9tID8gMCA6IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIG9wdGlvbnMubGVuZ3RoKTtcbiAgICAgICAgaWYgKChjb25maWcubm9SYW5kb20gJiYgdGhpcy5sYXN0Q2hvaWNlW2tdW2ldID4gb3B0aW9uSW5kZXgpIHx8IHRoaXMubGFzdENob2ljZVtrXVtpXSA9PT0gb3B0aW9uSW5kZXgpIHtcbiAgICAgICAgICB0aGlzLmxhc3RDaG9pY2Vba11baV0gKz0gMTtcbiAgICAgICAgICBvcHRpb25JbmRleCA9IHRoaXMubGFzdENob2ljZVtrXVtpXTtcbiAgICAgICAgICBpZiAob3B0aW9uSW5kZXggPj0gb3B0aW9ucy5sZW5ndGgpIHtcbiAgICAgICAgICAgIG9wdGlvbkluZGV4ID0gMDtcbiAgICAgICAgICAgIHRoaXMubGFzdENob2ljZVtrXVtpXSA9IC0xO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLmxhc3RDaG9pY2Vba11baV0gPSBvcHRpb25JbmRleDtcbiAgICAgICAgfVxuICAgICAgICBsZXQgcmVwbHkgPSBvcHRpb25zW29wdGlvbkluZGV4XTtcbiAgICAgICAgaWYgKGNvbmZpZy5kZWJ1Zykge1xuICAgICAgICAgIGNvbnN0IGRlYnVnTG9nID0gYG1hdGNoOlxcbmtleTogJHtkYXRhLmtleXdvcmRzW2tdLmtleX1cXG5yYW5rOiAke2RhdGEua2V5d29yZHNba10ucmFua31cXG5kZWNvbXA6ICR7cnVsZXNbaV0ucGF0dGVybn1cXG5yZWFzbWI6ICR7cmVwbHl9XFxubWVtb3J5OiAke21lbW9yeX1gO1xuICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlIC0tIGRlYnVnIG91dHB1dFxuICAgICAgICAgIGNvbnNvbGUud2FybignZGVidWdMb2cnLCBkZWJ1Z0xvZyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHJlcGx5LnNlYXJjaCgnXmdvdG8gJykgPT09IDApIHtcbiAgICAgICAgICBjb25zdCBrZXkgPSByZXBseS5zdWJzdHJpbmcoNSk7XG4gICAgICAgICAgY29uc3Qga2kgPSB0aGlzLmdldFJ1bGVJbmRleEJ5S2V5KGRhdGEsIGtleSk7XG4gICAgICAgICAgaWYgKGtpID49IDApIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmV4ZWNSdWxlKGRhdGEsIGtpLCBzZW50ZW5jZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8vIFN1YnN0aXR1dGUgcG9zaXRpb25hbCBwYXJhbXMuXG4gICAgICAgIGxldCBwYXJhbVJlZ0V4cE1hdGNoID0gcmVwbHkubWF0Y2gocGFyYW1SZWdFeHApO1xuICAgICAgICBpZiAocGFyYW1SZWdFeHBNYXRjaCkge1xuICAgICAgICAgIGxldCBsZWZ0UGFydCA9ICcnO1xuICAgICAgICAgIGxldCByaWdodFBhcnQgPSByZXBseTtcbiAgICAgICAgICB3aGlsZSAocGFyYW1SZWdFeHBNYXRjaCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgbGV0IHBhcmFtID0gbWF0Y2hbcGFyc2VJbnQocGFyYW1SZWdFeHBNYXRjaFsxXSwgMTApXTtcbiAgICAgICAgICAgIC8vIFBvc3Rwcm9jZXNzIHBhcmFtLlxuICAgICAgICAgICAgbGV0IHBvc3RFeHBNYXRjaCA9IHBhcmFtLm1hdGNoKHRoaXMucG9zdEV4cCk7XG4gICAgICAgICAgICBpZiAocG9zdEV4cE1hdGNoICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgIGxldCBsZWZ0UGFydDIgPSAnJztcbiAgICAgICAgICAgICAgbGV0IHJpZ2h0UGFydDIgPSBwYXJhbTtcbiAgICAgICAgICAgICAgd2hpbGUgKHBvc3RFeHBNYXRjaCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIGxlZnRQYXJ0MiArPSByaWdodFBhcnQyLnN1YnN0cmluZygwLCBwb3N0RXhwTWF0Y2guaW5kZXggPz8gMCkgKyB0aGlzLnBvc3RzW3Bvc3RFeHBNYXRjaFsxXV07XG4gICAgICAgICAgICAgICAgcmlnaHRQYXJ0MiA9IHJpZ2h0UGFydDIuc3Vic3RyaW5nKChwb3N0RXhwTWF0Y2guaW5kZXggPz8gMCkgKyBwb3N0RXhwTWF0Y2hbMF0ubGVuZ3RoKTtcbiAgICAgICAgICAgICAgICBwb3N0RXhwTWF0Y2ggPSByaWdodFBhcnQyLm1hdGNoKHRoaXMucG9zdEV4cCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgcGFyYW0gPSBsZWZ0UGFydDIgKyByaWdodFBhcnQyO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbGVmdFBhcnQgKz0gcmlnaHRQYXJ0LnN1YnN0cmluZygwLCBwYXJhbVJlZ0V4cE1hdGNoLmluZGV4KSArIHBhcmFtO1xuICAgICAgICAgICAgcmlnaHRQYXJ0ID0gcmlnaHRQYXJ0LnN1YnN0cmluZygocGFyYW1SZWdFeHBNYXRjaC5pbmRleCA/PyAwKSArIHBhcmFtUmVnRXhwTWF0Y2hbMF0ubGVuZ3RoKTtcbiAgICAgICAgICAgIHBhcmFtUmVnRXhwTWF0Y2ggPSByaWdodFBhcnQubWF0Y2gocGFyYW1SZWdFeHApO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXBseSA9IGxlZnRQYXJ0ICsgcmlnaHRQYXJ0O1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHRyYW5zZm9ybWVkUmVwbHkgPSB0aGlzLnBvc3RUcmFuc2Zvcm0oZGF0YSwgcmVwbHkpO1xuICAgICAgICBpZiAobWVtb3J5KSB7XG4gICAgICAgICAgdGhpcy5tZW1TYXZlKHRyYW5zZm9ybWVkUmVwbHkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiB0cmFuc2Zvcm1lZFJlcGx5O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiAnJztcbiAgfVxuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBjb21wbGV4aXR5IC0tIFRPRE8gcmVmYWN0b3JcbiAgcHJpdmF0ZSB0cmFuc2Zvcm1Vc2VyUXVlcnkoZGF0YTogSUVsaXphRGF0YSwgaW5wdXQ6IHN0cmluZyk6IElFbGl6YVJlc3BvbnNlIHtcbiAgICBsZXQgcmVwbHkgPSAnJztcbiAgICAvLyBVbmlmeSB0ZXh0IHN0cmluZyBhbmQgc3BsaXQgdGV4dCBpbiBwYXJ0IHNlbnRlbmNlcyBhbmQgbG9vcCB0aHJvdWdoIHRoZW0uXG4gICAgY29uc3QgcGFydHMgPSB0aGlzLnNwbGl0VXNlclF1ZXJ5SW50b1BhcnRzKGlucHV0KTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHBhcnRzLmxlbmd0aDsgaSArPSAxKSB7XG4gICAgICBsZXQgcGFydCA9IHBhcnRzW2ldO1xuICAgICAgaWYgKHBhcnQgIT09ICcnKSB7XG4gICAgICAgIC8vIENoZWNrIGZvciBxdWl0IGV4cHJlc3Npb25zLlxuICAgICAgICBmb3IgKGxldCBxID0gMDsgcSA8IGRhdGEucXVpdHMubGVuZ3RoOyBxICs9IDEpIHtcbiAgICAgICAgICBpZiAoZGF0YS5xdWl0c1txXSA9PT0gcGFydCkge1xuICAgICAgICAgICAgcmV0dXJuIHsgcmVwbHk6IHRoaXMuZ2V0RmluYWwoZGF0YSksIGZpbmFsOiB0cnVlIH07XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGxldCBtYXRjaCA9IHBhcnQubWF0Y2godGhpcy5wcmVFeHApO1xuICAgICAgICBpZiAobWF0Y2ggIT09IG51bGwpIHtcbiAgICAgICAgICBsZXQgbGVmdFBhcnQgPSAnJztcbiAgICAgICAgICBsZXQgcmlnaHRQYXJ0ID0gcGFydDtcbiAgICAgICAgICB3aGlsZSAobWF0Y2ggIT09IG51bGwpIHtcbiAgICAgICAgICAgIGxlZnRQYXJ0ICs9IHJpZ2h0UGFydC5zdWJzdHJpbmcoMCwgbWF0Y2guaW5kZXggPz8gMCkgKyB0aGlzLnByZXNbbWF0Y2hbMV1dO1xuICAgICAgICAgICAgcmlnaHRQYXJ0ID0gcmlnaHRQYXJ0LnN1YnN0cmluZygobWF0Y2guaW5kZXggPz8gMCkgKyBtYXRjaFswXS5sZW5ndGgpO1xuICAgICAgICAgICAgbWF0Y2ggPSByaWdodFBhcnQubWF0Y2godGhpcy5wcmVFeHApO1xuICAgICAgICAgIH1cbiAgICAgICAgICBwYXJ0ID0gbGVmdFBhcnQgKyByaWdodFBhcnQ7XG4gICAgICAgIH1cbiAgICAgICAgLy8gTG9vcCB0cm91Z2gga2V5d29yZHMuXG4gICAgICAgIGZvciAobGV0IGsgPSAwOyBrIDwgZGF0YS5rZXl3b3Jkcy5sZW5ndGg7IGsgKz0gMSkge1xuICAgICAgICAgIGlmIChwYXJ0LnNlYXJjaChuZXcgUmVnRXhwKCdcXFxcYicgKyBkYXRhLmtleXdvcmRzW2tdLmtleSArICdcXFxcYicsICdpJykpID49IDApIHtcbiAgICAgICAgICAgIHJlcGx5ID0gdGhpcy5leGVjUnVsZShkYXRhLCBrLCBwYXJ0KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHJlcGx5ICE9PSAnJykge1xuICAgICAgICAgICAgcmV0dXJuIHsgcmVwbHksIGZpbmFsOiBmYWxzZSB9O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICAvLyBOb3RoaW5nIG1hdGNoZWQsIHRyeSBtZW0uXG4gICAgcmVwbHkgPSB0aGlzLm1lbUdldCgpO1xuICAgIC8vIElmIG5vdGhpbmcgaW4gbWVtLCB0cnkgeG5vbmUuXG4gICAgaWYgKHJlcGx5ID09PSAnJykge1xuICAgICAgY29uc3QgayA9IHRoaXMuZ2V0UnVsZUluZGV4QnlLZXkoZGF0YSwgJ3hub25lJyk7XG4gICAgICByZXBseSA9IGsgPj0gMCA/IHRoaXMuZXhlY1J1bGUoZGF0YSwgaywgJyAnKSA6IHJlcGx5O1xuICAgIH1cbiAgICByZXR1cm4geyByZXBseTogcmVwbHkgIT09ICcnID8gcmVwbHkgOiAnSSBhbSBhdCBhIGxvc3MgZm9yIHdvcmRzLicsIGZpbmFsOiBmYWxzZSB9O1xuICB9XG5cbiAgLyoqXG4gICAqIFVuaWZ5IHRleHQgc3RyaW5nLCBzcGxpdCB0ZXh0IGludG8gcGFydGlhbCBzZW50ZW5jZXMgdG8gYmUgYWJsZSB0byBsb29wIHRocm91Z2ggdGhlbS5cbiAgICogQHBhcmFtIGlucHV0IHVzZXIgcXVlcnlcbiAgICogQHJldHVybnMgc3BsaXQgdXNlciBxdWVyeVxuICAgKi9cbiAgcHJpdmF0ZSBzcGxpdFVzZXJRdWVyeUludG9QYXJ0cyhpbnB1dDogc3RyaW5nKTogc3RyaW5nW10ge1xuICAgIGNvbnN0IHBhcnRzID0gaW5wdXRcbiAgICAgIC50b0xvd2VyQ2FzZSgpXG4gICAgICAucmVwbGFjZSgvQCNcXCQlXFxeJlxcKlxcKFxcKV9cXCs9fmBcXHtcXFtcXH1cXF1cXHw6Ozw+XFwvXFxcXFxcdC9nLCAnICcpXG4gICAgICAucmVwbGFjZSgvXFxzKy0rXFxzKy9nLCAnLicpXG4gICAgICAucmVwbGFjZSgvXFxzKlssLj8hO10rXFxzKi9nLCAnLicpXG4gICAgICAucmVwbGFjZSgvXFxzKlxcYmJ1dFxcYlxccyovZywgJy4nKVxuICAgICAgLnJlcGxhY2UoL1xcc3syLH0vZywgJyAnKVxuICAgICAgLnNwbGl0KCcuJyk7XG4gICAgcmV0dXJuIHBhcnRzO1xuICB9XG5cbiAgcHJpdmF0ZSBzb3J0S2V5d29yZHMoYTogSUVsaXphS2V5d29yZCwgYjogSUVsaXphS2V5d29yZCkge1xuICAgIGlmIChhLnJhbmsgPiBiLnJhbmspIHtcbiAgICAgIHJldHVybiAtMTtcbiAgICB9IGVsc2UgaWYgKGEucmFuayA8IGIucmFuaykge1xuICAgICAgcmV0dXJuIDE7XG4gICAgfSBlbHNlIGlmIChhLmluZGV4ID4gYi5pbmRleCkge1xuICAgICAgcmV0dXJuIDE7XG4gICAgfSBlbHNlIGlmIChhLmluZGV4IDwgYi5pbmRleCkge1xuICAgICAgcmV0dXJuIC0xO1xuICAgIH1cbiAgICByZXR1cm4gMDtcbiAgfVxuXG4gIHByaXZhdGUgcG9zdFRyYW5zZm9ybShkYXRhOiBJRWxpemFEYXRhLCBpbnB1dDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAvLyBmaW5hbCBjbGVhbmluZ3NcbiAgICBsZXQgcmVzdWx0ID0gaW5wdXQucmVwbGFjZSgvXFxzezIsfS9nLCAnICcpLnJlcGxhY2UoL1xccytcXC4vZywgJy4nKTtcbiAgICBpZiAoZGF0YS5wb3N0VHJhbnNmb3Jtcy5sZW5ndGggPiAwKSB7XG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGRhdGEucG9zdFRyYW5zZm9ybXMubGVuZ3RoOyBpICs9IDEpIHtcbiAgICAgICAgY29uc3QgcG9zdFRyYW5zZm9ybSA9IGRhdGEucG9zdFRyYW5zZm9ybXNbaV07XG4gICAgICAgIHJlc3VsdCA9IHJlc3VsdC5yZXBsYWNlKHBvc3RUcmFuc2Zvcm0uc2VhcmNoVmFsdWUsIHBvc3RUcmFuc2Zvcm0ucmVwbGFjZVZhbHVlKTtcbiAgICAgICAgZGF0YS5wb3N0VHJhbnNmb3Jtc1tpXS5zZWFyY2hWYWx1ZS5sYXN0SW5kZXggPSAwO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAodGhpcy5jb25maWdTdWJqZWN0LnZhbHVlLmNhcGl0YWxpemVGaXJzdExldHRlcikge1xuICAgICAgY29uc3QgbWF0Y2ggPSByZXN1bHQubWF0Y2goL14oW2Etel0pLyk7XG4gICAgICBpZiAobWF0Y2gpIHtcbiAgICAgICAgcmVzdWx0ID0gbWF0Y2hbMF0udG9VcHBlckNhc2UoKSArIHJlc3VsdC5zdWJzdHJpbmcoMSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBwcml2YXRlIGdldFJ1bGVJbmRleEJ5S2V5KGRhdGE6IElFbGl6YURhdGEsIGtleTogc3RyaW5nKTogbnVtYmVyIHtcbiAgICBmb3IgKGxldCBrID0gMDsgayA8IGRhdGEua2V5d29yZHMubGVuZ3RoOyBrICs9IDEpIHtcbiAgICAgIGlmIChkYXRhLmtleXdvcmRzW2tdLmtleSA9PT0ga2V5KSB7XG4gICAgICAgIHJldHVybiBrO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gLTE7XG4gIH1cblxuICBwcml2YXRlIG1lbVNhdmUoaW5wdXQ6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMubWVtLnB1c2goaW5wdXQpO1xuICAgIGlmICh0aGlzLm1lbS5sZW5ndGggPiB0aGlzLmNvbmZpZ1N1YmplY3QudmFsdWUubWVtU2l6ZSkge1xuICAgICAgdGhpcy5tZW0uc2hpZnQoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIG1lbUdldCgpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLm1lbS5sZW5ndGggPiAwKSB7XG4gICAgICBpZiAodGhpcy5jb25maWdTdWJqZWN0LnZhbHVlLm5vUmFuZG9tKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm1lbS5zaGlmdCgpID8/ICcnO1xuICAgICAgfVxuICAgICAgY29uc3QgbiA9IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIHRoaXMubWVtLmxlbmd0aCk7XG4gICAgICBjb25zdCByZXBseSA9IHRoaXMubWVtW25dO1xuICAgICAgZm9yIChsZXQgaSA9IG4gKyAxOyBpIDwgdGhpcy5tZW0ubGVuZ3RoOyBpICs9IDEpIHtcbiAgICAgICAgdGhpcy5tZW1baSAtIDFdID0gdGhpcy5tZW1baV07XG4gICAgICB9XG4gICAgICB0aGlzLm1lbS5sZW5ndGggLT0gMTtcbiAgICAgIHJldHVybiByZXBseTtcbiAgICB9XG4gICAgcmV0dXJuICcnO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRGaW5hbChkYXRhOiBJRWxpemFEYXRhKTogc3RyaW5nIHtcbiAgICByZXR1cm4gZGF0YS5maW5hbHMubGVuZ3RoID09PSAwID8gZWxpemFGaW5hbERlZmF1bHQgOiBkYXRhLmZpbmFsc1tNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiBkYXRhLmZpbmFscy5sZW5ndGgpXTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0SW5pdGlhbChkYXRhOiBJRWxpemFEYXRhKTogc3RyaW5nIHtcbiAgICByZXR1cm4gZGF0YS5pbml0aWFscy5sZW5ndGggPT09IDAgPyBlbGl6YUluaXRpYWxEZWZhdWx0IDogZGF0YS5pbml0aWFsc1tNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiBkYXRhLmluaXRpYWxzLmxlbmd0aCldO1xuICB9XG5cbiAgcHVibGljIGdldFJlc3BvbnNlKHN0YXRlbWVudDogc3RyaW5nKTogUHJvbWlzZTxJRWxpemFSZXNwb25zZT4ge1xuICAgIGNvbnN0IGRhdGEgPSB0aGlzLmRhdGE7XG4gICAgaWYgKHR5cGVvZiBkYXRhID09PSAndW5kZWZpbmVkJykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbml0aWFsaXplIEVsaXphIGZpcnN0LicpO1xuICAgIH1cbiAgICByZXR1cm4gbmV3IFByb21pc2U8SUVsaXphUmVzcG9uc2U+KHJlc29sdmUgPT4ge1xuICAgICAgY29uc3QgZWxpemFSZXBseSA9IHRoaXMudHJhbnNmb3JtVXNlclF1ZXJ5KGRhdGEsIHN0YXRlbWVudCk7XG4gICAgICByZXNvbHZlKGVsaXphUmVwbHkpO1xuICAgIH0pO1xuICB9XG59XG4iXX0=
@@ -993,26 +993,7 @@ const elizaPostTransforms = [
993
993
  * - https://cacm.acm.org/
994
994
  * - https://dl.acm.org/doi/10.1145/365153.365168
995
995
  */
996
- const elizaPosts = [
997
- 'am',
998
- 'are',
999
- 'your',
1000
- 'my',
1001
- 'me',
1002
- 'you',
1003
- 'myself',
1004
- 'yourself',
1005
- 'yourself',
1006
- 'myself',
1007
- 'i',
1008
- 'you',
1009
- 'you',
1010
- 'I',
1011
- 'my',
1012
- 'your',
1013
- "i'm",
1014
- 'you are',
1015
- ];
996
+ const elizaPosts = ['am', 'are', 'your', 'my', 'me', 'myself', 'yourself', 'i', 'you', 'I', "i'm", 'you are'];
1016
997
 
1017
998
  /**
1018
999
  * Pre expressions.
@@ -1045,9 +1026,7 @@ const elizaPres = [
1045
1026
  'machine',
1046
1027
  'computer',
1047
1028
  'machines',
1048
- 'computer',
1049
1029
  'computers',
1050
- 'computer',
1051
1030
  'were',
1052
1031
  'was',
1053
1032
  "you're",
@@ -1129,10 +1108,10 @@ class AppClientUtilElizaModule {
1129
1108
  };
1130
1109
  }
1131
1110
  }
1132
- /** @nocollapse */ AppClientUtilElizaModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: AppClientUtilElizaModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1133
- /** @nocollapse */ AppClientUtilElizaModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.0.6", ngImport: i0, type: AppClientUtilElizaModule });
1134
- /** @nocollapse */ AppClientUtilElizaModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: AppClientUtilElizaModule });
1135
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: AppClientUtilElizaModule, decorators: [{
1111
+ /** @nocollapse */ AppClientUtilElizaModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: AppClientUtilElizaModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1112
+ /** @nocollapse */ AppClientUtilElizaModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.1.0", ngImport: i0, type: AppClientUtilElizaModule });
1113
+ /** @nocollapse */ AppClientUtilElizaModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: AppClientUtilElizaModule });
1114
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: AppClientUtilElizaModule, decorators: [{
1136
1115
  type: NgModule,
1137
1116
  args: [{}]
1138
1117
  }] });
@@ -1205,7 +1184,7 @@ class AppElizaService {
1205
1184
  * @param reinitialize indicates that Eliza should be initialized again, even if it's data has already been initialized
1206
1185
  */
1207
1186
  setup(data, reinitialize = false) {
1208
- if (typeof this.data === 'undefined' && !reinitialize) {
1187
+ if (typeof this.data === 'undefined' || reinitialize) {
1209
1188
  this.init(data);
1210
1189
  }
1211
1190
  this.reset();
@@ -1570,9 +1549,9 @@ class AppElizaService {
1570
1549
  });
1571
1550
  }
1572
1551
  }
1573
- /** @nocollapse */ AppElizaService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: AppElizaService, deps: [{ token: ELIZA_DATA }], target: i0.ɵɵFactoryTarget.Injectable });
1574
- /** @nocollapse */ AppElizaService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: AppElizaService, providedIn: 'root' });
1575
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: AppElizaService, decorators: [{
1552
+ /** @nocollapse */ AppElizaService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: AppElizaService, deps: [{ token: ELIZA_DATA }], target: i0.ɵɵFactoryTarget.Injectable });
1553
+ /** @nocollapse */ AppElizaService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: AppElizaService, providedIn: 'root' });
1554
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: AppElizaService, decorators: [{
1576
1555
  type: Injectable,
1577
1556
  args: [{
1578
1557
  providedIn: 'root',