@acorex/components 7.12.5 → 7.12.6

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.
@@ -1,6 +1,17 @@
1
+ import { InjectionToken } from '@angular/core';
1
2
  import { MXValueComponent } from './value-component.class';
2
3
  import * as i0 from "@angular/core";
4
+ export declare class MXSelectionBridgeService {
5
+ selectedItems: unknown[];
6
+ cacheList: {
7
+ [key: string | number]: unknown;
8
+ };
9
+ static ɵfac: i0.ɵɵFactoryDeclaration<MXSelectionBridgeService, never>;
10
+ static ɵprov: i0.ɵɵInjectableDeclaration<MXSelectionBridgeService>;
11
+ }
12
+ export declare const AX_SELECTION_DATA_TOKEN: InjectionToken<MXSelectionBridgeService>;
3
13
  export declare abstract class MXSelectionValueComponent<T = unknown> extends MXValueComponent<unknown> {
14
+ private dataService;
4
15
  disabledCallback: (e: {
5
16
  item: T;
6
17
  index: number;
@@ -17,12 +28,10 @@ export declare abstract class MXSelectionValueComponent<T = unknown> extends MXV
17
28
  private _multiple;
18
29
  get multiple(): boolean;
19
30
  set multiple(v: boolean);
20
- _selectedItems: unknown[];
21
31
  get selectedItems(): unknown[];
22
32
  internalSetValue(value: unknown): any;
23
33
  emitOnValueChangedEvent(oldValue?: unknown, newValue?: unknown): void;
24
34
  abstract getItemByKey(key: unknown): unknown | Promise<unknown>;
25
- private _cacheList;
26
35
  protected normalizeItemsList(items: unknown[], findBykey?: boolean): unknown[];
27
36
  private normalizeItem;
28
37
  private _normalizeSelectedItems;
@@ -1,17 +1,28 @@
1
1
  import { AXTranslator } from '@acorex/core/translation';
2
2
  import { coerceBooleanProperty } from '@angular/cdk/coercion';
3
- import { Injectable } from '@angular/core';
3
+ import { Injectable, InjectionToken, inject } from '@angular/core';
4
4
  import { MXValueComponent } from './value-component.class';
5
5
  import * as i0 from "@angular/core";
6
+ export class MXSelectionBridgeService {
7
+ constructor() {
8
+ this.selectedItems = [];
9
+ this.cacheList = {};
10
+ }
11
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: MXSelectionBridgeService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
12
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: MXSelectionBridgeService }); }
13
+ }
14
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: MXSelectionBridgeService, decorators: [{
15
+ type: Injectable
16
+ }] });
17
+ export const AX_SELECTION_DATA_TOKEN = new InjectionToken("AX_SELECTION_DATA_TOKEN");
6
18
  export class MXSelectionValueComponent extends MXValueComponent {
7
19
  constructor() {
8
20
  super(...arguments);
21
+ this.dataService = inject(AX_SELECTION_DATA_TOKEN);
9
22
  this._valueField = 'id';
10
23
  this._textField = 'text';
11
24
  this._disabledField = 'disabled';
12
25
  this._multiple = false;
13
- this._selectedItems = [];
14
- this._cacheList = {};
15
26
  }
16
27
  get valueField() {
17
28
  return this._valueField;
@@ -53,7 +64,7 @@ export class MXSelectionValueComponent extends MXValueComponent {
53
64
  });
54
65
  }
55
66
  get selectedItems() {
56
- return this._selectedItems || [];
67
+ return this.dataService.selectedItems || [];
57
68
  }
58
69
  internalSetValue(value) {
59
70
  const isArray = Array.isArray(value);
@@ -86,8 +97,8 @@ export class MXSelectionValueComponent extends MXValueComponent {
86
97
  const cacheKey = `k-${key}`;
87
98
  const hasText = !complex || item[this.textField] != null;
88
99
  //
89
- if (this._cacheList[cacheKey] && this._cacheList[cacheKey][this.textField])
90
- return this._cacheList[cacheKey];
100
+ if (this.dataService.cacheList[cacheKey] && this.dataService.cacheList[cacheKey][this.textField])
101
+ return this.dataService.cacheList[cacheKey];
91
102
  //
92
103
  const obj = {};
93
104
  if (complex && hasText) {
@@ -111,7 +122,7 @@ export class MXSelectionValueComponent extends MXValueComponent {
111
122
  })
112
123
  .finally(() => {
113
124
  obj['isLoading'] = false;
114
- this._cacheList[cacheKey] = obj;
125
+ this.dataService.cacheList[cacheKey] = obj;
115
126
  this.cdr.markForCheck();
116
127
  });
117
128
  }
@@ -122,12 +133,12 @@ export class MXSelectionValueComponent extends MXValueComponent {
122
133
  obj[this.valueField] = complex ? item[this.valueField] : item;
123
134
  }
124
135
  }
125
- this._cacheList[cacheKey] = obj;
136
+ this.dataService.cacheList[cacheKey] = obj;
126
137
  return obj;
127
138
  }
128
139
  _normalizeSelectedItems() {
129
140
  const values = Array.isArray(this.value) ? this.value : this.value != null ? [this.value] : [];
130
- this._selectedItems = values.map((v) => this.normalizeItem(v));
141
+ this.dataService.selectedItems = values.map((v) => this.normalizeItem(v));
131
142
  }
132
143
  unselectItems(...items) {
133
144
  if (!items || items.length === 0) {
@@ -184,8 +195,8 @@ export class MXSelectionValueComponent extends MXValueComponent {
184
195
  return normalizeItem[this.valueField];
185
196
  }
186
197
  clearSelectionCache() {
187
- this._cacheList = {};
188
- this._selectedItems = [];
198
+ this.dataService.cacheList = {};
199
+ this.dataService.selectedItems = [];
189
200
  }
190
201
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: MXSelectionValueComponent, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
191
202
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: MXSelectionValueComponent }); }
@@ -193,4 +204,4 @@ export class MXSelectionValueComponent extends MXValueComponent {
193
204
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: MXSelectionValueComponent, decorators: [{
194
205
  type: Injectable
195
206
  }] });
196
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0aW9uLWJhc2UuY29tcG9uZW50LmNsYXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2NvbW1vbi9zcmMvbGliL2NvbXBvbmVudHMvc2VsZWN0aW9uLWJhc2UuY29tcG9uZW50LmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN4RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDOztBQUczRCxNQUFNLE9BQWdCLHlCQUF1QyxTQUFRLGdCQUF5QjtJQUQ5Rjs7UUFJVSxnQkFBVyxHQUFHLElBQUksQ0FBQztRQVduQixlQUFVLEdBQUcsTUFBTSxDQUFDO1FBV3BCLG1CQUFjLEdBQUcsVUFBVSxDQUFDO1FBVzVCLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFjMUIsbUJBQWMsR0FBYyxFQUFFLENBQUM7UUE4QnZCLGVBQVUsR0FBd0MsRUFBRSxDQUFDO0tBeUg5RDtJQXJNQyxJQUFXLFVBQVU7UUFDbkIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzFCLENBQUM7SUFDRCxJQUFXLFVBQVUsQ0FBQyxDQUFTO1FBQzdCLElBQUksQ0FBQyxTQUFTLENBQUM7WUFDYixJQUFJLEVBQUUsWUFBWTtZQUNsQixLQUFLLEVBQUUsQ0FBQztTQUNULENBQUMsQ0FBQztJQUNMLENBQUM7SUFHRCxJQUFXLFNBQVM7UUFDbEIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQ3pCLENBQUM7SUFDRCxJQUFXLFNBQVMsQ0FBQyxDQUFTO1FBQzVCLElBQUksQ0FBQyxTQUFTLENBQUM7WUFDYixJQUFJLEVBQUUsV0FBVztZQUNqQixL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LGNBQWMsQ0FBQyxJQUFPO1FBQzNCLE9BQU8sQ0FDTCxJQUFJLENBQUMsUUFBUTtZQUNiLHFCQUFxQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsS0FBSyxJQUFJO1lBQ3hELENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQzdFLENBQUM7SUFDSixDQUFDO0lBRVMsY0FBYyxDQUFDLElBQU87UUFDOUIsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQVEsQ0FBQztRQUN0RCxPQUFPLGFBQWEsQ0FBQyxXQUFXLENBQUM7WUFDL0IsQ0FBQyxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMscUJBQXFCLENBQUM7WUFDekMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksYUFBYSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUN0RSxDQUFDO0lBRVMsUUFBUSxDQUFDLElBQU87UUFDeEIsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQVEsQ0FBQztRQUN0RCxPQUFPLGFBQWEsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVTLG1CQUFtQjtRQUMzQixJQUFJLENBQUMsVUFBVSxHQUFHLEVBQUUsQ0FBQztRQUNyQixJQUFJLENBQUMsY0FBYyxHQUFHLEVBQUUsQ0FBQztJQUMzQixDQUFDOzhHQXhNbUIseUJBQXlCO2tIQUF6Qix5QkFBeUI7OzJGQUF6Qix5QkFBeUI7a0JBRDlDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWFRyYW5zbGF0b3IgfSBmcm9tICdAYWNvcmV4L2NvcmUvdHJhbnNsYXRpb24nO1xuaW1wb3J0IHsgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1YVmFsdWVDb21wb25lbnQgfSBmcm9tICcuL3ZhbHVlLWNvbXBvbmVudC5jbGFzcyc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBNWFNlbGVjdGlvblZhbHVlQ29tcG9uZW50PFQgPSB1bmtub3duPiBleHRlbmRzIE1YVmFsdWVDb21wb25lbnQ8dW5rbm93bj4ge1xuICBkaXNhYmxlZENhbGxiYWNrOiAoZTogeyBpdGVtOiBUOyBpbmRleDogbnVtYmVyIH0pID0+IGJvb2xlYW47XG5cbiAgcHJpdmF0ZSBfdmFsdWVGaWVsZCA9ICdpZCc7XG4gIHB1YmxpYyBnZXQgdmFsdWVGaWVsZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl92YWx1ZUZpZWxkO1xuICB9XG4gIHB1YmxpYyBzZXQgdmFsdWVGaWVsZCh2OiBzdHJpbmcpIHtcbiAgICB0aGlzLnNldE9wdGlvbih7XG4gICAgICBuYW1lOiAndmFsdWVGaWVsZCcsXG4gICAgICB2YWx1ZTogdixcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX3RleHRGaWVsZCA9ICd0ZXh0JztcbiAgcHVibGljIGdldCB0ZXh0RmllbGQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fdGV4dEZpZWxkO1xuICB9XG4gIHB1YmxpYyBzZXQgdGV4dEZpZWxkKHY6IHN0cmluZykge1xuICAgIHRoaXMuc2V0T3B0aW9uKHtcbiAgICAgIG5hbWU6ICd0ZXh0RmllbGQnLFxuICAgICAgdmFsdWU6IHYsXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF9kaXNhYmxlZEZpZWxkID0gJ2Rpc2FibGVkJztcbiAgcHVibGljIGdldCBkaXNhYmxlZEZpZWxkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX2Rpc2FibGVkRmllbGQ7XG4gIH1cbiAgcHVibGljIHNldCBkaXNhYmxlZEZpZWxkKHY6IHN0cmluZykge1xuICAgIHRoaXMuc2V0T3B0aW9uKHtcbiAgICAgIG5hbWU6ICdkaXNhYmxlZEZpZWxkJyxcbiAgICAgIHZhbHVlOiB2LFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfbXVsdGlwbGUgPSBmYWxzZTtcbiAgcHVibGljIGdldCBtdWx0aXBsZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fbXVsdGlwbGU7XG4gIH1cbiAgcHVibGljIHNldCBtdWx0aXBsZSh2OiBib29sZWFuKSB7XG4gICAgdGhpcy5zZXRPcHRpb24oe1xuICAgICAgbmFtZTogJ211bHRpcGxlJyxcbiAgICAgIHZhbHVlOiB2LFxuICAgICAgYWZ0ZXJDYWxsYmFjazogKCkgPT4ge1xuICAgICAgICB0aGlzLmNsZWFyKGZhbHNlKTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICBfc2VsZWN0ZWRJdGVtczogdW5rbm93bltdID0gW107XG4gIGdldCBzZWxlY3RlZEl0ZW1zKCk6IHVua25vd25bXSB7XG4gICAgcmV0dXJuIHRoaXMuX3NlbGVjdGVkSXRlbXMgfHwgW107XG4gIH1cblxuICBvdmVycmlkZSBpbnRlcm5hbFNldFZhbHVlKHZhbHVlOiB1bmtub3duKSB7XG4gICAgY29uc3QgaXNBcnJheSA9IEFycmF5LmlzQXJyYXkodmFsdWUpO1xuICAgIGlmICh2YWx1ZSA9PSBudWxsIHx8IChpc0FycmF5ICYmIHZhbHVlLmxlbmd0aCA9PSAwKSkge1xuICAgICAgcmV0dXJuIHRoaXMubXVsdGlwbGUgPyBbXSA6IG51bGw7XG4gICAgfVxuICAgIGNvbnN0IG5vcm1hbGl6ZWRJdGVtcyA9IGlzQXJyYXlcbiAgICAgID8gdGhpcy5ub3JtYWxpemVJdGVtc0xpc3QodmFsdWUsIHRydWUpXG4gICAgICA6IHRoaXMubm9ybWFsaXplSXRlbXNMaXN0KFt2YWx1ZV0sIHRydWUpO1xuXG4gICAgaWYgKG5vcm1hbGl6ZWRJdGVtcy5sZW5ndGggPT0gMCkge1xuICAgICAgcmV0dXJuIHRoaXMubXVsdGlwbGUgPyBbXSA6IG51bGw7XG4gICAgfVxuICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMubXVsdGlwbGVcbiAgICAgID8gbm9ybWFsaXplZEl0ZW1zLm1hcCgoYykgPT4gY1t0aGlzLnZhbHVlRmllbGRdKVxuICAgICAgOiBub3JtYWxpemVkSXRlbXNbMF1bdGhpcy52YWx1ZUZpZWxkXTtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgb3ZlcnJpZGUgZW1pdE9uVmFsdWVDaGFuZ2VkRXZlbnQob2xkVmFsdWU/OiB1bmtub3duLCBuZXdWYWx1ZT86IHVua25vd24pIHtcbiAgICB0aGlzLl9ub3JtYWxpemVTZWxlY3RlZEl0ZW1zKCk7XG4gICAgc3VwZXIuZW1pdE9uVmFsdWVDaGFuZ2VkRXZlbnQob2xkVmFsdWUsIG5ld1ZhbHVlKTtcbiAgfVxuXG4gIGFic3RyYWN0IGdldEl0ZW1CeUtleShrZXk6IHVua25vd24pOiB1bmtub3duIHwgUHJvbWlzZTx1bmtub3duPjtcblxuICBwcml2YXRlIF9jYWNoZUxpc3Q6IHsgW2tleTogc3RyaW5nIHwgbnVtYmVyXTogdW5rbm93biB9ID0ge307XG5cbiAgcHJvdGVjdGVkIG5vcm1hbGl6ZUl0ZW1zTGlzdChpdGVtczogdW5rbm93bltdLCBmaW5kQnlrZXkgPSBmYWxzZSk6IHVua25vd25bXSB7XG4gICAgaWYgKGl0ZW1zID09IG51bGwpIHJldHVybiBbXTtcbiAgICByZXR1cm4gaXRlbXMuZmlsdGVyKChjKSA9PiBjICE9IG51bGwpLm1hcCgoaSkgPT4gdGhpcy5ub3JtYWxpemVJdGVtKGksIGZpbmRCeWtleSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBub3JtYWxpemVJdGVtKGl0ZW06IHVua25vd24sIGZpbmRCeWtleSA9IGZhbHNlKTogdW5rbm93biB7XG4gICAgY29uc3QgY29tcGxleCA9IHR5cGVvZiBpdGVtID09ICdvYmplY3QnO1xuICAgIGNvbnN0IGtleSA9IGNvbXBsZXggPyBpdGVtW3RoaXMudmFsdWVGaWVsZF0gOiBgJHtpdGVtfWA7XG4gICAgY29uc3QgY2FjaGVLZXkgPSBgay0ke2tleX1gO1xuICAgIGNvbnN0IGhhc1RleHQgPSAhY29tcGxleCB8fCBpdGVtW3RoaXMudGV4dEZpZWxkXSAhPSBudWxsO1xuICAgIC8vXG4gICAgaWYgKHRoaXMuX2NhY2hlTGlzdFtjYWNoZUtleV0gJiYgdGhpcy5fY2FjaGVMaXN0W2NhY2hlS2V5XVt0aGlzLnRleHRGaWVsZF0pXG4gICAgICByZXR1cm4gdGhpcy5fY2FjaGVMaXN0W2NhY2hlS2V5XTtcbiAgICAvL1xuICAgIGNvbnN0IG9iajogdW5rbm93biA9IHt9O1xuICAgIGlmIChjb21wbGV4ICYmIGhhc1RleHQpIHtcbiAgICAgIE9iamVjdC5hc3NpZ24ob2JqLCBpdGVtKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgZXhpc3RzSXRlbSA9IGZpbmRCeWtleSA/IHRoaXMuZ2V0SXRlbUJ5S2V5KGtleSkgOiBudWxsO1xuICAgICAgaWYgKGV4aXN0c0l0ZW0gJiYgZXhpc3RzSXRlbSBpbnN0YW5jZW9mIFByb21pc2UpIHtcbiAgICAgICAgb2JqW3RoaXMudmFsdWVGaWVsZF0gPSBrZXk7XG4gICAgICAgIG9ialsnaXNMb2FkaW5nJ10gPSB0cnVlO1xuICAgICAgICAvL1xuICAgICAgICBleGlzdHNJdGVtXG4gICAgICAgICAgLnRoZW4oKHIpID0+IHtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgciA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgICAgICAgb2JqW3RoaXMudmFsdWVGaWVsZF0gPSByW3RoaXMudmFsdWVGaWVsZF07XG4gICAgICAgICAgICAgIG9ialt0aGlzLnRleHRGaWVsZF0gPSByW3RoaXMudGV4dEZpZWxkXTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIG9ialt0aGlzLnZhbHVlRmllbGRdID0gciB8fCBrZXk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSlcbiAgICAgICAgICAuZmluYWxseSgoKSA9PiB7XG4gICAgICAgICAgICBvYmpbJ2lzTG9hZGluZyddID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLl9jYWNoZUxpc3RbY2FjaGVLZXldID0gb2JqO1xuICAgICAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgICAgICAgfSk7XG4gICAgICB9IGVsc2UgaWYgKGV4aXN0c0l0ZW0pIHtcbiAgICAgICAgb2JqW3RoaXMudmFsdWVGaWVsZF0gPSBjb21wbGV4ID8gZXhpc3RzSXRlbVt0aGlzLnZhbHVlRmllbGRdIDogZXhpc3RzSXRlbTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG9ialt0aGlzLnZhbHVlRmllbGRdID0gY29tcGxleCA/IGl0ZW1bdGhpcy52YWx1ZUZpZWxkXSA6IGl0ZW07XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuX2NhY2hlTGlzdFtjYWNoZUtleV0gPSBvYmo7XG4gICAgcmV0dXJuIG9iajtcbiAgfVxuXG4gIHByaXZhdGUgX25vcm1hbGl6ZVNlbGVjdGVkSXRlbXMoKSB7XG4gICAgY29uc3QgdmFsdWVzID0gQXJyYXkuaXNBcnJheSh0aGlzLnZhbHVlKSA/IHRoaXMudmFsdWUgOiB0aGlzLnZhbHVlICE9IG51bGwgPyBbdGhpcy52YWx1ZV0gOiBbXTtcbiAgICB0aGlzLl9zZWxlY3RlZEl0ZW1zID0gdmFsdWVzLm1hcCgodikgPT4gdGhpcy5ub3JtYWxpemVJdGVtKHYpKTtcbiAgfVxuXG4gIHB1YmxpYyB1bnNlbGVjdEl0ZW1zKC4uLml0ZW1zOiBUW10pIHtcbiAgICBpZiAoIWl0ZW1zIHx8IGl0ZW1zLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhpcy5jb21taXRWYWx1ZShbXSwgdHJ1ZSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IG5vcm1hbGl6ZUl0ZW1zID0gQXJyYXkuaXNBcnJheShpdGVtcylcbiAgICAgID8gdGhpcy5ub3JtYWxpemVJdGVtc0xpc3QoaXRlbXMpXG4gICAgICA6IFt0aGlzLm5vcm1hbGl6ZUl0ZW0oaXRlbXMpXTtcbiAgICBjb25zdCBuZXdTZWxlY3RlZEl0ZW1zID0gdGhpcy5zZWxlY3RlZEl0ZW1zLmZpbHRlcihcbiAgICAgIChpKSA9PiAhbm9ybWFsaXplSXRlbXMuc29tZSgobikgPT4gblt0aGlzLnZhbHVlRmllbGRdID09IGlbdGhpcy52YWx1ZUZpZWxkXSksXG4gICAgKTtcbiAgICB0aGlzLmNvbW1pdFZhbHVlKG5ld1NlbGVjdGVkSXRlbXMsIHRydWUpO1xuICB9XG5cbiAgcHVibGljIHNlbGVjdEl0ZW1zKC4uLml0ZW1zOiBUW10pIHtcbiAgICBpZiAoaXRlbXMgJiYgaXRlbXMubGVuZ3RoKSB7XG4gICAgICBsZXQgbmV3U2VsZWN0ZWRJdGVtcyA9IEFycmF5LmlzQXJyYXkodGhpcy52YWx1ZSkgPyB0aGlzLnZhbHVlIDogW3RoaXMudmFsdWVdO1xuICAgICAgY29uc3Qgbm9ybWFsaXplSXRlbXMgPSBBcnJheS5pc0FycmF5KGl0ZW1zKVxuICAgICAgICA/IHRoaXMubm9ybWFsaXplSXRlbXNMaXN0KGl0ZW1zKVxuICAgICAgICA6IFt0aGlzLm5vcm1hbGl6ZUl0ZW0oaXRlbXMpXTtcbiAgICAgIGlmICh0aGlzLm11bHRpcGxlKSB7XG4gICAgICAgIG5ld1NlbGVjdGVkSXRlbXMgPSBbLi4ubmV3U2VsZWN0ZWRJdGVtcywgLi4ubm9ybWFsaXplSXRlbXNdO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbmV3U2VsZWN0ZWRJdGVtcyA9IG5vcm1hbGl6ZUl0ZW1zO1xuICAgICAgfVxuICAgICAgdGhpcy5jb21taXRWYWx1ZShuZXdTZWxlY3RlZEl0ZW1zLCB0cnVlKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgdG9nZ2xlU2VsZWN0KC4uLml0ZW1zOiBUW10pIHtcbiAgICBpdGVtcz8uZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgaWYgKHRoaXMubXVsdGlwbGUpIHtcbiAgICAgICAgdGhpcy5pc0l0ZW1TZWxlY3RlZChpdGVtKSA/IHRoaXMudW5zZWxlY3RJdGVtcyhpdGVtKSA6IHRoaXMuc2VsZWN0SXRlbXMoaXRlbSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnNlbGVjdEl0ZW1zKGl0ZW0pO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGlzSXRlbVNlbGVjdGVkKGl0ZW06IFQpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5zZWxlY3RlZEl0ZW1zLnNvbWUoKGMpID0+IGNbdGhpcy52YWx1ZUZpZWxkXSA9PT0gdGhpcy5ub3JtYWxpemVJdGVtKGl0ZW0pW3RoaXMudmFsdWVGaWVsZF0pO1xuICB9XG5cbiAgcHVibGljIGlzSXRlbURpc2FibGVkKGl0ZW06IFQpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5kaXNhYmxlZCB8fFxuICAgICAgY29lcmNlQm9vbGVhblByb3BlcnR5KGl0ZW1bdGhpcy5kaXNhYmxlZEZpZWxkXSkgPT09IHRydWUgfHxcbiAgICAgICh0aGlzLmRpc2FibGVkQ2FsbGJhY2sgPyB0aGlzLmRpc2FibGVkQ2FsbGJhY2soeyBpdGVtLCBpbmRleDogLTEgfSkgOiBmYWxzZSlcbiAgICApO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldERpc3BsYXlUZXh0KGl0ZW06IFQpIHtcbiAgICBjb25zdCBub3JtYWxpemVJdGVtID0gdGhpcy5ub3JtYWxpemVJdGVtKGl0ZW0pIGFzIGFueTtcbiAgICByZXR1cm4gbm9ybWFsaXplSXRlbVsnaXNMb2FkaW5nJ11cbiAgICAgID8gQVhUcmFuc2xhdG9yLmdldCgnbGF5b3V0LmxvYWRpbmcudGV4dCcpXG4gICAgICA6IG5vcm1hbGl6ZUl0ZW1bdGhpcy50ZXh0RmllbGRdIHx8IG5vcm1hbGl6ZUl0ZW1bdGhpcy52YWx1ZUZpZWxkXTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXRWYWx1ZShpdGVtOiBUKSB7XG4gICAgY29uc3Qgbm9ybWFsaXplSXRlbSA9IHRoaXMubm9ybWFsaXplSXRlbShpdGVtKSBhcyBhbnk7XG4gICAgcmV0dXJuIG5vcm1hbGl6ZUl0ZW1bdGhpcy52YWx1ZUZpZWxkXTtcbiAgfVxuXG4gIHByb3RlY3RlZCBjbGVhclNlbGVjdGlvbkNhY2hlKCkge1xuICAgIHRoaXMuX2NhY2hlTGlzdCA9IHt9O1xuICAgIHRoaXMuX3NlbGVjdGVkSXRlbXMgPSBbXTtcbiAgfVxufVxuIl19
207
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0aW9uLWJhc2UuY29tcG9uZW50LmNsYXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2NvbW1vbi9zcmMvbGliL2NvbXBvbmVudHMvc2VsZWN0aW9uLWJhc2UuY29tcG9uZW50LmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN4RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0seUJBQXlCLENBQUM7O0FBSTNELE1BQU0sT0FBTyx3QkFBd0I7SUFEckM7UUFFUyxrQkFBYSxHQUFjLEVBQUUsQ0FBQztRQUM5QixjQUFTLEdBQXdDLEVBQUUsQ0FBQztLQUM1RDs4R0FIWSx3QkFBd0I7a0hBQXhCLHdCQUF3Qjs7MkZBQXhCLHdCQUF3QjtrQkFEcEMsVUFBVTs7QUFPWCxNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBRyxJQUFJLGNBQWMsQ0FBMkIseUJBQXlCLENBQUMsQ0FBQztBQUcvRyxNQUFNLE9BQWdCLHlCQUF1QyxTQUFRLGdCQUF5QjtJQUQ5Rjs7UUFHVSxnQkFBVyxHQUFHLE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO1FBSTlDLGdCQUFXLEdBQUcsSUFBSSxDQUFDO1FBV25CLGVBQVUsR0FBRyxNQUFNLENBQUM7UUFXcEIsbUJBQWMsR0FBRyxVQUFVLENBQUM7UUFXNUIsY0FBUyxHQUFHLEtBQUssQ0FBQztLQW9LM0I7SUFwTUMsSUFBVyxVQUFVO1FBQ25CLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUMxQixDQUFDO0lBQ0QsSUFBVyxVQUFVLENBQUMsQ0FBUztRQUM3QixJQUFJ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LElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRVMsbUJBQW1CO1FBQzNCLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztRQUNoQyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsR0FBRyxFQUFFLENBQUM7SUFDdEMsQ0FBQzs4R0ExTW1CLHlCQUF5QjtrSEFBekIseUJBQXlCOzsyRkFBekIseUJBQXlCO2tCQUQ5QyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhUcmFuc2xhdG9yIH0gZnJvbSAnQGFjb3JleC9jb3JlL3RyYW5zbGF0aW9uJztcbmltcG9ydCB7IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3Rpb25Ub2tlbiwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNWFZhbHVlQ29tcG9uZW50IH0gZnJvbSAnLi92YWx1ZS1jb21wb25lbnQuY2xhc3MnO1xuXG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBNWFNlbGVjdGlvbkJyaWRnZVNlcnZpY2Uge1xuICBwdWJsaWMgc2VsZWN0ZWRJdGVtczogdW5rbm93bltdID0gW107XG4gIHB1YmxpYyBjYWNoZUxpc3Q6IHsgW2tleTogc3RyaW5nIHwgbnVtYmVyXTogdW5rbm93biB9ID0ge307XG59XG5cblxuZXhwb3J0IGNvbnN0IEFYX1NFTEVDVElPTl9EQVRBX1RPS0VOID0gbmV3IEluamVjdGlvblRva2VuPE1YU2VsZWN0aW9uQnJpZGdlU2VydmljZT4oXCJBWF9TRUxFQ1RJT05fREFUQV9UT0tFTlwiKTtcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIE1YU2VsZWN0aW9uVmFsdWVDb21wb25lbnQ8VCA9IHVua25vd24+IGV4dGVuZHMgTVhWYWx1ZUNvbXBvbmVudDx1bmtub3duPiB7XG5cbiAgcHJpdmF0ZSBkYXRhU2VydmljZSA9IGluamVjdChBWF9TRUxFQ1RJT05fREFUQV9UT0tFTik7XG5cbiAgZGlzYWJsZWRDYWxsYmFjazogKGU6IHsgaXRlbTogVDsgaW5kZXg6IG51bWJlciB9KSA9PiBib29sZWFuO1xuXG4gIHByaXZhdGUgX3ZhbHVlRmllbGQgPSAnaWQnO1xuICBwdWJsaWMgZ2V0IHZhbHVlRmllbGQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fdmFsdWVGaWVsZDtcbiAgfVxuICBwdWJsaWMgc2V0IHZhbHVlRmllbGQodjogc3RyaW5nKSB7XG4gICAgdGhpcy5zZXRPcHRpb24oe1xuICAgICAgbmFtZTogJ3ZhbHVlRmllbGQnLFxuICAgICAgdmFsdWU6IHYsXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF90ZXh0RmllbGQgPSAndGV4dCc7XG4gIHB1YmxpYyBnZXQgdGV4dEZpZWxkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX3RleHRGaWVsZDtcbiAgfVxuICBwdWJsaWMgc2V0IHRleHRGaWVsZCh2OiBzdHJpbmcpIHtcbiAgICB0aGlzLnNldE9wdGlvbih7XG4gICAgICBuYW1lOiAndGV4dEZpZWxkJyxcbiAgICAgIHZhbHVlOiB2LFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfZGlzYWJsZWRGaWVsZCA9ICdkaXNhYmxlZCc7XG4gIHB1YmxpYyBnZXQgZGlzYWJsZWRGaWVsZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9kaXNhYmxlZEZpZWxkO1xuICB9XG4gIHB1YmxpYyBzZXQgZGlzYWJsZWRGaWVsZCh2OiBzdHJpbmcpIHtcbiAgICB0aGlzLnNldE9wdGlvbih7XG4gICAgICBuYW1lOiAnZGlzYWJsZWRGaWVsZCcsXG4gICAgICB2YWx1ZTogdixcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX211bHRpcGxlID0gZmFsc2U7XG4gIHB1YmxpYyBnZXQgbXVsdGlwbGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX211bHRpcGxlO1xuICB9XG4gIHB1YmxpYyBzZXQgbXVsdGlwbGUodjogYm9vbGVhbikge1xuICAgIHRoaXMuc2V0T3B0aW9uKHtcbiAgICAgIG5hbWU6ICdtdWx0aXBsZScsXG4gICAgICB2YWx1ZTogdixcbiAgICAgIGFmdGVyQ2FsbGJhY2s6ICgpID0+IHtcbiAgICAgICAgdGhpcy5jbGVhcihmYWxzZSk7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgZ2V0IHNlbGVjdGVkSXRlbXMoKTogdW5rbm93bltdIHtcbiAgICByZXR1cm4gdGhpcy5kYXRhU2VydmljZS5zZWxlY3RlZEl0ZW1zIHx8IFtdO1xuICB9XG5cbiAgb3ZlcnJpZGUgaW50ZXJuYWxTZXRWYWx1ZSh2YWx1ZTogdW5rbm93bikge1xuICAgIGNvbnN0IGlzQXJyYXkgPSBBcnJheS5pc0FycmF5KHZhbHVlKTtcbiAgICBpZiAodmFsdWUgPT0gbnVsbCB8fCAoaXNBcnJheSAmJiB2YWx1ZS5sZW5ndGggPT0gMCkpIHtcbiAgICAgIHJldHVybiB0aGlzLm11bHRpcGxlID8gW10gOiBudWxsO1xuICAgIH1cbiAgICBjb25zdCBub3JtYWxpemVkSXRlbXMgPSBpc0FycmF5XG4gICAgICA/IHRoaXMubm9ybWFsaXplSXRlbXNMaXN0KHZhbHVlLCB0cnVlKVxuICAgICAgOiB0aGlzLm5vcm1hbGl6ZUl0ZW1zTGlzdChbdmFsdWVdLCB0cnVlKTtcblxuICAgIGlmIChub3JtYWxpemVkSXRlbXMubGVuZ3RoID09IDApIHtcbiAgICAgIHJldHVybiB0aGlzLm11bHRpcGxlID8gW10gOiBudWxsO1xuICAgIH1cbiAgICBjb25zdCByZXN1bHQgPSB0aGlzLm11bHRpcGxlXG4gICAgICA/IG5vcm1hbGl6ZWRJdGVtcy5tYXAoKGMpID0+IGNbdGhpcy52YWx1ZUZpZWxkXSlcbiAgICAgIDogbm9ybWFsaXplZEl0ZW1zWzBdW3RoaXMudmFsdWVGaWVsZF07XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIG92ZXJyaWRlIGVtaXRPblZhbHVlQ2hhbmdlZEV2ZW50KG9sZFZhbHVlPzogdW5rbm93biwgbmV3VmFsdWU/OiB1bmtub3duKSB7XG4gICAgdGhpcy5fbm9ybWFsaXplU2VsZWN0ZWRJdGVtcygpO1xuICAgIHN1cGVyLmVtaXRPblZhbHVlQ2hhbmdlZEV2ZW50KG9sZFZhbHVlLCBuZXdWYWx1ZSk7XG4gIH1cblxuICBhYnN0cmFjdCBnZXRJdGVtQnlLZXkoa2V5OiB1bmtub3duKTogdW5rbm93biB8IFByb21pc2U8dW5rbm93bj47XG5cblxuXG4gIHByb3RlY3RlZCBub3JtYWxpemVJdGVtc0xpc3QoaXRlbXM6IHVua25vd25bXSwgZmluZEJ5a2V5ID0gZmFsc2UpOiB1bmtub3duW10ge1xuICAgIGlmIChpdGVtcyA9PSBudWxsKSByZXR1cm4gW107XG4gICAgcmV0dXJuIGl0ZW1zLmZpbHRlcigoYykgPT4gYyAhPSBudWxsKS5tYXAoKGkpID0+IHRoaXMubm9ybWFsaXplSXRlbShpLCBmaW5kQnlrZXkpKTtcbiAgfVxuXG4gIHByaXZhdGUgbm9ybWFsaXplSXRlbShpdGVtOiB1bmtub3duLCBmaW5kQnlrZXkgPSBmYWxzZSk6IHVua25vd24ge1xuICAgIGNvbnN0IGNvbXBsZXggPSB0eXBlb2YgaXRlbSA9PSAnb2JqZWN0JztcbiAgICBjb25zdCBrZXkgPSBjb21wbGV4ID8gaXRlbVt0aGlzLnZhbHVlRmllbGRdIDogYCR7aXRlbX1gO1xuICAgIGNvbnN0IGNhY2hlS2V5ID0gYGstJHtrZXl9YDtcbiAgICBjb25zdCBoYXNUZXh0ID0gIWNvbXBsZXggfHwgaXRlbVt0aGlzLnRleHRGaWVsZF0gIT0gbnVsbDtcbiAgICAvL1xuICAgIGlmICh0aGlzLmRhdGFTZXJ2aWNlLmNhY2hlTGlzdFtjYWNoZUtleV0gJiYgdGhpcy5kYXRhU2VydmljZS5jYWNoZUxpc3RbY2FjaGVLZXldW3RoaXMudGV4dEZpZWxkXSlcbiAgICAgIHJldHVybiB0aGlzLmRhdGFTZXJ2aWNlLmNhY2hlTGlzdFtjYWNoZUtleV07XG4gICAgLy9cbiAgICBjb25zdCBvYmo6IHVua25vd24gPSB7fTtcbiAgICBpZiAoY29tcGxleCAmJiBoYXNUZXh0KSB7XG4gICAgICBPYmplY3QuYXNzaWduKG9iaiwgaXRlbSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IGV4aXN0c0l0ZW0gPSBmaW5kQnlrZXkgPyB0aGlzLmdldEl0ZW1CeUtleShrZXkpIDogbnVsbDtcbiAgICAgIGlmIChleGlzdHNJdGVtICYmIGV4aXN0c0l0ZW0gaW5zdGFuY2VvZiBQcm9taXNlKSB7XG4gICAgICAgIG9ialt0aGlzLnZhbHVlRmllbGRdID0ga2V5O1xuICAgICAgICBvYmpbJ2lzTG9hZGluZyddID0gdHJ1ZTtcbiAgICAgICAgLy9cbiAgICAgICAgZXhpc3RzSXRlbVxuICAgICAgICAgIC50aGVuKChyKSA9PiB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIHIgPT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgICAgIG9ialt0aGlzLnZhbHVlRmllbGRdID0gclt0aGlzLnZhbHVlRmllbGRdO1xuICAgICAgICAgICAgICBvYmpbdGhpcy50ZXh0RmllbGRdID0gclt0aGlzLnRleHRGaWVsZF07XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBvYmpbdGhpcy52YWx1ZUZpZWxkXSA9IHIgfHwga2V5O1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pXG4gICAgICAgICAgLmZpbmFsbHkoKCkgPT4ge1xuICAgICAgICAgICAgb2JqWydpc0xvYWRpbmcnXSA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5kYXRhU2VydmljZS5jYWNoZUxpc3RbY2FjaGVLZXldID0gb2JqO1xuICAgICAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgICAgICAgfSk7XG4gICAgICB9IGVsc2UgaWYgKGV4aXN0c0l0ZW0pIHtcbiAgICAgICAgb2JqW3RoaXMudmFsdWVGaWVsZF0gPSBjb21wbGV4ID8gZXhpc3RzSXRlbVt0aGlzLnZhbHVlRmllbGRdIDogZXhpc3RzSXRlbTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG9ialt0aGlzLnZhbHVlRmllbGRdID0gY29tcGxleCA/IGl0ZW1bdGhpcy52YWx1ZUZpZWxkXSA6IGl0ZW07XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuZGF0YVNlcnZpY2UuY2FjaGVMaXN0W2NhY2hlS2V5XSA9IG9iajtcbiAgICByZXR1cm4gb2JqO1xuICB9XG5cbiAgcHJpdmF0ZSBfbm9ybWFsaXplU2VsZWN0ZWRJdGVtcygpIHtcbiAgICBjb25zdCB2YWx1ZXMgPSBBcnJheS5pc0FycmF5KHRoaXMudmFsdWUpID8gdGhpcy52YWx1ZSA6IHRoaXMudmFsdWUgIT0gbnVsbCA/IFt0aGlzLnZhbHVlXSA6IFtdO1xuICAgIHRoaXMuZGF0YVNlcnZpY2Uuc2VsZWN0ZWRJdGVtcyA9IHZhbHVlcy5tYXAoKHYpID0+IHRoaXMubm9ybWFsaXplSXRlbSh2KSk7XG4gIH1cblxuICBwdWJsaWMgdW5zZWxlY3RJdGVtcyguLi5pdGVtczogVFtdKSB7XG4gICAgaWYgKCFpdGVtcyB8fCBpdGVtcy5sZW5ndGggPT09IDApIHtcbiAgICAgIHRoaXMuY29tbWl0VmFsdWUoW10sIHRydWUpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBub3JtYWxpemVJdGVtcyA9IEFycmF5LmlzQXJyYXkoaXRlbXMpXG4gICAgICA/IHRoaXMubm9ybWFsaXplSXRlbXNMaXN0KGl0ZW1zKVxuICAgICAgOiBbdGhpcy5ub3JtYWxpemVJdGVtKGl0ZW1zKV07XG4gICAgY29uc3QgbmV3U2VsZWN0ZWRJdGVtcyA9IHRoaXMuc2VsZWN0ZWRJdGVtcy5maWx0ZXIoXG4gICAgICAoaSkgPT4gIW5vcm1hbGl6ZUl0ZW1zLnNvbWUoKG4pID0+IG5bdGhpcy52YWx1ZUZpZWxkXSA9PSBpW3RoaXMudmFsdWVGaWVsZF0pLFxuICAgICk7XG4gICAgdGhpcy5jb21taXRWYWx1ZShuZXdTZWxlY3RlZEl0ZW1zLCB0cnVlKTtcbiAgfVxuXG4gIHB1YmxpYyBzZWxlY3RJdGVtcyguLi5pdGVtczogVFtdKSB7XG4gICAgaWYgKGl0ZW1zICYmIGl0ZW1zLmxlbmd0aCkge1xuICAgICAgbGV0IG5ld1NlbGVjdGVkSXRlbXMgPSBBcnJheS5pc0FycmF5KHRoaXMudmFsdWUpID8gdGhpcy52YWx1ZSA6IFt0aGlzLnZhbHVlXTtcbiAgICAgIGNvbnN0IG5vcm1hbGl6ZUl0ZW1zID0gQXJyYXkuaXNBcnJheShpdGVtcylcbiAgICAgICAgPyB0aGlzLm5vcm1hbGl6ZUl0ZW1zTGlzdChpdGVtcylcbiAgICAgICAgOiBbdGhpcy5ub3JtYWxpemVJdGVtKGl0ZW1zKV07XG4gICAgICBpZiAodGhpcy5tdWx0aXBsZSkge1xuICAgICAgICBuZXdTZWxlY3RlZEl0ZW1zID0gWy4uLm5ld1NlbGVjdGVkSXRlbXMsIC4uLm5vcm1hbGl6ZUl0ZW1zXTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG5ld1NlbGVjdGVkSXRlbXMgPSBub3JtYWxpemVJdGVtcztcbiAgICAgIH1cbiAgICAgIHRoaXMuY29tbWl0VmFsdWUobmV3U2VsZWN0ZWRJdGVtcywgdHJ1ZSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHRvZ2dsZVNlbGVjdCguLi5pdGVtczogVFtdKSB7XG4gICAgaXRlbXM/LmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgIGlmICh0aGlzLm11bHRpcGxlKSB7XG4gICAgICAgIHRoaXMuaXNJdGVtU2VsZWN0ZWQoaXRlbSkgPyB0aGlzLnVuc2VsZWN0SXRlbXMoaXRlbSkgOiB0aGlzLnNlbGVjdEl0ZW1zKGl0ZW0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5zZWxlY3RJdGVtcyhpdGVtKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBpc0l0ZW1TZWxlY3RlZChpdGVtOiBUKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWRJdGVtcy5zb21lKChjKSA9PiBjW3RoaXMudmFsdWVGaWVsZF0gPT09IHRoaXMubm9ybWFsaXplSXRlbShpdGVtKVt0aGlzLnZhbHVlRmllbGRdKTtcbiAgfVxuXG4gIHB1YmxpYyBpc0l0ZW1EaXNhYmxlZChpdGVtOiBUKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMuZGlzYWJsZWQgfHxcbiAgICAgIGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eShpdGVtW3RoaXMuZGlzYWJsZWRGaWVsZF0pID09PSB0cnVlIHx8XG4gICAgICAodGhpcy5kaXNhYmxlZENhbGxiYWNrID8gdGhpcy5kaXNhYmxlZENhbGxiYWNrKHsgaXRlbSwgaW5kZXg6IC0xIH0pIDogZmFsc2UpXG4gICAgKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXREaXNwbGF5VGV4dChpdGVtOiBUKSB7XG4gICAgY29uc3Qgbm9ybWFsaXplSXRlbSA9IHRoaXMubm9ybWFsaXplSXRlbShpdGVtKSBhcyBhbnk7XG4gICAgcmV0dXJuIG5vcm1hbGl6ZUl0ZW1bJ2lzTG9hZGluZyddXG4gICAgICA/IEFYVHJhbnNsYXRvci5nZXQoJ2xheW91dC5sb2FkaW5nLnRleHQnKVxuICAgICAgOiBub3JtYWxpemVJdGVtW3RoaXMudGV4dEZpZWxkXSB8fCBub3JtYWxpemVJdGVtW3RoaXMudmFsdWVGaWVsZF07XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0VmFsdWUoaXRlbTogVCkge1xuICAgIGNvbnN0IG5vcm1hbGl6ZUl0ZW0gPSB0aGlzLm5vcm1hbGl6ZUl0ZW0oaXRlbSkgYXMgYW55O1xuICAgIHJldHVybiBub3JtYWxpemVJdGVtW3RoaXMudmFsdWVGaWVsZF07XG4gIH1cblxuICBwcm90ZWN0ZWQgY2xlYXJTZWxlY3Rpb25DYWNoZSgpIHtcbiAgICB0aGlzLmRhdGFTZXJ2aWNlLmNhY2hlTGlzdCA9IHt9O1xuICAgIHRoaXMuZGF0YVNlcnZpY2Uuc2VsZWN0ZWRJdGVtcyA9IFtdO1xuICB9XG59XG4iXX0=
@@ -1,6 +1,6 @@
1
- import { AXComponent, AXDataSource, AXFocusableComponent, AXListDataSource, AXValuableComponent, MXSelectionValueComponent, convertArrayToDataSource, } from '@acorex/components/common';
1
+ import { AXComponent, AXDataSource, AXFocusableComponent, AXListDataSource, AXValuableComponent, MXSelectionValueComponent, convertArrayToDataSource, AX_SELECTION_DATA_TOKEN, MXSelectionBridgeService } from '@acorex/components/common';
2
2
  import { CdkVirtualScrollViewport } from '@angular/cdk/scrolling';
3
- import { ChangeDetectionStrategy, Component, EventEmitter, HostBinding, HostListener, Input, Output, TemplateRef, ViewChild, ViewEncapsulation, forwardRef, } from '@angular/core';
3
+ import { ChangeDetectionStrategy, Component, EventEmitter, HostBinding, HostListener, Input, Optional, Output, SkipSelf, TemplateRef, ViewChild, ViewEncapsulation, forwardRef, } from '@angular/core';
4
4
  import { NG_VALUE_ACCESSOR } from '@angular/forms';
5
5
  import * as i0 from "@angular/core";
6
6
  import * as i1 from "@angular/common";
@@ -127,6 +127,13 @@ export class AXListComponent extends MXSelectionValueComponent {
127
127
  useExisting: forwardRef(() => AXListComponent),
128
128
  multi: true,
129
129
  },
130
+ {
131
+ provide: AX_SELECTION_DATA_TOKEN,
132
+ useFactory: (existingService) => {
133
+ return existingService || new MXSelectionBridgeService();
134
+ },
135
+ deps: [[new Optional(), new SkipSelf(), AX_SELECTION_DATA_TOKEN]]
136
+ }
130
137
  ], viewQueries: [{ propertyName: "viewport", first: true, predicate: CdkVirtualScrollViewport, descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"list-container\" cdkVirtualScrollingElement>\n <ng-content select=\"ax-header\"></ng-content>\n <cdk-virtual-scroll-viewport [itemSize]=\"itemHeight\" [style.--item-height]=\"itemHeight+'px'\"\n (scrolledIndexChange)=\"_handleOnscrolledIndexChange($event)\">\n <ul>\n <!-- Item Template -->\n <ng-container *cdkVirtualFor=\"let item of listDataSource;let i = index; trackBy: trackByIdx\">\n <ng-container *ngIf=\"item;else loadingTpl\">\n <li [class.ax-state-selected]=\"isItemSelected(item)\" class=\"list-item\"\n [class.ax-state-disabled]=\"isItemDisabled(item)\" [attr.tabindex]=\"i\"\n (click)=\"_handleOnItemClick($event, item)\" [attr.data-id]=\"getValue(item)\">\n <!-- Custom Item Template -->\n <ng-container *ngIf=\"itemTemplate;else defaultItemTpl\">\n <ng-container *ngTemplateOutlet=\"itemTemplate;context: { $implicit: { data:item } }\">\n </ng-container>\n </ng-container>\n <!-- Default Item Template -->\n <ng-template #defaultItemTpl>\n <ng-container *ngIf=\"item;else loadingTpl\">\n <div class=\"ax-label-container\">\n <input class=\"ax-checkbox\" *ngIf=\"multiple && checkbox\" type=\"checkbox\"\n [checked]=\"isItemSelected(item)\" [disabled]=\"isItemDisabled(item)\"\n tabindex=\"0\" />\n <span\n [class.ax-checkbox-label]=\"multiple && checkbox\">{{getDisplayText(item)}}</span>\n </div>\n <i class=\"ax-icon ax-icon-done ax-selected-icon\" *ngIf=\"isItemSelected(item) \"></i>\n </ng-container>\n </ng-template>\n </li>\n </ng-container>\n </ng-container>\n </ul>\n </cdk-virtual-scroll-viewport>\n <ng-content select=\"ax-footer\"></ng-content>\n</div>\n<!-- Loading Template -->\n<ng-template #loadingTpl>\n <!-- Custom Loading Template -->\n <ng-container *ngIf=\"loadingTemplate;else defaultLoadingTpl\">\n <ng-container *ngTemplateOutlet=\"loadingTemplate\">\n </ng-container>\n </ng-container>\n <!-- Default Loading Template -->\n <ng-template #defaultLoadingTpl>\n <li>{{'layout.loading.text' | trans}}</li>\n </ng-template>\n</ng-template>\n<!-- Empty Template -->\n<ng-container *ngIf=\"emptyTemplate && hasItems===false && isLoading===false\">\n <div class=\"empty-container\">\n <ng-container *ngTemplateOutlet=\"emptyTemplate\"></ng-container>\n </div>\n</ng-container>", styles: ["ax-list{display:block;height:100%;width:100%;font-size:.875rem;line-height:1.25rem}ax-list .list-container{display:flex;height:100%;flex-direction:column}ax-list .empty-container{display:flex;height:var(--ax-size-default);width:100%;align-items:center;justify-content:center;padding-left:.75rem;padding-right:.75rem}ax-list.ax-default .cdk-virtual-scroll-viewport ul li{position:relative;display:flex;height:var(--ax-size-default);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;justify-content:space-between;padding-inline-end:1rem;padding-inline-start:.75rem;font-size:.875rem;line-height:1.25rem}ax-list.ax-default .cdk-virtual-scroll-viewport ul li:focus,ax-list.ax-default .cdk-virtual-scroll-viewport ul li:focus-within,ax-list.ax-default .cdk-virtual-scroll-viewport ul li:focus-visible{outline-width:2px;outline-offset:-4px;outline-color:rgba(var(--ax-color-primary),1)}ax-list.ax-default .cdk-virtual-scroll-viewport ul li .ax-label-container{display:flex;align-items:center}ax-list.ax-default .cdk-virtual-scroll-viewport ul li .ax-checkbox-label{margin-inline-start:.5rem}ax-list.ax-default .cdk-virtual-scroll-viewport ul li .ax-selected-icon{font-size:1.5rem;line-height:2rem;--tw-text-opacity: 1;color:rgba(var(--ax-color-primary),var(--tw-text-opacity))}ax-list.ax-default .cdk-virtual-scroll-viewport ul li.ax-state-disabled{cursor:not-allowed;opacity:.5}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.CdkFixedSizeVirtualScroll, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: ["itemSize", "minBufferPx", "maxBufferPx"] }, { kind: "directive", type: i2.CdkVirtualForOf, selector: "[cdkVirtualFor][cdkVirtualForOf]", inputs: ["cdkVirtualForOf", "cdkVirtualForTrackBy", "cdkVirtualForTemplate", "cdkVirtualForTemplateCacheSize"] }, { kind: "component", type: i2.CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }, { kind: "directive", type: i2.CdkVirtualScrollableElement, selector: "[cdkVirtualScrollingElement]" }, { kind: "pipe", type: i3.AXTranslatorPipe, name: "trans" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
131
138
  }
132
139
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: AXListComponent, decorators: [{
@@ -150,6 +157,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImpor
150
157
  useExisting: forwardRef(() => AXListComponent),
151
158
  multi: true,
152
159
  },
160
+ {
161
+ provide: AX_SELECTION_DATA_TOKEN,
162
+ useFactory: (existingService) => {
163
+ return existingService || new MXSelectionBridgeService();
164
+ },
165
+ deps: [[new Optional(), new SkipSelf(), AX_SELECTION_DATA_TOKEN]]
166
+ }
153
167
  ], template: "<div class=\"list-container\" cdkVirtualScrollingElement>\n <ng-content select=\"ax-header\"></ng-content>\n <cdk-virtual-scroll-viewport [itemSize]=\"itemHeight\" [style.--item-height]=\"itemHeight+'px'\"\n (scrolledIndexChange)=\"_handleOnscrolledIndexChange($event)\">\n <ul>\n <!-- Item Template -->\n <ng-container *cdkVirtualFor=\"let item of listDataSource;let i = index; trackBy: trackByIdx\">\n <ng-container *ngIf=\"item;else loadingTpl\">\n <li [class.ax-state-selected]=\"isItemSelected(item)\" class=\"list-item\"\n [class.ax-state-disabled]=\"isItemDisabled(item)\" [attr.tabindex]=\"i\"\n (click)=\"_handleOnItemClick($event, item)\" [attr.data-id]=\"getValue(item)\">\n <!-- Custom Item Template -->\n <ng-container *ngIf=\"itemTemplate;else defaultItemTpl\">\n <ng-container *ngTemplateOutlet=\"itemTemplate;context: { $implicit: { data:item } }\">\n </ng-container>\n </ng-container>\n <!-- Default Item Template -->\n <ng-template #defaultItemTpl>\n <ng-container *ngIf=\"item;else loadingTpl\">\n <div class=\"ax-label-container\">\n <input class=\"ax-checkbox\" *ngIf=\"multiple && checkbox\" type=\"checkbox\"\n [checked]=\"isItemSelected(item)\" [disabled]=\"isItemDisabled(item)\"\n tabindex=\"0\" />\n <span\n [class.ax-checkbox-label]=\"multiple && checkbox\">{{getDisplayText(item)}}</span>\n </div>\n <i class=\"ax-icon ax-icon-done ax-selected-icon\" *ngIf=\"isItemSelected(item) \"></i>\n </ng-container>\n </ng-template>\n </li>\n </ng-container>\n </ng-container>\n </ul>\n </cdk-virtual-scroll-viewport>\n <ng-content select=\"ax-footer\"></ng-content>\n</div>\n<!-- Loading Template -->\n<ng-template #loadingTpl>\n <!-- Custom Loading Template -->\n <ng-container *ngIf=\"loadingTemplate;else defaultLoadingTpl\">\n <ng-container *ngTemplateOutlet=\"loadingTemplate\">\n </ng-container>\n </ng-container>\n <!-- Default Loading Template -->\n <ng-template #defaultLoadingTpl>\n <li>{{'layout.loading.text' | trans}}</li>\n </ng-template>\n</ng-template>\n<!-- Empty Template -->\n<ng-container *ngIf=\"emptyTemplate && hasItems===false && isLoading===false\">\n <div class=\"empty-container\">\n <ng-container *ngTemplateOutlet=\"emptyTemplate\"></ng-container>\n </div>\n</ng-container>", styles: ["ax-list{display:block;height:100%;width:100%;font-size:.875rem;line-height:1.25rem}ax-list .list-container{display:flex;height:100%;flex-direction:column}ax-list .empty-container{display:flex;height:var(--ax-size-default);width:100%;align-items:center;justify-content:center;padding-left:.75rem;padding-right:.75rem}ax-list.ax-default .cdk-virtual-scroll-viewport ul li{position:relative;display:flex;height:var(--ax-size-default);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;justify-content:space-between;padding-inline-end:1rem;padding-inline-start:.75rem;font-size:.875rem;line-height:1.25rem}ax-list.ax-default .cdk-virtual-scroll-viewport ul li:focus,ax-list.ax-default .cdk-virtual-scroll-viewport ul li:focus-within,ax-list.ax-default .cdk-virtual-scroll-viewport ul li:focus-visible{outline-width:2px;outline-offset:-4px;outline-color:rgba(var(--ax-color-primary),1)}ax-list.ax-default .cdk-virtual-scroll-viewport ul li .ax-label-container{display:flex;align-items:center}ax-list.ax-default .cdk-virtual-scroll-viewport ul li .ax-checkbox-label{margin-inline-start:.5rem}ax-list.ax-default .cdk-virtual-scroll-viewport ul li .ax-selected-icon{font-size:1.5rem;line-height:2rem;--tw-text-opacity: 1;color:rgba(var(--ax-color-primary),var(--tw-text-opacity))}ax-list.ax-default .cdk-virtual-scroll-viewport ul li.ax-state-disabled{cursor:not-allowed;opacity:.5}\n"] }]
154
168
  }], propDecorators: { dataSource: [{
155
169
  type: Input
@@ -175,4 +189,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImpor
175
189
  type: HostBinding,
176
190
  args: ['class']
177
191
  }] } });
178
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvbGlzdC9zcmMvbGliL2xpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2xpc3Qvc3JjL2xpYi9saXN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxXQUFXLEVBQ1gsWUFBWSxFQUVaLG9CQUFvQixFQUNwQixnQkFBZ0IsRUFDaEIsbUJBQW1CLEVBQ25CLHlCQUF5QixFQUN6Qix3QkFBd0IsR0FDekIsTUFBTSwyQkFBMkIsQ0FBQztBQUNuQyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNsRSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osV0FBVyxFQUNYLFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUNOLFdBQVcsRUFDWCxTQUFTLEVBQ1QsaUJBQWlCLEVBQ2pCLFVBQVUsR0FDWCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7QUFtQ25ELE1BQU0sT0FBTyxlQUFnQixTQUFRLHlCQUF5QjtJQTdCOUQ7O1FBK0JFLGVBQVUsR0FBMEIsd0JBQXdCLENBQUMsRUFBRSxDQUFDLENBQUM7UUFHakUsZUFBVSxHQUFvQixFQUFFLENBQUM7UUFZakMsMkJBQXNCLEdBQ3BCLElBQUksWUFBWSxFQUE0QixDQUFDO1FBRy9DLGFBQVEsR0FBRyxJQUFJLENBQUM7UUFHTixjQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFDbkIsY0FBUyxHQUFHLENBQUMsQ0FBQztRQUNkLGtCQUFhLEdBQUcsS0FBSyxDQUFDO0tBc0gvQjtJQWpIQyxVQUFVLENBQUMsQ0FBQztRQUNWLE9BQU8sQ0FBQyxDQUFDO0lBQ1gsQ0FBQztJQUVELFFBQVE7UUFDTixLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDakIsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLGdCQUFnQixDQUFVO1lBQ2xELE1BQU0sRUFBRSxJQUFJLENBQUMsVUFBVTtTQUN4QixDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUM3RCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztRQUN4QixDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUN0RCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQyxDQUFDO1lBQ3BDLFVBQVUsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2QsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ2hCLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUNWLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGtCQUFrQixDQUFDLENBQWEsRUFBRSxJQUFTO1FBQ3pDLElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2xDLENBQUMsQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUNuQixDQUFDLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDcEIsT0FBTztTQUNSO1FBQ0QsSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQzdCLE9BQU87U0FDUjtRQUNELElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDMUIsQ0FBQztJQUdELGNBQWMsQ0FBQyxDQUFnQjtRQUM3QixJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxXQUFXLElBQUksQ0FBQyxDQUFDLElBQUksS0FBSyxTQUFTLENBQUMsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ3JFLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNwRCxDQUFDLENBQUMsY0FBYyxFQUFFLENBQUM7U0FDcEI7UUFDRCxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxPQUFPLElBQUksQ0FBQyxDQUFDLElBQUksS0FBSyxPQUFPLENBQUMsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQy9ELElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO2dCQUNsQyxDQUFDLENBQUMsY0FBYyxFQUFFLENBQUM7Z0JBQ25CLENBQUMsQ0FBQyxlQUFlLEVBQUUsQ0FBQztnQkFDcEIsT0FBTzthQUNSO1lBQ0QsTUFBTSxFQUFFLEdBQUcsUUFBUSxDQUFDLGFBQWEsRUFBRSxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsT0FBTyxFQUFFLEVBQUUsQ0FBQztZQUM5RCxJQUFJLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ3RCLENBQUMsQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUNuQixDQUFDLENBQUMsZUFBZSxFQUFFLENBQUM7U0FDckI7SUFDSCxDQUFDO0lBRU8sY0FBYyxDQUFDLElBQVk7UUFDakMsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN2RCxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBaUIsQ0FBQyxDQUFDLENBQUM7UUFDeEQsTUFBTSxPQUFPLEdBQ1gsUUFBUSxDQUFDLGFBQWEsRUFBRSxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLHNCQUFzQixDQUFDLElBQUksRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2xGLE1BQU0sSUFBSSxHQUFHLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsc0JBQXNCLENBQWdCLENBQUM7UUFDdEcsSUFBSSxJQUFJLEVBQUU7WUFDUixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7U0FDZDtJQUNILENBQUM7SUFFUyw0QkFBNEIsQ0FBQyxDQUFTO1FBQzlDLElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDO1FBQ25CLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUM7WUFDL0IsU0FBUyxFQUFFLElBQUk7WUFDZixLQUFLLEVBQUUsSUFBSSxDQUFDLFNBQVM7WUFDckIsaUJBQWlCLEVBQUUsSUFBSTtTQUN4QixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUNJLFdBQVc7UUFDYixNQUFNLE1BQU0sR0FBRyxZQUFZLENBQUM7UUFDNUIsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztJQUN6QyxDQUFDO0lBRUQsWUFBWSxDQUFDLEdBQVk7UUFDdkIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRU0sTUFBTTtRQUNYLElBQUksQ0FBQyxRQUFRLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUNsQyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDNUMsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFO1lBQ3RCLElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDO1lBQzNCLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztTQUNkO0lBQ0gsQ0FBQztJQUVNLE9BQU87UUFDWixJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztRQUMzQixJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ2hDLENBQUM7SUFFTSxhQUFhLENBQUMsS0FBYTtRQUNoQyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRVEsS0FBSztRQUNaLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdkQsTUFBTSxTQUFTLEdBQ2IsSUFBSSxDQUFDLGFBQWEsQ0FBYyxzQkFBc0IsQ0FBQztZQUN2RCxJQUFJLENBQUMsYUFBYSxDQUFjLGNBQWMsQ0FBQyxDQUFDO1FBQ2xELElBQUksU0FBUyxFQUFFO1lBQ2IsU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDO1NBQ25CO2FBQU07WUFDTCxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztTQUMzQjtJQUNILENBQUM7OEdBaEpVLGVBQWU7a0dBQWYsZUFBZSw0dEJBWGY7WUFDVCxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLGVBQWUsRUFBRTtZQUN0RCxFQUFFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxXQUFXLEVBQUUsZUFBZSxFQUFFO1lBQy9ELEVBQUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLFdBQVcsRUFBRSxlQUFlLEVBQUU7WUFDOUQ7Z0JBQ0UsT0FBTyxFQUFFLGlCQUFpQjtnQkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxlQUFlLENBQUM7Z0JBQzlDLEtBQUssRUFBRSxJQUFJO2FBQ1o7U0FDRixvRUErQlUsd0JBQXdCLHVFQ3pGckMsbzdGQXFEZTs7MkZET0YsZUFBZTtrQkE3QjNCLFNBQVM7K0JBQ0UsU0FBUyxtQkFHRix1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJLFVBQzdCO3dCQUNOLElBQUk7d0JBQ0osTUFBTTt3QkFDTixVQUFVO3dCQUNWLFVBQVU7d0JBQ1YsWUFBWTt3QkFDWixXQUFXO3dCQUNYLGVBQWU7d0JBQ2YsVUFBVTt3QkFDVixlQUFlO3FCQUNoQixXQUNRLENBQUMsZ0JBQWdCLEVBQUUsZ0JBQWdCLEVBQUUsZ0JBQWdCLEVBQUUsUUFBUSxFQUFFLFNBQVMsQ0FBQyxhQUN6RTt3QkFDVCxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsV0FBVyxpQkFBaUIsRUFBRTt3QkFDdEQsRUFBRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsV0FBVyxpQkFBaUIsRUFBRTt3QkFDL0QsRUFBRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsV0FBVyxpQkFBaUIsRUFBRTt3QkFDOUQ7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsZ0JBQWdCLENBQUM7NEJBQzlDLEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGOzhCQUlELFVBQVU7c0JBRFQsS0FBSztnQkFJTixVQUFVO3NCQURULEtBQUs7Z0JBSU4sWUFBWTtzQkFEWCxLQUFLO2dCQUlOLGFBQWE7c0JBRFosS0FBSztnQkFJTixlQUFlO3NCQURkLEtBQUs7Z0JBSU4sc0JBQXNCO3NCQURyQixNQUFNO2dCQUtQLFFBQVE7c0JBRFAsS0FBSztnQkFVRSxRQUFRO3NCQURmLFNBQVM7dUJBQUMsd0JBQXdCO2dCQW9DbkMsY0FBYztzQkFEYixZQUFZO3VCQUFDLFNBQVMsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkEyQy9CLFdBQVc7c0JBRGQsV0FBVzt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQVhDb21wb25lbnQsXG4gIEFYRGF0YVNvdXJjZSxcbiAgQVhFdmVudCxcbiAgQVhGb2N1c2FibGVDb21wb25lbnQsXG4gIEFYTGlzdERhdGFTb3VyY2UsXG4gIEFYVmFsdWFibGVDb21wb25lbnQsXG4gIE1YU2VsZWN0aW9uVmFsdWVDb21wb25lbnQsXG4gIGNvbnZlcnRBcnJheVRvRGF0YVNvdXJjZSxcbn0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2NvbW1vbic7XG5pbXBvcnQgeyBDZGtWaXJ0dWFsU2Nyb2xsVmlld3BvcnQgfSBmcm9tICdAYW5ndWxhci9jZGsvc2Nyb2xsaW5nJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdEJpbmRpbmcsXG4gIEhvc3RMaXN0ZW5lcixcbiAgSW5wdXQsXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NoaWxkLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgZm9yd2FyZFJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuZXhwb3J0IGludGVyZmFjZSBBWExpc3RTY3JvbGxJbmRleENoYW5nZWQgZXh0ZW5kcyBBWEV2ZW50IHtcbiAgaW5kZXg6IG51bWJlcjtcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXgtbGlzdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9saXN0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbGlzdC5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgaW5wdXRzOiBbXG4gICAgJ2lkJyxcbiAgICAnbmFtZScsXG4gICAgJ2Rpc2FibGVkJyxcbiAgICAncmVhZG9ubHknLFxuICAgICd2YWx1ZUZpZWxkJyxcbiAgICAndGV4dEZpZWxkJyxcbiAgICAnZGlzYWJsZWRGaWVsZCcsXG4gICAgJ211bHRpcGxlJyxcbiAgICAnc2VsZWN0aW9uTW9kZScsXG4gIF0sXG4gIG91dHB1dHM6IFsnb25WYWx1ZUNoYW5nZWQnLCAnZGlzYWJsZWRDaGFuZ2UnLCAncmVhZE9ubHlDaGFuZ2UnLCAnb25CbHVyJywgJ29uRm9jdXMnXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgeyBwcm92aWRlOiBBWENvbXBvbmVudCwgdXNlRXhpc3Rpbmc6IEFYTGlzdENvbXBvbmVudCB9LFxuICAgIHsgcHJvdmlkZTogQVhGb2N1c2FibGVDb21wb25lbnQsIHVzZUV4aXN0aW5nOiBBWExpc3RDb21wb25lbnQgfSxcbiAgICB7IHByb3ZpZGU6IEFYVmFsdWFibGVDb21wb25lbnQsIHVzZUV4aXN0aW5nOiBBWExpc3RDb21wb25lbnQgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEFYTGlzdENvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBBWExpc3RDb21wb25lbnQgZXh0ZW5kcyBNWFNlbGVjdGlvblZhbHVlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KClcbiAgZGF0YVNvdXJjZTogQVhEYXRhU291cmNlPHVua25vd24+ID0gY29udmVydEFycmF5VG9EYXRhU291cmNlKFtdKTtcblxuICBASW5wdXQoKVxuICBpdGVtSGVpZ2h0OiBudW1iZXIgfCAnYXV0bycgPSA0MDtcblxuICBASW5wdXQoKVxuICBpdGVtVGVtcGxhdGU6IFRlbXBsYXRlUmVmPHVua25vd24+O1xuXG4gIEBJbnB1dCgpXG4gIGVtcHR5VGVtcGxhdGU6IFRlbXBsYXRlUmVmPHVua25vd24+O1xuXG4gIEBJbnB1dCgpXG4gIGxvYWRpbmdUZW1wbGF0ZTogVGVtcGxhdGVSZWY8dW5rbm93bj47XG5cbiAgQE91dHB1dCgpXG4gIG9uU2Nyb2xsZWRJbmRleENoYW5nZWQ6IEV2ZW50RW1pdHRlcjxBWExpc3RTY3JvbGxJbmRleENoYW5nZWQ+ID1cbiAgICBuZXcgRXZlbnRFbWl0dGVyPEFYTGlzdFNjcm9sbEluZGV4Q2hhbmdlZD4oKTtcblxuICBASW5wdXQoKVxuICBjaGVja2JveCA9IHRydWU7XG5cbiAgcHJvdGVjdGVkIGxpc3REYXRhU291cmNlOiBBWExpc3REYXRhU291cmNlPHVua25vd24+O1xuICBwcm90ZWN0ZWQgaXNMb2FkaW5nID0gdHJ1ZTtcbiAgcHJvdGVjdGVkIGhhc0l0ZW1zID0gZmFsc2U7XG4gIHByaXZhdGUgbGFzdEluZGV4ID0gMDtcbiAgcHJpdmF0ZSBwb3N0cG9uZUZvY3VzID0gZmFsc2U7XG5cbiAgQFZpZXdDaGlsZChDZGtWaXJ0dWFsU2Nyb2xsVmlld3BvcnQpXG4gIHByaXZhdGUgdmlld3BvcnQ6IENka1ZpcnR1YWxTY3JvbGxWaWV3cG9ydDtcblxuICB0cmFja0J5SWR4KGkpIHtcbiAgICByZXR1cm4gaTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgdGhpcy5saXN0RGF0YVNvdXJjZSA9IG5ldyBBWExpc3REYXRhU291cmNlPHVua25vd24+KHtcbiAgICAgIHNvdXJjZTogdGhpcy5kYXRhU291cmNlLFxuICAgIH0pO1xuICAgIHRoaXMubGlzdERhdGFTb3VyY2Uuc291cmNlLm9uTG9hZGluZ0NoYW5nZWQuc3Vic2NyaWJlKChkYXRhKSA9PiB7XG4gICAgICB0aGlzLmlzTG9hZGluZyA9IGRhdGE7XG4gICAgfSk7XG4gICAgdGhpcy5saXN0RGF0YVNvdXJjZS5zb3VyY2Uub25DaGFuZ2VkLnN1YnNjcmliZSgoZGF0YSkgPT4ge1xuICAgICAgdGhpcy5oYXNJdGVtcyA9IGRhdGEudG90YWxDb3VudCA+IDA7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy5yZW5kZXIoKTtcbiAgICAgIH0sIDEwMCk7XG4gICAgfSk7XG4gIH1cblxuICBfaGFuZGxlT25JdGVtQ2xpY2soZTogTW91c2VFdmVudCwgaXRlbTogYW55KSB7XG4gICAgaWYgKHRoaXMucmVhZG9ubHkgfHwgdGhpcy5kaXNhYmxlZCkge1xuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKHRoaXMuaXNJdGVtRGlzYWJsZWQoaXRlbSkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy50b2dnbGVTZWxlY3QoaXRlbSk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdrZXlkb3duJywgWyckZXZlbnQnXSlcbiAgX2hhbmRsZUtleWRvd24oZTogS2V5Ym9hcmRFdmVudCkge1xuICAgIGlmICgoZS5jb2RlID09PSAnQXJyb3dEb3duJyB8fCBlLmNvZGUgPT09ICdBcnJvd1VwJykgJiYgdGhpcy5oYXNJdGVtcykge1xuICAgICAgdGhpcy5mb2N1c0l0ZW1CeU5hdihlLmtleSA9PT0gJ0Fycm93RG93bicgPyAxIDogLTEpO1xuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH1cbiAgICBpZiAoKGUuY29kZSA9PT0gJ1NwYWNlJyB8fCBlLmNvZGUgPT09ICdFbnRlcicpICYmIHRoaXMuaGFzSXRlbXMpIHtcbiAgICAgIGlmICh0aGlzLnJlYWRvbmx5IHx8IHRoaXMuZGlzYWJsZWQpIHtcbiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBjb25zdCBpZCA9IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ/LmNsb3Nlc3QoJ2xpJyk/LmRhdGFzZXQ/LmlkO1xuICAgICAgdGhpcy50b2dnbGVTZWxlY3QoaWQpO1xuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGZvY3VzSXRlbUJ5TmF2KHNpZ246IC0xIHwgMSk6IHZvaWQge1xuICAgIGNvbnN0IGxpc3QgPSB0aGlzLmdldEhvc3RFbGVtZW50KCkucXVlcnlTZWxlY3RvcigndWwnKTtcbiAgICBjb25zdCBmbiA9IChzKSA9PiBsaXN0LnF1ZXJ5U2VsZWN0b3I8SFRNTERpdkVsZW1lbnQ+KHMpO1xuICAgIGNvbnN0IGl0ZW1EaXY6IEhUTUxFbGVtZW50ID1cbiAgICAgIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ/LmNsb3Nlc3QoJ2xpJykgfHwgZm4oYGxpLmF4LXN0YXRlLXNlbGVjdGVkYCkgfHwgZm4oYGxpYCk7XG4gICAgY29uc3QgbmV4dCA9IChzaWduID09IDEgPyBpdGVtRGl2Lm5leHRFbGVtZW50U2libGluZyA6IGl0ZW1EaXYucHJldmlvdXNFbGVtZW50U2libGluZykgYXMgSFRNTEVsZW1lbnQ7XG4gICAgaWYgKG5leHQpIHtcbiAgICAgIG5leHQuZm9jdXMoKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgX2hhbmRsZU9uc2Nyb2xsZWRJbmRleENoYW5nZShlOiBudW1iZXIpIHtcbiAgICB0aGlzLmxhc3RJbmRleCA9IGU7XG4gICAgdGhpcy5vblNjcm9sbGVkSW5kZXhDaGFuZ2VkLmVtaXQoe1xuICAgICAgY29tcG9uZW50OiB0aGlzLFxuICAgICAgaW5kZXg6IHRoaXMubGFzdEluZGV4LFxuICAgICAgaXNVc2VySW50ZXJhY3Rpb246IHRydWUsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogIEBpZ25vcmVcbiAgICovXG4gIEBIb3N0QmluZGluZygnY2xhc3MnKVxuICBnZXQgX19ob3N0Q2xhc3MoKTogc3RyaW5nIHtcbiAgICBjb25zdCBfY2xhc3MgPSBgYXgtZGVmYXVsdGA7XG4gICAgcmV0dXJuIHRoaXMuaXRlbVRlbXBsYXRlID8gJycgOiBfY2xhc3M7XG4gIH1cblxuICBnZXRJdGVtQnlLZXkoa2V5OiB1bmtub3duKTogUHJvbWlzZTx1bmtub3duPiB8IHVua25vd24ge1xuICAgIHJldHVybiB0aGlzLmRhdGFTb3VyY2UuZmluZChrZXkpO1xuICB9XG5cbiAgcHVibGljIHJlbmRlcigpIHtcbiAgICB0aGlzLnZpZXdwb3J0LmNoZWNrVmlld3BvcnRTaXplKCk7XG4gICAgdGhpcy52aWV3cG9ydC5zY3JvbGxUb0luZGV4KHRoaXMubGFzdEluZGV4KTtcbiAgICBpZiAodGhpcy5wb3N0cG9uZUZvY3VzKSB7XG4gICAgICB0aGlzLnBvc3Rwb25lRm9jdXMgPSBmYWxzZTtcbiAgICAgIHRoaXMuZm9jdXMoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgcmVmcmVzaCgpIHtcbiAgICB0aGlzLmNsZWFyU2VsZWN0aW9uQ2FjaGUoKTtcbiAgICB0aGlzLmxpc3REYXRhU291cmNlLnJlZnJlc2goKTtcbiAgfVxuXG4gIHB1YmxpYyBzY3JvbGxUb0luZGV4KGluZGV4OiBudW1iZXIpIHtcbiAgICB0aGlzLnZpZXdwb3J0LnNjcm9sbFRvSW5kZXgoaW5kZXgpO1xuICB9XG5cbiAgb3ZlcnJpZGUgZm9jdXMoKTogdm9pZCB7XG4gICAgY29uc3QgbGlzdCA9IHRoaXMuZ2V0SG9zdEVsZW1lbnQoKS5xdWVyeVNlbGVjdG9yKCd1bCcpO1xuICAgIGNvbnN0IGZvY3VzYWJsZSA9XG4gICAgICBsaXN0LnF1ZXJ5U2VsZWN0b3I8SFRNTEVsZW1lbnQ+KCdsaS5heC1zdGF0ZS1zZWxlY3RlZCcpID8/XG4gICAgICBsaXN0LnF1ZXJ5U2VsZWN0b3I8SFRNTEVsZW1lbnQ+KCdsaS5saXN0LWl0ZW0nKTtcbiAgICBpZiAoZm9jdXNhYmxlKSB7XG4gICAgICBmb2N1c2FibGUuZm9jdXMoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5wb3N0cG9uZUZvY3VzID0gdHJ1ZTtcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJsaXN0LWNvbnRhaW5lclwiIGNka1ZpcnR1YWxTY3JvbGxpbmdFbGVtZW50PlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImF4LWhlYWRlclwiPjwvbmctY29udGVudD5cbiAgICA8Y2RrLXZpcnR1YWwtc2Nyb2xsLXZpZXdwb3J0IFtpdGVtU2l6ZV09XCJpdGVtSGVpZ2h0XCIgW3N0eWxlLi0taXRlbS1oZWlnaHRdPVwiaXRlbUhlaWdodCsncHgnXCJcbiAgICAgICAgKHNjcm9sbGVkSW5kZXhDaGFuZ2UpPVwiX2hhbmRsZU9uc2Nyb2xsZWRJbmRleENoYW5nZSgkZXZlbnQpXCI+XG4gICAgICAgIDx1bD5cbiAgICAgICAgICAgIDwhLS0gIEl0ZW0gVGVtcGxhdGUgIC0tPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqY2RrVmlydHVhbEZvcj1cImxldCBpdGVtIG9mIGxpc3REYXRhU291cmNlO2xldCBpID0gaW5kZXg7IHRyYWNrQnk6IHRyYWNrQnlJZHhcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXRlbTtlbHNlIGxvYWRpbmdUcGxcIj5cbiAgICAgICAgICAgICAgICAgICAgPGxpIFtjbGFzcy5heC1zdGF0ZS1zZWxlY3RlZF09XCJpc0l0ZW1TZWxlY3RlZChpdGVtKVwiIGNsYXNzPVwibGlzdC1pdGVtXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5heC1zdGF0ZS1kaXNhYmxlZF09XCJpc0l0ZW1EaXNhYmxlZChpdGVtKVwiIFthdHRyLnRhYmluZGV4XT1cImlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIl9oYW5kbGVPbkl0ZW1DbGljaygkZXZlbnQsIGl0ZW0pXCIgW2F0dHIuZGF0YS1pZF09XCJnZXRWYWx1ZShpdGVtKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSAgQ3VzdG9tIEl0ZW0gVGVtcGxhdGUgIC0tPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIml0ZW1UZW1wbGF0ZTtlbHNlIGRlZmF1bHRJdGVtVHBsXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIml0ZW1UZW1wbGF0ZTtjb250ZXh0OiB7ICRpbXBsaWNpdDogeyBkYXRhOml0ZW0gfSB9XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gIERlZmF1bHQgSXRlbSBUZW1wbGF0ZSAgLS0+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2RlZmF1bHRJdGVtVHBsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpdGVtO2Vsc2UgbG9hZGluZ1RwbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtbGFiZWwtY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJheC1jaGVja2JveFwiICpuZ0lmPVwibXVsdGlwbGUgJiYgY2hlY2tib3hcIiB0eXBlPVwiY2hlY2tib3hcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjaGVja2VkXT1cImlzSXRlbVNlbGVjdGVkKGl0ZW0pXCIgW2Rpc2FibGVkXT1cImlzSXRlbURpc2FibGVkKGl0ZW0pXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWJpbmRleD1cIjBcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuYXgtY2hlY2tib3gtbGFiZWxdPVwibXVsdGlwbGUgJiYgY2hlY2tib3hcIj57e2dldERpc3BsYXlUZXh0KGl0ZW0pfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImF4LWljb24gYXgtaWNvbi1kb25lIGF4LXNlbGVjdGVkLWljb25cIiAqbmdJZj1cImlzSXRlbVNlbGVjdGVkKGl0ZW0pIFwiPjwvaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC91bD5cbiAgICA8L2Nkay12aXJ0dWFsLXNjcm9sbC12aWV3cG9ydD5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJheC1mb290ZXJcIj48L25nLWNvbnRlbnQ+XG48L2Rpdj5cbjwhLS0gIExvYWRpbmcgVGVtcGxhdGUgIC0tPlxuPG5nLXRlbXBsYXRlICNsb2FkaW5nVHBsPlxuICAgIDwhLS0gIEN1c3RvbSBMb2FkaW5nIFRlbXBsYXRlICAtLT5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibG9hZGluZ1RlbXBsYXRlO2Vsc2UgZGVmYXVsdExvYWRpbmdUcGxcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImxvYWRpbmdUZW1wbGF0ZVwiPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8IS0tICBEZWZhdWx0IExvYWRpbmcgVGVtcGxhdGUgIC0tPlxuICAgIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdExvYWRpbmdUcGw+XG4gICAgICAgIDxsaT57eydsYXlvdXQubG9hZGluZy50ZXh0JyB8IHRyYW5zfX08L2xpPlxuICAgIDwvbmctdGVtcGxhdGU+XG48L25nLXRlbXBsYXRlPlxuPCEtLSAgRW1wdHkgVGVtcGxhdGUgIC0tPlxuPG5nLWNvbnRhaW5lciAqbmdJZj1cImVtcHR5VGVtcGxhdGUgJiYgaGFzSXRlbXM9PT1mYWxzZSAmJiBpc0xvYWRpbmc9PT1mYWxzZVwiPlxuICAgIDxkaXYgY2xhc3M9XCJlbXB0eS1jb250YWluZXJcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImVtcHR5VGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbjwvbmctY29udGFpbmVyPiJdfQ==
192
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvbGlzdC9zcmMvbGliL2xpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2xpc3Qvc3JjL2xpYi9saXN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxXQUFXLEVBQ1gsWUFBWSxFQUVaLG9CQUFvQixFQUNwQixnQkFBZ0IsRUFDaEIsbUJBQW1CLEVBQ25CLHlCQUF5QixFQUN6Qix3QkFBd0IsRUFDeEIsdUJBQXVCLEVBQ3ZCLHdCQUF3QixFQUN6QixNQUFNLDJCQUEyQixDQUFDO0FBQ25DLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2xFLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixXQUFXLEVBQ1gsWUFBWSxFQUNaLEtBQUssRUFFTCxRQUFRLEVBQ1IsTUFBTSxFQUNOLFFBQVEsRUFDUixXQUFXLEVBQ1gsU0FBUyxFQUNULGlCQUFpQixFQUNqQixVQUFVLEdBQ1gsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7O0FBMkNuRCxNQUFNLE9BQU8sZUFBZ0IsU0FBUSx5QkFBeUI7SUFwQzlEOztRQXNDRSxlQUFVLEdBQTBCLHdCQUF3QixDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBR2pFLGVBQVUsR0FBb0IsRUFBRSxDQUFDO1FBWWpDLDJCQUFzQixHQUNwQixJQUFJLFlBQVksRUFBNEIsQ0FBQztRQUcvQyxhQUFRLEdBQUcsSUFBSSxDQUFDO1FBR04sY0FBUyxHQUFHLElBQUksQ0FBQztRQUNqQixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ25CLGNBQVMsR0FBRyxDQUFDLENBQUM7UUFDZCxrQkFBYSxH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QUFhO3NCQURaLEtBQUs7Z0JBSU4sZUFBZTtzQkFEZCxLQUFLO2dCQUlOLHNCQUFzQjtzQkFEckIsTUFBTTtnQkFLUCxRQUFRO3NCQURQLEtBQUs7Z0JBWUUsUUFBUTtzQkFEZixTQUFTO3VCQUFDLHdCQUF3QjtnQkFvQ25DLGNBQWM7c0JBRGIsWUFBWTt1QkFBQyxTQUFTLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBMkMvQixXQUFXO3NCQURkLFdBQVc7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFYQ29tcG9uZW50LFxuICBBWERhdGFTb3VyY2UsXG4gIEFYRXZlbnQsXG4gIEFYRm9jdXNhYmxlQ29tcG9uZW50LFxuICBBWExpc3REYXRhU291cmNlLFxuICBBWFZhbHVhYmxlQ29tcG9uZW50LFxuICBNWFNlbGVjdGlvblZhbHVlQ29tcG9uZW50LFxuICBjb252ZXJ0QXJyYXlUb0RhdGFTb3VyY2UsXG4gIEFYX1NFTEVDVElPTl9EQVRBX1RPS0VOLFxuICBNWFNlbGVjdGlvbkJyaWRnZVNlcnZpY2Vcbn0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2NvbW1vbic7XG5pbXBvcnQgeyBDZGtWaXJ0dWFsU2Nyb2xsVmlld3BvcnQgfSBmcm9tICdAYW5ndWxhci9jZGsvc2Nyb2xsaW5nJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdEJpbmRpbmcsXG4gIEhvc3RMaXN0ZW5lcixcbiAgSW5wdXQsXG4gIE9uSW5pdCxcbiAgT3B0aW9uYWwsXG4gIE91dHB1dCxcbiAgU2tpcFNlbGYsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBmb3J3YXJkUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFYTGlzdFNjcm9sbEluZGV4Q2hhbmdlZCBleHRlbmRzIEFYRXZlbnQge1xuICBpbmRleDogbnVtYmVyO1xufVxuXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4LWxpc3QnLFxuICB0ZW1wbGF0ZVVybDogJy4vbGlzdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2xpc3QuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGlucHV0czogW1xuICAgICdpZCcsXG4gICAgJ25hbWUnLFxuICAgICdkaXNhYmxlZCcsXG4gICAgJ3JlYWRvbmx5JyxcbiAgICAndmFsdWVGaWVsZCcsXG4gICAgJ3RleHRGaWVsZCcsXG4gICAgJ2Rpc2FibGVkRmllbGQnLFxuICAgICdtdWx0aXBsZScsXG4gICAgJ3NlbGVjdGlvbk1vZGUnLFxuICBdLFxuICBvdXRwdXRzOiBbJ29uVmFsdWVDaGFuZ2VkJywgJ2Rpc2FibGVkQ2hhbmdlJywgJ3JlYWRPbmx5Q2hhbmdlJywgJ29uQmx1cicsICdvbkZvY3VzJ10sXG4gIHByb3ZpZGVyczogW1xuICAgIHsgcHJvdmlkZTogQVhDb21wb25lbnQsIHVzZUV4aXN0aW5nOiBBWExpc3RDb21wb25lbnQgfSxcbiAgICB7IHByb3ZpZGU6IEFYRm9jdXNhYmxlQ29tcG9uZW50LCB1c2VFeGlzdGluZzogQVhMaXN0Q29tcG9uZW50IH0sXG4gICAgeyBwcm92aWRlOiBBWFZhbHVhYmxlQ29tcG9uZW50LCB1c2VFeGlzdGluZzogQVhMaXN0Q29tcG9uZW50IH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBBWExpc3RDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBBWF9TRUxFQ1RJT05fREFUQV9UT0tFTixcbiAgICAgIHVzZUZhY3Rvcnk6IChleGlzdGluZ1NlcnZpY2U6IE1YU2VsZWN0aW9uQnJpZGdlU2VydmljZSkgPT4ge1xuICAgICAgICByZXR1cm4gZXhpc3RpbmdTZXJ2aWNlIHx8IG5ldyBNWFNlbGVjdGlvbkJyaWRnZVNlcnZpY2UoKTtcbiAgICAgIH0sXG4gICAgICBkZXBzOiBbW25ldyBPcHRpb25hbCgpLCBuZXcgU2tpcFNlbGYoKSwgQVhfU0VMRUNUSU9OX0RBVEFfVE9LRU5dXVxuICAgIH1cbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQVhMaXN0Q29tcG9uZW50IGV4dGVuZHMgTVhTZWxlY3Rpb25WYWx1ZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpXG4gIGRhdGFTb3VyY2U6IEFYRGF0YVNvdXJjZTx1bmtub3duPiA9IGNvbnZlcnRBcnJheVRvRGF0YVNvdXJjZShbXSk7XG5cbiAgQElucHV0KClcbiAgaXRlbUhlaWdodDogbnVtYmVyIHwgJ2F1dG8nID0gNDA7XG5cbiAgQElucHV0KClcbiAgaXRlbVRlbXBsYXRlOiBUZW1wbGF0ZVJlZjx1bmtub3duPjtcblxuICBASW5wdXQoKVxuICBlbXB0eVRlbXBsYXRlOiBUZW1wbGF0ZVJlZjx1bmtub3duPjtcblxuICBASW5wdXQoKVxuICBsb2FkaW5nVGVtcGxhdGU6IFRlbXBsYXRlUmVmPHVua25vd24+O1xuXG4gIEBPdXRwdXQoKVxuICBvblNjcm9sbGVkSW5kZXhDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8QVhMaXN0U2Nyb2xsSW5kZXhDaGFuZ2VkPiA9XG4gICAgbmV3IEV2ZW50RW1pdHRlcjxBWExpc3RTY3JvbGxJbmRleENoYW5nZWQ+KCk7XG5cbiAgQElucHV0KClcbiAgY2hlY2tib3ggPSB0cnVlO1xuXG4gIHByb3RlY3RlZCBsaXN0RGF0YVNvdXJjZTogQVhMaXN0RGF0YVNvdXJjZTx1bmtub3duPjtcbiAgcHJvdGVjdGVkIGlzTG9hZGluZyA9IHRydWU7XG4gIHByb3RlY3RlZCBoYXNJdGVtcyA9IGZhbHNlO1xuICBwcml2YXRlIGxhc3RJbmRleCA9IDA7XG4gIHByaXZhdGUgcG9zdHBvbmVGb2N1cyA9IGZhbHNlO1xuXG5cblxuICBAVmlld0NoaWxkKENka1ZpcnR1YWxTY3JvbGxWaWV3cG9ydClcbiAgcHJpdmF0ZSB2aWV3cG9ydDogQ2RrVmlydHVhbFNjcm9sbFZpZXdwb3J0O1xuXG4gIHRyYWNrQnlJZHgoaSkge1xuICAgIHJldHVybiBpO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICB0aGlzLmxpc3REYXRhU291cmNlID0gbmV3IEFYTGlzdERhdGFTb3VyY2U8dW5rbm93bj4oe1xuICAgICAgc291cmNlOiB0aGlzLmRhdGFTb3VyY2UsXG4gICAgfSk7XG4gICAgdGhpcy5saXN0RGF0YVNvdXJjZS5zb3VyY2Uub25Mb2FkaW5nQ2hhbmdlZC5zdWJzY3JpYmUoKGRhdGEpID0+IHtcbiAgICAgIHRoaXMuaXNMb2FkaW5nID0gZGF0YTtcbiAgICB9KTtcbiAgICB0aGlzLmxpc3REYXRhU291cmNlLnNvdXJjZS5vbkNoYW5nZWQuc3Vic2NyaWJlKChkYXRhKSA9PiB7XG4gICAgICB0aGlzLmhhc0l0ZW1zID0gZGF0YS50b3RhbENvdW50ID4gMDtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aGlzLnJlbmRlcigpO1xuICAgICAgfSwgMTAwKTtcbiAgICB9KTtcbiAgfVxuXG4gIF9oYW5kbGVPbkl0ZW1DbGljayhlOiBNb3VzZUV2ZW50LCBpdGVtOiBhbnkpIHtcbiAgICBpZiAodGhpcy5yZWFkb25seSB8fCB0aGlzLmRpc2FibGVkKSB7XG4gICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAodGhpcy5pc0l0ZW1EaXNhYmxlZChpdGVtKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLnRvZ2dsZVNlbGVjdChpdGVtKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24nLCBbJyRldmVudCddKVxuICBfaGFuZGxlS2V5ZG93bihlOiBLZXlib2FyZEV2ZW50KSB7XG4gICAgaWYgKChlLmNvZGUgPT09ICdBcnJvd0Rvd24nIHx8IGUuY29kZSA9PT0gJ0Fycm93VXAnKSAmJiB0aGlzLmhhc0l0ZW1zKSB7XG4gICAgICB0aGlzLmZvY3VzSXRlbUJ5TmF2KGUua2V5ID09PSAnQXJyb3dEb3duJyA/IDEgOiAtMSk7XG4gICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuICAgIGlmICgoZS5jb2RlID09PSAnU3BhY2UnIHx8IGUuY29kZSA9PT0gJ0VudGVyJykgJiYgdGhpcy5oYXNJdGVtcykge1xuICAgICAgaWYgKHRoaXMucmVhZG9ubHkgfHwgdGhpcy5kaXNhYmxlZCkge1xuICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGNvbnN0IGlkID0gZG9jdW1lbnQuYWN0aXZlRWxlbWVudD8uY2xvc2VzdCgnbGknKT8uZGF0YXNldD8uaWQ7XG4gICAgICB0aGlzLnRvZ2dsZVNlbGVjdChpZCk7XG4gICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZm9jdXNJdGVtQnlOYXYoc2lnbjogLTEgfCAxKTogdm9pZCB7XG4gICAgY29uc3QgbGlzdCA9IHRoaXMuZ2V0SG9zdEVsZW1lbnQoKS5xdWVyeVNlbGVjdG9yKCd1bCcpO1xuICAgIGNvbnN0IGZuID0gKHMpID0+IGxpc3QucXVlcnlTZWxlY3RvcjxIVE1MRGl2RWxlbWVudD4ocyk7XG4gICAgY29uc3QgaXRlbURpdjogSFRNTEVsZW1lbnQgPVxuICAgICAgZG9jdW1lbnQuYWN0aXZlRWxlbWVudD8uY2xvc2VzdCgnbGknKSB8fCBmbihgbGkuYXgtc3RhdGUtc2VsZWN0ZWRgKSB8fCBmbihgbGlgKTtcbiAgICBjb25zdCBuZXh0ID0gKHNpZ24gPT0gMSA/IGl0ZW1EaXYubmV4dEVsZW1lbnRTaWJsaW5nIDogaXRlbURpdi5wcmV2aW91c0VsZW1lbnRTaWJsaW5nKSBhcyBIVE1MRWxlbWVudDtcbiAgICBpZiAobmV4dCkge1xuICAgICAgbmV4dC5mb2N1cygpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBfaGFuZGxlT25zY3JvbGxlZEluZGV4Q2hhbmdlKGU6IG51bWJlcikge1xuICAgIHRoaXMubGFzdEluZGV4ID0gZTtcbiAgICB0aGlzLm9uU2Nyb2xsZWRJbmRleENoYW5nZWQuZW1pdCh7XG4gICAgICBjb21wb25lbnQ6IHRoaXMsXG4gICAgICBpbmRleDogdGhpcy5sYXN0SW5kZXgsXG4gICAgICBpc1VzZXJJbnRlcmFjdGlvbjogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiAgQGlnbm9yZVxuICAgKi9cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXG4gIGdldCBfX2hvc3RDbGFzcygpOiBzdHJpbmcge1xuICAgIGNvbnN0IF9jbGFzcyA9IGBheC1kZWZhdWx0YDtcbiAgICByZXR1cm4gdGhpcy5pdGVtVGVtcGxhdGUgPyAnJyA6IF9jbGFzcztcbiAgfVxuXG4gIGdldEl0ZW1CeUtleShrZXk6IHVua25vd24pOiBQcm9taXNlPHVua25vd24+IHwgdW5rbm93biB7XG4gICAgcmV0dXJuIHRoaXMuZGF0YVNvdXJjZS5maW5kKGtleSk7XG4gIH1cblxuICBwdWJsaWMgcmVuZGVyKCkge1xuICAgIHRoaXMudmlld3BvcnQuY2hlY2tWaWV3cG9ydFNpemUoKTtcbiAgICB0aGlzLnZpZXdwb3J0LnNjcm9sbFRvSW5kZXgodGhpcy5sYXN0SW5kZXgpO1xuICAgIGlmICh0aGlzLnBvc3Rwb25lRm9jdXMpIHtcbiAgICAgIHRoaXMucG9zdHBvbmVGb2N1cyA9IGZhbHNlO1xuICAgICAgdGhpcy5mb2N1cygpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyByZWZyZXNoKCkge1xuICAgIHRoaXMuY2xlYXJTZWxlY3Rpb25DYWNoZSgpO1xuICAgIHRoaXMubGlzdERhdGFTb3VyY2UucmVmcmVzaCgpO1xuICB9XG5cbiAgcHVibGljIHNjcm9sbFRvSW5kZXgoaW5kZXg6IG51bWJlcikge1xuICAgIHRoaXMudmlld3BvcnQuc2Nyb2xsVG9JbmRleChpbmRleCk7XG4gIH1cblxuICBvdmVycmlkZSBmb2N1cygpOiB2b2lkIHtcbiAgICBjb25zdCBsaXN0ID0gdGhpcy5nZXRIb3N0RWxlbWVudCgpLnF1ZXJ5U2VsZWN0b3IoJ3VsJyk7XG4gICAgY29uc3QgZm9jdXNhYmxlID1cbiAgICAgIGxpc3QucXVlcnlTZWxlY3RvcjxIVE1MRWxlbWVudD4oJ2xpLmF4LXN0YXRlLXNlbGVjdGVkJykgPz9cbiAgICAgIGxpc3QucXVlcnlTZWxlY3RvcjxIVE1MRWxlbWVudD4oJ2xpLmxpc3QtaXRlbScpO1xuICAgIGlmIChmb2N1c2FibGUpIHtcbiAgICAgIGZvY3VzYWJsZS5mb2N1cygpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnBvc3Rwb25lRm9jdXMgPSB0cnVlO1xuICAgIH1cbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImxpc3QtY29udGFpbmVyXCIgY2RrVmlydHVhbFNjcm9sbGluZ0VsZW1lbnQ+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXgtaGVhZGVyXCI+PC9uZy1jb250ZW50PlxuICAgIDxjZGstdmlydHVhbC1zY3JvbGwtdmlld3BvcnQgW2l0ZW1TaXplXT1cIml0ZW1IZWlnaHRcIiBbc3R5bGUuLS1pdGVtLWhlaWdodF09XCJpdGVtSGVpZ2h0KydweCdcIlxuICAgICAgICAoc2Nyb2xsZWRJbmRleENoYW5nZSk9XCJfaGFuZGxlT25zY3JvbGxlZEluZGV4Q2hhbmdlKCRldmVudClcIj5cbiAgICAgICAgPHVsPlxuICAgICAgICAgICAgPCEtLSAgSXRlbSBUZW1wbGF0ZSAgLS0+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpjZGtWaXJ0dWFsRm9yPVwibGV0IGl0ZW0gb2YgbGlzdERhdGFTb3VyY2U7bGV0IGkgPSBpbmRleDsgdHJhY2tCeTogdHJhY2tCeUlkeFwiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpdGVtO2Vsc2UgbG9hZGluZ1RwbFwiPlxuICAgICAgICAgICAgICAgICAgICA8bGkgW2NsYXNzLmF4LXN0YXRlLXNlbGVjdGVkXT1cImlzSXRlbVNlbGVjdGVkKGl0ZW0pXCIgY2xhc3M9XCJsaXN0LWl0ZW1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmF4LXN0YXRlLWRpc2FibGVkXT1cImlzSXRlbURpc2FibGVkKGl0ZW0pXCIgW2F0dHIudGFiaW5kZXhdPVwiaVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiX2hhbmRsZU9uSXRlbUNsaWNrKCRldmVudCwgaXRlbSlcIiBbYXR0ci5kYXRhLWlkXT1cImdldFZhbHVlKGl0ZW0pXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8IS0tICBDdXN0b20gSXRlbSBUZW1wbGF0ZSAgLS0+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXRlbVRlbXBsYXRlO2Vsc2UgZGVmYXVsdEl0ZW1UcGxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaXRlbVRlbXBsYXRlO2NvbnRleHQ6IHsgJGltcGxpY2l0OiB7IGRhdGE6aXRlbSB9IH1cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSAgRGVmYXVsdCBJdGVtIFRlbXBsYXRlICAtLT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdEl0ZW1UcGw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIml0ZW07ZWxzZSBsb2FkaW5nVHBsXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJheC1sYWJlbC1jb250YWluZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImF4LWNoZWNrYm94XCIgKm5nSWY9XCJtdWx0aXBsZSAmJiBjaGVja2JveFwiIHR5cGU9XCJjaGVja2JveFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NoZWNrZWRdPVwiaXNJdGVtU2VsZWN0ZWQoaXRlbSlcIiBbZGlzYWJsZWRdPVwiaXNJdGVtRGlzYWJsZWQoaXRlbSlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhYmluZGV4PVwiMFwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5heC1jaGVja2JveC1sYWJlbF09XCJtdWx0aXBsZSAmJiBjaGVja2JveFwiPnt7Z2V0RGlzcGxheVRleHQoaXRlbSl9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiYXgtaWNvbiBheC1pY29uLWRvbmUgYXgtc2VsZWN0ZWQtaWNvblwiICpuZ0lmPVwiaXNJdGVtU2VsZWN0ZWQoaXRlbSkgXCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L3VsPlxuICAgIDwvY2RrLXZpcnR1YWwtc2Nyb2xsLXZpZXdwb3J0PlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImF4LWZvb3RlclwiPjwvbmctY29udGVudD5cbjwvZGl2PlxuPCEtLSAgTG9hZGluZyBUZW1wbGF0ZSAgLS0+XG48bmctdGVtcGxhdGUgI2xvYWRpbmdUcGw+XG4gICAgPCEtLSAgQ3VzdG9tIExvYWRpbmcgVGVtcGxhdGUgIC0tPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJsb2FkaW5nVGVtcGxhdGU7ZWxzZSBkZWZhdWx0TG9hZGluZ1RwbFwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwibG9hZGluZ1RlbXBsYXRlXCI+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwhLS0gIERlZmF1bHQgTG9hZGluZyBUZW1wbGF0ZSAgLS0+XG4gICAgPG5nLXRlbXBsYXRlICNkZWZhdWx0TG9hZGluZ1RwbD5cbiAgICAgICAgPGxpPnt7J2xheW91dC5sb2FkaW5nLnRleHQnIHwgdHJhbnN9fTwvbGk+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbjwvbmctdGVtcGxhdGU+XG48IS0tICBFbXB0eSBUZW1wbGF0ZSAgLS0+XG48bmctY29udGFpbmVyICpuZ0lmPVwiZW1wdHlUZW1wbGF0ZSAmJiBoYXNJdGVtcz09PWZhbHNlICYmIGlzTG9hZGluZz09PWZhbHNlXCI+XG4gICAgPGRpdiBjbGFzcz1cImVtcHR5LWNvbnRhaW5lclwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZW1wdHlUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuPC9uZy1jb250YWluZXI+Il19
@@ -1,9 +1,9 @@
1
- import { AXClearableComponent, AXClosbaleComponent, AXComponent, AXFocusableComponent, AXSearchableComponent, AXValuableComponent, MXLookComponent, MXSelectionValueComponent, convertArrayToDataSource, } from '@acorex/components/common';
1
+ import { AXClearableComponent, AXClosbaleComponent, AXComponent, AXFocusableComponent, AXSearchableComponent, AXValuableComponent, MXLookComponent, MXSelectionValueComponent, convertArrayToDataSource, AX_SELECTION_DATA_TOKEN, MXSelectionBridgeService } from '@acorex/components/common';
2
2
  import { AXDropdownBoxComponent, MXDropdownBoxBaseComponent } from '@acorex/components/dropdown';
3
3
  import { AXListComponent } from '@acorex/components/list';
4
4
  import { AXSearchBoxComponent } from '@acorex/components/search-box';
5
5
  import { AXTranslator } from '@acorex/core/translation';
6
- import { ChangeDetectionStrategy, Component, ContentChild, HostListener, Input, TemplateRef, ViewChild, ViewEncapsulation, forwardRef, } from '@angular/core';
6
+ import { ChangeDetectionStrategy, Component, ContentChild, HostListener, Input, TemplateRef, ViewChild, ViewEncapsulation, forwardRef, inject, } from '@angular/core';
7
7
  import { NG_VALUE_ACCESSOR } from '@angular/forms';
8
8
  import { findLastIndex, last, nth } from 'lodash-es';
9
9
  import { classes } from 'polytype';
@@ -31,6 +31,7 @@ export class AXSelectBoxComponent extends classes(MXDropdownBoxBaseComponent, MX
31
31
  });
32
32
  this.autoHeight = false;
33
33
  this.defaultActionSheetTitle = AXTranslator.get('selectbox.popover.title');
34
+ this.selectionService = inject(AX_SELECTION_DATA_TOKEN);
34
35
  }
35
36
  get dataSource() {
36
37
  return this._dataSource;
@@ -177,6 +178,10 @@ export class AXSelectBoxComponent extends classes(MXDropdownBoxBaseComponent, MX
177
178
  useExisting: forwardRef(() => AXSelectBoxComponent),
178
179
  multi: true,
179
180
  },
181
+ {
182
+ provide: AX_SELECTION_DATA_TOKEN,
183
+ useClass: MXSelectionBridgeService
184
+ }
180
185
  ], queries: [{ propertyName: "searchBox", first: true, predicate: AXSearchBoxComponent, descendants: true, static: true }], viewQueries: [{ propertyName: "list", first: true, predicate: AXListComponent, descendants: true }, { propertyName: "dropdown", first: true, predicate: AXDropdownBoxComponent, descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<ax-dropdown-box [disabled]=\"disabled\" (onOpened)=\"_handleOnOpenedEvent()\" (onClosed)=\"_handleOnClosedEvent()\"\n [look]=\"look\" [class.ax-auto-height]=\"autoHeight\">\n <ng-container input>\n <ng-content select=\"ax-prefix\"> </ng-content>\n <div class=\"ax-select-box-selection\" [class.ax-multiple]=\"multiple\" [tabindex]=\"tabIndex\"\n (focus)=\"emitOnFocusEvent($event)\" (blur)=\"emitOnBlurEvent($event)\" (click)=\"toggle()\">\n <div class=\"ax-placeholder\" role=\"textbox\" area-readonly=\"true\" *ngIf=\"selectedItems.length === 0\">\n {{ placeholder }}\n </div>\n <ng-container *ngFor=\"let item of selectedItems\">\n <div class=\"ax-selected-token\">\n {{ getDisplayText(item) }}\n <span class=\"ax-icon ax-icon-close\" (click)=\"_handleBadgeRemove($event, item)\" *ngIf=\"multiple\">\n </span>\n </div>\n </ng-container>\n </div>\n <ng-content select=\" ax-clear-button\"></ng-content>\n <button type=\"button\" [disabled]=\"disabled\" [tabIndex]=\"-1\" class=\"ax-general-button ax-button-icon\"\n (click)=\"toggle()\">\n <ng-container *ngIf=\"isLoading && !isOpen; else iconTemplate\">\n <ax-loading type=\"spinner\"></ax-loading>\n </ng-container>\n <ng-template #iconTemplate>\n <span class=\"ax-icon ax-icon-chevron-left ax-arrow-button\" [ngClass]=\"{\n '-rotation-90': !isOpen,\n 'rotation-90': isOpen\n }\"></span>\n </ng-template>\n </button>\n <ng-content select=\"ax-suffix\"> </ng-content>\n <ng-template #search>\n <ng-content select=\"ax-search-box\"> </ng-content>\n </ng-template>\n </ng-container>\n <ng-container panel>\n <div class=\"ax-select-box-panel\" [style.min-width]=\"dropdownSizes.width\">\n <ax-header class=\"ax-solid\" *ngIf=\"dropdown.isActionsheetStyle\">\n <ax-title>{{ placeholder || defaultActionSheetTitle }}</ax-title>\n <ax-close-button\n [icon]=\"multiple ? 'ax-icon ax-icon-done !ax-text-primary-500' : 'ax-icon ax-icon-close'\"></ax-close-button>\n </ax-header>\n <div class=\"ax-search-container\" *ngIf=\"searchBox\">\n <ng-template [ngTemplateOutlet]=\"search\"></ng-template>\n </div>\n <ax-list *ngIf=\"renderList\" [dataSource]=\"_listDataSource\" [multiple]=\"multiple\"\n [style.height]=\"dropdownSizes.height\" [valueField]=\"valueField\" [textField]=\"textField\"\n [emptyTemplate]=\"emptyTemplate ?? empty\" [itemTemplate]=\"itemTemplate\" [loadingTemplate]=\"loadingTemplate\"\n [ngModel]=\"value\" (onValueChanged)=\"_handleValueChanged($event)\" [selectionMode]=\"'item'\">\n <ng-template #empty> No Items! </ng-template>\n </ax-list>\n <ng-content select=\"ax-footer\"> </ng-content>\n </div>\n </ng-container>\n</ax-dropdown-box>\n<ng-content select=\"ax-validation-rule\"> </ng-content>", styles: ["ax-select-box{display:block;width:100%}ax-select-box ax-dropdown-box.ax-auto-height{height:auto!important}ax-select-box .ax-editor-container.ax-look-fill .ax-selected-token{--tw-bg-opacity: 1 !important;background-color:rgba(var(--ax-color-surface),var(--tw-bg-opacity))!important}ax-select-box .ax-selected-token{display:flex;align-items:center;border-radius:var(--ax-rounded-border-default);padding:.25rem .5rem;--tw-text-opacity: 1;color:rgb(var(--ax-color-text-default),var(--tw-text-opacity))}ax-select-box .ax-selected-token .ax-icon-close{margin-inline-start:.5rem;cursor:pointer}ax-select-box .ax-select-box-selection{display:flex;flex:1 1 0%;cursor:pointer;-webkit-user-select:none;user-select:none;flex-wrap:wrap;align-items:center;justify-content:flex-start;gap:.25rem;padding:.25rem;outline:2px solid transparent;outline-offset:2px}ax-select-box .ax-select-box-selection>span{white-space:nowrap;padding-inline-end:.75rem;padding-inline-start:1rem}ax-select-box .ax-select-box-selection .ax-selectbox-input{width:0px;opacity:0}ax-select-box .ax-select-box-selection.ax-multiple .ax-selected-token{--tw-bg-opacity: 1;background-color:rgba(var(--ax-color-on-surface),var(--tw-bg-opacity))}ax-select-box .ax-placeholder{padding-inline-end:.75rem;padding-inline-start:1rem}ax-select-box .ax-general-button .ax-arrow-button{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}ax-select-box .ax-general-button .ax-arrow-button.-rotation-90{--tw-rotate: -90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}ax-select-box .ax-general-button .ax-arrow-button.rotation-90{--tw-rotate: 90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.ax-select-box-panel{height:-moz-fit-content;height:fit-content}.ax-select-box-panel>ax-header.ax-solid{border-bottom-width:1px;border-color:rgba(var(--ax-color-border-default))}.ax-select-box-panel .ax-search-container{padding:.5rem}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.AXDecoratorCloseButtonComponent, selector: "ax-close-button", inputs: ["icon"] }, { kind: "component", type: i3.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title , ax-sub-title, ax-placeholder, ax-overlay" }, { kind: "component", type: i4.AXLoadingComponent, selector: "ax-loading", inputs: ["visible", "type", "context"], outputs: ["visibleChange"] }, { kind: "component", type: i5.AXDropdownBoxComponent, selector: "ax-dropdown-box", inputs: ["disabled", "look"], outputs: ["disabledChange", "onBlur", "onFocus", "onClick", "onOpened", "onClosed"] }, { kind: "component", type: i6.AXListComponent, selector: "ax-list", inputs: ["id", "name", "disabled", "readonly", "valueField", "textField", "disabledField", "multiple", "selectionMode", "dataSource", "itemHeight", "itemTemplate", "emptyTemplate", "loadingTemplate", "checkbox"], outputs: ["onValueChanged", "disabledChange", "readOnlyChange", "onBlur", "onFocus", "onScrolledIndexChanged"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
181
186
  }
182
187
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: AXSelectBoxComponent, decorators: [{
@@ -217,6 +222,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImpor
217
222
  useExisting: forwardRef(() => AXSelectBoxComponent),
218
223
  multi: true,
219
224
  },
225
+ {
226
+ provide: AX_SELECTION_DATA_TOKEN,
227
+ useClass: MXSelectionBridgeService
228
+ }
220
229
  ], template: "<ax-dropdown-box [disabled]=\"disabled\" (onOpened)=\"_handleOnOpenedEvent()\" (onClosed)=\"_handleOnClosedEvent()\"\n [look]=\"look\" [class.ax-auto-height]=\"autoHeight\">\n <ng-container input>\n <ng-content select=\"ax-prefix\"> </ng-content>\n <div class=\"ax-select-box-selection\" [class.ax-multiple]=\"multiple\" [tabindex]=\"tabIndex\"\n (focus)=\"emitOnFocusEvent($event)\" (blur)=\"emitOnBlurEvent($event)\" (click)=\"toggle()\">\n <div class=\"ax-placeholder\" role=\"textbox\" area-readonly=\"true\" *ngIf=\"selectedItems.length === 0\">\n {{ placeholder }}\n </div>\n <ng-container *ngFor=\"let item of selectedItems\">\n <div class=\"ax-selected-token\">\n {{ getDisplayText(item) }}\n <span class=\"ax-icon ax-icon-close\" (click)=\"_handleBadgeRemove($event, item)\" *ngIf=\"multiple\">\n </span>\n </div>\n </ng-container>\n </div>\n <ng-content select=\" ax-clear-button\"></ng-content>\n <button type=\"button\" [disabled]=\"disabled\" [tabIndex]=\"-1\" class=\"ax-general-button ax-button-icon\"\n (click)=\"toggle()\">\n <ng-container *ngIf=\"isLoading && !isOpen; else iconTemplate\">\n <ax-loading type=\"spinner\"></ax-loading>\n </ng-container>\n <ng-template #iconTemplate>\n <span class=\"ax-icon ax-icon-chevron-left ax-arrow-button\" [ngClass]=\"{\n '-rotation-90': !isOpen,\n 'rotation-90': isOpen\n }\"></span>\n </ng-template>\n </button>\n <ng-content select=\"ax-suffix\"> </ng-content>\n <ng-template #search>\n <ng-content select=\"ax-search-box\"> </ng-content>\n </ng-template>\n </ng-container>\n <ng-container panel>\n <div class=\"ax-select-box-panel\" [style.min-width]=\"dropdownSizes.width\">\n <ax-header class=\"ax-solid\" *ngIf=\"dropdown.isActionsheetStyle\">\n <ax-title>{{ placeholder || defaultActionSheetTitle }}</ax-title>\n <ax-close-button\n [icon]=\"multiple ? 'ax-icon ax-icon-done !ax-text-primary-500' : 'ax-icon ax-icon-close'\"></ax-close-button>\n </ax-header>\n <div class=\"ax-search-container\" *ngIf=\"searchBox\">\n <ng-template [ngTemplateOutlet]=\"search\"></ng-template>\n </div>\n <ax-list *ngIf=\"renderList\" [dataSource]=\"_listDataSource\" [multiple]=\"multiple\"\n [style.height]=\"dropdownSizes.height\" [valueField]=\"valueField\" [textField]=\"textField\"\n [emptyTemplate]=\"emptyTemplate ?? empty\" [itemTemplate]=\"itemTemplate\" [loadingTemplate]=\"loadingTemplate\"\n [ngModel]=\"value\" (onValueChanged)=\"_handleValueChanged($event)\" [selectionMode]=\"'item'\">\n <ng-template #empty> No Items! </ng-template>\n </ax-list>\n <ng-content select=\"ax-footer\"> </ng-content>\n </div>\n </ng-container>\n</ax-dropdown-box>\n<ng-content select=\"ax-validation-rule\"> </ng-content>", styles: ["ax-select-box{display:block;width:100%}ax-select-box ax-dropdown-box.ax-auto-height{height:auto!important}ax-select-box .ax-editor-container.ax-look-fill .ax-selected-token{--tw-bg-opacity: 1 !important;background-color:rgba(var(--ax-color-surface),var(--tw-bg-opacity))!important}ax-select-box .ax-selected-token{display:flex;align-items:center;border-radius:var(--ax-rounded-border-default);padding:.25rem .5rem;--tw-text-opacity: 1;color:rgb(var(--ax-color-text-default),var(--tw-text-opacity))}ax-select-box .ax-selected-token .ax-icon-close{margin-inline-start:.5rem;cursor:pointer}ax-select-box .ax-select-box-selection{display:flex;flex:1 1 0%;cursor:pointer;-webkit-user-select:none;user-select:none;flex-wrap:wrap;align-items:center;justify-content:flex-start;gap:.25rem;padding:.25rem;outline:2px solid transparent;outline-offset:2px}ax-select-box .ax-select-box-selection>span{white-space:nowrap;padding-inline-end:.75rem;padding-inline-start:1rem}ax-select-box .ax-select-box-selection .ax-selectbox-input{width:0px;opacity:0}ax-select-box .ax-select-box-selection.ax-multiple .ax-selected-token{--tw-bg-opacity: 1;background-color:rgba(var(--ax-color-on-surface),var(--tw-bg-opacity))}ax-select-box .ax-placeholder{padding-inline-end:.75rem;padding-inline-start:1rem}ax-select-box .ax-general-button .ax-arrow-button{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}ax-select-box .ax-general-button .ax-arrow-button.-rotation-90{--tw-rotate: -90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}ax-select-box .ax-general-button .ax-arrow-button.rotation-90{--tw-rotate: 90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.ax-select-box-panel{height:-moz-fit-content;height:fit-content}.ax-select-box-panel>ax-header.ax-solid{border-bottom-width:1px;border-color:rgba(var(--ax-color-border-default))}.ax-select-box-panel .ax-search-container{padding:.5rem}\n"] }]
221
230
  }], propDecorators: { dataSource: [{
222
231
  type: Input
@@ -241,4 +250,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImpor
241
250
  type: HostListener,
242
251
  args: ['keydown', ['$event']]
243
252
  }] } });
244
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LWJveC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvc2VsZWN0LWJveC9zcmMvbGliL3NlbGVjdC1ib3guY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3NlbGVjdC1ib3gvc3JjL2xpYi9zZWxlY3QtYm94LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxvQkFBb0IsRUFDcEIsbUJBQW1CLEVBQ25CLFdBQVcsRUFFWCxvQkFBb0IsRUFDcEIscUJBQXFCLEVBQ3JCLG1CQUFtQixFQUVuQixlQUFlLEVBQ2YseUJBQXlCLEVBQ3pCLHdCQUF3QixHQUN6QixNQUFNLDJCQUEyQixDQUFDO0FBQ25DLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSwwQkFBMEIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2pHLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNyRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDeEQsT0FBTyxFQUVMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLFlBQVksRUFDWixLQUFLLEVBQ0wsV0FBVyxFQUNYLFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsVUFBVSxHQUNYLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxhQUFhLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNyRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sVUFBVSxDQUFDOzs7Ozs7OztBQUVuQzs7OztHQUlHO0FBK0NILE1BQU0sT0FBTyxv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LENBQUMsSUFBSSxhQUMxQjt3QkFDVCxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsV0FBVyxzQkFBc0IsRUFBRTt3QkFDM0QsRUFBRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsV0FBVyxzQkFBc0IsRUFBRTt3QkFDcEUsRUFBRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsV0FBVyxzQkFBc0IsRUFBRTt3QkFDbkUsRUFBRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsV0FBVyxzQkFBc0IsRUFBRTt3QkFDcEUsRUFBRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsV0FBVyxzQkFBc0IsRUFBRTt3QkFDbkUsRUFBRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsV0FBVyxzQkFBc0IsRUFBRTt3QkFDckU7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUscUJBQXFCLENBQUM7NEJBQ25ELEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGOzhCQXFCVSxVQUFVO3NCQURwQixLQUFLO2dCQWNOLFdBQVc7c0JBRFYsS0FBSztnQkFJTixZQUFZO3NCQURYLEtBQUs7Z0JBSU4sYUFBYTtzQkFEWixLQUFLO2dCQUlOLGVBQWU7c0JBRGQsS0FBSztnQkFJTixJQUFJO3NCQURILFNBQVM7dUJBQUMsZUFBZTtnQkFJMUIsU0FBUztzQkFEUixZQUFZO3VCQUFDLG9CQUFvQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFJMUMsUUFBUTtzQkFEakIsU0FBUzt1QkFBQyxzQkFBc0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBK0VuRCxjQUFjO3NCQURiLFlBQVk7dUJBQUMsU0FBUyxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQVhDbGVhcmFibGVDb21wb25lbnQsXG4gIEFYQ2xvc2JhbGVDb21wb25lbnQsXG4gIEFYQ29tcG9uZW50LFxuICBBWERhdGFTb3VyY2UsXG4gIEFYRm9jdXNhYmxlQ29tcG9uZW50LFxuICBBWFNlYXJjaGFibGVDb21wb25lbnQsXG4gIEFYVmFsdWFibGVDb21wb25lbnQsXG4gIEFYVmFsdWVDaGFuZ2VkRXZlbnQsXG4gIE1YTG9va0NvbXBvbmVudCxcbiAgTVhTZWxlY3Rpb25WYWx1ZUNvbXBvbmVudCxcbiAgY29udmVydEFycmF5VG9EYXRhU291cmNlLFxufSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvY29tbW9uJztcbmltcG9ydCB7IEFYRHJvcGRvd25Cb3hDb21wb25lbnQsIE1YRHJvcGRvd25Cb3hCYXNlQ29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2Ryb3Bkb3duJztcbmltcG9ydCB7IEFYTGlzdENvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9saXN0JztcbmltcG9ydCB7IEFYU2VhcmNoQm94Q29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3NlYXJjaC1ib3gnO1xuaW1wb3J0IHsgQVhUcmFuc2xhdG9yIH0gZnJvbSAnQGFjb3JleC9jb3JlL3RyYW5zbGF0aW9uJztcbmltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZCxcbiAgSG9zdExpc3RlbmVyLFxuICBJbnB1dCxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG4gIGZvcndhcmRSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBmaW5kTGFzdEluZGV4LCBsYXN0LCBudGggfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgY2xhc3NlcyB9IGZyb20gJ3BvbHl0eXBlJztcblxuLyoqXG4gKiBUaGUgQnV0dG9uIGlzIGEgY29tcG9uZW50IHdoaWNoIGRldGVjdHMgdXNlciBpbnRlcmFjdGlvbiBhbmQgdHJpZ2dlcnMgYSBjb3JyZXNwb25kaW5nIGV2ZW50XG4gKlxuICogQGNhdGVnb3J5IENvbXBvbmVudHNcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXgtc2VsZWN0LWJveCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9zZWxlY3QtYm94LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc2VsZWN0LWJveC5jb21wb25lbnQuc2NzcyddLFxuICBpbnB1dHM6IFtcbiAgICAnZGlzYWJsZWQnLFxuICAgICdyZWFkb25seScsXG4gICAgJ3RhYkluZGV4JyxcbiAgICAncGxhY2Vob2xkZXInLFxuICAgICdtaW5WYWx1ZScsXG4gICAgJ21heFZhbHVlJyxcbiAgICAndmFsdWUnLFxuICAgICdzdGF0ZScsXG4gICAgJ25hbWUnLFxuICAgICdpZCcsXG4gICAgJ3R5cGUnLFxuICAgICdsb29rJyxcbiAgICAnbXVsdGlwbGUnLFxuICAgICd2YWx1ZUZpZWxkJyxcbiAgICAndGV4dEZpZWxkJyxcbiAgXSxcbiAgb3V0cHV0czogW1xuICAgICd2YWx1ZUNoYW5nZScsXG4gICAgJ3N0YXRlQ2hhbmdlJyxcbiAgICAnb25WYWx1ZUNoYW5nZWQnLFxuICAgICdvbkJsdXInLFxuICAgICdvbkZvY3VzJyxcbiAgICAncmVhZG9ubHlDaGFuZ2UnLFxuICAgICdkaXNhYmxlZENoYW5nZScsXG4gIF0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBwcm92aWRlcnM6IFtcbiAgICB7IHByb3ZpZGU6IEFYQ29tcG9uZW50LCB1c2VFeGlzdGluZzogQVhTZWxlY3RCb3hDb21wb25lbnQgfSxcbiAgICB7IHByb3ZpZGU6IEFYRm9jdXNhYmxlQ29tcG9uZW50LCB1c2VFeGlzdGluZzogQVhTZWxlY3RCb3hDb21wb25lbnQgfSxcbiAgICB7IHByb3ZpZGU6IEFYVmFsdWFibGVDb21wb25lbnQsIHVzZUV4aXN0aW5nOiBBWFNlbGVjdEJveENvbXBvbmVudCB9LFxuICAgIHsgcHJvdmlkZTogQVhDbGVhcmFibGVDb21wb25lbnQsIHVzZUV4aXN0aW5nOiBBWFNlbGVjdEJveENvbXBvbmVudCB9LFxuICAgIHsgcHJvdmlkZTogQVhDbG9zYmFsZUNvbXBvbmVudCwgdXNlRXhpc3Rpbmc6IEFYU2VsZWN0Qm94Q29tcG9uZW50IH0sXG4gICAgeyBwcm92aWRlOiBBWFNlYXJjaGFibGVDb21wb25lbnQsIHVzZUV4aXN0aW5nOiBBWFNlbGVjdEJveENvbXBvbmVudCB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gQVhTZWxlY3RCb3hDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQVhTZWxlY3RCb3hDb21wb25lbnRcbiAgZXh0ZW5kcyBjbGFzc2VzKE1YRHJvcGRvd25Cb3hCYXNlQ29tcG9uZW50LCBNWFNlbGVjdGlvblZhbHVlQ29tcG9uZW50LCBNWExvb2tDb21wb25lbnQpXG4gIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdFxue1xuICBpc0xvYWRpbmcgPSBmYWxzZTtcbiAgcHJvdGVjdGVkIHJlbmRlckxpc3QgPSBmYWxzZTtcblxuICBwcm90ZWN0ZWQgZHJvcGRvd25TaXplczogeyB3aWR0aDogc3RyaW5nOyBoZWlnaHQ6IHN0cmluZyB9ID0geyB3aWR0aDogJzEwMCUnLCBoZWlnaHQ6ICdhdXRvJyB9O1xuXG4gIHByb3RlY3RlZCBfbGlzdERhdGFTb3VyY2U6IEFYRGF0YVNvdXJjZTx1bmtub3duPiA9IGNvbnZlcnRBcnJheVRvRGF0YVNvdXJjZShbXSwge1xuICAgIGtleTogdGhpcy52YWx1ZUZpZWxkLFxuICAgIHBhZ2VTaXplOiAxMCxcbiAgfSk7XG5cbiAgcHJpdmF0ZSBfZGF0YVNvdXJjZTogQVhEYXRhU291cmNlPHVua25vd24+IHwgdW5rbm93bltdO1xuICBwdWJsaWMgZ2V0IGRhdGFTb3VyY2UoKTogQVhEYXRhU291cmNlPHVua25vd24+IHwgdW5rbm93bltdIHtcbiAgICByZXR1cm4gdGhpcy5fZGF0YVNvdXJjZTtcbiAgfVxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGRhdGFTb3VyY2UodjogQVhEYXRhU291cmNlPHVua25vd24+IHwgdW5rbm93bltdKSB7XG4gICAgdGhpcy5fZGF0YVNvdXJjZSA9IHY7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkodikpIHtcbiAgICAgIHRoaXMuX2xpc3REYXRhU291cmNlID0gY29udmVydEFycmF5VG9EYXRhU291cmNlKHYsIHsga2V5OiB0aGlzLnZhbHVlRmllbGQsIHBhZ2VTaXplOiAxMCB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fbGlzdERhdGFTb3VyY2UgPSB0aGlzLmRhdGFTb3VyY2UgYXMgQVhEYXRhU291cmNlPHVua25vd24+O1xuICAgIH1cbiAgICB0aGlzLl9saXN0RGF0YVNvdXJjZS5vbkNoYW5nZWQuc3Vic2NyaWJlKChkYXRhKSA9PiB7XG4gICAgICB0aGlzLnNldERyb3Bkb3duU2l6ZShkYXRhLnRvdGFsQ291bnQpO1xuICAgIH0pO1xuICB9XG5cbiAgQElucHV0KClcbiAgcGxhY2Vob2xkZXI6IHN0cmluZztcblxuICBASW5wdXQoKVxuICBpdGVtVGVtcGxhdGU6IFRlbXBsYXRlUmVmPHVua25vd24+O1xuXG4gIEBJbnB1dCgpXG4gIGVtcHR5VGVtcGxhdGU6IFRlbXBsYXRlUmVmPHVua25vd24+O1xuXG4gIEBJbnB1dCgpXG4gIGxvYWRpbmdUZW1wbGF0ZTogVGVtcGxhdGVSZWY8dW5rbm93bj47XG5cbiAgQFZpZXdDaGlsZChBWExpc3RDb21wb25lbnQpXG4gIGxpc3Q6IEFYTGlzdENvbXBvbmVudDtcblxuICBAQ29udGVudENoaWxkKEFYU2VhcmNoQm94Q29tcG9uZW50LCB7IHN0YXRpYzogdHJ1ZSB9KVxuICBzZWFyY2hCb3g6IEFYU2VhcmNoQm94Q29tcG9uZW50O1xuXG4gIEBWaWV3Q2hpbGQoQVhEcm9wZG93bkJveENvbXBvbmVudCwgeyBzdGF0aWM6IHRydWUgfSlcbiAgcHJvdGVjdGVkIGRyb3Bkb3duOiBBWERyb3Bkb3duQm94Q29tcG9uZW50O1xuXG4gIHByb3RlY3RlZCBhdXRvSGVpZ2h0ID0gZmFsc2U7XG5cbiAgcHJvdGVjdGVkIGRlZmF1bHRBY3Rpb25TaGVldFRpdGxlID0gQVhUcmFuc2xhdG9yLmdldCgnc2VsZWN0Ym94LnBvcG92ZXIudGl0bGUnKTtcblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgc3VwZXIubmdBZnRlclZpZXdJbml0KCk7XG4gICAgdGhpcy5zZXREcm9wZG93blNpemUoKTtcbiAgfVxuXG4gIGdldEl0ZW1CeUtleShrZXk6IHVua25vd24pOiBQcm9taXNlPHVua25vd24+IHwgdW5rbm93biB7XG4gICAgcmV0dXJuIHRoaXMuX2xpc3REYXRhU291cmNlLmZpbmQoa2V5KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBfaGFuZGxlT25PcGVuZWRFdmVudCgpIHtcbiAgICB0aGlzLnJlbmRlckxpc3QgPSB0cnVlO1xuICAgIHRoaXMubGlzdD8ucmVuZGVyKCk7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLmxpc3Q/LmZvY3VzKCk7XG4gICAgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgX2hhbmRsZU9uQ2xvc2VkRXZlbnQoKSB7XG4gICAgLy90aGlzLmlucHV0LmZvY3VzKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgX2hhbmRsZUJhZGdlUmVtb3ZlKGU6IE1vdXNlRXZlbnQsIGl0ZW0pIHtcbiAgICB0aGlzLnVuc2VsZWN0SXRlbXMoaXRlbSk7XG4gICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBfaGFuZGxlVmFsdWVDaGFuZ2VkKGU6IEFYVmFsdWVDaGFuZ2VkRXZlbnQpIHtcbiAgICBpZiAoZS5pc1VzZXJJbnRlcmFjdGlvbikge1xuICAgICAgdGhpcy5jb21taXRWYWx1ZShlLmNvbXBvbmVudC5zZWxlY3RlZEl0ZW1zLCB0cnVlKTtcbiAgICB9XG4gIH1cblxuICBvdmVycmlkZSBpbnRlcm5hbFZhbHVlQ2hhbmdlZCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMubXVsdGlwbGUpIHRoaXMuY2xvc2UoKTtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuZGV0ZWN0QXV0b0hlaWdodCgpO1xuICAgIH0sIDEwMCk7XG4gIH1cblxuICBwcml2YXRlIGRldGVjdEF1dG9IZWlnaHQoKSB7XG4gICAgY29uc3QgY29udGFpbmVyV2lkdGg6IG51bWJlciA9XG4gICAgICB0aGlzLmdldEhvc3RFbGVtZW50KCkucXVlcnlTZWxlY3RvcjxIVE1MRGl2RWxlbWVudD4oJy5heC1zZWxlY3QtYm94LXNlbGVjdGlvbicpLmNsaWVudFdpZHRoO1xuICAgIGNvbnN0IGl0ZW1zV2lkdGg6IG51bWJlciA9IEFycmF5LmZyb20oXG4gICAgICB0aGlzLmdldEhvc3RFbGVtZW50KCkucXVlcnlTZWxlY3RvckFsbDxIVE1MRGl2RWxlbWVudD4oJy5heC1zZWxlY3RlZC10b2tlbicpLFxuICAgICkucmVkdWNlKChhLCBpKSA9PiBhICsgaS5jbGllbnRXaWR0aCwgMCk7XG4gICAgdGhpcy5hdXRvSGVpZ2h0ID0gY29udGFpbmVyV2lkdGggLSBpdGVtc1dpZHRoIDw9IDg7XG4gICAgdGhpcy5kcm9wZG93bi51cGRhdGVQb3NpdGlvbigpO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXREcm9wZG93blNpemUoY291bnQgPSAwKSB7XG4gICAgaWYgKHRoaXMuZHJvcGRvd24uaXNBY3Rpb25zaGVldFN0eWxlKSB7XG4gICAgICB0aGlzLmRyb3Bkb3duU2l6ZXMgPSB7XG4gICAgICAgIHdpZHRoOiAnMTAwJScsXG4gICAgICAgIGhlaWdodDogWydhdXRvJywgJzBweCddLmluY2x1ZGVzKHRoaXMuZHJvcGRvd25TaXplcy5oZWlnaHQpXG4gICAgICAgICAgPyBgJHtNYXRoLm1pbigxNSwgY291bnQpICogNDB9cHhgXG4gICAgICAgICAgOiB0aGlzLmRyb3Bkb3duU2l6ZXMuaGVpZ2h0LFxuICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy9UT0RPOiBjYWxjIG1pbi13aXRoIGZyb20gZm9ybXVsYSBvciBjb25maWdcbiAgICAgIGNvbnN0IGhvc3RXaWR0aCA9IE1hdGgubWF4KHRoaXMuZ2V0SG9zdEVsZW1lbnQoKS5vZmZzZXRXaWR0aCwgMjAwKTtcbiAgICAgIHRoaXMuZHJvcGRvd25TaXplcyA9IHtcbiAgICAgICAgd2lkdGg6IGAke2hvc3RXaWR0aH1weGAsXG4gICAgICAgIGhlaWdodDogY291bnQgPT0gMCA/ICdhdXRvJyA6IGAke01hdGgubWluKDUsIGNvdW50KSAqIDQwfXB4YCxcbiAgICAgIH07XG4gICAgfVxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5kcm9wZG93bi51cGRhdGVQb3NpdGlvbigpO1xuICAgIH0pO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bicsIFsnJGV2ZW50J10pXG4gIF9oYW5kbGVLZXlkb3duKGU6IEtleWJvYXJkRXZlbnQpIHtcbiAgICBpZiAoZS5jb2RlID09PSAnQXJyb3dEb3duJyB8fCBlLmNvZGUgPT09ICdBcnJvd1VwJykge1xuICAgICAgdGhpcy5zZWxlY3RJdGVtQnlOYXYoZS5jb2RlID09PSAnQXJyb3dEb3duJyA/IDEgOiAtMSk7XG4gICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgfSBlbHNlIGlmIChlLmNvZGUgPT09ICdCYWNrc3BhY2UnKSB7XG4gICAgICB0aGlzLnVuc2VsZWN0SXRlbXModGhpcy5zZWxlY3RlZEl0ZW1zLnBvcCgpKTtcbiAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG4gICAgLy8gaWYgKChlLmNvZGUgPT09ICdTcGFjZScgfHwgZS5jb2RlID09PSAnRW50ZXInKSAmJiB0aGlzLmhhc0l0ZW1zKSB7XG4gICAgLy8gICAgIGlmICh0aGlzLnJlYWRvbmx5IHx8IHRoaXMuZGlzYWJsZWQpIHtcbiAgICAvLyAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAvLyAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgLy8gICAgICAgICByZXR1cm47XG4gICAgLy8gICAgIH1cbiAgICAvLyAgICAgY29uc3QgaWQgPSBkb2N1bWVudC5hY3RpdmVFbGVtZW50Py5jbG9zZXN0KCdsaScpPy5kYXRhc2V0Py5pZDtcbiAgICAvLyAgICAgdGhpcy50b2dnbGVTZWxlY3QoaWQpO1xuICAgIC8vICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgLy8gICAgIGUuc3RvcFByb3BhZ2F0aW9uKClcbiAgICAvLyB9XG4gIH1cblxuICBwcml2YXRlIHNlbGVjdEl0ZW1CeU5hdihzaWduOiAxIHwgLTEpIHtcbiAgICBpZiAoQXJyYXkuaXNBcnJheSh0aGlzLmRhdGFTb3VyY2UpICYmICF0aGlzLm11bHRpcGxlKSB7XG4gICAgICBjb25zdCBpdGVtcyA9IHRoaXMubm9ybWFsaXplSXRlbXNMaXN0KHRoaXMuZGF0YVNvdXJjZSk7XG4gICAgICBjb25zdCBfbGFzdDogYW55ID0gbGFzdCh0aGlzLnNlbGVjdGVkSXRlbXMpO1xuICAgICAgbGV0IGkgPSAtMTtcbiAgICAgIGlmIChfbGFzdCkge1xuICAgICAgICBpID0gZmluZExhc3RJbmRleChpdGVtcywgW3RoaXMudmFsdWVGaWVsZCwgX2xhc3RbdGhpcy52YWx1ZUZpZWxkXV0pO1xuICAgICAgfVxuICAgICAgaSArPSBzaWduO1xuICAgICAgaWYgKGkgPCAwIHx8IGkgPj0gaXRlbXMubGVuZ3RoKSByZXR1cm47XG4gICAgICBjb25zdCBuZXh0ID0gbnRoPHVua25vd24+KGl0ZW1zLCBpKTtcbiAgICAgIGlmIChuZXh0KSB7XG4gICAgICAgIHRoaXMuc2VsZWN0SXRlbXMobmV4dCk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMub3BlbigpO1xuICAgIH1cbiAgfVxuXG4gIHNlYXJjaCh0ZXJtOiBzdHJpbmcpIHtcbiAgICBpZiAodGVybSkge1xuICAgICAgdGhpcy5fbGlzdERhdGFTb3VyY2UuZmlsdGVyKHsgZmllbGQ6IHRoaXMudGV4dEZpZWxkLCB2YWx1ZTogdGVybSwgb3BlcmF0b3I6IHsgdHlwZTogJ2NvbnRhaW5zJyB9IH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9saXN0RGF0YVNvdXJjZS5jbGVhckZpbHRlcigpO1xuICAgIH1cbiAgICB0aGlzLl9saXN0RGF0YVNvdXJjZS5yZWZyZXNoKCk7XG4gIH1cblxuICByZWZyZXNoKCkge1xuICAgIHRoaXMuY2xlYXIoZmFsc2UpO1xuICAgIHRoaXMuY2xlYXJTZWxlY3Rpb25DYWNoZSgpO1xuICAgIHRoaXMubGlzdD8ucmVmcmVzaCgpO1xuICAgIHRoaXMuY2xvc2UoKTtcbiAgfVxufVxuIiwiPGF4LWRyb3Bkb3duLWJveCBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIiAob25PcGVuZWQpPVwiX2hhbmRsZU9uT3BlbmVkRXZlbnQoKVwiIChvbkNsb3NlZCk9XCJfaGFuZGxlT25DbG9zZWRFdmVudCgpXCJcbiAgW2xvb2tdPVwibG9va1wiIFtjbGFzcy5heC1hdXRvLWhlaWdodF09XCJhdXRvSGVpZ2h0XCI+XG4gIDxuZy1jb250YWluZXIgaW5wdXQ+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXgtcHJlZml4XCI+IDwvbmctY29udGVudD5cbiAgICA8ZGl2IGNsYXNzPVwiYXgtc2VsZWN0LWJveC1zZWxlY3Rpb25cIiBbY2xhc3MuYXgtbXVsdGlwbGVdPVwibXVsdGlwbGVcIiBbdGFiaW5kZXhdPVwidGFiSW5kZXhcIlxuICAgICAgKGZvY3VzKT1cImVtaXRPbkZvY3VzRXZlbnQoJGV2ZW50KVwiIChibHVyKT1cImVtaXRPbkJsdXJFdmVudCgkZXZlbnQpXCIgKGNsaWNrKT1cInRvZ2dsZSgpXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiYXgtcGxhY2Vob2xkZXJcIiByb2xlPVwidGV4dGJveFwiIGFyZWEtcmVhZG9ubHk9XCJ0cnVlXCIgKm5nSWY9XCJzZWxlY3RlZEl0ZW1zLmxlbmd0aCA9PT0gMFwiPlxuICAgICAgICB7eyBwbGFjZWhvbGRlciB9fVxuICAgICAgPC9kaXY+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIHNlbGVjdGVkSXRlbXNcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImF4LXNlbGVjdGVkLXRva2VuXCI+XG4gICAgICAgICAge3sgZ2V0RGlzcGxheVRleHQoaXRlbSkgfX1cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImF4LWljb24gYXgtaWNvbi1jbG9zZVwiIChjbGljayk9XCJfaGFuZGxlQmFkZ2VSZW1vdmUoJGV2ZW50LCBpdGVtKVwiICpuZ0lmPVwibXVsdGlwbGVcIj5cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiIGF4LWNsZWFyLWJ1dHRvblwiPjwvbmctY29udGVudD5cbiAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIiBbdGFiSW5kZXhdPVwiLTFcIiBjbGFzcz1cImF4LWdlbmVyYWwtYnV0dG9uIGF4LWJ1dHRvbi1pY29uXCJcbiAgICAgIChjbGljayk9XCJ0b2dnbGUoKVwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzTG9hZGluZyAmJiAhaXNPcGVuOyBlbHNlIGljb25UZW1wbGF0ZVwiPlxuICAgICAgICA8YXgtbG9hZGluZyB0eXBlPVwic3Bpbm5lclwiPjwvYXgtbG9hZGluZz5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPG5nLXRlbXBsYXRlICNpY29uVGVtcGxhdGU+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiYXgtaWNvbiBheC1pY29uLWNoZXZyb24tbGVmdCBheC1hcnJvdy1idXR0b25cIiBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAnLXJvdGF0aW9uLTkwJzogIWlzT3BlbixcbiAgICAgICAgICAgICdyb3RhdGlvbi05MCc6IGlzT3BlblxuICAgICAgICAgIH1cIj48L3NwYW4+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvYnV0dG9uPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImF4LXN1ZmZpeFwiPiA8L25nLWNvbnRlbnQ+XG4gICAgPG5nLXRlbXBsYXRlICNzZWFyY2g+XG4gICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJheC1zZWFyY2gtYm94XCI+IDwvbmctY29udGVudD5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L25nLWNvbnRhaW5lcj5cbiAgPG5nLWNvbnRhaW5lciBwYW5lbD5cbiAgICA8ZGl2IGNsYXNzPVwiYXgtc2VsZWN0LWJveC1wYW5lbFwiIFtzdHlsZS5taW4td2lkdGhdPVwiZHJvcGRvd25TaXplcy53aWR0aFwiPlxuICAgICAgPGF4LWhlYWRlciBjbGFzcz1cImF4LXNvbGlkXCIgKm5nSWY9XCJkcm9wZG93bi5pc0FjdGlvbnNoZWV0U3R5bGVcIj5cbiAgICAgICAgPGF4LXRpdGxlPnt7IHBsYWNlaG9sZGVyIHx8IGRlZmF1bHRBY3Rpb25TaGVldFRpdGxlIH19PC9heC10aXRsZT5cbiAgICAgICAgPGF4LWNsb3NlLWJ1dHRvblxuICAgICAgICAgIFtpY29uXT1cIm11bHRpcGxlID8gJ2F4LWljb24gYXgtaWNvbi1kb25lICFheC10ZXh0LXByaW1hcnktNTAwJyA6ICdheC1pY29uIGF4LWljb24tY2xvc2UnXCI+PC9heC1jbG9zZS1idXR0b24+XG4gICAgICA8L2F4LWhlYWRlcj5cbiAgICAgIDxkaXYgY2xhc3M9XCJheC1zZWFyY2gtY29udGFpbmVyXCIgKm5nSWY9XCJzZWFyY2hCb3hcIj5cbiAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInNlYXJjaFwiPjwvbmctdGVtcGxhdGU+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxheC1saXN0ICpuZ0lmPVwicmVuZGVyTGlzdFwiIFtkYXRhU291cmNlXT1cIl9saXN0RGF0YVNvdXJjZVwiIFttdWx0aXBsZV09XCJtdWx0aXBsZVwiXG4gICAgICAgIFtzdHlsZS5oZWlnaHRdPVwiZHJvcGRvd25TaXplcy5oZWlnaHRcIiBbdmFsdWVGaWVsZF09XCJ2YWx1ZUZpZWxkXCIgW3RleHRGaWVsZF09XCJ0ZXh0RmllbGRcIlxuICAgICAgICBbZW1wdHlUZW1wbGF0ZV09XCJlbXB0eVRlbXBsYXRlID8/IGVtcHR5XCIgW2l0ZW1UZW1wbGF0ZV09XCJpdGVtVGVtcGxhdGVcIiBbbG9hZGluZ1RlbXBsYXRlXT1cImxvYWRpbmdUZW1wbGF0ZVwiXG4gICAgICAgIFtuZ01vZGVsXT1cInZhbHVlXCIgKG9uVmFsdWVDaGFuZ2VkKT1cIl9oYW5kbGVWYWx1ZUNoYW5nZWQoJGV2ZW50KVwiIFtzZWxlY3Rpb25Nb2RlXT1cIidpdGVtJ1wiPlxuICAgICAgICA8bmctdGVtcGxhdGUgI2VtcHR5PiBObyBJdGVtcyEgPC9uZy10ZW1wbGF0ZT5cbiAgICAgIDwvYXgtbGlzdD5cbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImF4LWZvb3RlclwiPiA8L25nLWNvbnRlbnQ+XG4gICAgPC9kaXY+XG4gIDwvbmctY29udGFpbmVyPlxuPC9heC1kcm9wZG93bi1ib3g+XG48bmctY29udGVudCBzZWxlY3Q9XCJheC12YWxpZGF0aW9uLXJ1bGVcIj4gPC9uZy1jb250ZW50PiJdfQ==
253
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LWJveC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvc2VsZWN0LWJveC9zcmMvbGliL3NlbGVjdC1ib3guY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3NlbGVjdC1ib3gvc3JjL2xpYi9zZWxlY3QtYm94LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxvQkFBb0IsRUFDcEIsbUJBQW1CLEVBQ25CLFdBQVcsRUFFWCxvQkFBb0IsRUFDcEIscUJBQXFCLEVBQ3JCLG1CQUFtQixFQUVuQixlQUFlLEVBQ2YseUJBQXlCLEVBQ3pCLHdCQUF3QixFQUN4Qix1QkFBdUIsRUFDdkIsd0JBQXdCLEVBQ3pCLE1BQU0sMkJBQTJCLENBQUM7QUFDbkMsT0FBTyxFQUFFLHNCQUFzQixFQUFFLDBCQUEwQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDakcsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzFELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN4RCxPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osWUFBWSxFQUNaLEtBQUssRUFDTCxXQUFXLEVBQ1gsU0FBUyxFQUNULGlCQUFpQixFQUNqQixVQUFVLEVBQ1YsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxhQUFhLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNyRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sVUFBVSxDQUFDOzs7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LElBQUksRUFBRTtnQkFrRm5ELGNBQWM7c0JBRGIsWUFBWTt1QkFBQyxTQUFTLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBWENsZWFyYWJsZUNvbXBvbmVudCxcbiAgQVhDbG9zYmFsZUNvbXBvbmVudCxcbiAgQVhDb21wb25lbnQsXG4gIEFYRGF0YVNvdXJjZSxcbiAgQVhGb2N1c2FibGVDb21wb25lbnQsXG4gIEFYU2VhcmNoYWJsZUNvbXBvbmVudCxcbiAgQVhWYWx1YWJsZUNvbXBvbmVudCxcbiAgQVhWYWx1ZUNoYW5nZWRFdmVudCxcbiAgTVhMb29rQ29tcG9uZW50LFxuICBNWFNlbGVjdGlvblZhbHVlQ29tcG9uZW50LFxuICBjb252ZXJ0QXJyYXlUb0RhdGFTb3VyY2UsXG4gIEFYX1NFTEVDVElPTl9EQVRBX1RPS0VOLFxuICBNWFNlbGVjdGlvbkJyaWRnZVNlcnZpY2Vcbn0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2NvbW1vbic7XG5pbXBvcnQgeyBBWERyb3Bkb3duQm94Q29tcG9uZW50LCBNWERyb3Bkb3duQm94QmFzZUNvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9kcm9wZG93bic7XG5pbXBvcnQgeyBBWExpc3RDb21wb25lbnQgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvbGlzdCc7XG5pbXBvcnQgeyBBWFNlYXJjaEJveENvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9zZWFyY2gtYm94JztcbmltcG9ydCB7IEFYVHJhbnNsYXRvciB9IGZyb20gJ0BhY29yZXgvY29yZS90cmFuc2xhdGlvbic7XG5pbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGQsXG4gIEhvc3RMaXN0ZW5lcixcbiAgSW5wdXQsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBmb3J3YXJkUmVmLFxuICBpbmplY3QsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBmaW5kTGFzdEluZGV4LCBsYXN0LCBudGggfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgY2xhc3NlcyB9IGZyb20gJ3BvbHl0eXBlJztcblxuLyoqXG4gKiBUaGUgQnV0dG9uIGlzIGEgY29tcG9uZW50IHdoaWNoIGRldGVjdHMgdXNlciBpbnRlcmFjdGlvbiBhbmQgdHJpZ2dlcnMgYSBjb3JyZXNwb25kaW5nIGV2ZW50XG4gKlxuICogQGNhdGVnb3J5IENvbXBvbmVudHNcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXgtc2VsZWN0LWJveCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9zZWxlY3QtYm94LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc2VsZWN0LWJveC5jb21wb25lbnQuc2NzcyddLFxuICBpbnB1dHM6IFtcbiAgICAnZGlzYWJsZWQnLFxuICAgICdyZWFkb25seScsXG4gICAgJ3RhYkluZGV4JyxcbiAgICAncGxhY2Vob2xkZXInLFxuICAgICdtaW5WYWx1ZScsXG4gICAgJ21heFZhbHVlJyxcbiAgICAndmFsdWUnLFxuICAgICdzdGF0ZScsXG4gICAgJ25hbWUnLFxuICAgICdpZCcsXG4gICAgJ3R5cGUnLFxuICAgICdsb29rJyxcbiAgICAnbXVsdGlwbGUnLFxuICAgICd2YWx1ZUZpZWxkJyxcbiAgICAndGV4dEZpZWxkJyxcbiAgXSxcbiAgb3V0cHV0czogW1xuICAgICd2YWx1ZUNoYW5nZScsXG4gICAgJ3N0YXRlQ2hhbmdlJyxcbiAgICAnb25WYWx1ZUNoYW5nZWQnLFxuICAgICdvbkJsdXInLFxuICAgICdvbkZvY3VzJyxcbiAgICAncmVhZG9ubHlDaGFuZ2UnLFxuICAgICdkaXNhYmxlZENoYW5nZScsXG4gIF0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBwcm92aWRlcnM6IFtcbiAgICB7IHByb3ZpZGU6IEFYQ29tcG9uZW50LCB1c2VFeGlzdGluZzogQVhTZWxlY3RCb3hDb21wb25lbnQgfSxcbiAgICB7IHByb3ZpZGU6IEFYRm9jdXNhYmxlQ29tcG9uZW50LCB1c2VFeGlzdGluZzogQVhTZWxlY3RCb3hDb21wb25lbnQgfSxcbiAgICB7IHByb3ZpZGU6IEFYVmFsdWFibGVDb21wb25lbnQsIHVzZUV4aXN0aW5nOiBBWFNlbGVjdEJveENvbXBvbmVudCB9LFxuICAgIHsgcHJvdmlkZTogQVhDbGVhcmFibGVDb21wb25lbnQsIHVzZUV4aXN0aW5nOiBBWFNlbGVjdEJveENvbXBvbmVudCB9LFxuICAgIHsgcHJvdmlkZTogQVhDbG9zYmFsZUNvbXBvbmVudCwgdXNlRXhpc3Rpbmc6IEFYU2VsZWN0Qm94Q29tcG9uZW50IH0sXG4gICAgeyBwcm92aWRlOiBBWFNlYXJjaGFibGVDb21wb25lbnQsIHVzZUV4aXN0aW5nOiBBWFNlbGVjdEJveENvbXBvbmVudCB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gQVhTZWxlY3RCb3hDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBBWF9TRUxFQ1RJT05fREFUQV9UT0tFTixcbiAgICAgIHVzZUNsYXNzOiBNWFNlbGVjdGlvbkJyaWRnZVNlcnZpY2VcbiAgICB9XG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEFYU2VsZWN0Qm94Q29tcG9uZW50XG4gIGV4dGVuZHMgY2xhc3NlcyhNWERyb3Bkb3duQm94QmFzZUNvbXBvbmVudCwgTVhTZWxlY3Rpb25WYWx1ZUNvbXBvbmVudCwgTVhMb29rQ29tcG9uZW50KVxuICBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuICBpc0xvYWRpbmcgPSBmYWxzZTtcbiAgcHJvdGVjdGVkIHJlbmRlckxpc3QgPSBmYWxzZTtcblxuICBwcm90ZWN0ZWQgZHJvcGRvd25TaXplczogeyB3aWR0aDogc3RyaW5nOyBoZWlnaHQ6IHN0cmluZyB9ID0geyB3aWR0aDogJzEwMCUnLCBoZWlnaHQ6ICdhdXRvJyB9O1xuXG4gIHByb3RlY3RlZCBfbGlzdERhdGFTb3VyY2U6IEFYRGF0YVNvdXJjZTx1bmtub3duPiA9IGNvbnZlcnRBcnJheVRvRGF0YVNvdXJjZShbXSwge1xuICAgIGtleTogdGhpcy52YWx1ZUZpZWxkLFxuICAgIHBhZ2VTaXplOiAxMCxcbiAgfSk7XG5cbiAgcHJpdmF0ZSBfZGF0YVNvdXJjZTogQVhEYXRhU291cmNlPHVua25vd24+IHwgdW5rbm93bltdO1xuICBwdWJsaWMgZ2V0IGRhdGFTb3VyY2UoKTogQVhEYXRhU291cmNlPHVua25vd24+IHwgdW5rbm93bltdIHtcbiAgICByZXR1cm4gdGhpcy5fZGF0YVNvdXJjZTtcbiAgfVxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGRhdGFTb3VyY2UodjogQVhEYXRhU291cmNlPHVua25vd24+IHwgdW5rbm93bltdKSB7XG4gICAgdGhpcy5fZGF0YVNvdXJjZSA9IHY7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkodikpIHtcbiAgICAgIHRoaXMuX2xpc3REYXRhU291cmNlID0gY29udmVydEFycmF5VG9EYXRhU291cmNlKHYsIHsga2V5OiB0aGlzLnZhbHVlRmllbGQsIHBhZ2VTaXplOiAxMCB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fbGlzdERhdGFTb3VyY2UgPSB0aGlzLmRhdGFTb3VyY2UgYXMgQVhEYXRhU291cmNlPHVua25vd24+O1xuICAgIH1cbiAgICB0aGlzLl9saXN0RGF0YVNvdXJjZS5vbkNoYW5nZWQuc3Vic2NyaWJlKChkYXRhKSA9PiB7XG4gICAgICB0aGlzLnNldERyb3Bkb3duU2l6ZShkYXRhLnRvdGFsQ291bnQpO1xuICAgIH0pO1xuICB9XG5cbiAgQElucHV0KClcbiAgcGxhY2Vob2xkZXI6IHN0cmluZztcblxuICBASW5wdXQoKVxuICBpdGVtVGVtcGxhdGU6IFRlbXBsYXRlUmVmPHVua25vd24+O1xuXG4gIEBJbnB1dCgpXG4gIGVtcHR5VGVtcGxhdGU6IFRlbXBsYXRlUmVmPHVua25vd24+O1xuXG4gIEBJbnB1dCgpXG4gIGxvYWRpbmdUZW1wbGF0ZTogVGVtcGxhdGVSZWY8dW5rbm93bj47XG5cbiAgQFZpZXdDaGlsZChBWExpc3RDb21wb25lbnQpXG4gIGxpc3Q6IEFYTGlzdENvbXBvbmVudDtcblxuICBAQ29udGVudENoaWxkKEFYU2VhcmNoQm94Q29tcG9uZW50LCB7IHN0YXRpYzogdHJ1ZSB9KVxuICBzZWFyY2hCb3g6IEFYU2VhcmNoQm94Q29tcG9uZW50O1xuXG4gIEBWaWV3Q2hpbGQoQVhEcm9wZG93bkJveENvbXBvbmVudCwgeyBzdGF0aWM6IHRydWUgfSlcbiAgcHJvdGVjdGVkIGRyb3Bkb3duOiBBWERyb3Bkb3duQm94Q29tcG9uZW50O1xuXG4gIHByb3RlY3RlZCBhdXRvSGVpZ2h0ID0gZmFsc2U7XG5cbiAgcHJvdGVjdGVkIGRlZmF1bHRBY3Rpb25TaGVldFRpdGxlID0gQVhUcmFuc2xhdG9yLmdldCgnc2VsZWN0Ym94LnBvcG92ZXIudGl0bGUnKTtcblxuXG4gIHB1YmxpYyBzZWxlY3Rpb25TZXJ2aWNlID0gaW5qZWN0KEFYX1NFTEVDVElPTl9EQVRBX1RPS0VOKTtcblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgc3VwZXIubmdBZnRlclZpZXdJbml0KCk7XG4gICAgdGhpcy5zZXREcm9wZG93blNpemUoKTtcbiAgfVxuXG4gIGdldEl0ZW1CeUtleShrZXk6IHVua25vd24pOiBQcm9taXNlPHVua25vd24+IHwgdW5rbm93biB7XG4gICAgcmV0dXJuIHRoaXMuX2xpc3REYXRhU291cmNlLmZpbmQoa2V5KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBfaGFuZGxlT25PcGVuZWRFdmVudCgpIHtcbiAgICB0aGlzLnJlbmRlckxpc3QgPSB0cnVlO1xuICAgIHRoaXMubGlzdD8ucmVuZGVyKCk7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLmxpc3Q/LmZvY3VzKCk7XG4gICAgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgX2hhbmRsZU9uQ2xvc2VkRXZlbnQoKSB7XG4gICAgLy90aGlzLmlucHV0LmZvY3VzKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgX2hhbmRsZUJhZGdlUmVtb3ZlKGU6IE1vdXNlRXZlbnQsIGl0ZW0pIHtcbiAgICB0aGlzLnVuc2VsZWN0SXRlbXMoaXRlbSk7XG4gICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBfaGFuZGxlVmFsdWVDaGFuZ2VkKGU6IEFYVmFsdWVDaGFuZ2VkRXZlbnQpIHtcbiAgICBpZiAoZS5pc1VzZXJJbnRlcmFjdGlvbikge1xuICAgICAgdGhpcy5jb21taXRWYWx1ZShlLmNvbXBvbmVudC5zZWxlY3RlZEl0ZW1zLCB0cnVlKTtcbiAgICB9XG4gIH1cblxuICBvdmVycmlkZSBpbnRlcm5hbFZhbHVlQ2hhbmdlZCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMubXVsdGlwbGUpIHRoaXMuY2xvc2UoKTtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuZGV0ZWN0QXV0b0hlaWdodCgpO1xuICAgIH0sIDEwMCk7XG4gIH1cblxuICBwcml2YXRlIGRldGVjdEF1dG9IZWlnaHQoKSB7XG4gICAgY29uc3QgY29udGFpbmVyV2lkdGg6IG51bWJlciA9XG4gICAgICB0aGlzLmdldEhvc3RFbGVtZW50KCkucXVlcnlTZWxlY3RvcjxIVE1MRGl2RWxlbWVudD4oJy5heC1zZWxlY3QtYm94LXNlbGVjdGlvbicpLmNsaWVudFdpZHRoO1xuICAgIGNvbnN0IGl0ZW1zV2lkdGg6IG51bWJlciA9IEFycmF5LmZyb20oXG4gICAgICB0aGlzLmdldEhvc3RFbGVtZW50KCkucXVlcnlTZWxlY3RvckFsbDxIVE1MRGl2RWxlbWVudD4oJy5heC1zZWxlY3RlZC10b2tlbicpLFxuICAgICkucmVkdWNlKChhLCBpKSA9PiBhICsgaS5jbGllbnRXaWR0aCwgMCk7XG4gICAgdGhpcy5hdXRvSGVpZ2h0ID0gY29udGFpbmVyV2lkdGggLSBpdGVtc1dpZHRoIDw9IDg7XG4gICAgdGhpcy5kcm9wZG93bi51cGRhdGVQb3NpdGlvbigpO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXREcm9wZG93blNpemUoY291bnQgPSAwKSB7XG4gICAgaWYgKHRoaXMuZHJvcGRvd24uaXNBY3Rpb25zaGVldFN0eWxlKSB7XG4gICAgICB0aGlzLmRyb3Bkb3duU2l6ZXMgPSB7XG4gICAgICAgIHdpZHRoOiAnMTAwJScsXG4gICAgICAgIGhlaWdodDogWydhdXRvJywgJzBweCddLmluY2x1ZGVzKHRoaXMuZHJvcGRvd25TaXplcy5oZWlnaHQpXG4gICAgICAgICAgPyBgJHtNYXRoLm1pbigxNSwgY291bnQpICogNDB9cHhgXG4gICAgICAgICAgOiB0aGlzLmRyb3Bkb3duU2l6ZXMuaGVpZ2h0LFxuICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy9UT0RPOiBjYWxjIG1pbi13aXRoIGZyb20gZm9ybXVsYSBvciBjb25maWdcbiAgICAgIGNvbnN0IGhvc3RXaWR0aCA9IE1hdGgubWF4KHRoaXMuZ2V0SG9zdEVsZW1lbnQoKS5vZmZzZXRXaWR0aCwgMjAwKTtcbiAgICAgIHRoaXMuZHJvcGRvd25TaXplcyA9IHtcbiAgICAgICAgd2lkdGg6IGAke2hvc3RXaWR0aH1weGAsXG4gICAgICAgIGhlaWdodDogY291bnQgPT0gMCA/ICdhdXRvJyA6IGAke01hdGgubWluKDUsIGNvdW50KSAqIDQwfXB4YCxcbiAgICAgIH07XG4gICAgfVxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5kcm9wZG93bi51cGRhdGVQb3NpdGlvbigpO1xuICAgIH0pO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bicsIFsnJGV2ZW50J10pXG4gIF9oYW5kbGVLZXlkb3duKGU6IEtleWJvYXJkRXZlbnQpIHtcbiAgICBpZiAoZS5jb2RlID09PSAnQXJyb3dEb3duJyB8fCBlLmNvZGUgPT09ICdBcnJvd1VwJykge1xuICAgICAgdGhpcy5zZWxlY3RJdGVtQnlOYXYoZS5jb2RlID09PSAnQXJyb3dEb3duJyA/IDEgOiAtMSk7XG4gICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgfSBlbHNlIGlmIChlLmNvZGUgPT09ICdCYWNrc3BhY2UnKSB7XG4gICAgICB0aGlzLnVuc2VsZWN0SXRlbXModGhpcy5zZWxlY3RlZEl0ZW1zLnBvcCgpKTtcbiAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG4gICAgLy8gaWYgKChlLmNvZGUgPT09ICdTcGFjZScgfHwgZS5jb2RlID09PSAnRW50ZXInKSAmJiB0aGlzLmhhc0l0ZW1zKSB7XG4gICAgLy8gICAgIGlmICh0aGlzLnJlYWRvbmx5IHx8IHRoaXMuZGlzYWJsZWQpIHtcbiAgICAvLyAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAvLyAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgLy8gICAgICAgICByZXR1cm47XG4gICAgLy8gICAgIH1cbiAgICAvLyAgICAgY29uc3QgaWQgPSBkb2N1bWVudC5hY3RpdmVFbGVtZW50Py5jbG9zZXN0KCdsaScpPy5kYXRhc2V0Py5pZDtcbiAgICAvLyAgICAgdGhpcy50b2dnbGVTZWxlY3QoaWQpO1xuICAgIC8vICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgLy8gICAgIGUuc3RvcFByb3BhZ2F0aW9uKClcbiAgICAvLyB9XG4gIH1cblxuICBwcml2YXRlIHNlbGVjdEl0ZW1CeU5hdihzaWduOiAxIHwgLTEpIHtcbiAgICBpZiAoQXJyYXkuaXNBcnJheSh0aGlzLmRhdGFTb3VyY2UpICYmICF0aGlzLm11bHRpcGxlKSB7XG4gICAgICBjb25zdCBpdGVtcyA9IHRoaXMubm9ybWFsaXplSXRlbXNMaXN0KHRoaXMuZGF0YVNvdXJjZSk7XG4gICAgICBjb25zdCBfbGFzdDogYW55ID0gbGFzdCh0aGlzLnNlbGVjdGVkSXRlbXMpO1xuICAgICAgbGV0IGkgPSAtMTtcbiAgICAgIGlmIChfbGFzdCkge1xuICAgICAgICBpID0gZmluZExhc3RJbmRleChpdGVtcywgW3RoaXMudmFsdWVGaWVsZCwgX2xhc3RbdGhpcy52YWx1ZUZpZWxkXV0pO1xuICAgICAgfVxuICAgICAgaSArPSBzaWduO1xuICAgICAgaWYgKGkgPCAwIHx8IGkgPj0gaXRlbXMubGVuZ3RoKSByZXR1cm47XG4gICAgICBjb25zdCBuZXh0ID0gbnRoPHVua25vd24+KGl0ZW1zLCBpKTtcbiAgICAgIGlmIChuZXh0KSB7XG4gICAgICAgIHRoaXMuc2VsZWN0SXRlbXMobmV4dCk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMub3BlbigpO1xuICAgIH1cbiAgfVxuXG4gIHNlYXJjaCh0ZXJtOiBzdHJpbmcpIHtcbiAgICBpZiAodGVybSkge1xuICAgICAgdGhpcy5fbGlzdERhdGFTb3VyY2UuZmlsdGVyKHsgZmllbGQ6IHRoaXMudGV4dEZpZWxkLCB2YWx1ZTogdGVybSwgb3BlcmF0b3I6IHsgdHlwZTogJ2NvbnRhaW5zJyB9IH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9saXN0RGF0YVNvdXJjZS5jbGVhckZpbHRlcigpO1xuICAgIH1cbiAgICB0aGlzLl9saXN0RGF0YVNvdXJjZS5yZWZyZXNoKCk7XG4gIH1cblxuICByZWZyZXNoKCkge1xuICAgIHRoaXMuY2xlYXIoZmFsc2UpO1xuICAgIHRoaXMuY2xlYXJTZWxlY3Rpb25DYWNoZSgpO1xuICAgIHRoaXMubGlzdD8ucmVmcmVzaCgpO1xuICAgIHRoaXMuY2xvc2UoKTtcbiAgfVxufVxuIiwiPGF4LWRyb3Bkb3duLWJveCBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIiAob25PcGVuZWQpPVwiX2hhbmRsZU9uT3BlbmVkRXZlbnQoKVwiIChvbkNsb3NlZCk9XCJfaGFuZGxlT25DbG9zZWRFdmVudCgpXCJcbiAgW2xvb2tdPVwibG9va1wiIFtjbGFzcy5heC1hdXRvLWhlaWdodF09XCJhdXRvSGVpZ2h0XCI+XG4gIDxuZy1jb250YWluZXIgaW5wdXQ+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXgtcHJlZml4XCI+IDwvbmctY29udGVudD5cbiAgICA8ZGl2IGNsYXNzPVwiYXgtc2VsZWN0LWJveC1zZWxlY3Rpb25cIiBbY2xhc3MuYXgtbXVsdGlwbGVdPVwibXVsdGlwbGVcIiBbdGFiaW5kZXhdPVwidGFiSW5kZXhcIlxuICAgICAgKGZvY3VzKT1cImVtaXRPbkZvY3VzRXZlbnQoJGV2ZW50KVwiIChibHVyKT1cImVtaXRPbkJsdXJFdmVudCgkZXZlbnQpXCIgKGNsaWNrKT1cInRvZ2dsZSgpXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiYXgtcGxhY2Vob2xkZXJcIiByb2xlPVwidGV4dGJveFwiIGFyZWEtcmVhZG9ubHk9XCJ0cnVlXCIgKm5nSWY9XCJzZWxlY3RlZEl0ZW1zLmxlbmd0aCA9PT0gMFwiPlxuICAgICAgICB7eyBwbGFjZWhvbGRlciB9fVxuICAgICAgPC9kaXY+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIHNlbGVjdGVkSXRlbXNcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImF4LXNlbGVjdGVkLXRva2VuXCI+XG4gICAgICAgICAge3sgZ2V0RGlzcGxheVRleHQoaXRlbSkgfX1cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImF4LWljb24gYXgtaWNvbi1jbG9zZVwiIChjbGljayk9XCJfaGFuZGxlQmFkZ2VSZW1vdmUoJGV2ZW50LCBpdGVtKVwiICpuZ0lmPVwibXVsdGlwbGVcIj5cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiIGF4LWNsZWFyLWJ1dHRvblwiPjwvbmctY29udGVudD5cbiAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIiBbdGFiSW5kZXhdPVwiLTFcIiBjbGFzcz1cImF4LWdlbmVyYWwtYnV0dG9uIGF4LWJ1dHRvbi1pY29uXCJcbiAgICAgIChjbGljayk9XCJ0b2dnbGUoKVwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzTG9hZGluZyAmJiAhaXNPcGVuOyBlbHNlIGljb25UZW1wbGF0ZVwiPlxuICAgICAgICA8YXgtbG9hZGluZyB0eXBlPVwic3Bpbm5lclwiPjwvYXgtbG9hZGluZz5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPG5nLXRlbXBsYXRlICNpY29uVGVtcGxhdGU+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiYXgtaWNvbiBheC1pY29uLWNoZXZyb24tbGVmdCBheC1hcnJvdy1idXR0b25cIiBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAnLXJvdGF0aW9uLTkwJzogIWlzT3BlbixcbiAgICAgICAgICAgICdyb3RhdGlvbi05MCc6IGlzT3BlblxuICAgICAgICAgIH1cIj48L3NwYW4+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvYnV0dG9uPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImF4LXN1ZmZpeFwiPiA8L25nLWNvbnRlbnQ+XG4gICAgPG5nLXRlbXBsYXRlICNzZWFyY2g+XG4gICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJheC1zZWFyY2gtYm94XCI+IDwvbmctY29udGVudD5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L25nLWNvbnRhaW5lcj5cbiAgPG5nLWNvbnRhaW5lciBwYW5lbD5cbiAgICA8ZGl2IGNsYXNzPVwiYXgtc2VsZWN0LWJveC1wYW5lbFwiIFtzdHlsZS5taW4td2lkdGhdPVwiZHJvcGRvd25TaXplcy53aWR0aFwiPlxuICAgICAgPGF4LWhlYWRlciBjbGFzcz1cImF4LXNvbGlkXCIgKm5nSWY9XCJkcm9wZG93bi5pc0FjdGlvbnNoZWV0U3R5bGVcIj5cbiAgICAgICAgPGF4LXRpdGxlPnt7IHBsYWNlaG9sZGVyIHx8IGRlZmF1bHRBY3Rpb25TaGVldFRpdGxlIH19PC9heC10aXRsZT5cbiAgICAgICAgPGF4LWNsb3NlLWJ1dHRvblxuICAgICAgICAgIFtpY29uXT1cIm11bHRpcGxlID8gJ2F4LWljb24gYXgtaWNvbi1kb25lICFheC10ZXh0LXByaW1hcnktNTAwJyA6ICdheC1pY29uIGF4LWljb24tY2xvc2UnXCI+PC9heC1jbG9zZS1idXR0b24+XG4gICAgICA8L2F4LWhlYWRlcj5cbiAgICAgIDxkaXYgY2xhc3M9XCJheC1zZWFyY2gtY29udGFpbmVyXCIgKm5nSWY9XCJzZWFyY2hCb3hcIj5cbiAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInNlYXJjaFwiPjwvbmctdGVtcGxhdGU+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxheC1saXN0ICpuZ0lmPVwicmVuZGVyTGlzdFwiIFtkYXRhU291cmNlXT1cIl9saXN0RGF0YVNvdXJjZVwiIFttdWx0aXBsZV09XCJtdWx0aXBsZVwiXG4gICAgICAgIFtzdHlsZS5oZWlnaHRdPVwiZHJvcGRvd25TaXplcy5oZWlnaHRcIiBbdmFsdWVGaWVsZF09XCJ2YWx1ZUZpZWxkXCIgW3RleHRGaWVsZF09XCJ0ZXh0RmllbGRcIlxuICAgICAgICBbZW1wdHlUZW1wbGF0ZV09XCJlbXB0eVRlbXBsYXRlID8/IGVtcHR5XCIgW2l0ZW1UZW1wbGF0ZV09XCJpdGVtVGVtcGxhdGVcIiBbbG9hZGluZ1RlbXBsYXRlXT1cImxvYWRpbmdUZW1wbGF0ZVwiXG4gICAgICAgIFtuZ01vZGVsXT1cInZhbHVlXCIgKG9uVmFsdWVDaGFuZ2VkKT1cIl9oYW5kbGVWYWx1ZUNoYW5nZWQoJGV2ZW50KVwiIFtzZWxlY3Rpb25Nb2RlXT1cIidpdGVtJ1wiPlxuICAgICAgICA8bmctdGVtcGxhdGUgI2VtcHR5PiBObyBJdGVtcyEgPC9uZy10ZW1wbGF0ZT5cbiAgICAgIDwvYXgtbGlzdD5cbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImF4LWZvb3RlclwiPiA8L25nLWNvbnRlbnQ+XG4gICAgPC9kaXY+XG4gIDwvbmctY29udGFpbmVyPlxuPC9heC1kcm9wZG93bi1ib3g+XG48bmctY29udGVudCBzZWxlY3Q9XCJheC12YWxpZGF0aW9uLXJ1bGVcIj4gPC9uZy1jb250ZW50PiJdfQ==