@hestia-earth/ui-components 0.28.0-0 → 0.28.0-1

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.
@@ -2,7 +2,7 @@ import { Component, input, viewChild, computed, signal, effect, ChangeDetectionS
2
2
  import { FormsModule } from '@angular/forms';
3
3
  import { ellipsis, toPrecision } from '@hestia-earth/utils';
4
4
  import { propertyValue } from '@hestia-earth/utils/dist/term';
5
- import { BarController, BarElement, CategoryScale, Chart, LinearScale } from 'chart.js';
5
+ import { BarController, BarElement, CategoryScale, Chart, LinearScale, Tooltip } from 'chart.js';
6
6
  import ChartDataLabels from 'chartjs-plugin-datalabels';
7
7
  import { groupNodesByTerm } from '../../common/node-utils';
8
8
  import { defaultLabel } from '../../common/utils';
@@ -33,7 +33,7 @@ export class CyclesEmissionsChartComponent {
33
33
  borderColor: this.colors()
34
34
  }
35
35
  ]);
36
- Chart.register(CategoryScale, LinearScale, BarController, BarElement, ChartDataLabels);
36
+ Chart.register(CategoryScale, LinearScale, BarController, BarElement, Tooltip);
37
37
  effect(() => {
38
38
  this.chart = new Chart(this.chartRef().nativeElement, {
39
39
  type: 'bar',
@@ -41,19 +41,20 @@ export class CyclesEmissionsChartComponent {
41
41
  labels: [],
42
42
  datasets: []
43
43
  },
44
+ plugins: [ChartDataLabels],
44
45
  options: {
45
46
  plugins: {
46
47
  legend: {
47
48
  display: false
48
49
  },
50
+ tooltip: {
51
+ enabled: true
52
+ },
49
53
  datalabels: {
50
54
  color: 'black',
51
55
  formatter: value => toPrecision(value, 3),
52
56
  anchor: 'center',
53
57
  clamp: true
54
- },
55
- tooltip: {
56
- enabled: true
57
58
  }
58
59
  },
59
60
  responsive: true,
@@ -85,7 +86,6 @@ export class CyclesEmissionsChartComponent {
85
86
  });
86
87
  }
87
88
  ngOnDestroy() {
88
- Chart.unregister(ChartDataLabels);
89
89
  return this.chart && this.chart.destroy();
90
90
  }
91
91
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: CyclesEmissionsChartComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
@@ -95,4 +95,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImpor
95
95
  type: Component,
96
96
  args: [{ selector: 'he-cycles-emissions-chart', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [FormsModule], template: "<div class=\"is-p-3\" [class.is-hidden]=\"!terms()?.length\">\n <div class=\"field has-addons is-pt-2 is-px-3\">\n <div class=\"control\">\n <span class=\"button is-small is-static is-secondary\">Select an Emission</span>\n </div>\n <div class=\"control is-expanded\">\n <div class=\"select is-small is-fullwidth is-secondary\">\n <select\n [ngModel]=\"selectedTermName()\"\n (change)=\"selectedTermName.set($event.target.value)\"\n id=\"selectedTermName\">\n @for (term of terms(); track term) {\n <option [value]=\"term.name\">{{ term.name }} ({{ term.units }})</option>\n }\n </select>\n </div>\n </div>\n </div>\n\n <div class=\"mt-1\">\n <div class=\"chart-container\">\n <canvas #chart></canvas>\n </div>\n </div>\n</div>\n", styles: [":host{display:block;overflow:visible}.chart-container{height:400px;position:relative}\n"] }]
97
97
  }], ctorParameters: () => [] });
98
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3ljbGVzLWVtaXNzaW9ucy1jaGFydC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY3ljbGVzL2N5Y2xlcy1lbWlzc2lvbnMtY2hhcnQvY3ljbGVzLWVtaXNzaW9ucy1jaGFydC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9zcmMvY3ljbGVzL2N5Y2xlcy1lbWlzc2lvbnMtY2hhcnQvY3ljbGVzLWVtaXNzaW9ucy1jaGFydC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUVULEtBQUssRUFDTCxTQUFTLEVBQ1QsUUFBUSxFQUNSLE1BQU0sRUFDTixNQUFNLEVBQ04sdUJBQXVCLEVBRXhCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU3QyxPQUFPLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzVELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUM5RCxPQUFPLEVBQUUsYUFBYSxFQUFFLFVBQVUsRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUN4RixPQUFPLGVBQWUsTUFBTSwyQkFBMkIsQ0FBQztBQUV4RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQXVCLE1BQU0seUJBQXlCLENBQUM7QUFDaEYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7O0FBRS9DLE1BQU0sVUFBVSxHQUFHLENBQUMsS0FBbUIsRUFBRSxNQUFxQyxFQUFFLEVBQUUsQ0FDaEYsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQztBQUUzRCxNQUFNLFNBQVMsR0FBRyxDQUFDLEtBQW1CLEVBQUUsS0FBYSxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsR0FBRyxLQUFLLEdBQUcsQ0FBQyxLQUFLLFlBQVksQ0FBQyxLQUFLLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBVS9HLE1BQU0sT0FBTyw2QkFBNkI7SUFrQ3hDO1FBakNRLGFBQVEsR0FBRyxTQUFTLENBQUMsUUFBUSxDQUFhLE9BQU8sQ0FBQyxDQUFDO1FBR2pELFdBQU0sR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFrQixDQUFDO1FBRTFDLHFCQUFnQixHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBeUIsSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUM7UUFDeEcsVUFBSyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FDOUIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQzthQUNuQyxNQUFNLENBQUMsQ0FBQyxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsQ0FDckIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBRSxhQUFhLENBQUMsS0FBSyxDQUFZLElBQUksQ0FBQyxDQUFDLENBQzlGO2FBQ0EsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQzNCLENBQUM7UUFDUSxxQkFBZ0IsR0FBRyxNQUFNLENBQVMsU0FBUyxDQUFDLENBQUM7UUFFL0MsaUJBQVksR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ2hHLG1CQUFjLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ3BFLFdBQU0sR0FBRyxRQUFRLENBQ3ZCLEdBQUcsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxFQUFtQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQ25ILENBQUM7UUFDTSxXQUFNLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztRQUN0RCxXQUFNLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztRQUN0RCxhQUFRLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ2hDO2dCQUNFLEtBQUssRUFBRSxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7Z0JBQzlCLElBQUksRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUNyQixLQUFLLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBVyxDQUMxRjtnQkFDRCxlQUFlLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRTtnQkFDOUIsV0FBVyxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUU7YUFDM0I7U0FDRixDQUFDLENBQUM7UUFHRCxLQUFLLENBQUMsUUFBUSxDQUFDLGFBQWEsRUFBRSxXQUFXLEVBQUUsYUFBYSxFQUFFLFVBQVUsRUFBRSxlQUFlLENBQUMsQ0FBQztRQUV2RixNQUFNLENBQUMsR0FBRyxFQUFFO1lBQ1YsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsYUFBYSxFQUFFO2dCQUNwRCxJQUFJLEVBQUUsS0FBSztnQkFDWCxJQUFJLEVBQUU7b0JBQ0osTUFBTSxFQUFFLEVBQUU7b0JBQ1YsUUFBUSxFQUFFLEVBQUU7aUJBQ2I7Z0JBQ0QsT0FBTyxFQUFFO29CQUNQLE9BQU8sRUFBRTt3QkFDUCxNQUFNLEVBQUU7NEJBQ04sT0FBTyxFQUFFLEtBQUs7eUJBQ2Y7d0JBQ0QsVUFBVSxFQUFFOzRCQUNWLEtBQUssRUFBRSxPQUFPOzRCQUNkLFNBQVMsRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDOzRCQUN6QyxNQUFNLEVBQUUsUUFBUTs0QkFDaEIsS0FBSyxFQUFFLElBQUk7eUJBQ1o7d0JBQ0QsT0FBTyxFQUFFOzRCQUNQLE9BQU8sRUFBRSxJQUFJO3lCQUNkO3FCQUNGO29CQUNELFVBQVUsRUFBRSxJQUFJO29CQUNoQixtQkFBbUIsRUFBRSxLQUFLO29CQUMxQixNQUFNLEVBQUU7d0JBQ04sQ0FBQyxFQUFFOzRCQUNELE9BQU8sRUFBRSxJQUFJO3lCQUNkO3dCQUNELENBQUMsRUFBRTs0QkFDRCxRQUFRLEVBQUUsTUFBTTs0QkFDaEIsV0FBVyxFQUFFLElBQUk7eUJBQ2xCO3FCQUNGO2lCQUNGO2FBQ0YsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUFFSCxNQUFNLENBQ0osR0FBRyxFQUFFO1lBQ0gsaUNBQWlDO1lBQ2pDLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUMzQixNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBQ2pELElBQUksQ0FBQyxnQkFBZ0IsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsRUFBRSxDQUFDO2dCQUM5QyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUMzQyxDQUFDO1FBQ0gsQ0FBQyxFQUNELEVBQUUsaUJBQWlCLEVBQUUsSUFBSSxFQUFFLENBQzVCLENBQUM7UUFFRixNQUFNLENBQUMsR0FBRyxFQUFFO1lBQ1YsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUN2QyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQzNDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDdEIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsV0FBVztRQUNULEtBQUssQ0FBQyxVQUFVLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDbEMsT0FBTyxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDNUMsQ0FBQzs4R0FoR1UsNkJBQTZCO2tHQUE3Qiw2QkFBNkIsOFVDbkMxQywyMEJBeUJBLGdKRFFZLFdBQVc7OzJGQUVWLDZCQUE2QjtrQkFSekMsU0FBUzsrQkFDRSwyQkFBMkIsbUJBR3BCLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSxXQUNQLENBQUMsV0FBVyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBpbnB1dCxcbiAgdmlld0NoaWxkLFxuICBjb21wdXRlZCxcbiAgc2lnbmFsLFxuICBlZmZlY3QsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBPbkRlc3Ryb3lcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEVtaXNzaW9uLCBJQ3ljbGVKU09OTEQgfSBmcm9tICdAaGVzdGlhLWVhcnRoL3NjaGVtYSc7XG5pbXBvcnQgeyBlbGxpcHNpcywgdG9QcmVjaXNpb24gfSBmcm9tICdAaGVzdGlhLWVhcnRoL3V0aWxzJztcbmltcG9ydCB7IHByb3BlcnR5VmFsdWUgfSBmcm9tICdAaGVzdGlhLWVhcnRoL3V0aWxzL2Rpc3QvdGVybSc7XG5pbXBvcnQgeyBCYXJDb250cm9sbGVyLCBCYXJFbGVtZW50LCBDYXRlZ29yeVNjYWxlLCBDaGFydCwgTGluZWFyU2NhbGUgfSBmcm9tICdjaGFydC5qcyc7XG5pbXBvcnQgQ2hhcnREYXRhTGFiZWxzIGZyb20gJ2NoYXJ0anMtcGx1Z2luLWRhdGFsYWJlbHMnO1xuXG5pbXBvcnQgeyBncm91cE5vZGVzQnlUZXJtLCBJR3JvdXBlZE5vZGVzVmFsdWVzIH0gZnJvbSAnLi4vLi4vY29tbW9uL25vZGUtdXRpbHMnO1xuaW1wb3J0IHsgZGVmYXVsdExhYmVsIH0gZnJvbSAnLi4vLi4vY29tbW9uL3V0aWxzJztcbmltcG9ydCB7IGxpc3RDb2xvciB9IGZyb20gJy4uLy4uL2NvbW1vbi9jb2xvcic7XG5cbmNvbnN0IGN5Y2xlVmFsdWUgPSAoY3ljbGU6IElDeWNsZUpTT05MRCwgdmFsdWVzOiBJR3JvdXBlZE5vZGVzVmFsdWVzPEVtaXNzaW9uPikgPT5cbiAgKHZhbHVlc1tjeWNsZVsnQGlkJ11dPy5ub2Rlc1swXSB8fCB7IHZhbHVlOiBbMF0gfSkudmFsdWU7XG5cbmNvbnN0IGN5Y2xlTmFtZSA9IChjeWNsZTogSUN5Y2xlSlNPTkxELCBpbmRleDogbnVtYmVyKSA9PiBlbGxpcHNpcyhgJHtpbmRleCArIDF9LiAke2RlZmF1bHRMYWJlbChjeWNsZSl9YCwgMjUpO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdoZS1jeWNsZXMtZW1pc3Npb25zLWNoYXJ0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2N5Y2xlcy1lbWlzc2lvbnMtY2hhcnQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jeWNsZXMtZW1pc3Npb25zLWNoYXJ0LmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbRm9ybXNNb2R1bGVdXG59KVxuZXhwb3J0IGNsYXNzIEN5Y2xlc0VtaXNzaW9uc0NoYXJ0Q29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSBjaGFydFJlZiA9IHZpZXdDaGlsZC5yZXF1aXJlZDxFbGVtZW50UmVmPignY2hhcnQnKTtcbiAgcHJpdmF0ZSBjaGFydDogQ2hhcnQ8J2JhcicsIG51bWJlcltdLCBzdHJpbmc+O1xuXG4gIHByb3RlY3RlZCBjeWNsZXMgPSBpbnB1dC5yZXF1aXJlZDxJQ3ljbGVKU09OTERbXT4oKTtcblxuICBwcm90ZWN0ZWQgZW1pc3Npb25QZXJDeWNsZSA9IGNvbXB1dGVkKCgpID0+IGdyb3VwTm9kZXNCeVRlcm08SUN5Y2xlSlNPTkxELCBFbWlzc2lvbj4odGhpcy5jeWNsZXMoKSwgJ2VtaXNzaW9ucycpKTtcbiAgcHJvdGVjdGVkIHRlcm1zID0gY29tcHV0ZWQoKCkgPT5cbiAgICBPYmplY3QudmFsdWVzKHRoaXMuZW1pc3Npb25QZXJDeWNsZSgpKVxuICAgICAgLmZpbHRlcigoeyB2YWx1ZXMgfSkgPT5cbiAgICAgICAgT2JqZWN0LnZhbHVlcyh2YWx1ZXMpLnNvbWUoKHsgbm9kZXM6IFt7IHZhbHVlIH1dIH0pID0+IChwcm9wZXJ0eVZhbHVlKHZhbHVlKSBhcyBudW1iZXIpID49IDApXG4gICAgICApXG4gICAgICAubWFwKCh7IHRlcm0gfSkgPT4gdGVybSlcbiAgKTtcbiAgcHJvdGVjdGVkIHNlbGVjdGVkVGVybU5hbWUgPSBzaWduYWw8c3RyaW5nPih1bmRlZmluZWQpO1xuXG4gIHByaXZhdGUgc2VsZWN0ZWRUZXJtID0gY29tcHV0ZWQoKCkgPT4gdGhpcy50ZXJtcygpLmZpbmQodGVybSA9PiB0ZXJtLm5hbWUgPT09IHRoaXMuc2VsZWN0ZWRUZXJtTmFtZSgpKSk7XG4gIHByaXZhdGUgc2VsZWN0ZWRUZXJtSWQgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnNlbGVjdGVkVGVybSgpPy5bJ0BpZCddID8/ICcnKTtcbiAgcHJpdmF0ZSB2YWx1ZXMgPSBjb21wdXRlZChcbiAgICAoKSA9PiAodGhpcy5lbWlzc2lvblBlckN5Y2xlKClbdGhpcy5zZWxlY3RlZFRlcm1OYW1lKCldIHx8IHsgdmFsdWVzOiB7fSBhcyBJR3JvdXBlZE5vZGVzVmFsdWVzPEVtaXNzaW9uPiB9KS52YWx1ZXNcbiAgKTtcbiAgcHJpdmF0ZSBsYWJlbHMgPSBjb21wdXRlZCgoKSA9PiB0aGlzLmN5Y2xlcygpLm1hcChjeWNsZU5hbWUpKTtcbiAgcHJpdmF0ZSBjb2xvcnMgPSBjb21wdXRlZCgoKSA9PiB0aGlzLmN5Y2xlcygpLm1hcChsaXN0Q29sb3IpKTtcbiAgcHJpdmF0ZSBkYXRhc2V0cyA9IGNvbXB1dGVkKCgpID0+IFtcbiAgICB7XG4gICAgICBsYWJlbDogdGhpcy5zZWxlY3RlZFRlcm1OYW1lKCksXG4gICAgICBkYXRhOiB0aGlzLmN5Y2xlcygpLm1hcChcbiAgICAgICAgY3ljbGUgPT4gcHJvcGVydHlWYWx1ZShjeWNsZVZhbHVlKGN5Y2xlLCB0aGlzLnZhbHVlcygpKSwgdGhpcy5zZWxlY3RlZFRlcm1JZCgpKSBhcyBudW1iZXJcbiAgICAgICksXG4gICAgICBiYWNrZ3JvdW5kQ29sb3I6IHRoaXMuY29sb3JzKCksXG4gICAgICBib3JkZXJDb2xvcjogdGhpcy5jb2xvcnMoKVxuICAgIH1cbiAgXSk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgQ2hhcnQucmVnaXN0ZXIoQ2F0ZWdvcnlTY2FsZSwgTGluZWFyU2NhbGUsIEJhckNvbnRyb2xsZXIsIEJhckVsZW1lbnQsIENoYXJ0RGF0YUxhYmVscyk7XG5cbiAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgdGhpcy5jaGFydCA9IG5ldyBDaGFydCh0aGlzLmNoYXJ0UmVmKCkubmF0aXZlRWxlbWVudCwge1xuICAgICAgICB0eXBlOiAnYmFyJyxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIGxhYmVsczogW10sXG4gICAgICAgICAgZGF0YXNldHM6IFtdXG4gICAgICAgIH0sXG4gICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICBwbHVnaW5zOiB7XG4gICAgICAgICAgICBsZWdlbmQ6IHtcbiAgICAgICAgICAgICAgZGlzcGxheTogZmFsc2VcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBkYXRhbGFiZWxzOiB7XG4gICAgICAgICAgICAgIGNvbG9yOiAnYmxhY2snLFxuICAgICAgICAgICAgICBmb3JtYXR0ZXI6IHZhbHVlID0+IHRvUHJlY2lzaW9uKHZhbHVlLCAzKSxcbiAgICAgICAgICAgICAgYW5jaG9yOiAnY2VudGVyJyxcbiAgICAgICAgICAgICAgY2xhbXA6IHRydWVcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB0b29sdGlwOiB7XG4gICAgICAgICAgICAgIGVuYWJsZWQ6IHRydWVcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIHJlc3BvbnNpdmU6IHRydWUsXG4gICAgICAgICAgbWFpbnRhaW5Bc3BlY3RSYXRpbzogZmFsc2UsXG4gICAgICAgICAgc2NhbGVzOiB7XG4gICAgICAgICAgICB4OiB7XG4gICAgICAgICAgICAgIGRpc3BsYXk6IHRydWVcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB5OiB7XG4gICAgICAgICAgICAgIHBvc2l0aW9uOiAnbGVmdCcsXG4gICAgICAgICAgICAgIGJlZ2luQXRaZXJvOiB0cnVlXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIGVmZmVjdChcbiAgICAgICgpID0+IHtcbiAgICAgICAgLy8gbWFrZSBzdXJlIHNlbGVjdGVkIHRlcm0gZXhpc3RzXG4gICAgICAgIGNvbnN0IHRlcm1zID0gdGhpcy50ZXJtcygpO1xuICAgICAgICBjb25zdCBzZWxlY3RlZFRlcm1OYW1lID0gdGhpcy5zZWxlY3RlZFRlcm1OYW1lKCk7XG4gICAgICAgIGlmICghc2VsZWN0ZWRUZXJtTmFtZSB8fCAhdGhpcy5zZWxlY3RlZFRlcm0oKSkge1xuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRUZXJtTmFtZS5zZXQodGVybXNbMF0ubmFtZSk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB7IGFsbG93U2lnbmFsV3JpdGVzOiB0cnVlIH1cbiAgICApO1xuXG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIHRoaXMuY2hhcnQuZGF0YS5sYWJlbHMgPSB0aGlzLmxhYmVscygpO1xuICAgICAgdGhpcy5jaGFydC5kYXRhLmRhdGFzZXRzID0gdGhpcy5kYXRhc2V0cygpO1xuICAgICAgdGhpcy5jaGFydC51cGRhdGUoKTtcbiAgICB9KTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIENoYXJ0LnVucmVnaXN0ZXIoQ2hhcnREYXRhTGFiZWxzKTtcbiAgICByZXR1cm4gdGhpcy5jaGFydCAmJiB0aGlzLmNoYXJ0LmRlc3Ryb3koKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImlzLXAtM1wiIFtjbGFzcy5pcy1oaWRkZW5dPVwiIXRlcm1zKCk/Lmxlbmd0aFwiPlxuICA8ZGl2IGNsYXNzPVwiZmllbGQgaGFzLWFkZG9ucyBpcy1wdC0yIGlzLXB4LTNcIj5cbiAgICA8ZGl2IGNsYXNzPVwiY29udHJvbFwiPlxuICAgICAgPHNwYW4gY2xhc3M9XCJidXR0b24gaXMtc21hbGwgaXMtc3RhdGljIGlzLXNlY29uZGFyeVwiPlNlbGVjdCBhbiBFbWlzc2lvbjwvc3Bhbj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiY29udHJvbCBpcy1leHBhbmRlZFwiPlxuICAgICAgPGRpdiBjbGFzcz1cInNlbGVjdCBpcy1zbWFsbCBpcy1mdWxsd2lkdGggaXMtc2Vjb25kYXJ5XCI+XG4gICAgICAgIDxzZWxlY3RcbiAgICAgICAgICBbbmdNb2RlbF09XCJzZWxlY3RlZFRlcm1OYW1lKClcIlxuICAgICAgICAgIChjaGFuZ2UpPVwic2VsZWN0ZWRUZXJtTmFtZS5zZXQoJGV2ZW50LnRhcmdldC52YWx1ZSlcIlxuICAgICAgICAgIGlkPVwic2VsZWN0ZWRUZXJtTmFtZVwiPlxuICAgICAgICAgIEBmb3IgKHRlcm0gb2YgdGVybXMoKTsgdHJhY2sgdGVybSkge1xuICAgICAgICAgICAgPG9wdGlvbiBbdmFsdWVdPVwidGVybS5uYW1lXCI+e3sgdGVybS5uYW1lIH19ICh7eyB0ZXJtLnVuaXRzIH19KTwvb3B0aW9uPlxuICAgICAgICAgIH1cbiAgICAgICAgPC9zZWxlY3Q+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cIm10LTFcIj5cbiAgICA8ZGl2IGNsYXNzPVwiY2hhcnQtY29udGFpbmVyXCI+XG4gICAgICA8Y2FudmFzICNjaGFydD48L2NhbnZhcz5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
98
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3ljbGVzLWVtaXNzaW9ucy1jaGFydC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY3ljbGVzL2N5Y2xlcy1lbWlzc2lvbnMtY2hhcnQvY3ljbGVzLWVtaXNzaW9ucy1jaGFydC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9zcmMvY3ljbGVzL2N5Y2xlcy1lbWlzc2lvbnMtY2hhcnQvY3ljbGVzLWVtaXNzaW9ucy1jaGFydC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUVULEtBQUssRUFDTCxTQUFTLEVBQ1QsUUFBUSxFQUNSLE1BQU0sRUFDTixNQUFNLEVBQ04sdUJBQXVCLEVBRXhCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU3QyxPQUFPLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzVELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUM5RCxPQUFPLEVBQUUsYUFBYSxFQUFFLFVBQVUsRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDakcsT0FBTyxlQUFlLE1BQU0sMkJBQTJCLENBQUM7QUFFeEQsT0FBTyxFQUFFLGdCQUFnQixFQUF1QixNQUFNLHlCQUF5QixDQUFDO0FBQ2hGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7OztBQUUvQyxNQUFNLFVBQVUsR0FBRyxDQUFDLEtBQW1CLEVBQUUsTUFBcUMsRUFBRSxFQUFFLENBQ2hGLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUM7QUFFM0QsTUFBTSxTQUFTLEdBQUcsQ0FBQyxLQUFtQixFQUFFLEtBQWEsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLEdBQUcsS0FBSyxHQUFHLENBQUMsS0FBSyxZQUFZLENBQUMsS0FBSyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztBQVUvRyxNQUFNLE9BQU8sNkJBQTZCO0lBa0N4QztRQWpDUSxhQUFRLEdBQUcsU0FBUyxDQUFDLFFBQVEsQ0FBYSxPQUFPLENBQUMsQ0FBQztRQUdqRCxXQUFNLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBa0IsQ0FBQztRQUUxQyxxQkFBZ0IsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsZ0JBQWdCLENBQXlCLElBQUksQ0FBQyxNQUFNLEVBQUUsRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDO1FBQ3hHLFVBQUssR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQzlCLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7YUFDbkMsTUFBTSxDQUFDLENBQUMsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLENBQ3JCLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUUsYUFBYSxDQUFDLEtBQUssQ0FBWSxJQUFJLENBQUMsQ0FBQyxDQUM5RjthQUNBLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUMzQixDQUFDO1FBQ1EscUJBQWdCLEdBQUcsTUFBTSxDQUFTLFNBQVMsQ0FBQyxDQUFDO1FBRS9DLGlCQUFZLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNoRyxtQkFBYyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUNwRSxXQUFNLEdBQUcsUUFBUSxDQUN2QixHQUFHLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsRUFBbUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUNuSCxDQUFDO1FBQ00sV0FBTSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7UUFDdEQsV0FBTSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7UUFDdEQsYUFBUSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUNoQztnQkFDRSxLQUFLLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixFQUFFO2dCQUM5QixJQUFJLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FDckIsS0FBSyxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxJQUFJLENBQUMsY0FBYyxFQUFFLENBQVcsQ0FDMUY7Z0JBQ0QsZUFBZSxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUU7Z0JBQzlCLFdBQVcsRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFO2FBQzNCO1NBQ0YsQ0FBQyxDQUFDO1FBR0QsS0FBSyxDQUFDLFFBQVEsQ0FBQyxhQUFhLEVBQUUsV0FBVyxFQUFFLGFBQWEsRUFBRSxVQUFVLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFFL0UsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNWLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLGFBQWEsRUFBRTtnQkFDcEQsSUFBSSxFQUFFLEtBQUs7Z0JBQ1gsSUFBSSxFQUFFO29CQUNKLE1BQU0sRUFBRSxFQUFFO29CQUNWLFFBQVEsRUFBRSxFQUFFO2lCQUNiO2dCQUNELE9BQU8sRUFBRSxDQUFDLGVBQWUsQ0FBQztnQkFDMUIsT0FBTyxFQUFFO29CQUNQLE9BQU8sRUFBRTt3QkFDUCxNQUFNLEVBQUU7NEJBQ04sT0FBTyxFQUFFLEtBQUs7eUJBQ2Y7d0JBQ0QsT0FBTyxFQUFFOzRCQUNQLE9BQU8sRUFBRSxJQUFJO3lCQUNkO3dCQUNELFVBQVUsRUFBRTs0QkFDVixLQUFLLEVBQUUsT0FBTzs0QkFDZCxTQUFTLEVBQUUsS0FBSyxDQUFDLEVBQUUsQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQzs0QkFDekMsTUFBTSxFQUFFLFFBQVE7NEJBQ2hCLEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGO29CQUNELFVBQVUsRUFBRSxJQUFJO29CQUNoQixtQkFBbUIsRUFBRSxLQUFLO29CQUMxQixNQUFNLEVBQUU7d0JBQ04sQ0FBQyxFQUFFOzRCQUNELE9BQU8sRUFBRSxJQUFJO3lCQUNkO3dCQUNELENBQUMsRUFBRTs0QkFDRCxRQUFRLEVBQUUsTUFBTTs0QkFDaEIsV0FBVyxFQUFFLElBQUk7eUJBQ2xCO3FCQUNGO2lCQUNGO2FBQ0YsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUFFSCxNQUFNLENBQ0osR0FBRyxFQUFFO1lBQ0gsaUNBQWlDO1lBQ2pDLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUMzQixNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBQ2pELElBQUksQ0FBQyxnQkFBZ0IsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsRUFBRSxDQUFDO2dCQUM5QyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUMzQyxDQUFDO1FBQ0gsQ0FBQyxFQUNELEVBQUUsaUJBQWlCLEVBQUUsSUFBSSxFQUFFLENBQzVCLENBQUM7UUFFRixNQUFNLENBQUMsR0FBRyxFQUFFO1lBQ1YsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUN2QyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQzNDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDdEIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsV0FBVztRQUNULE9BQU8sSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQzVDLENBQUM7OEdBaEdVLDZCQUE2QjtrR0FBN0IsNkJBQTZCLDhVQ25DMUMsMjBCQXlCQSxnSkRRWSxXQUFXOzsyRkFFViw2QkFBNkI7a0JBUnpDLFNBQVM7K0JBQ0UsMkJBQTJCLG1CQUdwQix1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLElBQUksV0FDUCxDQUFDLFdBQVcsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgaW5wdXQsXG4gIHZpZXdDaGlsZCxcbiAgY29tcHV0ZWQsXG4gIHNpZ25hbCxcbiAgZWZmZWN0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgT25EZXN0cm95XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBFbWlzc2lvbiwgSUN5Y2xlSlNPTkxEIH0gZnJvbSAnQGhlc3RpYS1lYXJ0aC9zY2hlbWEnO1xuaW1wb3J0IHsgZWxsaXBzaXMsIHRvUHJlY2lzaW9uIH0gZnJvbSAnQGhlc3RpYS1lYXJ0aC91dGlscyc7XG5pbXBvcnQgeyBwcm9wZXJ0eVZhbHVlIH0gZnJvbSAnQGhlc3RpYS1lYXJ0aC91dGlscy9kaXN0L3Rlcm0nO1xuaW1wb3J0IHsgQmFyQ29udHJvbGxlciwgQmFyRWxlbWVudCwgQ2F0ZWdvcnlTY2FsZSwgQ2hhcnQsIExpbmVhclNjYWxlLCBUb29sdGlwIH0gZnJvbSAnY2hhcnQuanMnO1xuaW1wb3J0IENoYXJ0RGF0YUxhYmVscyBmcm9tICdjaGFydGpzLXBsdWdpbi1kYXRhbGFiZWxzJztcblxuaW1wb3J0IHsgZ3JvdXBOb2Rlc0J5VGVybSwgSUdyb3VwZWROb2Rlc1ZhbHVlcyB9IGZyb20gJy4uLy4uL2NvbW1vbi9ub2RlLXV0aWxzJztcbmltcG9ydCB7IGRlZmF1bHRMYWJlbCB9IGZyb20gJy4uLy4uL2NvbW1vbi91dGlscyc7XG5pbXBvcnQgeyBsaXN0Q29sb3IgfSBmcm9tICcuLi8uLi9jb21tb24vY29sb3InO1xuXG5jb25zdCBjeWNsZVZhbHVlID0gKGN5Y2xlOiBJQ3ljbGVKU09OTEQsIHZhbHVlczogSUdyb3VwZWROb2Rlc1ZhbHVlczxFbWlzc2lvbj4pID0+XG4gICh2YWx1ZXNbY3ljbGVbJ0BpZCddXT8ubm9kZXNbMF0gfHwgeyB2YWx1ZTogWzBdIH0pLnZhbHVlO1xuXG5jb25zdCBjeWNsZU5hbWUgPSAoY3ljbGU6IElDeWNsZUpTT05MRCwgaW5kZXg6IG51bWJlcikgPT4gZWxsaXBzaXMoYCR7aW5kZXggKyAxfS4gJHtkZWZhdWx0TGFiZWwoY3ljbGUpfWAsIDI1KTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaGUtY3ljbGVzLWVtaXNzaW9ucy1jaGFydCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9jeWNsZXMtZW1pc3Npb25zLWNoYXJ0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY3ljbGVzLWVtaXNzaW9ucy1jaGFydC5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0Zvcm1zTW9kdWxlXVxufSlcbmV4cG9ydCBjbGFzcyBDeWNsZXNFbWlzc2lvbnNDaGFydENvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgY2hhcnRSZWYgPSB2aWV3Q2hpbGQucmVxdWlyZWQ8RWxlbWVudFJlZj4oJ2NoYXJ0Jyk7XG4gIHByaXZhdGUgY2hhcnQ6IENoYXJ0PGFueSwgbnVtYmVyW10sIHN0cmluZz47XG5cbiAgcHJvdGVjdGVkIGN5Y2xlcyA9IGlucHV0LnJlcXVpcmVkPElDeWNsZUpTT05MRFtdPigpO1xuXG4gIHByb3RlY3RlZCBlbWlzc2lvblBlckN5Y2xlID0gY29tcHV0ZWQoKCkgPT4gZ3JvdXBOb2Rlc0J5VGVybTxJQ3ljbGVKU09OTEQsIEVtaXNzaW9uPih0aGlzLmN5Y2xlcygpLCAnZW1pc3Npb25zJykpO1xuICBwcm90ZWN0ZWQgdGVybXMgPSBjb21wdXRlZCgoKSA9PlxuICAgIE9iamVjdC52YWx1ZXModGhpcy5lbWlzc2lvblBlckN5Y2xlKCkpXG4gICAgICAuZmlsdGVyKCh7IHZhbHVlcyB9KSA9PlxuICAgICAgICBPYmplY3QudmFsdWVzKHZhbHVlcykuc29tZSgoeyBub2RlczogW3sgdmFsdWUgfV0gfSkgPT4gKHByb3BlcnR5VmFsdWUodmFsdWUpIGFzIG51bWJlcikgPj0gMClcbiAgICAgIClcbiAgICAgIC5tYXAoKHsgdGVybSB9KSA9PiB0ZXJtKVxuICApO1xuICBwcm90ZWN0ZWQgc2VsZWN0ZWRUZXJtTmFtZSA9IHNpZ25hbDxzdHJpbmc+KHVuZGVmaW5lZCk7XG5cbiAgcHJpdmF0ZSBzZWxlY3RlZFRlcm0gPSBjb21wdXRlZCgoKSA9PiB0aGlzLnRlcm1zKCkuZmluZCh0ZXJtID0+IHRlcm0ubmFtZSA9PT0gdGhpcy5zZWxlY3RlZFRlcm1OYW1lKCkpKTtcbiAgcHJpdmF0ZSBzZWxlY3RlZFRlcm1JZCA9IGNvbXB1dGVkKCgpID0+IHRoaXMuc2VsZWN0ZWRUZXJtKCk/LlsnQGlkJ10gPz8gJycpO1xuICBwcml2YXRlIHZhbHVlcyA9IGNvbXB1dGVkKFxuICAgICgpID0+ICh0aGlzLmVtaXNzaW9uUGVyQ3ljbGUoKVt0aGlzLnNlbGVjdGVkVGVybU5hbWUoKV0gfHwgeyB2YWx1ZXM6IHt9IGFzIElHcm91cGVkTm9kZXNWYWx1ZXM8RW1pc3Npb24+IH0pLnZhbHVlc1xuICApO1xuICBwcml2YXRlIGxhYmVscyA9IGNvbXB1dGVkKCgpID0+IHRoaXMuY3ljbGVzKCkubWFwKGN5Y2xlTmFtZSkpO1xuICBwcml2YXRlIGNvbG9ycyA9IGNvbXB1dGVkKCgpID0+IHRoaXMuY3ljbGVzKCkubWFwKGxpc3RDb2xvcikpO1xuICBwcml2YXRlIGRhdGFzZXRzID0gY29tcHV0ZWQoKCkgPT4gW1xuICAgIHtcbiAgICAgIGxhYmVsOiB0aGlzLnNlbGVjdGVkVGVybU5hbWUoKSxcbiAgICAgIGRhdGE6IHRoaXMuY3ljbGVzKCkubWFwKFxuICAgICAgICBjeWNsZSA9PiBwcm9wZXJ0eVZhbHVlKGN5Y2xlVmFsdWUoY3ljbGUsIHRoaXMudmFsdWVzKCkpLCB0aGlzLnNlbGVjdGVkVGVybUlkKCkpIGFzIG51bWJlclxuICAgICAgKSxcbiAgICAgIGJhY2tncm91bmRDb2xvcjogdGhpcy5jb2xvcnMoKSxcbiAgICAgIGJvcmRlckNvbG9yOiB0aGlzLmNvbG9ycygpXG4gICAgfVxuICBdKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBDaGFydC5yZWdpc3RlcihDYXRlZ29yeVNjYWxlLCBMaW5lYXJTY2FsZSwgQmFyQ29udHJvbGxlciwgQmFyRWxlbWVudCwgVG9vbHRpcCk7XG5cbiAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgdGhpcy5jaGFydCA9IG5ldyBDaGFydCh0aGlzLmNoYXJ0UmVmKCkubmF0aXZlRWxlbWVudCwge1xuICAgICAgICB0eXBlOiAnYmFyJyxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIGxhYmVsczogW10sXG4gICAgICAgICAgZGF0YXNldHM6IFtdXG4gICAgICAgIH0sXG4gICAgICAgIHBsdWdpbnM6IFtDaGFydERhdGFMYWJlbHNdLFxuICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgcGx1Z2luczoge1xuICAgICAgICAgICAgbGVnZW5kOiB7XG4gICAgICAgICAgICAgIGRpc3BsYXk6IGZhbHNlXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgdG9vbHRpcDoge1xuICAgICAgICAgICAgICBlbmFibGVkOiB0cnVlXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZGF0YWxhYmVsczoge1xuICAgICAgICAgICAgICBjb2xvcjogJ2JsYWNrJyxcbiAgICAgICAgICAgICAgZm9ybWF0dGVyOiB2YWx1ZSA9PiB0b1ByZWNpc2lvbih2YWx1ZSwgMyksXG4gICAgICAgICAgICAgIGFuY2hvcjogJ2NlbnRlcicsXG4gICAgICAgICAgICAgIGNsYW1wOiB0cnVlXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICByZXNwb25zaXZlOiB0cnVlLFxuICAgICAgICAgIG1haW50YWluQXNwZWN0UmF0aW86IGZhbHNlLFxuICAgICAgICAgIHNjYWxlczoge1xuICAgICAgICAgICAgeDoge1xuICAgICAgICAgICAgICBkaXNwbGF5OiB0cnVlXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgeToge1xuICAgICAgICAgICAgICBwb3NpdGlvbjogJ2xlZnQnLFxuICAgICAgICAgICAgICBiZWdpbkF0WmVybzogdHJ1ZVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBlZmZlY3QoXG4gICAgICAoKSA9PiB7XG4gICAgICAgIC8vIG1ha2Ugc3VyZSBzZWxlY3RlZCB0ZXJtIGV4aXN0c1xuICAgICAgICBjb25zdCB0ZXJtcyA9IHRoaXMudGVybXMoKTtcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWRUZXJtTmFtZSA9IHRoaXMuc2VsZWN0ZWRUZXJtTmFtZSgpO1xuICAgICAgICBpZiAoIXNlbGVjdGVkVGVybU5hbWUgfHwgIXRoaXMuc2VsZWN0ZWRUZXJtKCkpIHtcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkVGVybU5hbWUuc2V0KHRlcm1zWzBdLm5hbWUpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgeyBhbGxvd1NpZ25hbFdyaXRlczogdHJ1ZSB9XG4gICAgKTtcblxuICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICB0aGlzLmNoYXJ0LmRhdGEubGFiZWxzID0gdGhpcy5sYWJlbHMoKTtcbiAgICAgIHRoaXMuY2hhcnQuZGF0YS5kYXRhc2V0cyA9IHRoaXMuZGF0YXNldHMoKTtcbiAgICAgIHRoaXMuY2hhcnQudXBkYXRlKCk7XG4gICAgfSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICByZXR1cm4gdGhpcy5jaGFydCAmJiB0aGlzLmNoYXJ0LmRlc3Ryb3koKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImlzLXAtM1wiIFtjbGFzcy5pcy1oaWRkZW5dPVwiIXRlcm1zKCk/Lmxlbmd0aFwiPlxuICA8ZGl2IGNsYXNzPVwiZmllbGQgaGFzLWFkZG9ucyBpcy1wdC0yIGlzLXB4LTNcIj5cbiAgICA8ZGl2IGNsYXNzPVwiY29udHJvbFwiPlxuICAgICAgPHNwYW4gY2xhc3M9XCJidXR0b24gaXMtc21hbGwgaXMtc3RhdGljIGlzLXNlY29uZGFyeVwiPlNlbGVjdCBhbiBFbWlzc2lvbjwvc3Bhbj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiY29udHJvbCBpcy1leHBhbmRlZFwiPlxuICAgICAgPGRpdiBjbGFzcz1cInNlbGVjdCBpcy1zbWFsbCBpcy1mdWxsd2lkdGggaXMtc2Vjb25kYXJ5XCI+XG4gICAgICAgIDxzZWxlY3RcbiAgICAgICAgICBbbmdNb2RlbF09XCJzZWxlY3RlZFRlcm1OYW1lKClcIlxuICAgICAgICAgIChjaGFuZ2UpPVwic2VsZWN0ZWRUZXJtTmFtZS5zZXQoJGV2ZW50LnRhcmdldC52YWx1ZSlcIlxuICAgICAgICAgIGlkPVwic2VsZWN0ZWRUZXJtTmFtZVwiPlxuICAgICAgICAgIEBmb3IgKHRlcm0gb2YgdGVybXMoKTsgdHJhY2sgdGVybSkge1xuICAgICAgICAgICAgPG9wdGlvbiBbdmFsdWVdPVwidGVybS5uYW1lXCI+e3sgdGVybS5uYW1lIH19ICh7eyB0ZXJtLnVuaXRzIH19KTwvb3B0aW9uPlxuICAgICAgICAgIH1cbiAgICAgICAgPC9zZWxlY3Q+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cIm10LTFcIj5cbiAgICA8ZGl2IGNsYXNzPVwiY2hhcnQtY29udGFpbmVyXCI+XG4gICAgICA8Y2FudmFzICNjaGFydD48L2NhbnZhcz5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
@@ -1,5 +1,5 @@
1
1
  import { Component, ChangeDetectionStrategy, viewChild, input, effect, computed } from '@angular/core';
2
- import { Chart, CategoryScale, LinearScale, BarController, BarElement } from 'chart.js';
2
+ import { Chart, CategoryScale, LinearScale, BarController, BarElement, Tooltip } from 'chart.js';
3
3
  import { propertyValue } from '@hestia-earth/utils/dist/term';
4
4
  import { groupNodesByTerm } from '../../common/node-utils';
5
5
  import { ellipsis, defaultLabel } from '../../common/utils';
@@ -22,7 +22,7 @@ export class CyclesResultComponent {
22
22
  data: this.cycles().map(({ '@id': id }) => (values[id] ? propertyValue(values[id].value, termId) : 0))
23
23
  };
24
24
  }));
25
- Chart.register(CategoryScale, LinearScale, BarController, BarElement);
25
+ Chart.register(CategoryScale, LinearScale, BarController, BarElement, Tooltip);
26
26
  effect(() => {
27
27
  this.chart = new Chart(this.chartRef().nativeElement, {
28
28
  type: 'bar',
@@ -36,18 +36,15 @@ export class CyclesResultComponent {
36
36
  maintainAspectRatio: false,
37
37
  plugins: {
38
38
  legend: {
39
- display: true
39
+ display: false
40
40
  },
41
41
  tooltip: {
42
42
  enabled: true,
43
- position: 'nearest'
44
- // callbacks: {
45
- // // title: (tooltipItems, data) => data.labels![tooltipItems[0].index!] as any
46
- // title() {
47
- // console.log(arguments);
48
- // return 'test';
49
- // }
50
- // }
43
+ callbacks: {
44
+ title([{ dataIndex }]) {
45
+ return this.chart.data.labels[dataIndex];
46
+ }
47
+ }
51
48
  }
52
49
  },
53
50
  scales: {
@@ -81,4 +78,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImpor
81
78
  type: Component,
82
79
  args: [{ selector: 'he-cycles-result', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, template: "<div class=\"chart-container\">\n <canvas #chart></canvas>\n</div>\n", styles: [":host{display:block}.chart-container{height:100%;min-height:300px;position:relative}\n"] }]
83
80
  }], ctorParameters: () => [] });
84
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3ljbGVzLXJlc3VsdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY3ljbGVzL2N5Y2xlcy1yZXN1bHQvY3ljbGVzLXJlc3VsdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9zcmMvY3ljbGVzL2N5Y2xlcy1yZXN1bHQvY3ljbGVzLXJlc3VsdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUVULHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsS0FBSyxFQUNMLE1BQU0sRUFDTixRQUFRLEVBRVQsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLEtBQUssRUFBRSxhQUFhLEVBQUUsV0FBVyxFQUFFLGFBQWEsRUFBRSxVQUFVLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDeEYsT0FBTyxFQUFFLGFBQWEsRUFBcUIsTUFBTSwrQkFBK0IsQ0FBQztBQUVqRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzVELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7QUFFOUMsTUFBTSxTQUFTLEdBQUcsQ0FBQyxLQUFtQixFQUFFLEtBQWEsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLEdBQUcsS0FBSyxHQUFHLENBQUMsS0FBSyxZQUFZLENBQUMsS0FBSyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztBQVMvRyxNQUFNLE9BQU8scUJBQXFCO0lBc0JoQztRQXJCUSxhQUFRLEdBQUcsU0FBUyxDQUFDLFFBQVEsQ0FBYSxPQUFPLENBQUMsQ0FBQztRQUdqRCxXQUFNLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBa0IsQ0FBQztRQUU1QyxxQkFBZ0IsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsZ0JB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Q0FBQztRQUN0QixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxXQUFXO1FBQ1QsT0FBTyxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDNUMsQ0FBQzs4R0E3RVUscUJBQXFCO2tHQUFyQixxQkFBcUIscVVDM0JsQyx1RUFHQTs7MkZEd0JhLHFCQUFxQjtrQkFQakMsU0FBUzsrQkFDRSxrQkFBa0IsbUJBR1gsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgdmlld0NoaWxkLFxuICBpbnB1dCxcbiAgZWZmZWN0LFxuICBjb21wdXRlZCxcbiAgT25EZXN0cm95XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSUN5Y2xlSlNPTkxELCBQcm9kdWN0IH0gZnJvbSAnQGhlc3RpYS1lYXJ0aC9zY2hlbWEnO1xuaW1wb3J0IHsgQ2hhcnQsIENhdGVnb3J5U2NhbGUsIExpbmVhclNjYWxlLCBCYXJDb250cm9sbGVyLCBCYXJFbGVtZW50IH0gZnJvbSAnY2hhcnQuanMnO1xuaW1wb3J0IHsgcHJvcGVydHlWYWx1ZSwgcHJvcGVydHlWYWx1ZVR5cGUgfSBmcm9tICdAaGVzdGlhLWVhcnRoL3V0aWxzL2Rpc3QvdGVybSc7XG5cbmltcG9ydCB7IGdyb3VwTm9kZXNCeVRlcm0gfSBmcm9tICcuLi8uLi9jb21tb24vbm9kZS11dGlscyc7XG5pbXBvcnQgeyBlbGxpcHNpcywgZGVmYXVsdExhYmVsIH0gZnJvbSAnLi4vLi4vY29tbW9uL3V0aWxzJztcbmltcG9ydCB7IGdldENvbG9yIH0gZnJvbSAnLi4vLi4vY29tbW9uL2NvbG9yJztcblxuY29uc3QgY3ljbGVOYW1lID0gKGN5Y2xlOiBJQ3ljbGVKU09OTEQsIGluZGV4OiBudW1iZXIpID0+IGVsbGlwc2lzKGAke2luZGV4ICsgMX0uICR7ZGVmYXVsdExhYmVsKGN5Y2xlKX1gLCAyNSk7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2hlLWN5Y2xlcy1yZXN1bHQnLFxuICB0ZW1wbGF0ZVVybDogJy4vY3ljbGVzLXJlc3VsdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2N5Y2xlcy1yZXN1bHQuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgQ3ljbGVzUmVzdWx0Q29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSBjaGFydFJlZiA9IHZpZXdDaGlsZC5yZXF1aXJlZDxFbGVtZW50UmVmPignY2hhcnQnKTtcbiAgcHJpdmF0ZSBjaGFydDogQ2hhcnQ8J2JhcicsIHByb3BlcnR5VmFsdWVUeXBlW10sIHN0cmluZz47XG5cbiAgcHJvdGVjdGVkIGN5Y2xlcyA9IGlucHV0LnJlcXVpcmVkPElDeWNsZUpTT05MRFtdPigpO1xuXG4gIHByaXZhdGUgcHJvZHVjdHNQZXJDeWNsZSA9IGNvbXB1dGVkKCgpID0+IGdyb3VwTm9kZXNCeVRlcm08SUN5Y2xlSlNPTkxELCBQcm9kdWN0Pih0aGlzLmN5Y2xlcygpLCAncHJvZHVjdHMnKSk7XG5cbiAgcHJpdmF0ZSBsYWJlbHMgPSBjb21wdXRlZCgoKSA9PiB0aGlzLmN5Y2xlcygpLm1hcChjeWNsZU5hbWUpKTtcbiAgcHJpdmF0ZSBkYXRhc2V0cyA9IGNvbXB1dGVkKCgpID0+XG4gICAgT2JqZWN0LnZhbHVlcyh0aGlzLnByb2R1Y3RzUGVyQ3ljbGUoKSkubWFwKCh7IHRlcm06IHsgbmFtZSwgdW5pdHMsICdAaWQnOiB0ZXJtSWQgfSwgdmFsdWVzIH0sIGluZGV4KSA9PiB7XG4gICAgICBjb25zdCBjb2xvciA9IGdldENvbG9yKGluZGV4KTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGxhYmVsOiBgJHtuYW1lfSR7dW5pdHMgPyBgIChpbiAke3VuaXRzfSlgIDogJyd9YCxcbiAgICAgICAgYmFja2dyb3VuZENvbG9yOiBjb2xvcixcbiAgICAgICAgYm9yZGVyQ29sb3I6IGNvbG9yLFxuICAgICAgICBiYXJQZXJjZW50YWdlOiAwLjUsXG4gICAgICAgIGRhdGE6IHRoaXMuY3ljbGVzKCkubWFwKCh7ICdAaWQnOiBpZCB9KSA9PiAodmFsdWVzW2lkXSA/IHByb3BlcnR5VmFsdWUodmFsdWVzW2lkXS52YWx1ZSwgdGVybUlkKSA6IDApKVxuICAgICAgfTtcbiAgICB9KVxuICApO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIENoYXJ0LnJlZ2lzdGVyKENhdGVnb3J5U2NhbGUsIExpbmVhclNjYWxlLCBCYXJDb250cm9sbGVyLCBCYXJFbGVtZW50KTtcblxuICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICB0aGlzLmNoYXJ0ID0gbmV3IENoYXJ0KHRoaXMuY2hhcnRSZWYoKS5uYXRpdmVFbGVtZW50LCB7XG4gICAgICAgIHR5cGU6ICdiYXInLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgbGFiZWxzOiBbXSxcbiAgICAgICAgICBkYXRhc2V0czogW11cbiAgICAgICAgfSxcbiAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgIGluZGV4QXhpczogJ3knLFxuICAgICAgICAgIHJlc3BvbnNpdmU6IHRydWUsXG4gICAgICAgICAgbWFpbnRhaW5Bc3BlY3RSYXRpbzogZmFsc2UsXG4gICAgICAgICAgcGx1Z2luczoge1xuICAgICAgICAgICAgbGVnZW5kOiB7XG4gICAgICAgICAgICAgIGRpc3BsYXk6IHRydWVcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB0b29sdGlwOiB7XG4gICAgICAgICAgICAgIGVuYWJsZWQ6IHRydWUsXG4gICAgICAgICAgICAgIHBvc2l0aW9uOiAnbmVhcmVzdCdcbiAgICAgICAgICAgICAgLy8gY2FsbGJhY2tzOiB7XG4gICAgICAgICAgICAgIC8vICAgLy8gdGl0bGU6ICh0b29sdGlwSXRlbXMsIGRhdGEpID0+IGRhdGEubGFiZWxzIVt0b29sdGlwSXRlbXNbMF0uaW5kZXghXSBhcyBhbnlcbiAgICAgICAgICAgICAgLy8gICB0aXRsZSgpIHtcbiAgICAgICAgICAgICAgLy8gICAgIGNvbnNvbGUubG9nKGFyZ3VtZW50cyk7XG4gICAgICAgICAgICAgIC8vICAgICByZXR1cm4gJ3Rlc3QnO1xuICAgICAgICAgICAgICAvLyAgIH1cbiAgICAgICAgICAgICAgLy8gfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgc2NhbGVzOiB7XG4gICAgICAgICAgICB4OiB7XG4gICAgICAgICAgICAgIGJlZ2luQXRaZXJvOiB0cnVlXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgeToge1xuICAgICAgICAgICAgICBwb3NpdGlvbjogJ2xlZnQnLFxuICAgICAgICAgICAgICB0aXRsZToge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IHRydWUsXG4gICAgICAgICAgICAgICAgdGV4dDogJ0N5Y2xlJ1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICB0aGlzLmNoYXJ0LmRhdGEubGFiZWxzID0gdGhpcy5sYWJlbHMoKTtcbiAgICAgIHRoaXMuY2hhcnQuZGF0YS5kYXRhc2V0cyA9IHRoaXMuZGF0YXNldHMoKTtcbiAgICAgIHRoaXMuY2hhcnQudXBkYXRlKCk7XG4gICAgfSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICByZXR1cm4gdGhpcy5jaGFydCAmJiB0aGlzLmNoYXJ0LmRlc3Ryb3koKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImNoYXJ0LWNvbnRhaW5lclwiPlxuICA8Y2FudmFzICNjaGFydD48L2NhbnZhcz5cbjwvZGl2PlxuIl19
81
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3ljbGVzLXJlc3VsdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY3ljbGVzL2N5Y2xlcy1yZXN1bHQvY3ljbGVzLXJlc3VsdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9zcmMvY3ljbGVzL2N5Y2xlcy1yZXN1bHQvY3ljbGVzLXJlc3VsdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUVULHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsS0FBSyxFQUNMLE1BQU0sRUFDTixRQUFRLEVBRVQsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLEtBQUssRUFBRSxhQUFhLEVBQUUsV0FBVyxFQUFFLGFBQWEsRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ2pHLE9BQU8sRUFBRSxhQUFhLEVBQXFCLE1BQU0sK0JBQStCLENBQUM7QUFFakYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7O0FBRTlDLE1BQU0sU0FBUyxHQUFHLENBQUMsS0FBbUIsRUFBRSxLQUFhLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEtBQUssR0FBRyxDQUFDLEtBQUssWUFBWSxDQUFDLEtBQUssQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFTL0csTUFBTSxPQUFPLHFCQUFxQjtJQXNCaEM7UUFyQlEsYUFBUSxHQUFHLFNBQVMsQ0FBQyxRQUFRLENBQWEsT0FBTyxDQUFDLENBQUM7UUFHakQsV0FBTSxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQWtCLENBQUM7UUFFNUMscUJBQWdCLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFB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QUMsUUFBUSxFQUFFLENBQUM7WUFDM0MsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUN0QixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxXQUFXO1FBQ1QsT0FBTyxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDNUMsQ0FBQzs4R0ExRVUscUJBQXFCO2tHQUFyQixxQkFBcUIscVVDM0JsQyx1RUFHQTs7MkZEd0JhLHFCQUFxQjtrQkFQakMsU0FBUzsrQkFDRSxrQkFBa0IsbUJBR1gsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgdmlld0NoaWxkLFxuICBpbnB1dCxcbiAgZWZmZWN0LFxuICBjb21wdXRlZCxcbiAgT25EZXN0cm95XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSUN5Y2xlSlNPTkxELCBQcm9kdWN0IH0gZnJvbSAnQGhlc3RpYS1lYXJ0aC9zY2hlbWEnO1xuaW1wb3J0IHsgQ2hhcnQsIENhdGVnb3J5U2NhbGUsIExpbmVhclNjYWxlLCBCYXJDb250cm9sbGVyLCBCYXJFbGVtZW50LCBUb29sdGlwIH0gZnJvbSAnY2hhcnQuanMnO1xuaW1wb3J0IHsgcHJvcGVydHlWYWx1ZSwgcHJvcGVydHlWYWx1ZVR5cGUgfSBmcm9tICdAaGVzdGlhLWVhcnRoL3V0aWxzL2Rpc3QvdGVybSc7XG5cbmltcG9ydCB7IGdyb3VwTm9kZXNCeVRlcm0gfSBmcm9tICcuLi8uLi9jb21tb24vbm9kZS11dGlscyc7XG5pbXBvcnQgeyBlbGxpcHNpcywgZGVmYXVsdExhYmVsIH0gZnJvbSAnLi4vLi4vY29tbW9uL3V0aWxzJztcbmltcG9ydCB7IGdldENvbG9yIH0gZnJvbSAnLi4vLi4vY29tbW9uL2NvbG9yJztcblxuY29uc3QgY3ljbGVOYW1lID0gKGN5Y2xlOiBJQ3ljbGVKU09OTEQsIGluZGV4OiBudW1iZXIpID0+IGVsbGlwc2lzKGAke2luZGV4ICsgMX0uICR7ZGVmYXVsdExhYmVsKGN5Y2xlKX1gLCAyNSk7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2hlLWN5Y2xlcy1yZXN1bHQnLFxuICB0ZW1wbGF0ZVVybDogJy4vY3ljbGVzLXJlc3VsdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2N5Y2xlcy1yZXN1bHQuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgQ3ljbGVzUmVzdWx0Q29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSBjaGFydFJlZiA9IHZpZXdDaGlsZC5yZXF1aXJlZDxFbGVtZW50UmVmPignY2hhcnQnKTtcbiAgcHJpdmF0ZSBjaGFydDogQ2hhcnQ8J2JhcicsIHByb3BlcnR5VmFsdWVUeXBlW10sIHN0cmluZz47XG5cbiAgcHJvdGVjdGVkIGN5Y2xlcyA9IGlucHV0LnJlcXVpcmVkPElDeWNsZUpTT05MRFtdPigpO1xuXG4gIHByaXZhdGUgcHJvZHVjdHNQZXJDeWNsZSA9IGNvbXB1dGVkKCgpID0+IGdyb3VwTm9kZXNCeVRlcm08SUN5Y2xlSlNPTkxELCBQcm9kdWN0Pih0aGlzLmN5Y2xlcygpLCAncHJvZHVjdHMnKSk7XG5cbiAgcHJpdmF0ZSBsYWJlbHMgPSBjb21wdXRlZCgoKSA9PiB0aGlzLmN5Y2xlcygpLm1hcChjeWNsZU5hbWUpKTtcbiAgcHJpdmF0ZSBkYXRhc2V0cyA9IGNvbXB1dGVkKCgpID0+XG4gICAgT2JqZWN0LnZhbHVlcyh0aGlzLnByb2R1Y3RzUGVyQ3ljbGUoKSkubWFwKCh7IHRlcm06IHsgbmFtZSwgdW5pdHMsICdAaWQnOiB0ZXJtSWQgfSwgdmFsdWVzIH0sIGluZGV4KSA9PiB7XG4gICAgICBjb25zdCBjb2xvciA9IGdldENvbG9yKGluZGV4KTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGxhYmVsOiBgJHtuYW1lfSR7dW5pdHMgPyBgIChpbiAke3VuaXRzfSlgIDogJyd9YCxcbiAgICAgICAgYmFja2dyb3VuZENvbG9yOiBjb2xvcixcbiAgICAgICAgYm9yZGVyQ29sb3I6IGNvbG9yLFxuICAgICAgICBiYXJQZXJjZW50YWdlOiAwLjUsXG4gICAgICAgIGRhdGE6IHRoaXMuY3ljbGVzKCkubWFwKCh7ICdAaWQnOiBpZCB9KSA9PiAodmFsdWVzW2lkXSA/IHByb3BlcnR5VmFsdWUodmFsdWVzW2lkXS52YWx1ZSwgdGVybUlkKSA6IDApKVxuICAgICAgfTtcbiAgICB9KVxuICApO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIENoYXJ0LnJlZ2lzdGVyKENhdGVnb3J5U2NhbGUsIExpbmVhclNjYWxlLCBCYXJDb250cm9sbGVyLCBCYXJFbGVtZW50LCBUb29sdGlwKTtcblxuICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICB0aGlzLmNoYXJ0ID0gbmV3IENoYXJ0KHRoaXMuY2hhcnRSZWYoKS5uYXRpdmVFbGVtZW50LCB7XG4gICAgICAgIHR5cGU6ICdiYXInLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgbGFiZWxzOiBbXSxcbiAgICAgICAgICBkYXRhc2V0czogW11cbiAgICAgICAgfSxcbiAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgIGluZGV4QXhpczogJ3knLFxuICAgICAgICAgIHJlc3BvbnNpdmU6IHRydWUsXG4gICAgICAgICAgbWFpbnRhaW5Bc3BlY3RSYXRpbzogZmFsc2UsXG4gICAgICAgICAgcGx1Z2luczoge1xuICAgICAgICAgICAgbGVnZW5kOiB7XG4gICAgICAgICAgICAgIGRpc3BsYXk6IGZhbHNlXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgdG9vbHRpcDoge1xuICAgICAgICAgICAgICBlbmFibGVkOiB0cnVlLFxuICAgICAgICAgICAgICBjYWxsYmFja3M6IHtcbiAgICAgICAgICAgICAgICB0aXRsZShbeyBkYXRhSW5kZXggfV0pIHtcbiAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmNoYXJ0LmRhdGEubGFiZWxzW2RhdGFJbmRleF0gYXMgc3RyaW5nO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgc2NhbGVzOiB7XG4gICAgICAgICAgICB4OiB7XG4gICAgICAgICAgICAgIGJlZ2luQXRaZXJvOiB0cnVlXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgeToge1xuICAgICAgICAgICAgICBwb3NpdGlvbjogJ2xlZnQnLFxuICAgICAgICAgICAgICB0aXRsZToge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IHRydWUsXG4gICAgICAgICAgICAgICAgdGV4dDogJ0N5Y2xlJ1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICB0aGlzLmNoYXJ0LmRhdGEubGFiZWxzID0gdGhpcy5sYWJlbHMoKTtcbiAgICAgIHRoaXMuY2hhcnQuZGF0YS5kYXRhc2V0cyA9IHRoaXMuZGF0YXNldHMoKTtcbiAgICAgIHRoaXMuY2hhcnQudXBkYXRlKCk7XG4gICAgfSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICByZXR1cm4gdGhpcy5jaGFydCAmJiB0aGlzLmNoYXJ0LmRlc3Ryb3koKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImNoYXJ0LWNvbnRhaW5lclwiPlxuICA8Y2FudmFzICNjaGFydD48L2NhbnZhcz5cbjwvZGl2PlxuIl19
@@ -99,7 +99,7 @@ export class ImpactAssessmentsIndicatorBreakdownChartComponent {
99
99
  borderColor: this.logs().map(listColor)
100
100
  }
101
101
  ]);
102
- Chart.register(CategoryScale, LinearScale, BarController, BarElement, ChartDataLabels);
102
+ Chart.register(CategoryScale, LinearScale, BarController, BarElement);
103
103
  this.impactAssessment$
104
104
  .pipe(filter(v => !!v), distinctUntilChangedDeep(), take(1), tap(() => this.loading.set(true)), mergeMap(node => (node ? this.nodeService.getLog({ ...node, dataState: DataState.recalculated }) : of(''))), map(value => (value ? parseLines(value) : [])), mergeAll(), filter(({ data }) => data.logger === 'hestia_earth.models' && data.level === Level.debug), filter(({ data: { message } }) => !!message), map(({ data: { message } }) => parseMessage(message)), filter(message => 'node' in message), map(parseLog), filter(log => !!log.impactTermId && !!log.blankNodeTermId && !isNaN(log.value) && log.value > 0), groupBy(log => [log.impactTermId, log.blankNodeTermId, log.modelId].join('/')), mergeMap(group => group.pipe(toArray())), map((values) => {
105
105
  const log = values[0];
@@ -132,12 +132,16 @@ export class ImpactAssessmentsIndicatorBreakdownChartComponent {
132
132
  labels: [],
133
133
  datasets: []
134
134
  },
135
+ plugins: [ChartDataLabels],
135
136
  options: {
136
137
  indexAxis: 'y',
137
138
  plugins: {
138
139
  legend: {
139
140
  display: false
140
141
  },
142
+ tooltip: {
143
+ enabled: false
144
+ },
141
145
  datalabels: {
142
146
  color: 'black',
143
147
  formatter: value => {
@@ -145,9 +149,6 @@ export class ImpactAssessmentsIndicatorBreakdownChartComponent {
145
149
  return value > 0 ? `${toPrecision(value, 3)} (${ratio}%)` : '';
146
150
  },
147
151
  align: 'end'
148
- },
149
- tooltip: {
150
- enabled: false
151
152
  }
152
153
  },
153
154
  responsive: true,
@@ -178,7 +179,6 @@ export class ImpactAssessmentsIndicatorBreakdownChartComponent {
178
179
  });
179
180
  }
180
181
  ngOnDestroy() {
181
- Chart.unregister(ChartDataLabels);
182
182
  return this.chart && this.chart.destroy();
183
183
  }
184
184
  selectTerm({ target: { value } }) {
@@ -196,4 +196,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImpor
196
196
  type: Component,
197
197
  args: [{ selector: 'he-impact-assessments-indicator-breakdown-chart', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [FaIconComponent, FormsModule], template: "@if (loading()) {\n <div class=\"has-text-center py-3\">\n <fa-icon [icon]=\"faSpinner\" [pulse]=\"true\" size=\"lg\"></fa-icon>\n </div>\n} @else {\n <div class=\"p-3\" [class.is-hidden]=\"!terms()?.length\">\n <div class=\"columns\">\n <div class=\"column\">\n <div class=\"field has-addons\">\n <div class=\"control\">\n <span class=\"button is-small is-static is-secondary\">Select an Indicator</span>\n </div>\n @if (terms()?.length) {\n <div class=\"control is-expanded\">\n <div class=\"select is-fullwidth is-small is-secondary\">\n <select (change)=\"selectTerm($event)\">\n @for (term of terms(); track term) {\n <option [value]=\"term['@id']\">{{ term.name }} ({{ term.units }})</option>\n }\n </select>\n </div>\n </div>\n }\n @if (methods()?.length) {\n <div class=\"control is-expanded\">\n <div class=\"select is-fullwidth is-small is-secondary\">\n <select (change)=\"selectMethod($event)\">\n <option [ngValue]=\"undefined\">Filter Model</option>\n @for (term of methods(); track term) {\n <option [value]=\"term['@id']\">{{ term.name }}</option>\n }\n </select>\n </div>\n </div>\n }\n </div>\n </div>\n <div class=\"column is-narrow\">\n <a\n class=\"button is-ghost is-small\"\n [href]=\"csvContent()\"\n [download]=\"downloadFilename()\"\n nbgTooltip=\"Download as CSV\"\n placement=\"bottom\">\n <fa-icon [icon]=\"faDownload\"></fa-icon>\n </a>\n </div>\n </div>\n @if (!selectedMethod()) {\n <p class=\"is-size-7\">\n <i>Selecting a Model is recommended to avoid duplicated entries.</i>\n </p>\n }\n </div>\n}\n\n<div class=\"is-mt-1\">\n @if (!loading() && noData()) {\n <p class=\"has-text-centered\">\n <span>No breakdown available for</span>\n @if (selectedTerm()) {\n <span class=\"is-pl-1\">{{ selectedTerm().name }}</span>\n }\n @if (selectedMethod()) {\n <span class=\"is-pl-1\">({{ selectedMethod().name }})</span>\n }\n <span>.</span>\n </p>\n }\n <div class=\"chart-container h-100\">\n <canvas #chart></canvas>\n </div>\n</div>\n", styles: [":host{display:block;overflow:visible}.chart-container{height:400px;position:relative}\n"] }]
198
198
  }], ctorParameters: () => [] });
199
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1wYWN0LWFzc2Vzc21lbnRzLWluZGljYXRvci1icmVha2Rvd24tY2hhcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2ltcGFjdC1hc3Nlc3NtZW50cy9pbXBhY3QtYXNzZXNzbWVudHMtaW5kaWNhdG9yLWJyZWFrZG93bi1jaGFydC9pbXBhY3QtYXNzZXNzbWVudHMtaW5kaWNhdG9yLWJyZWFrZG93bi1jaGFydC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9zcmMvaW1wYWN0LWFzc2Vzc21lbnRzL2ltcGFjdC1hc3Nlc3NtZW50cy1pbmRpY2F0b3ItYnJlYWtkb3duLWNoYXJ0L2ltcGFjdC1hc3Nlc3NtZW50cy1pbmRpY2F0b3ItYnJlYWtkb3duLWNoYXJ0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUdULFFBQVEsRUFDUixNQUFNLEVBQ04sTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLEVBQ04sU0FBUyxFQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUYsT0FBTyxFQUFFLGFBQWEsRUFBRSxVQUFVLEVBQUUsYUFBYSxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDeEYsT0FBTyxlQUFlLE1BQU0sMkJBQTJCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzlDLE9B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QUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUMzRyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUM5QyxRQUFRLEVBQUUsRUFDVixNQUFNLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxLQUFLLHFCQUFxQixJQUFJLElBQUksQ0FBQyxLQUFLLEtBQUssS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUN6RixNQUFNLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFDNUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUMsRUFDckQsTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsTUFBTSxJQUFJLE9BQU8sQ0FBQyxFQUNwQyxHQUFHLENBQUMsUUFBUSxDQUFDLEVBQ2IsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxZQUFZLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxlQUFlLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLEVBQ2hHLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxHQUFHLENBQUMsZUFBZSxFQUFFLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFDOUUsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLEVB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WSxlQUFlLGlQQUFFLFdBQVc7OzJGQUUzQixpREFBaUQ7a0JBUjdELFNBQVM7K0JBQ0UsaURBQWlELG1CQUcxQyx1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLElBQUksV0FDUCxDQUFDLGVBQWUsRUFBRSxXQUFXLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBPbkRlc3Ryb3ksXG4gIGNvbXB1dGVkLFxuICBlZmZlY3QsXG4gIGluamVjdCxcbiAgaW5wdXQsXG4gIHNpZ25hbCxcbiAgdmlld0NoaWxkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRG9tU2FuaXRpemVyIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5pbXBvcnQgeyB0b09ic2VydmFibGUsIHRvU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgZmlsdGVyLCBncm91cEJ5LCBtYXAsIG1lcmdlQWxsLCBtZXJnZU1hcCwgdGFrZSwgdGFwLCB0b0FycmF5IH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQmFyQ29udHJvbGxlciwgQmFyRWxlbWVudCwgQ2F0ZWdvcnlTY2FsZSwgQ2hhcnQsIExpbmVhclNjYWxlIH0gZnJvbSAnY2hhcnQuanMnO1xuaW1wb3J0IENoYXJ0RGF0YUxhYmVscyBmcm9tICdjaGFydGpzLXBsdWdpbi1kYXRhbGFiZWxzJztcbmltcG9ydCB7IERhdGFTdGF0ZSB9IGZyb20gJ0BoZXN0aWEtZWFydGgvYXBpJztcbmltcG9ydCB7IElJbXBhY3RBc3Nlc3NtZW50SlNPTkxELCBJbmRpY2F0b3IsIElUZXJtSlNPTkxELCBOb2RlVHlwZSwgVGVybSwgVGVybVRlcm1UeXBlIH0gZnJvbSAnQGhlc3RpYS1lYXJ0aC9zY2hlbWEnO1xuaW1wb3J0IHsgdG9QcmVjaXNpb24sIHVuaXF1ZSB9IGZyb20gJ0BoZXN0aWEtZWFydGgvdXRpbHMnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBGYUljb25Db21wb25lbnQgfSBmcm9tICdAZm9ydGF3ZXNvbWUvYW5ndWxhci1mb250YXdlc29tZSc7XG5pbXBvcnQgeyBmYURvd25sb2FkLCBmYVNwaW5uZXIgfSBmcm9tICdAZm9ydGF3ZXNvbWUvZnJlZS1zb2xpZC1zdmctaWNvbnMnO1xuaW1wb3J0IHsgb2YgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgbWF0Y2hUZXJtVHlwZSwgbWF0Y2hUeXBlIH0gZnJvbSAnLi4vLi4vc2VhcmNoL3NlYXJjaC5tb2RlbCc7XG5pbXBvcnQgeyBIZVNlYXJjaFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZWFyY2gvc2VhcmNoLnNlcnZpY2UnO1xuaW1wb3J0IHsgSGVOb2RlU2VydmljZSB9IGZyb20gJy4uLy4uL25vZGUvbm9kZS5zZXJ2aWNlJztcbmltcG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkRGVlcCB9IGZyb20gJy4uLy4uL2NvbW1vbi9yeGpzLXV0aWxzJztcbmltcG9ydCB7IExldmVsLCBwYXJzZUxpbmVzLCBwYXJzZU1lc3NhZ2UgfSBmcm9tICcuLi8uLi9jb21tb24vbG9ncy11dGlscyc7XG5pbXBvcnQgeyBsaXN0Q29sb3IgfSBmcm9tICcuLi8uLi9jb21tb24vY29sb3InO1xuXG5pbnRlcmZhY2UgSUxvZyB7XG4gIG1vZGVsSWQ6IHN0cmluZztcbiAgaW1wYWN0VGVybUlkOiBzdHJpbmc7XG4gIGltcGFjdFRlcm1Vbml0cz86IHN0cmluZztcbiAgYmxhbmtOb2RlVGVybUlkOiBzdHJpbmc7XG4gIGNvZWZmaWNpZW50OiBudW1iZXI7XG4gIHZhbHVlOiBudW1iZXI7XG4gIC8vIHN0b3JlIGFsbCBpbmRpY2F0b3JzIHdpdGggaW5wdXRzXG4gIGlucHV0cz86IHtcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgdmFsdWU6IG51bWJlcjtcbiAgfVtdO1xuICBpbnB1dHNWYWx1ZT86IG51bWJlcjtcbn1cblxuY29uc3QgcGFyc2VMb2cgPSAoZGF0YTogYW55KTogSUxvZyA9PiAoe1xuICBtb2RlbElkOiBkYXRhLm1vZGVsLFxuICBpbXBhY3RUZXJtSWQ6IGRhdGFbJ2tleS90ZXJtJ10gfHwgZGF0YS50ZXJtIHx8IGRhdGEuaW5kaWNhdG9yLFxuICBibGFua05vZGVUZXJtSWQ6IGRhdGEubm9kZSxcbiAgY29lZmZpY2llbnQ6ICtkYXRhLmNvZWZmaWNpZW50LFxuICB2YWx1ZTogK2RhdGEudmFsdWUgKiArZGF0YS5jb2VmZmljaWVudFxufSk7XG5cbmNvbnN0IGZpbHRlclRlcm1UeXBlcyA9IFtUZXJtVGVybVR5cGUuZW1pc3Npb24sIFRlcm1UZXJtVHlwZS5jaGFyYWN0ZXJpc2VkSW5kaWNhdG9yXTtcblxuY29uc3QgY3N2SGVhZGVycyA9IFtcbiAgJ0ltcGFjdCcsXG4gICdJbXBhY3QgVW5pdCcsXG4gICdNZXRob2QnLFxuICAnRW1pc3Npb24nLFxuICAnVmFsdWUnLFxuICAnSW5wdXRzJyxcbiAgJ0lucHV0cyB2YWx1ZScsXG4gICdGdW5jdGlvbmFsIFVuaXQnXG5dO1xuXG5jb25zdCBsb2dUb0NzdiA9IChsb2dzOiBJTG9nW10sIGltcGFjdDogSUltcGFjdEFzc2Vzc21lbnRKU09OTEQpID0+XG4gIFtcbiAgICBjc3ZIZWFkZXJzLmpvaW4oJywnKSxcbiAgICAuLi5sb2dzXG4gICAgICAuc29ydCgoYSwgYikgPT4gYS5pbXBhY3RUZXJtSWQubG9jYWxlQ29tcGFyZShiLmltcGFjdFRlcm1JZCkpXG4gICAgICAuZmxhdE1hcCgoeyBpbXBhY3RUZXJtSWQsIGltcGFjdFRlcm1Vbml0cywgbW9kZWxJZCwgYmxhbmtOb2RlVGVybUlkLCB2YWx1ZSwgaW5wdXRzIH0pID0+IFtcbiAgICAgICAgW2ltcGFjdFRlcm1JZCwgaW1wYWN0VGVybVVuaXRzLCBtb2RlbElkLCBibGFua05vZGVUZXJtSWQsIHZhbHVlLCAnJywgJyddLFxuICAgICAgICAuLi5pbnB1dHMubWFwKHYgPT4gW2ltcGFjdFRlcm1JZCwgaW1wYWN0VGVybVVuaXRzLCBtb2RlbElkLCBibGFua05vZGVUZXJtSWQsICcnLCB2Lm5hbWUsIHYudmFsdWVdKVxuICAgICAgXSlcbiAgICAgIC5tYXAodiA9PiBbLi4udiwgaW1wYWN0LnByb2R1Y3Q/LnRlcm0/LnVuaXRzXS5qb2luKCcsJykpXG4gIF0uam9pbignXFxuJyk7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2hlLWltcGFjdC1hc3Nlc3NtZW50cy1pbmRpY2F0b3ItYnJlYWtkb3duLWNoYXJ0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2ltcGFjdC1hc3Nlc3NtZW50cy1pbmRpY2F0b3ItYnJlYWtkb3duLWNoYXJ0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vaW1wYWN0LWFzc2Vzc21lbnRzLWluZGljYXRvci1icmVha2Rvd24tY2hhcnQuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtGYUljb25Db21wb25lbnQsIEZvcm1zTW9kdWxlXVxufSlcbmV4cG9ydCBjbGFzcyBJbXBhY3RBc3Nlc3NtZW50c0luZGljYXRvckJyZWFrZG93bkNoYXJ0Q29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSBkb21TYW5pdGl6ZXIgPSBpbmplY3QoRG9tU2FuaXRpemVyKTtcbiAgcHJpdmF0ZSBzZWFyY2hTZXJ2aWNlID0gaW5qZWN0KEhlU2VhcmNoU2VydmljZSk7XG4gIHByaXZhdGUgbm9kZVNlcnZpY2UgPSBpbmplY3QoSGVOb2RlU2VydmljZSk7XG5cbiAgcHJpdmF0ZSBjaGFydFJlZiA9IHZpZXdDaGlsZC5yZXF1aXJlZDxFbGVtZW50UmVmPignY2hhcnQnKTtcbiAgcHJpdmF0ZSBjaGFydDogQ2hhcnQ8J2JhcicsIG51bWJlcltdLCBzdHJpbmc+O1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBmYVNwaW5uZXIgPSBmYVNwaW5uZXI7XG4gIHByb3RlY3RlZCByZWFkb25seSBmYURvd25sb2FkID0gZmFEb3dubG9hZDtcblxuICBwcm90ZWN0ZWQgaW1wYWN0QXNzZXNzbWVudCA9IGlucHV0KHVuZGVmaW5lZCBhcyBJSW1wYWN0QXNzZXNzbWVudEpTT05MRCk7XG4gIHByaXZhdGUgaW1wYWN0QXNzZXNzbWVudCQgPSB0b09ic2VydmFibGUodGhpcy5pbXBhY3RBc3Nlc3NtZW50KTtcblxuICBwcm90ZWN0ZWQgaW5kaWNhdG9ycyA9IGlucHV0KFtdIGFzIEluZGljYXRvcltdKTtcblxuICBwcml2YXRlIGFsbExvZ3MgPSBzaWduYWwoW10gYXMgSUxvZ1tdKTtcbiAgcHJpdmF0ZSBsb2dzID0gY29tcHV0ZWQoKCkgPT5cbiAgICB0aGlzLmFsbExvZ3MoKVxuICAgICAgLmZpbHRlcihcbiAgICAgICAgKHsgaW1wYWN0VGVybUlkLCBtb2RlbElkIH0pID0+XG4gICAgICAgICAgaW1wYWN0VGVybUlkID09PSB0aGlzLnNlbGVjdGVkVGVybSgpPy5bJ0BpZCddICYmXG4gICAgICAgICAgKCF0aGlzLnNlbGVjdGVkTWV0aG9kKCkgfHwgbW9kZWxJZCA9PT0gdGhpcy5zZWxlY3RlZE1ldGhvZCgpPy5bJ0BpZCddKVxuICAgICAgKVxuICAgICAgLnNvcnQoKGEsIGIpID0+IGIudmFsdWUgLSBhLnZhbHVlKVxuICApO1xuXG4gIHByaXZhdGUgZW1pc3Npb25zID0gdG9TaWduYWwoXG4gICAgdGhpcy5zZWFyY2hTZXJ2aWNlXG4gICAgICAuc2VhcmNoJDxJVGVybUpTT05MRCwgTm9kZVR5cGUuVGVybT4oe1xuICAgICAgICBmaWVsZHM6IFsnQHR5cGUnLCAnQGlkJywgJ25hbWUnXSxcbiAgICAgICAgbGltaXQ6IDEwMDAsXG4gICAgICAgIHF1ZXJ5OiB7XG4gICAgICAgICAgYm9vbDoge1xuICAgICAgICAgICAgbXVzdDogW21hdGNoVHlwZShOb2RlVHlwZS5UZXJtKV0sXG4gICAgICAgICAgICBzaG91bGQ6IGZpbHRlclRlcm1UeXBlcy5tYXAodGVybVR5cGUgPT4gbWF0Y2hUZXJtVHlwZSh0ZXJtVHlwZSkpLFxuICAgICAgICAgICAgbWluaW11bV9zaG91bGRfbWF0Y2g6IDFcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgICAucGlwZShtYXAoKHsgcmVzdWx0cyB9KSA9PiByZXN1bHRzKSlcbiAgKTtcblxuICBwcm90ZWN0ZWQgbG9hZGluZyA9IHNpZ25hbCh0cnVlKTtcblxuICBwcm90ZWN0ZWQgc2VsZWN0ZWRUZXJtID0gc2lnbmFsKHVuZGVmaW5lZCBhcyBUZXJtKTtcbiAgcHJvdGVjdGVkIHRlcm1zID0gY29tcHV0ZWQoKCkgPT4gdW5pcXVlKCh0aGlzLmluZGljYXRvcnMoKSB8fCBbXSkubWFwKCh7IHRlcm0gfSkgPT4gdGVybSEpLmZpbHRlcihCb29sZWFuKSkpO1xuXG4gIHByb3RlY3RlZCBzZWxlY3RlZE1ldGhvZCA9IHNpZ25hbCh1bmRlZmluZWQgYXMgVGVybSk7XG4gIHByb3RlY3RlZCBtZXRob2RzID0gY29tcHV0ZWQoKCkgPT5cbiAgICB1bmlxdWUoKHRoaXMuaW5kaWNhdG9ycygpIHx8IFtdKS5tYXAoKHsgbWV0aG9kTW9kZWwgfSkgPT4gbWV0aG9kTW9kZWwhKS5maWx0ZXIoQm9vbGVhbikpXG4gICk7XG5cbiAgcHJpdmF0ZSBpbXBhY3RzID0gY29tcHV0ZWQoKCkgPT4gW1xuICAgIC4uLih0aGlzLmltcGFjdEFzc2Vzc21lbnQoKT8uaW1wYWN0cyB8fCBbXSksXG4gICAgLi4uKHRoaXMuaW1wYWN0QXNzZXNzbWVudCgpPy5lbmRwb2ludHMgfHwgW10pXG4gIF0pO1xuICBwcm90ZWN0ZWQgbm9EYXRhID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5sb2dzKCk/Lmxlbmd0aCA9PT0gMCk7XG5cbiAgcHJvdGVjdGVkIGNzdkNvbnRlbnQgPSBjb21wdXRlZCgoKSA9PlxuICAgIHRoaXMuZG9tU2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RSZXNvdXJjZVVybChcbiAgICAgIGBkYXRhOnRleHQvaHRtbDtjaGFyc2V0PXV0Zi04LCR7ZW5jb2RlVVJJQ29tcG9uZW50KGxvZ1RvQ3N2KHRoaXMubG9ncygpLCB0aGlzLmltcGFjdEFzc2Vzc21lbnQoKSkpfWBcbiAgICApXG4gICk7XG4gIHByaXZhdGUgaWQgPSBjb21wdXRlZCgoKSA9PiB0aGlzLmltcGFjdEFzc2Vzc21lbnQoKT8uWydAaWQnXSB8fCAodGhpcy5pbXBhY3RBc3Nlc3NtZW50KCkgYXMgYW55KT8uaWQpO1xuICBwcm90ZWN0ZWQgZG93bmxvYWRGaWxlbmFtZSA9IGNvbXB1dGVkKCgpID0+IGAke3RoaXMuaWQoKX0tbG9ncy5jc3ZgKTtcblxuICBwcml2YXRlIHRvdGFsID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5sb2dzKCkucmVkdWNlKChwcmV2LCBjdXJyKSA9PiBwcmV2ICsgY3Vyci52YWx1ZSwgMCkpO1xuICBwcml2YXRlIGxhYmVscyA9IGNvbXB1dGVkKCgpID0+XG4gICAgdGhpcy5sb2dzKCkubWFwKFxuICAgICAgKHsgYmxhbmtOb2RlVGVybUlkIH0pID0+IHRoaXMuZW1pc3Npb25zKCk/LmZpbmQodiA9PiB2WydAaWQnXSA9PT0gYmxhbmtOb2RlVGVybUlkKT8ubmFtZSB8fCBibGFua05vZGVUZXJtSWRcbiAgICApXG4gICk7XG4gIHByaXZhdGUgZGF0YXNldHMgPSBjb21wdXRlZCgoKSA9PiBbXG4gICAge1xuICAgICAgbGFiZWw6IHRoaXMuc2VsZWN0ZWRUZXJtKCk/Lm5hbWUgPz8gJycsXG4gICAgICBkYXRhOiB0aGlzLmxvZ3MoKS5tYXAoKHsgdmFsdWUgfSkgPT4gdmFsdWUpLFxuICAgICAgYmFja2dyb3VuZENvbG9yOiB0aGlzLmxvZ3MoKS5tYXAobGlzdENvbG9yKSxcbiAgICAgIGJvcmRlckNvbG9yOiB0aGlzLmxvZ3MoKS5tYXAobGlzdENvbG9yKVxuICAgIH1cbiAgXSk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgQ2hhcnQucmVnaXN0ZXIoQ2F0ZWdvcnlTY2FsZSwgTGluZWFyU2NhbGUsIEJhckNvbnRyb2xsZXIsIEJhckVsZW1lbnQsIENoYXJ0RGF0YUxhYmVscyk7XG5cbiAgICB0aGlzLmltcGFjdEFzc2Vzc21lbnQkXG4gICAgICAucGlwZShcbiAgICAgICAgZmlsdGVyKHYgPT4gISF2KSxcbiAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWREZWVwKCksXG4gICAgICAgIHRha2UoMSksXG4gICAgICAgIHRhcCgoKSA9PiB0aGlzLmxvYWRpbmcuc2V0KHRydWUpKSxcbiAgICAgICAgbWVyZ2VNYXAobm9kZSA9PiAobm9kZSA/IHRoaXMubm9kZVNlcnZpY2UuZ2V0TG9nKHsgLi4ubm9kZSwgZGF0YVN0YXRlOiBEYXRhU3RhdGUucmVjYWxjdWxhdGVkIH0pIDogb2YoJycpKSksXG4gICAgICAgIG1hcCh2YWx1ZSA9PiAodmFsdWUgPyBwYXJzZUxpbmVzKHZhbHVlKSA6IFtdKSksXG4gICAgICAgIG1lcmdlQWxsKCksXG4gICAgICAgIGZpbHRlcigoeyBkYXRhIH0pID0+IGRhdGEubG9nZ2VyID09PSAnaGVzdGlhX2VhcnRoLm1vZGVscycgJiYgZGF0YS5sZXZlbCA9PT0gTGV2ZWwuZGVidWcpLFxuICAgICAgICBmaWx0ZXIoKHsgZGF0YTogeyBtZXNzYWdlIH0gfSkgPT4gISFtZXNzYWdlKSxcbiAgICAgICAgbWFwKCh7IGRhdGE6IHsgbWVzc2FnZSB9IH0pID0+IHBhcnNlTWVzc2FnZShtZXNzYWdlKSksXG4gICAgICAgIGZpbHRlcihtZXNzYWdlID0+ICdub2RlJyBpbiBtZXNzYWdlKSxcbiAgICAgICAgbWFwKHBhcnNlTG9nKSxcbiAgICAgICAgZmlsdGVyKGxvZyA9PiAhIWxvZy5pbXBhY3RUZXJtSWQgJiYgISFsb2cuYmxhbmtOb2RlVGVybUlkICYmICFpc05hTihsb2cudmFsdWUpICYmIGxvZy52YWx1ZSA+IDApLFxuICAgICAgICBncm91cEJ5KGxvZyA9PiBbbG9nLmltcGFjdFRlcm1JZCwgbG9nLmJsYW5rTm9kZVRlcm1JZCwgbG9nLm1vZGVsSWRdLmpvaW4oJy8nKSksXG4gICAgICAgIG1lcmdlTWFwKGdyb3VwID0+IGdyb3VwLnBpcGUodG9BcnJheSgpKSksXG4gICAgICAgIG1hcCgodmFsdWVzOiBJTG9nW10pID0+IHtcbiAgICAgICAgICBjb25zdCBsb2cgPSB2YWx1ZXNbMF07XG4gICAgICAgICAgY29uc3QgdG90YWwgPSB2YWx1ZXMucmVkdWNlKChwcmV2LCBjdXJyKSA9PiBwcmV2ICsgY3Vyci52YWx1ZSwgMCk7XG4gICAgICAgICAgY29uc3QgYmxhbmtOb2RlcyA9IFtcbiAgICAgICAgICAgIC4uLih0aGlzLmltcGFjdEFzc2Vzc21lbnQoKT8uZW1pc3Npb25zUmVzb3VyY2VVc2UgPz8gW10pLFxuICAgICAgICAgICAgLi4uKHRoaXMuaW1wYWN0QXNzZXNzbWVudCgpPy5pbXBhY3RzID8/IFtdKVxuICAgICAgICAgIF0uZmlsdGVyKHYgPT4gdi50ZXJtWydAaWQnXSA9PT0gbG9nLmJsYW5rTm9kZVRlcm1JZCk7XG5cbiAgICAgICAgICBjb25zdCBpbnB1dHMgPSBibGFua05vZGVzXG4gICAgICAgICAgICAuZmlsdGVyKHYgPT4gdi5pbnB1dHM/Lmxlbmd0aClcbiAgICAgICAgICAgIC5tYXAodiA9PiAoeyBuYW1lOiB2LmlucHV0cy5tYXAoaSA9PiBpWydAaWQnXSkuam9pbignOycpLCB2YWx1ZTogdi52YWx1ZSAqIGxvZy5jb2VmZmljaWVudCB9KSk7XG4gICAgICAgICAgY29uc3QgaW5wdXRzVmFsdWUgPSBpbnB1dHMucmVkdWNlKChwcmV2LCBjdXJyKSA9PiBwcmV2ICsgY3Vyci52YWx1ZSwgMCk7XG5cbiAgICAgICAgICBjb25zdCBpbXBhY3QgPSB0aGlzLmltcGFjdHMoKS5maW5kKHYgPT4gdi50ZXJtWydAaWQnXSA9PT0gbG9nLmltcGFjdFRlcm1JZCk7XG5cbiAgICAgICAgICAvLyBsb2dzIG1pZ2h0IGV4aXN0IGJ1dCBpbXBhY3Qgd2FzIG5vdCBhZGRlZCA9PiBza2lwIGxvZ3NcbiAgICAgICAgICByZXR1cm4gaW1wYWN0XG4gICAgICAgICAgICA/IHtcbiAgICAgICAgICAgICAgICAuLi5sb2csXG4gICAgICAgICAgICAgICAgaW1wYWN0VGVybVVuaXRzOiBpbXBhY3QudGVybT8udW5pdHMsXG4gICAgICAgICAgICAgICAgdmFsdWU6IHRvdGFsLFxuICAgICAgICAgICAgICAgIGlucHV0cyxcbiAgICAgICAgICAgICAgICBpbnB1dHNWYWx1ZVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA6IG51bGw7XG4gICAgICAgIH0pLFxuICAgICAgICBmaWx0ZXIobG9nID0+ICEhbG9nKSxcbiAgICAgICAgdG9BcnJheSgpLFxuICAgICAgICB0YXAoKCkgPT4gdGhpcy5sb2FkaW5nLnNldChmYWxzZSkpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKChsb2dzOiBJTG9nW10pID0+IHRoaXMuYWxsTG9ncy5zZXQobG9ncykpO1xuXG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIHRoaXMuY2hhcnQgPSBuZXcgQ2hhcnQodGhpcy5jaGFydFJlZigpLm5hdGl2ZUVsZW1lbnQsIHtcbiAgICAgICAgdHlwZTogJ2JhcicsXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICBsYWJlbHM6IFtdLFxuICAgICAgICAgIGRhdGFzZXRzOiBbXVxuICAgICAgICB9LFxuICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgaW5kZXhBeGlzOiAneScsXG4gICAgICAgICAgcGx1Z2luczoge1xuICAgICAgICAgICAgbGVnZW5kOiB7XG4gICAgICAgICAgICAgIGRpc3BsYXk6IGZhbHNlXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZGF0YWxhYmVsczoge1xuICAgICAgICAgICAgICBjb2xvcjogJ2JsYWNrJyxcbiAgICAgICAgICAgICAgZm9ybWF0dGVyOiB2YWx1ZSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgcmF0aW8gPSB0b1ByZWNpc2lvbigodmFsdWUgKiAxMDApIC8gdGhpcy50b3RhbCgpLCAyKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWUgPiAwID8gYCR7dG9QcmVjaXNpb24odmFsdWUsIDMpfSAoJHtyYXRpb30lKWAgOiAnJztcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgYWxpZ246ICdlbmQnXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgdG9vbHRpcDoge1xuICAgICAgICAgICAgICBlbmFibGVkOiBmYWxzZVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgcmVzcG9uc2l2ZTogdHJ1ZSxcbiAgICAgICAgICBtYWludGFpbkFzcGVjdFJhdGlvOiBmYWxzZSxcbiAgICAgICAgICBzY2FsZXM6IHtcbiAgICAgICAgICAgIHg6IHtcbiAgICAgICAgICAgICAgZGlzcGxheTogdHJ1ZVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHk6IHtcbiAgICAgICAgICAgICAgcG9zaXRpb246ICdsZWZ0J1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBlZmZlY3QoXG4gICAgICAoKSA9PiB7XG4gICAgICAgIC8vIG1ha2Ugc3VyZSBzZWxlY3RlZCB0ZXJtIGV4aXN0c1xuICAgICAgICBjb25zdCB0ZXJtcyA9IHRoaXMudGVybXMoKTtcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWRUZXJtSWQgPSB0aGlzLnNlbGVjdGVkVGVybSgpPy5bJ0BpZCddO1xuICAgICAgICBpZiAoIXNlbGVjdGVkVGVybUlkIHx8ICF0ZXJtcy5maW5kKHRlcm0gPT4gdGVybVsnQGlkJ10gPT09IHNlbGVjdGVkVGVybUlkKSkge1xuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRUZXJtLnNldCh0ZXJtc1swXSk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB7IGFsbG93U2lnbmFsV3JpdGVzOiB0cnVlIH1cbiAgICApO1xuXG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIHRoaXMuY2hhcnQuZGF0YS5sYWJlbHMgPSB0aGlzLmxhYmVscygpO1xuICAgICAgdGhpcy5jaGFydC5kYXRhLmRhdGFzZXRzID0gdGhpcy5kYXRhc2V0cygpO1xuICAgICAgdGhpcy5jaGFydC51cGRhdGUoKTtcbiAgICB9KTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIENoYXJ0LnVucmVnaXN0ZXIoQ2hhcnREYXRhTGFiZWxzKTtcbiAgICByZXR1cm4gdGhpcy5jaGFydCAmJiB0aGlzLmNoYXJ0LmRlc3Ryb3koKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBzZWxlY3RUZXJtKHsgdGFyZ2V0OiB7IHZhbHVlIH0gfSkge1xuICAgIGNvbnN0IHRlcm0gPSB0aGlzLnRlcm1zKCkuZmluZCh0ZXJtID0+IHRlcm1bJ0BpZCddID09PSB2YWx1ZSk7XG4gICAgdGhpcy5zZWxlY3RlZFRlcm0uc2V0KHRlcm0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIHNlbGVjdE1ldGhvZCh7IHRhcmdldDogeyB2YWx1ZSB9IH0pIHtcbiAgICBjb25zdCB0ZXJtID0gdGhpcy5tZXRob2RzKCkuZmluZCh0ZXJtID0+IHRlcm1bJ0BpZCddID09PSB2YWx1ZSk7XG4gICAgdGhpcy5zZWxlY3RlZE1ldGhvZC5zZXQodGVybSk7XG4gIH1cbn1cbiIsIkBpZiAobG9hZGluZygpKSB7XG4gIDxkaXYgY2xhc3M9XCJoYXMtdGV4dC1jZW50ZXIgcHktM1wiPlxuICAgIDxmYS1pY29uIFtpY29uXT1cImZhU3Bpbm5lclwiIFtwdWxzZV09XCJ0cnVlXCIgc2l6ZT1cImxnXCI+PC9mYS1pY29uPlxuICA8L2Rpdj5cbn0gQGVsc2Uge1xuICA8ZGl2IGNsYXNzPVwicC0zXCIgW2NsYXNzLmlzLWhpZGRlbl09XCIhdGVybXMoKT8ubGVuZ3RoXCI+XG4gICAgPGRpdiBjbGFzcz1cImNvbHVtbnNcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjb2x1bW5cIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkIGhhcy1hZGRvbnNcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29udHJvbFwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJidXR0b24gaXMtc21hbGwgaXMtc3RhdGljIGlzLXNlY29uZGFyeVwiPlNlbGVjdCBhbiBJbmRpY2F0b3I8L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgQGlmICh0ZXJtcygpPy5sZW5ndGgpIHtcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb250cm9sIGlzLWV4cGFuZGVkXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWxlY3QgaXMtZnVsbHdpZHRoIGlzLXNtYWxsIGlzLXNlY29uZGFyeVwiPlxuICAgICAgICAgICAgICAgIDxzZWxlY3QgKGNoYW5nZSk9XCJzZWxlY3RUZXJtKCRldmVudClcIj5cbiAgICAgICAgICAgICAgICAgIEBmb3IgKHRlcm0gb2YgdGVybXMoKTsgdHJhY2sgdGVybSkge1xuICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIFt2YWx1ZV09XCJ0ZXJtWydAaWQnXVwiPnt7IHRlcm0ubmFtZSB9fSAoe3sgdGVybS51bml0cyB9fSk8L29wdGlvbj5cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8L3NlbGVjdD5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICB9XG4gICAgICAgICAgQGlmIChtZXRob2RzKCk/Lmxlbmd0aCkge1xuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRyb2wgaXMtZXhwYW5kZWRcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlbGVjdCBpcy1mdWxsd2lkdGggaXMtc21hbGwgaXMtc2Vjb25kYXJ5XCI+XG4gICAgICAgICAgICAgICAgPHNlbGVjdCAoY2hhbmdlKT1cInNlbGVjdE1ldGhvZCgkZXZlbnQpXCI+XG4gICAgICAgICAgICAgICAgICA8b3B0aW9uIFtuZ1ZhbHVlXT1cInVuZGVmaW5lZFwiPkZpbHRlciBNb2RlbDwvb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgQGZvciAodGVybSBvZiBtZXRob2RzKCk7IHRyYWNrIHRlcm0pIHtcbiAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiBbdmFsdWVdPVwidGVybVsnQGlkJ11cIj57eyB0ZXJtLm5hbWUgfX08L29wdGlvbj5cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8L3NlbGVjdD5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29sdW1uIGlzLW5hcnJvd1wiPlxuICAgICAgICA8YVxuICAgICAgICAgIGNsYXNzPVwiYnV0dG9uIGlzLWdob3N0IGlzLXNtYWxsXCJcbiAgICAgICAgICBbaHJlZl09XCJjc3ZDb250ZW50KClcIlxuICAgICAgICAgIFtkb3dubG9hZF09XCJkb3dubG9hZEZpbGVuYW1lKClcIlxuICAgICAgICAgIG5iZ1Rvb2x0aXA9XCJEb3dubG9hZCBhcyBDU1ZcIlxuICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbVwiPlxuICAgICAgICAgIDxmYS1pY29uIFtpY29uXT1cImZhRG93bmxvYWRcIj48L2ZhLWljb24+XG4gICAgICAgIDwvYT5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIEBpZiAoIXNlbGVjdGVkTWV0aG9kKCkpIHtcbiAgICAgIDxwIGNsYXNzPVwiaXMtc2l6ZS03XCI+XG4gICAgICAgIDxpPlNlbGVjdGluZyBhIE1vZGVsIGlzIHJlY29tbWVuZGVkIHRvIGF2b2lkIGR1cGxpY2F0ZWQgZW50cmllcy48L2k+XG4gICAgICA8L3A+XG4gICAgfVxuICA8L2Rpdj5cbn1cblxuPGRpdiBjbGFzcz1cImlzLW10LTFcIj5cbiAgQGlmICghbG9hZGluZygpICYmIG5vRGF0YSgpKSB7XG4gICAgPHAgY2xhc3M9XCJoYXMtdGV4dC1jZW50ZXJlZFwiPlxuICAgICAgPHNwYW4+Tm8gYnJlYWtkb3duIGF2YWlsYWJsZSBmb3I8L3NwYW4+XG4gICAgICBAaWYgKHNlbGVjdGVkVGVybSgpKSB7XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiaXMtcGwtMVwiPnt7IHNlbGVjdGVkVGVybSgpLm5hbWUgfX08L3NwYW4+XG4gICAgICB9XG4gICAgICBAaWYgKHNlbGVjdGVkTWV0aG9kKCkpIHtcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJpcy1wbC0xXCI+KHt7IHNlbGVjdGVkTWV0aG9kKCkubmFtZSB9fSk8L3NwYW4+XG4gICAgICB9XG4gICAgICA8c3Bhbj4uPC9zcGFuPlxuICAgIDwvcD5cbiAgfVxuICA8ZGl2IGNsYXNzPVwiY2hhcnQtY29udGFpbmVyIGgtMTAwXCI+XG4gICAgPGNhbnZhcyAjY2hhcnQ+PC9jYW52YXM+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
199
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1wYWN0LWFzc2Vzc21lbnRzLWluZGljYXRvci1icmVha2Rvd24tY2hhcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2ltcGFjdC1hc3Nlc3NtZW50cy9pbXBhY3QtYXNzZXNzbWVudHMtaW5kaWNhdG9yLWJyZWFrZG93bi1jaGFydC9pbXBhY3QtYXNzZXNzbWVudHMtaW5kaWNhdG9yLWJyZWFrZG93bi1jaGFydC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9zcmMvaW1wYWN0LWFzc2Vzc21lbnRzL2ltcGFjdC1hc3Nlc3NtZW50cy1pbmRpY2F0b3ItYnJlYWtkb3duLWNoYXJ0L2ltcGFjdC1hc3Nlc3NtZW50cy1pbmRpY2F0b3ItYnJlYWtkb3duLWNoYXJ0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUdULFFBQVEsRUFDUixNQUFNLEVBQ04sTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLEVBQ04sU0FBUyxFQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUYsT0FBTyxFQUFFLGFBQWEsRUFBRSxVQUFVLEVBQUUsYUFBYSxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDeEYsT0FBTyxlQUFlLE1BQU0sMkJBQTJCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzlDLE9B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QUMsQ0FBQyxDQUFDLEVBQzNHLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQzlDLFFBQVEsRUFBRSxFQUNWLE1BQU0sQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLEtBQUsscUJBQXFCLElBQUksSUFBSSxDQUFDLEtBQUssS0FBSyxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQ3pGLE1BQU0sQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUM1QyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUNyRCxNQUFNLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxNQUFNLElBQUksT0FBTyxDQUFDLEVBQ3BDLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFDYixNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFlBQVksSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLGVBQWUsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsRUFDaEcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLEdBQUcsQ0FBQyxlQUFlLEVBQUUsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUM5RSxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLENB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MkZBRTNCLGlEQUFpRDtrQkFSN0QsU0FBUzsrQkFDRSxpREFBaUQsbUJBRzFDLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSxXQUNQLENBQUMsZUFBZSxFQUFFLFdBQVcsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIE9uRGVzdHJveSxcbiAgY29tcHV0ZWQsXG4gIGVmZmVjdCxcbiAgaW5qZWN0LFxuICBpbnB1dCxcbiAgc2lnbmFsLFxuICB2aWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbmltcG9ydCB7IHRvT2JzZXJ2YWJsZSwgdG9TaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBmaWx0ZXIsIGdyb3VwQnksIG1hcCwgbWVyZ2VBbGwsIG1lcmdlTWFwLCB0YWtlLCB0YXAsIHRvQXJyYXkgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBCYXJDb250cm9sbGVyLCBCYXJFbGVtZW50LCBDYXRlZ29yeVNjYWxlLCBDaGFydCwgTGluZWFyU2NhbGUgfSBmcm9tICdjaGFydC5qcyc7XG5pbXBvcnQgQ2hhcnREYXRhTGFiZWxzIGZyb20gJ2NoYXJ0anMtcGx1Z2luLWRhdGFsYWJlbHMnO1xuaW1wb3J0IHsgRGF0YVN0YXRlIH0gZnJvbSAnQGhlc3RpYS1lYXJ0aC9hcGknO1xuaW1wb3J0IHsgSUltcGFjdEFzc2Vzc21lbnRKU09OTEQsIEluZGljYXRvciwgSVRlcm1KU09OTEQsIE5vZGVUeXBlLCBUZXJtLCBUZXJtVGVybVR5cGUgfSBmcm9tICdAaGVzdGlhLWVhcnRoL3NjaGVtYSc7XG5pbXBvcnQgeyB0b1ByZWNpc2lvbiwgdW5pcXVlIH0gZnJvbSAnQGhlc3RpYS1lYXJ0aC91dGlscyc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEZhSWNvbkNvbXBvbmVudCB9IGZyb20gJ0Bmb3J0YXdlc29tZS9hbmd1bGFyLWZvbnRhd2Vzb21lJztcbmltcG9ydCB7IGZhRG93bmxvYWQsIGZhU3Bpbm5lciB9IGZyb20gJ0Bmb3J0YXdlc29tZS9mcmVlLXNvbGlkLXN2Zy1pY29ucyc7XG5pbXBvcnQgeyBvZiB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBtYXRjaFRlcm1UeXBlLCBtYXRjaFR5cGUgfSBmcm9tICcuLi8uLi9zZWFyY2gvc2VhcmNoLm1vZGVsJztcbmltcG9ydCB7IEhlU2VhcmNoU2VydmljZSB9IGZyb20gJy4uLy4uL3NlYXJjaC9zZWFyY2guc2VydmljZSc7XG5pbXBvcnQgeyBIZU5vZGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vbm9kZS9ub2RlLnNlcnZpY2UnO1xuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWREZWVwIH0gZnJvbSAnLi4vLi4vY29tbW9uL3J4anMtdXRpbHMnO1xuaW1wb3J0IHsgTGV2ZWwsIHBhcnNlTGluZXMsIHBhcnNlTWVzc2FnZSB9IGZyb20gJy4uLy4uL2NvbW1vbi9sb2dzLXV0aWxzJztcbmltcG9ydCB7IGxpc3RDb2xvciB9IGZyb20gJy4uLy4uL2NvbW1vbi9jb2xvcic7XG5cbmludGVyZmFjZSBJTG9nIHtcbiAgbW9kZWxJZDogc3RyaW5nO1xuICBpbXBhY3RUZXJtSWQ6IHN0cmluZztcbiAgaW1wYWN0VGVybVVuaXRzPzogc3RyaW5nO1xuICBibGFua05vZGVUZXJtSWQ6IHN0cmluZztcbiAgY29lZmZpY2llbnQ6IG51bWJlcjtcbiAgdmFsdWU6IG51bWJlcjtcbiAgLy8gc3RvcmUgYWxsIGluZGljYXRvcnMgd2l0aCBpbnB1dHNcbiAgaW5wdXRzPzoge1xuICAgIG5hbWU6IHN0cmluZztcbiAgICB2YWx1ZTogbnVtYmVyO1xuICB9W107XG4gIGlucHV0c1ZhbHVlPzogbnVtYmVyO1xufVxuXG5jb25zdCBwYXJzZUxvZyA9IChkYXRhOiBhbnkpOiBJTG9nID0+ICh7XG4gIG1vZGVsSWQ6IGRhdGEubW9kZWwsXG4gIGltcGFjdFRlcm1JZDogZGF0YVsna2V5L3Rlcm0nXSB8fCBkYXRhLnRlcm0gfHwgZGF0YS5pbmRpY2F0b3IsXG4gIGJsYW5rTm9kZVRlcm1JZDogZGF0YS5ub2RlLFxuICBjb2VmZmljaWVudDogK2RhdGEuY29lZmZpY2llbnQsXG4gIHZhbHVlOiArZGF0YS52YWx1ZSAqICtkYXRhLmNvZWZmaWNpZW50XG59KTtcblxuY29uc3QgZmlsdGVyVGVybVR5cGVzID0gW1Rlcm1UZXJtVHlwZS5lbWlzc2lvbiwgVGVybVRlcm1UeXBlLmNoYXJhY3RlcmlzZWRJbmRpY2F0b3JdO1xuXG5jb25zdCBjc3ZIZWFkZXJzID0gW1xuICAnSW1wYWN0JyxcbiAgJ0ltcGFjdCBVbml0JyxcbiAgJ01ldGhvZCcsXG4gICdFbWlzc2lvbicsXG4gICdWYWx1ZScsXG4gICdJbnB1dHMnLFxuICAnSW5wdXRzIHZhbHVlJyxcbiAgJ0Z1bmN0aW9uYWwgVW5pdCdcbl07XG5cbmNvbnN0IGxvZ1RvQ3N2ID0gKGxvZ3M6IElMb2dbXSwgaW1wYWN0OiBJSW1wYWN0QXNzZXNzbWVudEpTT05MRCkgPT5cbiAgW1xuICAgIGNzdkhlYWRlcnMuam9pbignLCcpLFxuICAgIC4uLmxvZ3NcbiAgICAgIC5zb3J0KChhLCBiKSA9PiBhLmltcGFjdFRlcm1JZC5sb2NhbGVDb21wYXJlKGIuaW1wYWN0VGVybUlkKSlcbiAgICAgIC5mbGF0TWFwKCh7IGltcGFjdFRlcm1JZCwgaW1wYWN0VGVybVVuaXRzLCBtb2RlbElkLCBibGFua05vZGVUZXJtSWQsIHZhbHVlLCBpbnB1dHMgfSkgPT4gW1xuICAgICAgICBbaW1wYWN0VGVybUlkLCBpbXBhY3RUZXJtVW5pdHMsIG1vZGVsSWQsIGJsYW5rTm9kZVRlcm1JZCwgdmFsdWUsICcnLCAnJ10sXG4gICAgICAgIC4uLmlucHV0cy5tYXAodiA9PiBbaW1wYWN0VGVybUlkLCBpbXBhY3RUZXJtVW5pdHMsIG1vZGVsSWQsIGJsYW5rTm9kZVRlcm1JZCwgJycsIHYubmFtZSwgdi52YWx1ZV0pXG4gICAgICBdKVxuICAgICAgLm1hcCh2ID0+IFsuLi52LCBpbXBhY3QucHJvZHVjdD8udGVybT8udW5pdHNdLmpvaW4oJywnKSlcbiAgXS5qb2luKCdcXG4nKTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaGUtaW1wYWN0LWFzc2Vzc21lbnRzLWluZGljYXRvci1icmVha2Rvd24tY2hhcnQnLFxuICB0ZW1wbGF0ZVVybDogJy4vaW1wYWN0LWFzc2Vzc21lbnRzLWluZGljYXRvci1icmVha2Rvd24tY2hhcnQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9pbXBhY3QtYXNzZXNzbWVudHMtaW5kaWNhdG9yLWJyZWFrZG93bi1jaGFydC5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0ZhSWNvbkNvbXBvbmVudCwgRm9ybXNNb2R1bGVdXG59KVxuZXhwb3J0IGNsYXNzIEltcGFjdEFzc2Vzc21lbnRzSW5kaWNhdG9yQnJlYWtkb3duQ2hhcnRDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICBwcml2YXRlIGRvbVNhbml0aXplciA9IGluamVjdChEb21TYW5pdGl6ZXIpO1xuICBwcml2YXRlIHNlYXJjaFNlcnZpY2UgPSBpbmplY3QoSGVTZWFyY2hTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBub2RlU2VydmljZSA9IGluamVjdChIZU5vZGVTZXJ2aWNlKTtcblxuICBwcml2YXRlIGNoYXJ0UmVmID0gdmlld0NoaWxkLnJlcXVpcmVkPEVsZW1lbnRSZWY+KCdjaGFydCcpO1xuICBwcml2YXRlIGNoYXJ0OiBDaGFydDxhbnksIG51bWJlcltdLCBzdHJpbmc+O1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBmYVNwaW5uZXIgPSBmYVNwaW5uZXI7XG4gIHByb3RlY3RlZCByZWFkb25seSBmYURvd25sb2FkID0gZmFEb3dubG9hZDtcblxuICBwcm90ZWN0ZWQgaW1wYWN0QXNzZXNzbWVudCA9IGlucHV0KHVuZGVmaW5lZCBhcyBJSW1wYWN0QXNzZXNzbWVudEpTT05MRCk7XG4gIHByaXZhdGUgaW1wYWN0QXNzZXNzbWVudCQgPSB0b09ic2VydmFibGUodGhpcy5pbXBhY3RBc3Nlc3NtZW50KTtcblxuICBwcm90ZWN0ZWQgaW5kaWNhdG9ycyA9IGlucHV0KFtdIGFzIEluZGljYXRvcltdKTtcblxuICBwcml2YXRlIGFsbExvZ3MgPSBzaWduYWwoW10gYXMgSUxvZ1tdKTtcbiAgcHJpdmF0ZSBsb2dzID0gY29tcHV0ZWQoKCkgPT5cbiAgICB0aGlzLmFsbExvZ3MoKVxuICAgICAgLmZpbHRlcihcbiAgICAgICAgKHsgaW1wYWN0VGVybUlkLCBtb2RlbElkIH0pID0+XG4gICAgICAgICAgaW1wYWN0VGVybUlkID09PSB0aGlzLnNlbGVjdGVkVGVybSgpPy5bJ0BpZCddICYmXG4gICAgICAgICAgKCF0aGlzLnNlbGVjdGVkTWV0aG9kKCkgfHwgbW9kZWxJZCA9PT0gdGhpcy5zZWxlY3RlZE1ldGhvZCgpPy5bJ0BpZCddKVxuICAgICAgKVxuICAgICAgLnNvcnQoKGEsIGIpID0+IGIudmFsdWUgLSBhLnZhbHVlKVxuICApO1xuXG4gIHByaXZhdGUgZW1pc3Npb25zID0gdG9TaWduYWwoXG4gICAgdGhpcy5zZWFyY2hTZXJ2aWNlXG4gICAgICAuc2VhcmNoJDxJVGVybUpTT05MRCwgTm9kZVR5cGUuVGVybT4oe1xuICAgICAgICBmaWVsZHM6IFsnQHR5cGUnLCAnQGlkJywgJ25hbWUnXSxcbiAgICAgICAgbGltaXQ6IDEwMDAsXG4gICAgICAgIHF1ZXJ5OiB7XG4gICAgICAgICAgYm9vbDoge1xuICAgICAgICAgICAgbXVzdDogW21hdGNoVHlwZShOb2RlVHlwZS5UZXJtKV0sXG4gICAgICAgICAgICBzaG91bGQ6IGZpbHRlclRlcm1UeXBlcy5tYXAodGVybVR5cGUgPT4gbWF0Y2hUZXJtVHlwZSh0ZXJtVHlwZSkpLFxuICAgICAgICAgICAgbWluaW11bV9zaG91bGRfbWF0Y2g6IDFcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgICAucGlwZShtYXAoKHsgcmVzdWx0cyB9KSA9PiByZXN1bHRzKSlcbiAgKTtcblxuICBwcm90ZWN0ZWQgbG9hZGluZyA9IHNpZ25hbCh0cnVlKTtcblxuICBwcm90ZWN0ZWQgc2VsZWN0ZWRUZXJtID0gc2lnbmFsKHVuZGVmaW5lZCBhcyBUZXJtKTtcbiAgcHJvdGVjdGVkIHRlcm1zID0gY29tcHV0ZWQoKCkgPT4gdW5pcXVlKCh0aGlzLmluZGljYXRvcnMoKSB8fCBbXSkubWFwKCh7IHRlcm0gfSkgPT4gdGVybSEpLmZpbHRlcihCb29sZWFuKSkpO1xuXG4gIHByb3RlY3RlZCBzZWxlY3RlZE1ldGhvZCA9IHNpZ25hbCh1bmRlZmluZWQgYXMgVGVybSk7XG4gIHByb3RlY3RlZCBtZXRob2RzID0gY29tcHV0ZWQoKCkgPT5cbiAgICB1bmlxdWUoKHRoaXMuaW5kaWNhdG9ycygpIHx8IFtdKS5tYXAoKHsgbWV0aG9kTW9kZWwgfSkgPT4gbWV0aG9kTW9kZWwhKS5maWx0ZXIoQm9vbGVhbikpXG4gICk7XG5cbiAgcHJpdmF0ZSBpbXBhY3RzID0gY29tcHV0ZWQoKCkgPT4gW1xuICAgIC4uLih0aGlzLmltcGFjdEFzc2Vzc21lbnQoKT8uaW1wYWN0cyB8fCBbXSksXG4gICAgLi4uKHRoaXMuaW1wYWN0QXNzZXNzbWVudCgpPy5lbmRwb2ludHMgfHwgW10pXG4gIF0pO1xuICBwcm90ZWN0ZWQgbm9EYXRhID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5sb2dzKCk/Lmxlbmd0aCA9PT0gMCk7XG5cbiAgcHJvdGVjdGVkIGNzdkNvbnRlbnQgPSBjb21wdXRlZCgoKSA9PlxuICAgIHRoaXMuZG9tU2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RSZXNvdXJjZVVybChcbiAgICAgIGBkYXRhOnRleHQvaHRtbDtjaGFyc2V0PXV0Zi04LCR7ZW5jb2RlVVJJQ29tcG9uZW50KGxvZ1RvQ3N2KHRoaXMubG9ncygpLCB0aGlzLmltcGFjdEFzc2Vzc21lbnQoKSkpfWBcbiAgICApXG4gICk7XG4gIHByaXZhdGUgaWQgPSBjb21wdXRlZCgoKSA9PiB0aGlzLmltcGFjdEFzc2Vzc21lbnQoKT8uWydAaWQnXSB8fCAodGhpcy5pbXBhY3RBc3Nlc3NtZW50KCkgYXMgYW55KT8uaWQpO1xuICBwcm90ZWN0ZWQgZG93bmxvYWRGaWxlbmFtZSA9IGNvbXB1dGVkKCgpID0+IGAke3RoaXMuaWQoKX0tbG9ncy5jc3ZgKTtcblxuICBwcml2YXRlIHRvdGFsID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5sb2dzKCkucmVkdWNlKChwcmV2LCBjdXJyKSA9PiBwcmV2ICsgY3Vyci52YWx1ZSwgMCkpO1xuICBwcml2YXRlIGxhYmVscyA9IGNvbXB1dGVkKCgpID0+XG4gICAgdGhpcy5sb2dzKCkubWFwKFxuICAgICAgKHsgYmxhbmtOb2RlVGVybUlkIH0pID0+IHRoaXMuZW1pc3Npb25zKCk/LmZpbmQodiA9PiB2WydAaWQnXSA9PT0gYmxhbmtOb2RlVGVybUlkKT8ubmFtZSB8fCBibGFua05vZGVUZXJtSWRcbiAgICApXG4gICk7XG4gIHByaXZhdGUgZGF0YXNldHMgPSBjb21wdXRlZCgoKSA9PiBbXG4gICAge1xuICAgICAgbGFiZWw6IHRoaXMuc2VsZWN0ZWRUZXJtKCk/Lm5hbWUgPz8gJycsXG4gICAgICBkYXRhOiB0aGlzLmxvZ3MoKS5tYXAoKHsgdmFsdWUgfSkgPT4gdmFsdWUpLFxuICAgICAgYmFja2dyb3VuZENvbG9yOiB0aGlzLmxvZ3MoKS5tYXAobGlzdENvbG9yKSxcbiAgICAgIGJvcmRlckNvbG9yOiB0aGlzLmxvZ3MoKS5tYXAobGlzdENvbG9yKVxuICAgIH1cbiAgXSk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgQ2hhcnQucmVnaXN0ZXIoQ2F0ZWdvcnlTY2FsZSwgTGluZWFyU2NhbGUsIEJhckNvbnRyb2xsZXIsIEJhckVsZW1lbnQpO1xuXG4gICAgdGhpcy5pbXBhY3RBc3Nlc3NtZW50JFxuICAgICAgLnBpcGUoXG4gICAgICAgIGZpbHRlcih2ID0+ICEhdiksXG4gICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkRGVlcCgpLFxuICAgICAgICB0YWtlKDEpLFxuICAgICAgICB0YXAoKCkgPT4gdGhpcy5sb2FkaW5nLnNldCh0cnVlKSksXG4gICAgICAgIG1lcmdlTWFwKG5vZGUgPT4gKG5vZGUgPyB0aGlzLm5vZGVTZXJ2aWNlLmdldExvZyh7IC4uLm5vZGUsIGRhdGFTdGF0ZTogRGF0YVN0YXRlLnJlY2FsY3VsYXRlZCB9KSA6IG9mKCcnKSkpLFxuICAgICAgICBtYXAodmFsdWUgPT4gKHZhbHVlID8gcGFyc2VMaW5lcyh2YWx1ZSkgOiBbXSkpLFxuICAgICAgICBtZXJnZUFsbCgpLFxuICAgICAgICBmaWx0ZXIoKHsgZGF0YSB9KSA9PiBkYXRhLmxvZ2dlciA9PT0gJ2hlc3RpYV9lYXJ0aC5tb2RlbHMnICYmIGRhdGEubGV2ZWwgPT09IExldmVsLmRlYnVnKSxcbiAgICAgICAgZmlsdGVyKCh7IGRhdGE6IHsgbWVzc2FnZSB9IH0pID0+ICEhbWVzc2FnZSksXG4gICAgICAgIG1hcCgoeyBkYXRhOiB7IG1lc3NhZ2UgfSB9KSA9PiBwYXJzZU1lc3NhZ2UobWVzc2FnZSkpLFxuICAgICAgICBmaWx0ZXIobWVzc2FnZSA9PiAnbm9kZScgaW4gbWVzc2FnZSksXG4gICAgICAgIG1hcChwYXJzZUxvZyksXG4gICAgICAgIGZpbHRlcihsb2cgPT4gISFsb2cuaW1wYWN0VGVybUlkICYmICEhbG9nLmJsYW5rTm9kZVRlcm1JZCAmJiAhaXNOYU4obG9nLnZhbHVlKSAmJiBsb2cudmFsdWUgPiAwKSxcbiAgICAgICAgZ3JvdXBCeShsb2cgPT4gW2xvZy5pbXBhY3RUZXJtSWQsIGxvZy5ibGFua05vZGVUZXJtSWQsIGxvZy5tb2RlbElkXS5qb2luKCcvJykpLFxuICAgICAgICBtZXJnZU1hcChncm91cCA9PiBncm91cC5waXBlKHRvQXJyYXkoKSkpLFxuICAgICAgICBtYXAoKHZhbHVlczogSUxvZ1tdKSA9PiB7XG4gICAgICAgICAgY29uc3QgbG9nID0gdmFsdWVzWzBdO1xuICAgICAgICAgIGNvbnN0IHRvdGFsID0gdmFsdWVzLnJlZHVjZSgocHJldiwgY3VycikgPT4gcHJldiArIGN1cnIudmFsdWUsIDApO1xuICAgICAgICAgIGNvbnN0IGJsYW5rTm9kZXMgPSBbXG4gICAgICAgICAgICAuLi4odGhpcy5pbXBhY3RBc3Nlc3NtZW50KCk/LmVtaXNzaW9uc1Jlc291cmNlVXNlID8/IFtdKSxcbiAgICAgICAgICAgIC4uLih0aGlzLmltcGFjdEFzc2Vzc21lbnQoKT8uaW1wYWN0cyA/PyBbXSlcbiAgICAgICAgICBdLmZpbHRlcih2ID0+IHYudGVybVsnQGlkJ10gPT09IGxvZy5ibGFua05vZGVUZXJtSWQpO1xuXG4gICAgICAgICAgY29uc3QgaW5wdXRzID0gYmxhbmtOb2Rlc1xuICAgICAgICAgICAgLmZpbHRlcih2ID0+IHYuaW5wdXRzPy5sZW5ndGgpXG4gICAgICAgICAgICAubWFwKHYgPT4gKHsgbmFtZTogdi5pbnB1dHMubWFwKGkgPT4gaVsnQGlkJ10pLmpvaW4oJzsnKSwgdmFsdWU6IHYudmFsdWUgKiBsb2cuY29lZmZpY2llbnQgfSkpO1xuICAgICAgICAgIGNvbnN0IGlucHV0c1ZhbHVlID0gaW5wdXRzLnJlZHVjZSgocHJldiwgY3VycikgPT4gcHJldiArIGN1cnIudmFsdWUsIDApO1xuXG4gICAgICAgICAgY29uc3QgaW1wYWN0ID0gdGhpcy5pbXBhY3RzKCkuZmluZCh2ID0+IHYudGVybVsnQGlkJ10gPT09IGxvZy5pbXBhY3RUZXJtSWQpO1xuXG4gICAgICAgICAgLy8gbG9ncyBtaWdodCBleGlzdCBidXQgaW1wYWN0IHdhcyBub3QgYWRkZWQgPT4gc2tpcCBsb2dzXG4gICAgICAgICAgcmV0dXJuIGltcGFjdFxuICAgICAgICAgICAgPyB7XG4gICAgICAgICAgICAgICAgLi4ubG9nLFxuICAgICAgICAgICAgICAgIGltcGFjdFRlcm1Vbml0czogaW1wYWN0LnRlcm0/LnVuaXRzLFxuICAgICAgICAgICAgICAgIHZhbHVlOiB0b3RhbCxcbiAgICAgICAgICAgICAgICBpbnB1dHMsXG4gICAgICAgICAgICAgICAgaW5wdXRzVmFsdWVcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgOiBudWxsO1xuICAgICAgICB9KSxcbiAgICAgICAgZmlsdGVyKGxvZyA9PiAhIWxvZyksXG4gICAgICAgIHRvQXJyYXkoKSxcbiAgICAgICAgdGFwKCgpID0+IHRoaXMubG9hZGluZy5zZXQoZmFsc2UpKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgobG9nczogSUxvZ1tdKSA9PiB0aGlzLmFsbExvZ3Muc2V0KGxvZ3MpKTtcblxuICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICB0aGlzLmNoYXJ0ID0gbmV3IENoYXJ0KHRoaXMuY2hhcnRSZWYoKS5uYXRpdmVFbGVtZW50LCB7XG4gICAgICAgIHR5cGU6ICdiYXInLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgbGFiZWxzOiBbXSxcbiAgICAgICAgICBkYXRhc2V0czogW11cbiAgICAgICAgfSxcbiAgICAgICAgcGx1Z2luczogW0NoYXJ0RGF0YUxhYmVsc10sXG4gICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICBpbmRleEF4aXM6ICd5JyxcbiAgICAgICAgICBwbHVnaW5zOiB7XG4gICAgICAgICAgICBsZWdlbmQ6IHtcbiAgICAgICAgICAgICAgZGlzcGxheTogZmFsc2VcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB0b29sdGlwOiB7XG4gICAgICAgICAgICAgIGVuYWJsZWQ6IGZhbHNlXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZGF0YWxhYmVsczoge1xuICAgICAgICAgICAgICBjb2xvcjogJ2JsYWNrJyxcbiAgICAgICAgICAgICAgZm9ybWF0dGVyOiB2YWx1ZSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgcmF0aW8gPSB0b1ByZWNpc2lvbigodmFsdWUgKiAxMDApIC8gdGhpcy50b3RhbCgpLCAyKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWUgPiAwID8gYCR7dG9QcmVjaXNpb24odmFsdWUsIDMpfSAoJHtyYXRpb30lKWAgOiAnJztcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgYWxpZ246ICdlbmQnXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICByZXNwb25zaXZlOiB0cnVlLFxuICAgICAgICAgIG1haW50YWluQXNwZWN0UmF0aW86IGZhbHNlLFxuICAgICAgICAgIHNjYWxlczoge1xuICAgICAgICAgICAgeDoge1xuICAgICAgICAgICAgICBkaXNwbGF5OiB0cnVlXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgeToge1xuICAgICAgICAgICAgICBwb3NpdGlvbjogJ2xlZnQnXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIGVmZmVjdChcbiAgICAgICgpID0+IHtcbiAgICAgICAgLy8gbWFrZSBzdXJlIHNlbGVjdGVkIHRlcm0gZXhpc3RzXG4gICAgICAgIGNvbnN0IHRlcm1zID0gdGhpcy50ZXJtcygpO1xuICAgICAgICBjb25zdCBzZWxlY3RlZFRlcm1JZCA9IHRoaXMuc2VsZWN0ZWRUZXJtKCk/LlsnQGlkJ107XG4gICAgICAgIGlmICghc2VsZWN0ZWRUZXJtSWQgfHwgIXRlcm1zLmZpbmQodGVybSA9PiB0ZXJtWydAaWQnXSA9PT0gc2VsZWN0ZWRUZXJtSWQpKSB7XG4gICAgICAgICAgdGhpcy5zZWxlY3RlZFRlcm0uc2V0KHRlcm1zWzBdKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHsgYWxsb3dTaWduYWxXcml0ZXM6IHRydWUgfVxuICAgICk7XG5cbiAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgdGhpcy5jaGFydC5kYXRhLmxhYmVscyA9IHRoaXMubGFiZWxzKCk7XG4gICAgICB0aGlzLmNoYXJ0LmRhdGEuZGF0YXNldHMgPSB0aGlzLmRhdGFzZXRzKCk7XG4gICAgICB0aGlzLmNoYXJ0LnVwZGF0ZSgpO1xuICAgIH0pO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgcmV0dXJuIHRoaXMuY2hhcnQgJiYgdGhpcy5jaGFydC5kZXN0cm95KCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgc2VsZWN0VGVybSh7IHRhcmdldDogeyB2YWx1ZSB9IH0pIHtcbiAgICBjb25zdCB0ZXJtID0gdGhpcy50ZXJtcygpLmZpbmQodGVybSA9PiB0ZXJtWydAaWQnXSA9PT0gdmFsdWUpO1xuICAgIHRoaXMuc2VsZWN0ZWRUZXJtLnNldCh0ZXJtKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBzZWxlY3RNZXRob2QoeyB0YXJnZXQ6IHsgdmFsdWUgfSB9KSB7XG4gICAgY29uc3QgdGVybSA9IHRoaXMubWV0aG9kcygpLmZpbmQodGVybSA9PiB0ZXJtWydAaWQnXSA9PT0gdmFsdWUpO1xuICAgIHRoaXMuc2VsZWN0ZWRNZXRob2Quc2V0KHRlcm0pO1xuICB9XG59XG4iLCJAaWYgKGxvYWRpbmcoKSkge1xuICA8ZGl2IGNsYXNzPVwiaGFzLXRleHQtY2VudGVyIHB5LTNcIj5cbiAgICA8ZmEtaWNvbiBbaWNvbl09XCJmYVNwaW5uZXJcIiBbcHVsc2VdPVwidHJ1ZVwiIHNpemU9XCJsZ1wiPjwvZmEtaWNvbj5cbiAgPC9kaXY+XG59IEBlbHNlIHtcbiAgPGRpdiBjbGFzcz1cInAtM1wiIFtjbGFzcy5pcy1oaWRkZW5dPVwiIXRlcm1zKCk/Lmxlbmd0aFwiPlxuICAgIDxkaXYgY2xhc3M9XCJjb2x1bW5zXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29sdW1uXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZCBoYXMtYWRkb25zXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRyb2xcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYnV0dG9uIGlzLXNtYWxsIGlzLXN0YXRpYyBpcy1zZWNvbmRhcnlcIj5TZWxlY3QgYW4gSW5kaWNhdG9yPC9zcGFuPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIEBpZiAodGVybXMoKT8ubGVuZ3RoKSB7XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29udHJvbCBpcy1leHBhbmRlZFwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VsZWN0IGlzLWZ1bGx3aWR0aCBpcy1zbWFsbCBpcy1zZWNvbmRhcnlcIj5cbiAgICAgICAgICAgICAgICA8c2VsZWN0IChjaGFuZ2UpPVwic2VsZWN0VGVybSgkZXZlbnQpXCI+XG4gICAgICAgICAgICAgICAgICBAZm9yICh0ZXJtIG9mIHRlcm1zKCk7IHRyYWNrIHRlcm0pIHtcbiAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiBbdmFsdWVdPVwidGVybVsnQGlkJ11cIj57eyB0ZXJtLm5hbWUgfX0gKHt7IHRlcm0udW5pdHMgfX0pPC9vcHRpb24+XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgPC9zZWxlY3Q+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgfVxuICAgICAgICAgIEBpZiAobWV0aG9kcygpPy5sZW5ndGgpIHtcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb250cm9sIGlzLWV4cGFuZGVkXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWxlY3QgaXMtZnVsbHdpZHRoIGlzLXNtYWxsIGlzLXNlY29uZGFyeVwiPlxuICAgICAgICAgICAgICAgIDxzZWxlY3QgKGNoYW5nZSk9XCJzZWxlY3RNZXRob2QoJGV2ZW50KVwiPlxuICAgICAgICAgICAgICAgICAgPG9wdGlvbiBbbmdWYWx1ZV09XCJ1bmRlZmluZWRcIj5GaWx0ZXIgTW9kZWw8L29wdGlvbj5cbiAgICAgICAgICAgICAgICAgIEBmb3IgKHRlcm0gb2YgbWV0aG9kcygpOyB0cmFjayB0ZXJtKSB7XG4gICAgICAgICAgICAgICAgICAgIDxvcHRpb24gW3ZhbHVlXT1cInRlcm1bJ0BpZCddXCI+e3sgdGVybS5uYW1lIH19PC9vcHRpb24+XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgPC9zZWxlY3Q+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImNvbHVtbiBpcy1uYXJyb3dcIj5cbiAgICAgICAgPGFcbiAgICAgICAgICBjbGFzcz1cImJ1dHRvbiBpcy1naG9zdCBpcy1zbWFsbFwiXG4gICAgICAgICAgW2hyZWZdPVwiY3N2Q29udGVudCgpXCJcbiAgICAgICAgICBbZG93bmxvYWRdPVwiZG93bmxvYWRGaWxlbmFtZSgpXCJcbiAgICAgICAgICBuYmdUb29sdGlwPVwiRG93bmxvYWQgYXMgQ1NWXCJcbiAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b21cIj5cbiAgICAgICAgICA8ZmEtaWNvbiBbaWNvbl09XCJmYURvd25sb2FkXCI+PC9mYS1pY29uPlxuICAgICAgICA8L2E+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICBAaWYgKCFzZWxlY3RlZE1ldGhvZCgpKSB7XG4gICAgICA8cCBjbGFzcz1cImlzLXNpemUtN1wiPlxuICAgICAgICA8aT5TZWxlY3RpbmcgYSBNb2RlbCBpcyByZWNvbW1lbmRlZCB0byBhdm9pZCBkdXBsaWNhdGVkIGVudHJpZXMuPC9pPlxuICAgICAgPC9wPlxuICAgIH1cbiAgPC9kaXY+XG59XG5cbjxkaXYgY2xhc3M9XCJpcy1tdC0xXCI+XG4gIEBpZiAoIWxvYWRpbmcoKSAmJiBub0RhdGEoKSkge1xuICAgIDxwIGNsYXNzPVwiaGFzLXRleHQtY2VudGVyZWRcIj5cbiAgICAgIDxzcGFuPk5vIGJyZWFrZG93biBhdmFpbGFibGUgZm9yPC9zcGFuPlxuICAgICAgQGlmIChzZWxlY3RlZFRlcm0oKSkge1xuICAgICAgICA8c3BhbiBjbGFzcz1cImlzLXBsLTFcIj57eyBzZWxlY3RlZFRlcm0oKS5uYW1lIH19PC9zcGFuPlxuICAgICAgfVxuICAgICAgQGlmIChzZWxlY3RlZE1ldGhvZCgpKSB7XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiaXMtcGwtMVwiPih7eyBzZWxlY3RlZE1ldGhvZCgpLm5hbWUgfX0pPC9zcGFuPlxuICAgICAgfVxuICAgICAgPHNwYW4+Ljwvc3Bhbj5cbiAgICA8L3A+XG4gIH1cbiAgPGRpdiBjbGFzcz1cImNoYXJ0LWNvbnRhaW5lciBoLTEwMFwiPlxuICAgIDxjYW52YXMgI2NoYXJ0PjwvY2FudmFzPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
@@ -39,7 +39,7 @@ export class ImpactAssessmentsIndicatorsChartComponent {
39
39
  borderColor: this.colors()
40
40
  }
41
41
  ]);
42
- Chart.register(CategoryScale, LinearScale, BarController, BarElement, ChartDataLabels);
42
+ Chart.register(CategoryScale, LinearScale, BarController, BarElement);
43
43
  effect(() => {
44
44
  this.chart = new Chart(this.chartRef()?.nativeElement, {
45
45
  type: 'bar',
@@ -47,19 +47,20 @@ export class ImpactAssessmentsIndicatorsChartComponent {
47
47
  labels: [],
48
48
  datasets: []
49
49
  },
50
+ plugins: [ChartDataLabels],
50
51
  options: {
51
52
  plugins: {
52
53
  legend: {
53
54
  display: false
54
55
  },
56
+ tooltip: {
57
+ enabled: false
58
+ },
55
59
  datalabels: {
56
60
  color: 'black',
57
61
  formatter: value => toPrecision(value, 3),
58
62
  anchor: 'center',
59
63
  clamp: true
60
- },
61
- tooltip: {
62
- enabled: false
63
64
  }
64
65
  },
65
66
  responsive: true,
@@ -91,7 +92,6 @@ export class ImpactAssessmentsIndicatorsChartComponent {
91
92
  });
92
93
  }
93
94
  ngOnDestroy() {
94
- Chart.unregister(ChartDataLabels);
95
95
  return this.chart && this.chart.destroy();
96
96
  }
97
97
  selectTerm({ target: { value } }) {
@@ -105,4 +105,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImpor
105
105
  type: Component,
106
106
  args: [{ selector: 'he-impact-assessments-indicators-chart', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [FormsModule], template: "<div class=\"p-3\" [class.is-hidden]=\"!terms()?.length\">\n <div class=\"field has-addons pt-2 px-3\">\n <div class=\"control\">\n <span class=\"button is-small is-static is-secondary\">Select an Indicator</span>\n </div>\n <div class=\"control is-expanded\">\n <div class=\"select is-small is-fullwidth is-secondary\">\n <select (change)=\"selectTerm($event)\">\n @for (term of terms(); track term) {\n <option [value]=\"term['@id']\">{{ term.name }} ({{ term.units }})</option>\n }\n </select>\n </div>\n </div>\n </div>\n\n <div class=\"mt-1\">\n <div class=\"chart-container\">\n <canvas #chart></canvas>\n </div>\n </div>\n</div>\n", styles: [":host{display:block;overflow:visible}.chart-container{height:400px;position:relative}\n"] }]
107
107
  }], ctorParameters: () => [] });
108
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1wYWN0LWFzc2Vzc21lbnRzLWluZGljYXRvcnMtY2hhcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2ltcGFjdC1hc3Nlc3NtZW50cy9pbXBhY3QtYXNzZXNzbWVudHMtaW5kaWNhdG9ycy1jaGFydC9pbXBhY3QtYXNzZXNzbWVudHMtaW5kaWNhdG9ycy1jaGFydC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9zcmMvaW1wYWN0LWFzc2Vzc21lbnRzL2ltcGFjdC1hc3Nlc3NtZW50cy1pbmRpY2F0b3JzLWNoYXJ0L2ltcGFjdC1hc3Nlc3NtZW50cy1pbmRpY2F0b3JzLWNoYXJ0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBRVQsUUFBUSxFQUNSLHVCQUF1QixFQUN2QixNQUFNLEVBQ04sTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLEVBQ04sU0FBUyxFQUVWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzlDLE9BQU8sRUFBbUQsUUFBUSxFQUFzQixNQUFNLHNCQUFzQixDQUFDO0FBQ3JILE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsYUFBYSxFQUFFLFVBQVUsRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUN4RixPQUFPLGVBQWUsTUFBTSwyQkFBMkIsQ0FBQztBQUV4RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNuRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQXVCLE1BQU0seUJBQXlCLENB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LElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDNUMsQ0FBQztJQUVTLFVBQVUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFO1FBQ3hDLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssS0FBSyxDQUFDLENBQUM7UUFDOUQsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDOUIsQ0FBQzs4R0EzR1UseUNBQXlDO2tHQUF6Qyx5Q0FBeUMseWVDM0N0RCxvdEJBc0JBLGdKRG1CWSxXQUFXOzsyRkFFVix5Q0FBeUM7a0JBUnJELFNBQVM7K0JBQ0Usd0NBQXdDLG1CQUdqQyx1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLElBQUksV0FDUCxDQUFDLFdBQVcsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgY29tcHV0ZWQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBzaWduYWwsXG4gIGVmZmVjdCxcbiAgaW5wdXQsXG4gIGluamVjdCxcbiAgdmlld0NoaWxkLFxuICBPbkRlc3Ryb3lcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IHRvU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgRGF0YVN0YXRlIH0gZnJvbSAnQGhlc3RpYS1lYXJ0aC9hcGknO1xuaW1wb3J0IHsgSUltcGFjdEFzc2Vzc21lbnRKU09OTEQsIEluZGljYXRvciwgSVRlcm1KU09OTEQsIE5vZGVUeXBlLCBUZXJtLCBUZXJtVGVybVR5cGUgfSBmcm9tICdAaGVzdGlhLWVhcnRoL3NjaGVtYSc7XG5pbXBvcnQgeyB0b1ByZWNpc2lvbiB9IGZyb20gJ0BoZXN0aWEtZWFydGgvdXRpbHMnO1xuaW1wb3J0IHsgQmFyQ29udHJvbGxlciwgQmFyRWxlbWVudCwgQ2F0ZWdvcnlTY2FsZSwgQ2hhcnQsIExpbmVhclNjYWxlIH0gZnJvbSAnY2hhcnQuanMnO1xuaW1wb3J0IENoYXJ0RGF0YUxhYmVscyBmcm9tICdjaGFydGpzLXBsdWdpbi1kYXRhbGFiZWxzJztcblxuaW1wb3J0IHsgSGVOb2RlU3RvcmVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vbm9kZS9ub2RlLXN0b3JlLnNlcnZpY2UnO1xuaW1wb3J0IHsgZ3JvdXBOb2Rlc0J5VGVybSwgSUdyb3VwZWROb2Rlc1ZhbHVlcyB9IGZyb20gJy4uLy4uL2NvbW1vbi9ub2RlLXV0aWxzJztcbmltcG9ydCB7IGRlZmF1bHRMYWJlbCB9IGZyb20gJy4uLy4uL2NvbW1vbi91dGlscyc7XG5pbXBvcnQgeyBsaXN0Q29sb3IgfSBmcm9tICcuLi8uLi9jb21tb24vY29sb3InO1xuaW1wb3J0IHsgbW9kZWxLZXkgfSBmcm9tICcuLi9pbXBhY3QtYXNzZXNzbWVudHMubW9kZWwnO1xuXG5jb25zdCBpbXBhY3RWYWx1ZSA9IChpbXBhY3Q6IElJbXBhY3RBc3Nlc3NtZW50SlNPTkxELCB2YWx1ZXM6IElHcm91cGVkTm9kZXNWYWx1ZXM8SW5kaWNhdG9yPikgPT5cbiAgKHZhbHVlc1tpbXBhY3RbJ0BpZCddXT8ubm9kZXNbMF0gfHwgeyB2YWx1ZTogMCB9KS52YWx1ZTtcblxuY29uc3QgaW1wYWN0TmFtZSA9IChpbXBhY3Q6IElJbXBhY3RBc3Nlc3NtZW50SlNPTkxELCBpbmRleDogbnVtYmVyKSA9PlxuICBgJHtpbmRleCArIDF9LiAke2RlZmF1bHRMYWJlbChpbXBhY3QpfSAoJHtpbXBhY3QucHJvZHVjdD8udGVybT8udW5pdHN9KWA7XG5cbmNvbnN0IHRlcm1BbGxvd2VkID0gKGZpbHRlclRlcm1UeXBlczogVGVybVRlcm1UeXBlW10gPSBbXSwgdGVybT86IFRlcm0gfCBJVGVybUpTT05MRCkgPT5cbiAgIWZpbHRlclRlcm1UeXBlcz8ubGVuZ3RoIHx8IChmaWx0ZXJUZXJtVHlwZXMgfHwgW10pLmluY2x1ZGVzKHRlcm0/LnRlcm1UeXBlKTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaGUtaW1wYWN0LWFzc2Vzc21lbnRzLWluZGljYXRvcnMtY2hhcnQnLFxuICB0ZW1wbGF0ZVVybDogJy4vaW1wYWN0LWFzc2Vzc21lbnRzLWluZGljYXRvcnMtY2hhcnQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9pbXBhY3QtYXNzZXNzbWVudHMtaW5kaWNhdG9ycy1jaGFydC5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0Zvcm1zTW9kdWxlXVxufSlcbmV4cG9ydCBjbGFzcyBJbXBhY3RBc3Nlc3NtZW50c0luZGljYXRvcnNDaGFydENvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgbm9kZVN0b3JlU2VydmljZSA9IGluamVjdChIZU5vZGVTdG9yZVNlcnZpY2UpO1xuXG4gIHByaXZhdGUgY2hhcnRSZWYgPSB2aWV3Q2hpbGQucmVxdWlyZWQ8RWxlbWVudFJlZj4oJ2NoYXJ0Jyk7XG4gIHByaXZhdGUgY2hhcnQ6IENoYXJ0PCdiYXInLCBudW1iZXJbXSwgc3RyaW5nPjtcblxuICBwcm90ZWN0ZWQga2V5ID0gaW5wdXQoJ2ltcGFjdHMnIGFzIG1vZGVsS2V5KTtcbiAgcHJvdGVjdGVkIGZpbHRlclRlcm1UeXBlcyA9IGlucHV0KFtdIGFzIFRlcm1UZXJtVHlwZVtdKTtcblxuICBwcml2YXRlIGltcGFjdEFzc2Vzc21lbnRzID0gdG9TaWduYWwoXG4gICAgdGhpcy5ub2RlU3RvcmVTZXJ2aWNlLmZpbmRCeVN0YXRlJDxJSW1wYWN0QXNzZXNzbWVudEpTT05MRD4oTm9kZVR5cGUuSW1wYWN0QXNzZXNzbWVudCwgRGF0YVN0YXRlLnJlY2FsY3VsYXRlZClcbiAgKTtcblxuICBwcml2YXRlIGluZGljYXRvclBlckltcGFjdEFzc2Vzc21lbnQgPSBjb21wdXRlZCgoKSA9PlxuICAgIGdyb3VwTm9kZXNCeVRlcm08SUltcGFjdEFzc2Vzc21lbnRKU09OTEQsIEluZGljYXRvcj4odGhpcy5pbXBhY3RBc3Nlc3NtZW50cygpLCB0aGlzLmtleSgpKVxuICApO1xuXG4gIHByb3RlY3RlZCB0ZXJtcyA9IGNvbXB1dGVkKCgpID0+XG4gICAgT2JqZWN0LnZhbHVlcyh0aGlzLmluZGljYXRvclBlckltcGFjdEFzc2Vzc21lbnQoKSlcbiAgICAgIC5maWx0ZXIoXG4gICAgICAgICh7IHRlcm0sIHZhbHVlcyB9KSA9PlxuICAgICAgICAgIHRlcm1BbGxvd2VkKHRoaXMuZmlsdGVyVGVybVR5cGVzKCksIHRlcm0pICYmXG4gICAgICAgICAgT2JqZWN0LnZhbHVlcyh2YWx1ZXMpLnNvbWUoKHsgbm9kZXM6IFt7IHZhbHVlIH1dIH0pID0+IHZhbHVlID49IDApXG4gICAgICApXG4gICAgICAubWFwKCh7IHRlcm0gfTogYW55KSA9PiB0ZXJtIGFzIFRlcm0pXG4gICk7XG5cbiAgcHJpdmF0ZSBzZWxlY3RlZFRlcm0gPSBzaWduYWwodW5kZWZpbmVkIGFzIFRlcm0pO1xuICBwcml2YXRlIGxhYmVscyA9IGNvbXB1dGVkKCgpID0+IHRoaXMuaW1wYWN0QXNzZXNzbWVudHMoKS5tYXAoaW1wYWN0TmFtZSkpO1xuICBwcml2YXRlIGNvbG9ycyA9IGNvbXB1dGVkKCgpID0+IHRoaXMuaW1wYWN0QXNzZXNzbWVudHMoKS5tYXAobGlzdENvbG9yKSk7XG4gIHByaXZhdGUgdmFsdWVzID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5pbmRpY2F0b3JQZXJJbXBhY3RBc3Nlc3NtZW50KCk/Llt0aGlzLnNlbGVjdGVkVGVybSgpPy5uYW1lXT8udmFsdWVzIHx8IHt9KTtcbiAgcHJpdmF0ZSBkYXRhc2V0cyA9IGNvbXB1dGVkKCgpID0+IFtcbiAgICB7XG4gICAgICBsYWJlbDogdGhpcy5zZWxlY3RlZFRlcm0oKT8ubmFtZSB8fCAnJyxcbiAgICAgIGRhdGE6IHRoaXMuaW1wYWN0QXNzZXNzbWVudHMoKS5tYXAoaW1wYWN0ID0+IGltcGFjdFZhbHVlKGltcGFjdCwgdGhpcy52YWx1ZXMoKSkpLFxuICAgICAgYmFja2dyb3VuZENvbG9yOiB0aGlzLmNvbG9ycygpLFxuICAgICAgYm9yZGVyQ29sb3I6IHRoaXMuY29sb3JzKClcbiAgICB9XG4gIF0pO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIENoYXJ0LnJlZ2lzdGVyKENhdGVnb3J5U2NhbGUsIExpbmVhclNjYWxlLCBCYXJDb250cm9sbGVyLCBCYXJFbGVtZW50LCBDaGFydERhdGFMYWJlbHMpO1xuXG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIHRoaXMuY2hhcnQgPSBuZXcgQ2hhcnQodGhpcy5jaGFydFJlZigpPy5uYXRpdmVFbGVtZW50LCB7XG4gICAgICAgIHR5cGU6ICdiYXInLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgbGFiZWxzOiBbXSxcbiAgICAgICAgICBkYXRhc2V0czogW11cbiAgICAgICAgfSxcbiAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgIHBsdWdpbnM6IHtcbiAgICAgICAgICAgIGxlZ2VuZDoge1xuICAgICAgICAgICAgICBkaXNwbGF5OiBmYWxzZVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGRhdGFsYWJlbHM6IHtcbiAgICAgICAgICAgICAgY29sb3I6ICdibGFjaycsXG4gICAgICAgICAgICAgIGZvcm1hdHRlcjogdmFsdWUgPT4gdG9QcmVjaXNpb24odmFsdWUsIDMpLFxuICAgICAgICAgICAgICBhbmNob3I6ICdjZW50ZXInLFxuICAgICAgICAgICAgICBjbGFtcDogdHJ1ZVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHRvb2x0aXA6IHtcbiAgICAgICAgICAgICAgZW5hYmxlZDogZmFsc2VcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIHJlc3BvbnNpdmU6IHRydWUsXG4gICAgICAgICAgbWFpbnRhaW5Bc3BlY3RSYXRpbzogZmFsc2UsXG4gICAgICAgICAgc2NhbGVzOiB7XG4gICAgICAgICAgICB4OiB7XG4gICAgICAgICAgICAgIGRpc3BsYXk6IHRydWVcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB5OiB7XG4gICAgICAgICAgICAgIHBvc2l0aW9uOiAnbGVmdCcsXG4gICAgICAgICAgICAgIGJlZ2luQXRaZXJvOiB0cnVlXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIGVmZmVjdChcbiAgICAgICgpID0+IHtcbiAgICAgICAgLy8gbWFrZSBzdXJlIHNlbGVjdGVkIHRlcm0gZXhpc3RzXG4gICAgICAgIGNvbnN0IHRlcm1zID0gdGhpcy50ZXJtcygpO1xuICAgICAgICBjb25zdCBzZWxlY3RlZFRlcm1JZCA9IHRoaXMuc2VsZWN0ZWRUZXJtKCk/LlsnQGlkJ107XG4gICAgICAgIGlmICghc2VsZWN0ZWRUZXJtSWQgfHwgIXRlcm1zLmZpbmQodGVybSA9PiB0ZXJtWydAaWQnXSA9PT0gc2VsZWN0ZWRUZXJtSWQpKSB7XG4gICAgICAgICAgdGhpcy5zZWxlY3RlZFRlcm0uc2V0KHRlcm1zWzBdKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHsgYWxsb3dTaWduYWxXcml0ZXM6IHRydWUgfVxuICAgICk7XG5cbiAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgdGhpcy5jaGFydC5kYXRhLmxhYmVscyA9IHRoaXMubGFiZWxzKCk7XG4gICAgICB0aGlzLmNoYXJ0LmRhdGEuZGF0YXNldHMgPSB0aGlzLmRhdGFzZXRzKCk7XG4gICAgICB0aGlzLmNoYXJ0LnVwZGF0ZSgpO1xuICAgIH0pO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgQ2hhcnQudW5yZWdpc3RlcihDaGFydERhdGFMYWJlbHMpO1xuICAgIHJldHVybiB0aGlzLmNoYXJ0ICYmIHRoaXMuY2hhcnQuZGVzdHJveSgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHNlbGVjdFRlcm0oeyB0YXJnZXQ6IHsgdmFsdWUgfSB9KSB7XG4gICAgY29uc3QgdGVybSA9IHRoaXMudGVybXMoKS5maW5kKHRlcm0gPT4gdGVybVsnQGlkJ10gPT09IHZhbHVlKTtcbiAgICB0aGlzLnNlbGVjdGVkVGVybS5zZXQodGVybSk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJwLTNcIiBbY2xhc3MuaXMtaGlkZGVuXT1cIiF0ZXJtcygpPy5sZW5ndGhcIj5cbiAgPGRpdiBjbGFzcz1cImZpZWxkIGhhcy1hZGRvbnMgcHQtMiBweC0zXCI+XG4gICAgPGRpdiBjbGFzcz1cImNvbnRyb2xcIj5cbiAgICAgIDxzcGFuIGNsYXNzPVwiYnV0dG9uIGlzLXNtYWxsIGlzLXN0YXRpYyBpcy1zZWNvbmRhcnlcIj5TZWxlY3QgYW4gSW5kaWNhdG9yPC9zcGFuPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJjb250cm9sIGlzLWV4cGFuZGVkXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwic2VsZWN0IGlzLXNtYWxsIGlzLWZ1bGx3aWR0aCBpcy1zZWNvbmRhcnlcIj5cbiAgICAgICAgPHNlbGVjdCAoY2hhbmdlKT1cInNlbGVjdFRlcm0oJGV2ZW50KVwiPlxuICAgICAgICAgIEBmb3IgKHRlcm0gb2YgdGVybXMoKTsgdHJhY2sgdGVybSkge1xuICAgICAgICAgICAgPG9wdGlvbiBbdmFsdWVdPVwidGVybVsnQGlkJ11cIj57eyB0ZXJtLm5hbWUgfX0gKHt7IHRlcm0udW5pdHMgfX0pPC9vcHRpb24+XG4gICAgICAgICAgfVxuICAgICAgICA8L3NlbGVjdD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwibXQtMVwiPlxuICAgIDxkaXYgY2xhc3M9XCJjaGFydC1jb250YWluZXJcIj5cbiAgICAgIDxjYW52YXMgI2NoYXJ0PjwvY2FudmFzPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
108
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1wYWN0LWFzc2Vzc21lbnRzLWluZGljYXRvcnMtY2hhcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2ltcGFjdC1hc3Nlc3NtZW50cy9pbXBhY3QtYXNzZXNzbWVudHMtaW5kaWNhdG9ycy1jaGFydC9pbXBhY3QtYXNzZXNzbWVudHMtaW5kaWNhdG9ycy1jaGFydC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9zcmMvaW1wYWN0LWFzc2Vzc21lbnRzL2ltcGFjdC1hc3Nlc3NtZW50cy1pbmRpY2F0b3JzLWNoYXJ0L2ltcGFjdC1hc3Nlc3NtZW50cy1pbmRpY2F0b3JzLWNoYXJ0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBRVQsUUFBUSxFQUNSLHVCQUF1QixFQUN2QixNQUFNLEVBQ04sTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLEVBQ04sU0FBUyxFQUVWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzlDLE9BQU8sRUFBbUQsUUFBUSxFQUFzQixNQUFNLHNCQUFzQixDQUFDO0FBQ3JILE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsYUFBYSxFQUFFLFVBQVUsRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUN4RixPQUFPLGVBQWUsTUFBTSwyQkFBMkIsQ0FBQztBQUV4RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNuRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQXVCLE1BQU0seUJBQXlCLENB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QyxPQUFPLEVBQUUsQ0FBQztJQUM1QyxDQUFDO0lBRVMsVUFBVSxDQUFDLEVBQUUsTUFBTSxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUU7UUFDeEMsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxLQUFLLENBQUMsQ0FBQztRQUM5RCxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM5QixDQUFDOzhHQTNHVSx5Q0FBeUM7a0dBQXpDLHlDQUF5Qyx5ZUMzQ3RELG90QkFzQkEsZ0pEbUJZLFdBQVc7OzJGQUVWLHlDQUF5QztrQkFSckQsU0FBUzsrQkFDRSx3Q0FBd0MsbUJBR2pDLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSxXQUNQLENBQUMsV0FBVyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBjb21wdXRlZCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIHNpZ25hbCxcbiAgZWZmZWN0LFxuICBpbnB1dCxcbiAgaW5qZWN0LFxuICB2aWV3Q2hpbGQsXG4gIE9uRGVzdHJveVxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgdG9TaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBEYXRhU3RhdGUgfSBmcm9tICdAaGVzdGlhLWVhcnRoL2FwaSc7XG5pbXBvcnQgeyBJSW1wYWN0QXNzZXNzbWVudEpTT05MRCwgSW5kaWNhdG9yLCBJVGVybUpTT05MRCwgTm9kZVR5cGUsIFRlcm0sIFRlcm1UZXJtVHlwZSB9IGZyb20gJ0BoZXN0aWEtZWFydGgvc2NoZW1hJztcbmltcG9ydCB7IHRvUHJlY2lzaW9uIH0gZnJvbSAnQGhlc3RpYS1lYXJ0aC91dGlscyc7XG5pbXBvcnQgeyBCYXJDb250cm9sbGVyLCBCYXJFbGVtZW50LCBDYXRlZ29yeVNjYWxlLCBDaGFydCwgTGluZWFyU2NhbGUgfSBmcm9tICdjaGFydC5qcyc7XG5pbXBvcnQgQ2hhcnREYXRhTGFiZWxzIGZyb20gJ2NoYXJ0anMtcGx1Z2luLWRhdGFsYWJlbHMnO1xuXG5pbXBvcnQgeyBIZU5vZGVTdG9yZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9ub2RlL25vZGUtc3RvcmUuc2VydmljZSc7XG5pbXBvcnQgeyBncm91cE5vZGVzQnlUZXJtLCBJR3JvdXBlZE5vZGVzVmFsdWVzIH0gZnJvbSAnLi4vLi4vY29tbW9uL25vZGUtdXRpbHMnO1xuaW1wb3J0IHsgZGVmYXVsdExhYmVsIH0gZnJvbSAnLi4vLi4vY29tbW9uL3V0aWxzJztcbmltcG9ydCB7IGxpc3RDb2xvciB9IGZyb20gJy4uLy4uL2NvbW1vbi9jb2xvcic7XG5pbXBvcnQgeyBtb2RlbEtleSB9IGZyb20gJy4uL2ltcGFjdC1hc3Nlc3NtZW50cy5tb2RlbCc7XG5cbmNvbnN0IGltcGFjdFZhbHVlID0gKGltcGFjdDogSUltcGFjdEFzc2Vzc21lbnRKU09OTEQsIHZhbHVlczogSUdyb3VwZWROb2Rlc1ZhbHVlczxJbmRpY2F0b3I+KSA9PlxuICAodmFsdWVzW2ltcGFjdFsnQGlkJ11dPy5ub2Rlc1swXSB8fCB7IHZhbHVlOiAwIH0pLnZhbHVlO1xuXG5jb25zdCBpbXBhY3ROYW1lID0gKGltcGFjdDogSUltcGFjdEFzc2Vzc21lbnRKU09OTEQsIGluZGV4OiBudW1iZXIpID0+XG4gIGAke2luZGV4ICsgMX0uICR7ZGVmYXVsdExhYmVsKGltcGFjdCl9ICgke2ltcGFjdC5wcm9kdWN0Py50ZXJtPy51bml0c30pYDtcblxuY29uc3QgdGVybUFsbG93ZWQgPSAoZmlsdGVyVGVybVR5cGVzOiBUZXJtVGVybVR5cGVbXSA9IFtdLCB0ZXJtPzogVGVybSB8IElUZXJtSlNPTkxEKSA9PlxuICAhZmlsdGVyVGVybVR5cGVzPy5sZW5ndGggfHwgKGZpbHRlclRlcm1UeXBlcyB8fCBbXSkuaW5jbHVkZXModGVybT8udGVybVR5cGUpO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdoZS1pbXBhY3QtYXNzZXNzbWVudHMtaW5kaWNhdG9ycy1jaGFydCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9pbXBhY3QtYXNzZXNzbWVudHMtaW5kaWNhdG9ycy1jaGFydC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2ltcGFjdC1hc3Nlc3NtZW50cy1pbmRpY2F0b3JzLWNoYXJ0LmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbRm9ybXNNb2R1bGVdXG59KVxuZXhwb3J0IGNsYXNzIEltcGFjdEFzc2Vzc21lbnRzSW5kaWNhdG9yc0NoYXJ0Q29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSBub2RlU3RvcmVTZXJ2aWNlID0gaW5qZWN0KEhlTm9kZVN0b3JlU2VydmljZSk7XG5cbiAgcHJpdmF0ZSBjaGFydFJlZiA9IHZpZXdDaGlsZC5yZXF1aXJlZDxFbGVtZW50UmVmPignY2hhcnQnKTtcbiAgcHJpdmF0ZSBjaGFydDogQ2hhcnQ8YW55LCBudW1iZXJbXSwgc3RyaW5nPjtcblxuICBwcm90ZWN0ZWQga2V5ID0gaW5wdXQoJ2ltcGFjdHMnIGFzIG1vZGVsS2V5KTtcbiAgcHJvdGVjdGVkIGZpbHRlclRlcm1UeXBlcyA9IGlucHV0KFtdIGFzIFRlcm1UZXJtVHlwZVtdKTtcblxuICBwcml2YXRlIGltcGFjdEFzc2Vzc21lbnRzID0gdG9TaWduYWwoXG4gICAgdGhpcy5ub2RlU3RvcmVTZXJ2aWNlLmZpbmRCeVN0YXRlJDxJSW1wYWN0QXNzZXNzbWVudEpTT05MRD4oTm9kZVR5cGUuSW1wYWN0QXNzZXNzbWVudCwgRGF0YVN0YXRlLnJlY2FsY3VsYXRlZClcbiAgKTtcblxuICBwcml2YXRlIGluZGljYXRvclBlckltcGFjdEFzc2Vzc21lbnQgPSBjb21wdXRlZCgoKSA9PlxuICAgIGdyb3VwTm9kZXNCeVRlcm08SUltcGFjdEFzc2Vzc21lbnRKU09OTEQsIEluZGljYXRvcj4odGhpcy5pbXBhY3RBc3Nlc3NtZW50cygpLCB0aGlzLmtleSgpKVxuICApO1xuXG4gIHByb3RlY3RlZCB0ZXJtcyA9IGNvbXB1dGVkKCgpID0+XG4gICAgT2JqZWN0LnZhbHVlcyh0aGlzLmluZGljYXRvclBlckltcGFjdEFzc2Vzc21lbnQoKSlcbiAgICAgIC5maWx0ZXIoXG4gICAgICAgICh7IHRlcm0sIHZhbHVlcyB9KSA9PlxuICAgICAgICAgIHRlcm1BbGxvd2VkKHRoaXMuZmlsdGVyVGVybVR5cGVzKCksIHRlcm0pICYmXG4gICAgICAgICAgT2JqZWN0LnZhbHVlcyh2YWx1ZXMpLnNvbWUoKHsgbm9kZXM6IFt7IHZhbHVlIH1dIH0pID0+IHZhbHVlID49IDApXG4gICAgICApXG4gICAgICAubWFwKCh7IHRlcm0gfTogYW55KSA9PiB0ZXJtIGFzIFRlcm0pXG4gICk7XG5cbiAgcHJpdmF0ZSBzZWxlY3RlZFRlcm0gPSBzaWduYWwodW5kZWZpbmVkIGFzIFRlcm0pO1xuICBwcml2YXRlIGxhYmVscyA9IGNvbXB1dGVkKCgpID0+IHRoaXMuaW1wYWN0QXNzZXNzbWVudHMoKS5tYXAoaW1wYWN0TmFtZSkpO1xuICBwcml2YXRlIGNvbG9ycyA9IGNvbXB1dGVkKCgpID0+IHRoaXMuaW1wYWN0QXNzZXNzbWVudHMoKS5tYXAobGlzdENvbG9yKSk7XG4gIHByaXZhdGUgdmFsdWVzID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5pbmRpY2F0b3JQZXJJbXBhY3RBc3Nlc3NtZW50KCk/Llt0aGlzLnNlbGVjdGVkVGVybSgpPy5uYW1lXT8udmFsdWVzIHx8IHt9KTtcbiAgcHJpdmF0ZSBkYXRhc2V0cyA9IGNvbXB1dGVkKCgpID0+IFtcbiAgICB7XG4gICAgICBsYWJlbDogdGhpcy5zZWxlY3RlZFRlcm0oKT8ubmFtZSB8fCAnJyxcbiAgICAgIGRhdGE6IHRoaXMuaW1wYWN0QXNzZXNzbWVudHMoKS5tYXAoaW1wYWN0ID0+IGltcGFjdFZhbHVlKGltcGFjdCwgdGhpcy52YWx1ZXMoKSkpLFxuICAgICAgYmFja2dyb3VuZENvbG9yOiB0aGlzLmNvbG9ycygpLFxuICAgICAgYm9yZGVyQ29sb3I6IHRoaXMuY29sb3JzKClcbiAgICB9XG4gIF0pO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIENoYXJ0LnJlZ2lzdGVyKENhdGVnb3J5U2NhbGUsIExpbmVhclNjYWxlLCBCYXJDb250cm9sbGVyLCBCYXJFbGVtZW50KTtcblxuICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICB0aGlzLmNoYXJ0ID0gbmV3IENoYXJ0KHRoaXMuY2hhcnRSZWYoKT8ubmF0aXZlRWxlbWVudCwge1xuICAgICAgICB0eXBlOiAnYmFyJyxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIGxhYmVsczogW10sXG4gICAgICAgICAgZGF0YXNldHM6IFtdXG4gICAgICAgIH0sXG4gICAgICAgIHBsdWdpbnM6IFtDaGFydERhdGFMYWJlbHNdLFxuICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgcGx1Z2luczoge1xuICAgICAgICAgICAgbGVnZW5kOiB7XG4gICAgICAgICAgICAgIGRpc3BsYXk6IGZhbHNlXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgdG9vbHRpcDoge1xuICAgICAgICAgICAgICBlbmFibGVkOiBmYWxzZVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGRhdGFsYWJlbHM6IHtcbiAgICAgICAgICAgICAgY29sb3I6ICdibGFjaycsXG4gICAgICAgICAgICAgIGZvcm1hdHRlcjogdmFsdWUgPT4gdG9QcmVjaXNpb24odmFsdWUsIDMpLFxuICAgICAgICAgICAgICBhbmNob3I6ICdjZW50ZXInLFxuICAgICAgICAgICAgICBjbGFtcDogdHJ1ZVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgcmVzcG9uc2l2ZTogdHJ1ZSxcbiAgICAgICAgICBtYWludGFpbkFzcGVjdFJhdGlvOiBmYWxzZSxcbiAgICAgICAgICBzY2FsZXM6IHtcbiAgICAgICAgICAgIHg6IHtcbiAgICAgICAgICAgICAgZGlzcGxheTogdHJ1ZVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHk6IHtcbiAgICAgICAgICAgICAgcG9zaXRpb246ICdsZWZ0JyxcbiAgICAgICAgICAgICAgYmVnaW5BdFplcm86IHRydWVcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgZWZmZWN0KFxuICAgICAgKCkgPT4ge1xuICAgICAgICAvLyBtYWtlIHN1cmUgc2VsZWN0ZWQgdGVybSBleGlzdHNcbiAgICAgICAgY29uc3QgdGVybXMgPSB0aGlzLnRlcm1zKCk7XG4gICAgICAgIGNvbnN0IHNlbGVjdGVkVGVybUlkID0gdGhpcy5zZWxlY3RlZFRlcm0oKT8uWydAaWQnXTtcbiAgICAgICAgaWYgKCFzZWxlY3RlZFRlcm1JZCB8fCAhdGVybXMuZmluZCh0ZXJtID0+IHRlcm1bJ0BpZCddID09PSBzZWxlY3RlZFRlcm1JZCkpIHtcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkVGVybS5zZXQodGVybXNbMF0pO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgeyBhbGxvd1NpZ25hbFdyaXRlczogdHJ1ZSB9XG4gICAgKTtcblxuICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICB0aGlzLmNoYXJ0LmRhdGEubGFiZWxzID0gdGhpcy5sYWJlbHMoKTtcbiAgICAgIHRoaXMuY2hhcnQuZGF0YS5kYXRhc2V0cyA9IHRoaXMuZGF0YXNldHMoKTtcbiAgICAgIHRoaXMuY2hhcnQudXBkYXRlKCk7XG4gICAgfSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICByZXR1cm4gdGhpcy5jaGFydCAmJiB0aGlzLmNoYXJ0LmRlc3Ryb3koKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBzZWxlY3RUZXJtKHsgdGFyZ2V0OiB7IHZhbHVlIH0gfSkge1xuICAgIGNvbnN0IHRlcm0gPSB0aGlzLnRlcm1zKCkuZmluZCh0ZXJtID0+IHRlcm1bJ0BpZCddID09PSB2YWx1ZSk7XG4gICAgdGhpcy5zZWxlY3RlZFRlcm0uc2V0KHRlcm0pO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwicC0zXCIgW2NsYXNzLmlzLWhpZGRlbl09XCIhdGVybXMoKT8ubGVuZ3RoXCI+XG4gIDxkaXYgY2xhc3M9XCJmaWVsZCBoYXMtYWRkb25zIHB0LTIgcHgtM1wiPlxuICAgIDxkaXYgY2xhc3M9XCJjb250cm9sXCI+XG4gICAgICA8c3BhbiBjbGFzcz1cImJ1dHRvbiBpcy1zbWFsbCBpcy1zdGF0aWMgaXMtc2Vjb25kYXJ5XCI+U2VsZWN0IGFuIEluZGljYXRvcjwvc3Bhbj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiY29udHJvbCBpcy1leHBhbmRlZFwiPlxuICAgICAgPGRpdiBjbGFzcz1cInNlbGVjdCBpcy1zbWFsbCBpcy1mdWxsd2lkdGggaXMtc2Vjb25kYXJ5XCI+XG4gICAgICAgIDxzZWxlY3QgKGNoYW5nZSk9XCJzZWxlY3RUZXJtKCRldmVudClcIj5cbiAgICAgICAgICBAZm9yICh0ZXJtIG9mIHRlcm1zKCk7IHRyYWNrIHRlcm0pIHtcbiAgICAgICAgICAgIDxvcHRpb24gW3ZhbHVlXT1cInRlcm1bJ0BpZCddXCI+e3sgdGVybS5uYW1lIH19ICh7eyB0ZXJtLnVuaXRzIH19KTwvb3B0aW9uPlxuICAgICAgICAgIH1cbiAgICAgICAgPC9zZWxlY3Q+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cIm10LTFcIj5cbiAgICA8ZGl2IGNsYXNzPVwiY2hhcnQtY29udGFpbmVyXCI+XG4gICAgICA8Y2FudmFzICNjaGFydD48L2NhbnZhcz5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==