ecabs-components 1.1.79 → 1.1.80

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.
package/README.md CHANGED
@@ -25,6 +25,7 @@ To get more help on the Angular CLI use `ng help` or go check out the [Angular C
25
25
 
26
26
  ## Version History
27
27
 
28
+ - **v1.1.80** - Filter waypoint-history suggestions without a `place_id`; they cannot be selected or booked.
28
29
  - **v1.1.79** — Fix leading minus of ecabsDigitsOnly input with allowHyphen.
29
30
  - **v1.1.78** — Add `compareFn` input bound to `[compareWith]` on `mat-chip-listbox` to programmatically set and correctly match values with different object identities.
30
31
  - **v1.1.77** — Notify change detection on `writeValue` and `setDisabledState` so the UI reflects programmatic form updates, via `markForCheck`.
@@ -15,7 +15,7 @@ export class EcabsPlaceAutocompleteV2Component extends EcabsElementBaseComponent
15
15
  matCustomInput;
16
16
  showDeleteItem = false;
17
17
  set waypointsHistory(value) {
18
- this.waypointsHistory$.next(value ?? []);
18
+ this.waypointsHistory$.next((value ?? []).filter((suggestion) => !!suggestion?.place_id));
19
19
  }
20
20
  showSuffix = false;
21
21
  countryCode = 'MT';
@@ -96,8 +96,10 @@ export class EcabsPlaceAutocompleteV2Component extends EcabsElementBaseComponent
96
96
  this.selectedIndex = cappedSuggestions?.length ? 0 : -1;
97
97
  }));
98
98
  }
99
- onChange = () => { };
100
- onTouch = () => { };
99
+ onChange = () => {
100
+ };
101
+ onTouch = () => {
102
+ };
101
103
  getPlacesResults(query) {
102
104
  return new Observable((observer) => {
103
105
  this.autocompleteService.getPlacePredictions({
@@ -274,4 +276,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
274
276
  }], queryChanged: [{
275
277
  type: Output
276
278
  }] } });
277
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNhYnMtcGxhY2UtYXV0b2NvbXBsZXRlLXYyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VjYWJzLWNvbXBvbmVudHMvc3JjL2xpYi9lY2Ficy1wbGFjZS1hdXRvY29tcGxldGUtdjIvZWNhYnMtcGxhY2UtYXV0b2NvbXBsZXRlLXYyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VjYWJzLWNvbXBvbmVudHMvc3JjL2xpYi9lY2Ficy1wbGFjZS1hdXRvY29tcGxldGUtdjIvZWNhYnMtcGxhY2UtYXV0b2NvbXBsZXRlLXYyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxTQUFTLEVBQ1QsVUFBVSxFQUVWLFlBQVksRUFDWixNQUFNLEVBQ04sUUFBUSxFQUNSLEtBQUssRUFDTCxNQUFNLEVBRU4sTUFBTSxFQUVOLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBRUwsaUJBQWlCLEVBQ2pCLFNBQVMsR0FFVixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8seUJBQXlCLE1BQU0sc0JBQXNCLENBQUM7QUFPN0QsT0FBTyxFQUNMLGVBQWUsRUFDZixhQUFhLEVBQ2IsWUFBWSxFQUNaLG9CQUFvQixFQUNwQixHQUFHLEVBQ0gsVUFBVSxFQUNWLEVBQUUsRUFDRixTQUFTLEVBQ1QsT0FBTyxFQUNQLEdBQUcsR0FDSixNQUFNLE1BQU0sQ0FBQztBQUNkLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7Ozs7Ozs7QUFlaEUsTUFBTSxPQUFPLGlDQUNYLFNBQVEseUJBQXlCO0lBSWpDLGNBQWMsQ0FBYTtJQUczQixjQUFjLEdBQUcsS0FBSyxDQUFDO0lBRXZCLElBQ0ksZ0JBQWdCLENBQUMsS0FBMkI7UUFDOUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUdELFVBQVUsR0FBRyxLQUFLLENBQUM7SUFHbkIsV0FBVyxHQUFHLElBQUksQ0FBQztJQUduQixZQUFZLENBQVU7SUFHdEIsWUFBWSxDQUFtQjtJQUcvQixVQUFVLEdBQUcsR0FBRyxDQUFDO0lBR1IsV0FBVyxHQUFvQyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBR2xFLFVBQVUsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBR2hDLFlBQVksR0FBRyxJQUFJLFlBQVksRUFBdUIsQ0FBQztJQUVoRSxVQUFVLEdBQUcsSUFBSSxlQUFlLENBQVUsS0FBSyxDQUFDLENBQUM7SUFDakQsb0JBQW9CLENBQW1DO0lBQ3ZELE1BQU0sR0FBRyxJQUFJLGVBQWUsQ0FBUyxFQUFFLENBQUMsQ0FBQztJQUV6QyxhQUFhLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDbkIsb0JBQW9CLEdBQXlCLEVBQUUsQ0FBQztJQUUvQixXQUFXLEdBQUcsSUFBSSxPQUFPLEVBQVUsQ0FBQztJQUNwQyxpQkFBaUIsR0FBRyxJQUFJLGVBQWUsQ0FFdEQsRUFBRSxDQUFDLENBQUM7SUFFRSxNQUFNLEdBQUcsRUFBRSxDQUFDO0lBQ1osbUJBQW1CLENBQXlDO0lBQzVELGFBQWEsQ0FBbUM7SUFDaEQsWUFBWSxDQUE4QztJQUMxRCxnQkFBZ0IsR0FBRyxLQUFLLENBQUM7SUFFaEIsZUFBZSxHQUFHLEVBQUUsQ0FBQztJQUNyQixnQkFBZ0IsR0FBeUIsRUFBRSxDQUFDO0lBRTVDLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDeEIsUUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUM1QixVQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBRWpELElBQUksS0FBSztRQUNQLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUNyQixDQUFDO0lBRUQsSUFBSSxLQUFLLENBQUMsS0FBYTtRQUNyQixJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssS0FBSyxFQUFFO1lBQ3pCLE9BQU87U0FDUjtRQUVELElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdkIsQ0FBQztJQUVEO1FBQ0UsS0FBSyxFQUFFLENBQUM7SUFDVixDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLE1BQU0sRUFBRSxZQUFZLEVBQUUsR0FBRyxPQUFPLElBQUksRUFBRSxDQUFDO1FBRXZDLElBQUksWUFBWSxFQUFFLFlBQVksRUFBRTtZQUM5QixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7U0FDbkI7SUFDSCxDQUFDO0lBRUQsZUFBZTtRQUNiLE1BQU0sU0FBUyxHQUFxQixJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFFdkUsSUFBSSxTQUFTLEVBQUU7WUFDYixJQUFJLENBQUMsT0FBTyxHQUFHLFNBQVMsQ0FBQyxPQUE2QixDQUFDO1NBQ3hEO1FBRUQsSUFBSSxDQUFDLFdBQVc7YUFDYixJQUFJLENBQ0gsWUFBWSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFDN0Isb0JBQW9CLEVBQUUsRUFDdEIsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUNwQzthQUNBLFNBQVMsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ25CLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDO2dCQUNyQixhQUFhLEVBQUUsSUFBSSxDQUFDLFlBQVk7Z0JBQ2hDLFVBQVUsRUFBRSxLQUFLO2FBQ2xCLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO1FBRUwsTUFBTSxrQkFBa0IsR0FBcUMsYUFBYSxDQUFDO1lBQ3pFLElBQUksQ0FBQyxVQUFVO1lBQ2YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxvQkFBb0IsRUFBRSxDQUFDO1NBQ3hFLENBQUMsQ0FBQyxJQUFJLENBQ0wsU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRSxDQUMvQixJQUFJLENBQUMsbUJBQW1CLElBQUksU0FBUyxJQUFJLEtBQUs7WUFDNUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUM7WUFDOUIsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FDOUIsRUFDRCxTQUFTLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQ2pDLENBQUM7UUFFRixJQUFJLENBQUMsb0JBQW9CLEdBQUcsYUFBYSxDQUFDO1lBQ3hDLElBQUksQ0FBQyxVQUFVO1lBQ2YsSUFBSSxDQUFDLGlCQUFpQjtZQUN0QixrQkFBa0I7U0FDbkIsQ0FBQyxDQUFDLElBQUksQ0FDTCxHQUFHLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxPQUFPLEVBQUUsTUFBTSxDQUFDLEVBQUUsRUFBRTtZQUNuQyxJQUFJLENBQUMsU0FBUyxFQUFFO2dCQUNkLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDO2FBQzlCO1lBRUQsTUFBTSxNQUFNLEdBQUcsQ0FBQyxHQUFHLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxNQUFNLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztZQUV2RCxPQUFPLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLG9DQUFvQztRQUNwRixDQUFDLENBQUMsRUFDRixHQUFHLENBQUMsQ0FBQyxpQkFBaUIsRUFBRSxFQUFFO1lBQ3hCLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxpQkFBaUIsQ0FBQztZQUM5QyxJQUFJLENBQUMsYUFBYSxHQUFHLGlCQUFpQixFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMxRCxDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztJQUVPLFFBQVEsR0FBNEIsR0FBRyxFQUFFLEdBQUUsQ0FBQyxDQUFDO0lBRTdDLE9BQU8sR0FBZSxHQUFHLEVBQUUsR0FBRSxDQUFDLENBQUM7SUFFL0IsZ0JBQWdCLENBQUMsS0FBYTtRQUNwQyxPQUFPLElBQUksVUFBVSxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUU7WUFDakMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLG1CQUFtQixDQUMxQztnQkFDRSxLQUFLLEVBQUUsS0FBSztnQkFDWixxQkFBcUIsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsV0FBVyxFQUFFO2dCQUNwRCxZQUFZLEVBQUUsSUFBSSxDQUFDLFlBQVk7YUFDaEMsRUFDRCxDQUFDLFdBQVcsRUFBRSxFQUFFO2dCQUNkLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRTtvQkFDbkIsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztvQkFDdkQsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUN0QixDQUFDLENBQUMsQ0FBQztZQUNMLENBQUMsQ0FDRixDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8scUJBQXFCLENBQzNCLFdBQTRDO1FBRTVDLE9BQU8sQ0FDTCxDQUFDLFdBQVcsSUFBSSxFQUFFLENBQUM7WUFDakIscUZBQXFGO2FBQ3BGLE1BQU0sQ0FDTCxDQUNFLFVBQVUsRUFDbUQsRUFBRSxDQUMvRCxDQUFDLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FDeEI7YUFDQSxHQUFHLENBQUMsQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDcEIsZUFBZSxFQUFFLFVBQVUsQ0FBQyxXQUFXO1lBQ3ZDLFFBQVEsRUFBRSxVQUFVLENBQUMsUUFBUTtZQUM3QixlQUFlLEVBQUUsVUFBVSxDQUFDLEtBQUs7U0FDbEMsQ0FBQyxDQUFDLENBQ04sQ0FBQztJQUNKLENBQUM7SUFFRCxXQUFXLENBQUMsS0FBYTtRQUN2QixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRUQsaUJBQWlCLENBQUMsS0FBYSxFQUFFLFVBQThCO1FBQzdELE1BQU0sRUFBRSxHQUNOLFVBQVUsQ0FBQyxhQUFhO1lBQ3hCLFVBQVUsQ0FBQyxRQUFRO1lBQ25CLFVBQVUsQ0FBQyxlQUFlO1lBQzFCLEdBQUcsS0FBSyxFQUFFLENBQUM7UUFFYixPQUFPLFVBQVUsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUM7SUFDdkUsQ0FBQztJQUVELGtCQUFrQixDQUFDLFVBQThCO1FBQy9DLElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFO1lBQ3pCLE9BQU87U0FDUjtRQUVELE1BQU0sRUFBRSxlQUFlLEVBQUUsUUFBUSxFQUFFLEdBQUcsVUFBVSxJQUFJLEVBQUUsQ0FBQztRQUV2RCxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2IsT0FBTztTQUNSO1FBRUQsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQztRQUM3QixJQUFJLENBQUMsS0FBSyxHQUFHLGVBQWUsQ0FBQztRQUM3QixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUU1QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxFQUFFLGVBQWUsQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFTyxnQkFBZ0IsQ0FBQyxPQUFlLEVBQUUsSUFBWTtRQUNwRCxJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FDM0I7WUFDRSxPQUFPO1lBQ1AsWUFBWSxFQUFFLElBQUksQ0FBQyxZQUFZO1lBQy9CLE1BQU0sRUFBRSxDQUFDLG9CQUFvQixFQUFFLG1CQUFtQixFQUFFLFVBQVUsQ0FBQztTQUNoRSxFQUNELENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxFQUFFO1lBQ2hCLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRTtnQkFDbkIsSUFBSSxNQUFNLEtBQUssTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsbUJBQW1CLENBQUMsRUFBRSxJQUFJLEtBQUssRUFBRTtvQkFDakUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztpQkFDeEM7cUJBQU07b0JBQ0wsT0FBTyxDQUFDLElBQUksQ0FBQyw2QkFBNkIsRUFBRSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO2lCQUNsRTtnQkFFRCxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztnQkFDekIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLEtBQUssQ0FBQztZQUNoQyxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FDRixDQUFDO0lBQ0osQ0FBQztJQUVELFNBQVMsQ0FBQyxLQUFvQjtRQUM1QixJQUFJLENBQUMsSUFBSSxDQUFDLG9CQUFvQixFQUFFLE1BQU0sRUFBRTtZQUN0QyxPQUFPO1NBQ1I7UUFFRCxRQUFRLEtBQUssQ0FBQyxHQUFHLEVBQUU7WUFDakIsS0FBSyxXQUFXO2dCQUNkLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztnQkFDdkIsSUFBSSxDQUFDLGFBQWE7b0JBQ2hCLENBQUMsSUFBSSxDQUFDLGFBQWEsR0FBRyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsTUFBTSxDQUFDO2dCQUM5RCxNQUFNO1lBRVIsS0FBSyxTQUFTO2dCQUNaLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztnQkFDdkIsSUFBSSxDQUFDLGFBQWE7b0JBQ2hCLENBQUMsSUFBSSxDQUFDLGFBQWEsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLE1BQU0sQ0FBQzt3QkFDM0QsSUFBSSxDQUFDLG9CQUFvQixDQUFDLE1BQU0sQ0FBQztnQkFDbkMsTUFBTTtZQUVSLEtBQUssT0FBTztnQkFDVixLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7Z0JBRXZCLElBQUksSUFBSSxDQUFDLGFBQWEsSUFBSSxDQUFDLEVBQUU7b0JBQzNCLElBQUksQ0FBQyxrQkFBa0IsQ0FDckIsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FDOUMsQ0FBQztpQkFDSDtnQkFDRCxNQUFNO1lBRVIsS0FBSyxRQUFRO2dCQUNYLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUM1QixJQUFJLENBQUMsYUFBYSxHQUFHLENBQUMsQ0FBQyxDQUFDO2dCQUN4QixNQUFNO1NBQ1Q7SUFDSCxDQUFDO0lBRUQsTUFBTTtRQUNKLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzVCLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNqQixDQUFDO0lBRUQsT0FBTztRQUNMLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxtQkFBbUIsRUFBRTtZQUMzQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztTQUMxQjtRQUVELFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdEUsQ0FBQztJQUVELFVBQVUsQ0FBQyxZQUEyQixFQUFFO1FBQ3RDLE1BQU0sSUFBSSxHQUFHLFNBQVMsSUFBSSxFQUFFLENBQUM7UUFFN0IsSUFBSSxJQUFJLENBQUMsTUFBTSxLQUFLLElBQUksRUFBRTtZQUN4QixPQUFPO1NBQ1I7UUFFRCxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztRQUNuQixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN6QixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsRUFBMkI7UUFDMUMsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVELGlCQUFpQixDQUFDLEVBQWM7UUFDOUIsSUFBSSxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7SUFDcEIsQ0FBQztJQUVELE1BQU07UUFDSixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxLQUFLO1FBQ0gsSUFBSSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7UUFDaEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDMUIsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2YsSUFBSSxDQUFDLGNBQWMsRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFFLENBQUM7SUFDOUMsQ0FBQztJQUVPLFVBQVU7UUFDaEIsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztRQUV4RSxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUN2RCxRQUFRLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUM5QixDQUFDO1FBRUYsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVPLGlCQUFpQjtRQUN2QixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztJQUN4RSxDQUFDO3dHQTFVVSxpQ0FBaUM7NEZBQWpDLGlDQUFpQyx1WEFSakM7WUFDVDtnQkFDRSxPQUFPLEVBQUUsaUJBQWlCO2dCQUMxQixXQUFXLEVBQUUsaUNBQWlDO2dCQUM5QyxLQUFLLEVBQUUsSUFBSTthQUNaO1NBQ0Ysb01DdERILDR3R0EyRUE7OzRGRG5CYSxpQ0FBaUM7a0JBWjdDLFNBQVM7K0JBQ0UsNkJBQTZCLGFBRzVCO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsbUNBQW1DOzRCQUM5QyxLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRjswRUFPRCxjQUFjO3NCQURiLFNBQVM7dUJBQUMsNEJBQTRCLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQUkxRCxjQUFjO3NCQURiLEtBQUs7Z0JBSUYsZ0JBQWdCO3NCQURuQixLQUFLO2dCQU1OLFVBQVU7c0JBRFQsS0FBSztnQkFJTixXQUFXO3NCQURWLEtBQUs7Z0JBSU4sWUFBWTtzQkFEWCxLQUFLO2dCQUlOLFlBQVk7c0JBRFgsS0FBSztnQkFJTixVQUFVO3NCQURULEtBQUs7Z0JBSUcsV0FBVztzQkFEbkIsTUFBTTtnQkFJRSxVQUFVO3NCQURsQixNQUFNO2dCQUlFLFlBQVk7c0JBRHBCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDb21wb25lbnQsXG4gIERlc3Ryb3lSZWYsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgaW5qZWN0LFxuICBJbmplY3RvcixcbiAgSW5wdXQsXG4gIE5nWm9uZSxcbiAgT25DaGFuZ2VzLFxuICBPdXRwdXQsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBDb250cm9sVmFsdWVBY2Nlc3NvcixcbiAgTkdfVkFMVUVfQUNDRVNTT1IsXG4gIE5nQ29udHJvbCxcbiAgVW50eXBlZEZvcm1Db250cm9sLFxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgRWNhYnNFbGVtZW50QmFzZUNvbXBvbmVudCBmcm9tICcuLi9iYXNlL2VsZW1lbnQtYmFzZSc7XG5pbXBvcnQgeyBXYXlwb2ludFR5cGVFbnVtIH0gZnJvbSAnLi4vYmFzZS9jb25zdHMvd2F5cG9pbnQuY29uc3RzJztcbmltcG9ydCB7XG4gIEdvb2dsZVBsYWNlUmVzdWx0LFxuICBXYXlwb2ludFF1ZXJ5Q2hhbmdlLFxuICBXYXlwb2ludFN1Z2dlc3Rpb24sXG59IGZyb20gJy4uL2Jhc2UvbW9kZWxzL3dheXBvaW50Lm1vZGVscyc7XG5pbXBvcnQge1xuICBCZWhhdmlvclN1YmplY3QsXG4gIGNvbWJpbmVMYXRlc3QsXG4gIGRlYm91bmNlVGltZSxcbiAgZGlzdGluY3RVbnRpbENoYW5nZWQsXG4gIG1hcCxcbiAgT2JzZXJ2YWJsZSxcbiAgb2YsXG4gIHN0YXJ0V2l0aCxcbiAgU3ViamVjdCxcbiAgdGFwLFxufSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHN3aXRjaE1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCBBdXRvY29tcGxldGVQcmVkaWN0aW9uID0gZ29vZ2xlLm1hcHMucGxhY2VzLkF1dG9jb21wbGV0ZVByZWRpY3Rpb247XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2VjYWJzLXBsYWNlLWF1dG9jb21wbGV0ZS12MicsXG4gIHRlbXBsYXRlVXJsOiAnLi9lY2Ficy1wbGFjZS1hdXRvY29tcGxldGUtdjIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9lY2Ficy1wbGFjZS1hdXRvY29tcGxldGUtdjIuY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogRWNhYnNQbGFjZUF1dG9jb21wbGV0ZVYyQ29tcG9uZW50LFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgRWNhYnNQbGFjZUF1dG9jb21wbGV0ZVYyQ29tcG9uZW50XG4gIGV4dGVuZHMgRWNhYnNFbGVtZW50QmFzZUNvbXBvbmVudFxuICBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgQWZ0ZXJWaWV3SW5pdCwgQ29udHJvbFZhbHVlQWNjZXNzb3JcbntcbiAgQFZpZXdDaGlsZCgnbWF0Q3VzdG9tQXV0b2NvbXBsZXRlSW5wdXQnLCB7IHN0YXRpYzogZmFsc2UgfSlcbiAgbWF0Q3VzdG9tSW5wdXQ6IEVsZW1lbnRSZWY7XG5cbiAgQElucHV0KClcbiAgc2hvd0RlbGV0ZUl0ZW0gPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICBzZXQgd2F5cG9pbnRzSGlzdG9yeSh2YWx1ZTogV2F5cG9pbnRTdWdnZXN0aW9uW10pIHtcbiAgICB0aGlzLndheXBvaW50c0hpc3RvcnkkLm5leHQodmFsdWUgPz8gW10pO1xuICB9XG5cbiAgQElucHV0KClcbiAgc2hvd1N1ZmZpeCA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIGNvdW50cnlDb2RlID0gJ01UJztcblxuICBASW5wdXQoKVxuICBnb29nbGVMb2FkZWQ6IGJvb2xlYW47XG5cbiAgQElucHV0KClcbiAgd2F5cG9pbnRUeXBlOiBXYXlwb2ludFR5cGVFbnVtO1xuXG4gIEBJbnB1dCgpXG4gIGRlYm91bmNlTXMgPSAyNDA7XG5cbiAgQE91dHB1dCgpXG4gIHJlYWRvbmx5IHBsYWNlUmVzdWx0OiBFdmVudEVtaXR0ZXI8R29vZ2xlUGxhY2VSZXN1bHQ+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIEBPdXRwdXQoKVxuICByZWFkb25seSBkZWxldGVJdGVtID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIEBPdXRwdXQoKVxuICByZWFkb25seSBxdWVyeUNoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPFdheXBvaW50UXVlcnlDaGFuZ2U+KCk7XG5cbiAgaXNGb2N1c2VkJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICB3YXlwb2ludFN1Z2dlc3Rpb25zJDogT2JzZXJ2YWJsZTxXYXlwb2ludFN1Z2dlc3Rpb25bXT47XG4gIHZhbHVlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPignJyk7XG5cbiAgc2VsZWN0ZWRJbmRleCA9IC0xO1xuICBkaXNwbGF5ZWRTdWdnZXN0aW9uczogV2F5cG9pbnRTdWdnZXN0aW9uW10gPSBbXTtcblxuICBwcml2YXRlIHJlYWRvbmx5IGlucHV0UXVlcnkkID0gbmV3IFN1YmplY3Q8c3RyaW5nPigpO1xuICBwcml2YXRlIHJlYWRvbmx5IHdheXBvaW50c0hpc3RvcnkkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxcbiAgICBXYXlwb2ludFN1Z2dlc3Rpb25bXVxuICA+KFtdKTtcblxuICBwcml2YXRlIF92YWx1ZSA9ICcnO1xuICBwcml2YXRlIGF1dG9jb21wbGV0ZVNlcnZpY2U6IGdvb2dsZS5tYXBzLnBsYWNlcy5BdXRvY29tcGxldGVTZXJ2aWNlO1xuICBwcml2YXRlIHBsYWNlc1NlcnZpY2U6IGdvb2dsZS5tYXBzLnBsYWNlcy5QbGFjZXNTZXJ2aWNlO1xuICBwcml2YXRlIHNlc3Npb25Ub2tlbjogZ29vZ2xlLm1hcHMucGxhY2VzLkF1dG9jb21wbGV0ZVNlc3Npb25Ub2tlbjtcbiAgcHJpdmF0ZSBpc1Jlc29sdmluZ1BsYWNlID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBNQVhfU1VHR0VTVElPTlMgPSAxMDtcbiAgcHJpdmF0ZSByZWFkb25seSBlbXB0eVN1Z2dlc3Rpb25zOiBXYXlwb2ludFN1Z2dlc3Rpb25bXSA9IFtdO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgbmdab25lID0gaW5qZWN0KE5nWm9uZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgaW5qZWN0b3IgPSBpbmplY3QoSW5qZWN0b3IpO1xuICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XG5cbiAgZ2V0IHZhbHVlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX3ZhbHVlO1xuICB9XG5cbiAgc2V0IHZhbHVlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICBpZiAodGhpcy5fdmFsdWUgPT09IHZhbHVlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5fdmFsdWUgPSB2YWx1ZTtcbiAgICB0aGlzLnZhbHVlJC5uZXh0KHZhbHVlKTtcbiAgICB0aGlzLm9uQ2hhbmdlKHZhbHVlKTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgY29uc3QgeyBnb29nbGVMb2FkZWQgfSA9IGNoYW5nZXMgPz8ge307XG5cbiAgICBpZiAoZ29vZ2xlTG9hZGVkPy5jdXJyZW50VmFsdWUpIHtcbiAgICAgIHRoaXMuaW5pdEdvb2dsZSgpO1xuICAgIH1cbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICBjb25zdCBuZ0NvbnRyb2w6IE5nQ29udHJvbCB8IG51bGwgPSB0aGlzLmluamVjdG9yLmdldChOZ0NvbnRyb2wsIG51bGwpO1xuXG4gICAgaWYgKG5nQ29udHJvbCkge1xuICAgICAgdGhpcy5jb250cm9sID0gbmdDb250cm9sLmNvbnRyb2wgYXMgVW50eXBlZEZvcm1Db250cm9sO1xuICAgIH1cblxuICAgIHRoaXMuaW5wdXRRdWVyeSRcbiAgICAgIC5waXBlKFxuICAgICAgICBkZWJvdW5jZVRpbWUodGhpcy5kZWJvdW5jZU1zKSxcbiAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICAgICAgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZiksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKChxdWVyeSkgPT4ge1xuICAgICAgICB0aGlzLnF1ZXJ5Q2hhbmdlZC5lbWl0KHtcbiAgICAgICAgICB3YXlwb2ludF90eXBlOiB0aGlzLndheXBvaW50VHlwZSxcbiAgICAgICAgICBwbGFjZV9uYW1lOiBxdWVyeSxcbiAgICAgICAgfSk7XG4gICAgICB9KTtcblxuICAgIGNvbnN0IGdvb2dsZVN1Z2dlc3Rpb25zJDogT2JzZXJ2YWJsZTxXYXlwb2ludFN1Z2dlc3Rpb25bXT4gPSBjb21iaW5lTGF0ZXN0KFtcbiAgICAgIHRoaXMuaXNGb2N1c2VkJCxcbiAgICAgIHRoaXMudmFsdWUkLnBpcGUoZGVib3VuY2VUaW1lKHRoaXMuZGVib3VuY2VNcyksIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpLFxuICAgIF0pLnBpcGUoXG4gICAgICBzd2l0Y2hNYXAoKFtpc0ZvY3VzZWQsIHZhbHVlXSkgPT5cbiAgICAgICAgdGhpcy5hdXRvY29tcGxldGVTZXJ2aWNlICYmIGlzRm9jdXNlZCAmJiB2YWx1ZVxuICAgICAgICAgID8gdGhpcy5nZXRQbGFjZXNSZXN1bHRzKHZhbHVlKVxuICAgICAgICAgIDogb2YodGhpcy5lbXB0eVN1Z2dlc3Rpb25zKSxcbiAgICAgICksXG4gICAgICBzdGFydFdpdGgodGhpcy5lbXB0eVN1Z2dlc3Rpb25zKSxcbiAgICApO1xuXG4gICAgdGhpcy53YXlwb2ludFN1Z2dlc3Rpb25zJCA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgdGhpcy5pc0ZvY3VzZWQkLFxuICAgICAgdGhpcy53YXlwb2ludHNIaXN0b3J5JCxcbiAgICAgIGdvb2dsZVN1Z2dlc3Rpb25zJCxcbiAgICBdKS5waXBlKFxuICAgICAgbWFwKChbaXNGb2N1c2VkLCBoaXN0b3J5LCBnb29nbGVdKSA9PiB7XG4gICAgICAgIGlmICghaXNGb2N1c2VkKSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuZW1wdHlTdWdnZXN0aW9ucztcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IG1lcmdlZCA9IFsuLi4oaGlzdG9yeSA/PyBbXSksIC4uLihnb29nbGUgPz8gW10pXTtcblxuICAgICAgICByZXR1cm4gbWVyZ2VkLnNsaWNlKDAsIHRoaXMuTUFYX1NVR0dFU1RJT05TKTsgLy8gRHJvcGRvd24gc2hvd3MgbWF4IDEwIGl0ZW1zIHRvdGFsXG4gICAgICB9KSxcbiAgICAgIHRhcCgoY2FwcGVkU3VnZ2VzdGlvbnMpID0+IHtcbiAgICAgICAgdGhpcy5kaXNwbGF5ZWRTdWdnZXN0aW9ucyA9IGNhcHBlZFN1Z2dlc3Rpb25zO1xuICAgICAgICB0aGlzLnNlbGVjdGVkSW5kZXggPSBjYXBwZWRTdWdnZXN0aW9ucz8ubGVuZ3RoID8gMCA6IC0xO1xuICAgICAgfSksXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgb25DaGFuZ2U6ICh2YWx1ZTogc3RyaW5nKSA9PiB2b2lkID0gKCkgPT4ge307XG5cbiAgcHJpdmF0ZSBvblRvdWNoOiAoKSA9PiB2b2lkID0gKCkgPT4ge307XG5cbiAgcHJpdmF0ZSBnZXRQbGFjZXNSZXN1bHRzKHF1ZXJ5OiBzdHJpbmcpOiBPYnNlcnZhYmxlPFdheXBvaW50U3VnZ2VzdGlvbltdPiB7XG4gICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKChvYnNlcnZlcikgPT4ge1xuICAgICAgdGhpcy5hdXRvY29tcGxldGVTZXJ2aWNlLmdldFBsYWNlUHJlZGljdGlvbnMoXG4gICAgICAgIHtcbiAgICAgICAgICBpbnB1dDogcXVlcnksXG4gICAgICAgICAgY29tcG9uZW50UmVzdHJpY3Rpb25zOiB7IGNvdW50cnk6IHRoaXMuY291bnRyeUNvZGUgfSxcbiAgICAgICAgICBzZXNzaW9uVG9rZW46IHRoaXMuc2Vzc2lvblRva2VuLFxuICAgICAgICB9LFxuICAgICAgICAocHJlZGljdGlvbnMpID0+IHtcbiAgICAgICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAgICAgb2JzZXJ2ZXIubmV4dCh0aGlzLnRvV2F5cG9pbnRTdWdnZXN0aW9ucyhwcmVkaWN0aW9ucykpO1xuICAgICAgICAgICAgb2JzZXJ2ZXIuY29tcGxldGUoKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSxcbiAgICAgICk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHRvV2F5cG9pbnRTdWdnZXN0aW9ucyhcbiAgICBwcmVkaWN0aW9uczogQXV0b2NvbXBsZXRlUHJlZGljdGlvbltdIHwgbnVsbCxcbiAgKTogV2F5cG9pbnRTdWdnZXN0aW9uW10ge1xuICAgIHJldHVybiAoXG4gICAgICAocHJlZGljdGlvbnMgPz8gW10pXG4gICAgICAgIC8vIERyb3BzIHByZWRpY3Rpb25zIHdpdGhvdXQgYSBwbGFjZV9pZCBiZWNhdXNlIHNlbGVjdGlvbiBhbmQgYm9va2luZyBib3RoIHJlcXVpcmUgaXRcbiAgICAgICAgLmZpbHRlcihcbiAgICAgICAgICAoXG4gICAgICAgICAgICBwcmVkaWN0aW9uLFxuICAgICAgICAgICk6IHByZWRpY3Rpb24gaXMgQXV0b2NvbXBsZXRlUHJlZGljdGlvbiAmIHsgcGxhY2VfaWQ6IHN0cmluZyB9ID0+XG4gICAgICAgICAgICAhIXByZWRpY3Rpb24ucGxhY2VfaWQsXG4gICAgICAgIClcbiAgICAgICAgLm1hcCgocHJlZGljdGlvbikgPT4gKHtcbiAgICAgICAgICBhZGRpdGlvbmFsX2luZm86IHByZWRpY3Rpb24uZGVzY3JpcHRpb24sXG4gICAgICAgICAgcGxhY2VfaWQ6IHByZWRpY3Rpb24ucGxhY2VfaWQsXG4gICAgICAgICAgcHJlZGljdGlvbl90ZXJtOiBwcmVkaWN0aW9uLnRlcm1zLFxuICAgICAgICB9KSlcbiAgICApO1xuICB9XG5cbiAgb25Vc2VySW5wdXQocXVlcnk6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuaW5wdXRRdWVyeSQubmV4dChxdWVyeSk7XG4gIH1cblxuICB0cmFja0J5U3VnZ2VzdGlvbihpbmRleDogbnVtYmVyLCBzdWdnZXN0aW9uOiBXYXlwb2ludFN1Z2dlc3Rpb24pOiBzdHJpbmcge1xuICAgIGNvbnN0IGlkID1cbiAgICAgIHN1Z2dlc3Rpb24uc3VnZ2VzdGlvbl9pZCA/P1xuICAgICAgc3VnZ2VzdGlvbi5wbGFjZV9pZCA/P1xuICAgICAgc3VnZ2VzdGlvbi5hZGRpdGlvbmFsX2luZm8gPz9cbiAgICAgIGAke2luZGV4fWA7XG5cbiAgICByZXR1cm4gc3VnZ2VzdGlvbi5wcmVkaWN0aW9uX3Rlcm0gPyBgZ29vZ2xlOiR7aWR9YCA6IGBoaXN0b3J5OiR7aWR9YDtcbiAgfVxuXG4gIG9uU2VsZWN0U3VnZ2VzdGlvbihzdWdnZXN0aW9uOiBXYXlwb2ludFN1Z2dlc3Rpb24pOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pc1Jlc29sdmluZ1BsYWNlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgeyBhZGRpdGlvbmFsX2luZm8sIHBsYWNlX2lkIH0gPSBzdWdnZXN0aW9uID8/IHt9O1xuXG4gICAgaWYgKCFwbGFjZV9pZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuaXNSZXNvbHZpbmdQbGFjZSA9IHRydWU7XG4gICAgdGhpcy52YWx1ZSA9IGFkZGl0aW9uYWxfaW5mbztcbiAgICB0aGlzLmlzRm9jdXNlZCQubmV4dChmYWxzZSk7XG5cbiAgICB0aGlzLnJlc29sdmVCeVBsYWNlSWQocGxhY2VfaWQsIGFkZGl0aW9uYWxfaW5mbyk7XG4gIH1cblxuICBwcml2YXRlIHJlc29sdmVCeVBsYWNlSWQocGxhY2VJZDogc3RyaW5nLCB0ZXh0OiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLnBsYWNlc1NlcnZpY2UuZ2V0RGV0YWlscyhcbiAgICAgIHtcbiAgICAgICAgcGxhY2VJZCxcbiAgICAgICAgc2Vzc2lvblRva2VuOiB0aGlzLnNlc3Npb25Ub2tlbixcbiAgICAgICAgZmllbGRzOiBbJ2FkZHJlc3NfY29tcG9uZW50cycsICdnZW9tZXRyeS5sb2NhdGlvbicsICdwbGFjZV9pZCddLFxuICAgICAgfSxcbiAgICAgIChwbGFjZSwgc3RhdHVzKSA9PiB7XG4gICAgICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB7XG4gICAgICAgICAgaWYgKHN0YXR1cyA9PT0gZ29vZ2xlLm1hcHMucGxhY2VzLlBsYWNlc1NlcnZpY2VTdGF0dXMuT0sgJiYgcGxhY2UpIHtcbiAgICAgICAgICAgIHRoaXMucGxhY2VSZXN1bHQuZW1pdCh7IHBsYWNlLCB0ZXh0IH0pO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oJ1BsYWNlIGRldGFpbHMgbG9va3VwIGZhaWxlZCcsIHsgc3RhdHVzLCBwbGFjZUlkIH0pO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHRoaXMucmVzZXRTZXNzaW9uVG9rZW4oKTtcbiAgICAgICAgICB0aGlzLmlzUmVzb2x2aW5nUGxhY2UgPSBmYWxzZTtcbiAgICAgICAgfSk7XG4gICAgICB9LFxuICAgICk7XG4gIH1cblxuICBvbktleURvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuZGlzcGxheWVkU3VnZ2VzdGlvbnM/Lmxlbmd0aCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHN3aXRjaCAoZXZlbnQua2V5KSB7XG4gICAgICBjYXNlICdBcnJvd0Rvd24nOlxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB0aGlzLnNlbGVjdGVkSW5kZXggPVxuICAgICAgICAgICh0aGlzLnNlbGVjdGVkSW5kZXggKyAxKSAlIHRoaXMuZGlzcGxheWVkU3VnZ2VzdGlvbnMubGVuZ3RoO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSAnQXJyb3dVcCc6XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRJbmRleCA9XG4gICAgICAgICAgKHRoaXMuc2VsZWN0ZWRJbmRleCAtIDEgKyB0aGlzLmRpc3BsYXllZFN1Z2dlc3Rpb25zLmxlbmd0aCkgJVxuICAgICAgICAgIHRoaXMuZGlzcGxheWVkU3VnZ2VzdGlvbnMubGVuZ3RoO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSAnRW50ZXInOlxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgICAgIGlmICh0aGlzLnNlbGVjdGVkSW5kZXggPj0gMCkge1xuICAgICAgICAgIHRoaXMub25TZWxlY3RTdWdnZXN0aW9uKFxuICAgICAgICAgICAgdGhpcy5kaXNwbGF5ZWRTdWdnZXN0aW9uc1t0aGlzLnNlbGVjdGVkSW5kZXhdLFxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgJ0VzY2FwZSc6XG4gICAgICAgIHRoaXMuaXNGb2N1c2VkJC5uZXh0KGZhbHNlKTtcbiAgICAgICAgdGhpcy5zZWxlY3RlZEluZGV4ID0gLTE7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIG9uQmx1cigpOiB2b2lkIHtcbiAgICB0aGlzLmlzRm9jdXNlZCQubmV4dChmYWxzZSk7XG4gICAgdGhpcy5vblRvdWNoKCk7XG4gIH1cblxuICBvbkZvY3VzKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy52YWx1ZSAmJiB0aGlzLmF1dG9jb21wbGV0ZVNlcnZpY2UpIHtcbiAgICAgIHRoaXMucmVzZXRTZXNzaW9uVG9rZW4oKTtcbiAgICB9XG5cbiAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMubmdab25lLnJ1bigoKSA9PiB0aGlzLmlzRm9jdXNlZCQubmV4dCh0cnVlKSkpO1xuICB9XG5cbiAgd3JpdGVWYWx1ZShuZXh0VmFsdWU6IHN0cmluZyB8IG51bGwgPSAnJyk6IHZvaWQge1xuICAgIGNvbnN0IG5leHQgPSBuZXh0VmFsdWUgPz8gJyc7XG5cbiAgICBpZiAodGhpcy5fdmFsdWUgPT09IG5leHQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLl92YWx1ZSA9IG5leHQ7XG4gICAgdGhpcy52YWx1ZSQubmV4dChuZXh0KTtcbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46ICh2YWx1ZTogc3RyaW5nKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLm9uVG91Y2ggPSBmbjtcbiAgfVxuXG4gIGRlbGV0ZSgpOiB2b2lkIHtcbiAgICB0aGlzLmRlbGV0ZUl0ZW0uZW1pdCgpO1xuICB9XG5cbiAgY2xlYXIoKTogdm9pZCB7XG4gICAgdGhpcy52YWx1ZSA9ICcnO1xuICAgIHRoaXMuaW5wdXRRdWVyeSQubmV4dCgnJyk7XG4gICAgdGhpcy5vblRvdWNoKCk7XG4gICAgdGhpcy5tYXRDdXN0b21JbnB1dD8ubmF0aXZlRWxlbWVudD8uZm9jdXMoKTtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdEdvb2dsZSgpOiB2b2lkIHtcbiAgICB0aGlzLmF1dG9jb21wbGV0ZVNlcnZpY2UgPSBuZXcgZ29vZ2xlLm1hcHMucGxhY2VzLkF1dG9jb21wbGV0ZVNlcnZpY2UoKTtcblxuICAgIHRoaXMucGxhY2VzU2VydmljZSA9IG5ldyBnb29nbGUubWFwcy5wbGFjZXMuUGxhY2VzU2VydmljZShcbiAgICAgIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpLFxuICAgICk7XG5cbiAgICB0aGlzLnJlc2V0U2Vzc2lvblRva2VuKCk7XG4gIH1cblxuICBwcml2YXRlIHJlc2V0U2Vzc2lvblRva2VuKCk6IHZvaWQge1xuICAgIHRoaXMuc2Vzc2lvblRva2VuID0gbmV3IGdvb2dsZS5tYXBzLnBsYWNlcy5BdXRvY29tcGxldGVTZXNzaW9uVG9rZW4oKTtcbiAgfVxufVxuIiwiPGVjYWJzLWVsZW1lbnQtd3JhcHBlciBbZGF0YV09XCJnZXREYXRhKClcIj5cbiAgPGRpdiBjbGFzcz1cImF1dG9jb21wbGV0ZS11aSB3LWZ1bGxcIj5cbiAgICA8c2VjdGlvbiBjbGFzcz1cImZvcm0tZmllbGRfX2lucHV0LS13cmFwcGVyIHctZnVsbFwiPlxuICAgICAgPGlucHV0ICNtYXRDdXN0b21BdXRvY29tcGxldGVJbnB1dFxuICAgICAgICAgICAgIGNka092ZXJsYXlPcmlnaW5cbiAgICAgICAgICAgICAjdHJpZ2dlcj1cImNka092ZXJsYXlPcmlnaW5cIlxuICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gICAgICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cInZhbHVlXCJcbiAgICAgICAgICAgICBbaWRdPVwibmFtZVwiXG4gICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWZpZWxkX19pbnB1dCB3LWZ1bGxcIlxuICAgICAgICAgICAgIGF1dG9jb3JyZWN0PVwib2ZmXCJcbiAgICAgICAgICAgICBhdXRvY2FwaXRhbGl6ZT1cIm9mZlwiXG4gICAgICAgICAgICAgc3BlbGxjaGVjaz1cIm9mZlwiXG4gICAgICAgICAgICAgKGZvY3VzKT1cIm9uRm9jdXMoKVwiXG4gICAgICAgICAgICAgKGtleWRvd24pPVwib25LZXlEb3duKCRldmVudClcIlxuICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uVXNlcklucHV0KCRldmVudClcIlxuICAgICAgICAgICAgIChibHVyKT1cIm9uQmx1cigpXCJcbiAgICAgIC8+XG4gICAgICA8ZGl2ICpuZ0lmPVwic2hvd1N1ZmZpeFwiXG4gICAgICAgICAgIGNsYXNzPVwiZm9ybS1maWVsZF9faW5wdXQtLXN1ZmZpeFwiPlxuICAgICAgICA8bWF0LWljb24gKm5nSWY9XCJzaG93RGVsZXRlSXRlbVwiXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cInN1ZmZpeCBjdXJzb3ItcG9pbnRlciBkZWxldGUtYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgIChrZXlkb3duLmVudGVyKT1cImRlbGV0ZSgpXCJcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCJkZWxldGUoKVwiPlxuICAgICAgICAgIGRlbGV0ZVxuICAgICAgICA8L21hdC1pY29uPlxuICAgICAgICA8bWF0LWljb24gKm5nSWY9XCIhc2hvd0RlbGV0ZUl0ZW0gJiYgdmFsdWVcIlxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzdWZmaXggY3Vyc29yLXBvaW50ZXJcIlxuICAgICAgICAgICAgICAgICAgKGtleWRvd24uZW50ZXIpPVwiY2xlYXIoKVwiXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwiY2xlYXIoKVwiPlxuICAgICAgICAgIGNsb3NlXG4gICAgICAgIDwvbWF0LWljb24+XG4gICAgICA8L2Rpdj5cbiAgICA8L3NlY3Rpb24+XG4gICAgPCEtLSBDdXN0b20gZHJvcGRvd24gLS0+XG4gICAgPG5nLXRlbXBsYXRlIGNka0Nvbm5lY3RlZE92ZXJsYXlcbiAgICAgICAgICAgICAgICAgW2Nka0Nvbm5lY3RlZE92ZXJsYXlXaWR0aF09XCJ0cmlnZ2VyLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aFwiXG4gICAgICAgICAgICAgICAgIFtjZGtDb25uZWN0ZWRPdmVybGF5RmxleGlibGVEaW1lbnNpb25zXT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgICAgW2Nka0Nvbm5lY3RlZE92ZXJsYXlPcmlnaW5dPVwidHJpZ2dlclwiXG4gICAgICAgICAgICAgICAgIFtjZGtDb25uZWN0ZWRPdmVybGF5T3Blbl09XCJpc0ZvY3VzZWQkIHwgYXN5bmNcIj5cbiAgICAgIDx1bCBjbGFzcz1cImF1dG9jb21wbGV0ZS11aV9fY29udGFpbmVyXCI+XG4gICAgICAgIDxsaSAqbmdGb3I9XCJsZXQgc3VnZ2VzdGlvbiBvZiB3YXlwb2ludFN1Z2dlc3Rpb25zJCB8IGFzeW5jOyBsZXQgaSA9IGluZGV4OyB0cmFja0J5OiB0cmFja0J5U3VnZ2VzdGlvblwiXG4gICAgICAgICAgICBjbGFzcz1cImF1dG9jb21wbGV0ZS11aS0taXRlbSBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW4gaG92ZXI6YmctZ3JheS0xMDBcIlxuICAgICAgICAgICAgW2NsYXNzLmFjdGl2ZV09XCJpID09PSBzZWxlY3RlZEluZGV4XCJcbiAgICAgICAgICAgIChtb3VzZWRvd24pPVwib25TZWxlY3RTdWdnZXN0aW9uKHN1Z2dlc3Rpb24pXCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFzdWdnZXN0aW9uPy5wcmVkaWN0aW9uX3Rlcm07IGVsc2UgcHVyZVBsYWNlUmVzdWx0VHBsXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidy1mdWxsIHRydW5jYXRlXCI+XG4gICAgICAgICAgICAgIHt7IHN1Z2dlc3Rpb24/LmFkZGl0aW9uYWxfaW5mbyB9fVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8bWF0LWljb24gc3ZnSWNvbj1cInBoLXJlZ3VsYXI6Y2xvY2stY291bnRlclwiXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ3LTUgaC01IHRleHQteGwgdGV4dC1ncmF5LTQwMCBob3ZlcjohdGV4dC1ncmF5LTQwMFwiPlxuICAgICAgICAgICAgPC9tYXQtaWNvbj5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjcHVyZVBsYWNlUmVzdWx0VHBsPlxuICAgICAgICAgICAgPHVsIGNsYXNzPVwidy1mdWxsIGZsZXggaXRlbXMtY2VudGVyIGdhcC14LTEgbGVhZGluZy0wIG92ZXJmbG93LWhpZGRlbiB3aGl0ZXNwYWNlLW5vd3JhcFwiPlxuICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAge3sgc3VnZ2VzdGlvbj8ucHJlZGljdGlvbl90ZXJtPy5bMF0/LnZhbHVlIH19XG4gICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgIDxsaSAqbmdJZj1cInN1Z2dlc3Rpb24/LnByZWRpY3Rpb25fdGVybT8uWzFdPy52YWx1ZVwiXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cInRleHQteHMgdGV4dC1ncmF5LTYwMCB0cnVuY2F0ZVwiPlxuICAgICAgICAgICAgICAgIHt7IHN1Z2dlc3Rpb24/LnByZWRpY3Rpb25fdGVybT8uWzFdPy52YWx1ZSB8IHNlcGFyYXRvckFwcGVuZDogc3VnZ2VzdGlvbj8ucHJlZGljdGlvbl90ZXJtPy5bMl0/LnZhbHVlIH19XG4gICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgIDxsaSAqbmdJZj1cInN1Z2dlc3Rpb24/LnByZWRpY3Rpb25fdGVybT8uWzJdPy52YWx1ZVwiXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cInRleHQteHMgdGV4dC1ncmF5LTYwMCBmb250LXNlbWlib2xkIHRydW5jYXRlXCI+XG4gICAgICAgICAgICAgICAge3sgc3VnZ2VzdGlvbj8ucHJlZGljdGlvbl90ZXJtPy5bMl0/LnZhbHVlIH19XG4gICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICA8L3VsPlxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvbGk+XG4gICAgICA8L3VsPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwvZGl2PlxuPC9lY2Ficy1lbGVtZW50LXdyYXBwZXI+XG4iXX0=
279
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNhYnMtcGxhY2UtYXV0b2NvbXBsZXRlLXYyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VjYWJzLWNvbXBvbmVudHMvc3JjL2xpYi9lY2Ficy1wbGFjZS1hdXRvY29tcGxldGUtdjIvZWNhYnMtcGxhY2UtYXV0b2NvbXBsZXRlLXYyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VjYWJzLWNvbXBvbmVudHMvc3JjL2xpYi9lY2Ficy1wbGFjZS1hdXRvY29tcGxldGUtdjIvZWNhYnMtcGxhY2UtYXV0b2NvbXBsZXRlLXYyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxTQUFTLEVBQ1QsVUFBVSxFQUVWLFlBQVksRUFDWixNQUFNLEVBQ04sUUFBUSxFQUNSLEtBQUssRUFDTCxNQUFNLEVBRU4sTUFBTSxFQUVOLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBRUwsaUJBQWlCLEVBQ2pCLFNBQVMsR0FFVixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8seUJBQXlCLE1BQU0sc0JBQXNCLENBQUM7QUFPN0QsT0FBTyxFQUNMLGVBQWUsRUFDZixhQUFhLEVBQ2IsWUFBWSxFQUNaLG9CQUFvQixFQUNwQixHQUFHLEVBQ0gsVUFBVSxFQUNWLEVBQUUsRUFDRixTQUFTLEVBQ1QsT0FBTyxFQUNQLEdBQUcsR0FDSixNQUFNLE1BQU0sQ0FBQztBQUNkLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6QyxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQzs7Ozs7Ozs7QUFlOUQsTUFBTSxPQUFPLGlDQUNYLFNBQVEseUJBQXlCO0lBR2pDLGNBQWMsQ0FBYTtJQUczQixjQUFjLEdBQUcsS0FBSyxDQUFDO0lBRXZCLElBQ0ksZ0JBQWdCLENBQUMsS0FBMkI7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LEVBQUUsaUJBQWlCO2dCQUMxQixXQUFXLEVBQUUsaUNBQWlDO2dCQUM5QyxLQUFLLEVBQUUsSUFBSTthQUNaO1NBQ0Ysb01DdERILDR3R0EyRUE7OzRGRG5CYSxpQ0FBaUM7a0JBWjdDLFNBQVM7K0JBQ0UsNkJBQTZCLGFBRzVCO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsbUNBQW1DOzRCQUM5QyxLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRjswRUFNRCxjQUFjO3NCQURiLFNBQVM7dUJBQUMsNEJBQTRCLEVBQUUsRUFBQyxNQUFNLEVBQUUsS0FBSyxFQUFDO2dCQUl4RCxjQUFjO3NCQURiLEtBQUs7Z0JBSUYsZ0JBQWdCO3NCQURuQixLQUFLO2dCQVFOLFVBQVU7c0JBRFQsS0FBSztnQkFJTixXQUFXO3NCQURWLEtBQUs7Z0JBSU4sWUFBWTtzQkFEWCxLQUFLO2dCQUlOLFlBQVk7c0JBRFgsS0FBSztnQkFJTixVQUFVO3NCQURULEtBQUs7Z0JBSUcsV0FBVztzQkFEbkIsTUFBTTtnQkFJRSxVQUFVO3NCQURsQixNQUFNO2dCQUlFLFlBQVk7c0JBRHBCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIEFmdGVyVmlld0luaXQsXHJcbiAgQ29tcG9uZW50LFxyXG4gIERlc3Ryb3lSZWYsXHJcbiAgRWxlbWVudFJlZixcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgaW5qZWN0LFxyXG4gIEluamVjdG9yLFxyXG4gIElucHV0LFxyXG4gIE5nWm9uZSxcclxuICBPbkNoYW5nZXMsXHJcbiAgT3V0cHV0LFxyXG4gIFNpbXBsZUNoYW5nZXMsXHJcbiAgVmlld0NoaWxkLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1xyXG4gIENvbnRyb2xWYWx1ZUFjY2Vzc29yLFxyXG4gIE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gIE5nQ29udHJvbCxcclxuICBVbnR5cGVkRm9ybUNvbnRyb2wsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgRWNhYnNFbGVtZW50QmFzZUNvbXBvbmVudCBmcm9tICcuLi9iYXNlL2VsZW1lbnQtYmFzZSc7XHJcbmltcG9ydCB7V2F5cG9pbnRUeXBlRW51bX0gZnJvbSAnLi4vYmFzZS9jb25zdHMvd2F5cG9pbnQuY29uc3RzJztcclxuaW1wb3J0IHtcclxuICBHb29nbGVQbGFjZVJlc3VsdCxcclxuICBXYXlwb2ludFF1ZXJ5Q2hhbmdlLFxyXG4gIFdheXBvaW50U3VnZ2VzdGlvbixcclxufSBmcm9tICcuLi9iYXNlL21vZGVscy93YXlwb2ludC5tb2RlbHMnO1xyXG5pbXBvcnQge1xyXG4gIEJlaGF2aW9yU3ViamVjdCxcclxuICBjb21iaW5lTGF0ZXN0LFxyXG4gIGRlYm91bmNlVGltZSxcclxuICBkaXN0aW5jdFVudGlsQ2hhbmdlZCxcclxuICBtYXAsXHJcbiAgT2JzZXJ2YWJsZSxcclxuICBvZixcclxuICBzdGFydFdpdGgsXHJcbiAgU3ViamVjdCxcclxuICB0YXAsXHJcbn0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7c3dpdGNoTWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7dGFrZVVudGlsRGVzdHJveWVkfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XHJcbmltcG9ydCBBdXRvY29tcGxldGVQcmVkaWN0aW9uID0gZ29vZ2xlLm1hcHMucGxhY2VzLkF1dG9jb21wbGV0ZVByZWRpY3Rpb247XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2VjYWJzLXBsYWNlLWF1dG9jb21wbGV0ZS12MicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2VjYWJzLXBsYWNlLWF1dG9jb21wbGV0ZS12Mi5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZWNhYnMtcGxhY2UtYXV0b2NvbXBsZXRlLXYyLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gICAgICB1c2VFeGlzdGluZzogRWNhYnNQbGFjZUF1dG9jb21wbGV0ZVYyQ29tcG9uZW50LFxyXG4gICAgICBtdWx0aTogdHJ1ZSxcclxuICAgIH0sXHJcbiAgXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEVjYWJzUGxhY2VBdXRvY29tcGxldGVWMkNvbXBvbmVudFxyXG4gIGV4dGVuZHMgRWNhYnNFbGVtZW50QmFzZUNvbXBvbmVudFxyXG4gIGltcGxlbWVudHMgT25DaGFuZ2VzLCBBZnRlclZpZXdJbml0LCBDb250cm9sVmFsdWVBY2Nlc3NvciB7XHJcbiAgQFZpZXdDaGlsZCgnbWF0Q3VzdG9tQXV0b2NvbXBsZXRlSW5wdXQnLCB7c3RhdGljOiBmYWxzZX0pXHJcbiAgbWF0Q3VzdG9tSW5wdXQ6IEVsZW1lbnRSZWY7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgc2hvd0RlbGV0ZUl0ZW0gPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KClcclxuICBzZXQgd2F5cG9pbnRzSGlzdG9yeSh2YWx1ZTogV2F5cG9pbnRTdWdnZXN0aW9uW10pIHtcclxuICAgIHRoaXMud2F5cG9pbnRzSGlzdG9yeSQubmV4dChcclxuICAgICAgKHZhbHVlID8/IFtdKS5maWx0ZXIoKHN1Z2dlc3Rpb24pID0+ICEhc3VnZ2VzdGlvbj8ucGxhY2VfaWQpLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgc2hvd1N1ZmZpeCA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIGNvdW50cnlDb2RlID0gJ01UJztcclxuXHJcbiAgQElucHV0KClcclxuICBnb29nbGVMb2FkZWQ6IGJvb2xlYW47XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgd2F5cG9pbnRUeXBlOiBXYXlwb2ludFR5cGVFbnVtO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIGRlYm91bmNlTXMgPSAyNDA7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHJlYWRvbmx5IHBsYWNlUmVzdWx0OiBFdmVudEVtaXR0ZXI8R29vZ2xlUGxhY2VSZXN1bHQ+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBAT3V0cHV0KClcclxuICByZWFkb25seSBkZWxldGVJdGVtID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBAT3V0cHV0KClcclxuICByZWFkb25seSBxdWVyeUNoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPFdheXBvaW50UXVlcnlDaGFuZ2U+KCk7XHJcblxyXG4gIGlzRm9jdXNlZCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcclxuICB3YXlwb2ludFN1Z2dlc3Rpb25zJDogT2JzZXJ2YWJsZTxXYXlwb2ludFN1Z2dlc3Rpb25bXT47XHJcbiAgdmFsdWUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+KCcnKTtcclxuXHJcbiAgc2VsZWN0ZWRJbmRleCA9IC0xO1xyXG4gIGRpc3BsYXllZFN1Z2dlc3Rpb25zOiBXYXlwb2ludFN1Z2dlc3Rpb25bXSA9IFtdO1xyXG5cclxuICBwcml2YXRlIHJlYWRvbmx5IGlucHV0UXVlcnkkID0gbmV3IFN1YmplY3Q8c3RyaW5nPigpO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgd2F5cG9pbnRzSGlzdG9yeSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFxyXG4gICAgV2F5cG9pbnRTdWdnZXN0aW9uW11cclxuICA+KFtdKTtcclxuXHJcbiAgcHJpdmF0ZSBfdmFsdWUgPSAnJztcclxuICBwcml2YXRlIGF1dG9jb21wbGV0ZVNlcnZpY2U6IGdvb2dsZS5tYXBzLnBsYWNlcy5BdXRvY29tcGxldGVTZXJ2aWNlO1xyXG4gIHByaXZhdGUgcGxhY2VzU2VydmljZTogZ29vZ2xlLm1hcHMucGxhY2VzLlBsYWNlc1NlcnZpY2U7XHJcbiAgcHJpdmF0ZSBzZXNzaW9uVG9rZW46IGdvb2dsZS5tYXBzLnBsYWNlcy5BdXRvY29tcGxldGVTZXNzaW9uVG9rZW47XHJcbiAgcHJpdmF0ZSBpc1Jlc29sdmluZ1BsYWNlID0gZmFsc2U7XHJcblxyXG4gIHByaXZhdGUgcmVhZG9ubHkgTUFYX1NVR0dFU1RJT05TID0gMTA7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBlbXB0eVN1Z2dlc3Rpb25zOiBXYXlwb2ludFN1Z2dlc3Rpb25bXSA9IFtdO1xyXG5cclxuICBwcml2YXRlIHJlYWRvbmx5IG5nWm9uZSA9IGluamVjdChOZ1pvbmUpO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgaW5qZWN0b3IgPSBpbmplY3QoSW5qZWN0b3IpO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcclxuXHJcbiAgZ2V0IHZhbHVlKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fdmFsdWU7XHJcbiAgfVxyXG5cclxuICBzZXQgdmFsdWUodmFsdWU6IHN0cmluZykge1xyXG4gICAgaWYgKHRoaXMuX3ZhbHVlID09PSB2YWx1ZSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5fdmFsdWUgPSB2YWx1ZTtcclxuICAgIHRoaXMudmFsdWUkLm5leHQodmFsdWUpO1xyXG4gICAgdGhpcy5vbkNoYW5nZSh2YWx1ZSk7XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3RvcigpIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICBjb25zdCB7Z29vZ2xlTG9hZGVkfSA9IGNoYW5nZXMgPz8ge307XHJcblxyXG4gICAgaWYgKGdvb2dsZUxvYWRlZD8uY3VycmVudFZhbHVlKSB7XHJcbiAgICAgIHRoaXMuaW5pdEdvb2dsZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgY29uc3QgbmdDb250cm9sOiBOZ0NvbnRyb2wgfCBudWxsID0gdGhpcy5pbmplY3Rvci5nZXQoTmdDb250cm9sLCBudWxsKTtcclxuXHJcbiAgICBpZiAobmdDb250cm9sKSB7XHJcbiAgICAgIHRoaXMuY29udHJvbCA9IG5nQ29udHJvbC5jb250cm9sIGFzIFVudHlwZWRGb3JtQ29udHJvbDtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmlucHV0UXVlcnkkXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIGRlYm91bmNlVGltZSh0aGlzLmRlYm91bmNlTXMpLFxyXG4gICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXHJcbiAgICAgICAgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZiksXHJcbiAgICAgIClcclxuICAgICAgLnN1YnNjcmliZSgocXVlcnkpID0+IHtcclxuICAgICAgICB0aGlzLnF1ZXJ5Q2hhbmdlZC5lbWl0KHtcclxuICAgICAgICAgIHdheXBvaW50X3R5cGU6IHRoaXMud2F5cG9pbnRUeXBlLFxyXG4gICAgICAgICAgcGxhY2VfbmFtZTogcXVlcnksXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0pO1xyXG5cclxuICAgIGNvbnN0IGdvb2dsZVN1Z2dlc3Rpb25zJDogT2JzZXJ2YWJsZTxXYXlwb2ludFN1Z2dlc3Rpb25bXT4gPSBjb21iaW5lTGF0ZXN0KFtcclxuICAgICAgdGhpcy5pc0ZvY3VzZWQkLFxyXG4gICAgICB0aGlzLnZhbHVlJC5waXBlKGRlYm91bmNlVGltZSh0aGlzLmRlYm91bmNlTXMpLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKSxcclxuICAgIF0pLnBpcGUoXHJcbiAgICAgIHN3aXRjaE1hcCgoW2lzRm9jdXNlZCwgdmFsdWVdKSA9PlxyXG4gICAgICAgIHRoaXMuYXV0b2NvbXBsZXRlU2VydmljZSAmJiBpc0ZvY3VzZWQgJiYgdmFsdWVcclxuICAgICAgICAgID8gdGhpcy5nZXRQbGFjZXNSZXN1bHRzKHZhbHVlKVxyXG4gICAgICAgICAgOiBvZih0aGlzLmVtcHR5U3VnZ2VzdGlvbnMpLFxyXG4gICAgICApLFxyXG4gICAgICBzdGFydFdpdGgodGhpcy5lbXB0eVN1Z2dlc3Rpb25zKSxcclxuICAgICk7XHJcblxyXG4gICAgdGhpcy53YXlwb2ludFN1Z2dlc3Rpb25zJCA9IGNvbWJpbmVMYXRlc3QoW1xyXG4gICAgICB0aGlzLmlzRm9jdXNlZCQsXHJcbiAgICAgIHRoaXMud2F5cG9pbnRzSGlzdG9yeSQsXHJcbiAgICAgIGdvb2dsZVN1Z2dlc3Rpb25zJCxcclxuICAgIF0pLnBpcGUoXHJcbiAgICAgIG1hcCgoW2lzRm9jdXNlZCwgaGlzdG9yeSwgZ29vZ2xlXSkgPT4ge1xyXG4gICAgICAgIGlmICghaXNGb2N1c2VkKSB7XHJcbiAgICAgICAgICByZXR1cm4gdGhpcy5lbXB0eVN1Z2dlc3Rpb25zO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3QgbWVyZ2VkID0gWy4uLihoaXN0b3J5ID8/IFtdKSwgLi4uKGdvb2dsZSA/PyBbXSldO1xyXG5cclxuICAgICAgICByZXR1cm4gbWVyZ2VkLnNsaWNlKDAsIHRoaXMuTUFYX1NVR0dFU1RJT05TKTsgLy8gRHJvcGRvd24gc2hvd3MgbWF4IDEwIGl0ZW1zIHRvdGFsXHJcbiAgICAgIH0pLFxyXG4gICAgICB0YXAoKGNhcHBlZFN1Z2dlc3Rpb25zKSA9PiB7XHJcbiAgICAgICAgdGhpcy5kaXNwbGF5ZWRTdWdnZXN0aW9ucyA9IGNhcHBlZFN1Z2dlc3Rpb25zO1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRJbmRleCA9IGNhcHBlZFN1Z2dlc3Rpb25zPy5sZW5ndGggPyAwIDogLTE7XHJcbiAgICAgIH0pLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgb25DaGFuZ2U6ICh2YWx1ZTogc3RyaW5nKSA9PiB2b2lkID0gKCkgPT4ge1xyXG4gIH07XHJcblxyXG4gIHByaXZhdGUgb25Ub3VjaDogKCkgPT4gdm9pZCA9ICgpID0+IHtcclxuICB9O1xyXG5cclxuICBwcml2YXRlIGdldFBsYWNlc1Jlc3VsdHMocXVlcnk6IHN0cmluZyk6IE9ic2VydmFibGU8V2F5cG9pbnRTdWdnZXN0aW9uW10+IHtcclxuICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZSgob2JzZXJ2ZXIpID0+IHtcclxuICAgICAgdGhpcy5hdXRvY29tcGxldGVTZXJ2aWNlLmdldFBsYWNlUHJlZGljdGlvbnMoXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgaW5wdXQ6IHF1ZXJ5LFxyXG4gICAgICAgICAgY29tcG9uZW50UmVzdHJpY3Rpb25zOiB7Y291bnRyeTogdGhpcy5jb3VudHJ5Q29kZX0sXHJcbiAgICAgICAgICBzZXNzaW9uVG9rZW46IHRoaXMuc2Vzc2lvblRva2VuLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgKHByZWRpY3Rpb25zKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xyXG4gICAgICAgICAgICBvYnNlcnZlci5uZXh0KHRoaXMudG9XYXlwb2ludFN1Z2dlc3Rpb25zKHByZWRpY3Rpb25zKSk7XHJcbiAgICAgICAgICAgIG9ic2VydmVyLmNvbXBsZXRlKCk7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9LFxyXG4gICAgICApO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHRvV2F5cG9pbnRTdWdnZXN0aW9ucyhcclxuICAgIHByZWRpY3Rpb25zOiBBdXRvY29tcGxldGVQcmVkaWN0aW9uW10gfCBudWxsLFxyXG4gICk6IFdheXBvaW50U3VnZ2VzdGlvbltdIHtcclxuICAgIHJldHVybiAoXHJcbiAgICAgIChwcmVkaWN0aW9ucyA/PyBbXSlcclxuICAgICAgICAvLyBEcm9wcyBwcmVkaWN0aW9ucyB3aXRob3V0IGEgcGxhY2VfaWQgYmVjYXVzZSBzZWxlY3Rpb24gYW5kIGJvb2tpbmcgYm90aCByZXF1aXJlIGl0XHJcbiAgICAgICAgLmZpbHRlcihcclxuICAgICAgICAgIChcclxuICAgICAgICAgICAgcHJlZGljdGlvbixcclxuICAgICAgICAgICk6IHByZWRpY3Rpb24gaXMgQXV0b2NvbXBsZXRlUHJlZGljdGlvbiAmIHsgcGxhY2VfaWQ6IHN0cmluZyB9ID0+XHJcbiAgICAgICAgICAgICEhcHJlZGljdGlvbi5wbGFjZV9pZCxcclxuICAgICAgICApXHJcbiAgICAgICAgLm1hcCgocHJlZGljdGlvbikgPT4gKHtcclxuICAgICAgICAgIGFkZGl0aW9uYWxfaW5mbzogcHJlZGljdGlvbi5kZXNjcmlwdGlvbixcclxuICAgICAgICAgIHBsYWNlX2lkOiBwcmVkaWN0aW9uLnBsYWNlX2lkLFxyXG4gICAgICAgICAgcHJlZGljdGlvbl90ZXJtOiBwcmVkaWN0aW9uLnRlcm1zLFxyXG4gICAgICAgIH0pKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIG9uVXNlcklucHV0KHF1ZXJ5OiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMuaW5wdXRRdWVyeSQubmV4dChxdWVyeSk7XHJcbiAgfVxyXG5cclxuICB0cmFja0J5U3VnZ2VzdGlvbihpbmRleDogbnVtYmVyLCBzdWdnZXN0aW9uOiBXYXlwb2ludFN1Z2dlc3Rpb24pOiBzdHJpbmcge1xyXG4gICAgY29uc3QgaWQgPVxyXG4gICAgICBzdWdnZXN0aW9uLnN1Z2dlc3Rpb25faWQgPz9cclxuICAgICAgc3VnZ2VzdGlvbi5wbGFjZV9pZCA/P1xyXG4gICAgICBzdWdnZXN0aW9uLmFkZGl0aW9uYWxfaW5mbyA/P1xyXG4gICAgICBgJHtpbmRleH1gO1xyXG5cclxuICAgIHJldHVybiBzdWdnZXN0aW9uLnByZWRpY3Rpb25fdGVybSA/IGBnb29nbGU6JHtpZH1gIDogYGhpc3Rvcnk6JHtpZH1gO1xyXG4gIH1cclxuXHJcbiAgb25TZWxlY3RTdWdnZXN0aW9uKHN1Z2dlc3Rpb246IFdheXBvaW50U3VnZ2VzdGlvbik6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuaXNSZXNvbHZpbmdQbGFjZSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3Qge2FkZGl0aW9uYWxfaW5mbywgcGxhY2VfaWR9ID0gc3VnZ2VzdGlvbiA/PyB7fTtcclxuXHJcbiAgICBpZiAoIXBsYWNlX2lkKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmlzUmVzb2x2aW5nUGxhY2UgPSB0cnVlO1xyXG4gICAgdGhpcy52YWx1ZSA9IGFkZGl0aW9uYWxfaW5mbztcclxuICAgIHRoaXMuaXNGb2N1c2VkJC5uZXh0KGZhbHNlKTtcclxuXHJcbiAgICB0aGlzLnJlc29sdmVCeVBsYWNlSWQocGxhY2VfaWQsIGFkZGl0aW9uYWxfaW5mbyk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHJlc29sdmVCeVBsYWNlSWQocGxhY2VJZDogc3RyaW5nLCB0ZXh0OiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMucGxhY2VzU2VydmljZS5nZXREZXRhaWxzKFxyXG4gICAgICB7XHJcbiAgICAgICAgcGxhY2VJZCxcclxuICAgICAgICBzZXNzaW9uVG9rZW46IHRoaXMuc2Vzc2lvblRva2VuLFxyXG4gICAgICAgIGZpZWxkczogWydhZGRyZXNzX2NvbXBvbmVudHMnLCAnZ2VvbWV0cnkubG9jYXRpb24nLCAncGxhY2VfaWQnXSxcclxuICAgICAgfSxcclxuICAgICAgKHBsYWNlLCBzdGF0dXMpID0+IHtcclxuICAgICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xyXG4gICAgICAgICAgaWYgKHN0YXR1cyA9PT0gZ29vZ2xlLm1hcHMucGxhY2VzLlBsYWNlc1NlcnZpY2VTdGF0dXMuT0sgJiYgcGxhY2UpIHtcclxuICAgICAgICAgICAgdGhpcy5wbGFjZVJlc3VsdC5lbWl0KHtwbGFjZSwgdGV4dH0pO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgY29uc29sZS53YXJuKCdQbGFjZSBkZXRhaWxzIGxvb2t1cCBmYWlsZWQnLCB7c3RhdHVzLCBwbGFjZUlkfSk7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgdGhpcy5yZXNldFNlc3Npb25Ub2tlbigpO1xyXG4gICAgICAgICAgdGhpcy5pc1Jlc29sdmluZ1BsYWNlID0gZmFsc2U7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0sXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgb25LZXlEb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMuZGlzcGxheWVkU3VnZ2VzdGlvbnM/Lmxlbmd0aCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgc3dpdGNoIChldmVudC5rZXkpIHtcclxuICAgICAgY2FzZSAnQXJyb3dEb3duJzpcclxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRJbmRleCA9XHJcbiAgICAgICAgICAodGhpcy5zZWxlY3RlZEluZGV4ICsgMSkgJSB0aGlzLmRpc3BsYXllZFN1Z2dlc3Rpb25zLmxlbmd0aDtcclxuICAgICAgICBicmVhaztcclxuXHJcbiAgICAgIGNhc2UgJ0Fycm93VXAnOlxyXG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZEluZGV4ID1cclxuICAgICAgICAgICh0aGlzLnNlbGVjdGVkSW5kZXggLSAxICsgdGhpcy5kaXNwbGF5ZWRTdWdnZXN0aW9ucy5sZW5ndGgpICVcclxuICAgICAgICAgIHRoaXMuZGlzcGxheWVkU3VnZ2VzdGlvbnMubGVuZ3RoO1xyXG4gICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgY2FzZSAnRW50ZXInOlxyXG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLnNlbGVjdGVkSW5kZXggPj0gMCkge1xyXG4gICAgICAgICAgdGhpcy5vblNlbGVjdFN1Z2dlc3Rpb24oXHJcbiAgICAgICAgICAgIHRoaXMuZGlzcGxheWVkU3VnZ2VzdGlvbnNbdGhpcy5zZWxlY3RlZEluZGV4XSxcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgY2FzZSAnRXNjYXBlJzpcclxuICAgICAgICB0aGlzLmlzRm9jdXNlZCQubmV4dChmYWxzZSk7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZEluZGV4ID0gLTE7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbkJsdXIoKTogdm9pZCB7XHJcbiAgICB0aGlzLmlzRm9jdXNlZCQubmV4dChmYWxzZSk7XHJcbiAgICB0aGlzLm9uVG91Y2goKTtcclxuICB9XHJcblxyXG4gIG9uRm9jdXMoKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMudmFsdWUgJiYgdGhpcy5hdXRvY29tcGxldGVTZXJ2aWNlKSB7XHJcbiAgICAgIHRoaXMucmVzZXRTZXNzaW9uVG9rZW4oKTtcclxuICAgIH1cclxuXHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMubmdab25lLnJ1bigoKSA9PiB0aGlzLmlzRm9jdXNlZCQubmV4dCh0cnVlKSkpO1xyXG4gIH1cclxuXHJcbiAgd3JpdGVWYWx1ZShuZXh0VmFsdWU6IHN0cmluZyB8IG51bGwgPSAnJyk6IHZvaWQge1xyXG4gICAgY29uc3QgbmV4dCA9IG5leHRWYWx1ZSA/PyAnJztcclxuXHJcbiAgICBpZiAodGhpcy5fdmFsdWUgPT09IG5leHQpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuX3ZhbHVlID0gbmV4dDtcclxuICAgIHRoaXMudmFsdWUkLm5leHQobmV4dCk7XHJcbiAgfVxyXG5cclxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiAodmFsdWU6IHN0cmluZykgPT4gdm9pZCk6IHZvaWQge1xyXG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xyXG4gIH1cclxuXHJcbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46ICgpID0+IHZvaWQpOiB2b2lkIHtcclxuICAgIHRoaXMub25Ub3VjaCA9IGZuO1xyXG4gIH1cclxuXHJcbiAgZGVsZXRlKCk6IHZvaWQge1xyXG4gICAgdGhpcy5kZWxldGVJdGVtLmVtaXQoKTtcclxuICB9XHJcblxyXG4gIGNsZWFyKCk6IHZvaWQge1xyXG4gICAgdGhpcy52YWx1ZSA9ICcnO1xyXG4gICAgdGhpcy5pbnB1dFF1ZXJ5JC5uZXh0KCcnKTtcclxuICAgIHRoaXMub25Ub3VjaCgpO1xyXG4gICAgdGhpcy5tYXRDdXN0b21JbnB1dD8ubmF0aXZlRWxlbWVudD8uZm9jdXMoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaW5pdEdvb2dsZSgpOiB2b2lkIHtcclxuICAgIHRoaXMuYXV0b2NvbXBsZXRlU2VydmljZSA9IG5ldyBnb29nbGUubWFwcy5wbGFjZXMuQXV0b2NvbXBsZXRlU2VydmljZSgpO1xyXG5cclxuICAgIHRoaXMucGxhY2VzU2VydmljZSA9IG5ldyBnb29nbGUubWFwcy5wbGFjZXMuUGxhY2VzU2VydmljZShcclxuICAgICAgZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2JyksXHJcbiAgICApO1xyXG5cclxuICAgIHRoaXMucmVzZXRTZXNzaW9uVG9rZW4oKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgcmVzZXRTZXNzaW9uVG9rZW4oKTogdm9pZCB7XHJcbiAgICB0aGlzLnNlc3Npb25Ub2tlbiA9IG5ldyBnb29nbGUubWFwcy5wbGFjZXMuQXV0b2NvbXBsZXRlU2Vzc2lvblRva2VuKCk7XHJcbiAgfVxyXG59XHJcbiIsIjxlY2Ficy1lbGVtZW50LXdyYXBwZXIgW2RhdGFdPVwiZ2V0RGF0YSgpXCI+XG4gIDxkaXYgY2xhc3M9XCJhdXRvY29tcGxldGUtdWkgdy1mdWxsXCI+XG4gICAgPHNlY3Rpb24gY2xhc3M9XCJmb3JtLWZpZWxkX19pbnB1dC0td3JhcHBlciB3LWZ1bGxcIj5cbiAgICAgIDxpbnB1dCAjbWF0Q3VzdG9tQXV0b2NvbXBsZXRlSW5wdXRcbiAgICAgICAgICAgICBjZGtPdmVybGF5T3JpZ2luXG4gICAgICAgICAgICAgI3RyaWdnZXI9XCJjZGtPdmVybGF5T3JpZ2luXCJcbiAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxuICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJ2YWx1ZVwiXG4gICAgICAgICAgICAgW2lkXT1cIm5hbWVcIlxuICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1maWVsZF9faW5wdXQgdy1mdWxsXCJcbiAgICAgICAgICAgICBhdXRvY29ycmVjdD1cIm9mZlwiXG4gICAgICAgICAgICAgYXV0b2NhcGl0YWxpemU9XCJvZmZcIlxuICAgICAgICAgICAgIHNwZWxsY2hlY2s9XCJvZmZcIlxuICAgICAgICAgICAgIChmb2N1cyk9XCJvbkZvY3VzKClcIlxuICAgICAgICAgICAgIChrZXlkb3duKT1cIm9uS2V5RG93bigkZXZlbnQpXCJcbiAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJvblVzZXJJbnB1dCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAoYmx1cik9XCJvbkJsdXIoKVwiXG4gICAgICAvPlxuICAgICAgPGRpdiAqbmdJZj1cInNob3dTdWZmaXhcIlxuICAgICAgICAgICBjbGFzcz1cImZvcm0tZmllbGRfX2lucHV0LS1zdWZmaXhcIj5cbiAgICAgICAgPG1hdC1pY29uICpuZ0lmPVwic2hvd0RlbGV0ZUl0ZW1cIlxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzdWZmaXggY3Vyc29yLXBvaW50ZXIgZGVsZXRlLWJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAoa2V5ZG93bi5lbnRlcik9XCJkZWxldGUoKVwiXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwiZGVsZXRlKClcIj5cbiAgICAgICAgICBkZWxldGVcbiAgICAgICAgPC9tYXQtaWNvbj5cbiAgICAgICAgPG1hdC1pY29uICpuZ0lmPVwiIXNob3dEZWxldGVJdGVtICYmIHZhbHVlXCJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwic3VmZml4IGN1cnNvci1wb2ludGVyXCJcbiAgICAgICAgICAgICAgICAgIChrZXlkb3duLmVudGVyKT1cImNsZWFyKClcIlxuICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImNsZWFyKClcIj5cbiAgICAgICAgICBjbG9zZVxuICAgICAgICA8L21hdC1pY29uPlxuICAgICAgPC9kaXY+XG4gICAgPC9zZWN0aW9uPlxuICAgIDwhLS0gQ3VzdG9tIGRyb3Bkb3duIC0tPlxuICAgIDxuZy10ZW1wbGF0ZSBjZGtDb25uZWN0ZWRPdmVybGF5XG4gICAgICAgICAgICAgICAgIFtjZGtDb25uZWN0ZWRPdmVybGF5V2lkdGhdPVwidHJpZ2dlci5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGhcIlxuICAgICAgICAgICAgICAgICBbY2RrQ29ubmVjdGVkT3ZlcmxheUZsZXhpYmxlRGltZW5zaW9uc109XCJmYWxzZVwiXG4gICAgICAgICAgICAgICAgIFtjZGtDb25uZWN0ZWRPdmVybGF5T3JpZ2luXT1cInRyaWdnZXJcIlxuICAgICAgICAgICAgICAgICBbY2RrQ29ubmVjdGVkT3ZlcmxheU9wZW5dPVwiaXNGb2N1c2VkJCB8IGFzeW5jXCI+XG4gICAgICA8dWwgY2xhc3M9XCJhdXRvY29tcGxldGUtdWlfX2NvbnRhaW5lclwiPlxuICAgICAgICA8bGkgKm5nRm9yPVwibGV0IHN1Z2dlc3Rpb24gb2Ygd2F5cG9pbnRTdWdnZXN0aW9ucyQgfCBhc3luYzsgbGV0IGkgPSBpbmRleDsgdHJhY2tCeTogdHJhY2tCeVN1Z2dlc3Rpb25cIlxuICAgICAgICAgICAgY2xhc3M9XCJhdXRvY29tcGxldGUtdWktLWl0ZW0gZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuIGhvdmVyOmJnLWdyYXktMTAwXCJcbiAgICAgICAgICAgIFtjbGFzcy5hY3RpdmVdPVwiaSA9PT0gc2VsZWN0ZWRJbmRleFwiXG4gICAgICAgICAgICAobW91c2Vkb3duKT1cIm9uU2VsZWN0U3VnZ2VzdGlvbihzdWdnZXN0aW9uKVwiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhc3VnZ2VzdGlvbj8ucHJlZGljdGlvbl90ZXJtOyBlbHNlIHB1cmVQbGFjZVJlc3VsdFRwbFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInctZnVsbCB0cnVuY2F0ZVwiPlxuICAgICAgICAgICAgICB7eyBzdWdnZXN0aW9uPy5hZGRpdGlvbmFsX2luZm8gfX1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPG1hdC1pY29uIHN2Z0ljb249XCJwaC1yZWd1bGFyOmNsb2NrLWNvdW50ZXJcIlxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidy01IGgtNSB0ZXh0LXhsIHRleHQtZ3JheS00MDAgaG92ZXI6IXRleHQtZ3JheS00MDBcIj5cbiAgICAgICAgICAgIDwvbWF0LWljb24+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICA8bmctdGVtcGxhdGUgI3B1cmVQbGFjZVJlc3VsdFRwbD5cbiAgICAgICAgICAgIDx1bCBjbGFzcz1cInctZnVsbCBmbGV4IGl0ZW1zLWNlbnRlciBnYXAteC0xIGxlYWRpbmctMCBvdmVyZmxvdy1oaWRkZW4gd2hpdGVzcGFjZS1ub3dyYXBcIj5cbiAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgIHt7IHN1Z2dlc3Rpb24/LnByZWRpY3Rpb25fdGVybT8uWzBdPy52YWx1ZSB9fVxuICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICA8bGkgKm5nSWY9XCJzdWdnZXN0aW9uPy5wcmVkaWN0aW9uX3Rlcm0/LlsxXT8udmFsdWVcIlxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0ZXh0LXhzIHRleHQtZ3JheS02MDAgdHJ1bmNhdGVcIj5cbiAgICAgICAgICAgICAgICB7eyBzdWdnZXN0aW9uPy5wcmVkaWN0aW9uX3Rlcm0/LlsxXT8udmFsdWUgfCBzZXBhcmF0b3JBcHBlbmQ6IHN1Z2dlc3Rpb24/LnByZWRpY3Rpb25fdGVybT8uWzJdPy52YWx1ZSB9fVxuICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICA8bGkgKm5nSWY9XCJzdWdnZXN0aW9uPy5wcmVkaWN0aW9uX3Rlcm0/LlsyXT8udmFsdWVcIlxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0ZXh0LXhzIHRleHQtZ3JheS02MDAgZm9udC1zZW1pYm9sZCB0cnVuY2F0ZVwiPlxuICAgICAgICAgICAgICAgIHt7IHN1Z2dlc3Rpb24/LnByZWRpY3Rpb25fdGVybT8uWzJdPy52YWx1ZSB9fVxuICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L2xpPlxuICAgICAgPC91bD5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L2Rpdj5cbjwvZWNhYnMtZWxlbWVudC13cmFwcGVyPlxuIl19
@@ -8139,7 +8139,7 @@ class EcabsPlaceAutocompleteV2Component extends EcabsElementBaseComponent {
8139
8139
  matCustomInput;
8140
8140
  showDeleteItem = false;
8141
8141
  set waypointsHistory(value) {
8142
- this.waypointsHistory$.next(value ?? []);
8142
+ this.waypointsHistory$.next((value ?? []).filter((suggestion) => !!suggestion?.place_id));
8143
8143
  }
8144
8144
  showSuffix = false;
8145
8145
  countryCode = 'MT';
@@ -8220,8 +8220,10 @@ class EcabsPlaceAutocompleteV2Component extends EcabsElementBaseComponent {
8220
8220
  this.selectedIndex = cappedSuggestions?.length ? 0 : -1;
8221
8221
  }));
8222
8222
  }
8223
- onChange = () => { };
8224
- onTouch = () => { };
8223
+ onChange = () => {
8224
+ };
8225
+ onTouch = () => {
8226
+ };
8225
8227
  getPlacesResults(query) {
8226
8228
  return new Observable((observer) => {
8227
8229
  this.autocompleteService.getPlacePredictions({