@covalent/flavored-markdown 4.16.0-beta.2 → 4.16.0

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,7 +1,7 @@
1
1
  import { Component, Input } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
- import * as i1 from "@angular/common";
4
- import * as i2 from "@angular/material/list";
3
+ import * as i1 from "@angular/material/list";
4
+ import * as i2 from "@angular/common";
5
5
  import * as i3 from "@angular/material/core";
6
6
  import * as i4 from "@angular/material/divider";
7
7
  function TdFlavoredListComponent_ng_template_1_p_3_Template(rf, ctx) { if (rf & 1) {
@@ -17,7 +17,8 @@ function TdFlavoredListComponent_ng_template_1_mat_divider_4_Template(rf, ctx) {
17
17
  i0.ɵɵelement(0, "mat-divider");
18
18
  } }
19
19
  function TdFlavoredListComponent_ng_template_1_Template(rf, ctx) { if (rf & 1) {
20
- i0.ɵɵelementStart(0, "mat-list-item")(1, "h4", 1);
20
+ i0.ɵɵelementStart(0, "mat-list-item");
21
+ i0.ɵɵelementStart(1, "h4", 1);
21
22
  i0.ɵɵtext(2);
22
23
  i0.ɵɵelementEnd();
23
24
  i0.ɵɵtemplate(3, TdFlavoredListComponent_ng_template_1_p_3_Template, 2, 1, "p", 2);
@@ -47,13 +48,13 @@ TdFlavoredListComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: TdF
47
48
  i0.ɵɵattribute("dense", ctx.dense ? true : null);
48
49
  i0.ɵɵadvance(1);
49
50
  i0.ɵɵproperty("ngForOf", ctx.lines);
50
- } }, dependencies: [i1.NgForOf, i1.NgIf, i2.MatList, i2.MatListItem, i3.MatLine, i4.MatDivider] });
51
+ } }, directives: [i1.MatList, i2.NgForOf, i1.MatListItem, i3.MatLine, i2.NgIf, i4.MatDivider], styles: [""] });
51
52
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TdFlavoredListComponent, [{
52
53
  type: Component,
53
- args: [{ selector: 'td-cfm-list', template: "<mat-list [attr.dense]=\"dense ? true : null\">\n <ng-template let-line let-last=\"last\" ngFor [ngForOf]=\"lines\">\n <mat-list-item>\n <h4 matLine>\n {{ line.line }}\n </h4>\n <p *ngFor=\"let subline of line.sublines\" matLine>\n {{ subline }}\n </p>\n <mat-divider *ngIf=\"!last\"></mat-divider>\n </mat-list-item>\n </ng-template>\n</mat-list>\n" }]
54
+ args: [{ selector: 'td-cfm-list', template: "<mat-list [attr.dense]=\"dense ? true : null\">\n <ng-template let-line let-last=\"last\" ngFor [ngForOf]=\"lines\">\n <mat-list-item>\n <h4 matLine>\n {{ line.line }}\n </h4>\n <p *ngFor=\"let subline of line.sublines\" matLine>\n {{ subline }}\n </p>\n <mat-divider *ngIf=\"!last\"></mat-divider>\n </mat-list-item>\n </ng-template>\n</mat-list>\n", styles: [""] }]
54
55
  }], null, { lines: [{
55
56
  type: Input
56
57
  }], dense: [{
57
58
  type: Input
58
59
  }] }); })();
59
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2ZtLWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9tYXJrZG93bi1mbGF2b3JlZC9zcmMvbGliL2NmbS1saXN0L2NmbS1saXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbWFya2Rvd24tZmxhdm9yZWQvc3JjL2xpYi9jZm0tbGlzdC9jZm0tbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7OztJQ00zQyw0QkFBaUQ7SUFDL0MsWUFDRjtJQUFBLGlCQUFJOzs7SUFERixlQUNGO0lBREUsMkNBQ0Y7OztJQUNBLDhCQUF5Qzs7O0lBUDNDLHFDQUFlLFlBQUE7SUFFWCxZQUNGO0lBQUEsaUJBQUs7SUFDTCxrRkFFSTtJQUNKLHNHQUF5QztJQUMzQyxpQkFBZ0I7Ozs7SUFOWixlQUNGO0lBREUsNkNBQ0Y7SUFDdUIsZUFBZ0I7SUFBaEIsMENBQWdCO0lBR3pCLGVBQVc7SUFBWCwrQkFBVzs7QURHL0IsTUFBTSxPQUFPLHVCQUF1QjtJQUxwQztRQU9XLFVBQUssR0FBRyxLQUFLLENBQUM7S0FDeEI7OzhGQUhZLHVCQUF1QjswRUFBdkIsdUJBQXVCO1FDWnBDLGdDQUE2QztRQUMzQyx3RkFVYztRQUNoQixpQkFBVzs7UUFaRCxnREFBa0M7UUFDRSxlQUFpQjtRQUFqQixtQ0FBaUI7O3VGRFdsRCx1QkFBdUI7Y0FMbkMsU0FBUzsyQkFDRSxhQUFhO2dCQUtkLEtBQUs7a0JBQWIsS0FBSztZQUNHLEtBQUs7a0JBQWIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IGludGVyZmFjZSBJRmxhdm9yZWRMaXN0SXRlbSB7XG4gIGxpbmU6IHN0cmluZztcbiAgc3VibGluZXM/OiBzdHJpbmdbXTtcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGQtY2ZtLWxpc3QnLFxuICBzdHlsZVVybHM6IFsnLi9jZm0tbGlzdC5jb21wb25lbnQuc2NzcyddLFxuICB0ZW1wbGF0ZVVybDogJy4vY2ZtLWxpc3QuY29tcG9uZW50Lmh0bWwnLFxufSlcbmV4cG9ydCBjbGFzcyBUZEZsYXZvcmVkTGlzdENvbXBvbmVudCB7XG4gIEBJbnB1dCgpIGxpbmVzITogSUZsYXZvcmVkTGlzdEl0ZW1bXTtcbiAgQElucHV0KCkgZGVuc2UgPSBmYWxzZTtcbn1cbiIsIjxtYXQtbGlzdCBbYXR0ci5kZW5zZV09XCJkZW5zZSA/IHRydWUgOiBudWxsXCI+XG4gIDxuZy10ZW1wbGF0ZSBsZXQtbGluZSBsZXQtbGFzdD1cImxhc3RcIiBuZ0ZvciBbbmdGb3JPZl09XCJsaW5lc1wiPlxuICAgIDxtYXQtbGlzdC1pdGVtPlxuICAgICAgPGg0IG1hdExpbmU+XG4gICAgICAgIHt7IGxpbmUubGluZSB9fVxuICAgICAgPC9oND5cbiAgICAgIDxwICpuZ0Zvcj1cImxldCBzdWJsaW5lIG9mIGxpbmUuc3VibGluZXNcIiBtYXRMaW5lPlxuICAgICAgICB7eyBzdWJsaW5lIH19XG4gICAgICA8L3A+XG4gICAgICA8bWF0LWRpdmlkZXIgKm5nSWY9XCIhbGFzdFwiPjwvbWF0LWRpdmlkZXI+XG4gICAgPC9tYXQtbGlzdC1pdGVtPlxuICA8L25nLXRlbXBsYXRlPlxuPC9tYXQtbGlzdD5cbiJdfQ==
60
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2ZtLWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9tYXJrZG93bi1mbGF2b3JlZC9zcmMvbGliL2NmbS1saXN0L2NmbS1saXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbWFya2Rvd24tZmxhdm9yZWQvc3JjL2xpYi9jZm0tbGlzdC9jZm0tbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7OztJQ00zQyw0QkFBaUQ7SUFDL0MsWUFDRjtJQUFBLGlCQUFJOzs7SUFERixlQUNGO0lBREUsMkNBQ0Y7OztJQUNBLDhCQUF5Qzs7O0lBUDNDLHFDQUFlO0lBQ2IsNkJBQVk7SUFDVixZQUNGO0lBQUEsaUJBQUs7SUFDTCxrRkFFSTtJQUNKLHNHQUF5QztJQUMzQyxpQkFBZ0I7Ozs7SUFOWixlQUNGO0lBREUsNkNBQ0Y7SUFDdUIsZUFBZ0I7SUFBaEIsMENBQWdCO0lBR3pCLGVBQVc7SUFBWCwrQkFBVzs7QURHL0IsTUFBTSxPQUFPLHVCQUF1QjtJQUxwQztRQU9XLFVBQUssR0FBRyxLQUFLLENBQUM7S0FDeEI7OzhGQUhZLHVCQUF1QjswRUFBdkIsdUJBQXVCO1FDWnBDLGdDQUE2QztRQUMzQyx3RkFVYztRQUNoQixpQkFBVzs7UUFaRCxnREFBa0M7UUFDRSxlQUFpQjtRQUFqQixtQ0FBaUI7O3VGRFdsRCx1QkFBdUI7Y0FMbkMsU0FBUzsyQkFDRSxhQUFhO2dCQUtkLEtBQUs7a0JBQWIsS0FBSztZQUNHLEtBQUs7a0JBQWIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IGludGVyZmFjZSBJRmxhdm9yZWRMaXN0SXRlbSB7XG4gIGxpbmU6IHN0cmluZztcbiAgc3VibGluZXM/OiBzdHJpbmdbXTtcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGQtY2ZtLWxpc3QnLFxuICBzdHlsZVVybHM6IFsnLi9jZm0tbGlzdC5jb21wb25lbnQuc2NzcyddLFxuICB0ZW1wbGF0ZVVybDogJy4vY2ZtLWxpc3QuY29tcG9uZW50Lmh0bWwnLFxufSlcbmV4cG9ydCBjbGFzcyBUZEZsYXZvcmVkTGlzdENvbXBvbmVudCB7XG4gIEBJbnB1dCgpIGxpbmVzITogSUZsYXZvcmVkTGlzdEl0ZW1bXTtcbiAgQElucHV0KCkgZGVuc2UgPSBmYWxzZTtcbn1cbiIsIjxtYXQtbGlzdCBbYXR0ci5kZW5zZV09XCJkZW5zZSA/IHRydWUgOiBudWxsXCI+XG4gIDxuZy10ZW1wbGF0ZSBsZXQtbGluZSBsZXQtbGFzdD1cImxhc3RcIiBuZ0ZvciBbbmdGb3JPZl09XCJsaW5lc1wiPlxuICAgIDxtYXQtbGlzdC1pdGVtPlxuICAgICAgPGg0IG1hdExpbmU+XG4gICAgICAgIHt7IGxpbmUubGluZSB9fVxuICAgICAgPC9oND5cbiAgICAgIDxwICpuZ0Zvcj1cImxldCBzdWJsaW5lIG9mIGxpbmUuc3VibGluZXNcIiBtYXRMaW5lPlxuICAgICAgICB7eyBzdWJsaW5lIH19XG4gICAgICA8L3A+XG4gICAgICA8bWF0LWRpdmlkZXIgKm5nSWY9XCIhbGFzdFwiPjwvbWF0LWRpdmlkZXI+XG4gICAgPC9tYXQtbGlzdC1pdGVtPlxuICA8L25nLXRlbXBsYXRlPlxuPC9tYXQtbGlzdD5cbiJdfQ==
@@ -13,7 +13,7 @@ function TdFlavoredMarkdownLoaderComponent_mat_progress_bar_0_Template(rf, ctx)
13
13
  function TdFlavoredMarkdownLoaderComponent_td_flavored_markdown_1_Template(rf, ctx) { if (rf & 1) {
14
14
  const _r3 = i0.ɵɵgetCurrentView();
15
15
  i0.ɵɵelementStart(0, "td-flavored-markdown", 3);
16
- i0.ɵɵlistener("contentReady", function TdFlavoredMarkdownLoaderComponent_td_flavored_markdown_1_Template_td_flavored_markdown_contentReady_0_listener() { i0.ɵɵrestoreView(_r3); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.contentReady.emit()); })("buttonClicked", function TdFlavoredMarkdownLoaderComponent_td_flavored_markdown_1_Template_td_flavored_markdown_buttonClicked_0_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r4 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r4.buttonClicked.emit($event)); });
16
+ i0.ɵɵlistener("contentReady", function TdFlavoredMarkdownLoaderComponent_td_flavored_markdown_1_Template_td_flavored_markdown_contentReady_0_listener() { i0.ɵɵrestoreView(_r3); const ctx_r2 = i0.ɵɵnextContext(); return ctx_r2.contentReady.emit(); })("buttonClicked", function TdFlavoredMarkdownLoaderComponent_td_flavored_markdown_1_Template_td_flavored_markdown_buttonClicked_0_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r4 = i0.ɵɵnextContext(); return ctx_r4.buttonClicked.emit($event); });
17
17
  i0.ɵɵelementEnd();
18
18
  } if (rf & 2) {
19
19
  const ctx_r1 = i0.ɵɵnextContext();
@@ -85,7 +85,7 @@ TdFlavoredMarkdownLoaderComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({
85
85
  i0.ɵɵproperty("ngIf", ctx.loading);
86
86
  i0.ɵɵadvance(1);
87
87
  i0.ɵɵproperty("ngIf", !ctx.loading);
88
- } }, dependencies: [i2.NgClass, i2.NgIf, i3.MatProgressBar, i4.TdFlavoredMarkdownComponent], styles: ["[_nghost-%COMP%]{display:block}.sticky[_ngcontent-%COMP%]{position:absolute;top:0}.delay[_ngcontent-%COMP%]{animation:delay-animation;animation-duration:.6s}@keyframes delay-animation{0%{opacity:0}99%{opacity:0}to{opacity:1}}"], changeDetection: 0 });
88
+ } }, directives: [i2.NgIf, i3.MatProgressBar, i2.NgClass, i4.TdFlavoredMarkdownComponent], styles: ["[_nghost-%COMP%]{display:block}.sticky[_ngcontent-%COMP%]{position:absolute;top:0}.delay[_ngcontent-%COMP%]{animation:delay-animation;animation-duration:.6s}@keyframes delay-animation{0%{opacity:0}99%{opacity:0}to{opacity:1}}"], changeDetection: 0 });
89
89
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TdFlavoredMarkdownLoaderComponent, [{
90
90
  type: Component,
91
91
  args: [{ selector: 'td-flavored-markdown-loader', changeDetection: ChangeDetectionStrategy.OnPush, template: "<mat-progress-bar\n [ngClass]=\"'delay'\"\n *ngIf=\"loading\"\n mode=\"indeterminate\"\n color=\"accent\"\n class=\"sticky\"\n></mat-progress-bar>\n<td-flavored-markdown\n *ngIf=\"!loading\"\n [content]=\"content\"\n [hostedUrl]=\"url ?? ''\"\n [anchor]=\"anchor ?? ''\"\n [copyCodeToClipboard]=\"copyCodeToClipboard\"\n [copyCodeTooltips]=\"copyCodeTooltips\"\n [useCfmList]=\"useCfmList\"\n (contentReady)=\"contentReady.emit()\"\n (buttonClicked)=\"buttonClicked.emit($event)\"\n></td-flavored-markdown>\n", styles: [":host{display:block}.sticky{position:absolute;top:0}.delay{animation:delay-animation;animation-duration:.6s}@keyframes delay-animation{0%{opacity:0}99%{opacity:0}to{opacity:1}}\n"] }]
@@ -108,4 +108,4 @@ TdFlavoredMarkdownLoaderComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({
108
108
  }], buttonClicked: [{
109
109
  type: Output
110
110
  }] }); })();
111
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxhdm9yZWQtbWFya2Rvd24tbG9hZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbWFya2Rvd24tZmxhdm9yZWQvc3JjL2xpYi9mbGF2b3JlZC1tYXJrZG93bi1sb2FkZXIvZmxhdm9yZWQtbWFya2Rvd24tbG9hZGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbWFya2Rvd24tZmxhdm9yZWQvc3JjL2xpYi9mbGF2b3JlZC1tYXJrZG93bi1sb2FkZXIvZmxhdm9yZWQtbWFya2Rvd24tbG9hZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsS0FBSyxFQUNMLGlCQUFpQixFQUdqQixNQUFNLEVBQ04sWUFBWSxFQUNaLHVCQUF1QixHQUN4QixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7Ozs7OztJQ1Y3RCxzQ0FNb0I7O0lBTGxCLGlDQUFtQjs7OztJQU1yQiwrQ0FVQztJQUZDLDJOQUFnQixlQUFBLDBCQUFtQixDQUFBLElBQUMsc05BQ25CLGVBQUEsaUNBQTBCLENBQUEsSUFEUDtJQUVyQyxpQkFBdUI7Ozs7O0lBUnRCLHdDQUFtQixzRkFBQSxzRkFBQSxtREFBQSw2Q0FBQSxpQ0FBQTs7QURLckIsNENBQTRDO0FBUTVDLE1BQU0sT0FBTyxpQ0FBaUM7SUEwRDVDLFlBQ1Usa0JBQXFDLEVBQ3JDLHlCQUFrRDtRQURsRCx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW1CO1FBQ3JDLDhCQUF5QixHQUF6Qix5QkFBeUIsQ0FBeUI7UUF6QzVEOzs7OztXQUtHO1FBQ00sd0JBQW1CLEdBQUksS0FBSyxDQUFDO1FBRXRDOzs7O1dBSUc7UUFDTSxxQkFBZ0IsR0FBdUIsRUFBRSxDQUFDO1FBRW5EOzs7V0FHRztRQUNNLGVBQVUsR0FBSSxLQUFLLENBQUM7UUFFN0I7OztXQUdHO1FBQ08saUJBQVksR0FBdUIsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUVoRTs7O1dBR0c7UUFDTyxlQUFVLEdBQXdCLElBQUksWUFBWSxFQUFFLENBQUM7UUFFckQsa0JBQWEsR0FDckIsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUdyQixZQUFPLEdBQUcsSUFBSSxDQUFDO0lBS1osQ0FBQztJQUVKLFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxJQUFJLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxPQUFPLENBQUMsYUFBYSxDQUFDLEVBQUU7WUFDNUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1NBQ3JCO0lBQ0gsQ0FBQztJQUVELEtBQUssQ0FBQyxZQUFZO1FBQ2hCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUN2QyxJQUFJO1lBQ0YsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxJQUFJLENBQ3RELElBQUksQ0FBQyxHQUFHLElBQUksRUFBRSxFQUNkLElBQUksQ0FBQyxXQUFXLENBQ2pCLENBQUM7U0FDSDtRQUFDLE9BQU8sS0FBSyxFQUFFO1lBQ2QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBYyxDQUFDLENBQUM7U0FDdEM7Z0JBQVM7WUFDUixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztZQUNyQixJQUFJLENBQUMsa0JBQWtCLENBQUMsWUFBWSxFQUFFLENBQUM7U0FDeEM7SUFDSCxDQUFDOztrSEFuRlUsaUNBQWlDO29GQUFqQyxpQ0FBaUM7UUN0QjlDLDRHQU1vQjtRQUNwQixvSEFVd0I7O1FBZnJCLGtDQUFhO1FBTWIsZUFBYztRQUFkLG1DQUFjOzt1RkRjSixpQ0FBaUM7Y0FON0MsU0FBUzsyQkFDRSw2QkFBNkIsbUJBR3RCLHVCQUF1QixDQUFDLE1BQU07MEdBT3RDLEdBQUc7a0JBQVgsS0FBSztZQU1HLFdBQVc7a0JBQW5CLEtBQUs7WUFNRyxNQUFNO2tCQUFkLEtBQUs7WUFRRyxtQkFBbUI7a0JBQTNCLEtBQUs7WUFPRyxnQkFBZ0I7a0JBQXhCLEtBQUs7WUFNRyxVQUFVO2tCQUFsQixLQUFLO1lBTUksWUFBWTtrQkFBckIsTUFBTTtZQU1HLFVBQVU7a0JBQW5CLE1BQU07WUFFRyxhQUFhO2tCQUF0QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBJbnB1dCxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIE9uQ2hhbmdlcyxcbiAgT3V0cHV0LFxuICBFdmVudEVtaXR0ZXIsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRkTWFya2Rvd25Mb2FkZXJTZXJ2aWNlIH0gZnJvbSAnQGNvdmFsZW50L21hcmtkb3duJztcbmltcG9ydCB7IElUZEZsYXZvcmVkTWFya2Rvd25CdXR0b25DbGlja0V2ZW50IH0gZnJvbSAnLi4vZmxhdm9yZWQtbWFya2Rvd24uY29tcG9uZW50JztcbmltcG9ydCB7IElDb3B5Q29kZVRvb2x0aXBzIH0gZnJvbSAnQGNvdmFsZW50L2hpZ2hsaWdodCc7XG5cbi8vIFRPRE86IG1ha2UgYSB0ZC1tYXJrZG93bi1sb2FkZXIgY29tcG9uZW50XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RkLWZsYXZvcmVkLW1hcmtkb3duLWxvYWRlcicsXG4gIHN0eWxlVXJsczogWycuL2ZsYXZvcmVkLW1hcmtkb3duLWxvYWRlci5jb21wb25lbnQuc2NzcyddLFxuICB0ZW1wbGF0ZVVybDogJy4vZmxhdm9yZWQtbWFya2Rvd24tbG9hZGVyLmNvbXBvbmVudC5odG1sJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFRkRmxhdm9yZWRNYXJrZG93bkxvYWRlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG4gIC8qKlxuICAgKiB1cmw6IHN0cmluZ1xuICAgKiBUaGUgdXJsIG9mIHRoZSBtYXJrZG93biBmaWxlLlxuICAgKi9cbiAgQElucHV0KCkgdXJsPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBodHRwT3B0aW9uczogb2JqZWN0XG4gICAqIEhUVFAgb3B0aW9ucyB0aGF0IGNhbiBiZSBwYXJ0IG9mIHRoZSByZXF1ZXN0LlxuICAgKi9cbiAgQElucHV0KCkgaHR0cE9wdGlvbnM/OiBvYmplY3Q7XG5cbiAgLyoqXG4gICAqIGFuY2hvcjogc3RyaW5nXG4gICAqIEFuY2hvciB0byBqdW1wIHRvLlxuICAgKi9cbiAgQElucHV0KCkgYW5jaG9yPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBjb3B5Q29kZVRvQ2xpcGJvYXJkPzogYm9vbGVhblxuICAgKlxuICAgKiBEaXNwbGF5IGNvcHkgYnV0dG9uIG9uIGNvZGUgc25pcHBldHMgdG8gY29weSBjb2RlIHRvIGNsaXBib2FyZC5cbiAgICpcbiAgICovXG4gIEBJbnB1dCgpIGNvcHlDb2RlVG9DbGlwYm9hcmQ/ID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIGNvcHlDb2RlVG9vbHRpcHM/OiBJQ29weUNvZGVUb29sdGlwc1xuICAgKlxuICAgKiBUb29sdGlwcyBmb3IgY29weSBidXR0b24gdG8gY29weSBhbmQgdXBvbiBjb3B5aW5nLlxuICAgKi9cbiAgQElucHV0KCkgY29weUNvZGVUb29sdGlwcz86IElDb3B5Q29kZVRvb2x0aXBzID0ge307XG5cbiAgLyoqXG4gICAqIHVzZUNmbUxpc3Q/OiBib29sZWFuID0gZmFsc2U7XG4gICAqIFVzZSBDRk0gbGlzdCBjb21wb25lbnQgaW5zdGVhZCBvZiB2YW5pbGxhIG1hcmtkb3duIGxpc3QuIFVzZWQgaW4gY292YWxlbnQgZG9jdW1lbnRhdGlvbiBhcHAuXG4gICAqL1xuICBASW5wdXQoKSB1c2VDZm1MaXN0PyA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBjb250ZW50UmVhZHk6IHZvaWRcbiAgICogRW1pdHRlZCB3aGVuIG1hcmtkb3duIHJlbmRlcmluZyBpcyBmaW5pc2hlZC5cbiAgICovXG4gIEBPdXRwdXQoKSBjb250ZW50UmVhZHk6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAvKipcbiAgICogbG9hZEZhaWxlZDogRXJyb3JcbiAgICogRW1pdHRlZCB3aGVuIGxvYWRpbmcgb2YgbWFya2Rvd24gZmlsZSBmYWlscy5cbiAgICovXG4gIEBPdXRwdXQoKSBsb2FkRmFpbGVkOiBFdmVudEVtaXR0ZXI8RXJyb3I+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIEBPdXRwdXQoKSBidXR0b25DbGlja2VkOiBFdmVudEVtaXR0ZXI8SVRkRmxhdm9yZWRNYXJrZG93bkJ1dHRvbkNsaWNrRXZlbnQ+ID1cbiAgICBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgY29udGVudCE6IHN0cmluZztcbiAgbG9hZGluZyA9IHRydWU7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByaXZhdGUgX21hcmtkb3duVXJsTG9hZGVyU2VydmljZTogVGRNYXJrZG93bkxvYWRlclNlcnZpY2VcbiAgKSB7fVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlc1sndXJsJ10gfHwgY2hhbmdlc1snaHR0cE9wdGlvbnMnXSkge1xuICAgICAgdGhpcy5sb2FkTWFya2Rvd24oKTtcbiAgICB9XG4gIH1cblxuICBhc3luYyBsb2FkTWFya2Rvd24oKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcbiAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICB0cnkge1xuICAgICAgdGhpcy5jb250ZW50ID0gYXdhaXQgdGhpcy5fbWFya2Rvd25VcmxMb2FkZXJTZXJ2aWNlLmxvYWQoXG4gICAgICAgIHRoaXMudXJsID8/ICcnLFxuICAgICAgICB0aGlzLmh0dHBPcHRpb25zXG4gICAgICApO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICB0aGlzLmxvYWRGYWlsZWQuZW1pdChlcnJvciBhcyBFcnJvcik7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuICB9XG59XG4iLCI8bWF0LXByb2dyZXNzLWJhclxuICBbbmdDbGFzc109XCInZGVsYXknXCJcbiAgKm5nSWY9XCJsb2FkaW5nXCJcbiAgbW9kZT1cImluZGV0ZXJtaW5hdGVcIlxuICBjb2xvcj1cImFjY2VudFwiXG4gIGNsYXNzPVwic3RpY2t5XCJcbj48L21hdC1wcm9ncmVzcy1iYXI+XG48dGQtZmxhdm9yZWQtbWFya2Rvd25cbiAgKm5nSWY9XCIhbG9hZGluZ1wiXG4gIFtjb250ZW50XT1cImNvbnRlbnRcIlxuICBbaG9zdGVkVXJsXT1cInVybCA/PyAnJ1wiXG4gIFthbmNob3JdPVwiYW5jaG9yID8/ICcnXCJcbiAgW2NvcHlDb2RlVG9DbGlwYm9hcmRdPVwiY29weUNvZGVUb0NsaXBib2FyZFwiXG4gIFtjb3B5Q29kZVRvb2x0aXBzXT1cImNvcHlDb2RlVG9vbHRpcHNcIlxuICBbdXNlQ2ZtTGlzdF09XCJ1c2VDZm1MaXN0XCJcbiAgKGNvbnRlbnRSZWFkeSk9XCJjb250ZW50UmVhZHkuZW1pdCgpXCJcbiAgKGJ1dHRvbkNsaWNrZWQpPVwiYnV0dG9uQ2xpY2tlZC5lbWl0KCRldmVudClcIlxuPjwvdGQtZmxhdm9yZWQtbWFya2Rvd24+XG4iXX0=
111
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxhdm9yZWQtbWFya2Rvd24tbG9hZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbWFya2Rvd24tZmxhdm9yZWQvc3JjL2xpYi9mbGF2b3JlZC1tYXJrZG93bi1sb2FkZXIvZmxhdm9yZWQtbWFya2Rvd24tbG9hZGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbWFya2Rvd24tZmxhdm9yZWQvc3JjL2xpYi9mbGF2b3JlZC1tYXJrZG93bi1sb2FkZXIvZmxhdm9yZWQtbWFya2Rvd24tbG9hZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsS0FBSyxFQUNMLGlCQUFpQixFQUdqQixNQUFNLEVBQ04sWUFBWSxFQUNaLHVCQUF1QixHQUN4QixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7Ozs7OztJQ1Y3RCxzQ0FNb0I7O0lBTGxCLGlDQUFtQjs7OztJQU1yQiwrQ0FVQztJQUZDLDJOQUFnQiwwQkFBbUIsSUFBQyxzTkFDbkIsaUNBQTBCLElBRFA7SUFFckMsaUJBQXVCOzs7OztJQVJ0Qix3Q0FBbUIsc0ZBQUEsc0ZBQUEsbURBQUEsNkNBQUEsaUNBQUE7O0FES3JCLDRDQUE0QztBQVE1QyxNQUFNLE9BQU8saUNBQWlDO0lBMEQ1QyxZQUNVLGtCQUFxQyxFQUNyQyx5QkFBa0Q7UUFEbEQsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFtQjtRQUNyQyw4QkFBeUIsR0FBekIseUJBQXlCLENBQXlCO1FBekM1RDs7Ozs7V0FLRztRQUNNLHdCQUFtQixHQUFJLEtBQUssQ0FBQztRQUV0Qzs7OztXQUlHO1FBQ00scUJBQWdCLEdBQXVCLEVBQUUsQ0FBQztRQUVuRDs7O1dBR0c7UUFDTSxlQUFVLEdBQUksS0FBSyxDQUFDO1FBRTdCOzs7V0FHRztRQUNPLGlCQUFZLEdBQXVCLElBQUksWUFBWSxFQUFFLENBQUM7UUFFaEU7OztXQUdHO1FBQ08sZUFBVSxHQUF3QixJQUFJLFlBQVksRUFBRSxDQUFDO1FBRXJELGtCQUFhLEdBQ3JCLElBQUksWUFBWSxFQUFFLENBQUM7UUFHckIsWUFBTyxHQUFHLElBQUksQ0FBQztJQUtaLENBQUM7SUFFSixXQUFXLENBQUMsT0FBc0I7UUFDaEMsSUFBSSxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksT0FBTyxDQUFDLGFBQWEsQ0FBQyxFQUFFO1lBQzVDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztTQUNyQjtJQUNILENBQUM7SUFFRCxLQUFLLENBQUMsWUFBWTtRQUNoQixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztRQUNwQixJQUFJLENBQUMsa0JBQWtCLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDdkMsSUFBSTtZQUNGLElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxJQUFJLENBQUMseUJBQXlCLENBQUMsSUFBSSxDQUN0RCxJQUFJLENBQUMsR0FBRyxJQUFJLEVBQUUsRUFDZCxJQUFJLENBQUMsV0FBVyxDQUNqQixDQUFDO1NBQ0g7UUFBQyxPQUFPLEtBQUssRUFBRTtZQUNkLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQWMsQ0FBQyxDQUFDO1NBQ3RDO2dCQUFTO1lBQ1IsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7WUFDckIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFlBQVksRUFBRSxDQUFDO1NBQ3hDO0lBQ0gsQ0FBQzs7a0hBbkZVLGlDQUFpQztvRkFBakMsaUNBQWlDO1FDdEI5Qyw0R0FNb0I7UUFDcEIsb0hBVXdCOztRQWZyQixrQ0FBYTtRQU1iLGVBQWM7UUFBZCxtQ0FBYzs7dUZEY0osaUNBQWlDO2NBTjdDLFNBQVM7MkJBQ0UsNkJBQTZCLG1CQUd0Qix1QkFBdUIsQ0FBQyxNQUFNOzBHQU90QyxHQUFHO2tCQUFYLEtBQUs7WUFNRyxXQUFXO2tCQUFuQixLQUFLO1lBTUcsTUFBTTtrQkFBZCxLQUFLO1lBUUcsbUJBQW1CO2tCQUEzQixLQUFLO1lBT0csZ0JBQWdCO2tCQUF4QixLQUFLO1lBTUcsVUFBVTtrQkFBbEIsS0FBSztZQU1JLFlBQVk7a0JBQXJCLE1BQU07WUFNRyxVQUFVO2tCQUFuQixNQUFNO1lBRUcsYUFBYTtrQkFBdEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgSW5wdXQsXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBTaW1wbGVDaGFuZ2VzLFxuICBPbkNoYW5nZXMsXG4gIE91dHB1dCxcbiAgRXZlbnRFbWl0dGVyLFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUZE1hcmtkb3duTG9hZGVyU2VydmljZSB9IGZyb20gJ0Bjb3ZhbGVudC9tYXJrZG93bic7XG5pbXBvcnQgeyBJVGRGbGF2b3JlZE1hcmtkb3duQnV0dG9uQ2xpY2tFdmVudCB9IGZyb20gJy4uL2ZsYXZvcmVkLW1hcmtkb3duLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJQ29weUNvZGVUb29sdGlwcyB9IGZyb20gJ0Bjb3ZhbGVudC9oaWdobGlnaHQnO1xuXG4vLyBUT0RPOiBtYWtlIGEgdGQtbWFya2Rvd24tbG9hZGVyIGNvbXBvbmVudFxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZC1mbGF2b3JlZC1tYXJrZG93bi1sb2FkZXInLFxuICBzdHlsZVVybHM6IFsnLi9mbGF2b3JlZC1tYXJrZG93bi1sb2FkZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgdGVtcGxhdGVVcmw6ICcuL2ZsYXZvcmVkLW1hcmtkb3duLWxvYWRlci5jb21wb25lbnQuaHRtbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBUZEZsYXZvcmVkTWFya2Rvd25Mb2FkZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICAvKipcbiAgICogdXJsOiBzdHJpbmdcbiAgICogVGhlIHVybCBvZiB0aGUgbWFya2Rvd24gZmlsZS5cbiAgICovXG4gIEBJbnB1dCgpIHVybD86IHN0cmluZztcblxuICAvKipcbiAgICogaHR0cE9wdGlvbnM6IG9iamVjdFxuICAgKiBIVFRQIG9wdGlvbnMgdGhhdCBjYW4gYmUgcGFydCBvZiB0aGUgcmVxdWVzdC5cbiAgICovXG4gIEBJbnB1dCgpIGh0dHBPcHRpb25zPzogb2JqZWN0O1xuXG4gIC8qKlxuICAgKiBhbmNob3I6IHN0cmluZ1xuICAgKiBBbmNob3IgdG8ganVtcCB0by5cbiAgICovXG4gIEBJbnB1dCgpIGFuY2hvcj86IHN0cmluZztcblxuICAvKipcbiAgICogY29weUNvZGVUb0NsaXBib2FyZD86IGJvb2xlYW5cbiAgICpcbiAgICogRGlzcGxheSBjb3B5IGJ1dHRvbiBvbiBjb2RlIHNuaXBwZXRzIHRvIGNvcHkgY29kZSB0byBjbGlwYm9hcmQuXG4gICAqXG4gICAqL1xuICBASW5wdXQoKSBjb3B5Q29kZVRvQ2xpcGJvYXJkPyA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBjb3B5Q29kZVRvb2x0aXBzPzogSUNvcHlDb2RlVG9vbHRpcHNcbiAgICpcbiAgICogVG9vbHRpcHMgZm9yIGNvcHkgYnV0dG9uIHRvIGNvcHkgYW5kIHVwb24gY29weWluZy5cbiAgICovXG4gIEBJbnB1dCgpIGNvcHlDb2RlVG9vbHRpcHM/OiBJQ29weUNvZGVUb29sdGlwcyA9IHt9O1xuXG4gIC8qKlxuICAgKiB1c2VDZm1MaXN0PzogYm9vbGVhbiA9IGZhbHNlO1xuICAgKiBVc2UgQ0ZNIGxpc3QgY29tcG9uZW50IGluc3RlYWQgb2YgdmFuaWxsYSBtYXJrZG93biBsaXN0LiBVc2VkIGluIGNvdmFsZW50IGRvY3VtZW50YXRpb24gYXBwLlxuICAgKi9cbiAgQElucHV0KCkgdXNlQ2ZtTGlzdD8gPSBmYWxzZTtcblxuICAvKipcbiAgICogY29udGVudFJlYWR5OiB2b2lkXG4gICAqIEVtaXR0ZWQgd2hlbiBtYXJrZG93biByZW5kZXJpbmcgaXMgZmluaXNoZWQuXG4gICAqL1xuICBAT3V0cHV0KCkgY29udGVudFJlYWR5OiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgLyoqXG4gICAqIGxvYWRGYWlsZWQ6IEVycm9yXG4gICAqIEVtaXR0ZWQgd2hlbiBsb2FkaW5nIG9mIG1hcmtkb3duIGZpbGUgZmFpbHMuXG4gICAqL1xuICBAT3V0cHV0KCkgbG9hZEZhaWxlZDogRXZlbnRFbWl0dGVyPEVycm9yPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBAT3V0cHV0KCkgYnV0dG9uQ2xpY2tlZDogRXZlbnRFbWl0dGVyPElUZEZsYXZvcmVkTWFya2Rvd25CdXR0b25DbGlja0V2ZW50PiA9XG4gICAgbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIGNvbnRlbnQhOiBzdHJpbmc7XG4gIGxvYWRpbmcgPSB0cnVlO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgX2NoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIF9tYXJrZG93blVybExvYWRlclNlcnZpY2U6IFRkTWFya2Rvd25Mb2FkZXJTZXJ2aWNlXG4gICkge31cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXNbJ3VybCddIHx8IGNoYW5nZXNbJ2h0dHBPcHRpb25zJ10pIHtcbiAgICAgIHRoaXMubG9hZE1hcmtkb3duKCk7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgbG9hZE1hcmtkb3duKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRoaXMubG9hZGluZyA9IHRydWU7XG4gICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgdHJ5IHtcbiAgICAgIHRoaXMuY29udGVudCA9IGF3YWl0IHRoaXMuX21hcmtkb3duVXJsTG9hZGVyU2VydmljZS5sb2FkKFxuICAgICAgICB0aGlzLnVybCA/PyAnJyxcbiAgICAgICAgdGhpcy5odHRwT3B0aW9uc1xuICAgICAgKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgdGhpcy5sb2FkRmFpbGVkLmVtaXQoZXJyb3IgYXMgRXJyb3IpO1xuICAgIH0gZmluYWxseSB7XG4gICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cbiAgfVxufVxuIiwiPG1hdC1wcm9ncmVzcy1iYXJcbiAgW25nQ2xhc3NdPVwiJ2RlbGF5J1wiXG4gICpuZ0lmPVwibG9hZGluZ1wiXG4gIG1vZGU9XCJpbmRldGVybWluYXRlXCJcbiAgY29sb3I9XCJhY2NlbnRcIlxuICBjbGFzcz1cInN0aWNreVwiXG4+PC9tYXQtcHJvZ3Jlc3MtYmFyPlxuPHRkLWZsYXZvcmVkLW1hcmtkb3duXG4gICpuZ0lmPVwiIWxvYWRpbmdcIlxuICBbY29udGVudF09XCJjb250ZW50XCJcbiAgW2hvc3RlZFVybF09XCJ1cmwgPz8gJydcIlxuICBbYW5jaG9yXT1cImFuY2hvciA/PyAnJ1wiXG4gIFtjb3B5Q29kZVRvQ2xpcGJvYXJkXT1cImNvcHlDb2RlVG9DbGlwYm9hcmRcIlxuICBbY29weUNvZGVUb29sdGlwc109XCJjb3B5Q29kZVRvb2x0aXBzXCJcbiAgW3VzZUNmbUxpc3RdPVwidXNlQ2ZtTGlzdFwiXG4gIChjb250ZW50UmVhZHkpPVwiY29udGVudFJlYWR5LmVtaXQoKVwiXG4gIChidXR0b25DbGlja2VkKT1cImJ1dHRvbkNsaWNrZWQuZW1pdCgkZXZlbnQpXCJcbj48L3RkLWZsYXZvcmVkLW1hcmtkb3duPlxuIl19
@@ -5,12 +5,12 @@ import { MatTableDataSource } from '@angular/material/table';
5
5
  import { Subject } from 'rxjs';
6
6
  import { takeUntil } from 'rxjs/operators';
7
7
  import { TdFlavoredListComponent, } from './cfm-list/cfm-list.component';
8
- import { TdHighlightComponent } from '@covalent/highlight';
8
+ import { TdHighlightComponent, } from '@covalent/highlight';
9
9
  import { TdMarkdownComponent, scrollToAnchor } from '@covalent/markdown';
10
10
  import * as i0 from "@angular/core";
11
- import * as i1 from "@angular/common";
12
- import * as i2 from "@angular/material/table";
13
- import * as i3 from "@angular/material/sort";
11
+ import * as i1 from "@angular/material/table";
12
+ import * as i2 from "@angular/material/sort";
13
+ import * as i3 from "@angular/common";
14
14
  import * as i4 from "@angular/material/button";
15
15
  function TdFlavoredMarkdownTableComponent_ng_template_1_mat_header_cell_1_Template(rf, ctx) { if (rf & 1) {
16
16
  i0.ɵɵelementStart(0, "mat-header-cell", 7);
@@ -79,7 +79,7 @@ TdFlavoredMarkdownTableComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({
79
79
  i0.ɵɵproperty("matHeaderRowDef", ctx.displayedColumns);
80
80
  i0.ɵɵadvance(1);
81
81
  i0.ɵɵproperty("matRowDefColumns", ctx.displayedColumns);
82
- } }, dependencies: [i1.NgForOf, i2.MatTable, i2.MatHeaderCellDef, i2.MatHeaderRowDef, i2.MatColumnDef, i2.MatCellDef, i2.MatRowDef, i2.MatHeaderCell, i2.MatCell, i2.MatHeaderRow, i2.MatRow, i3.MatSort, i3.MatSortHeader], encapsulation: 2 });
82
+ } }, directives: [i1.MatTable, i2.MatSort, i3.NgForOf, i1.MatColumnDef, i1.MatHeaderCellDef, i1.MatHeaderCell, i2.MatSortHeader, i1.MatCellDef, i1.MatCell, i1.MatHeaderRowDef, i1.MatHeaderRow, i1.MatRowDef, i1.MatRow], encapsulation: 2 });
83
83
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TdFlavoredMarkdownTableComponent, [{
84
84
  type: Component,
85
85
  args: [{
@@ -130,7 +130,7 @@ TdFlavoredMarkdownButtonComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({
130
130
  } if (rf & 2) {
131
131
  i0.ɵɵadvance(1);
132
132
  i0.ɵɵtextInterpolate1(" ", ctx.text, " ");
133
- } }, dependencies: [i4.MatButton], encapsulation: 2 });
133
+ } }, directives: [i4.MatButton], encapsulation: 2 });
134
134
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TdFlavoredMarkdownButtonComponent, [{
135
135
  type: Component,
136
136
  args: [{
@@ -191,6 +191,18 @@ export class TdFlavoredMarkdownComponent {
191
191
  * Tooltips for copy button to copy and upon copying.
192
192
  */
193
193
  this.copyCodeTooltips = {};
194
+ /**
195
+ * toggleRawCode?: boolean
196
+ *
197
+ * Display button to toggle raw code view
198
+ */
199
+ this.toggleRawCode = false;
200
+ /**
201
+ * rawToggleLabels?: IRawToggleLabels
202
+ *
203
+ * Labels for raw code toggle button
204
+ */
205
+ this.rawToggleLabels = {};
194
206
  /**
195
207
  * useCfmList?: boolean = false;
196
208
  * Use CFM list component instead of vanilla markdown list. Used in covalent documentation app.
@@ -395,6 +407,8 @@ export class TdFlavoredMarkdownComponent {
395
407
  }
396
408
  componentRef.instance.copyCodeToClipboard = this.copyCodeToClipboard;
397
409
  componentRef.instance.copyCodeTooltips = this.copyCodeTooltips;
410
+ componentRef.instance.toggleRawButton = this.toggleRawCode;
411
+ componentRef.instance.rawToggleLabels = this.rawToggleLabels;
398
412
  componentRef.instance.content = codeblock;
399
413
  });
400
414
  }
@@ -486,12 +500,12 @@ TdFlavoredMarkdownComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type:
486
500
  } if (rf & 2) {
487
501
  let _t;
488
502
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.container = _t.first);
489
- } }, inputs: { content: "content", simpleLineBreaks: "simpleLineBreaks", hostedUrl: "hostedUrl", anchor: "anchor", copyCodeToClipboard: "copyCodeToClipboard", copyCodeTooltips: "copyCodeTooltips", useCfmList: "useCfmList" }, outputs: { contentReady: "contentReady", buttonClicked: "buttonClicked" }, features: [i0.ɵɵNgOnChangesFeature], ngContentSelectors: _c0, decls: 2, vars: 0, consts: [["tdFlavoredMarkdownContainer", ""]], template: function TdFlavoredMarkdownComponent_Template(rf, ctx) { if (rf & 1) {
503
+ } }, inputs: { content: "content", simpleLineBreaks: "simpleLineBreaks", hostedUrl: "hostedUrl", anchor: "anchor", copyCodeToClipboard: "copyCodeToClipboard", copyCodeTooltips: "copyCodeTooltips", toggleRawCode: "toggleRawCode", rawToggleLabels: "rawToggleLabels", useCfmList: "useCfmList" }, outputs: { contentReady: "contentReady", buttonClicked: "buttonClicked" }, features: [i0.ɵɵNgOnChangesFeature], ngContentSelectors: _c0, decls: 2, vars: 0, consts: [["tdFlavoredMarkdownContainer", ""]], template: function TdFlavoredMarkdownComponent_Template(rf, ctx) { if (rf & 1) {
490
504
  i0.ɵɵprojectionDef();
491
505
  i0.ɵɵelementStart(0, "div", 0);
492
506
  i0.ɵɵprojection(1);
493
507
  i0.ɵɵelementEnd();
494
- } }, dependencies: [TdFlavoredMarkdownContainerDirective], styles: ["[_nghost-%COMP%] td-markdown:first-of-type>div:first-of-type>h1:first-of-type, [_nghost-%COMP%] td-markdown:first-of-type>div:first-of-type>h2:first-of-type{margin-top:0}[_nghost-%COMP%] mat-checkbox{display:block}[_nghost-%COMP%] td-highlight, [_nghost-%COMP%] mat-table, [_nghost-%COMP%] mat-checkbox:last-of-type{margin-bottom:16px}[_nghost-%COMP%] :not(pre)>code{font-family:Menlo,Monaco,Andale Mono,lucida console,Courier New,monospace;padding-left:2px;padding-right:2px}[_nghost-%COMP%] td-highlight{display:flex;flex-direction:row;justify-content:space-between}"], changeDetection: 0 });
508
+ } }, directives: [TdFlavoredMarkdownContainerDirective], styles: ["[_nghost-%COMP%] td-markdown:first-of-type>div:first-of-type>h1:first-of-type, [_nghost-%COMP%] td-markdown:first-of-type>div:first-of-type>h2:first-of-type{margin-top:0}[_nghost-%COMP%] mat-checkbox{display:block}[_nghost-%COMP%] td-highlight, [_nghost-%COMP%] mat-table, [_nghost-%COMP%] mat-checkbox:last-of-type{margin-bottom:16px}[_nghost-%COMP%] :not(pre)>code{font-family:Menlo,Monaco,Andale Mono,lucida console,Courier New,monospace;padding-left:2px;padding-right:2px}[_nghost-%COMP%] td-highlight{display:flex;flex-direction:row;justify-content:space-between}"], changeDetection: 0 });
495
509
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TdFlavoredMarkdownComponent, [{
496
510
  type: Component,
497
511
  args: [{ selector: 'td-flavored-markdown', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div tdFlavoredMarkdownContainer>\n <ng-content></ng-content>\n</div>\n", styles: [":host ::ng-deep td-markdown:first-of-type>div:first-of-type>h1:first-of-type,:host ::ng-deep td-markdown:first-of-type>div:first-of-type>h2:first-of-type{margin-top:0}:host ::ng-deep mat-checkbox{display:block}:host ::ng-deep td-highlight,:host ::ng-deep mat-table,:host ::ng-deep mat-checkbox:last-of-type{margin-bottom:16px}:host ::ng-deep :not(pre)>code{font-family:Menlo,Monaco,Andale Mono,lucida console,Courier New,monospace;padding-left:2px;padding-right:2px}:host ::ng-deep td-highlight{display:flex;flex-direction:row;justify-content:space-between}\n"] }]
@@ -507,6 +521,10 @@ TdFlavoredMarkdownComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type:
507
521
  type: Input
508
522
  }], copyCodeTooltips: [{
509
523
  type: Input
524
+ }], toggleRawCode: [{
525
+ type: Input
526
+ }], rawToggleLabels: [{
527
+ type: Input
510
528
  }], useCfmList: [{
511
529
  type: Input
512
530
  }], contentReady: [{
@@ -517,4 +535,4 @@ TdFlavoredMarkdownComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type:
517
535
  type: ViewChild,
518
536
  args: [TdFlavoredMarkdownContainerDirective, { static: true }]
519
537
  }] }); })();
520
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxhdm9yZWQtbWFya2Rvd24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9tYXJrZG93bi1mbGF2b3JlZC9zcmMvbGliL2ZsYXZvcmVkLW1hcmtkb3duLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL2xpYnMvbWFya2Rvd24tZmxhdm9yZWQvc3JjL2xpYi9mbGF2b3JlZC1tYXJrZG93bi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFNBQVMsRUFFVCxLQUFLLEVBQ0wsU0FBUyxFQUdULGlCQUFpQixFQUNqQixZQUFZLEVBQ1osTUFBTSxFQUNOLGdCQUFnQixFQUNoQix3QkFBd0IsRUFDeEIsUUFBUSxFQUVSLFNBQVMsRUFDVCx1QkFBdUIsRUFHdkIsVUFBVSxFQUNWLFdBQVcsR0FHWixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDekQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2pELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzdELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTNDLE9BQU8sRUFDTCx1QkFBdUIsR0FFeEIsTUFBTSwrQkFBK0IsQ0FBQztBQUN2QyxPQUFPLEVBQUUsb0JBQW9CLEVBQXFCLE1BQU0scUJBQXFCLENBQUM7QUFFOUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDOzs7Ozs7O0lBbUIvRCwwQ0FBbUQ7SUFBQSxZQUVqRDtJQUFBLGlCQUFrQjs7O0lBRitCLGVBRWpEO0lBRmlELHFDQUVqRDs7O0lBQ0YsZ0NBQWdDO0lBQUEsWUFB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QUMsQ0FDRixDQUFDO0lBQ0osQ0FBQzs7c0dBemJVLDJCQUEyQjs4RUFBM0IsMkJBQTJCO3VCQTJGM0Isb0NBQW9DOzs7Ozs7UUNuT2pELDhCQUFpQztRQUMvQixrQkFBeUI7UUFDM0IsaUJBQU07d0JEMkdPLG9DQUFvQzt1RkEyQnBDLDJCQUEyQjtjQU52QyxTQUFTOzJCQUNFLHNCQUFzQixtQkFHZix1QkFBdUIsQ0FBQyxNQUFNO21MQW9CM0MsT0FBTztrQkFEVixLQUFLO1lBWUYsZ0JBQWdCO2tCQURuQixLQUFLO1lBWUYsU0FBUztrQkFEWixLQUFLO1lBWUYsTUFBTTtrQkFEVCxLQUFLO1lBV0csbUJBQW1CO2tCQUEzQixLQUFLO1lBT0csZ0JBQWdCO2tCQUF4QixLQUFLO1lBTUcsVUFBVTtrQkFBbEIsS0FBSztZQU1JLFlBQVk7a0JBQXJCLE1BQU07WUFTUCxhQUFhO2tCQURaLE1BQU07WUFJUCxTQUFTO2tCQURSLFNBQVM7bUJBQUMsb0NBQW9DLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBEaXJlY3RpdmUsXG4gIEFmdGVyVmlld0luaXQsXG4gIElucHV0LFxuICBSZW5kZXJlcjIsXG4gIFR5cGUsXG4gIENvbXBvbmVudEZhY3RvcnksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIE91dHB1dCxcbiAgVmlld0NvbnRhaW5lclJlZixcbiAgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICBJbmplY3RvcixcbiAgQ29tcG9uZW50UmVmLFxuICBWaWV3Q2hpbGQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBPbkNoYW5nZXMsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIEVsZW1lbnRSZWYsXG4gIEhvc3RCaW5kaW5nLFxuICBPbkluaXQsXG4gIE9uRGVzdHJveSxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IE1hdENoZWNrYm94IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2hlY2tib3gnO1xuaW1wb3J0IHsgTWF0U29ydCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NvcnQnO1xuaW1wb3J0IHsgTWF0VGFibGVEYXRhU291cmNlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdGFibGUnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQge1xuICBUZEZsYXZvcmVkTGlzdENvbXBvbmVudCxcbiAgSUZsYXZvcmVkTGlzdEl0ZW0sXG59IGZyb20gJy4vY2ZtLWxpc3QvY2ZtLWxpc3QuY29tcG9uZW50JztcbmltcG9ydCB7IFRkSGlnaGxpZ2h0Q29tcG9uZW50LCBJQ29weUNvZGVUb29sdGlwcyB9IGZyb20gJ0Bjb3ZhbGVudC9oaWdobGlnaHQnO1xuXG5pbXBvcnQgeyBUZE1hcmtkb3duQ29tcG9uZW50LCBzY3JvbGxUb0FuY2hvciB9IGZyb20gJ0Bjb3ZhbGVudC9tYXJrZG93bic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVRkRmxhdm9yZWRNYXJrZG93bkJ1dHRvbkNsaWNrRXZlbnQge1xuICB0ZXh0OiBzdHJpbmc7XG4gIGRhdGE6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJVGRGbGF2b3JlZE1hcmtEb3duVGFibGVDb2x1bW4ge1xuICBsYWJlbDogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIG51bWVyaWM6IGJvb2xlYW47XG59XG5cbkBDb21wb25lbnQoe1xuICB0ZW1wbGF0ZTogYFxuICAgIDxtYXQtdGFibGUgW2RhdGFTb3VyY2VdPVwiZGF0YVNvdXJjZVwiIG1hdFNvcnQ+XG4gICAgICA8IS0tIENvbHVtbiBEZWZpbml0aW9uIC0tPlxuICAgICAgPG5nLXRlbXBsYXRlIG5nRm9yIGxldC1jb2x1bW4gW25nRm9yT2ZdPVwiY29sdW1uRGVmc1wiPlxuICAgICAgICA8bmctY29udGFpbmVyIFttYXRDb2x1bW5EZWZdPVwiY29sdW1uLm5hbWVcIj5cbiAgICAgICAgICA8bWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmIG1hdC1zb3J0LWhlYWRlcj57e1xuICAgICAgICAgICAgY29sdW1uLmxhYmVsXG4gICAgICAgICAgfX08L21hdC1oZWFkZXItY2VsbD5cbiAgICAgICAgICA8bWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgcm93XCI+e3sgcm93W2NvbHVtbi5uYW1lXSB9fTwvbWF0LWNlbGw+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgIDwhLS0gSGVhZGVyIGFuZCBSb3cgRGVjbGFyYXRpb25zIC0tPlxuICAgICAgPG1hdC1oZWFkZXItcm93ICptYXRIZWFkZXJSb3dEZWY9XCJkaXNwbGF5ZWRDb2x1bW5zXCI+PC9tYXQtaGVhZGVyLXJvdz5cbiAgICAgIDxtYXQtcm93ICptYXRSb3dEZWY9XCJsZXQgcm93OyBjb2x1bW5zOiBkaXNwbGF5ZWRDb2x1bW5zXCI+PC9tYXQtcm93PlxuICAgIDwvbWF0LXRhYmxlPlxuICBgLFxufSlcbmV4cG9ydCBjbGFzcyBUZEZsYXZvcmVkTWFya2Rvd25UYWJsZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XG4gIEBJbnB1dCgpIGNvbHVtbkRlZnM6IElUZEZsYXZvcmVkTWFya0Rvd25UYWJsZUNvbHVtbltdID0gW107XG4gIEBJbnB1dCgpIGRhdGEhOiB1bmtub3duW107XG4gIEBWaWV3Q2hpbGQoTWF0U29ydCkgc29ydCE6IE1hdFNvcnQ7XG5cbiAgZGlzcGxheWVkQ29sdW1ucyE6IHN0cmluZ1tdO1xuICBkYXRhU291cmNlITogTWF0VGFibGVEYXRhU291cmNlPHVua25vd24+O1xuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuZGlzcGxheWVkQ29sdW1ucyA9IHRoaXMuY29sdW1uRGVmcy5tYXAoXG4gICAgICAoYzogSVRkRmxhdm9yZWRNYXJrRG93blRhYmxlQ29sdW1uKSA9PiBjLm5hbWVcbiAgICApO1xuICAgIHRoaXMuZGF0YVNvdXJjZSA9IG5ldyBNYXRUYWJsZURhdGFTb3VyY2UodGhpcy5kYXRhKTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmRhdGFTb3VyY2Uuc29ydCA9IHRoaXMuc29ydDtcbiAgfVxufVxuXG5AQ29tcG9uZW50KHtcbiAgdGVtcGxhdGU6IGBcbiAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIChjbGljayk9XCJlbWl0Q2xpY2soKVwiPlxuICAgICAge3sgdGV4dCB9fVxuICAgIDwvYnV0dG9uPlxuICBgLFxufSlcbmV4cG9ydCBjbGFzcyBUZEZsYXZvcmVkTWFya2Rvd25CdXR0b25Db21wb25lbnQge1xuICBASG9zdEJpbmRpbmcoJ3N0eWxlLmRpc3BsYXknKSBkaXNwbGF5ID0gJ2lubGluZS1ibG9jayc7XG4gIEBJbnB1dCgpIHRleHQgPSAnJztcbiAgQElucHV0KCkgZGF0YSA9ICcnO1xuICBAT3V0cHV0KClcbiAgY2xpY2tlZDogRXZlbnRFbWl0dGVyPElUZEZsYXZvcmVkTWFya2Rvd25CdXR0b25DbGlja0V2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8SVRkRmxhdm9yZWRNYXJrZG93bkJ1dHRvbkNsaWNrRXZlbnQ+KCk7XG4gIGVtaXRDbGljaygpOiB2b2lkIHtcbiAgICB0aGlzLmNsaWNrZWQuZW1pdCh7IHRleHQ6IHRoaXMudGV4dCwgZGF0YTogdGhpcy5kYXRhIH0pO1xuICB9XG59XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1t0ZEZsYXZvcmVkTWFya2Rvd25Db250YWluZXJdJyxcbn0pXG5leHBvcnQgY2xhc3MgVGRGbGF2b3JlZE1hcmtkb3duQ29udGFpbmVyRGlyZWN0aXZlIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsXG4gICAgcHJpdmF0ZSBfcmVuZGVyZXI6IFJlbmRlcmVyMlxuICApIHt9XG5cbiAgY2xlYXIoKTogdm9pZCB7XG4gICAgdGhpcy5fcmVuZGVyZXIuc2V0UHJvcGVydHkoXG4gICAgICB0aGlzLnZpZXdDb250YWluZXJSZWYuZWxlbWVudC5uYXRpdmVFbGVtZW50LFxuICAgICAgJ2lubmVySFRNTCcsXG4gICAgICAnJ1xuICAgICk7XG4gICAgdGhpcy52aWV3Q29udGFpbmVyUmVmLmNsZWFyKCk7XG4gIH1cbn1cblxuZXhwb3J0IHR5cGUgSVJlcGxhY2VyRnVuYzxUPiA9IChcbiAgY29tcG9uZW50UmVmOiBDb21wb25lbnRSZWY8VD4sXG4gIC4uLmFyZ3M6IGFueVtdXG4pID0+IHZvaWQ7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RkLWZsYXZvcmVkLW1hcmtkb3duJyxcbiAgc3R5bGVVcmxzOiBbJy4vZmxhdm9yZWQtbWFya2Rvd24uY29tcG9uZW50LnNjc3MnXSxcbiAgdGVtcGxhdGVVcmw6ICcuL2ZsYXZvcmVkLW1hcmtkb3duLmNvbXBvbmVudC5odG1sJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFRkRmxhdm9yZWRNYXJrZG93bkNvbXBvbmVudFxuICBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95XG57XG4gIHByaXZhdGUgX2NvbnRlbnQhOiBzdHJpbmc7XG4gIHByaXZhdGUgX3NpbXBsZUxpbmVCcmVha3MgPSBmYWxzZTtcbiAgcHJpdmF0ZSBfaG9zdGVkVXJsITogc3RyaW5nO1xuICBwcml2YXRlIF9hbmNob3IhOiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSBfY29tcG9uZW50czogeyBba2V5OiBzdHJpbmddOiBDb21wb25lbnRSZWY8dW5rbm93bj4gfSA9IHt9O1xuICBwcml2YXRlIF92aWV3SW5pdCA9IGZhbHNlO1xuICAvKipcbiAgICogY29udGVudD86IHN0cmluZ1xuICAgKlxuICAgKiBNYXJrZG93biBmb3JtYXQgY29udGVudCB0byBiZSBwYXJzZWQgYXMgbWF0ZXJpYWwvY292YWxlbnQgbWFya3VwLlxuICAgKlxuICAgKiBlLmcuIFJFQURNRS5tZCBjb250ZW50LlxuICAgKi9cbiAgQElucHV0KClcbiAgc2V0IGNvbnRlbnQoY29udGVudDogc3RyaW5nKSB7XG4gICAgdGhpcy5fY29udGVudCA9IGNvbnRlbnQ7XG4gIH1cblxuICAvKipcbiAgICogc2ltcGxlTGluZUJyZWFrcz86IHN0cmluZ1xuICAgKlxuICAgKiBTZXRzIHdoZXRoZXIgbmV3bGluZSBjaGFyYWN0ZXJzIGluc2lkZSBwYXJhZ3JhcGhzIGFuZCBzcGFucyBhcmUgcGFyc2VkIGFzIDxici8+LlxuICAgKiBEZWZhdWx0cyB0byBmYWxzZS5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHNldCBzaW1wbGVMaW5lQnJlYWtzKHNpbXBsZUxpbmVCcmVha3M6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9zaW1wbGVMaW5lQnJlYWtzID0gc2ltcGxlTGluZUJyZWFrcztcbiAgfVxuXG4gIC8qKlxuICAgKiBob3N0ZWRVcmw/OiBzdHJpbmdcbiAgICpcbiAgICogSWYgbWFya2Rvd24gY29udGFpbnMgcmVsYXRpdmUgcGF0aHMsIHRoaXMgaXMgcmVxdWlyZWQgdG8gZ2VuZXJhdGUgY29ycmVjdCB1cmxzXG4gICAqXG4gICAqL1xuICBASW5wdXQoKVxuICBzZXQgaG9zdGVkVXJsKGhvc3RlZFVybDogc3RyaW5nKSB7XG4gICAgdGhpcy5faG9zdGVkVXJsID0gaG9zdGVkVXJsO1xuICB9XG5cbiAgLyoqXG4gICAqIGFuY2hvcj86IHN0cmluZ1xuICAgKlxuICAgKiBBbmNob3IgdG8ganVtcCB0b1xuICAgKlxuICAgKi9cbiAgQElucHV0KClcbiAgc2V0IGFuY2hvcihhbmNob3I6IHN0cmluZykge1xuICAgIHRoaXMuX2FuY2hvciA9IGFuY2hvcjtcbiAgfVxuXG4gIC8qKlxuICAgKiBjb3B5Q29kZVRvQ2xpcGJvYXJkPzogYm9vbGVhblxuICAgKlxuICAgKiBEaXNwbGF5IGNvcHkgYnV0dG9uIG9uIGNvZGUgc25pcHBldHMgdG8gY29weSBjb2RlIHRvIGNsaXBib2FyZC5cbiAgICpcbiAgICovXG4gIEBJbnB1dCgpIGNvcHlDb2RlVG9DbGlwYm9hcmQ/ID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIGNvcHlDb2RlVG9vbHRpcHM/OiBJQ29weUNvZGVUb29sdGlwc1xuICAgKlxuICAgKiBUb29sdGlwcyBmb3IgY29weSBidXR0b24gdG8gY29weSBhbmQgdXBvbiBjb3B5aW5nLlxuICAgKi9cbiAgQElucHV0KCkgY29weUNvZGVUb29sdGlwcz86IElDb3B5Q29kZVRvb2x0aXBzID0ge307XG5cbiAgLyoqXG4gICAqIHVzZUNmbUxpc3Q/OiBib29sZWFuID0gZmFsc2U7XG4gICAqIFVzZSBDRk0gbGlzdCBjb21wb25lbnQgaW5zdGVhZCBvZiB2YW5pbGxhIG1hcmtkb3duIGxpc3QuIFVzZWQgaW4gY292YWxlbnQgZG9jdW1lbnRhdGlvbiBhcHAuXG4gICAqL1xuICBASW5wdXQoKSB1c2VDZm1MaXN0PyA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBjb250ZW50UmVhZHk/OiBmdW5jdGlvblxuICAgKiBFdmVudCBlbWl0dGVkIGFmdGVyIHRoZSBtYXJrZG93biBjb250ZW50IHJlbmRlcmluZyBpcyBmaW5pc2hlZC5cbiAgICovXG4gIEBPdXRwdXQoKSBjb250ZW50UmVhZHk6IEV2ZW50RW1pdHRlcjx1bmRlZmluZWQ+ID1cbiAgICBuZXcgRXZlbnRFbWl0dGVyPHVuZGVmaW5lZD4oKTtcblxuICAvKipcbiAgICogYnV0dG9uQ2xpY2tlZD86IElUZEZsYXZvcmVkTWFya2Rvd25CdXR0b25DbGlja0V2ZW50XG4gICAqIEV2ZW50IGVtaXR0ZWQgd2hlbiBhIGJ1dHRvbiBpcyBjbGlja2VkXG4gICAqIElzIGFuIG9iamVjdCBjb250YWluaW5nIHRleHQgYW5kIGRhdGEgb2YgYnV0dG9uXG4gICAqL1xuICBAT3V0cHV0KClcbiAgYnV0dG9uQ2xpY2tlZDogRXZlbnRFbWl0dGVyPElUZEZsYXZvcmVkTWFya2Rvd25CdXR0b25DbGlja0V2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8SVRkRmxhdm9yZWRNYXJrZG93bkJ1dHRvbkNsaWNrRXZlbnQ+KCk7XG5cbiAgQFZpZXdDaGlsZChUZEZsYXZvcmVkTWFya2Rvd25Db250YWluZXJEaXJlY3RpdmUsIHsgc3RhdGljOiB0cnVlIH0pXG4gIGNvbnRhaW5lciE6IFRkRmxhdm9yZWRNYXJrZG93bkNvbnRhaW5lckRpcmVjdGl2ZTtcblxuICBwcml2YXRlIF9kZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfY29tcG9uZW50RmFjdG9yeVJlc29sdmVyOiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXG4gICAgcHJpdmF0ZSBfcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICBwcml2YXRlIF9jaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJpdmF0ZSBfaW5qZWN0b3I6IEluamVjdG9yLFxuICAgIHByaXZhdGUgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWZcbiAgKSB7fVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAvLyBvbmx5IGFuY2hvciBjaGFuZ2VkXG4gICAgaWYgKFxuICAgICAgY2hhbmdlc1snYW5jaG9yJ10gJiZcbiAgICAgICFjaGFuZ2VzWydjb250ZW50J10gJiZcbiAgICAgICFjaGFuZ2VzWydzaW1wbGVMaW5lQnJlYWtzJ10gJiZcbiAgICAgICFjaGFuZ2VzWydob3N0ZWRVcmwnXVxuICAgICkge1xuICAgICAgc2Nyb2xsVG9BbmNob3IodGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCB0aGlzLl9hbmNob3IsIGZhbHNlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5yZWZyZXNoKCk7XG4gICAgfVxuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5fY29udGVudCkge1xuICAgICAgdGhpcy5fbG9hZENvbnRlbnQoXG4gICAgICAgICg8SFRNTEVsZW1lbnQ+dGhpcy5jb250YWluZXIudmlld0NvbnRhaW5lclJlZi5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQpXG4gICAgICAgICAgLnRleHRDb250ZW50ID8/ICcnXG4gICAgICApO1xuICAgICAgUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKSA9PiB7XG4gICAgICAgIHRoaXMuX3ZpZXdJbml0ID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9kZXN0cm95JC5uZXh0KCk7XG4gIH1cblxuICByZWZyZXNoKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9jb250ZW50KSB7XG4gICAgICB0aGlzLl9sb2FkQ29udGVudCh0aGlzLl9jb250ZW50KTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuX3ZpZXdJbml0KSB7XG4gICAgICB0aGlzLl9sb2FkQ29udGVudChcbiAgICAgICAgKDxIVE1MRWxlbWVudD50aGlzLmNvbnRhaW5lci52aWV3Q29udGFpbmVyUmVmLmVsZW1lbnQubmF0aXZlRWxlbWVudClcbiAgICAgICAgICAudGV4dENvbnRlbnQgPz8gJydcbiAgICAgICk7XG4gICAgfVxuICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcHJpdmF0ZSBfbG9hZENvbnRlbnQobWFya2Rvd246IHN0cmluZyk6IHZvaWQge1xuICAgIGlmIChtYXJrZG93biAmJiBtYXJrZG93bi50cmltKCkubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5jb250YWluZXIuY2xlYXIoKTtcbiAgICAgIG1hcmtkb3duID0gbWFya2Rvd25cbiAgICAgICAgLnJlcGxhY2UoL14oXFxzfFxcdCkqXFxuKy9nLCAnJylcbiAgICAgICAgLnJlcGxhY2UoLyhcXHN8XFx0KSpcXG4rKFxcc3xcXHQpKiQvZywgJycpO1xuICAgICAgLy8gU3BsaXQgbWFya2Rvd24gYnkgbGluZSBjaGFyYWN0ZXJzXG4gICAgICBsZXQgbGluZXM6IHN0cmluZ1tdID0gbWFya2Rvd24uc3BsaXQoJ1xcbicpO1xuXG4gICAgICAvLyBjaGVjayBob3cgbXVjaCBpbmRlbnRhdGlvbiBpcyB1c2VkIGJ5IHRoZSBmaXJzdCBhY3R1YWwgbWFya2Rvd24gbGluZVxuICAgICAgY29uc3QgZmlyc3RMaW5lV2hpdGVzcGFjZU1hdGNoID0gbGluZXNbMF0ubWF0Y2goL14oXFxzfFxcdCkqLyk7XG4gICAgICBjb25zdCBmaXJzdExpbmVXaGl0ZXNwYWNlID0gZmlyc3RMaW5lV2hpdGVzcGFjZU1hdGNoXG4gICAgICAgID8gZmlyc3RMaW5lV2hpdGVzcGFjZU1hdGNoWzBdXG4gICAgICAgIDogbnVsbDtcblxuICAgICAgLy8gUmVtb3ZlIGFsbCBpbmRlbnRhdGlvbiBzcGFjZXMgc28gbWFya2Rvd24gY2FuIGJlIHBhcnNlZCBjb3JyZWN0bHlcbiAgICAgIC8vIFJlbW92ZSBhbGwgXFxyIGNoYXJhY3RlcnNcbiAgICAgIGNvbnN0IHN0YXJ0aW5nV2hpdGVzcGFjZVJlZ2V4ID0gbmV3IFJlZ0V4cCgnXicgKyBmaXJzdExpbmVXaGl0ZXNwYWNlKTtcbiAgICAgIGxpbmVzID0gbGluZXMubWFwKGZ1bmN0aW9uIChsaW5lOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gbGluZS5yZXBsYWNlKHN0YXJ0aW5nV2hpdGVzcGFjZVJlZ2V4LCAnJykucmVwbGFjZSgnXFxyJywgJycpO1xuICAgICAgfSk7XG5cbiAgICAgIC8vIEpvaW4gbGluZXMgYWdhaW4gd2l0aCBsaW5lIGNoYXJhY3RlcnNcbiAgICAgIG1hcmtkb3duID0gWy4uLmxpbmVzLCAnJywgJyddLmpvaW4oJ1xcbicpO1xuICAgICAgbWFya2Rvd24gPSB0aGlzLl9yZXBsYWNlQ29kZUJsb2NrcyhtYXJrZG93bik7XG4gICAgICBtYXJrZG93biA9IHRoaXMuX3JlcGxhY2VDaGVja2JveChtYXJrZG93bik7XG4gICAgICBtYXJrZG93biA9IHRoaXMuX3JlcGxhY2VUYWJsZXMobWFya2Rvd24pO1xuICAgICAgbWFya2Rvd24gPSB0aGlzLl9yZXBsYWNlQnV0dG9ucyhtYXJrZG93bik7XG5cbiAgICAgIGlmICh0aGlzLnVzZUNmbUxpc3QpIHtcbiAgICAgICAgbWFya2Rvd24gPSB0aGlzLl9yZXBsYWNlTGlzdHMobWFya2Rvd24pO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBrZXlzOiBzdHJpbmdbXSA9IE9iamVjdC5rZXlzKHRoaXMuX2NvbXBvbmVudHMpO1xuICAgICAgLy8gbmVlZCB0byBzb3J0IHRoZSBwbGFjZWhvbGRlcnMgaW4gb3JkZXIgb2YgZW5jb3VudGVyIGluIG1hcmtkb3duIGNvbnRlbnRcbiAgICAgIGtleXMuc29ydCgoY29tcEE6IHN0cmluZywgY29tcEI6IHN0cmluZykgPT4ge1xuICAgICAgICByZXR1cm4gbWFya2Rvd24uaW5kZXhPZihjb21wQSkgPiBtYXJrZG93bi5pbmRleE9mKGNvbXBCKSA/IDEgOiAtMTtcbiAgICAgIH0pO1xuICAgICAgdGhpcy5fcmVuZGVyKG1hcmtkb3duLCBrZXlzWzBdLCBrZXlzKTtcbiAgICAgIC8vIFRPRE86IHRpbWVvdXQgcmVxdWlyZWQgc2luY2UgcmVzaXppbmcgb2YgaHRtbCBlbGVtZW50cyBvY2N1cnMgd2hpY2ggY2F1c2VzIGEgY2hhbmdlIGluIHRoZSBzY3JvbGwgcG9zaXRpb25cbiAgICAgIHNldFRpbWVvdXQoXG4gICAgICAgICgpID0+XG4gICAgICAgICAgc2Nyb2xsVG9BbmNob3IodGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCB0aGlzLl9hbmNob3IsIGZhbHNlKSxcbiAgICAgICAgMjUwXG4gICAgICApO1xuICAgICAgdGhpcy5jb250ZW50UmVhZHkuZW1pdCgpO1xuICAgICAgUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKSA9PiB7XG4gICAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfcmVuZGVyKG1hcmtkb3duOiBzdHJpbmcsIGtleTogc3RyaW5nLCBrZXlzOiBzdHJpbmdbXSk6IHZvaWQge1xuICAgIGlmICghbWFya2Rvd24pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKGtleSAmJiBtYXJrZG93bi5pbmRleE9mKGtleSkgPiAtMSkge1xuICAgICAgY29uc3QgbWFya2Rvd25QYXJ0czogc3RyaW5nW10gPSBtYXJrZG93bi5zcGxpdChrZXkpO1xuICAgICAga2V5cy5zaGlmdCgpO1xuICAgICAgdGhpcy5fcmVuZGVyKG1hcmtkb3duUGFydHNbMF0sICcnLCBbXSk7XG4gICAgICB0aGlzLmNvbnRhaW5lci52aWV3Q29udGFpbmVyUmVmLmluc2VydChcbiAgICAgICAgdGhpcy5fY29tcG9uZW50c1trZXldLmhvc3RWaWV3LFxuICAgICAgICB0aGlzLmNvbnRhaW5lci52aWV3Q29udGFpbmVyUmVmLmxlbmd0aFxuICAgICAgKTtcbiAgICAgIGRlbGV0ZSB0aGlzLl9jb21wb25lbnRzW2tleV07XG4gICAgICB0aGlzLl9yZW5kZXIobWFya2Rvd25QYXJ0c1sxXSwga2V5c1swXSwga2V5cyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IGNvbnRlbnRSZWY6IENvbXBvbmVudFJlZjxUZE1hcmtkb3duQ29tcG9uZW50PiA9XG4gICAgICAgIHRoaXMuX2NvbXBvbmVudEZhY3RvcnlSZXNvbHZlclxuICAgICAgICAgIC5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeShUZE1hcmtkb3duQ29tcG9uZW50KVxuICAgICAgICAgIC5jcmVhdGUodGhpcy5faW5qZWN0b3IpO1xuICAgICAgY29udGVudFJlZi5pbnN0YW5jZS5jb250ZW50ID0gbWFya2Rvd247XG4gICAgICBjb250ZW50UmVmLmluc3RhbmNlLmhvc3RlZFVybCA9IHRoaXMuX2hvc3RlZFVybDtcbiAgICAgIGNvbnRlbnRSZWYuaW5zdGFuY2Uuc2ltcGxlTGluZUJyZWFrcyA9IHRoaXMuX3NpbXBsZUxpbmVCcmVha3M7XG4gICAgICBjb250ZW50UmVmLmluc3RhbmNlLnJlZnJlc2goKTtcbiAgICAgIHRoaXMuY29udGFpbmVyLnZpZXdDb250YWluZXJSZWYuaW5zZXJ0KFxuICAgICAgICBjb250ZW50UmVmLmhvc3RWaWV3LFxuICAgICAgICB0aGlzLmNvbnRhaW5lci52aWV3Q29udGFpbmVyUmVmLmxlbmd0aFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9yZXBsYWNlQ29tcG9uZW50PFQ+KFxuICAgIG1hcmtkb3duOiBzdHJpbmcsXG4gICAgdHlwZTogVHlwZTxUPixcbiAgICByZWdFeHA6IFJlZ0V4cCxcbiAgICByZXBsYWNlckZ1bmM6IElSZXBsYWNlckZ1bmM8VD5cbiAgKTogc3RyaW5nIHtcbiAgICBsZXQgY29tcG9uZW50SW5kZXggPSAwO1xuICAgIHJldHVybiBtYXJrZG93bi5yZXBsYWNlKHJlZ0V4cCwgKC4uLmFyZ3M6IGFueVtdKSA9PiB7XG4gICAgICBjb25zdCBjb21wb25lbnRGYWN0b3J5OiBDb21wb25lbnRGYWN0b3J5PFQ+ID1cbiAgICAgICAgdGhpcy5fY29tcG9uZW50RmFjdG9yeVJlc29sdmVyLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KHR5cGUpO1xuICAgICAgY29uc3QgY29tcG9uZW50UmVmOiBDb21wb25lbnRSZWY8VD4gPSBjb21wb25lbnRGYWN0b3J5LmNyZWF0ZShcbiAgICAgICAgdGhpcy5faW5qZWN0b3JcbiAgICAgICk7XG4gICAgICByZXBsYWNlckZ1bmMoY29tcG9uZW50UmVmLCAuLi5hcmdzKTtcbiAgICAgIGNvbnN0IGtleTogc3RyaW5nID1cbiAgICAgICAgJ1snICtcbiAgICAgICAgY29tcG9uZW50RmFjdG9yeS5zZWxlY3RvciArXG4gICAgICAgICctcGxhY2Vob2xkZXItJyArXG4gICAgICAgIGNvbXBvbmVudEluZGV4KysgK1xuICAgICAgICAnXSc7XG4gICAgICB0aGlzLl9jb21wb25lbnRzW2tleV0gPSBjb21wb25lbnRSZWY7XG4gICAgICByZXR1cm4ga2V5O1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfcmVwbGFjZUNoZWNrYm94KG1hcmtkb3duOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IGNoZWNrYm94UmVnRXhwID0gLyg/Ol58XFxuKS0gXFxbKHh8IClcXF0oLiopL2dpO1xuICAgIHJldHVybiB0aGlzLl9yZXBsYWNlQ29tcG9uZW50KFxuICAgICAgbWFya2Rvd24sXG4gICAgICBNYXRDaGVja2JveCxcbiAgICAgIGNoZWNrYm94UmVnRXhwLFxuICAgICAgKFxuICAgICAgICBjb21wb25lbnRSZWY6IENvbXBvbmVudFJlZjxNYXRDaGVja2JveD4sXG4gICAgICAgIG1hdGNoOiBzdHJpbmcsXG4gICAgICAgIGNoZWNrZWQ6IHN0cmluZyxcbiAgICAgICAgbGFiZWw6IHN0cmluZ1xuICAgICAgKSA9PiB7XG4gICAgICAgIGNvbXBvbmVudFJlZi5pbnN0YW5jZS5jaGVja2VkID0gISFjaGVja2VkLnRyaW0oKTtcbiAgICAgICAgY29tcG9uZW50UmVmLmluc3RhbmNlLmRpc2FibGVkID0gdHJ1ZTtcbiAgICAgICAgY29tcG9uZW50UmVmLmluc3RhbmNlLmxhYmVsUG9zaXRpb24gPSAnYWZ0ZXInO1xuICAgICAgICB0aGlzLl9yZW5kZXJlci5zZXRQcm9wZXJ0eShcbiAgICAgICAgICAoPEhUTUxFbGVtZW50PihcbiAgICAgICAgICAgIGNvbXBvbmVudFJlZi5pbnN0YW5jZS5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50XG4gICAgICAgICAgKSkuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgnbWF0LWNoZWNrYm94LWxhYmVsJylbMF0sXG4gICAgICAgICAgJ2lubmVySFRNTCcsXG4gICAgICAgICAgbGFiZWxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBfcmVwbGFjZUJ1dHRvbnMobWFya2Rvd246IHN0cmluZyk6IHN0cmluZyB7XG4gICAgY29uc3QgYnV0dG9uUmVnRXhwID0gL1xcWyhbXltdKylcXF0oXFwoI2RhdGE9KC4qPylcXCkpL2k7XG4gICAgY29uc3QgZ2xvYmFsQnV0dG9uUmVnRXhwID0gbmV3IFJlZ0V4cChcbiAgICAgIGJ1dHRvblJlZ0V4cC5zb3VyY2UsXG4gICAgICBidXR0b25SZWdFeHAuZmxhZ3MgKyAnZydcbiAgICApO1xuICAgIHJldHVybiB0aGlzLl9yZXBsYWNlQ29tcG9uZW50KFxuICAgICAgbWFya2Rvd24sXG4gICAgICBUZEZsYXZvcmVkTWFya2Rvd25CdXR0b25Db21wb25lbnQsXG4gICAgICBnbG9iYWxCdXR0b25SZWdFeHAsXG4gICAgICAoXG4gICAgICAgIGNvbXBvbmVudFJlZjogQ29tcG9uZW50UmVmPFRkRmxhdm9yZWRNYXJrZG93bkJ1dHRvbkNvbXBvbmVudD4sXG4gICAgICAgIG1hdGNoOiBzdHJpbmdcbiAgICAgICkgPT4ge1xuICAgICAgICBjb25zdCBtYXRjaGVzID0gYnV0dG9uUmVnRXhwLmV4ZWMobWF0Y2gpO1xuICAgICAgICBpZiAoIW1hdGNoZXMpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgdGV4dDogc3RyaW5nID0gbWF0Y2hlc1sxXTtcbiAgICAgICAgY29uc3QgZGF0YTogc3RyaW5nID0gbWF0Y2hlc1szXTtcbiAgICAgICAgY29tcG9uZW50UmVmLmluc3RhbmNlLnRleHQgPSB0ZXh0O1xuICAgICAgICBjb21wb25lbnRSZWYuaW5zdGFuY2UuZGF0YSA9IGRhdGE7XG4gICAgICAgIGNvbXBvbmVudFJlZi5pbnN0YW5jZS5jbGlja2VkXG4gICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSlcbiAgICAgICAgICAuc3Vic2NyaWJlKChjbGlja0V2ZW50OiBJVGRGbGF2b3JlZE1hcmtkb3duQnV0dG9uQ2xpY2tFdmVudCkgPT5cbiAgICAgICAgICAgIHRoaXMuYnV0dG9uQ2xpY2tlZC5lbWl0KGNsaWNrRXZlbnQpXG4gICAgICAgICAgKTtcbiAgICAgIH1cbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBfcmVwbGFjZUNvZGVCbG9ja3MobWFya2Rvd246IHN0cmluZyk6IHN0cmluZyB7XG4gICAgY29uc3QgY29kZUJsb2NrUmVnRXhwID0gLyg/Ol58XFxuKWBgYCguKilcXG4oW1xcc1xcU10qPylcXG5gYGAvZztcbiAgICByZXR1cm4gdGhpcy5fcmVwbGFjZUNvbXBvbmVudChcbiAgICAgIG1hcmtkb3duLFxuICAgICAgVGRIaWdobGlnaHRDb21wb25lbnQsXG4gICAgICBjb2RlQmxvY2tSZWdFeHAsXG4gICAgICAoXG4gICAgICAgIGNvbXBvbmVudFJlZjogQ29tcG9uZW50UmVmPFRkSGlnaGxpZ2h0Q29tcG9uZW50PixcbiAgICAgICAgbWF0Y2g6IHN0cmluZyxcbiAgICAgICAgbGFuZ3VhZ2U6IHN0cmluZyxcbiAgICAgICAgY29kZWJsb2NrOiBzdHJpbmdcbiAgICAgICkgPT4ge1xuICAgICAgICBpZiAobGFuZ3VhZ2UpIHtcbiAgICAgICAgICBjb21wb25lbnRSZWYuaW5zdGFuY2UuY29kZUxhbmcgPSBsYW5ndWFnZTtcbiAgICAgICAgfVxuICAgICAgICBjb21wb25lbnRSZWYuaW5zdGFuY2UuY29weUNvZGVUb0NsaXBib2FyZCA9IHRoaXMuY29weUNvZGVUb0NsaXBib2FyZDtcbiAgICAgICAgY29tcG9uZW50UmVmLmluc3RhbmNlLmNvcHlDb2RlVG9vbHRpcHMgPSB0aGlzLmNvcHlDb2RlVG9vbHRpcHM7XG4gICAgICAgIGNvbXBvbmVudFJlZi5pbnN0YW5jZS5jb250ZW50ID0gY29kZWJsb2NrO1xuICAgICAgfVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIF9yZXBsYWNlVGFibGVzKG1hcmtkb3duOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IHRhYmxlUmd4ID1cbiAgICAgIC9eIHswLDN9XFx8Py4rXFx8LitcXG5bIFxcdF17MCwzfVxcfD9bIFxcdF0qOj9bIFxcdF0qKD86LXw9KXsyLH1bIFxcdF0qOj9bIFxcdF0qXFx8WyBcXHRdKjo/WyBcXHRdKig/Oi18PSl7Mix9W1xcc1xcU10rPyg/Olxcblxcbnx+MCkvZ207XG4gICAgcmV0dXJuIHRoaXMuX3JlcGxhY2VDb21wb25lbnQoXG4gICAgICBtYXJrZG93bixcbiAgICAgIFRkRmxhdm9yZWRNYXJrZG93blRhYmxlQ29tcG9uZW50LFxuICAgICAgdGFibGVSZ3gsXG4gICAgICAoXG4gICAgICAgIGNvbXBvbmVudFJlZjogQ29tcG9uZW50UmVmPFRkRmxhdm9yZWRNYXJrZG93blRhYmxlQ29tcG9uZW50PixcbiAgICAgICAgbWF0Y2g6IHN0cmluZ1xuICAgICAgKSA9PiB7XG4gICAgICAgIGNvbnN0IGRhdGFUYWJsZUxpbmVzOiBzdHJpbmdbXSA9IG1hdGNoXG4gICAgICAgICAgLnJlcGxhY2UoLyhcXHN8XFx0KSpcXG4rKFxcc3xcXHQpKiQvZywgJycpXG4gICAgICAgICAgLnNwbGl0KCdcXG4nKTtcbiAgICAgICAgY29uc3QgY29sdW1uczogc3RyaW5nW10gPSBkYXRhVGFibGVMaW5lc1swXVxuICAgICAgICAgIC5zcGxpdCgnfCcpXG4gICAgICAgICAgLmZpbHRlcigoY29sOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgIHJldHVybiBjb2w7XG4gICAgICAgICAgfSlcbiAgICAgICAgICAubWFwKChzOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgIHJldHVybiBzLnRyaW0oKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgY29uc3QgYWxpZ25tZW50OiBzdHJpbmdbXSA9IGRhdGFUYWJsZUxpbmVzWzFdXG4gICAgICAgICAgLnNwbGl0KCd8JylcbiAgICAgICAgICAuZmlsdGVyKCh2OiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgIHJldHVybiB2O1xuICAgICAgICAgIH0pXG4gICAgICAgICAgLm1hcCgoczogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gcy50cmltKCk7XG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgY29uc3QgZGF0YTogYW55W10gPSBbXTtcbiAgICAgICAgZm9yIChsZXQgaSA9IDI7IGkgPCBkYXRhVGFibGVMaW5lcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgIGNvbnN0IHJvd1NwbGl0OiBzdHJpbmdbXSA9IGRhdGFUYWJsZUxpbmVzW2ldXG4gICAgICAgICAgICAuc3BsaXQoJ3wnKVxuICAgICAgICAgICAgLmZpbHRlcigoY2VsbDogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICAgIHJldHVybiBjZWxsO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5tYXAoKHM6IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgICByZXR1cm4gcy50cmltKCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICBjb25zdCByb3c6IGFueSA9IHt9O1xuICAgICAgICAgIGNvbHVtbnMuZm9yRWFjaCgoY29sOiBzdHJpbmcsIGluZGV4OiBudW1iZXIpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHJvd1NwbGl0Q2VsbDogc3RyaW5nID0gcm93U3BsaXRbaW5kZXhdO1xuICAgICAgICAgICAgaWYgKHJvd1NwbGl0Q2VsbCkge1xuICAgICAgICAgICAgICByb3dbY29sLnRvTG93ZXJDYXNlKCkudHJpbSgpXSA9IHJvd1NwbGl0Q2VsbC5yZXBsYWNlKFxuICAgICAgICAgICAgICAgIC9gKC4qKWAvLFxuICAgICAgICAgICAgICAgIChtOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgZGF0YS5wdXNoKHJvdyk7XG4gICAgICAgIH1cbiAgICAgICAgY29tcG9uZW50UmVmLmluc3RhbmNlLmNvbHVtbkRlZnMgPSBjb2x1bW5zLm1hcChcbiAgICAgICAgICAoY29sOiBzdHJpbmcsIGluZGV4OiBudW1iZXIpID0+IHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgIGxhYmVsOiBjb2wsXG4gICAgICAgICAgICAgIG5hbWU6IGNvbCA/IGNvbC50b0xvd2VyQ2FzZSgpLnRyaW0oKSA6IGBjb2x1bW4gJHtpbmRleH1gLFxuICAgICAgICAgICAgICBudW1lcmljOiAvXi0tKlsgXFx0XSo6WyBcXHRdKiQvLnRlc3QoYWxpZ25tZW50W2luZGV4XSksXG4gICAgICAgICAgICB9O1xuICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICAgICAgY29tcG9uZW50UmVmLmluc3RhbmNlLmRhdGEgPSBkYXRhO1xuICAgICAgfVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIF9yZXBsYWNlTGlzdHMobWFya2Rvd246IHN0cmluZyk6IHN0cmluZyB7XG4gICAgY29uc3QgbGlzdFJlZ0V4cCA9IC8oPzpefFxcbikoKCAqKFxcK3xcXCp8LSkpWyB8XFx0XSguKilcXG4pKy9nO1xuICAgIGNvbnN0IGxpc3RDaGFyUmVnRXhwID0gbmV3IFJlZ0V4cCgvXihcXCt8XFwqfC0pLyk7XG4gICAgcmV0dXJuIHRoaXMuX3JlcGxhY2VDb21wb25lbnQoXG4gICAgICBtYXJrZG93bixcbiAgICAgIFRkRmxhdm9yZWRMaXN0Q29tcG9uZW50LFxuICAgICAgbGlzdFJlZ0V4cCxcbiAgICAgIChjb21wb25lbnRSZWY6IENvbXBvbmVudFJlZjxUZEZsYXZvcmVkTGlzdENvbXBvbmVudD4sIG1hdGNoOiBzdHJpbmcpID0+IHtcbiAgICAgICAgY29uc3Qgc3RhcnQgPSAvKFxcK3xcXCp8LSkvLmV4ZWMobWF0Y2gpO1xuICAgICAgICBjb25zdCBtYXRjaEluZGV4ID0gc3RhcnQgIT09IG51bGwgPyBzdGFydC5pbmRleCA6IDE7XG5cbiAgICAgICAgY29uc3QgbGluZVRleHRzOiBzdHJpbmdbXSA9IG1hdGNoLnNwbGl0KFxuICAgICAgICAgIG5ldyBSZWdFeHAoXG4gICAgICAgICAgICAnXFxcXG4geycgKyAobWF0Y2hJbmRleCAtIDEpLnRvU3RyaW5nKCkgKyAnfShcXFxcK3xcXFxcKnxcXFxcLSlbIHxcXFxcdF0nXG4gICAgICAgICAgKVxuICAgICAgICApO1xuICAgICAgICBsaW5lVGV4dHMuc2hpZnQoKTtcbiAgICAgICAgY29uc3QgbGluZXM6IElGbGF2b3JlZExpc3RJdGVtW10gPSBbXTtcbiAgICAgICAgbGluZVRleHRzLmZvckVhY2goKHRleHQ6IHN0cmluZykgPT4ge1xuICAgICAgICAgIGNvbnN0IHN1YmxpbmVUZXh0czogc3RyaW5nW10gPSB0ZXh0LnNwbGl0KC9cXG4gKihcXCt8XFwqfC0pIC8pO1xuICAgICAgICAgIGNvbnN0IGxpbmVUZXh0ID0gc3VibGluZVRleHRzLnNoaWZ0KCkgPz8gJyc7XG5cbiAgICAgICAgICBpZiAobGlzdENoYXJSZWdFeHAudGVzdChsaW5lVGV4dCkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBsaW5lcy5wdXNoKHtcbiAgICAgICAgICAgIGxpbmU6IGxpbmVUZXh0LFxuICAgICAgICAgICAgc3VibGluZXM6IHN1YmxpbmVUZXh0cy5tYXAoKHN1YmxpbmU6IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgICBpZiAobGlzdENoYXJSZWdFeHAudGVzdChzdWJsaW5lKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiAnJztcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICByZXR1cm4gc3VibGluZS50cmltKCk7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbXBvbmVudFJlZi5pbnN0YW5jZS5saW5lcyA9IGxpbmVzO1xuICAgICAgfVxuICAgICk7XG4gIH1cbn1cbiIsIjxkaXYgdGRGbGF2b3JlZE1hcmtkb3duQ29udGFpbmVyPlxuICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG48L2Rpdj5cbiJdfQ==
538
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxhdm9yZWQtbWFya2Rvd24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9tYXJrZG93bi1mbGF2b3JlZC9zcmMvbGliL2ZsYXZvcmVkLW1hcmtkb3duLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL2xpYnMvbWFya2Rvd24tZmxhdm9yZWQvc3JjL2xpYi9mbGF2b3JlZC1tYXJrZG93bi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFNBQVMsRUFFVCxLQUFLLEVBQ0wsU0FBUyxFQUdULGlCQUFpQixFQUNqQixZQUFZLEVBQ1osTUFBTSxFQUNOLGdCQUFnQixFQUNoQix3QkFBd0IsRUFDeEIsUUFBUSxFQUVSLFNBQVMsRUFDVCx1QkFBdUIsRUFHdkIsVUFBVSxFQUNWLFdBQVcsR0FHWixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDekQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2pELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzdELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTNDLE9BQU8sRUFDTCx1QkFBdUIsR0FFeEIsTUFBTSwrQkFBK0IsQ0FBQztBQUN2QyxPQUFPLEVBQ0wsb0JBQW9CLEdBR3JCLE1BQU0scUJBQXFCLENBQUM7QUFFN0IsT0FBTyxFQUFFLG1CQUFtQixFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDOzs7Ozs7O0lBbUIvRCwwQ0FBbUQ7SUFBQSxZQUVqRDtJQUFBLGlCQUFrQjs7O0lBRitCLGVBRWpEO0lBRmlELHFDQUVqRDs7O0lBQ0YsZ0NBQWdDO0lBQUEsWUFBc0I7SUFBQSxpQkFBVzs7OztJQUFqQyxlQUFzQjtJQUF0Qiw0Q0FBc0I7OztJQUp4RCxnQ0FBMkM7SUFDekMsdUhBRW9CO0lBQ3BCLHlHQUFpRTtJQUNuRSwwQkFBZTs7O0lBTEQsNkNBQTRCOzs7SUFRNUMsaUNBQXFFOzs7SUFDckUsMEJBQW1FOzs7QUFJekUsTUFBTSxPQUFPLGdDQUFnQztJQWxCN0M7UUFtQlcsZUFBVSxHQUFxQyxFQUFFLENBQUM7S0FpQjVEO0lBVkMsUUFBUTtRQUNOLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FDekMsQ0FBQyxDQUFpQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUM5QyxDQUFDO1FBQ0YsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLGtCQUFrQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDbkMsQ0FBQzs7Z0hBakJVLGdDQUFnQzttRkFBaEMsZ0NBQWdDO3VCQUdoQyxPQUFPOzs7OztRQW5CaEIsb0NBQTZDO1FBRTNDLGlHQU9jO1FBRWQsdUdBQXFFO1FBQ3JFLHlGQUFtRTtRQUNyRSxpQkFBWTs7UUFiRCwyQ0FBeUI7UUFFSixlQUFzQjtRQUF0Qix3Q0FBc0I7UUFTbkMsZUFBaUM7UUFBakMsc0RBQWlDO1FBQ3BCLGVBQXlCO1FBQXpCLHVEQUF5Qjs7dUZBSWhELGdDQUFnQztjQWxCNUMsU0FBUztlQUFDO2dCQUNULFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7O0dBZVQ7YUFDRjtnQkFFVSxVQUFVO2tCQUFsQixLQUFLO1lBQ0csSUFBSTtrQkFBWixLQUFLO1lBQ2MsSUFBSTtrQkFBdkIsU0FBUzttQkFBQyxPQUFPOztBQXdCcEIsTUFBTSxPQUFPLGlDQUFpQztJQVA5QztRQVFnQyxZQUFPLEdBQUcsY0FBYyxDQUFDO1FBQzlDLFNBQUksR0FBRyxFQUFFLENBQUM7UUFDVixTQUFJLEdBQUcsRUFBRSxDQUFDO1FBRW5CLFlBQU8sR0FBc0QsSUFBSSxZQUFZLEVBQXVDLENBQUM7S0FJdEg7SUFIQyxTQUFTO1FBQ1AsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7SUFDMUQsQ0FBQzs7a0hBUlUsaUNBQWlDO29GQUFqQyxpQ0FBaUM7OztRQUwxQyxpQ0FBZ0Q7UUFBdEIsOEdBQVMsZUFBVyxJQUFDO1FBQzdDLFlBQ0Y7UUFBQSxpQkFBUzs7UUFEUCxlQUNGO1FBREUseUNBQ0Y7O3VGQUdTLGlDQUFpQztjQVA3QyxTQUFTO2VBQUM7Z0JBQ1QsUUFBUSxFQUFFOzs7O0dBSVQ7YUFDRjtnQkFFK0IsT0FBTztrQkFBcEMsV0FBVzttQkFBQyxlQUFlO1lBQ25CLElBQUk7a0JBQVosS0FBSztZQUNHLElBQUk7a0JBQVosS0FBSztZQUVOLE9BQU87a0JBRE4sTUFBTTs7QUFVVCxNQUFNLE9BQU8sb0NBQW9DO0lBQy9DLFlBQ1MsZ0JBQWtDLEVBQ2pDLFNBQW9CO1FBRHJCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDakMsY0FBUyxHQUFULFNBQVMsQ0FBVztJQUMzQixDQUFDO0lBRUosS0FBSztRQUNILElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUN4QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFDM0MsV0FBVyxFQUNYLEVBQUUsQ0FDSCxDQUFDO1FBQ0YsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ2hDLENBQUM7O3dIQWJVLG9DQUFvQzt1RkFBcEMsb0NBQW9DO3VGQUFwQyxvQ0FBb0M7Y0FIaEQsU0FBUztlQUFDO2dCQUNULFFBQVEsRUFBRSwrQkFBK0I7YUFDMUM7O0FBNEJELE1BQU0sT0FBTywyQkFBMkI7SUE4R3RDLFlBQ1UseUJBQW1ELEVBQ25ELFNBQW9CLEVBQ3BCLGtCQUFxQyxFQUNyQyxTQUFtQixFQUNuQixXQUF1QjtRQUp2Qiw4QkFBeUIsR0FBekIseUJBQXlCLENBQTBCO1FBQ25ELGNBQVMsR0FBVCxTQUFTLENBQVc7UUFDcEIsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFtQjtRQUNyQyxjQUFTLEdBQVQsU0FBUyxDQUFVO1FBQ25CLGdCQUFXLEdBQVgsV0FBVyxDQUFZO1FBL0d6QixzQkFBaUIsR0FBRyxLQUFLLENBQUM7UUFJMUIsZ0JBQVcsR0FBNkMsRUFBRSxDQUFDO1FBQzNELGNBQVMsR0FBRyxLQUFLLENBQUM7UUE4QzFCOzs7OztXQUtHO1FBQ00sd0JBQW1CLEdBQUksS0FBSyxDQUFDO1FBRXRDOzs7O1dBSUc7UUFDTSxxQkFBZ0IsR0FBdUIsRUFBRSxDQUFDO1FBRW5EOzs7O1dBSUc7UUFDTSxrQkFBYSxHQUFHLEtBQUssQ0FBQztRQUUvQjs7OztXQUlHO1FBQ00sb0JBQWUsR0FBc0IsRUFBRSxDQUFDO1FBRWpEOzs7V0FHRztRQUNNLGVBQVUsR0FBSSxLQUFLLENBQUM7UUFFN0I7OztXQUdHO1FBQ08saUJBQVksR0FDcEIsSUFBSSxZQUFZLEVBQWEsQ0FBQztRQUVoQzs7OztXQUlHO1FBRUgsa0JBQWEsR0FBc0QsSUFBSSxZQUFZLEVBQXVDLENBQUM7UUFLbkgsY0FBUyxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7SUFRckMsQ0FBQztJQTFHSjs7Ozs7O09BTUc7SUFDSCxJQUNJLE9BQU8sQ0FBQyxPQUFlO1FBQ3pCLElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDO0lBQzFCLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILElBQ0ksZ0JBQWdCLENBQUMsZ0JBQXlCO1FBQzVDLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxnQkFBZ0IsQ0FBQztJQUM1QyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxJQUNJLFNBQVMsQ0FBQyxTQUFpQjtRQUM3QixJQUFJLENBQUMsVUFBVSxHQUFHLFNBQVMsQ0FBQztJQUM5QixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxJQUNJLE1BQU0sQ0FBQyxNQUFjO1FBQ3ZCLElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDO0lBQ3hCLENBQUM7SUFpRUQsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLHNCQUFzQjtRQUN0QixJQUNFLE9BQU8sQ0FBQyxRQUFRLENBQUM7WUFDakIsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDO1lBQ25CLENBQUMsT0FBTyxDQUFDLGtCQUFrQixDQUFDO1lBQzVCLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxFQUNyQjtZQUNBLGNBQWMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDO1NBQ3JFO2FBQU07WUFDTCxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7U0FDaEI7SUFDSCxDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2xCLElBQUksQ0FBQyxZQUFZLENBQ0QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsYUFBYztpQkFDakUsV0FBVyxJQUFJLEVBQUUsQ0FDckIsQ0FBQztZQUNGLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFO2dCQUMxQixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztnQkFDdEIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3pDLENBQUMsQ0FBQyxDQUFDO1NBQ0o7SUFDSCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVELE9BQU87UUFDTCxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDakIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDbEM7YUFBTSxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDekIsSUFBSSxDQUFDLFlBQVksQ0FDRCxJQUFJLENBQUMsU0FBUyxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxhQUFjO2lCQUNqRSxXQUFXLElBQUksRUFBRSxDQUNyQixDQUFDO1NBQ0g7UUFDRCxJQUFJLENBQUMsa0JBQWtCLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDekMsQ0FBQztJQUVPLFlBQVksQ0FBQyxRQUFnQjtRQUNuQyxJQUFJLFFBQVEsSUFBSSxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUMxQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ3ZCLFFBQVEsR0FBRyxRQUFRO2lCQUNoQixPQUFPLENBQUMsZUFBZSxFQUFFLEVBQUUsQ0FBQztpQkFDNUIsT0FBTyxDQUFDLHVCQUF1QixFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ3hDLG9DQUFvQztZQUNwQyxJQUFJLEtBQUssR0FBYSxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBRTNDLHVFQUF1RTtZQUN2RSxNQUFNLHdCQUF3QixHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDN0QsTUFBTSxtQkFBbUIsR0FBRyx3QkFBd0I7Z0JBQ2xELENBQUMsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDLENBQUM7Z0JBQzdCLENBQUMsQ0FBQyxJQUFJLENBQUM7WUFFVCxvRUFBb0U7WUFDcEUsMkJBQTJCO1lBQzNCLE1BQU0sdUJBQXVCLEdBQUcsSUFBSSxNQUFNLENBQUMsR0FBRyxHQUFHLG1CQUFtQixDQUFDLENBQUM7WUFDdEUsS0FBSyxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsVUFBVSxJQUFZO2dCQUN0QyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsdUJBQXVCLEVBQUUsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQztZQUNyRSxDQUFDLENBQUMsQ0FBQztZQUVILHdDQUF3QztZQUN4QyxRQUFRLEdBQUcsQ0FBQyxHQUFHLEtBQUssRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3pDLFFBQVEsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDN0MsUUFBUSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUMzQyxRQUFRLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUN6QyxRQUFRLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUUxQyxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUU7Z0JBQ25CLFFBQVEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2FBQ3pDO1lBRUQsTUFBTSxJQUFJLEdBQWEsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDckQsMEVBQTBFO1lBQzFFLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFhLEVBQUUsS0FBYSxFQUFFLEVBQUU7Z0JBQ3pDLE9BQU8sUUFBUSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3BFLENBQUMsQ0FBQyxDQUFDO1lBQ0gsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQ3RDLDZHQUE2RztZQUM3RyxVQUFVLENBQ1IsR0FBRyxFQUFFLENBQ0gsY0FBYyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLEVBQ3JFLEdBQUcsQ0FDSixDQUFDO1lBQ0YsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUN6QixPQUFPLENBQUMsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRTtnQkFDMUIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3pDLENBQUMsQ0FBQyxDQUFDO1NBQ0o7SUFDSCxDQUFDO0lBRU8sT0FBTyxDQUFDLFFBQWdCLEVBQUUsR0FBVyxFQUFFLElBQWM7UUFDM0QsSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNiLE9BQU87U0FDUjtRQUNELElBQUksR0FBRyxJQUFJLFFBQVEsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUU7WUFDckMsTUFBTSxhQUFhLEdBQWEsUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNwRCxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDYixJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDdkMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQ3BDLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUM5QixJQUFJLENBQUMsU0FBUyxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FDdkMsQ0FBQztZQUNGLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUM3QixJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7U0FDL0M7YUFBTTtZQUNMLE1BQU0sVUFBVSxHQUNkLElBQUksQ0FBQyx5QkFBeUI7aUJBQzNCLHVCQUF1QixDQUFDLG1CQUFtQixDQUFDO2lCQUM1QyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQzVCLFVBQVUsQ0FBQyxRQUFRLENBQUMsT0FBTyxHQUFHLFFBQVEsQ0FBQztZQUN2QyxVQUFVLENBQUMsUUFBUSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDO1lBQ2hELFVBQVUsQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDO1lBQzlELFVBQVUsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDOUIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQ3BDLFVBQVUsQ0FBQyxRQUFRLEVBQ25CLElBQUksQ0FBQyxTQUFTLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUN2QyxDQUFDO1NBQ0g7SUFDSCxDQUFDO0lBRU8saUJBQWlCLENBQ3ZCLFFBQWdCLEVBQ2hCLElBQWEsRUFDYixNQUFjLEVBQ2QsWUFBOEI7UUFFOUIsSUFBSSxjQUFjLEdBQUcsQ0FBQyxDQUFDO1FBQ3ZCLE9BQU8sUUFBUSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLElBQVcsRUFBRSxFQUFFO1lBQ2pELE1BQU0sZ0JBQWdCLEdBQ3BCLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUMvRCxNQUFNLFlBQVksR0FBb0IsZ0JBQWdCLENBQUMsTUFBTSxDQUMzRCxJQUFJLENBQUMsU0FBUyxDQUNmLENBQUM7WUFDRixZQUFZLENBQUMsWUFBWSxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUM7WUFDcEMsTUFBTSxHQUFHLEdBQ1AsR0FBRztnQkFDSCxnQkFBZ0IsQ0FBQyxRQUFRO2dCQUN6QixlQUFlO2dCQUNmLGNBQWMsRUFBRTtnQkFDaEIsR0FBRyxDQUFDO1lBQ04sSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsR0FBRyxZQUFZLENBQUM7WUFDckMsT0FBTyxHQUFHLENBQUM7UUFDYixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyxnQkFBZ0IsQ0FBQyxRQUFnQjtRQUN2QyxNQUFNLGNBQWMsR0FBRywyQkFBMkIsQ0FBQztRQUNuRCxPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FDM0IsUUFBUSxFQUNSLFdBQVcsRUFDWCxjQUFjLEVBQ2QsQ0FDRSxZQUF1QyxFQUN2QyxLQUFhLEVBQ2IsT0FBZSxFQUNmLEtBQWEsRUFDYixFQUFFO1lBQ0YsWUFBWSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNqRCxZQUFZLENBQUMsUUFBUSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7WUFDdEMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxhQUFhLEdBQUcsT0FBTyxDQUFDO1lBQzlDLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUNWLENBQ1osWUFBWSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUMvQyxDQUFDLHNCQUFzQixDQUFDLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQ2xELFdBQVcsRUFDWCxLQUFLLENBQ04sQ0FBQztRQUNKLENBQUMsQ0FDRixDQUFDO0lBQ0osQ0FBQztJQUVPLGVBQWUsQ0FBQyxRQUFnQjtRQUN0QyxNQUFNLFlBQVksR0FBRywrQkFBK0IsQ0FBQztRQUNyRCxNQUFNLGtCQUFrQixHQUFHLElBQUksTUFBTSxDQUNuQyxZQUFZLENBQUMsTUFBTSxFQUNuQixZQUFZLENBQUMsS0FBSyxHQUFHLEdBQUcsQ0FDekIsQ0FBQztRQUNGLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUMzQixRQUFRLEVBQ1IsaUNBQWlDLEVBQ2pDLGtCQUFrQixFQUNsQixDQUNFLFlBQTZELEVBQzdELEtBQWEsRUFDYixFQUFFO1lBQ0YsTUFBTSxPQUFPLEdBQUcsWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN6QyxJQUFJLENBQUMsT0FBTyxFQUFFO2dCQUNaLE9BQU87YUFDUjtZQUNELE1BQU0sSUFBSSxHQUFXLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNoQyxNQUFNLElBQUksR0FBVyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDaEMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1lBQ2xDLFlBQVksQ0FBQyxRQUFRLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztZQUNsQyxZQUFZLENBQUMsUUFBUSxDQUFDLE9BQU87aUJBQzFCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO2lCQUMvQixTQUFTLENBQUMsQ0FBQyxVQUErQyxFQUFFLEVBQUUsQ0FDN0QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQ3BDLENBQUM7UUFDTixDQUFDLENBQ0YsQ0FBQztJQUNKLENBQUM7SUFFTyxrQkFBa0IsQ0FBQyxRQUFnQjtRQUN6QyxNQUFNLGVBQWUsR0FBRyxtQ0FBbUMsQ0FBQztRQUM1RCxPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FDM0IsUUFBUSxFQUNSLG9CQUFvQixFQUNwQixlQUFlLEVBQ2YsQ0FDRSxZQUFnRCxFQUNoRCxLQUFhLEVBQ2IsUUFBZ0IsRUFDaEIsU0FBaUIsRUFDakIsRUFBRTtZQUNGLElBQUksUUFBUSxFQUFFO2dCQUNaLFlBQVksQ0FBQyxRQUFRLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQzthQUMzQztZQUNELFlBQVksQ0FBQyxRQUFRLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDO1lBQ3JFLFlBQVksQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDO1lBQy9ELFlBQVksQ0FBQyxRQUFRLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUM7WUFDM0QsWUFBWSxDQUFDLFFBQVEsQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQztZQUM3RCxZQUFZLENBQUMsUUFBUSxDQUFDLE9BQU8sR0FBRyxTQUFTLENBQUM7UUFDNUMsQ0FBQyxDQUNGLENBQUM7SUFDSixDQUFDO0lBRU8sY0FBYyxDQUFDLFFBQWdCO1FBQ3JDLE1BQU0sUUFBUSxHQUNaLHdIQUF3SCxDQUFDO1FBQzNILE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUMzQixRQUFRLEVBQ1IsZ0NBQWdDLEVBQ2hDLFFBQVEsRUFDUixDQUNFLFlBQTRELEVBQzVELEtBQWEsRUFDYixFQUFFO1lBQ0YsTUFBTSxjQUFjLEdBQWEsS0FBSztpQkFDbkMsT0FBTyxDQUFDLHVCQUF1QixFQUFFLEVBQUUsQ0FBQztpQkFDcEMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2YsTUFBTSxPQUFPLEdBQWEsY0FBYyxDQUFDLENBQUMsQ0FBQztpQkFDeEMsS0FBSyxDQUFDLEdBQUcsQ0FBQztpQkFDVixNQUFNLENBQUMsQ0FBQyxHQUFXLEVBQUUsRUFBRTtnQkFDdEIsT0FBTyxHQUFHLENBQUM7WUFDYixDQUFDLENBQUM7aUJBQ0QsR0FBRyxDQUFDLENBQUMsQ0FBUyxFQUFFLEVBQUU7Z0JBQ2pCLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ2xCLENBQUMsQ0FBQyxDQUFDO1lBQ0wsTUFBTSxTQUFTLEdBQWEsY0FBYyxDQUFDLENBQUMsQ0FBQztpQkFDMUMsS0FBSyxDQUFDLEdBQUcsQ0FBQztpQkFDVixNQUFNLENBQUMsQ0FBQyxDQUFTLEVBQUUsRUFBRTtnQkFDcEIsT0FBTyxDQUFDLENBQUM7WUFDWCxDQUFDLENBQUM7aUJBQ0QsR0FBRyxDQUFDLENBQUMsQ0FBUyxFQUFFLEVBQUU7Z0JBQ2pCLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ2xCLENBQUMsQ0FBQyxDQUFDO1lBRUwsTUFBTSxJQUFJLEdBQVUsRUFBRSxDQUFDO1lBQ3ZCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxjQUFjLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO2dCQUM5QyxNQUFNLFFBQVEsR0FBYSxjQUFjLENBQUMsQ0FBQyxDQUFDO3FCQUN6QyxLQUFLLENBQUMsR0FBRyxDQUFDO3FCQUNWLE1BQU0sQ0FBQyxDQUFDLElBQVksRUFBRSxFQUFFO29CQUN2QixPQUFPLElBQUksQ0FBQztnQkFDZCxDQUFDLENBQUM7cUJBQ0QsR0FBRyxDQUFDLENBQUMsQ0FBUyxFQUFFLEVBQUU7b0JBQ2pCLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUNsQixDQUFDLENBQUMsQ0FBQztnQkFDTCxNQUFNLEdBQUcsR0FBUSxFQUFFLENBQUM7Z0JBQ3BCLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFXLEVBQUUsS0FBYSxFQUFFLEVBQUU7b0JBQzdDLE1BQU0sWUFBWSxHQUFXLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztvQkFDN0MsSUFBSSxZQUFZLEVBQUU7d0JBQ2hCLEdBQUcsQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUMsR0FBRyxZQUFZLENBQUMsT0FBTyxDQUNsRCxRQUFRLEVBQ1IsQ0FBQyxDQUFTLEVBQUUsS0FBYSxFQUFFLEVBQUU7NEJBQzNCLE9BQU8sS0FBSyxDQUFDO3dCQUNmLENBQUMsQ0FDRixDQUFDO3FCQUNIO2dCQUNILENBQUMsQ0FBQyxDQUFDO2dCQUNILElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7YUFDaEI7WUFDRCxZQUFZLENBQUMsUUFBUSxDQUFDLFVBQVUsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUM1QyxDQUFDLEdBQVcsRUFBRSxLQUFhLEVBQUUsRUFBRTtnQkFDN0IsT0FBTztvQkFDTCxLQUFLLEVBQUUsR0FBRztvQkFDVixJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLFVBQVUsS0FBSyxFQUFFO29CQUN4RCxPQUFPLEVBQUUsb0JBQW9CLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztpQkFDckQsQ0FBQztZQUNKLENBQUMsQ0FDRixDQUFDO1lBQ0YsWUFBWSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ3BDLENBQUMsQ0FDRixDQUFDO0lBQ0osQ0FBQztJQUVPLGFBQWEsQ0FBQyxRQUFnQjtRQUNwQyxNQUFNLFVBQVUsR0FBRyx1Q0FBdUMsQ0FBQztRQUMzRCxNQUFNLGNBQWMsR0FBRyxJQUFJLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNoRCxPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FDM0IsUUFBUSxFQUNSLHVCQUF1QixFQUN2QixVQUFVLEVBQ1YsQ0FBQyxZQUFtRCxFQUFFLEtBQWEsRUFBRSxFQUFFO1lBQ3JFLE1BQU0sS0FBSyxHQUFHLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDdEMsTUFBTSxVQUFVLEdBQUcsS0FBSyxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBRXBELE1BQU0sU0FBUyxHQUFhLEtBQUssQ0FBQyxLQUFLLENBQ3JDLElBQUksTUFBTSxDQUNSLE9BQU8sR0FBRyxDQUFDLFVBQVUsR0FBRyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsR0FBRyx1QkFBdUIsQ0FDaEUsQ0FDRixDQUFDO1lBQ0YsU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2xCLE1BQU0sS0FBSyxHQUF3QixFQUFFLENBQUM7WUFDdEMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQVksRUFBRSxFQUFFO2dCQUNqQyxNQUFNLFlBQVksR0FBYSxJQUFJLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLENBQUM7Z0JBQzVELE1BQU0sUUFBUSxHQUFHLFlBQVksQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUM7Z0JBRTVDLElBQUksY0FBYyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRTtvQkFDakMsT0FBTztpQkFDUjtnQkFFRCxLQUFLLENBQUMsSUFBSSxDQUFDO29CQUNULElBQUksRUFBRSxRQUFRO29CQUNkLFFBQVEsRUFBRSxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBZSxFQUFFLEVBQUU7d0JBQzdDLElBQUksY0FBYyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRTs0QkFDaEMsT0FBTyxFQUFFLENBQUM7eUJBQ1g7d0JBQ0QsT0FBTyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7b0JBQ3hCLENBQUMsQ0FBQztpQkFDSCxDQUFDLENBQUM7WUFDTCxDQUFDLENBQUMsQ0FBQztZQUNILFlBQVksQ0FBQyxRQUFRLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUN0QyxDQUFDLENBQ0YsQ0FBQztJQUNKLENBQUM7O3NHQXpjVSwyQkFBMkI7OEVBQTNCLDJCQUEyQjt1QkF5RzNCLG9DQUFvQzs7Ozs7O1FDclBqRCw4QkFBaUM7UUFDL0Isa0JBQXlCO1FBQzNCLGlCQUFNO3NCRCtHTyxvQ0FBb0M7dUZBMkJwQywyQkFBMkI7Y0FOdkMsU0FBUzsyQkFDRSxzQkFBc0IsbUJBR2YsdUJBQXVCLENBQUMsTUFBTTttTEFvQjNDLE9BQU87a0JBRFYsS0FBSztZQVlGLGdCQUFnQjtrQkFEbkIsS0FBSztZQVlGLFNBQVM7a0JBRFosS0FBSztZQVlGLE1BQU07a0JBRFQsS0FBSztZQVdHLG1CQUFtQjtrQkFBM0IsS0FBSztZQU9HLGdCQUFnQjtrQkFBeEIsS0FBSztZQU9HLGFBQWE7a0JBQXJCLEtBQUs7WUFPRyxlQUFlO2tCQUF2QixLQUFLO1lBTUcsVUFBVTtrQkFBbEIsS0FBSztZQU1JLFlBQVk7a0JBQXJCLE1BQU07WUFTUCxhQUFhO2tCQURaLE1BQU07WUFJUCxTQUFTO2tCQURSLFNBQVM7bUJBQUMsb0NBQW9DLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBEaXJlY3RpdmUsXG4gIEFmdGVyVmlld0luaXQsXG4gIElucHV0LFxuICBSZW5kZXJlcjIsXG4gIFR5cGUsXG4gIENvbXBvbmVudEZhY3RvcnksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIE91dHB1dCxcbiAgVmlld0NvbnRhaW5lclJlZixcbiAgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICBJbmplY3RvcixcbiAgQ29tcG9uZW50UmVmLFxuICBWaWV3Q2hpbGQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBPbkNoYW5nZXMsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIEVsZW1lbnRSZWYsXG4gIEhvc3RCaW5kaW5nLFxuICBPbkluaXQsXG4gIE9uRGVzdHJveSxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IE1hdENoZWNrYm94IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2hlY2tib3gnO1xuaW1wb3J0IHsgTWF0U29ydCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NvcnQnO1xuaW1wb3J0IHsgTWF0VGFibGVEYXRhU291cmNlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdGFibGUnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQge1xuICBUZEZsYXZvcmVkTGlzdENvbXBvbmVudCxcbiAgSUZsYXZvcmVkTGlzdEl0ZW0sXG59IGZyb20gJy4vY2ZtLWxpc3QvY2ZtLWxpc3QuY29tcG9uZW50JztcbmltcG9ydCB7XG4gIFRkSGlnaGxpZ2h0Q29tcG9uZW50LFxuICBJQ29weUNvZGVUb29sdGlwcyxcbiAgSVJhd1RvZ2dsZUxhYmVscyxcbn0gZnJvbSAnQGNvdmFsZW50L2hpZ2hsaWdodCc7XG5cbmltcG9ydCB7IFRkTWFya2Rvd25Db21wb25lbnQsIHNjcm9sbFRvQW5jaG9yIH0gZnJvbSAnQGNvdmFsZW50L21hcmtkb3duJztcblxuZXhwb3J0IGludGVyZmFjZSBJVGRGbGF2b3JlZE1hcmtkb3duQnV0dG9uQ2xpY2tFdmVudCB7XG4gIHRleHQ6IHN0cmluZztcbiAgZGF0YTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElUZEZsYXZvcmVkTWFya0Rvd25UYWJsZUNvbHVtbiB7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIG5hbWU6IHN0cmluZztcbiAgbnVtZXJpYzogYm9vbGVhbjtcbn1cblxuQENvbXBvbmVudCh7XG4gIHRlbXBsYXRlOiBgXG4gICAgPG1hdC10YWJsZSBbZGF0YVNvdXJjZV09XCJkYXRhU291cmNlXCIgbWF0U29ydD5cbiAgICAgIDwhLS0gQ29sdW1uIERlZmluaXRpb24gLS0+XG4gICAgICA8bmctdGVtcGxhdGUgbmdGb3IgbGV0LWNvbHVtbiBbbmdGb3JPZl09XCJjb2x1bW5EZWZzXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgW21hdENvbHVtbkRlZl09XCJjb2x1bW4ubmFtZVwiPlxuICAgICAgICAgIDxtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWYgbWF0LXNvcnQtaGVhZGVyPnt7XG4gICAgICAgICAgICBjb2x1bW4ubGFiZWxcbiAgICAgICAgICB9fTwvbWF0LWhlYWRlci1jZWxsPlxuICAgICAgICAgIDxtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCByb3dcIj57eyByb3dbY29sdW1uLm5hbWVdIH19PC9tYXQtY2VsbD5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgPCEtLSBIZWFkZXIgYW5kIFJvdyBEZWNsYXJhdGlvbnMgLS0+XG4gICAgICA8bWF0LWhlYWRlci1yb3cgKm1hdEhlYWRlclJvd0RlZj1cImRpc3BsYXllZENvbHVtbnNcIj48L21hdC1oZWFkZXItcm93PlxuICAgICAgPG1hdC1yb3cgKm1hdFJvd0RlZj1cImxldCByb3c7IGNvbHVtbnM6IGRpc3BsYXllZENvbHVtbnNcIj48L21hdC1yb3c+XG4gICAgPC9tYXQtdGFibGU+XG4gIGAsXG59KVxuZXhwb3J0IGNsYXNzIFRkRmxhdm9yZWRNYXJrZG93blRhYmxlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcbiAgQElucHV0KCkgY29sdW1uRGVmczogSVRkRmxhdm9yZWRNYXJrRG93blRhYmxlQ29sdW1uW10gPSBbXTtcbiAgQElucHV0KCkgZGF0YSE6IHVua25vd25bXTtcbiAgQFZpZXdDaGlsZChNYXRTb3J0KSBzb3J0ITogTWF0U29ydDtcblxuICBkaXNwbGF5ZWRDb2x1bW5zITogc3RyaW5nW107XG4gIGRhdGFTb3VyY2UhOiBNYXRUYWJsZURhdGFTb3VyY2U8dW5rbm93bj47XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5kaXNwbGF5ZWRDb2x1bW5zID0gdGhpcy5jb2x1bW5EZWZzLm1hcChcbiAgICAgIChjOiBJVGRGbGF2b3JlZE1hcmtEb3duVGFibGVDb2x1bW4pID0+IGMubmFtZVxuICAgICk7XG4gICAgdGhpcy5kYXRhU291cmNlID0gbmV3IE1hdFRhYmxlRGF0YVNvdXJjZSh0aGlzLmRhdGEpO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuZGF0YVNvdXJjZS5zb3J0ID0gdGhpcy5zb3J0O1xuICB9XG59XG5cbkBDb21wb25lbnQoe1xuICB0ZW1wbGF0ZTogYFxuICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gKGNsaWNrKT1cImVtaXRDbGljaygpXCI+XG4gICAgICB7eyB0ZXh0IH19XG4gICAgPC9idXR0b24+XG4gIGAsXG59KVxuZXhwb3J0IGNsYXNzIFRkRmxhdm9yZWRNYXJrZG93bkJ1dHRvbkNvbXBvbmVudCB7XG4gIEBIb3N0QmluZGluZygnc3R5bGUuZGlzcGxheScpIGRpc3BsYXkgPSAnaW5saW5lLWJsb2NrJztcbiAgQElucHV0KCkgdGV4dCA9ICcnO1xuICBASW5wdXQoKSBkYXRhID0gJyc7XG4gIEBPdXRwdXQoKVxuICBjbGlja2VkOiBFdmVudEVtaXR0ZXI8SVRkRmxhdm9yZWRNYXJrZG93bkJ1dHRvbkNsaWNrRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxJVGRGbGF2b3JlZE1hcmtkb3duQnV0dG9uQ2xpY2tFdmVudD4oKTtcbiAgZW1pdENsaWNrKCk6IHZvaWQge1xuICAgIHRoaXMuY2xpY2tlZC5lbWl0KHsgdGV4dDogdGhpcy50ZXh0LCBkYXRhOiB0aGlzLmRhdGEgfSk7XG4gIH1cbn1cblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW3RkRmxhdm9yZWRNYXJrZG93bkNvbnRhaW5lcl0nLFxufSlcbmV4cG9ydCBjbGFzcyBUZEZsYXZvcmVkTWFya2Rvd25Db250YWluZXJEaXJlY3RpdmUge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZixcbiAgICBwcml2YXRlIF9yZW5kZXJlcjogUmVuZGVyZXIyXG4gICkge31cblxuICBjbGVhcigpOiB2b2lkIHtcbiAgICB0aGlzLl9yZW5kZXJlci5zZXRQcm9wZXJ0eShcbiAgICAgIHRoaXMudmlld0NvbnRhaW5lclJlZi5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQsXG4gICAgICAnaW5uZXJIVE1MJyxcbiAgICAgICcnXG4gICAgKTtcbiAgICB0aGlzLnZpZXdDb250YWluZXJSZWYuY2xlYXIoKTtcbiAgfVxufVxuXG5leHBvcnQgdHlwZSBJUmVwbGFjZXJGdW5jPFQ+ID0gKFxuICBjb21wb25lbnRSZWY6IENvbXBvbmVudFJlZjxUPixcbiAgLi4uYXJnczogYW55W11cbikgPT4gdm9pZDtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGQtZmxhdm9yZWQtbWFya2Rvd24nLFxuICBzdHlsZVVybHM6IFsnLi9mbGF2b3JlZC1tYXJrZG93bi5jb21wb25lbnQuc2NzcyddLFxuICB0ZW1wbGF0ZVVybDogJy4vZmxhdm9yZWQtbWFya2Rvd24uY29tcG9uZW50Lmh0bWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgVGRGbGF2b3JlZE1hcmtkb3duQ29tcG9uZW50XG4gIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3lcbntcbiAgcHJpdmF0ZSBfY29udGVudCE6IHN0cmluZztcbiAgcHJpdmF0ZSBfc2ltcGxlTGluZUJyZWFrcyA9IGZhbHNlO1xuICBwcml2YXRlIF9ob3N0ZWRVcmwhOiBzdHJpbmc7XG4gIHByaXZhdGUgX2FuY2hvciE6IHN0cmluZztcblxuICBwcml2YXRlIF9jb21wb25lbnRzOiB7IFtrZXk6IHN0cmluZ106IENvbXBvbmVudFJlZjx1bmtub3duPiB9ID0ge307XG4gIHByaXZhdGUgX3ZpZXdJbml0ID0gZmFsc2U7XG4gIC8qKlxuICAgKiBjb250ZW50Pzogc3RyaW5nXG4gICAqXG4gICAqIE1hcmtkb3duIGZvcm1hdCBjb250ZW50IHRvIGJlIHBhcnNlZCBhcyBtYXRlcmlhbC9jb3ZhbGVudCBtYXJrdXAuXG4gICAqXG4gICAqIGUuZy4gUkVBRE1FLm1kIGNvbnRlbnQuXG4gICAqL1xuICBASW5wdXQoKVxuICBzZXQgY29udGVudChjb250ZW50OiBzdHJpbmcpIHtcbiAgICB0aGlzLl9jb250ZW50ID0gY29udGVudDtcbiAgfVxuXG4gIC8qKlxuICAgKiBzaW1wbGVMaW5lQnJlYWtzPzogc3RyaW5nXG4gICAqXG4gICAqIFNldHMgd2hldGhlciBuZXdsaW5lIGNoYXJhY3RlcnMgaW5zaWRlIHBhcmFncmFwaHMgYW5kIHNwYW5zIGFyZSBwYXJzZWQgYXMgPGJyLz4uXG4gICAqIERlZmF1bHRzIHRvIGZhbHNlLlxuICAgKi9cbiAgQElucHV0KClcbiAgc2V0IHNpbXBsZUxpbmVCcmVha3Moc2ltcGxlTGluZUJyZWFrczogYm9vbGVhbikge1xuICAgIHRoaXMuX3NpbXBsZUxpbmVCcmVha3MgPSBzaW1wbGVMaW5lQnJlYWtzO1xuICB9XG5cbiAgLyoqXG4gICAqIGhvc3RlZFVybD86IHN0cmluZ1xuICAgKlxuICAgKiBJZiBtYXJrZG93biBjb250YWlucyByZWxhdGl2ZSBwYXRocywgdGhpcyBpcyByZXF1aXJlZCB0byBnZW5lcmF0ZSBjb3JyZWN0IHVybHNcbiAgICpcbiAgICovXG4gIEBJbnB1dCgpXG4gIHNldCBob3N0ZWRVcmwoaG9zdGVkVXJsOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9ob3N0ZWRVcmwgPSBob3N0ZWRVcmw7XG4gIH1cblxuICAvKipcbiAgICogYW5jaG9yPzogc3RyaW5nXG4gICAqXG4gICAqIEFuY2hvciB0byBqdW1wIHRvXG4gICAqXG4gICAqL1xuICBASW5wdXQoKVxuICBzZXQgYW5jaG9yKGFuY2hvcjogc3RyaW5nKSB7XG4gICAgdGhpcy5fYW5jaG9yID0gYW5jaG9yO1xuICB9XG5cbiAgLyoqXG4gICAqIGNvcHlDb2RlVG9DbGlwYm9hcmQ/OiBib29sZWFuXG4gICAqXG4gICAqIERpc3BsYXkgY29weSBidXR0b24gb24gY29kZSBzbmlwcGV0cyB0byBjb3B5IGNvZGUgdG8gY2xpcGJvYXJkLlxuICAgKlxuICAgKi9cbiAgQElucHV0KCkgY29weUNvZGVUb0NsaXBib2FyZD8gPSBmYWxzZTtcblxuICAvKipcbiAgICogY29weUNvZGVUb29sdGlwcz86IElDb3B5Q29kZVRvb2x0aXBzXG4gICAqXG4gICAqIFRvb2x0aXBzIGZvciBjb3B5IGJ1dHRvbiB0byBjb3B5IGFuZCB1cG9uIGNvcHlpbmcuXG4gICAqL1xuICBASW5wdXQoKSBjb3B5Q29kZVRvb2x0aXBzPzogSUNvcHlDb2RlVG9vbHRpcHMgPSB7fTtcblxuICAvKipcbiAgICogdG9nZ2xlUmF3Q29kZT86IGJvb2xlYW5cbiAgICpcbiAgICogRGlzcGxheSBidXR0b24gdG8gdG9nZ2xlIHJhdyBjb2RlIHZpZXdcbiAgICovXG4gIEBJbnB1dCgpIHRvZ2dsZVJhd0NvZGUgPSBmYWxzZTtcblxuICAvKipcbiAgICogcmF3VG9nZ2xlTGFiZWxzPzogSVJhd1RvZ2dsZUxhYmVsc1xuICAgKlxuICAgKiBMYWJlbHMgZm9yIHJhdyBjb2RlIHRvZ2dsZSBidXR0b25cbiAgICovXG4gIEBJbnB1dCgpIHJhd1RvZ2dsZUxhYmVscz86IElSYXdUb2dnbGVMYWJlbHMgPSB7fTtcblxuICAvKipcbiAgICogdXNlQ2ZtTGlzdD86IGJvb2xlYW4gPSBmYWxzZTtcbiAgICogVXNlIENGTSBsaXN0IGNvbXBvbmVudCBpbnN0ZWFkIG9mIHZhbmlsbGEgbWFya2Rvd24gbGlzdC4gVXNlZCBpbiBjb3ZhbGVudCBkb2N1bWVudGF0aW9uIGFwcC5cbiAgICovXG4gIEBJbnB1dCgpIHVzZUNmbUxpc3Q/ID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIGNvbnRlbnRSZWFkeT86IGZ1bmN0aW9uXG4gICAqIEV2ZW50IGVtaXR0ZWQgYWZ0ZXIgdGhlIG1hcmtkb3duIGNvbnRlbnQgcmVuZGVyaW5nIGlzIGZpbmlzaGVkLlxuICAgKi9cbiAgQE91dHB1dCgpIGNvbnRlbnRSZWFkeTogRXZlbnRFbWl0dGVyPHVuZGVmaW5lZD4gPVxuICAgIG5ldyBFdmVudEVtaXR0ZXI8dW5kZWZpbmVkPigpO1xuXG4gIC8qKlxuICAgKiBidXR0b25DbGlja2VkPzogSVRkRmxhdm9yZWRNYXJrZG93bkJ1dHRvbkNsaWNrRXZlbnRcbiAgICogRXZlbnQgZW1pdHRlZCB3aGVuIGEgYnV0dG9uIGlzIGNsaWNrZWRcbiAgICogSXMgYW4gb2JqZWN0IGNvbnRhaW5pbmcgdGV4dCBhbmQgZGF0YSBvZiBidXR0b25cbiAgICovXG4gIEBPdXRwdXQoKVxuICBidXR0b25DbGlja2VkOiBFdmVudEVtaXR0ZXI8SVRkRmxhdm9yZWRNYXJrZG93bkJ1dHRvbkNsaWNrRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxJVGRGbGF2b3JlZE1hcmtkb3duQnV0dG9uQ2xpY2tFdmVudD4oKTtcblxuICBAVmlld0NoaWxkKFRkRmxhdm9yZWRNYXJrZG93bkNvbnRhaW5lckRpcmVjdGl2ZSwgeyBzdGF0aWM6IHRydWUgfSlcbiAgY29udGFpbmVyITogVGRGbGF2b3JlZE1hcmtkb3duQ29udGFpbmVyRGlyZWN0aXZlO1xuXG4gIHByaXZhdGUgX2Rlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIF9jb21wb25lbnRGYWN0b3J5UmVzb2x2ZXI6IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcbiAgICBwcml2YXRlIF9yZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgIHByaXZhdGUgX2NoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIF9pbmplY3RvcjogSW5qZWN0b3IsXG4gICAgcHJpdmF0ZSBfZWxlbWVudFJlZjogRWxlbWVudFJlZlxuICApIHt9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIC8vIG9ubHkgYW5jaG9yIGNoYW5nZWRcbiAgICBpZiAoXG4gICAgICBjaGFuZ2VzWydhbmNob3InXSAmJlxuICAgICAgIWNoYW5nZXNbJ2NvbnRlbnQnXSAmJlxuICAgICAgIWNoYW5nZXNbJ3NpbXBsZUxpbmVCcmVha3MnXSAmJlxuICAgICAgIWNoYW5nZXNbJ2hvc3RlZFVybCddXG4gICAgKSB7XG4gICAgICBzY3JvbGxUb0FuY2hvcih0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIHRoaXMuX2FuY2hvciwgZmFsc2UpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnJlZnJlc2goKTtcbiAgICB9XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLl9jb250ZW50KSB7XG4gICAgICB0aGlzLl9sb2FkQ29udGVudChcbiAgICAgICAgKDxIVE1MRWxlbWVudD50aGlzLmNvbnRhaW5lci52aWV3Q29udGFpbmVyUmVmLmVsZW1lbnQubmF0aXZlRWxlbWVudClcbiAgICAgICAgICAudGV4dENvbnRlbnQgPz8gJydcbiAgICAgICk7XG4gICAgICBQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpID0+IHtcbiAgICAgICAgdGhpcy5fdmlld0luaXQgPSB0cnVlO1xuICAgICAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX2Rlc3Ryb3kkLm5leHQoKTtcbiAgfVxuXG4gIHJlZnJlc2goKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX2NvbnRlbnQpIHtcbiAgICAgIHRoaXMuX2xvYWRDb250ZW50KHRoaXMuX2NvbnRlbnQpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5fdmlld0luaXQpIHtcbiAgICAgIHRoaXMuX2xvYWRDb250ZW50KFxuICAgICAgICAoPEhUTUxFbGVtZW50PnRoaXMuY29udGFpbmVyLnZpZXdDb250YWluZXJSZWYuZWxlbWVudC5uYXRpdmVFbGVtZW50KVxuICAgICAgICAgIC50ZXh0Q29udGVudCA/PyAnJ1xuICAgICAgKTtcbiAgICB9XG4gICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBwcml2YXRlIF9sb2FkQ29udGVudChtYXJrZG93bjogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKG1hcmtkb3duICYmIG1hcmtkb3duLnRyaW0oKS5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLmNvbnRhaW5lci5jbGVhcigpO1xuICAgICAgbWFya2Rvd24gPSBtYXJrZG93blxuICAgICAgICAucmVwbGFjZSgvXihcXHN8XFx0KSpcXG4rL2csICcnKVxuICAgICAgICAucmVwbGFjZSgvKFxcc3xcXHQpKlxcbisoXFxzfFxcdCkqJC9nLCAnJyk7XG4gICAgICAvLyBTcGxpdCBtYXJrZG93biBieSBsaW5lIGNoYXJhY3RlcnNcbiAgICAgIGxldCBsaW5lczogc3RyaW5nW10gPSBtYXJrZG93bi5zcGxpdCgnXFxuJyk7XG5cbiAgICAgIC8vIGNoZWNrIGhvdyBtdWNoIGluZGVudGF0aW9uIGlzIHVzZWQgYnkgdGhlIGZpcnN0IGFjdHVhbCBtYXJrZG93biBsaW5lXG4gICAgICBjb25zdCBmaXJzdExpbmVXaGl0ZXNwYWNlTWF0Y2ggPSBsaW5lc1swXS5tYXRjaCgvXihcXHN8XFx0KSovKTtcbiAgICAgIGNvbnN0IGZpcnN0TGluZVdoaXRlc3BhY2UgPSBmaXJzdExpbmVXaGl0ZXNwYWNlTWF0Y2hcbiAgICAgICAgPyBmaXJzdExpbmVXaGl0ZXNwYWNlTWF0Y2hbMF1cbiAgICAgICAgOiBudWxsO1xuXG4gICAgICAvLyBSZW1vdmUgYWxsIGluZGVudGF0aW9uIHNwYWNlcyBzbyBtYXJrZG93biBjYW4gYmUgcGFyc2VkIGNvcnJlY3RseVxuICAgICAgLy8gUmVtb3ZlIGFsbCBcXHIgY2hhcmFjdGVyc1xuICAgICAgY29uc3Qgc3RhcnRpbmdXaGl0ZXNwYWNlUmVnZXggPSBuZXcgUmVnRXhwKCdeJyArIGZpcnN0TGluZVdoaXRlc3BhY2UpO1xuICAgICAgbGluZXMgPSBsaW5lcy5tYXAoZnVuY3Rpb24gKGxpbmU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBsaW5lLnJlcGxhY2Uoc3RhcnRpbmdXaGl0ZXNwYWNlUmVnZXgsICcnKS5yZXBsYWNlKCdcXHInLCAnJyk7XG4gICAgICB9KTtcblxuICAgICAgLy8gSm9pbiBsaW5lcyBhZ2FpbiB3aXRoIGxpbmUgY2hhcmFjdGVyc1xuICAgICAgbWFya2Rvd24gPSBbLi4ubGluZXMsICcnLCAnJ10uam9pbignXFxuJyk7XG4gICAgICBtYXJrZG93biA9IHRoaXMuX3JlcGxhY2VDb2RlQmxvY2tzKG1hcmtkb3duKTtcbiAgICAgIG1hcmtkb3duID0gdGhpcy5fcmVwbGFjZUNoZWNrYm94KG1hcmtkb3duKTtcbiAgICAgIG1hcmtkb3duID0gdGhpcy5fcmVwbGFjZVRhYmxlcyhtYXJrZG93bik7XG4gICAgICBtYXJrZG93biA9IHRoaXMuX3JlcGxhY2VCdXR0b25zKG1hcmtkb3duKTtcblxuICAgICAgaWYgKHRoaXMudXNlQ2ZtTGlzdCkge1xuICAgICAgICBtYXJrZG93biA9IHRoaXMuX3JlcGxhY2VMaXN0cyhtYXJrZG93bik7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGtleXM6IHN0cmluZ1tdID0gT2JqZWN0LmtleXModGhpcy5fY29tcG9uZW50cyk7XG4gICAgICAvLyBuZWVkIHRvIHNvcnQgdGhlIHBsYWNlaG9sZGVycyBpbiBvcmRlciBvZiBlbmNvdW50ZXIgaW4gbWFya2Rvd24gY29udGVudFxuICAgICAga2V5cy5zb3J0KChjb21wQTogc3RyaW5nLCBjb21wQjogc3RyaW5nKSA9PiB7XG4gICAgICAgIHJldHVybiBtYXJrZG93bi5pbmRleE9mKGNvbXBBKSA+IG1hcmtkb3duLmluZGV4T2YoY29tcEIpID8gMSA6IC0xO1xuICAgICAgfSk7XG4gICAgICB0aGlzLl9yZW5kZXIobWFya2Rvd24sIGtleXNbMF0sIGtleXMpO1xuICAgICAgLy8gVE9ETzogdGltZW91dCByZXF1aXJlZCBzaW5jZSByZXNpemluZyBvZiBodG1sIGVsZW1lbnRzIG9jY3VycyB3aGljaCBjYXVzZXMgYSBjaGFuZ2UgaW4gdGhlIHNjcm9sbCBwb3NpdGlvblxuICAgICAgc2V0VGltZW91dChcbiAgICAgICAgKCkgPT5cbiAgICAgICAgICBzY3JvbGxUb0FuY2hvcih0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIHRoaXMuX2FuY2hvciwgZmFsc2UpLFxuICAgICAgICAyNTBcbiAgICAgICk7XG4gICAgICB0aGlzLmNvbnRlbnRSZWFkeS5lbWl0KCk7XG4gICAgICBQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpID0+IHtcbiAgICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9yZW5kZXIobWFya2Rvd246IHN0cmluZywga2V5OiBzdHJpbmcsIGtleXM6IHN0cmluZ1tdKTogdm9pZCB7XG4gICAgaWYgKCFtYXJrZG93bikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoa2V5ICYmIG1hcmtkb3duLmluZGV4T2Yoa2V5KSA+IC0xKSB7XG4gICAgICBjb25zdCBtYXJrZG93blBhcnRzOiBzdHJpbmdbXSA9IG1hcmtkb3duLnNwbGl0KGtleSk7XG4gICAgICBrZXlzLnNoaWZ0KCk7XG4gICAgICB0aGlzLl9yZW5kZXIobWFya2Rvd25QYXJ0c1swXSwgJycsIFtdKTtcbiAgICAgIHRoaXMuY29udGFpbmVyLnZpZXdDb250YWluZXJSZWYuaW5zZXJ0KFxuICAgICAgICB0aGlzLl9jb21wb25lbnRzW2tleV0uaG9zdFZpZXcsXG4gICAgICAgIHRoaXMuY29udGFpbmVyLnZpZXdDb250YWluZXJSZWYubGVuZ3RoXG4gICAgICApO1xuICAgICAgZGVsZXRlIHRoaXMuX2NvbXBvbmVudHNba2V5XTtcbiAgICAgIHRoaXMuX3JlbmRlcihtYXJrZG93blBhcnRzWzFdLCBrZXlzWzBdLCBrZXlzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgY29udGVudFJlZjogQ29tcG9uZW50UmVmPFRkTWFya2Rvd25Db21wb25lbnQ+ID1cbiAgICAgICAgdGhpcy5fY29tcG9uZW50RmFjdG9yeVJlc29sdmVyXG4gICAgICAgICAgLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KFRkTWFya2Rvd25Db21wb25lbnQpXG4gICAgICAgICAgLmNyZWF0ZSh0aGlzLl9pbmplY3Rvcik7XG4gICAgICBjb250ZW50UmVmLmluc3RhbmNlLmNvbnRlbnQgPSBtYXJrZG93bjtcbiAgICAgIGNvbnRlbnRSZWYuaW5zdGFuY2UuaG9zdGVkVXJsID0gdGhpcy5faG9zdGVkVXJsO1xuICAgICAgY29udGVudFJlZi5pbnN0YW5jZS5zaW1wbGVMaW5lQnJlYWtzID0gdGhpcy5fc2ltcGxlTGluZUJyZWFrcztcbiAgICAgIGNvbnRlbnRSZWYuaW5zdGFuY2UucmVmcmVzaCgpO1xuICAgICAgdGhpcy5jb250YWluZXIudmlld0NvbnRhaW5lclJlZi5pbnNlcnQoXG4gICAgICAgIGNvbnRlbnRSZWYuaG9zdFZpZXcsXG4gICAgICAgIHRoaXMuY29udGFpbmVyLnZpZXdDb250YWluZXJSZWYubGVuZ3RoXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX3JlcGxhY2VDb21wb25lbnQ8VD4oXG4gICAgbWFya2Rvd246IHN0cmluZyxcbiAgICB0eXBlOiBUeXBlPFQ+LFxuICAgIHJlZ0V4cDogUmVnRXhwLFxuICAgIHJlcGxhY2VyRnVuYzogSVJlcGxhY2VyRnVuYzxUPlxuICApOiBzdHJpbmcge1xuICAgIGxldCBjb21wb25lbnRJbmRleCA9IDA7XG4gICAgcmV0dXJuIG1hcmtkb3duLnJlcGxhY2UocmVnRXhwLCAoLi4uYXJnczogYW55W10pID0+IHtcbiAgICAgIGNvbnN0IGNvbXBvbmVudEZhY3Rvcnk6IENvbXBvbmVudEZhY3Rvcnk8VD4gPVxuICAgICAgICB0aGlzLl9jb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIucmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkodHlwZSk7XG4gICAgICBjb25zdCBjb21wb25lbnRSZWY6IENvbXBvbmVudFJlZjxUPiA9IGNvbXBvbmVudEZhY3RvcnkuY3JlYXRlKFxuICAgICAgICB0aGlzLl9pbmplY3RvclxuICAgICAgKTtcbiAgICAgIHJlcGxhY2VyRnVuYyhjb21wb25lbnRSZWYsIC4uLmFyZ3MpO1xuICAgICAgY29uc3Qga2V5OiBzdHJpbmcgPVxuICAgICAgICAnWycgK1xuICAgICAgICBjb21wb25lbnRGYWN0b3J5LnNlbGVjdG9yICtcbiAgICAgICAgJy1wbGFjZWhvbGRlci0nICtcbiAgICAgICAgY29tcG9uZW50SW5kZXgrKyArXG4gICAgICAgICddJztcbiAgICAgIHRoaXMuX2NvbXBvbmVudHNba2V5XSA9IGNvbXBvbmVudFJlZjtcbiAgICAgIHJldHVybiBrZXk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF9yZXBsYWNlQ2hlY2tib3gobWFya2Rvd246IHN0cmluZyk6IHN0cmluZyB7XG4gICAgY29uc3QgY2hlY2tib3hSZWdFeHAgPSAvKD86XnxcXG4pLSBcXFsoeHwgKVxcXSguKikvZ2k7XG4gICAgcmV0dXJuIHRoaXMuX3JlcGxhY2VDb21wb25lbnQoXG4gICAgICBtYXJrZG93bixcbiAgICAgIE1hdENoZWNrYm94LFxuICAgICAgY2hlY2tib3hSZWdFeHAsXG4gICAgICAoXG4gICAgICAgIGNvbXBvbmVudFJlZjogQ29tcG9uZW50UmVmPE1hdENoZWNrYm94PixcbiAgICAgICAgbWF0Y2g6IHN0cmluZyxcbiAgICAgICAgY2hlY2tlZDogc3RyaW5nLFxuICAgICAgICBsYWJlbDogc3RyaW5nXG4gICAgICApID0+IHtcbiAgICAgICAgY29tcG9uZW50UmVmLmluc3RhbmNlLmNoZWNrZWQgPSAhIWNoZWNrZWQudHJpbSgpO1xuICAgICAgICBjb21wb25lbnRSZWYuaW5zdGFuY2UuZGlzYWJsZWQgPSB0cnVlO1xuICAgICAgICBjb21wb25lbnRSZWYuaW5zdGFuY2UubGFiZWxQb3NpdGlvbiA9ICdhZnRlcic7XG4gICAgICAgIHRoaXMuX3JlbmRlcmVyLnNldFByb3BlcnR5KFxuICAgICAgICAgICg8SFRNTEVsZW1lbnQ+KFxuICAgICAgICAgICAgY29tcG9uZW50UmVmLmluc3RhbmNlLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnRcbiAgICAgICAgICApKS5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCdtYXQtY2hlY2tib3gtbGFiZWwnKVswXSxcbiAgICAgICAgICAnaW5uZXJIVE1MJyxcbiAgICAgICAgICBsYWJlbFxuICAgICAgICApO1xuICAgICAgfVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIF9yZXBsYWNlQnV0dG9ucyhtYXJrZG93bjogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCBidXR0b25SZWdFeHAgPSAvXFxbKFteW10rKVxcXShcXCgjZGF0YT0oLio/KVxcKSkvaTtcbiAgICBjb25zdCBnbG9iYWxCdXR0b25SZWdFeHAgPSBuZXcgUmVnRXhwKFxuICAgICAgYnV0dG9uUmVnRXhwLnNvdXJjZSxcbiAgICAgIGJ1dHRvblJlZ0V4cC5mbGFncyArICdnJ1xuICAgICk7XG4gICAgcmV0dXJuIHRoaXMuX3JlcGxhY2VDb21wb25lbnQoXG4gICAgICBtYXJrZG93bixcbiAgICAgIFRkRmxhdm9yZWRNYXJrZG93bkJ1dHRvbkNvbXBvbmVudCxcbiAgICAgIGdsb2JhbEJ1dHRvblJlZ0V4cCxcbiAgICAgIChcbiAgICAgICAgY29tcG9uZW50UmVmOiBDb21wb25lbnRSZWY8VGRGbGF2b3JlZE1hcmtkb3duQnV0dG9uQ29tcG9uZW50PixcbiAgICAgICAgbWF0Y2g6IHN0cmluZ1xuICAgICAgKSA9PiB7XG4gICAgICAgIGNvbnN0IG1hdGNoZXMgPSBidXR0b25SZWdFeHAuZXhlYyhtYXRjaCk7XG4gICAgICAgIGlmICghbWF0Y2hlcykge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB0ZXh0OiBzdHJpbmcgPSBtYXRjaGVzWzFdO1xuICAgICAgICBjb25zdCBkYXRhOiBzdHJpbmcgPSBtYXRjaGVzWzNdO1xuICAgICAgICBjb21wb25lbnRSZWYuaW5zdGFuY2UudGV4dCA9IHRleHQ7XG4gICAgICAgIGNvbXBvbmVudFJlZi5pbnN0YW5jZS5kYXRhID0gZGF0YTtcbiAgICAgICAgY29tcG9uZW50UmVmLmluc3RhbmNlLmNsaWNrZWRcbiAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpKVxuICAgICAgICAgIC5zdWJzY3JpYmUoKGNsaWNrRXZlbnQ6IElUZEZsYXZvcmVkTWFya2Rvd25CdXR0b25DbGlja0V2ZW50KSA9PlxuICAgICAgICAgICAgdGhpcy5idXR0b25DbGlja2VkLmVtaXQoY2xpY2tFdmVudClcbiAgICAgICAgICApO1xuICAgICAgfVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIF9yZXBsYWNlQ29kZUJsb2NrcyhtYXJrZG93bjogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCBjb2RlQmxvY2tSZWdFeHAgPSAvKD86XnxcXG4pYGBgKC4qKVxcbihbXFxzXFxTXSo/KVxcbmBgYC9nO1xuICAgIHJldHVybiB0aGlzLl9yZXBsYWNlQ29tcG9uZW50KFxuICAgICAgbWFya2Rvd24sXG4gICAgICBUZEhpZ2hsaWdodENvbXBvbmVudCxcbiAgICAgIGNvZGVCbG9ja1JlZ0V4cCxcbiAgICAgIChcbiAgICAgICAgY29tcG9uZW50UmVmOiBDb21wb25lbnRSZWY8VGRIaWdobGlnaHRDb21wb25lbnQ+LFxuICAgICAgICBtYXRjaDogc3RyaW5nLFxuICAgICAgICBsYW5ndWFnZTogc3RyaW5nLFxuICAgICAgICBjb2RlYmxvY2s6IHN0cmluZ1xuICAgICAgKSA9PiB7XG4gICAgICAgIGlmIChsYW5ndWFnZSkge1xuICAgICAgICAgIGNvbXBvbmVudFJlZi5pbnN0YW5jZS5jb2RlTGFuZyA9IGxhbmd1YWdlO1xuICAgICAgICB9XG4gICAgICAgIGNvbXBvbmVudFJlZi5pbnN0YW5jZS5jb3B5Q29kZVRvQ2xpcGJvYXJkID0gdGhpcy5jb3B5Q29kZVRvQ2xpcGJvYXJkO1xuICAgICAgICBjb21wb25lbnRSZWYuaW5zdGFuY2UuY29weUNvZGVUb29sdGlwcyA9IHRoaXMuY29weUNvZGVUb29sdGlwcztcbiAgICAgICAgY29tcG9uZW50UmVmLmluc3RhbmNlLnRvZ2dsZVJhd0J1dHRvbiA9IHRoaXMudG9nZ2xlUmF3Q29kZTtcbiAgICAgICAgY29tcG9uZW50UmVmLmluc3RhbmNlLnJhd1RvZ2dsZUxhYmVscyA9IHRoaXMucmF3VG9nZ2xlTGFiZWxzO1xuICAgICAgICBjb21wb25lbnRSZWYuaW5zdGFuY2UuY29udGVudCA9IGNvZGVibG9jaztcbiAgICAgIH1cbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBfcmVwbGFjZVRhYmxlcyhtYXJrZG93bjogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCB0YWJsZVJneCA9XG4gICAgICAvXiB7MCwzfVxcfD8uK1xcfC4rXFxuWyBcXHRdezAsM31cXHw/WyBcXHRdKjo/WyBcXHRdKig/Oi18PSl7Mix9WyBcXHRdKjo/WyBcXHRdKlxcfFsgXFx0XSo6P1sgXFx0XSooPzotfD0pezIsfVtcXHNcXFNdKz8oPzpcXG5cXG58fjApL2dtO1xuICAgIHJldHVybiB0aGlzLl9yZXBsYWNlQ29tcG9uZW50KFxuICAgICAgbWFya2Rvd24sXG4gICAgICBUZEZsYXZvcmVkTWFya2Rvd25UYWJsZUNvbXBvbmVudCxcbiAgICAgIHRhYmxlUmd4LFxuICAgICAgKFxuICAgICAgICBjb21wb25lbnRSZWY6IENvbXBvbmVudFJlZjxUZEZsYXZvcmVkTWFya2Rvd25UYWJsZUNvbXBvbmVudD4sXG4gICAgICAgIG1hdGNoOiBzdHJpbmdcbiAgICAgICkgPT4ge1xuICAgICAgICBjb25zdCBkYXRhVGFibGVMaW5lczogc3RyaW5nW10gPSBtYXRjaFxuICAgICAgICAgIC5yZXBsYWNlKC8oXFxzfFxcdCkqXFxuKyhcXHN8XFx0KSokL2csICcnKVxuICAgICAgICAgIC5zcGxpdCgnXFxuJyk7XG4gICAgICAgIGNvbnN0IGNvbHVtbnM6IHN0cmluZ1tdID0gZGF0YVRhYmxlTGluZXNbMF1cbiAgICAgICAgICAuc3BsaXQoJ3wnKVxuICAgICAgICAgIC5maWx0ZXIoKGNvbDogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gY29sO1xuICAgICAgICAgIH0pXG4gICAgICAgICAgLm1hcCgoczogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gcy50cmltKCk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIGNvbnN0IGFsaWdubWVudDogc3RyaW5nW10gPSBkYXRhVGFibGVMaW5lc1sxXVxuICAgICAgICAgIC5zcGxpdCgnfCcpXG4gICAgICAgICAgLmZpbHRlcigodjogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gdjtcbiAgICAgICAgICB9KVxuICAgICAgICAgIC5tYXAoKHM6IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHMudHJpbSgpO1xuICAgICAgICAgIH0pO1xuXG4gICAgICAgIGNvbnN0IGRhdGE6IGFueVtdID0gW107XG4gICAgICAgIGZvciAobGV0IGkgPSAyOyBpIDwgZGF0YVRhYmxlTGluZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICBjb25zdCByb3dTcGxpdDogc3RyaW5nW10gPSBkYXRhVGFibGVMaW5lc1tpXVxuICAgICAgICAgICAgLnNwbGl0KCd8JylcbiAgICAgICAgICAgIC5maWx0ZXIoKGNlbGw6IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgICByZXR1cm4gY2VsbDtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAubWFwKChzOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgICAgcmV0dXJuIHMudHJpbSgpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgY29uc3Qgcm93OiBhbnkgPSB7fTtcbiAgICAgICAgICBjb2x1bW5zLmZvckVhY2goKGNvbDogc3RyaW5nLCBpbmRleDogbnVtYmVyKSA9PiB7XG4gICAgICAgICAgICBjb25zdCByb3dTcGxpdENlbGw6IHN0cmluZyA9IHJvd1NwbGl0W2luZGV4XTtcbiAgICAgICAgICAgIGlmIChyb3dTcGxpdENlbGwpIHtcbiAgICAgICAgICAgICAgcm93W2NvbC50b0xvd2VyQ2FzZSgpLnRyaW0oKV0gPSByb3dTcGxpdENlbGwucmVwbGFjZShcbiAgICAgICAgICAgICAgICAvYCguKilgLyxcbiAgICAgICAgICAgICAgICAobTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICAgIGRhdGEucHVzaChyb3cpO1xuICAgICAgICB9XG4gICAgICAgIGNvbXBvbmVudFJlZi5pbnN0YW5jZS5jb2x1bW5EZWZzID0gY29sdW1ucy5tYXAoXG4gICAgICAgICAgKGNvbDogc3RyaW5nLCBpbmRleDogbnVtYmVyKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICBsYWJlbDogY29sLFxuICAgICAgICAgICAgICBuYW1lOiBjb2wgPyBjb2wudG9Mb3dlckNhc2UoKS50cmltKCkgOiBgY29sdW1uICR7aW5kZXh9YCxcbiAgICAgICAgICAgICAgbnVtZXJpYzogL14tLSpbIFxcdF0qOlsgXFx0XSokLy50ZXN0KGFsaWdubWVudFtpbmRleF0pLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgICAgIGNvbXBvbmVudFJlZi5pbnN0YW5jZS5kYXRhID0gZGF0YTtcbiAgICAgIH1cbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBfcmVwbGFjZUxpc3RzKG1hcmtkb3duOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IGxpc3RSZWdFeHAgPSAvKD86XnxcXG4pKCggKihcXCt8XFwqfC0pKVsgfFxcdF0oLiopXFxuKSsvZztcbiAgICBjb25zdCBsaXN0Q2hhclJlZ0V4cCA9IG5ldyBSZWdFeHAoL14oXFwrfFxcKnwtKS8pO1xuICAgIHJldHVybiB0aGlzLl9yZXBsYWNlQ29tcG9uZW50KFxuICAgICAgbWFya2Rvd24sXG4gICAgICBUZEZsYXZvcmVkTGlzdENvbXBvbmVudCxcbiAgICAgIGxpc3RSZWdFeHAsXG4gICAgICAoY29tcG9uZW50UmVmOiBDb21wb25lbnRSZWY8VGRGbGF2b3JlZExpc3RDb21wb25lbnQ+LCBtYXRjaDogc3RyaW5nKSA9PiB7XG4gICAgICAgIGNvbnN0IHN0YXJ0ID0gLyhcXCt8XFwqfC0pLy5leGVjKG1hdGNoKTtcbiAgICAgICAgY29uc3QgbWF0Y2hJbmRleCA9IHN0YXJ0ICE9PSBudWxsID8gc3RhcnQuaW5kZXggOiAxO1xuXG4gICAgICAgIGNvbnN0IGxpbmVUZXh0czogc3RyaW5nW10gPSBtYXRjaC5zcGxpdChcbiAgICAgICAgICBuZXcgUmVnRXhwKFxuICAgICAgICAgICAgJ1xcXFxuIHsnICsgKG1hdGNoSW5kZXggLSAxKS50b1N0cmluZygpICsgJ30oXFxcXCt8XFxcXCp8XFxcXC0pWyB8XFxcXHRdJ1xuICAgICAgICAgIClcbiAgICAgICAgKTtcbiAgICAgICAgbGluZVRleHRzLnNoaWZ0KCk7XG4gICAgICAgIGNvbnN0IGxpbmVzOiBJRmxhdm9yZWRMaXN0SXRlbVtdID0gW107XG4gICAgICAgIGxpbmVUZXh0cy5mb3JFYWNoKCh0ZXh0OiBzdHJpbmcpID0+IHtcbiAgICAgICAgICBjb25zdCBzdWJsaW5lVGV4dHM6IHN0cmluZ1tdID0gdGV4dC5zcGxpdCgvXFxuICooXFwrfFxcKnwtKSAvKTtcbiAgICAgICAgICBjb25zdCBsaW5lVGV4dCA9IHN1YmxpbmVUZXh0cy5zaGlmdCgpID8/ICcnO1xuXG4gICAgICAgICAgaWYgKGxpc3RDaGFyUmVnRXhwLnRlc3QobGluZVRleHQpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgbGluZXMucHVzaCh7XG4gICAgICAgICAgICBsaW5lOiBsaW5lVGV4dCxcbiAgICAgICAgICAgIHN1YmxpbmVzOiBzdWJsaW5lVGV4dHMubWFwKChzdWJsaW5lOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgICAgaWYgKGxpc3RDaGFyUmVnRXhwLnRlc3Qoc3VibGluZSkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJyc7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgcmV0dXJuIHN1YmxpbmUudHJpbSgpO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgICAgICBjb21wb25lbnRSZWYuaW5zdGFuY2UubGluZXMgPSBsaW5lcztcbiAgICAgIH1cbiAgICApO1xuICB9XG59XG4iLCI8ZGl2IHRkRmxhdm9yZWRNYXJrZG93bkNvbnRhaW5lcj5cbiAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuPC9kaXY+XG4iXX0=
@@ -16,15 +16,17 @@ export class CovalentFlavoredMarkdownModule {
16
16
  }
17
17
  CovalentFlavoredMarkdownModule.ɵfac = function CovalentFlavoredMarkdownModule_Factory(t) { return new (t || CovalentFlavoredMarkdownModule)(); };
18
18
  CovalentFlavoredMarkdownModule.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: CovalentFlavoredMarkdownModule });
19
- CovalentFlavoredMarkdownModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [CommonModule,
20
- MatCheckboxModule,
21
- MatListModule,
22
- MatProgressBarModule,
23
- CovalentHighlightModule,
24
- CovalentMarkdownModule,
25
- MatButtonModule,
26
- MatTableModule,
27
- MatSortModule] });
19
+ CovalentFlavoredMarkdownModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [[
20
+ CommonModule,
21
+ MatCheckboxModule,
22
+ MatListModule,
23
+ MatProgressBarModule,
24
+ CovalentHighlightModule,
25
+ CovalentMarkdownModule,
26
+ MatButtonModule,
27
+ MatTableModule,
28
+ MatSortModule,
29
+ ]] });
28
30
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CovalentFlavoredMarkdownModule, [{
29
31
  type: NgModule,
30
32
  args: [{
@@ -64,4 +66,4 @@ CovalentFlavoredMarkdownModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imp
64
66
  MatButtonModule,
65
67
  MatTableModule,
66
68
  MatSortModule], exports: [TdFlavoredMarkdownComponent, TdFlavoredMarkdownLoaderComponent] }); })();
67
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxhdm9yZWQtbWFya2Rvd24ubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9tYXJrZG93bi1mbGF2b3JlZC9zcmMvbGliL2ZsYXZvcmVkLW1hcmtkb3duLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN0RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFOUQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDNUQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDeEUsT0FBTyxFQUNMLDJCQUEyQixFQUMzQixvQ0FBb0MsRUFDcEMsaUNBQWlDLEVBQ2pDLGdDQUFnQyxHQUNqQyxNQUFNLCtCQUErQixDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxpQ0FBaUMsRUFBRSxNQUFNLCtEQUErRCxDQUFDOztBQXdCbEgsTUFBTSxPQUFPLDhCQUE4Qjs7NEdBQTlCLDhCQUE4QjtnRkFBOUIsOEJBQThCO29GQXBCdkMsWUFBWTtRQUNaLGlCQUFpQjtRQUNqQixhQUFhO1FBQ2Isb0JBQW9CO1FBQ3BCLHVCQUF1QjtRQUN2QixzQkFBc0I7UUFDdEIsZUFBZTtRQUNmLGNBQWM7UUFDZCxhQUFhO3VGQVlKLDhCQUE4QjtjQXRCMUMsUUFBUTtlQUFDO2dCQUNSLE9BQU8sRUFBRTtvQkFDUCxZQUFZO29CQUNaLGlCQUFpQjtvQkFDakIsYUFBYTtvQkFDYixvQkFBb0I7b0JBQ3BCLHVCQUF1QjtvQkFDdkIsc0JBQXNCO29CQUN0QixlQUFlO29CQUNmLGNBQWM7b0JBQ2QsYUFBYTtpQkFDZDtnQkFDRCxZQUFZLEVBQUU7b0JBQ1osdUJBQXVCO29CQUN2QiwyQkFBMkI7b0JBQzNCLG9DQUFvQztvQkFDcEMsaUNBQWlDO29CQUNqQyxpQ0FBaUM7b0JBQ2pDLGdDQUFnQztpQkFDakM7Z0JBQ0QsT0FBTyxFQUFFLENBQUMsMkJBQTJCLEVBQUUsaUNBQWlDLENBQUM7YUFDMUU7O3dGQUNZLDhCQUE4QixtQkFUdkMsdUJBQXVCO1FBQ3ZCLDJCQUEyQjtRQUMzQixvQ0FBb0M7UUFDcEMsaUNBQWlDO1FBQ2pDLGlDQUFpQztRQUNqQyxnQ0FBZ0MsYUFoQmhDLFlBQVk7UUFDWixpQkFBaUI7UUFDakIsYUFBYTtRQUNiLG9CQUFvQjtRQUNwQix1QkFBdUI7UUFDdkIsc0JBQXNCO1FBQ3RCLGVBQWU7UUFDZixjQUFjO1FBQ2QsYUFBYSxhQVVMLDJCQUEyQixFQUFFLGlDQUFpQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTWF0UHJvZ3Jlc3NCYXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wcm9ncmVzcy1iYXInO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IE1hdFRhYmxlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdGFibGUnO1xuaW1wb3J0IHsgTWF0U29ydE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NvcnQnO1xuaW1wb3J0IHsgTWF0Q2hlY2tib3hNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jaGVja2JveCc7XG5pbXBvcnQgeyBNYXRMaXN0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbGlzdCc7XG5pbXBvcnQgeyBDb3ZhbGVudEhpZ2hsaWdodE1vZHVsZSB9IGZyb20gJ0Bjb3ZhbGVudC9oaWdobGlnaHQnO1xuXG5pbXBvcnQgeyBDb3ZhbGVudE1hcmtkb3duTW9kdWxlIH0gZnJvbSAnQGNvdmFsZW50L21hcmtkb3duJztcbmltcG9ydCB7IFRkRmxhdm9yZWRMaXN0Q29tcG9uZW50IH0gZnJvbSAnLi9jZm0tbGlzdC9jZm0tbGlzdC5jb21wb25lbnQnO1xuaW1wb3J0IHtcbiAgVGRGbGF2b3JlZE1hcmtkb3duQ29tcG9uZW50LFxuICBUZEZsYXZvcmVkTWFya2Rvd25Db250YWluZXJEaXJlY3RpdmUsXG4gIFRkRmxhdm9yZWRNYXJrZG93bkJ1dHRvbkNvbXBvbmVudCxcbiAgVGRGbGF2b3JlZE1hcmtkb3duVGFibGVDb21wb25lbnQsXG59IGZyb20gJy4vZmxhdm9yZWQtbWFya2Rvd24uY29tcG9uZW50JztcbmltcG9ydCB7IFRkRmxhdm9yZWRNYXJrZG93bkxvYWRlckNvbXBvbmVudCB9IGZyb20gJy4vZmxhdm9yZWQtbWFya2Rvd24tbG9hZGVyL2ZsYXZvcmVkLW1hcmtkb3duLWxvYWRlci5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIE1hdENoZWNrYm94TW9kdWxlLFxuICAgIE1hdExpc3RNb2R1bGUsXG4gICAgTWF0UHJvZ3Jlc3NCYXJNb2R1bGUsXG4gICAgQ292YWxlbnRIaWdobGlnaHRNb2R1bGUsXG4gICAgQ292YWxlbnRNYXJrZG93bk1vZHVsZSxcbiAgICBNYXRCdXR0b25Nb2R1bGUsXG4gICAgTWF0VGFibGVNb2R1bGUsXG4gICAgTWF0U29ydE1vZHVsZSxcbiAgXSxcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgVGRGbGF2b3JlZExpc3RDb21wb25lbnQsXG4gICAgVGRGbGF2b3JlZE1hcmtkb3duQ29tcG9uZW50LFxuICAgIFRkRmxhdm9yZWRNYXJrZG93bkNvbnRhaW5lckRpcmVjdGl2ZSxcbiAgICBUZEZsYXZvcmVkTWFya2Rvd25Mb2FkZXJDb21wb25lbnQsXG4gICAgVGRGbGF2b3JlZE1hcmtkb3duQnV0dG9uQ29tcG9uZW50LFxuICAgIFRkRmxhdm9yZWRNYXJrZG93blRhYmxlQ29tcG9uZW50LFxuICBdLFxuICBleHBvcnRzOiBbVGRGbGF2b3JlZE1hcmtkb3duQ29tcG9uZW50LCBUZEZsYXZvcmVkTWFya2Rvd25Mb2FkZXJDb21wb25lbnRdLFxufSlcbmV4cG9ydCBjbGFzcyBDb3ZhbGVudEZsYXZvcmVkTWFya2Rvd25Nb2R1bGUge31cbiJdfQ==
69
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxhdm9yZWQtbWFya2Rvd24ubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9tYXJrZG93bi1mbGF2b3JlZC9zcmMvbGliL2ZsYXZvcmVkLW1hcmtkb3duLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN0RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFOUQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDNUQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDeEUsT0FBTyxFQUNMLDJCQUEyQixFQUMzQixvQ0FBb0MsRUFDcEMsaUNBQWlDLEVBQ2pDLGdDQUFnQyxHQUNqQyxNQUFNLCtCQUErQixDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxpQ0FBaUMsRUFBRSxNQUFNLCtEQUErRCxDQUFDOztBQXdCbEgsTUFBTSxPQUFPLDhCQUE4Qjs7NEdBQTlCLDhCQUE4QjtnRkFBOUIsOEJBQThCO29GQXJCaEM7WUFDUCxZQUFZO1lBQ1osaUJBQWlCO1lBQ2pCLGFBQWE7WUFDYixvQkFBb0I7WUFDcEIsdUJBQXVCO1lBQ3ZCLHNCQUFzQjtZQUN0QixlQUFlO1lBQ2YsY0FBYztZQUNkLGFBQWE7U0FDZDt1RkFXVSw4QkFBOEI7Y0F0QjFDLFFBQVE7ZUFBQztnQkFDUixPQUFPLEVBQUU7b0JBQ1AsWUFBWTtvQkFDWixpQkFBaUI7b0JBQ2pCLGFBQWE7b0JBQ2Isb0JBQW9CO29CQUNwQix1QkFBdUI7b0JBQ3ZCLHNCQUFzQjtvQkFDdEIsZUFBZTtvQkFDZixjQUFjO29CQUNkLGFBQWE7aUJBQ2Q7Z0JBQ0QsWUFBWSxFQUFFO29CQUNaLHVCQUF1QjtvQkFDdkIsMkJBQTJCO29CQUMzQixvQ0FBb0M7b0JBQ3BDLGlDQUFpQztvQkFDakMsaUNBQWlDO29CQUNqQyxnQ0FBZ0M7aUJBQ2pDO2dCQUNELE9BQU8sRUFBRSxDQUFDLDJCQUEyQixFQUFFLGlDQUFpQyxDQUFDO2FBQzFFOzt3RkFDWSw4QkFBOEIsbUJBVHZDLHVCQUF1QjtRQUN2QiwyQkFBMkI7UUFDM0Isb0NBQW9DO1FBQ3BDLGlDQUFpQztRQUNqQyxpQ0FBaUM7UUFDakMsZ0NBQWdDLGFBaEJoQyxZQUFZO1FBQ1osaUJBQWlCO1FBQ2pCLGFBQWE7UUFDYixvQkFBb0I7UUFDcEIsdUJBQXVCO1FBQ3ZCLHNCQUFzQjtRQUN0QixlQUFlO1FBQ2YsY0FBYztRQUNkLGFBQWEsYUFVTCwyQkFBMkIsRUFBRSxpQ0FBaUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE1hdFByb2dyZXNzQmFyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcHJvZ3Jlc3MtYmFyJztcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyBNYXRUYWJsZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RhYmxlJztcbmltcG9ydCB7IE1hdFNvcnRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zb3J0JztcbmltcG9ydCB7IE1hdENoZWNrYm94TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2hlY2tib3gnO1xuaW1wb3J0IHsgTWF0TGlzdE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2xpc3QnO1xuaW1wb3J0IHsgQ292YWxlbnRIaWdobGlnaHRNb2R1bGUgfSBmcm9tICdAY292YWxlbnQvaGlnaGxpZ2h0JztcblxuaW1wb3J0IHsgQ292YWxlbnRNYXJrZG93bk1vZHVsZSB9IGZyb20gJ0Bjb3ZhbGVudC9tYXJrZG93bic7XG5pbXBvcnQgeyBUZEZsYXZvcmVkTGlzdENvbXBvbmVudCB9IGZyb20gJy4vY2ZtLWxpc3QvY2ZtLWxpc3QuY29tcG9uZW50JztcbmltcG9ydCB7XG4gIFRkRmxhdm9yZWRNYXJrZG93bkNvbXBvbmVudCxcbiAgVGRGbGF2b3JlZE1hcmtkb3duQ29udGFpbmVyRGlyZWN0aXZlLFxuICBUZEZsYXZvcmVkTWFya2Rvd25CdXR0b25Db21wb25lbnQsXG4gIFRkRmxhdm9yZWRNYXJrZG93blRhYmxlQ29tcG9uZW50LFxufSBmcm9tICcuL2ZsYXZvcmVkLW1hcmtkb3duLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUZEZsYXZvcmVkTWFya2Rvd25Mb2FkZXJDb21wb25lbnQgfSBmcm9tICcuL2ZsYXZvcmVkLW1hcmtkb3duLWxvYWRlci9mbGF2b3JlZC1tYXJrZG93bi1sb2FkZXIuY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBNYXRDaGVja2JveE1vZHVsZSxcbiAgICBNYXRMaXN0TW9kdWxlLFxuICAgIE1hdFByb2dyZXNzQmFyTW9kdWxlLFxuICAgIENvdmFsZW50SGlnaGxpZ2h0TW9kdWxlLFxuICAgIENvdmFsZW50TWFya2Rvd25Nb2R1bGUsXG4gICAgTWF0QnV0dG9uTW9kdWxlLFxuICAgIE1hdFRhYmxlTW9kdWxlLFxuICAgIE1hdFNvcnRNb2R1bGUsXG4gIF0sXG4gIGRlY2xhcmF0aW9uczogW1xuICAgIFRkRmxhdm9yZWRMaXN0Q29tcG9uZW50LFxuICAgIFRkRmxhdm9yZWRNYXJrZG93bkNvbXBvbmVudCxcbiAgICBUZEZsYXZvcmVkTWFya2Rvd25Db250YWluZXJEaXJlY3RpdmUsXG4gICAgVGRGbGF2b3JlZE1hcmtkb3duTG9hZGVyQ29tcG9uZW50LFxuICAgIFRkRmxhdm9yZWRNYXJrZG93bkJ1dHRvbkNvbXBvbmVudCxcbiAgICBUZEZsYXZvcmVkTWFya2Rvd25UYWJsZUNvbXBvbmVudCxcbiAgXSxcbiAgZXhwb3J0czogW1RkRmxhdm9yZWRNYXJrZG93bkNvbXBvbmVudCwgVGRGbGF2b3JlZE1hcmtkb3duTG9hZGVyQ29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgQ292YWxlbnRGbGF2b3JlZE1hcmtkb3duTW9kdWxlIHt9XG4iXX0=