@heartlandone/vega-angular 1.42.0 → 1.44.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/esm2020/lib/components-module.mjs +2 -2
- package/dist/esm2020/lib/stencil-generated/components.mjs +187 -4
- package/dist/fesm2015/heartlandone-vega-angular.mjs +181 -5
- package/dist/fesm2015/heartlandone-vega-angular.mjs.map +1 -1
- package/dist/fesm2020/heartlandone-vega-angular.mjs +181 -5
- package/dist/fesm2020/heartlandone-vega-angular.mjs.map +1 -1
- package/dist/lib/components-module.d.ts +1 -1
- package/dist/lib/stencil-generated/components.d.ts +82 -5
- package/dist/package.json +2 -2
- package/package.json +2 -2
- package/src/lib/stencil-generated/components.ts +179 -6
- package/src/scripts/stencil-post-build-script.js +3 -1
|
@@ -581,6 +581,7 @@ let VegaFieldLabel = class VegaFieldLabel {
|
|
|
581
581
|
this.z = z;
|
|
582
582
|
c.detach();
|
|
583
583
|
this.el = r.nativeElement;
|
|
584
|
+
proxyOutputs(this, this.el, ['vegaClick']);
|
|
584
585
|
}
|
|
585
586
|
};
|
|
586
587
|
VegaFieldLabel.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: VegaFieldLabel, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
@@ -1075,11 +1076,11 @@ let VegaNavCard = class VegaNavCard {
|
|
|
1075
1076
|
}
|
|
1076
1077
|
};
|
|
1077
1078
|
VegaNavCard.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: VegaNavCard, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
1078
|
-
VegaNavCard.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.2", type: VegaNavCard, selector: "vega-nav-card", inputs: { source: "source" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1079
|
+
VegaNavCard.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.2", type: VegaNavCard, selector: "vega-nav-card", inputs: { maxHeight: "maxHeight", source: "source" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1079
1080
|
VegaNavCard = __decorate([
|
|
1080
1081
|
ProxyCmp({
|
|
1081
1082
|
defineCustomElementFn: undefined,
|
|
1082
|
-
inputs: ['source']
|
|
1083
|
+
inputs: ['maxHeight', 'source']
|
|
1083
1084
|
})
|
|
1084
1085
|
], VegaNavCard);
|
|
1085
1086
|
export { VegaNavCard };
|
|
@@ -1089,7 +1090,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImpor
|
|
|
1089
1090
|
selector: 'vega-nav-card',
|
|
1090
1091
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
1091
1092
|
template: '<ng-content></ng-content>',
|
|
1092
|
-
inputs: ['source']
|
|
1093
|
+
inputs: ['maxHeight', 'source']
|
|
1093
1094
|
}]
|
|
1094
1095
|
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
|
|
1095
1096
|
let VegaOption = class VegaOption {
|
|
@@ -1485,6 +1486,181 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImpor
|
|
|
1485
1486
|
inputs: ['columnDivider', 'columns', 'dataSource', 'density', 'emptyDescription', 'paddingX', 'pagination', 'rowClickable', 'rowDivider', 'rowExpandable', 'rowKey', 'rowSelection', 'scrollConfig', 'showHeader', 'striped']
|
|
1486
1487
|
}]
|
|
1487
1488
|
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
|
|
1489
|
+
let VegaTableBody = class VegaTableBody {
|
|
1490
|
+
constructor(c, r, z) {
|
|
1491
|
+
this.z = z;
|
|
1492
|
+
c.detach();
|
|
1493
|
+
this.el = r.nativeElement;
|
|
1494
|
+
}
|
|
1495
|
+
};
|
|
1496
|
+
VegaTableBody.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: VegaTableBody, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
1497
|
+
VegaTableBody.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.2", type: VegaTableBody, selector: "vega-table-body", ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1498
|
+
VegaTableBody = __decorate([
|
|
1499
|
+
ProxyCmp({
|
|
1500
|
+
defineCustomElementFn: undefined
|
|
1501
|
+
})
|
|
1502
|
+
], VegaTableBody);
|
|
1503
|
+
export { VegaTableBody };
|
|
1504
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: VegaTableBody, decorators: [{
|
|
1505
|
+
type: Component,
|
|
1506
|
+
args: [{
|
|
1507
|
+
selector: 'vega-table-body',
|
|
1508
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
1509
|
+
template: '<ng-content></ng-content>'
|
|
1510
|
+
}]
|
|
1511
|
+
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
|
|
1512
|
+
let VegaTableCell = class VegaTableCell {
|
|
1513
|
+
constructor(c, r, z) {
|
|
1514
|
+
this.z = z;
|
|
1515
|
+
c.detach();
|
|
1516
|
+
this.el = r.nativeElement;
|
|
1517
|
+
}
|
|
1518
|
+
};
|
|
1519
|
+
VegaTableCell.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: VegaTableCell, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
1520
|
+
VegaTableCell.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.2", type: VegaTableCell, selector: "vega-table-cell", inputs: { breakpoint: "breakpoint", ellipsis: "ellipsis", overflow: "overflow", textAlign: "textAlign", width: "width" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1521
|
+
VegaTableCell = __decorate([
|
|
1522
|
+
ProxyCmp({
|
|
1523
|
+
defineCustomElementFn: undefined,
|
|
1524
|
+
inputs: ['breakpoint', 'ellipsis', 'overflow', 'textAlign', 'width']
|
|
1525
|
+
})
|
|
1526
|
+
], VegaTableCell);
|
|
1527
|
+
export { VegaTableCell };
|
|
1528
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: VegaTableCell, decorators: [{
|
|
1529
|
+
type: Component,
|
|
1530
|
+
args: [{
|
|
1531
|
+
selector: 'vega-table-cell',
|
|
1532
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
1533
|
+
template: '<ng-content></ng-content>',
|
|
1534
|
+
inputs: ['breakpoint', 'ellipsis', 'overflow', 'textAlign', 'width']
|
|
1535
|
+
}]
|
|
1536
|
+
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
|
|
1537
|
+
let VegaTableExpandRow = class VegaTableExpandRow {
|
|
1538
|
+
constructor(c, r, z) {
|
|
1539
|
+
this.z = z;
|
|
1540
|
+
c.detach();
|
|
1541
|
+
this.el = r.nativeElement;
|
|
1542
|
+
}
|
|
1543
|
+
};
|
|
1544
|
+
VegaTableExpandRow.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: VegaTableExpandRow, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
1545
|
+
VegaTableExpandRow.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.2", type: VegaTableExpandRow, selector: "vega-table-expand-row", inputs: { colSpan: "colSpan", rowKey: "rowKey" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1546
|
+
VegaTableExpandRow = __decorate([
|
|
1547
|
+
ProxyCmp({
|
|
1548
|
+
defineCustomElementFn: undefined,
|
|
1549
|
+
inputs: ['colSpan', 'rowKey']
|
|
1550
|
+
})
|
|
1551
|
+
], VegaTableExpandRow);
|
|
1552
|
+
export { VegaTableExpandRow };
|
|
1553
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: VegaTableExpandRow, decorators: [{
|
|
1554
|
+
type: Component,
|
|
1555
|
+
args: [{
|
|
1556
|
+
selector: 'vega-table-expand-row',
|
|
1557
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
1558
|
+
template: '<ng-content></ng-content>',
|
|
1559
|
+
inputs: ['colSpan', 'rowKey']
|
|
1560
|
+
}]
|
|
1561
|
+
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
|
|
1562
|
+
let VegaTableHead = class VegaTableHead {
|
|
1563
|
+
constructor(c, r, z) {
|
|
1564
|
+
this.z = z;
|
|
1565
|
+
c.detach();
|
|
1566
|
+
this.el = r.nativeElement;
|
|
1567
|
+
}
|
|
1568
|
+
};
|
|
1569
|
+
VegaTableHead.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: VegaTableHead, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
1570
|
+
VegaTableHead.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.2", type: VegaTableHead, selector: "vega-table-head", inputs: { fixed: "fixed" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1571
|
+
VegaTableHead = __decorate([
|
|
1572
|
+
ProxyCmp({
|
|
1573
|
+
defineCustomElementFn: undefined,
|
|
1574
|
+
inputs: ['fixed']
|
|
1575
|
+
})
|
|
1576
|
+
], VegaTableHead);
|
|
1577
|
+
export { VegaTableHead };
|
|
1578
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: VegaTableHead, decorators: [{
|
|
1579
|
+
type: Component,
|
|
1580
|
+
args: [{
|
|
1581
|
+
selector: 'vega-table-head',
|
|
1582
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
1583
|
+
template: '<ng-content></ng-content>',
|
|
1584
|
+
inputs: ['fixed']
|
|
1585
|
+
}]
|
|
1586
|
+
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
|
|
1587
|
+
let VegaTableHeadCell = class VegaTableHeadCell {
|
|
1588
|
+
constructor(c, r, z) {
|
|
1589
|
+
this.z = z;
|
|
1590
|
+
c.detach();
|
|
1591
|
+
this.el = r.nativeElement;
|
|
1592
|
+
proxyOutputs(this, this.el, ['vegaClick']);
|
|
1593
|
+
}
|
|
1594
|
+
};
|
|
1595
|
+
VegaTableHeadCell.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: VegaTableHeadCell, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
1596
|
+
VegaTableHeadCell.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.2", type: VegaTableHeadCell, selector: "vega-table-head-cell", inputs: { breakpoint: "breakpoint", sorter: "sorter", textAlign: "textAlign", width: "width" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1597
|
+
VegaTableHeadCell = __decorate([
|
|
1598
|
+
ProxyCmp({
|
|
1599
|
+
defineCustomElementFn: undefined,
|
|
1600
|
+
inputs: ['breakpoint', 'sorter', 'textAlign', 'width']
|
|
1601
|
+
})
|
|
1602
|
+
], VegaTableHeadCell);
|
|
1603
|
+
export { VegaTableHeadCell };
|
|
1604
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: VegaTableHeadCell, decorators: [{
|
|
1605
|
+
type: Component,
|
|
1606
|
+
args: [{
|
|
1607
|
+
selector: 'vega-table-head-cell',
|
|
1608
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
1609
|
+
template: '<ng-content></ng-content>',
|
|
1610
|
+
inputs: ['breakpoint', 'sorter', 'textAlign', 'width']
|
|
1611
|
+
}]
|
|
1612
|
+
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
|
|
1613
|
+
let VegaTableHeadRow = class VegaTableHeadRow {
|
|
1614
|
+
constructor(c, r, z) {
|
|
1615
|
+
this.z = z;
|
|
1616
|
+
c.detach();
|
|
1617
|
+
this.el = r.nativeElement;
|
|
1618
|
+
}
|
|
1619
|
+
};
|
|
1620
|
+
VegaTableHeadRow.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: VegaTableHeadRow, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
1621
|
+
VegaTableHeadRow.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.2", type: VegaTableHeadRow, selector: "vega-table-head-row", inputs: { checkedAll: "checkedAll", expandable: "expandable", hideSelectAll: "hideSelectAll", paddingX: "paddingX", selectAllDisabled: "selectAllDisabled", selectionType: "selectionType" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1622
|
+
VegaTableHeadRow = __decorate([
|
|
1623
|
+
ProxyCmp({
|
|
1624
|
+
defineCustomElementFn: undefined,
|
|
1625
|
+
inputs: ['checkedAll', 'expandable', 'hideSelectAll', 'paddingX', 'selectAllDisabled', 'selectionType']
|
|
1626
|
+
})
|
|
1627
|
+
], VegaTableHeadRow);
|
|
1628
|
+
export { VegaTableHeadRow };
|
|
1629
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: VegaTableHeadRow, decorators: [{
|
|
1630
|
+
type: Component,
|
|
1631
|
+
args: [{
|
|
1632
|
+
selector: 'vega-table-head-row',
|
|
1633
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
1634
|
+
template: '<ng-content></ng-content>',
|
|
1635
|
+
inputs: ['checkedAll', 'expandable', 'hideSelectAll', 'paddingX', 'selectAllDisabled', 'selectionType']
|
|
1636
|
+
}]
|
|
1637
|
+
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
|
|
1638
|
+
let VegaTableRow = class VegaTableRow {
|
|
1639
|
+
constructor(c, r, z) {
|
|
1640
|
+
this.z = z;
|
|
1641
|
+
c.detach();
|
|
1642
|
+
this.el = r.nativeElement;
|
|
1643
|
+
proxyOutputs(this, this.el, ['vegaClick']);
|
|
1644
|
+
}
|
|
1645
|
+
};
|
|
1646
|
+
VegaTableRow.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: VegaTableRow, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
1647
|
+
VegaTableRow.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.2", type: VegaTableRow, selector: "vega-table-row", inputs: { clickable: "clickable", expandable: "expandable", paddingX: "paddingX", rowKey: "rowKey", selectionType: "selectionType" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1648
|
+
VegaTableRow = __decorate([
|
|
1649
|
+
ProxyCmp({
|
|
1650
|
+
defineCustomElementFn: undefined,
|
|
1651
|
+
inputs: ['clickable', 'expandable', 'paddingX', 'rowKey', 'selectionType']
|
|
1652
|
+
})
|
|
1653
|
+
], VegaTableRow);
|
|
1654
|
+
export { VegaTableRow };
|
|
1655
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: VegaTableRow, decorators: [{
|
|
1656
|
+
type: Component,
|
|
1657
|
+
args: [{
|
|
1658
|
+
selector: 'vega-table-row',
|
|
1659
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
1660
|
+
template: '<ng-content></ng-content>',
|
|
1661
|
+
inputs: ['clickable', 'expandable', 'paddingX', 'rowKey', 'selectionType']
|
|
1662
|
+
}]
|
|
1663
|
+
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
|
|
1488
1664
|
let VegaText = class VegaText {
|
|
1489
1665
|
constructor(c, r, z) {
|
|
1490
1666
|
this.z = z;
|
|
@@ -1699,6 +1875,13 @@ export default [
|
|
|
1699
1875
|
VegaTabGroup,
|
|
1700
1876
|
VegaTabGroupPanel,
|
|
1701
1877
|
VegaTable,
|
|
1878
|
+
VegaTableBody,
|
|
1879
|
+
VegaTableCell,
|
|
1880
|
+
VegaTableExpandRow,
|
|
1881
|
+
VegaTableHead,
|
|
1882
|
+
VegaTableHeadCell,
|
|
1883
|
+
VegaTableHeadRow,
|
|
1884
|
+
VegaTableRow,
|
|
1702
1885
|
VegaText,
|
|
1703
1886
|
VegaTextarea,
|
|
1704
1887
|
VegaTimePicker,
|
|
@@ -1706,4 +1889,4 @@ export default [
|
|
|
1706
1889
|
VegaTooltip,
|
|
1707
1890
|
VegaVirtualScroll,
|
|
1708
1891
|
];
|
|
1709
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvc3RlbmNpbC1nZW5lcmF0ZWQvY29tcG9uZW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsb0JBQW9CO0FBQ3BCLDhDQUE4QztBQUM5QyxPQUFPLEVBQUUsdUJBQXVCLEVBQXFCLFNBQVMsRUFBb0MsTUFBTSxlQUFlLENBQUM7QUFDeEgsT0FBTyxFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7SUF5QjFELGFBQWEsU0FBYixhQUFhO0lBRXhCLFlBQVksQ0FBb0IsRUFBRSxDQUFhLEVBQVksQ0FBUztRQUFULE1BQUMsR0FBRCxDQUFDLENBQVE7UUFDbEUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ1gsSUFBSSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsYUFBYSxDQUFDO1FBQzFCLFlBQVksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7SUFDOUMsQ0FBQztDQUNGLENBQUE7MEdBUFksYUFBYTs4RkFBYixhQUFhLDRTQUhkLDJCQUEyQjtBQUcxQixhQUFhO0lBVnpCLFFBQVEsQ0FBQztRQUNSLHFCQUFxQixFQUFFLFNBQVM7UUFDaEMsTUFBTSxFQUFFLENBQUMsZ0JBQWdCLEVBQUUsaUJBQWlCLEVBQUUsUUFBUSxFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxjQUFjLEVBQUUsWUFBWSxFQUFFLGdCQUFnQixDQUFDO0tBQ3RJLENBQUM7R0FPVyxhQUFhLENBT3pCO1NBUFksYUFBYTsyRkFBYixhQUFhO2tCQU56QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxnQkFBZ0I7b0JBQzFCLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxRQUFRLEVBQUUsMkJBQTJCO29CQUNyQyxNQUFNLEVBQUUsQ0FBQyxnQkFBZ0IsRUFB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Q29udGVudCI6WyIvKiB0c2xpbnQ6ZGlzYWJsZSAqL1xuLyogYXV0by1nZW5lcmF0ZWQgYW5ndWxhciBkaXJlY3RpdmUgcHJveGllcyAqL1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgTmdab25lIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBQcm94eUNtcCwgcHJveHlPdXRwdXRzIH0gZnJvbSAnLi9hbmd1bGFyLWNvbXBvbmVudC1saWIvdXRpbHMnO1xuXG5pbXBvcnQgeyBDb21wb25lbnRzIH0gZnJvbSAnQGhlYXJ0bGFuZG9uZS92ZWdhJztcblxuXG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFZlZ2FBY2NvcmRpb24gZXh0ZW5kcyBDb21wb25lbnRzLlZlZ2FBY2NvcmRpb24ge1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgdGhlIGV4cGFuZCBldmVudCBvZiB0aGUgYWNjb3JkaW9uLiBcbiAgICovXG4gIHZlZ2FFeHBhbmQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxib29sZWFuPj47XG5cbn1cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWydhY2NvcmRpb25UaXRsZScsICdkcmF3c0JhY2tncm91bmQnLCAnZXhwYW5kJywgJ2V4cGFuZEljb25BbGlnbicsICdncm91cElkJywgJ2ljb25Qb3NpdGlvbicsICdwcmVmaXhJY29uJywgJ3Nob3dFeHBhbmRJY29uJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2ZWdhLWFjY29yZGlvbicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnYWNjb3JkaW9uVGl0bGUnLCAnZHJhd3NCYWNrZ3JvdW5kJywgJ2V4cGFuZCcsICdleHBhbmRJY29uQWxpZ24nLCAnZ3JvdXBJZCcsICdpY29uUG9zaXRpb24nLCAncHJlZml4SWNvbicsICdzaG93RXhwYW5kSWNvbiddXG59KVxuZXhwb3J0IGNsYXNzIFZlZ2FBY2NvcmRpb24ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWyd2ZWdhRXhwYW5kJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFZlZ2FBcHBGb290ZXIgZXh0ZW5kcyBDb21wb25lbnRzLlZlZ2FBcHBGb290ZXIge31cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWydhZGRpdGlvbmFsTGlua3MnLCAnY29udGVudCcsICdkaXNjbGFpbWVyVXJsVGFyZ2V0JywgJ2hpZGVEZWZhdWx0TGlua3MnLCAncHJpdmFjeVBvbGljeUxhYmVsJywgJ3ByaXZhY3lQb2xpY3lVcmwnLCAncHJpdmFjeVBvbGljeVVybFRhcmdldCcsICdzaG93RGlzY2xhaW1lcicsICd0ZXJtT2ZVc2VMYWJlbCcsICd0ZXJtT2ZVc2VVcmwnLCAndGVybU9mVXNlVXJsVGFyZ2V0J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2ZWdhLWFwcC1mb290ZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ2FkZGl0aW9uYWxMaW5rcycsICdjb250ZW50JywgJ2Rpc2NsYWltZXJVcmxUYXJnZXQnLCAnaGlkZURlZmF1bHRMaW5rcycsICdwcml2YWN5UG9saWN5TGFiZWwnLCAncHJpdmFjeVBvbGljeVVybCcsICdwcml2YWN5UG9saWN5VXJsVGFyZ2V0JywgJ3Nob3dEaXNjbGFpbWVyJywgJ3Rlcm1PZlVzZUxhYmVsJywgJ3Rlcm1PZlVzZVVybCcsICd0ZXJtT2ZVc2VVcmxUYXJnZXQnXVxufSlcbmV4cG9ydCBjbGFzcyBWZWdhQXBwRm9vdGVyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVmVnYUFwcEhlYWRlckJ1dHRvbiBleHRlbmRzIENvbXBvbmVudHMuVmVnYUFwcEhlYWRlckJ1dHRvbiB7XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyB0aGUgY2xpY2sgZXZlbnQgb2YgYW4gYXBwIGhlYWRlciBidXR0b24uIFxuICAgKi9cbiAgdmVnYUNsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8YW55Pj47XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyB0aGUgY2xpY2sgZXZlbnQgb2YgYSBkcm9wZG93biBpdGVtXG4gICBpbiB0aGUgYXBwIGhlYWRlci4gXG4gICAqL1xuICB2ZWdhRHJvcGRvd25DbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHN0cmluZz4+O1xuXG59XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnYXZhdGFyJywgJ2F2YXRhclBvc2l0aW9uJywgJ2Ryb3Bkb3duJywgJ2xhYmVsJywgJ3NlbGVjdGVkJywgJ3Nob3dCb3JkZXInLCAnc2hvd0xhYmVsJywgJ3Nob3dNZW51QXJyb3dJY29uJywgJ3NpemUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZlZ2EtYXBwLWhlYWRlci1idXR0b24nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ2F2YXRhcicsICdhdmF0YXJQb3NpdGlvbicsICdkcm9wZG93bicsICdsYWJlbCcsICdzZWxlY3RlZCcsICdzaG93Qm9yZGVyJywgJ3Nob3dMYWJlbCcsICdzaG93TWVudUFycm93SWNvbicsICdzaXplJ11cbn0pXG5leHBvcnQgY2xhc3MgVmVnYUFwcEhlYWRlckJ1dHRvbiB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3ZlZ2FDbGljaycsICd2ZWdhRHJvcGRvd25DbGljayddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBWZWdhQmFkZ2UgZXh0ZW5kcyBDb21wb25lbnRzLlZlZ2FCYWRnZSB7fVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2JnQ29sb3InLCAnc2l6ZScsICd0ZXh0JywgJ3RleHRDb2xvciddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmVnYS1iYWRnZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnYmdDb2xvcicsICdzaXplJywgJ3RleHQnLCAndGV4dENvbG9yJ11cbn0pXG5leHBvcnQgY2xhc3MgVmVnYUJhZGdlIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuaW1wb3J0IHR5cGUgeyBWZWdhQmFubmVyVmlld0RhdGEgYXMgSVZlZ2FCYW5uZXJWZWdhQmFubmVyVmlld0RhdGEgfSBmcm9tICdAaGVhcnRsYW5kb25lL3ZlZ2EvZGlzdC90eXBlcy9jb21wb25lbnRzL3ZlZ2EtYmFubmVyL3R5cGVzJztcbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBWZWdhQmFubmVyIGV4dGVuZHMgQ29tcG9uZW50cy5WZWdhQmFubmVyIHtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIHRoZSBjbGljayBldmVudCBvZlxuICAgdGhlIGNsb3NlIGJ1dHRvbiBpbiB0aGUgYmFubmVyLiBcbiAgICovXG4gIHZlZ2FDbG9zZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElWZWdhQmFubmVyVmVnYUJhbm5lclZpZXdEYXRhPj47XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyB0aGUgY29tcGxldGlvbiBvZiB0aGUgYmFubmVyIGxvYWRpbmcuIFxuICAgKi9cbiAgdmVnYUxvYWQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxhbnk+PjtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIHRoZSBjbGljayBldmVudCBvZlxuICAgdGhlIENhbGwgdG8gQWN0aW9uIGxpbmsuIFxuICAgKi9cbiAgdmVnYUNsaWNrQ1RBOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVZlZ2FCYW5uZXJWZWdhQmFubmVyVmlld0RhdGE+PjtcblxufVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ21vZGUnLCAnc291cmNlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2ZWdhLWJhbm5lcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnbW9kZScsICdzb3VyY2UnXVxufSlcbmV4cG9ydCBjbGFzcyBWZWdhQmFubmVyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsndmVnYUNsb3NlJywgJ3ZlZ2FMb2FkJywgJ3ZlZ2FDbGlja0NUQSddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBWZWdhQmFyQ2hhcnQgZXh0ZW5kcyBDb21wb25lbnRzLlZlZ2FCYXJDaGFydCB7fVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ29wdGlvbnMnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZlZ2EtYmFyLWNoYXJ0JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydvcHRpb25zJ11cbn0pXG5leHBvcnQgY2xhc3MgVmVnYUJhckNoYXJ0IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVmVnYUJveCBleHRlbmRzIENvbXBvbmVudHMuVmVnYUJveCB7fVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2Rpc3BsYXknLCAnbWFyZ2luJywgJ3BhZGRpbmcnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZlZ2EtYm94JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydkaXNwbGF5JywgJ21hcmdpbicsICdwYWRkaW5nJ11cbn0pXG5leHBvcnQgY2xhc3MgVmVnYUJveCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cbmltcG9ydCB0eXBlIHsgVmVnYUJyZWFkY3J1bWJJdGVtVHlwZSBhcyBJVmVnYUJyZWFkY3J1bWJWZWdhQnJlYWRjcnVtYkl0ZW1UeXBlIH0gZnJvbSAnQGhlYXJ0bGFuZG9uZS92ZWdhL2Rpc3QvdHlwZXMvY29tcG9uZW50cy92ZWdhLWJyZWFkY3J1bWIvdHlwZXMnO1xuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFZlZ2FCcmVhZGNydW1iIGV4dGVuZHMgQ29tcG9uZW50cy5WZWdhQnJlYWRjcnVtYiB7XG4gIC8qKlxuICAgKiBldmVudCBlbWl0dGVyIHVzZWQgZm9yIG5vdGlmeWluZyBjb25zdW1lcnMgdGhlIGNsaWNrIGV2ZW50IFxuICAgKi9cbiAgdmVnYUNsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVZlZ2FCcmVhZGNydW1iVmVnYUJyZWFkY3J1bWJJdGVtVHlwZT4+O1xuXG59XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnaXRlbXMnLCAnbWF4SXRlbXMnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZlZ2EtYnJlYWRjcnVtYicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnaXRlbXMnLCAnbWF4SXRlbXMnXVxufSlcbmV4cG9ydCBjbGFzcyBWZWdhQnJlYWRjcnVtYiB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3ZlZ2FDbGljayddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBWZWdhQnV0dG9uIGV4dGVuZHMgQ29tcG9uZW50cy5WZWdhQnV0dG9uIHtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIHRoZSBjbGljayBldmVudCBvZiB0aGUgYnV0dG9uLiBcbiAgICovXG4gIHZlZ2FDbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PGFueT4+O1xuXG59XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnYmxvY2snLCAnZGFuZ2VyJywgJ2Rpc2FibGVkJywgJ2ljb24nLCAnaWNvbkFsaWduJywgJ2xhYmVsJywgJ3NpemUnLCAndHlwZScsICd2YXJpYW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2ZWdhLWJ1dHRvbicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnYmxvY2snLCAnZGFuZ2VyJywgJ2Rpc2FibGVkJywgJ2ljb24nLCAnaWNvbkFsaWduJywgJ2xhYmVsJywgJ3NpemUnLCAndHlwZScsICd2YXJpYW50J11cbn0pXG5leHBvcnQgY2xhc3MgVmVnYUJ1dHRvbiB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3ZlZ2FDbGljayddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBWZWdhQnV0dG9uQ2lyY2xlIGV4dGVuZHMgQ29tcG9uZW50cy5WZWdhQnV0dG9uQ2lyY2xlIHtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIHRoZSBjbGljayBldmVudCBvZiB0aGUgY2lyY3VsYXIgYnV0dG9uLiBcbiAgICovXG4gIHZlZ2FDbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PGFueT4+O1xuXG59XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnZGFuZ2VyJywgJ2Rpc2FibGVkJywgJ2ljb24nLCAnaWNvbkNvbG9yJywgJ2xhYmVsJywgJ3NpemUnLCAndHlwZScsICd2YXJpYW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2ZWdhLWJ1dHRvbi1jaXJjbGUnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ2RhbmdlcicsICdkaXNhYmxlZCcsICdpY29uJywgJ2ljb25Db2xvcicsICdsYWJlbCcsICdzaXplJywgJ3R5cGUnLCAndmFyaWFudCddXG59KVxuZXhwb3J0IGNsYXNzIFZlZ2FCdXR0b25DaXJjbGUge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWyd2ZWdhQ2xpY2snXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVmVnYUJ1dHRvbkxpbmsgZXh0ZW5kcyBDb21wb25lbnRzLlZlZ2FCdXR0b25MaW5rIHtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIHRoZSBjbGljayBldmVudCBvZiB0aGUgYnV0dG9uLiBcbiAgICovXG4gIHZlZ2FDbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PGFueT4+O1xuXG59XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnZGFuZ2VyJywgJ2Rpc2FibGVkJywgJ2V2ZW50ZnVsJywgJ2ljb24nLCAnaWNvbkFsaWduJywgJ2ljb25UeXBlJywgJ2xhYmVsJywgJ2xpbmsnLCAnc2l6ZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmVnYS1idXR0b24tbGluaycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnZGFuZ2VyJywgJ2Rpc2FibGVkJywgJ2V2ZW50ZnVsJywgJ2ljb24nLCAnaWNvbkFsaWduJywgJ2ljb25UeXBlJywgJ2xhYmVsJywgJ2xpbmsnLCAnc2l6ZSddXG59KVxuZXhwb3J0IGNsYXNzIFZlZ2FCdXR0b25MaW5rIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsndmVnYUNsaWNrJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFZlZ2FDYXJkIGV4dGVuZHMgQ29tcG9uZW50cy5WZWdhQ2FyZCB7fVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2JhY2tncm91bmRDb2xvcicsICdtYXJnaW4nLCAncGFkZGluZycsICdzaGFkb3cnLCAndmFyaWFudCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmVnYS1jYXJkJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydiYWNrZ3JvdW5kQ29sb3InLCAnbWFyZ2luJywgJ3BhZGRpbmcnLCAnc2hhZG93JywgJ3ZhcmlhbnQnXVxufSlcbmV4cG9ydCBjbGFzcyBWZWdhQ2FyZCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFZlZ2FDYXJvdXNlbCBleHRlbmRzIENvbXBvbmVudHMuVmVnYUNhcm91c2VsIHtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIHRoZSB0cmFuc2l0aW9uIG9mIHRoZSBjYXJvdXNlbCB0byBhbm90aGVyIHBhZ2UsXG4gICB3aGV0aGVyIHRyaWdnZXJlZCBwcm9ncmFtbWF0aWNhbGx5IG9yIHRocm91Z2ggdXNlciBpbnRlcmFjdGlvbi4gXG4gICAqL1xuICB2ZWdhUGFnZVVwZGF0ZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PG51bWJlcj4+O1xuXG59XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnY2FuU3dpcGUnLCAncGVyUGFnZScsICdzaG93U2xpZGVyJywgJ3NwYWNpbmcnXSxcbiAgbWV0aG9kczogWyduZXh0UGFnZScsICdwcmV2UGFnZScsICdnb1RvUGFnZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmVnYS1jYXJvdXNlbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnY2FuU3dpcGUnLCAncGVyUGFnZScsICdzaG93U2xpZGVyJywgJ3NwYWNpbmcnXVxufSlcbmV4cG9ydCBjbGFzcyBWZWdhQ2Fyb3VzZWwge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWyd2ZWdhUGFnZVVwZGF0ZSddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBWZWdhQ2hlY2tib3ggZXh0ZW5kcyBDb21wb25lbnRzLlZlZ2FDaGVja2JveCB7XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyBjaGFuZ2VzIGluIHRoZSB2YWxpZGF0aW9uIHJlc3VsdCBvZiB0aGUgY2hlY2tib3guIFxuICAgKi9cbiAgdmVnYVZhbGlkYXRlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8Ym9vbGVhbj4+O1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgY2hhbmdlcyBpbiB0aGUgdmFsdWUgb2YgdGhlIGNoZWNrYm94LFxuICAgd2hldGhlciB0cmlnZ2VyZWQgcHJvZ3JhbW1hdGljYWxseSBvciB0aHJvdWdoIHVzZXIgaW50ZXJhY3Rpb24uIFxuICAgKi9cbiAgdmVnYUNoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHN0cmluZyB8IGJvb2xlYW4+PjtcblxufVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2NoZWNrZWQnLCAnZGlzYWJsZWQnLCAnaWRlbnRpZmllcicsICdpc1ZhbGlkJywgJ3JlcXVpcmVkJywgJ3NpemUnLCAndmFsdWUnXSxcbiAgbWV0aG9kczogWyd2YWxpZCcsICdzZXRWYWx1ZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmVnYS1jaGVja2JveCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnY2hlY2tlZCcsICdkaXNhYmxlZCcsICdpZGVudGlmaWVyJywgJ2lzVmFsaWQnLCAncmVxdWlyZWQnLCAnc2l6ZScsICd2YWx1ZSddXG59KVxuZXhwb3J0IGNsYXNzIFZlZ2FDaGVja2JveCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3ZlZ2FWYWxpZGF0ZScsICd2ZWdhQ2hhbmdlJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFZlZ2FDaGVja2JveEdyb3VwIGV4dGVuZHMgQ29tcG9uZW50cy5WZWdhQ2hlY2tib3hHcm91cCB7XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyBjaGFuZ2VzIGluIHRoZSB2YWx1ZVxuICBvZiBhbnkgbmVzdGVkIGNoZWNrYm94IHdpdGhpbiB0aGUgY2hlY2tib3ggZ3JvdXAsXG4gIHdoZXRoZXIgdHJpZ2dlcmVkIHByb2dyYW1tYXRpY2FsbHkgb3IgdGhyb3VnaFxuICB1c2VyIGludGVyYWN0aW9uLiBcbiAgICovXG4gIHZlZ2FDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxzdHJpbmdbXT4+O1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgY2hhbmdlcyBpbiB0aGVcbiAgIHZhbGlkYXRpb24gcmVzdWx0IG9mIHRoZSBjaGVja2JveCBncm91cC4gXG4gICAqL1xuICB2ZWdhVmFsaWRhdGU6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxib29sZWFuPj47XG5cbn1cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWydkaXNhYmxlZCcsICdmb3JtVmFsaWRhdGlvbicsICdoaW50JywgJ2lzVmFsaWQnLCAnbGFiZWwnLCAncmVxdWlyZWQnLCAndmFsdWUnLCAndmVnYUZsZXhQcm9wJ10sXG4gIG1ldGhvZHM6IFsndmFsaWQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZlZ2EtY2hlY2tib3gtZ3JvdXAnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ2Rpc2FibGVkJywgJ2Zvcm1WYWxpZGF0aW9uJywgJ2hpbnQnLCAnaXNWYWxpZCcsICdsYWJlbCcsICdyZXF1aXJlZCcsICd2YWx1ZScsICd2ZWdhRmxleFByb3AnXVxufSlcbmV4cG9ydCBjbGFzcyBWZWdhQ2hlY2tib3hHcm91cCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3ZlZ2FDaGFuZ2UnLCAndmVnYVZhbGlkYXRlJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFZlZ2FDaGlwIGV4dGVuZHMgQ29tcG9uZW50cy5WZWdhQ2hpcCB7XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyB0aGUgY2xpY2sgZXZlbnQgb2YgdGhlIGNsb3NlIGJ1dHRvbiBvZiB0aGUgY2hpcC5cblxuVGhpcyBldmVudCBpcyBvbmx5IGRpc3BhdGNoZWQgd2hlbiB0aGUgYHNob3dDbG9zZUljb25gIHByb3BlcnR5IGlzIHNldCB0byBgdHJ1ZWAuIFxuICAgKi9cbiAgdmVnYUNsb3NlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dm9pZD4+O1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgdGhlIGNsaWNrIGV2ZW50IG9mIHRoZSBjaGlwLlxuXG5UaGlzIGV2ZW50IGlzIG9ubHkgZGlzcGF0Y2hlZCB3aGVuIHRoZSBgY2xpY2thYmxlYCBwcm9wZXJ0eSBpcyBzZXQgdG8gYHRydWVgLiBcbiAgICovXG4gIHZlZ2FDbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHZvaWQ+PjtcblxufVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2JnQ29sb3InLCAnY2hpcFR5cGUnLCAnY2xpY2thYmxlJywgJ2ljb24nLCAnaWNvbkFsaWduJywgJ3Nob3dDbG9zZUljb24nLCAnc2l6ZScsICdzdGF0dXNDb2xvcicsICd0ZXh0JywgJ3RleHRDb2xvcicsICd2YXJpYW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2ZWdhLWNoaXAnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ2JnQ29sb3InLCAnY2hpcFR5cGUnLCAnY2xpY2thYmxlJywgJ2ljb24nLCAnaWNvbkFsaWduJywgJ3Nob3dDbG9zZUljb24nLCAnc2l6ZScsICdzdGF0dXNDb2xvcicsICd0ZXh0JywgJ3RleHRDb2xvcicsICd2YXJpYW50J11cbn0pXG5leHBvcnQgY2xhc3MgVmVnYUNoaXAge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWyd2ZWdhQ2xvc2UnLCAndmVnYUNsaWNrJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFZlZ2FDb2xvclBpY2tlciBleHRlbmRzIENvbXBvbmVudHMuVmVnYUNvbG9yUGlja2VyIHtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIGNoYW5nZXMgaW4gdGhlIHZhbHVlIG9mIHRoZSBjb2xvciBwaWNrZXIsXG4gICB3aGV0aGVyIHRyaWdnZXJlZCBwcm9ncmFtbWF0aWNhbGx5IG9yIHRocm91Z2ggdXNlciBpbnRlcmFjdGlvbi4gXG4gICAqL1xuICB2ZWdhQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8c3RyaW5nPj47XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyBjaGFuZ2VzIGluIHRoZSB2YWxpZGF0aW9uIHJlc3VsdCBvZiB0aGUgY29sb3IgcGlja2VyLiBcbiAgICovXG4gIHZlZ2FWYWxpZGF0ZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PGJvb2xlYW4+PjtcblxufVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2F1dG9WYWxpZGF0aW9uJywgJ2NvbG9ycycsICdkaXNhYmxlZCcsICdoaW50JywgJ2lzVmFsaWQnLCAnbGFiZWwnLCAncmVxdWlyZWQnLCAndmFsaWRhdGlvblJ1bGVzJywgJ3ZhbHVlJ10sXG4gIG1ldGhvZHM6IFsndmFsaWQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZlZ2EtY29sb3ItcGlja2VyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydhdXRvVmFsaWRhdGlvbicsICdjb2xvcnMnLCAnZGlzYWJsZWQnLCAnaGludCcsICdpc1ZhbGlkJywgJ2xhYmVsJywgJ3JlcXVpcmVkJywgJ3ZhbGlkYXRpb25SdWxlcycsICd2YWx1ZSddXG59KVxuZXhwb3J0IGNsYXNzIFZlZ2FDb2xvclBpY2tlciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3ZlZ2FDaGFuZ2UnLCAndmVnYVZhbGlkYXRlJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFZlZ2FDb21ib0JveCBleHRlbmRzIENvbXBvbmVudHMuVmVnYUNvbWJvQm94IHtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIGNoYW5nZXMgaW4gdGhlIGl0ZW1zIG9mIHRoZSBjb21ibyBib3ggdmFsdWUsXG4gICB3aGV0aGVyIHRyaWdnZXJlZCBwcm9ncmFtbWF0aWNhbGx5IG9yIHRocm91Z2ggdXNlciBpbnRlcmFjdGlvbi4gXG4gICAqL1xuICB2ZWdhQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8c3RyaW5nW10+PjtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIGNoYW5nZXMgaW4gdGhlIHZhbGlkYXRpb24gcmVzdWx0IG9mIHRoZSBjb21ibyBib3guIFxuICAgKi9cbiAgdmVnYVZhbGlkYXRlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8Ym9vbGVhbj4+O1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgd2hlbiB0aGUgdXNlciBoYXMgY2hvc2VuIHRvIGFkZCBhIG5ldyB2YWx1ZVxuICAgdG8gdGhlIHNvdXJjZSBhbmQgdmFsdWUgb2YgdGhlIGNvbWJvIGJveC5cblxuVGhlIGV2ZW50J3MgYGRldGFpbGAgcHJvcGVydHkgY29udGFpbnMgdGhlIG5ldyB2YWx1ZS5cblxuVGhlIGNvbWJvIGJveCBfZG9lcyBub3RfIGF1dG9tYXRpY2FsbHkgYWRkIHRoZSBuZXcgdmFsdWUgdG8gaXRzIGBzb3VyY2VgIGFuZCBgdmFsdWVgLiBcbiAgICovXG4gIHZlZ2FDcmVhdGU6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxzdHJpbmc+PjtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIHRoZSB1c2VyJ3Mgc2VhcmNoIGFjdGlvbiBpbiB0aGUgY29tYm8gYm94LFxuICAgYnV0IG9ubHkgaWYgdGhlIGB1c2VEZWZhdWx0RmlsdGVyYCBwcm9wZXJ0eSBpcyBzZXQgdG8gYGZhbHNlYC4gXG4gICAqL1xuICB2ZWdhU2VhcmNoOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8c3RyaW5nPj47XG5cbn1cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWydhdXRvVmFsaWRhdGlvbicsICdkaXNhYmxlZCcsICdoaW50JywgJ2lzVmFsaWQnLCAnbGFiZWwnLCAncGxhY2Vob2xkZXInLCAncmVxdWlyZWQnLCAnc2l6ZScsICdzb3VyY2UnLCAndXNlRGVmYXVsdEZpbHRlcicsICd2YWxpZGF0aW9uUnVsZXMnLCAndmFsdWUnLCAndmVnYURyb3Bkb3duUHJvcHMnXSxcbiAgbWV0aG9kczogWydjbG9zZScsICdvcGVuJywgJ3ZhbGlkJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2ZWdhLWNvbWJvLWJveCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnYXV0b1ZhbGlkYXRpb24nLCAnZGlzYWJsZWQnLCAnaGludCcsICdpc1ZhbGlkJywgJ2xhYmVsJywgJ3BsYWNlaG9sZGVyJywgJ3JlcXVpcmVkJywgJ3NpemUnLCAnc291cmNlJywgJ3VzZURlZmF1bHRGaWx0ZXInLCAndmFsaWRhdGlvblJ1bGVzJywgJ3ZhbHVlJywgJ3ZlZ2FEcm9wZG93blByb3BzJ11cbn0pXG5leHBvcnQgY2xhc3MgVmVnYUNvbWJvQm94IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsndmVnYUNoYW5nZScsICd2ZWdhVmFsaWRhdGUnLCAndmVnYUNyZWF0ZScsICd2ZWdhU2VhcmNoJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFZlZ2FDb3VudGVyQmFkZ2UgZXh0ZW5kcyBDb21wb25lbnRzLlZlZ2FDb3VudGVyQmFkZ2Uge31cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWydjb2xvcicsICdjb3VudCcsICdkb3QnLCAnb2Zmc2V0J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2ZWdhLWNvdW50ZXItYmFkZ2UnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ2NvbG9yJywgJ2NvdW50JywgJ2RvdCcsICdvZmZzZXQnXVxufSlcbmV4cG9ydCBjbGFzcyBWZWdhQ291bnRlckJhZGdlIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVmVnYURhdGVQaWNrZXIgZXh0ZW5kcyBDb21wb25lbnRzLlZlZ2FEYXRlUGlja2VyIHtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIHRoZSBjaGFuZ2Ugb2YgdGhlIHZhbHVlIGluIHRoZSBkYXRlIHBpY2tlcixcbiAgIHdoZXRoZXIgdHJpZ2dlcmVkIHByb2dyYW1tYXRpY2FsbHkgb3IgdGhyb3VnaCB1c2VyIGludGVyYWN0aW9uLiBcbiAgICovXG4gIHZlZ2FDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxzdHJpbmcgfCBzdHJpbmdbXT4+O1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgdGhlIGNoYW5nZSBpbiB0aGUgdmFsaWRhdGlvbiByZXN1bHQuIFxuICAgKi9cbiAgdmVnYVZhbGlkYXRlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8Ym9vbGVhbj4+O1xuXG59XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnYWxsb3dSZXBpY2snLCAnYXV0b1ZhbGlkYXRpb24nLCAnY2xlYXJCdXR0b24nLCAnZGlzYWJsZWQnLCAnZHJvcGRvd25Db25maWcnLCAnZm9ybVZhbGlkYXRpb24nLCAnZm9ybWF0JywgJ2lzVmFsaWQnLCAnbGFiZWwnLCAnbWF4RGF0ZScsICdtaW5EYXRlJywgJ21vZGUnLCAncGxhY2Vob2xkZXInLCAncmVhZE9ubHknLCAncmVxdWlyZWQnLCAnc2l6ZScsICd2YWxpZGF0aW9uUnVsZXMnLCAndmFsdWUnXSxcbiAgbWV0aG9kczogWyd2YWxpZCcsICdkb0Nsb3NlJywgJ2RvT3BlbiddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmVnYS1kYXRlLXBpY2tlcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnYWxsb3dSZXBpY2snLCAnYXV0b1ZhbGlkYXRpb24nLCAnY2xlYXJCdXR0b24nLCAnZGlzYWJsZWQnLCAnZHJvcGRvd25Db25maWcnLCAnZm9ybVZhbGlkYXRpb24nLCAnZm9ybWF0JywgJ2lzVmFsaWQnLCAnbGFiZWwnLCAnbWF4RGF0ZScsICdtaW5EYXRlJywgJ21vZGUnLCAncGxhY2Vob2xkZXInLCAncmVhZE9ubHknLCAncmVxdWlyZWQnLCAnc2l6ZScsICd2YWxpZGF0aW9uUnVsZXMnLCAndmFsdWUnXVxufSlcbmV4cG9ydCBjbGFzcyBWZWdhRGF0ZVBpY2tlciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3ZlZ2FDaGFuZ2UnLCAndmVnYVZhbGlkYXRlJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFZlZ2FEaWFsb2cgZXh0ZW5kcyBDb21wb25lbnRzLlZlZ2FEaWFsb2cge31cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWydjYW5jZWxCdXR0b24nLCAnY29udGVudCcsICdkaWFsb2dUaXRsZScsICdoYW5kbGVDYW5jZWwnLCAnaGFuZGxlT2snLCAnbW9kYWxQcm9wcycsICdva0J1dHRvbicsICdzaG93Q2FuY2VsJywgJ3R5cGUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZlZ2EtZGlhbG9nJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydjYW5jZWxCdXR0b24nLCAnY29udGVudCcsICdkaWFsb2dUaXRsZScsICdoYW5kbGVDYW5jZWwnLCAnaGFuZGxlT2snLCAnbW9kYWxQcm9wcycsICdva0J1dHRvbicsICdzaG93Q2FuY2VsJywgJ3R5cGUnXVxufSlcbmV4cG9ydCBjbGFzcyBWZWdhRGlhbG9nIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVmVnYURyb3Bkb3duIGV4dGVuZHMgQ29tcG9uZW50cy5WZWdhRHJvcGRvd24ge1xuICAvKipcbiAgICogIEBkZXByZWNhdGVkIFRoaXMgcHJvcGVydHkgd2lsbCBiZSByZW1vdmVkIHNvb24gKlxuICAgKi9cbiAgdmVnYUNsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8c3RyaW5nIHwgc3RyaW5nW10+PjtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIHRoYXQgYSBkcm9wZG93biBpdGVtIGhhcyBiZWVuIGNsaWNrZWQuXG5cblRoZSBldmVudCdzIGBkZXRhaWxgIHByb3BlcnR5IGNvbnRhaW5zIHRoZSBrZXkgb2YgdGhlIGNsaWNrZWQgaXRlbS4gXG4gICAqL1xuICB2ZWdhRHJvcGRvd25DbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHN0cmluZz4+O1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgdGhhdCB0aGUgZHJvcGRvd24gaGFzIGJlZW4gZGlzcGxheWVkLFxuICAgZWl0aGVyIHByb2dyYW1tYXRpY2FsbHkgb3IgdmlhIHVzZXIgaW50ZXJhY3Rpb24uIFxuICAgKi9cbiAgdmVnYVNob3c6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxzdHJpbmc+PjtcbiAgLyoqXG4gICAqIEV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIHRoYXQgdGhlIGRyb3Bkb3duIGhhcyBiZWVuIGRpc21pc3NlZCxcbiAgIGVpdGhlciBwcm9ncmFtbWF0aWNhbGx5IG9yIHZpYSB1c2VyIGludGVyYWN0aW9uLiBcbiAgICovXG4gIHZlZ2FIaWRlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8c3RyaW5nPj47XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyB0aGUgYWRkaXRpb24gb2YgYSBuZXcgdmFsdWVcbiAgIHRvIHRoZSBkcm9wZG93biBzb3VyY2UgbGlzdC5cblxuVGhlIGV2ZW50J3MgYGRldGFpbGAgcHJvcGVydHkgY29udGFpbnMgdGhlIG5ldyB2YWx1ZS5cblxuVGhlIGRyb3Bkb3duIF9kb2VzIG5vdF8gYXV0b21hdGljYWxseSBhZGQgdGhlIG5ldyB2YWx1ZSB0byB0aGUgc291cmNlIGxpc3QuIFxuICAgKi9cbiAgdmVnYUNyZWF0ZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHN0cmluZz4+O1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgdGhlIHNlYXJjaCBldmVudCBpbiB0aGUgZHJvcGRvd24sXG4gICBidXQgb25seSBpZiBgdXNlRGVmYXVsdEZpbHRlcmAgaXMgc2V0IHRvIGBmYWxzZWAuIFxuICAgKi9cbiAgdmVnYVNlYXJjaDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHN0cmluZz4+O1xuXG59XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnYWxpZ25tZW50JywgJ2Nhc2VTZW5zaXRpdmUnLCAnZHluYW1pY09wdGlvbicsICdpc0xvYWRpbmcnLCAnaXRlbURpc3BsYXlSdWxlJywgJ21hdGNoQ29udGFpbmVySGVpZ2h0JywgJ21hdGNoVGFyZ2V0V2lkdGgnLCAnbWF4SGVpZ2h0JywgJ21heFdpZHRoJywgJ21pbldpZHRoJywgJ3BsYWNlbWVudCcsICdwb3NpdGlvblJlbGF0aXZlVG8nLCAnc2VhcmNoYWJsZScsICdzZWxlY3RUeXBlJywgJ3NlbGVjdGVkU291cmNlS2V5JywgJ3NpemUnLCAnc291cmNlJywgJ3RyYW5zbG9jYXRpb24nLCAndHJpZ2dlcicsICd1c2VEZWZhdWx0RmlsdGVyJ10sXG4gIG1ldGhvZHM6IFsnc2hvdycsICdoaWRlJywgJ3NlYXJjaCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmVnYS1kcm9wZG93bicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnYWxpZ25tZW50JywgJ2Nhc2VTZW5zaXRpdmUnLCAnZHluYW1pY09wdGlvbicsICdpc0xvYWRpbmcnLCAnaXRlbURpc3BsYXlSdWxlJywgJ21hdGNoQ29udGFpbmVySGVpZ2h0JywgJ21hdGNoVGFyZ2V0V2lkdGgnLCAnbWF4SGVpZ2h0JywgJ21heFdpZHRoJywgJ21pbldpZHRoJywgJ3BsYWNlbWVudCcsICdwb3NpdGlvblJlbGF0aXZlVG8nLCAnc2VhcmNoYWJsZScsICdzZWxlY3RUeXBlJywgJ3NlbGVjdGVkU291cmNlS2V5JywgJ3NpemUnLCAnc291cmNlJywgJ3RyYW5zbG9jYXRpb24nLCAndHJpZ2dlcicsICd1c2VEZWZhdWx0RmlsdGVyJ11cbn0pXG5leHBvcnQgY2xhc3MgVmVnYURyb3Bkb3duIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsndmVnYUNsaWNrJywgJ3ZlZ2FEcm9wZG93bkNsaWNrJywgJ3ZlZ2FTaG93JywgJ3ZlZ2FIaWRlJywgJ3ZlZ2FDcmVhdGUnLCAndmVnYVNlYXJjaCddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBWZWdhRmllbGRMYWJlbCBleHRlbmRzIENvbXBvbmVudHMuVmVnYUZpZWxkTGFiZWwge31cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWydkaXNhYmxlZCcsICdpc0ZpZWxkUmVxdWlyZWQnLCAnbGFiZWwnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZlZ2EtZmllbGQtbGFiZWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ2Rpc2FibGVkJywgJ2lzRmllbGRSZXF1aXJlZCcsICdsYWJlbCddXG59KVxuZXhwb3J0IGNsYXNzIFZlZ2FGaWVsZExhYmVsIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVmVnYUZsZXggZXh0ZW5kcyBDb21wb25lbnRzLlZlZ2FGbGV4IHt9XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnYWxpZ25JdGVtJywgJ2JyZWFrcG9pbnQnLCAnZGlyZWN0aW9uJywgJ2dhcCcsICdqdXN0aWZ5Q29udGVudCcsICdtYXJnaW4nLCAndXNlTmF0aXZlRmxleCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmVnYS1mbGV4JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydhbGlnbkl0ZW0nLCAnYnJlYWtwb2ludCcsICdkaXJlY3Rpb24nLCAnZ2FwJywgJ2p1c3RpZnlDb250ZW50JywgJ21hcmdpbicsICd1c2VOYXRpdmVGbGV4J11cbn0pXG5leHBvcnQgY2xhc3MgVmVnYUZsZXgge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBWZWdhRm9vdGVyIGV4dGVuZHMgQ29tcG9uZW50cy5WZWdhRm9vdGVyIHt9XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsncHJpdmFjeVVybCcsICd0b3NVcmwnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZlZ2EtZm9vdGVyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydwcml2YWN5VXJsJywgJ3Rvc1VybCddXG59KVxuZXhwb3J0IGNsYXNzIFZlZ2FGb290ZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBWZWdhRm9ybSBleHRlbmRzIENvbXBvbmVudHMuVmVnYUZvcm0ge1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgdGhlIGNoYW5nZSBpbiB0aGUgdmFsaWRhdGlvbiByZXN1bHQuIFxuICAgKi9cbiAgdmVnYVZhbGlkYXRlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8Ym9vbGVhbj4+O1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgdGhlIHN1Ym1pc3Npb24gb2YgdGhlIGZvcm0uIFxuICAgKi9cbiAgdmVnYUZvcm1TdWJtaXQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx1bmtub3duPj47XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyB0aGUgcmVzZXQgb2YgdGhlIGZvcm0uIFxuICAgKi9cbiAgdmVnYUZvcm1SZXNldDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PGFueT4+O1xuXG59XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnaXNUb3VjaGVkJywgJ2lzVmFsaWQnXSxcbiAgbWV0aG9kczogWyd2YWxpZCcsICdnZXRWYWx1ZScsICdzZXRWYWx1ZScsICdyZXNldCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmVnYS1mb3JtJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydpc1RvdWNoZWQnLCAnaXNWYWxpZCddXG59KVxuZXhwb3J0IGNsYXNzIFZlZ2FGb3JtIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsndmVnYVZhbGlkYXRlJywgJ3ZlZ2FGb3JtU3VibWl0JywgJ3ZlZ2FGb3JtUmVzZXQnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVmVnYUdyaWQgZXh0ZW5kcyBDb21wb25lbnRzLlZlZ2FHcmlkIHt9XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnY29sdW1uJywgJ2dhcCcsICdyb3cnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZlZ2EtZ3JpZCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnY29sdW1uJywgJ2dhcCcsICdyb3cnXVxufSlcbmV4cG9ydCBjbGFzcyBWZWdhR3JpZCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFZlZ2FIZWFkZXIgZXh0ZW5kcyBDb21wb25lbnRzLlZlZ2FIZWFkZXIge31cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWRcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2ZWdhLWhlYWRlcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nXG59KVxuZXhwb3J0IGNsYXNzIFZlZ2FIZWFkZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBWZWdhSWNvbiBleHRlbmRzIENvbXBvbmVudHMuVmVnYUljb24ge31cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWydjb2xvcicsICdpY29uJywgJ3NpemUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZlZ2EtaWNvbicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnY29sb3InLCAnaWNvbicsICdzaXplJ11cbn0pXG5leHBvcnQgY2xhc3MgVmVnYUljb24ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5pbXBvcnQgdHlwZSB7IFZlZ2FGaWxlIGFzIElWZWdhSW1hZ2VVcGxvYWRlclZlZ2FGaWxlIH0gZnJvbSAnQGhlYXJ0bGFuZG9uZS92ZWdhL2Rpc3QvdHlwZXMvY29tcG9uZW50cy92ZWdhLWltYWdlLXVwbG9hZGVyL3R5cGVzJztcbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBWZWdhSW1hZ2VVcGxvYWRlciBleHRlbmRzIENvbXBvbmVudHMuVmVnYUltYWdlVXBsb2FkZXIge1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgYSB2YWx1ZSBjaGFuZ2UuIFxuICAgKi9cbiAgdmVnYUNoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElWZWdhSW1hZ2VVcGxvYWRlclZlZ2FGaWxlPj47XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyB0aGUgcmVtb3ZhbCBvZiBhIHZhbHVlLiBcbiAgICovXG4gIHZlZ2FSZW1vdmU6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxhbnk+PjtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIHRoZSBjYW5jZWxsYXRpb24gb2YgYW4gdXBsb2FkaW5nIGV2ZW50LiBcbiAgICovXG4gIHZlZ2FDYW5jZWw6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxhbnk+PjtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIHRoZSBjaGFuZ2UgaW4gdGhlIHZhbGlkYXRpb24gcmVzdWx0LiBcbiAgICovXG4gIHZlZ2FWYWxpZGF0ZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PGJvb2xlYW4+PjtcblxufVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2FjY2VwdCcsICdhdXRvVmFsaWRhdGlvbicsICdkaXNhYmxlZCcsICdpc1ZhbGlkJywgJ3JlcXVpcmVkJywgJ3Nob3dQcmV2aWV3QnV0dG9uJywgJ3Nob3dSZW1vdmVCdXR0b24nLCAnc2hvd1JlcGxhY2VCdXR0b24nLCAnc3RhdHVzJywgJ3ZhbGlkYXRpb25SdWxlcycsICd2YWx1ZSddLFxuICBtZXRob2RzOiBbJ3ZhbGlkJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2ZWdhLWltYWdlLXVwbG9hZGVyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydhY2NlcHQnLCAnYXV0b1ZhbGlkYXRpb24nLCAnZGlzYWJsZWQnLCAnaXNWYWxpZCcsICdyZXF1aXJlZCcsICdzaG93UHJldmlld0J1dHRvbicsICdzaG93UmVtb3ZlQnV0dG9uJywgJ3Nob3dSZXBsYWNlQnV0dG9uJywgJ3N0YXR1cycsICd2YWxpZGF0aW9uUnVsZXMnLCAndmFsdWUnXVxufSlcbmV4cG9ydCBjbGFzcyBWZWdhSW1hZ2VVcGxvYWRlciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3ZlZ2FDaGFuZ2UnLCAndmVnYVJlbW92ZScsICd2ZWdhQ2FuY2VsJywgJ3ZlZ2FWYWxpZGF0ZSddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBWZWdhSW5wdXQgZXh0ZW5kcyBDb21wb25lbnRzLlZlZ2FJbnB1dCB7XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyBhIHZhbHVlIGNoYW5nZS4gXG4gICAqL1xuICB2ZWdhQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8c3RyaW5nPj47XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyB0aGUgY2hhbmdlIGluIHRoZSB2YWxpZGF0aW9uIHJlc3VsdC4gXG4gICAqL1xuICB2ZWdhVmFsaWRhdGU6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxib29sZWFuPj47XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyB0aGUgYmx1ciBvZiB0aGUgaW5uZXIgaW5wdXQgZWxlbWVudC4gXG4gICAqL1xuICB2ZWdhQmx1cjogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHVuZGVmaW5lZD4+O1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgdGhlIGZvY3VzIG9mIHRoZSBpbm5lciBpbnB1dCBlbGVtZW50LiBcbiAgICovXG4gIHZlZ2FGb2N1czogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHVuZGVmaW5lZD4+O1xuXG59XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnYXV0b1ZhbGlkYXRpb24nLCAnYXV0b2NvbXBsZXRlJywgJ2Rpc2FibGVkJywgJ2VtYWlsJywgJ2Zvcm1WYWxpZGF0aW9uJywgJ2hpbnQnLCAnaXNWYWxpZCcsICdsYWJlbCcsICdtYXNrQ29uZmlnJywgJ21heCcsICdtYXhMZW5ndGgnLCAnbWluJywgJ21pbkxlbmd0aCcsICdwbGFjZWhvbGRlcicsICdwcmVmaXhJY29uJywgJ3JlcXVpcmVkJywgJ3Nob3dDbGVhckljb24nLCAnc2l6ZScsICd0eXBlJywgJ3ZhbGlkYXRpb25SdWxlcycsICd2YWx1ZSddLFxuICBtZXRob2RzOiBbJ3ZhbGlkJywgJ2RvRm9jdXMnLCAnZG9CbHVyJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2ZWdhLWlucHV0JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydhdXRvVmFsaWRhdGlvbicsICdhdXRvY29tcGxldGUnLCAnZGlzYWJsZWQnLCAnZW1haWwnLCAnZm9ybVZhbGlkYXRpb24nLCAnaGludCcsICdpc1ZhbGlkJywgJ2xhYmVsJywgJ21hc2tDb25maWcnLCAnbWF4JywgJ21heExlbmd0aCcsICdtaW4nLCAnbWluTGVuZ3RoJywgJ3BsYWNlaG9sZGVyJywgJ3ByZWZpeEljb24nLCAncmVxdWlyZWQnLCAnc2hvd0NsZWFySWNvbicsICdzaXplJywgJ3R5cGUnLCAndmFsaWRhdGlvblJ1bGVzJywgJ3ZhbHVlJ11cbn0pXG5leHBvcnQgY2xhc3MgVmVnYUlucHV0IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsndmVnYUNoYW5nZScsICd2ZWdhVmFsaWRhdGUnLCAndmVnYUJsdXInLCAndmVnYUZvY3VzJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFZlZ2FJbnB1dENyZWRpdENhcmQgZXh0ZW5kcyBDb21wb25lbnRzLlZlZ2FJbnB1dENyZWRpdENhcmQge1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgdGhlIGNoYW5nZSBpbiB0aGUgdmFsaWRhdGlvbiByZXN1bHQuIFxuICAgKi9cbiAgdmVnYVZhbGlkYXRlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8Ym9vbGVhbj4+O1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgYSB2YWx1ZSBjaGFuZ2UuIFxuICAgKi9cbiAgdmVnYUNoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHN0cmluZz4+O1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgdGhlIGJsdXIgZXZlbnQgb2YgdGhlIGNyZWRpdCBjYXJkIGVsZW1lbnQuIFxuICAgKi9cbiAgdmVnYUJsdXI6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx1bmRlZmluZWQ+PjtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIHRoZSBmb2N1cyBvZiB0aGUgY3JlZGl0IGNhcmQgZWxlbWVudC4gXG4gICAqL1xuICB2ZWdhRm9jdXM6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx1bmRlZmluZWQ+PjtcblxufVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2F1dG9WYWxpZGF0aW9uJywgJ2Rpc2FibGVkJywgJ2hpZGVDYXJkTnVtYmVyT25CbHVyJywgJ2hpbnQnLCAnaXNWYWxpZCcsICdsYWJlbCcsICdwbGFjZWhvbGRlcicsICdyZXF1aXJlZCcsICdzaXplJywgJ3ZhbGlkYXRpb25SdWxlcycsICd2YWx1ZSddLFxuICBtZXRob2RzOiBbJ3ZhbGlkJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2ZWdhLWlucHV0LWNyZWRpdC1jYXJkJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydhdXRvVmFsaWRhdGlvbicsICdkaXNhYmxlZCcsICdoaWRlQ2FyZE51bWJlck9uQmx1cicsICdoaW50JywgJ2lzVmFsaWQnLCAnbGFiZWwnLCAncGxhY2Vob2xkZXInLCAncmVxdWlyZWQnLCAnc2l6ZScsICd2YWxpZGF0aW9uUnVsZXMnLCAndmFsdWUnXVxufSlcbmV4cG9ydCBjbGFzcyBWZWdhSW5wdXRDcmVkaXRDYXJkIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsndmVnYVZhbGlkYXRlJywgJ3ZlZ2FDaGFuZ2UnLCAndmVnYUJsdXInLCAndmVnYUZvY3VzJ10pO1xuICB9XG59XG5cbmltcG9ydCB0eXBlIHsgU2VsZWN0VmFsdWVUeXBlIGFzIElWZWdhSW5wdXRTZWxlY3RTZWxlY3RWYWx1ZVR5cGUgfSBmcm9tICdAaGVhcnRsYW5kb25lL3ZlZ2EvZGlzdC90eXBlcy9jb21wb25lbnRzL3ZlZ2EtaW5wdXQtc2VsZWN0L3R5cGVzJztcbmltcG9ydCB0eXBlIHsgU2VsZWN0VHlwZSBhcyBJVmVnYUlucHV0U2VsZWN0U2VsZWN0VHlwZSB9IGZyb20gJ0BoZWFydGxhbmRvbmUvdmVnYS9kaXN0L3R5cGVzL2NvbXBvbmVudHMvdmVnYS1pbnB1dC1zZWxlY3QvdHlwZXMnO1xuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFZlZ2FJbnB1dFNlbGVjdCBleHRlbmRzIENvbXBvbmVudHMuVmVnYUlucHV0U2VsZWN0IHtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIHRoZSBjaGFuZ2Ugb2YgdGhlIHNlbGVjdCB2YWx1ZS4gXG4gICAqL1xuICB2ZWdhQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVZlZ2FJbnB1dFNlbGVjdFNlbGVjdFZhbHVlVHlwZTxJVmVnYUlucHV0U2VsZWN0U2VsZWN0VHlwZT4+PjtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIHRoZSBjaGFuZ2UgaW4gdGhlIHZhbGlkYXRpb24gcmVzdWx0LiBcbiAgICovXG4gIHZlZ2FWYWxpZGF0ZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PGJvb2xlYW4+PjtcblxufVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2F1dG9WYWxpZGF0aW9uJywgJ2Rpc2FibGVkJywgJ2Zvcm1WYWxpZGF0aW9uJywgJ2hpbnQnLCAnaXNWYWxpZCcsICdsYWJlbCcsICdwbGFjZWhvbGRlcicsICdwcmVmaXhJY29uJywgJ3JlcXVpcmVkJywgJ3NlbGVjdFR5cGUnLCAnc2VsZWN0ZWRMYWJlbCcsICdzaXplJywgJ3NvdXJjZScsICd2YWxpZGF0aW9uUnVsZXMnLCAndmFsdWUnLCAndmVnYURyb3Bkb3duUHJvcHMnXSxcbiAgbWV0aG9kczogWydkb0Nsb3NlJywgJ2RvT3BlbicsICdkb0NoYW5nZScsICd2YWxpZCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmVnYS1pbnB1dC1zZWxlY3QnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ2F1dG9WYWxpZGF0aW9uJywgJ2Rpc2FibGVkJywgJ2Zvcm1WYWxpZGF0aW9uJywgJ2hpbnQnLCAnaXNWYWxpZCcsICdsYWJlbCcsICdwbGFjZWhvbGRlcicsICdwcmVmaXhJY29uJywgJ3JlcXVpcmVkJywgJ3NlbGVjdFR5cGUnLCAnc2VsZWN0ZWRMYWJlbCcsICdzaXplJywgJ3NvdXJjZScsICd2YWxpZGF0aW9uUnVsZXMnLCAndmFsdWUnLCAndmVnYURyb3Bkb3duUHJvcHMnXVxufSlcbmV4cG9ydCBjbGFzcyBWZWdhSW5wdXRTZWxlY3Qge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWyd2ZWdhQ2hhbmdlJywgJ3ZlZ2FWYWxpZGF0ZSddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBWZWdhSXRlbVRvZ2dsZSBleHRlbmRzIENvbXBvbmVudHMuVmVnYUl0ZW1Ub2dnbGUge1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgYW4gaXRlbSB0b2dnbGUgZXZlbnQuIFxuICAgKi9cbiAgdmVnYVRvZ2dsZVN0YXR1czogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PGJvb2xlYW4+PjtcblxufVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2lzRXJyb3InLCAnaXNUb2dnbGVkJywgJ2l0ZW1Ub2dnbGVTdGF0dXNNYXAnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZlZ2EtaXRlbS10b2dnbGUnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ2lzRXJyb3InLCAnaXNUb2dnbGVkJywgJ2l0ZW1Ub2dnbGVTdGF0dXNNYXAnXVxufSlcbmV4cG9ydCBjbGFzcyBWZWdhSXRlbVRvZ2dsZSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3ZlZ2FUb2dnbGVTdGF0dXMnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVmVnYUxlZnROYXYgZXh0ZW5kcyBDb21wb25lbnRzLlZlZ2FMZWZ0TmF2IHtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIHRoYXQgdGhlIGxlZnQtbmF2J3Mgb3BlbiBzdGF0ZSBoYXMgY2hhbmdlZC4gXG4gICAqL1xuICB2ZWdhU3RhdGVVcGRhdGU6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxzdHJpbmc+PjtcblxufVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2Zvb3Rub3RlJywgJ2hlYWRlckNvbmZpZycsICdvcGVuJywgJ3Nob3dBc092ZXJsYXknLCAnc291cmNlJ10sXG4gIG1ldGhvZHM6IFsndG9nZ2xlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2ZWdhLWxlZnQtbmF2JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydmb290bm90ZScsICdoZWFkZXJDb25maWcnLCAnb3BlbicsICdzaG93QXNPdmVybGF5JywgJ3NvdXJjZSddXG59KVxuZXhwb3J0IGNsYXNzIFZlZ2FMZWZ0TmF2IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsndmVnYVN0YXRlVXBkYXRlJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFZlZ2FMZWZ0TmF2R3JvdXAgZXh0ZW5kcyBDb21wb25lbnRzLlZlZ2FMZWZ0TmF2R3JvdXAge1xuICAvKipcbiAgICogZXZlbnQgZW1pdHRlciB1c2VkIGZvciBub3RpZnlpbmcgY29uc3VtZXJzIHRoZSBjbGljayBldmVudCBcbiAgICovXG4gIHZlZ2FHcm91cENsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8c3RyaW5nPj47XG5cbn1cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWydpY29uJywgJ2xhYmVsJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2ZWdhLWxlZnQtbmF2LWdyb3VwJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydpY29uJywgJ2xhYmVsJ11cbn0pXG5leHBvcnQgY2xhc3MgVmVnYUxlZnROYXZHcm91cCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3ZlZ2FHcm91cENsaWNrJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFZlZ2FMZWZ0TmF2TGluayBleHRlbmRzIENvbXBvbmVudHMuVmVnYUxlZnROYXZMaW5rIHtcbiAgLyoqXG4gICAqIGV2ZW50IGVtaXR0ZXIgdXNlZCBmb3Igbm90aWZ5aW5nIGNvbnN1bWVycyB0aGUgY2xpY2sgZXZlbnQgXG4gICAqL1xuICB2ZWdhTWVudUNsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8YW55Pj47XG5cbn1cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWydjb3VudGVyQmFkZ2UnLCAnaWNvbicsICdzZWxlY3RlZCcsICd1cmwnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZlZ2EtbGVmdC1uYXYtbGluaycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnY291bnRlckJhZGdlJywgJ2ljb24nLCAnc2VsZWN0ZWQnLCAndXJsJ11cbn0pXG5leHBvcnQgY2xhc3MgVmVnYUxlZnROYXZMaW5rIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsndmVnYU1lbnVDbGljayddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBWZWdhTGVmdE5hdlNlY3Rpb24gZXh0ZW5kcyBDb21wb25lbnRzLlZlZ2FMZWZ0TmF2U2VjdGlvbiB7fVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ3NlY3Rpb25IZWFkZXInXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZlZ2EtbGVmdC1uYXYtc2VjdGlvbicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnc2VjdGlvbkhlYWRlciddXG59KVxuZXhwb3J0IGNsYXNzIFZlZ2FMZWZ0TmF2U2VjdGlvbiB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFZlZ2FMaW5lQ2hhcnQgZXh0ZW5kcyBDb21wb25lbnRzLlZlZ2FMaW5lQ2hhcnQge31cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWydvcHRpb25zJ10sXG4gIG1ldGhvZHM6IFsncmVSZW5kZXInXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZlZ2EtbGluZS1jaGFydCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnb3B0aW9ucyddXG59KVxuZXhwb3J0IGNsYXNzIFZlZ2FMaW5lQ2hhcnQge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBWZWdhTG9hZGluZ0luZGljYXRvciBleHRlbmRzIENvbXBvbmVudHMuVmVnYUxvYWRpbmdJbmRpY2F0b3Ige31cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWydoaW50JywgJ2xhYmVsJywgJ21vZGUnLCAncGVyY2VudCcsICdzaGFwZScsICdzaXplJywgJ3N0YXR1cyddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmVnYS1sb2FkaW5nLWluZGljYXRvcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnaGludCcsICdsYWJlbCcsICdtb2RlJywgJ3BlcmNlbnQnLCAnc2hhcGUnLCAnc2l6ZScsICdzdGF0dXMnXVxufSlcbmV4cG9ydCBjbGFzcyBWZWdhTG9hZGluZ0luZGljYXRvciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFZlZ2FNb2RhbCBleHRlbmRzIENvbXBvbmVudHMuVmVnYU1vZGFsIHtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIHRoZSBtb2RhbCBjbG9zZSBldmVudC4gXG4gICAqL1xuICB2ZWdhQ2xvc2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxhbnk+PjtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIHRoZSBtb2RhbCBvcGVuIGV2ZW50LiBcbiAgICovXG4gIHZlZ2FPcGVuOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8YW55Pj47XG5cbn1cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWydhbmltYXRpb24nLCAnYmFja2Ryb3AnLCAnYmFja2Ryb3BDb2xvcicsICdjb250ZW50TWF4SGVpZ2h0JywgJ2hhbmRsZUNsb3NlJywgJ2lzVmVydGljYWxseUNlbnRlcicsICdtb2RhbFRpdGxlJywgJ29wZW4nLCAncGFkZGluZycsICdzaG93Q2xvc2VCdXR0b24nLCAnc2l6ZSddLFxuICBtZXRob2RzOiBbJ21vZGFsJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2ZWdhLW1vZGFsJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydhbmltYXRpb24nLCAnYmFja2Ryb3AnLCAnYmFja2Ryb3BDb2xvcicsICdjb250ZW50TWF4SGVpZ2h0JywgJ2hhbmRsZUNsb3NlJywgJ2lzVmVydGljYWxseUNlbnRlcicsICdtb2RhbFRpdGxlJywgJ29wZW4nLCAncGFkZGluZycsICdzaG93Q2xvc2VCdXR0b24nLCAnc2l6ZSddXG59KVxuZXhwb3J0IGNsYXNzIFZlZ2FNb2RhbCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3ZlZ2FDbG9zZScsICd2ZWdhT3BlbiddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBWZWdhTmF2Q2FyZCBleHRlbmRzIENvbXBvbmVudHMuVmVnYU5hdkNhcmQge31cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWydzb3VyY2UnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZlZ2EtbmF2LWNhcmQnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ3NvdXJjZSddXG59KVxuZXhwb3J0IGNsYXNzIFZlZ2FOYXZDYXJkIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVmVnYU9wdGlvbiBleHRlbmRzIENvbXBvbmVudHMuVmVnYU9wdGlvbiB7fVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2ljb24nLCAnbGFiZWwnLCAnc3ViTGFiZWwnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZlZ2Etb3B0aW9uJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydpY29uJywgJ2xhYmVsJywgJ3N1YkxhYmVsJ11cbn0pXG5leHBvcnQgY2xhc3MgVmVnYU9wdGlvbiB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFZlZ2FQYWdlTm90aWZpY2F0aW9uIGV4dGVuZHMgQ29tcG9uZW50cy5WZWdhUGFnZU5vdGlmaWNhdGlvbiB7fVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2FjdGlvbkJ1dHRvbnMnLCAnZHVyYXRpb24nLCAnbWVzc2FnZScsICdub3RpZmljYXRpb25UaXRsZScsICdzaG93Q2xvc2VCdXR0b24nLCAndHlwZSddLFxuICBtZXRob2RzOiBbJ2Nsb3NlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2ZWdhLXBhZ2Utbm90aWZpY2F0aW9uJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydhY3Rpb25CdXR0b25zJywgJ2R1cmF0aW9uJywgJ21lc3NhZ2UnLCAnbm90aWZpY2F0aW9uVGl0bGUnLCAnc2hvd0Nsb3NlQnV0dG9uJywgJ3R5cGUnXVxufSlcbmV4cG9ydCBjbGFzcyBWZWdhUGFnZU5vdGlmaWNhdGlvbiB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFZlZ2FQYWdpbmF0aW9uIGV4dGVuZHMgQ29tcG9uZW50cy5WZWdhUGFnaW5hdGlvbiB7XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyB0aGUgY3VycmVudCBwYWdlIGNoYW5nZS4gXG4gICAqL1xuICB2ZWdhQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8bnVtYmVyPj47XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyBhIGNoYW5nZSBpbiB0aGUgbnVtYmVyIG9mXG4gICBkYXRhIGl0ZW1zIGRpc3BsYXllZCBwZXIgcGFnZS4gXG4gICAqL1xuICB2ZWdhUGFnZVNpemVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxudW1iZXI+PjtcblxufVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2N1cnJlbnQnLCAnZXh0ZW5zaW9ucycsICdwYWdlU2l6ZScsICdwYWdlU2l6ZVNlbGVjdG9yT3B0aW9ucycsICd0b3RhbCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmVnYS1wYWdpbmF0aW9uJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydjdXJyZW50JywgJ2V4dGVuc2lvbnMnLCAncGFnZVNpemUnLCAncGFnZVNpemVTZWxlY3Rvck9wdGlvbnMnLCAndG90YWwnXVxufSlcbmV4cG9ydCBjbGFzcyBWZWdhUGFnaW5hdGlvbiB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3ZlZ2FDaGFuZ2UnLCAndmVnYVBhZ2VTaXplQ2hhbmdlJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFZlZ2FQaWVDaGFydCBleHRlbmRzIENvbXBvbmVudHMuVmVnYVBpZUNoYXJ0IHt9XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnb3B0aW9ucyddLFxuICBtZXRob2RzOiBbJ3JlUmVuZGVyJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2ZWdhLXBpZS1jaGFydCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnb3B0aW9ucyddXG59KVxuZXhwb3J0IGNsYXNzIFZlZ2FQaWVDaGFydCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFZlZ2FQb3BvdmVyIGV4dGVuZHMgQ29tcG9uZW50cy5WZWdhUG9wb3ZlciB7XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyB0aGUgcG9wb3ZlciBzaG93IGV2ZW50LiBcbiAgICovXG4gIHZlZ2FQb3BvdmVyU2hvdzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHN0cmluZz4+O1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgdGhlIHBvcG92ZXIgaGlkZSBldmVudC4gXG4gICAqL1xuICB2ZWdhUG9wb3ZlckhpZGU6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxzdHJpbmc+PjtcblxufVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2FsaWdubWVudCcsICdwbGFjZW1lbnQnLCAncG9zaXRpb25SZWxhdGl2ZVRvJywgJ3NpemUnXSxcbiAgbWV0aG9kczogWydzaG93JywgJ2hpZGUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZlZ2EtcG9wb3ZlcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnYWxpZ25tZW50JywgJ3BsYWNlbWVudCcsICdwb3NpdGlvblJlbGF0aXZlVG8nLCAnc2l6ZSddXG59KVxuZXhwb3J0IGNsYXNzIFZlZ2FQb3BvdmVyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsndmVnYVBvcG92ZXJTaG93JywgJ3ZlZ2FQb3BvdmVySGlkZSddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBWZWdhUHJvZ3Jlc3NUcmFja2VyIGV4dGVuZHMgQ29tcG9uZW50cy5WZWdhUHJvZ3Jlc3NUcmFja2VyIHtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIHRoYXQgdGhlIGN1cnJlbnQgc3RlcCBoYXMgY2hhbmdlZC4gXG4gICAqL1xuICB2ZWdhQ3VycmVudFN0ZXBVcGRhdGU6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxzdHJpbmc+PjtcblxufVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2NhbkNsaWNrU3RlcCcsICdjb21wbGV0ZWRTdGVwQXJyYXknLCAnY3VycmVudCcsICdkaXJlY3Rpb24nLCAnc3RlcHMnXSxcbiAgbWV0aG9kczogWyduZXh0U3RlcCcsICdwcmV2U3RlcCcsICdzZXRDdXJyZW50JywgJ2dldEN1cnJlbnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZlZ2EtcHJvZ3Jlc3MtdHJhY2tlcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnY2FuQ2xpY2tTdGVwJywgJ2NvbXBsZXRlZFN0ZXBBcnJheScsICdjdXJyZW50JywgJ2RpcmVjdGlvbicsICdzdGVwcyddXG59KVxuZXhwb3J0IGNsYXNzIFZlZ2FQcm9ncmVzc1RyYWNrZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWyd2ZWdhQ3VycmVudFN0ZXBVcGRhdGUnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVmVnYVJhZGlvIGV4dGVuZHMgQ29tcG9uZW50cy5WZWdhUmFkaW8ge1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgdGhlIGZvY3VzIGV2ZW50IG9mIHRoZSByYWRpbyBpbnB1dC4gXG4gICAqL1xuICB2ZWdhRm9jdXM6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxhbnk+PjtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIHRoZSBibHVyIGV2ZW50IG9mIHRoZSByYWRpbyBpbnB1dC4gXG4gICAqL1xuICB2ZWdhQmx1cjogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PGFueT4+O1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgdGhlIGNoYW5nZSBpbiB0aGUgY2hlY2sgc3RhdHVzXG4gICBvZiB0aGUgcmFkaW8gaW5wdXQuIFxuICAgKi9cbiAgdmVnYUNoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PGJvb2xlYW4+PjtcblxufVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2NoZWNrZWQnLCAnZGlzYWJsZWQnLCAnbmFtZScsICdzaXplJywgJ3ZhbHVlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2ZWdhLXJhZGlvJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydjaGVja2VkJywgJ2Rpc2FibGVkJywgJ25hbWUnLCAnc2l6ZScsICd2YWx1ZSddXG59KVxuZXhwb3J0IGNsYXNzIFZlZ2FSYWRpbyB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3ZlZ2FGb2N1cycsICd2ZWdhQmx1cicsICd2ZWdhQ2hhbmdlJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFZlZ2FSYWRpb0dyb3VwIGV4dGVuZHMgQ29tcG9uZW50cy5WZWdhUmFkaW9Hcm91cCB7XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyB0aGUgY2hhbmdlIG9mIHRoZVxuICAgY2hlY2tlZCByYWRpbyBidXR0b24gaW4gdGhlIHJhZGlvIGdyb3VwLiBcbiAgICovXG4gIHZlZ2FDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxzdHJpbmc+PjtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIHRoZSBjaGFuZ2UgaW4gdGhlXG4gICB2YWxpZGF0aW9uIHJlc3VsdC4gXG4gICAqL1xuICB2ZWdhVmFsaWRhdGU6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxib29sZWFuPj47XG5cbn1cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWydkaXNhYmxlZCcsICdmb3JtVmFsaWRhdGlvbicsICdoaW50JywgJ2lzVmFsaWQnLCAnbGFiZWwnLCAnbmFtZScsICdyZXF1aXJlZCcsICd2YWx1ZScsICd2ZWdhRmxleFByb3AnXSxcbiAgbWV0aG9kczogWyd2YWxpZCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmVnYS1yYWRpby1ncm91cCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnZGlzYWJsZWQnLCAnZm9ybVZhbGlkYXRpb24nLCAnaGludCcsICdpc1ZhbGlkJywgJ2xhYmVsJywgJ25hbWUnLCAncmVxdWlyZWQnLCAndmFsdWUnLCAndmVnYUZsZXhQcm9wJ11cbn0pXG5leHBvcnQgY2xhc3MgVmVnYVJhZGlvR3JvdXAge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWyd2ZWdhQ2hhbmdlJywgJ3ZlZ2FWYWxpZGF0ZSddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBWZWdhU2lkZW5hdiBleHRlbmRzIENvbXBvbmVudHMuVmVnYVNpZGVuYXYge1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgdGhlIGNvbXBsZXRpb24gb2YgYSBuYXZpZ2F0aW9uIG1lbnUgY2xvc2Ugb3BlcmF0aW9uLiBcbiAgICovXG4gIHZlZ2FTdGF0ZVVwZGF0ZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHN0cmluZz4+O1xuXG59XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnZm9vdG5vdGUnLCAnaGVhZGVyQ29uZmlnJywgJ29wZW5CeURlZmF1bHQnLCAnc291cmNlJ10sXG4gIG1ldGhvZHM6IFsndG9nZ2xlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2ZWdhLXNpZGVuYXYnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ2Zvb3Rub3RlJywgJ2hlYWRlckNvbmZpZycsICdvcGVuQnlEZWZhdWx0JywgJ3NvdXJjZSddXG59KVxuZXhwb3J0IGNsYXNzIFZlZ2FTaWRlbmF2IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsndmVnYVN0YXRlVXBkYXRlJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFZlZ2FTaWRlbmF2R3JvdXAgZXh0ZW5kcyBDb21wb25lbnRzLlZlZ2FTaWRlbmF2R3JvdXAge31cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWydpY29uJywgJ2xhYmVsJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2ZWdhLXNpZGVuYXYtZ3JvdXAnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ2ljb24nLCAnbGFiZWwnXVxufSlcbmV4cG9ydCBjbGFzcyBWZWdhU2lkZW5hdkdyb3VwIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVmVnYVNpZGVuYXZMaW5rIGV4dGVuZHMgQ29tcG9uZW50cy5WZWdhU2lkZW5hdkxpbmsge1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgYWJvdXQgdGhlIG9jY3VycmVuY2Ugb2YgYSBjbGljayBldmVudC4gXG4gICAqL1xuICB2ZWdhQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxhbnk+PjtcblxufVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2ljb24nLCAnc2VsZWN0ZWQnLCAnc2hvd1NpZGVCYXJPbkNsaWNrTGluaycsICd1cmwnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZlZ2Etc2lkZW5hdi1saW5rJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydpY29uJywgJ3NlbGVjdGVkJywgJ3Nob3dTaWRlQmFyT25DbGlja0xpbmsnLCAndXJsJ11cbn0pXG5leHBvcnQgY2xhc3MgVmVnYVNpZGVuYXZMaW5rIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsndmVnYUNsaWNrJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFZlZ2FTdGVwcGVyIGV4dGVuZHMgQ29tcG9uZW50cy5WZWdhU3RlcHBlciB7XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyBjaGFuZ2VzIGluIHRoZSB2YWx1ZSBvZlxuICAgdGhlIHN0ZXBwZXIgY29tcG9uZW50LiBcbiAgICovXG4gIHZlZ2FDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxudW1iZXI+PjtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIGNoYW5nZXMgaW4gdGhlIHZhbGlkYXRpb25cbiAgIHJlc3VsdCBvZiB0aGUgc3RlcHBlciBjb21wb25lbnQuIFxuICAgKi9cbiAgdmVnYVZhbGlkYXRlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8Ym9vbGVhbj4+O1xuXG59XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnYXV0b1ZhbGlkYXRpb24nLCAnYnV0dG9uVmFyaWFudCcsICdkaXNhYmxlZCcsICdmb3JtVmFsaWRhdGlvbicsICdpbnB1dERpc2FibGVkJywgJ2lucHV0RWRpdGFibGUnLCAnaXNWYWxpZCcsICdsYWJlbCcsICdtYXgnLCAnbWluJywgJ3N0ZXBwZXJJZCcsICd2YWx1ZSddLFxuICBtZXRob2RzOiBbJ3ZhbGlkJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2ZWdhLXN0ZXBwZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ2F1dG9WYWxpZGF0aW9uJywgJ2J1dHRvblZhcmlhbnQnLCAnZGlzYWJsZWQnLCAnZm9ybVZhbGlkYXRpb24nLCAnaW5wdXREaXNhYmxlZCcsICdpbnB1dEVkaXRhYmxlJywgJ2lzVmFsaWQnLCAnbGFiZWwnLCAnbWF4JywgJ21pbicsICdzdGVwcGVySWQnLCAndmFsdWUnXVxufSlcbmV4cG9ydCBjbGFzcyBWZWdhU3RlcHBlciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3ZlZ2FDaGFuZ2UnLCAndmVnYVZhbGlkYXRlJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFZlZ2FUYWJHcm91cCBleHRlbmRzIENvbXBvbmVudHMuVmVnYVRhYkdyb3VwIHtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIHRoZSBjbGljayBldmVudCBvZiBhIHRhYlxuICAgaW4gdGhlIHRhYiBncm91cC4gXG4gICAqL1xuICB2ZWdhQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxzdHJpbmc+PjtcblxufVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2dhcCcsICdwb3NpdGlvblJlbGF0aXZlVG8nLCAnc2VsZWN0ZWRUYWJEYXRhVGFyZ2V0JywgJ3Nob3dDbG9zZUJ1dHRvbicsICd0YWJJdGVtcycsICd2YXJpYW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2ZWdhLXRhYi1ncm91cCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnZ2FwJywgJ3Bvc2l0aW9uUmVsYXRpdmVUbycsICdzZWxlY3RlZFRhYkRhdGFUYXJnZXQnLCAnc2hvd0Nsb3NlQnV0dG9uJywgJ3RhYkl0ZW1zJywgJ3ZhcmlhbnQnXVxufSlcbmV4cG9ydCBjbGFzcyBWZWdhVGFiR3JvdXAge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWyd2ZWdhQ2xpY2snXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVmVnYVRhYkdyb3VwUGFuZWwgZXh0ZW5kcyBDb21wb25lbnRzLlZlZ2FUYWJHcm91cFBhbmVsIHt9XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnaXNBY3RpdmUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZlZ2EtdGFiLWdyb3VwLXBhbmVsJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydpc0FjdGl2ZSddXG59KVxuZXhwb3J0IGNsYXNzIFZlZ2FUYWJHcm91cFBhbmVsIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuaW1wb3J0IHR5cGUgeyBWZWdhVGFibGVDaGFuZ2VQcm9wVHlwZSBhcyBJVmVnYVRhYmxlVmVnYVRhYmxlQ2hhbmdlUHJvcFR5cGUgfSBmcm9tICdAaGVhcnRsYW5kb25lL3ZlZ2EvZGlzdC90eXBlcy9jb21wb25lbnRzL3ZlZ2EtdGFibGUvaW50ZXJmYWNlJztcbmltcG9ydCB0eXBlIHsgVmVnYVRhYmxlUm93Q2xpY2tQcm9wVHlwZSBhcyBJVmVnYVRhYmxlVmVnYVRhYmxlUm93Q2xpY2tQcm9wVHlwZSB9IGZyb20gJ0BoZWFydGxhbmRvbmUvdmVnYS9kaXN0L3R5cGVzL2NvbXBvbmVudHMvdmVnYS10YWJsZS9pbnRlcmZhY2UnO1xuaW1wb3J0IHR5cGUgeyBWZWdhVGFibGVSb3dTZWxlY3RQcm9wIGFzIElWZWdhVGFibGVWZWdhVGFibGVSb3dTZWxlY3RQcm9wIH0gZnJvbSAnQGhlYXJ0bGFuZG9uZS92ZWdhL2Rpc3QvdHlwZXMvY29tcG9uZW50cy92ZWdhLXRhYmxlL2ludGVyZmFjZSc7XG5pbXBvcnQgdHlwZSB7IFZlZ2FUYWJsZVNlbGVjdEFsbFByb3AgYXMgSVZlZ2FUYWJsZVZlZ2FUYWJsZVNlbGVjdEFsbFByb3AgfSBmcm9tICdAaGVhcnRsYW5kb25lL3ZlZ2EvZGlzdC90eXBlcy9jb21wb25lbnRzL3ZlZ2EtdGFibGUvaW50ZXJmYWNlJztcbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBWZWdhVGFibGUgZXh0ZW5kcyBDb21wb25lbnRzLlZlZ2FUYWJsZSB7XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyBjaGFuZ2VzIGluIHRoZSB0YWJsZSBkYXRhLiBcbiAgICovXG4gIHZlZ2FDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJVmVnYVRhYmxlVmVnYVRhYmxlQ2hhbmdlUHJvcFR5cGU+PjtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIHRoZSBjbGljayBldmVudCBvZiBhIHJvd1xuICAgaW4gdGhlIHRhYmxlLiBcbiAgICovXG4gIHZlZ2FSb3dDbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElWZWdhVGFibGVWZWdhVGFibGVSb3dDbGlja1Byb3BUeXBlPj47XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyB0aGUgc2VsZWN0aW9uIG9yIGRlc2VsZWN0aW9uXG4gICBvZiBhIHJvdyBpbiB0aGUgdGFibGUuIFxuICAgKi9cbiAgdmVnYVNlbGVjdENoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElWZWdhVGFibGVWZWdhVGFibGVSb3dTZWxlY3RQcm9wPj47XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyBjaGFuZ2VzIGluIHRoZSBzZWxlY3Rpb24gb2YgY2hlY2tib3hlcyxcbiAgIHBhcnRpY3VsYXJseSB0aGUgXCJTZWxlY3QgQWxsXCIgY2hlY2tib3ggaW4gdGhlIHRhYmxlIGhlYWRlci4gXG4gICAqL1xuICB2ZWdhU2VsZWN0QWxsQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVZlZ2FUYWJsZVZlZ2FUYWJsZVNlbGVjdEFsbFByb3A+PjtcblxufVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2NvbHVtbkRpdmlkZXInLCAnY29sdW1ucycsICdkYXRhU291cmNlJywgJ2RlbnNpdHknLCAnZW1wdHlEZXNjcmlwdGlvbicsICdwYWRkaW5nWCcsICdwYWdpbmF0aW9uJywgJ3Jvd0NsaWNrYWJsZScsICdyb3dEaXZpZGVyJywgJ3Jvd0V4cGFuZGFibGUnLCAncm93S2V5JywgJ3Jvd1NlbGVjdGlvbicsICdzY3JvbGxDb25maWcnLCAnc2hvd0hlYWRlcicsICdzdHJpcGVkJ10sXG4gIG1ldGhvZHM6IFsnb3BlbkV4cGFuZFJvdycsICdjbG9zZUV4cGFuZFJvdycsICdjbG9zZUFsbEV4cGFuZFJvdycsICd0b2dnbGVFeHBhbmRSb3cnLCAnY2xlYXJTZWxlY3Rpb24nLCAnZ2V0U2VsZWN0aW9uJywgJ3NldFNlbGVjdGlvbicsICdzdGFydFJvd0VkaXRNb2RlJywgJ3N0b3BSb3dFZGl0TW9kZScsICdzdG9wQWxsUm93RWRpdE1vZGUnLCAnZ2V0Um93RGF0YScsICdnZXRSb3dzRGF0YScsICdnZXRGb3JtUmVmJywgJ2FkZE5ld1JvdycsICdzYXZlRWRpdFJvdycsICdzYXZlQWxsRWRpdFJvd3MnLCAnZ2V0RWRpdGluZ1Jvd3NLZXknLCAncmVtb3ZlUm93J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2ZWdhLXRhYmxlJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydjb2x1bW5EaXZpZGVyJywgJ2NvbHVtbnMnLCAnZGF0YVNvdXJjZScsICdkZW5zaXR5JywgJ2VtcHR5RGVzY3JpcHRpb24nLCAncGFkZGluZ1gnLCAncGFnaW5hdGlvbicsICdyb3dDbGlja2FibGUnLCAncm93RGl2aWRlcicsICdyb3dFeHBhbmRhYmxlJywgJ3Jvd0tleScsICdyb3dTZWxlY3Rpb24nLCAnc2Nyb2xsQ29uZmlnJywgJ3Nob3dIZWFkZXInLCAnc3RyaXBlZCddXG59KVxuZXhwb3J0IGNsYXNzIFZlZ2FUYWJsZSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3ZlZ2FDaGFuZ2UnLCAndmVnYVJvd0NsaWNrJywgJ3ZlZ2FTZWxlY3RDaGFuZ2UnLCAndmVnYVNlbGVjdEFsbENoYW5nZSddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBWZWdhVGV4dCBleHRlbmRzIENvbXBvbmVudHMuVmVnYVRleHQge31cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWydvdmVyZmxvdyddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmVnYS10ZXh0JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydvdmVyZmxvdyddXG59KVxuZXhwb3J0IGNsYXNzIFZlZ2FUZXh0IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVmVnYVRleHRhcmVhIGV4dGVuZHMgQ29tcG9uZW50cy5WZWdhVGV4dGFyZWEge1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgYWJvdXQgY2hhbmdlcyBpbiB0aGUgdmFsdWVcbiAgIG9mIHRoZSB0ZXh0IGFyZWEuIFxuICAgKi9cbiAgdmVnYUNoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHN0cmluZz4+O1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgY2hhbmdlcyBpbiB0aGUgdmFsaWRhdGlvbiByZXN1bHRcbiAgIG9mIHRoZSB0ZXh0IGFyZWEuIFxuICAgKi9cbiAgdmVnYVZhbGlkYXRlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8Ym9vbGVhbj4+O1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgdGhlIGJsdXIgZXZlbnQgb2YgdGhlIGlubmVyXG4gICB0ZXh0YXJlYSBlbGVtZW50IHdpdGhpbiB0aGUgdGV4dCBhcmVhLiBcbiAgICovXG4gIHZlZ2FCbHVyOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dW5kZWZpbmVkPj47XG5cbn1cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWydhdXRvVmFsaWRhdGlvbicsICdkaXNhYmxlZCcsICdoaW50JywgJ2lzVmFsaWQnLCAnbGFiZWwnLCAnbWF4TGVuZ3RoJywgJ21pbkxlbmd0aCcsICdwbGFjZWhvbGRlcicsICdyZXF1aXJlZCcsICdzaG93Q291bnRlcicsICd2YWxpZGF0aW9uUnVsZXMnLCAndmFsdWUnXSxcbiAgbWV0aG9kczogWyd2YWxpZCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmVnYS10ZXh0YXJlYScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnYXV0b1ZhbGlkYXRpb24nLCAnZGlzYWJsZWQnLCAnaGludCcsICdpc1ZhbGlkJywgJ2xhYmVsJywgJ21heExlbmd0aCcsICdtaW5MZW5ndGgnLCAncGxhY2Vob2xkZXInLCAncmVxdWlyZWQnLCAnc2hvd0NvdW50ZXInLCAndmFsaWRhdGlvblJ1bGVzJywgJ3ZhbHVlJ11cbn0pXG5leHBvcnQgY2xhc3MgVmVnYVRleHRhcmVhIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsndmVnYUNoYW5nZScsICd2ZWdhVmFsaWRhdGUnLCAndmVnYUJsdXInXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVmVnYVRpbWVQaWNrZXIgZXh0ZW5kcyBDb21wb25lbnRzLlZlZ2FUaW1lUGlja2VyIHtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIGNoYW5nZXMgaW4gdGhlIHZhbHVlIG9mIHRoZSB0aW1lIHBpY2tlci4gXG4gICAqL1xuICB2ZWdhQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8c3RyaW5nIHwgc3RyaW5nW10+PjtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIGNoYW5nZXMgaW4gdGhlIHZhbGlkYXRpb24gcmVzdWx0XG4gICBvZiB0aGUgdGltZSBwaWNrZXIuIFxuICAgKi9cbiAgdmVnYVZhbGlkYXRlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8Ym9vbGVhbj4+O1xuXG59XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnYXV0b1ZhbGlkYXRpb24nLCAnZGlzYWJsZWQnLCAnaW5jcmVtZW50cycsICdpc1ZhbGlkJywgJ2xhYmVsJywgJ3BsYWNlaG9sZGVyJywgJ3Bvc2l0aW9uUmVsYXRpdmVUbycsICdyZXF1aXJlZCcsICdzaXplJywgJ3RpbWVGb3JtYXQnLCAndmFsaWRhdGlvblJ1bGVzJywgJ3ZhbHVlJ10sXG4gIG1ldGhvZHM6IFsndmFsaWQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZlZ2EtdGltZS1waWNrZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ2F1dG9WYWxpZGF0aW9uJywgJ2Rpc2FibGVkJywgJ2luY3JlbWVudHMnLCAnaXNWYWxpZCcsICdsYWJlbCcsICdwbGFjZWhvbGRlcicsICdwb3NpdGlvblJlbGF0aXZlVG8nLCAncmVxdWlyZWQnLCAnc2l6ZScsICd0aW1lRm9ybWF0JywgJ3ZhbGlkYXRpb25SdWxlcycsICd2YWx1ZSddXG59KVxuZXhwb3J0IGNsYXNzIFZlZ2FUaW1lUGlja2VyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsndmVnYUNoYW5nZScsICd2ZWdhVmFsaWRhdGUnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVmVnYVRvZ2dsZVN3aXRjaCBleHRlbmRzIENvbXBvbmVudHMuVmVnYVRvZ2dsZVN3aXRjaCB7XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyBjaGFuZ2VzIGluIHRoZSB0b2dnbGUgc3dpdGNoLiBcbiAgICovXG4gIHZlZ2FDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxib29sZWFuPj47XG5cbn1cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWydjaGVja2VkJywgJ2Rpc2FibGVkJywgJ2xhYmVsJywgJ3NpemUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZlZ2EtdG9nZ2xlLXN3aXRjaCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnY2hlY2tlZCcsICdkaXNhYmxlZCcsICdsYWJlbCcsICdzaXplJ11cbn0pXG5leHBvcnQgY2xhc3MgVmVnYVRvZ2dsZVN3aXRjaCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3ZlZ2FDaGFuZ2UnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVmVnYVRvb2x0aXAgZXh0ZW5kcyBDb21wb25lbnRzLlZlZ2FUb29sdGlwIHt9XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnYWxpZ25tZW50JywgJ2NvbnRlbnQnLCAnbWF4V2lkdGgnLCAnbWluV2lkdGgnLCAncGxhY2VtZW50JywgJ3Bvc2l0aW9uUmVsYXRpdmVUbycsICdzaXplJywgJ3RyaWdnZXInXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZlZ2EtdG9vbHRpcCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnYWxpZ25tZW50JywgJ2NvbnRlbnQnLCAnbWF4V2lkdGgnLCAnbWluV2lkdGgnLCAncGxhY2VtZW50JywgJ3Bvc2l0aW9uUmVsYXRpdmVUbycsICdzaXplJywgJ3RyaWdnZXInXVxufSlcbmV4cG9ydCBjbGFzcyBWZWdhVG9vbHRpcCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFZlZ2FWaXJ0dWFsU2Nyb2xsIGV4dGVuZHMgQ29tcG9uZW50cy5WZWdhVmlydHVhbFNjcm9sbCB7fVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2FwcHJveEl0ZW1IZWlnaHQnLCAncmVuZGVySXRlbScsICdzb3VyY2UnLCAnc291cmNlSXRlbUlkZW50aWZpZXInLCAndGhyZXNob2xkT2ZXb3JrJywgJ3ZpZXdwb3J0TWF4SGVpZ2h0J10sXG4gIG1ldGhvZHM6IFsnc2Nyb2xsVG9JbmRleCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmVnYS12aXJ0dWFsLXNjcm9sbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnYXBwcm94SXRlbUhlaWdodCcsICdyZW5kZXJJdGVtJywgJ3NvdXJjZScsICdzb3VyY2VJdGVtSWRlbnRpZmllcicsICd0aHJlc2hvbGRPZldvcmsnLCAndmlld3BvcnRNYXhIZWlnaHQnXVxufSlcbmV4cG9ydCBjbGFzcyBWZWdhVmlydHVhbFNjcm9sbCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IFtcbiAgVmVnYUFjY29yZGlvbixcbiAgVmVnYUFwcEZvb3RlcixcbiAgVmVnYUFwcEhlYWRlckJ1dHRvbixcbiAgVmVnYUJhZGdlLFxuICBWZWdhQmFubmVyLFxuICBWZWdhQmFyQ2hhcnQsXG4gIFZlZ2FCb3gsXG4gIFZlZ2FCcmVhZGNydW1iLFxuICBWZWdhQnV0dG9uLFxuICBWZWdhQnV0dG9uQ2lyY2xlLFxuICBWZWdhQnV0dG9uTGluayxcbiAgVmVnYUNhcmQsXG4gIFZlZ2FDYXJvdXNlbCxcbiAgVmVnYUNoZWNrYm94LFxuICBWZWdhQ2hlY2tib3hHcm91cCxcbiAgVmVnYUNoaXAsXG4gIFZlZ2FDb2xvclBpY2tlcixcbiAgVmVnYUNvbWJvQm94LFxuICBWZWdhQ291bnRlckJhZGdlLFxuICBWZWdhRGF0ZVBpY2tlcixcbiAgVmVnYURpYWxvZyxcbiAgVmVnYURyb3Bkb3duLFxuICBWZWdhRmllbGRMYWJlbCxcbiAgVmVnYUZsZXgsXG4gIFZlZ2FGb290ZXIsXG4gIFZlZ2FGb3JtLFxuICBWZWdhR3JpZCxcbiAgVmVnYUhlYWRlcixcbiAgVmVnYUljb24sXG4gIFZlZ2FJbWFnZVVwbG9hZGVyLFxuICBWZWdhSW5wdXQsXG4gIFZlZ2FJbnB1dENyZWRpdENhcmQsXG4gIFZlZ2FJbnB1dFNlbGVjdCxcbiAgVmVnYUl0ZW1Ub2dnbGUsXG4gIFZlZ2FMZWZ0TmF2LFxuICBWZWdhTGVmdE5hdkdyb3VwLFxuICBWZWdhTGVmdE5hdkxpbmssXG4gIFZlZ2FMZWZ0TmF2U2VjdGlvbixcbiAgVmVnYUxpbmVDaGFydCxcbiAgVmVnYUxvYWRpbmdJbmRpY2F0b3IsXG4gIFZlZ2FNb2RhbCxcbiAgVmVnYU5hdkNhcmQsXG4gIFZlZ2FPcHRpb24sXG4gIFZlZ2FQYWdlTm90aWZpY2F0aW9uLFxuICBWZWdhUGFnaW5hdGlvbixcbiAgVmVnYVBpZUNoYXJ0LFxuICBWZWdhUG9wb3ZlcixcbiAgVmVnYVByb2dyZXNzVHJhY2tlcixcbiAgVmVnYVJhZGlvLFxuICBWZWdhUmFkaW9Hcm91cCxcbiAgVmVnYVNpZGVuYXYsXG4gIFZlZ2FTaWRlbmF2R3JvdXAsXG4gIFZlZ2FTaWRlbmF2TGluayxcbiAgVmVnYVN0ZXBwZXIsXG4gIFZlZ2FUYWJHcm91cCxcbiAgVmVnYVRhYkdyb3VwUGFuZWwsXG4gIFZlZ2FUYWJsZSxcbiAgVmVnYVRleHQsXG4gIFZlZ2FUZXh0YXJlYSxcbiAgVmVnYVRpbWVQaWNrZXIsXG4gIFZlZ2FUb2dnbGVTd2l0Y2gsXG4gIFZlZ2FUb29sdGlwLFxuICBWZWdhVmlydHVhbFNjcm9sbCxcbl07Il19
|
|
1892
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvc3RlbmNpbC1nZW5lcmF0ZWQvY29tcG9uZW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsb0JBQW9CO0FBQ3BCLDhDQUE4QztBQUM5QyxPQUFPLEVBQUUsdUJBQXVCLEVBQXFCLFNBQVMsRUFBb0MsTUFBTSxlQUFlLENBQUM7QUFDeEgsT0FBTyxFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7SUF5QjFELGFBQWEsU0FBYixhQUFhO0lBRXhCLFlBQVksQ0FBb0IsRUFBRSxDQUFhLEVBQVksQ0FBUztRQUFULE1BQUMsR0FBRCxDQUFDLENBQVE7UUFDbEUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ1gsSUFBSSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsYUFBYSxDQUFDO1FBQzFCLFlBQVksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7SUFDOUMsQ0FBQztDQUNGLENBQUE7MEdBUFksYUFBYTs4RkFBYixhQUFhLDRTQUhkLDJCQUEyQjtBQUcxQixhQUFhO0lBVnpCLFFBQVEsQ0FBQztRQUNSLHFCQUFxQixFQUFFLFNBQVM7UUFDaEMsTUFBTSxFQUFFLENBQUMsZ0JBQWdCLEVBQUUsaUJBQWlCLEVBQUUsUUFBUSxFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxjQUFjLEVBQUUsWUFBWSxFQUFFLGdCQUFnQixDQUFDO0tBQ3RJLENBQUM7R0FPVyxhQUFhLENBT3pCO1NBUFksYUFBYTsyRkFBYixhQUFhO2tCQU56QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxnQkFBZ0I7b0JBQzFCLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxRQUFRLEVBQUUsMkJBQTJCO29CQUNyQyxNQUFNLEVBQUUsQ0FBQyxnQkFBZ0IsRUFB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ZTtJQUNmLGNBQWM7SUFDZCxXQUFXO0lBQ1gsZ0JBQWdCO0lBQ2hCLGVBQWU7SUFDZixrQkFBa0I7SUFDbEIsYUFBYTtJQUNiLG9CQUFvQjtJQUNwQixTQUFTO0lBQ1QsV0FBVztJQUNYLFVBQVU7SUFDVixvQkFBb0I7SUFDcEIsY0FBYztJQUNkLFlBQVk7SUFDWixXQUFXO0lBQ1gsbUJBQW1CO0lBQ25CLFNBQVM7SUFDVCxjQUFjO0lBQ2QsV0FBVztJQUNYLGdCQUFnQjtJQUNoQixlQUFlO0lBQ2YsV0FBVztJQUNYLFlBQVk7SUFDWixpQkFBaUI7SUFDakIsU0FBUztJQUNULGFBQWE7SUFDYixhQUFhO0lBQ2Isa0JBQWtCO0lBQ2xCLGFBQWE7SUFDYixpQkFBaUI7SUFDakIsZ0JBQWdCO0lBQ2hCLFlBQVk7SUFDWixRQUFRO0lBQ1IsWUFBWTtJQUNaLGNBQWM7SUFDZCxnQkFBZ0I7SUFDaEIsV0FBVztJQUNYLGlCQUFpQjtDQUNsQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyogdHNsaW50OmRpc2FibGUgKi9cbi8qIGF1dG8tZ2VuZXJhdGVkIGFuZ3VsYXIgZGlyZWN0aXZlIHByb3hpZXMgKi9cbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIE5nWm9uZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUHJveHlDbXAsIHByb3h5T3V0cHV0cyB9IGZyb20gJy4vYW5ndWxhci1jb21wb25lbnQtbGliL3V0aWxzJztcblxuaW1wb3J0IHsgQ29tcG9uZW50cyB9IGZyb20gJ0BoZWFydGxhbmRvbmUvdmVnYSc7XG5cblxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBWZWdhQWNjb3JkaW9uIGV4dGVuZHMgQ29tcG9uZW50cy5WZWdhQWNjb3JkaW9uIHtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIHRoZSBleHBhbmQgZXZlbnQgb2YgdGhlIGFjY29yZGlvbi4gXG4gICAqL1xuICB2ZWdhRXhwYW5kOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8Ym9vbGVhbj4+O1xuXG59XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnYWNjb3JkaW9uVGl0bGUnLCAnZHJhd3NCYWNrZ3JvdW5kJywgJ2V4cGFuZCcsICdleHBhbmRJY29uQWxpZ24nLCAnZ3JvdXBJZCcsICdpY29uUG9zaXRpb24nLCAncHJlZml4SWNvbicsICdzaG93RXhwYW5kSWNvbiddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmVnYS1hY2NvcmRpb24nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ2FjY29yZGlvblRpdGxlJywgJ2RyYXdzQmFja2dyb3VuZCcsICdleHBhbmQnLCAnZXhwYW5kSWNvbkFsaWduJywgJ2dyb3VwSWQnLCAnaWNvblBvc2l0aW9uJywgJ3ByZWZpeEljb24nLCAnc2hvd0V4cGFuZEljb24nXVxufSlcbmV4cG9ydCBjbGFzcyBWZWdhQWNjb3JkaW9uIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsndmVnYUV4cGFuZCddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBWZWdhQXBwRm9vdGVyIGV4dGVuZHMgQ29tcG9uZW50cy5WZWdhQXBwRm9vdGVyIHt9XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnYWRkaXRpb25hbExpbmtzJywgJ2NvbnRlbnQnLCAnZGlzY2xhaW1lclVybFRhcmdldCcsICdoaWRlRGVmYXVsdExpbmtzJywgJ3ByaXZhY3lQb2xpY3lMYWJlbCcsICdwcml2YWN5UG9saWN5VXJsJywgJ3ByaXZhY3lQb2xpY3lVcmxUYXJnZXQnLCAnc2hvd0Rpc2NsYWltZXInLCAndGVybU9mVXNlTGFiZWwnLCAndGVybU9mVXNlVXJsJywgJ3Rlcm1PZlVzZVVybFRhcmdldCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmVnYS1hcHAtZm9vdGVyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydhZGRpdGlvbmFsTGlua3MnLCAnY29udGVudCcsICdkaXNjbGFpbWVyVXJsVGFyZ2V0JywgJ2hpZGVEZWZhdWx0TGlua3MnLCAncHJpdmFjeVBvbGljeUxhYmVsJywgJ3ByaXZhY3lQb2xpY3lVcmwnLCAncHJpdmFjeVBvbGljeVVybFRhcmdldCcsICdzaG93RGlzY2xhaW1lcicsICd0ZXJtT2ZVc2VMYWJlbCcsICd0ZXJtT2ZVc2VVcmwnLCAndGVybU9mVXNlVXJsVGFyZ2V0J11cbn0pXG5leHBvcnQgY2xhc3MgVmVnYUFwcEZvb3RlciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFZlZ2FBcHBIZWFkZXJCdXR0b24gZXh0ZW5kcyBDb21wb25lbnRzLlZlZ2FBcHBIZWFkZXJCdXR0b24ge1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgdGhlIGNsaWNrIGV2ZW50IG9mIGFuIGFwcCBoZWFkZXIgYnV0dG9uLiBcbiAgICovXG4gIHZlZ2FDbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PGFueT4+O1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgdGhlIGNsaWNrIGV2ZW50IG9mIGEgZHJvcGRvd24gaXRlbVxuICAgaW4gdGhlIGFwcCBoZWFkZXIuIFxuICAgKi9cbiAgdmVnYURyb3Bkb3duQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxzdHJpbmc+PjtcblxufVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2F2YXRhcicsICdhdmF0YXJQb3NpdGlvbicsICdkcm9wZG93bicsICdsYWJlbCcsICdzZWxlY3RlZCcsICdzaG93Qm9yZGVyJywgJ3Nob3dMYWJlbCcsICdzaG93TWVudUFycm93SWNvbicsICdzaXplJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2ZWdhLWFwcC1oZWFkZXItYnV0dG9uJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydhdmF0YXInLCAnYXZhdGFyUG9zaXRpb24nLCAnZHJvcGRvd24nLCAnbGFiZWwnLCAnc2VsZWN0ZWQnLCAnc2hvd0JvcmRlcicsICdzaG93TGFiZWwnLCAnc2hvd01lbnVBcnJvd0ljb24nLCAnc2l6ZSddXG59KVxuZXhwb3J0IGNsYXNzIFZlZ2FBcHBIZWFkZXJCdXR0b24ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWyd2ZWdhQ2xpY2snLCAndmVnYURyb3Bkb3duQ2xpY2snXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVmVnYUJhZGdlIGV4dGVuZHMgQ29tcG9uZW50cy5WZWdhQmFkZ2Uge31cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWydiZ0NvbG9yJywgJ3NpemUnLCAndGV4dCcsICd0ZXh0Q29sb3InXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZlZ2EtYmFkZ2UnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ2JnQ29sb3InLCAnc2l6ZScsICd0ZXh0JywgJ3RleHRDb2xvciddXG59KVxuZXhwb3J0IGNsYXNzIFZlZ2FCYWRnZSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cbmltcG9ydCB0eXBlIHsgVmVnYUJhbm5lclZpZXdEYXRhIGFzIElWZWdhQmFubmVyVmVnYUJhbm5lclZpZXdEYXRhIH0gZnJvbSAnQGhlYXJ0bGFuZG9uZS92ZWdhL2Rpc3QvdHlwZXMvY29tcG9uZW50cy92ZWdhLWJhbm5lci90eXBlcyc7XG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVmVnYUJhbm5lciBleHRlbmRzIENvbXBvbmVudHMuVmVnYUJhbm5lciB7XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyB0aGUgY2xpY2sgZXZlbnQgb2ZcbiAgIHRoZSBjbG9zZSBidXR0b24gaW4gdGhlIGJhbm5lci4gXG4gICAqL1xuICB2ZWdhQ2xvc2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJVmVnYUJhbm5lclZlZ2FCYW5uZXJWaWV3RGF0YT4+O1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgdGhlIGNvbXBsZXRpb24gb2YgdGhlIGJhbm5lciBsb2FkaW5nLiBcbiAgICovXG4gIHZlZ2FMb2FkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8YW55Pj47XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyB0aGUgY2xpY2sgZXZlbnQgb2ZcbiAgIHRoZSBDYWxsIHRvIEFjdGlvbiBsaW5rLiBcbiAgICovXG4gIHZlZ2FDbGlja0NUQTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElWZWdhQmFubmVyVmVnYUJhbm5lclZpZXdEYXRhPj47XG5cbn1cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWydtb2RlJywgJ3NvdXJjZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmVnYS1iYW5uZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ21vZGUnLCAnc291cmNlJ11cbn0pXG5leHBvcnQgY2xhc3MgVmVnYUJhbm5lciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3ZlZ2FDbG9zZScsICd2ZWdhTG9hZCcsICd2ZWdhQ2xpY2tDVEEnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVmVnYUJhckNoYXJ0IGV4dGVuZHMgQ29tcG9uZW50cy5WZWdhQmFyQ2hhcnQge31cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWydvcHRpb25zJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2ZWdhLWJhci1jaGFydCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnb3B0aW9ucyddXG59KVxuZXhwb3J0IGNsYXNzIFZlZ2FCYXJDaGFydCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFZlZ2FCb3ggZXh0ZW5kcyBDb21wb25lbnRzLlZlZ2FCb3gge31cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWydkaXNwbGF5JywgJ21hcmdpbicsICdwYWRkaW5nJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2ZWdhLWJveCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnZGlzcGxheScsICdtYXJnaW4nLCAncGFkZGluZyddXG59KVxuZXhwb3J0IGNsYXNzIFZlZ2FCb3gge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5pbXBvcnQgdHlwZSB7IFZlZ2FCcmVhZGNydW1iSXRlbVR5cGUgYXMgSVZlZ2FCcmVhZGNydW1iVmVnYUJyZWFkY3J1bWJJdGVtVHlwZSB9IGZyb20gJ0BoZWFydGxhbmRvbmUvdmVnYS9kaXN0L3R5cGVzL2NvbXBvbmVudHMvdmVnYS1icmVhZGNydW1iL3R5cGVzJztcbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBWZWdhQnJlYWRjcnVtYiBleHRlbmRzIENvbXBvbmVudHMuVmVnYUJyZWFkY3J1bWIge1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgdGhhdCBhIGJyZWFkY3J1bWIgaXRlbSBoYXMgYmVlbiBjbGlja2VkLiBcbiAgICovXG4gIHZlZ2FDbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElWZWdhQnJlYWRjcnVtYlZlZ2FCcmVhZGNydW1iSXRlbVR5cGU+PjtcblxufVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2l0ZW1zJywgJ21heEl0ZW1zJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2ZWdhLWJyZWFkY3J1bWInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ2l0ZW1zJywgJ21heEl0ZW1zJ11cbn0pXG5leHBvcnQgY2xhc3MgVmVnYUJyZWFkY3J1bWIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWyd2ZWdhQ2xpY2snXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVmVnYUJ1dHRvbiBleHRlbmRzIENvbXBvbmVudHMuVmVnYUJ1dHRvbiB7XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyB0aGUgY2xpY2sgZXZlbnQgb2YgdGhlIGJ1dHRvbi4gXG4gICAqL1xuICB2ZWdhQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxhbnk+PjtcblxufVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2Jsb2NrJywgJ2RhbmdlcicsICdkaXNhYmxlZCcsICdpY29uJywgJ2ljb25BbGlnbicsICdsYWJlbCcsICdzaXplJywgJ3R5cGUnLCAndmFyaWFudCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmVnYS1idXR0b24nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ2Jsb2NrJywgJ2RhbmdlcicsICdkaXNhYmxlZCcsICdpY29uJywgJ2ljb25BbGlnbicsICdsYWJlbCcsICdzaXplJywgJ3R5cGUnLCAndmFyaWFudCddXG59KVxuZXhwb3J0IGNsYXNzIFZlZ2FCdXR0b24ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWyd2ZWdhQ2xpY2snXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVmVnYUJ1dHRvbkNpcmNsZSBleHRlbmRzIENvbXBvbmVudHMuVmVnYUJ1dHRvbkNpcmNsZSB7XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyB0aGUgY2xpY2sgZXZlbnQgb2YgdGhlIGNpcmN1bGFyIGJ1dHRvbi4gXG4gICAqL1xuICB2ZWdhQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxhbnk+PjtcblxufVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2RhbmdlcicsICdkaXNhYmxlZCcsICdpY29uJywgJ2ljb25Db2xvcicsICdsYWJlbCcsICdzaXplJywgJ3R5cGUnLCAndmFyaWFudCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmVnYS1idXR0b24tY2lyY2xlJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydkYW5nZXInLCAnZGlzYWJsZWQnLCAnaWNvbicsICdpY29uQ29sb3InLCAnbGFiZWwnLCAnc2l6ZScsICd0eXBlJywgJ3ZhcmlhbnQnXVxufSlcbmV4cG9ydCBjbGFzcyBWZWdhQnV0dG9uQ2lyY2xlIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsndmVnYUNsaWNrJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFZlZ2FCdXR0b25MaW5rIGV4dGVuZHMgQ29tcG9uZW50cy5WZWdhQnV0dG9uTGluayB7XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyB0aGUgY2xpY2sgZXZlbnQgb2YgdGhlIGJ1dHRvbi4gXG4gICAqL1xuICB2ZWdhQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxhbnk+PjtcblxufVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2RhbmdlcicsICdkaXNhYmxlZCcsICdldmVudGZ1bCcsICdpY29uJywgJ2ljb25BbGlnbicsICdpY29uVHlwZScsICdsYWJlbCcsICdsaW5rJywgJ3NpemUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZlZ2EtYnV0dG9uLWxpbmsnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ2RhbmdlcicsICdkaXNhYmxlZCcsICdldmVudGZ1bCcsICdpY29uJywgJ2ljb25BbGlnbicsICdpY29uVHlwZScsICdsYWJlbCcsICdsaW5rJywgJ3NpemUnXVxufSlcbmV4cG9ydCBjbGFzcyBWZWdhQnV0dG9uTGluayB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3ZlZ2FDbGljayddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBWZWdhQ2FyZCBleHRlbmRzIENvbXBvbmVudHMuVmVnYUNhcmQge31cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWydiYWNrZ3JvdW5kQ29sb3InLCAnbWFyZ2luJywgJ3BhZGRpbmcnLCAnc2hhZG93JywgJ3ZhcmlhbnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZlZ2EtY2FyZCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnYmFja2dyb3VuZENvbG9yJywgJ21hcmdpbicsICdwYWRkaW5nJywgJ3NoYWRvdycsICd2YXJpYW50J11cbn0pXG5leHBvcnQgY2xhc3MgVmVnYUNhcmQge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBWZWdhQ2Fyb3VzZWwgZXh0ZW5kcyBDb21wb25lbnRzLlZlZ2FDYXJvdXNlbCB7XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyB0aGUgdHJhbnNpdGlvbiBvZiB0aGUgY2Fyb3VzZWwgdG8gYW5vdGhlciBwYWdlLFxuICAgd2hldGhlciB0cmlnZ2VyZWQgcHJvZ3JhbW1hdGljYWxseSBvciB0aHJvdWdoIHVzZXIgaW50ZXJhY3Rpb24uIFxuICAgKi9cbiAgdmVnYVBhZ2VVcGRhdGU6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxudW1iZXI+PjtcblxufVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2NhblN3aXBlJywgJ3BlclBhZ2UnLCAnc2hvd1NsaWRlcicsICdzcGFjaW5nJ10sXG4gIG1ldGhvZHM6IFsnbmV4dFBhZ2UnLCAncHJldlBhZ2UnLCAnZ29Ub1BhZ2UnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZlZ2EtY2Fyb3VzZWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ2NhblN3aXBlJywgJ3BlclBhZ2UnLCAnc2hvd1NsaWRlcicsICdzcGFjaW5nJ11cbn0pXG5leHBvcnQgY2xhc3MgVmVnYUNhcm91c2VsIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsndmVnYVBhZ2VVcGRhdGUnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVmVnYUNoZWNrYm94IGV4dGVuZHMgQ29tcG9uZW50cy5WZWdhQ2hlY2tib3gge1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgY2hhbmdlcyBpbiB0aGUgdmFsaWRhdGlvbiByZXN1bHQgb2YgdGhlIGNoZWNrYm94LiBcbiAgICovXG4gIHZlZ2FWYWxpZGF0ZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PGJvb2xlYW4+PjtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIGNoYW5nZXMgaW4gdGhlIHZhbHVlIG9mIHRoZSBjaGVja2JveCxcbiAgIHdoZXRoZXIgdHJpZ2dlcmVkIHByb2dyYW1tYXRpY2FsbHkgb3IgdGhyb3VnaCB1c2VyIGludGVyYWN0aW9uLiBcbiAgICovXG4gIHZlZ2FDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxzdHJpbmcgfCBib29sZWFuPj47XG5cbn1cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWydjaGVja2VkJywgJ2Rpc2FibGVkJywgJ2lkZW50aWZpZXInLCAnaXNWYWxpZCcsICdyZXF1aXJlZCcsICdzaXplJywgJ3ZhbHVlJ10sXG4gIG1ldGhvZHM6IFsndmFsaWQnLCAnc2V0VmFsdWUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZlZ2EtY2hlY2tib3gnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ2NoZWNrZWQnLCAnZGlzYWJsZWQnLCAnaWRlbnRpZmllcicsICdpc1ZhbGlkJywgJ3JlcXVpcmVkJywgJ3NpemUnLCAndmFsdWUnXVxufSlcbmV4cG9ydCBjbGFzcyBWZWdhQ2hlY2tib3gge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWyd2ZWdhVmFsaWRhdGUnLCAndmVnYUNoYW5nZSddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBWZWdhQ2hlY2tib3hHcm91cCBleHRlbmRzIENvbXBvbmVudHMuVmVnYUNoZWNrYm94R3JvdXAge1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgY2hhbmdlcyBpbiB0aGUgdmFsdWVcbiAgb2YgYW55IG5lc3RlZCBjaGVja2JveCB3aXRoaW4gdGhlIGNoZWNrYm94IGdyb3VwLFxuICB3aGV0aGVyIHRyaWdnZXJlZCBwcm9ncmFtbWF0aWNhbGx5IG9yIHRocm91Z2hcbiAgdXNlciBpbnRlcmFjdGlvbi4gXG4gICAqL1xuICB2ZWdhQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8c3RyaW5nW10+PjtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIGNoYW5nZXMgaW4gdGhlXG4gICB2YWxpZGF0aW9uIHJlc3VsdCBvZiB0aGUgY2hlY2tib3ggZ3JvdXAuIFxuICAgKi9cbiAgdmVnYVZhbGlkYXRlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8Ym9vbGVhbj4+O1xuXG59XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnZGlzYWJsZWQnLCAnZm9ybVZhbGlkYXRpb24nLCAnaGludCcsICdpc1ZhbGlkJywgJ2xhYmVsJywgJ3JlcXVpcmVkJywgJ3ZhbHVlJywgJ3ZlZ2FGbGV4UHJvcCddLFxuICBtZXRob2RzOiBbJ3ZhbGlkJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2ZWdhLWNoZWNrYm94LWdyb3VwJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydkaXNhYmxlZCcsICdmb3JtVmFsaWRhdGlvbicsICdoaW50JywgJ2lzVmFsaWQnLCAnbGFiZWwnLCAncmVxdWlyZWQnLCAndmFsdWUnLCAndmVnYUZsZXhQcm9wJ11cbn0pXG5leHBvcnQgY2xhc3MgVmVnYUNoZWNrYm94R3JvdXAge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWyd2ZWdhQ2hhbmdlJywgJ3ZlZ2FWYWxpZGF0ZSddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBWZWdhQ2hpcCBleHRlbmRzIENvbXBvbmVudHMuVmVnYUNoaXAge1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgdGhlIGNsaWNrIGV2ZW50IG9mIHRoZSBjbG9zZSBidXR0b24gb2YgdGhlIGNoaXAuXG5cblRoaXMgZXZlbnQgaXMgb25seSBkaXNwYXRjaGVkIHdoZW4gdGhlIGBzaG93Q2xvc2VJY29uYCBwcm9wZXJ0eSBpcyBzZXQgdG8gYHRydWVgLiBcbiAgICovXG4gIHZlZ2FDbG9zZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHZvaWQ+PjtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIHRoZSBjbGljayBldmVudCBvZiB0aGUgY2hpcC5cblxuVGhpcyBldmVudCBpcyBvbmx5IGRpc3BhdGNoZWQgd2hlbiB0aGUgYGNsaWNrYWJsZWAgcHJvcGVydHkgaXMgc2V0IHRvIGB0cnVlYC4gXG4gICAqL1xuICB2ZWdhQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx2b2lkPj47XG5cbn1cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWydiZ0NvbG9yJywgJ2NoaXBUeXBlJywgJ2NsaWNrYWJsZScsICdpY29uJywgJ2ljb25BbGlnbicsICdzaG93Q2xvc2VJY29uJywgJ3NpemUnLCAnc3RhdHVzQ29sb3InLCAndGV4dCcsICd0ZXh0Q29sb3InLCAndmFyaWFudCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmVnYS1jaGlwJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydiZ0NvbG9yJywgJ2NoaXBUeXBlJywgJ2NsaWNrYWJsZScsICdpY29uJywgJ2ljb25BbGlnbicsICdzaG93Q2xvc2VJY29uJywgJ3NpemUnLCAnc3RhdHVzQ29sb3InLCAndGV4dCcsICd0ZXh0Q29sb3InLCAndmFyaWFudCddXG59KVxuZXhwb3J0IGNsYXNzIFZlZ2FDaGlwIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsndmVnYUNsb3NlJywgJ3ZlZ2FDbGljayddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBWZWdhQ29sb3JQaWNrZXIgZXh0ZW5kcyBDb21wb25lbnRzLlZlZ2FDb2xvclBpY2tlciB7XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyBjaGFuZ2VzIGluIHRoZSB2YWx1ZSBvZiB0aGUgY29sb3IgcGlja2VyLFxuICAgd2hldGhlciB0cmlnZ2VyZWQgcHJvZ3JhbW1hdGljYWxseSBvciB0aHJvdWdoIHVzZXIgaW50ZXJhY3Rpb24uIFxuICAgKi9cbiAgdmVnYUNoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHN0cmluZz4+O1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgY2hhbmdlcyBpbiB0aGUgdmFsaWRhdGlvbiByZXN1bHQgb2YgdGhlIGNvbG9yIHBpY2tlci4gXG4gICAqL1xuICB2ZWdhVmFsaWRhdGU6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxib29sZWFuPj47XG5cbn1cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWydhdXRvVmFsaWRhdGlvbicsICdjb2xvcnMnLCAnZGlzYWJsZWQnLCAnaGludCcsICdpc1ZhbGlkJywgJ2xhYmVsJywgJ3JlcXVpcmVkJywgJ3ZhbGlkYXRpb25SdWxlcycsICd2YWx1ZSddLFxuICBtZXRob2RzOiBbJ3ZhbGlkJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2ZWdhLWNvbG9yLXBpY2tlcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnYXV0b1ZhbGlkYXRpb24nLCAnY29sb3JzJywgJ2Rpc2FibGVkJywgJ2hpbnQnLCAnaXNWYWxpZCcsICdsYWJlbCcsICdyZXF1aXJlZCcsICd2YWxpZGF0aW9uUnVsZXMnLCAndmFsdWUnXVxufSlcbmV4cG9ydCBjbGFzcyBWZWdhQ29sb3JQaWNrZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWyd2ZWdhQ2hhbmdlJywgJ3ZlZ2FWYWxpZGF0ZSddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBWZWdhQ29tYm9Cb3ggZXh0ZW5kcyBDb21wb25lbnRzLlZlZ2FDb21ib0JveCB7XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyBjaGFuZ2VzIGluIHRoZSBpdGVtcyBvZiB0aGUgY29tYm8gYm94IHZhbHVlLFxuICAgd2hldGhlciB0cmlnZ2VyZWQgcHJvZ3JhbW1hdGljYWxseSBvciB0aHJvdWdoIHVzZXIgaW50ZXJhY3Rpb24uIFxuICAgKi9cbiAgdmVnYUNoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHN0cmluZ1tdPj47XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyBjaGFuZ2VzIGluIHRoZSB2YWxpZGF0aW9uIHJlc3VsdCBvZiB0aGUgY29tYm8gYm94LiBcbiAgICovXG4gIHZlZ2FWYWxpZGF0ZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PGJvb2xlYW4+PjtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIHdoZW4gdGhlIHVzZXIgaGFzIGNob3NlbiB0byBhZGQgYSBuZXcgdmFsdWVcbiAgIHRvIHRoZSBzb3VyY2UgYW5kIHZhbHVlIG9mIHRoZSBjb21ibyBib3guXG5cblRoZSBldmVudCdzIGBkZXRhaWxgIHByb3BlcnR5IGNvbnRhaW5zIHRoZSBuZXcgdmFsdWUuXG5cblRoZSBjb21ibyBib3ggX2RvZXMgbm90XyBhdXRvbWF0aWNhbGx5IGFkZCB0aGUgbmV3IHZhbHVlIHRvIGl0cyBgc291cmNlYCBhbmQgYHZhbHVlYC4gXG4gICAqL1xuICB2ZWdhQ3JlYXRlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8c3RyaW5nPj47XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyB0aGUgdXNlcidzIHNlYXJjaCBhY3Rpb24gaW4gdGhlIGNvbWJvIGJveCxcbiAgIGJ1dCBvbmx5IGlmIHRoZSBgdXNlRGVmYXVsdEZpbHRlcmAgcHJvcGVydHkgaXMgc2V0IHRvIGBmYWxzZWAuIFxuICAgKi9cbiAgdmVnYVNlYXJjaDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHN0cmluZz4+O1xuXG59XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnYXV0b1ZhbGlkYXRpb24nLCAnZGlzYWJsZWQnLCAnaGludCcsICdpc1ZhbGlkJywgJ2xhYmVsJywgJ3BsYWNlaG9sZGVyJywgJ3JlcXVpcmVkJywgJ3NpemUnLCAnc291cmNlJywgJ3VzZURlZmF1bHRGaWx0ZXInLCAndmFsaWRhdGlvblJ1bGVzJywgJ3ZhbHVlJywgJ3ZlZ2FEcm9wZG93blByb3BzJ10sXG4gIG1ldGhvZHM6IFsnY2xvc2UnLCAnb3BlbicsICd2YWxpZCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmVnYS1jb21iby1ib3gnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ2F1dG9WYWxpZGF0aW9uJywgJ2Rpc2FibGVkJywgJ2hpbnQnLCAnaXNWYWxpZCcsICdsYWJlbCcsICdwbGFjZWhvbGRlcicsICdyZXF1aXJlZCcsICdzaXplJywgJ3NvdXJjZScsICd1c2VEZWZhdWx0RmlsdGVyJywgJ3ZhbGlkYXRpb25SdWxlcycsICd2YWx1ZScsICd2ZWdhRHJvcGRvd25Qcm9wcyddXG59KVxuZXhwb3J0IGNsYXNzIFZlZ2FDb21ib0JveCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3ZlZ2FDaGFuZ2UnLCAndmVnYVZhbGlkYXRlJywgJ3ZlZ2FDcmVhdGUnLCAndmVnYVNlYXJjaCddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBWZWdhQ291bnRlckJhZGdlIGV4dGVuZHMgQ29tcG9uZW50cy5WZWdhQ291bnRlckJhZGdlIHt9XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnY29sb3InLCAnY291bnQnLCAnZG90JywgJ29mZnNldCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmVnYS1jb3VudGVyLWJhZGdlJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydjb2xvcicsICdjb3VudCcsICdkb3QnLCAnb2Zmc2V0J11cbn0pXG5leHBvcnQgY2xhc3MgVmVnYUNvdW50ZXJCYWRnZSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFZlZ2FEYXRlUGlja2VyIGV4dGVuZHMgQ29tcG9uZW50cy5WZWdhRGF0ZVBpY2tlciB7XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyB0aGUgY2hhbmdlIG9mIHRoZSB2YWx1ZSBpbiB0aGUgZGF0ZSBwaWNrZXIsXG4gICB3aGV0aGVyIHRyaWdnZXJlZCBwcm9ncmFtbWF0aWNhbGx5IG9yIHRocm91Z2ggdXNlciBpbnRlcmFjdGlvbi4gXG4gICAqL1xuICB2ZWdhQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8c3RyaW5nIHwgc3RyaW5nW10+PjtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIHRoZSBjaGFuZ2UgaW4gdGhlIHZhbGlkYXRpb24gcmVzdWx0LiBcbiAgICovXG4gIHZlZ2FWYWxpZGF0ZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PGJvb2xlYW4+PjtcblxufVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2FsbG93UmVwaWNrJywgJ2F1dG9WYWxpZGF0aW9uJywgJ2NsZWFyQnV0dG9uJywgJ2Rpc2FibGVkJywgJ2Ryb3Bkb3duQ29uZmlnJywgJ2Zvcm1WYWxpZGF0aW9uJywgJ2Zvcm1hdCcsICdpc1ZhbGlkJywgJ2xhYmVsJywgJ21heERhdGUnLCAnbWluRGF0ZScsICdtb2RlJywgJ3BsYWNlaG9sZGVyJywgJ3JlYWRPbmx5JywgJ3JlcXVpcmVkJywgJ3NpemUnLCAndmFsaWRhdGlvblJ1bGVzJywgJ3ZhbHVlJ10sXG4gIG1ldGhvZHM6IFsndmFsaWQnLCAnZG9DbG9zZScsICdkb09wZW4nXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZlZ2EtZGF0ZS1waWNrZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ2FsbG93UmVwaWNrJywgJ2F1dG9WYWxpZGF0aW9uJywgJ2NsZWFyQnV0dG9uJywgJ2Rpc2FibGVkJywgJ2Ryb3Bkb3duQ29uZmlnJywgJ2Zvcm1WYWxpZGF0aW9uJywgJ2Zvcm1hdCcsICdpc1ZhbGlkJywgJ2xhYmVsJywgJ21heERhdGUnLCAnbWluRGF0ZScsICdtb2RlJywgJ3BsYWNlaG9sZGVyJywgJ3JlYWRPbmx5JywgJ3JlcXVpcmVkJywgJ3NpemUnLCAndmFsaWRhdGlvblJ1bGVzJywgJ3ZhbHVlJ11cbn0pXG5leHBvcnQgY2xhc3MgVmVnYURhdGVQaWNrZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWyd2ZWdhQ2hhbmdlJywgJ3ZlZ2FWYWxpZGF0ZSddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBWZWdhRGlhbG9nIGV4dGVuZHMgQ29tcG9uZW50cy5WZWdhRGlhbG9nIHt9XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnY2FuY2VsQnV0dG9uJywgJ2NvbnRlbnQnLCAnZGlhbG9nVGl0bGUnLCAnaGFuZGxlQ2FuY2VsJywgJ2hhbmRsZU9rJywgJ21vZGFsUHJvcHMnLCAnb2tCdXR0b24nLCAnc2hvd0NhbmNlbCcsICd0eXBlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2ZWdhLWRpYWxvZycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnY2FuY2VsQnV0dG9uJywgJ2NvbnRlbnQnLCAnZGlhbG9nVGl0bGUnLCAnaGFuZGxlQ2FuY2VsJywgJ2hhbmRsZU9rJywgJ21vZGFsUHJvcHMnLCAnb2tCdXR0b24nLCAnc2hvd0NhbmNlbCcsICd0eXBlJ11cbn0pXG5leHBvcnQgY2xhc3MgVmVnYURpYWxvZyB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFZlZ2FEcm9wZG93biBleHRlbmRzIENvbXBvbmVudHMuVmVnYURyb3Bkb3duIHtcbiAgLyoqXG4gICAqICBAZGVwcmVjYXRlZCBUaGlzIHByb3BlcnR5IHdpbGwgYmUgcmVtb3ZlZCBzb29uICpcbiAgICovXG4gIHZlZ2FDbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHN0cmluZyB8IHN0cmluZ1tdPj47XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyB0aGF0IGEgZHJvcGRvd24gaXRlbSBoYXMgYmVlbiBjbGlja2VkLlxuXG5UaGUgZXZlbnQncyBgZGV0YWlsYCBwcm9wZXJ0eSBjb250YWlucyB0aGUga2V5IG9mIHRoZSBjbGlja2VkIGl0ZW0uIFxuICAgKi9cbiAgdmVnYURyb3Bkb3duQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxzdHJpbmc+PjtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIHRoYXQgdGhlIGRyb3Bkb3duIGhhcyBiZWVuIGRpc3BsYXllZCxcbiAgIGVpdGhlciBwcm9ncmFtbWF0aWNhbGx5IG9yIHZpYSB1c2VyIGludGVyYWN0aW9uLiBcbiAgICovXG4gIHZlZ2FTaG93OiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8c3RyaW5nPj47XG4gIC8qKlxuICAgKiBFdmVudCBlbWl0dGVyIG5vdGlmeWluZyB0aGF0IHRoZSBkcm9wZG93biBoYXMgYmVlbiBkaXNtaXNzZWQsXG4gICBlaXRoZXIgcHJvZ3JhbW1hdGljYWxseSBvciB2aWEgdXNlciBpbnRlcmFjdGlvbi4gXG4gICAqL1xuICB2ZWdhSGlkZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHN0cmluZz4+O1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgdGhlIGFkZGl0aW9uIG9mIGEgbmV3IHZhbHVlXG4gICB0byB0aGUgZHJvcGRvd24gc291cmNlIGxpc3QuXG5cblRoZSBldmVudCdzIGBkZXRhaWxgIHByb3BlcnR5IGNvbnRhaW5zIHRoZSBuZXcgdmFsdWUuXG5cblRoZSBkcm9wZG93biBfZG9lcyBub3RfIGF1dG9tYXRpY2FsbHkgYWRkIHRoZSBuZXcgdmFsdWUgdG8gdGhlIHNvdXJjZSBsaXN0LiBcbiAgICovXG4gIHZlZ2FDcmVhdGU6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxzdHJpbmc+PjtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIHRoZSBzZWFyY2ggZXZlbnQgaW4gdGhlIGRyb3Bkb3duLFxuICAgYnV0IG9ubHkgaWYgYHVzZURlZmF1bHRGaWx0ZXJgIGlzIHNldCB0byBgZmFsc2VgLiBcbiAgICovXG4gIHZlZ2FTZWFyY2g6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxzdHJpbmc+PjtcblxufVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2FsaWdubWVudCcsICdjYXNlU2Vuc2l0aXZlJywgJ2R5bmFtaWNPcHRpb24nLCAnaXNMb2FkaW5nJywgJ2l0ZW1EaXNwbGF5UnVsZScsICdtYXRjaENvbnRhaW5lckhlaWdodCcsICdtYXRjaFRhcmdldFdpZHRoJywgJ21heEhlaWdodCcsICdtYXhXaWR0aCcsICdtaW5XaWR0aCcsICdwbGFjZW1lbnQnLCAncG9zaXRpb25SZWxhdGl2ZVRvJywgJ3NlYXJjaGFibGUnLCAnc2VsZWN0VHlwZScsICdzZWxlY3RlZFNvdXJjZUtleScsICdzaXplJywgJ3NvdXJjZScsICd0cmFuc2xvY2F0aW9uJywgJ3RyaWdnZXInLCAndXNlRGVmYXVsdEZpbHRlciddLFxuICBtZXRob2RzOiBbJ3Nob3cnLCAnaGlkZScsICdzZWFyY2gnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZlZ2EtZHJvcGRvd24nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ2FsaWdubWVudCcsICdjYXNlU2Vuc2l0aXZlJywgJ2R5bmFtaWNPcHRpb24nLCAnaXNMb2FkaW5nJywgJ2l0ZW1EaXNwbGF5UnVsZScsICdtYXRjaENvbnRhaW5lckhlaWdodCcsICdtYXRjaFRhcmdldFdpZHRoJywgJ21heEhlaWdodCcsICdtYXhXaWR0aCcsICdtaW5XaWR0aCcsICdwbGFjZW1lbnQnLCAncG9zaXRpb25SZWxhdGl2ZVRvJywgJ3NlYXJjaGFibGUnLCAnc2VsZWN0VHlwZScsICdzZWxlY3RlZFNvdXJjZUtleScsICdzaXplJywgJ3NvdXJjZScsICd0cmFuc2xvY2F0aW9uJywgJ3RyaWdnZXInLCAndXNlRGVmYXVsdEZpbHRlciddXG59KVxuZXhwb3J0IGNsYXNzIFZlZ2FEcm9wZG93biB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3ZlZ2FDbGljaycsICd2ZWdhRHJvcGRvd25DbGljaycsICd2ZWdhU2hvdycsICd2ZWdhSGlkZScsICd2ZWdhQ3JlYXRlJywgJ3ZlZ2FTZWFyY2gnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVmVnYUZpZWxkTGFiZWwgZXh0ZW5kcyBDb21wb25lbnRzLlZlZ2FGaWVsZExhYmVsIHtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIHRoYXQgdGhlIGZpZWxkIGxhYmVsIGhhcyBiZWVuIGNsaWNrZWQuIFxuICAgKi9cbiAgdmVnYUNsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8YW55Pj47XG5cbn1cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWydkaXNhYmxlZCcsICdpc0ZpZWxkUmVxdWlyZWQnLCAnbGFiZWwnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZlZ2EtZmllbGQtbGFiZWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ2Rpc2FibGVkJywgJ2lzRmllbGRSZXF1aXJlZCcsICdsYWJlbCddXG59KVxuZXhwb3J0IGNsYXNzIFZlZ2FGaWVsZExhYmVsIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsndmVnYUNsaWNrJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFZlZ2FGbGV4IGV4dGVuZHMgQ29tcG9uZW50cy5WZWdhRmxleCB7fVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2FsaWduSXRlbScsICdicmVha3BvaW50JywgJ2RpcmVjdGlvbicsICdnYXAnLCAnanVzdGlmeUNvbnRlbnQnLCAnbWFyZ2luJywgJ3VzZU5hdGl2ZUZsZXgnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZlZ2EtZmxleCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnYWxpZ25JdGVtJywgJ2JyZWFrcG9pbnQnLCAnZGlyZWN0aW9uJywgJ2dhcCcsICdqdXN0aWZ5Q29udGVudCcsICdtYXJnaW4nLCAndXNlTmF0aXZlRmxleCddXG59KVxuZXhwb3J0IGNsYXNzIFZlZ2FGbGV4IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVmVnYUZvb3RlciBleHRlbmRzIENvbXBvbmVudHMuVmVnYUZvb3RlciB7fVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ3ByaXZhY3lVcmwnLCAndG9zVXJsJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2ZWdhLWZvb3RlcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsncHJpdmFjeVVybCcsICd0b3NVcmwnXVxufSlcbmV4cG9ydCBjbGFzcyBWZWdhRm9vdGVyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVmVnYUZvcm0gZXh0ZW5kcyBDb21wb25lbnRzLlZlZ2FGb3JtIHtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIHRoZSBjaGFuZ2UgaW4gdGhlIHZhbGlkYXRpb24gcmVzdWx0LiBcbiAgICovXG4gIHZlZ2FWYWxpZGF0ZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PGJvb2xlYW4+PjtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIHRoZSBzdWJtaXNzaW9uIG9mIHRoZSBmb3JtLiBcbiAgICovXG4gIHZlZ2FGb3JtU3VibWl0OiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dW5rbm93bj4+O1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgdGhlIHJlc2V0IG9mIHRoZSBmb3JtLiBcbiAgICovXG4gIHZlZ2FGb3JtUmVzZXQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxhbnk+PjtcblxufVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2lzVG91Y2hlZCcsICdpc1ZhbGlkJ10sXG4gIG1ldGhvZHM6IFsndmFsaWQnLCAnZ2V0VmFsdWUnLCAnc2V0VmFsdWUnLCAncmVzZXQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZlZ2EtZm9ybScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnaXNUb3VjaGVkJywgJ2lzVmFsaWQnXVxufSlcbmV4cG9ydCBjbGFzcyBWZWdhRm9ybSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3ZlZ2FWYWxpZGF0ZScsICd2ZWdhRm9ybVN1Ym1pdCcsICd2ZWdhRm9ybVJlc2V0J10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFZlZ2FHcmlkIGV4dGVuZHMgQ29tcG9uZW50cy5WZWdhR3JpZCB7fVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2NvbHVtbicsICdnYXAnLCAncm93J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2ZWdhLWdyaWQnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ2NvbHVtbicsICdnYXAnLCAncm93J11cbn0pXG5leHBvcnQgY2xhc3MgVmVnYUdyaWQge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBWZWdhSGVhZGVyIGV4dGVuZHMgQ29tcG9uZW50cy5WZWdhSGVhZGVyIHt9XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmVnYS1oZWFkZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+J1xufSlcbmV4cG9ydCBjbGFzcyBWZWdhSGVhZGVyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVmVnYUljb24gZXh0ZW5kcyBDb21wb25lbnRzLlZlZ2FJY29uIHt9XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnY29sb3InLCAnaWNvbicsICdzaXplJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2ZWdhLWljb24nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ2NvbG9yJywgJ2ljb24nLCAnc2l6ZSddXG59KVxuZXhwb3J0IGNsYXNzIFZlZ2FJY29uIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuaW1wb3J0IHR5cGUgeyBWZWdhRmlsZU9wdGlvbmFsIGFzIElWZWdhSW1hZ2VVcGxvYWRlclZlZ2FGaWxlT3B0aW9uYWwgfSBmcm9tICdAaGVhcnRsYW5kb25lL3ZlZ2EvZGlzdC90eXBlcy9jb21wb25lbnRzL3ZlZ2EtaW1hZ2UtdXBsb2FkZXIvdHlwZXMnO1xuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFZlZ2FJbWFnZVVwbG9hZGVyIGV4dGVuZHMgQ29tcG9uZW50cy5WZWdhSW1hZ2VVcGxvYWRlciB7XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyBhIHZhbHVlIGNoYW5nZS4gXG4gICAqL1xuICB2ZWdhQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVZlZ2FJbWFnZVVwbG9hZGVyVmVnYUZpbGVPcHRpb25hbD4+O1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgdGhlIHJlbW92YWwgb2YgYSB2YWx1ZS4gXG4gICAqL1xuICB2ZWdhUmVtb3ZlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8YW55Pj47XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyB0aGUgY2FuY2VsbGF0aW9uIG9mIGFuIHVwbG9hZGluZyBldmVudC4gXG4gICAqL1xuICB2ZWdhQ2FuY2VsOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8YW55Pj47XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyB0aGUgY2hhbmdlIGluIHRoZSB2YWxpZGF0aW9uIHJlc3VsdC4gXG4gICAqL1xuICB2ZWdhVmFsaWRhdGU6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxib29sZWFuPj47XG5cbn1cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWydhY2NlcHQnLCAnYXV0b1ZhbGlkYXRpb24nLCAnZGlzYWJsZWQnLCAnaXNWYWxpZCcsICdyZXF1aXJlZCcsICdzaG93UHJldmlld0J1dHRvbicsICdzaG93UmVtb3ZlQnV0dG9uJywgJ3Nob3dSZXBsYWNlQnV0dG9uJywgJ3N0YXR1cycsICd2YWxpZGF0aW9uUnVsZXMnLCAndmFsdWUnXSxcbiAgbWV0aG9kczogWyd2YWxpZCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmVnYS1pbWFnZS11cGxvYWRlcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnYWNjZXB0JywgJ2F1dG9WYWxpZGF0aW9uJywgJ2Rpc2FibGVkJywgJ2lzVmFsaWQnLCAncmVxdWlyZWQnLCAnc2hvd1ByZXZpZXdCdXR0b24nLCAnc2hvd1JlbW92ZUJ1dHRvbicsICdzaG93UmVwbGFjZUJ1dHRvbicsICdzdGF0dXMnLCAndmFsaWRhdGlvblJ1bGVzJywgJ3ZhbHVlJ11cbn0pXG5leHBvcnQgY2xhc3MgVmVnYUltYWdlVXBsb2FkZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWyd2ZWdhQ2hhbmdlJywgJ3ZlZ2FSZW1vdmUnLCAndmVnYUNhbmNlbCcsICd2ZWdhVmFsaWRhdGUnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVmVnYUlucHV0IGV4dGVuZHMgQ29tcG9uZW50cy5WZWdhSW5wdXQge1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgYSB2YWx1ZSBjaGFuZ2UuIFxuICAgKi9cbiAgdmVnYUNoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHN0cmluZz4+O1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgdGhlIGNoYW5nZSBpbiB0aGUgdmFsaWRhdGlvbiByZXN1bHQuIFxuICAgKi9cbiAgdmVnYVZhbGlkYXRlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8Ym9vbGVhbj4+O1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgdGhlIGJsdXIgb2YgdGhlIGlubmVyIGlucHV0IGVsZW1lbnQuIFxuICAgKi9cbiAgdmVnYUJsdXI6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx1bmRlZmluZWQ+PjtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIHRoZSBmb2N1cyBvZiB0aGUgaW5uZXIgaW5wdXQgZWxlbWVudC4gXG4gICAqL1xuICB2ZWdhRm9jdXM6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx1bmRlZmluZWQ+PjtcblxufVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2F1dG9WYWxpZGF0aW9uJywgJ2F1dG9jb21wbGV0ZScsICdkaXNhYmxlZCcsICdlbWFpbCcsICdmb3JtVmFsaWRhdGlvbicsICdoaW50JywgJ2lzVmFsaWQnLCAnbGFiZWwnLCAnbWFza0NvbmZpZycsICdtYXgnLCAnbWF4TGVuZ3RoJywgJ21pbicsICdtaW5MZW5ndGgnLCAncGxhY2Vob2xkZXInLCAncHJlZml4SWNvbicsICdyZXF1aXJlZCcsICdzaG93Q2xlYXJJY29uJywgJ3NpemUnLCAndHlwZScsICd2YWxpZGF0aW9uUnVsZXMnLCAndmFsdWUnXSxcbiAgbWV0aG9kczogWyd2YWxpZCcsICdkb0ZvY3VzJywgJ2RvQmx1ciddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmVnYS1pbnB1dCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnYXV0b1ZhbGlkYXRpb24nLCAnYXV0b2NvbXBsZXRlJywgJ2Rpc2FibGVkJywgJ2VtYWlsJywgJ2Zvcm1WYWxpZGF0aW9uJywgJ2hpbnQnLCAnaXNWYWxpZCcsICdsYWJlbCcsICdtYXNrQ29uZmlnJywgJ21heCcsICdtYXhMZW5ndGgnLCAnbWluJywgJ21pbkxlbmd0aCcsICdwbGFjZWhvbGRlcicsICdwcmVmaXhJY29uJywgJ3JlcXVpcmVkJywgJ3Nob3dDbGVhckljb24nLCAnc2l6ZScsICd0eXBlJywgJ3ZhbGlkYXRpb25SdWxlcycsICd2YWx1ZSddXG59KVxuZXhwb3J0IGNsYXNzIFZlZ2FJbnB1dCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3ZlZ2FDaGFuZ2UnLCAndmVnYVZhbGlkYXRlJywgJ3ZlZ2FCbHVyJywgJ3ZlZ2FGb2N1cyddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBWZWdhSW5wdXRDcmVkaXRDYXJkIGV4dGVuZHMgQ29tcG9uZW50cy5WZWdhSW5wdXRDcmVkaXRDYXJkIHtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIHRoZSBjaGFuZ2UgaW4gdGhlIHZhbGlkYXRpb24gcmVzdWx0LiBcbiAgICovXG4gIHZlZ2FWYWxpZGF0ZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PGJvb2xlYW4+PjtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIGEgdmFsdWUgY2hhbmdlLiBcbiAgICovXG4gIHZlZ2FDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxzdHJpbmc+PjtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIHRoZSBibHVyIGV2ZW50IG9mIHRoZSBjcmVkaXQgY2FyZCBlbGVtZW50LiBcbiAgICovXG4gIHZlZ2FCbHVyOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dW5kZWZpbmVkPj47XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyB0aGUgZm9jdXMgb2YgdGhlIGNyZWRpdCBjYXJkIGVsZW1lbnQuIFxuICAgKi9cbiAgdmVnYUZvY3VzOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dW5kZWZpbmVkPj47XG5cbn1cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWydhdXRvVmFsaWRhdGlvbicsICdkaXNhYmxlZCcsICdoaWRlQ2FyZE51bWJlck9uQmx1cicsICdoaW50JywgJ2lzVmFsaWQnLCAnbGFiZWwnLCAncGxhY2Vob2xkZXInLCAncmVxdWlyZWQnLCAnc2l6ZScsICd2YWxpZGF0aW9uUnVsZXMnLCAndmFsdWUnXSxcbiAgbWV0aG9kczogWyd2YWxpZCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmVnYS1pbnB1dC1jcmVkaXQtY2FyZCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnYXV0b1ZhbGlkYXRpb24nLCAnZGlzYWJsZWQnLCAnaGlkZUNhcmROdW1iZXJPbkJsdXInLCAnaGludCcsICdpc1ZhbGlkJywgJ2xhYmVsJywgJ3BsYWNlaG9sZGVyJywgJ3JlcXVpcmVkJywgJ3NpemUnLCAndmFsaWRhdGlvblJ1bGVzJywgJ3ZhbHVlJ11cbn0pXG5leHBvcnQgY2xhc3MgVmVnYUlucHV0Q3JlZGl0Q2FyZCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3ZlZ2FWYWxpZGF0ZScsICd2ZWdhQ2hhbmdlJywgJ3ZlZ2FCbHVyJywgJ3ZlZ2FGb2N1cyddKTtcbiAgfVxufVxuXG5pbXBvcnQgdHlwZSB7IFNlbGVjdFZhbHVlVHlwZSBhcyBJVmVnYUlucHV0U2VsZWN0U2VsZWN0VmFsdWVUeXBlIH0gZnJvbSAnQGhlYXJ0bGFuZG9uZS92ZWdhL2Rpc3QvdHlwZXMvY29tcG9uZW50cy92ZWdhLWlucHV0LXNlbGVjdC90eXBlcyc7XG5pbXBvcnQgdHlwZSB7IFNlbGVjdFR5cGUgYXMgSVZlZ2FJbnB1dFNlbGVjdFNlbGVjdFR5cGUgfSBmcm9tICdAaGVhcnRsYW5kb25lL3ZlZ2EvZGlzdC90eXBlcy9jb21wb25lbnRzL3ZlZ2EtaW5wdXQtc2VsZWN0L3R5cGVzJztcbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBWZWdhSW5wdXRTZWxlY3QgZXh0ZW5kcyBDb21wb25lbnRzLlZlZ2FJbnB1dFNlbGVjdCB7XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyB0aGUgY2hhbmdlIG9mIHRoZSBzZWxlY3QgdmFsdWUuIFxuICAgKi9cbiAgdmVnYUNoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElWZWdhSW5wdXRTZWxlY3RTZWxlY3RWYWx1ZVR5cGU8SVZlZ2FJbnB1dFNlbGVjdFNlbGVjdFR5cGU+Pj47XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyB0aGUgY2hhbmdlIGluIHRoZSB2YWxpZGF0aW9uIHJlc3VsdC4gXG4gICAqL1xuICB2ZWdhVmFsaWRhdGU6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxib29sZWFuPj47XG5cbn1cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWydhdXRvVmFsaWRhdGlvbicsICdkaXNhYmxlZCcsICdmb3JtVmFsaWRhdGlvbicsICdoaW50JywgJ2lzVmFsaWQnLCAnbGFiZWwnLCAncGxhY2Vob2xkZXInLCAncHJlZml4SWNvbicsICdyZXF1aXJlZCcsICdzZWxlY3RUeXBlJywgJ3NlbGVjdGVkTGFiZWwnLCAnc2l6ZScsICdzb3VyY2UnLCAndmFsaWRhdGlvblJ1bGVzJywgJ3ZhbHVlJywgJ3ZlZ2FEcm9wZG93blByb3BzJ10sXG4gIG1ldGhvZHM6IFsnZG9DbG9zZScsICdkb09wZW4nLCAnZG9DaGFuZ2UnLCAndmFsaWQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZlZ2EtaW5wdXQtc2VsZWN0JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydhdXRvVmFsaWRhdGlvbicsICdkaXNhYmxlZCcsICdmb3JtVmFsaWRhdGlvbicsICdoaW50JywgJ2lzVmFsaWQnLCAnbGFiZWwnLCAncGxhY2Vob2xkZXInLCAncHJlZml4SWNvbicsICdyZXF1aXJlZCcsICdzZWxlY3RUeXBlJywgJ3NlbGVjdGVkTGFiZWwnLCAnc2l6ZScsICdzb3VyY2UnLCAndmFsaWRhdGlvblJ1bGVzJywgJ3ZhbHVlJywgJ3ZlZ2FEcm9wZG93blByb3BzJ11cbn0pXG5leHBvcnQgY2xhc3MgVmVnYUlucHV0U2VsZWN0IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsndmVnYUNoYW5nZScsICd2ZWdhVmFsaWRhdGUnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVmVnYUl0ZW1Ub2dnbGUgZXh0ZW5kcyBDb21wb25lbnRzLlZlZ2FJdGVtVG9nZ2xlIHtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIGFuIGl0ZW0gdG9nZ2xlIGV2ZW50LiBcbiAgICovXG4gIHZlZ2FUb2dnbGVTdGF0dXM6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxib29sZWFuPj47XG5cbn1cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWydpc0Vycm9yJywgJ2lzVG9nZ2xlZCcsICdpdGVtVG9nZ2xlU3RhdHVzTWFwJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2ZWdhLWl0ZW0tdG9nZ2xlJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydpc0Vycm9yJywgJ2lzVG9nZ2xlZCcsICdpdGVtVG9nZ2xlU3RhdHVzTWFwJ11cbn0pXG5leHBvcnQgY2xhc3MgVmVnYUl0ZW1Ub2dnbGUge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWyd2ZWdhVG9nZ2xlU3RhdHVzJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFZlZ2FMZWZ0TmF2IGV4dGVuZHMgQ29tcG9uZW50cy5WZWdhTGVmdE5hdiB7XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyB0aGF0IHRoZSBsZWZ0LW5hdidzIG9wZW4gc3RhdGUgaGFzIGNoYW5nZWQuIFxuICAgKi9cbiAgdmVnYVN0YXRlVXBkYXRlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8c3RyaW5nPj47XG5cbn1cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWydmb290bm90ZScsICdoZWFkZXJDb25maWcnLCAnb3BlbicsICdzaG93QXNPdmVybGF5JywgJ3NvdXJjZSddLFxuICBtZXRob2RzOiBbJ3RvZ2dsZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmVnYS1sZWZ0LW5hdicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnZm9vdG5vdGUnLCAnaGVhZGVyQ29uZmlnJywgJ29wZW4nLCAnc2hvd0FzT3ZlcmxheScsICdzb3VyY2UnXVxufSlcbmV4cG9ydCBjbGFzcyBWZWdhTGVmdE5hdiB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3ZlZ2FTdGF0ZVVwZGF0ZSddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBWZWdhTGVmdE5hdkdyb3VwIGV4dGVuZHMgQ29tcG9uZW50cy5WZWdhTGVmdE5hdkdyb3VwIHtcbiAgLyoqXG4gICAqIGV2ZW50IGVtaXR0ZXIgdXNlZCBmb3Igbm90aWZ5aW5nIGNvbnN1bWVycyB0aGUgY2xpY2sgZXZlbnQgXG4gICAqL1xuICB2ZWdhR3JvdXBDbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHN0cmluZz4+O1xuXG59XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnaWNvbicsICdsYWJlbCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmVnYS1sZWZ0LW5hdi1ncm91cCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnaWNvbicsICdsYWJlbCddXG59KVxuZXhwb3J0IGNsYXNzIFZlZ2FMZWZ0TmF2R3JvdXAge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWyd2ZWdhR3JvdXBDbGljayddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBWZWdhTGVmdE5hdkxpbmsgZXh0ZW5kcyBDb21wb25lbnRzLlZlZ2FMZWZ0TmF2TGluayB7XG4gIC8qKlxuICAgKiBldmVudCBlbWl0dGVyIHVzZWQgZm9yIG5vdGlmeWluZyBjb25zdW1lcnMgdGhlIGNsaWNrIGV2ZW50IFxuICAgKi9cbiAgdmVnYU1lbnVDbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PGFueT4+O1xuXG59XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnY291bnRlckJhZGdlJywgJ2ljb24nLCAnc2VsZWN0ZWQnLCAndXJsJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2ZWdhLWxlZnQtbmF2LWxpbmsnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ2NvdW50ZXJCYWRnZScsICdpY29uJywgJ3NlbGVjdGVkJywgJ3VybCddXG59KVxuZXhwb3J0IGNsYXNzIFZlZ2FMZWZ0TmF2TGluayB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3ZlZ2FNZW51Q2xpY2snXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVmVnYUxlZnROYXZTZWN0aW9uIGV4dGVuZHMgQ29tcG9uZW50cy5WZWdhTGVmdE5hdlNlY3Rpb24ge31cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWydzZWN0aW9uSGVhZGVyJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2ZWdhLWxlZnQtbmF2LXNlY3Rpb24nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ3NlY3Rpb25IZWFkZXInXVxufSlcbmV4cG9ydCBjbGFzcyBWZWdhTGVmdE5hdlNlY3Rpb24ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBWZWdhTGluZUNoYXJ0IGV4dGVuZHMgQ29tcG9uZW50cy5WZWdhTGluZUNoYXJ0IHt9XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnb3B0aW9ucyddLFxuICBtZXRob2RzOiBbJ3JlUmVuZGVyJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2ZWdhLWxpbmUtY2hhcnQnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ29wdGlvbnMnXVxufSlcbmV4cG9ydCBjbGFzcyBWZWdhTGluZUNoYXJ0IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVmVnYUxvYWRpbmdJbmRpY2F0b3IgZXh0ZW5kcyBDb21wb25lbnRzLlZlZ2FMb2FkaW5nSW5kaWNhdG9yIHt9XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnaGludCcsICdsYWJlbCcsICdtb2RlJywgJ3BlcmNlbnQnLCAnc2hhcGUnLCAnc2l6ZScsICdzdGF0dXMnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZlZ2EtbG9hZGluZy1pbmRpY2F0b3InLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ2hpbnQnLCAnbGFiZWwnLCAnbW9kZScsICdwZXJjZW50JywgJ3NoYXBlJywgJ3NpemUnLCAnc3RhdHVzJ11cbn0pXG5leHBvcnQgY2xhc3MgVmVnYUxvYWRpbmdJbmRpY2F0b3Ige1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBWZWdhTW9kYWwgZXh0ZW5kcyBDb21wb25lbnRzLlZlZ2FNb2RhbCB7XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyB0aGUgbW9kYWwgY2xvc2UgZXZlbnQuIFxuICAgKi9cbiAgdmVnYUNsb3NlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8YW55Pj47XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyB0aGUgbW9kYWwgb3BlbiBldmVudC4gXG4gICAqL1xuICB2ZWdhT3BlbjogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PGFueT4+O1xuXG59XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnYW5pbWF0aW9uJywgJ2JhY2tkcm9wJywgJ2JhY2tkcm9wQ29sb3InLCAnY29udGVudE1heEhlaWdodCcsICdoYW5kbGVDbG9zZScsICdpc1ZlcnRpY2FsbHlDZW50ZXInLCAnbW9kYWxUaXRsZScsICdvcGVuJywgJ3BhZGRpbmcnLCAnc2hvd0Nsb3NlQnV0dG9uJywgJ3NpemUnXSxcbiAgbWV0aG9kczogWydtb2RhbCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmVnYS1tb2RhbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnYW5pbWF0aW9uJywgJ2JhY2tkcm9wJywgJ2JhY2tkcm9wQ29sb3InLCAnY29udGVudE1heEhlaWdodCcsICdoYW5kbGVDbG9zZScsICdpc1ZlcnRpY2FsbHlDZW50ZXInLCAnbW9kYWxUaXRsZScsICdvcGVuJywgJ3BhZGRpbmcnLCAnc2hvd0Nsb3NlQnV0dG9uJywgJ3NpemUnXVxufSlcbmV4cG9ydCBjbGFzcyBWZWdhTW9kYWwge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWyd2ZWdhQ2xvc2UnLCAndmVnYU9wZW4nXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVmVnYU5hdkNhcmQgZXh0ZW5kcyBDb21wb25lbnRzLlZlZ2FOYXZDYXJkIHt9XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnbWF4SGVpZ2h0JywgJ3NvdXJjZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmVnYS1uYXYtY2FyZCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnbWF4SGVpZ2h0JywgJ3NvdXJjZSddXG59KVxuZXhwb3J0IGNsYXNzIFZlZ2FOYXZDYXJkIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVmVnYU9wdGlvbiBleHRlbmRzIENvbXBvbmVudHMuVmVnYU9wdGlvbiB7fVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2ljb24nLCAnbGFiZWwnLCAnc3ViTGFiZWwnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZlZ2Etb3B0aW9uJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydpY29uJywgJ2xhYmVsJywgJ3N1YkxhYmVsJ11cbn0pXG5leHBvcnQgY2xhc3MgVmVnYU9wdGlvbiB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFZlZ2FQYWdlTm90aWZpY2F0aW9uIGV4dGVuZHMgQ29tcG9uZW50cy5WZWdhUGFnZU5vdGlmaWNhdGlvbiB7fVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2FjdGlvbkJ1dHRvbnMnLCAnZHVyYXRpb24nLCAnbWVzc2FnZScsICdub3RpZmljYXRpb25UaXRsZScsICdzaG93Q2xvc2VCdXR0b24nLCAndHlwZSddLFxuICBtZXRob2RzOiBbJ2Nsb3NlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2ZWdhLXBhZ2Utbm90aWZpY2F0aW9uJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydhY3Rpb25CdXR0b25zJywgJ2R1cmF0aW9uJywgJ21lc3NhZ2UnLCAnbm90aWZpY2F0aW9uVGl0bGUnLCAnc2hvd0Nsb3NlQnV0dG9uJywgJ3R5cGUnXVxufSlcbmV4cG9ydCBjbGFzcyBWZWdhUGFnZU5vdGlmaWNhdGlvbiB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFZlZ2FQYWdpbmF0aW9uIGV4dGVuZHMgQ29tcG9uZW50cy5WZWdhUGFnaW5hdGlvbiB7XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyB0aGUgY3VycmVudCBwYWdlIGNoYW5nZS4gXG4gICAqL1xuICB2ZWdhQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8bnVtYmVyPj47XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyBhIGNoYW5nZSBpbiB0aGUgbnVtYmVyIG9mXG4gICBkYXRhIGl0ZW1zIGRpc3BsYXllZCBwZXIgcGFnZS4gXG4gICAqL1xuICB2ZWdhUGFnZVNpemVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxudW1iZXI+PjtcblxufVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2N1cnJlbnQnLCAnZXh0ZW5zaW9ucycsICdwYWdlU2l6ZScsICdwYWdlU2l6ZVNlbGVjdG9yT3B0aW9ucycsICd0b3RhbCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmVnYS1wYWdpbmF0aW9uJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydjdXJyZW50JywgJ2V4dGVuc2lvbnMnLCAncGFnZVNpemUnLCAncGFnZVNpemVTZWxlY3Rvck9wdGlvbnMnLCAndG90YWwnXVxufSlcbmV4cG9ydCBjbGFzcyBWZWdhUGFnaW5hdGlvbiB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3ZlZ2FDaGFuZ2UnLCAndmVnYVBhZ2VTaXplQ2hhbmdlJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFZlZ2FQaWVDaGFydCBleHRlbmRzIENvbXBvbmVudHMuVmVnYVBpZUNoYXJ0IHt9XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnb3B0aW9ucyddLFxuICBtZXRob2RzOiBbJ3JlUmVuZGVyJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2ZWdhLXBpZS1jaGFydCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnb3B0aW9ucyddXG59KVxuZXhwb3J0IGNsYXNzIFZlZ2FQaWVDaGFydCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFZlZ2FQb3BvdmVyIGV4dGVuZHMgQ29tcG9uZW50cy5WZWdhUG9wb3ZlciB7XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyB0aGUgcG9wb3ZlciBzaG93IGV2ZW50LiBcbiAgICovXG4gIHZlZ2FQb3BvdmVyU2hvdzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHN0cmluZz4+O1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgdGhlIHBvcG92ZXIgaGlkZSBldmVudC4gXG4gICAqL1xuICB2ZWdhUG9wb3ZlckhpZGU6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxzdHJpbmc+PjtcblxufVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2FsaWdubWVudCcsICdwbGFjZW1lbnQnLCAncG9zaXRpb25SZWxhdGl2ZVRvJywgJ3NpemUnXSxcbiAgbWV0aG9kczogWydzaG93JywgJ2hpZGUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZlZ2EtcG9wb3ZlcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnYWxpZ25tZW50JywgJ3BsYWNlbWVudCcsICdwb3NpdGlvblJlbGF0aXZlVG8nLCAnc2l6ZSddXG59KVxuZXhwb3J0IGNsYXNzIFZlZ2FQb3BvdmVyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsndmVnYVBvcG92ZXJTaG93JywgJ3ZlZ2FQb3BvdmVySGlkZSddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBWZWdhUHJvZ3Jlc3NUcmFja2VyIGV4dGVuZHMgQ29tcG9uZW50cy5WZWdhUHJvZ3Jlc3NUcmFja2VyIHtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIHRoYXQgdGhlIGN1cnJlbnQgc3RlcCBoYXMgY2hhbmdlZC4gXG4gICAqL1xuICB2ZWdhQ3VycmVudFN0ZXBVcGRhdGU6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxzdHJpbmc+PjtcblxufVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2NhbkNsaWNrU3RlcCcsICdjb21wbGV0ZWRTdGVwQXJyYXknLCAnY3VycmVudCcsICdkaXJlY3Rpb24nLCAnc3RlcHMnXSxcbiAgbWV0aG9kczogWyduZXh0U3RlcCcsICdwcmV2U3RlcCcsICdzZXRDdXJyZW50JywgJ2dldEN1cnJlbnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZlZ2EtcHJvZ3Jlc3MtdHJhY2tlcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnY2FuQ2xpY2tTdGVwJywgJ2NvbXBsZXRlZFN0ZXBBcnJheScsICdjdXJyZW50JywgJ2RpcmVjdGlvbicsICdzdGVwcyddXG59KVxuZXhwb3J0IGNsYXNzIFZlZ2FQcm9ncmVzc1RyYWNrZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWyd2ZWdhQ3VycmVudFN0ZXBVcGRhdGUnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVmVnYVJhZGlvIGV4dGVuZHMgQ29tcG9uZW50cy5WZWdhUmFkaW8ge1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgdGhlIGZvY3VzIGV2ZW50IG9mIHRoZSByYWRpbyBpbnB1dC4gXG4gICAqL1xuICB2ZWdhRm9jdXM6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxhbnk+PjtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIHRoZSBibHVyIGV2ZW50IG9mIHRoZSByYWRpbyBpbnB1dC4gXG4gICAqL1xuICB2ZWdhQmx1cjogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PGFueT4+O1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgdGhlIGNoYW5nZSBpbiB0aGUgY2hlY2sgc3RhdHVzXG4gICBvZiB0aGUgcmFkaW8gaW5wdXQuIFxuICAgKi9cbiAgdmVnYUNoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PGJvb2xlYW4+PjtcblxufVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2NoZWNrZWQnLCAnZGlzYWJsZWQnLCAnbmFtZScsICdzaXplJywgJ3ZhbHVlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2ZWdhLXJhZGlvJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydjaGVja2VkJywgJ2Rpc2FibGVkJywgJ25hbWUnLCAnc2l6ZScsICd2YWx1ZSddXG59KVxuZXhwb3J0IGNsYXNzIFZlZ2FSYWRpbyB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3ZlZ2FGb2N1cycsICd2ZWdhQmx1cicsICd2ZWdhQ2hhbmdlJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFZlZ2FSYWRpb0dyb3VwIGV4dGVuZHMgQ29tcG9uZW50cy5WZWdhUmFkaW9Hcm91cCB7XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyB0aGUgY2hhbmdlIG9mIHRoZVxuICAgY2hlY2tlZCByYWRpbyBidXR0b24gaW4gdGhlIHJhZGlvIGdyb3VwLiBcbiAgICovXG4gIHZlZ2FDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxzdHJpbmc+PjtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIHRoZSBjaGFuZ2UgaW4gdGhlXG4gICB2YWxpZGF0aW9uIHJlc3VsdC4gXG4gICAqL1xuICB2ZWdhVmFsaWRhdGU6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxib29sZWFuPj47XG5cbn1cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWydkaXNhYmxlZCcsICdmb3JtVmFsaWRhdGlvbicsICdoaW50JywgJ2lzVmFsaWQnLCAnbGFiZWwnLCAnbmFtZScsICdyZXF1aXJlZCcsICd2YWx1ZScsICd2ZWdhRmxleFByb3AnXSxcbiAgbWV0aG9kczogWyd2YWxpZCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmVnYS1yYWRpby1ncm91cCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnZGlzYWJsZWQnLCAnZm9ybVZhbGlkYXRpb24nLCAnaGludCcsICdpc1ZhbGlkJywgJ2xhYmVsJywgJ25hbWUnLCAncmVxdWlyZWQnLCAndmFsdWUnLCAndmVnYUZsZXhQcm9wJ11cbn0pXG5leHBvcnQgY2xhc3MgVmVnYVJhZGlvR3JvdXAge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWyd2ZWdhQ2hhbmdlJywgJ3ZlZ2FWYWxpZGF0ZSddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBWZWdhU2lkZW5hdiBleHRlbmRzIENvbXBvbmVudHMuVmVnYVNpZGVuYXYge1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgdGhlIGNvbXBsZXRpb24gb2YgYSBuYXZpZ2F0aW9uIG1lbnUgY2xvc2Ugb3BlcmF0aW9uLiBcbiAgICovXG4gIHZlZ2FTdGF0ZVVwZGF0ZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHN0cmluZz4+O1xuXG59XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnZm9vdG5vdGUnLCAnaGVhZGVyQ29uZmlnJywgJ29wZW5CeURlZmF1bHQnLCAnc291cmNlJ10sXG4gIG1ldGhvZHM6IFsndG9nZ2xlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2ZWdhLXNpZGVuYXYnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ2Zvb3Rub3RlJywgJ2hlYWRlckNvbmZpZycsICdvcGVuQnlEZWZhdWx0JywgJ3NvdXJjZSddXG59KVxuZXhwb3J0IGNsYXNzIFZlZ2FTaWRlbmF2IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsndmVnYVN0YXRlVXBkYXRlJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFZlZ2FTaWRlbmF2R3JvdXAgZXh0ZW5kcyBDb21wb25lbnRzLlZlZ2FTaWRlbmF2R3JvdXAge31cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWydpY29uJywgJ2xhYmVsJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2ZWdhLXNpZGVuYXYtZ3JvdXAnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ2ljb24nLCAnbGFiZWwnXVxufSlcbmV4cG9ydCBjbGFzcyBWZWdhU2lkZW5hdkdyb3VwIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVmVnYVNpZGVuYXZMaW5rIGV4dGVuZHMgQ29tcG9uZW50cy5WZWdhU2lkZW5hdkxpbmsge1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgYWJvdXQgdGhlIG9jY3VycmVuY2Ugb2YgYSBjbGljayBldmVudC4gXG4gICAqL1xuICB2ZWdhQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxhbnk+PjtcblxufVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2ljb24nLCAnc2VsZWN0ZWQnLCAnc2hvd1NpZGVCYXJPbkNsaWNrTGluaycsICd1cmwnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZlZ2Etc2lkZW5hdi1saW5rJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydpY29uJywgJ3NlbGVjdGVkJywgJ3Nob3dTaWRlQmFyT25DbGlja0xpbmsnLCAndXJsJ11cbn0pXG5leHBvcnQgY2xhc3MgVmVnYVNpZGVuYXZMaW5rIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsndmVnYUNsaWNrJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFZlZ2FTdGVwcGVyIGV4dGVuZHMgQ29tcG9uZW50cy5WZWdhU3RlcHBlciB7XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyBjaGFuZ2VzIGluIHRoZSB2YWx1ZSBvZlxuICAgdGhlIHN0ZXBwZXIgY29tcG9uZW50LiBcbiAgICovXG4gIHZlZ2FDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxudW1iZXI+PjtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIGNoYW5nZXMgaW4gdGhlIHZhbGlkYXRpb25cbiAgIHJlc3VsdCBvZiB0aGUgc3RlcHBlciBjb21wb25lbnQuIFxuICAgKi9cbiAgdmVnYVZhbGlkYXRlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8Ym9vbGVhbj4+O1xuXG59XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnYXV0b1ZhbGlkYXRpb24nLCAnYnV0dG9uVmFyaWFudCcsICdkaXNhYmxlZCcsICdmb3JtVmFsaWRhdGlvbicsICdpbnB1dERpc2FibGVkJywgJ2lucHV0RWRpdGFibGUnLCAnaXNWYWxpZCcsICdsYWJlbCcsICdtYXgnLCAnbWluJywgJ3N0ZXBwZXJJZCcsICd2YWx1ZSddLFxuICBtZXRob2RzOiBbJ3ZhbGlkJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2ZWdhLXN0ZXBwZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ2F1dG9WYWxpZGF0aW9uJywgJ2J1dHRvblZhcmlhbnQnLCAnZGlzYWJsZWQnLCAnZm9ybVZhbGlkYXRpb24nLCAnaW5wdXREaXNhYmxlZCcsICdpbnB1dEVkaXRhYmxlJywgJ2lzVmFsaWQnLCAnbGFiZWwnLCAnbWF4JywgJ21pbicsICdzdGVwcGVySWQnLCAndmFsdWUnXVxufSlcbmV4cG9ydCBjbGFzcyBWZWdhU3RlcHBlciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3ZlZ2FDaGFuZ2UnLCAndmVnYVZhbGlkYXRlJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFZlZ2FUYWJHcm91cCBleHRlbmRzIENvbXBvbmVudHMuVmVnYVRhYkdyb3VwIHtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIHRoZSBjbGljayBldmVudCBvZiBhIHRhYlxuICAgaW4gdGhlIHRhYiBncm91cC4gXG4gICAqL1xuICB2ZWdhQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxzdHJpbmc+PjtcblxufVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2dhcCcsICdwb3NpdGlvblJlbGF0aXZlVG8nLCAnc2VsZWN0ZWRUYWJEYXRhVGFyZ2V0JywgJ3Nob3dDbG9zZUJ1dHRvbicsICd0YWJJdGVtcycsICd2YXJpYW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2ZWdhLXRhYi1ncm91cCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnZ2FwJywgJ3Bvc2l0aW9uUmVsYXRpdmVUbycsICdzZWxlY3RlZFRhYkRhdGFUYXJnZXQnLCAnc2hvd0Nsb3NlQnV0dG9uJywgJ3RhYkl0ZW1zJywgJ3ZhcmlhbnQnXVxufSlcbmV4cG9ydCBjbGFzcyBWZWdhVGFiR3JvdXAge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWyd2ZWdhQ2xpY2snXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVmVnYVRhYkdyb3VwUGFuZWwgZXh0ZW5kcyBDb21wb25lbnRzLlZlZ2FUYWJHcm91cFBhbmVsIHt9XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnaXNBY3RpdmUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZlZ2EtdGFiLWdyb3VwLXBhbmVsJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydpc0FjdGl2ZSddXG59KVxuZXhwb3J0IGNsYXNzIFZlZ2FUYWJHcm91cFBhbmVsIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuaW1wb3J0IHR5cGUgeyBWZWdhVGFibGVDaGFuZ2VQcm9wVHlwZSBhcyBJVmVnYVRhYmxlVmVnYVRhYmxlQ2hhbmdlUHJvcFR5cGUgfSBmcm9tICdAaGVhcnRsYW5kb25lL3ZlZ2EvZGlzdC90eXBlcy9jb21wb25lbnRzL3ZlZ2EtdGFibGUvaW50ZXJmYWNlJztcbmltcG9ydCB0eXBlIHsgVmVnYVRhYmxlUm93Q2xpY2tQcm9wVHlwZSBhcyBJVmVnYVRhYmxlVmVnYVRhYmxlUm93Q2xpY2tQcm9wVHlwZSB9IGZyb20gJ0BoZWFydGxhbmRvbmUvdmVnYS9kaXN0L3R5cGVzL2NvbXBvbmVudHMvdmVnYS10YWJsZS9pbnRlcmZhY2UnO1xuaW1wb3J0IHR5cGUgeyBWZWdhVGFibGVSb3dTZWxlY3RQcm9wIGFzIElWZWdhVGFibGVWZWdhVGFibGVSb3dTZWxlY3RQcm9wIH0gZnJvbSAnQGhlYXJ0bGFuZG9uZS92ZWdhL2Rpc3QvdHlwZXMvY29tcG9uZW50cy92ZWdhLXRhYmxlL2ludGVyZmFjZSc7XG5pbXBvcnQgdHlwZSB7IFZlZ2FUYWJsZVNlbGVjdEFsbFByb3AgYXMgSVZlZ2FUYWJsZVZlZ2FUYWJsZVNlbGVjdEFsbFByb3AgfSBmcm9tICdAaGVhcnRsYW5kb25lL3ZlZ2EvZGlzdC90eXBlcy9jb21wb25lbnRzL3ZlZ2EtdGFibGUvaW50ZXJmYWNlJztcbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBWZWdhVGFibGUgZXh0ZW5kcyBDb21wb25lbnRzLlZlZ2FUYWJsZSB7XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyBjaGFuZ2VzIGluIHRoZSB0YWJsZSBkYXRhLiBcbiAgICovXG4gIHZlZ2FDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJVmVnYVRhYmxlVmVnYVRhYmxlQ2hhbmdlUHJvcFR5cGU+PjtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIHRoZSBjbGljayBldmVudCBvZiBhIHJvd1xuICAgaW4gdGhlIHRhYmxlLiBcbiAgICovXG4gIHZlZ2FSb3dDbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElWZWdhVGFibGVWZWdhVGFibGVSb3dDbGlja1Byb3BUeXBlPj47XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyB0aGUgc2VsZWN0aW9uIG9yIGRlc2VsZWN0aW9uXG4gICBvZiBhIHJvdyBpbiB0aGUgdGFibGUuIFxuICAgKi9cbiAgdmVnYVNlbGVjdENoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElWZWdhVGFibGVWZWdhVGFibGVSb3dTZWxlY3RQcm9wPj47XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyBjaGFuZ2VzIGluIHRoZSBzZWxlY3Rpb24gb2YgY2hlY2tib3hlcyxcbiAgIHBhcnRpY3VsYXJseSB0aGUgXCJTZWxlY3QgQWxsXCIgY2hlY2tib3ggaW4gdGhlIHRhYmxlIGhlYWRlci4gXG4gICAqL1xuICB2ZWdhU2VsZWN0QWxsQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVZlZ2FUYWJsZVZlZ2FUYWJsZVNlbGVjdEFsbFByb3A+PjtcblxufVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2NvbHVtbkRpdmlkZXInLCAnY29sdW1ucycsICdkYXRhU291cmNlJywgJ2RlbnNpdHknLCAnZW1wdHlEZXNjcmlwdGlvbicsICdwYWRkaW5nWCcsICdwYWdpbmF0aW9uJywgJ3Jvd0NsaWNrYWJsZScsICdyb3dEaXZpZGVyJywgJ3Jvd0V4cGFuZGFibGUnLCAncm93S2V5JywgJ3Jvd1NlbGVjdGlvbicsICdzY3JvbGxDb25maWcnLCAnc2hvd0hlYWRlcicsICdzdHJpcGVkJ10sXG4gIG1ldGhvZHM6IFsnb3BlbkV4cGFuZFJvdycsICdjbG9zZUV4cGFuZFJvdycsICdjbG9zZUFsbEV4cGFuZFJvdycsICd0b2dnbGVFeHBhbmRSb3cnLCAnY2xlYXJTZWxlY3Rpb24nLCAnZ2V0U2VsZWN0aW9uJywgJ3NldFNlbGVjdGlvbicsICdzdGFydFJvd0VkaXRNb2RlJywgJ3N0b3BSb3dFZGl0TW9kZScsICdzdG9wQWxsUm93RWRpdE1vZGUnLCAnZ2V0Um93RGF0YScsICdnZXRSb3dzRGF0YScsICdnZXRGb3JtUmVmJywgJ2FkZE5ld1JvdycsICdzYXZlRWRpdFJvdycsICdzYXZlQWxsRWRpdFJvd3MnLCAnZ2V0RWRpdGluZ1Jvd3NLZXknLCAncmVtb3ZlUm93J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2ZWdhLXRhYmxlJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydjb2x1bW5EaXZpZGVyJywgJ2NvbHVtbnMnLCAnZGF0YVNvdXJjZScsICdkZW5zaXR5JywgJ2VtcHR5RGVzY3JpcHRpb24nLCAncGFkZGluZ1gnLCAncGFnaW5hdGlvbicsICdyb3dDbGlja2FibGUnLCAncm93RGl2aWRlcicsICdyb3dFeHBhbmRhYmxlJywgJ3Jvd0tleScsICdyb3dTZWxlY3Rpb24nLCAnc2Nyb2xsQ29uZmlnJywgJ3Nob3dIZWFkZXInLCAnc3RyaXBlZCddXG59KVxuZXhwb3J0IGNsYXNzIFZlZ2FUYWJsZSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3ZlZ2FDaGFuZ2UnLCAndmVnYVJvd0NsaWNrJywgJ3ZlZ2FTZWxlY3RDaGFuZ2UnLCAndmVnYVNlbGVjdEFsbENoYW5nZSddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBWZWdhVGFibGVCb2R5IGV4dGVuZHMgQ29tcG9uZW50cy5WZWdhVGFibGVCb2R5IHt9XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmVnYS10YWJsZS1ib2R5JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50Pidcbn0pXG5leHBvcnQgY2xhc3MgVmVnYVRhYmxlQm9keSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFZlZ2FUYWJsZUNlbGwgZXh0ZW5kcyBDb21wb25lbnRzLlZlZ2FUYWJsZUNlbGwge31cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWydicmVha3BvaW50JywgJ2VsbGlwc2lzJywgJ292ZXJmbG93JywgJ3RleHRBbGlnbicsICd3aWR0aCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmVnYS10YWJsZS1jZWxsJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydicmVha3BvaW50JywgJ2VsbGlwc2lzJywgJ292ZXJmbG93JywgJ3RleHRBbGlnbicsICd3aWR0aCddXG59KVxuZXhwb3J0IGNsYXNzIFZlZ2FUYWJsZUNlbGwge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBWZWdhVGFibGVFeHBhbmRSb3cgZXh0ZW5kcyBDb21wb25lbnRzLlZlZ2FUYWJsZUV4cGFuZFJvdyB7fVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2NvbFNwYW4nLCAncm93S2V5J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2ZWdhLXRhYmxlLWV4cGFuZC1yb3cnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ2NvbFNwYW4nLCAncm93S2V5J11cbn0pXG5leHBvcnQgY2xhc3MgVmVnYVRhYmxlRXhwYW5kUm93IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVmVnYVRhYmxlSGVhZCBleHRlbmRzIENvbXBvbmVudHMuVmVnYVRhYmxlSGVhZCB7fVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2ZpeGVkJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2ZWdhLXRhYmxlLWhlYWQnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ2ZpeGVkJ11cbn0pXG5leHBvcnQgY2xhc3MgVmVnYVRhYmxlSGVhZCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cbmltcG9ydCB0eXBlIHsgVmVnYVRhYmxlSGVhZENlbGxDbGlja0V2ZW50IGFzIElWZWdhVGFibGVIZWFkQ2VsbFZlZ2FUYWJsZUhlYWRDZWxsQ2xpY2tFdmVudCB9IGZyb20gJ0BoZWFydGxhbmRvbmUvdmVnYS9kaXN0L3R5cGVzL2NvbXBvbmVudHMvdmVnYS10YWJsZS9pbnRlcmZhY2UnO1xuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFZlZ2FUYWJsZUhlYWRDZWxsIGV4dGVuZHMgQ29tcG9uZW50cy5WZWdhVGFibGVIZWFkQ2VsbCB7XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyB0aGF0IHRoZSBoZWFkIGNlbGwgaGFzIGJlZW4gY2xpY2tlZC4gXG4gICAqL1xuICB2ZWdhQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJVmVnYVRhYmxlSGVhZENlbGxWZWdhVGFibGVIZWFkQ2VsbENsaWNrRXZlbnQ+PjtcblxufVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2JyZWFrcG9pbnQnLCAnc29ydGVyJywgJ3RleHRBbGlnbicsICd3aWR0aCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmVnYS10YWJsZS1oZWFkLWNlbGwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ2JyZWFrcG9pbnQnLCAnc29ydGVyJywgJ3RleHRBbGlnbicsICd3aWR0aCddXG59KVxuZXhwb3J0IGNsYXNzIFZlZ2FUYWJsZUhlYWRDZWxsIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsndmVnYUNsaWNrJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFZlZ2FUYWJsZUhlYWRSb3cgZXh0ZW5kcyBDb21wb25lbnRzLlZlZ2FUYWJsZUhlYWRSb3cge31cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWydjaGVja2VkQWxsJywgJ2V4cGFuZGFibGUnLCAnaGlkZVNlbGVjdEFsbCcsICdwYWRkaW5nWCcsICdzZWxlY3RBbGxEaXNhYmxlZCcsICdzZWxlY3Rpb25UeXBlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2ZWdhLXRhYmxlLWhlYWQtcm93JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydjaGVja2VkQWxsJywgJ2V4cGFuZGFibGUnLCAnaGlkZVNlbGVjdEFsbCcsICdwYWRkaW5nWCcsICdzZWxlY3RBbGxEaXNhYmxlZCcsICdzZWxlY3Rpb25UeXBlJ11cbn0pXG5leHBvcnQgY2xhc3MgVmVnYVRhYmxlSGVhZFJvdyB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cbmltcG9ydCB0eXBlIHsgVmVnYVRhYmxlUm93Q2xpY2tFdmVudCBhcyBJVmVnYVRhYmxlUm93VmVnYVRhYmxlUm93Q2xpY2tFdmVudCB9IGZyb20gJ0BoZWFydGxhbmRvbmUvdmVnYS9kaXN0L3R5cGVzL2NvbXBvbmVudHMvdmVnYS10YWJsZS9pbnRlcmZhY2UnO1xuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFZlZ2FUYWJsZVJvdyBleHRlbmRzIENvbXBvbmVudHMuVmVnYVRhYmxlUm93IHtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIHRoYXQgdGhlIHJvdyBoYXMgYmVlbiBjbGlja2VkLiBcbiAgICovXG4gIHZlZ2FDbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElWZWdhVGFibGVSb3dWZWdhVGFibGVSb3dDbGlja0V2ZW50Pj47XG5cbn1cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWydjbGlja2FibGUnLCAnZXhwYW5kYWJsZScsICdwYWRkaW5nWCcsICdyb3dLZXknLCAnc2VsZWN0aW9uVHlwZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmVnYS10YWJsZS1yb3cnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ2NsaWNrYWJsZScsICdleHBhbmRhYmxlJywgJ3BhZGRpbmdYJywgJ3Jvd0tleScsICdzZWxlY3Rpb25UeXBlJ11cbn0pXG5leHBvcnQgY2xhc3MgVmVnYVRhYmxlUm93IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsndmVnYUNsaWNrJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFZlZ2FUZXh0IGV4dGVuZHMgQ29tcG9uZW50cy5WZWdhVGV4dCB7fVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ292ZXJmbG93J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2ZWdhLXRleHQnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgaW5wdXRzOiBbJ292ZXJmbG93J11cbn0pXG5leHBvcnQgY2xhc3MgVmVnYVRleHQge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBWZWdhVGV4dGFyZWEgZXh0ZW5kcyBDb21wb25lbnRzLlZlZ2FUZXh0YXJlYSB7XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyBhYm91dCBjaGFuZ2VzIGluIHRoZSB2YWx1ZVxuICAgb2YgdGhlIHRleHQgYXJlYS4gXG4gICAqL1xuICB2ZWdhQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8c3RyaW5nPj47XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyBjaGFuZ2VzIGluIHRoZSB2YWxpZGF0aW9uIHJlc3VsdFxuICAgb2YgdGhlIHRleHQgYXJlYS4gXG4gICAqL1xuICB2ZWdhVmFsaWRhdGU6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxib29sZWFuPj47XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVyIG5vdGlmeWluZyB0aGUgYmx1ciBldmVudCBvZiB0aGUgaW5uZXJcbiAgIHRleHRhcmVhIGVsZW1lbnQgd2l0aGluIHRoZSB0ZXh0IGFyZWEuIFxuICAgKi9cbiAgdmVnYUJsdXI6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx1bmRlZmluZWQ+PjtcblxufVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2F1dG9WYWxpZGF0aW9uJywgJ2Rpc2FibGVkJywgJ2hpbnQnLCAnaXNWYWxpZCcsICdsYWJlbCcsICdtYXhMZW5ndGgnLCAnbWluTGVuZ3RoJywgJ3BsYWNlaG9sZGVyJywgJ3JlcXVpcmVkJywgJ3Nob3dDb3VudGVyJywgJ3ZhbGlkYXRpb25SdWxlcycsICd2YWx1ZSddLFxuICBtZXRob2RzOiBbJ3ZhbGlkJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2ZWdhLXRleHRhcmVhJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydhdXRvVmFsaWRhdGlvbicsICdkaXNhYmxlZCcsICdoaW50JywgJ2lzVmFsaWQnLCAnbGFiZWwnLCAnbWF4TGVuZ3RoJywgJ21pbkxlbmd0aCcsICdwbGFjZWhvbGRlcicsICdyZXF1aXJlZCcsICdzaG93Q291bnRlcicsICd2YWxpZGF0aW9uUnVsZXMnLCAndmFsdWUnXVxufSlcbmV4cG9ydCBjbGFzcyBWZWdhVGV4dGFyZWEge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWyd2ZWdhQ2hhbmdlJywgJ3ZlZ2FWYWxpZGF0ZScsICd2ZWdhQmx1ciddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBWZWdhVGltZVBpY2tlciBleHRlbmRzIENvbXBvbmVudHMuVmVnYVRpbWVQaWNrZXIge1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgY2hhbmdlcyBpbiB0aGUgdmFsdWUgb2YgdGhlIHRpbWUgcGlja2VyLiBcbiAgICovXG4gIHZlZ2FDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxzdHJpbmcgfCBzdHJpbmdbXT4+O1xuICAvKipcbiAgICogQW4gZXZlbnQgZW1pdHRlciBub3RpZnlpbmcgY2hhbmdlcyBpbiB0aGUgdmFsaWRhdGlvbiByZXN1bHRcbiAgIG9mIHRoZSB0aW1lIHBpY2tlci4gXG4gICAqL1xuICB2ZWdhVmFsaWRhdGU6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxib29sZWFuPj47XG5cbn1cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWydhdXRvVmFsaWRhdGlvbicsICdkaXNhYmxlZCcsICdpbmNyZW1lbnRzJywgJ2lzVmFsaWQnLCAnbGFiZWwnLCAncGxhY2Vob2xkZXInLCAncG9zaXRpb25SZWxhdGl2ZVRvJywgJ3JlcXVpcmVkJywgJ3NpemUnLCAndGltZUZvcm1hdCcsICd2YWxpZGF0aW9uUnVsZXMnLCAndmFsdWUnXSxcbiAgbWV0aG9kczogWyd2YWxpZCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmVnYS10aW1lLXBpY2tlcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBpbnB1dHM6IFsnYXV0b1ZhbGlkYXRpb24nLCAnZGlzYWJsZWQnLCAnaW5jcmVtZW50cycsICdpc1ZhbGlkJywgJ2xhYmVsJywgJ3BsYWNlaG9sZGVyJywgJ3Bvc2l0aW9uUmVsYXRpdmVUbycsICdyZXF1aXJlZCcsICdzaXplJywgJ3RpbWVGb3JtYXQnLCAndmFsaWRhdGlvblJ1bGVzJywgJ3ZhbHVlJ11cbn0pXG5leHBvcnQgY2xhc3MgVmVnYVRpbWVQaWNrZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWyd2ZWdhQ2hhbmdlJywgJ3ZlZ2FWYWxpZGF0ZSddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBWZWdhVG9nZ2xlU3dpdGNoIGV4dGVuZHMgQ29tcG9uZW50cy5WZWdhVG9nZ2xlU3dpdGNoIHtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IGVtaXR0ZXIgbm90aWZ5aW5nIGNoYW5nZXMgaW4gdGhlIHRvZ2dsZSBzd2l0Y2guIFxuICAgKi9cbiAgdmVnYUNoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PGJvb2xlYW4+PjtcblxufVxuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IHVuZGVmaW5lZCxcbiAgaW5wdXRzOiBbJ2NoZWNrZWQnLCAnZGlzYWJsZWQnLCAnbGFiZWwnLCAnc2l6ZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmVnYS10b2dnbGUtc3dpdGNoJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydjaGVja2VkJywgJ2Rpc2FibGVkJywgJ2xhYmVsJywgJ3NpemUnXVxufSlcbmV4cG9ydCBjbGFzcyBWZWdhVG9nZ2xlU3dpdGNoIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsndmVnYUNoYW5nZSddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBWZWdhVG9vbHRpcCBleHRlbmRzIENvbXBvbmVudHMuVmVnYVRvb2x0aXAge31cblxuQFByb3h5Q21wKHtcbiAgZGVmaW5lQ3VzdG9tRWxlbWVudEZuOiB1bmRlZmluZWQsXG4gIGlucHV0czogWydhbGlnbm1lbnQnLCAnY29udGVudCcsICdtYXhXaWR0aCcsICdtaW5XaWR0aCcsICdwbGFjZW1lbnQnLCAncG9zaXRpb25SZWxhdGl2ZVRvJywgJ3NpemUnLCAndHJpZ2dlciddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmVnYS10b29sdGlwJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydhbGlnbm1lbnQnLCAnY29udGVudCcsICdtYXhXaWR0aCcsICdtaW5XaWR0aCcsICdwbGFjZW1lbnQnLCAncG9zaXRpb25SZWxhdGl2ZVRvJywgJ3NpemUnLCAndHJpZ2dlciddXG59KVxuZXhwb3J0IGNsYXNzIFZlZ2FUb29sdGlwIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVmVnYVZpcnR1YWxTY3JvbGwgZXh0ZW5kcyBDb21wb25lbnRzLlZlZ2FWaXJ0dWFsU2Nyb2xsIHt9XG5cbkBQcm94eUNtcCh7XG4gIGRlZmluZUN1c3RvbUVsZW1lbnRGbjogdW5kZWZpbmVkLFxuICBpbnB1dHM6IFsnYXBwcm94SXRlbUhlaWdodCcsICdyZW5kZXJJdGVtJywgJ3NvdXJjZScsICdzb3VyY2VJdGVtSWRlbnRpZmllcicsICd0aHJlc2hvbGRPZldvcmsnLCAndmlld3BvcnRNYXhIZWlnaHQnXSxcbiAgbWV0aG9kczogWydzY3JvbGxUb0luZGV4J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2ZWdhLXZpcnR1YWwtc2Nyb2xsJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGlucHV0czogWydhcHByb3hJdGVtSGVpZ2h0JywgJ3JlbmRlckl0ZW0nLCAnc291cmNlJywgJ3NvdXJjZUl0ZW1JZGVudGlmaWVyJywgJ3RocmVzaG9sZE9mV29yaycsICd2aWV3cG9ydE1heEhlaWdodCddXG59KVxuZXhwb3J0IGNsYXNzIFZlZ2FWaXJ0dWFsU2Nyb2xsIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgW1xuICBWZWdhQWNjb3JkaW9uLFxuICBWZWdhQXBwRm9vdGVyLFxuICBWZWdhQXBwSGVhZGVyQnV0dG9uLFxuICBWZWdhQmFkZ2UsXG4gIFZlZ2FCYW5uZXIsXG4gIFZlZ2FCYXJDaGFydCxcbiAgVmVnYUJveCxcbiAgVmVnYUJyZWFkY3J1bWIsXG4gIFZlZ2FCdXR0b24sXG4gIFZlZ2FCdXR0b25DaXJjbGUsXG4gIFZlZ2FCdXR0b25MaW5rLFxuICBWZWdhQ2FyZCxcbiAgVmVnYUNhcm91c2VsLFxuICBWZWdhQ2hlY2tib3gsXG4gIFZlZ2FDaGVja2JveEdyb3VwLFxuICBWZWdhQ2hpcCxcbiAgVmVnYUNvbG9yUGlja2VyLFxuICBWZWdhQ29tYm9Cb3gsXG4gIFZlZ2FDb3VudGVyQmFkZ2UsXG4gIFZlZ2FEYXRlUGlja2VyLFxuICBWZWdhRGlhbG9nLFxuICBWZWdhRHJvcGRvd24sXG4gIFZlZ2FGaWVsZExhYmVsLFxuICBWZWdhRmxleCxcbiAgVmVnYUZvb3RlcixcbiAgVmVnYUZvcm0sXG4gIFZlZ2FHcmlkLFxuICBWZWdhSGVhZGVyLFxuICBWZWdhSWNvbixcbiAgVmVnYUltYWdlVXBsb2FkZXIsXG4gIFZlZ2FJbnB1dCxcbiAgVmVnYUlucHV0Q3JlZGl0Q2FyZCxcbiAgVmVnYUlucHV0U2VsZWN0LFxuICBWZWdhSXRlbVRvZ2dsZSxcbiAgVmVnYUxlZnROYXYsXG4gIFZlZ2FMZWZ0TmF2R3JvdXAsXG4gIFZlZ2FMZWZ0TmF2TGluayxcbiAgVmVnYUxlZnROYXZTZWN0aW9uLFxuICBWZWdhTGluZUNoYXJ0LFxuICBWZWdhTG9hZGluZ0luZGljYXRvcixcbiAgVmVnYU1vZGFsLFxuICBWZWdhTmF2Q2FyZCxcbiAgVmVnYU9wdGlvbixcbiAgVmVnYVBhZ2VOb3RpZmljYXRpb24sXG4gIFZlZ2FQYWdpbmF0aW9uLFxuICBWZWdhUGllQ2hhcnQsXG4gIFZlZ2FQb3BvdmVyLFxuICBWZWdhUHJvZ3Jlc3NUcmFja2VyLFxuICBWZWdhUmFkaW8sXG4gIFZlZ2FSYWRpb0dyb3VwLFxuICBWZWdhU2lkZW5hdixcbiAgVmVnYVNpZGVuYXZHcm91cCxcbiAgVmVnYVNpZGVuYXZMaW5rLFxuICBWZWdhU3RlcHBlcixcbiAgVmVnYVRhYkdyb3VwLFxuICBWZWdhVGFiR3JvdXBQYW5lbCxcbiAgVmVnYVRhYmxlLFxuICBWZWdhVGFibGVCb2R5LFxuICBWZWdhVGFibGVDZWxsLFxuICBWZWdhVGFibGVFeHBhbmRSb3csXG4gIFZlZ2FUYWJsZUhlYWQsXG4gIFZlZ2FUYWJsZUhlYWRDZWxsLFxuICBWZWdhVGFibGVIZWFkUm93LFxuICBWZWdhVGFibGVSb3csXG4gIFZlZ2FUZXh0LFxuICBWZWdhVGV4dGFyZWEsXG4gIFZlZ2FUaW1lUGlja2VyLFxuICBWZWdhVG9nZ2xlU3dpdGNoLFxuICBWZWdhVG9vbHRpcCxcbiAgVmVnYVZpcnR1YWxTY3JvbGwsXG5dOyJdfQ==
|