@ts-core/angular 11.0.69 → 11.0.74

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,5 +1,6 @@
1
1
  import { CdkTableBaseComponent } from '../CdkTableBaseComponent';
2
2
  import { CdkTableFilterableMapCollection } from '../CdkTableFilterableMapCollection';
3
+ import { ViewContainerRef } from '@angular/core';
3
4
  export declare class CdkTableFilterableComponent<U = any, V = any> extends CdkTableBaseComponent<CdkTableFilterableMapCollection<U, V>, U, V> {
4
- constructor();
5
+ constructor(container: ViewContainerRef);
5
6
  }
@@ -1,8 +1,9 @@
1
1
  import { CdkTableBaseComponent } from '../CdkTableBaseComponent';
2
2
  import { CdkTablePaginableMapCollection } from '../CdkTablePaginableMapCollection';
3
+ import { ViewContainerRef } from '@angular/core';
3
4
  export declare class CdkTablePaginableComponent<U = any, V = any> extends CdkTableBaseComponent<CdkTablePaginableMapCollection<U, V>, U, V> {
4
5
  protected _paginator: ICdkTablePaginatorSettings;
5
- constructor();
6
+ constructor(container: ViewContainerRef);
6
7
  protected commitPaginatorProperties(): void;
7
8
  get paginator(): ICdkTablePaginatorSettings;
8
9
  set paginator(value: ICdkTablePaginatorSettings);
@@ -36,7 +36,6 @@ export class BottomSheetImpl extends DestroyableContainer {
36
36
  this.isBlink = !this.isBlink;
37
37
  };
38
38
  this.observer = new Subject();
39
- console.log(this);
40
39
  this.properties = properties;
41
40
  this.content.window = this;
42
41
  this.setProperties();
@@ -44,8 +43,8 @@ export class BottomSheetImpl extends DestroyableContainer {
44
43
  this.getReference().afterDismissed().pipe(takeUntil(this.destroyed)).subscribe(this.setClosed);
45
44
  }
46
45
  setProperties() {
47
- ViewUtil.addClass(this.container, 'bottom-sheet');
48
- ViewUtil.toggleClass(this.container, 'modal', this.config.isModal);
46
+ ViewUtil.addClass(this.container, 'vi-bottom-sheet');
47
+ ViewUtil.toggleClass(this.container, 'vi-modal', this.config.isModal);
49
48
  }
50
49
  commitIsBlinkProperties() { }
51
50
  commitIsDisabledProperties() { }
@@ -199,4 +198,4 @@ export class BottomSheetImpl extends DestroyableContainer {
199
198
  // --------------------------------------------------------------------------
200
199
  BottomSheetImpl.BLINK_DELAY = 500;
201
200
  BottomSheetImpl.SHAKE_DELAY = 500;
202
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQm90dG9tU2hlZXRJbXBsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2JvdHRvbVNoZWV0L2NvbXBvbmVudC9Cb3R0b21TaGVldEltcGwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFjLE9BQU8sRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFDekQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3BELE9BQU8sS0FBSyxDQUFDLE1BQU0sUUFBUSxDQUFDO0FBQzVCLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBR3ZELE9BQU8sRUFBVyxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUc1RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRXJELE1BQU0sT0FBTyxlQUF5QixTQUFRLG9CQUFvQjtJQXlCOUQsNkVBQTZFO0lBQzdFLEVBQUU7SUFDRixlQUFlO0lBQ2YsRUFBRTtJQUNGLDZFQUE2RTtJQUU3RSxZQUFZLFVBQTRCO1FBQ3BDLEtBQUssRUFBRSxDQUFDO1FBdEJaLDZFQUE2RTtRQUM3RSxFQUFFO1FBQ0YsY0FBYztRQUNkLEVBQUU7UUFDRiw2RUFBNkU7UUFFckUsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUcxQixnQkFBVyxHQUFZLEtBQUssQ0FBQztRQXlCckMsNkVBQTZFO1FBQzdFLEVBQUU7UUFDRixxQkFBcUI7UUFDckIsRUFBRTtRQUNGLDZFQUE2RTtRQUVuRSxjQUFTLEdBQUcsR0FBUyxFQUFFO1lBQzdCLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzlCLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNuQixDQUFDLENBQUM7UUFFUSxjQUFTLEdBQUcsR0FBUyxFQUFFO1lBQzdCLElB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QyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDNUYsQ0FBQztJQUVELElBQVcsUUFBUTtRQUNmLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ2hHLENBQUM7SUFFRCxJQUFXLE9BQU87UUFDZCxPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDO0lBQ0QsSUFBVyxPQUFPLENBQUMsS0FBYyxJQUFHLENBQUM7SUFFckMsSUFBVyxXQUFXO1FBQ2xCLE9BQU8sS0FBSyxDQUFDO0lBQ2pCLENBQUM7SUFDRCxJQUFXLFdBQVcsQ0FBQyxLQUFjLElBQUcsQ0FBQztJQUV6QyxJQUFXLFVBQVU7UUFDakIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzVCLENBQUM7SUFDRCxJQUFXLFVBQVUsQ0FBQyxLQUFjO1FBQ2hDLElBQUksS0FBSyxLQUFLLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDNUIsT0FBTztTQUNWO1FBQ0QsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7UUFDekIsSUFBSSxDQUFDLDBCQUEwQixFQUFFLENBQUM7UUFDbEMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUM1QyxDQUFDOztBQXhQRCw2RUFBNkU7QUFDN0UsRUFBRTtBQUNGLGFBQWE7QUFDYixFQUFFO0FBQ0YsNkVBQTZFO0FBRS9ELDJCQUFXLEdBQUcsR0FBRyxDQUFDO0FBQ2xCLDJCQUFXLEdBQUcsR0FBRyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL2ludGVybmFsL29wZXJhdG9ycyc7XG5pbXBvcnQgKiBhcyBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBEZXN0cm95YWJsZUNvbnRhaW5lciB9IGZyb20gJ0B0cy1jb3JlL2NvbW1vbic7XG5pbXBvcnQgeyBNYXRCb3R0b21TaGVldFJlZiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2JvdHRvbS1zaGVldCc7XG5pbXBvcnQgeyBXaW5kb3dDb25maWcgfSBmcm9tICcuLi8uLi93aW5kb3cvV2luZG93Q29uZmlnJztcbmltcG9ydCB7IElXaW5kb3csIFdpbmRvd0V2ZW50IH0gZnJvbSAnLi4vLi4vd2luZG93L0lXaW5kb3cnO1xuaW1wb3J0IHsgSVdpbmRvd0NvbnRlbnQgfSBmcm9tICcuLi8uLi93aW5kb3cvSVdpbmRvd0NvbnRlbnQnO1xuaW1wb3J0IHsgV2luZG93UHJvcGVydGllcyB9IGZyb20gJy4uLy4uL3dpbmRvdy9XaW5kb3dQcm9wZXJ0aWVzJztcbmltcG9ydCB7IFZpZXdVdGlsIH0gZnJvbSAnLi4vLi4vdXRpbC9WaWV3VXRpbCc7XG5pbXBvcnQgeyBXaW5kb3dJbXBsIH0gZnJvbSAnLi4vLi4vd2luZG93L1dpbmRvd0ltcGwnO1xuXG5leHBvcnQgY2xhc3MgQm90dG9tU2hlZXRJbXBsPFQgPSBhbnk+IGV4dGVuZHMgRGVzdHJveWFibGVDb250YWluZXIgaW1wbGVtZW50cyBJV2luZG93IHtcbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vXG4gICAgLy8gIENvbnN0YW50c1xuICAgIC8vXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIHB1YmxpYyBzdGF0aWMgQkxJTktfREVMQVkgPSA1MDA7XG4gICAgcHVibGljIHN0YXRpYyBTSEFLRV9ERUxBWSA9IDUwMDtcblxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy9cbiAgICAvLyAgUHJvcGVydGllc1xuICAgIC8vXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIHByaXZhdGUgX2lzQmxpbms6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBwcml2YXRlIGJsaW5rVGltZXI6IGFueTtcblxuICAgIHByaXZhdGUgX2lzRGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBwcm90ZWN0ZWQgcHJvcGVydGllczogV2luZG93UHJvcGVydGllcztcblxuICAgIHByb3RlY3RlZCBzdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgICBwcm90ZWN0ZWQgb2JzZXJ2ZXI6IFN1YmplY3Q8c3RyaW5nPjtcblxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy9cbiAgICAvLyAgQ29uc3RydWN0b3JcbiAgICAvL1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgICBjb25zdHJ1Y3Rvcihwcm9wZXJ0aWVzOiBXaW5kb3dQcm9wZXJ0aWVzKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMub2JzZXJ2ZXIgPSBuZXcgU3ViamVjdCgpO1xuXG4gICAgICAgIGNvbnNvbGUubG9nKHRoaXMpO1xuICAgICAgICB0aGlzLnByb3BlcnRpZXMgPSBwcm9wZXJ0aWVzO1xuICAgICAgICB0aGlzLmNvbnRlbnQud2luZG93ID0gdGhpcztcblxuICAgICAgICB0aGlzLnNldFByb3BlcnRpZXMoKTtcbiAgICAgICAgdGhpcy5nZXRSZWZlcmVuY2UoKS5hZnRlck9wZW5lZCgpLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveWVkKSkuc3Vic2NyaWJlKHRoaXMuc2V0T3BlbmVkKTtcbiAgICAgICAgdGhpcy5nZXRSZWZlcmVuY2UoKS5hZnRlckRpc21pc3NlZCgpLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveWVkKSkuc3Vic2NyaWJlKHRoaXMuc2V0Q2xvc2VkKTtcbiAgICB9XG5cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vXG4gICAgLy8gIFByb3RlY3RlZCBNZXRob2RzXG4gICAgLy9cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gICAgcHJvdGVjdGVkIHNldENsb3NlZCA9ICgpOiB2b2lkID0+IHtcbiAgICAgICAgdGhpcy5lbWl0KFdpbmRvd0V2ZW50LkNMT1NFRCk7XG4gICAgICAgIHRoaXMuZGVzdHJveSgpO1xuICAgIH07XG5cbiAgICBwcm90ZWN0ZWQgc2V0T3BlbmVkID0gKCk6IHZvaWQgPT4ge1xuICAgICAgICB0aGlzLmVtaXQoV2luZG93RXZlbnQuT1BFTkVEKTtcbiAgICB9O1xuXG4gICAgcHJvdGVjdGVkIGJsaW5rVG9nZ2xlID0gKCk6IHZvaWQgPT4ge1xuICAgICAgICB0aGlzLmlzQmxpbmsgPSAhdGhpcy5pc0JsaW5rO1xuICAgIH07XG5cbiAgICBwcm90ZWN0ZWQgc2V0UHJvcGVydGllcygpOiB2b2lkIHtcbiAgICAgICAgVmlld1V0aWwuYWRkQ2xhc3ModGhpcy5jb250YWluZXIsICdib3R0b20tc2hlZXQnKTtcbiAgICAgICAgVmlld1V0aWwudG9nZ2xlQ2xhc3ModGhpcy5jb250YWluZXIsICdtb2RhbCcsIHRoaXMuY29uZmlnLmlzTW9kYWwpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBjb21taXRJc0JsaW5rUHJvcGVydGllcygpOiB2b2lkIHt9XG4gICAgcHJvdGVjdGVkIGNvbW1pdElzRGlzYWJsZWRQcm9wZXJ0aWVzKCk6IHZvaWQge31cblxuICAgIHByb3RlY3RlZCBnZXRDb25maWcoKTogV2luZG93Q29uZmlnIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucHJvcGVydGllcy5jb25maWc7XG4gICAgfVxuICAgIHByb3RlY3RlZCBnZXRDb250YWluZXIoKTogSFRNTEVsZW1lbnQge1xuICAgICAgICByZXR1cm4gdGhpcy5jb250YWluZXI7XG4gICAgfVxuICAgIHByb3RlY3RlZCBnZXRSZWZlcmVuY2UoKTogTWF0Qm90dG9tU2hlZXRSZWY8SVdpbmRvd0NvbnRlbnQ8VD4+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMucHJvcGVydGllcy5yZWZlcmVuY2UgYXMgYW55O1xuICAgIH1cblxuICAgIHByaXZhdGUgc3RvcEJsaW5rSWZOZWVkKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmlzQmxpbmsgPSBmYWxzZTtcbiAgICAgICAgaWYgKCF0aGlzLmJsaW5rVGltZXIpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjbGVhckludGVydmFsKHRoaXMuYmxpbmtUaW1lcik7XG4gICAgICAgIHRoaXMuYmxpbmtUaW1lciA9IG51bGw7XG4gICAgfVxuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvL1xuICAgIC8vICBQdWJsaWMgTWV0aG9kc1xuICAgIC8vXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIHB1YmxpYyBlbWl0KGV2ZW50OiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vYnNlcnZlci5uZXh0KGV2ZW50KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY2xvc2UoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZ2V0UmVmZXJlbmNlKCkuZGlzbWlzcygpO1xuICAgIH1cblxuICAgIHB1YmxpYyBkZXN0cm95KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5pc0Rlc3Ryb3llZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHN1cGVyLmRlc3Ryb3koKTtcblxuICAgICAgICBpZiAoIV8uaXNOaWwodGhpcy5jb250ZW50KSkge1xuICAgICAgICAgICAgdGhpcy5jb250ZW50LmRlc3Ryb3koKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghXy5pc05pbCh0aGlzLm9ic2VydmVyKSkge1xuICAgICAgICAgICAgdGhpcy5vYnNlcnZlci5jb21wbGV0ZSgpO1xuICAgICAgICAgICAgdGhpcy5vYnNlcnZlciA9IG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnByb3BlcnRpZXMgPSBudWxsO1xuXG4gICAgICAgIGNsZWFySW50ZXJ2YWwodGhpcy5ibGlua1RpbWVyKTtcbiAgICAgICAgdGhpcy5ibGlua1RpbWVyID0gbnVsbDtcbiAgICB9XG5cbiAgICBwdWJsaWMgYmxpbmsoKTogdm9pZCB7XG4gICAgICAgIGNsZWFySW50ZXJ2YWwodGhpcy5ibGlua1RpbWVyKTtcbiAgICAgICAgdGhpcy5ibGlua1RpbWVyID0gc2V0SW50ZXJ2YWwodGhpcy5ibGlua1RvZ2dsZSwgV2luZG93SW1wbC5CTElOS19ERUxBWSk7XG4gICAgfVxuXG4gICAgcHVibGljIHNoYWtlKCk6IHZvaWQge31cblxuICAgIHB1YmxpYyBzZXRPblRvcCgpOiB2b2lkIHt9XG5cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vXG4gICAgLy8gIFNpemUgTWV0aG9kc1xuICAgIC8vXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIHB1YmxpYyBnZXRXaWR0aCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gTmFOO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRIZWlnaHQoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIE5hTjtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0V2lkdGgodmFsdWU6IG51bWJlciwgaXNOZWVkTm90aWZ5OiBib29sZWFuID0gdHJ1ZSk6IHZvaWQge31cblxuICAgIHB1YmxpYyBzZXRIZWlnaHQodmFsdWU6IG51bWJlciwgaXNOZWVkTm90aWZ5OiBib29sZWFuID0gdHJ1ZSk6IHZvaWQge31cblxuICAgIHB1YmxpYyBzZXRTaXplKHdpZHRoOiBudW1iZXIsIGhlaWdodDogbnVtYmVyKTogdm9pZCB7fVxuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvL1xuICAgIC8vICBNb3ZlIE1ldGhvZHNcbiAgICAvL1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgICBwdWJsaWMgZ2V0WCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gTmFOO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXRYKHZhbHVlOiBudW1iZXIsIGlzTmVlZE5vdGlmeTogYm9vbGVhbiA9IHRydWUpOiB2b2lkIHt9XG5cbiAgICBwdWJsaWMgZ2V0WSgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gTmFOO1xuICAgIH1cbiAgICBwdWJsaWMgc2V0WSh2YWx1ZTogbnVtYmVyLCBpc05lZWROb3RpZnk6IGJvb2xlYW4gPSB0cnVlKTogdm9pZCB7fVxuXG4gICAgcHVibGljIG1vdmUoeDogbnVtYmVyLCB5OiBudW1iZXIpOiB2b2lkIHt9XG5cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vXG4gICAgLy8gIFByaXZhdGUgUHJvcGVydGllc1xuICAgIC8vXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIHByb3RlY3RlZCBnZXQgcmVmZXJlbmNlKCk6IE1hdEJvdHRvbVNoZWV0UmVmPElXaW5kb3dDb250ZW50PFQ+PiB7XG4gICAgICAgIHJldHVybiB0aGlzLnByb3BlcnRpZXMucmVmZXJlbmNlIGFzIGFueTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IGlzQmxpbmsoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc0JsaW5rO1xuICAgIH1cbiAgICBwcm90ZWN0ZWQgc2V0IGlzQmxpbmsodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgaWYgKHZhbHVlID09PSB0aGlzLl9pc0JsaW5rKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5faXNCbGluayA9IHZhbHVlO1xuICAgICAgICB0aGlzLmNvbW1pdElzQmxpbmtQcm9wZXJ0aWVzKCk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldCBpc1NoYWtpbmcoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcHJvdGVjdGVkIHNldCBpc1NoYWtpbmcodmFsdWU6IGJvb2xlYW4pIHt9XG5cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vXG4gICAgLy8gIFB1YmxpYyBQcm9wZXJ0aWVzXG4gICAgLy9cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gICAgcHVibGljIGdldCBldmVudHMoKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMub2JzZXJ2ZXIuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBjb25maWcoKTogV2luZG93Q29uZmlnIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucHJvcGVydGllcy5jb25maWc7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBjb250ZW50KCk6IElXaW5kb3dDb250ZW50IHtcbiAgICAgICAgcmV0dXJuICFfLmlzTmlsKHRoaXMucmVmZXJlbmNlKSA/IHRoaXMucmVmZXJlbmNlLmluc3RhbmNlIDogbnVsbDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGNvbnRhaW5lcigpOiBIVE1MRWxlbWVudCB7XG4gICAgICAgIHJldHVybiAhXy5pc05pbCh0aGlzLnJlZmVyZW5jZSkgPyB0aGlzLnByb3BlcnRpZXMub3ZlcmxheS5vdmVybGF5RWxlbWVudCA6IG51bGw7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCB3cmFwcGVyKCk6IEhUTUxFbGVtZW50IHtcbiAgICAgICAgcmV0dXJuICFfLmlzTmlsKHRoaXMucHJvcGVydGllcy5yZWZlcmVuY2UpID8gdGhpcy5wcm9wZXJ0aWVzLm92ZXJsYXkuaG9zdEVsZW1lbnQgOiBudWxsO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgYmFja2Ryb3AoKTogSFRNTEVsZW1lbnQge1xuICAgICAgICByZXR1cm4gIV8uaXNOaWwodGhpcy5wcm9wZXJ0aWVzLnJlZmVyZW5jZSkgPyB0aGlzLnByb3BlcnRpZXMub3ZlcmxheS5iYWNrZHJvcEVsZW1lbnQgOiBudWxsO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgaXNPblRvcCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBwdWJsaWMgc2V0IGlzT25Ub3AodmFsdWU6IGJvb2xlYW4pIHt9XG5cbiAgICBwdWJsaWMgZ2V0IGlzTWluaW1pemVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHB1YmxpYyBzZXQgaXNNaW5pbWl6ZWQodmFsdWU6IGJvb2xlYW4pIHt9XG5cbiAgICBwdWJsaWMgZ2V0IGlzRGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc0Rpc2FibGVkO1xuICAgIH1cbiAgICBwdWJsaWMgc2V0IGlzRGlzYWJsZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgaWYgKHZhbHVlID09PSB0aGlzLl9pc0Rpc2FibGVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5faXNEaXNhYmxlZCA9IHZhbHVlO1xuICAgICAgICB0aGlzLmNvbW1pdElzRGlzYWJsZWRQcm9wZXJ0aWVzKCk7XG4gICAgICAgIHRoaXMuZW1pdChXaW5kb3dFdmVudC5ESVNBQkxFRF9DSEFOR0VEKTtcbiAgICB9XG59XG4iXX0=
201
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQm90dG9tU2hlZXRJbXBsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2JvdHRvbVNoZWV0L2NvbXBvbmVudC9Cb3R0b21TaGVldEltcGwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFjLE9BQU8sRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFDekQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3BELE9BQU8sS0FBSyxDQUFDLE1BQU0sUUFBUSxDQUFDO0FBQzVCLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBR3ZELE9BQU8sRUFBVyxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUc1RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRXJELE1BQU0sT0FBTyxlQUF5QixTQUFRLG9CQUFvQjtJQXlCOUQsNkVBQTZFO0lBQzdFLEVBQUU7SUFDRixlQUFlO0lBQ2YsRUFBRTtJQUNGLDZFQUE2RTtJQUU3RSxZQUFZLFVBQTRCO1FBQ3BDLEtBQUssRUFBRSxDQUFDO1FBdEJaLDZFQUE2RTtRQUM3RSxFQUFFO1FBQ0YsY0FBYztRQUNkLEVBQUU7UUFDRiw2RUFBNkU7UUFFckUsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUcxQixnQkFBVyxHQUFZLEtBQUssQ0FBQztRQXdCckMsNkVBQTZFO1FBQzdFLEVBQUU7UUFDRixxQkFBcUI7UUFDckIsRUFBRTtRQUNGLDZFQUE2RTtRQUVuRSxjQUFTLEdBQUcsR0FBUyxFQUFFO1lBQzdCLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzlCLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNuQixDQUFDLENBQUM7UUFFUSxjQUFTLEdBQUcsR0FBUyxFQUFFO1lBQzdCLElB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QVUsQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDNUYsQ0FBQztJQUVELElBQVcsUUFBUTtRQUNmLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ2hHLENBQUM7SUFFRCxJQUFXLE9BQU87UUFDZCxPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDO0lBQ0QsSUFBVyxPQUFPLENBQUMsS0FBYyxJQUFHLENBQUM7SUFFckMsSUFBVyxXQUFXO1FBQ2xCLE9BQU8sS0FBSyxDQUFDO0lBQ2pCLENBQUM7SUFDRCxJQUFXLFdBQVcsQ0FBQyxLQUFjLElBQUcsQ0FBQztJQUV6QyxJQUFXLFVBQVU7UUFDakIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzVCLENBQUM7SUFDRCxJQUFXLFVBQVUsQ0FBQyxLQUFjO1FBQ2hDLElBQUksS0FBSyxLQUFLLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDNUIsT0FBTztTQUNWO1FBQ0QsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7UUFDekIsSUFBSSxDQUFDLDBCQUEwQixFQUFFLENBQUM7UUFDbEMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUM1QyxDQUFDOztBQXZQRCw2RUFBNkU7QUFDN0UsRUFBRTtBQUNGLGFBQWE7QUFDYixFQUFFO0FBQ0YsNkVBQTZFO0FBRS9ELDJCQUFXLEdBQUcsR0FBRyxDQUFDO0FBQ2xCLDJCQUFXLEdBQUcsR0FBRyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL2ludGVybmFsL29wZXJhdG9ycyc7XG5pbXBvcnQgKiBhcyBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBEZXN0cm95YWJsZUNvbnRhaW5lciB9IGZyb20gJ0B0cy1jb3JlL2NvbW1vbic7XG5pbXBvcnQgeyBNYXRCb3R0b21TaGVldFJlZiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2JvdHRvbS1zaGVldCc7XG5pbXBvcnQgeyBXaW5kb3dDb25maWcgfSBmcm9tICcuLi8uLi93aW5kb3cvV2luZG93Q29uZmlnJztcbmltcG9ydCB7IElXaW5kb3csIFdpbmRvd0V2ZW50IH0gZnJvbSAnLi4vLi4vd2luZG93L0lXaW5kb3cnO1xuaW1wb3J0IHsgSVdpbmRvd0NvbnRlbnQgfSBmcm9tICcuLi8uLi93aW5kb3cvSVdpbmRvd0NvbnRlbnQnO1xuaW1wb3J0IHsgV2luZG93UHJvcGVydGllcyB9IGZyb20gJy4uLy4uL3dpbmRvdy9XaW5kb3dQcm9wZXJ0aWVzJztcbmltcG9ydCB7IFZpZXdVdGlsIH0gZnJvbSAnLi4vLi4vdXRpbC9WaWV3VXRpbCc7XG5pbXBvcnQgeyBXaW5kb3dJbXBsIH0gZnJvbSAnLi4vLi4vd2luZG93L1dpbmRvd0ltcGwnO1xuXG5leHBvcnQgY2xhc3MgQm90dG9tU2hlZXRJbXBsPFQgPSBhbnk+IGV4dGVuZHMgRGVzdHJveWFibGVDb250YWluZXIgaW1wbGVtZW50cyBJV2luZG93IHtcbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vXG4gICAgLy8gIENvbnN0YW50c1xuICAgIC8vXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIHB1YmxpYyBzdGF0aWMgQkxJTktfREVMQVkgPSA1MDA7XG4gICAgcHVibGljIHN0YXRpYyBTSEFLRV9ERUxBWSA9IDUwMDtcblxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy9cbiAgICAvLyAgUHJvcGVydGllc1xuICAgIC8vXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIHByaXZhdGUgX2lzQmxpbms6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBwcml2YXRlIGJsaW5rVGltZXI6IGFueTtcblxuICAgIHByaXZhdGUgX2lzRGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBwcm90ZWN0ZWQgcHJvcGVydGllczogV2luZG93UHJvcGVydGllcztcblxuICAgIHByb3RlY3RlZCBzdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgICBwcm90ZWN0ZWQgb2JzZXJ2ZXI6IFN1YmplY3Q8c3RyaW5nPjtcblxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy9cbiAgICAvLyAgQ29uc3RydWN0b3JcbiAgICAvL1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgICBjb25zdHJ1Y3Rvcihwcm9wZXJ0aWVzOiBXaW5kb3dQcm9wZXJ0aWVzKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMub2JzZXJ2ZXIgPSBuZXcgU3ViamVjdCgpO1xuXG4gICAgICAgIHRoaXMucHJvcGVydGllcyA9IHByb3BlcnRpZXM7XG4gICAgICAgIHRoaXMuY29udGVudC53aW5kb3cgPSB0aGlzO1xuXG4gICAgICAgIHRoaXMuc2V0UHJvcGVydGllcygpO1xuICAgICAgICB0aGlzLmdldFJlZmVyZW5jZSgpLmFmdGVyT3BlbmVkKCkucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQpKS5zdWJzY3JpYmUodGhpcy5zZXRPcGVuZWQpO1xuICAgICAgICB0aGlzLmdldFJlZmVyZW5jZSgpLmFmdGVyRGlzbWlzc2VkKCkucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQpKS5zdWJzY3JpYmUodGhpcy5zZXRDbG9zZWQpO1xuICAgIH1cblxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy9cbiAgICAvLyAgUHJvdGVjdGVkIE1ldGhvZHNcbiAgICAvL1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgICBwcm90ZWN0ZWQgc2V0Q2xvc2VkID0gKCk6IHZvaWQgPT4ge1xuICAgICAgICB0aGlzLmVtaXQoV2luZG93RXZlbnQuQ0xPU0VEKTtcbiAgICAgICAgdGhpcy5kZXN0cm95KCk7XG4gICAgfTtcblxuICAgIHByb3RlY3RlZCBzZXRPcGVuZWQgPSAoKTogdm9pZCA9PiB7XG4gICAgICAgIHRoaXMuZW1pdChXaW5kb3dFdmVudC5PUEVORUQpO1xuICAgIH07XG5cbiAgICBwcm90ZWN0ZWQgYmxpbmtUb2dnbGUgPSAoKTogdm9pZCA9PiB7XG4gICAgICAgIHRoaXMuaXNCbGluayA9ICF0aGlzLmlzQmxpbms7XG4gICAgfTtcblxuICAgIHByb3RlY3RlZCBzZXRQcm9wZXJ0aWVzKCk6IHZvaWQge1xuICAgICAgICBWaWV3VXRpbC5hZGRDbGFzcyh0aGlzLmNvbnRhaW5lciwgJ3ZpLWJvdHRvbS1zaGVldCcpO1xuICAgICAgICBWaWV3VXRpbC50b2dnbGVDbGFzcyh0aGlzLmNvbnRhaW5lciwgJ3ZpLW1vZGFsJywgdGhpcy5jb25maWcuaXNNb2RhbCk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGNvbW1pdElzQmxpbmtQcm9wZXJ0aWVzKCk6IHZvaWQge31cbiAgICBwcm90ZWN0ZWQgY29tbWl0SXNEaXNhYmxlZFByb3BlcnRpZXMoKTogdm9pZCB7fVxuXG4gICAgcHJvdGVjdGVkIGdldENvbmZpZygpOiBXaW5kb3dDb25maWcge1xuICAgICAgICByZXR1cm4gdGhpcy5wcm9wZXJ0aWVzLmNvbmZpZztcbiAgICB9XG4gICAgcHJvdGVjdGVkIGdldENvbnRhaW5lcigpOiBIVE1MRWxlbWVudCB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbnRhaW5lcjtcbiAgICB9XG4gICAgcHJvdGVjdGVkIGdldFJlZmVyZW5jZSgpOiBNYXRCb3R0b21TaGVldFJlZjxJV2luZG93Q29udGVudDxUPj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5wcm9wZXJ0aWVzLnJlZmVyZW5jZSBhcyBhbnk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdG9wQmxpbmtJZk5lZWQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaXNCbGluayA9IGZhbHNlO1xuICAgICAgICBpZiAoIXRoaXMuYmxpbmtUaW1lcikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNsZWFySW50ZXJ2YWwodGhpcy5ibGlua1RpbWVyKTtcbiAgICAgICAgdGhpcy5ibGlua1RpbWVyID0gbnVsbDtcbiAgICB9XG5cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vXG4gICAgLy8gIFB1YmxpYyBNZXRob2RzXG4gICAgLy9cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gICAgcHVibGljIGVtaXQoZXZlbnQ6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICB0aGlzLm9ic2VydmVyLm5leHQoZXZlbnQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBjbG9zZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5nZXRSZWZlcmVuY2UoKS5kaXNtaXNzKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmlzRGVzdHJveWVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgc3VwZXIuZGVzdHJveSgpO1xuXG4gICAgICAgIGlmICghXy5pc05pbCh0aGlzLmNvbnRlbnQpKSB7XG4gICAgICAgICAgICB0aGlzLmNvbnRlbnQuZGVzdHJveSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFfLmlzTmlsKHRoaXMub2JzZXJ2ZXIpKSB7XG4gICAgICAgICAgICB0aGlzLm9ic2VydmVyLmNvbXBsZXRlKCk7XG4gICAgICAgICAgICB0aGlzLm9ic2VydmVyID0gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMucHJvcGVydGllcyA9IG51bGw7XG5cbiAgICAgICAgY2xlYXJJbnRlcnZhbCh0aGlzLmJsaW5rVGltZXIpO1xuICAgICAgICB0aGlzLmJsaW5rVGltZXIgPSBudWxsO1xuICAgIH1cblxuICAgIHB1YmxpYyBibGluaygpOiB2b2lkIHtcbiAgICAgICAgY2xlYXJJbnRlcnZhbCh0aGlzLmJsaW5rVGltZXIpO1xuICAgICAgICB0aGlzLmJsaW5rVGltZXIgPSBzZXRJbnRlcnZhbCh0aGlzLmJsaW5rVG9nZ2xlLCBXaW5kb3dJbXBsLkJMSU5LX0RFTEFZKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2hha2UoKTogdm9pZCB7fVxuXG4gICAgcHVibGljIHNldE9uVG9wKCk6IHZvaWQge31cblxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy9cbiAgICAvLyAgU2l6ZSBNZXRob2RzXG4gICAgLy9cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gICAgcHVibGljIGdldFdpZHRoKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiBOYU47XG4gICAgfVxuXG4gICAgcHVibGljIGdldEhlaWdodCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gTmFOO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXRXaWR0aCh2YWx1ZTogbnVtYmVyLCBpc05lZWROb3RpZnk6IGJvb2xlYW4gPSB0cnVlKTogdm9pZCB7fVxuXG4gICAgcHVibGljIHNldEhlaWdodCh2YWx1ZTogbnVtYmVyLCBpc05lZWROb3RpZnk6IGJvb2xlYW4gPSB0cnVlKTogdm9pZCB7fVxuXG4gICAgcHVibGljIHNldFNpemUod2lkdGg6IG51bWJlciwgaGVpZ2h0OiBudW1iZXIpOiB2b2lkIHt9XG5cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vXG4gICAgLy8gIE1vdmUgTWV0aG9kc1xuICAgIC8vXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIHB1YmxpYyBnZXRYKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiBOYU47XG4gICAgfVxuXG4gICAgcHVibGljIHNldFgodmFsdWU6IG51bWJlciwgaXNOZWVkTm90aWZ5OiBib29sZWFuID0gdHJ1ZSk6IHZvaWQge31cblxuICAgIHB1YmxpYyBnZXRZKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiBOYU47XG4gICAgfVxuICAgIHB1YmxpYyBzZXRZKHZhbHVlOiBudW1iZXIsIGlzTmVlZE5vdGlmeTogYm9vbGVhbiA9IHRydWUpOiB2b2lkIHt9XG5cbiAgICBwdWJsaWMgbW92ZSh4OiBudW1iZXIsIHk6IG51bWJlcik6IHZvaWQge31cblxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy9cbiAgICAvLyAgUHJpdmF0ZSBQcm9wZXJ0aWVzXG4gICAgLy9cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gICAgcHJvdGVjdGVkIGdldCByZWZlcmVuY2UoKTogTWF0Qm90dG9tU2hlZXRSZWY8SVdpbmRvd0NvbnRlbnQ8VD4+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMucHJvcGVydGllcy5yZWZlcmVuY2UgYXMgYW55O1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgaXNCbGluaygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzQmxpbms7XG4gICAgfVxuICAgIHByb3RlY3RlZCBzZXQgaXNCbGluayh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICBpZiAodmFsdWUgPT09IHRoaXMuX2lzQmxpbmspIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9pc0JsaW5rID0gdmFsdWU7XG4gICAgICAgIHRoaXMuY29tbWl0SXNCbGlua1Byb3BlcnRpZXMoKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IGlzU2hha2luZygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBwcm90ZWN0ZWQgc2V0IGlzU2hha2luZyh2YWx1ZTogYm9vbGVhbikge31cblxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy9cbiAgICAvLyAgUHVibGljIFByb3BlcnRpZXNcbiAgICAvL1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgICBwdWJsaWMgZ2V0IGV2ZW50cygpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xuICAgICAgICByZXR1cm4gdGhpcy5vYnNlcnZlci5hc09ic2VydmFibGUoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGNvbmZpZygpOiBXaW5kb3dDb25maWcge1xuICAgICAgICByZXR1cm4gdGhpcy5wcm9wZXJ0aWVzLmNvbmZpZztcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGNvbnRlbnQoKTogSVdpbmRvd0NvbnRlbnQge1xuICAgICAgICByZXR1cm4gIV8uaXNOaWwodGhpcy5yZWZlcmVuY2UpID8gdGhpcy5yZWZlcmVuY2UuaW5zdGFuY2UgOiBudWxsO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgY29udGFpbmVyKCk6IEhUTUxFbGVtZW50IHtcbiAgICAgICAgcmV0dXJuICFfLmlzTmlsKHRoaXMucmVmZXJlbmNlKSA/IHRoaXMucHJvcGVydGllcy5vdmVybGF5Lm92ZXJsYXlFbGVtZW50IDogbnVsbDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHdyYXBwZXIoKTogSFRNTEVsZW1lbnQge1xuICAgICAgICByZXR1cm4gIV8uaXNOaWwodGhpcy5wcm9wZXJ0aWVzLnJlZmVyZW5jZSkgPyB0aGlzLnByb3BlcnRpZXMub3ZlcmxheS5ob3N0RWxlbWVudCA6IG51bGw7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBiYWNrZHJvcCgpOiBIVE1MRWxlbWVudCB7XG4gICAgICAgIHJldHVybiAhXy5pc05pbCh0aGlzLnByb3BlcnRpZXMucmVmZXJlbmNlKSA/IHRoaXMucHJvcGVydGllcy5vdmVybGF5LmJhY2tkcm9wRWxlbWVudCA6IG51bGw7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBpc09uVG9wKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHB1YmxpYyBzZXQgaXNPblRvcCh2YWx1ZTogYm9vbGVhbikge31cblxuICAgIHB1YmxpYyBnZXQgaXNNaW5pbWl6ZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcHVibGljIHNldCBpc01pbmltaXplZCh2YWx1ZTogYm9vbGVhbikge31cblxuICAgIHB1YmxpYyBnZXQgaXNEaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzRGlzYWJsZWQ7XG4gICAgfVxuICAgIHB1YmxpYyBzZXQgaXNEaXNhYmxlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICBpZiAodmFsdWUgPT09IHRoaXMuX2lzRGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9pc0Rpc2FibGVkID0gdmFsdWU7XG4gICAgICAgIHRoaXMuY29tbWl0SXNEaXNhYmxlZFByb3BlcnRpZXMoKTtcbiAgICAgICAgdGhpcy5lbWl0KFdpbmRvd0V2ZW50LkRJU0FCTEVEX0NIQU5HRUQpO1xuICAgIH1cbn1cbiJdfQ==
@@ -1,20 +1,24 @@
1
1
  import { CdkTableBaseComponent } from '../CdkTableBaseComponent';
2
- import { Component } from '@angular/core';
2
+ import { Component, ViewContainerRef } from '@angular/core';
3
+ import { ViewUtil } from '../../../util/ViewUtil';
3
4
  export class CdkTableFilterableComponent extends CdkTableBaseComponent {
4
5
  // --------------------------------------------------------------------------
5
6
  //
6
7
  // Constructor
7
8
  //
8
9
  // --------------------------------------------------------------------------
9
- constructor() {
10
+ constructor(container) {
10
11
  super();
12
+ ViewUtil.addClasses(container, 'd-flex flex-column scroll-no');
11
13
  }
12
14
  }
13
15
  CdkTableFilterableComponent.decorators = [
14
16
  { type: Component, args: [{
15
17
  selector: 'vi-cdk-table-filterable',
16
- template: "<mat-table matSort [dataSource]=\"table?.table?.dataSource\" [matSortActive]=\"sortActive\" [matSortDirection]=\"sortDirection\"\n [class.mat-nav-list]=\"settings?.isInteractive\" (matSortChange)=\"table.sortEventHandler($event)\">\n \n <ng-container *ngFor=\"let column of columns;trackBy:columnTrackBy\">\n <ng-container [matColumnDef]=\"column.name\">\n <mat-header-cell class=\"px-2\" mat-sort-header [disableClear]=\"true\" [disabled]=\"column.isDisableSort\" [ngClass]=\"column.headerClassName\" \n *matHeaderCellDef>\n <span [innerHTML]=\"column.headerId | viTranslate\"></span>\n </mat-header-cell>\n <mat-cell class=\"px-2\" (click)=\"cellClickHandler(row, column)\" *matCellDef=\"let row\" \n [ngClass]=\"row | viCdkTableColumnClassName: column\" [ngStyle]=\"row | viCdkTableColumnStyleName: column\" >\n <span [ngClass]=\"column | viCdkTableCellClassName\" [vi-html-content-title]=\"row | viCdkTableColumnValue: column\"></span>\n </mat-cell>\n </ng-container>\n </ng-container>\n\n <mat-header-row *matHeaderRowDef=\"columnNames\"></mat-header-row>\n\n <mat-row class=\"mat-list-item\" *matRowDef=\"let row; columns: columnNames\"\n [ngClass]=\"row | viCdkTableRowClassName: rows : selectedRows\" [ngStyle]=\"row | viCdkTableRowStyleName: rows : selectedRows\"\n (click)=\"rowClicked.emit(row)\"></mat-row>\n\n</mat-table>\n\n<p class=\"p-3 text-center mouse-inactive\" *ngIf=\"!table?.isLoading && table?.length === 0\" [innerHTML]=\"settings?.noDataId | viTranslate\"></p>\n\n<mat-progress-bar class=\"flex-shrink-0 border transparent\" mode=\"indeterminate\" *ngIf=\"table?.isLoading\"\n style=\"margin-bottom: -1px;\"></mat-progress-bar>\n"
18
+ template: "<mat-table class=\"flex-grow-1 vertical-scroll-only\" matSort [dataSource]=\"table?.table?.dataSource\" [matSortActive]=\"sortActive\" [matSortDirection]=\"sortDirection\"\n [class.mat-nav-list]=\"settings?.isInteractive\" (matSortChange)=\"table.sortEventHandler($event)\">\n \n <ng-container *ngFor=\"let column of columns;trackBy:columnTrackBy\">\n <ng-container [matColumnDef]=\"column.name\">\n <mat-header-cell class=\"px-2\" mat-sort-header [disableClear]=\"true\" [disabled]=\"column.isDisableSort\" [ngClass]=\"column.headerClassName\" \n *matHeaderCellDef>\n <span [innerHTML]=\"column.headerId | viTranslate\"></span>\n </mat-header-cell>\n <mat-cell class=\"px-2\" (click)=\"cellClickHandler(row, column)\" *matCellDef=\"let row\" \n [ngClass]=\"row | viCdkTableColumnClassName: column\" [ngStyle]=\"row | viCdkTableColumnStyleName: column\" >\n <span [ngClass]=\"column | viCdkTableCellClassName\" [vi-html-content-title]=\"row | viCdkTableColumnValue: column\"></span>\n </mat-cell>\n </ng-container>\n </ng-container>\n\n <mat-header-row *matHeaderRowDef=\"columnNames\"></mat-header-row>\n\n <mat-row class=\"mat-list-item\" *matRowDef=\"let row; columns: columnNames\"\n [ngClass]=\"row | viCdkTableRowClassName: rows : selectedRows\" [ngStyle]=\"row | viCdkTableRowStyleName: rows : selectedRows\"\n (click)=\"rowClicked.emit(row)\"></mat-row>\n\n</mat-table>\n\n<p class=\"p-3 flex-shrink-0 text-center mouse-inactive\" *ngIf=\"!table?.isLoading && table?.length === 0\" [innerHTML]=\"settings?.noDataId | viTranslate\"></p>\n\n<mat-progress-bar class=\"flex-shrink-0 border transparent\" mode=\"indeterminate\" *ngIf=\"table?.isLoading\"\n style=\"margin-bottom: -1px;\"></mat-progress-bar>\n"
17
19
  },] }
18
20
  ];
19
- CdkTableFilterableComponent.ctorParameters = () => [];
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLXRhYmxlLWZpbHRlcmFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudC9jZGstdGFibGUvY2RrLXRhYmxlLWZpbHRlcmFibGUvY2RrLXRhYmxlLWZpbHRlcmFibGUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRWpFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFNMUMsTUFBTSxPQUFPLDJCQUE4QyxTQUFRLHFCQUFrRTtJQUNqSSw2RUFBNkU7SUFDN0UsRUFBRTtJQUNGLGVBQWU7SUFDZixFQUFFO0lBQ0YsNkVBQTZFO0lBRTdFO1FBQ0ksS0FBSyxFQUFFLENBQUM7SUFDWixDQUFDOzs7WUFiSixTQUFTLFNBQUM7Z0JBQ1AsUUFBUSxFQUFFLHlCQUF5QjtnQkFDbkMsMHhEQUFrRDthQUNyRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IENka1RhYmxlQmFzZUNvbXBvbmVudCB9IGZyb20gJy4uL0Nka1RhYmxlQmFzZUNvbXBvbmVudCc7XG5pbXBvcnQgeyBDZGtUYWJsZUZpbHRlcmFibGVNYXBDb2xsZWN0aW9uIH0gZnJvbSAnLi4vQ2RrVGFibGVGaWx0ZXJhYmxlTWFwQ29sbGVjdGlvbic7XG5pbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd2aS1jZGstdGFibGUtZmlsdGVyYWJsZScsXG4gICAgdGVtcGxhdGVVcmw6ICdjZGstdGFibGUtZmlsdGVyYWJsZS5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgQ2RrVGFibGVGaWx0ZXJhYmxlQ29tcG9uZW50PFUgPSBhbnksIFYgPSBhbnk+IGV4dGVuZHMgQ2RrVGFibGVCYXNlQ29tcG9uZW50PENka1RhYmxlRmlsdGVyYWJsZU1hcENvbGxlY3Rpb248VSwgVj4sIFUsIFY+IHtcbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vXG4gICAgLy8gXHRDb25zdHJ1Y3RvclxuICAgIC8vXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcigpO1xuICAgIH1cbn1cbiJdfQ==
21
+ CdkTableFilterableComponent.ctorParameters = () => [
22
+ { type: ViewContainerRef }
23
+ ];
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLXRhYmxlLWZpbHRlcmFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudC9jZGstdGFibGUvY2RrLXRhYmxlLWZpbHRlcmFibGUvY2RrLXRhYmxlLWZpbHRlcmFibGUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRWpFLE9BQU8sRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBTWxELE1BQU0sT0FBTywyQkFBOEMsU0FBUSxxQkFBa0U7SUFDakksNkVBQTZFO0lBQzdFLEVBQUU7SUFDRixlQUFlO0lBQ2YsRUFBRTtJQUNGLDZFQUE2RTtJQUU3RSxZQUFZLFNBQTJCO1FBQ25DLEtBQUssRUFBRSxDQUFDO1FBQ1IsUUFBUSxDQUFDLFVBQVUsQ0FBQyxTQUFTLEVBQUUsOEJBQThCLENBQUMsQ0FBQztJQUNuRSxDQUFDOzs7WUFkSixTQUFTLFNBQUM7Z0JBQ1AsUUFBUSxFQUFFLHlCQUF5QjtnQkFDbkMsbTFEQUFrRDthQUNyRDs7O1lBTm1CLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IENka1RhYmxlQmFzZUNvbXBvbmVudCB9IGZyb20gJy4uL0Nka1RhYmxlQmFzZUNvbXBvbmVudCc7XG5pbXBvcnQgeyBDZGtUYWJsZUZpbHRlcmFibGVNYXBDb2xsZWN0aW9uIH0gZnJvbSAnLi4vQ2RrVGFibGVGaWx0ZXJhYmxlTWFwQ29sbGVjdGlvbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIFZpZXdDb250YWluZXJSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFZpZXdVdGlsIH0gZnJvbSAnLi4vLi4vLi4vdXRpbC9WaWV3VXRpbCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndmktY2RrLXRhYmxlLWZpbHRlcmFibGUnLFxuICAgIHRlbXBsYXRlVXJsOiAnY2RrLXRhYmxlLWZpbHRlcmFibGUuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIENka1RhYmxlRmlsdGVyYWJsZUNvbXBvbmVudDxVID0gYW55LCBWID0gYW55PiBleHRlbmRzIENka1RhYmxlQmFzZUNvbXBvbmVudDxDZGtUYWJsZUZpbHRlcmFibGVNYXBDb2xsZWN0aW9uPFUsIFY+LCBVLCBWPiB7XG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvL1xuICAgIC8vIFx0Q29uc3RydWN0b3JcbiAgICAvL1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgICBjb25zdHJ1Y3Rvcihjb250YWluZXI6IFZpZXdDb250YWluZXJSZWYpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgVmlld1V0aWwuYWRkQ2xhc3Nlcyhjb250YWluZXIsICdkLWZsZXggZmxleC1jb2x1bW4gc2Nyb2xsLW5vJyk7XG4gICAgfVxufVxuIl19
@@ -1,14 +1,16 @@
1
1
  import * as _ from 'lodash';
2
2
  import { CdkTableBaseComponent } from '../CdkTableBaseComponent';
3
- import { Component, Input } from '@angular/core';
3
+ import { Component, Input, ViewContainerRef } from '@angular/core';
4
+ import { ViewUtil } from '../../../util/ViewUtil';
4
5
  export class CdkTablePaginableComponent extends CdkTableBaseComponent {
5
6
  // --------------------------------------------------------------------------
6
7
  //
7
8
  // Constructor
8
9
  //
9
10
  // --------------------------------------------------------------------------
10
- constructor() {
11
+ constructor(container) {
11
12
  super();
13
+ ViewUtil.addClasses(container, 'd-flex flex-column scroll-no');
12
14
  this._paginator = { pageSizes: [10, 25, 100], hidePageSize: false, showFirstLastButtons: true };
13
15
  }
14
16
  // --------------------------------------------------------------------------
@@ -38,11 +40,13 @@ export class CdkTablePaginableComponent extends CdkTableBaseComponent {
38
40
  CdkTablePaginableComponent.decorators = [
39
41
  { type: Component, args: [{
40
42
  selector: 'vi-cdk-table-paginable',
41
- template: "<mat-table matSort [dataSource]=\"table?.table?.dataSource\" [trackBy]=\"table.trackByFn\" [matSortActive]=\"sortActive\" [matSortDirection]=\"sortDirection\"\n [class.mat-nav-list]=\"settings?.isInteractive\" (matSortChange)=\"table.sortEventHandler($event)\">\n \n <ng-container *ngFor=\"let column of columns;trackBy:columnTrackBy\">\n <ng-container [matColumnDef]=\"column.name\">\n <mat-header-cell class=\"px-2\" mat-sort-header [disableClear]=\"true\" [disabled]=\"column.isDisableSort\" [ngClass]=\"column.headerClassName\" \n *matHeaderCellDef>\n <span [innerHTML]=\"column.headerId | viTranslate\"></span>\n </mat-header-cell>\n \n <mat-cell class=\"px-2\" (click)=\"cellClickHandler(row, column)\" *matCellDef=\"let row\" \n [ngClass]=\"row | viCdkTableColumnClassName: column\" [ngStyle]=\"row | viCdkTableColumnStyleName: column\" >\n <span [ngClass]=\"column | viCdkTableCellClassName\" [vi-html-content-title]=\"row | viCdkTableColumnValue: column\"></span>\n </mat-cell>\n\n </ng-container>\n </ng-container>\n\n <mat-header-row *matHeaderRowDef=\"columnNames\"></mat-header-row>\n \n <mat-row class=\"mat-list-item\" *matRowDef=\"let row; columns: columnNames\"\n [ngClass]=\"row | viCdkTableRowClassName: rows : selectedRows\" [ngStyle]=\"row | viCdkTableRowStyleName: rows : selectedRows\"\n (click)=\"rowClicked.emit(row)\"></mat-row>\n\n</mat-table>\n\n<p class=\"p-3 text-center mouse-inactive\" *ngIf=\"table?.length === 0\" [innerHTML]=\"settings?.noDataId | viTranslate\"></p>\n\n<mat-progress-bar class=\"flex-shrink-0 border transparent\" mode=\"indeterminate\" *ngIf=\"table?.isLoading\"\n style=\"margin-bottom: -1px;\"></mat-progress-bar>\n\n<mat-paginator class=\"justify-content-center border-sm-top\" [pageSize]=\"table?.pageSize\" [pageIndex]=\"table?.pageIndex\" [length]=\"table?.total\"\n (page)=\"table?.pageEventHandler($event)\"\n [pageSizeOptions]=\"paginator?.pageSizes\" [showFirstLastButtons]=\"paginator?.showFirstLastButtons\" \n [hidePageSize]=\"paginator?.hidePageSize\" *ngIf=\"paginator && table?.length > 0\"></mat-paginator>"
43
+ template: "<mat-table class=\"flex-grow-1 vertical-scroll-only\" matSort [dataSource]=\"table?.table?.dataSource\" [trackBy]=\"table.trackByFn\" [matSortActive]=\"sortActive\" [matSortDirection]=\"sortDirection\"\n [class.mat-nav-list]=\"settings?.isInteractive\" (matSortChange)=\"table.sortEventHandler($event)\">\n \n <ng-container *ngFor=\"let column of columns;trackBy:columnTrackBy\">\n <ng-container [matColumnDef]=\"column.name\">\n <mat-header-cell class=\"px-2\" mat-sort-header [disableClear]=\"true\" [disabled]=\"column.isDisableSort\" [ngClass]=\"column.headerClassName\" \n *matHeaderCellDef>\n <span [innerHTML]=\"column.headerId | viTranslate\"></span>\n </mat-header-cell>\n \n <mat-cell class=\"px-2\" (click)=\"cellClickHandler(row, column)\" *matCellDef=\"let row\" \n [ngClass]=\"row | viCdkTableColumnClassName: column\" [ngStyle]=\"row | viCdkTableColumnStyleName: column\" >\n <span [ngClass]=\"column | viCdkTableCellClassName\" [vi-html-content-title]=\"row | viCdkTableColumnValue: column\"></span>\n </mat-cell>\n\n </ng-container>\n </ng-container>\n\n <mat-header-row *matHeaderRowDef=\"columnNames\"></mat-header-row>\n \n <mat-row class=\"mat-list-item\" *matRowDef=\"let row; columns: columnNames\"\n [ngClass]=\"row | viCdkTableRowClassName: rows : selectedRows\" [ngStyle]=\"row | viCdkTableRowStyleName: rows : selectedRows\"\n (click)=\"rowClicked.emit(row)\"></mat-row>\n\n</mat-table>\n\n<p class=\"p-3 flex-shrink-0 text-center mouse-inactive\" *ngIf=\"table?.length === 0\" [innerHTML]=\"settings?.noDataId | viTranslate\"></p>\n\n<mat-progress-bar class=\"flex-shrink-0 border transparent\" mode=\"indeterminate\" *ngIf=\"table?.isLoading\"\n style=\"margin-bottom: -1px;\"></mat-progress-bar>\n\n<mat-paginator class=\"flex-shrink-0 justify-content-center border-sm-top\" [pageSize]=\"table?.pageSize\" [pageIndex]=\"table?.pageIndex\" \n [length]=\"table?.total\" (page)=\"table?.pageEventHandler($event)\"\n [pageSizeOptions]=\"paginator?.pageSizes\" [showFirstLastButtons]=\"paginator?.showFirstLastButtons\" \n [hidePageSize]=\"paginator?.hidePageSize\" *ngIf=\"paginator && table?.length > 0\"></mat-paginator>"
42
44
  },] }
43
45
  ];
44
- CdkTablePaginableComponent.ctorParameters = () => [];
46
+ CdkTablePaginableComponent.ctorParameters = () => [
47
+ { type: ViewContainerRef }
48
+ ];
45
49
  CdkTablePaginableComponent.propDecorators = {
46
50
  paginator: [{ type: Input }]
47
51
  };
48
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLXRhYmxlLXBhZ2luYWJsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50L2Nkay10YWJsZS9jZGstdGFibGUtcGFnaW5hYmxlL2Nkay10YWJsZS1wYWdpbmFibGUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxDQUFDLE1BQU0sUUFBUSxDQUFDO0FBQzVCLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRWpFLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBTWpELE1BQU0sT0FBTywwQkFBNkMsU0FBUSxxQkFBaUU7SUFTL0gsNkVBQTZFO0lBQzdFLEVBQUU7SUFDRixlQUFlO0lBQ2YsRUFBRTtJQUNGLDZFQUE2RTtJQUU3RTtRQUNJLEtBQUssRUFBRSxDQUFDO1FBQ1IsSUFBSSxDQUFDLFVBQVUsR0FBRyxFQUFFLFNBQVMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxvQkFBb0IsRUFBRSxJQUFJLEVBQUUsQ0FBQztJQUNwRyxDQUFDO0lBRUQsNkVBQTZFO0lBQzdFLEVBQUU7SUFDRixxQkFBcUI7SUFDckIsRUFBRTtJQUNGLDZFQUE2RTtJQUVuRSx5QkFBeUIsS0FBVSxDQUFDO0lBRTlDLDZFQUE2RTtJQUM3RSxFQUFFO0lBQ0YscUJBQXFCO0lBQ3JCLEVBQUU7SUFDRiw2RUFBNkU7SUFFN0UsSUFBVyxTQUFTO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUMzQixDQUFDO0lBQ0QsSUFDVyxTQUFTLENBQUMsS0FBaUM7UUFDbEQsSUFBSSxLQUFLLEtBQUssSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUMzQixPQUFPO1NBQ1Y7UUFDRCxJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztRQUN4QixJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUNqQixJQUFJLENBQUMseUJBQXlCLEVBQUUsQ0FBQztTQUNwQztJQUNMLENBQUM7OztZQWxESixTQUFTLFNBQUM7Z0JBQ1AsUUFBUSxFQUFFLHdCQUF3QjtnQkFDbEMsNHNFQUFpRDthQUNwRDs7Ozt3QkFzQ0ksS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IENka1RhYmxlQmFzZUNvbXBvbmVudCB9IGZyb20gJy4uL0Nka1RhYmxlQmFzZUNvbXBvbmVudCc7XG5pbXBvcnQgeyBDZGtUYWJsZVBhZ2luYWJsZU1hcENvbGxlY3Rpb24gfSBmcm9tICcuLi9DZGtUYWJsZVBhZ2luYWJsZU1hcENvbGxlY3Rpb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3ZpLWNkay10YWJsZS1wYWdpbmFibGUnLFxuICAgIHRlbXBsYXRlVXJsOiAnY2RrLXRhYmxlLXBhZ2luYWJsZS5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgQ2RrVGFibGVQYWdpbmFibGVDb21wb25lbnQ8VSA9IGFueSwgViA9IGFueT4gZXh0ZW5kcyBDZGtUYWJsZUJhc2VDb21wb25lbnQ8Q2RrVGFibGVQYWdpbmFibGVNYXBDb2xsZWN0aW9uPFUsIFY+LCBVLCBWPiB7XG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvL1xuICAgIC8vIFx0UHJvcGVydGllc1xuICAgIC8vXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIHByb3RlY3RlZCBfcGFnaW5hdG9yOiBJQ2RrVGFibGVQYWdpbmF0b3JTZXR0aW5ncztcblxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy9cbiAgICAvLyBcdENvbnN0cnVjdG9yXG4gICAgLy9cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuX3BhZ2luYXRvciA9IHsgcGFnZVNpemVzOiBbMTAsIDI1LCAxMDBdLCBoaWRlUGFnZVNpemU6IGZhbHNlLCBzaG93Rmlyc3RMYXN0QnV0dG9uczogdHJ1ZSB9O1xuICAgIH1cblxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy9cbiAgICAvLyBcdFByb3RlY3RlZCBNZXRob2RzXG4gICAgLy9cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gICAgcHJvdGVjdGVkIGNvbW1pdFBhZ2luYXRvclByb3BlcnRpZXMoKTogdm9pZCB7fVxuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvL1xuICAgIC8vIFx0UHVibGljIFByb3BlcnRpZXNcbiAgICAvL1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgICBwdWJsaWMgZ2V0IHBhZ2luYXRvcigpOiBJQ2RrVGFibGVQYWdpbmF0b3JTZXR0aW5ncyB7XG4gICAgICAgIHJldHVybiB0aGlzLl9wYWdpbmF0b3I7XG4gICAgfVxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNldCBwYWdpbmF0b3IodmFsdWU6IElDZGtUYWJsZVBhZ2luYXRvclNldHRpbmdzKSB7XG4gICAgICAgIGlmICh2YWx1ZSA9PT0gdGhpcy5fcGFnaW5hdG9yKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fcGFnaW5hdG9yID0gdmFsdWU7XG4gICAgICAgIGlmICghXy5pc05pbCh2YWx1ZSkpIHtcbiAgICAgICAgICAgIHRoaXMuY29tbWl0UGFnaW5hdG9yUHJvcGVydGllcygpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIElDZGtUYWJsZVBhZ2luYXRvclNldHRpbmdzIHtcbiAgICBwYWdlU2l6ZXM/OiBBcnJheTxudW1iZXI+O1xuICAgIGhpZGVQYWdlU2l6ZT86IGJvb2xlYW47XG4gICAgc2hvd0ZpcnN0TGFzdEJ1dHRvbnM/OiBib29sZWFuO1xufVxuIl19
52
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLXRhYmxlLXBhZ2luYWJsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50L2Nkay10YWJsZS9jZGstdGFibGUtcGFnaW5hYmxlL2Nkay10YWJsZS1wYWdpbmFibGUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxDQUFDLE1BQU0sUUFBUSxDQUFDO0FBQzVCLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRWpFLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25FLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQU1sRCxNQUFNLE9BQU8sMEJBQTZDLFNBQVEscUJBQWlFO0lBUy9ILDZFQUE2RTtJQUM3RSxFQUFFO0lBQ0YsZUFBZTtJQUNmLEVBQUU7SUFDRiw2RUFBNkU7SUFFN0UsWUFBWSxTQUEyQjtRQUNuQyxLQUFLLEVBQUUsQ0FBQztRQUNSLFFBQVEsQ0FBQyxVQUFVLENBQUMsU0FBUyxFQUFFLDhCQUE4QixDQUFDLENBQUM7UUFDL0QsSUFBSSxDQUFDLFVBQVUsR0FBRyxFQUFFLFNBQVMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxvQkFBb0IsRUFBRSxJQUFJLEVBQUUsQ0FBQztJQUNwRyxDQUFDO0lBRUQsNkVBQTZFO0lBQzdFLEVBQUU7SUFDRixxQkFBcUI7SUFDckIsRUFBRTtJQUNGLDZFQUE2RTtJQUVuRSx5QkFBeUIsS0FBVSxDQUFDO0lBRTlDLDZFQUE2RTtJQUM3RSxFQUFFO0lBQ0YscUJBQXFCO0lBQ3JCLEVBQUU7SUFDRiw2RUFBNkU7SUFFN0UsSUFBVyxTQUFTO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUMzQixDQUFDO0lBQ0QsSUFDVyxTQUFTLENBQUMsS0FBaUM7UUFDbEQsSUFBSSxLQUFLLEtBQUssSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUMzQixPQUFPO1NBQ1Y7UUFDRCxJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztRQUN4QixJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUNqQixJQUFJLENBQUMseUJBQXlCLEVBQUUsQ0FBQztTQUNwQztJQUNMLENBQUM7OztZQW5ESixTQUFTLFNBQUM7Z0JBQ1AsUUFBUSxFQUFFLHdCQUF3QjtnQkFDbEMsb3hFQUFpRDthQUNwRDs7O1lBTjBCLGdCQUFnQjs7O3dCQTZDdEMsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IENka1RhYmxlQmFzZUNvbXBvbmVudCB9IGZyb20gJy4uL0Nka1RhYmxlQmFzZUNvbXBvbmVudCc7XG5pbXBvcnQgeyBDZGtUYWJsZVBhZ2luYWJsZU1hcENvbGxlY3Rpb24gfSBmcm9tICcuLi9DZGtUYWJsZVBhZ2luYWJsZU1hcENvbGxlY3Rpb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgVmlld0NvbnRhaW5lclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVmlld1V0aWwgfSBmcm9tICcuLi8uLi8uLi91dGlsL1ZpZXdVdGlsJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd2aS1jZGstdGFibGUtcGFnaW5hYmxlJyxcbiAgICB0ZW1wbGF0ZVVybDogJ2Nkay10YWJsZS1wYWdpbmFibGUuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIENka1RhYmxlUGFnaW5hYmxlQ29tcG9uZW50PFUgPSBhbnksIFYgPSBhbnk+IGV4dGVuZHMgQ2RrVGFibGVCYXNlQ29tcG9uZW50PENka1RhYmxlUGFnaW5hYmxlTWFwQ29sbGVjdGlvbjxVLCBWPiwgVSwgVj4ge1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy9cbiAgICAvLyBcdFByb3BlcnRpZXNcbiAgICAvL1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgICBwcm90ZWN0ZWQgX3BhZ2luYXRvcjogSUNka1RhYmxlUGFnaW5hdG9yU2V0dGluZ3M7XG5cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vXG4gICAgLy8gXHRDb25zdHJ1Y3RvclxuICAgIC8vXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIGNvbnN0cnVjdG9yKGNvbnRhaW5lcjogVmlld0NvbnRhaW5lclJlZikge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICBWaWV3VXRpbC5hZGRDbGFzc2VzKGNvbnRhaW5lciwgJ2QtZmxleCBmbGV4LWNvbHVtbiBzY3JvbGwtbm8nKTtcbiAgICAgICAgdGhpcy5fcGFnaW5hdG9yID0geyBwYWdlU2l6ZXM6IFsxMCwgMjUsIDEwMF0sIGhpZGVQYWdlU2l6ZTogZmFsc2UsIHNob3dGaXJzdExhc3RCdXR0b25zOiB0cnVlIH07XG4gICAgfVxuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvL1xuICAgIC8vIFx0UHJvdGVjdGVkIE1ldGhvZHNcbiAgICAvL1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgICBwcm90ZWN0ZWQgY29tbWl0UGFnaW5hdG9yUHJvcGVydGllcygpOiB2b2lkIHt9XG5cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vXG4gICAgLy8gXHRQdWJsaWMgUHJvcGVydGllc1xuICAgIC8vXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIHB1YmxpYyBnZXQgcGFnaW5hdG9yKCk6IElDZGtUYWJsZVBhZ2luYXRvclNldHRpbmdzIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3BhZ2luYXRvcjtcbiAgICB9XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2V0IHBhZ2luYXRvcih2YWx1ZTogSUNka1RhYmxlUGFnaW5hdG9yU2V0dGluZ3MpIHtcbiAgICAgICAgaWYgKHZhbHVlID09PSB0aGlzLl9wYWdpbmF0b3IpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9wYWdpbmF0b3IgPSB2YWx1ZTtcbiAgICAgICAgaWYgKCFfLmlzTmlsKHZhbHVlKSkge1xuICAgICAgICAgICAgdGhpcy5jb21taXRQYWdpbmF0b3JQcm9wZXJ0aWVzKCk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUNka1RhYmxlUGFnaW5hdG9yU2V0dGluZ3Mge1xuICAgIHBhZ2VTaXplcz86IEFycmF5PG51bWJlcj47XG4gICAgaGlkZVBhZ2VTaXplPzogYm9vbGVhbjtcbiAgICBzaG93Rmlyc3RMYXN0QnV0dG9ucz86IGJvb2xlYW47XG59XG4iXX0=
@@ -39,7 +39,7 @@ export class NotificationImpl extends WindowBase {
39
39
  // --------------------------------------------------------------------------
40
40
  setProperties() {
41
41
  super.setProperties();
42
- ViewUtil.addClass(this.container, 'notification');
42
+ ViewUtil.addClass(this.container, 'vi-notification');
43
43
  }
44
44
  getConfig() {
45
45
  return this.properties.config;
@@ -137,4 +137,4 @@ export class NotificationImpl extends WindowBase {
137
137
  return this._container;
138
138
  }
139
139
  }
140
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTm90aWZpY2F0aW9uSW1wbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9ub3RpZmljYXRpb24vTm90aWZpY2F0aW9uSW1wbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQWMsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDNUQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzVDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFpQixpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBSW5FLE9BQU8sS0FBSyxDQUFDLE1BQU0sUUFBUSxDQUFDO0FBRTVCLE1BQU0sT0FBTyxnQkFBMEIsU0FBUSxVQUFVO0lBY3JELDZFQUE2RTtJQUM3RSxFQUFFO0lBQ0YsZUFBZTtJQUNmLEVBQUU7SUFDRiw2RUFBNkU7SUFFN0UsWUFBWSxVQUFrQztRQUMxQyxLQUFLLEVBQUUsQ0FBQztRQWdDRixjQUFTLEdBQUcsR0FBUyxFQUFFO1lBQzdCLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzlCLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNuQixDQUFDLENBQUM7UUFFUSxjQUFTLEdBQUcsR0FBUyxFQUFFO1lBQzdCLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2xDLENBQUMsQ0FBQztRQXRDRSxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7UUFFOUIsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7UUFDN0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZ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QUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDMUYsQ0FBQztJQUVELElBQVcsU0FBUztRQUNoQixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDM0IsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTWF0RGlhbG9nUmVmIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpbHRlciwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9pbnRlcm5hbC9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgVmlld1V0aWwgfSBmcm9tICcuLi91dGlsL1ZpZXdVdGlsJztcbmltcG9ydCB7IFdpbmRvd0V2ZW50IH0gZnJvbSAnLi4vd2luZG93L0lXaW5kb3cnO1xuaW1wb3J0IHsgV2luZG93QmFzZSB9IGZyb20gJy4uL3dpbmRvdy9XaW5kb3dCYXNlJztcbmltcG9ydCB7IElOb3RpZmljYXRpb24sIE5vdGlmaWNhdGlvbkV2ZW50IH0gZnJvbSAnLi9JTm90aWZpY2F0aW9uJztcbmltcG9ydCB7IElOb3RpZmljYXRpb25Db250ZW50IH0gZnJvbSAnLi9JTm90aWZpY2F0aW9uQ29udGVudCc7XG5pbXBvcnQgeyBOb3RpZmljYXRpb25Db25maWcgfSBmcm9tICcuL05vdGlmaWNhdGlvbkNvbmZpZyc7XG5pbXBvcnQgeyBOb3RpZmljYXRpb25Qcm9wZXJ0aWVzIH0gZnJvbSAnLi9Ob3RpZmljYXRpb25Qcm9wZXJ0aWVzJztcbmltcG9ydCAqIGFzIF8gZnJvbSAnbG9kYXNoJztcblxuZXhwb3J0IGNsYXNzIE5vdGlmaWNhdGlvbkltcGw8VCA9IGFueT4gZXh0ZW5kcyBXaW5kb3dCYXNlIGltcGxlbWVudHMgSU5vdGlmaWNhdGlvbiB7XG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvL1xuICAgIC8vICBQcm9wZXJ0aWVzXG4gICAgLy9cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gICAgcHJpdmF0ZSBfY29udGFpbmVyOiBIVE1MRWxlbWVudDtcblxuICAgIHByb3RlY3RlZCBwcm9wZXJ0aWVzOiBOb3RpZmljYXRpb25Qcm9wZXJ0aWVzO1xuXG4gICAgcHJvdGVjdGVkIHRpbWVyOiBhbnk7XG4gICAgcHJvdGVjdGVkIG9ic2VydmVyOiBTdWJqZWN0PHN0cmluZz47XG5cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vXG4gICAgLy8gIENvbnN0cnVjdG9yXG4gICAgLy9cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gICAgY29uc3RydWN0b3IocHJvcGVydGllczogTm90aWZpY2F0aW9uUHJvcGVydGllcykge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLm9ic2VydmVyID0gbmV3IFN1YmplY3QoKTtcblxuICAgICAgICB0aGlzLnByb3BlcnRpZXMgPSBwcm9wZXJ0aWVzO1xuICAgICAgICB0aGlzLmNvbnRlbnQubm90aWZpY2F0aW9uID0gdGhpcztcblxuICAgICAgICAvLyBIYXZlIHRvIHNhdmUgZm9yIHVuc3Vic2NyaWJlIG9uIGRlc3Ryb3lcbiAgICAgICAgdGhpcy5fY29udGFpbmVyID0gdGhpcy5wcm9wZXJ0aWVzLm92ZXJsYXkub3ZlcmxheUVsZW1lbnQ7XG5cbiAgICAgICAgdGhpcy5zZXRQcm9wZXJ0aWVzKCk7XG4gICAgICAgIHRoaXMuZ2V0UmVmZXJlbmNlKCkuYWZ0ZXJPcGVuZWQoKS5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZCkpLnN1YnNjcmliZSh0aGlzLnNldE9wZW5lZCk7XG4gICAgICAgIHRoaXMuZ2V0UmVmZXJlbmNlKCkuYWZ0ZXJDbG9zZWQoKS5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZCkpLnN1YnNjcmliZSh0aGlzLnNldENsb3NlZCk7XG5cbiAgICAgICAgdGhpcy5vYnNlcnZlclxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgZmlsdGVyKGV2ZW50ID0+IGV2ZW50ID09PSBXaW5kb3dFdmVudC5DT05URU5UX1JFQURZKSxcbiAgICAgICAgICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKHRoaXMudXBkYXRlUG9zaXRpb24pO1xuICAgIH1cblxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy9cbiAgICAvLyAgUHJvdGVjdGVkIE1ldGhvZHNcbiAgICAvL1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgICBwcm90ZWN0ZWQgc2V0UHJvcGVydGllcygpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIuc2V0UHJvcGVydGllcygpO1xuICAgICAgICBWaWV3VXRpbC5hZGRDbGFzcyh0aGlzLmNvbnRhaW5lciwgJ25vdGlmaWNhdGlvbicpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBzZXRDbG9zZWQgPSAoKTogdm9pZCA9PiB7XG4gICAgICAgIHRoaXMuZW1pdChXaW5kb3dFdmVudC5DTE9TRUQpO1xuICAgICAgICB0aGlzLmRlc3Ryb3koKTtcbiAgICB9O1xuXG4gICAgcHJvdGVjdGVkIHNldE9wZW5lZCA9ICgpOiB2b2lkID0+IHtcbiAgICAgICAgdGhpcy5lbWl0KFdpbmRvd0V2ZW50Lk9QRU5FRCk7XG4gICAgfTtcblxuICAgIHByb3RlY3RlZCBnZXRDb25maWcoKTogTm90aWZpY2F0aW9uQ29uZmlnIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucHJvcGVydGllcy5jb25maWc7XG4gICAgfVxuICAgIHByb3RlY3RlZCBnZXRDb250YWluZXIoKTogSFRNTEVsZW1lbnQge1xuICAgICAgICByZXR1cm4gdGhpcy5jb250YWluZXI7XG4gICAgfVxuICAgIHByb3RlY3RlZCBnZXRSZWZlcmVuY2UoKTogTWF0RGlhbG9nUmVmPElOb3RpZmljYXRpb25Db250ZW50PiB7XG4gICAgICAgIHJldHVybiB0aGlzLnByb3BlcnRpZXMucmVmZXJlbmNlO1xuICAgIH1cblxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy9cbiAgICAvLyAgUHVibGljIE1ldGhvZHNcbiAgICAvL1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgICBwdWJsaWMgZW1pdChldmVudDogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHRoaXMub2JzZXJ2ZXIubmV4dChldmVudCk7XG4gICAgfVxuXG4gICAgcHVibGljIGNsb3NlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmdldFJlZmVyZW5jZSgpLmNsb3NlKCk7XG4gICAgfVxuXG4gICAgcHVibGljIHJlbW92ZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jbG9zZSgpO1xuICAgICAgICB0aGlzLm9ic2VydmVyLm5leHQoTm90aWZpY2F0aW9uRXZlbnQuUkVNT1ZFRCk7XG4gICAgfVxuXG4gICAgcHVibGljIGRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmlzRGVzdHJveWVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgc3VwZXIuZGVzdHJveSgpO1xuXG4gICAgICAgIGlmICghXy5pc05pbCh0aGlzLm9ic2VydmVyKSkge1xuICAgICAgICAgICAgdGhpcy5vYnNlcnZlci5jb21wbGV0ZSgpO1xuICAgICAgICAgICAgdGhpcy5vYnNlcnZlciA9IG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5wcm9wZXJ0aWVzID0gbnVsbDtcbiAgICAgICAgdGhpcy5fY29udGFpbmVyID0gbnVsbDtcbiAgICB9XG5cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vXG4gICAgLy8gIFNpemUgTWV0aG9kc1xuICAgIC8vXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIHB1YmxpYyBnZXRXaWR0aCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5jYWxjdWxhdGVXaWR0aCgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRIZWlnaHQoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY2FsY3VsYXRlSGVpZ2h0KCk7XG4gICAgfVxuXG4gICAgcHVibGljIHNldFdpZHRoKHZhbHVlOiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy53aWR0aCA9IHZhbHVlO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXRIZWlnaHQodmFsdWU6IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLmhlaWdodCA9IHZhbHVlO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXRTaXplKHdpZHRoOiBudW1iZXIsIGhlaWdodDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2V0V2lkdGgod2lkdGgpO1xuICAgICAgICB0aGlzLnNldEhlaWdodChoZWlnaHQpO1xuICAgIH1cblxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy9cbiAgICAvLyAgTW92ZSBNZXRob2RzXG4gICAgLy9cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gICAgcHVibGljIGdldFgoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMueDtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0WCh2YWx1ZTogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIHRoaXMueCA9IHZhbHVlO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRZKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLnk7XG4gICAgfVxuICAgIHB1YmxpYyBzZXRZKHZhbHVlOiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy55ID0gdmFsdWU7XG4gICAgfVxuXG4gICAgcHVibGljIG1vdmUoeDogbnVtYmVyLCB5OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZXRYKHgpO1xuICAgICAgICB0aGlzLnNldFkoeSk7XG4gICAgfVxuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvL1xuICAgIC8vICBQdWJsaWMgUHJvcGVydGllc1xuICAgIC8vXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIHB1YmxpYyBnZXQgZXZlbnRzKCk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgICAgIHJldHVybiB0aGlzLm9ic2VydmVyLmFzT2JzZXJ2YWJsZSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgY29uZmlnKCk6IE5vdGlmaWNhdGlvbkNvbmZpZyB7XG4gICAgICAgIHJldHVybiB0aGlzLnByb3BlcnRpZXMuY29uZmlnO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgY29udGVudCgpOiBJTm90aWZpY2F0aW9uQ29udGVudDxUPiB7XG4gICAgICAgIHJldHVybiB0aGlzLnByb3BlcnRpZXMucmVmZXJlbmNlID8gdGhpcy5wcm9wZXJ0aWVzLnJlZmVyZW5jZS5jb21wb25lbnRJbnN0YW5jZSA6IG51bGw7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBjb250YWluZXIoKTogSFRNTEVsZW1lbnQge1xuICAgICAgICByZXR1cm4gdGhpcy5fY29udGFpbmVyO1xuICAgIH1cbn1cbiJdfQ==
140
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTm90aWZpY2F0aW9uSW1wbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9ub3RpZmljYXRpb24vTm90aWZpY2F0aW9uSW1wbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQWMsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDNUQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzVDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFpQixpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBSW5FLE9BQU8sS0FBSyxDQUFDLE1BQU0sUUFBUSxDQUFDO0FBRTVCLE1BQU0sT0FBTyxnQkFBMEIsU0FBUSxVQUFVO0lBY3JELDZFQUE2RTtJQUM3RSxFQUFFO0lBQ0YsZUFBZTtJQUNmLEVBQUU7SUFDRiw2RUFBNkU7SUFFN0UsWUFBWSxVQUFrQztRQUMxQyxLQUFLLEVBQUUsQ0FBQztRQWdDRixjQUFTLEdBQUcsR0FBUyxFQUFFO1lBQzdCLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzlCLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNuQixDQUFDLENBQUM7UUFFUSxjQUFTLEdBQUcsR0FBUyxFQUFFO1lBQzdCLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2xDLENBQUMsQ0FBQztRQXRDRSxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7UUFFOUIsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7UUFDN0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZ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LENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUMxRixDQUFDO0lBRUQsSUFBVyxTQUFTO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUMzQixDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNYXREaWFsb2dSZWYgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlsdGVyLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL2ludGVybmFsL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBWaWV3VXRpbCB9IGZyb20gJy4uL3V0aWwvVmlld1V0aWwnO1xuaW1wb3J0IHsgV2luZG93RXZlbnQgfSBmcm9tICcuLi93aW5kb3cvSVdpbmRvdyc7XG5pbXBvcnQgeyBXaW5kb3dCYXNlIH0gZnJvbSAnLi4vd2luZG93L1dpbmRvd0Jhc2UnO1xuaW1wb3J0IHsgSU5vdGlmaWNhdGlvbiwgTm90aWZpY2F0aW9uRXZlbnQgfSBmcm9tICcuL0lOb3RpZmljYXRpb24nO1xuaW1wb3J0IHsgSU5vdGlmaWNhdGlvbkNvbnRlbnQgfSBmcm9tICcuL0lOb3RpZmljYXRpb25Db250ZW50JztcbmltcG9ydCB7IE5vdGlmaWNhdGlvbkNvbmZpZyB9IGZyb20gJy4vTm90aWZpY2F0aW9uQ29uZmlnJztcbmltcG9ydCB7IE5vdGlmaWNhdGlvblByb3BlcnRpZXMgfSBmcm9tICcuL05vdGlmaWNhdGlvblByb3BlcnRpZXMnO1xuaW1wb3J0ICogYXMgXyBmcm9tICdsb2Rhc2gnO1xuXG5leHBvcnQgY2xhc3MgTm90aWZpY2F0aW9uSW1wbDxUID0gYW55PiBleHRlbmRzIFdpbmRvd0Jhc2UgaW1wbGVtZW50cyBJTm90aWZpY2F0aW9uIHtcbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vXG4gICAgLy8gIFByb3BlcnRpZXNcbiAgICAvL1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgICBwcml2YXRlIF9jb250YWluZXI6IEhUTUxFbGVtZW50O1xuXG4gICAgcHJvdGVjdGVkIHByb3BlcnRpZXM6IE5vdGlmaWNhdGlvblByb3BlcnRpZXM7XG5cbiAgICBwcm90ZWN0ZWQgdGltZXI6IGFueTtcbiAgICBwcm90ZWN0ZWQgb2JzZXJ2ZXI6IFN1YmplY3Q8c3RyaW5nPjtcblxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy9cbiAgICAvLyAgQ29uc3RydWN0b3JcbiAgICAvL1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgICBjb25zdHJ1Y3Rvcihwcm9wZXJ0aWVzOiBOb3RpZmljYXRpb25Qcm9wZXJ0aWVzKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMub2JzZXJ2ZXIgPSBuZXcgU3ViamVjdCgpO1xuXG4gICAgICAgIHRoaXMucHJvcGVydGllcyA9IHByb3BlcnRpZXM7XG4gICAgICAgIHRoaXMuY29udGVudC5ub3RpZmljYXRpb24gPSB0aGlzO1xuXG4gICAgICAgIC8vIEhhdmUgdG8gc2F2ZSBmb3IgdW5zdWJzY3JpYmUgb24gZGVzdHJveVxuICAgICAgICB0aGlzLl9jb250YWluZXIgPSB0aGlzLnByb3BlcnRpZXMub3ZlcmxheS5vdmVybGF5RWxlbWVudDtcblxuICAgICAgICB0aGlzLnNldFByb3BlcnRpZXMoKTtcbiAgICAgICAgdGhpcy5nZXRSZWZlcmVuY2UoKS5hZnRlck9wZW5lZCgpLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveWVkKSkuc3Vic2NyaWJlKHRoaXMuc2V0T3BlbmVkKTtcbiAgICAgICAgdGhpcy5nZXRSZWZlcmVuY2UoKS5hZnRlckNsb3NlZCgpLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveWVkKSkuc3Vic2NyaWJlKHRoaXMuc2V0Q2xvc2VkKTtcblxuICAgICAgICB0aGlzLm9ic2VydmVyXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBmaWx0ZXIoZXZlbnQgPT4gZXZlbnQgPT09IFdpbmRvd0V2ZW50LkNPTlRFTlRfUkVBRFkpLFxuICAgICAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZClcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUodGhpcy51cGRhdGVQb3NpdGlvbik7XG4gICAgfVxuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvL1xuICAgIC8vICBQcm90ZWN0ZWQgTWV0aG9kc1xuICAgIC8vXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIHByb3RlY3RlZCBzZXRQcm9wZXJ0aWVzKCk6IHZvaWQge1xuICAgICAgICBzdXBlci5zZXRQcm9wZXJ0aWVzKCk7XG4gICAgICAgIFZpZXdVdGlsLmFkZENsYXNzKHRoaXMuY29udGFpbmVyLCAndmktbm90aWZpY2F0aW9uJyk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHNldENsb3NlZCA9ICgpOiB2b2lkID0+IHtcbiAgICAgICAgdGhpcy5lbWl0KFdpbmRvd0V2ZW50LkNMT1NFRCk7XG4gICAgICAgIHRoaXMuZGVzdHJveSgpO1xuICAgIH07XG5cbiAgICBwcm90ZWN0ZWQgc2V0T3BlbmVkID0gKCk6IHZvaWQgPT4ge1xuICAgICAgICB0aGlzLmVtaXQoV2luZG93RXZlbnQuT1BFTkVEKTtcbiAgICB9O1xuXG4gICAgcHJvdGVjdGVkIGdldENvbmZpZygpOiBOb3RpZmljYXRpb25Db25maWcge1xuICAgICAgICByZXR1cm4gdGhpcy5wcm9wZXJ0aWVzLmNvbmZpZztcbiAgICB9XG4gICAgcHJvdGVjdGVkIGdldENvbnRhaW5lcigpOiBIVE1MRWxlbWVudCB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbnRhaW5lcjtcbiAgICB9XG4gICAgcHJvdGVjdGVkIGdldFJlZmVyZW5jZSgpOiBNYXREaWFsb2dSZWY8SU5vdGlmaWNhdGlvbkNvbnRlbnQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMucHJvcGVydGllcy5yZWZlcmVuY2U7XG4gICAgfVxuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvL1xuICAgIC8vICBQdWJsaWMgTWV0aG9kc1xuICAgIC8vXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIHB1YmxpYyBlbWl0KGV2ZW50OiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vYnNlcnZlci5uZXh0KGV2ZW50KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY2xvc2UoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZ2V0UmVmZXJlbmNlKCkuY2xvc2UoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVtb3ZlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNsb3NlKCk7XG4gICAgICAgIHRoaXMub2JzZXJ2ZXIubmV4dChOb3RpZmljYXRpb25FdmVudC5SRU1PVkVEKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuaXNEZXN0cm95ZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBzdXBlci5kZXN0cm95KCk7XG5cbiAgICAgICAgaWYgKCFfLmlzTmlsKHRoaXMub2JzZXJ2ZXIpKSB7XG4gICAgICAgICAgICB0aGlzLm9ic2VydmVyLmNvbXBsZXRlKCk7XG4gICAgICAgICAgICB0aGlzLm9ic2VydmVyID0gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnByb3BlcnRpZXMgPSBudWxsO1xuICAgICAgICB0aGlzLl9jb250YWluZXIgPSBudWxsO1xuICAgIH1cblxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy9cbiAgICAvLyAgU2l6ZSBNZXRob2RzXG4gICAgLy9cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gICAgcHVibGljIGdldFdpZHRoKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLmNhbGN1bGF0ZVdpZHRoKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldEhlaWdodCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5jYWxjdWxhdGVIZWlnaHQoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0V2lkdGgodmFsdWU6IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLndpZHRoID0gdmFsdWU7XG4gICAgfVxuXG4gICAgcHVibGljIHNldEhlaWdodCh2YWx1ZTogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaGVpZ2h0ID0gdmFsdWU7XG4gICAgfVxuXG4gICAgcHVibGljIHNldFNpemUod2lkdGg6IG51bWJlciwgaGVpZ2h0OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZXRXaWR0aCh3aWR0aCk7XG4gICAgICAgIHRoaXMuc2V0SGVpZ2h0KGhlaWdodCk7XG4gICAgfVxuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvL1xuICAgIC8vICBNb3ZlIE1ldGhvZHNcbiAgICAvL1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgICBwdWJsaWMgZ2V0WCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy54O1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXRYKHZhbHVlOiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy54ID0gdmFsdWU7XG4gICAgfVxuXG4gICAgcHVibGljIGdldFkoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMueTtcbiAgICB9XG4gICAgcHVibGljIHNldFkodmFsdWU6IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLnkgPSB2YWx1ZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbW92ZSh4OiBudW1iZXIsIHk6IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLnNldFgoeCk7XG4gICAgICAgIHRoaXMuc2V0WSh5KTtcbiAgICB9XG5cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vXG4gICAgLy8gIFB1YmxpYyBQcm9wZXJ0aWVzXG4gICAgLy9cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gICAgcHVibGljIGdldCBldmVudHMoKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMub2JzZXJ2ZXIuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBjb25maWcoKTogTm90aWZpY2F0aW9uQ29uZmlnIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucHJvcGVydGllcy5jb25maWc7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBjb250ZW50KCk6IElOb3RpZmljYXRpb25Db250ZW50PFQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMucHJvcGVydGllcy5yZWZlcmVuY2UgPyB0aGlzLnByb3BlcnRpZXMucmVmZXJlbmNlLmNvbXBvbmVudEluc3RhbmNlIDogbnVsbDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGNvbnRhaW5lcigpOiBIVE1MRWxlbWVudCB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jb250YWluZXI7XG4gICAgfVxufVxuIl19
@@ -115,16 +115,17 @@ export class RouterBaseService extends Loadable {
115
115
  // Public Methods
116
116
  //
117
117
  // --------------------------------------------------------------------------
118
- isUrlActive(value, isExact = false) {
118
+ isUrlActive(item, isExact = false) {
119
119
  if (isExact) {
120
- return this.router.isActive(value, isExact);
120
+ return this.router.isActive(item, isExact);
121
121
  }
122
- if (_.isString(value)) {
123
- value = this.router.parseUrl(value);
122
+ if (_.isString(item)) {
123
+ item = this.router.parseUrl(item);
124
124
  }
125
- let item = this.urlTree;
126
- value.queryParams = item.queryParams = {};
127
- return value.toString() === item.toString();
125
+ let current = this.router.parseUrl(this.urlTree.toString());
126
+ item.fragment = current.fragment = null;
127
+ item.queryParams = current.queryParams = {};
128
+ return item.toString() === current.toString();
128
129
  }
129
130
  // --------------------------------------------------------------------------
130
131
  //
@@ -209,4 +210,4 @@ export class RouterBaseService extends Loadable {
209
210
  return this._router;
210
211
  }
211
212
  }
212
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUm91dGVyQmFzZVNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VydmljZS9Sb3V0ZXJCYXNlU2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNILGNBQWMsRUFFZCxnQkFBZ0IsRUFDaEIsYUFBYSxFQUNiLGVBQWUsRUFFZixlQUFlLEVBR2xCLE1BQU0saUJBQWlCLENBQUM7QUFDekIsT0FBTyxFQUFFLFFBQVEsRUFBRSxhQUFhLEVBQUUsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRTFELE9BQU8sS0FBSyxDQUFDLE1BQU0sUUFBUSxDQUFDO0FBQzVCLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTNDLE1BQU0sT0FBTyxpQkFBa0IsU0FBUSxRQUFvQjtJQWN2RCw2RUFBNkU7SUFDN0UsRUFBRTtJQUNGLGVBQWU7SUFDZixFQUFFO0lBQ0YsNkVBQTZFO0lBRTdFLFlBQXNCLE9BQWUsRUFBWSxNQUEyQjtRQUN4RSxLQUFLLEVBQUUsQ0FBQztRQURVLFlBQU8sR0FBUCxPQUFPLENBQVE7UUFBWSxXQUFNLEdBQU4sTUFBTSxDQUFxQjtRQVZsRSx1QkFBa0IsR0FBWSxLQUFLLENBQUM7UUFZMUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUU5QixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUM7UUFDekIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENB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LE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN4QixDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFjdGl2YXRlZFJvdXRlLFxuICAgIEFjdGl2YXRlZFJvdXRlU25hcHNob3QsXG4gICAgTmF2aWdhdGlvbkNhbmNlbCxcbiAgICBOYXZpZ2F0aW9uRW5kLFxuICAgIE5hdmlnYXRpb25FcnJvcixcbiAgICBOYXZpZ2F0aW9uRXh0cmFzLFxuICAgIE5hdmlnYXRpb25TdGFydCxcbiAgICBSb3V0ZXIsXG4gICAgVXJsVHJlZVxufSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgTG9hZGFibGUsIExvYWRhYmxlRXZlbnQsIExvYWRhYmxlU3RhdHVzIH0gZnJvbSAnQHRzLWNvcmUvY29tbW9uJztcbmltcG9ydCB7IE9ic2VydmFibGVEYXRhIH0gZnJvbSAnQHRzLWNvcmUvY29tbW9uL29ic2VydmVyJztcbmltcG9ydCB7IE5hdGl2ZVdpbmRvd1NlcnZpY2UgfSBmcm9tICdAdHMtY29yZS9mcm9udGVuZC9zZXJ2aWNlL05hdGl2ZVdpbmRvd1NlcnZpY2UnO1xuaW1wb3J0ICogYXMgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5leHBvcnQgY2xhc3MgUm91dGVyQmFzZVNlcnZpY2UgZXh0ZW5kcyBMb2FkYWJsZTx2b2lkLCB2b2lkPiB7XG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvL1xuICAgIC8vIFx0UHJvcGVydGllc1xuICAgIC8vXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIHByb3RlY3RlZCBwYXJhbXM6IE1hcDxzdHJpbmcsIHN0cmluZz47XG5cbiAgICBwcm90ZWN0ZWQgZXh0cmFzVG9BcHBseTogTmF2aWdhdGlvbkV4dHJhcztcbiAgICBwcm90ZWN0ZWQgaXNOZWVkVXBkYXRlRXh0cmFzOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBwcm90ZWN0ZWQgX2xhc3RVcmw6IHN0cmluZztcblxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy9cbiAgICAvLyBcdENvbnN0cnVjdG9yXG4gICAgLy9cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gICAgY29uc3RydWN0b3IocHJvdGVjdGVkIF9yb3V0ZXI6IFJvdXRlciwgcHJvdGVjdGVkIHdpbmRvdzogTmF0aXZlV2luZG93U2VydmljZSkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLnBhcmFtcyA9IG5ldyBNYXAoKTtcbiAgICAgICAgdGhpcy5vYnNlcnZlciA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgICAgICAgdGhpcy5fbGFzdFVybCA9IHRoaXMudXJsO1xuICAgICAgICB0aGlzLndpbmRvdy5nZXRQYXJhbXMoKS5mb3JFYWNoKCh2YWx1ZSwga2V5KSA9PiB0aGlzLnBhcmFtcy5zZXQoa2V5LCB2YWx1ZSkpO1xuICAgICAgICB0aGlzLmluaXRpYWxpemVPYnNlcnZlcnMoKTtcbiAgICB9XG5cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vXG4gICAgLy8gXHRQcml2YXRlIE1ldGhvZHNcbiAgICAvL1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgICBwcm90ZWN0ZWQgaW5pdGlhbGl6ZU9ic2VydmVycygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5yb3V0ZXIuZXZlbnRzLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveWVkKSkuc3Vic2NyaWJlKGV2ZW50ID0+IHtcbiAgICAgICAgICAgIGlmIChldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25TdGFydCkge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdHVzID0gTG9hZGFibGVTdGF0dXMuTE9BRElORztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRW5kIHx8IGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvbkNhbmNlbCB8fCBldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25FcnJvcikge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdHVzID0gTG9hZGFibGVTdGF0dXMuTE9BREVEO1xuICAgICAgICAgICAgICAgIGlmIChldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25FbmQpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fbGFzdFVybCA9IGV2ZW50LnVybDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBhc3luYyBhcHBseUV4dHJhcyhleHRyYXM/OiBOYXZpZ2F0aW9uRXh0cmFzKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgICAgIGxldCBwYXJhbXMgPSB7fSBhcyBOYXZpZ2F0aW9uRXh0cmFzO1xuICAgICAgICBwYXJhbXMucXVlcnlQYXJhbXMgPSB0aGlzLmdldFF1ZXJ5UGFyYW1zKCk7XG5cbiAgICAgICAgaWYgKCFfLmlzTmlsKGV4dHJhcykpIHtcbiAgICAgICAgICAgIE9iamVjdC5hc3NpZ24ocGFyYW1zLCBleHRyYXMpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCF0aGlzLmlzTG9hZGluZykge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMucm91dGVyLm5hdmlnYXRlKFtdLCBwYXJhbXMpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZXh0cmFzVG9BcHBseSA9IGV4dHJhcztcbiAgICAgICAgdGhpcy5pc05lZWRVcGRhdGVFeHRyYXMgPSB0cnVlO1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldFF1ZXJ5UGFyYW1zKCk6IGFueSB7XG4gICAgICAgIGxldCBwYXJhbXMgPSB7fSBhcyBhbnk7XG4gICAgICAgIHRoaXMucGFyYW1zLmZvckVhY2goKHZhbHVlLCBrZXkpID0+IChwYXJhbXNba2V5XSA9IHZhbHVlKSk7XG4gICAgICAgIHJldHVybiBwYXJhbXM7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGNvbW1pdFN0YXR1c0NoYW5nZWRQcm9wZXJ0aWVzKG9sZFN0YXR1czogTG9hZGFibGVTdGF0dXMsIG5ld1N0YXR1czogTG9hZGFibGVTdGF0dXMpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIuY29tbWl0U3RhdHVzQ2hhbmdlZFByb3BlcnRpZXMob2xkU3RhdHVzLCBuZXdTdGF0dXMpO1xuXG4gICAgICAgIHN3aXRjaCAobmV3U3RhdHVzKSB7XG4gICAgICAgICAgICBjYXNlIExvYWRhYmxlU3RhdHVzLkxPQURJTkc6XG4gICAgICAgICAgICAgICAgdGhpcy5vYnNlcnZlci5uZXh0KG5ldyBPYnNlcnZhYmxlRGF0YShMb2FkYWJsZUV2ZW50LlNUQVJURUQpKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgTG9hZGFibGVTdGF0dXMuTE9BREVEOlxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmlzTmVlZFVwZGF0ZUV4dHJhcykge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmlzTmVlZFVwZGF0ZUV4dHJhcyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmFwcGx5RXh0cmFzKHRoaXMuZXh0cmFzVG9BcHBseSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMub2JzZXJ2ZXIubmV4dChuZXcgT2JzZXJ2YWJsZURhdGEoTG9hZGFibGVFdmVudC5DT01QTEVURSkpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKG5ld1N0YXR1cyA9PT0gTG9hZGFibGVTdGF0dXMuTE9BREVEIHx8IG5ld1N0YXR1cyA9PT0gTG9hZGFibGVTdGF0dXMuRVJST1IpIHtcbiAgICAgICAgICAgIHRoaXMub2JzZXJ2ZXIubmV4dChuZXcgT2JzZXJ2YWJsZURhdGEoTG9hZGFibGVFdmVudC5GSU5JU0hFRCkpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvL1xuICAgIC8vIFx0TmF2aWdhdGUgTWV0aG9kc1xuICAgIC8vXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIHB1YmxpYyBhc3luYyBuYXZpZ2F0ZSh1cmw6IHN0cmluZywgZXh0cmFzPzogTmF2aWdhdGlvbkV4dHJhcywgaXNDbGVhclBhcmFtcz86IGJvb2xlYW4pOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICAgICAgaWYgKGlzQ2xlYXJQYXJhbXMpIHtcbiAgICAgICAgICAgIHRoaXMucGFyYW1zLmNsZWFyKCk7XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgcGFyYW1zID0ge30gYXMgTmF2aWdhdGlvbkV4dHJhcztcbiAgICAgICAgcGFyYW1zLnF1ZXJ5UGFyYW1zID0gdGhpcy5nZXRRdWVyeVBhcmFtcygpO1xuICAgICAgICBpZiAoIV8uaXNOaWwoZXh0cmFzKSkge1xuICAgICAgICAgICAgT2JqZWN0LmFzc2lnbihwYXJhbXMsIGV4dHJhcyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwodXJsLCBwYXJhbXMpO1xuICAgIH1cblxuICAgIHB1YmxpYyBuYXZpZ2F0ZVRvRXh0ZXJuYWxVcmwodXJsOiBzdHJpbmcsIHRhcmdldDogc3RyaW5nID0gJ19ibGFuaycpOiB2b2lkIHtcbiAgICAgICAgdGhpcy53aW5kb3cub3Blbih1cmwsIHRhcmdldCk7XG4gICAgfVxuXG4gICAgcHVibGljIG5hdmlnYXRlVG9MYXN0KGV4dHJhcz86IE5hdmlnYXRpb25FeHRyYXMpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMubmF2aWdhdGUodGhpcy5sYXN0VXJsLCBleHRyYXMpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBuYXZpZ2F0ZUlmTm90TG9hZGluZyh1cmw6IHN0cmluZywgZXh0cmFzPzogTmF2aWdhdGlvbkV4dHJhcyk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgICAgICByZXR1cm4gIXRoaXMuaXNMb2FkaW5nID8gdGhpcy5uYXZpZ2F0ZSh1cmwsIGV4dHJhcykgOiBmYWxzZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVsb2FkKCk6IHZvaWQge1xuICAgICAgICBsb2NhdGlvbi5yZWxvYWQoKTtcbiAgICB9XG5cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vXG4gICAgLy8gXHRQdWJsaWMgTWV0aG9kc1xuICAgIC8vXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIHB1YmxpYyBpc1VybEFjdGl2ZSh2YWx1ZTogc3RyaW5nIHwgVXJsVHJlZSwgaXNFeGFjdDogYm9vbGVhbiA9IGZhbHNlKTogYm9vbGVhbiB7XG4gICAgICAgIGlmIChpc0V4YWN0KSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5yb3V0ZXIuaXNBY3RpdmUodmFsdWUsIGlzRXhhY3QpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChfLmlzU3RyaW5nKHZhbHVlKSkge1xuICAgICAgICAgICAgdmFsdWUgPSB0aGlzLnJvdXRlci5wYXJzZVVybCh2YWx1ZSk7XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgaXRlbSA9IHRoaXMudXJsVHJlZTtcbiAgICAgICAgdmFsdWUucXVlcnlQYXJhbXMgPSBpdGVtLnF1ZXJ5UGFyYW1zID0ge307XG4gICAgICAgIHJldHVybiB2YWx1ZS50b1N0cmluZygpID09PSBpdGVtLnRvU3RyaW5nKCk7XG4gICAgfVxuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvL1xuICAgIC8vIFx0UHVibGljIFBhcmFtIE1ldGhvZHNcbiAgICAvL1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgICBwdWJsaWMgZ2V0UGFyYW1zPFQgPSBhbnk+KCk6IFQge1xuICAgICAgICBsZXQgcGFyYW1zID0ge30gYXMgYW55O1xuICAgICAgICB0aGlzLnBhcmFtcy5mb3JFYWNoKCh2YWx1ZSwga2V5KSA9PiAocGFyYW1zW2tleV0gPSB2YWx1ZSkpO1xuICAgICAgICByZXR1cm4gcGFyYW1zO1xuICAgIH1cblxuICAgIHB1YmxpYyBoYXNQYXJhbShuYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucGFyYW1zLmhhcyhuYW1lKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0UGFyYW08VCA9IHN0cmluZz4obmFtZTogc3RyaW5nLCBkZWZhdWx0VmFsdWU/OiBUKTogVCB7XG4gICAgICAgIHJldHVybiB0aGlzLmhhc1BhcmFtKG5hbWUpID8gKHRoaXMucGFyYW1zLmdldChuYW1lKSBhcyBhbnkpIDogZGVmYXVsdFZhbHVlO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXRQYXJhbShuYW1lOiBzdHJpbmcsIHZhbHVlOiBhbnksIGV4dHJhcz86IE5hdmlnYXRpb25FeHRyYXMpOiB2b2lkIHtcbiAgICAgICAgaWYgKCFfLmlzTmlsKHZhbHVlKSkge1xuICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZS50b1N0cmluZygpLnRyaW0oKTtcbiAgICAgICAgICAgIGlmIChfLmlzRW1wdHkodmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgdmFsdWUgPSBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmICghXy5pc05pbCh2YWx1ZSkpIHtcbiAgICAgICAgICAgIHRoaXMucGFyYW1zLnNldChuYW1lLCB2YWx1ZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnBhcmFtcy5kZWxldGUobmFtZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFfLmlzTmlsKGV4dHJhcykpIHtcbiAgICAgICAgICAgIGV4dHJhcyA9IHsgcmVwbGFjZVVybDogdHJ1ZSB9O1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuYXBwbHlFeHRyYXMoZXh0cmFzKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVtb3ZlUGFyYW0obmFtZTogc3RyaW5nLCBleHRyYXM/OiBOYXZpZ2F0aW9uRXh0cmFzKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmhhc1BhcmFtKG5hbWUpKSB7XG4gICAgICAgICAgICB0aGlzLnNldFBhcmFtKG5hbWUsIG51bGwsIGV4dHJhcyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgY2xlYXJQYXJhbXMoZXh0cmFzPzogTmF2aWdhdGlvbkV4dHJhcyk6IHZvaWQge1xuICAgICAgICB0aGlzLnBhcmFtcy5jbGVhcigpO1xuICAgICAgICBpZiAoIV8uaXNOaWwoZXh0cmFzKSkge1xuICAgICAgICAgICAgZXh0cmFzID0geyByZXBsYWNlVXJsOiB0cnVlIH07XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5hcHBseUV4dHJhcyhleHRyYXMpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgaGFzUGFyYW1zKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5wYXJhbXMuc2l6ZSA+IDA7XG4gICAgfVxuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvL1xuICAgIC8vIFx0RnJhZ21lbnQgTWV0aG9kc1xuICAgIC8vXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIHB1YmxpYyBnZXRGcmFnbWVudChzbmFwc2hvdDogQWN0aXZhdGVkUm91dGUgfCBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBkZWZhdWx0VmFsdWU/OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICBpZiAoc25hcHNob3QgaW5zdGFuY2VvZiBBY3RpdmF0ZWRSb3V0ZSkge1xuICAgICAgICAgICAgc25hcHNob3QgPSBzbmFwc2hvdC5zbmFwc2hvdDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gIV8uaXNOaWwoc25hcHNob3QuZnJhZ21lbnQpID8gc25hcHNob3QuZnJhZ21lbnQgOiBkZWZhdWx0VmFsdWU7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIHNldEZyYWdtZW50KHZhbHVlOiBzdHJpbmcpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYXBwbHlFeHRyYXMoeyBmcmFnbWVudDogdmFsdWUgfSk7XG4gICAgfVxuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvL1xuICAgIC8vIFx0UHVibGljIFVybCBNZXRob2RzXG4gICAgLy9cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gICAgcHVibGljIGdldCB1cmwoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucm91dGVyLnVybDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGxhc3RVcmwoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2xhc3RVcmw7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCB1cmxUcmVlKCk6IFVybFRyZWUge1xuICAgICAgICByZXR1cm4gdGhpcy5yb3V0ZXIucGFyc2VVcmwodGhpcy51cmwpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgcm91dGVyKCk6IFJvdXRlciB7XG4gICAgICAgIHJldHVybiB0aGlzLl9yb3V0ZXI7XG4gICAgfVxufVxuIl19
213
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUm91dGVyQmFzZVNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VydmljZS9Sb3V0ZXJCYXNlU2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNILGNBQWMsRUFFZCxnQkFBZ0IsRUFDaEIsYUFBYSxFQUNiLGVBQWUsRUFFZixlQUFlLEVBR2xCLE1BQU0saUJBQWlCLENBQUM7QUFDekIsT0FBTyxFQUFFLFFBQVEsRUFBRSxhQUFhLEVBQUUsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRTFELE9BQU8sS0FBSyxDQUFDLE1BQU0sUUFBUSxDQUFDO0FBQzVCLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTNDLE1BQU0sT0FBTyxpQkFBa0IsU0FBUSxRQUFvQjtJQWN2RCw2RUFBNkU7SUFDN0UsRUFBRTtJQUNGLGVBQWU7SUFDZixFQUFFO0lBQ0YsNkVBQTZFO0lBRTdFLFlBQXNCLE9BQWUsRUFBWSxNQUEyQjtRQUN4RSxLQUFLLEVBQUUsQ0FBQztRQURVLFlBQU8sR0FBUCxPQUFPLENBQVE7UUFBWSxXQUFNLEdBQU4sTUFBTSxDQUFxQjtRQVZsRSx1QkFBa0IsR0FBWSxLQUFLLENBQUM7UUFZMUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUU5QixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUM7UUFDekIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENB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LElBQVcsT0FBTztRQUNkLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFRCxJQUFXLE1BQU07UUFDYixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDeEIsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBBY3RpdmF0ZWRSb3V0ZSxcbiAgICBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LFxuICAgIE5hdmlnYXRpb25DYW5jZWwsXG4gICAgTmF2aWdhdGlvbkVuZCxcbiAgICBOYXZpZ2F0aW9uRXJyb3IsXG4gICAgTmF2aWdhdGlvbkV4dHJhcyxcbiAgICBOYXZpZ2F0aW9uU3RhcnQsXG4gICAgUm91dGVyLFxuICAgIFVybFRyZWVcbn0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IExvYWRhYmxlLCBMb2FkYWJsZUV2ZW50LCBMb2FkYWJsZVN0YXR1cyB9IGZyb20gJ0B0cy1jb3JlL2NvbW1vbic7XG5pbXBvcnQgeyBPYnNlcnZhYmxlRGF0YSB9IGZyb20gJ0B0cy1jb3JlL2NvbW1vbi9vYnNlcnZlcic7XG5pbXBvcnQgeyBOYXRpdmVXaW5kb3dTZXJ2aWNlIH0gZnJvbSAnQHRzLWNvcmUvZnJvbnRlbmQvc2VydmljZS9OYXRpdmVXaW5kb3dTZXJ2aWNlJztcbmltcG9ydCAqIGFzIF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuZXhwb3J0IGNsYXNzIFJvdXRlckJhc2VTZXJ2aWNlIGV4dGVuZHMgTG9hZGFibGU8dm9pZCwgdm9pZD4ge1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy9cbiAgICAvLyBcdFByb3BlcnRpZXNcbiAgICAvL1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgICBwcm90ZWN0ZWQgcGFyYW1zOiBNYXA8c3RyaW5nLCBzdHJpbmc+O1xuXG4gICAgcHJvdGVjdGVkIGV4dHJhc1RvQXBwbHk6IE5hdmlnYXRpb25FeHRyYXM7XG4gICAgcHJvdGVjdGVkIGlzTmVlZFVwZGF0ZUV4dHJhczogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgcHJvdGVjdGVkIF9sYXN0VXJsOiBzdHJpbmc7XG5cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vXG4gICAgLy8gXHRDb25zdHJ1Y3RvclxuICAgIC8vXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBfcm91dGVyOiBSb3V0ZXIsIHByb3RlY3RlZCB3aW5kb3c6IE5hdGl2ZVdpbmRvd1NlcnZpY2UpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5wYXJhbXMgPSBuZXcgTWFwKCk7XG4gICAgICAgIHRoaXMub2JzZXJ2ZXIgPSBuZXcgU3ViamVjdCgpO1xuXG4gICAgICAgIHRoaXMuX2xhc3RVcmwgPSB0aGlzLnVybDtcbiAgICAgICAgdGhpcy53aW5kb3cuZ2V0UGFyYW1zKCkuZm9yRWFjaCgodmFsdWUsIGtleSkgPT4gdGhpcy5wYXJhbXMuc2V0KGtleSwgdmFsdWUpKTtcbiAgICAgICAgdGhpcy5pbml0aWFsaXplT2JzZXJ2ZXJzKCk7XG4gICAgfVxuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvL1xuICAgIC8vIFx0UHJpdmF0ZSBNZXRob2RzXG4gICAgLy9cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gICAgcHJvdGVjdGVkIGluaXRpYWxpemVPYnNlcnZlcnMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMucm91dGVyLmV2ZW50cy5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZCkpLnN1YnNjcmliZShldmVudCA9PiB7XG4gICAgICAgICAgICBpZiAoZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uU3RhcnQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXR1cyA9IExvYWRhYmxlU3RhdHVzLkxPQURJTkc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvbkVuZCB8fCBldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25DYW5jZWwgfHwgZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRXJyb3IpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXR1cyA9IExvYWRhYmxlU3RhdHVzLkxPQURFRDtcbiAgICAgICAgICAgICAgICBpZiAoZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRW5kKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2xhc3RVcmwgPSBldmVudC51cmw7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgYXN5bmMgYXBwbHlFeHRyYXMoZXh0cmFzPzogTmF2aWdhdGlvbkV4dHJhcyk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgICAgICBsZXQgcGFyYW1zID0ge30gYXMgTmF2aWdhdGlvbkV4dHJhcztcbiAgICAgICAgcGFyYW1zLnF1ZXJ5UGFyYW1zID0gdGhpcy5nZXRRdWVyeVBhcmFtcygpO1xuXG4gICAgICAgIGlmICghXy5pc05pbChleHRyYXMpKSB7XG4gICAgICAgICAgICBPYmplY3QuYXNzaWduKHBhcmFtcywgZXh0cmFzKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghdGhpcy5pc0xvYWRpbmcpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbXSwgcGFyYW1zKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmV4dHJhc1RvQXBwbHkgPSBleHRyYXM7XG4gICAgICAgIHRoaXMuaXNOZWVkVXBkYXRlRXh0cmFzID0gdHJ1ZTtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXRRdWVyeVBhcmFtcygpOiBhbnkge1xuICAgICAgICBsZXQgcGFyYW1zID0ge30gYXMgYW55O1xuICAgICAgICB0aGlzLnBhcmFtcy5mb3JFYWNoKCh2YWx1ZSwga2V5KSA9PiAocGFyYW1zW2tleV0gPSB2YWx1ZSkpO1xuICAgICAgICByZXR1cm4gcGFyYW1zO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBjb21taXRTdGF0dXNDaGFuZ2VkUHJvcGVydGllcyhvbGRTdGF0dXM6IExvYWRhYmxlU3RhdHVzLCBuZXdTdGF0dXM6IExvYWRhYmxlU3RhdHVzKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLmNvbW1pdFN0YXR1c0NoYW5nZWRQcm9wZXJ0aWVzKG9sZFN0YXR1cywgbmV3U3RhdHVzKTtcblxuICAgICAgICBzd2l0Y2ggKG5ld1N0YXR1cykge1xuICAgICAgICAgICAgY2FzZSBMb2FkYWJsZVN0YXR1cy5MT0FESU5HOlxuICAgICAgICAgICAgICAgIHRoaXMub2JzZXJ2ZXIubmV4dChuZXcgT2JzZXJ2YWJsZURhdGEoTG9hZGFibGVFdmVudC5TVEFSVEVEKSk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIExvYWRhYmxlU3RhdHVzLkxPQURFRDpcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5pc05lZWRVcGRhdGVFeHRyYXMpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pc05lZWRVcGRhdGVFeHRyYXMgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hcHBseUV4dHJhcyh0aGlzLmV4dHJhc1RvQXBwbHkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLm9ic2VydmVyLm5leHQobmV3IE9ic2VydmFibGVEYXRhKExvYWRhYmxlRXZlbnQuQ09NUExFVEUpKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChuZXdTdGF0dXMgPT09IExvYWRhYmxlU3RhdHVzLkxPQURFRCB8fCBuZXdTdGF0dXMgPT09IExvYWRhYmxlU3RhdHVzLkVSUk9SKSB7XG4gICAgICAgICAgICB0aGlzLm9ic2VydmVyLm5leHQobmV3IE9ic2VydmFibGVEYXRhKExvYWRhYmxlRXZlbnQuRklOSVNIRUQpKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy9cbiAgICAvLyBcdE5hdmlnYXRlIE1ldGhvZHNcbiAgICAvL1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgICBwdWJsaWMgYXN5bmMgbmF2aWdhdGUodXJsOiBzdHJpbmcsIGV4dHJhcz86IE5hdmlnYXRpb25FeHRyYXMsIGlzQ2xlYXJQYXJhbXM/OiBib29sZWFuKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgICAgIGlmIChpc0NsZWFyUGFyYW1zKSB7XG4gICAgICAgICAgICB0aGlzLnBhcmFtcy5jbGVhcigpO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IHBhcmFtcyA9IHt9IGFzIE5hdmlnYXRpb25FeHRyYXM7XG4gICAgICAgIHBhcmFtcy5xdWVyeVBhcmFtcyA9IHRoaXMuZ2V0UXVlcnlQYXJhbXMoKTtcbiAgICAgICAgaWYgKCFfLmlzTmlsKGV4dHJhcykpIHtcbiAgICAgICAgICAgIE9iamVjdC5hc3NpZ24ocGFyYW1zLCBleHRyYXMpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKHVybCwgcGFyYW1zKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmF2aWdhdGVUb0V4dGVybmFsVXJsKHVybDogc3RyaW5nLCB0YXJnZXQ6IHN0cmluZyA9ICdfYmxhbmsnKTogdm9pZCB7XG4gICAgICAgIHRoaXMud2luZG93Lm9wZW4odXJsLCB0YXJnZXQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBuYXZpZ2F0ZVRvTGFzdChleHRyYXM/OiBOYXZpZ2F0aW9uRXh0cmFzKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgICAgIHJldHVybiB0aGlzLm5hdmlnYXRlKHRoaXMubGFzdFVybCwgZXh0cmFzKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgbmF2aWdhdGVJZk5vdExvYWRpbmcodXJsOiBzdHJpbmcsIGV4dHJhcz86IE5hdmlnYXRpb25FeHRyYXMpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICAgICAgcmV0dXJuICF0aGlzLmlzTG9hZGluZyA/IHRoaXMubmF2aWdhdGUodXJsLCBleHRyYXMpIDogZmFsc2U7XG4gICAgfVxuXG4gICAgcHVibGljIHJlbG9hZCgpOiB2b2lkIHtcbiAgICAgICAgbG9jYXRpb24ucmVsb2FkKCk7XG4gICAgfVxuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvL1xuICAgIC8vIFx0UHVibGljIE1ldGhvZHNcbiAgICAvL1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgICBwdWJsaWMgaXNVcmxBY3RpdmUoaXRlbTogc3RyaW5nIHwgVXJsVHJlZSwgaXNFeGFjdDogYm9vbGVhbiA9IGZhbHNlKTogYm9vbGVhbiB7XG4gICAgICAgIGlmIChpc0V4YWN0KSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5yb3V0ZXIuaXNBY3RpdmUoaXRlbSwgaXNFeGFjdCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKF8uaXNTdHJpbmcoaXRlbSkpIHtcbiAgICAgICAgICAgIGl0ZW0gPSB0aGlzLnJvdXRlci5wYXJzZVVybChpdGVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBjdXJyZW50ID0gdGhpcy5yb3V0ZXIucGFyc2VVcmwodGhpcy51cmxUcmVlLnRvU3RyaW5nKCkpO1xuICAgICAgICBpdGVtLmZyYWdtZW50ID0gY3VycmVudC5mcmFnbWVudCA9IG51bGw7XG4gICAgICAgIGl0ZW0ucXVlcnlQYXJhbXMgPSBjdXJyZW50LnF1ZXJ5UGFyYW1zID0ge307XG4gICAgICAgIHJldHVybiBpdGVtLnRvU3RyaW5nKCkgPT09IGN1cnJlbnQudG9TdHJpbmcoKTtcbiAgICB9XG5cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vXG4gICAgLy8gXHRQdWJsaWMgUGFyYW0gTWV0aG9kc1xuICAgIC8vXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIHB1YmxpYyBnZXRQYXJhbXM8VCA9IGFueT4oKTogVCB7XG4gICAgICAgIGxldCBwYXJhbXMgPSB7fSBhcyBhbnk7XG4gICAgICAgIHRoaXMucGFyYW1zLmZvckVhY2goKHZhbHVlLCBrZXkpID0+IChwYXJhbXNba2V5XSA9IHZhbHVlKSk7XG4gICAgICAgIHJldHVybiBwYXJhbXM7XG4gICAgfVxuXG4gICAgcHVibGljIGhhc1BhcmFtKG5hbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5wYXJhbXMuaGFzKG5hbWUpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRQYXJhbTxUID0gc3RyaW5nPihuYW1lOiBzdHJpbmcsIGRlZmF1bHRWYWx1ZT86IFQpOiBUIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaGFzUGFyYW0obmFtZSkgPyAodGhpcy5wYXJhbXMuZ2V0KG5hbWUpIGFzIGFueSkgOiBkZWZhdWx0VmFsdWU7XG4gICAgfVxuXG4gICAgcHVibGljIHNldFBhcmFtKG5hbWU6IHN0cmluZywgdmFsdWU6IGFueSwgZXh0cmFzPzogTmF2aWdhdGlvbkV4dHJhcyk6IHZvaWQge1xuICAgICAgICBpZiAoIV8uaXNOaWwodmFsdWUpKSB7XG4gICAgICAgICAgICB2YWx1ZSA9IHZhbHVlLnRvU3RyaW5nKCkudHJpbSgpO1xuICAgICAgICAgICAgaWYgKF8uaXNFbXB0eSh2YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICB2YWx1ZSA9IG51bGw7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFfLmlzTmlsKHZhbHVlKSkge1xuICAgICAgICAgICAgdGhpcy5wYXJhbXMuc2V0KG5hbWUsIHZhbHVlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMucGFyYW1zLmRlbGV0ZShuYW1lKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIV8uaXNOaWwoZXh0cmFzKSkge1xuICAgICAgICAgICAgZXh0cmFzID0geyByZXBsYWNlVXJsOiB0cnVlIH07XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5hcHBseUV4dHJhcyhleHRyYXMpO1xuICAgIH1cblxuICAgIHB1YmxpYyByZW1vdmVQYXJhbShuYW1lOiBzdHJpbmcsIGV4dHJhcz86IE5hdmlnYXRpb25FeHRyYXMpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuaGFzUGFyYW0obmFtZSkpIHtcbiAgICAgICAgICAgIHRoaXMuc2V0UGFyYW0obmFtZSwgbnVsbCwgZXh0cmFzKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBjbGVhclBhcmFtcyhleHRyYXM/OiBOYXZpZ2F0aW9uRXh0cmFzKTogdm9pZCB7XG4gICAgICAgIHRoaXMucGFyYW1zLmNsZWFyKCk7XG4gICAgICAgIGlmICghXy5pc05pbChleHRyYXMpKSB7XG4gICAgICAgICAgICBleHRyYXMgPSB7IHJlcGxhY2VVcmw6IHRydWUgfTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmFwcGx5RXh0cmFzKGV4dHJhcyk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBoYXNQYXJhbXMoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnBhcmFtcy5zaXplID4gMDtcbiAgICB9XG5cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vXG4gICAgLy8gXHRGcmFnbWVudCBNZXRob2RzXG4gICAgLy9cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gICAgcHVibGljIGdldEZyYWdtZW50KHNuYXBzaG90OiBBY3RpdmF0ZWRSb3V0ZSB8IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIGRlZmF1bHRWYWx1ZT86IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIGlmIChzbmFwc2hvdCBpbnN0YW5jZW9mIEFjdGl2YXRlZFJvdXRlKSB7XG4gICAgICAgICAgICBzbmFwc2hvdCA9IHNuYXBzaG90LnNuYXBzaG90O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiAhXy5pc05pbChzbmFwc2hvdC5mcmFnbWVudCkgPyBzbmFwc2hvdC5mcmFnbWVudCA6IGRlZmF1bHRWYWx1ZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgc2V0RnJhZ21lbnQodmFsdWU6IHN0cmluZyk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5hcHBseUV4dHJhcyh7IGZyYWdtZW50OiB2YWx1ZSB9KTtcbiAgICB9XG5cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vXG4gICAgLy8gXHRQdWJsaWMgVXJsIE1ldGhvZHNcbiAgICAvL1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgICBwdWJsaWMgZ2V0IHVybCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5yb3V0ZXIudXJsO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgbGFzdFVybCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5fbGFzdFVybDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHVybFRyZWUoKTogVXJsVHJlZSB7XG4gICAgICAgIHJldHVybiB0aGlzLnJvdXRlci5wYXJzZVVybCh0aGlzLnVybCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCByb3V0ZXIoKTogUm91dGVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3JvdXRlcjtcbiAgICB9XG59XG4iXX0=
@@ -76,8 +76,8 @@ export class WindowImpl extends WindowBase {
76
76
  }
77
77
  setProperties() {
78
78
  super.setProperties();
79
- ViewUtil.addClass(this.container, 'window');
80
- ViewUtil.toggleClass(this.container, 'modal', this.config.isModal);
79
+ ViewUtil.addClass(this.container, 'vi-window');
80
+ ViewUtil.toggleClass(this.container, 'vi-modal', this.config.isModal);
81
81
  if (!this.config.isModal) {
82
82
  this.container.addEventListener('click', this.mouseClickHandlerProxy, true);
83
83
  this.container.addEventListener('mousedown', this.mouseDownHandlerProxy);
@@ -317,4 +317,4 @@ export class WindowImpl extends WindowBase {
317
317
  WindowImpl.BLINK_DELAY = 500;
318
318
  WindowImpl.SHAKE_DELAY = 500;
319
319
  WindowImpl.RESIZE_DELAY = 200;
320
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiV2luZG93SW1wbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy93aW5kb3cvV2luZG93SW1wbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQWMsT0FBTyxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUN6RCxPQUFPLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzVELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM1QyxPQUFPLEVBQVcsV0FBVyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRWpELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFHMUMsT0FBTyxLQUFLLENBQUMsTUFBTSxRQUFRLENBQUM7QUFFNUIsTUFBTSxPQUFPLFVBQW9CLFNBQVEsVUFBYTtJQXlDbEQsNkVBQTZFO0lBQzdFLEVBQUU7SUFDRixlQUFlO0lBQ2YsRUFBRTtJQUNGLDZFQUE2RTtJQUU3RSxZQUFZLFVBQTRCO1FBQ3BDLEtBQUssRUFBRSxDQUFDO1FBckNaLDZFQUE2RTtRQUM3RSxFQUFFO1FBQ0YsY0FBYztRQUNkLEVBQUU7UUFDRiw2RUFBNkU7UUFFckUsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUcxQixlQUFVLEdBQVksS0FBSyxDQUFDO1FBSzVCLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFDMUIsZ0JBQVcsR0FBWSxLQUFLLENBQUM7UUFDN0IsaUJBQVksR0FBWSxLQUFLLENBQUM7UUFFOUIsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUMxQixlQUFVLEdBQVksS0FBSyxDQUFDO1FBeUNwQyw2RUFBNkU7UUFDN0UsRUFBRTtRQUNGLHFCQUFxQjtRQUNyQixFQUFFO1FBQ0YsNkVBQTZFO1FBRW5FLGNBQVMsR0FBRyxHQUFTLEVBQUU7WUFDN0IsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7WUFDdEIsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDOUIsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ25CLENBQUMsQ0FBQztRQUVRLGNBQVMsR0FBRyxHQUFTLEVBQUU7WUFDN0IsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7WUFDckIsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDbEMsQ0FBQyxDQUFDO1FBRVEsZ0JBQVcsR0FBRyxHQUFTLEVBQUU7WUFDL0IsSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7UUFDakMsQ0FBQyxDQUFDO1FBRVEsZ0JBQVcsR0FBRyxHQUFTLEVBQUU7WUFDL0IsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7UUFDM0IsQ0FBQyxDQUFDO1FBRVEsZUFBVSxHQUFHLEdBQVMsRUFBRTtZQUM5QixJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNuQyxDQUFDLENBQUM7UUF5Q1Esa0JBQWEsR0FBRyxHQUFTLEVBQUU7WUFDakMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUU7Z0JBQ2hCLE9BQU87YUFDVjtZQUNELFlBQVksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDL0IsSUFBSSxDQUFDLFdBQVcsR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDNUUsQ0FBQyxDQUFDO1FBZU0sMEJBQXFCLEdBQUcsQ0FBQyxLQUFpQixFQUFRLEVBQUU7WUFDeEQsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2pDLENBQUMsQ0FBQztRQUVNLDJCQUFzQixHQUFHLENBQUMsS0FBaUIsRUFBUSxFQUFFO1lBQ3pELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNsQyxDQUFDLENBQUM7UUFySEUsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO1FBRTlCLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1FBQzdCLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztRQUUzQiwwQ0FBMEM7UUFDMUMsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUM7UUFDcEQsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUM7UUFDekQsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUM7UUFFekQsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDNUYsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUU1RixJQUFJLENBQUMsTUFBTTthQUNOLElBQUksQ0FDRCxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEtBQUssV0FBVyxDQUFDLGFBQWEsQ0FBQyxFQUNwRCxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUM1QjthQUNBLFNBQVMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQStCUyxhQUFhO1FBQ25CLEtBQUssQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUN0QixRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDNUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRW5FLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRTtZQUN0QixJQUFJLENBQUMsU0FBUyxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsc0JBQXNCLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDNUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLHFCQUFxQixDQUFDLENBQUM7U0FDNUU7SUFDTCxDQUFDO0lBRVMsdUJBQXVCLEtBQVUsQ0FBQztJQUNsQyx5QkFBeUIsS0FBVSxDQUFDO0lBQ3BDLDBCQUEwQixLQUFVLENBQUM7SUFDckMsMkJBQTJCLEtBQVUsQ0FBQztJQUV0QyxTQUFTO1FBQ2YsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQztJQUNsQyxDQUFDO0lBQ1MsWUFBWTtRQUNsQixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDMUIsQ0FBQztJQUNTLFlBQVk7UUFDbEIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQztJQUNyQyxDQUFDO0lBRVMsMEJBQTBCLENBQUMsS0FBaUI7UUFDbEQsT0FBTyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDNUIsQ0FBQztJQUVPLGVBQWU7UUFDbkIsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7UUFDckIsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDbEIsT0FBTztTQUNWO1FBQ0QsYUFBYSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUMvQixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztJQUMzQixDQUFDO0lBVVMsZ0JBQWdCLENBQUMsS0FBaUI7UUFDeEMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3BCLENBQUM7SUFFUyxpQkFBaUIsQ0FBQyxLQUFpQjtRQUN6QyxJQUFJLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUN4QyxLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7U0FDM0I7UUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNsQixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztTQUMxQjtJQUNMLENBQUM7SUFVRCw2RUFBNkU7SUFDN0UsRUFBRTtJQUNGLGtCQUFrQjtJQUNsQixFQUFFO0lBQ0YsNkVBQTZFO0lBRXRFLElBQUksQ0FBQyxLQUFhO1FBQ3JCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFTSxLQUFLO1FBQ1IsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ2hDLENBQUM7SUFFTSxPQUFPO1FBQ1YsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ2xCLE9BQU87U0FDVjtRQUNELEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUVoQixJQUFJLENBQUMsVUFBVSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsc0JBQXNCLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDaEYsSUFBSSxDQUFDLFVBQVUsQ0FBQyxtQkFBbUIsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLHFCQUFxQixDQUFDLENBQUM7UUFFN0UsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ3hCLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7U0FDMUI7UUFFRCxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDekIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUN6QixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztTQUN4QjtRQUVELElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO1FBRXZCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO1FBRXZCLGFBQWEsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDL0IsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7UUFFdkIsYUFBYSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUMvQixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztRQUV2QixZQUFZLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQy9CLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO0lBQzVCLENBQUM7SUFFTSxLQUFLO1FBQ1IsYUFBYSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUMvQixJQUFJLENBQUMsVUFBVSxHQUFHLFdBQVcsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLFVBQVUsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUM1RSxDQUFDO0lBRU0sS0FBSztRQUNSLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNoQixPQUFPO1NBQ1Y7UUFDRCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztRQUN0QixhQUFhLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQy9CLElBQUksQ0FBQyxVQUFVLEdBQUcsV0FBVyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsVUFBVSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzVFLENBQUM7SUFFTSxRQUFRO1FBQ1gsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO1FBQy9CLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRCw2RUFBNkU7SUFDN0UsRUFBRTtJQUNGLGdCQUFnQjtJQUNoQixFQUFFO0lBQ0YsNkVBQTZFO0lBRXRFLFFBQVE7UUFDWCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDdEIsQ0FBQztJQUVNLFNBQVM7UUFDWixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDdkIsQ0FBQztJQUVNLFFBQVEsQ0FBQyxLQUFhLEVBQUUsZUFBd0IsSUFBSTtRQUN2RCxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixJQUFJLFlBQVksRUFBRTtZQUNkLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztTQUN4QjtJQUNMLENBQUM7SUFFTSxTQUFTLENBQUMsS0FBYSxFQUFFLGVBQXdCLElBQUk7UUFDeEQsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFDcEIsSUFBSSxZQUFZLEVBQUU7WUFDZCxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7U0FDeEI7SUFDTCxDQUFDO0lBRU0sT0FBTyxDQUFDLEtBQWEsRUFBRSxNQUFjO1FBQ3hDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQzVCLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQzlCLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRUQsNkVBQTZFO0lBQzdFLEVBQUU7SUFDRixnQkFBZ0I7SUFDaEIsRUFBRTtJQUNGLDZFQUE2RTtJQUV0RSxJQUFJO1FBQ1AsT0FBTyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ2xCLENBQUM7SUFFTSxJQUFJLENBQUMsS0FBYSxFQUFFLGVBQXdCLElBQUk7UUFDbkQsSUFBSSxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUM7UUFDZixJQUFJLFlBQVksRUFBRTtZQUNkLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ2hDO0lBQ0wsQ0FBQztJQUVNLElBQUk7UUFDUCxPQUFPLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDbEIsQ0FBQztJQUNNLElBQUksQ0FBQyxLQUFhLEVBQUUsZUFBd0IsSUFBSTtRQUNuRCxJQUFJLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQztRQUNmLElBQUksWUFBWSxFQUFFO1lBQ2QsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDaEM7SUFDTCxDQUFDO0lBRU0sSUFBSSxDQUFDLENBQVMsRUFBRSxDQUFTO1FBQzVCLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRCw2RUFBNkU7SUFDN0UsRUFBRTtJQUNGLHNCQUFzQjtJQUN0QixFQUFFO0lBQ0YsNkVBQTZFO0lBRTdFLElBQWMsT0FBTztRQUNqQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDekIsQ0FBQztJQUNELElBQWMsT0FBTyxDQUFDLEtBQWM7UUFDaEMsSUFBSSxLQUFLLEtBQUssSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUN6QixPQUFPO1NBQ1Y7UUFDRCxJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztRQUN0QixJQUFJLENBQUMsdUJBQXVCLEVBQUUsQ0FBQztJQUNuQyxDQUFDO0lBRUQsSUFBYyxTQUFTO1FBQ25CLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUMzQixDQUFDO0lBQ0QsSUFBYyxTQUFTLENBQUMsS0FBYztRQUNsQyxJQUFJLEtBQUssS0FBSyxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQzNCLE9BQU87U0FDVjtRQUNELElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ3hCLElBQUksQ0FBQyx5QkFBeUIsRUFBRSxDQUFDO0lBQ3JDLENBQUM7SUFFRCw2RUFBNkU7SUFDN0UsRUFBRTtJQUNGLHFCQUFxQjtJQUNyQixFQUFFO0lBQ0YsNkVBQTZFO0lBRTdFLElBQVcsTUFBTTtRQUNiLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN4QyxDQUFDO0lBRUQsSUFBVyxNQUFNO1FBQ2IsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQztJQUNsQyxDQUFDO0lBRUQsSUFBVyxPQUFPO1FBQ2QsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUMxRixDQUFDO0lBRUQsSUFBVyxTQUFTO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUMzQixDQUFDO0lBRUQsSUFBVyxPQUFPO1FBQ2QsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxJQUFXLFFBQVE7UUFDZixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDMUIsQ0FBQztJQUVELElBQVcsT0FBTztRQUNkLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN6QixDQUFDO0lBQ0QsSUFBVyxPQUFPLENBQUMsS0FBYztRQUM3QixJQUFJLEtBQUssS0FBSyxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ3pCLE9BQU87U0FDVjtRQUNELElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ3RCLGFBQWEsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDL0IsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7SUFDekIsQ0FBQztJQUVELElBQVcsV0FBVztRQUNsQixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDN0IsQ0FBQztJQUNELElBQVcsV0FBVyxDQUFDLEtBQWM7UUFDakMsSUFBSSxLQUFLLEtBQUssSUFBSSxDQUFDLFlBQVksRUFBRTtZQUM3QixPQUFPO1NBQ1Y7UUFDRCxJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztRQUMxQixJQUFJLENBQUMsMkJBQTJCLEVBQUUsQ0FBQztRQUNuQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ3pDLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRUQsSUFBVyxVQUFVO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUM1QixDQUFDO0lBQ0QsSUFBVyxVQUFVLENBQUMsS0FBYztRQUNoQyxJQUFJLEtBQUssS0FBSyxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQzVCLE9BQU87U0FDVjtRQUNELElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO1FBQ3pCLElBQUksQ0FBQywwQkFBMEIsRUFBRSxDQUFDO1FBQ2xDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDNUMsQ0FBQzs7QUExWUQsNkVBQTZFO0FBQzdFLEVBQUU7QUFDRixhQUFhO0FBQ2IsRUFBRTtBQUNGLDZFQUE2RTtBQUUvRCxzQkFBVyxHQUFHLEdBQUcsQ0FBQztBQUNsQixzQkFBVyxHQUFHLEdBQUcsQ0FBQztBQUNsQix1QkFBWSxHQUFHLEdBQUcsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1hdERpYWxvZ1JlZiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpbHRlciwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9pbnRlcm5hbC9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgVmlld1V0aWwgfSBmcm9tICcuLi91dGlsL1ZpZXdVdGlsJztcbmltcG9ydCB7IElXaW5kb3csIFdpbmRvd0V2ZW50IH0gZnJvbSAnLi9JV2luZG93JztcbmltcG9ydCB7IElXaW5kb3dDb250ZW50IH0gZnJvbSAnLi9JV2luZG93Q29udGVudCc7XG5pbXBvcnQgeyBXaW5kb3dCYXNlIH0gZnJvbSAnLi9XaW5kb3dCYXNlJztcbmltcG9ydCB7IFdpbmRvd0NvbmZpZyB9IGZyb20gJy4vV2luZG93Q29uZmlnJztcbmltcG9ydCB7IFdpbmRvd1Byb3BlcnRpZXMgfSBmcm9tICcuL1dpbmRvd1Byb3BlcnRpZXMnO1xuaW1wb3J0ICogYXMgXyBmcm9tICdsb2Rhc2gnO1xuXG5leHBvcnQgY2xhc3MgV2luZG93SW1wbDxUID0gYW55PiBleHRlbmRzIFdpbmRvd0Jhc2U8VD4gaW1wbGVtZW50cyBJV2luZG93IHtcbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vXG4gICAgLy8gIENvbnN0YW50c1xuICAgIC8vXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIHB1YmxpYyBzdGF0aWMgQkxJTktfREVMQVkgPSA1MDA7XG4gICAgcHVibGljIHN0YXRpYyBTSEFLRV9ERUxBWSA9IDUwMDtcbiAgICBwdWJsaWMgc3RhdGljIFJFU0laRV9ERUxBWSA9IDIwMDtcblxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy9cbiAgICAvLyAgUHJvcGVydGllc1xuICAgIC8vXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIHByaXZhdGUgX2lzQmxpbms6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBwcml2YXRlIGJsaW5rVGltZXI6IGFueTtcblxuICAgIHByaXZhdGUgX2lzU2hha2luZzogYm9vbGVhbiA9IGZhbHNlO1xuICAgIHByaXZhdGUgc2hha2VUaW1lcjogYW55O1xuXG4gICAgcHJpdmF0ZSByZXNpemVUaW1lcjogYW55O1xuXG4gICAgcHJpdmF0ZSBfaXNPblRvcDogYm9vbGVhbiA9IGZhbHNlO1xuICAgIHByaXZhdGUgX2lzRGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBwcml2YXRlIF9pc01pbmltaXplZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgcHJpdmF0ZSBpc09wZW5lZDogYm9vbGVhbiA9IGZhbHNlO1xuICAgIHByaXZhdGUgaXNXYXNPblRvcDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgcHJpdmF0ZSBfd3JhcHBlcjogSFRNTEVsZW1lbnQ7XG4gICAgcHJpdmF0ZSBfYmFja2Ryb3A6IEhUTUxFbGVtZW50O1xuICAgIHByaXZhdGUgX2NvbnRhaW5lcjogSFRNTEVsZW1lbnQ7XG5cbiAgICBwcm90ZWN0ZWQgcHJvcGVydGllczogV2luZG93UHJvcGVydGllcztcblxuICAgIHByb3RlY3RlZCBzdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgICBwcm90ZWN0ZWQgb2JzZXJ2ZXI6IFN1YmplY3Q8c3RyaW5nPjtcblxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy9cbiAgICAvLyAgQ29uc3RydWN0b3JcbiAgICAvL1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgICBjb25zdHJ1Y3Rvcihwcm9wZXJ0aWVzOiBXaW5kb3dQcm9wZXJ0aWVzKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMub2JzZXJ2ZXIgPSBuZXcgU3ViamVjdCgpO1xuXG4gICAgICAgIHRoaXMucHJvcGVydGllcyA9IHByb3BlcnRpZXM7XG4gICAgICAgIHRoaXMuY29udGVudC53aW5kb3cgPSB0aGlzO1xuXG4gICAgICAgIC8vIEhhdmUgdG8gc2F2ZSBmb3IgdW5zdWJzY3JpYmUgb24gZGVzdHJveVxuICAgICAgICB0aGlzLl93cmFwcGVyID0gdGhpcy5wcm9wZXJ0aWVzLm92ZXJsYXkuaG9zdEVsZW1lbnQ7XG4gICAgICAgIHRoaXMuX2JhY2tkcm9wID0gdGhpcy5wcm9wZXJ0aWVzLm92ZXJsYXkuYmFja2Ryb3BFbGVtZW50O1xuICAgICAgICB0aGlzLl9jb250YWluZXIgPSB0aGlzLnByb3BlcnRpZXMub3ZlcmxheS5vdmVybGF5RWxlbWVudDtcblxuICAgICAgICB0aGlzLnNldFByb3BlcnRpZXMoKTtcbiAgICAgICAgdGhpcy5nZXRSZWZlcmVuY2UoKS5hZnRlck9wZW5lZCgpLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveWVkKSkuc3Vic2NyaWJlKHRoaXMuc2V0T3BlbmVkKTtcbiAgICAgICAgdGhpcy5nZXRSZWZlcmVuY2UoKS5hZnRlckNsb3NlZCgpLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveWVkKSkuc3Vic2NyaWJlKHRoaXMuc2V0Q2xvc2VkKTtcblxuICAgICAgICB0aGlzLmV2ZW50c1xuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgZmlsdGVyKGV2ZW50ID0+IGV2ZW50ID09PSBXaW5kb3dFdmVudC5DT05URU5UX1JFQURZKSxcbiAgICAgICAgICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKHRoaXMudXBkYXRlUG9zaXRpb24pO1xuICAgIH1cblxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy9cbiAgICAvLyAgUHJvdGVjdGVkIE1ldGhvZHNcbiAgICAvL1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgICBwcm90ZWN0ZWQgc2V0Q2xvc2VkID0gKCk6IHZvaWQgPT4ge1xuICAgICAgICB0aGlzLmlzT3BlbmVkID0gZmFsc2U7XG4gICAgICAgIHRoaXMuZW1pdChXaW5kb3dFdmVudC5DTE9TRUQpO1xuICAgICAgICB0aGlzLmRlc3Ryb3koKTtcbiAgICB9O1xuXG4gICAgcHJvdGVjdGVkIHNldE9wZW5lZCA9ICgpOiB2b2lkID0+IHtcbiAgICAgICAgdGhpcy5pc09wZW5lZCA9IHRydWU7XG4gICAgICAgIHRoaXMuZW1pdChXaW5kb3dFdmVudC5PUEVORUQpO1xuICAgIH07XG5cbiAgICBwcm90ZWN0ZWQgYmxpbmtUb2dnbGUgPSAoKTogdm9pZCA9PiB7XG4gICAgICAgIHRoaXMuaXNCbGluayA9ICF0aGlzLmlzQmxpbms7XG4gICAgfTtcblxuICAgIHByb3RlY3RlZCBzdG9wU2hha2luZyA9ICgpOiB2b2lkID0+IHtcbiAgICAgICAgdGhpcy5pc1NoYWtpbmcgPSBmYWxzZTtcbiAgICB9O1xuXG4gICAgcHJvdGVjdGVkIGVtaXRSZXNpemUgPSAoKTogdm9pZCA9PiB7XG4gICAgICAgIHRoaXMuZW1pdChXaW5kb3dFdmVudC5SRVNJWkVEKTtcbiAgICB9O1xuXG4gICAgcHJvdGVjdGVkIHNldFByb3BlcnRpZXMoKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLnNldFByb3BlcnRpZXMoKTtcbiAgICAgICAgVmlld1V0aWwuYWRkQ2xhc3ModGhpcy5jb250YWluZXIsICd3aW5kb3cnKTtcbiAgICAgICAgVmlld1V0aWwudG9nZ2xlQ2xhc3ModGhpcy5jb250YWluZXIsICdtb2RhbCcsIHRoaXMuY29uZmlnLmlzTW9kYWwpO1xuXG4gICAgICAgIGlmICghdGhpcy5jb25maWcuaXNNb2RhbCkge1xuICAgICAgICAgICAgdGhpcy5jb250YWluZXIuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCB0aGlzLm1vdXNlQ2xpY2tIYW5kbGVyUHJveHksIHRydWUpO1xuICAgICAgICAgICAgdGhpcy5jb250YWluZXIuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vkb3duJywgdGhpcy5tb3VzZURvd25IYW5kbGVyUHJveHkpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGNvbW1pdElzQmxpbmtQcm9wZXJ0aWVzKCk6IHZvaWQge31cbiAgICBwcm90ZWN0ZWQgY29tbWl0SXNTaGFraW5nUHJvcGVydGllcygpOiB2b2lkIHt9XG4gICAgcHJvdGVjdGVkIGNvbW1pdElzRGlzYWJsZWRQcm9wZXJ0aWVzKCk6IHZvaWQge31cbiAgICBwcm90ZWN0ZWQgY29tbWl0SXNNaW5pbWl6ZWRQcm9wZXJ0aWVzKCk6IHZvaWQge31cblxuICAgIHByb3RlY3RlZCBnZXRDb25maWcoKTogV2luZG93Q29uZmlnIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucHJvcGVydGllcy5jb25maWc7XG4gICAgfVxuICAgIHByb3RlY3RlZCBnZXRDb250YWluZXIoKTogSFRNTEVsZW1lbnQge1xuICAgICAgICByZXR1cm4gdGhpcy5jb250YWluZXI7XG4gICAgfVxuICAgIHByb3RlY3RlZCBnZXRSZWZlcmVuY2UoKTogTWF0RGlhbG9nUmVmPElXaW5kb3dDb250ZW50PFQ+PiB7XG4gICAgICAgIHJldHVybiB0aGlzLnByb3BlcnRpZXMucmVmZXJlbmNlO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBpc05lZWRDbGlja1N0b3BQcm9wYWdhdGlvbihldmVudDogTW91c2VFdmVudCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gIXRoaXMuaXNXYXNPblRvcDtcbiAgICB9XG5cbiAgICBwcml2YXRlIHN0b3BCbGlua0lmTmVlZCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pc0JsaW5rID0gZmFsc2U7XG4gICAgICAgIGlmICghdGhpcy5ibGlua1RpbWVyKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY2xlYXJJbnRlcnZhbCh0aGlzLmJsaW5rVGltZXIpO1xuICAgICAgICB0aGlzLmJsaW5rVGltZXIgPSBudWxsO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCByZXNpemVIYW5kbGVyID0gKCk6IHZvaWQgPT4ge1xuICAgICAgICBpZiAoIXRoaXMuaXNPcGVuZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjbGVhclRpbWVvdXQodGhpcy5yZXNpemVUaW1lcik7XG4gICAgICAgIHRoaXMucmVzaXplVGltZXIgPSBzZXRUaW1lb3V0KHRoaXMuZW1pdFJlc2l6ZSwgV2luZG93SW1wbC5SRVNJWkVfREVMQVkpO1xuICAgIH07XG5cbiAgICBwcm90ZWN0ZWQgbW91c2VEb3duSGFuZGxlcihldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNldE9uVG9wKCk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG1vdXNlQ2xpY2tIYW5kbGVyKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmlzTmVlZENsaWNrU3RvcFByb3BhZ2F0aW9uKGV2ZW50KSkge1xuICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCF0aGlzLmlzV2FzT25Ub3ApIHtcbiAgICAgICAgICAgIHRoaXMuaXNXYXNPblRvcCA9IHRydWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIG1vdXNlRG93bkhhbmRsZXJQcm94eSA9IChldmVudDogTW91c2VFdmVudCk6IHZvaWQgPT4ge1xuICAgICAgICB0aGlzLm1vdXNlRG93bkhhbmRsZXIoZXZlbnQpO1xuICAgIH07XG5cbiAgICBwcml2YXRlIG1vdXNlQ2xpY2tIYW5kbGVyUHJveHkgPSAoZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkID0+IHtcbiAgICAgICAgdGhpcy5tb3VzZUNsaWNrSGFuZGxlcihldmVudCk7XG4gICAgfTtcblxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy9cbiAgICAvLyAgUHVibGljIE1ldGhvZHNcbiAgICAvL1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgICBwdWJsaWMgZW1pdChldmVudDogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHRoaXMub2JzZXJ2ZXIubmV4dChldmVudCk7XG4gICAgfVxuXG4gICAgcHVibGljIGNsb3NlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmdldFJlZmVyZW5jZSgpLmNsb3NlKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmlzRGVzdHJveWVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgc3VwZXIuZGVzdHJveSgpO1xuXG4gICAgICAgIHRoaXMuX2NvbnRhaW5lci5yZW1vdmVFdmVudExpc3RlbmVyKCdjbGljaycsIHRoaXMubW91c2VDbGlja0hhbmRsZXJQcm94eSwgdHJ1ZSk7XG4gICAgICAgIHRoaXMuX2NvbnRhaW5lci5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZWRvd24nLCB0aGlzLm1vdXNlRG93bkhhbmRsZXJQcm94eSk7XG5cbiAgICAgICAgaWYgKCFfLmlzTmlsKHRoaXMuY29udGVudCkpIHtcbiAgICAgICAgICAgIHRoaXMuY29udGVudC5kZXN0cm95KCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIV8uaXNOaWwodGhpcy5vYnNlcnZlcikpIHtcbiAgICAgICAgICAgIHRoaXMub2JzZXJ2ZXIuY29tcGxldGUoKTtcbiAgICAgICAgICAgIHRoaXMub2JzZXJ2ZXIgPSBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5wcm9wZXJ0aWVzID0gbnVsbDtcblxuICAgICAgICB0aGlzLl93cmFwcGVyID0gbnVsbDtcbiAgICAgICAgdGhpcy5fYmFja2Ryb3AgPSBudWxsO1xuICAgICAgICB0aGlzLl9jb250YWluZXIgPSBudWxsO1xuXG4gICAgICAgIGNsZWFySW50ZXJ2YWwodGhpcy5ibGlua1RpbWVyKTtcbiAgICAgICAgdGhpcy5ibGlua1RpbWVyID0gbnVsbDtcblxuICAgICAgICBjbGVhckludGVydmFsKHRoaXMuc2hha2VUaW1lcik7XG4gICAgICAgIHRoaXMuc2hha2VUaW1lciA9IG51bGw7XG5cbiAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMucmVzaXplVGltZXIpO1xuICAgICAgICB0aGlzLnJlc2l6ZVRpbWVyID0gbnVsbDtcbiAgICB9XG5cbiAgICBwdWJsaWMgYmxpbmsoKTogdm9pZCB7XG4gICAgICAgIGNsZWFySW50ZXJ2YWwodGhpcy5ibGlua1RpbWVyKTtcbiAgICAgICAgdGhpcy5ibGlua1RpbWVyID0gc2V0SW50ZXJ2YWwodGhpcy5ibGlua1RvZ2dsZSwgV2luZG93SW1wbC5CTElOS19ERUxBWSk7XG4gICAgfVxuXG4gICAgcHVibGljIHNoYWtlKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5pc1NoYWtpbmcpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmlzU2hha2luZyA9IHRydWU7XG4gICAgICAgIGNsZWFySW50ZXJ2YWwodGhpcy5zaGFrZVRpbWVyKTtcbiAgICAgICAgdGhpcy5zaGFrZVRpbWVyID0gc2V0SW50ZXJ2YWwodGhpcy5zdG9wU2hha2luZywgV2luZG93SW1wbC5TSEFLRV9ERUxBWSk7XG4gICAgfVxuXG4gICAgcHVibGljIHNldE9uVG9wKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmlzV2FzT25Ub3AgPSB0aGlzLmlzT25Ub3A7XG4gICAgICAgIHRoaXMuZW1pdChXaW5kb3dFdmVudC5TRVRfT05fVE9QKTtcbiAgICB9XG5cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vXG4gICAgLy8gIFNpemUgTWV0aG9kc1xuICAgIC8vXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIHB1YmxpYyBnZXRXaWR0aCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy53aWR0aDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0SGVpZ2h0KCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLmhlaWdodDtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0V2lkdGgodmFsdWU6IG51bWJlciwgaXNOZWVkTm90aWZ5OiBib29sZWFuID0gdHJ1ZSk6IHZvaWQge1xuICAgICAgICB0aGlzLndpZHRoID0gdmFsdWU7XG4gICAgICAgIGlmIChpc05lZWROb3RpZnkpIHtcbiAgICAgICAgICAgIHRoaXMucmVzaXplSGFuZGxlcigpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIHNldEhlaWdodCh2YWx1ZTogbnVtYmVyLCBpc05lZWROb3RpZnk6IGJvb2xlYW4gPSB0cnVlKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaGVpZ2h0ID0gdmFsdWU7XG4gICAgICAgIGlmIChpc05lZWROb3RpZnkpIHtcbiAgICAgICAgICAgIHRoaXMucmVzaXplSGFuZGxlcigpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIHNldFNpemUod2lkdGg6IG51bWJlciwgaGVpZ2h0OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZXRXaWR0aCh3aWR0aCwgZmFsc2UpO1xuICAgICAgICB0aGlzLnNldEhlaWdodChoZWlnaHQsIGZhbHNlKTtcbiAgICAgICAgdGhpcy5yZXNpemVIYW5kbGVyKCk7XG4gICAgfVxuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvL1xuICAgIC8vICBNb3ZlIE1ldGhvZHNcbiAgICAvL1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgICBwdWJsaWMgZ2V0WCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy54O1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXRYKHZhbHVlOiBudW1iZXIsIGlzTmVlZE5vdGlmeTogYm9vbGVhbiA9IHRydWUpOiB2b2lkIHtcbiAgICAgICAgdGhpcy54ID0gdmFsdWU7XG4gICAgICAgIGlmIChpc05lZWROb3RpZnkpIHtcbiAgICAgICAgICAgIHRoaXMuZW1pdChXaW5kb3dFdmVudC5NT1ZFRCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0WSgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy55O1xuICAgIH1cbiAgICBwdWJsaWMgc2V0WSh2YWx1ZTogbnVtYmVyLCBpc05lZWROb3RpZnk6IGJvb2xlYW4gPSB0cnVlKTogdm9pZCB7XG4gICAgICAgIHRoaXMueSA9IHZhbHVlO1xuICAgICAgICBpZiAoaXNOZWVkTm90aWZ5KSB7XG4gICAgICAgICAgICB0aGlzLmVtaXQoV2luZG93RXZlbnQuTU9WRUQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIG1vdmUoeDogbnVtYmVyLCB5OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZXRYKHgsIGZhbHNlKTtcbiAgICAgICAgdGhpcy5zZXRZKHksIGZhbHNlKTtcbiAgICAgICAgdGhpcy5lbWl0KFdpbmRvd0V2ZW50Lk1PVkVEKTtcbiAgICB9XG5cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vXG4gICAgLy8gIFByaXZhdGUgUHJvcGVydGllc1xuICAgIC8vXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIHByb3RlY3RlZCBnZXQgaXNCbGluaygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzQmxpbms7XG4gICAgfVxuICAgIHByb3RlY3RlZCBzZXQgaXNCbGluayh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICBpZiAodmFsdWUgPT09IHRoaXMuX2lzQmxpbmspIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9pc0JsaW5rID0gdmFsdWU7XG4gICAgICAgIHRoaXMuY29tbWl0SXNCbGlua1Byb3BlcnRpZXMoKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IGlzU2hha2luZygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzU2hha2luZztcbiAgICB9XG4gICAgcHJvdGVjdGVkIHNldCBpc1NoYWtpbmcodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgaWYgKHZhbHVlID09PSB0aGlzLl9pc1NoYWtpbmcpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9pc1NoYWtpbmcgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5jb21taXRJc1NoYWtpbmdQcm9wZXJ0aWVzKCk7XG4gICAgfVxuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvL1xuICAgIC8vICBQdWJsaWMgUHJvcGVydGllc1xuICAgIC8vXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIHB1YmxpYyBnZXQgZXZlbnRzKCk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgICAgIHJldHVybiB0aGlzLm9ic2VydmVyLmFzT2JzZXJ2YWJsZSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgY29uZmlnKCk6IFdpbmRvd0NvbmZpZyB7XG4gICAgICAgIHJldHVybiB0aGlzLnByb3BlcnRpZXMuY29uZmlnO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgY29udGVudCgpOiBJV2luZG93Q29udGVudCB7XG4gICAgICAgIHJldHVybiB0aGlzLnByb3BlcnRpZXMucmVmZXJlbmNlID8gdGhpcy5wcm9wZXJ0aWVzLnJlZmVyZW5jZS5jb21wb25lbnRJbnN0YW5jZSA6IG51bGw7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBjb250YWluZXIoKTogSFRNTEVsZW1lbnQge1xuICAgICAgICByZXR1cm4gdGhpcy5fY29udGFpbmVyO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgd3JhcHBlcigpOiBIVE1MRWxlbWVudCB7XG4gICAgICAgIHJldHVybiB0aGlzLl93cmFwcGVyO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgYmFja2Ryb3AoKTogSFRNTEVsZW1lbnQge1xuICAgICAgICByZXR1cm4gdGhpcy5fYmFja2Ryb3A7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBpc09uVG9wKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faXNPblRvcDtcbiAgICB9XG4gICAgcHVibGljIHNldCBpc09uVG9wKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIGlmICh2YWx1ZSA9PT0gdGhpcy5faXNPblRvcCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2lzT25Ub3AgPSB2YWx1ZTtcbiAgICAgICAgY2xlYXJJbnRlcnZhbCh0aGlzLmJsaW5rVGltZXIpO1xuICAgICAgICB0aGlzLmlzQmxpbmsgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGlzTWluaW1pemVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faXNNaW5pbWl6ZWQ7XG4gICAgfVxuICAgIHB1YmxpYyBzZXQgaXNNaW5pbWl6ZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgaWYgKHZhbHVlID09PSB0aGlzLl9pc01pbmltaXplZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2lzTWluaW1pemVkID0gdmFsdWU7XG4gICAgICAgIHRoaXMuY29tbWl0SXNNaW5pbWl6ZWRQcm9wZXJ0aWVzKCk7XG4gICAgICAgIHRoaXMuZW1pdChXaW5kb3dFdmVudC5NSU5JTUlaRURfQ0hBTkdFRCk7XG4gICAgICAgIHRoaXMuc3RvcEJsaW5rSWZOZWVkKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBpc0Rpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faXNEaXNhYmxlZDtcbiAgICB9XG4gICAgcHVibGljIHNldCBpc0Rpc2FibGVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIGlmICh2YWx1ZSA9PT0gdGhpcy5faXNEaXNhYmxlZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2lzRGlzYWJsZWQgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5jb21taXRJc0Rpc2FibGVkUHJvcGVydGllcygpO1xuICAgICAgICB0aGlzLmVtaXQoV2luZG93RXZlbnQuRElTQUJMRURfQ0hBTkdFRCk7XG4gICAgfVxufVxuIl19
320
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiV2luZG93SW1wbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy93aW5kb3cvV2luZG93SW1wbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQWMsT0FBTyxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUN6RCxPQUFPLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzVELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM1QyxPQUFPLEVBQVcsV0FBVyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRWpELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFHMUMsT0FBTyxLQUFLLENBQUMsTUFBTSxRQUFRLENBQUM7QUFFNUIsTUFBTSxPQUFPLFVBQW9CLFNBQVEsVUFBYTtJQXlDbEQsNkVBQTZFO0lBQzdFLEVBQUU7SUFDRixlQUFlO0lBQ2YsRUFBRTtJQUNGLDZFQUE2RTtJQUU3RSxZQUFZLFVBQTRCO1FBQ3BDLEtBQUssRUFBRSxDQUFDO1FBckNaLDZFQUE2RTtRQUM3RSxFQUFFO1FBQ0YsY0FBYztRQUNkLEVBQUU7UUFDRiw2RUFBNkU7UUFFckUsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUcxQixlQUFVLEdBQVksS0FBSyxDQUFDO1FBSzVCLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFDMUIsZ0JBQVcsR0FBWSxLQUFLLENBQUM7UUFDN0IsaUJBQVksR0FBWSxLQUFLLENBQUM7UUFFOUIsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUMxQixlQUFVLEdBQVksS0FBSyxDQUFDO1FBeUNwQyw2RUFBNkU7UUFDN0UsRUFBRTtRQUNGLHFCQUFxQjtRQUNyQixFQUFFO1FBQ0YsNkVBQTZFO1FBRW5FLGNBQVMsR0FBRyxHQUFTLEVBQUU7WUFDN0IsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7WUFDdEIsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENB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QUUsQ0FBQztRQUNuQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ3pDLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRUQsSUFBVyxVQUFVO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUM1QixDQUFDO0lBQ0QsSUFBVyxVQUFVLENBQUMsS0FBYztRQUNoQyxJQUFJLEtBQUssS0FBSyxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQzVCLE9BQU87U0FDVjtRQUNELElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO1FBQ3pCLElBQUksQ0FBQywwQkFBMEIsRUFBRSxDQUFDO1FBQ2xDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDNUMsQ0FBQzs7QUExWUQsNkVBQTZFO0FBQzdFLEVBQUU7QUFDRixhQUFhO0FBQ2IsRUFBRTtBQUNGLDZFQUE2RTtBQUUvRCxzQkFBVyxHQUFHLEdBQUcsQ0FBQztBQUNsQixzQkFBVyxHQUFHLEdBQUcsQ0FBQztBQUNsQix1QkFBWSxHQUFHLEdBQUcsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1hdERpYWxvZ1JlZiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpbHRlciwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9pbnRlcm5hbC9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgVmlld1V0aWwgfSBmcm9tICcuLi91dGlsL1ZpZXdVdGlsJztcbmltcG9ydCB7IElXaW5kb3csIFdpbmRvd0V2ZW50IH0gZnJvbSAnLi9JV2luZG93JztcbmltcG9ydCB7IElXaW5kb3dDb250ZW50IH0gZnJvbSAnLi9JV2luZG93Q29udGVudCc7XG5pbXBvcnQgeyBXaW5kb3dCYXNlIH0gZnJvbSAnLi9XaW5kb3dCYXNlJztcbmltcG9ydCB7IFdpbmRvd0NvbmZpZyB9IGZyb20gJy4vV2luZG93Q29uZmlnJztcbmltcG9ydCB7IFdpbmRvd1Byb3BlcnRpZXMgfSBmcm9tICcuL1dpbmRvd1Byb3BlcnRpZXMnO1xuaW1wb3J0ICogYXMgXyBmcm9tICdsb2Rhc2gnO1xuXG5leHBvcnQgY2xhc3MgV2luZG93SW1wbDxUID0gYW55PiBleHRlbmRzIFdpbmRvd0Jhc2U8VD4gaW1wbGVtZW50cyBJV2luZG93IHtcbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vXG4gICAgLy8gIENvbnN0YW50c1xuICAgIC8vXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIHB1YmxpYyBzdGF0aWMgQkxJTktfREVMQVkgPSA1MDA7XG4gICAgcHVibGljIHN0YXRpYyBTSEFLRV9ERUxBWSA9IDUwMDtcbiAgICBwdWJsaWMgc3RhdGljIFJFU0laRV9ERUxBWSA9IDIwMDtcblxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy9cbiAgICAvLyAgUHJvcGVydGllc1xuICAgIC8vXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIHByaXZhdGUgX2lzQmxpbms6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBwcml2YXRlIGJsaW5rVGltZXI6IGFueTtcblxuICAgIHByaXZhdGUgX2lzU2hha2luZzogYm9vbGVhbiA9IGZhbHNlO1xuICAgIHByaXZhdGUgc2hha2VUaW1lcjogYW55O1xuXG4gICAgcHJpdmF0ZSByZXNpemVUaW1lcjogYW55O1xuXG4gICAgcHJpdmF0ZSBfaXNPblRvcDogYm9vbGVhbiA9IGZhbHNlO1xuICAgIHByaXZhdGUgX2lzRGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBwcml2YXRlIF9pc01pbmltaXplZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgcHJpdmF0ZSBpc09wZW5lZDogYm9vbGVhbiA9IGZhbHNlO1xuICAgIHByaXZhdGUgaXNXYXNPblRvcDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgcHJpdmF0ZSBfd3JhcHBlcjogSFRNTEVsZW1lbnQ7XG4gICAgcHJpdmF0ZSBfYmFja2Ryb3A6IEhUTUxFbGVtZW50O1xuICAgIHByaXZhdGUgX2NvbnRhaW5lcjogSFRNTEVsZW1lbnQ7XG5cbiAgICBwcm90ZWN0ZWQgcHJvcGVydGllczogV2luZG93UHJvcGVydGllcztcblxuICAgIHByb3RlY3RlZCBzdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgICBwcm90ZWN0ZWQgb2JzZXJ2ZXI6IFN1YmplY3Q8c3RyaW5nPjtcblxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy9cbiAgICAvLyAgQ29uc3RydWN0b3JcbiAgICAvL1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgICBjb25zdHJ1Y3Rvcihwcm9wZXJ0aWVzOiBXaW5kb3dQcm9wZXJ0aWVzKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMub2JzZXJ2ZXIgPSBuZXcgU3ViamVjdCgpO1xuXG4gICAgICAgIHRoaXMucHJvcGVydGllcyA9IHByb3BlcnRpZXM7XG4gICAgICAgIHRoaXMuY29udGVudC53aW5kb3cgPSB0aGlzO1xuXG4gICAgICAgIC8vIEhhdmUgdG8gc2F2ZSBmb3IgdW5zdWJzY3JpYmUgb24gZGVzdHJveVxuICAgICAgICB0aGlzLl93cmFwcGVyID0gdGhpcy5wcm9wZXJ0aWVzLm92ZXJsYXkuaG9zdEVsZW1lbnQ7XG4gICAgICAgIHRoaXMuX2JhY2tkcm9wID0gdGhpcy5wcm9wZXJ0aWVzLm92ZXJsYXkuYmFja2Ryb3BFbGVtZW50O1xuICAgICAgICB0aGlzLl9jb250YWluZXIgPSB0aGlzLnByb3BlcnRpZXMub3ZlcmxheS5vdmVybGF5RWxlbWVudDtcblxuICAgICAgICB0aGlzLnNldFByb3BlcnRpZXMoKTtcbiAgICAgICAgdGhpcy5nZXRSZWZlcmVuY2UoKS5hZnRlck9wZW5lZCgpLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveWVkKSkuc3Vic2NyaWJlKHRoaXMuc2V0T3BlbmVkKTtcbiAgICAgICAgdGhpcy5nZXRSZWZlcmVuY2UoKS5hZnRlckNsb3NlZCgpLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveWVkKSkuc3Vic2NyaWJlKHRoaXMuc2V0Q2xvc2VkKTtcblxuICAgICAgICB0aGlzLmV2ZW50c1xuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgZmlsdGVyKGV2ZW50ID0+IGV2ZW50ID09PSBXaW5kb3dFdmVudC5DT05URU5UX1JFQURZKSxcbiAgICAgICAgICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKHRoaXMudXBkYXRlUG9zaXRpb24pO1xuICAgIH1cblxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy9cbiAgICAvLyAgUHJvdGVjdGVkIE1ldGhvZHNcbiAgICAvL1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgICBwcm90ZWN0ZWQgc2V0Q2xvc2VkID0gKCk6IHZvaWQgPT4ge1xuICAgICAgICB0aGlzLmlzT3BlbmVkID0gZmFsc2U7XG4gICAgICAgIHRoaXMuZW1pdChXaW5kb3dFdmVudC5DTE9TRUQpO1xuICAgICAgICB0aGlzLmRlc3Ryb3koKTtcbiAgICB9O1xuXG4gICAgcHJvdGVjdGVkIHNldE9wZW5lZCA9ICgpOiB2b2lkID0+IHtcbiAgICAgICAgdGhpcy5pc09wZW5lZCA9IHRydWU7XG4gICAgICAgIHRoaXMuZW1pdChXaW5kb3dFdmVudC5PUEVORUQpO1xuICAgIH07XG5cbiAgICBwcm90ZWN0ZWQgYmxpbmtUb2dnbGUgPSAoKTogdm9pZCA9PiB7XG4gICAgICAgIHRoaXMuaXNCbGluayA9ICF0aGlzLmlzQmxpbms7XG4gICAgfTtcblxuICAgIHByb3RlY3RlZCBzdG9wU2hha2luZyA9ICgpOiB2b2lkID0+IHtcbiAgICAgICAgdGhpcy5pc1NoYWtpbmcgPSBmYWxzZTtcbiAgICB9O1xuXG4gICAgcHJvdGVjdGVkIGVtaXRSZXNpemUgPSAoKTogdm9pZCA9PiB7XG4gICAgICAgIHRoaXMuZW1pdChXaW5kb3dFdmVudC5SRVNJWkVEKTtcbiAgICB9O1xuXG4gICAgcHJvdGVjdGVkIHNldFByb3BlcnRpZXMoKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLnNldFByb3BlcnRpZXMoKTtcbiAgICAgICAgVmlld1V0aWwuYWRkQ2xhc3ModGhpcy5jb250YWluZXIsICd2aS13aW5kb3cnKTtcbiAgICAgICAgVmlld1V0aWwudG9nZ2xlQ2xhc3ModGhpcy5jb250YWluZXIsICd2aS1tb2RhbCcsIHRoaXMuY29uZmlnLmlzTW9kYWwpO1xuXG4gICAgICAgIGlmICghdGhpcy5jb25maWcuaXNNb2RhbCkge1xuICAgICAgICAgICAgdGhpcy5jb250YWluZXIuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCB0aGlzLm1vdXNlQ2xpY2tIYW5kbGVyUHJveHksIHRydWUpO1xuICAgICAgICAgICAgdGhpcy5jb250YWluZXIuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vkb3duJywgdGhpcy5tb3VzZURvd25IYW5kbGVyUHJveHkpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGNvbW1pdElzQmxpbmtQcm9wZXJ0aWVzKCk6IHZvaWQge31cbiAgICBwcm90ZWN0ZWQgY29tbWl0SXNTaGFraW5nUHJvcGVydGllcygpOiB2b2lkIHt9XG4gICAgcHJvdGVjdGVkIGNvbW1pdElzRGlzYWJsZWRQcm9wZXJ0aWVzKCk6IHZvaWQge31cbiAgICBwcm90ZWN0ZWQgY29tbWl0SXNNaW5pbWl6ZWRQcm9wZXJ0aWVzKCk6IHZvaWQge31cblxuICAgIHByb3RlY3RlZCBnZXRDb25maWcoKTogV2luZG93Q29uZmlnIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucHJvcGVydGllcy5jb25maWc7XG4gICAgfVxuICAgIHByb3RlY3RlZCBnZXRDb250YWluZXIoKTogSFRNTEVsZW1lbnQge1xuICAgICAgICByZXR1cm4gdGhpcy5jb250YWluZXI7XG4gICAgfVxuICAgIHByb3RlY3RlZCBnZXRSZWZlcmVuY2UoKTogTWF0RGlhbG9nUmVmPElXaW5kb3dDb250ZW50PFQ+PiB7XG4gICAgICAgIHJldHVybiB0aGlzLnByb3BlcnRpZXMucmVmZXJlbmNlO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBpc05lZWRDbGlja1N0b3BQcm9wYWdhdGlvbihldmVudDogTW91c2VFdmVudCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gIXRoaXMuaXNXYXNPblRvcDtcbiAgICB9XG5cbiAgICBwcml2YXRlIHN0b3BCbGlua0lmTmVlZCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pc0JsaW5rID0gZmFsc2U7XG4gICAgICAgIGlmICghdGhpcy5ibGlua1RpbWVyKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY2xlYXJJbnRlcnZhbCh0aGlzLmJsaW5rVGltZXIpO1xuICAgICAgICB0aGlzLmJsaW5rVGltZXIgPSBudWxsO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCByZXNpemVIYW5kbGVyID0gKCk6IHZvaWQgPT4ge1xuICAgICAgICBpZiAoIXRoaXMuaXNPcGVuZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjbGVhclRpbWVvdXQodGhpcy5yZXNpemVUaW1lcik7XG4gICAgICAgIHRoaXMucmVzaXplVGltZXIgPSBzZXRUaW1lb3V0KHRoaXMuZW1pdFJlc2l6ZSwgV2luZG93SW1wbC5SRVNJWkVfREVMQVkpO1xuICAgIH07XG5cbiAgICBwcm90ZWN0ZWQgbW91c2VEb3duSGFuZGxlcihldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNldE9uVG9wKCk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG1vdXNlQ2xpY2tIYW5kbGVyKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmlzTmVlZENsaWNrU3RvcFByb3BhZ2F0aW9uKGV2ZW50KSkge1xuICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCF0aGlzLmlzV2FzT25Ub3ApIHtcbiAgICAgICAgICAgIHRoaXMuaXNXYXNPblRvcCA9IHRydWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIG1vdXNlRG93bkhhbmRsZXJQcm94eSA9IChldmVudDogTW91c2VFdmVudCk6IHZvaWQgPT4ge1xuICAgICAgICB0aGlzLm1vdXNlRG93bkhhbmRsZXIoZXZlbnQpO1xuICAgIH07XG5cbiAgICBwcml2YXRlIG1vdXNlQ2xpY2tIYW5kbGVyUHJveHkgPSAoZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkID0+IHtcbiAgICAgICAgdGhpcy5tb3VzZUNsaWNrSGFuZGxlcihldmVudCk7XG4gICAgfTtcblxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy9cbiAgICAvLyAgUHVibGljIE1ldGhvZHNcbiAgICAvL1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgICBwdWJsaWMgZW1pdChldmVudDogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHRoaXMub2JzZXJ2ZXIubmV4dChldmVudCk7XG4gICAgfVxuXG4gICAgcHVibGljIGNsb3NlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmdldFJlZmVyZW5jZSgpLmNsb3NlKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmlzRGVzdHJveWVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgc3VwZXIuZGVzdHJveSgpO1xuXG4gICAgICAgIHRoaXMuX2NvbnRhaW5lci5yZW1vdmVFdmVudExpc3RlbmVyKCdjbGljaycsIHRoaXMubW91c2VDbGlja0hhbmRsZXJQcm94eSwgdHJ1ZSk7XG4gICAgICAgIHRoaXMuX2NvbnRhaW5lci5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZWRvd24nLCB0aGlzLm1vdXNlRG93bkhhbmRsZXJQcm94eSk7XG5cbiAgICAgICAgaWYgKCFfLmlzTmlsKHRoaXMuY29udGVudCkpIHtcbiAgICAgICAgICAgIHRoaXMuY29udGVudC5kZXN0cm95KCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIV8uaXNOaWwodGhpcy5vYnNlcnZlcikpIHtcbiAgICAgICAgICAgIHRoaXMub2JzZXJ2ZXIuY29tcGxldGUoKTtcbiAgICAgICAgICAgIHRoaXMub2JzZXJ2ZXIgPSBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5wcm9wZXJ0aWVzID0gbnVsbDtcblxuICAgICAgICB0aGlzLl93cmFwcGVyID0gbnVsbDtcbiAgICAgICAgdGhpcy5fYmFja2Ryb3AgPSBudWxsO1xuICAgICAgICB0aGlzLl9jb250YWluZXIgPSBudWxsO1xuXG4gICAgICAgIGNsZWFySW50ZXJ2YWwodGhpcy5ibGlua1RpbWVyKTtcbiAgICAgICAgdGhpcy5ibGlua1RpbWVyID0gbnVsbDtcblxuICAgICAgICBjbGVhckludGVydmFsKHRoaXMuc2hha2VUaW1lcik7XG4gICAgICAgIHRoaXMuc2hha2VUaW1lciA9IG51bGw7XG5cbiAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMucmVzaXplVGltZXIpO1xuICAgICAgICB0aGlzLnJlc2l6ZVRpbWVyID0gbnVsbDtcbiAgICB9XG5cbiAgICBwdWJsaWMgYmxpbmsoKTogdm9pZCB7XG4gICAgICAgIGNsZWFySW50ZXJ2YWwodGhpcy5ibGlua1RpbWVyKTtcbiAgICAgICAgdGhpcy5ibGlua1RpbWVyID0gc2V0SW50ZXJ2YWwodGhpcy5ibGlua1RvZ2dsZSwgV2luZG93SW1wbC5CTElOS19ERUxBWSk7XG4gICAgfVxuXG4gICAgcHVibGljIHNoYWtlKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5pc1NoYWtpbmcpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmlzU2hha2luZyA9IHRydWU7XG4gICAgICAgIGNsZWFySW50ZXJ2YWwodGhpcy5zaGFrZVRpbWVyKTtcbiAgICAgICAgdGhpcy5zaGFrZVRpbWVyID0gc2V0SW50ZXJ2YWwodGhpcy5zdG9wU2hha2luZywgV2luZG93SW1wbC5TSEFLRV9ERUxBWSk7XG4gICAgfVxuXG4gICAgcHVibGljIHNldE9uVG9wKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmlzV2FzT25Ub3AgPSB0aGlzLmlzT25Ub3A7XG4gICAgICAgIHRoaXMuZW1pdChXaW5kb3dFdmVudC5TRVRfT05fVE9QKTtcbiAgICB9XG5cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vXG4gICAgLy8gIFNpemUgTWV0aG9kc1xuICAgIC8vXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIHB1YmxpYyBnZXRXaWR0aCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy53aWR0aDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0SGVpZ2h0KCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLmhlaWdodDtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0V2lkdGgodmFsdWU6IG51bWJlciwgaXNOZWVkTm90aWZ5OiBib29sZWFuID0gdHJ1ZSk6IHZvaWQge1xuICAgICAgICB0aGlzLndpZHRoID0gdmFsdWU7XG4gICAgICAgIGlmIChpc05lZWROb3RpZnkpIHtcbiAgICAgICAgICAgIHRoaXMucmVzaXplSGFuZGxlcigpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIHNldEhlaWdodCh2YWx1ZTogbnVtYmVyLCBpc05lZWROb3RpZnk6IGJvb2xlYW4gPSB0cnVlKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaGVpZ2h0ID0gdmFsdWU7XG4gICAgICAgIGlmIChpc05lZWROb3RpZnkpIHtcbiAgICAgICAgICAgIHRoaXMucmVzaXplSGFuZGxlcigpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIHNldFNpemUod2lkdGg6IG51bWJlciwgaGVpZ2h0OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZXRXaWR0aCh3aWR0aCwgZmFsc2UpO1xuICAgICAgICB0aGlzLnNldEhlaWdodChoZWlnaHQsIGZhbHNlKTtcbiAgICAgICAgdGhpcy5yZXNpemVIYW5kbGVyKCk7XG4gICAgfVxuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvL1xuICAgIC8vICBNb3ZlIE1ldGhvZHNcbiAgICAvL1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgICBwdWJsaWMgZ2V0WCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy54O1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXRYKHZhbHVlOiBudW1iZXIsIGlzTmVlZE5vdGlmeTogYm9vbGVhbiA9IHRydWUpOiB2b2lkIHtcbiAgICAgICAgdGhpcy54ID0gdmFsdWU7XG4gICAgICAgIGlmIChpc05lZWROb3RpZnkpIHtcbiAgICAgICAgICAgIHRoaXMuZW1pdChXaW5kb3dFdmVudC5NT1ZFRCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0WSgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy55O1xuICAgIH1cbiAgICBwdWJsaWMgc2V0WSh2YWx1ZTogbnVtYmVyLCBpc05lZWROb3RpZnk6IGJvb2xlYW4gPSB0cnVlKTogdm9pZCB7XG4gICAgICAgIHRoaXMueSA9IHZhbHVlO1xuICAgICAgICBpZiAoaXNOZWVkTm90aWZ5KSB7XG4gICAgICAgICAgICB0aGlzLmVtaXQoV2luZG93RXZlbnQuTU9WRUQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIG1vdmUoeDogbnVtYmVyLCB5OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZXRYKHgsIGZhbHNlKTtcbiAgICAgICAgdGhpcy5zZXRZKHksIGZhbHNlKTtcbiAgICAgICAgdGhpcy5lbWl0KFdpbmRvd0V2ZW50Lk1PVkVEKTtcbiAgICB9XG5cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vXG4gICAgLy8gIFByaXZhdGUgUHJvcGVydGllc1xuICAgIC8vXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIHByb3RlY3RlZCBnZXQgaXNCbGluaygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzQmxpbms7XG4gICAgfVxuICAgIHByb3RlY3RlZCBzZXQgaXNCbGluayh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICBpZiAodmFsdWUgPT09IHRoaXMuX2lzQmxpbmspIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9pc0JsaW5rID0gdmFsdWU7XG4gICAgICAgIHRoaXMuY29tbWl0SXNCbGlua1Byb3BlcnRpZXMoKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IGlzU2hha2luZygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzU2hha2luZztcbiAgICB9XG4gICAgcHJvdGVjdGVkIHNldCBpc1NoYWtpbmcodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgaWYgKHZhbHVlID09PSB0aGlzLl9pc1NoYWtpbmcpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9pc1NoYWtpbmcgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5jb21taXRJc1NoYWtpbmdQcm9wZXJ0aWVzKCk7XG4gICAgfVxuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvL1xuICAgIC8vICBQdWJsaWMgUHJvcGVydGllc1xuICAgIC8vXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIHB1YmxpYyBnZXQgZXZlbnRzKCk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgICAgIHJldHVybiB0aGlzLm9ic2VydmVyLmFzT2JzZXJ2YWJsZSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgY29uZmlnKCk6IFdpbmRvd0NvbmZpZyB7XG4gICAgICAgIHJldHVybiB0aGlzLnByb3BlcnRpZXMuY29uZmlnO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgY29udGVudCgpOiBJV2luZG93Q29udGVudCB7XG4gICAgICAgIHJldHVybiB0aGlzLnByb3BlcnRpZXMucmVmZXJlbmNlID8gdGhpcy5wcm9wZXJ0aWVzLnJlZmVyZW5jZS5jb21wb25lbnRJbnN0YW5jZSA6IG51bGw7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBjb250YWluZXIoKTogSFRNTEVsZW1lbnQge1xuICAgICAgICByZXR1cm4gdGhpcy5fY29udGFpbmVyO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgd3JhcHBlcigpOiBIVE1MRWxlbWVudCB7XG4gICAgICAgIHJldHVybiB0aGlzLl93cmFwcGVyO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgYmFja2Ryb3AoKTogSFRNTEVsZW1lbnQge1xuICAgICAgICByZXR1cm4gdGhpcy5fYmFja2Ryb3A7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBpc09uVG9wKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faXNPblRvcDtcbiAgICB9XG4gICAgcHVibGljIHNldCBpc09uVG9wKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIGlmICh2YWx1ZSA9PT0gdGhpcy5faXNPblRvcCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2lzT25Ub3AgPSB2YWx1ZTtcbiAgICAgICAgY2xlYXJJbnRlcnZhbCh0aGlzLmJsaW5rVGltZXIpO1xuICAgICAgICB0aGlzLmlzQmxpbmsgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGlzTWluaW1pemVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faXNNaW5pbWl6ZWQ7XG4gICAgfVxuICAgIHB1YmxpYyBzZXQgaXNNaW5pbWl6ZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgaWYgKHZhbHVlID09PSB0aGlzLl9pc01pbmltaXplZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2lzTWluaW1pemVkID0gdmFsdWU7XG4gICAgICAgIHRoaXMuY29tbWl0SXNNaW5pbWl6ZWRQcm9wZXJ0aWVzKCk7XG4gICAgICAgIHRoaXMuZW1pdChXaW5kb3dFdmVudC5NSU5JTUlaRURfQ0hBTkdFRCk7XG4gICAgICAgIHRoaXMuc3RvcEJsaW5rSWZOZWVkKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBpc0Rpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faXNEaXNhYmxlZDtcbiAgICB9XG4gICAgcHVibGljIHNldCBpc0Rpc2FibGVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIGlmICh2YWx1ZSA9PT0gdGhpcy5faXNEaXNhYmxlZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2lzRGlzYWJsZWQgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5jb21taXRJc0Rpc2FibGVkUHJvcGVydGllcygpO1xuICAgICAgICB0aGlzLmVtaXQoV2luZG93RXZlbnQuRElTQUJMRURfQ0hBTkdFRCk7XG4gICAgfVxufVxuIl19