@c8y/ngx-components 1018.0.256 → 1018.0.258

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.
@@ -25,7 +25,7 @@ export class RangeDisplayComponent {
25
25
  if (!this.config.min) {
26
26
  this.config.min = 0;
27
27
  }
28
- if (!this.config.max) {
28
+ if (!this.config.max && this.config.max !== 0) {
29
29
  this.config.max = 100;
30
30
  }
31
31
  if (this.config.fractionSize !== undefined) {
@@ -144,10 +144,10 @@ export class RangeDisplayComponent {
144
144
  }
145
145
  }
146
146
  RangeDisplayComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: RangeDisplayComponent, deps: [{ token: i1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component });
147
- RangeDisplayComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: RangeDisplayComponent, selector: "c8y-range-display", inputs: { config: "config", display: "display" }, host: { properties: { "attr.style": "this.inlineStyle" } }, viewQueries: [{ propertyName: "rangeDisplay", first: true, predicate: ["rangeDisplay"], descendants: true }, { propertyName: "currentRangeElement", first: true, predicate: ["currentRangeElement"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div\n [ngClass]=\"{\n 'range-display--vertical': config.orientation === 'vertical',\n 'range-display--compact': display === 'compact',\n 'range-display--inline': display === 'inline'\n }\"\n attr.data-label=\"{{ config.unit }}\"\n>\n <div\n class=\"range-display\"\n #rangeDisplay\n >\n <div class=\"range-display__range\">\n <div class=\"range-display__range__unit\">\n {{ config.unit }}\n </div>\n <div\n *ngIf=\"isYellowRangeDisplayed()\"\n class=\"range-display__range__min\"\n ></div>\n <div\n *ngIf=\"isRedRangeDisplayed()\"\n class=\"range-display__range__max\"\n ></div>\n <div\n *ngIf=\"checkTarget()\"\n class=\"range-display__range__target\"\n attr.data-label=\"{{ config.target }} {{ config.unit }}\"\n title=\"{{ 'Target' | translate }}: {{ config.target }} {{ config.unit }}\"\n ></div>\n <div\n [ngStyle]=\"{\n display:\n config.current != undefined &&\n config.current >= config.min &&\n config.current <= config.max\n ? 'block'\n : 'none'\n }\"\n #currentRangeElement\n class=\"range-display__range__current\"\n attr.data-label=\"{{ config.current }} {{ config.unit }} &#xa;{{ config.time | c8yDate }}\"\n title=\"{{ 'Current' | translate }}: {{ config.current }} {{ config.unit }} | {{\n config.time | c8yDate\n }}\"\n ></div>\n </div>\n <div class=\"range-display__ruler\">\n <div\n *ngFor=\"let x of [].constructor(10); let index = index; trackBy: trackByIndex\"\n attr.data-label=\"{{ rulerCalc(index) }}\"\n class=\"range-display__tick\"\n ></div>\n <div\n attr.data-label=\"{{ config.max || 100 | number }}\"\n class=\"range-display__tick\"\n ></div>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "pipe", type: i3.C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: i2.DecimalPipe, name: "number" }, { kind: "pipe", type: i4.DatePipe, name: "c8yDate" }] });
147
+ RangeDisplayComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: RangeDisplayComponent, selector: "c8y-range-display", inputs: { config: "config", display: "display" }, host: { properties: { "attr.style": "this.inlineStyle" } }, viewQueries: [{ propertyName: "rangeDisplay", first: true, predicate: ["rangeDisplay"], descendants: true }, { propertyName: "currentRangeElement", first: true, predicate: ["currentRangeElement"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div\n [ngClass]=\"{\n 'range-display--vertical': config.orientation === 'vertical',\n 'range-display--compact': display === 'compact',\n 'range-display--inline': display === 'inline'\n }\"\n attr.data-label=\"{{ config.unit }}\"\n>\n <div\n class=\"range-display\"\n #rangeDisplay\n >\n <div class=\"range-display__range\">\n <div class=\"range-display__range__unit\">\n {{ config.unit }}\n </div>\n <div\n *ngIf=\"isYellowRangeDisplayed()\"\n class=\"range-display__range__min\"\n ></div>\n <div\n *ngIf=\"isRedRangeDisplayed()\"\n class=\"range-display__range__max\"\n ></div>\n <div\n *ngIf=\"checkTarget()\"\n class=\"range-display__range__target\"\n attr.data-label=\"{{ config.target }} {{ config.unit }}\"\n title=\"{{ 'Target' | translate }}: {{ config.target }} {{ config.unit }}\"\n ></div>\n <div\n [ngStyle]=\"{\n display:\n config.current != undefined &&\n config.current >= config.min &&\n config.current <= config.max\n ? 'block'\n : 'none'\n }\"\n #currentRangeElement\n class=\"range-display__range__current\"\n attr.data-label=\"{{ config.current }} {{ config.unit }} &#xa;{{ config.time | c8yDate }}\"\n title=\"{{ 'Current' | translate }}: {{ config.current }} {{ config.unit }} | {{\n config.time | c8yDate\n }}\"\n ></div>\n </div>\n <div class=\"range-display__ruler\">\n <div\n *ngFor=\"let x of [].constructor(10); let index = index; trackBy: trackByIndex\"\n attr.data-label=\"{{ rulerCalc(index) }}\"\n class=\"range-display__tick\"\n ></div>\n <div\n attr.data-label=\"{{ config.max ?? 100 | number }}\"\n class=\"range-display__tick\"\n ></div>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "pipe", type: i3.C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: i2.DecimalPipe, name: "number" }, { kind: "pipe", type: i4.DatePipe, name: "c8yDate" }] });
148
148
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: RangeDisplayComponent, decorators: [{
149
149
  type: Component,
150
- args: [{ selector: 'c8y-range-display', template: "<div\n [ngClass]=\"{\n 'range-display--vertical': config.orientation === 'vertical',\n 'range-display--compact': display === 'compact',\n 'range-display--inline': display === 'inline'\n }\"\n attr.data-label=\"{{ config.unit }}\"\n>\n <div\n class=\"range-display\"\n #rangeDisplay\n >\n <div class=\"range-display__range\">\n <div class=\"range-display__range__unit\">\n {{ config.unit }}\n </div>\n <div\n *ngIf=\"isYellowRangeDisplayed()\"\n class=\"range-display__range__min\"\n ></div>\n <div\n *ngIf=\"isRedRangeDisplayed()\"\n class=\"range-display__range__max\"\n ></div>\n <div\n *ngIf=\"checkTarget()\"\n class=\"range-display__range__target\"\n attr.data-label=\"{{ config.target }} {{ config.unit }}\"\n title=\"{{ 'Target' | translate }}: {{ config.target }} {{ config.unit }}\"\n ></div>\n <div\n [ngStyle]=\"{\n display:\n config.current != undefined &&\n config.current >= config.min &&\n config.current <= config.max\n ? 'block'\n : 'none'\n }\"\n #currentRangeElement\n class=\"range-display__range__current\"\n attr.data-label=\"{{ config.current }} {{ config.unit }} &#xa;{{ config.time | c8yDate }}\"\n title=\"{{ 'Current' | translate }}: {{ config.current }} {{ config.unit }} | {{\n config.time | c8yDate\n }}\"\n ></div>\n </div>\n <div class=\"range-display__ruler\">\n <div\n *ngFor=\"let x of [].constructor(10); let index = index; trackBy: trackByIndex\"\n attr.data-label=\"{{ rulerCalc(index) }}\"\n class=\"range-display__tick\"\n ></div>\n <div\n attr.data-label=\"{{ config.max || 100 | number }}\"\n class=\"range-display__tick\"\n ></div>\n </div>\n </div>\n</div>\n" }]
150
+ args: [{ selector: 'c8y-range-display', template: "<div\n [ngClass]=\"{\n 'range-display--vertical': config.orientation === 'vertical',\n 'range-display--compact': display === 'compact',\n 'range-display--inline': display === 'inline'\n }\"\n attr.data-label=\"{{ config.unit }}\"\n>\n <div\n class=\"range-display\"\n #rangeDisplay\n >\n <div class=\"range-display__range\">\n <div class=\"range-display__range__unit\">\n {{ config.unit }}\n </div>\n <div\n *ngIf=\"isYellowRangeDisplayed()\"\n class=\"range-display__range__min\"\n ></div>\n <div\n *ngIf=\"isRedRangeDisplayed()\"\n class=\"range-display__range__max\"\n ></div>\n <div\n *ngIf=\"checkTarget()\"\n class=\"range-display__range__target\"\n attr.data-label=\"{{ config.target }} {{ config.unit }}\"\n title=\"{{ 'Target' | translate }}: {{ config.target }} {{ config.unit }}\"\n ></div>\n <div\n [ngStyle]=\"{\n display:\n config.current != undefined &&\n config.current >= config.min &&\n config.current <= config.max\n ? 'block'\n : 'none'\n }\"\n #currentRangeElement\n class=\"range-display__range__current\"\n attr.data-label=\"{{ config.current }} {{ config.unit }} &#xa;{{ config.time | c8yDate }}\"\n title=\"{{ 'Current' | translate }}: {{ config.current }} {{ config.unit }} | {{\n config.time | c8yDate\n }}\"\n ></div>\n </div>\n <div class=\"range-display__ruler\">\n <div\n *ngFor=\"let x of [].constructor(10); let index = index; trackBy: trackByIndex\"\n attr.data-label=\"{{ rulerCalc(index) }}\"\n class=\"range-display__tick\"\n ></div>\n <div\n attr.data-label=\"{{ config.max ?? 100 | number }}\"\n class=\"range-display__tick\"\n ></div>\n </div>\n </div>\n</div>\n" }]
151
151
  }], ctorParameters: function () { return [{ type: i1.DomSanitizer }]; }, propDecorators: { config: [{
152
152
  type: Input
153
153
  }], display: [{
@@ -162,4 +162,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
162
162
  type: ViewChild,
163
163
  args: ['currentRangeElement', { static: false }]
164
164
  }] } });
165
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFuZ2UtZGlzcGxheS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9jb3JlL3JhbmdlLWRpc3BsYXkvcmFuZ2UtZGlzcGxheS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9jb3JlL3JhbmdlLWRpc3BsYXkvcmFuZ2UtZGlzcGxheS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsU0FBUyxFQUNULFVBQVUsRUFDVixXQUFXLEVBQ1gsS0FBSyxFQUdMLFNBQVMsRUFDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDekQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7O0FBT3BGLE1BQU0sT0FBTyxxQkFBcUI7SUEyRGhDLFlBQW9CLFNBQXVCO1FBQXZCLGNBQVMsR0FBVCxTQUFTLENBQWM7UUExRGxDLFdBQU0sR0FBaUIsRUFBRSxDQUFDO1FBQzFCLFlBQU8sR0FBa0MsTUFBTSxDQUFDO1FBRWpELDZCQUF3QixHQUFHLElBQUksT0FBTyxFQUFXLENBQUM7UUFDMUQsNEdBQTRHO1FBQzNGLHdDQUFtQyxHQUFHLEdBQUcsQ0FBQztRQUMxQywwQkFBcUIsR0FBRyxLQUFLLENBQUM7UUFDOUIsc0JBQWlCLEdBQUcsRUFBRSxDQUFDO1FBQ2hDLGlCQUFZLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDO1FBaUQxQyxlQUFVLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztJQUNLLENBQUM7SUFqRC9DLElBQ0ksV0FBVztRQUNiLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUM7UUFDaEMsSUFBSSxDQUFDLElB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RUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEhvc3RCaW5kaW5nLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIFZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERvbVNhbml0aXplciB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgbWFwLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBSYW5nZURpc3BsYXkgfSBmcm9tICcuL3JhbmdlLWRpc3BsYXkubW9kZWwnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjOHktcmFuZ2UtZGlzcGxheScsXG4gIHRlbXBsYXRlVXJsOiAnLi9yYW5nZS1kaXNwbGF5LmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBSYW5nZURpc3BsYXlDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3ksIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpIGNvbmZpZzogUmFuZ2VEaXNwbGF5ID0ge307XG4gIEBJbnB1dCgpIGRpc3BsYXk6ICdmdWxsJyB8ICdjb21wYWN0JyB8ICdpbmxpbmUnID0gJ2Z1bGwnO1xuICBwcml2YXRlIGN1cnJlbnRSYW5nZVdpZHRoT2JzZXJ2ZXI6IFJlc2l6ZU9ic2VydmVyO1xuICBwcml2YXRlIGN1cnJlbnRSYW5nZVdpZHRoQ2hhbmdlZCA9IG5ldyBTdWJqZWN0PEVsZW1lbnQ+KCk7XG4gIC8vIHdpZHRoIG9mIGN1cnJlbnQgcmFuZ2UgaXMgY2hhbmdpbmcgd2l0aGluIDE1MG1zLCBzZWUgc3R5bGUgZGVjbGFyYXRpb24gZm9yIC5yYW5nZS1kaXNwbGF5X19yYW5nZV9fY3VycmVudFxuICBwcml2YXRlIHJlYWRvbmx5IENVUlJFTlRfUkFOR0VfV0lEVEhfVFJBTlNJVElPTl9USU1FID0gMTUwO1xuICBwcml2YXRlIHJlYWRvbmx5IERFRkFVTFRfVE9PTFRJUF9TSElGVCA9ICc1MCUnO1xuICBwcml2YXRlIHJlYWRvbmx5IE1JTl9UT09MVElQX1NISUZUID0gMTA7XG4gIHByaXZhdGUgdG9vbHRpcFNoaWZ0ID0gdGhpcy5ERUZBVUxUX1RPT0xUSVBfU0hJRlQ7XG4gIEBIb3N0QmluZGluZygnYXR0ci5zdHlsZScpXG4gIGdldCBpbmxpbmVTdHlsZSgpIHtcbiAgICB0aGlzLmNvbmZpZyA9IHRoaXMuY29uZmlnIHx8IHt9O1xuICAgIGlmICghdGhpcy5jb25maWcubWluKSB7XG4gICAgICB0aGlzLmNvbmZpZy5taW4gPSAwO1xuICAgIH1cbiAgICBpZiAoIXRoaXMuY29uZmlnLm1heCkge1xuICAgICAgdGhpcy5jb25maWcubWF4ID0gMTAwO1xuICAgIH1cbiAgICBpZiAodGhpcy5jb25maWcuZnJhY3Rpb25TaXplICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuY29uZmlnLmN1cnJlbnQgPSBwYXJzZUZsb2F0KHRoaXMuY29uZmlnLmN1cnJlbnQudG9GaXhlZCh0aGlzLmNvbmZpZy5mcmFjdGlvblNpemUpKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuc2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RTdHlsZShcbiAgICAgIGBcbiAgICAgICAgICAtLXJhbmdlLW1pbjogJHt0aGlzLmNvbmZpZy5taW59O1xuICAgICAgICAgIC0tcmFuZ2UtbWF4OiAke3RoaXMuY29uZmlnLm1heH07XG4gICAgICAgICAgLS1yYW5nZS1kaXNwbGF5LXRvb2x0aXAtdHJhbnNsYXRlOiB0cmFuc2xhdGUoJHt0aGlzLnRvb2x0aXBTaGlmdH0sIC01NnB4KTtcbiAgICAgICAgICAtLXJhbmdlLWRpc3BsYXktdG9vbHRpcC1iZzogdmFyKCR7dGhpcy5nZXRUb29sdGlwQmFja2dyb3VuZCgpfSk7XG4gICAgICAgICAgLS1mdWxsLXJhbmdlOiAke3RoaXMuY29uZmlnLm1heCAtIHRoaXMuY29uZmlnLm1pbn07XG4gICAgICAgICAgLS1tZWFzdXJlbWVudC10YXJnZXQ6ICR7XG4gICAgICAgICAgICAoKHRoaXMuY29uZmlnLnRhcmdldCAtIHRoaXMuY29uZmlnLm1pbikgKiAxMDApIC8gKHRoaXMuY29uZmlnLm1heCAtIHRoaXMuY29uZmlnLm1pbilcbiAgICAgICAgICB9JTtcbiAgICAgICAgICAtLW1lYXN1cmVtZW50LWN1cnJlbnQ6ICR7XG4gICAgICAgICAgICAoKHRoaXMuY29uZmlnLmN1cnJlbnQgLSB0aGlzLmNvbmZpZy5taW4pICogMTAwKSAvICh0aGlzLmNvbmZpZy5tYXggLSB0aGlzLmNvbmZpZy5taW4pXG4gICAgICAgICAgfSU7XG4gICAgICAgICAgLS1yYW5nZS15LW1pbjogJHtcbiAgICAgICAgICAgICgodGhpcy5jb25maWcueWVsbG93UmFuZ2VNaW4gLSB0aGlzLmNvbmZpZy5taW4pICogMTAwKSAvXG4gICAgICAgICAgICAodGhpcy5jb25maWcubWF4IC0gdGhpcy5jb25maWcubWluKVxuICAgICAgICAgIH0lO1xuICAgICAgICAgIC0tcmFuZ2UteS1tYXg6ICR7XG4gICAgICAgICAgICAoKHRoaXMuY29uZmlnLnllbGxvd1JhbmdlTWF4IC0gdGhpcy5jb25maWcubWluKSAvICh0aGlzLmNvbmZpZy5tYXggLSB0aGlzLmNvbmZpZy5taW4pKSAqXG4gICAgICAgICAgICAxMDBcbiAgICAgICAgICB9JTtcbiAgICAgICAgICAtLXJhbmdlLXItbWluOiAke1xuICAgICAgICAgICAgKCh0aGlzLmNvbmZpZy5yZWRSYW5nZU1pbiAtIHRoaXMuY29uZmlnLm1pbikgKiAxMDApIC9cbiAgICAgICAgICAgICh0aGlzLmNvbmZpZy5tYXggLSB0aGlzLmNvbmZpZy5taW4pXG4gICAgICAgICAgfSU7XG4gICAgICAgICAgLS1yYW5nZS1yLW1heDogJHtcbiAgICAgICAgICAgICgodGhpcy5jb25maWcucmVkUmFuZ2VNYXggLSB0aGlzLmNvbmZpZy5taW4pIC8gKHRoaXMuY29uZmlnLm1heCAtIHRoaXMuY29uZmlnLm1pbikpICpcbiAgICAgICAgICAgIDEwMFxuICAgICAgICAgIH0lO1xuICAgICAgICBgXG4gICAgKTtcbiAgfVxuICBAVmlld0NoaWxkKCdyYW5nZURpc3BsYXknLCB7IHN0YXRpYzogZmFsc2UgfSlcbiAgcHJpdmF0ZSByYW5nZURpc3BsYXk6IEVsZW1lbnRSZWY7XG4gIEBWaWV3Q2hpbGQoJ2N1cnJlbnRSYW5nZUVsZW1lbnQnLCB7IHN0YXRpYzogZmFsc2UgfSlcbiAgcHJpdmF0ZSBjdXJyZW50UmFuZ2VFbGVtZW50OiBFbGVtZW50UmVmO1xuICBwcml2YXRlIGRlc3Ryb3llZCQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHNhbml0aXplcjogRG9tU2FuaXRpemVyKSB7fVxuXG4gIG5nT25DaGFuZ2VzKCkge1xuICAgIC8vIEl0J3MgbmVjZXNzYXJ5IHRvIGhhbmRsZSB0b29sdGlwIHNoaWZ0aW5nIGJvdGggaW4gT25DaGFuZ2VzIGFuZCBBZnRlclZpZXdJbml0LiBJbiBjYXNlIG9mIExpbmVhciBnYXVnZSB3aWRnZXQsIHZpZXcgaXNcbiAgICAvLyByZW5kZXJlZCBmaXJzdCAoc28gYXMgZWxlbWVudHMgbmVlZGVkIGZvciBjYWxjdWxhdGluZyBzaGlmdGluZykgYW5kIGNvbmZpZyBvcmllbnRhdGlvbiBpcyBzZXQgbGF0ZXIgb24uXG4gICAgLy8gSW4gb3RoZXIgY2FzZXMgaXQncyBwb3NzaWJsZSB0aGF0IG9yaWVudGF0aW9uIGlzIGRlZmluZWQgb24gaW5pdGlhbGl6YXRpb24gb2YgY2xhc3MgYW5kIHZpZXcgZWxlbWVudHMgYXJlIHJlbmRlcmVkIGxhdGVyLlxuICAgIHRoaXMuc2V0dXBUb29sdGlwU2hpZnRpbmdJZlBvc3NpYmxlKCk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy5zZXR1cFRvb2x0aXBTaGlmdGluZ0lmUG9zc2libGUoKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuY3VycmVudFJhbmdlV2lkdGhPYnNlcnZlcj8uZGlzY29ubmVjdCgpO1xuICAgIHRoaXMuZGVzdHJveWVkJC5uZXh0KCk7XG4gICAgdGhpcy5kZXN0cm95ZWQkLmNvbXBsZXRlKCk7XG4gIH1cblxuICBjaGVja1RhcmdldCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5jb25maWcudGFyZ2V0ICE9PSB1bmRlZmluZWQgJiZcbiAgICAgIHRoaXMuY29uZmlnLnRhcmdldCAhPT0gbnVsbCAmJlxuICAgICAgdGhpcy5jb25maWcudGFyZ2V0ID49IHRoaXMuY29uZmlnLm1pbiAmJlxuICAgICAgdGhpcy5jb25maWcudGFyZ2V0IDw9IHRoaXMuY29uZmlnLm1heFxuICAgICk7XG4gIH1cblxuICBydWxlckNhbGMoaW5kZXgpIHtcbiAgICBjb25zdCBudW06IG51bWJlciA9IHRoaXMuY29uZmlnLm1pbiArICgodGhpcy5jb25maWcubWF4IC0gdGhpcy5jb25maWcubWluKSAvIDEwKSAqIGluZGV4O1xuICAgIGlmICh0aGlzLmNvbmZpZy5mcmFjdGlvblNpemUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIHBhcnNlRmxvYXQobnVtLnRvRml4ZWQodGhpcy5jb25maWcuZnJhY3Rpb25TaXplKSk7XG4gICAgfVxuICAgIHJldHVybiBwYXJzZUZsb2F0KG51bS50b0ZpeGVkKDIpKTtcbiAgfVxuXG4gIHRyYWNrQnlJbmRleChpbmRleDogbnVtYmVyKTogbnVtYmVyIHtcbiAgICByZXR1cm4gaW5kZXg7XG4gIH1cblxuICBpc1JlZFJhbmdlRGlzcGxheWVkKCkge1xuICAgIGNvbnN0IHsgcmVkUmFuZ2VNaW4sIHJlZFJhbmdlTWF4IH0gPSB0aGlzLmNvbmZpZztcbiAgICByZXR1cm4gdGhpcy5pc1JhbmdlRGlzcGxheWVkKHJlZFJhbmdlTWluLCByZWRSYW5nZU1heCk7XG4gIH1cblxuICBpc1llbGxvd1JhbmdlRGlzcGxheWVkKCkge1xuICAgIGNvbnN0IHsgeWVsbG93UmFuZ2VNaW4sIHllbGxvd1JhbmdlTWF4IH0gPSB0aGlzLmNvbmZpZztcbiAgICByZXR1cm4gdGhpcy5pc1JhbmdlRGlzcGxheWVkKHllbGxvd1JhbmdlTWluLCB5ZWxsb3dSYW5nZU1heCk7XG4gIH1cblxuICBpc1JhbmdlRGlzcGxheWVkKHJhbmdlTWluLCByYW5nZU1heCkge1xuICAgIHJldHVybiByYW5nZU1pbiA9PT0gMCB8fCByYW5nZU1heCA9PT0gMCB8fCAocmFuZ2VNaW4gJiYgcmFuZ2VNYXgpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXR1cFRvb2x0aXBTaGlmdGluZygpIHtcbiAgICB0aGlzLmN1cnJlbnRSYW5nZVdpZHRoT2JzZXJ2ZXIgPSBuZXcgUmVzaXplT2JzZXJ2ZXIoKFt2YWxdKSA9PiB7XG4gICAgICBpZiAoZ2V0Q29tcHV0ZWRTdHlsZSh2YWwudGFyZ2V0LCBudWxsKS5kaXNwbGF5ID09PSAnYmxvY2snKSB7XG4gICAgICAgIHRoaXMuY3VycmVudFJhbmdlV2lkdGhDaGFuZ2VkLm5leHQodmFsLnRhcmdldCk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICB0aGlzLmN1cnJlbnRSYW5nZVdpZHRoT2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzLmN1cnJlbnRSYW5nZUVsZW1lbnQubmF0aXZlRWxlbWVudCk7XG5cbiAgICB0aGlzLmN1cnJlbnRSYW5nZVdpZHRoQ2hhbmdlZFxuICAgICAgLnBpcGUoXG4gICAgICAgIGRlYm91bmNlVGltZSh0aGlzLkNVUlJFTlRfUkFOR0VfV0lEVEhfVFJBTlNJVElPTl9USU1FKSxcbiAgICAgICAgbWFwKChyYW5nZUVsZW1lbnQ6IEVsZW1lbnQpID0+IHBhcnNlSW50KGdldENvbXB1dGVkU3R5bGUocmFuZ2VFbGVtZW50LCBudWxsKS53aWR0aCkpLFxuICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQkKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZShyYW5nZUVsZW1lbnRXaWR0aCA9PiB7XG4gICAgICAgIHRoaXMuc2V0VG9vbHRpcFNoaWZ0VmFsdWUocmFuZ2VFbGVtZW50V2lkdGgpO1xuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHNldFRvb2x0aXBTaGlmdFZhbHVlKHJhbmdlRWxlbWVudFdpZHRoOiBudW1iZXIpIHtcbiAgICBjb25zdCB0b29sdGlwV2lkdGggPSBwYXJzZUludChcbiAgICAgIGdldENvbXB1dGVkU3R5bGUodGhpcy5jdXJyZW50UmFuZ2VFbGVtZW50Lm5hdGl2ZUVsZW1lbnQsICc6YWZ0ZXInKS53aWR0aFxuICAgICk7XG4gICAgY29uc3QgY3VycmVudFJhbmdlV2lkdGggPSByYW5nZUVsZW1lbnRXaWR0aDtcbiAgICBjb25zdCByYW5nZURpc3BsYXlXaWR0aCA9IHBhcnNlSW50KFxuICAgICAgZ2V0Q29tcHV0ZWRTdHlsZSh0aGlzLnJhbmdlRGlzcGxheS5uYXRpdmVFbGVtZW50LCBudWxsKS5nZXRQcm9wZXJ0eVZhbHVlKCd3aWR0aCcpXG4gICAgKTtcbiAgICBjb25zdCByYW5nZURpc3BsYXlQYWRkaW5nTGVmdCA9IHBhcnNlSW50KFxuICAgICAgZ2V0Q29tcHV0ZWRTdHlsZSh0aGlzLnJhbmdlRGlzcGxheS5uYXRpdmVFbGVtZW50LCBudWxsKS5nZXRQcm9wZXJ0eVZhbHVlKCdwYWRkaW5nLWxlZnQnKVxuICAgICk7XG4gICAgY29uc3QgdG9vbHRpcE92ZXJmbG93c0xlZnRFZGdlID0gdG9vbHRpcFdpZHRoIC8gMiA+IHJhbmdlRGlzcGxheVBhZGRpbmdMZWZ0ICsgY3VycmVudFJhbmdlV2lkdGg7XG4gICAgY29uc3QgdG9vbHRpcE92ZXJmbG93c1JpZ2h0RWRnZSA9XG4gICAgICB0b29sdGlwV2lkdGggLyAyID4gcmFuZ2VEaXNwbGF5V2lkdGggLSByYW5nZURpc3BsYXlQYWRkaW5nTGVmdCAtIGN1cnJlbnRSYW5nZVdpZHRoO1xuICAgIGlmICh0b29sdGlwT3ZlcmZsb3dzTGVmdEVkZ2UpIHtcbiAgICAgIHRoaXMudG9vbHRpcFNoaWZ0ID0gYCR7dG9vbHRpcFdpZHRoIC0gdGhpcy5NSU5fVE9PTFRJUF9TSElGVH1weGA7XG4gICAgfSBlbHNlIGlmICh0b29sdGlwT3ZlcmZsb3dzUmlnaHRFZGdlKSB7XG4gICAgICB0aGlzLnRvb2x0aXBTaGlmdCA9IGAke3RoaXMuTUlOX1RPT0xUSVBfU0hJRlR9cHhgO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnRvb2x0aXBTaGlmdCA9IHRoaXMuREVGQVVMVF9UT09MVElQX1NISUZUO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2V0dXBUb29sdGlwU2hpZnRpbmdJZlBvc3NpYmxlKCkge1xuICAgIGlmIChcbiAgICAgIHRoaXMuY29uZmlnPy5vcmllbnRhdGlvbiA9PT0gJ2hvcml6b250YWwnICYmXG4gICAgICAhdGhpcy5jdXJyZW50UmFuZ2VXaWR0aE9ic2VydmVyICYmXG4gICAgICB0aGlzLnJhbmdlRGlzcGxheSAmJlxuICAgICAgdGhpcy5jdXJyZW50UmFuZ2VFbGVtZW50XG4gICAgKSB7XG4gICAgICB0aGlzLnNldHVwVG9vbHRpcFNoaWZ0aW5nKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBnZXRUb29sdGlwQmFja2dyb3VuZCgpOiBzdHJpbmcge1xuICAgIGNvbnN0IGN1cnJlbnQgPSB0aGlzLmNvbmZpZy5jdXJyZW50O1xuICAgIHN3aXRjaCAodHJ1ZSkge1xuICAgICAgY2FzZSB0aGlzLmlzVmFsdWVJblJhbmdlKGN1cnJlbnQsIHRoaXMuY29uZmlnLnJlZFJhbmdlTWluLCB0aGlzLmNvbmZpZy5yZWRSYW5nZU1heCk6XG4gICAgICAgIHJldHVybiAnLS1jOHktcGFsZXR0ZS1zdGF0dXMtZGFuZ2VyJztcbiAgICAgIGNhc2UgdGhpcy5pc1ZhbHVlSW5SYW5nZShjdXJyZW50LCB0aGlzLmNvbmZpZy55ZWxsb3dSYW5nZU1pbiwgdGhpcy5jb25maWcueWVsbG93UmFuZ2VNYXgpOlxuICAgICAgICByZXR1cm4gJy0tYzh5LXBhbGV0dGUtc3RhdHVzLXdhcm5pbmcnO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuICctLWM4eS1wYWxldHRlLWdyYXktMzAnO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaXNWYWx1ZUluUmFuZ2UodmFsdWU6IG51bWJlciwgbWluOiBudW1iZXIsIG1heDogbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIG1pbiAhPSBudWxsICYmIG1heCAhPSBudWxsICYmIHZhbHVlID49IG1pbiAmJiB2YWx1ZSA8PSBtYXg7XG4gIH1cbn1cbiIsIjxkaXZcbiAgW25nQ2xhc3NdPVwie1xuICAgICdyYW5nZS1kaXNwbGF5LS12ZXJ0aWNhbCc6IGNvbmZpZy5vcmllbnRhdGlvbiA9PT0gJ3ZlcnRpY2FsJyxcbiAgICAncmFuZ2UtZGlzcGxheS0tY29tcGFjdCc6IGRpc3BsYXkgPT09ICdjb21wYWN0JyxcbiAgICAncmFuZ2UtZGlzcGxheS0taW5saW5lJzogZGlzcGxheSA9PT0gJ2lubGluZSdcbiAgfVwiXG4gIGF0dHIuZGF0YS1sYWJlbD1cInt7IGNvbmZpZy51bml0IH19XCJcbj5cbiAgPGRpdlxuICAgIGNsYXNzPVwicmFuZ2UtZGlzcGxheVwiXG4gICAgI3JhbmdlRGlzcGxheVxuICA+XG4gICAgPGRpdiBjbGFzcz1cInJhbmdlLWRpc3BsYXlfX3JhbmdlXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwicmFuZ2UtZGlzcGxheV9fcmFuZ2VfX3VuaXRcIj5cbiAgICAgICAge3sgY29uZmlnLnVuaXQgfX1cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdlxuICAgICAgICAqbmdJZj1cImlzWWVsbG93UmFuZ2VEaXNwbGF5ZWQoKVwiXG4gICAgICAgIGNsYXNzPVwicmFuZ2UtZGlzcGxheV9fcmFuZ2VfX21pblwiXG4gICAgICA+PC9kaXY+XG4gICAgICA8ZGl2XG4gICAgICAgICpuZ0lmPVwiaXNSZWRSYW5nZURpc3BsYXllZCgpXCJcbiAgICAgICAgY2xhc3M9XCJyYW5nZS1kaXNwbGF5X19yYW5nZV9fbWF4XCJcbiAgICAgID48L2Rpdj5cbiAgICAgIDxkaXZcbiAgICAgICAgKm5nSWY9XCJjaGVja1RhcmdldCgpXCJcbiAgICAgICAgY2xhc3M9XCJyYW5nZS1kaXNwbGF5X19yYW5nZV9fdGFyZ2V0XCJcbiAgICAgICAgYXR0ci5kYXRhLWxhYmVsPVwie3sgY29uZmlnLnRhcmdldCB9fSB7eyBjb25maWcudW5pdCB9fVwiXG4gICAgICAgIHRpdGxlPVwie3sgJ1RhcmdldCcgfCB0cmFuc2xhdGUgfX06IHt7IGNvbmZpZy50YXJnZXQgfX0ge3sgY29uZmlnLnVuaXQgfX1cIlxuICAgICAgPjwvZGl2PlxuICAgICAgPGRpdlxuICAgICAgICBbbmdTdHlsZV09XCJ7XG4gICAgICAgICAgZGlzcGxheTpcbiAgICAgICAgICAgIGNvbmZpZy5jdXJyZW50ICE9IHVuZGVmaW5lZCAmJlxuICAgICAgICAgICAgY29uZmlnLmN1cnJlbnQgPj0gY29uZmlnLm1pbiAmJlxuICAgICAgICAgICAgY29uZmlnLmN1cnJlbnQgPD0gY29uZmlnLm1heFxuICAgICAgICAgICAgICA/ICdibG9jaydcbiAgICAgICAgICAgICAgOiAnbm9uZSdcbiAgICAgICAgfVwiXG4gICAgICAgICNjdXJyZW50UmFuZ2VFbGVtZW50XG4gICAgICAgIGNsYXNzPVwicmFuZ2UtZGlzcGxheV9fcmFuZ2VfX2N1cnJlbnRcIlxuICAgICAgICBhdHRyLmRhdGEtbGFiZWw9XCJ7eyBjb25maWcuY3VycmVudCB9fSB7eyBjb25maWcudW5pdCB9fSAmI3hhO3t7IGNvbmZpZy50aW1lIHwgYzh5RGF0ZSB9fVwiXG4gICAgICAgIHRpdGxlPVwie3sgJ0N1cnJlbnQnIHwgdHJhbnNsYXRlIH19OiB7eyBjb25maWcuY3VycmVudCB9fSB7eyBjb25maWcudW5pdCB9fSB8IHt7XG4gICAgICAgICAgY29uZmlnLnRpbWUgfCBjOHlEYXRlXG4gICAgICAgIH19XCJcbiAgICAgID48L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwicmFuZ2UtZGlzcGxheV9fcnVsZXJcIj5cbiAgICAgIDxkaXZcbiAgICAgICAgKm5nRm9yPVwibGV0IHggb2YgW10uY29uc3RydWN0b3IoMTApOyBsZXQgaW5kZXggPSBpbmRleDsgdHJhY2tCeTogdHJhY2tCeUluZGV4XCJcbiAgICAgICAgYXR0ci5kYXRhLWxhYmVsPVwie3sgcnVsZXJDYWxjKGluZGV4KSB9fVwiXG4gICAgICAgIGNsYXNzPVwicmFuZ2UtZGlzcGxheV9fdGlja1wiXG4gICAgICA+PC9kaXY+XG4gICAgICA8ZGl2XG4gICAgICAgIGF0dHIuZGF0YS1sYWJlbD1cInt7IGNvbmZpZy5tYXggfHwgMTAwIHwgbnVtYmVyIH19XCJcbiAgICAgICAgY2xhc3M9XCJyYW5nZS1kaXNwbGF5X190aWNrXCJcbiAgICAgID48L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
165
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFuZ2UtZGlzcGxheS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9jb3JlL3JhbmdlLWRpc3BsYXkvcmFuZ2UtZGlzcGxheS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9jb3JlL3JhbmdlLWRpc3BsYXkvcmFuZ2UtZGlzcGxheS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsU0FBUyxFQUNULFVBQVUsRUFDVixXQUFXLEVBQ1gsS0FBSyxFQUdMLFNBQVMsRUFDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDekQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7O0FBT3BGLE1BQU0sT0FBTyxxQkFBcUI7SUEyRGhDLFlBQW9CLFNBQXVCO1FBQXZCLGNBQVMsR0FBVCxTQUFTLENBQWM7UUExRGxDLFdBQU0sR0FBaUIsRUFBRSxDQUFDO1FBQzFCLFlBQU8sR0FBa0MsTUFBTSxDQUFDO1FBRWpELDZCQUF3QixHQUFHLElBQUksT0FBTyxFQUFXLENBQUM7UUFDMUQsNEdBQTRHO1FBQzNGLHdDQUFtQyxHQUFHLEdBQUcsQ0FBQztRQUMxQywwQkFBcUIsR0FBRyxLQUFLLENBQUM7UUFDOUIsc0JBQWlCLEdBQUcsRUFBRSxDQUFDO1FBQ2hDLGlCQUFZLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDO1FBaUQxQyxlQUFVLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztJQUNLLENBQUM7SUFqRC9DLElBQ0ksV0FBVztRQUNiLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUM7UUFDaEMsSUFBSSxDQUFDLElB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O2dCQUdwQyxtQkFBbUI7c0JBRDFCLFNBQVM7dUJBQUMscUJBQXFCLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBIb3N0QmluZGluZyxcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT25EZXN0cm95LFxuICBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgZGlzdGluY3RVbnRpbENoYW5nZWQsIG1hcCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgUmFuZ2VEaXNwbGF5IH0gZnJvbSAnLi9yYW5nZS1kaXNwbGF5Lm1vZGVsJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYzh5LXJhbmdlLWRpc3BsYXknLFxuICB0ZW1wbGF0ZVVybDogJy4vcmFuZ2UtZGlzcGxheS5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgUmFuZ2VEaXNwbGF5Q29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95LCBPbkNoYW5nZXMge1xuICBASW5wdXQoKSBjb25maWc6IFJhbmdlRGlzcGxheSA9IHt9O1xuICBASW5wdXQoKSBkaXNwbGF5OiAnZnVsbCcgfCAnY29tcGFjdCcgfCAnaW5saW5lJyA9ICdmdWxsJztcbiAgcHJpdmF0ZSBjdXJyZW50UmFuZ2VXaWR0aE9ic2VydmVyOiBSZXNpemVPYnNlcnZlcjtcbiAgcHJpdmF0ZSBjdXJyZW50UmFuZ2VXaWR0aENoYW5nZWQgPSBuZXcgU3ViamVjdDxFbGVtZW50PigpO1xuICAvLyB3aWR0aCBvZiBjdXJyZW50IHJhbmdlIGlzIGNoYW5naW5nIHdpdGhpbiAxNTBtcywgc2VlIHN0eWxlIGRlY2xhcmF0aW9uIGZvciAucmFuZ2UtZGlzcGxheV9fcmFuZ2VfX2N1cnJlbnRcbiAgcHJpdmF0ZSByZWFkb25seSBDVVJSRU5UX1JBTkdFX1dJRFRIX1RSQU5TSVRJT05fVElNRSA9IDE1MDtcbiAgcHJpdmF0ZSByZWFkb25seSBERUZBVUxUX1RPT0xUSVBfU0hJRlQgPSAnNTAlJztcbiAgcHJpdmF0ZSByZWFkb25seSBNSU5fVE9PTFRJUF9TSElGVCA9IDEwO1xuICBwcml2YXRlIHRvb2x0aXBTaGlmdCA9IHRoaXMuREVGQVVMVF9UT09MVElQX1NISUZUO1xuICBASG9zdEJpbmRpbmcoJ2F0dHIuc3R5bGUnKVxuICBnZXQgaW5saW5lU3R5bGUoKSB7XG4gICAgdGhpcy5jb25maWcgPSB0aGlzLmNvbmZpZyB8fCB7fTtcbiAgICBpZiAoIXRoaXMuY29uZmlnLm1pbikge1xuICAgICAgdGhpcy5jb25maWcubWluID0gMDtcbiAgICB9XG4gICAgaWYgKCF0aGlzLmNvbmZpZy5tYXggJiYgdGhpcy5jb25maWcubWF4ICE9PSAwKSB7XG4gICAgICB0aGlzLmNvbmZpZy5tYXggPSAxMDA7XG4gICAgfVxuICAgIGlmICh0aGlzLmNvbmZpZy5mcmFjdGlvblNpemUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5jb25maWcuY3VycmVudCA9IHBhcnNlRmxvYXQodGhpcy5jb25maWcuY3VycmVudC50b0ZpeGVkKHRoaXMuY29uZmlnLmZyYWN0aW9uU2l6ZSkpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5zYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdFN0eWxlKFxuICAgICAgYFxuICAgICAgICAgIC0tcmFuZ2UtbWluOiAke3RoaXMuY29uZmlnLm1pbn07XG4gICAgICAgICAgLS1yYW5nZS1tYXg6ICR7dGhpcy5jb25maWcubWF4fTtcbiAgICAgICAgICAtLXJhbmdlLWRpc3BsYXktdG9vbHRpcC10cmFuc2xhdGU6IHRyYW5zbGF0ZSgke3RoaXMudG9vbHRpcFNoaWZ0fSwgLTU2cHgpO1xuICAgICAgICAgIC0tcmFuZ2UtZGlzcGxheS10b29sdGlwLWJnOiB2YXIoJHt0aGlzLmdldFRvb2x0aXBCYWNrZ3JvdW5kKCl9KTtcbiAgICAgICAgICAtLWZ1bGwtcmFuZ2U6ICR7dGhpcy5jb25maWcubWF4IC0gdGhpcy5jb25maWcubWlufTtcbiAgICAgICAgICAtLW1lYXN1cmVtZW50LXRhcmdldDogJHtcbiAgICAgICAgICAgICgodGhpcy5jb25maWcudGFyZ2V0IC0gdGhpcy5jb25maWcubWluKSAqIDEwMCkgLyAodGhpcy5jb25maWcubWF4IC0gdGhpcy5jb25maWcubWluKVxuICAgICAgICAgIH0lO1xuICAgICAgICAgIC0tbWVhc3VyZW1lbnQtY3VycmVudDogJHtcbiAgICAgICAgICAgICgodGhpcy5jb25maWcuY3VycmVudCAtIHRoaXMuY29uZmlnLm1pbikgKiAxMDApIC8gKHRoaXMuY29uZmlnLm1heCAtIHRoaXMuY29uZmlnLm1pbilcbiAgICAgICAgICB9JTtcbiAgICAgICAgICAtLXJhbmdlLXktbWluOiAke1xuICAgICAgICAgICAgKCh0aGlzLmNvbmZpZy55ZWxsb3dSYW5nZU1pbiAtIHRoaXMuY29uZmlnLm1pbikgKiAxMDApIC9cbiAgICAgICAgICAgICh0aGlzLmNvbmZpZy5tYXggLSB0aGlzLmNvbmZpZy5taW4pXG4gICAgICAgICAgfSU7XG4gICAgICAgICAgLS1yYW5nZS15LW1heDogJHtcbiAgICAgICAgICAgICgodGhpcy5jb25maWcueWVsbG93UmFuZ2VNYXggLSB0aGlzLmNvbmZpZy5taW4pIC8gKHRoaXMuY29uZmlnLm1heCAtIHRoaXMuY29uZmlnLm1pbikpICpcbiAgICAgICAgICAgIDEwMFxuICAgICAgICAgIH0lO1xuICAgICAgICAgIC0tcmFuZ2Utci1taW46ICR7XG4gICAgICAgICAgICAoKHRoaXMuY29uZmlnLnJlZFJhbmdlTWluIC0gdGhpcy5jb25maWcubWluKSAqIDEwMCkgL1xuICAgICAgICAgICAgKHRoaXMuY29uZmlnLm1heCAtIHRoaXMuY29uZmlnLm1pbilcbiAgICAgICAgICB9JTtcbiAgICAgICAgICAtLXJhbmdlLXItbWF4OiAke1xuICAgICAgICAgICAgKCh0aGlzLmNvbmZpZy5yZWRSYW5nZU1heCAtIHRoaXMuY29uZmlnLm1pbikgLyAodGhpcy5jb25maWcubWF4IC0gdGhpcy5jb25maWcubWluKSkgKlxuICAgICAgICAgICAgMTAwXG4gICAgICAgICAgfSU7XG4gICAgICAgIGBcbiAgICApO1xuICB9XG4gIEBWaWV3Q2hpbGQoJ3JhbmdlRGlzcGxheScsIHsgc3RhdGljOiBmYWxzZSB9KVxuICBwcml2YXRlIHJhbmdlRGlzcGxheTogRWxlbWVudFJlZjtcbiAgQFZpZXdDaGlsZCgnY3VycmVudFJhbmdlRWxlbWVudCcsIHsgc3RhdGljOiBmYWxzZSB9KVxuICBwcml2YXRlIGN1cnJlbnRSYW5nZUVsZW1lbnQ6IEVsZW1lbnRSZWY7XG4gIHByaXZhdGUgZGVzdHJveWVkJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgc2FuaXRpemVyOiBEb21TYW5pdGl6ZXIpIHt9XG5cbiAgbmdPbkNoYW5nZXMoKSB7XG4gICAgLy8gSXQncyBuZWNlc3NhcnkgdG8gaGFuZGxlIHRvb2x0aXAgc2hpZnRpbmcgYm90aCBpbiBPbkNoYW5nZXMgYW5kIEFmdGVyVmlld0luaXQuIEluIGNhc2Ugb2YgTGluZWFyIGdhdWdlIHdpZGdldCwgdmlldyBpc1xuICAgIC8vIHJlbmRlcmVkIGZpcnN0IChzbyBhcyBlbGVtZW50cyBuZWVkZWQgZm9yIGNhbGN1bGF0aW5nIHNoaWZ0aW5nKSBhbmQgY29uZmlnIG9yaWVudGF0aW9uIGlzIHNldCBsYXRlciBvbi5cbiAgICAvLyBJbiBvdGhlciBjYXNlcyBpdCdzIHBvc3NpYmxlIHRoYXQgb3JpZW50YXRpb24gaXMgZGVmaW5lZCBvbiBpbml0aWFsaXphdGlvbiBvZiBjbGFzcyBhbmQgdmlldyBlbGVtZW50cyBhcmUgcmVuZGVyZWQgbGF0ZXIuXG4gICAgdGhpcy5zZXR1cFRvb2x0aXBTaGlmdGluZ0lmUG9zc2libGUoKTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICB0aGlzLnNldHVwVG9vbHRpcFNoaWZ0aW5nSWZQb3NzaWJsZSgpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5jdXJyZW50UmFuZ2VXaWR0aE9ic2VydmVyPy5kaXNjb25uZWN0KCk7XG4gICAgdGhpcy5kZXN0cm95ZWQkLm5leHQoKTtcbiAgICB0aGlzLmRlc3Ryb3llZCQuY29tcGxldGUoKTtcbiAgfVxuXG4gIGNoZWNrVGFyZ2V0KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAoXG4gICAgICB0aGlzLmNvbmZpZy50YXJnZXQgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgdGhpcy5jb25maWcudGFyZ2V0ICE9PSBudWxsICYmXG4gICAgICB0aGlzLmNvbmZpZy50YXJnZXQgPj0gdGhpcy5jb25maWcubWluICYmXG4gICAgICB0aGlzLmNvbmZpZy50YXJnZXQgPD0gdGhpcy5jb25maWcubWF4XG4gICAgKTtcbiAgfVxuXG4gIHJ1bGVyQ2FsYyhpbmRleCkge1xuICAgIGNvbnN0IG51bTogbnVtYmVyID0gdGhpcy5jb25maWcubWluICsgKCh0aGlzLmNvbmZpZy5tYXggLSB0aGlzLmNvbmZpZy5taW4pIC8gMTApICogaW5kZXg7XG4gICAgaWYgKHRoaXMuY29uZmlnLmZyYWN0aW9uU2l6ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gcGFyc2VGbG9hdChudW0udG9GaXhlZCh0aGlzLmNvbmZpZy5mcmFjdGlvblNpemUpKTtcbiAgICB9XG4gICAgcmV0dXJuIHBhcnNlRmxvYXQobnVtLnRvRml4ZWQoMikpO1xuICB9XG5cbiAgdHJhY2tCeUluZGV4KGluZGV4OiBudW1iZXIpOiBudW1iZXIge1xuICAgIHJldHVybiBpbmRleDtcbiAgfVxuXG4gIGlzUmVkUmFuZ2VEaXNwbGF5ZWQoKSB7XG4gICAgY29uc3QgeyByZWRSYW5nZU1pbiwgcmVkUmFuZ2VNYXggfSA9IHRoaXMuY29uZmlnO1xuICAgIHJldHVybiB0aGlzLmlzUmFuZ2VEaXNwbGF5ZWQocmVkUmFuZ2VNaW4sIHJlZFJhbmdlTWF4KTtcbiAgfVxuXG4gIGlzWWVsbG93UmFuZ2VEaXNwbGF5ZWQoKSB7XG4gICAgY29uc3QgeyB5ZWxsb3dSYW5nZU1pbiwgeWVsbG93UmFuZ2VNYXggfSA9IHRoaXMuY29uZmlnO1xuICAgIHJldHVybiB0aGlzLmlzUmFuZ2VEaXNwbGF5ZWQoeWVsbG93UmFuZ2VNaW4sIHllbGxvd1JhbmdlTWF4KTtcbiAgfVxuXG4gIGlzUmFuZ2VEaXNwbGF5ZWQocmFuZ2VNaW4sIHJhbmdlTWF4KSB7XG4gICAgcmV0dXJuIHJhbmdlTWluID09PSAwIHx8IHJhbmdlTWF4ID09PSAwIHx8IChyYW5nZU1pbiAmJiByYW5nZU1heCk7XG4gIH1cblxuICBwcml2YXRlIHNldHVwVG9vbHRpcFNoaWZ0aW5nKCkge1xuICAgIHRoaXMuY3VycmVudFJhbmdlV2lkdGhPYnNlcnZlciA9IG5ldyBSZXNpemVPYnNlcnZlcigoW3ZhbF0pID0+IHtcbiAgICAgIGlmIChnZXRDb21wdXRlZFN0eWxlKHZhbC50YXJnZXQsIG51bGwpLmRpc3BsYXkgPT09ICdibG9jaycpIHtcbiAgICAgICAgdGhpcy5jdXJyZW50UmFuZ2VXaWR0aENoYW5nZWQubmV4dCh2YWwudGFyZ2V0KTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHRoaXMuY3VycmVudFJhbmdlV2lkdGhPYnNlcnZlci5vYnNlcnZlKHRoaXMuY3VycmVudFJhbmdlRWxlbWVudC5uYXRpdmVFbGVtZW50KTtcblxuICAgIHRoaXMuY3VycmVudFJhbmdlV2lkdGhDaGFuZ2VkXG4gICAgICAucGlwZShcbiAgICAgICAgZGVib3VuY2VUaW1lKHRoaXMuQ1VSUkVOVF9SQU5HRV9XSURUSF9UUkFOU0lUSU9OX1RJTUUpLFxuICAgICAgICBtYXAoKHJhbmdlRWxlbWVudDogRWxlbWVudCkgPT4gcGFyc2VJbnQoZ2V0Q29tcHV0ZWRTdHlsZShyYW5nZUVsZW1lbnQsIG51bGwpLndpZHRoKSksXG4gICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZCQpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKHJhbmdlRWxlbWVudFdpZHRoID0+IHtcbiAgICAgICAgdGhpcy5zZXRUb29sdGlwU2hpZnRWYWx1ZShyYW5nZUVsZW1lbnRXaWR0aCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0VG9vbHRpcFNoaWZ0VmFsdWUocmFuZ2VFbGVtZW50V2lkdGg6IG51bWJlcikge1xuICAgIGNvbnN0IHRvb2x0aXBXaWR0aCA9IHBhcnNlSW50KFxuICAgICAgZ2V0Q29tcHV0ZWRTdHlsZSh0aGlzLmN1cnJlbnRSYW5nZUVsZW1lbnQubmF0aXZlRWxlbWVudCwgJzphZnRlcicpLndpZHRoXG4gICAgKTtcbiAgICBjb25zdCBjdXJyZW50UmFuZ2VXaWR0aCA9IHJhbmdlRWxlbWVudFdpZHRoO1xuICAgIGNvbnN0IHJhbmdlRGlzcGxheVdpZHRoID0gcGFyc2VJbnQoXG4gICAgICBnZXRDb21wdXRlZFN0eWxlKHRoaXMucmFuZ2VEaXNwbGF5Lm5hdGl2ZUVsZW1lbnQsIG51bGwpLmdldFByb3BlcnR5VmFsdWUoJ3dpZHRoJylcbiAgICApO1xuICAgIGNvbnN0IHJhbmdlRGlzcGxheVBhZGRpbmdMZWZ0ID0gcGFyc2VJbnQoXG4gICAgICBnZXRDb21wdXRlZFN0eWxlKHRoaXMucmFuZ2VEaXNwbGF5Lm5hdGl2ZUVsZW1lbnQsIG51bGwpLmdldFByb3BlcnR5VmFsdWUoJ3BhZGRpbmctbGVmdCcpXG4gICAgKTtcbiAgICBjb25zdCB0b29sdGlwT3ZlcmZsb3dzTGVmdEVkZ2UgPSB0b29sdGlwV2lkdGggLyAyID4gcmFuZ2VEaXNwbGF5UGFkZGluZ0xlZnQgKyBjdXJyZW50UmFuZ2VXaWR0aDtcbiAgICBjb25zdCB0b29sdGlwT3ZlcmZsb3dzUmlnaHRFZGdlID1cbiAgICAgIHRvb2x0aXBXaWR0aCAvIDIgPiByYW5nZURpc3BsYXlXaWR0aCAtIHJhbmdlRGlzcGxheVBhZGRpbmdMZWZ0IC0gY3VycmVudFJhbmdlV2lkdGg7XG4gICAgaWYgKHRvb2x0aXBPdmVyZmxvd3NMZWZ0RWRnZSkge1xuICAgICAgdGhpcy50b29sdGlwU2hpZnQgPSBgJHt0b29sdGlwV2lkdGggLSB0aGlzLk1JTl9UT09MVElQX1NISUZUfXB4YDtcbiAgICB9IGVsc2UgaWYgKHRvb2x0aXBPdmVyZmxvd3NSaWdodEVkZ2UpIHtcbiAgICAgIHRoaXMudG9vbHRpcFNoaWZ0ID0gYCR7dGhpcy5NSU5fVE9PTFRJUF9TSElGVH1weGA7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudG9vbHRpcFNoaWZ0ID0gdGhpcy5ERUZBVUxUX1RPT0xUSVBfU0hJRlQ7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzZXR1cFRvb2x0aXBTaGlmdGluZ0lmUG9zc2libGUoKSB7XG4gICAgaWYgKFxuICAgICAgdGhpcy5jb25maWc/Lm9yaWVudGF0aW9uID09PSAnaG9yaXpvbnRhbCcgJiZcbiAgICAgICF0aGlzLmN1cnJlbnRSYW5nZVdpZHRoT2JzZXJ2ZXIgJiZcbiAgICAgIHRoaXMucmFuZ2VEaXNwbGF5ICYmXG4gICAgICB0aGlzLmN1cnJlbnRSYW5nZUVsZW1lbnRcbiAgICApIHtcbiAgICAgIHRoaXMuc2V0dXBUb29sdGlwU2hpZnRpbmcoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGdldFRvb2x0aXBCYWNrZ3JvdW5kKCk6IHN0cmluZyB7XG4gICAgY29uc3QgY3VycmVudCA9IHRoaXMuY29uZmlnLmN1cnJlbnQ7XG4gICAgc3dpdGNoICh0cnVlKSB7XG4gICAgICBjYXNlIHRoaXMuaXNWYWx1ZUluUmFuZ2UoY3VycmVudCwgdGhpcy5jb25maWcucmVkUmFuZ2VNaW4sIHRoaXMuY29uZmlnLnJlZFJhbmdlTWF4KTpcbiAgICAgICAgcmV0dXJuICctLWM4eS1wYWxldHRlLXN0YXR1cy1kYW5nZXInO1xuICAgICAgY2FzZSB0aGlzLmlzVmFsdWVJblJhbmdlKGN1cnJlbnQsIHRoaXMuY29uZmlnLnllbGxvd1JhbmdlTWluLCB0aGlzLmNvbmZpZy55ZWxsb3dSYW5nZU1heCk6XG4gICAgICAgIHJldHVybiAnLS1jOHktcGFsZXR0ZS1zdGF0dXMtd2FybmluZyc7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gJy0tYzh5LXBhbGV0dGUtZ3JheS0zMCc7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBpc1ZhbHVlSW5SYW5nZSh2YWx1ZTogbnVtYmVyLCBtaW46IG51bWJlciwgbWF4OiBudW1iZXIpOiBib29sZWFuIHtcbiAgICByZXR1cm4gbWluICE9IG51bGwgJiYgbWF4ICE9IG51bGwgJiYgdmFsdWUgPj0gbWluICYmIHZhbHVlIDw9IG1heDtcbiAgfVxufVxuIiwiPGRpdlxuICBbbmdDbGFzc109XCJ7XG4gICAgJ3JhbmdlLWRpc3BsYXktLXZlcnRpY2FsJzogY29uZmlnLm9yaWVudGF0aW9uID09PSAndmVydGljYWwnLFxuICAgICdyYW5nZS1kaXNwbGF5LS1jb21wYWN0JzogZGlzcGxheSA9PT0gJ2NvbXBhY3QnLFxuICAgICdyYW5nZS1kaXNwbGF5LS1pbmxpbmUnOiBkaXNwbGF5ID09PSAnaW5saW5lJ1xuICB9XCJcbiAgYXR0ci5kYXRhLWxhYmVsPVwie3sgY29uZmlnLnVuaXQgfX1cIlxuPlxuICA8ZGl2XG4gICAgY2xhc3M9XCJyYW5nZS1kaXNwbGF5XCJcbiAgICAjcmFuZ2VEaXNwbGF5XG4gID5cbiAgICA8ZGl2IGNsYXNzPVwicmFuZ2UtZGlzcGxheV9fcmFuZ2VcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJyYW5nZS1kaXNwbGF5X19yYW5nZV9fdW5pdFwiPlxuICAgICAgICB7eyBjb25maWcudW5pdCB9fVxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2XG4gICAgICAgICpuZ0lmPVwiaXNZZWxsb3dSYW5nZURpc3BsYXllZCgpXCJcbiAgICAgICAgY2xhc3M9XCJyYW5nZS1kaXNwbGF5X19yYW5nZV9fbWluXCJcbiAgICAgID48L2Rpdj5cbiAgICAgIDxkaXZcbiAgICAgICAgKm5nSWY9XCJpc1JlZFJhbmdlRGlzcGxheWVkKClcIlxuICAgICAgICBjbGFzcz1cInJhbmdlLWRpc3BsYXlfX3JhbmdlX19tYXhcIlxuICAgICAgPjwvZGl2PlxuICAgICAgPGRpdlxuICAgICAgICAqbmdJZj1cImNoZWNrVGFyZ2V0KClcIlxuICAgICAgICBjbGFzcz1cInJhbmdlLWRpc3BsYXlfX3JhbmdlX190YXJnZXRcIlxuICAgICAgICBhdHRyLmRhdGEtbGFiZWw9XCJ7eyBjb25maWcudGFyZ2V0IH19IHt7IGNvbmZpZy51bml0IH19XCJcbiAgICAgICAgdGl0bGU9XCJ7eyAnVGFyZ2V0JyB8IHRyYW5zbGF0ZSB9fToge3sgY29uZmlnLnRhcmdldCB9fSB7eyBjb25maWcudW5pdCB9fVwiXG4gICAgICA+PC9kaXY+XG4gICAgICA8ZGl2XG4gICAgICAgIFtuZ1N0eWxlXT1cIntcbiAgICAgICAgICBkaXNwbGF5OlxuICAgICAgICAgICAgY29uZmlnLmN1cnJlbnQgIT0gdW5kZWZpbmVkICYmXG4gICAgICAgICAgICBjb25maWcuY3VycmVudCA+PSBjb25maWcubWluICYmXG4gICAgICAgICAgICBjb25maWcuY3VycmVudCA8PSBjb25maWcubWF4XG4gICAgICAgICAgICAgID8gJ2Jsb2NrJ1xuICAgICAgICAgICAgICA6ICdub25lJ1xuICAgICAgICB9XCJcbiAgICAgICAgI2N1cnJlbnRSYW5nZUVsZW1lbnRcbiAgICAgICAgY2xhc3M9XCJyYW5nZS1kaXNwbGF5X19yYW5nZV9fY3VycmVudFwiXG4gICAgICAgIGF0dHIuZGF0YS1sYWJlbD1cInt7IGNvbmZpZy5jdXJyZW50IH19IHt7IGNvbmZpZy51bml0IH19ICYjeGE7e3sgY29uZmlnLnRpbWUgfCBjOHlEYXRlIH19XCJcbiAgICAgICAgdGl0bGU9XCJ7eyAnQ3VycmVudCcgfCB0cmFuc2xhdGUgfX06IHt7IGNvbmZpZy5jdXJyZW50IH19IHt7IGNvbmZpZy51bml0IH19IHwge3tcbiAgICAgICAgICBjb25maWcudGltZSB8IGM4eURhdGVcbiAgICAgICAgfX1cIlxuICAgICAgPjwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJyYW5nZS1kaXNwbGF5X19ydWxlclwiPlxuICAgICAgPGRpdlxuICAgICAgICAqbmdGb3I9XCJsZXQgeCBvZiBbXS5jb25zdHJ1Y3RvcigxMCk7IGxldCBpbmRleCA9IGluZGV4OyB0cmFja0J5OiB0cmFja0J5SW5kZXhcIlxuICAgICAgICBhdHRyLmRhdGEtbGFiZWw9XCJ7eyBydWxlckNhbGMoaW5kZXgpIH19XCJcbiAgICAgICAgY2xhc3M9XCJyYW5nZS1kaXNwbGF5X190aWNrXCJcbiAgICAgID48L2Rpdj5cbiAgICAgIDxkaXZcbiAgICAgICAgYXR0ci5kYXRhLWxhYmVsPVwie3sgY29uZmlnLm1heCA/PyAxMDAgfCBudW1iZXIgfX1cIlxuICAgICAgICBjbGFzcz1cInJhbmdlLWRpc3BsYXlfX3RpY2tcIlxuICAgICAgPjwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
@@ -38,6 +38,7 @@ export class UploadArchiveComponent {
38
38
  try {
39
39
  await this.ecosystemService.validateArchiveToAppCompatibility(file, this.application);
40
40
  const isCustomMicroservice = this.ecosystemService.isCustomMicroservice(this.application);
41
+ const isPackage = this.ecosystemService.isPackage(this.application);
41
42
  this.archives = isCustomMicroservice
42
43
  ? []
43
44
  : await this.ecosystemService.listArchives(this.application.id);
@@ -46,7 +47,7 @@ export class UploadArchiveComponent {
46
47
  });
47
48
  this.uploadInProgress = true;
48
49
  this.uploadProgress.next(0);
49
- if (this.archives.length === 6 && !isCustomMicroservice) {
50
+ if (this.archives.length === 6 && !isCustomMicroservice && !isPackage) {
50
51
  await this.ecosystemService.removeOldestArchive(this.application, this.archives);
51
52
  }
52
53
  const app = await this.ecosystemService.uploadArchiveToApp(file, this.application, this.uploadNewVersion);
@@ -81,4 +82,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
81
82
  }], refresh: [{
82
83
  type: Output
83
84
  }] } });
84
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkLWFyY2hpdmUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vZWNvc3lzdGVtL3NoYXJlZC91cGxvYWQtYXJjaGl2ZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9lY29zeXN0ZW0vc2hhcmVkL3VwbG9hZC1hcmNoaXZlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdkUsT0FBTyxFQUFFLFlBQVksRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUU1RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7Ozs7QUFNdkQsTUFBTSxPQUFPLHNCQUFzQjtJQWVqQyxZQUFvQixnQkFBa0MsRUFBVSxZQUEwQjtRQUF0RSxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQVUsaUJBQVksR0FBWixZQUFZLENBQWM7UUFiakYscUJBQWdCLEdBQUcsS0FBSyxDQUFDO1FBRXhCLHNCQUFpQixHQUErQixJQUFJLFlBQVksRUFBZ0IsQ0FBQztRQUNqRixZQUFPLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7UUFFMUQsYUFBUSxHQUF5QixFQUFFLENBQUM7UUFLcEMscUJBQWdCLEdBQUcsS0FBSyxDQUFDO1FBQ3pCLGtCQUFhLEdBQUcsS0FBSyxDQUFDO0lBRXVFLENBQUM7SUFFOUYsSUFBSSxjQUFjO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQztJQUN4QyxDQUFDO0lBRUQsS0FBSyxDQUFDLGtCQUFrQixDQUFDLEtBQUs7UUFDNUIsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUU7WUFDMUIsSUFBSTtnQkFDRixNQUFNLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO2FBQ2hDO1lBQUMsT0FBTyxDQUFDLEVBQUU7Z0JBQ1YsbUVBQW1FO2dCQUNuRSxPQUFPO2FBQ1I7U0FDRjtRQUNELElBQUksS0FBSyxJQUFJLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQzdCLE1BQU0sSUFBSSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7WUFDM0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUNuQjtJQUNILENBQUM7SUFFTyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQVU7UUFDN0IsSUFBSTtZQUNGLE1BQU0sSUFBSSxDQUFDLGdCQUFnQixDQUFDLGlDQUFpQyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDdEYsTUFBTSxvQkFBb0IsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQzFGLElBQUksQ0FBQyxRQUFRLEdBQUcsb0JBQW9CO2dCQUNsQyxDQUFDLENBQUMsRUFBRTtnQkFDSixDQUFDLENBQUMsTUFBTSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDbEUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7Z0JBQzFCLE9BQVEsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBUyxHQUFJLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQVMsQ0FBQztZQUNyRSxDQUFDLENBQUMsQ0FBQztZQUNILElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUM7WUFDN0IsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDNUIsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sS0FBSyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsRUFBRTtnQkFDdkQsTUFBTSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7YUFDbEY7WUFDRCxNQUFNLEdBQUcsR0FBRyxNQUFNLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxrQkFBa0IsQ0FDeEQsSUFBSSxFQUNKLElBQUksQ0FBQyxXQUFXLEVBQ2hCLElBQUksQ0FBQyxnQkFBZ0IsQ0FDdEIsQ0FBQztZQUNGLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDakMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDOUIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLEtBQUssQ0FBQztZQUM5QixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3BCLElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFO2dCQUN6QixPQUFPO2FBQ1I7WUFDRCxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsaUNBQWlDLENBQUMsQ0FBQyxDQUFDO1NBQ3ZFO1FBQUMsT0FBTyxFQUFFLEVBQUU7WUFDWCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsS0FBSyxDQUFDO1lBQzlCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLENBQUM7U0FDdEM7SUFDSCxDQUFDOzttSEFwRVUsc0JBQXNCO3VHQUF0QixzQkFBc0IseVBDVm5DLHlUQVdBOzJGRERhLHNCQUFzQjtrQkFKbEMsU0FBUzsrQkFDRSxvQkFBb0I7a0lBSXJCLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFDSSxpQkFBaUI7c0JBQTFCLE1BQU07Z0JBQ0csT0FBTztzQkFBaEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJQXBwbGljYXRpb24sIElBcHBsaWNhdGlvbkJpbmFyeSB9IGZyb20gJ0BjOHkvY2xpZW50JztcbmltcG9ydCB7IEFsZXJ0U2VydmljZSwgZ2V0dGV4dCB9IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBFY29zeXN0ZW1TZXJ2aWNlIH0gZnJvbSAnLi9lY29zeXN0ZW0uc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2M4eS11cGxvYWQtYXJjaGl2ZScsXG4gIHRlbXBsYXRlVXJsOiAndXBsb2FkLWFyY2hpdmUuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIFVwbG9hZEFyY2hpdmVDb21wb25lbnQge1xuICBASW5wdXQoKSBhcHBsaWNhdGlvbjogSUFwcGxpY2F0aW9uO1xuICBASW5wdXQoKSB1cGxvYWROZXdWZXJzaW9uID0gZmFsc2U7XG4gIEBJbnB1dCgpIHByZVVwbG9hZENhbGxiYWNrOiAoKSA9PiBQcm9taXNlPGFueT47XG4gIEBPdXRwdXQoKSBhcHBsaWNhdGlvbkNoYW5nZTogRXZlbnRFbWl0dGVyPElBcHBsaWNhdGlvbj4gPSBuZXcgRXZlbnRFbWl0dGVyPElBcHBsaWNhdGlvbj4oKTtcbiAgQE91dHB1dCgpIHJlZnJlc2g6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIGFyY2hpdmVzOiBJQXBwbGljYXRpb25CaW5hcnlbXSA9IFtdO1xuICB0b0FjdGl2YXRlVmVyc2lvbklkOiBzdHJpbmc7XG4gIGxhc3Q6IElBcHBsaWNhdGlvbkJpbmFyeTtcbiAgaXNMb2FkaW5nOiBib29sZWFuO1xuICBmaWxlTGlzdDogRmlsZUxpc3Q7XG4gIHVwbG9hZEluUHJvZ3Jlc3MgPSBmYWxzZTtcbiAgY2FuUmVhY3RpdmF0ZSA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZWNvc3lzdGVtU2VydmljZTogRWNvc3lzdGVtU2VydmljZSwgcHJpdmF0ZSBhbGVydFNlcnZpY2U6IEFsZXJ0U2VydmljZSkge31cblxuICBnZXQgdXBsb2FkUHJvZ3Jlc3MoKTogQmVoYXZpb3JTdWJqZWN0PG51bWJlcj4ge1xuICAgIHJldHVybiB0aGlzLmVjb3N5c3RlbVNlcnZpY2UucHJvZ3Jlc3M7XG4gIH1cblxuICBhc3luYyBvbkZpbGVEcm9wcGVkRXZlbnQoZXZlbnQpIHtcbiAgICBpZiAodGhpcy5wcmVVcGxvYWRDYWxsYmFjaykge1xuICAgICAgdHJ5IHtcbiAgICAgICAgYXdhaXQgdGhpcy5wcmVVcGxvYWRDYWxsYmFjaygpO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAvLyBkbyBub3RoaW5nLCBpLmUuIHdoZW4gY29uZmlybSBtb2RhbCBjYW5jZWxzIGFuZCB0aHJvd3MgdW5kZWZpbmVkXG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKGV2ZW50ICYmIGV2ZW50Lmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IGZpbGUgPSBldmVudFswXS5maWxlO1xuICAgICAgdGhpcy5vbkZpbGUoZmlsZSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBvbkZpbGUoZmlsZTogRmlsZSk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCB0aGlzLmVjb3N5c3RlbVNlcnZpY2UudmFsaWRhdGVBcmNoaXZlVG9BcHBDb21wYXRpYmlsaXR5KGZpbGUsIHRoaXMuYXBwbGljYXRpb24pO1xuICAgICAgY29uc3QgaXNDdXN0b21NaWNyb3NlcnZpY2UgPSB0aGlzLmVjb3N5c3RlbVNlcnZpY2UuaXNDdXN0b21NaWNyb3NlcnZpY2UodGhpcy5hcHBsaWNhdGlvbik7XG4gICAgICB0aGlzLmFyY2hpdmVzID0gaXNDdXN0b21NaWNyb3NlcnZpY2VcbiAgICAgICAgPyBbXVxuICAgICAgICA6IGF3YWl0IHRoaXMuZWNvc3lzdGVtU2VydmljZS5saXN0QXJjaGl2ZXModGhpcy5hcHBsaWNhdGlvbi5pZCk7XG4gICAgICB0aGlzLmFyY2hpdmVzLnNvcnQoKGEsIGIpID0+IHtcbiAgICAgICAgcmV0dXJuIChuZXcgRGF0ZShiLmNyZWF0ZWQpIGFzIGFueSkgLSAobmV3IERhdGUoYS5jcmVhdGVkKSBhcyBhbnkpO1xuICAgICAgfSk7XG4gICAgICB0aGlzLnVwbG9hZEluUHJvZ3Jlc3MgPSB0cnVlO1xuICAgICAgdGhpcy51cGxvYWRQcm9ncmVzcy5uZXh0KDApO1xuICAgICAgaWYgKHRoaXMuYXJjaGl2ZXMubGVuZ3RoID09PSA2ICYmICFpc0N1c3RvbU1pY3Jvc2VydmljZSkge1xuICAgICAgICBhd2FpdCB0aGlzLmVjb3N5c3RlbVNlcnZpY2UucmVtb3ZlT2xkZXN0QXJjaGl2ZSh0aGlzLmFwcGxpY2F0aW9uLCB0aGlzLmFyY2hpdmVzKTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IGFwcCA9IGF3YWl0IHRoaXMuZWNvc3lzdGVtU2VydmljZS51cGxvYWRBcmNoaXZlVG9BcHAoXG4gICAgICAgIGZpbGUsXG4gICAgICAgIHRoaXMuYXBwbGljYXRpb24sXG4gICAgICAgIHRoaXMudXBsb2FkTmV3VmVyc2lvblxuICAgICAgKTtcbiAgICAgIHRoaXMuYXBwbGljYXRpb25DaGFuZ2UuZW1pdChhcHApO1xuICAgICAgdGhpcy51cGxvYWRQcm9ncmVzcy5uZXh0KDEwMCk7XG4gICAgICB0aGlzLnVwbG9hZEluUHJvZ3Jlc3MgPSBmYWxzZTtcbiAgICAgIHRoaXMucmVmcmVzaC5lbWl0KCk7XG4gICAgICBpZiAodGhpcy51cGxvYWROZXdWZXJzaW9uKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLnN1Y2Nlc3MoZ2V0dGV4dCgnQXJjaGl2ZSB1cGxvYWRlZCBhbmQgYWN0aXZhdGVkLicpKTtcbiAgICB9IGNhdGNoIChleCkge1xuICAgICAgdGhpcy51cGxvYWRJblByb2dyZXNzID0gZmFsc2U7XG4gICAgICB0aGlzLmVjb3N5c3RlbVNlcnZpY2UuYWxlcnRFcnJvcihleCk7XG4gICAgfVxuICB9XG59XG4iLCI8Yzh5LWRyb3AtYXJlYVxuICAoZHJvcHBlZCk9XCJvbkZpbGVEcm9wcGVkRXZlbnQoJGV2ZW50KVwiXG4gIFthY2NlcHRdPVwiJy56aXAnXCJcbiAgW2xvYWRpbmddPVwidXBsb2FkSW5Qcm9ncmVzc1wiXG4gIFttYXhBbGxvd2VkRmlsZXNdPVwiMVwiXG4gIFttZXNzYWdlXT1cIidVcGxvYWQgYSAqLnppcCBmaWxlJyB8IHRyYW5zbGF0ZVwiXG4gIFtwcm9ncmVzc109XCJ1cGxvYWRQcm9ncmVzcyB8IGFzeW5jXCJcbiAgW2ZvcmNlSGlkZUxpc3RdPVwidHJ1ZVwiXG4gIGNsYXNzPVwiZHJvcC1hcmVhLXNtXCJcbj5cbjwvYzh5LWRyb3AtYXJlYT5cbiJdfQ==
85
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkLWFyY2hpdmUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vZWNvc3lzdGVtL3NoYXJlZC91cGxvYWQtYXJjaGl2ZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9lY29zeXN0ZW0vc2hhcmVkL3VwbG9hZC1hcmNoaXZlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdkUsT0FBTyxFQUFFLFlBQVksRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUU1RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7Ozs7QUFNdkQsTUFBTSxPQUFPLHNCQUFzQjtJQWVqQyxZQUFvQixnQkFBa0MsRUFBVSxZQUEwQjtRQUF0RSxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQVUsaUJBQVksR0FBWixZQUFZLENBQWM7UUFiakYscUJBQWdCLEdBQUcsS0FBSyxDQUFDO1FBRXhCLHNCQUFpQixHQUErQixJQUFJLFlBQVksRUFBZ0IsQ0FBQztRQUNqRixZQUFPLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7UUFFMUQsYUFBUSxHQUF5QixFQUFFLENBQUM7UUFLcEMscUJBQWdCLEdBQUcsS0FBSyxDQUFDO1FBQ3pCLGtCQUFhLEdBQUcsS0FBSyxDQUFDO0lBRXVFLENBQUM7SUFFOUYsSUFBSSxjQUFjO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQztJQUN4QyxDQUFDO0lBRUQsS0FBSyxDQUFDLGtCQUFrQixDQUFDLEtBQUs7UUFDNUIsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUU7WUFDMUIsSUFBSTtnQkFDRixNQUFNLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO2FBQ2hDO1lBQUMsT0FB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QTFCLE1BQU07Z0JBQ0csT0FBTztzQkFBaEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJQXBwbGljYXRpb24sIElBcHBsaWNhdGlvbkJpbmFyeSB9IGZyb20gJ0BjOHkvY2xpZW50JztcbmltcG9ydCB7IEFsZXJ0U2VydmljZSwgZ2V0dGV4dCB9IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBFY29zeXN0ZW1TZXJ2aWNlIH0gZnJvbSAnLi9lY29zeXN0ZW0uc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2M4eS11cGxvYWQtYXJjaGl2ZScsXG4gIHRlbXBsYXRlVXJsOiAndXBsb2FkLWFyY2hpdmUuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIFVwbG9hZEFyY2hpdmVDb21wb25lbnQge1xuICBASW5wdXQoKSBhcHBsaWNhdGlvbjogSUFwcGxpY2F0aW9uO1xuICBASW5wdXQoKSB1cGxvYWROZXdWZXJzaW9uID0gZmFsc2U7XG4gIEBJbnB1dCgpIHByZVVwbG9hZENhbGxiYWNrOiAoKSA9PiBQcm9taXNlPGFueT47XG4gIEBPdXRwdXQoKSBhcHBsaWNhdGlvbkNoYW5nZTogRXZlbnRFbWl0dGVyPElBcHBsaWNhdGlvbj4gPSBuZXcgRXZlbnRFbWl0dGVyPElBcHBsaWNhdGlvbj4oKTtcbiAgQE91dHB1dCgpIHJlZnJlc2g6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIGFyY2hpdmVzOiBJQXBwbGljYXRpb25CaW5hcnlbXSA9IFtdO1xuICB0b0FjdGl2YXRlVmVyc2lvbklkOiBzdHJpbmc7XG4gIGxhc3Q6IElBcHBsaWNhdGlvbkJpbmFyeTtcbiAgaXNMb2FkaW5nOiBib29sZWFuO1xuICBmaWxlTGlzdDogRmlsZUxpc3Q7XG4gIHVwbG9hZEluUHJvZ3Jlc3MgPSBmYWxzZTtcbiAgY2FuUmVhY3RpdmF0ZSA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZWNvc3lzdGVtU2VydmljZTogRWNvc3lzdGVtU2VydmljZSwgcHJpdmF0ZSBhbGVydFNlcnZpY2U6IEFsZXJ0U2VydmljZSkge31cblxuICBnZXQgdXBsb2FkUHJvZ3Jlc3MoKTogQmVoYXZpb3JTdWJqZWN0PG51bWJlcj4ge1xuICAgIHJldHVybiB0aGlzLmVjb3N5c3RlbVNlcnZpY2UucHJvZ3Jlc3M7XG4gIH1cblxuICBhc3luYyBvbkZpbGVEcm9wcGVkRXZlbnQoZXZlbnQpIHtcbiAgICBpZiAodGhpcy5wcmVVcGxvYWRDYWxsYmFjaykge1xuICAgICAgdHJ5IHtcbiAgICAgICAgYXdhaXQgdGhpcy5wcmVVcGxvYWRDYWxsYmFjaygpO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAvLyBkbyBub3RoaW5nLCBpLmUuIHdoZW4gY29uZmlybSBtb2RhbCBjYW5jZWxzIGFuZCB0aHJvd3MgdW5kZWZpbmVkXG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKGV2ZW50ICYmIGV2ZW50Lmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IGZpbGUgPSBldmVudFswXS5maWxlO1xuICAgICAgdGhpcy5vbkZpbGUoZmlsZSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBvbkZpbGUoZmlsZTogRmlsZSk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCB0aGlzLmVjb3N5c3RlbVNlcnZpY2UudmFsaWRhdGVBcmNoaXZlVG9BcHBDb21wYXRpYmlsaXR5KGZpbGUsIHRoaXMuYXBwbGljYXRpb24pO1xuICAgICAgY29uc3QgaXNDdXN0b21NaWNyb3NlcnZpY2UgPSB0aGlzLmVjb3N5c3RlbVNlcnZpY2UuaXNDdXN0b21NaWNyb3NlcnZpY2UodGhpcy5hcHBsaWNhdGlvbik7XG4gICAgICBjb25zdCBpc1BhY2thZ2UgPSB0aGlzLmVjb3N5c3RlbVNlcnZpY2UuaXNQYWNrYWdlKHRoaXMuYXBwbGljYXRpb24pO1xuICAgICAgdGhpcy5hcmNoaXZlcyA9IGlzQ3VzdG9tTWljcm9zZXJ2aWNlXG4gICAgICAgID8gW11cbiAgICAgICAgOiBhd2FpdCB0aGlzLmVjb3N5c3RlbVNlcnZpY2UubGlzdEFyY2hpdmVzKHRoaXMuYXBwbGljYXRpb24uaWQpO1xuICAgICAgdGhpcy5hcmNoaXZlcy5zb3J0KChhLCBiKSA9PiB7XG4gICAgICAgIHJldHVybiAobmV3IERhdGUoYi5jcmVhdGVkKSBhcyBhbnkpIC0gKG5ldyBEYXRlKGEuY3JlYXRlZCkgYXMgYW55KTtcbiAgICAgIH0pO1xuICAgICAgdGhpcy51cGxvYWRJblByb2dyZXNzID0gdHJ1ZTtcbiAgICAgIHRoaXMudXBsb2FkUHJvZ3Jlc3MubmV4dCgwKTtcbiAgICAgIGlmICh0aGlzLmFyY2hpdmVzLmxlbmd0aCA9PT0gNiAmJiAhaXNDdXN0b21NaWNyb3NlcnZpY2UgJiYgIWlzUGFja2FnZSkge1xuICAgICAgICBhd2FpdCB0aGlzLmVjb3N5c3RlbVNlcnZpY2UucmVtb3ZlT2xkZXN0QXJjaGl2ZSh0aGlzLmFwcGxpY2F0aW9uLCB0aGlzLmFyY2hpdmVzKTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IGFwcCA9IGF3YWl0IHRoaXMuZWNvc3lzdGVtU2VydmljZS51cGxvYWRBcmNoaXZlVG9BcHAoXG4gICAgICAgIGZpbGUsXG4gICAgICAgIHRoaXMuYXBwbGljYXRpb24sXG4gICAgICAgIHRoaXMudXBsb2FkTmV3VmVyc2lvblxuICAgICAgKTtcbiAgICAgIHRoaXMuYXBwbGljYXRpb25DaGFuZ2UuZW1pdChhcHApO1xuICAgICAgdGhpcy51cGxvYWRQcm9ncmVzcy5uZXh0KDEwMCk7XG4gICAgICB0aGlzLnVwbG9hZEluUHJvZ3Jlc3MgPSBmYWxzZTtcbiAgICAgIHRoaXMucmVmcmVzaC5lbWl0KCk7XG4gICAgICBpZiAodGhpcy51cGxvYWROZXdWZXJzaW9uKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLnN1Y2Nlc3MoZ2V0dGV4dCgnQXJjaGl2ZSB1cGxvYWRlZCBhbmQgYWN0aXZhdGVkLicpKTtcbiAgICB9IGNhdGNoIChleCkge1xuICAgICAgdGhpcy51cGxvYWRJblByb2dyZXNzID0gZmFsc2U7XG4gICAgICB0aGlzLmVjb3N5c3RlbVNlcnZpY2UuYWxlcnRFcnJvcihleCk7XG4gICAgfVxuICB9XG59XG4iLCI8Yzh5LWRyb3AtYXJlYVxuICAoZHJvcHBlZCk9XCJvbkZpbGVEcm9wcGVkRXZlbnQoJGV2ZW50KVwiXG4gIFthY2NlcHRdPVwiJy56aXAnXCJcbiAgW2xvYWRpbmddPVwidXBsb2FkSW5Qcm9ncmVzc1wiXG4gIFttYXhBbGxvd2VkRmlsZXNdPVwiMVwiXG4gIFttZXNzYWdlXT1cIidVcGxvYWQgYSAqLnppcCBmaWxlJyB8IHRyYW5zbGF0ZVwiXG4gIFtwcm9ncmVzc109XCJ1cGxvYWRQcm9ncmVzcyB8IGFzeW5jXCJcbiAgW2ZvcmNlSGlkZUxpc3RdPVwidHJ1ZVwiXG4gIGNsYXNzPVwiZHJvcC1hcmVhLXNtXCJcbj5cbjwvYzh5LWRyb3AtYXJlYT5cbiJdfQ==
@@ -1607,6 +1607,7 @@ class UploadArchiveComponent {
1607
1607
  try {
1608
1608
  yield this.ecosystemService.validateArchiveToAppCompatibility(file, this.application);
1609
1609
  const isCustomMicroservice = this.ecosystemService.isCustomMicroservice(this.application);
1610
+ const isPackage = this.ecosystemService.isPackage(this.application);
1610
1611
  this.archives = isCustomMicroservice
1611
1612
  ? []
1612
1613
  : yield this.ecosystemService.listArchives(this.application.id);
@@ -1615,7 +1616,7 @@ class UploadArchiveComponent {
1615
1616
  });
1616
1617
  this.uploadInProgress = true;
1617
1618
  this.uploadProgress.next(0);
1618
- if (this.archives.length === 6 && !isCustomMicroservice) {
1619
+ if (this.archives.length === 6 && !isCustomMicroservice && !isPackage) {
1619
1620
  yield this.ecosystemService.removeOldestArchive(this.application, this.archives);
1620
1621
  }
1621
1622
  const app = yield this.ecosystemService.uploadArchiveToApp(file, this.application, this.uploadNewVersion);