@sd-angular/core 1.3.115 → 1.3.116

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.
@@ -492,8 +492,9 @@ export class SdChart {
492
492
  },
493
493
  scaleLabel: {
494
494
  display: !!option.yTitle,
495
- labelString: option.yTitle || ''
496
- }
495
+ labelString: option.yTitle || '',
496
+ },
497
+ stacked: !!option.yStacked,
497
498
  }];
498
499
  if (option.datasets.some(e => e.yAlign === 'right')) {
499
500
  yAxes.push({
@@ -512,7 +513,8 @@ export class SdChart {
512
513
  scaleLabel: {
513
514
  display: !!option.yRightTitle,
514
515
  labelString: option.yRightTitle || ''
515
- }
516
+ },
517
+ stacked: !!option.yStacked,
516
518
  });
517
519
  }
518
520
  const configuration = {
@@ -539,6 +541,7 @@ export class SdChart {
539
541
  return ((_a = option.ticks) === null || _a === void 0 ? void 0 : _a.xLabel(value, index)) || (Number.isNumber(value) ? Number.toVNCurrency(value) : value);
540
542
  }
541
543
  },
544
+ stacked: !!option.xStacked
542
545
  }],
543
546
  yAxes
544
547
  },
@@ -561,7 +564,7 @@ export class SdChart {
561
564
  data: {
562
565
  labels: option.labels,
563
566
  datasets: option.datasets.map((e, idx) => {
564
- var _a, _b, _c, _d, _e, _f, _g, _h, _j;
567
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
565
568
  const dynamicColor = this.dynamicColor;
566
569
  const result = {
567
570
  type: e.type,
@@ -571,10 +574,11 @@ export class SdChart {
571
574
  borderColor: e.borderColor || ((_j = (_h = (_g = this.chartConfiguration) === null || _g === void 0 ? void 0 : _g.defaultColors) === null || _h === void 0 ? void 0 : _h[idx]) === null || _j === void 0 ? void 0 : _j.borderColor) || dynamicColor,
572
575
  data: e.data,
573
576
  yAxisID: e.yAlign === 'right' ? rightId : leftId,
574
- lineTension: 0
577
+ lineTension: 0,
578
+ order: (_k = e.order) !== null && _k !== void 0 ? _k : 1
575
579
  };
576
580
  return result;
577
- })
581
+ }),
578
582
  }
579
583
  };
580
584
  if (option.hover === 'ShowAll') {
@@ -609,4 +613,4 @@ SdChart.propDecorators = {
609
613
  chartAxisRef: [{ type: ViewChild, args: ['chartAxis',] }],
610
614
  chartAreaWrapperExtendRef: [{ type: ViewChild, args: ['chartAreaWrapperExtend',] }]
611
615
  };
612
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IkM6L1VzZXJzL25naGlhdHQxNV9vbmVtb3VudC9Eb2N1bWVudHMvbGliLWNvcmUtdWkvcHJvamVjdHMvc2QtY29yZS9jaGFydC8iLCJzb3VyY2VzIjpbInNyYy9saWIvY2hhcnQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUF5QixTQUFTLEVBQWMsS0FBSyxFQUFFLGlCQUFpQixFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEksT0FBTyxLQUFLLEtBQUssTUFBTSxVQUFVLENBQUM7QUFDbEMsT0FBTyxFQVNMLFlBQVksRUFDYixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLENBQUMsTUFBTSxRQUFRLENBQUM7QUFDdkIsT0FBTyxLQUFLLElBQUksTUFBTSxNQUFNLENBQUM7QUFPN0IsTUFBTSxPQUFPLE9BQU87SUFxQmxCLFlBQ1UsR0FBc0IsRUFDWSxrQkFBdUM7UUFEekUsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFDWSx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQXFCO1FBdEIzRSxnQkFBVyxHQUFHLEtBQUssQ0FBQztRQUU1QixjQUFTLEdBQUcsS0FBSyxDQUFDO1FBY2xCLFlBQU8sR0FBRyxJQUFJLENBQUM7UUFDZixXQUFNLEdBQUcsT0FBTyxDQUFDO1FBNmxCakIsaUJBQVksR0FBRyxHQUFHLEVBQUU7WUFDbEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFDeEIsQ0FBQyxDQUFBO0lBeGxCRCxDQUFDO0lBcEJELElBQWEsV0FBVyxDQUFDLFdBQTBCO1FBQ2pELElBQUksQ0FBQyxZQUFZLEdBQUcsV0FBVyxDQUFDO1FBQ2hDLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUNwQixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7U0FDcEI7SUFDSCxDQUFDO0lBaUJELFFBQVE7SUFDUixDQUFD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QUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxHQUFHLENBQUMsQ0FBQztRQUMxQyxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxHQUFHLENBQUMsQ0FBQztRQUMxQyxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxHQUFHLENBQUMsQ0FBQztRQUMxQyxPQUFPLE1BQU0sR0FBRyxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQztJQUM5QyxDQUFDOzs7WUE3bkJGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsVUFBVTtnQkFDcEIsaWZBQXFDOzthQUV0Qzs7O1lBcEJ3RSxpQkFBaUI7NENBNENyRixRQUFRLFlBQUksTUFBTSxTQUFDLFlBQVk7OzswQkFsQmpDLEtBQUs7dUJBT0wsU0FBUyxTQUFDLE9BQU87OEJBQ2pCLFNBQVMsU0FBQyxjQUFjOzJCQUN4QixTQUFTLFNBQUMsV0FBVzt3Q0FDckIsU0FBUyxTQUFDLHdCQUF3QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBBZnRlclZpZXdJbml0LCBWaWV3Q2hpbGQsIEVsZW1lbnRSZWYsIElucHV0LCBDaGFuZ2VEZXRlY3RvclJlZiwgT3B0aW9uYWwsIEluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgKiBhcyBDaGFydCBmcm9tICdjaGFydC5qcyc7XHJcbmltcG9ydCB7XHJcbiAgU2RDaGFydE9wdGlvbixcclxuICBCYXJDaGFydE9wdGlvbixcclxuICBMaW5lQ2hhcnRPcHRpb24sXHJcbiAgUGllQ2hhcnRPcHRpb24sXHJcbiAgQmFyTGluZUNoYXJ0T3B0aW9uLFxyXG4gIFN0YWNrQXJlYUNoYXJ0T3B0aW9uLFxyXG4gIEhvcml6b250YWxCYXJDaGFydE9wdGlvbixcclxuICBJQ2hhcnRDb25maWd1cmF0aW9uLFxyXG4gIENIQVJUX0NPTkZJR1xyXG59IGZyb20gJy4vY2hhcnQubW9kZWwnO1xyXG5pbXBvcnQgJCBmcm9tICdqcXVlcnknO1xyXG5pbXBvcnQgKiBhcyB1dWlkIGZyb20gJ3V1aWQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdzZC1jaGFydCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2NoYXJ0LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9jaGFydC5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTZENoYXJ0IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcclxuICBwcml2YXRlIGluaXRpYWxpemVkID0gZmFsc2U7XHJcbiAgcHJpdmF0ZSBwQ2hhcnRPcHRpb246IFNkQ2hhcnRPcHRpb247XHJcbiAgaXNMb2FkaW5nID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpIHNldCBjaGFydE9wdGlvbihjaGFydE9wdGlvbjogU2RDaGFydE9wdGlvbikge1xyXG4gICAgdGhpcy5wQ2hhcnRPcHRpb24gPSBjaGFydE9wdGlvbjtcclxuICAgIGlmICh0aGlzLmluaXRpYWxpemVkKSB7XHJcbiAgICAgIHRoaXMucmVuZGVyQ2hhcnQoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ2NoYXJ0JykgY2hhcnRSZWY6IEVsZW1lbnRSZWY7XHJcbiAgQFZpZXdDaGlsZCgnY2hhcnRXcmFwcGVyJykgY2hhcnRXcmFwcGVyUmVmOiBFbGVtZW50UmVmO1xyXG4gIEBWaWV3Q2hpbGQoJ2NoYXJ0QXhpcycpIGNoYXJ0QXhpc1JlZjogRWxlbWVudFJlZjtcclxuICBAVmlld0NoaWxkKCdjaGFydEFyZWFXcmFwcGVyRXh0ZW5kJykgY2hhcnRBcmVhV3JhcHBlckV4dGVuZFJlZjogRWxlbWVudFJlZjtcclxuICBjaGFydDogQ2hhcnQ7XHJcbiAgdmlzaWJsZSA9IHRydWU7XHJcbiAgaGVpZ2h0ID0gJzMwMHB4JztcclxuICBwcml2YXRlIGN0eDogQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgcmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoQ0hBUlRfQ09ORklHKSBwcml2YXRlIGNoYXJ0Q29uZmlndXJhdGlvbjogSUNoYXJ0Q29uZmlndXJhdGlvblxyXG4gICkge1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICB0aGlzLnJlbmRlckNoYXJ0KHRydWUpO1xyXG4gICAgdGhpcy5pbml0aWFsaXplZCA9IHRydWU7XHJcbiAgICB0aGlzLnJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFzeW5jIHJlbmRlckNoYXJ0KGZpcnN0UmVuZGVyPzogYm9vbGVhbikge1xyXG4gICAgdGhpcy5oZWlnaHQgPSB0aGlzLnBDaGFydE9wdGlvbj8uaGVpZ2h0IHx8ICczMDBweCc7XHJcbiAgICBpZiAoIWZpcnN0UmVuZGVyKSB7XHJcbiAgICAgIHRoaXMudmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgICBhd2FpdCBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHNldFRpbWVvdXQocmVzb2x2ZSwgMjAwKSk7XHJcbiAgICAgIHRoaXMudmlzaWJsZSA9IHRydWU7XHJcbiAgICB9XHJcbiAgICBhd2FpdCBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHNldFRpbWVvdXQocmVzb2x2ZSwgMjAwKSk7XHJcbiAgICBpZiAodGhpcy5jaGFydFJlZj8ubmF0aXZlRWxlbWVudCkge1xyXG4gICAgICBjb25zdCBjYW52YXMgPSB0aGlzLmNoYXJ0UmVmLm5hdGl2ZUVsZW1lbnQgYXMgSFRNTENhbnZhc0VsZW1lbnQ7XHJcbiAgICAgIHRoaXMuY3R4ID0gY2FudmFzLmdldENvbnRleHQoJzJkJyk7XHJcbiAgICAgIHN3aXRjaCAodGhpcy5wQ2hhcnRPcHRpb24udHlwZSkge1xyXG4gICAgICAgIGNhc2UgJ3BpZSc6XHJcbiAgICAgICAgICB0aGlzLnJlbmRlclBpZUNoYXJ0KHRoaXMucENoYXJ0T3B0aW9uKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgJ2Jhcic6XHJcbiAgICAgICAgICB0aGlzLnJlbmRlckJhckNoYXJ0KHRoaXMucENoYXJ0T3B0aW9uKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgJ2hvcml6b250YWxCYXInOlxyXG4gICAgICAgICAgdGhpcy5yZW5kZXJIb3Jpem9udGFsQmFyQ2hhcnQodGhpcy5wQ2hhcnRPcHRpb24pO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAnbGluZSc6XHJcbiAgICAgICAgICB0aGlzLnJlbmRlckxpbmVDaGFydCh0aGlzLnBDaGFydE9wdGlvbik7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlICdzdGFja0FyZWEnOlxyXG4gICAgICAgICAgdGhpcy5yZW5kZXJTdGFja0FyZWFDaGFydCh0aGlzLnBDaGFydE9wdGlvbik7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlICdiYXJsaW5lJzpcclxuICAgICAgICAgIHRoaXMucmVuZGVyQmFyTGluZUNoYXJ0KHRoaXMucENoYXJ0T3B0aW9uKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSByZW5kZXJQaWVDaGFydChvcHRpb246IFBpZUNoYXJ0T3B0aW9uKSB7XHJcbiAgICBjb25zdCBjb25maWd1cmF0aW9uOiBDaGFydC5DaGFydENvbmZpZ3VyYXRpb24gPSB7XHJcbiAgICAgIHR5cGU6ICdwaWUnLFxyXG4gICAgICBvcHRpb25zOiB7XHJcbiAgICAgICAgcmVzcG9uc2l2ZTogdHJ1ZSxcclxuICAgICAgICB0aXRsZToge1xyXG4gICAgICAgICAgZGlzcGxheTogdHJ1ZSxcclxuICAgICAgICAgIHRleHQ6IG9wdGlvbi50aXRsZVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgbGVnZW5kOiB7XHJcbiAgICAgICAgICBkaXNwbGF5OiAhb3B0aW9uLmhpZGVMZWdlbmRcclxuICAgICAgICB9LFxyXG4gICAgICAgIHRvb2x0aXBzOiB7XHJcbiAgICAgICAgICBjYWxsYmFja3M6IHtcclxuICAgICAgICAgICAgbGFiZWw6ICh0b29sdGlwSXRlbSwgZGF0YSkgPT4ge1xyXG4gICAgICAgICAgICAgIGNvbnN0IGRhdGFzZXRMYWJlbCA9IGRhdGE/LmRhdGFzZXRzW3Rvb2x0aXBJdGVtLmRhdGFzZXRJbmRleF0/LmxhYmVsO1xyXG4gICAgICAgICAgICAgIGNvbnN0IGxhYmVsID0gZGF0YT8ubGFiZWxzW3Rvb2x0aXBJdGVtLmluZGV4XSBhcyBzdHJpbmc7XHJcbiAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBkYXRhPy5kYXRhc2V0c1t0b29sdGlwSXRlbS5kYXRhc2V0SW5kZXhdPy5kYXRhW3Rvb2x0aXBJdGVtLmluZGV4XSBhcyBudW1iZXI7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIG9wdGlvbi50b29sdGlwcz8ubGFiZWwoe1xyXG4gICAgICAgICAgICAgICAgZGF0YXNldExhYmVsLFxyXG4gICAgICAgICAgICAgICAgbGFiZWwsXHJcbiAgICAgICAgICAgICAgICB2YWx1ZVxyXG4gICAgICAgICAgICAgIH0pIHx8IGAke2RhdGFzZXRMYWJlbCA/IGBbJHtkYXRhc2V0TGFiZWx9XSBgIDogJyd9JHtsYWJlbH0gOiAke051bWJlci50b1ZOQ3VycmVuY3kodmFsdWUpfWA7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIGRhdGE6IHtcclxuICAgICAgICBsYWJlbHM6IG9wdGlvbi5kYXRhc2V0cz8ubWFwKGUgPT4gZS5sYWJlbCkgfHwgW10sXHJcbiAgICAgICAgZGF0YXNldHM6IFt7XHJcbiAgICAgICAgICBkYXRhOiBvcHRpb24uZGF0YXNldHM/Lm1hcChlID0+IGUudmFsdWUpIHx8IFtdLFxyXG4gICAgICAgICAgYmFja2dyb3VuZENvbG9yOiBvcHRpb24uZGF0YXNldHM/Lm1hcCgoZSwgaWR4KSA9PiBlLmJhY2tncm91bmRDb2xvclxyXG4gICAgICAgICAgICB8fCB0aGlzLmNoYXJ0Q29uZmlndXJhdGlvbj8uZGVmYXVsdENvbG9ycz8uW2lkeF0/LmJhY2tncm91bmRDb2xvclxyXG4gICAgICAgICAgICB8fCB0aGlzLmR5bmFtaWNDb2xvcikgfHwgW11cclxuICAgICAgICB9XVxyXG4gICAgICB9XHJcbiAgICB9O1xyXG5cclxuICAgIGlmIChvcHRpb24uaG92ZXIgPT09ICdTaG93QWxsJykge1xyXG4gICAgICBjb25maWd1cmF0aW9uLm9wdGlvbnMudG9vbHRpcHMgPSB7XHJcbiAgICAgICAgLi4uY29uZmlndXJhdGlvbi5vcHRpb25zLnRvb2x0aXBzLFxyXG4gICAgICAgIG1vZGU6ICdpbmRleCcsXHJcbiAgICAgICAgaW50ZXJzZWN0OiBmYWxzZVxyXG4gICAgICB9O1xyXG4gICAgICBjb25maWd1cmF0aW9uLm9wdGlvbnMuaG92ZXIgPSB7XHJcbiAgICAgICAgLi4uY29uZmlndXJhdGlvbi5vcHRpb25zLmhvdmVyLFxyXG4gICAgICAgIG1vZGU6ICdpbmRleCcsXHJcbiAgICAgICAgaW50ZXJzZWN0OiBmYWxzZVxyXG4gICAgICB9O1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuY2hhcnQgPSBuZXcgQ2hhcnQodGhpcy5jdHgsIGNvbmZpZ3VyYXRpb24pO1xyXG4gICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgcmVuZGVyQmFyQ2hhcnQob3B0aW9uOiBCYXJDaGFydE9wdGlvbikge1xyXG4gICAgY29uc3QgbGFiZWxXaWR0aCA9IG9wdGlvbi5sYWJlbFdpZHRoID8/IDUwO1xyXG4gICAgaWYgKG9wdGlvbi5kYXRhc2V0cy5sZW5ndGgpIHtcclxuICAgICAgLy8gY29uc3QgbmV3d2lkdGggPSBNYXRoLm1heChvcHRpb24ubGFiZWxzLmxlbmd0aCAqIG9wdGlvbi5kYXRhc2V0cy5sZW5ndGggKiBsYWJlbFdpZHRoLCAkKHRoaXMuY2hhcnRXcmFwcGVyUmVmLm5hdGl2ZUVsZW1lbnQpLndpZHRoKCkpO1xyXG4gICAgICAvLyAkKHRoaXMuY2hhcnRBcmVhV3JhcHBlckV4dGVuZFJlZi5uYXRpdmVFbGVtZW50KS53aWR0aChuZXd3aWR0aCk7XHJcbiAgICAgIGNvbnN0IG5ld3dpZHRoID0gb3B0aW9uLmxhYmVscy5sZW5ndGggKiBvcHRpb24uZGF0YXNldHMubGVuZ3RoICogbGFiZWxXaWR0aDtcclxuICAgICAgJCh0aGlzLmNoYXJ0QXJlYVdyYXBwZXJFeHRlbmRSZWYubmF0aXZlRWxlbWVudCkuY3NzKCd3aWR0aCcsIGBtYXgoMTAwJSwke25ld3dpZHRofXB4KWApO1xyXG4gICAgfVxyXG4gICAgY29uc3QgY29uZmlndXJhdGlvbjogQ2hhcnQuQ2hhcnRDb25maWd1cmF0aW9uID0ge1xyXG4gICAgICBvcHRpb25zOiB7XHJcbiAgICAgICAgcmVzcG9uc2l2ZTogdHJ1ZSxcclxuICAgICAgICBtYWludGFpbkFzcGVjdFJhdGlvOiBmYWxzZSxcclxuICAgICAgICBsZWdlbmQ6IHtcclxuICAgICAgICAgIGRpc3BsYXk6ICFvcHRpb24uaGlkZUxlZ2VuZFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgc2NhbGVzOiB7XHJcbiAgICAgICAgICB4QXhlczogW3tcclxuICAgICAgICAgICAgZGlzcGxheTogdHJ1ZSxcclxuICAgICAgICAgICAgc2NhbGVMYWJlbDoge1xyXG4gICAgICAgICAgICAgIGRpc3BsYXk6ICEhb3B0aW9uLnhUaXRsZSxcclxuICAgICAgICAgICAgICBsYWJlbFN0cmluZzogb3B0aW9uLnhUaXRsZSB8fCAnJ1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB0aWNrczoge1xyXG4gICAgICAgICAgICAgIGNhbGxiYWNrOiAodmFsdWU6IG51bWJlciB8IHN0cmluZywgaW5kZXg6IG51bWJlcikgPT4ge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIG9wdGlvbi50aWNrcz8ueExhYmVsKHZhbHVlLCBpbmRleCkgfHwgKE51bWJlci5pc051bWJlcih2YWx1ZSkgPyBOdW1iZXIudG9WTkN1cnJlbmN5KHZhbHVlKSA6IHZhbHVlKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1dLFxyXG4gICAgICAgICAgeUF4ZXM6IFt7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IHRydWUsXHJcbiAgICAgICAgICAgIHRpY2tzOiB7XHJcbiAgICAgICAgICAgICAgYmVnaW5BdFplcm86IG9wdGlvbi5iZWdpbkF0WmVybyA/PyB0cnVlLFxyXG4gICAgICAgICAgICAgIGNhbGxiYWNrOiAodmFsdWU6IG51bWJlciB8IHN0cmluZywgaW5kZXg6IG51bWJlcikgPT4ge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIG9wdGlvbi50aWNrcz8ueUxhYmVsKHZhbHVlLCBpbmRleCkgfHwgKE51bWJlci5pc051bWJlcih2YWx1ZSkgPyBOdW1iZXIudG9WTkN1cnJlbmN5KHZhbHVlKSA6IHZhbHVlKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHNjYWxlTGFiZWw6IHtcclxuICAgICAgICAgICAgICBkaXNwbGF5OiAhIW9wdGlvbi55VGl0bGUsXHJcbiAgICAgICAgICAgICAgbGFiZWxTdHJpbmc6IG9wdGlvbi55VGl0bGUgfHwgJydcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfV1cclxuICAgICAgICB9LFxyXG4gICAgICAgIHRvb2x0aXBzOiB7XHJcbiAgICAgICAgICBjYWxsYmFja3M6IHtcclxuICAgICAgICAgICAgbGFiZWw6ICh0b29sdGlwSXRlbSwgZGF0YSkgPT4ge1xyXG4gICAgICAgICAgICAgIGNvbnN0IGRhdGFzZXRMYWJlbCA9IGRhdGE/LmRhdGFzZXRzW3Rvb2x0aXBJdGVtLmRhdGFzZXRJbmRleF0/LmxhYmVsO1xyXG4gICAgICAgICAgICAgIGNvbnN0IGxhYmVsID0gZGF0YT8ubGFiZWxzW3Rvb2x0aXBJdGVtLmluZGV4XSBhcyBzdHJpbmc7XHJcbiAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBkYXRhPy5kYXRhc2V0c1t0b29sdGlwSXRlbS5kYXRhc2V0SW5kZXhdPy5kYXRhW3Rvb2x0aXBJdGVtLmluZGV4XSBhcyBudW1iZXI7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIG9wdGlvbi50b29sdGlwcz8ubGFiZWwoe1xyXG4gICAgICAgICAgICAgICAgZGF0YXNldExhYmVsLFxyXG4gICAgICAgICAgICAgICAgbGFiZWwsXHJcbiAgICAgICAgICAgICAgICB2YWx1ZVxyXG4gICAgICAgICAgICAgIH0pIHx8IGAke2RhdGFzZXRMYWJlbH0gOiAke051bWJlci50b1ZOQ3VycmVuY3kodmFsdWUpfWA7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIHR5cGU6ICdiYXInLFxyXG4gICAgICBkYXRhOiB7XHJcbiAgICAgICAgbGFiZWxzOiBvcHRpb24ubGFiZWxzLFxyXG4gICAgICAgIGRhdGFzZXRzOiBvcHRpb24uZGF0YXNldHMubWFwKChlLCBpZHgpID0+IHtcclxuICAgICAgICAgIGNvbnN0IGR5bmFtaWNDb2xvciA9IHRoaXMuZHluYW1pY0NvbG9yO1xyXG4gICAgICAgICAgY29uc3QgcmVzdWx0OiBDaGFydC5DaGFydERhdGFTZXRzID0ge1xyXG4gICAgICAgICAgICBsYWJlbDogZS5sYWJlbCxcclxuICAgICAgICAgICAgZmlsbDogZS5iYWNrZ3JvdW5kQ29sb3IgfHwgdGhpcy5jaGFydENvbmZpZ3VyYXRpb24/LmRlZmF1bHRDb2xvcnM/LltpZHhdPy5iYWNrZ3JvdW5kQ29sb3IgfHwgZHluYW1pY0NvbG9yLFxyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IGUuYmFja2dyb3VuZENvbG9yIHx8IHRoaXMuY2hhcnRDb25maWd1cmF0aW9uPy5kZWZhdWx0Q29sb3JzPy5baWR4XT8uYmFja2dyb3VuZENvbG9yIHx8IGR5bmFtaWNDb2xvcixcclxuICAgICAgICAgICAgZGF0YTogZS5kYXRhLFxyXG4gICAgICAgICAgICBzdGFjazogZS5zdGFja1xyXG4gICAgICAgICAgfTtcclxuICAgICAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICAgICAgfSlcclxuICAgICAgfVxyXG4gICAgfTtcclxuXHJcbiAgICBpZiAob3B0aW9uLmhvdmVyID09PSAnU2hvd0FsbCcpIHtcclxuICAgICAgY29uZmlndXJhdGlvbi5vcHRpb25zLnRvb2x0aXBzID0ge1xyXG4gICAgICAgIC4uLmNvbmZpZ3VyYXRpb24ub3B0aW9ucy50b29sdGlwcyxcclxuICAgICAgICBtb2RlOiAnaW5kZXgnLFxyXG4gICAgICAgIGludGVyc2VjdDogZmFsc2VcclxuICAgICAgfTtcclxuICAgICAgY29uZmlndXJhdGlvbi5vcHRpb25zLmhvdmVyID0ge1xyXG4gICAgICAgIC4uLmNvbmZpZ3VyYXRpb24ub3B0aW9ucy5ob3ZlcixcclxuICAgICAgICBtb2RlOiAnaW5kZXgnLFxyXG4gICAgICAgIGludGVyc2VjdDogZmFsc2VcclxuICAgICAgfTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmNoYXJ0ID0gbmV3IENoYXJ0KHRoaXMuY3R4LCBjb25maWd1cmF0aW9uKTtcclxuICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHJlbmRlckhvcml6b250YWxCYXJDaGFydChvcHRpb246IEhvcml6b250YWxCYXJDaGFydE9wdGlvbikge1xyXG4gICAgLy8gY29uc3QgbGFiZWxXaWR0aCA9IG9wdGlvbi5sYWJlbFdpZHRoID8/IDUwO1xyXG4gICAgLy8gaWYgKG9wdGlvbi5kYXRhc2V0cy5sZW5ndGgpIHtcclxuICAgIC8vICAgY29uc3QgbmV3d2lkdGggPSBNYXRoLm1heChvcHRpb24ubGFiZWxzLmxlbmd0aCAqIG9wdGlvbi5kYXRhc2V0cy5sZW5ndGggKiBsYWJlbFdpZHRoLCAkKHRoaXMuY2hhcnRXcmFwcGVyUmVmLm5hdGl2ZUVsZW1lbnQpLndpZHRoKCkpO1xyXG4gICAgLy8gICAkKHRoaXMuY2hhcnRBcmVhV3JhcHBlckV4dGVuZFJlZi5uYXRpdmVFbGVtZW50KS53aWR0aChuZXd3aWR0aCk7XHJcbiAgICAvLyB9XHJcbiAgICBjb25zdCBjb25maWd1cmF0aW9uOiBDaGFydC5DaGFydENvbmZpZ3VyYXRpb24gPSB7XHJcbiAgICAgIG9wdGlvbnM6IHtcclxuICAgICAgICByZXNwb25zaXZlOiB0cnVlLFxyXG4gICAgICAgIG1haW50YWluQXNwZWN0UmF0aW86IGZhbHNlLFxyXG4gICAgICAgIGxlZ2VuZDoge1xyXG4gICAgICAgICAgZGlzcGxheTogIW9wdGlvbi5oaWRlTGVnZW5kXHJcbiAgICAgICAgfSxcclxuICAgICAgICBzY2FsZXM6IHtcclxuICAgICAgICAgIHhBeGVzOiBbe1xyXG4gICAgICAgICAgICBkaXNwbGF5OiB0cnVlLFxyXG4gICAgICAgICAgICBzY2FsZUxhYmVsOiB7XHJcbiAgICAgICAgICAgICAgZGlzcGxheTogISFvcHRpb24ueFRpdGxlLFxyXG4gICAgICAgICAgICAgIGxhYmVsU3RyaW5nOiBvcHRpb24ueFRpdGxlIHx8ICcnXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHRpY2tzOiB7XHJcbiAgICAgICAgICAgICAgYmVnaW5BdFplcm86IG9wdGlvbi5iZWdpbkF0WmVybyA/PyB0cnVlLFxyXG4gICAgICAgICAgICAgIGNhbGxiYWNrOiAodmFsdWU6IG51bWJlciB8IHN0cmluZywgaW5kZXg6IG51bWJlcikgPT4ge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIG9wdGlvbi50aWNrcz8ueExhYmVsKHZhbHVlLCBpbmRleCkgfHwgKE51bWJlci5pc051bWJlcih2YWx1ZSkgPyBOdW1iZXIudG9WTkN1cnJlbmN5KHZhbHVlKSA6IHZhbHVlKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1dLFxyXG4gICAgICAgICAgeUF4ZXM6IFt7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IHRydWUsXHJcbiAgICAgICAgICAgIHRpY2tzOiB7XHJcbiAgICAgICAgICAgICAgY2FsbGJhY2s6ICh2YWx1ZTogbnVtYmVyIHwgc3RyaW5nLCBpbmRleDogbnVtYmVyKSA9PiB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gb3B0aW9uLnRpY2tzPy55TGFiZWwodmFsdWUsIGluZGV4KSB8fCAoTnVtYmVyLmlzTnVtYmVyKHZhbHVlKSA/IE51bWJlci50b1ZOQ3VycmVuY3kodmFsdWUpIDogdmFsdWUpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgc2NhbGVMYWJlbDoge1xyXG4gICAgICAgICAgICAgIGRpc3BsYXk6ICEhb3B0aW9uLnlUaXRsZSxcclxuICAgICAgICAgICAgICBsYWJlbFN0cmluZzogb3B0aW9uLnlUaXRsZSB8fCAnJ1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgdG9vbHRpcHM6IHtcclxuICAgICAgICAgIGNhbGxiYWNrczoge1xyXG4gICAgICAgICAgICBsYWJlbDogKHRvb2x0aXBJdGVtLCBkYXRhKSA9PiB7XHJcbiAgICAgICAgICAgICAgY29uc3QgZGF0YXNldExhYmVsID0gZGF0YT8uZGF0YXNldHNbdG9vbHRpcEl0ZW0uZGF0YXNldEluZGV4XT8ubGFiZWw7XHJcbiAgICAgICAgICAgICAgY29uc3QgbGFiZWwgPSBkYXRhPy5sYWJlbHNbdG9vbHRpcEl0ZW0uaW5kZXhdIGFzIHN0cmluZztcclxuICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9IGRhdGE/LmRhdGFzZXRzW3Rvb2x0aXBJdGVtLmRhdGFzZXRJbmRleF0/LmRhdGFbdG9vbHRpcEl0ZW0uaW5kZXhdIGFzIG51bWJlcjtcclxuICAgICAgICAgICAgICByZXR1cm4gb3B0aW9uLnRvb2x0aXBzPy5sYWJlbCh7XHJcbiAgICAgICAgICAgICAgICBkYXRhc2V0TGFiZWwsXHJcbiAgICAgICAgICAgICAgICBsYWJlbCxcclxuICAgICAgICAgICAgICAgIHZhbHVlXHJcbiAgICAgICAgICAgICAgfSkgfHwgYCR7ZGF0YXNldExhYmVsfSA6ICR7TnVtYmVyLnRvVk5DdXJyZW5jeSh2YWx1ZSl9YDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAgdHlwZTogJ2hvcml6b250YWxCYXInLFxyXG4gICAgICBkYXRhOiB7XHJcbiAgICAgICAgbGFiZWxzOiBvcHRpb24ubGFiZWxzLFxyXG4gICAgICAgIGRhdGFzZXRzOiBvcHRpb24uZGF0YXNldHMubWFwKChlLCBpZHgpID0+IHtcclxuICAgICAgICAgIGNvbnN0IGR5bmFtaWNDb2xvciA9IHRoaXMuZHluYW1pY0NvbG9yO1xyXG4gICAgICAgICAgY29uc3QgcmVzdWx0OiBDaGFydC5DaGFydERhdGFTZXRzID0ge1xyXG4gICAgICAgICAgICBsYWJlbDogZS5sYWJlbCxcclxuICAgICAgICAgICAgZmlsbDogZS5iYWNrZ3JvdW5kQ29sb3IgfHwgdGhpcy5jaGFydENvbmZpZ3VyYXRpb24/LmRlZmF1bHRDb2xvcnM/LltpZHhdPy5iYWNrZ3JvdW5kQ29sb3IgfHwgZHluYW1pY0NvbG9yLFxyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IGUuYmFja2dyb3VuZENvbG9yIHx8IHRoaXMuY2hhcnRDb25maWd1cmF0aW9uPy5kZWZhdWx0Q29sb3JzPy5baWR4XT8uYmFja2dyb3VuZENvbG9yIHx8IGR5bmFtaWNDb2xvcixcclxuICAgICAgICAgICAgZGF0YTogZS5kYXRhLFxyXG4gICAgICAgICAgICBzdGFjazogZS5zdGFja1xyXG4gICAgICAgICAgfTtcclxuICAgICAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICAgICAgfSlcclxuICAgICAgfVxyXG4gICAgfTtcclxuXHJcbiAgICBpZiAob3B0aW9uLmhvdmVyID09PSAnU2hvd0FsbCcpIHtcclxuICAgICAgY29uZmlndXJhdGlvbi5vcHRpb25zLnRvb2x0aXBzID0ge1xyXG4gICAgICAgIC4uLmNvbmZpZ3VyYXRpb24ub3B0aW9ucy50b29sdGlwcyxcclxuICAgICAgICBtb2RlOiAnaW5kZXgnLFxyXG4gICAgICAgIGludGVyc2VjdDogZmFsc2VcclxuICAgICAgfTtcclxuICAgICAgY29uZmlndXJhdGlvbi5vcHRpb25zLmhvdmVyID0ge1xyXG4gICAgICAgIC4uLmNvbmZpZ3VyYXRpb24ub3B0aW9ucy5ob3ZlcixcclxuICAgICAgICBtb2RlOiAnaW5kZXgnLFxyXG4gICAgICAgIGludGVyc2VjdDogZmFsc2VcclxuICAgICAgfTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmNoYXJ0ID0gbmV3IENoYXJ0KHRoaXMuY3R4LCBjb25maWd1cmF0aW9uKTtcclxuICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHJlbmRlckxpbmVDaGFydChvcHRpb246IExpbmVDaGFydE9wdGlvbikge1xyXG4gICAgY29uc3QgbGFiZWxXaWR0aCA9IG9wdGlvbi5sYWJlbFdpZHRoID8/IDUwO1xyXG4gICAgaWYgKG9wdGlvbi5kYXRhc2V0cy5sZW5ndGgpIHtcclxuICAgICAgLy8gY29uc3QgbmV3d2lkdGggPSBNYXRoLm1heChvcHRpb24ubGFiZWxzLmxlbmd0aCAqIGxhYmVsV2lkdGgsICQodGhpcy5jaGFydFdyYXBwZXJSZWYubmF0aXZlRWxlbWVudCkud2lkdGgoKSk7XHJcbiAgICAgIC8vICQodGhpcy5jaGFydEFyZWFXcmFwcGVyRXh0ZW5kUmVmLm5hdGl2ZUVsZW1lbnQpLndpZHRoKG5ld3dpZHRoKTtcclxuICAgICAgY29uc3QgbmV3d2lkdGggPSBvcHRpb24ubGFiZWxzLmxlbmd0aCAqIGxhYmVsV2lkdGg7XHJcbiAgICAgICQodGhpcy5jaGFydEFyZWFXcmFwcGVyRXh0ZW5kUmVmLm5hdGl2ZUVsZW1lbnQpLmNzcygnd2lkdGgnLCBgbWF4KDEwMCUsJHtuZXd3aWR0aH1weClgKTtcclxuICAgIH1cclxuICAgIGNvbnN0IGNvbmZpZ3VyYXRpb246IENoYXJ0LkNoYXJ0Q29uZmlndXJhdGlvbiA9IHtcclxuICAgICAgb3B0aW9uczoge1xyXG4gICAgICAgIHJlc3BvbnNpdmU6IHRydWUsXHJcbiAgICAgICAgbWFpbnRhaW5Bc3BlY3RSYXRpbzogZmFsc2UsXHJcbiAgICAgICAgbGVnZW5kOiB7XHJcbiAgICAgICAgICBkaXNwbGF5OiAhb3B0aW9uLmhpZGVMZWdlbmRcclxuICAgICAgICB9LFxyXG4gICAgICAgIHNjYWxlczoge1xyXG4gICAgICAgICAgeEF4ZXM6IFt7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IHRydWUsXHJcbiAgICAgICAgICAgIHNjYWxlTGFiZWw6IHtcclxuICAgICAgICAgICAgICBkaXNwbGF5OiAhIW9wdGlvbi54VGl0bGUsXHJcbiAgICAgICAgICAgICAgbGFiZWxTdHJpbmc6IG9wdGlvbi54VGl0bGUgfHwgJydcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgdGlja3M6IHtcclxuICAgICAgICAgICAgICBjYWxsYmFjazogKHZhbHVlOiBudW1iZXIgfCBzdHJpbmcsIGluZGV4OiBudW1iZXIpID0+IHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBvcHRpb24udGlja3M/LnhMYWJlbCh2YWx1ZSwgaW5kZXgpIHx8IChOdW1iZXIuaXNOdW1iZXIodmFsdWUpID8gTnVtYmVyLnRvVk5DdXJyZW5jeSh2YWx1ZSkgOiB2YWx1ZSk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgfV0sXHJcbiAgICAgICAgICB5QXhlczogW3tcclxuICAgICAgICAgICAgZGlzcGxheTogdHJ1ZSxcclxuICAgICAgICAgICAgdGlja3M6IHtcclxuICAgICAgICAgICAgICBiZWdpbkF0WmVybzogb3B0aW9uLmJlZ2luQXRaZXJvID8/IHRydWUsXHJcbiAgICAgICAgICAgICAgY2FsbGJhY2s6ICh2YWx1ZTogbnVtYmVyIHwgc3RyaW5nLCBpbmRleDogbnVtYmVyKSA9PiB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gb3B0aW9uLnRpY2tzPy55TGFiZWwodmFsdWUsIGluZGV4KSB8fCAoTnVtYmVyLmlzTnVtYmVyKHZhbHVlKSA/IE51bWJlci50b1ZOQ3VycmVuY3kodmFsdWUpIDogdmFsdWUpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgc2NhbGVMYWJlbDoge1xyXG4gICAgICAgICAgICAgIGRpc3BsYXk6ICEhb3B0aW9uLnlUaXRsZSxcclxuICAgICAgICAgICAgICBsYWJlbFN0cmluZzogb3B0aW9uLnlUaXRsZSB8fCAnJ1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgdG9vbHRpcHM6IHtcclxuICAgICAgICAgIGNhbGxiYWNrczoge1xyXG4gICAgICAgICAgICBsYWJlbDogKHRvb2x0aXBJdGVtLCBkYXRhKSA9PiB7XHJcbiAgICAgICAgICAgICAgY29uc3QgZGF0YXNldExhYmVsID0gZGF0YT8uZGF0YXNldHNbdG9vbHRpcEl0ZW0uZGF0YXNldEluZGV4XT8ubGFiZWw7XHJcbiAgICAgICAgICAgICAgY29uc3QgbGFiZWwgPSBkYXRhPy5sYWJlbHNbdG9vbHRpcEl0ZW0uaW5kZXhdIGFzIHN0cmluZztcclxuICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9IGRhdGE/LmRhdGFzZXRzW3Rvb2x0aXBJdGVtLmRhdGFzZXRJbmRleF0/LmRhdGFbdG9vbHRpcEl0ZW0uaW5kZXhdIGFzIG51bWJlcjtcclxuICAgICAgICAgICAgICByZXR1cm4gb3B0aW9uLnRvb2x0aXBzPy5sYWJlbCh7XHJcbiAgICAgICAgICAgICAgICBkYXRhc2V0TGFiZWwsXHJcbiAgICAgICAgICAgICAgICBsYWJlbCxcclxuICAgICAgICAgICAgICAgIHZhbHVlXHJcbiAgICAgICAgICAgICAgfSkgfHwgYCR7ZGF0YXNldExhYmVsfSA6ICR7TnVtYmVyLnRvVk5DdXJyZW5jeSh2YWx1ZSl9YDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAgdHlwZTogJ2xpbmUnLFxyXG4gICAgICBkYXRhOiB7XHJcbiAgICAgICAgbGFiZWxzOiBvcHRpb24ubGFiZWxzLFxyXG4gICAgICAgIGRhdGFzZXRzOiBvcHRpb24uZGF0YXNldHMubWFwKChlLCBpZHgpID0+IHtcclxuICAgICAgICAgIGNvbnN0IGR5bmFtaWNDb2xvciA9IHRoaXMuZHluYW1pY0NvbG9yO1xyXG4gICAgICAgICAgY29uc3QgcmVzdWx0OiBDaGFydC5DaGFydERhdGFTZXRzID0ge1xyXG4gICAgICAgICAgICBsYWJlbDogZS5sYWJlbCxcclxuICAgICAgICAgICAgZmlsbDogZS5iYWNrZ3JvdW5kQ29sb3IgfHwgdGhpcy5jaGFydENvbmZpZ3VyYXRpb24/LmRlZmF1bHRDb2xvcnM/LltpZHhdPy5iYWNrZ3JvdW5kQ29sb3IgfHwgZHluYW1pY0NvbG9yLFxyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IGUuYmFja2dyb3VuZENvbG9yIHx8IHRoaXMuY2hhcnRDb25maWd1cmF0aW9uPy5kZWZhdWx0Q29sb3JzPy5baWR4XT8uYmFja2dyb3VuZENvbG9yIHx8IGR5bmFtaWNDb2xvcixcclxuICAgICAgICAgICAgYm9yZGVyQ29sb3I6IGUuYm9yZGVyQ29sb3IgfHwgdGhpcy5jaGFydENvbmZpZ3VyYXRpb24/LmRlZmF1bHRDb2xvcnM/LltpZHhdPy5ib3JkZXJDb2xvciB8fCBkeW5hbWljQ29sb3IsXHJcbiAgICAgICAgICAgIGRhdGE6IGUuZGF0YSxcclxuICAgICAgICAgICAgbGluZVRlbnNpb246IDAsXHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgICAgICB9KVxyXG4gICAgICB9XHJcbiAgICB9O1xyXG5cclxuICAgIGlmIChvcHRpb24uaG92ZXIgPT09ICdTaG93QWxsJykge1xyXG4gICAgICBjb25maWd1cmF0aW9uLm9wdGlvbnMudG9vbHRpcHMgPSB7XHJcbiAgICAgICAgLi4uY29uZmlndXJhdGlvbi5vcHRpb25zLnRvb2x0aXBzLFxyXG4gICAgICAgIG1vZGU6ICdpbmRleCcsXHJcbiAgICAgICAgaW50ZXJzZWN0OiBmYWxzZVxyXG4gICAgICB9O1xyXG4gICAgICBjb25maWd1cmF0aW9uLm9wdGlvbnMuaG92ZXIgPSB7XHJcbiAgICAgICAgLi4uY29uZmlndXJhdGlvbi5vcHRpb25zLmhvdmVyLFxyXG4gICAgICAgIG1vZGU6ICdpbmRleCcsXHJcbiAgICAgICAgaW50ZXJzZWN0OiBmYWxzZVxyXG4gICAgICB9O1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuY2hhcnQgPSBuZXcgQ2hhcnQodGhpcy5jdHgsIGNvbmZpZ3VyYXRpb24pO1xyXG4gICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgcmVuZGVyU3RhY2tBcmVhQ2hhcnQob3B0aW9uOiBTdGFja0FyZWFDaGFydE9wdGlvbikge1xyXG4gICAgY29uc3QgbGFiZWxXaWR0aCA9IG9wdGlvbi5sYWJlbFdpZHRoID8/IDUwO1xyXG4gICAgaWYgKG9wdGlvbi5kYXRhc2V0cy5sZW5ndGgpIHtcclxuICAgICAgLy8gY29uc3QgbmV3d2lkdGggPSBNYXRoLm1heChvcHRpb24ubGFiZWxzLmxlbmd0aCAqIGxhYmVsV2lkdGgsICQodGhpcy5jaGFydFdyYXBwZXJSZWYubmF0aXZlRWxlbWVudCkud2lkdGgoKSk7XHJcbiAgICAgIC8vICQodGhpcy5jaGFydEFyZWFXcmFwcGVyRXh0ZW5kUmVmLm5hdGl2ZUVsZW1lbnQpLndpZHRoKG5ld3dpZHRoKTtcclxuICAgICAgY29uc3QgbmV3d2lkdGggPSBvcHRpb24ubGFiZWxzLmxlbmd0aCAqIGxhYmVsV2lkdGg7XHJcbiAgICAgICQodGhpcy5jaGFydEFyZWFXcmFwcGVyRXh0ZW5kUmVmLm5hdGl2ZUVsZW1lbnQpLmNzcygnd2lkdGgnLCBgbWF4KDEwMCUsJHtuZXd3aWR0aH1weClgKTtcclxuICAgIH1cclxuICAgIGNvbnN0IGNvbmZpZ3VyYXRpb246IENoYXJ0LkNoYXJ0Q29uZmlndXJhdGlvbiA9IHtcclxuICAgICAgb3B0aW9uczoge1xyXG4gICAgICAgIHJlc3BvbnNpdmU6IHRydWUsXHJcbiAgICAgICAgbWFpbnRhaW5Bc3BlY3RSYXRpbzogZmFsc2UsXHJcbiAgICAgICAgbGVnZW5kOiB7XHJcbiAgICAgICAgICBkaXNwbGF5OiAhb3B0aW9uLmhpZGVMZWdlbmRcclxuICAgICAgICB9LFxyXG4gICAgICAgIHNjYWxlczoge1xyXG4gICAgICAgICAgeEF4ZXM6IFt7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IHRydWUsXHJcbiAgICAgICAgICAgIHNjYWxlTGFiZWw6IHtcclxuICAgICAgICAgICAgICBkaXNwbGF5OiAhIW9wdGlvbi54VGl0bGUsXHJcbiAgICAgICAgICAgICAgbGFiZWxTdHJpbmc6IG9wdGlvbi54VGl0bGUgfHwgJydcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgdGlja3M6IHtcclxuICAgICAgICAgICAgICBjYWxsYmFjazogKHZhbHVlOiBudW1iZXIgfCBzdHJpbmcsIGluZGV4OiBudW1iZXIpID0+IHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBvcHRpb24udGlja3M/LnhMYWJlbCh2YWx1ZSwgaW5kZXgpIHx8IChOdW1iZXIuaXNOdW1iZXIodmFsdWUpID8gTnVtYmVyLnRvVk5DdXJyZW5jeSh2YWx1ZSkgOiB2YWx1ZSk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgfV0sXHJcbiAgICAgICAgICB5QXhlczogW3tcclxuICAgICAgICAgICAgZGlzcGxheTogdHJ1ZSxcclxuICAgICAgICAgICAgdGlja3M6IHtcclxuICAgICAgICAgICAgICBiZWdpbkF0WmVybzogb3B0aW9uLmJlZ2luQXRaZXJvID8/IHRydWUsXHJcbiAgICAgICAgICAgICAgY2FsbGJhY2s6ICh2YWx1ZTogbnVtYmVyIHwgc3RyaW5nLCBpbmRleDogbnVtYmVyKSA9PiB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gb3B0aW9uLnRpY2tzPy55TGFiZWwodmFsdWUsIGluZGV4KSB8fCAoTnVtYmVyLmlzTnVtYmVyKHZhbHVlKSA/IE51bWJlci50b1ZOQ3VycmVuY3kodmFsdWUpIDogdmFsdWUpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgc3RhY2tlZDogdHJ1ZSxcclxuICAgICAgICAgICAgc2NhbGVMYWJlbDoge1xyXG4gICAgICAgICAgICAgIGRpc3BsYXk6ICEhb3B0aW9uLnlUaXRsZSxcclxuICAgICAgICAgICAgICBsYWJlbFN0cmluZzogb3B0aW9uLnlUaXRsZSB8fCAnJ1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgdG9vbHRpcHM6IHtcclxuICAgICAgICAgIGNhbGxiYWNrczoge1xyXG4gICAgICAgICAgICBsYWJlbDogKHRvb2x0aXBJdGVtLCBkYXRhKSA9PiB7XHJcbiAgICAgICAgICAgICAgY29uc3QgZGF0YXNldExhYmVsID0gZGF0YT8uZGF0YXNldHNbdG9vbHRpcEl0ZW0uZGF0YXNldEluZGV4XT8ubGFiZWw7XHJcbiAgICAgICAgICAgICAgY29uc3QgbGFiZWwgPSBkYXRhPy5sYWJlbHNbdG9vbHRpcEl0ZW0uaW5kZXhdIGFzIHN0cmluZztcclxuICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9IGRhdGE/LmRhdGFzZXRzW3Rvb2x0aXBJdGVtLmRhdGFzZXRJbmRleF0/LmRhdGFbdG9vbHRpcEl0ZW0uaW5kZXhdIGFzIG51bWJlcjtcclxuICAgICAgICAgICAgICByZXR1cm4gb3B0aW9uLnRvb2x0aXBzPy5sYWJlbCh7XHJcbiAgICAgICAgICAgICAgICBkYXRhc2V0TGFiZWwsXHJcbiAgICAgICAgICAgICAgICBsYWJlbCxcclxuICAgICAgICAgICAgICAgIHZhbHVlXHJcbiAgICAgICAgICAgICAgfSkgfHwgYCR7ZGF0YXNldExhYmVsfSA6ICR7TnVtYmVyLnRvVk5DdXJyZW5jeSh2YWx1ZSl9YDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAgdHlwZTogJ2xpbmUnLFxyXG4gICAgICBkYXRhOiB7XHJcbiAgICAgICAgbGFiZWxzOiBvcHRpb24ubGFiZWxzLFxyXG4gICAgICAgIGRhdGFzZXRzOiBvcHRpb24uZGF0YXNldHMubWFwKChlLCBpZHgpID0+IHtcclxuICAgICAgICAgIGNvbnN0IGR5bmFtaWNDb2xvciA9IHRoaXMuZHluYW1pY0NvbG9yO1xyXG4gICAgICAgICAgY29uc3QgcmVzdWx0OiBDaGFydC5DaGFydERhdGFTZXRzID0ge1xyXG4gICAgICAgICAgICBsYWJlbDogZS5sYWJlbCxcclxuICAgICAgICAgICAgLy8gZmlsbDogZS5iYWNrZ3JvdW5kQ29sb3IsXHJcbiAgICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogZS5iYWNrZ3JvdW5kQ29sb3IgfHwgdGhpcy5jaGFydENvbmZpZ3VyYXRpb24/LmRlZmF1bHRDb2xvcnM/LltpZHhdPy5iYWNrZ3JvdW5kQ29sb3IgfHwgZHluYW1pY0NvbG9yLFxyXG4gICAgICAgICAgICBib3JkZXJDb2xvcjogZS5ib3JkZXJDb2xvciB8fCB0aGlzLmNoYXJ0Q29uZmlndXJhdGlvbj8uZGVmYXVsdENvbG9ycz8uW2lkeF0/LmJvcmRlckNvbG9yIHx8IGR5bmFtaWNDb2xvcixcclxuICAgICAgICAgICAgZGF0YTogZS5kYXRhLFxyXG4gICAgICAgICAgICBsaW5lVGVuc2lvbjogMCxcclxuICAgICAgICAgIH07XHJcbiAgICAgICAgICByZXR1cm4gcmVzdWx0O1xyXG4gICAgICAgIH0pXHJcbiAgICAgIH1cclxuICAgIH07XHJcblxyXG4gICAgaWYgKG9wdGlvbi5ob3ZlciA9PT0gJ1Nob3dBbGwnKSB7XHJcbiAgICAgIGNvbmZpZ3VyYXRpb24ub3B0aW9ucy50b29sdGlwcyA9IHtcclxuICAgICAgICAuLi5jb25maWd1cmF0aW9uLm9wdGlvbnMudG9vbHRpcHMsXHJcbiAgICAgICAgbW9kZTogJ2luZGV4JyxcclxuICAgICAgICBpbnRlcnNlY3Q6IGZhbHNlXHJcbiAgICAgIH07XHJcbiAgICAgIGNvbmZpZ3VyYXRpb24ub3B0aW9ucy5ob3ZlciA9IHtcclxuICAgICAgICAuLi5jb25maWd1cmF0aW9uLm9wdGlvbnMuaG92ZXIsXHJcbiAgICAgICAgbW9kZTogJ2luZGV4JyxcclxuICAgICAgICBpbnRlcnNlY3Q6IGZhbHNlXHJcbiAgICAgIH07XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5jaGFydCA9IG5ldyBDaGFydCh0aGlzLmN0eCwgY29uZmlndXJhdGlvbik7XHJcbiAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSByZW5kZXJCYXJMaW5lQ2hhcnQob3B0aW9uOiBCYXJMaW5lQ2hhcnRPcHRpb24pIHtcclxuICAgIGNvbnN0IGxhYmVsV2lkdGggPSBvcHRpb24ubGFiZWxXaWR0aCA/PyA1MDtcclxuICAgIGlmIChvcHRpb24uZGF0YXNldHMubGVuZ3RoKSB7XHJcbiAgICAgIGNvbnN0IG51bWJlck9mQmFycyA9IG9wdGlvbi5kYXRhc2V0cy5maWx0ZXIoZSA9PiBlLnR5cGUgPT09ICdiYXInKS5sZW5ndGg7XHJcbiAgICAgIGlmIChudW1iZXJPZkJhcnMgPD0gMSkge1xyXG4gICAgICAgIC8vIGNvbnN0IG5ld3dpZHRoID0gTWF0aC5tYXgob3B0aW9uLmxhYmVscy5sZW5ndGggKiBsYWJlbFdpZHRoLCAkKHRoaXMuY2hhcnRXcmFwcGVyUmVmLm5hdGl2ZUVsZW1lbnQpLndpZHRoKCkpO1xyXG4gICAgICAgIC8vICQodGhpcy5jaGFydEFyZWFXcmFwcGVyRXh0ZW5kUmVmLm5hdGl2ZUVsZW1lbnQpLndpZHRoKG5ld3dpZHRoKTtcclxuICAgICAgICBjb25zdCBuZXd3aWR0aCA9IG9wdGlvbi5sYWJlbHMubGVuZ3RoICogbGFiZWxXaWR0aDtcclxuICAgICAgICAkKHRoaXMuY2hhcnRBcmVhV3JhcHBlckV4dGVuZFJlZi5uYXRpdmVFbGVtZW50KS5jc3MoJ3dpZHRoJywgYG1heCgxMDAlLCR7bmV3d2lkdGh9cHgpYCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgLy8gY29uc3QgbmV3d2lkdGggPSBNYXRoLm1heChvcHRpb24ubGFiZWxzLmxlbmd0aCAqIG51bWJlck9mQmFycyAqIGxhYmVsV2lkdGgsICQodGhpcy5jaGFydFdyYXBwZXJSZWYubmF0aXZlRWxlbWVudCkud2lkdGgoKSk7XHJcbiAgICAgICAgLy8gJCh0aGlzLmNoYXJ0QXJlYVdyYXBwZXJFeHRlbmRSZWYubmF0aXZlRWxlbWVudCkud2lkdGgobmV3d2lkdGgpO1xyXG4gICAgICAgIGNvbnN0IG5ld3dpZHRoID0gb3B0aW9uLmxhYmVscy5sZW5ndGggKiBudW1iZXJPZkJhcnMgKiBsYWJlbFdpZHRoO1xyXG4gICAgICAgICQodGhpcy5jaGFydEFyZWFXcmFwcGVyRXh0ZW5kUmVmLm5hdGl2ZUVsZW1lbnQpLmNzcygnd2lkdGgnLCBgbWF4KDEwMCUsJHtuZXd3aWR0aH1weClgKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgY29uc3QgbGVmdElkID0gYEkke3V1aWQudjQoKX1gO1xyXG4gICAgY29uc3QgcmlnaHRJZCA9IGBJJHt1dWlkLnY0KCl9YDtcclxuICAgIGNvbnN0IHlBeGVzID0gW3tcclxuICAgICAgdHlwZTogJ2xpbmVhcicsXHJcbiAgICAgIGRpc3BsYXk6IHRydWUsXHJcbiAgICAgIHBvc2l0aW9uOiAnbGVmdCcsXHJcbiAgICAgIGlkOiBsZWZ0SWQsXHJcbiAgICAgIHRpY2tzOiB7XHJcbiAgICAgICAgYmVnaW5BdFplcm86IG9wdGlvbi5iZWdpbkF0WmVybyA/PyB0cnVlLFxyXG4gICAgICAgIHN1Z2dlc3RlZE1pbjogMCxcclxuICAgICAgICBjYWxsYmFjazogKHZhbHVlOiBudW1iZXIgfCBzdHJpbmcsIGluZGV4OiBudW1iZXIpID0+IHtcclxuICAgICAgICAgIHJldHVybiBvcHRpb24udGlja3M/LnlMYWJlbCh2YWx1ZSwgaW5kZXgpIHx8IChOdW1iZXIuaXNOdW1iZXIodmFsdWUpID8gTnVtYmVyLnRvVk5DdXJyZW5jeSh2YWx1ZSkgOiB2YWx1ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICBzY2FsZUxhYmVsOiB7XHJcbiAgICAgICAgZGlzcGxheTogISFvcHRpb24ueVRpdGxlLFxyXG4gICAgICAgIGxhYmVsU3RyaW5nOiBvcHRpb24ueVRpdGxlIHx8ICcnXHJcbiAgICAgIH1cclxuICAgIH1dO1xyXG4gICAgaWYgKG9wdGlvbi5kYXRhc2V0cy5zb21lKGUgPT4gZS55QWxpZ24gPT09ICdyaWdodCcpKSB7XHJcbiAgICAgIHlBeGVzLnB1c2goe1xyXG4gICAgICAgIHR5cGU6ICdsaW5lYXInLFxyXG4gICAgICAgIGRpc3BsYXk6IHRydWUsXHJcbiAgICAgICAgcG9zaXRpb246ICdyaWdodCcsXHJcbiAgICAgICAgaWQ6IHJpZ2h0SWQsXHJcbiAgICAgICAgdGlja3M6IHtcclxuICAgICAgICAgIGJlZ2luQXRaZXJvOiBvcHRpb24uYmVnaW5BdFplcm8gPz8gdHJ1ZSxcclxuICAgICAgICAgIHN1Z2dlc3RlZE1pbjogMCxcclxuICAgICAgICAgIGNhbGxiYWNrOiAodmFsdWU6IG51bWJlciB8IHN0cmluZywgaW5kZXg6IG51bWJlcikgPT4ge1xyXG4gICAgICAgICAgICByZXR1cm4gb3B0aW9uLnRpY2tzPy55UmlnaHRMYWJlbCh2YWx1ZSwgaW5kZXgpIHx8IChOdW1iZXIuaXNOdW1iZXIodmFsdWUpID8gTnVtYmVyLnRvVk5DdXJyZW5jeSh2YWx1ZSkgOiB2YWx1ZSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICBzY2FsZUxhYmVsOiB7XHJcbiAgICAgICAgICBkaXNwbGF5OiAhIW9wdGlvbi55UmlnaHRUaXRsZSxcclxuICAgICAgICAgIGxhYmVsU3RyaW5nOiBvcHRpb24ueVJpZ2h0VGl0bGUgfHwgJydcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgY29uc3QgY29uZmlndXJhdGlvbjogQ2hhcnQuQ2hhcnRDb25maWd1cmF0aW9uID0ge1xyXG4gICAgICBvcHRpb25zOiB7XHJcbiAgICAgICAgcmVzcG9uc2l2ZTogdHJ1ZSxcclxuICAgICAgICBtYWludGFpbkFzcGVjdFJhdGlvOiBmYWxzZSxcclxuICAgICAgICBsZWdlbmQ6IHtcclxuICAgICAgICAgIGRpc3BsYXk6ICFvcHRpb24uaGlkZUxlZ2VuZFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgdGl0bGU6IHtcclxuICAgICAgICAgIGRpc3BsYXk6IHRydWUsXHJcbiAgICAgICAgICB0ZXh0OiBvcHRpb24udGl0bGVcclxuICAgICAgICB9LFxyXG4gICAgICAgIHNjYWxlczoge1xyXG4gICAgICAgICAgeEF4ZXM6IFt7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IHRydWUsXHJcbiAgICAgICAgICAgIHNjYWxlTGFiZWw6IHtcclxuICAgICAgICAgICAgICBkaXNwbGF5OiAhIW9wdGlvbi54VGl0bGUsXHJcbiAgICAgICAgICAgICAgbGFiZWxTdHJpbmc6IG9wdGlvbi54VGl0bGUgfHwgJydcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgdGlja3M6IHtcclxuICAgICAgICAgICAgICBjYWxsYmFjazogKHZhbHVlOiBudW1iZXIgfCBzdHJpbmcsIGluZGV4OiBudW1iZXIpID0+IHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBvcHRpb24udGlja3M/LnhMYWJlbCh2YWx1ZSwgaW5kZXgpIHx8IChOdW1iZXIuaXNOdW1iZXIodmFsdWUpID8gTnVtYmVyLnRvVk5DdXJyZW5jeSh2YWx1ZSkgOiB2YWx1ZSk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgfV0sXHJcbiAgICAgICAgICB5QXhlc1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgdG9vbHRpcHM6IHtcclxuICAgICAgICAgIGNhbGxiYWNrczoge1xyXG4gICAgICAgICAgICBsYWJlbDogKHRvb2x0aXBJdGVtLCBkYXRhKSA9PiB7XHJcbiAgICAgICAgICAgICAgY29uc3QgZGF0YXNldExhYmVsID0gZGF0YT8uZGF0YXNldHNbdG9vbHRpcEl0ZW0uZGF0YXNldEluZGV4XT8ubGFiZWw7XHJcbiAgICAgICAgICAgICAgY29uc3QgbGFiZWwgPSBkYXRhPy5sYWJlbHNbdG9vbHRpcEl0ZW0uaW5kZXhdIGFzIHN0cmluZztcclxuICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9IGRhdGE/LmRhdGFzZXRzW3Rvb2x0aXBJdGVtLmRhdGFzZXRJbmRleF0/LmRhdGFbdG9vbHRpcEl0ZW0uaW5kZXhdIGFzIG51bWJlcjtcclxuICAgICAgICAgICAgICByZXR1cm4gb3B0aW9uLnRvb2x0aXBzPy5sYWJlbCh7XHJcbiAgICAgICAgICAgICAgICBkYXRhc2V0TGFiZWwsXHJcbiAgICAgICAgICAgICAgICBsYWJlbCxcclxuICAgICAgICAgICAgICAgIHZhbHVlXHJcbiAgICAgICAgICAgICAgfSkgfHwgYCR7ZGF0YXNldExhYmVsID8gYFske2RhdGFzZXRMYWJlbH1dIGAgOiAnJ30gJHtsYWJlbH0gOiAke051bWJlci50b1ZOQ3VycmVuY3kodmFsdWUpfWA7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIGRhdGE6IHtcclxuICAgICAgICBsYWJlbHM6IG9wdGlvbi5sYWJlbHMsXHJcbiAgICAgICAgZGF0YXNldHM6IG9wdGlvbi5kYXRhc2V0cy5tYXAoKGUsIGlkeCkgPT4ge1xyXG4gICAgICAgICAgY29uc3QgZHluYW1pY0NvbG9yID0gdGhpcy5keW5hbWljQ29sb3I7XHJcbiAgICAgICAgICBjb25zdCByZXN1bHQ6IENoYXJ0LkNoYXJ0RGF0YVNldHMgPSB7XHJcbiAgICAgICAgICAgIHR5cGU6IGUudHlwZSxcclxuICAgICAgICAgICAgbGFiZWw6IGUubGFiZWwsXHJcbiAgICAgICAgICAgIGZpbGw6IGUuYmFja2dyb3VuZENvbG9yIHx8IHRoaXMuY2hhcnRDb25maWd1cmF0aW9uPy5kZWZhdWx0Q29sb3JzPy5baWR4XT8uYmFja2dyb3VuZENvbG9yIHx8IGR5bmFtaWNDb2xvcixcclxuICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yOiBlLmJhY2tncm91bmRDb2xvciB8fCB0aGlzLmNoYXJ0Q29uZmlndXJhdGlvbj8uZGVmYXVsdENvbG9ycz8uW2lkeF0/LmJhY2tncm91bmRDb2xvciB8fCBkeW5hbWljQ29sb3IsXHJcbiAgICAgICAgICAgIGJvcmRlckNvbG9yOiBlLmJvcmRlckNvbG9yIHx8IHRoaXMuY2hhcnRDb25maWd1cmF0aW9uPy5kZWZhdWx0Q29sb3JzPy5baWR4XT8uYm9yZGVyQ29sb3IgfHwgZHluYW1pY0NvbG9yLFxyXG4gICAgICAgICAgICBkYXRhOiBlLmRhdGEsXHJcbiAgICAgICAgICAgIHlBeGlzSUQ6IGUueUFsaWduID09PSAncmlnaHQnID8gcmlnaHRJZCA6IGxlZnRJZCxcclxuICAgICAgICAgICAgbGluZVRlbnNpb246IDBcclxuICAgICAgICAgIH07XHJcbiAgICAgICAgICByZXR1cm4gcmVzdWx0O1xyXG4gICAgICAgIH0pXHJcbiAgICAgIH1cclxuICAgIH07XHJcblxyXG4gICAgaWYgKG9wdGlvbi5ob3ZlciA9PT0gJ1Nob3dBbGwnKSB7XHJcbiAgICAgIGNvbmZpZ3VyYXRpb24ub3B0aW9ucy50b29sdGlwcyA9IHtcclxuICAgICAgICAuLi5jb25maWd1cmF0aW9uLm9wdGlvbnMudG9vbHRpcHMsXHJcbiAgICAgICAgbW9kZTogJ2luZGV4JyxcclxuICAgICAgICBpbnRlcnNlY3Q6IGZhbHNlXHJcbiAgICAgIH07XHJcbiAgICAgIGNvbmZpZ3VyYXRpb24ub3B0aW9ucy5ob3ZlciA9IHtcclxuICAgICAgICAuLi5jb25maWd1cmF0aW9uLm9wdGlvbnMuaG92ZXIsXHJcbiAgICAgICAgbW9kZTogJ2luZGV4JyxcclxuICAgICAgICBpbnRlcnNlY3Q6IGZhbHNlXHJcbiAgICAgIH07XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5jaGFydCA9IG5ldyBDaGFydCh0aGlzLmN0eCwgY29uZmlndXJhdGlvbik7XHJcbiAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgbG9hZGluZ1N0YXJ0ID0gKCkgPT4ge1xyXG4gICAgdGhpcy5pc0xvYWRpbmcgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXQgZHluYW1pY0NvbG9yKCkge1xyXG4gICAgY29uc3QgciA9IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDI1NSk7XHJcbiAgICBjb25zdCBnID0gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogMjU1KTtcclxuICAgIGNvbnN0IGIgPSBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAyNTUpO1xyXG4gICAgcmV0dXJuICdyZ2IoJyArIHIgKyAnLCcgKyBnICsgJywnICsgYiArICcpJztcclxuICB9XHJcbn1cclxuIl19
616
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IkM6L1VzZXJzL25naGlhdHQxNV9vbmVtb3VudC9Eb2N1bWVudHMvbGliLWNvcmUtdWkvcHJvamVjdHMvc2QtY29yZS9jaGFydC8iLCJzb3VyY2VzIjpbInNyYy9saWIvY2hhcnQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUF5QixTQUFTLEVBQWMsS0FBSyxFQUFFLGlCQUFpQixFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEksT0FBTyxLQUFLLEtBQUssTUFBTSxVQUFVLENBQUM7QUFDbEMsT0FBTyxFQVNMLFlBQVksRUFDYixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLENBQUMsTUFBTSxRQUFRLENBQUM7QUFDdkIsT0FBTyxLQUFLLElBQUksTUFBTSxNQUFNLENBQUM7QUFPN0IsTUFBTSxPQUFPLE9BQU87SUFxQmxCLFlBQ1UsR0FBc0IsRUFDWSxrQkFBdUM7UUFEekUsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFDWSx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQXFCO1FBdEIzRSxnQkFBVyxHQUFHLEtBQUssQ0FBQztRQUU1QixjQUFTLEdBQUcsS0FBSyxDQUFDO1FBY2xCLFlBQU8sR0FBRyxJQUFJLENBQUM7UUFDZixXQUFNLEdBQUcsT0FBTyxDQUFDO1FBaW1CakIsaUJBQVksR0FBRyxHQUFHLEVBQUU7WUFDbEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFDeEIsQ0FBQyxDQUFBO0lBNWxCRCxDQUFDO0lBcEJELElBQWEsV0FBVyxDQUFDLFdBQTBCO1FBQ2pELElBQUksQ0FBQyxZQUFZLEdBQUcsV0FBVyxDQUFDO1FBQ2hDLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUNwQixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7U0FDcEI7SUFDSCxDQUFDO0lBaUJELFFBQVE7SUFDUixDQUFD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QUNIO1FBRUQsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLGFBQWEsQ0FBQyxDQUFDO1FBQ2hELElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO0lBQ3pCLENBQUM7SUFNRCxJQUFZLFlBQVk7UUFDdEIsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsR0FBRyxDQUFDLENBQUM7UUFDMUMsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsR0FBRyxDQUFDLENBQUM7UUFDMUMsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsR0FBRyxDQUFDLENBQUM7UUFDMUMsT0FBTyxNQUFNLEdBQUcsQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUMsR0FBRyxHQUFHLENBQUM7SUFDOUMsQ0FBQzs7O1lBam9CRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLFVBQVU7Z0JBQ3BCLGlmQUFxQzs7YUFFdEM7OztZQXBCd0UsaUJBQWlCOzRDQTRDckYsUUFBUSxZQUFJLE1BQU0sU0FBQyxZQUFZOzs7MEJBbEJqQyxLQUFLO3VCQU9MLFNBQVMsU0FBQyxPQUFPOzhCQUNqQixTQUFTLFNBQUMsY0FBYzsyQkFDeEIsU0FBUyxTQUFDLFdBQVc7d0NBQ3JCLFNBQVMsU0FBQyx3QkFBd0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgVmlld0NoaWxkLCBFbGVtZW50UmVmLCBJbnB1dCwgQ2hhbmdlRGV0ZWN0b3JSZWYsIE9wdGlvbmFsLCBJbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0ICogYXMgQ2hhcnQgZnJvbSAnY2hhcnQuanMnO1xyXG5pbXBvcnQge1xyXG4gIFNkQ2hhcnRPcHRpb24sXHJcbiAgQmFyQ2hhcnRPcHRpb24sXHJcbiAgTGluZUNoYXJ0T3B0aW9uLFxyXG4gIFBpZUNoYXJ0T3B0aW9uLFxyXG4gIEJhckxpbmVDaGFydE9wdGlvbixcclxuICBTdGFja0FyZWFDaGFydE9wdGlvbixcclxuICBIb3Jpem9udGFsQmFyQ2hhcnRPcHRpb24sXHJcbiAgSUNoYXJ0Q29uZmlndXJhdGlvbixcclxuICBDSEFSVF9DT05GSUdcclxufSBmcm9tICcuL2NoYXJ0Lm1vZGVsJztcclxuaW1wb3J0ICQgZnJvbSAnanF1ZXJ5JztcclxuaW1wb3J0ICogYXMgdXVpZCBmcm9tICd1dWlkJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnc2QtY2hhcnQnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jaGFydC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vY2hhcnQuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2RDaGFydCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XHJcbiAgcHJpdmF0ZSBpbml0aWFsaXplZCA9IGZhbHNlO1xyXG4gIHByaXZhdGUgcENoYXJ0T3B0aW9uOiBTZENoYXJ0T3B0aW9uO1xyXG4gIGlzTG9hZGluZyA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKSBzZXQgY2hhcnRPcHRpb24oY2hhcnRPcHRpb246IFNkQ2hhcnRPcHRpb24pIHtcclxuICAgIHRoaXMucENoYXJ0T3B0aW9uID0gY2hhcnRPcHRpb247XHJcbiAgICBpZiAodGhpcy5pbml0aWFsaXplZCkge1xyXG4gICAgICB0aGlzLnJlbmRlckNoYXJ0KCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBAVmlld0NoaWxkKCdjaGFydCcpIGNoYXJ0UmVmOiBFbGVtZW50UmVmO1xyXG4gIEBWaWV3Q2hpbGQoJ2NoYXJ0V3JhcHBlcicpIGNoYXJ0V3JhcHBlclJlZjogRWxlbWVudFJlZjtcclxuICBAVmlld0NoaWxkKCdjaGFydEF4aXMnKSBjaGFydEF4aXNSZWY6IEVsZW1lbnRSZWY7XHJcbiAgQFZpZXdDaGlsZCgnY2hhcnRBcmVhV3JhcHBlckV4dGVuZCcpIGNoYXJ0QXJlYVdyYXBwZXJFeHRlbmRSZWY6IEVsZW1lbnRSZWY7XHJcbiAgY2hhcnQ6IENoYXJ0O1xyXG4gIHZpc2libGUgPSB0cnVlO1xyXG4gIGhlaWdodCA9ICczMDBweCc7XHJcbiAgcHJpdmF0ZSBjdHg6IENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KENIQVJUX0NPTkZJRykgcHJpdmF0ZSBjaGFydENvbmZpZ3VyYXRpb246IElDaGFydENvbmZpZ3VyYXRpb25cclxuICApIHtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgdGhpcy5yZW5kZXJDaGFydCh0cnVlKTtcclxuICAgIHRoaXMuaW5pdGlhbGl6ZWQgPSB0cnVlO1xyXG4gICAgdGhpcy5yZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhc3luYyByZW5kZXJDaGFydChmaXJzdFJlbmRlcj86IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuaGVpZ2h0ID0gdGhpcy5wQ2hhcnRPcHRpb24/LmhlaWdodCB8fCAnMzAwcHgnO1xyXG4gICAgaWYgKCFmaXJzdFJlbmRlcikge1xyXG4gICAgICB0aGlzLnZpc2libGUgPSBmYWxzZTtcclxuICAgICAgYXdhaXQgbmV3IFByb21pc2UocmVzb2x2ZSA9PiBzZXRUaW1lb3V0KHJlc29sdmUsIDIwMCkpO1xyXG4gICAgICB0aGlzLnZpc2libGUgPSB0cnVlO1xyXG4gICAgfVxyXG4gICAgYXdhaXQgbmV3IFByb21pc2UocmVzb2x2ZSA9PiBzZXRUaW1lb3V0KHJlc29sdmUsIDIwMCkpO1xyXG4gICAgaWYgKHRoaXMuY2hhcnRSZWY/Lm5hdGl2ZUVsZW1lbnQpIHtcclxuICAgICAgY29uc3QgY2FudmFzID0gdGhpcy5jaGFydFJlZi5uYXRpdmVFbGVtZW50IGFzIEhUTUxDYW52YXNFbGVtZW50O1xyXG4gICAgICB0aGlzLmN0eCA9IGNhbnZhcy5nZXRDb250ZXh0KCcyZCcpO1xyXG4gICAgICBzd2l0Y2ggKHRoaXMucENoYXJ0T3B0aW9uLnR5cGUpIHtcclxuICAgICAgICBjYXNlICdwaWUnOlxyXG4gICAgICAgICAgdGhpcy5yZW5kZXJQaWVDaGFydCh0aGlzLnBDaGFydE9wdGlvbik7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlICdiYXInOlxyXG4gICAgICAgICAgdGhpcy5yZW5kZXJCYXJDaGFydCh0aGlzLnBDaGFydE9wdGlvbik7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlICdob3Jpem9udGFsQmFyJzpcclxuICAgICAgICAgIHRoaXMucmVuZGVySG9yaXpvbnRhbEJhckNoYXJ0KHRoaXMucENoYXJ0T3B0aW9uKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgJ2xpbmUnOlxyXG4gICAgICAgICAgdGhpcy5yZW5kZXJMaW5lQ2hhcnQodGhpcy5wQ2hhcnRPcHRpb24pO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAnc3RhY2tBcmVhJzpcclxuICAgICAgICAgIHRoaXMucmVuZGVyU3RhY2tBcmVhQ2hhcnQodGhpcy5wQ2hhcnRPcHRpb24pO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAnYmFybGluZSc6XHJcbiAgICAgICAgICB0aGlzLnJlbmRlckJhckxpbmVDaGFydCh0aGlzLnBDaGFydE9wdGlvbik7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgcmVuZGVyUGllQ2hhcnQob3B0aW9uOiBQaWVDaGFydE9wdGlvbikge1xyXG4gICAgY29uc3QgY29uZmlndXJhdGlvbjogQ2hhcnQuQ2hhcnRDb25maWd1cmF0aW9uID0ge1xyXG4gICAgICB0eXBlOiAncGllJyxcclxuICAgICAgb3B0aW9uczoge1xyXG4gICAgICAgIHJlc3BvbnNpdmU6IHRydWUsXHJcbiAgICAgICAgdGl0bGU6IHtcclxuICAgICAgICAgIGRpc3BsYXk6IHRydWUsXHJcbiAgICAgICAgICB0ZXh0OiBvcHRpb24udGl0bGVcclxuICAgICAgICB9LFxyXG4gICAgICAgIGxlZ2VuZDoge1xyXG4gICAgICAgICAgZGlzcGxheTogIW9wdGlvbi5oaWRlTGVnZW5kXHJcbiAgICAgICAgfSxcclxuICAgICAgICB0b29sdGlwczoge1xyXG4gICAgICAgICAgY2FsbGJhY2tzOiB7XHJcbiAgICAgICAgICAgIGxhYmVsOiAodG9vbHRpcEl0ZW0sIGRhdGEpID0+IHtcclxuICAgICAgICAgICAgICBjb25zdCBkYXRhc2V0TGFiZWwgPSBkYXRhPy5kYXRhc2V0c1t0b29sdGlwSXRlbS5kYXRhc2V0SW5kZXhdPy5sYWJlbDtcclxuICAgICAgICAgICAgICBjb25zdCBsYWJlbCA9IGRhdGE/LmxhYmVsc1t0b29sdGlwSXRlbS5pbmRleF0gYXMgc3RyaW5nO1xyXG4gICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gZGF0YT8uZGF0YXNldHNbdG9vbHRpcEl0ZW0uZGF0YXNldEluZGV4XT8uZGF0YVt0b29sdGlwSXRlbS5pbmRleF0gYXMgbnVtYmVyO1xyXG4gICAgICAgICAgICAgIHJldHVybiBvcHRpb24udG9vbHRpcHM/LmxhYmVsKHtcclxuICAgICAgICAgICAgICAgIGRhdGFzZXRMYWJlbCxcclxuICAgICAgICAgICAgICAgIGxhYmVsLFxyXG4gICAgICAgICAgICAgICAgdmFsdWVcclxuICAgICAgICAgICAgICB9KSB8fCBgJHtkYXRhc2V0TGFiZWwgPyBgWyR7ZGF0YXNldExhYmVsfV0gYCA6ICcnfSR7bGFiZWx9IDogJHtOdW1iZXIudG9WTkN1cnJlbmN5KHZhbHVlKX1gO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICBkYXRhOiB7XHJcbiAgICAgICAgbGFiZWxzOiBvcHRpb24uZGF0YXNldHM/Lm1hcChlID0+IGUubGFiZWwpIHx8IFtdLFxyXG4gICAgICAgIGRhdGFzZXRzOiBbe1xyXG4gICAgICAgICAgZGF0YTogb3B0aW9uLmRhdGFzZXRzPy5tYXAoZSA9PiBlLnZhbHVlKSB8fCBbXSxcclxuICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogb3B0aW9uLmRhdGFzZXRzPy5tYXAoKGUsIGlkeCkgPT4gZS5iYWNrZ3JvdW5kQ29sb3JcclxuICAgICAgICAgICAgfHwgdGhpcy5jaGFydENvbmZpZ3VyYXRpb24/LmRlZmF1bHRDb2xvcnM/LltpZHhdPy5iYWNrZ3JvdW5kQ29sb3JcclxuICAgICAgICAgICAgfHwgdGhpcy5keW5hbWljQ29sb3IpIHx8IFtdXHJcbiAgICAgICAgfV1cclxuICAgICAgfVxyXG4gICAgfTtcclxuXHJcbiAgICBpZiAob3B0aW9uLmhvdmVyID09PSAnU2hvd0FsbCcpIHtcclxuICAgICAgY29uZmlndXJhdGlvbi5vcHRpb25zLnRvb2x0aXBzID0ge1xyXG4gICAgICAgIC4uLmNvbmZpZ3VyYXRpb24ub3B0aW9ucy50b29sdGlwcyxcclxuICAgICAgICBtb2RlOiAnaW5kZXgnLFxyXG4gICAgICAgIGludGVyc2VjdDogZmFsc2VcclxuICAgICAgfTtcclxuICAgICAgY29uZmlndXJhdGlvbi5vcHRpb25zLmhvdmVyID0ge1xyXG4gICAgICAgIC4uLmNvbmZpZ3VyYXRpb24ub3B0aW9ucy5ob3ZlcixcclxuICAgICAgICBtb2RlOiAnaW5kZXgnLFxyXG4gICAgICAgIGludGVyc2VjdDogZmFsc2VcclxuICAgICAgfTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmNoYXJ0ID0gbmV3IENoYXJ0KHRoaXMuY3R4LCBjb25maWd1cmF0aW9uKTtcclxuICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHJlbmRlckJhckNoYXJ0KG9wdGlvbjogQmFyQ2hhcnRPcHRpb24pIHtcclxuICAgIGNvbnN0IGxhYmVsV2lkdGggPSBvcHRpb24ubGFiZWxXaWR0aCA/PyA1MDtcclxuICAgIGlmIChvcHRpb24uZGF0YXNldHMubGVuZ3RoKSB7XHJcbiAgICAgIC8vIGNvbnN0IG5ld3dpZHRoID0gTWF0aC5tYXgob3B0aW9uLmxhYmVscy5sZW5ndGggKiBvcHRpb24uZGF0YXNldHMubGVuZ3RoICogbGFiZWxXaWR0aCwgJCh0aGlzLmNoYXJ0V3JhcHBlclJlZi5uYXRpdmVFbGVtZW50KS53aWR0aCgpKTtcclxuICAgICAgLy8gJCh0aGlzLmNoYXJ0QXJlYVdyYXBwZXJFeHRlbmRSZWYubmF0aXZlRWxlbWVudCkud2lkdGgobmV3d2lkdGgpO1xyXG4gICAgICBjb25zdCBuZXd3aWR0aCA9IG9wdGlvbi5sYWJlbHMubGVuZ3RoICogb3B0aW9uLmRhdGFzZXRzLmxlbmd0aCAqIGxhYmVsV2lkdGg7XHJcbiAgICAgICQodGhpcy5jaGFydEFyZWFXcmFwcGVyRXh0ZW5kUmVmLm5hdGl2ZUVsZW1lbnQpLmNzcygnd2lkdGgnLCBgbWF4KDEwMCUsJHtuZXd3aWR0aH1weClgKTtcclxuICAgIH1cclxuICAgIGNvbnN0IGNvbmZpZ3VyYXRpb246IENoYXJ0LkNoYXJ0Q29uZmlndXJhdGlvbiA9IHtcclxuICAgICAgb3B0aW9uczoge1xyXG4gICAgICAgIHJlc3BvbnNpdmU6IHRydWUsXHJcbiAgICAgICAgbWFpbnRhaW5Bc3BlY3RSYXRpbzogZmFsc2UsXHJcbiAgICAgICAgbGVnZW5kOiB7XHJcbiAgICAgICAgICBkaXNwbGF5OiAhb3B0aW9uLmhpZGVMZWdlbmRcclxuICAgICAgICB9LFxyXG4gICAgICAgIHNjYWxlczoge1xyXG4gICAgICAgICAgeEF4ZXM6IFt7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IHRydWUsXHJcbiAgICAgICAgICAgIHNjYWxlTGFiZWw6IHtcclxuICAgICAgICAgICAgICBkaXNwbGF5OiAhIW9wdGlvbi54VGl0bGUsXHJcbiAgICAgICAgICAgICAgbGFiZWxTdHJpbmc6IG9wdGlvbi54VGl0bGUgfHwgJydcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgdGlja3M6IHtcclxuICAgICAgICAgICAgICBjYWxsYmFjazogKHZhbHVlOiBudW1iZXIgfCBzdHJpbmcsIGluZGV4OiBudW1iZXIpID0+IHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBvcHRpb24udGlja3M/LnhMYWJlbCh2YWx1ZSwgaW5kZXgpIHx8IChOdW1iZXIuaXNOdW1iZXIodmFsdWUpID8gTnVtYmVyLnRvVk5DdXJyZW5jeSh2YWx1ZSkgOiB2YWx1ZSk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XSxcclxuICAgICAgICAgIHlBeGVzOiBbe1xyXG4gICAgICAgICAgICBkaXNwbGF5OiB0cnVlLFxyXG4gICAgICAgICAgICB0aWNrczoge1xyXG4gICAgICAgICAgICAgIGJlZ2luQXRaZXJvOiBvcHRpb24uYmVnaW5BdFplcm8gPz8gdHJ1ZSxcclxuICAgICAgICAgICAgICBjYWxsYmFjazogKHZhbHVlOiBudW1iZXIgfCBzdHJpbmcsIGluZGV4OiBudW1iZXIpID0+IHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBvcHRpb24udGlja3M/LnlMYWJlbCh2YWx1ZSwgaW5kZXgpIHx8IChOdW1iZXIuaXNOdW1iZXIodmFsdWUpID8gTnVtYmVyLnRvVk5DdXJyZW5jeSh2YWx1ZSkgOiB2YWx1ZSk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBzY2FsZUxhYmVsOiB7XHJcbiAgICAgICAgICAgICAgZGlzcGxheTogISFvcHRpb24ueVRpdGxlLFxyXG4gICAgICAgICAgICAgIGxhYmVsU3RyaW5nOiBvcHRpb24ueVRpdGxlIHx8ICcnXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1dXHJcbiAgICAgICAgfSxcclxuICAgICAgICB0b29sdGlwczoge1xyXG4gICAgICAgICAgY2FsbGJhY2tzOiB7XHJcbiAgICAgICAgICAgIGxhYmVsOiAodG9vbHRpcEl0ZW0sIGRhdGEpID0+IHtcclxuICAgICAgICAgICAgICBjb25zdCBkYXRhc2V0TGFiZWwgPSBkYXRhPy5kYXRhc2V0c1t0b29sdGlwSXRlbS5kYXRhc2V0SW5kZXhdPy5sYWJlbDtcclxuICAgICAgICAgICAgICBjb25zdCBsYWJlbCA9IGRhdGE/LmxhYmVsc1t0b29sdGlwSXRlbS5pbmRleF0gYXMgc3RyaW5nO1xyXG4gICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gZGF0YT8uZGF0YXNldHNbdG9vbHRpcEl0ZW0uZGF0YXNldEluZGV4XT8uZGF0YVt0b29sdGlwSXRlbS5pbmRleF0gYXMgbnVtYmVyO1xyXG4gICAgICAgICAgICAgIHJldHVybiBvcHRpb24udG9vbHRpcHM/LmxhYmVsKHtcclxuICAgICAgICAgICAgICAgIGRhdGFzZXRMYWJlbCxcclxuICAgICAgICAgICAgICAgIGxhYmVsLFxyXG4gICAgICAgICAgICAgICAgdmFsdWVcclxuICAgICAgICAgICAgICB9KSB8fCBgJHtkYXRhc2V0TGFiZWx9IDogJHtOdW1iZXIudG9WTkN1cnJlbmN5KHZhbHVlKX1gO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICB0eXBlOiAnYmFyJyxcclxuICAgICAgZGF0YToge1xyXG4gICAgICAgIGxhYmVsczogb3B0aW9uLmxhYmVscyxcclxuICAgICAgICBkYXRhc2V0czogb3B0aW9uLmRhdGFzZXRzLm1hcCgoZSwgaWR4KSA9PiB7XHJcbiAgICAgICAgICBjb25zdCBkeW5hbWljQ29sb3IgPSB0aGlzLmR5bmFtaWNDb2xvcjtcclxuICAgICAgICAgIGNvbnN0IHJlc3VsdDogQ2hhcnQuQ2hhcnREYXRhU2V0cyA9IHtcclxuICAgICAgICAgICAgbGFiZWw6IGUubGFiZWwsXHJcbiAgICAgICAgICAgIGZpbGw6IGUuYmFja2dyb3VuZENvbG9yIHx8IHRoaXMuY2hhcnRDb25maWd1cmF0aW9uPy5kZWZhdWx0Q29sb3JzPy5baWR4XT8uYmFja2dyb3VuZENvbG9yIHx8IGR5bmFtaWNDb2xvcixcclxuICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yOiBlLmJhY2tncm91bmRDb2xvciB8fCB0aGlzLmNoYXJ0Q29uZmlndXJhdGlvbj8uZGVmYXVsdENvbG9ycz8uW2lkeF0/LmJhY2tncm91bmRDb2xvciB8fCBkeW5hbWljQ29sb3IsXHJcbiAgICAgICAgICAgIGRhdGE6IGUuZGF0YSxcclxuICAgICAgICAgICAgc3RhY2s6IGUuc3RhY2tcclxuICAgICAgICAgIH07XHJcbiAgICAgICAgICByZXR1cm4gcmVzdWx0O1xyXG4gICAgICAgIH0pXHJcbiAgICAgIH1cclxuICAgIH07XHJcblxyXG4gICAgaWYgKG9wdGlvbi5ob3ZlciA9PT0gJ1Nob3dBbGwnKSB7XHJcbiAgICAgIGNvbmZpZ3VyYXRpb24ub3B0aW9ucy50b29sdGlwcyA9IHtcclxuICAgICAgICAuLi5jb25maWd1cmF0aW9uLm9wdGlvbnMudG9vbHRpcHMsXHJcbiAgICAgICAgbW9kZTogJ2luZGV4JyxcclxuICAgICAgICBpbnRlcnNlY3Q6IGZhbHNlXHJcbiAgICAgIH07XHJcbiAgICAgIGNvbmZpZ3VyYXRpb24ub3B0aW9ucy5ob3ZlciA9IHtcclxuICAgICAgICAuLi5jb25maWd1cmF0aW9uLm9wdGlvbnMuaG92ZXIsXHJcbiAgICAgICAgbW9kZTogJ2luZGV4JyxcclxuICAgICAgICBpbnRlcnNlY3Q6IGZhbHNlXHJcbiAgICAgIH07XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5jaGFydCA9IG5ldyBDaGFydCh0aGlzLmN0eCwgY29uZmlndXJhdGlvbik7XHJcbiAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSByZW5kZXJIb3Jpem9udGFsQmFyQ2hhcnQob3B0aW9uOiBIb3Jpem9udGFsQmFyQ2hhcnRPcHRpb24pIHtcclxuICAgIC8vIGNvbnN0IGxhYmVsV2lkdGggPSBvcHRpb24ubGFiZWxXaWR0aCA/PyA1MDtcclxuICAgIC8vIGlmIChvcHRpb24uZGF0YXNldHMubGVuZ3RoKSB7XHJcbiAgICAvLyAgIGNvbnN0IG5ld3dpZHRoID0gTWF0aC5tYXgob3B0aW9uLmxhYmVscy5sZW5ndGggKiBvcHRpb24uZGF0YXNldHMubGVuZ3RoICogbGFiZWxXaWR0aCwgJCh0aGlzLmNoYXJ0V3JhcHBlclJlZi5uYXRpdmVFbGVtZW50KS53aWR0aCgpKTtcclxuICAgIC8vICAgJCh0aGlzLmNoYXJ0QXJlYVdyYXBwZXJFeHRlbmRSZWYubmF0aXZlRWxlbWVudCkud2lkdGgobmV3d2lkdGgpO1xyXG4gICAgLy8gfVxyXG4gICAgY29uc3QgY29uZmlndXJhdGlvbjogQ2hhcnQuQ2hhcnRDb25maWd1cmF0aW9uID0ge1xyXG4gICAgICBvcHRpb25zOiB7XHJcbiAgICAgICAgcmVzcG9uc2l2ZTogdHJ1ZSxcclxuICAgICAgICBtYWludGFpbkFzcGVjdFJhdGlvOiBmYWxzZSxcclxuICAgICAgICBsZWdlbmQ6IHtcclxuICAgICAgICAgIGRpc3BsYXk6ICFvcHRpb24uaGlkZUxlZ2VuZFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgc2NhbGVzOiB7XHJcbiAgICAgICAgICB4QXhlczogW3tcclxuICAgICAgICAgICAgZGlzcGxheTogdHJ1ZSxcclxuICAgICAgICAgICAgc2NhbGVMYWJlbDoge1xyXG4gICAgICAgICAgICAgIGRpc3BsYXk6ICEhb3B0aW9uLnhUaXRsZSxcclxuICAgICAgICAgICAgICBsYWJlbFN0cmluZzogb3B0aW9uLnhUaXRsZSB8fCAnJ1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB0aWNrczoge1xyXG4gICAgICAgICAgICAgIGJlZ2luQXRaZXJvOiBvcHRpb24uYmVnaW5BdFplcm8gPz8gdHJ1ZSxcclxuICAgICAgICAgICAgICBjYWxsYmFjazogKHZhbHVlOiBudW1iZXIgfCBzdHJpbmcsIGluZGV4OiBudW1iZXIpID0+IHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBvcHRpb24udGlja3M/LnhMYWJlbCh2YWx1ZSwgaW5kZXgpIHx8IChOdW1iZXIuaXNOdW1iZXIodmFsdWUpID8gTnVtYmVyLnRvVk5DdXJyZW5jeSh2YWx1ZSkgOiB2YWx1ZSk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XSxcclxuICAgICAgICAgIHlBeGVzOiBbe1xyXG4gICAgICAgICAgICBkaXNwbGF5OiB0cnVlLFxyXG4gICAgICAgICAgICB0aWNrczoge1xyXG4gICAgICAgICAgICAgIGNhbGxiYWNrOiAodmFsdWU6IG51bWJlciB8IHN0cmluZywgaW5kZXg6IG51bWJlcikgPT4ge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIG9wdGlvbi50aWNrcz8ueUxhYmVsKHZhbHVlLCBpbmRleCkgfHwgKE51bWJlci5pc051bWJlcih2YWx1ZSkgPyBOdW1iZXIudG9WTkN1cnJlbmN5KHZhbHVlKSA6IHZhbHVlKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHNjYWxlTGFiZWw6IHtcclxuICAgICAgICAgICAgICBkaXNwbGF5OiAhIW9wdGlvbi55VGl0bGUsXHJcbiAgICAgICAgICAgICAgbGFiZWxTdHJpbmc6IG9wdGlvbi55VGl0bGUgfHwgJydcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfV1cclxuICAgICAgICB9LFxyXG4gICAgICAgIHRvb2x0aXBzOiB7XHJcbiAgICAgICAgICBjYWxsYmFja3M6IHtcclxuICAgICAgICAgICAgbGFiZWw6ICh0b29sdGlwSXRlbSwgZGF0YSkgPT4ge1xyXG4gICAgICAgICAgICAgIGNvbnN0IGRhdGFzZXRMYWJlbCA9IGRhdGE/LmRhdGFzZXRzW3Rvb2x0aXBJdGVtLmRhdGFzZXRJbmRleF0/LmxhYmVsO1xyXG4gICAgICAgICAgICAgIGNvbnN0IGxhYmVsID0gZGF0YT8ubGFiZWxzW3Rvb2x0aXBJdGVtLmluZGV4XSBhcyBzdHJpbmc7XHJcbiAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBkYXRhPy5kYXRhc2V0c1t0b29sdGlwSXRlbS5kYXRhc2V0SW5kZXhdPy5kYXRhW3Rvb2x0aXBJdGVtLmluZGV4XSBhcyBudW1iZXI7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIG9wdGlvbi50b29sdGlwcz8ubGFiZWwoe1xyXG4gICAgICAgICAgICAgICAgZGF0YXNldExhYmVsLFxyXG4gICAgICAgICAgICAgICAgbGFiZWwsXHJcbiAgICAgICAgICAgICAgICB2YWx1ZVxyXG4gICAgICAgICAgICAgIH0pIHx8IGAke2RhdGFzZXRMYWJlbH0gOiAke051bWJlci50b1ZOQ3VycmVuY3kodmFsdWUpfWA7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIHR5cGU6ICdob3Jpem9udGFsQmFyJyxcclxuICAgICAgZGF0YToge1xyXG4gICAgICAgIGxhYmVsczogb3B0aW9uLmxhYmVscyxcclxuICAgICAgICBkYXRhc2V0czogb3B0aW9uLmRhdGFzZXRzLm1hcCgoZSwgaWR4KSA9PiB7XHJcbiAgICAgICAgICBjb25zdCBkeW5hbWljQ29sb3IgPSB0aGlzLmR5bmFtaWNDb2xvcjtcclxuICAgICAgICAgIGNvbnN0IHJlc3VsdDogQ2hhcnQuQ2hhcnREYXRhU2V0cyA9IHtcclxuICAgICAgICAgICAgbGFiZWw6IGUubGFiZWwsXHJcbiAgICAgICAgICAgIGZpbGw6IGUuYmFja2dyb3VuZENvbG9yIHx8IHRoaXMuY2hhcnRDb25maWd1cmF0aW9uPy5kZWZhdWx0Q29sb3JzPy5baWR4XT8uYmFja2dyb3VuZENvbG9yIHx8IGR5bmFtaWNDb2xvcixcclxuICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yOiBlLmJhY2tncm91bmRDb2xvciB8fCB0aGlzLmNoYXJ0Q29uZmlndXJhdGlvbj8uZGVmYXVsdENvbG9ycz8uW2lkeF0/LmJhY2tncm91bmRDb2xvciB8fCBkeW5hbWljQ29sb3IsXHJcbiAgICAgICAgICAgIGRhdGE6IGUuZGF0YSxcclxuICAgICAgICAgICAgc3RhY2s6IGUuc3RhY2tcclxuICAgICAgICAgIH07XHJcbiAgICAgICAgICByZXR1cm4gcmVzdWx0O1xyXG4gICAgICAgIH0pXHJcbiAgICAgIH1cclxuICAgIH07XHJcblxyXG4gICAgaWYgKG9wdGlvbi5ob3ZlciA9PT0gJ1Nob3dBbGwnKSB7XHJcbiAgICAgIGNvbmZpZ3VyYXRpb24ub3B0aW9ucy50b29sdGlwcyA9IHtcclxuICAgICAgICAuLi5jb25maWd1cmF0aW9uLm9wdGlvbnMudG9vbHRpcHMsXHJcbiAgICAgICAgbW9kZTogJ2luZGV4JyxcclxuICAgICAgICBpbnRlcnNlY3Q6IGZhbHNlXHJcbiAgICAgIH07XHJcbiAgICAgIGNvbmZpZ3VyYXRpb24ub3B0aW9ucy5ob3ZlciA9IHtcclxuICAgICAgICAuLi5jb25maWd1cmF0aW9uLm9wdGlvbnMuaG92ZXIsXHJcbiAgICAgICAgbW9kZTogJ2luZGV4JyxcclxuICAgICAgICBpbnRlcnNlY3Q6IGZhbHNlXHJcbiAgICAgIH07XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5jaGFydCA9IG5ldyBDaGFydCh0aGlzLmN0eCwgY29uZmlndXJhdGlvbik7XHJcbiAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSByZW5kZXJMaW5lQ2hhcnQob3B0aW9uOiBMaW5lQ2hhcnRPcHRpb24pIHtcclxuICAgIGNvbnN0IGxhYmVsV2lkdGggPSBvcHRpb24ubGFiZWxXaWR0aCA/PyA1MDtcclxuICAgIGlmIChvcHRpb24uZGF0YXNldHMubGVuZ3RoKSB7XHJcbiAgICAgIC8vIGNvbnN0IG5ld3dpZHRoID0gTWF0aC5tYXgob3B0aW9uLmxhYmVscy5sZW5ndGggKiBsYWJlbFdpZHRoLCAkKHRoaXMuY2hhcnRXcmFwcGVyUmVmLm5hdGl2ZUVsZW1lbnQpLndpZHRoKCkpO1xyXG4gICAgICAvLyAkKHRoaXMuY2hhcnRBcmVhV3JhcHBlckV4dGVuZFJlZi5uYXRpdmVFbGVtZW50KS53aWR0aChuZXd3aWR0aCk7XHJcbiAgICAgIGNvbnN0IG5ld3dpZHRoID0gb3B0aW9uLmxhYmVscy5sZW5ndGggKiBsYWJlbFdpZHRoO1xyXG4gICAgICAkKHRoaXMuY2hhcnRBcmVhV3JhcHBlckV4dGVuZFJlZi5uYXRpdmVFbGVtZW50KS5jc3MoJ3dpZHRoJywgYG1heCgxMDAlLCR7bmV3d2lkdGh9cHgpYCk7XHJcbiAgICB9XHJcbiAgICBjb25zdCBjb25maWd1cmF0aW9uOiBDaGFydC5DaGFydENvbmZpZ3VyYXRpb24gPSB7XHJcbiAgICAgIG9wdGlvbnM6IHtcclxuICAgICAgICByZXNwb25zaXZlOiB0cnVlLFxyXG4gICAgICAgIG1haW50YWluQXNwZWN0UmF0aW86IGZhbHNlLFxyXG4gICAgICAgIGxlZ2VuZDoge1xyXG4gICAgICAgICAgZGlzcGxheTogIW9wdGlvbi5oaWRlTGVnZW5kXHJcbiAgICAgICAgfSxcclxuICAgICAgICBzY2FsZXM6IHtcclxuICAgICAgICAgIHhBeGVzOiBbe1xyXG4gICAgICAgICAgICBkaXNwbGF5OiB0cnVlLFxyXG4gICAgICAgICAgICBzY2FsZUxhYmVsOiB7XHJcbiAgICAgICAgICAgICAgZGlzcGxheTogISFvcHRpb24ueFRpdGxlLFxyXG4gICAgICAgICAgICAgIGxhYmVsU3RyaW5nOiBvcHRpb24ueFRpdGxlIHx8ICcnXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHRpY2tzOiB7XHJcbiAgICAgICAgICAgICAgY2FsbGJhY2s6ICh2YWx1ZTogbnVtYmVyIHwgc3RyaW5nLCBpbmRleDogbnVtYmVyKSA9PiB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gb3B0aW9uLnRpY2tzPy54TGFiZWwodmFsdWUsIGluZGV4KSB8fCAoTnVtYmVyLmlzTnVtYmVyKHZhbHVlKSA/IE51bWJlci50b1ZOQ3VycmVuY3kodmFsdWUpIDogdmFsdWUpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgIH1dLFxyXG4gICAgICAgICAgeUF4ZXM6IFt7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IHRydWUsXHJcbiAgICAgICAgICAgIHRpY2tzOiB7XHJcbiAgICAgICAgICAgICAgYmVnaW5BdFplcm86IG9wdGlvbi5iZWdpbkF0WmVybyA/PyB0cnVlLFxyXG4gICAgICAgICAgICAgIGNhbGxiYWNrOiAodmFsdWU6IG51bWJlciB8IHN0cmluZywgaW5kZXg6IG51bWJlcikgPT4ge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIG9wdGlvbi50aWNrcz8ueUxhYmVsKHZhbHVlLCBpbmRleCkgfHwgKE51bWJlci5pc051bWJlcih2YWx1ZSkgPyBOdW1iZXIudG9WTkN1cnJlbmN5KHZhbHVlKSA6IHZhbHVlKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHNjYWxlTGFiZWw6IHtcclxuICAgICAgICAgICAgICBkaXNwbGF5OiAhIW9wdGlvbi55VGl0bGUsXHJcbiAgICAgICAgICAgICAgbGFiZWxTdHJpbmc6IG9wdGlvbi55VGl0bGUgfHwgJydcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfV1cclxuICAgICAgICB9LFxyXG4gICAgICAgIHRvb2x0aXBzOiB7XHJcbiAgICAgICAgICBjYWxsYmFja3M6IHtcclxuICAgICAgICAgICAgbGFiZWw6ICh0b29sdGlwSXRlbSwgZGF0YSkgPT4ge1xyXG4gICAgICAgICAgICAgIGNvbnN0IGRhdGFzZXRMYWJlbCA9IGRhdGE/LmRhdGFzZXRzW3Rvb2x0aXBJdGVtLmRhdGFzZXRJbmRleF0/LmxhYmVsO1xyXG4gICAgICAgICAgICAgIGNvbnN0IGxhYmVsID0gZGF0YT8ubGFiZWxzW3Rvb2x0aXBJdGVtLmluZGV4XSBhcyBzdHJpbmc7XHJcbiAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBkYXRhPy5kYXRhc2V0c1t0b29sdGlwSXRlbS5kYXRhc2V0SW5kZXhdPy5kYXRhW3Rvb2x0aXBJdGVtLmluZGV4XSBhcyBudW1iZXI7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIG9wdGlvbi50b29sdGlwcz8ubGFiZWwoe1xyXG4gICAgICAgICAgICAgICAgZGF0YXNldExhYmVsLFxyXG4gICAgICAgICAgICAgICAgbGFiZWwsXHJcbiAgICAgICAgICAgICAgICB2YWx1ZVxyXG4gICAgICAgICAgICAgIH0pIHx8IGAke2RhdGFzZXRMYWJlbH0gOiAke051bWJlci50b1ZOQ3VycmVuY3kodmFsdWUpfWA7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIHR5cGU6ICdsaW5lJyxcclxuICAgICAgZGF0YToge1xyXG4gICAgICAgIGxhYmVsczogb3B0aW9uLmxhYmVscyxcclxuICAgICAgICBkYXRhc2V0czogb3B0aW9uLmRhdGFzZXRzLm1hcCgoZSwgaWR4KSA9PiB7XHJcbiAgICAgICAgICBjb25zdCBkeW5hbWljQ29sb3IgPSB0aGlzLmR5bmFtaWNDb2xvcjtcclxuICAgICAgICAgIGNvbnN0IHJlc3VsdDogQ2hhcnQuQ2hhcnREYXRhU2V0cyA9IHtcclxuICAgICAgICAgICAgbGFiZWw6IGUubGFiZWwsXHJcbiAgICAgICAgICAgIGZpbGw6IGUuYmFja2dyb3VuZENvbG9yIHx8IHRoaXMuY2hhcnRDb25maWd1cmF0aW9uPy5kZWZhdWx0Q29sb3JzPy5baWR4XT8uYmFja2dyb3VuZENvbG9yIHx8IGR5bmFtaWNDb2xvcixcclxuICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yOiBlLmJhY2tncm91bmRDb2xvciB8fCB0aGlzLmNoYXJ0Q29uZmlndXJhdGlvbj8uZGVmYXVsdENvbG9ycz8uW2lkeF0/LmJhY2tncm91bmRDb2xvciB8fCBkeW5hbWljQ29sb3IsXHJcbiAgICAgICAgICAgIGJvcmRlckNvbG9yOiBlLmJvcmRlckNvbG9yIHx8IHRoaXMuY2hhcnRDb25maWd1cmF0aW9uPy5kZWZhdWx0Q29sb3JzPy5baWR4XT8uYm9yZGVyQ29sb3IgfHwgZHluYW1pY0NvbG9yLFxyXG4gICAgICAgICAgICBkYXRhOiBlLmRhdGEsXHJcbiAgICAgICAgICAgIGxpbmVUZW5zaW9uOiAwLFxyXG4gICAgICAgICAgfTtcclxuICAgICAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICAgICAgfSlcclxuICAgICAgfVxyXG4gICAgfTtcclxuXHJcbiAgICBpZiAob3B0aW9uLmhvdmVyID09PSAnU2hvd0FsbCcpIHtcclxuICAgICAgY29uZmlndXJhdGlvbi5vcHRpb25zLnRvb2x0aXBzID0ge1xyXG4gICAgICAgIC4uLmNvbmZpZ3VyYXRpb24ub3B0aW9ucy50b29sdGlwcyxcclxuICAgICAgICBtb2RlOiAnaW5kZXgnLFxyXG4gICAgICAgIGludGVyc2VjdDogZmFsc2VcclxuICAgICAgfTtcclxuICAgICAgY29uZmlndXJhdGlvbi5vcHRpb25zLmhvdmVyID0ge1xyXG4gICAgICAgIC4uLmNvbmZpZ3VyYXRpb24ub3B0aW9ucy5ob3ZlcixcclxuICAgICAgICBtb2RlOiAnaW5kZXgnLFxyXG4gICAgICAgIGludGVyc2VjdDogZmFsc2VcclxuICAgICAgfTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmNoYXJ0ID0gbmV3IENoYXJ0KHRoaXMuY3R4LCBjb25maWd1cmF0aW9uKTtcclxuICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHJlbmRlclN0YWNrQXJlYUNoYXJ0KG9wdGlvbjogU3RhY2tBcmVhQ2hhcnRPcHRpb24pIHtcclxuICAgIGNvbnN0IGxhYmVsV2lkdGggPSBvcHRpb24ubGFiZWxXaWR0aCA/PyA1MDtcclxuICAgIGlmIChvcHRpb24uZGF0YXNldHMubGVuZ3RoKSB7XHJcbiAgICAgIC8vIGNvbnN0IG5ld3dpZHRoID0gTWF0aC5tYXgob3B0aW9uLmxhYmVscy5sZW5ndGggKiBsYWJlbFdpZHRoLCAkKHRoaXMuY2hhcnRXcmFwcGVyUmVmLm5hdGl2ZUVsZW1lbnQpLndpZHRoKCkpO1xyXG4gICAgICAvLyAkKHRoaXMuY2hhcnRBcmVhV3JhcHBlckV4dGVuZFJlZi5uYXRpdmVFbGVtZW50KS53aWR0aChuZXd3aWR0aCk7XHJcbiAgICAgIGNvbnN0IG5ld3dpZHRoID0gb3B0aW9uLmxhYmVscy5sZW5ndGggKiBsYWJlbFdpZHRoO1xyXG4gICAgICAkKHRoaXMuY2hhcnRBcmVhV3JhcHBlckV4dGVuZFJlZi5uYXRpdmVFbGVtZW50KS5jc3MoJ3dpZHRoJywgYG1heCgxMDAlLCR7bmV3d2lkdGh9cHgpYCk7XHJcbiAgICB9XHJcbiAgICBjb25zdCBjb25maWd1cmF0aW9uOiBDaGFydC5DaGFydENvbmZpZ3VyYXRpb24gPSB7XHJcbiAgICAgIG9wdGlvbnM6IHtcclxuICAgICAgICByZXNwb25zaXZlOiB0cnVlLFxyXG4gICAgICAgIG1haW50YWluQXNwZWN0UmF0aW86IGZhbHNlLFxyXG4gICAgICAgIGxlZ2VuZDoge1xyXG4gICAgICAgICAgZGlzcGxheTogIW9wdGlvbi5oaWRlTGVnZW5kXHJcbiAgICAgICAgfSxcclxuICAgICAgICBzY2FsZXM6IHtcclxuICAgICAgICAgIHhBeGVzOiBbe1xyXG4gICAgICAgICAgICBkaXNwbGF5OiB0cnVlLFxyXG4gICAgICAgICAgICBzY2FsZUxhYmVsOiB7XHJcbiAgICAgICAgICAgICAgZGlzcGxheTogISFvcHRpb24ueFRpdGxlLFxyXG4gICAgICAgICAgICAgIGxhYmVsU3RyaW5nOiBvcHRpb24ueFRpdGxlIHx8ICcnXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHRpY2tzOiB7XHJcbiAgICAgICAgICAgICAgY2FsbGJhY2s6ICh2YWx1ZTogbnVtYmVyIHwgc3RyaW5nLCBpbmRleDogbnVtYmVyKSA9PiB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gb3B0aW9uLnRpY2tzPy54TGFiZWwodmFsdWUsIGluZGV4KSB8fCAoTnVtYmVyLmlzTnVtYmVyKHZhbHVlKSA/IE51bWJlci50b1ZOQ3VycmVuY3kodmFsdWUpIDogdmFsdWUpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgIH1dLFxyXG4gICAgICAgICAgeUF4ZXM6IFt7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IHRydWUsXHJcbiAgICAgICAgICAgIHRpY2tzOiB7XHJcbiAgICAgICAgICAgICAgYmVnaW5BdFplcm86IG9wdGlvbi5iZWdpbkF0WmVybyA/PyB0cnVlLFxyXG4gICAgICAgICAgICAgIGNhbGxiYWNrOiAodmFsdWU6IG51bWJlciB8IHN0cmluZywgaW5kZXg6IG51bWJlcikgPT4ge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIG9wdGlvbi50aWNrcz8ueUxhYmVsKHZhbHVlLCBpbmRleCkgfHwgKE51bWJlci5pc051bWJlcih2YWx1ZSkgPyBOdW1iZXIudG9WTkN1cnJlbmN5KHZhbHVlKSA6IHZhbHVlKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHN0YWNrZWQ6IHRydWUsXHJcbiAgICAgICAgICAgIHNjYWxlTGFiZWw6IHtcclxuICAgICAgICAgICAgICBkaXNwbGF5OiAhIW9wdGlvbi55VGl0bGUsXHJcbiAgICAgICAgICAgICAgbGFiZWxTdHJpbmc6IG9wdGlvbi55VGl0bGUgfHwgJydcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfV1cclxuICAgICAgICB9LFxyXG4gICAgICAgIHRvb2x0aXBzOiB7XHJcbiAgICAgICAgICBjYWxsYmFja3M6IHtcclxuICAgICAgICAgICAgbGFiZWw6ICh0b29sdGlwSXRlbSwgZGF0YSkgPT4ge1xyXG4gICAgICAgICAgICAgIGNvbnN0IGRhdGFzZXRMYWJlbCA9IGRhdGE/LmRhdGFzZXRzW3Rvb2x0aXBJdGVtLmRhdGFzZXRJbmRleF0/LmxhYmVsO1xyXG4gICAgICAgICAgICAgIGNvbnN0IGxhYmVsID0gZGF0YT8ubGFiZWxzW3Rvb2x0aXBJdGVtLmluZGV4XSBhcyBzdHJpbmc7XHJcbiAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBkYXRhPy5kYXRhc2V0c1t0b29sdGlwSXRlbS5kYXRhc2V0SW5kZXhdPy5kYXRhW3Rvb2x0aXBJdGVtLmluZGV4XSBhcyBudW1iZXI7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIG9wdGlvbi50b29sdGlwcz8ubGFiZWwoe1xyXG4gICAgICAgICAgICAgICAgZGF0YXNldExhYmVsLFxyXG4gICAgICAgICAgICAgICAgbGFiZWwsXHJcbiAgICAgICAgICAgICAgICB2YWx1ZVxyXG4gICAgICAgICAgICAgIH0pIHx8IGAke2RhdGFzZXRMYWJlbH0gOiAke051bWJlci50b1ZOQ3VycmVuY3kodmFsdWUpfWA7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIHR5cGU6ICdsaW5lJyxcclxuICAgICAgZGF0YToge1xyXG4gICAgICAgIGxhYmVsczogb3B0aW9uLmxhYmVscyxcclxuICAgICAgICBkYXRhc2V0czogb3B0aW9uLmRhdGFzZXRzLm1hcCgoZSwgaWR4KSA9PiB7XHJcbiAgICAgICAgICBjb25zdCBkeW5hbWljQ29sb3IgPSB0aGlzLmR5bmFtaWNDb2xvcjtcclxuICAgICAgICAgIGNvbnN0IHJlc3VsdDogQ2hhcnQuQ2hhcnREYXRhU2V0cyA9IHtcclxuICAgICAgICAgICAgbGFiZWw6IGUubGFiZWwsXHJcbiAgICAgICAgICAgIC8vIGZpbGw6IGUuYmFja2dyb3VuZENvbG9yLFxyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IGUuYmFja2dyb3VuZENvbG9yIHx8IHRoaXMuY2hhcnRDb25maWd1cmF0aW9uPy5kZWZhdWx0Q29sb3JzPy5baWR4XT8uYmFja2dyb3VuZENvbG9yIHx8IGR5bmFtaWNDb2xvcixcclxuICAgICAgICAgICAgYm9yZGVyQ29sb3I6IGUuYm9yZGVyQ29sb3IgfHwgdGhpcy5jaGFydENvbmZpZ3VyYXRpb24/LmRlZmF1bHRDb2xvcnM/LltpZHhdPy5ib3JkZXJDb2xvciB8fCBkeW5hbWljQ29sb3IsXHJcbiAgICAgICAgICAgIGRhdGE6IGUuZGF0YSxcclxuICAgICAgICAgICAgbGluZVRlbnNpb246IDAsXHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgICAgICB9KVxyXG4gICAgICB9XHJcbiAgICB9O1xyXG5cclxuICAgIGlmIChvcHRpb24uaG92ZXIgPT09ICdTaG93QWxsJykge1xyXG4gICAgICBjb25maWd1cmF0aW9uLm9wdGlvbnMudG9vbHRpcHMgPSB7XHJcbiAgICAgICAgLi4uY29uZmlndXJhdGlvbi5vcHRpb25zLnRvb2x0aXBzLFxyXG4gICAgICAgIG1vZGU6ICdpbmRleCcsXHJcbiAgICAgICAgaW50ZXJzZWN0OiBmYWxzZVxyXG4gICAgICB9O1xyXG4gICAgICBjb25maWd1cmF0aW9uLm9wdGlvbnMuaG92ZXIgPSB7XHJcbiAgICAgICAgLi4uY29uZmlndXJhdGlvbi5vcHRpb25zLmhvdmVyLFxyXG4gICAgICAgIG1vZGU6ICdpbmRleCcsXHJcbiAgICAgICAgaW50ZXJzZWN0OiBmYWxzZVxyXG4gICAgICB9O1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuY2hhcnQgPSBuZXcgQ2hhcnQodGhpcy5jdHgsIGNvbmZpZ3VyYXRpb24pO1xyXG4gICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgcmVuZGVyQmFyTGluZUNoYXJ0KG9wdGlvbjogQmFyTGluZUNoYXJ0T3B0aW9uKSB7XHJcbiAgICBjb25zdCBsYWJlbFdpZHRoID0gb3B0aW9uLmxhYmVsV2lkdGggPz8gNTA7XHJcbiAgICBpZiAob3B0aW9uLmRhdGFzZXRzLmxlbmd0aCkge1xyXG4gICAgICBjb25zdCBudW1iZXJPZkJhcnMgPSBvcHRpb24uZGF0YXNldHMuZmlsdGVyKGUgPT4gZS50eXBlID09PSAnYmFyJykubGVuZ3RoO1xyXG4gICAgICBpZiAobnVtYmVyT2ZCYXJzIDw9IDEpIHtcclxuICAgICAgICAvLyBjb25zdCBuZXd3aWR0aCA9IE1hdGgubWF4KG9wdGlvbi5sYWJlbHMubGVuZ3RoICogbGFiZWxXaWR0aCwgJCh0aGlzLmNoYXJ0V3JhcHBlclJlZi5uYXRpdmVFbGVtZW50KS53aWR0aCgpKTtcclxuICAgICAgICAvLyAkKHRoaXMuY2hhcnRBcmVhV3JhcHBlckV4dGVuZFJlZi5uYXRpdmVFbGVtZW50KS53aWR0aChuZXd3aWR0aCk7XHJcbiAgICAgICAgY29uc3QgbmV3d2lkdGggPSBvcHRpb24ubGFiZWxzLmxlbmd0aCAqIGxhYmVsV2lkdGg7XHJcbiAgICAgICAgJCh0aGlzLmNoYXJ0QXJlYVdyYXBwZXJFeHRlbmRSZWYubmF0aXZlRWxlbWVudCkuY3NzKCd3aWR0aCcsIGBtYXgoMTAwJSwke25ld3dpZHRofXB4KWApO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIC8vIGNvbnN0IG5ld3dpZHRoID0gTWF0aC5tYXgob3B0aW9uLmxhYmVscy5sZW5ndGggKiBudW1iZXJPZkJhcnMgKiBsYWJlbFdpZHRoLCAkKHRoaXMuY2hhcnRXcmFwcGVyUmVmLm5hdGl2ZUVsZW1lbnQpLndpZHRoKCkpO1xyXG4gICAgICAgIC8vICQodGhpcy5jaGFydEFyZWFXcmFwcGVyRXh0ZW5kUmVmLm5hdGl2ZUVsZW1lbnQpLndpZHRoKG5ld3dpZHRoKTtcclxuICAgICAgICBjb25zdCBuZXd3aWR0aCA9IG9wdGlvbi5sYWJlbHMubGVuZ3RoICogbnVtYmVyT2ZCYXJzICogbGFiZWxXaWR0aDtcclxuICAgICAgICAkKHRoaXMuY2hhcnRBcmVhV3JhcHBlckV4dGVuZFJlZi5uYXRpdmVFbGVtZW50KS5jc3MoJ3dpZHRoJywgYG1heCgxMDAlLCR7bmV3d2lkdGh9cHgpYCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGNvbnN0IGxlZnRJZCA9IGBJJHt1dWlkLnY0KCl9YDtcclxuICAgIGNvbnN0IHJpZ2h0SWQgPSBgSSR7dXVpZC52NCgpfWA7XHJcbiAgICBjb25zdCB5QXhlcyA9IFt7XHJcbiAgICAgIHR5cGU6ICdsaW5lYXInLFxyXG4gICAgICBkaXNwbGF5OiB0cnVlLFxyXG4gICAgICBwb3NpdGlvbjogJ2xlZnQnLFxyXG4gICAgICBpZDogbGVmdElkLFxyXG4gICAgICB0aWNrczoge1xyXG4gICAgICAgIGJlZ2luQXRaZXJvOiBvcHRpb24uYmVnaW5BdFplcm8gPz8gdHJ1ZSxcclxuICAgICAgICBzdWdnZXN0ZWRNaW46IDAsXHJcbiAgICAgICAgY2FsbGJhY2s6ICh2YWx1ZTogbnVtYmVyIHwgc3RyaW5nLCBpbmRleDogbnVtYmVyKSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gb3B0aW9uLnRpY2tzPy55TGFiZWwodmFsdWUsIGluZGV4KSB8fCAoTnVtYmVyLmlzTnVtYmVyKHZhbHVlKSA/IE51bWJlci50b1ZOQ3VycmVuY3kodmFsdWUpIDogdmFsdWUpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAgc2NhbGVMYWJlbDoge1xyXG4gICAgICAgIGRpc3BsYXk6ICEhb3B0aW9uLnlUaXRsZSxcclxuICAgICAgICBsYWJlbFN0cmluZzogb3B0aW9uLnlUaXRsZSB8fCAnJyxcclxuICAgICAgfSxcclxuICAgICAgc3RhY2tlZDohIW9wdGlvbi55U3RhY2tlZCxcclxuICAgIH1dO1xyXG4gICAgaWYgKG9wdGlvbi5kYXRhc2V0cy5zb21lKGUgPT4gZS55QWxpZ24gPT09ICdyaWdodCcpKSB7XHJcbiAgICAgIHlBeGVzLnB1c2goe1xyXG4gICAgICAgIHR5cGU6ICdsaW5lYXInLFxyXG4gICAgICAgIGRpc3BsYXk6IHRydWUsXHJcbiAgICAgICAgcG9zaXRpb246ICdyaWdodCcsXHJcbiAgICAgICAgaWQ6IHJpZ2h0SWQsXHJcbiAgICAgICAgdGlja3M6IHtcclxuICAgICAgICAgIGJlZ2luQXRaZXJvOiBvcHRpb24uYmVnaW5BdFplcm8gPz8gdHJ1ZSxcclxuICAgICAgICAgIHN1Z2dlc3RlZE1pbjogMCxcclxuICAgICAgICAgIGNhbGxiYWNrOiAodmFsdWU6IG51bWJlciB8IHN0cmluZywgaW5kZXg6IG51bWJlcikgPT4ge1xyXG4gICAgICAgICAgICByZXR1cm4gb3B0aW9uLnRpY2tzPy55UmlnaHRMYWJlbCh2YWx1ZSwgaW5kZXgpIHx8IChOdW1iZXIuaXNOdW1iZXIodmFsdWUpID8gTnVtYmVyLnRvVk5DdXJyZW5jeSh2YWx1ZSkgOiB2YWx1ZSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICBzY2FsZUxhYmVsOiB7XHJcbiAgICAgICAgICBkaXNwbGF5OiAhIW9wdGlvbi55UmlnaHRUaXRsZSxcclxuICAgICAgICAgIGxhYmVsU3RyaW5nOiBvcHRpb24ueVJpZ2h0VGl0bGUgfHwgJydcclxuICAgICAgICB9LFxyXG4gICAgICAgIHN0YWNrZWQ6ISFvcHRpb24ueVN0YWNrZWQsXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgY29uc3QgY29uZmlndXJhdGlvbjogQ2hhcnQuQ2hhcnRDb25maWd1cmF0aW9uID0ge1xyXG4gICAgICBvcHRpb25zOiB7XHJcbiAgICAgICAgcmVzcG9uc2l2ZTogdHJ1ZSxcclxuICAgICAgICBtYWludGFpbkFzcGVjdFJhdGlvOiBmYWxzZSxcclxuICAgICAgICBsZWdlbmQ6IHtcclxuICAgICAgICAgIGRpc3BsYXk6ICFvcHRpb24uaGlkZUxlZ2VuZFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgdGl0bGU6IHtcclxuICAgICAgICAgIGRpc3BsYXk6IHRydWUsXHJcbiAgICAgICAgICB0ZXh0OiBvcHRpb24udGl0bGVcclxuICAgICAgICB9LFxyXG4gICAgICAgIHNjYWxlczoge1xyXG4gICAgICAgICAgeEF4ZXM6IFt7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IHRydWUsXHJcbiAgICAgICAgICAgIHNjYWxlTGFiZWw6IHtcclxuICAgICAgICAgICAgICBkaXNwbGF5OiAhIW9wdGlvbi54VGl0bGUsXHJcbiAgICAgICAgICAgICAgbGFiZWxTdHJpbmc6IG9wdGlvbi54VGl0bGUgfHwgJydcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgdGlja3M6IHtcclxuICAgICAgICAgICAgICBjYWxsYmFjazogKHZhbHVlOiBudW1iZXIgfCBzdHJpbmcsIGluZGV4OiBudW1iZXIpID0+IHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBvcHRpb24udGlja3M/LnhMYWJlbCh2YWx1ZSwgaW5kZXgpIHx8IChOdW1iZXIuaXNOdW1iZXIodmFsdWUpID8gTnVtYmVyLnRvVk5DdXJyZW5jeSh2YWx1ZSkgOiB2YWx1ZSk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBzdGFja2VkOiAhIW9wdGlvbi54U3RhY2tlZFxyXG4gICAgICAgICAgfV0sXHJcbiAgICAgICAgICB5QXhlc1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgdG9vbHRpcHM6IHtcclxuICAgICAgICAgIGNhbGxiYWNrczoge1xyXG4gICAgICAgICAgICBsYWJlbDogKHRvb2x0aXBJdGVtLCBkYXRhKSA9PiB7XHJcbiAgICAgICAgICAgICAgY29uc3QgZGF0YXNldExhYmVsID0gZGF0YT8uZGF0YXNldHNbdG9vbHRpcEl0ZW0uZGF0YXNldEluZGV4XT8ubGFiZWw7XHJcbiAgICAgICAgICAgICAgY29uc3QgbGFiZWwgPSBkYXRhPy5sYWJlbHNbdG9vbHRpcEl0ZW0uaW5kZXhdIGFzIHN0cmluZztcclxuICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9IGRhdGE/LmRhdGFzZXRzW3Rvb2x0aXBJdGVtLmRhdGFzZXRJbmRleF0/LmRhdGFbdG9vbHRpcEl0ZW0uaW5kZXhdIGFzIG51bWJlcjtcclxuICAgICAgICAgICAgICByZXR1cm4gb3B0aW9uLnRvb2x0aXBzPy5sYWJlbCh7XHJcbiAgICAgICAgICAgICAgICBkYXRhc2V0TGFiZWwsXHJcbiAgICAgICAgICAgICAgICBsYWJlbCxcclxuICAgICAgICAgICAgICAgIHZhbHVlXHJcbiAgICAgICAgICAgICAgfSkgfHwgYCR7ZGF0YXNldExhYmVsID8gYFske2RhdGFzZXRMYWJlbH1dIGAgOiAnJ30gJHtsYWJlbH0gOiAke051bWJlci50b1ZOQ3VycmVuY3kodmFsdWUpfWA7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIGRhdGE6IHtcclxuICAgICAgICBsYWJlbHM6IG9wdGlvbi5sYWJlbHMsXHJcbiAgICAgICAgZGF0YXNldHM6IG9wdGlvbi5kYXRhc2V0cy5tYXAoKGUsIGlkeCkgPT4ge1xyXG4gICAgICAgICAgY29uc3QgZHluYW1pY0NvbG9yID0gdGhpcy5keW5hbWljQ29sb3I7XHJcbiAgICAgICAgICBjb25zdCByZXN1bHQ6IENoYXJ0LkNoYXJ0RGF0YVNldHMgPSB7XHJcbiAgICAgICAgICAgIHR5cGU6IGUudHlwZSxcclxuICAgICAgICAgICAgbGFiZWw6IGUubGFiZWwsXHJcbiAgICAgICAgICAgIGZpbGw6IGUuYmFja2dyb3VuZENvbG9yIHx8IHRoaXMuY2hhcnRDb25maWd1cmF0aW9uPy5kZWZhdWx0Q29sb3JzPy5baWR4XT8uYmFja2dyb3VuZENvbG9yIHx8IGR5bmFtaWNDb2xvcixcclxuICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yOiBlLmJhY2tncm91bmRDb2xvciB8fCB0aGlzLmNoYXJ0Q29uZmlndXJhdGlvbj8uZGVmYXVsdENvbG9ycz8uW2lkeF0/LmJhY2tncm91bmRDb2xvciB8fCBkeW5hbWljQ29sb3IsXHJcbiAgICAgICAgICAgIGJvcmRlckNvbG9yOiBlLmJvcmRlckNvbG9yIHx8IHRoaXMuY2hhcnRDb25maWd1cmF0aW9uPy5kZWZhdWx0Q29sb3JzPy5baWR4XT8uYm9yZGVyQ29sb3IgfHwgZHluYW1pY0NvbG9yLFxyXG4gICAgICAgICAgICBkYXRhOiBlLmRhdGEsXHJcbiAgICAgICAgICAgIHlBeGlzSUQ6IGUueUFsaWduID09PSAncmlnaHQnID8gcmlnaHRJZCA6IGxlZnRJZCxcclxuICAgICAgICAgICAgbGluZVRlbnNpb246IDAsXHJcbiAgICAgICAgICAgIG9yZGVyOmUub3JkZXIgPz8gMVxyXG4gICAgICAgICAgfTtcclxuICAgICAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICAgICAgfSksXHJcbiAgICAgIH1cclxuICAgIH07XHJcblxyXG4gICAgaWYgKG9wdGlvbi5ob3ZlciA9PT0gJ1Nob3dBbGwnKSB7XHJcbiAgICAgIGNvbmZpZ3VyYXRpb24ub3B0aW9ucy50b29sdGlwcyA9IHtcclxuICAgICAgICAuLi5jb25maWd1cmF0aW9uLm9wdGlvbnMudG9vbHRpcHMsXHJcbiAgICAgICAgbW9kZTogJ2luZGV4JyxcclxuICAgICAgICBpbnRlcnNlY3Q6IGZhbHNlXHJcbiAgICAgIH07XHJcbiAgICAgIGNvbmZpZ3VyYXRpb24ub3B0aW9ucy5ob3ZlciA9IHtcclxuICAgICAgICAuLi5jb25maWd1cmF0aW9uLm9wdGlvbnMuaG92ZXIsXHJcbiAgICAgICAgbW9kZTogJ2luZGV4JyxcclxuICAgICAgICBpbnRlcnNlY3Q6IGZhbHNlXHJcbiAgICAgIH07XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5jaGFydCA9IG5ldyBDaGFydCh0aGlzLmN0eCwgY29uZmlndXJhdGlvbik7XHJcbiAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgbG9hZGluZ1N0YXJ0ID0gKCkgPT4ge1xyXG4gICAgdGhpcy5pc0xvYWRpbmcgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXQgZHluYW1pY0NvbG9yKCkge1xyXG4gICAgY29uc3QgciA9IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDI1NSk7XHJcbiAgICBjb25zdCBnID0gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogMjU1KTtcclxuICAgIGNvbnN0IGIgPSBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAyNTUpO1xyXG4gICAgcmV0dXJuICdyZ2IoJyArIHIgKyAnLCcgKyBnICsgJywnICsgYiArICcpJztcclxuICB9XHJcbn1cclxuIl19
@@ -88,4 +88,4 @@ export const ChartColors = {
88
88
  White: '#FFFFFF',
89
89
  };
90
90
  export const CHART_CONFIG = new InjectionToken('chart.configuration');
91
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnQubW9kZWwuanMiLCJzb3VyY2VSb290IjoiQzovVXNlcnMvbmdoaWF0dDE1X29uZW1vdW50L0RvY3VtZW50cy9saWItY29yZS11aS9wcm9qZWN0cy9zZC1jb3JlL2NoYXJ0LyIsInNvdXJjZXMiOlsic3JjL2xpYi9jaGFydC5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRS9DLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRztJQUN6QixHQUFHLEVBQUUsbUJBQW1CO0lBQ3hCLE1BQU0sRUFBRSxtQkFBbUI7SUFDM0IsTUFBTSxFQUFFLG1CQUFtQjtJQUMzQixLQUFLLEVBQUUsbUJBQW1CO0lBQzFCLElBQUksRUFBRSxtQkFBbUI7SUFDekIsTUFBTSxFQUFFLG9CQUFvQjtJQUM1QixJQUFJLEVBQUUsb0JBQW9CO0lBQzFCLFNBQVMsRUFBRSxTQUFTO0lBQ3BCLFNBQVMsRUFBRSxTQUFTO0lBQ3BCLFNBQVMsRUFBRSxTQUFTO0lBQ3BCLFNBQVMsRUFBRSxTQUFTO0lBQ3BCLFNBQVMsRUFBRSxTQUFTO0lBQ3BCLFNBQVMsRUFBRSxTQUFTO0lBQ3BCLFNBQVMsRUFBRSxTQUFTO0lBQ3BCLFFBQVEsRUFBRSxTQUFTO0lBQ25CLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLE1BQU0sRUFBRSxTQUFTO0lBQ2pCLFFBQVEsRUFBRSxTQUFTO0lBQ25CLFFBQVEsRUFBRSxTQUFTO0lBQ25CLFFBQVEsRUFBRSxTQUFTO0lBQ25CLFFBQVEsRUFBRSxTQUFTO0lBQ25CLFFBQVEsRUFBRSxTQUFTO0lBQ25CLFFBQVEsRUFBRSxTQUFTO0lBQ25CLFFBQVEsRUFBRSxTQUFTO0lBQ25CLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLFNBQVMsRUFBRSxTQUFTO0lBQ3BCLFNBQVMsRUFBRSxTQUFTO0lBQ3BCLFNBQVMsRUFBRSxTQUFTO0lBQ3BCLFNBQVMsRUFBRSxTQUFTO0lBQ3BCLFNBQVMsRUFBRSxTQUFTO0lBQ3BCLFNBQVMsRUFBRSxTQUFTO0lBQ3BCLFNBQVMsRUFBRSxTQUFTO0lBQ3BCLFFBQVEsRUFBRSxTQUFTO0lBQ25CLFNBQVMsRUFBRSxTQUFTO0lBQ3BCLFNBQVMsRUFBRSxTQUFTO0lBQ3BCLFNBQVMsRUFBRSxTQUFTO0lBQ3BCLFNBQVMsRUFBRSxTQUFTO0lBQ3BCLFNBQVMsRUFBRSxTQUFTO0lBQ3BCLFNBQVMsRUFBRSxTQUFTO0lBQ3BCLFNBQVMsRUFBRSxTQUFTO0lBQ3BCLFFBQVEsRUFBRSxTQUFTO0lBQ25CLE1BQU0sRUFBRSxTQUFTO0lBQ2pCLE1BQU0sRUFBRSxTQUFTO0lBQ2pCLE1BQU0sRUFBRSxTQUFTO0lBQ2pCLE1BQU0sRUFBRSxTQUFTO0lBQ2pCLE1BQU0sRUFBRSxTQUFTO0lBQ2pCLE1BQU0sRUFBRSxTQUFTO0lBQ2pCLE1BQU0sRUFBRSxTQUFTO0lBQ2pCLEtBQUssRUFBRSxTQUFTO0lBQ2hCLFFBQVEsRUFBRSxTQUFTO0lBQ25CLFFBQVEsRUFBRSxTQUFTO0lBQ25CLFFBQVEsRUFBRSxTQUFTO0lBQ25CLFFBQVEsRUFBRSxTQUFTO0lBQ25CLFFBQVEsRUFBRSxTQUFTO0lBQ25CLFFBQVEsRUFBRSxTQUFTO0lBQ25CLFFBQVEsRUFBRSxTQUFTO0lBQ25CLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLE1BQU0sRUFBRSxTQUFTO0lBQ2pCLFdBQVcsRUFBRSxTQUFTO0lBQ3RCLFdBQVcsRUFBRSxTQUFTO0lBQ3RCLFdBQVcsRUFBRSxTQUFTO0lBQ3RCLFdBQVcsRUFBRSxTQUFTO0lBQ3RCLFdBQVcsRUFBRSxTQUFTO0lBQ3RCLFdBQVcsRUFBRSxTQUFTO0lBQ3RCLFdBQVcsRUFBRSxTQUFTO0lBQ3RCLFVBQVUsRUFBRSxTQUFTO0lBQ3JCLFlBQVksRUFBRSxTQUFTO0lBQ3ZCLGNBQWMsRUFBRSxTQUFTO0lBQ3pCLFVBQVUsRUFBRSxTQUFTO0lBQ3JCLEtBQUssRUFBRSxTQUFTO0lBQ2hCLEtBQUssRUFBRSxTQUFTO0NBQ2pCLENBQUM7QUErSUYsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLElBQUksY0FBYyxDQUFzQixxQkFBcUIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmV4cG9ydCBjb25zdCBDaGFydENvbG9ycyA9IHtcclxuICBSZWQ6ICdyZ2IoMjU1LCA5OSwgMTMyKScsXHJcbiAgT3JhbmdlOiAncmdiKDI1NSwgMTU5LCA2NCknLFxyXG4gIFllbGxvdzogJ3JnYigyNTUsIDIwNSwgODYpJyxcclxuICBHcmVlbjogJ3JnYig3NSwgMTkyLCAxOTIpJyxcclxuICBCbHVlOiAncmdiKDU0LCAxNjIsIDIzNSknLFxyXG4gIFB1cnBsZTogJ3JnYigxNTMsIDEwMiwgMjU1KScsXHJcbiAgR3JleTogJ3JnYigyMDEsIDIwMywgMjA3KScsXHJcbiAgUHVycGxlNzAwOiAnIzJFMjI0QycsXHJcbiAgUHVycGxlNjAwOiAnIzQ1MzM3MicsXHJcbiAgUHVycGxlNTAwOiAnIzU3NDE5MScsXHJcbiAgUHVycGxlNDAwOiAnIzczNTZCRicsXHJcbiAgUHVycGxlMzAwOiAnIzk1N0ZDRScsXHJcbiAgUHVycGxlMjAwOiAnI0MxQjRFMicsXHJcbiAgUHVycGxlMTAwOiAnI0UzRERGMicsXHJcbiAgUHVycGxlNTA6ICcjRjNGMUY5JyxcclxuICBCbHVlNzAwOiAnIzBGMkM2MCcsXHJcbiAgQmx1ZTYwMDogJyMxNzQyOTEnLFxyXG4gIEJsdWU1MDA6ICcjMUQ1M0I3JyxcclxuICBCbHVlNDAwOiAnIzI3NkVGMScsXHJcbiAgQmx1ZTMwMDogJyM1QTkwRjQnLFxyXG4gIEJsdWUyMDA6ICcjOUZCRkY4JyxcclxuICBCbHVlMTAwOiAnI0Q0RTJGQycsXHJcbiAgQmx1ZTUwOiAnI0VERjNGRCcsXHJcbiAgR3JlZW43MDA6ICcjMEQ0MDIwJyxcclxuICBHcmVlbjYwMDogJyMxNTZBMzYnLFxyXG4gIEdyZWVuNTAwOiAnIzA5ODYzRCcsXHJcbiAgR3JlZW40MDA6ICcjMjFBNDUzJyxcclxuICBHcmVlbjMwMDogJyM0M0JGNzUnLFxyXG4gIEdyZWVuMjAwOiAnIzlFRTJCOCcsXHJcbiAgR3JlZW4xMDA6ICcjQ0ZGM0REJyxcclxuICBHcmVlbjUwOiAnI0YwRkFGMycsXHJcbiAgWWVsbG93NzAwOiAnIzY2NEMxQScsXHJcbiAgWWVsbG93NjAwOiAnIzk5NzMyOCcsXHJcbiAgWWVsbG93NTAwOiAnI0MxOTEzMicsXHJcbiAgWWVsbG93NDAwOiAnI0ZGQzA0MycsXHJcbiAgWWVsbG93MzAwOiAnI0ZGQ0Y3MCcsXHJcbiAgWWVsbG93MjAwOiAnI0ZGRTNBQycsXHJcbiAgWWVsbG93MTAwOiAnI0ZGRjJEOScsXHJcbiAgWWVsbG93NTA6ICcjRkZGOUVGJyxcclxuICBPcmFuZ2U3MDA6ICcjNUYyQzE0JyxcclxuICBPcmFuZ2U2MDA6ICcjOEU0MjFFJyxcclxuICBPcmFuZ2U1MDA6ICcjQjQ1MzI2JyxcclxuICBPcmFuZ2U0MDA6ICcjRUQ2RTMzJyxcclxuICBPcmFuZ2UzMDA6ICcjRjE5MDYzJyxcclxuICBPcmFuZ2UyMDA6ICcjRjdCRkE1JyxcclxuICBPcmFuZ2UxMDA6ICcjRkJFMkQ2JyxcclxuICBPcmFuZ2U1MDogJyNGREYzRUUnLFxyXG4gIFJlZDcwMDogJyM1NDFBMTQnLFxyXG4gIFJlZDYwMDogJyM3RjI4MUUnLFxyXG4gIFJlZDUwMDogJyNBMTMyMjYnLFxyXG4gIFJlZDQwMDogJyNENDQzMzMnLFxyXG4gIFJlZDMwMDogJyNERTcwNjMnLFxyXG4gIFJlZDIwMDogJyNFQ0FDQTUnLFxyXG4gIFJlZDEwMDogJyNGNkQ5RDYnLFxyXG4gIFJlZDUwOiAnI0ZCRUZFRScsXHJcbiAgQnJvd243MDA6ICcjM0QyODFFJyxcclxuICBCcm93bjYwMDogJyM1QjNDMkQnLFxyXG4gIEJyb3duNTAwOiAnIzc0NEMzOScsXHJcbiAgQnJvd240MDA6ICcjOTk2NDRDJyxcclxuICBCcm93bjMwMDogJyNCMTg5NzYnLFxyXG4gIEJyb3duMjAwOiAnI0QyQkFCMCcsXHJcbiAgQnJvd24xMDA6ICcjRUJFMERCJyxcclxuICBCcm93bjUwOiAnI0Y2RjJGMCcsXHJcbiAgR3JheTkwMDogJyMxNDE0MTQnLFxyXG4gIEdyYXk4MDA6ICcjMUYxRjFGJyxcclxuICBHcmF5NzAwOiAnIzMzMzMzMycsXHJcbiAgR3JheTYwMDogJyM1NDU0NTQnLFxyXG4gIEdyYXk1MDA6ICcjNzU3NTc1JyxcclxuICBHcmF5NDAwOiAnI0FGQUZBRicsXHJcbiAgR3JheTMwMDogJyNDQkNCQ0InLFxyXG4gIEdyYXkyMDA6ICcjRTJFMkUyJyxcclxuICBHcmF5MTAwOiAnI0VFRUVFRScsXHJcbiAgR3JheTUwOiAnI0Y2RjZGNicsXHJcbiAgUGxhdGludW03MDA6ICcjMzk0MTQ1JyxcclxuICBQbGF0aW51bTYwMDogJyM1NTYyNjgnLFxyXG4gIFBsYXRpbnVtNTAwOiAnIzZDN0M4MycsXHJcbiAgUGxhdGludW00MDA6ICcjOEVBM0FEJyxcclxuICBQbGF0aW51bTMwMDogJyNBMUJEQ0EnLFxyXG4gIFBsYXRpbnVtMjAwOiAnI0NDREZFNScsXHJcbiAgUGxhdGludW0xMDA6ICcjRUJGNUY3JyxcclxuICBQbGF0aW51bTUwOiAnI0Y0RkFGQicsXHJcbiAgRWF0c0dyZWVuNDAwOiAnIzIxQTQ1MycsXHJcbiAgRnJlaWdodEJsdWU0MDA6ICcjMjFBNDUzJyxcclxuICBKdW1wUmVkNDAwOiAnI0ZGMEEyRCcsXHJcbiAgQmxhY2s6ICcjMDAwMDAwJyxcclxuICBXaGl0ZTogJyNGRkZGRkYnLFxyXG59O1xyXG5cclxuZXhwb3J0IHR5cGUgU2RDaGFydE9wdGlvbiA9IFBpZUNoYXJ0T3B0aW9uIHxcclxuICBCYXJDaGFydE9wdGlvbiB8XHJcbiAgSG9yaXpvbnRhbEJhckNoYXJ0T3B0aW9uIHxcclxuICBMaW5lQ2hhcnRPcHRpb24gfFxyXG4gIFN0YWNrQXJlYUNoYXJ0T3B0aW9uIHxcclxuICBCYXJMaW5lQ2hhcnRPcHRpb247XHJcblxyXG5pbnRlcmZhY2UgQmFzZUNoYXJ0T3B0aW9uIHtcclxuICB0aXRsZT86IHN0cmluZztcclxuICBoZWlnaHQ/OiBzdHJpbmc7XHJcbiAgaGlkZUxlZ2VuZD86IGJvb2xlYW47XHJcbiAgdG9vbHRpcHM/OiB7XHJcbiAgICBsYWJlbDogKHBhcmFtczogeyBkYXRhc2V0TGFiZWw/OiBzdHJpbmcsIGxhYmVsPzogc3RyaW5nLCB2YWx1ZT86IG51bWJlciB9KSA9PiBzdHJpbmc7XHJcbiAgfTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBQaWVDaGFydE9wdGlvbiBleHRlbmRzIEJhc2VDaGFydE9wdGlvbiB7XHJcbiAgdHlwZTogJ3BpZSc7XHJcbiAgdGl0bGU/OiBzdHJpbmc7XHJcbiAgZGF0YXNldHM6IHtcclxuICAgIGxhYmVsOiBzdHJpbmcsXHJcbiAgICB2YWx1ZTogbnVtYmVyLFxyXG4gICAgYmFja2dyb3VuZENvbG9yOiBzdHJpbmdcclxuICB9W107XHJcbiAgaG92ZXI/OiAnU2hvd0FsbCc7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQmFyQ2hhcnRPcHRpb24gZXh0ZW5kcyBCYXNlQ2hhcnRPcHRpb24ge1xyXG4gIHR5cGU6ICdiYXInO1xyXG4gIHhUaXRsZT86IHN0cmluZztcclxuICB5VGl0bGU/OiBzdHJpbmc7XHJcbiAgbGFiZWxzOiBzdHJpbmdbXTtcclxuICBkYXRhc2V0czoge1xyXG4gICAgbGFiZWw6IHN0cmluZztcclxuICAgIGRhdGE6IG51bWJlcltdO1xyXG4gICAgYm9yZGVyQ29sb3I/OiBzdHJpbmcsXHJcbiAgICBiYWNrZ3JvdW5kQ29sb3I/OiBzdHJpbmc7XHJcbiAgICBzdGFjaz86IHN0cmluZztcclxuICB9W107XHJcbiAgYmVnaW5BdFplcm8/OiBib29sZWFuO1xyXG4gIGxhYmVsV2lkdGg/OiBudW1iZXI7XHJcbiAgdGlja3M/OiB7XHJcbiAgICB4TGFiZWw/OiAodmFsdWU6IG51bWJlciB8IHN0cmluZywgaW5kZXg6IG51bWJlcikgPT4gc3RyaW5nLFxyXG4gICAgeUxhYmVsPzogKHZhbHVlOiBudW1iZXIgfCBzdHJpbmcsIGluZGV4OiBudW1iZXIpID0+IHN0cmluZ1xyXG4gIH07XHJcbiAgaG92ZXI/OiAnU2hvd0FsbCc7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSG9yaXpvbnRhbEJhckNoYXJ0T3B0aW9uIGV4dGVuZHMgQmFzZUNoYXJ0T3B0aW9uIHtcclxuICB0eXBlOiAnaG9yaXpvbnRhbEJhcic7XHJcbiAgeFRpdGxlPzogc3RyaW5nO1xyXG4gIHlUaXRsZT86IHN0cmluZztcclxuICBsYWJlbHM6IHN0cmluZ1tdO1xyXG4gIGRhdGFzZXRzOiB7XHJcbiAgICBsYWJlbDogc3RyaW5nO1xyXG4gICAgZGF0YTogbnVtYmVyW107XHJcbiAgICBib3JkZXJDb2xvcj86IHN0cmluZyxcclxuICAgIGJhY2tncm91bmRDb2xvcj86IHN0cmluZztcclxuICAgIHN0YWNrPzogc3RyaW5nO1xyXG4gIH1bXTtcclxuICBiZWdpbkF0WmVybz86IGJvb2xlYW47XHJcbiAgbGFiZWxXaWR0aD86IG51bWJlcjtcclxuICB0aWNrcz86IHtcclxuICAgIHhMYWJlbD86ICh2YWx1ZTogbnVtYmVyIHwgc3RyaW5nLCBpbmRleDogbnVtYmVyKSA9PiBzdHJpbmcsXHJcbiAgICB5TGFiZWw/OiAodmFsdWU6IG51bWJlciB8IHN0cmluZywgaW5kZXg6IG51bWJlcikgPT4gc3RyaW5nXHJcbiAgfTtcclxuICBob3Zlcj86ICdTaG93QWxsJztcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBMaW5lQ2hhcnRPcHRpb24gZXh0ZW5kcyBCYXNlQ2hhcnRPcHRpb24ge1xyXG4gIHR5cGU6ICdsaW5lJztcclxuICB4VGl0bGU/OiBzdHJpbmc7XHJcbiAgeVRpdGxlPzogc3RyaW5nO1xyXG4gIGxhYmVsczogc3RyaW5nW107XHJcbiAgZGF0YXNldHM6IHtcclxuICAgIGxhYmVsOiBzdHJpbmc7XHJcbiAgICBkYXRhOiBudW1iZXJbXTtcclxuICAgIGJvcmRlckNvbG9yPzogc3RyaW5nLFxyXG4gICAgYmFja2dyb3VuZENvbG9yPzogc3RyaW5nO1xyXG4gIH1bXTtcclxuICBiZWdpbkF0WmVybz86IGJvb2xlYW47XHJcbiAgbGFiZWxXaWR0aD86IG51bWJlcjtcclxuICB0aWNrcz86IHtcclxuICAgIHhMYWJlbD86ICh2YWx1ZTogbnVtYmVyIHwgc3RyaW5nLCBpbmRleDogbnVtYmVyKSA9PiBzdHJpbmcsXHJcbiAgICB5TGFiZWw/OiAodmFsdWU6IG51bWJlciB8IHN0cmluZywgaW5kZXg6IG51bWJlcikgPT4gc3RyaW5nXHJcbiAgfTtcclxuICBob3Zlcj86ICdTaG93QWxsJztcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBTdGFja0FyZWFDaGFydE9wdGlvbiBleHRlbmRzIEJhc2VDaGFydE9wdGlvbiB7XHJcbiAgdHlwZTogJ3N0YWNrQXJlYSc7XHJcbiAgeFRpdGxlPzogc3RyaW5nO1xyXG4gIHlUaXRsZT86IHN0cmluZztcclxuICBsYWJlbHM6IHN0cmluZ1tdO1xyXG4gIGRhdGFzZXRzOiB7XHJcbiAgICBsYWJlbDogc3RyaW5nO1xyXG4gICAgZGF0YTogbnVtYmVyW107XHJcbiAgICBib3JkZXJDb2xvcj86IHN0cmluZyxcclxuICAgIGJhY2tncm91bmRDb2xvcj86IHN0cmluZztcclxuICB9W107XHJcbiAgYmVnaW5BdFplcm8/OiBib29sZWFuO1xyXG4gIGxhYmVsV2lkdGg/OiBudW1iZXI7XHJcbiAgdGlja3M/OiB7XHJcbiAgICB4TGFiZWw/OiAodmFsdWU6IG51bWJlciB8IHN0cmluZywgaW5kZXg6IG51bWJlcikgPT4gc3RyaW5nLFxyXG4gICAgeUxhYmVsPzogKHZhbHVlOiBudW1iZXIgfCBzdHJpbmcsIGluZGV4OiBudW1iZXIpID0+IHN0cmluZ1xyXG4gIH07XHJcbiAgaG92ZXI/OiAnU2hvd0FsbCc7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQmFyTGluZUNoYXJ0T3B0aW9uIGV4dGVuZHMgQmFzZUNoYXJ0T3B0aW9uIHtcclxuICB0eXBlOiAnYmFybGluZSc7XHJcbiAgeFRpdGxlPzogc3RyaW5nO1xyXG4gIHlUaXRsZT86IHN0cmluZztcclxuICB5UmlnaHRUaXRsZT86IHN0cmluZztcclxuICBsYWJlbHM6IHN0cmluZ1tdO1xyXG4gIGRhdGFzZXRzOiB7XHJcbiAgICB0eXBlOiAnYmFyJyB8ICdsaW5lJyxcclxuICAgIHlBbGlnbj86ICdsZWZ0JyB8ICdyaWdodCcsXHJcbiAgICBsYWJlbDogc3RyaW5nO1xyXG4gICAgZGF0YTogbnVtYmVyW107XHJcbiAgICBib3JkZXJDb2xvcj86IHN0cmluZztcclxuICAgIGJhY2tncm91bmRDb2xvcj86IHN0cmluZztcclxuICB9W107XHJcbiAgYmVnaW5BdFplcm8/OiBib29sZWFuO1xyXG4gIGxhYmVsV2lkdGg/OiBudW1iZXI7XHJcbiAgdGlja3M/OiB7XHJcbiAgICB4TGFiZWw/OiAodmFsdWU6IG51bWJlciB8IHN0cmluZywgaW5kZXg6IG51bWJlcikgPT4gc3RyaW5nLFxyXG4gICAgeUxhYmVsPzogKHZhbHVlOiBudW1iZXIgfCBzdHJpbmcsIGluZGV4OiBudW1iZXIpID0+IHN0cmluZyxcclxuICAgIHlSaWdodExhYmVsPzogKHZhbHVlOiBudW1iZXIgfCBzdHJpbmcsIGluZGV4OiBudW1iZXIpID0+IHN0cmluZ1xyXG4gIH07XHJcbiAgaG92ZXI/OiAnU2hvd0FsbCc7XHJcbn1cclxuXHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElDaGFydENvbmZpZ3VyYXRpb24ge1xyXG4gIGRlZmF1bHRDb2xvcnM/OiB7XHJcbiAgICBiYWNrZ3JvdW5kQ29sb3I/OiBzdHJpbmcsXHJcbiAgICBib3JkZXJDb2xvcj86IHN0cmluZ1xyXG4gIH1bXTtcclxufVxyXG5cclxuZXhwb3J0IGNvbnN0IENIQVJUX0NPTkZJRyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxJQ2hhcnRDb25maWd1cmF0aW9uPignY2hhcnQuY29uZmlndXJhdGlvbicpO1xyXG4iXX0=
91
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnQubW9kZWwuanMiLCJzb3VyY2VSb290IjoiQzovVXNlcnMvbmdoaWF0dDE1X29uZW1vdW50L0RvY3VtZW50cy9saWItY29yZS11aS9wcm9qZWN0cy9zZC1jb3JlL2NoYXJ0LyIsInNvdXJjZXMiOlsic3JjL2xpYi9jaGFydC5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRS9DLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRztJQUN6QixHQUFHLEVBQUUsbUJBQW1CO0lBQ3hCLE1BQU0sRUFBRSxtQkFBbUI7SUFDM0IsTUFBTSxFQUFFLG1CQUFtQjtJQUMzQixLQUFLLEVBQUUsbUJBQW1CO0lBQzFCLElBQUksRUFBRSxtQkFBbUI7SUFDekIsTUFBTSxFQUFFLG9CQUFvQjtJQUM1QixJQUFJLEVBQUUsb0JBQW9CO0lBQzFCLFNBQVMsRUFBRSxTQUFTO0lBQ3BCLFNBQVMsRUFBRSxTQUFTO0lBQ3BCLFNBQVMsRUFBRSxTQUFTO0lBQ3BCLFNBQVMsRUFBRSxTQUFTO0lBQ3BCLFNBQVMsRUFBRSxTQUFTO0lBQ3BCLFNBQVMsRUFBRSxTQUFTO0lBQ3BCLFNBQVMsRUFBRSxTQUFTO0lBQ3BCLFFBQVEsRUFBRSxTQUFTO0lBQ25CLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLE1BQU0sRUFBRSxTQUFTO0lBQ2pCLFFBQVEsRUFBRSxTQUFTO0lBQ25CLFFBQVEsRUFBRSxTQUFTO0lBQ25CLFFBQVEsRUFBRSxTQUFTO0lBQ25CLFFBQVEsRUFBRSxTQUFTO0lBQ25CLFFBQVEsRUFBRSxTQUFTO0lBQ25CLFFBQVEsRUFBRSxTQUFTO0lBQ25CLFFBQVEsRUFBRSxTQUFTO0lBQ25CLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLFNBQVMsRUFBRSxTQUFTO0lBQ3BCLFNBQVMsRUFBRSxTQUFTO0lBQ3BCLFNBQVMsRUFBRSxTQUFTO0lBQ3BCLFNBQVMsRUFBRSxTQUFTO0lBQ3BCLFNBQVMsRUFBRSxTQUFTO0lBQ3BCLFNBQVMsRUFBRSxTQUFTO0lBQ3BCLFNBQVMsRUFBRSxTQUFTO0lBQ3BCLFFBQVEsRUFBRSxTQUFTO0lBQ25CLFNBQVMsRUFBRSxTQUFTO0lBQ3BCLFNBQVMsRUFBRSxTQUFTO0lBQ3BCLFNBQVMsRUFBRSxTQUFTO0lBQ3BCLFNBQVMsRUFBRSxTQUFTO0lBQ3BCLFNBQVMsRUFBRSxTQUFTO0lBQ3BCLFNBQVMsRUFBRSxTQUFTO0lBQ3BCLFNBQVMsRUFBRSxTQUFTO0lBQ3BCLFFBQVEsRUFBRSxTQUFTO0lBQ25CLE1BQU0sRUFBRSxTQUFTO0lBQ2pCLE1BQU0sRUFBRSxTQUFTO0lBQ2pCLE1BQU0sRUFBRSxTQUFTO0lBQ2pCLE1BQU0sRUFBRSxTQUFTO0lBQ2pCLE1BQU0sRUFBRSxTQUFTO0lBQ2pCLE1BQU0sRUFBRSxTQUFTO0lBQ2pCLE1BQU0sRUFBRSxTQUFTO0lBQ2pCLEtBQUssRUFBRSxTQUFTO0lBQ2hCLFFBQVEsRUFBRSxTQUFTO0lBQ25CLFFBQVEsRUFBRSxTQUFTO0lBQ25CLFFBQVEsRUFBRSxTQUFTO0lBQ25CLFFBQVEsRUFBRSxTQUFTO0lBQ25CLFFBQVEsRUFBRSxTQUFTO0lBQ25CLFFBQVEsRUFBRSxTQUFTO0lBQ25CLFFBQVEsRUFBRSxTQUFTO0lBQ25CLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLE1BQU0sRUFBRSxTQUFTO0lBQ2pCLFdBQVcsRUFBRSxTQUFTO0lBQ3RCLFdBQVcsRUFBRSxTQUFTO0lBQ3RCLFdBQVcsRUFBRSxTQUFTO0lBQ3RCLFdBQVcsRUFBRSxTQUFTO0lBQ3RCLFdBQVcsRUFBRSxTQUFTO0lBQ3RCLFdBQVcsRUFBRSxTQUFTO0lBQ3RCLFdBQVcsRUFBRSxTQUFTO0lBQ3RCLFVBQVUsRUFBRSxTQUFTO0lBQ3JCLFlBQVksRUFBRSxTQUFTO0lBQ3ZCLGNBQWMsRUFBRSxTQUFTO0lBQ3pCLFVBQVUsRUFBRSxTQUFTO0lBQ3JCLEtBQUssRUFBRSxTQUFTO0lBQ2hCLEtBQUssRUFBRSxTQUFTO0NBQ2pCLENBQUM7QUFrSkYsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLElBQUksY0FBYyxDQUFzQixxQkFBcUIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmV4cG9ydCBjb25zdCBDaGFydENvbG9ycyA9IHtcclxuICBSZWQ6ICdyZ2IoMjU1LCA5OSwgMTMyKScsXHJcbiAgT3JhbmdlOiAncmdiKDI1NSwgMTU5LCA2NCknLFxyXG4gIFllbGxvdzogJ3JnYigyNTUsIDIwNSwgODYpJyxcclxuICBHcmVlbjogJ3JnYig3NSwgMTkyLCAxOTIpJyxcclxuICBCbHVlOiAncmdiKDU0LCAxNjIsIDIzNSknLFxyXG4gIFB1cnBsZTogJ3JnYigxNTMsIDEwMiwgMjU1KScsXHJcbiAgR3JleTogJ3JnYigyMDEsIDIwMywgMjA3KScsXHJcbiAgUHVycGxlNzAwOiAnIzJFMjI0QycsXHJcbiAgUHVycGxlNjAwOiAnIzQ1MzM3MicsXHJcbiAgUHVycGxlNTAwOiAnIzU3NDE5MScsXHJcbiAgUHVycGxlNDAwOiAnIzczNTZCRicsXHJcbiAgUHVycGxlMzAwOiAnIzk1N0ZDRScsXHJcbiAgUHVycGxlMjAwOiAnI0MxQjRFMicsXHJcbiAgUHVycGxlMTAwOiAnI0UzRERGMicsXHJcbiAgUHVycGxlNTA6ICcjRjNGMUY5JyxcclxuICBCbHVlNzAwOiAnIzBGMkM2MCcsXHJcbiAgQmx1ZTYwMDogJyMxNzQyOTEnLFxyXG4gIEJsdWU1MDA6ICcjMUQ1M0I3JyxcclxuICBCbHVlNDAwOiAnIzI3NkVGMScsXHJcbiAgQmx1ZTMwMDogJyM1QTkwRjQnLFxyXG4gIEJsdWUyMDA6ICcjOUZCRkY4JyxcclxuICBCbHVlMTAwOiAnI0Q0RTJGQycsXHJcbiAgQmx1ZTUwOiAnI0VERjNGRCcsXHJcbiAgR3JlZW43MDA6ICcjMEQ0MDIwJyxcclxuICBHcmVlbjYwMDogJyMxNTZBMzYnLFxyXG4gIEdyZWVuNTAwOiAnIzA5ODYzRCcsXHJcbiAgR3JlZW40MDA6ICcjMjFBNDUzJyxcclxuICBHcmVlbjMwMDogJyM0M0JGNzUnLFxyXG4gIEdyZWVuMjAwOiAnIzlFRTJCOCcsXHJcbiAgR3JlZW4xMDA6ICcjQ0ZGM0REJyxcclxuICBHcmVlbjUwOiAnI0YwRkFGMycsXHJcbiAgWWVsbG93NzAwOiAnIzY2NEMxQScsXHJcbiAgWWVsbG93NjAwOiAnIzk5NzMyOCcsXHJcbiAgWWVsbG93NTAwOiAnI0MxOTEzMicsXHJcbiAgWWVsbG93NDAwOiAnI0ZGQzA0MycsXHJcbiAgWWVsbG93MzAwOiAnI0ZGQ0Y3MCcsXHJcbiAgWWVsbG93MjAwOiAnI0ZGRTNBQycsXHJcbiAgWWVsbG93MTAwOiAnI0ZGRjJEOScsXHJcbiAgWWVsbG93NTA6ICcjRkZGOUVGJyxcclxuICBPcmFuZ2U3MDA6ICcjNUYyQzE0JyxcclxuICBPcmFuZ2U2MDA6ICcjOEU0MjFFJyxcclxuICBPcmFuZ2U1MDA6ICcjQjQ1MzI2JyxcclxuICBPcmFuZ2U0MDA6ICcjRUQ2RTMzJyxcclxuICBPcmFuZ2UzMDA6ICcjRjE5MDYzJyxcclxuICBPcmFuZ2UyMDA6ICcjRjdCRkE1JyxcclxuICBPcmFuZ2UxMDA6ICcjRkJFMkQ2JyxcclxuICBPcmFuZ2U1MDogJyNGREYzRUUnLFxyXG4gIFJlZDcwMDogJyM1NDFBMTQnLFxyXG4gIFJlZDYwMDogJyM3RjI4MUUnLFxyXG4gIFJlZDUwMDogJyNBMTMyMjYnLFxyXG4gIFJlZDQwMDogJyNENDQzMzMnLFxyXG4gIFJlZDMwMDogJyNERTcwNjMnLFxyXG4gIFJlZDIwMDogJyNFQ0FDQTUnLFxyXG4gIFJlZDEwMDogJyNGNkQ5RDYnLFxyXG4gIFJlZDUwOiAnI0ZCRUZFRScsXHJcbiAgQnJvd243MDA6ICcjM0QyODFFJyxcclxuICBCcm93bjYwMDogJyM1QjNDMkQnLFxyXG4gIEJyb3duNTAwOiAnIzc0NEMzOScsXHJcbiAgQnJvd240MDA6ICcjOTk2NDRDJyxcclxuICBCcm93bjMwMDogJyNCMTg5NzYnLFxyXG4gIEJyb3duMjAwOiAnI0QyQkFCMCcsXHJcbiAgQnJvd24xMDA6ICcjRUJFMERCJyxcclxuICBCcm93bjUwOiAnI0Y2RjJGMCcsXHJcbiAgR3JheTkwMDogJyMxNDE0MTQnLFxyXG4gIEdyYXk4MDA6ICcjMUYxRjFGJyxcclxuICBHcmF5NzAwOiAnIzMzMzMzMycsXHJcbiAgR3JheTYwMDogJyM1NDU0NTQnLFxyXG4gIEdyYXk1MDA6ICcjNzU3NTc1JyxcclxuICBHcmF5NDAwOiAnI0FGQUZBRicsXHJcbiAgR3JheTMwMDogJyNDQkNCQ0InLFxyXG4gIEdyYXkyMDA6ICcjRTJFMkUyJyxcclxuICBHcmF5MTAwOiAnI0VFRUVFRScsXHJcbiAgR3JheTUwOiAnI0Y2RjZGNicsXHJcbiAgUGxhdGludW03MDA6ICcjMzk0MTQ1JyxcclxuICBQbGF0aW51bTYwMDogJyM1NTYyNjgnLFxyXG4gIFBsYXRpbnVtNTAwOiAnIzZDN0M4MycsXHJcbiAgUGxhdGludW00MDA6ICcjOEVBM0FEJyxcclxuICBQbGF0aW51bTMwMDogJyNBMUJEQ0EnLFxyXG4gIFBsYXRpbnVtMjAwOiAnI0NDREZFNScsXHJcbiAgUGxhdGludW0xMDA6ICcjRUJGNUY3JyxcclxuICBQbGF0aW51bTUwOiAnI0Y0RkFGQicsXHJcbiAgRWF0c0dyZWVuNDAwOiAnIzIxQTQ1MycsXHJcbiAgRnJlaWdodEJsdWU0MDA6ICcjMjFBNDUzJyxcclxuICBKdW1wUmVkNDAwOiAnI0ZGMEEyRCcsXHJcbiAgQmxhY2s6ICcjMDAwMDAwJyxcclxuICBXaGl0ZTogJyNGRkZGRkYnLFxyXG59O1xyXG5cclxuZXhwb3J0IHR5cGUgU2RDaGFydE9wdGlvbiA9IFBpZUNoYXJ0T3B0aW9uIHxcclxuICBCYXJDaGFydE9wdGlvbiB8XHJcbiAgSG9yaXpvbnRhbEJhckNoYXJ0T3B0aW9uIHxcclxuICBMaW5lQ2hhcnRPcHRpb24gfFxyXG4gIFN0YWNrQXJlYUNoYXJ0T3B0aW9uIHxcclxuICBCYXJMaW5lQ2hhcnRPcHRpb247XHJcblxyXG5pbnRlcmZhY2UgQmFzZUNoYXJ0T3B0aW9uIHtcclxuICB0aXRsZT86IHN0cmluZztcclxuICBoZWlnaHQ/OiBzdHJpbmc7XHJcbiAgaGlkZUxlZ2VuZD86IGJvb2xlYW47XHJcbiAgdG9vbHRpcHM/OiB7XHJcbiAgICBsYWJlbDogKHBhcmFtczogeyBkYXRhc2V0TGFiZWw/OiBzdHJpbmcsIGxhYmVsPzogc3RyaW5nLCB2YWx1ZT86IG51bWJlciB9KSA9PiBzdHJpbmc7XHJcbiAgfTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBQaWVDaGFydE9wdGlvbiBleHRlbmRzIEJhc2VDaGFydE9wdGlvbiB7XHJcbiAgdHlwZTogJ3BpZSc7XHJcbiAgdGl0bGU/OiBzdHJpbmc7XHJcbiAgZGF0YXNldHM6IHtcclxuICAgIGxhYmVsOiBzdHJpbmcsXHJcbiAgICB2YWx1ZTogbnVtYmVyLFxyXG4gICAgYmFja2dyb3VuZENvbG9yOiBzdHJpbmdcclxuICB9W107XHJcbiAgaG92ZXI/OiAnU2hvd0FsbCc7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQmFyQ2hhcnRPcHRpb24gZXh0ZW5kcyBCYXNlQ2hhcnRPcHRpb24ge1xyXG4gIHR5cGU6ICdiYXInO1xyXG4gIHhUaXRsZT86IHN0cmluZztcclxuICB5VGl0bGU/OiBzdHJpbmc7XHJcbiAgbGFiZWxzOiBzdHJpbmdbXTtcclxuICBkYXRhc2V0czoge1xyXG4gICAgbGFiZWw6IHN0cmluZztcclxuICAgIGRhdGE6IG51bWJlcltdO1xyXG4gICAgYm9yZGVyQ29sb3I/OiBzdHJpbmcsXHJcbiAgICBiYWNrZ3JvdW5kQ29sb3I/OiBzdHJpbmc7XHJcbiAgICBzdGFjaz86IHN0cmluZztcclxuICB9W107XHJcbiAgYmVnaW5BdFplcm8/OiBib29sZWFuO1xyXG4gIGxhYmVsV2lkdGg/OiBudW1iZXI7XHJcbiAgdGlja3M/OiB7XHJcbiAgICB4TGFiZWw/OiAodmFsdWU6IG51bWJlciB8IHN0cmluZywgaW5kZXg6IG51bWJlcikgPT4gc3RyaW5nLFxyXG4gICAgeUxhYmVsPzogKHZhbHVlOiBudW1iZXIgfCBzdHJpbmcsIGluZGV4OiBudW1iZXIpID0+IHN0cmluZ1xyXG4gIH07XHJcbiAgaG92ZXI/OiAnU2hvd0FsbCc7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSG9yaXpvbnRhbEJhckNoYXJ0T3B0aW9uIGV4dGVuZHMgQmFzZUNoYXJ0T3B0aW9uIHtcclxuICB0eXBlOiAnaG9yaXpvbnRhbEJhcic7XHJcbiAgeFRpdGxlPzogc3RyaW5nO1xyXG4gIHlUaXRsZT86IHN0cmluZztcclxuICBsYWJlbHM6IHN0cmluZ1tdO1xyXG4gIGRhdGFzZXRzOiB7XHJcbiAgICBsYWJlbDogc3RyaW5nO1xyXG4gICAgZGF0YTogbnVtYmVyW107XHJcbiAgICBib3JkZXJDb2xvcj86IHN0cmluZyxcclxuICAgIGJhY2tncm91bmRDb2xvcj86IHN0cmluZztcclxuICAgIHN0YWNrPzogc3RyaW5nO1xyXG4gIH1bXTtcclxuICBiZWdpbkF0WmVybz86IGJvb2xlYW47XHJcbiAgbGFiZWxXaWR0aD86IG51bWJlcjtcclxuICB0aWNrcz86IHtcclxuICAgIHhMYWJlbD86ICh2YWx1ZTogbnVtYmVyIHwgc3RyaW5nLCBpbmRleDogbnVtYmVyKSA9PiBzdHJpbmcsXHJcbiAgICB5TGFiZWw/OiAodmFsdWU6IG51bWJlciB8IHN0cmluZywgaW5kZXg6IG51bWJlcikgPT4gc3RyaW5nXHJcbiAgfTtcclxuICBob3Zlcj86ICdTaG93QWxsJztcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBMaW5lQ2hhcnRPcHRpb24gZXh0ZW5kcyBCYXNlQ2hhcnRPcHRpb24ge1xyXG4gIHR5cGU6ICdsaW5lJztcclxuICB4VGl0bGU/OiBzdHJpbmc7XHJcbiAgeVRpdGxlPzogc3RyaW5nO1xyXG4gIGxhYmVsczogc3RyaW5nW107XHJcbiAgZGF0YXNldHM6IHtcclxuICAgIGxhYmVsOiBzdHJpbmc7XHJcbiAgICBkYXRhOiBudW1iZXJbXTtcclxuICAgIGJvcmRlckNvbG9yPzogc3RyaW5nLFxyXG4gICAgYmFja2dyb3VuZENvbG9yPzogc3RyaW5nO1xyXG4gIH1bXTtcclxuICBiZWdpbkF0WmVybz86IGJvb2xlYW47XHJcbiAgbGFiZWxXaWR0aD86IG51bWJlcjtcclxuICB0aWNrcz86IHtcclxuICAgIHhMYWJlbD86ICh2YWx1ZTogbnVtYmVyIHwgc3RyaW5nLCBpbmRleDogbnVtYmVyKSA9PiBzdHJpbmcsXHJcbiAgICB5TGFiZWw/OiAodmFsdWU6IG51bWJlciB8IHN0cmluZywgaW5kZXg6IG51bWJlcikgPT4gc3RyaW5nXHJcbiAgfTtcclxuICBob3Zlcj86ICdTaG93QWxsJztcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBTdGFja0FyZWFDaGFydE9wdGlvbiBleHRlbmRzIEJhc2VDaGFydE9wdGlvbiB7XHJcbiAgdHlwZTogJ3N0YWNrQXJlYSc7XHJcbiAgeFRpdGxlPzogc3RyaW5nO1xyXG4gIHlUaXRsZT86IHN0cmluZztcclxuICBsYWJlbHM6IHN0cmluZ1tdO1xyXG4gIGRhdGFzZXRzOiB7XHJcbiAgICBsYWJlbDogc3RyaW5nO1xyXG4gICAgZGF0YTogbnVtYmVyW107XHJcbiAgICBib3JkZXJDb2xvcj86IHN0cmluZyxcclxuICAgIGJhY2tncm91bmRDb2xvcj86IHN0cmluZztcclxuICB9W107XHJcbiAgYmVnaW5BdFplcm8/OiBib29sZWFuO1xyXG4gIGxhYmVsV2lkdGg/OiBudW1iZXI7XHJcbiAgdGlja3M/OiB7XHJcbiAgICB4TGFiZWw/OiAodmFsdWU6IG51bWJlciB8IHN0cmluZywgaW5kZXg6IG51bWJlcikgPT4gc3RyaW5nLFxyXG4gICAgeUxhYmVsPzogKHZhbHVlOiBudW1iZXIgfCBzdHJpbmcsIGluZGV4OiBudW1iZXIpID0+IHN0cmluZ1xyXG4gIH07XHJcbiAgaG92ZXI/OiAnU2hvd0FsbCc7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQmFyTGluZUNoYXJ0T3B0aW9uIGV4dGVuZHMgQmFzZUNoYXJ0T3B0aW9uIHtcclxuICB0eXBlOiAnYmFybGluZSc7XHJcbiAgeFRpdGxlPzogc3RyaW5nO1xyXG4gIHhTdGFja2VkPzpib29sZWFuO1xyXG4gIHlUaXRsZT86IHN0cmluZztcclxuICB5U3RhY2tlZD86Ym9vbGVhbjtcclxuICB5UmlnaHRUaXRsZT86IHN0cmluZztcclxuICBsYWJlbHM6IHN0cmluZ1tdO1xyXG4gIGRhdGFzZXRzOiB7XHJcbiAgICB0eXBlOiAnYmFyJyB8ICdsaW5lJyxcclxuICAgIHlBbGlnbj86ICdsZWZ0JyB8ICdyaWdodCcsXHJcbiAgICBsYWJlbDogc3RyaW5nO1xyXG4gICAgZGF0YTogbnVtYmVyW107XHJcbiAgICBvcmRlcj86bnVtYmVyO1xyXG4gICAgYm9yZGVyQ29sb3I/OiBzdHJpbmc7XHJcbiAgICBiYWNrZ3JvdW5kQ29sb3I/OiBzdHJpbmc7XHJcbiAgfVtdO1xyXG4gIGJlZ2luQXRaZXJvPzogYm9vbGVhbjtcclxuICBsYWJlbFdpZHRoPzogbnVtYmVyO1xyXG4gIHRpY2tzPzoge1xyXG4gICAgeExhYmVsPzogKHZhbHVlOiBudW1iZXIgfCBzdHJpbmcsIGluZGV4OiBudW1iZXIpID0+IHN0cmluZyxcclxuICAgIHlMYWJlbD86ICh2YWx1ZTogbnVtYmVyIHwgc3RyaW5nLCBpbmRleDogbnVtYmVyKSA9PiBzdHJpbmcsXHJcbiAgICB5UmlnaHRMYWJlbD86ICh2YWx1ZTogbnVtYmVyIHwgc3RyaW5nLCBpbmRleDogbnVtYmVyKSA9PiBzdHJpbmdcclxuICB9O1xyXG4gIGhvdmVyPzogJ1Nob3dBbGwnO1xyXG59XHJcblxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJQ2hhcnRDb25maWd1cmF0aW9uIHtcclxuICBkZWZhdWx0Q29sb3JzPzoge1xyXG4gICAgYmFja2dyb3VuZENvbG9yPzogc3RyaW5nLFxyXG4gICAgYm9yZGVyQ29sb3I/OiBzdHJpbmdcclxuICB9W107XHJcbn1cclxuXHJcbmV4cG9ydCBjb25zdCBDSEFSVF9DT05GSUcgPSBuZXcgSW5qZWN0aW9uVG9rZW48SUNoYXJ0Q29uZmlndXJhdGlvbj4oJ2NoYXJ0LmNvbmZpZ3VyYXRpb24nKTtcclxuIl19
@@ -584,8 +584,9 @@ class SdChart {
584
584
  },
585
585
  scaleLabel: {
586
586
  display: !!option.yTitle,
587
- labelString: option.yTitle || ''
588
- }
587
+ labelString: option.yTitle || '',
588
+ },
589
+ stacked: !!option.yStacked,
589
590
  }];
590
591
  if (option.datasets.some(e => e.yAlign === 'right')) {
591
592
  yAxes.push({
@@ -604,7 +605,8 @@ class SdChart {
604
605
  scaleLabel: {
605
606
  display: !!option.yRightTitle,
606
607
  labelString: option.yRightTitle || ''
607
- }
608
+ },
609
+ stacked: !!option.yStacked,
608
610
  });
609
611
  }
610
612
  const configuration = {
@@ -631,6 +633,7 @@ class SdChart {
631
633
  return ((_a = option.ticks) === null || _a === void 0 ? void 0 : _a.xLabel(value, index)) || (Number.isNumber(value) ? Number.toVNCurrency(value) : value);
632
634
  }
633
635
  },
636
+ stacked: !!option.xStacked
634
637
  }],
635
638
  yAxes
636
639
  },
@@ -653,7 +656,7 @@ class SdChart {
653
656
  data: {
654
657
  labels: option.labels,
655
658
  datasets: option.datasets.map((e, idx) => {
656
- var _a, _b, _c, _d, _e, _f, _g, _h, _j;
659
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
657
660
  const dynamicColor = this.dynamicColor;
658
661
  const result = {
659
662
  type: e.type,
@@ -663,10 +666,11 @@ class SdChart {
663
666
  borderColor: e.borderColor || ((_j = (_h = (_g = this.chartConfiguration) === null || _g === void 0 ? void 0 : _g.defaultColors) === null || _h === void 0 ? void 0 : _h[idx]) === null || _j === void 0 ? void 0 : _j.borderColor) || dynamicColor,
664
667
  data: e.data,
665
668
  yAxisID: e.yAlign === 'right' ? rightId : leftId,
666
- lineTension: 0
669
+ lineTension: 0,
670
+ order: (_k = e.order) !== null && _k !== void 0 ? _k : 1
667
671
  };
668
672
  return result;
669
- })
673
+ }),
670
674
  }
671
675
  };
672
676
  if (option.hover === 'ShowAll') {