@six-group/ui-library-angular 0.0.0-insider.a9875a1 → 0.0.0-insider.ad9373a

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.
@@ -288,11 +288,11 @@ export let SixDropdown = class SixDropdown {
288
288
  proxyOutputs(this, this.el, ['six-dropdown-show', 'six-dropdown-after-show', 'six-dropdown-hide', 'six-dropdown-after-hide', 'six-dropdown-auto-filter-fired', 'six-async-filter-fired', 'six-dropdown-scroll']);
289
289
  }
290
290
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SixDropdown, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
291
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SixDropdown, selector: "six-dropdown", inputs: { asyncFilter: "asyncFilter", autofocusFilter: "autofocusFilter", closeOnSelect: "closeOnSelect", containingElement: "containingElement", disableHideOnEnterAndSpace: "disableHideOnEnterAndSpace", distance: "distance", filter: "filter", filterDebounce: "filterDebounce", filterPlaceholder: "filterPlaceholder", hoist: "hoist", open: "open", options: "options", placement: "placement", skidding: "skidding", virtualScroll: "virtualScroll" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
291
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SixDropdown, selector: "six-dropdown", inputs: { asyncFilter: "asyncFilter", autofocusFilter: "autofocusFilter", closeOnSelect: "closeOnSelect", containingElement: "containingElement", disableHideOnEnterAndSpace: "disableHideOnEnterAndSpace", distance: "distance", filter: "filter", filterDebounce: "filterDebounce", filterPlaceholder: "filterPlaceholder", hoist: "hoist", matchTriggerWidth: "matchTriggerWidth", open: "open", options: "options", placement: "placement", skidding: "skidding", virtualScroll: "virtualScroll" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
292
292
  };
293
293
  SixDropdown = __decorate([
294
294
  ProxyCmp({
295
- inputs: ['asyncFilter', 'autofocusFilter', 'closeOnSelect', 'containingElement', 'disableHideOnEnterAndSpace', 'distance', 'filter', 'filterDebounce', 'filterPlaceholder', 'hoist', 'open', 'options', 'placement', 'skidding', 'virtualScroll'],
295
+ inputs: ['asyncFilter', 'autofocusFilter', 'closeOnSelect', 'containingElement', 'disableHideOnEnterAndSpace', 'distance', 'filter', 'filterDebounce', 'filterPlaceholder', 'hoist', 'matchTriggerWidth', 'open', 'options', 'placement', 'skidding', 'virtualScroll'],
296
296
  methods: ['show', 'hide', 'reposition']
297
297
  })
298
298
  ], SixDropdown);
@@ -303,7 +303,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
303
303
  changeDetection: ChangeDetectionStrategy.OnPush,
304
304
  template: '<ng-content></ng-content>',
305
305
  // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
306
- inputs: ['asyncFilter', 'autofocusFilter', 'closeOnSelect', 'containingElement', 'disableHideOnEnterAndSpace', 'distance', 'filter', 'filterDebounce', 'filterPlaceholder', 'hoist', 'open', 'options', 'placement', 'skidding', 'virtualScroll'],
306
+ inputs: ['asyncFilter', 'autofocusFilter', 'closeOnSelect', 'containingElement', 'disableHideOnEnterAndSpace', 'distance', 'filter', 'filterDebounce', 'filterPlaceholder', 'hoist', 'matchTriggerWidth', 'open', 'options', 'placement', 'skidding', 'virtualScroll'],
307
307
  }]
308
308
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
309
309
  export let SixError = class SixError {
@@ -478,11 +478,11 @@ export let SixHeader = class SixHeader {
478
478
  proxyOutputs(this, this.el, ['six-header-app-name-clicked', 'six-header-app-switcher-select', 'six-header-profile-select', 'six-header-hamburger-menu-clicked', 'six-header-logo-clicked', 'six-header-search-field-toggle']);
479
479
  }
480
480
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SixHeader, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
481
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SixHeader, selector: "six-header", inputs: { clickableLogo: "clickableLogo", openHamburgerMenu: "openHamburgerMenu", openSearch: "openSearch", shiftContent: "shiftContent" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
481
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SixHeader, selector: "six-header", inputs: { clickableLogo: "clickableLogo", hideHamburgerMenu: "hideHamburgerMenu", openHamburgerMenu: "openHamburgerMenu", openSearch: "openSearch", shiftContent: "shiftContent" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
482
482
  };
483
483
  SixHeader = __decorate([
484
484
  ProxyCmp({
485
- inputs: ['clickableLogo', 'openHamburgerMenu', 'openSearch', 'shiftContent'],
485
+ inputs: ['clickableLogo', 'hideHamburgerMenu', 'openHamburgerMenu', 'openSearch', 'shiftContent'],
486
486
  methods: ['setSearchOpenState', 'getIsSearchOpen']
487
487
  })
488
488
  ], SixHeader);
@@ -493,7 +493,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
493
493
  changeDetection: ChangeDetectionStrategy.OnPush,
494
494
  template: '<ng-content></ng-content>',
495
495
  // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
496
- inputs: ['clickableLogo', 'openHamburgerMenu', 'openSearch', 'shiftContent'],
496
+ inputs: ['clickableLogo', 'hideHamburgerMenu', 'openHamburgerMenu', 'openSearch', 'shiftContent'],
497
497
  }]
498
498
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
499
499
  export let SixIcon = class SixIcon {
@@ -552,11 +552,11 @@ export let SixInput = class SixInput {
552
552
  proxyOutputs(this, this.el, ['six-input-change', 'six-input-clear', 'six-input-input', 'six-input-focus', 'six-input-blur']);
553
553
  }
554
554
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SixInput, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
555
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SixInput, selector: "six-input", inputs: { autocapitalize: "autocapitalize", autocomplete: "autocomplete", autocorrect: "autocorrect", autofocus: "autofocus", clearable: "clearable", disabled: "disabled", errorText: "errorText", errorTextCount: "errorTextCount", helpText: "helpText", inputmode: "inputmode", invalid: "invalid", label: "label", line: "line", max: "max", maxlength: "maxlength", min: "min", minlength: "minlength", name: "name", pattern: "pattern", pill: "pill", placeholder: "placeholder", readonly: "readonly", required: "required", size: "size", spellcheck: "spellcheck", step: "step", togglePassword: "togglePassword", type: "type", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
555
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SixInput, selector: "six-input", inputs: { autocapitalize: "autocapitalize", autocomplete: "autocomplete", autocorrect: "autocorrect", autofocus: "autofocus", clearable: "clearable", disabled: "disabled", dropdownSearch: "dropdownSearch", errorText: "errorText", errorTextCount: "errorTextCount", helpText: "helpText", inputmode: "inputmode", invalid: "invalid", label: "label", line: "line", max: "max", maxlength: "maxlength", min: "min", minlength: "minlength", name: "name", pattern: "pattern", pill: "pill", placeholder: "placeholder", readonly: "readonly", required: "required", size: "size", spellcheck: "spellcheck", step: "step", togglePassword: "togglePassword", type: "type", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
556
556
  };
557
557
  SixInput = __decorate([
558
558
  ProxyCmp({
559
- inputs: ['autocapitalize', 'autocomplete', 'autocorrect', 'autofocus', 'clearable', 'disabled', 'errorText', 'errorTextCount', 'helpText', 'inputmode', 'invalid', 'label', 'line', 'max', 'maxlength', 'min', 'minlength', 'name', 'pattern', 'pill', 'placeholder', 'readonly', 'required', 'size', 'spellcheck', 'step', 'togglePassword', 'type', 'value'],
559
+ inputs: ['autocapitalize', 'autocomplete', 'autocorrect', 'autofocus', 'clearable', 'disabled', 'dropdownSearch', 'errorText', 'errorTextCount', 'helpText', 'inputmode', 'invalid', 'label', 'line', 'max', 'maxlength', 'min', 'minlength', 'name', 'pattern', 'pill', 'placeholder', 'readonly', 'required', 'size', 'spellcheck', 'step', 'togglePassword', 'type', 'value'],
560
560
  methods: ['setFocus', 'removeFocus', 'select', 'setSelectionRange', 'setRangeText']
561
561
  })
562
562
  ], SixInput);
@@ -567,7 +567,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
567
567
  changeDetection: ChangeDetectionStrategy.OnPush,
568
568
  template: '<ng-content></ng-content>',
569
569
  // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
570
- inputs: ['autocapitalize', 'autocomplete', 'autocorrect', 'autofocus', 'clearable', 'disabled', 'errorText', 'errorTextCount', 'helpText', 'inputmode', 'invalid', 'label', 'line', 'max', 'maxlength', 'min', 'minlength', 'name', 'pattern', 'pill', 'placeholder', 'readonly', 'required', 'size', 'spellcheck', 'step', 'togglePassword', 'type', 'value'],
570
+ inputs: ['autocapitalize', 'autocomplete', 'autocorrect', 'autofocus', 'clearable', 'disabled', 'dropdownSearch', 'errorText', 'errorTextCount', 'helpText', 'inputmode', 'invalid', 'label', 'line', 'max', 'maxlength', 'min', 'minlength', 'name', 'pattern', 'pill', 'placeholder', 'readonly', 'required', 'size', 'spellcheck', 'step', 'togglePassword', 'type', 'value'],
571
571
  }]
572
572
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
573
573
  export let SixItemPicker = class SixItemPicker {
@@ -676,11 +676,11 @@ export let SixMenu = class SixMenu {
676
676
  proxyOutputs(this, this.el, ['six-menu-item-selected']);
677
677
  }
678
678
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SixMenu, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
679
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SixMenu, selector: "six-menu", inputs: { itemSize: "itemSize", items: "items", itemsShown: "itemsShown", removeBoxShadow: "removeBoxShadow", scrollingDebounce: "scrollingDebounce", virtualScroll: "virtualScroll" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
679
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SixMenu, selector: "six-menu", inputs: { disableKeyboardHandling: "disableKeyboardHandling", itemSize: "itemSize", items: "items", itemsShown: "itemsShown", removeBoxShadow: "removeBoxShadow", scrollingDebounce: "scrollingDebounce", virtualScroll: "virtualScroll" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
680
680
  };
681
681
  SixMenu = __decorate([
682
682
  ProxyCmp({
683
- inputs: ['itemSize', 'items', 'itemsShown', 'removeBoxShadow', 'scrollingDebounce', 'virtualScroll'],
683
+ inputs: ['disableKeyboardHandling', 'itemSize', 'items', 'itemsShown', 'removeBoxShadow', 'scrollingDebounce', 'virtualScroll'],
684
684
  methods: ['typeToSelect']
685
685
  })
686
686
  ], SixMenu);
@@ -691,7 +691,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
691
691
  changeDetection: ChangeDetectionStrategy.OnPush,
692
692
  template: '<ng-content></ng-content>',
693
693
  // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
694
- inputs: ['itemSize', 'items', 'itemsShown', 'removeBoxShadow', 'scrollingDebounce', 'virtualScroll'],
694
+ inputs: ['disableKeyboardHandling', 'itemSize', 'items', 'itemsShown', 'removeBoxShadow', 'scrollingDebounce', 'virtualScroll'],
695
695
  }]
696
696
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
697
697
  export let SixMenuDivider = class SixMenuDivider {
@@ -723,11 +723,11 @@ export let SixMenuItem = class SixMenuItem {
723
723
  this.el = r.nativeElement;
724
724
  }
725
725
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SixMenuItem, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
726
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SixMenuItem, selector: "six-menu-item", inputs: { checked: "checked", disabled: "disabled", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
726
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SixMenuItem, selector: "six-menu-item", inputs: { checkType: "checkType", checked: "checked", disabled: "disabled", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
727
727
  };
728
728
  SixMenuItem = __decorate([
729
729
  ProxyCmp({
730
- inputs: ['checked', 'disabled', 'value'],
730
+ inputs: ['checkType', 'checked', 'disabled', 'value'],
731
731
  methods: ['setFocus', 'removeFocus', 'getTextLabel']
732
732
  })
733
733
  ], SixMenuItem);
@@ -738,7 +738,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
738
738
  changeDetection: ChangeDetectionStrategy.OnPush,
739
739
  template: '<ng-content></ng-content>',
740
740
  // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
741
- inputs: ['checked', 'disabled', 'value'],
741
+ inputs: ['checkType', 'checked', 'disabled', 'value'],
742
742
  }]
743
743
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
744
744
  export let SixMenuLabel = class SixMenuLabel {
@@ -945,11 +945,11 @@ export let SixSelect = class SixSelect {
945
945
  proxyOutputs(this, this.el, ['six-select-change', 'six-select-focus', 'six-select-blur']);
946
946
  }
947
947
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SixSelect, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
948
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SixSelect, selector: "six-select", inputs: { asyncFilter: "asyncFilter", autocomplete: "autocomplete", clearable: "clearable", disabled: "disabled", errorText: "errorText", errorTextCount: "errorTextCount", filter: "filter", filterDebounce: "filterDebounce", filterPlaceholder: "filterPlaceholder", helpText: "helpText", hoist: "hoist", inputDebounce: "inputDebounce", invalid: "invalid", label: "label", line: "line", maxTagsVisible: "maxTagsVisible", multiple: "multiple", name: "name", options: "options", pill: "pill", placeholder: "placeholder", required: "required", size: "size", value: "value", virtualScroll: "virtualScroll" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
948
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SixSelect, selector: "six-select", inputs: { asyncFilter: "asyncFilter", autocomplete: "autocomplete", clearable: "clearable", disabled: "disabled", errorText: "errorText", errorTextCount: "errorTextCount", filter: "filter", filterDebounce: "filterDebounce", filterPlaceholder: "filterPlaceholder", helpText: "helpText", hoist: "hoist", inputDebounce: "inputDebounce", invalid: "invalid", label: "label", line: "line", maxTagsVisible: "maxTagsVisible", multiple: "multiple", name: "name", options: "options", pill: "pill", placeholder: "placeholder", required: "required", selectAllButton: "selectAllButton", selectAllText: "selectAllText", size: "size", value: "value", virtualScroll: "virtualScroll" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
949
949
  };
950
950
  SixSelect = __decorate([
951
951
  ProxyCmp({
952
- inputs: ['asyncFilter', 'autocomplete', 'clearable', 'disabled', 'errorText', 'errorTextCount', 'filter', 'filterDebounce', 'filterPlaceholder', 'helpText', 'hoist', 'inputDebounce', 'invalid', 'label', 'line', 'maxTagsVisible', 'multiple', 'name', 'options', 'pill', 'placeholder', 'required', 'size', 'value', 'virtualScroll'],
952
+ inputs: ['asyncFilter', 'autocomplete', 'clearable', 'disabled', 'errorText', 'errorTextCount', 'filter', 'filterDebounce', 'filterPlaceholder', 'helpText', 'hoist', 'inputDebounce', 'invalid', 'label', 'line', 'maxTagsVisible', 'multiple', 'name', 'options', 'pill', 'placeholder', 'required', 'selectAllButton', 'selectAllText', 'size', 'value', 'virtualScroll'],
953
953
  methods: ['setFocus']
954
954
  })
955
955
  ], SixSelect);
@@ -960,7 +960,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
960
960
  changeDetection: ChangeDetectionStrategy.OnPush,
961
961
  template: '<ng-content></ng-content>',
962
962
  // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
963
- inputs: ['asyncFilter', 'autocomplete', 'clearable', 'disabled', 'errorText', 'errorTextCount', 'filter', 'filterDebounce', 'filterPlaceholder', 'helpText', 'hoist', 'inputDebounce', 'invalid', 'label', 'line', 'maxTagsVisible', 'multiple', 'name', 'options', 'pill', 'placeholder', 'required', 'size', 'value', 'virtualScroll'],
963
+ inputs: ['asyncFilter', 'autocomplete', 'clearable', 'disabled', 'errorText', 'errorTextCount', 'filter', 'filterDebounce', 'filterPlaceholder', 'helpText', 'hoist', 'inputDebounce', 'invalid', 'label', 'line', 'maxTagsVisible', 'multiple', 'name', 'options', 'pill', 'placeholder', 'required', 'selectAllButton', 'selectAllText', 'size', 'value', 'virtualScroll'],
964
964
  }]
965
965
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
966
966
  export let SixSidebar = class SixSidebar {
@@ -1316,4 +1316,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
1316
1316
  inputs: ['content', 'disabled', 'distance', 'open', 'placement', 'skidding', 'trigger'],
1317
1317
  }]
1318
1318
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1319
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvc3RlbmNpbC1nZW5lcmF0ZWQvY29tcG9uZW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsb0JBQW9CO0FBQ3BCLDhDQUE4QztBQUM5QyxPQUFPLEVBQUUsdUJBQXVCLEVBQXFCLFNBQVMsRUFBb0MsTUFBTSxlQUFlLENBQUM7QUFFeEgsT0FBTyxFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7QUFlaEUsV0FBTSxhQUFhLEdBQW5CLE1BQU0sYUFBYTtJQUV4QixZQUFZLENBQW9CLEVBQUUsQ0FBYSxFQUFZLENBQVM7UUFBVCxNQUFDLEdBQUQsQ0FBQyxDQUFRO1FBQ2xFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNYLElBQUksQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLGFBQWEsQ0FBQztJQUM1QixDQUFDOytHQUxVLGFBQWE7bUdBQWIsYUFBYSxrRkFKZCwyQkFBMkI7O0FBSTFCLGFBQWE7SUFWekIsUUFBUSxDQUFDO1FBQ1IsTUFBTSxFQUFFLENBQUMsT0FBTyxDQUFDO0tBQ2xCLENBQUM7R0FRVyxhQUFhLENBTXpCOzRGQU5ZLGFBQWE7a0JBUHpCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGdCQUFnQjtvQkFDMUIsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLFFBQVEsRUFBRSwyQkFBMkI7b0JBQ3JDLHVFQUF1RTtvQkFDdkUsTUFBTSxFQUFFLENBQUMsT0FBTyxDQUFDO2lCQUNsQjs7QUF3Qk0sV0FBTSxRQUFRLEdBQWQsTUFBTSxRQUFRO0lBRW5CLFlBQVksQ0FBb0IsRUFBRSxDQUFhLEVBQVksQ0FBUztRQUFULE1BQUMsR0FBRCxDQUFDLENBQVE7UUFDbEUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ1gsSUFBSSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsYUFBYSxDQUFDO1FBQzFCLFlBQVksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDLGdCQUFnQixFQUFFLHNCQUFzQixFQUFFLGdCQUFnQixFQUFFLHNCQUFzQixDQUFDLENBQUMsQ0FBQztJQUNwSCxDQUFDOytHQU5VLFFBQVE7bUdBQVIsUUFBUSxxSUFKVCwyQkFBMkI7O0FBSTFCLFFBQVE7SUFYcEIsUUFBUSxDQUFDO1FBQ1IsTUFBTSxFQUFFLENBQUMsVUFBVSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDO1FBQ2hELE9BQU8sRUFBRSxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsT0FBTyxDQUFDO0tBQ25DLENBQUM7R0FRVyxRQUFRLENBT3BCOzRGQVBZLFFBQVE7a0JBUHBCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLFdBQVc7b0JBQ3JCLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxRQUFRLEVBQUUsMkJBQTJCO29CQUNyQyx1RUFBdUU7b0JBQ3ZFLE1BQU0sRUFBRSxDQUFDLFVBQVUsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sQ0FBQztpQkFDakQ7O0FBMkNNLFdBQU0sU0FBUyxHQUFmLE1BQU0sU0FBUztJQUVwQixZQUFZLENBQW9CLEVBQUUsQ0FBYSxFQUFZLENBQVM7UUFBVCxNQUFDLEdBQUQsQ0FBQyxDQUFRO1FBQ2xFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNYLElBQUksQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLGFBQWEsQ0FBQztJQUM1QixDQUFDOytHQUxVLFNBQVM7bUdBQVQsU0FBUyxnSUFKViwyQkFBMkI7O0FBSTFCLFNBQVM7SUFWckIsUUFBUSxDQUFDO1FBQ1IsTUFBTSxFQUFFLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsT0FBTyxDQUFDO0tBQzlDLENBQUM7R0FRVyxTQUFTLENBTXJCOzRGQU5ZLFNBQVM7a0JBUHJCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLFlBQVk7b0JBQ3RCLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxRQUFRLEVBQUUsMkJBQTJCO29CQUNyQyx1RUFBdUU7b0JBQ3ZFLE1BQU0sRUFBRSxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE9BQU8sQ0FBQztpQkFDOUM7O0FBdUJNLFdBQU0sUUFBUSxHQUFkLE1BQU0sUUFBUTtJQUVuQixZQUFZLENBQW9CLEVBQUUsQ0FBYSxFQUFZLENBQVM7UUFBVCxNQUFDLEdBQUQsQ0FBQyxDQUFRO1FBQ2xFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNYLElBQUksQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLGFBQWEsQ0FBQztJQUM1QixDQUFDOytHQUxVLFFBQVE7bUdBQVIsUUFBUSx5R0FKVCwyQkFBMkI7O0FBSTFCLFFBQVE7SUFWcEIsUUFBUSxDQUFDO1FBQ1IsTUFBTSxFQUFFLENBQUMsTUFBTSxFQUFFLE9BQU8sRUFBRSxNQUFNLENBQUM7S0FDbEMsQ0FBQztHQVFXLFFBQVEsQ0FNcEI7NEZBTlksUUFBUTtrQkFQcEIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsV0FBVztvQkFDckIsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLFFBQVEsRUFBRSwyQkFBMkI7b0JBQ3JDLHVFQUF1RTtvQkFDdkUsTUFBTSxFQUFFLENBQUMsTUFBTSxFQUFFLE9BQU8sRUFBRSxNQUFNLENBQUM7aUJBQ2xDOztBQXdCTSxXQUFNLFNBQVMsR0FBZixNQUFNLFNBQVM7SUFFcEIsWUFBWSxDQUFvQixFQUFFLENBQWEsRUFBWSxDQUFTO1FBQVQsTUFBQyxHQUFELENBQUMsQ0FBUTtRQUNsRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDWCxJQUFJLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxhQUFhLENBQUM7UUFDMUIsWUFBWSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUMsaUJBQWlCLEVBQUUsa0JBQWtCLENBQUMsQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7K0dBTlUsU0FBUzttR0FBVCxTQUFTLDBTQUpWLDJCQUEyQjs7QUFJMUIsU0FBUztJQVhyQixRQUFRLENBQUM7UUFDUixNQUFNLEVBQUUsQ0FBQyxPQUFPLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsT0FBTyxDQUFDO1FBQzVJLE9BQU8sRUFBRSxDQUFDLFVBQVUsRUFBRSxhQUFhLENBQUM7S0FDckMsQ0FBQztHQVFXLFNBQVMsQ0FPckI7NEZBUFksU0FBUztrQkFQckIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsWUFBWTtvQkFDdEIsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLFFBQVEsRUFBRSwyQkFBMkI7b0JBQ3JDLHVFQUF1RTtvQkFDdkUsTUFBTSxFQUFFLENBQUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE9BQU8sQ0FBQztpQkFDN0k7O0FBa0NNLFdBQU0sT0FBTyxHQUFiLE1BQU0sT0FBTztJQUVsQixZQUFZLENBQW9CLEVBQUUsQ0FBYSxFQUFZLENBQVM7UUFBVCxNQUFDLEdBQUQsQ0FBQyxDQUFRO1FBQ2xFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNYLElBQUksQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLGFBQWEsQ0FBQztJQUM1QixDQUFDOytHQUxVLE9BQU87bUdBQVAsT0FBTyxnREFKUiwyQkFBMkI7O0FBSTFCLE9BQU87SUFUbkIsUUFBUSxDQUFDLEVBQ1QsQ0FBQztHQVFXLE9BQU8sQ0FNbkI7NEZBTlksT0FBTztrQkFQbkIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsVUFBVTtvQkFDcEIsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLFFBQVEsRUFBRSwyQkFBMkI7b0JBQ3JDLHVFQUF1RTtvQkFDdkUsTUFBTSxFQUFFLEVBQUU7aUJBQ1g7O0FBd0JNLFdBQU0sV0FBVyxHQUFqQixNQUFNLFdBQVc7SUFFdEIsWUFBWSxDQUFvQixFQUFFLENBQWEsRUFBWSxDQUFTO1FBQVQsTUFBQyxHQUFELENBQUMsQ0FBUTtRQUNsRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDWCxJQUFJLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxhQUFhLENBQUM7UUFDMUIsWUFBWSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUMsbUJBQW1CLEVBQUUscUJBQXFCLEVBQUUsb0JBQW9CLENBQUMsQ0FBQyxDQUFDO0lBQ2xHLENBQUM7K0dBTlUsV0FBVzttR0FBWCxXQUFXLDRSQUpaLDJCQUEyQjs7QUFJMUIsV0FBVztJQVh2QixRQUFRLENBQUM7UUFDUixNQUFNLEVBQUUsQ0FBQyxTQUFTLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxnQkFBZ0IsRUFBRSxlQUFlLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE9BQU8sQ0FBQztRQUNoSSxPQUFPLEVBQUUsQ0FBQyxVQUFVLEVBQUUsYUFBYSxDQUFDO0tBQ3JDLENBQUM7R0FRVyxXQUFXLENBT3ZCOzRGQVBZLFdBQVc7a0JBUHZCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGNBQWM7b0JBQ3hCLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxRQUFRLEVBQUUsMkJBQTJCO29CQUNyQyx1RUFBdUU7b0JBQ3ZFLE1BQU0sRUFBRSxDQUFDLFNBQVMsRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUFFLGVBQWUsRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsT0FBTyxDQUFDO2lCQUNqSTs7QUF3Q00sV0FBTSxhQUFhLEdBQW5CLE1BQU0sYUFBYTtJQUV4QixZQUFZLENBQW9CLEVBQUUsQ0FBYSxFQUFZLENBQVM7UUFBVCxNQUFDLEdBQUQsQ0FBQyxDQUFRO1FBQ2xFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNYLElBQUksQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLGFBQWEsQ0FBQztRQUMxQixZQUFZLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQyx1QkFBdUIsRUFBRSxzQkFBc0IsRUFBRSxxQkFBcUIsQ0FBQyxDQUFDLENBQUM7SUFDeEcsQ0FBQzsrR0FOVSxhQUFhO21HQUFiLGFBQWEsa3BCQUpkLDJCQUEyQjs7QUFJMUIsYUFBYTtJQVh6QixRQUFRLENBQUM7UUFDUixNQUFNLEVBQUUsQ0FBQyxjQUFjLEVBQUUsV0FBVyxFQUFFLGVBQWUsRUFBRSxtQkFBbUIsRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLGFBQWEsRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxhQUFhLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxPQUFPLENBQUM7UUFDM1UsT0FBTyxFQUFFLENBQUMsVUFBVSxFQUFFLFFBQVEsQ0FBQztLQUNoQyxDQUFDO0dBUVcsYUFBYSxDQU96Qjs0RkFQWSxhQUFhO2tCQVB6QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxnQkFBZ0I7b0JBQzFCLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxRQUFRLEVBQUUsMkJBQTJCO29CQUNyQyx1RUFBdUU7b0JBQ3ZFLE1BQU0sRUFBRSxDQUFDLGNBQWMsRUFBRSxXQUFXLEVBQUUsZUFBZSxFQUFFLG1CQUFtQixFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsYUFBYSxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLGFBQWEsRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE9BQU8sQ0FBQztpQkFDNVU7O0FBeUNNLFdBQU0sVUFBVSxHQUFoQixNQUFNLFVBQVU7SUFFckIsWUFBWSxDQUFvQixFQUFFLENBQWEsRUFBWSxDQUFTO1FBQVQsTUFBQyxHQUFELENBQUMsQ0FBUTtRQUNsRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDWCxJQUFJLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxhQUFhLENBQUM7UUFDMUIsWUFBWSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUMsa0JBQWtCLEVBQUUsd0JBQXdCLEVBQUUsa0JBQWtCLEVBQUUsd0JBQXdCLENBQUMsQ0FBQyxDQUFDO0lBQzVILENBQUM7K0dBTlUsVUFBVTttR0FBVixVQUFVLHVRQUpYLDJCQUEyQjs7QUFJMUIsVUFBVTtJQVh0QixRQUFRLENBQUM7UUFDUixNQUFNLEVBQUUsQ0FBQyxVQUFVLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQztRQUNwSCxPQUFPLEVBQUUsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDO0tBQzFCLENBQUM7R0FRVyxVQUFVLENBT3RCOzRGQVBZLFVBQVU7a0JBUHRCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGFBQWE7b0JBQ3ZCLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxRQUFRLEVBQUUsMkJBQTJCO29CQUNyQyx1RUFBdUU7b0JBQ3ZFLE1BQU0sRUFBRSxDQUFDLFVBQVUsRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsYUFBYSxFQUFFLGlCQUFpQixDQUFDO2lCQUNySDs7QUE0Q00sV0FBTSxTQUFTLEdBQWYsTUFBTSxTQUFTO0lBRXBCLFlBQVksQ0FBb0IsRUFBRSxDQUFhLEVBQVksQ0FBUztRQUFULE1BQUMsR0FBRCxDQUFDLENBQVE7UUFDbEUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ1gsSUFBSSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsYUFBYSxDQUFDO1FBQzFCLFlBQVksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDLGlCQUFpQixFQUFFLHVCQUF1QixFQUFFLGlCQUFpQixFQUFFLHVCQUF1QixFQUFFLDBCQUEwQixFQUFFLDRCQUE0QixDQUFDLENBQUMsQ0FBQztJQUNsTCxDQUFDOytHQU5VLFNBQVM7bUdBQVQsU0FBUyxrSEFKViwyQkFBMkI7O0FBSTFCLFNBQVM7SUFYckIsUUFBUSxDQUFDO1FBQ1IsTUFBTSxFQUFFLENBQUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLENBQUM7UUFDckMsT0FBTyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQztLQUMxQixDQUFDO0dBUVcsU0FBUyxDQU9yQjs0RkFQWSxTQUFTO2tCQVByQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxZQUFZO29CQUN0QixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsUUFBUSxFQUFFLDJCQUEyQjtvQkFDckMsdUVBQXVFO29CQUN2RSxNQUFNLEVBQUUsQ0FBQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sQ0FBQztpQkFDdEM7O0FBcURNLFdBQU0sU0FBUyxHQUFmLE1BQU0sU0FBUztJQUVwQixZQUFZLENBQW9CLEVBQUUsQ0FBYSxFQUFZLENBQVM7UUFBVCxNQUFDLEdBQUQsQ0FBQyxDQUFRO1FBQ2xFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNYLElBQUksQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLGFBQWEsQ0FBQztRQUMxQixZQUFZLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQyxpQkFBaUIsRUFBRSx1QkFBdUIsRUFBRSxpQkFBaUIsRUFBRSx1QkFBdUIsRUFBRSwwQkFBMEIsRUFBRSw0QkFBNEIsQ0FBQyxDQUFDLENBQUM7SUFDbEwsQ0FBQzsrR0FOVSxTQUFTO21HQUFULFNBQVMsa0tBSlYsMkJBQTJCOztBQUkxQixTQUFTO0lBWHJCLFFBQVEsQ0FBQztRQUNSLE1BQU0sRUFBRSxDQUFDLFdBQVcsRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxXQUFXLENBQUM7UUFDL0QsT0FBTyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQztLQUMxQixDQUFDO0dBUVcsU0FBUyxDQU9yQjs0RkFQWSxTQUFTO2tCQVByQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxZQUFZO29CQUN0QixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsUUFBUSxFQUFFLDJCQUEyQjtvQkFDckMsdUVBQXVFO29CQUN2RSxNQUFNLEVBQUUsQ0FBQyxXQUFXLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsV0FBVyxDQUFDO2lCQUNoRTs7QUFxRE0sV0FBTSxXQUFXLEdBQWpCLE1BQU0sV0FBVztJQUV0QixZQUFZLENBQW9CLEVBQUUsQ0FBYSxFQUFZLENBQVM7UUFBVCxNQUFDLEdBQUQsQ0FBQyxDQUFRO1FBQ2xFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNYLElBQUksQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLGFBQWEsQ0FBQztRQUMxQixZQUFZLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQyxtQkFBbUIsRUFBRSx5QkFBeUIsRUFBRSxtQkFBbUIsRUFBRSx5QkFBeUIsRUFBRSxnQ0FBZ0MsRUFBRSx3QkFBd0IsRUFBRSxxQkFBcUIsQ0FBQyxDQUFDLENBQUM7SUFDbk4sQ0FBQzsrR0FOVSxXQUFXO21HQUFYLFdBQVcsb2ZBSlosMkJBQTJCOztBQUkxQixXQUFXO0lBWHZCLFFBQVEsQ0FBQztRQUNSLE1BQU0sRUFBRSxDQUFDLGFBQWEsRUFBRSxpQkFBaUIsRUFBRSxlQUFlLEVBQUUsbUJBQW1CLEVBQUUsNEJBQTRCLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxnQkFBZ0IsRUFBRSxtQkFBbUIsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLGVBQWUsQ0FBQztRQUNqUCxPQUFPLEVBQUUsQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLFlBQVksQ0FBQztLQUN4QyxDQUFDO0dBUVcsV0FBVyxDQU92Qjs0RkFQWSxXQUFXO2tCQVB2QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxjQUFjO29CQUN4QixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsUUFBUSxFQUFFLDJCQUEyQjtvQkFDckMsdUVBQXVFO29CQUN2RSxNQUFNLEVBQUUsQ0FBQyxhQUFhLEVBQUUsaUJBQWlCLEVBQUUsZUFBZSxFQUFFLG1CQUFtQixFQUFFLDRCQUE0QixFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsZ0JBQWdCLEVBQUUsbUJBQW1CLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxlQUFlLENBQUM7aUJBQ2xQOztBQXlETSxXQUFNLFFBQVEsR0FBZCxNQUFNLFFBQVE7SUFFbkIsWUFBWSxDQUFvQixFQUFFLENBQWEsRUFBWSxDQUFTO1FBQVQsTUFBQyxHQUFELENBQUMsQ0FBUTtRQUNsRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDWCxJQUFJLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxhQUFhLENBQUM7SUFDNUIsQ0FBQzsrR0FMVSxRQUFRO21HQUFSLFFBQVEsaURBSlQsMkJBQTJCOztBQUkxQixRQUFRO0lBVHBCLFFBQVEsQ0FBQyxFQUNULENBQUM7R0FRVyxRQUFRLENBTXBCOzRGQU5ZLFFBQVE7a0JBUHBCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLFdBQVc7b0JBQ3JCLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxRQUFRLEVBQUUsMkJBQTJCO29CQUNyQyx1RUFBdUU7b0JBQ3ZFLE1BQU0sRUFBRSxFQUFFO2lCQUNYOztBQXVCTSxXQUFNLFlBQVksR0FBbEIsTUFBTSxZQUFZO0lBRXZCLFlBQVksQ0FBb0IsRUFBRSxDQUFhLEVBQVksQ0FBUztRQUFULE1BQUMsR0FBRCxDQUFDLENBQVE7UUFDbEUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ1gsSUFBSSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsYUFBYSxDQUFDO0lBQzVCLENBQUM7K0dBTFUsWUFBWTttR0FBWixZQUFZLDhNQUpiLDJCQUEyQjs7QUFJMUIsWUFBWTtJQVZ4QixRQUFRLENBQUM7UUFDUixNQUFNLEVBQUUsQ0FBQyxtQkFBbUIsRUFBRSxZQUFZLEVBQUUsYUFBYSxFQUFFLFdBQVcsRUFBRSxVQUFVLENBQUM7S0FDcEYsQ0FBQztHQVFXLFlBQVksQ0FNeEI7NEZBTlksWUFBWTtrQkFQeEIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsZ0JBQWdCO29CQUMxQixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsUUFBUSxFQUFFLDJCQUEyQjtvQkFDckMsdUVBQXVFO29CQUN2RSxNQUFNLEVBQUUsQ0FBQyxtQkFBbUIsRUFBRSxZQUFZLEVBQUUsYUFBYSxFQUFFLFdBQVcsRUFBRSxVQUFVLENBQUM7aUJBQ3BGOztBQXNCTSxXQUFNLFdBQVcsR0FBakIsTUFBTSxXQUFXO0lBRXRCLFlBQVksQ0FBb0IsRUFBRSxDQUFhLEVBQVksQ0FBUztRQUFULE1BQUMsR0FBRCxDQUFDLENBQVE7UUFDbEUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ1gsSUFBSSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsYUFBYSxDQUFDO0lBQzVCLENBQUM7K0dBTFUsV0FBVzttR0FBWCxXQUFXLHFEQUpaLDJCQUEyQjs7QUFJMUIsV0FBVztJQVR2QixRQUFRLENBQUMsRUFDVCxDQUFDO0dBUVcsV0FBVyxDQU12Qjs0RkFOWSxXQUFXO2tCQVB2QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxlQUFlO29CQUN6QixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsUUFBUSxFQUFFLDJCQUEyQjtvQkFDckMsdUVBQXVFO29CQUN2RSxNQUFNLEVBQUUsRUFBRTtpQkFDWDs7QUF1Qk0sV0FBTSxlQUFlLEdBQXJCLE1BQU0sZUFBZTtJQUUxQixZQUFZLENBQW9CLEVBQUUsQ0FBYSxFQUFZLENBQVM7UUFBVCxNQUFDLEdBQUQsQ0FBQyxDQUFRO1FBQ2xFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNYLElBQUksQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLGFBQWEsQ0FBQztRQUMxQixZQUFZLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQyw2QkFBNkIsRUFBRSwyQkFBMkIsQ0FBQyxDQUFDLENBQUM7SUFDNUYsQ0FBQzsrR0FOVSxlQUFlO21HQUFmLGVBQWUsMExBSmhCLDJCQUEyQjs7QUFJMUIsZUFBZTtJQVYzQixRQUFRLENBQUM7UUFDUixNQUFNLEVBQUUsQ0FBQyxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLE1BQU0sQ0FBQztLQUN6RSxDQUFDO0dBUVcsZUFBZSxDQU8zQjs0RkFQWSxlQUFlO2tCQVAzQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxvQkFBb0I7b0JBQzlCLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxRQUFRLEVBQUUsMkJBQTJCO29CQUNyQyx1RUFBdUU7b0JBQ3ZFLE1BQU0sRUFBRSxDQUFDLE1BQU0sRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsTUFBTSxDQUFDO2lCQUN6RTs7QUFvQ00sV0FBTSxhQUFhLEdBQW5CLE1BQU0sYUFBYTtJQUV4QixZQUFZLENBQW9CLEVBQUUsQ0FBYSxFQUFZLENBQVM7UUFBVCxNQUFDLEdBQUQsQ0FBQyxDQUFRO1FBQ2xFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNYLElBQUksQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLGFBQWEsQ0FBQztRQUMxQixZQUFZLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQyx5QkFBeUIsRUFBRSx5QkFBeUIsQ0FBQyxDQUFDLENBQUM7SUFDdEYsQ0FBQzsrR0FOVSxhQUFhO21HQUFiLGFBQWEsaU1BSmQsMkJBQTJCOztBQUkxQixhQUFhO0lBVnpCLFFBQVEsQ0FBQztRQUNSLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsVUFBVSxDQUFDO0tBQzlFLENBQUM7R0FRVyxhQUFhLENBT3pCOzRGQVBZLGFBQWE7a0JBUHpCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGlCQUFpQjtvQkFDM0IsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLFFBQVEsRUFBRSwyQkFBMkI7b0JBQ3JDLHVFQUF1RTtvQkFDdkUsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxVQUFVLENBQUM7aUJBQzlFOztBQW1DTSxXQUFNLFNBQVMsR0FBZixNQUFNLFNBQVM7SUFFcEIsWUFBWSxDQUFvQixFQUFFLENBQWEsRUFBWSxDQUFTO1FBQVQsTUFBQyxHQUFELENBQUMsQ0FBUTtRQUNsRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDWCxJQUFJLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxhQUFhLENBQUM7SUFDNUIsQ0FBQzsrR0FMVSxTQUFTO21HQUFULFNBQVMsa0RBSlYsMkJBQTJCOztBQUkxQixTQUFTO0lBVHJCLFFBQVEsQ0FBQyxFQUNULENBQUM7R0FRVyxTQUFTLENBTXJCOzRGQU5ZLFNBQVM7a0JBUHJCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLFlBQVk7b0JBQ3RCLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxRQUFRLEVBQUUsMkJBQTJCO29CQUNyQyx1RUFBdUU7b0JBQ3ZFLE1BQU0sRUFBRSxFQUFFO2lCQUNYOztBQXVCTSxXQUFNLGFBQWEsR0FBbkIsTUFBTSxhQUFhO0lBRXhCLFlBQVksQ0FBb0IsRUFBRSxDQUFhLEVBQVksQ0FBUztRQUFULE1BQUMsR0FBRCxDQUFDLENBQVE7UUFDbEUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ1gsSUFBSSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsYUFBYSxDQUFDO0lBQzVCLENBQUM7K0dBTFUsYUFBYTttR0FBYixhQUFhLG1LQUpkLDJCQUEyQjs7QUFJMUIsYUFBYTtJQVZ6QixRQUFRLENBQUM7UUFDUixNQUFNLEVBQUUsQ0FBQyxVQUFVLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxDQUFDO0tBQzlELENBQUM7R0FRVyxhQUFhLENBTXpCOzRGQU5ZLGFBQWE7a0JBUHpCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGlCQUFpQjtvQkFDM0IsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLFFBQVEsRUFBRSwyQkFBMkI7b0JBQ3JDLHVFQUF1RTtvQkFDdkUsTUFBTSxFQUFFLENBQUMsVUFBVSxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sQ0FBQztpQkFDOUQ7O0FBd0JNLFdBQU0sU0FBUyxHQUFmLE1BQU0sU0FBUztJQUVwQixZQUFZLENBQW9CLEVBQUUsQ0FBYSxFQUFZLENBQVM7UUFBVCxNQUFDLEdBQUQsQ0FBQyxDQUFRO1FBQ2xFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNYLElBQUksQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLGFBQWEsQ0FBQztRQUMxQixZQUFZLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQyw2QkFBNkIsRUFBRSxnQ0FBZ0MsRUFBRSwyQkFBMkIsRUFBRSxtQ0FBbUMsRUFBRSx5QkFBeUIsRUFBRSxnQ0FBZ0MsQ0FBQyxDQUFDLENBQUM7SUFDaE8sQ0FBQzsrR0FOVSxTQUFTO21HQUFULFNBQVMsOExBSlYsMkJBQTJCOztBQUkxQixTQUFTO0lBWHJCLFFBQVEsQ0FBQztRQUNSLE1BQU0sRUFBRSxDQUFDLGVBQWUsRUFBRSxtQkFBbUIsRUFBRSxZQUFZLEVBQUUsY0FBYyxDQUFDO1FBQzVFLE9BQU8sRUFBRSxDQUFDLG9CQUFvQixFQUFFLGlCQUFpQixDQUFDO0tBQ25ELENBQUM7R0FRVyxTQUFTLENBT3JCOzRGQVBZLFNBQVM7a0JBUHJCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLFlBQVk7b0JBQ3RCLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxRQUFRLEVBQUUsMkJBQTJCO29CQUNyQyx1RUFBdUU7b0JBQ3ZFLE1BQU0sRUFBRSxDQUFDLGVBQWUsRUFBRSxtQkFBbUIsRUFBRSxZQUFZLEVBQUUsY0FBYyxDQUFDO2lCQUM3RTs7QUFzRE0sV0FBTSxPQUFPLEdBQWIsTUFBTSxPQUFPO0lBRWxCLFlBQVksQ0FBb0IsRUFBRSxDQUFhLEVBQVksQ0FBUztRQUFULE1BQUMsR0FBRCxDQUFDLENBQVE7UUFDbEUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ1gsSUFBSSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsYUFBYSxDQUFDO0lBQzVCLENBQUM7K0dBTFUsT0FBTzttR0FBUCxPQUFPLDRGQUpSLDJCQUEyQjs7QUFJMUIsT0FBTztJQVZuQixRQUFRLENBQUM7UUFDUixNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDO0tBQzNCLENBQUM7R0FRVyxPQUFPLENBTW5COzRGQU5ZLE9BQU87a0JBUG5CLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLFVBQVU7b0JBQ3BCLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxRQUFRLEVBQUUsMkJBQTJCO29CQUNyQyx1RUFBdUU7b0JBQ3ZFLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUM7aUJBQzNCOztBQXVCTSxXQUFNLGFBQWEsR0FBbkIsTUFBTSxhQUFhO0lBRXhCLFlBQVksQ0FBb0IsRUFBRSxDQUFhLEVBQVksQ0FBUztRQUFULE1BQUMsR0FBRCxDQUFDLENBQVE7UUFDbEUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ1gsSUFBSSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsYUFBYSxDQUFDO0lBQzVCLENBQUM7K0dBTFUsYUFBYTttR0FBYixhQUFhLG1KQUpkLDJCQUEyQjs7QUFJMUIsYUFBYTtJQVZ6QixRQUFRLENBQUM7UUFDUixNQUFNLEVBQUUsQ0FBQyxVQUFVLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDO0tBQ3RELENBQUM7R0FRVyxhQUFhLENBTXpCOzRGQU5ZLGFBQWE7a0JBUHpCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGlCQUFpQjtvQkFDM0IsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLFFBQVEsRUFBRSwyQkFBMkI7b0JBQ3JDLHVFQUF1RTtvQkFDdkUsTUFBTSxFQUFFLENBQUMsVUFBVSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sQ0FBQztpQkFDdEQ7O0FBd0JNLFdBQU0sUUFBUSxHQUFkLE1BQU0sUUFBUTtJQUVuQixZQUFZLENBQW9CLEVBQUUsQ0FBYSxFQUFZLENBQVM7UUFBVCxNQUFDLEdBQUQsQ0FBQyxDQUFRO1FBQ2xFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNYLElBQUksQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLGFBQWEsQ0FBQztRQUMxQixZQUFZLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQyxrQkFBa0IsRUFBRSxpQkFBaUIsRUFBRSxpQkFBaUIsRUFBRSxpQkFBaUIsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDLENBQUM7SUFDL0gsQ0FBQzsrR0FOVSxRQUFRO21HQUFSLFFBQVEsK3FCQUpULDJCQUEyQjs7QUFJMUIsUUFBUTtJQVhwQixRQUFRLENBQUM7UUFDUixNQUFNLEVBQUUsQ0FBQyxnQkFBZ0IsRUFBRSxjQUFjLEVBQUUsYUFBYSxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxnQkFBZ0IsRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxhQUFhLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLEVBQUUsT0FBTyxDQUFDO1FBQzlWLE9BQU8sRUFBRSxDQUFDLFVBQVUsRUFBRSxhQUFhLEVBQUUsUUFBUSxFQUFFLG1CQUFtQixFQUFFLGNBQWMsQ0FBQztLQUNwRixDQUFDO0dBUVcsUUFBUSxDQU9wQjs0RkFQWSxRQUFRO2tCQVBwQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxXQUFXO29CQUNyQixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsUUFBUSxFQUFFLDJCQUEyQjtvQkFDckMsdUVBQXVFO29CQUN2RSxNQUFNLEVBQUUsQ0FBQyxnQkFBZ0IsRUFBRSxjQUFjLEVBQUUsYUFBYSxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxnQkFBZ0IsRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxhQUFhLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLEVBQUUsT0FBTyxDQUFDO2lCQUMvVjs7QUErQ00sV0FBTSxhQUFhLEdBQW5CLE1BQU0sYUFBYTtJQUV4QixZQUFZLENBQW9CLEVBQUUsQ0FBYSxFQUFZLENBQVM7UUFBVCxNQUFDLEdBQUQsQ0FBQyxDQUFRO1FBQ2xFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNYLElBQUksQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLGFBQWEsQ0FBQztRQUMxQixZQUFZLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQyx3QkFBd0IsRUFBRSxrQ0FBa0MsQ0FBQyxDQUFDLENBQUM7SUFDOUYsQ0FBQzsrR0FOVSxhQUFhO21HQUFiLGFBQWEsbVdBSmQsMkJBQTJCOztBQUkxQixhQUFhO0lBVnpCLFFBQVEsQ0FBQztRQUNSLE1BQU0sRUFBRSxDQUFDLFVBQVUsRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLGFBQWEsRUFBRSxrQkFBa0IsRUFBRSxlQUFlLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE9BQU8sQ0FBQztLQUN2SyxDQUFDO0dBUVcsYUFBYSxDQU96Qjs0RkFQWSxhQUFhO2tCQVB6QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxpQkFBaUI7b0JBQzNCLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxRQUFRLEVBQUUsMkJBQTJCO29CQUNyQyx1RUFBdUU7b0JBQ3ZFLE1BQU0sRUFBRSxDQUFDLFVBQVUsRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLGFBQWEsRUFBRSxrQkFBa0IsRUFBRSxlQUFlLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE9BQU8sQ0FBQztpQkFDdks7O0FBbUNNLFdBQU0sbUJBQW1CLEdBQXpCLE1BQU0sbUJBQW1CO0lBRTlCLFlBQVksQ0FBb0IsRUFBRSxDQUFhLEVBQVksQ0FBUztRQUFULE1BQUMsR0FBRCxDQUFDLENBQVE7UUFDbEUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ1gsSUFBSSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsYUFBYSxDQUFDO1FBQzFCLFlBQVksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDLDhCQUE4QixDQUFDLENBQUMsQ0FBQztJQUNoRSxDQUFDOytHQU5VLG1CQUFtQjttR0FBbkIsbUJBQW1CLHVIQUpwQiwyQkFBMkI7O0FBSTFCLG1CQUFtQjtJQVYvQixRQUFRLENBQUM7UUFDUixNQUFNLEVBQUUsQ0FBQyxXQUFXLEVBQUUsVUFBVSxDQUFDO0tBQ2xDLENBQUM7R0FRVyxtQkFBbUIsQ0FPL0I7NEZBUFksbUJBQW1CO2tCQVAvQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSx1QkFBdUI7b0JBQ2pDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxRQUFRLEVBQUUsMkJBQTJCO29CQUNyQyx1RUFBdUU7b0JBQ3ZFLE1BQU0sRUFBRSxDQUFDLFdBQVcsRUFBRSxVQUFVLENBQUM7aUJBQ2xDOztBQStCTSxXQUFNLGFBQWEsR0FBbkIsTUFBTSxhQUFhO0lBRXhCLFlBQVksQ0FBb0IsRUFBRSxDQUFhLEVBQVksQ0FBUztRQUFULE1BQUMsR0FBRCxDQUFDLENBQVE7UUFDbEUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ1gsSUFBSSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsYUFBYSxDQUFDO0lBQzVCLENBQUM7K0dBTFUsYUFBYTttR0FBYixhQUFhLHVGQUpkLDJCQUEyQjs7QUFJMUIsYUFBYTtJQVZ6QixRQUFRLENBQUM7UUFDUixNQUFNLEVBQUUsQ0FBQyxTQUFTLENBQUM7S0FDcEIsQ0FBQztHQVFXLGFBQWEsQ0FNekI7NEZBTlksYUFBYTtrQkFQekIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsaUJBQWlCO29CQUMzQixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsUUFBUSxFQUFFLDJCQUEyQjtvQkFDckMsdUVBQXVFO29CQUN2RSxNQUFNLEVBQUUsQ0FBQyxTQUFTLENBQUM7aUJBQ3BCOztBQXVCTSxXQUFNLGdCQUFnQixHQUF0QixNQUFNLGdCQUFnQjtJQUUzQixZQUFZLENBQW9CLEVBQUUsQ0FBYSxFQUFZLENBQVM7UUFBVCxNQUFDLEdBQUQsQ0FBQyxDQUFRO1FBQ2xFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNYLElBQUksQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLGFBQWEsQ0FBQztJQUM1QixDQUFDOytHQUxVLGdCQUFnQjttR0FBaEIsZ0JBQWdCLHdGQUpqQiwyQkFBMkI7O0FBSTFCLGdCQUFnQjtJQVY1QixRQUFRLENBQUM7UUFDUixNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUM7S0FDbkIsQ0FBQztHQVFXLGdCQUFnQixDQU01Qjs0RkFOWSxnQkFBZ0I7a0JBUDVCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLG9CQUFvQjtvQkFDOUIsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLFFBQVEsRUFBRSwyQkFBMkI7b0JBQ3JDLHVFQUF1RTtvQkFDdkUsTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDO2lCQUNuQjs7QUF3Qk0sV0FBTSxPQUFPLEdBQWIsTUFBTSxPQUFPO0lBRWxCLFlBQVksQ0FBb0IsRUFBRSxDQUFhLEVBQVksQ0FBUztRQUFULE1BQUMsR0FBRCxDQUFDLENBQVE7UUFDbEUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ1gsSUFBSSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsYUFBYSxDQUFDO1FBQzFCLFlBQVksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDLHdCQUF3QixDQUFDLENBQUMsQ0FBQztJQUMxRCxDQUFDOytHQU5VLE9BQU87bUdBQVAsT0FBTyx3T0FKUiwyQkFBMkI7O0FBSTFCLE9BQU87SUFYbkIsUUFBUSxDQUFDO1FBQ1IsTUFBTSxFQUFFLENBQUMsVUFBVSxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsaUJBQWlCLEVBQUUsbUJBQW1CLEVBQUUsZUFBZSxDQUFDO1FBQ3BHLE9BQU8sRUFBRSxDQUFDLGNBQWMsQ0FBQztLQUMxQixDQUFDO0dBUVcsT0FBTyxDQU9uQjs0RkFQWSxPQUFPO2tCQVBuQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxVQUFVO29CQUNwQixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsUUFBUSxFQUFFLDJCQUEyQjtvQkFDckMsdUVBQXVFO29CQUN2RSxNQUFNLEVBQUUsQ0FBQyxVQUFVLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxpQkFBaUIsRUFBRSxtQkFBbUIsRUFBRSxlQUFlLENBQUM7aUJBQ3JHOztBQThCTSxXQUFNLGNBQWMsR0FBcEIsTUFBTSxjQUFjO0lBRXpCLFlBQVksQ0FBb0IsRUFBRSxDQUFhLEVBQVksQ0FBUztRQUFULE1BQUMsR0FBRCxDQUFDLENBQVE7UUFDbEUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ1gsSUFBSSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsYUFBYSxDQUFDO0lBQzVCLENBQUM7K0dBTFUsY0FBYzttR0FBZCxjQUFjLHdEQUpmLDJCQUEyQjs7QUFJMUIsY0FBYztJQVQxQixRQUFRLENBQUMsRUFDVCxDQUFDO0dBUVcsY0FBYyxDQU0xQjs0RkFOWSxjQUFjO2tCQVAxQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxrQkFBa0I7b0JBQzVCLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxRQUFRLEVBQUUsMkJBQTJCO29CQUNyQyx1RUFBdUU7b0JBQ3ZFLE1BQU0sRUFBRSxFQUFFO2lCQUNYOztBQXdCTSxXQUFNLFdBQVcsR0FBakIsTUFBTSxXQUFXO0lBRXRCLFlBQVksQ0FBb0IsRUFBRSxDQUFhLEVBQVksQ0FBUztRQUFULE1BQUMsR0FBRCxDQUFDLENBQVE7UUFDbEUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ1gsSUFBSSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsYUFBYSxDQUFDO0lBQzVCLENBQUM7K0dBTFUsV0FBVzttR0FBWCxXQUFXLDJIQUpaLDJCQUEyQjs7QUFJMUIsV0FBVztJQVh2QixRQUFRLENBQUM7UUFDUixNQUFNLEVBQUUsQ0FBQyxTQUFTLEVBQUUsVUFBVSxFQUFFLE9BQU8sQ0FBQztRQUN4QyxPQUFPLEVBQUUsQ0FBQyxVQUFVLEVBQUUsYUFBYSxFQUFFLGNBQWMsQ0FBQztLQUNyRCxDQUFDO0dBUVcsV0FBVyxDQU12Qjs0RkFOWSxXQUFXO2tCQVB2QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxlQUFlO29CQUN6QixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsUUFBUSxFQUFFLDJCQUEyQjtvQkFDckMsdUVBQXVFO29CQUN2RSxNQUFNLEVBQUUsQ0FBQyxTQUFTLEVBQUUsVUFBVSxFQUFFLE9BQU8sQ0FBQztpQkFDekM7O0FBc0JNLFdBQU0sWUFBWSxHQUFsQixNQUFNLFlBQVk7SUFFdkIsWUFBWSxDQUFvQixFQUFFLENBQWEsRUFBWSxDQUFTO1FBQVQsTUFBQyxHQUFELENBQUMsQ0FBUTtRQUNsRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDWCxJQUFJLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxhQUFhLENBQUM7SUFDNUIsQ0FBQzsrR0FMVSxZQUFZO21HQUFaLFlBQVksc0RBSmIsMkJBQTJCOztBQUkxQixZQUFZO0lBVHhCLFFBQVEsQ0FBQyxFQUNULENBQUM7R0FRVyxZQUFZLENBTXhCOzRGQU5ZLFlBQVk7a0JBUHhCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGdCQUFnQjtvQkFDMUIsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLFFBQVEsRUFBRSwyQkFBMkI7b0JBQ3JDLHVFQUF1RTtvQkFDdkUsTUFBTSxFQUFFLEVBQUU7aUJBQ1g7O0FBdUJNLFdBQU0sUUFBUSxHQUFkLE1BQU0sUUFBUTtJQUVuQixZQUFZLENBQW9CLEVBQUUsQ0FBYSxFQUFZLENBQVM7UUFBVCxNQUFDLEdBQUQsQ0FBQyxDQUFRO1FBQ2xFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNYLElBQUksQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLGFBQWEsQ0FBQztJQUM1QixDQUFDOytHQUxVLFFBQVE7bUdBQVIsUUFBUSwyRUFKVCwyQkFBMkI7O0FBSTFCLFFBQVE7SUFWcEIsUUFBUSxDQUFDO1FBQ1IsTUFBTSxFQUFFLENBQUMsTUFBTSxDQUFDO0tBQ2pCLENBQUM7R0FRVyxRQUFRLENBTXBCOzRGQU5ZLFFBQVE7a0JBUHBCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLFdBQVc7b0JBQ3JCLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxRQUFRLEVBQUUsMkJBQTJCO29CQUNyQyx1RUFBdUU7b0JBQ3ZFLE1BQU0sRUFBRSxDQUFDLE1BQU0sQ0FBQztpQkFDakI7O0FBdUJNLFdBQU0sY0FBYyxHQUFwQixNQUFNLGNBQWM7SUFFekIsWUFBWSxDQUFvQixFQUFFLENBQWEsRUFBWSxDQUFTO1FBQVQsTUFBQyxHQUFELENBQUMsQ0FBUTtRQUNsRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDWCxJQUFJLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxhQUFhLENBQUM7SUFDNUIsQ0FBQzsrR0FMVSxjQUFjO21HQUFkLGNBQWMsOEhBSmYsMkJBQTJCOztBQUkxQixjQUFjO0lBVjFCLFFBQVEsQ0FBQztRQUNSLE1BQU0sRUFBRSxDQUFDLGVBQWUsRUFBRSxZQUFZLENBQUM7S0FDeEMsQ0FBQztHQVFXLGNBQWMsQ0FNMUI7NEZBTlksY0FBYztrQkFQMUIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsa0JBQWtCO29CQUM1QixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsUUFBUSxFQUFFLDJCQUEyQjtvQkFDckMsdUVBQXVFO29CQUN2RSxNQUFNLEVBQUUsQ0FBQyxlQUFlLEVBQUUsWUFBWSxDQUFDO2lCQUN4Qzs7QUF1Qk0sV0FBTSxlQUFlLEdBQXJCLE1BQU0sZUFBZTtJQUUxQixZQUFZLENBQW9CLEVBQUUsQ0FBYSxFQUFZLENBQVM7UUFBVCxNQUFDLEdBQUQsQ0FBQyxDQUFRO1FBQ2xFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNYLElBQUksQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLGFBQWEsQ0FBQztJQUM1QixDQUFDOytHQUxVLGVBQWU7bUdBQWYsZUFBZSx5SUFKaEIsMkJBQTJCOztBQUkxQixlQUFlO0lBVjNCLFFBQVEsQ0FBQztRQUNSLE1BQU0sRUFBRSxDQUFDLFlBQVksRUFBRSxNQUFNLEVBQUUsYUFBYSxDQUFDO0tBQzlDLENBQUM7R0FRVyxlQUFlLENBTTNCOzRGQU5ZLGVBQWU7a0JBUDNCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLG1CQUFtQjtvQkFDN0IsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLFFBQVEsRUFBRSwyQkFBMkI7b0JBQ3JDLHVFQUF1RTtvQkFDdkUsTUFBTSxFQUFFLENBQUMsWUFBWSxFQUFFLE1BQU0sRUFBRSxhQUFhLENBQUM7aUJBQzlDOztBQXdCTSxXQUFNLFFBQVEsR0FBZCxNQUFNLFFBQVE7SUFFbkIsWUFBWSxDQUFvQixFQUFFLENBQWEsRUFBWSxDQUFTO1FBQVQsTUFBQyxHQUFELENBQUMsQ0FBUTtRQUNsRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDWCxJQUFJLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxhQUFhLENBQUM7UUFDMUIsWUFBWSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUMsZ0JBQWdCLEVBQUUsa0JBQWtCLEVBQUUsaUJBQWlCLENBQUMsQ0FBQyxDQUFDO0lBQ3pGLENBQUM7K0dBTlUsUUFBUTttR0FBUixRQUFRLHlKQUpULDJCQUEyQjs7QUFJMUIsUUFBUTtJQVhwQixRQUFRLENBQUM7UUFDUixNQUFNLEVBQUUsQ0FBQyxTQUFTLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsT0FBTyxDQUFDO1FBQzNELE9BQU8sRUFBRSxDQUFDLFVBQVUsRUFBRSxhQUFhLENBQUM7S0FDckMsQ0FBQztHQVFXLFFBQVEsQ0FPcEI7NEZBUFksUUFBUTtrQkFQcEIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsV0FBVztvQkFDckIsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLFFBQVEsRUFBRSwyQkFBMkI7b0JBQ3JDLHVFQUF1RTtvQkFDdkUsTUFBTSxFQUFFLENBQUMsU0FBUyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE9BQU8sQ0FBQztpQkFDNUQ7O0FBd0NNLFdBQU0sUUFBUSxHQUFkLE1BQU0sUUFBUTtJQUVuQixZQUFZLENBQW9CLEVBQUUsQ0FBYSxFQUFZLENBQVM7UUFBVCxNQUFDLEdBQUQsQ0FBQyxDQUFRO1FBQ2xFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNYLElBQUksQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLGFBQWEsQ0FBQztRQUMxQixZQUFZLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQyxrQkFBa0IsRUFBRSxnQkFBZ0IsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDLENBQUM7SUFDekYsQ0FBQzsrR0FOVSxRQUFRO21HQUFSLFFBQVEsMlZBSlQsMkJBQTJCOztBQUkxQixRQUFRO0lBWHBCLFFBQVEsQ0FBQztRQUNSLE1BQU0sRUFBRSxDQUFDLFVBQVUsRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsa0JBQWtCLEVBQUUsT0FBTyxDQUFDO1FBQ3JLLE9BQU8sRUFBRSxDQUFDLFVBQVUsRUFBRSxhQUFhLENBQUM7S0FDckMsQ0FBQztHQVFXLFFBQVEsQ0FPcEI7NEZBUFksUUFBUTtrQkFQcEIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsV0FBVztvQkFDckIsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLFFBQVEsRUFBRSwyQkFBMkI7b0JBQ3JDLHVFQUF1RTtvQkFDdkUsTUFBTSxFQUFFLENBQUMsVUFBVSxFQUFFLFdBQVcsRUFBRSxnQkFBZ0IsRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxrQkFBa0IsRUFBRSxPQUFPLENBQUM7aUJBQ3RLOztBQXVDTSxXQUFNLE9BQU8sR0FBYixNQUFNLE9BQU87SUFFbEIsWUFBWSxDQUFvQixFQUFFLENBQWEsRUFBWSxDQUFTO1FBQVQsTUFBQyxHQUFELENBQUMsQ0FBUTtRQUNsRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDWCxJQUFJLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxhQUFhLENBQUM7UUFDMUIsWUFBWSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxDQUFDO0lBQ3RELENBQUM7K0dBTlUsT0FBTzttR0FBUCxPQUFPLDRJQUpSLDJCQUEyQjs7QUFJMUIsT0FBTztJQVZuQixRQUFRLENBQUM7UUFDUixNQUFNLEVBQUUsQ0FBQyxZQUFZLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxTQUFTLENBQUM7S0FDckQsQ0FBQztHQVFXLE9BQU8sQ0FPbkI7NEZBUFksT0FBTztrQkFQbkIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsVUFBVTtvQkFDcEIsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLFFBQVEsRUFBRSwyQkFBMkI7b0JBQ3JDLHVFQUF1RTtvQkFDdkUsTUFBTSxFQUFFLENBQUMsWUFBWSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsU0FBUyxDQUFDO2lCQUNyRDs7QUErQk0sV0FBTSxjQUFjLEdBQXBCLE1BQU0sY0FBYztJQUV6QixZQUFZLENBQW9CLEVBQUUsQ0FBYSxFQUFZLENBQVM7UUFBVCxNQUFDLEdBQUQsQ0FBQyxDQUFRO1FBQ2xFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNYLElBQUksQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLGFBQWEsQ0FBQztRQUMxQixZQUFZLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDLENBQUM7SUFDM0QsQ0FBQzsrR0FOVSxjQUFjO21HQUFkLGNBQWMsb0xBSmYsMkJBQTJCOztBQUkxQixjQUFjO0lBVjFCLFFBQVEsQ0FBQztRQUNSLE1BQU0sRUFBRSxDQUFDLFdBQVcsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLGFBQWEsRUFBRSxPQUFPLENBQUM7S0FDdEUsQ0FBQztHQVFXLGNBQWMsQ0FPMUI7NEZBUFksY0FBYztrQkFQMUIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsa0JBQWtCO29CQUM1QixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsUUFBUSxFQUFFLDJCQUEyQjtvQkFDckMsdUVBQXVFO29CQUN2RSxNQUFNLEVBQUUsQ0FBQyxXQUFXLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxhQUFhLEVBQUUsT0FBTyxDQUFDO2lCQUN0RTs7QUFnQ00sV0FBTSxTQUFTLEdBQWYsTUFBTSxTQUFTO0lBRXBCLFlBQVksQ0FBb0IsRUFBRSxDQUFhLEVBQVksQ0FBUztRQUFULE1BQUMsR0FBRCxDQUFDLENBQVE7UUFDbEUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ1gsSUFBSSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsYUFBYSxDQUFDO1FBQzFCLFlBQVksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDLG1CQUFtQixFQUFFLGtCQUFrQixFQUFFLGlCQUFpQixDQUFDLENBQUMsQ0FBQztJQUM1RixDQUFDOytHQU5VLFNBQVM7bUdBQVQsU0FBUyw0b0JBSlYsMkJBQTJCOztBQUkxQixTQUFTO0lBWHJCLFFBQVEsQ0FBQztRQUNSLE1BQU0sRUFBRSxDQUFDLGFBQWEsRUFBRSxjQUFjLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsUUFBUSxFQUFFLGdCQUFnQixFQUFFLG1CQUFtQixFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsZUFBZSxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLGdCQUFnQixFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxhQUFhLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsZUFBZSxDQUFDO1FBQ3hVLE9BQU8sRUFBRSxDQUFDLFVBQVUsQ0FBQztLQUN0QixDQUFDO0dBUVcsU0FBUyxDQU9yQjs0RkFQWSxTQUFTO2tCQVByQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxZQUFZO29CQUN0QixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsUUFBUSxFQUFFLDJCQUEyQjtvQkFDckMsdUVBQXVFO29CQUN2RSxNQUFNLEVBQUUsQ0FBQyxhQUFhLEVBQUUsY0FBYyxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUFFLFFBQVEsRUFBRSxnQkFBZ0IsRUFBRSxtQkFBbUIsRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxnQkFBZ0IsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsYUFBYSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLGVBQWUsQ0FBQztpQkFDelU7O0FBeUNNLFdBQU0sVUFBVSxHQUFoQixNQUFNLFVBQVU7SUFFckIsWUFBWSxDQUFvQixFQUFFLENBQWEsRUFBWSxDQUFTO1FBQVQsTUFBQyxHQUFELENBQUMsQ0FBUTtRQUNsRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDWCxJQUFJLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxhQUFhLENBQUM7UUFDMUIsWUFBWSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUMsa0JBQWtCLEVBQUUsd0JBQXdCLEVBQUUsa0JBQWtCLEVBQUUsd0JBQXdCLEVBQUUsMkJBQTJCLENBQUMsQ0FBQyxDQUFDO0lBQ3pKLENBQUM7K0dBTlUsVUFBVTttR0FBVixVQUFVLHVJQUpYLDJCQUEyQjs7QUFJMUIsVUFBVTtJQVh0QixRQUFRLENBQUM7UUFDUixNQUFNLEVBQUUsQ0FBQyxNQUFNLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxPQUFPLENBQUM7UUFDaEQsT0FBTyxFQUFFLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsbUJBQW1CLEVBQUUsa0JBQWtCLENBQUM7S0FDN0UsQ0FBQztHQVFXLFVBQVUsQ0FPdEI7NEZBUFksVUFBVTtrQkFQdEIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsYUFBYTtvQkFDdkIsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLFFBQVEsRUFBRSwyQkFBMkI7b0JBQ3JDLHVFQUF1RTtvQkFDdkUsTUFBTSxFQUFFLENBQUMsTUFBTSxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsT0FBTyxDQUFDO2lCQUNqRDs7QUFnRE0sV0FBTSxjQUFjLEdBQXBCLE1BQU0sY0FBYztJQUV6QixZQUFZLENBQW9CLEVBQUUsQ0FBYSxFQUFZLENBQVM7UUFBVCxNQUFDLEdBQUQsQ0FBQyxDQUFRO1FBQ2xFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNYLElBQUksQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLGFBQWEsQ0FBQztJQUM1QixDQUFDOytHQUxVLGNBQWM7bUdBQWQsY0FBYyw4SUFKZiwyQkFBMkI7O0FBSTFCLGNBQWM7SUFWMUIsUUFBUSxDQUFDO1FBQ1IsTUFBTSxFQUFFLENBQUMsVUFBVSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsT0FBTyxDQUFDO0tBQ2xELENBQUM7R0FRVyxjQUFjLENBTTFCOzRGQU5ZLGNBQWM7a0JBUDFCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGtCQUFrQjtvQkFDNUIsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLFFBQVEsRUFBRSwyQkFBMkI7b0JBQ3JDLHVFQUF1RTtvQkFDdkUsTUFBTSxFQUFFLENBQUMsVUFBVSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsT0FBTyxDQUFDO2lCQUNsRDs7QUF1Qk0sV0FBTSxtQkFBbUIsR0FBekIsTUFBTSxtQkFBbUI7SUFFOUIsWUFBWSxDQUFvQixFQUFFLENBQWEsRUFBWSxDQUFTO1FBQVQsTUFBQyxHQUFELENBQUMsQ0FBUTtRQUNsRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDWCxJQUFJLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxhQUFhLENBQUM7SUFDNUIsQ0FBQzsrR0FMVSxtQkFBbUI7bUdBQW5CLG1CQUFtQiw4S0FKcEIsMkJBQTJCOztBQUkxQixtQkFBbUI7SUFWL0IsUUFBUSxDQUFDO1FBQ1IsTUFBTSxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLGFBQWEsRUFBRSxPQUFPLENBQUM7S0FDakUsQ0FBQztHQVFXLG1CQUFtQixDQU0vQjs0RkFOWSxtQkFBbUI7a0JBUC9CLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHdCQUF3QjtvQkFDbEMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLFFBQVEsRUFBRSwyQkFBMkI7b0JBQ3JDLHVFQUF1RTtvQkFDdkUsTUFBTSxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLGFBQWEsRUFBRSxPQUFPLENBQUM7aUJBQ2pFOztBQXVCTSxXQUFNLFVBQVUsR0FBaEIsTUFBTSxVQUFVO0lBRXJCLFlBQVksQ0FBb0IsRUFBRSxDQUFhLEVBQVksQ0FBUztRQUFULE1BQUMsR0FBRCxDQUFDLENBQVE7UUFDbEUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ1gsSUFBSSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsYUFBYSxDQUFDO0lBQzVCLENBQUM7K0dBTFUsVUFBVTttR0FBVixVQUFVLDJFQUpYLDJCQUEyQjs7QUFJMUIsVUFBVTtJQVZ0QixRQUFRLENBQUM7UUFDUixNQUFNLEVBQUUsQ0FBQyxLQUFLLENBQUM7S0FDaEIsQ0FBQztHQVFXLFVBQVUsQ0FNdEI7NEZBTlksVUFBVTtrQkFQdEIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsYUFBYTtvQkFDdkIsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLFFBQVEsRUFBRSwyQkFBMkI7b0JBQ3JDLHVFQUF1RTtvQkFDdkUsTUFBTSxFQUFFLENBQUMsS0FBSyxDQUFDO2lCQUNoQjs7QUF1Qk0sV0FBTSxpQkFBaUIsR0FBdkIsTUFBTSxpQkFBaUI7SUFFNUIsWUFBWSxDQUFvQixFQUFFLENBQWEsRUFBWSxDQUFTO1FBQVQsTUFBQyxHQUFELENBQUMsQ0FBUTtRQUNsRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDWCxJQUFJLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxhQUFhLENBQUM7SUFDNUIsQ0FBQzsrR0FMVSxpQkFBaUI7bUdBQWpCLGlCQUFpQix1RkFKbEIsMkJBQTJCOztBQUkxQixpQkFBaUI7SUFWN0IsUUFBUSxDQUFDO1FBQ1IsTUFBTSxFQUFFLENBQUMsT0FBTyxDQUFDO0tBQ2xCLENBQUM7R0FRVyxpQkFBaUIsQ0FNN0I7NEZBTlksaUJBQWlCO2tCQVA3QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxxQkFBcUI7b0JBQy9CLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxRQUFRLEVBQUUsMkJBQTJCO29CQUNyQyx1RUFBdUU7b0JBQ3ZFLE1BQU0sRUFBRSxDQUFDLE9BQU8sQ0FBQztpQkFDbEI7O0FBd0JNLFdBQU0sU0FBUyxHQUFmLE1BQU0sU0FBUztJQUVwQixZQUFZLENBQW9CLEVBQUUsQ0FBYSxFQUFZLENBQVM7UUFBVCxNQUFDLEdBQUQsQ0FBQyxDQUFRO1FBQ2xFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNYLElBQUksQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLGFBQWEsQ0FBQztRQUMxQixZQUFZLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQyxpQkFBaUIsRUFBRSxtQkFBbUIsRUFBRSxrQkFBa0IsQ0FBQyxDQUFDLENBQUM7SUFDNUYsQ0FBQzsrR0FOVSxTQUFTO21HQUFULFNBQVMsMFBBSlYsMkJBQTJCOztBQUkxQixTQUFTO0lBWHJCLFFBQVEsQ0FBQztRQUNSLE1BQU0sRUFBRSxDQUFDLFNBQVMsRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxPQUFPLENBQUM7UUFDL0csT0FBTyxFQUFFLENBQUMsVUFBVSxFQUFFLGFBQWEsQ0FBQztLQUNyQyxDQUFDO0dBUVcsU0FBUyxDQU9yQjs0RkFQWSxTQUFTO2tCQVByQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxZQUFZO29CQUN0QixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsUUFBUSxFQUFFLDJCQUEyQjtvQkFDckMsdUVBQXVFO29CQUN2RSxNQUFNLEVBQUUsQ0FBQyxTQUFTLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxnQkFBZ0IsRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsT0FBTyxDQUFDO2lCQUNoSDs7QUF3Q00sV0FBTSxNQUFNLEdBQVosTUFBTSxNQUFNO0lBRWpCLFlBQVksQ0FBb0IsRUFBRSxDQUFhLEVBQVksQ0FBUztRQUFULE1BQUMsR0FBRCxDQUFDLENBQVE7UUFDbEUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ1gsSUFBSSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsYUFBYSxDQUFDO1FBQzFCLFlBQVksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUM7SUFDakQsQ0FBQzsrR0FOVSxNQUFNO21HQUFOLE1BQU0seUlBSlAsMkJBQTJCOztBQUkxQixNQUFNO0lBWGxCLFFBQVEsQ0FBQztRQUNSLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLE9BQU8sQ0FBQztRQUNuRCxPQUFPLEVBQUUsQ0FBQyxVQUFVLEVBQUUsYUFBYSxDQUFDO0tBQ3JDLENBQUM7R0FRVyxNQUFNLENBT2xCOzRGQVBZLE1BQU07a0JBUGxCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLFNBQVM7b0JBQ25CLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxRQUFRLEVBQUUsMkJBQTJCO29CQUNyQyx1RUFBdUU7b0JBQ3ZFLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLE9BQU8sQ0FBQztpQkFDcEQ7O0FBZ0NNLFdBQU0sV0FBVyxHQUFqQixNQUFNLFdBQVc7SUFFdEIsWUFBWSxDQUFvQixFQUFFLENBQWEsRUFBWSxDQUFTO1FBQVQsTUFBQyxHQUFELENBQUMsQ0FBUTtRQUNsRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDWCxJQUFJLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxhQUFhLENBQUM7UUFDMUIsWUFBWSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUMsY0FBYyxFQUFFLGNBQWMsQ0FBQyxDQUFDLENBQUM7SUFDaEUsQ0FBQzsrR0FOVSxXQUFXO21HQUFYLFdBQVcsK0hBSlosMkJBQTJCOztBQUkxQixXQUFXO0lBWHZCLFFBQVEsQ0FBQztRQUNSLE1BQU0sRUFBRSxDQUFDLGtCQUFrQixFQUFFLFdBQVcsQ0FBQztRQUN6QyxPQUFPLEVBQUUsQ0FBQyxNQUFNLENBQUM7S0FDbEIsQ0FBQztHQVFXLFdBQVcsQ0FPdkI7NEZBUFksV0FBVztrQkFQdkIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsZUFBZTtvQkFDekIsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLFFBQVEsRUFBRSwyQkFBMkI7b0JBQ3JDLHVFQUF1RTtvQkFDdkUsTUFBTSxFQUFFLENBQUMsa0JBQWtCLEVBQUUsV0FBVyxDQUFDO2lCQUMxQzs7QUFvQ00sV0FBTSxXQUFXLEdBQWpCLE1BQU0sV0FBVztJQUV0QixZQUFZLENBQW9CLEVBQUUsQ0FBYSxFQUFZLENBQVM7UUFBVCxNQUFDLEdBQUQsQ0FBQyxDQUFRO1FBQ2xFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNYLElBQUksQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLGFBQWEsQ0FBQztJQUM1QixDQUFDOytHQUxVLFdBQVc7bUdBQVgsV0FBVyxpR0FKWiwyQkFBMkI7O0FBSTFCLFdBQVc7SUFWdkIsUUFBUSxDQUFDO1FBQ1IsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQztLQUMzQixDQUFDO0dBUVcsV0FBVyxDQU12Qjs0RkFOWSxXQUFXO2tCQVB2QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxlQUFlO29CQUN6QixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsUUFBUSxFQUFFLDJCQUEyQjtvQkFDckMsdUVBQXVFO29CQUN2RSxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDO2lCQUMzQjs7QUF1Qk0sV0FBTSxNQUFNLEdBQVosTUFBTSxNQUFNO0lBRWpCLFlBQVksQ0FBb0IsRUFBRSxDQUFhLEVBQVksQ0FBUztRQUFULE1BQUMsR0FBRCxDQUFDLENBQVE7UUFDbEUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ1gsSUFBSSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsYUFBYSxDQUFDO1FBQzFCLFlBQVksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUM7SUFDakQsQ0FBQzsrR0FOVSxNQUFNO21HQUFOLE1BQU0sNkhBSlAsMkJBQTJCOztBQUkxQixNQUFNO0lBVmxCLFFBQVEsQ0FBQztRQUNSLE1BQU0sRUFBRSxDQUFDLFdBQVcsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sQ0FBQztLQUM5QyxDQUFDO0dBUVcsTUFBTSxDQU9sQjs0RkFQWSxNQUFNO2tCQVBsQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxTQUFTO29CQUNuQixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsUUFBUSxFQUFFLDJCQUEyQjtvQkFDckMsdUVBQXVFO29CQUN2RSxNQUFNLEVBQUUsQ0FBQyxXQUFXLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUM7aUJBQzlDOztBQWdDTSxXQUFNLFdBQVcsR0FBakIsTUFBTSxXQUFXO0lBRXRCLFlBQVksQ0FBb0IsRUFBRSxDQUFhLEVBQVksQ0FBUztRQUFULE1BQUMsR0FBRCxDQUFDLENBQVE7UUFDbEUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ1gsSUFBSSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsYUFBYSxDQUFDO1FBQzFCLFlBQVksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDLHFCQUFxQixFQUFFLG9CQUFvQixFQUFFLG9CQUFvQixFQUFFLG1CQUFtQixDQUFDLENBQUMsQ0FBQztJQUN4SCxDQUFDOytHQU5VLFdBQVc7bUdBQVgsV0FBVyxvakJBSlosMkJBQTJCOztBQUkxQixXQUFXO0lBWHZCLFFBQVEsQ0FBQztRQUNSLE1BQU0sRUFBRSxDQUFDLGdCQUFnQixFQUFFLGNBQWMsRUFBRSxhQUFhLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLGFBQWEsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxPQUFPLENBQUM7UUFDeFIsT0FBTyxFQUFFLENBQUMsVUFBVSxFQUFFLGFBQWEsRUFBRSxRQUFRLEVBQUUsbUJBQW1CLEVBQUUsY0FBYyxDQUFDO0tBQ3BGLENBQUM7R0FRVyxXQUFXLENBT3ZCOzRGQVBZLFdBQVc7a0JBUHZCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGNBQWM7b0JBQ3hCLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxRQUFRLEVBQUUsMkJBQTJCO29CQUNyQyx1RUFBdUU7b0JBQ3ZFLE1BQU0sRUFBRSxDQUFDLGdCQUFnQixFQUFFLGNBQWMsRUFBRSxhQUFhLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLGFBQWEsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxPQUFPLENBQUM7aUJBQ3pSOztBQTRDTSxXQUFNLE9BQU8sR0FBYixNQUFNLE9BQU87SUFFbEIsWUFBWSxDQUFvQixFQUFFLENBQWEsRUFBWSxDQUFTO1FBQVQsTUFBQyxHQUFELENBQUMsQ0FBUTtRQUNsRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDWCxJQUFJLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxhQUFhLENBQUM7UUFDMUIsWUFBWSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUMsaUJBQWlCLEVBQUUsbUJBQW1CLENBQUMsQ0FBQyxDQUFDO0lBQ3hFLENBQUM7K0dBTlUsT0FBTzttR0FBUCxPQUFPLHNOQUpSLDJCQUEyQjs7QUFJMUIsT0FBTztJQVhuQixRQUFRLENBQUM7UUFDUixNQUFNLEVBQUUsQ0FBQyxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLE1BQU0sQ0FBQztRQUM1RixPQUFPLEVBQUUsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDO0tBQzFCLENBQUM7R0FRVyxPQUFPLENBT25COzRGQVBZLE9BQU87a0JBUG5CLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLFVBQVU7b0JBQ3BCLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxRQUFRLEVBQUUsMkJBQTJCO29CQUNyQyx1RUFBdUU7b0JBQ3ZFLE1BQU0sRUFBRSxDQUFDLFdBQVcsRUFBRSxnQkFBZ0IsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSxDQUFDO2lCQUM3Rjs7QUFvQ00sV0FBTSxhQUFhLEdBQW5CLE1BQU0sYUFBYTtJQUV4QixZQUFZLENBQW9CLEVBQUUsQ0FBYSxFQUFZLENBQVM7UUFBVCxNQUFDLEdBQUQsQ0FBQyxDQUFRO1FBQ2xFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNYLElBQUksQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLGFBQWEsQ0FBQztRQUMxQixZQUFZLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQyx1QkFBdUIsRUFBRSxpQ0FBaUMsRUFBRSxzQkFBc0IsQ0FBQyxDQUFDLENBQUM7SUFDcEgsQ0FBQzsrR0FOVSxhQUFhO21HQUFiLGFBQWEsOGlCQUpkLDJCQUEyQjs7QUFJMUIsYUFBYTtJQVh6QixRQUFRLENBQUM7UUFDUixNQUFNLEVBQUUsQ0FBQyxXQUFXLEVBQUUsVUFBVSxFQUFFLGFBQWEsRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsY0FBYyxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLGFBQWEsRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxPQUFPLENBQUM7UUFDclIsT0FBTyxFQUFFLENBQUMsVUFBVSxDQUFDO0tBQ3RCLENBQUM7R0FRVyxhQUFhLENBT3pCOzRGQVBZLGFBQWE7a0JBUHpCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGdCQUFnQjtvQkFDMUIsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLFFBQVEsRUFBRSwyQkFBMkI7b0JBQ3JDLHVFQUF1RTtvQkFDdkUsTUFBTSxFQUFFLENBQUMsV0FBVyxFQUFFLFVBQVUsRUFBRSxhQUFhLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxnQkFBZ0IsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxhQUFhLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsT0FBTyxDQUFDO2lCQUN0Ujs7QUF5Q00sV0FBTSxVQUFVLEdBQWhCLE1BQU0sVUFBVTtJQUVyQixZQUFZLENBQW9CLEVBQUUsQ0FBYSxFQUFZLENBQVM7UUFBVCxNQUFDLEdBQUQsQ0FBQyxDQUFRO1FBQ2xFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNYLElBQUksQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLGFBQWEsQ0FBQztRQUMxQixZQUFZLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQyxrQkFBa0IsRUFBRSx3QkFBd0IsRUFBRSxrQkFBa0IsRUFBRSx3QkFBd0IsQ0FBQyxDQUFDLENBQUM7SUFDNUgsQ0FBQzsrR0FOVSxVQUFVO21HQUFWLFVBQVUsK01BSlgsMkJBQTJCOztBQUkxQixVQUFVO0lBWHRCLFFBQVEsQ0FBQztRQUNSLE1BQU0sRUFBRSxDQUFDLFNBQVMsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLFNBQVMsQ0FBQztRQUN2RixPQUFPLEVBQUUsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDO0tBQzFCLENBQUM7R0FRVyxVQUFVLENBT3RCOzRGQVBZLFVBQVU7a0JBUHRCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGFBQWE7b0JBQ3ZCLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxRQUFRLEVBQUUsMkJBQTJCO29CQUNyQyx1RUFBdUU7b0JBQ3ZFLE1BQU0sRUFBRSxDQUFDLFNBQVMsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLFNBQVMsQ0FBQztpQkFDeEYiLCJzb3VyY2VzQ29udGVudCI6WyIvKiB0c2xpbnQ6ZGlzYWJsZSAqL1xuLyogYXV0by1nZW5lcmF0ZWQgYW5ndWxhciBkaXJlY3RpdmUgcHJveGllcyAqL1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgTmdab25lIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFByb3h5Q21wLCBwcm94eU91dHB1dHMgfSBmcm9tICcuL2FuZ3VsYXItY29tcG9uZW50LWxpYi91dGlscyc7XG5cbmltcG9ydCB7IENvbXBvbmVudHMgfSBmcm9tICdAc2l4LWdyb3VwL3VpLWxpYnJhcnknO1xuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWyd2YWx1ZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2V0LWF0dHJpYnV0ZXMnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ3ZhbHVlJ10sXG59KVxuZXhwb3J0IGNsYXNzIFNldEF0dHJpYnV0ZXMge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTZXRBdHRyaWJ1dGVzIGV4dGVuZHMgQ29tcG9uZW50cy5TZXRBdHRyaWJ1dGVzIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2Nsb3NhYmxlJywgJ2R1cmF0aW9uJywgJ29wZW4nLCAndHlwZSddLFxuICBtZXRob2RzOiBbJ3Nob3cnLCAnaGlkZScsICd0b2FzdCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2l4LWFsZXJ0JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjbG9zYWJsZScsICdkdXJhdGlvbicsICdvcGVuJywgJ3R5cGUnXSxcbn0pXG5leHBvcnQgY2xhc3MgU2l4QWxlcnQge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzaXgtYWxlcnQtc2hvdycsICdzaXgtYWxlcnQtYWZ0ZXItc2hvdycsICdzaXgtYWxlcnQtaGlkZScsICdzaXgtYWxlcnQtYWZ0ZXItaGlkZSddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgRW1wdHlQYXlsb2FkIGFzIElTaXhBbGVydEVtcHR5UGF5bG9hZCB9IGZyb20gJ0BzaXgtZ3JvdXAvdWktbGlicmFyeSc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTaXhBbGVydCBleHRlbmRzIENvbXBvbmVudHMuU2l4QWxlcnQge1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSBhbGVydCBvcGVucy4gQ2FsbGluZyBgZXZlbnQucHJldmVudERlZmF1bHQoKWAgd2lsbCBwcmV2ZW50IGl0IGZyb20gYmVpbmcgb3BlbmVkLlxuICAgKi9cbiAgJ3NpeC1hbGVydC1zaG93JzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTaXhBbGVydEVtcHR5UGF5bG9hZD4+O1xuICAvKipcbiAgICogRW1pdHRlZCBhZnRlciB0aGUgYWxlcnQgb3BlbnMgYW5kIGFsbCB0cmFuc2l0aW9ucyBhcmUgY29tcGxldGUuXG4gICAqL1xuICAnc2l4LWFsZXJ0LWFmdGVyLXNob3cnOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVNpeEFsZXJ0RW1wdHlQYXlsb2FkPj47XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIGFsZXJ0IGNsb3Nlcy4gQ2FsbGluZyBgZXZlbnQucHJldmVudERlZmF1bHQoKWAgd2lsbCBwcmV2ZW50IGl0IGZyb20gYmVpbmcgY2xvc2VkLlxuICAgKi9cbiAgJ3NpeC1hbGVydC1oaWRlJzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTaXhBbGVydEVtcHR5UGF5bG9hZD4+O1xuICAvKipcbiAgICogRW1pdHRlZCBhZnRlciB0aGUgYWxlcnQgY2xvc2VzIGFuZCBhbGwgdHJhbnNpdGlvbnMgYXJlIGNvbXBsZXRlLlxuICAgKi9cbiAgJ3NpeC1hbGVydC1hZnRlci1oaWRlJzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTaXhBbGVydEVtcHR5UGF5bG9hZD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhbHQnLCAnaW1hZ2UnLCAnaW5pdGlhbHMnLCAnc2hhcGUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NpeC1hdmF0YXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FsdCcsICdpbWFnZScsICdpbml0aWFscycsICdzaGFwZSddLFxufSlcbmV4cG9ydCBjbGFzcyBTaXhBdmF0YXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTaXhBdmF0YXIgZXh0ZW5kcyBDb21wb25lbnRzLlNpeEF2YXRhciB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydwaWxsJywgJ3B1bHNlJywgJ3R5cGUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NpeC1iYWRnZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsncGlsbCcsICdwdWxzZScsICd0eXBlJ10sXG59KVxuZXhwb3J0IGNsYXNzIFNpeEJhZGdlIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU2l4QmFkZ2UgZXh0ZW5kcyBDb21wb25lbnRzLlNpeEJhZGdlIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2NhcmV0JywgJ2NpcmNsZScsICdkaXNhYmxlZCcsICdkb3dubG9hZCcsICdocmVmJywgJ2xvYWRpbmcnLCAnbmFtZScsICdwaWxsJywgJ3Jlc2V0JywgJ3NpemUnLCAnc3VibWl0JywgJ3RhcmdldCcsICd0eXBlJywgJ3ZhbHVlJ10sXG4gIG1ldGhvZHM6IFsnc2V0Rm9jdXMnLCAncmVtb3ZlRm9jdXMnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NpeC1idXR0b24nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2NhcmV0JywgJ2NpcmNsZScsICdkaXNhYmxlZCcsICdkb3dubG9hZCcsICdocmVmJywgJ2xvYWRpbmcnLCAnbmFtZScsICdwaWxsJywgJ3Jlc2V0JywgJ3NpemUnLCAnc3VibWl0JywgJ3RhcmdldCcsICd0eXBlJywgJ3ZhbHVlJ10sXG59KVxuZXhwb3J0IGNsYXNzIFNpeEJ1dHRvbiB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3NpeC1idXR0b24tYmx1cicsICdzaXgtYnV0dG9uLWZvY3VzJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBFbXB0eVBheWxvYWQgYXMgSVNpeEJ1dHRvbkVtcHR5UGF5bG9hZCB9IGZyb20gJ0BzaXgtZ3JvdXAvdWktbGlicmFyeSc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTaXhCdXR0b24gZXh0ZW5kcyBDb21wb25lbnRzLlNpeEJ1dHRvbiB7XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIGJ1dHRvbiBsb3NlcyBmb2N1cy5cbiAgICovXG4gICdzaXgtYnV0dG9uLWJsdXInOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVNpeEJ1dHRvbkVtcHR5UGF5bG9hZD4+O1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSBidXR0b24gZ2FpbnMgZm9jdXMuXG4gICAqL1xuICAnc2l4LWJ1dHRvbi1mb2N1cyc6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU2l4QnV0dG9uRW1wdHlQYXlsb2FkPj47XG59XG5cblxuQFByb3h5Q21wKHtcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzaXgtY2FyZCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFtdLFxufSlcbmV4cG9ydCBjbGFzcyBTaXhDYXJkIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU2l4Q2FyZCBleHRlbmRzIENvbXBvbmVudHMuU2l4Q2FyZCB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjaGVja2VkJywgJ2Rpc2FibGVkJywgJ2Vycm9yVGV4dCcsICdlcnJvclRleHRDb3VudCcsICdpbmRldGVybWluYXRlJywgJ2ludmFsaWQnLCAnbGFiZWwnLCAnbmFtZScsICdyZXF1aXJlZCcsICd2YWx1ZSddLFxuICBtZXRob2RzOiBbJ3NldEZvY3VzJywgJ3JlbW92ZUZvY3VzJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzaXgtY2hlY2tib3gnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2NoZWNrZWQnLCAnZGlzYWJsZWQnLCAnZXJyb3JUZXh0JywgJ2Vycm9yVGV4dENvdW50JywgJ2luZGV0ZXJtaW5hdGUnLCAnaW52YWxpZCcsICdsYWJlbCcsICduYW1lJywgJ3JlcXVpcmVkJywgJ3ZhbHVlJ10sXG59KVxuZXhwb3J0IGNsYXNzIFNpeENoZWNrYm94IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc2l4LWNoZWNrYm94LWJsdXInLCAnc2l4LWNoZWNrYm94LWNoYW5nZScsICdzaXgtY2hlY2tib3gtZm9jdXMnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IEVtcHR5UGF5bG9hZCBhcyBJU2l4Q2hlY2tib3hFbXB0eVBheWxvYWQgfSBmcm9tICdAc2l4LWdyb3VwL3VpLWxpYnJhcnknO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU2l4Q2hlY2tib3ggZXh0ZW5kcyBDb21wb25lbnRzLlNpeENoZWNrYm94IHtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgY29udHJvbCBsb3NlcyBmb2N1cy5cbiAgICovXG4gICdzaXgtY2hlY2tib3gtYmx1cic6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU2l4Q2hlY2tib3hFbXB0eVBheWxvYWQ+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgY29udHJvbCdzIGNoZWNrZWQgc3RhdGUgY2hhbmdlcy5cbiAgICovXG4gICdzaXgtY2hlY2tib3gtY2hhbmdlJzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTaXhDaGVja2JveEVtcHR5UGF5bG9hZD4+O1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSBjb250cm9sIGdhaW5zIGZvY3VzLlxuICAgKi9cbiAgJ3NpeC1jaGVja2JveC1mb2N1cyc6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU2l4Q2hlY2tib3hFbXB0eVBheWxvYWQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYWxsb3dlZERhdGVzJywgJ2NsZWFyYWJsZScsICdjbG9zZU9uU2VsZWN0JywgJ2NvbnRhaW5pbmdFbGVtZW50JywgJ2RhdGVGb3JtYXQnLCAnZGVib3VuY2UnLCAnZGVmYXVsdERhdGUnLCAnZGlzYWJsZWQnLCAnZXJyb3JUZXh0JywgJ2Vycm9yVGV4dENvdW50JywgJ2hvaXN0JywgJ2ljb25Qb3NpdGlvbicsICdpbmxpbmUnLCAnaW52YWxpZCcsICdsYWJlbCcsICdsb2NhbGUnLCAnbWF4JywgJ21pbicsICduYW1lJywgJ29wZW4nLCAncGxhY2Vob2xkZXInLCAncGxhY2VtZW50JywgJ3JlYWRvbmx5JywgJ3JlcXVpcmVkJywgJ3NpemUnLCAndHlwZScsICd2YWx1ZSddLFxuICBtZXRob2RzOiBbJ3NldEZvY3VzJywgJ3NlbGVjdCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2l4LWRhdGVwaWNrZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FsbG93ZWREYXRlcycsICdjbGVhcmFibGUnLCAnY2xvc2VPblNlbGVjdCcsICdjb250YWluaW5nRWxlbWVudCcsICdkYXRlRm9ybWF0JywgJ2RlYm91bmNlJywgJ2RlZmF1bHREYXRlJywgJ2Rpc2FibGVkJywgJ2Vycm9yVGV4dCcsICdlcnJvclRleHRDb3VudCcsICdob2lzdCcsICdpY29uUG9zaXRpb24nLCAnaW5saW5lJywgJ2ludmFsaWQnLCAnbGFiZWwnLCAnbG9jYWxlJywgJ21heCcsICdtaW4nLCAnbmFtZScsICdvcGVuJywgJ3BsYWNlaG9sZGVyJywgJ3BsYWNlbWVudCcsICdyZWFkb25seScsICdyZXF1aXJlZCcsICdzaXplJywgJ3R5cGUnLCAndmFsdWUnXSxcbn0pXG5leHBvcnQgY2xhc3MgU2l4RGF0ZXBpY2tlciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3NpeC1kYXRlcGlja2VyLXNlbGVjdCcsICdzaXgtZGF0ZXBpY2tlci1jbGVhcicsICdzaXgtZGF0ZXBpY2tlci1ibHVyJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTaXhEYXRlcGlja2VyU2VsZWN0UGF5bG9hZCBhcyBJU2l4RGF0ZXBpY2tlclNpeERhdGVwaWNrZXJTZWxlY3RQYXlsb2FkIH0gZnJvbSAnQHNpeC1ncm91cC91aS1saWJyYXJ5JztcbmltcG9ydCB0eXBlIHsgRW1wdHlQYXlsb2FkIGFzIElTaXhEYXRlcGlja2VyRW1wdHlQYXlsb2FkIH0gZnJvbSAnQHNpeC1ncm91cC91aS1saWJyYXJ5JztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFNpeERhdGVwaWNrZXIgZXh0ZW5kcyBDb21wb25lbnRzLlNpeERhdGVwaWNrZXIge1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIGEgb3B0aW9uIGdvdCBzZWxlY3RlZC5cbiAgICovXG4gICdzaXgtZGF0ZXBpY2tlci1zZWxlY3QnOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVNpeERhdGVwaWNrZXJTaXhEYXRlcGlja2VyU2VsZWN0UGF5bG9hZD4+O1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSBjbGVhciBidXR0b24gaXMgYWN0aXZhdGVkLlxuICAgKi9cbiAgJ3NpeC1kYXRlcGlja2VyLWNsZWFyJzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTaXhEYXRlcGlja2VyRW1wdHlQYXlsb2FkPj47XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gYSBvcHRpb24gZ290IHNlbGVjdGVkLlxuICAgKi9cbiAgJ3NpeC1kYXRlcGlja2VyLWJsdXInOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVNpeERhdGVwaWNrZXJTaXhEYXRlcGlja2VyU2VsZWN0UGF5bG9hZD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydkaXNhYmxlZCcsICdoYXNDb250ZW50JywgJ2lubGluZScsICdvcGVuJywgJ3NlbGVjdGFibGVFbXB0eScsICdzdW1tYXJ5JywgJ3N1bW1hcnlJY29uJywgJ3N1bW1hcnlJY29uU2l6ZSddLFxuICBtZXRob2RzOiBbJ3Nob3cnLCAnaGlkZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2l4LWRldGFpbHMnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2Rpc2FibGVkJywgJ2hhc0NvbnRlbnQnLCAnaW5saW5lJywgJ29wZW4nLCAnc2VsZWN0YWJsZUVtcHR5JywgJ3N1bW1hcnknLCAnc3VtbWFyeUljb24nLCAnc3VtbWFyeUljb25TaXplJ10sXG59KVxuZXhwb3J0IGNsYXNzIFNpeERldGFpbHMge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzaXgtZGV0YWlscy1zaG93JywgJ3NpeC1kZXRhaWxzLWFmdGVyLXNob3cnLCAnc2l4LWRldGFpbHMtaGlkZScsICdzaXgtZGV0YWlscy1hZnRlci1oaWRlJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBFbXB0eVBheWxvYWQgYXMgSVNpeERldGFpbHNFbXB0eVBheWxvYWQgfSBmcm9tICdAc2l4LWdyb3VwL3VpLWxpYnJhcnknO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU2l4RGV0YWlscyBleHRlbmRzIENvbXBvbmVudHMuU2l4RGV0YWlscyB7XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIGRldGFpbHMgb3BlbnMuIENhbGxpbmcgYGV2ZW50LnByZXZlbnREZWZhdWx0KClgIHdpbGwgcHJldmVudCBpdCBmcm9tIGJlaW5nIG9wZW5lZC5cbiAgICovXG4gICdzaXgtZGV0YWlscy1zaG93JzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTaXhEZXRhaWxzRW1wdHlQYXlsb2FkPj47XG4gIC8qKlxuICAgKiBFbWl0dGVkIGFmdGVyIHRoZSBkZXRhaWxzIG9wZW5zIGFuZCBhbGwgdHJhbnNpdGlvbnMgYXJlIGNvbXBsZXRlLlxuICAgKi9cbiAgJ3NpeC1kZXRhaWxzLWFmdGVyLXNob3cnOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVNpeERldGFpbHNFbXB0eVBheWxvYWQ+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgZGV0YWlscyBjbG9zZXMuIENhbGxpbmcgYGV2ZW50LnByZXZlbnREZWZhdWx0KClgIHdpbGwgcHJldmVudCBpdCBmcm9tIGJlaW5nIGNsb3NlZC5cbiAgICovXG4gICdzaXgtZGV0YWlscy1oaWRlJzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTaXhEZXRhaWxzRW1wdHlQYXlsb2FkPj47XG4gIC8qKlxuICAgKiBFbWl0dGVkIGFmdGVyIHRoZSBkZXRhaWxzIGNsb3NlcyBhbmQgYWxsIHRyYW5zaXRpb25zIGFyZSBjb21wbGV0ZS5cbiAgICovXG4gICdzaXgtZGV0YWlscy1hZnRlci1oaWRlJzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTaXhEZXRhaWxzRW1wdHlQYXlsb2FkPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2xhYmVsJywgJ25vSGVhZGVyJywgJ29wZW4nXSxcbiAgbWV0aG9kczogWydzaG93JywgJ2hpZGUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NpeC1kaWFsb2cnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2xhYmVsJywgJ25vSGVhZGVyJywgJ29wZW4nXSxcbn0pXG5leHBvcnQgY2xhc3MgU2l4RGlhbG9nIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc2l4LWRpYWxvZy1zaG93JywgJ3NpeC1kaWFsb2ctYWZ0ZXItc2hvdycsICdzaXgtZGlhbG9nLWhpZGUnLCAnc2l4LWRpYWxvZy1hZnRlci1oaWRlJywgJ3NpeC1kaWFsb2ctaW5pdGlhbC1mb2N1cycsICdzaXgtZGlhbG9nLW92ZXJsYXktZGlzbWlzcyddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgRW1wdHlQYXlsb2FkIGFzIElTaXhEaWFsb2dFbXB0eVBheWxvYWQgfSBmcm9tICdAc2l4LWdyb3VwL3VpLWxpYnJhcnknO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU2l4RGlhbG9nIGV4dGVuZHMgQ29tcG9uZW50cy5TaXhEaWFsb2cge1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSBkaWFsb2cgb3BlbnMuIENhbGxpbmcgYGV2ZW50LnByZXZlbnREZWZhdWx0KClgIHdpbGwgcHJldmVudCBpdCBmcm9tIGJlaW5nIG9wZW5lZC5cbiAgICovXG4gICdzaXgtZGlhbG9nLXNob3cnOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVNpeERpYWxvZ0VtcHR5UGF5bG9hZD4+O1xuICAvKipcbiAgICogRW1pdHRlZCBhZnRlciB0aGUgZGlhbG9nIG9wZW5zIGFuZCBhbGwgdHJhbnNpdGlvbnMgYXJlIGNvbXBsZXRlLlxuICAgKi9cbiAgJ3NpeC1kaWFsb2ctYWZ0ZXItc2hvdyc6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU2l4RGlhbG9nRW1wdHlQYXlsb2FkPj47XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIGRpYWxvZyBjbG9zZXMuIENhbGxpbmcgYGV2ZW50LnByZXZlbnREZWZhdWx0KClgIHdpbGwgcHJldmVudCBpdCBmcm9tIGJlaW5nIGNsb3NlZC5cbiAgICovXG4gICdzaXgtZGlhbG9nLWhpZGUnOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVNpeERpYWxvZ0VtcHR5UGF5bG9hZD4+O1xuICAvKipcbiAgICogRW1pdHRlZCBhZnRlciB0aGUgZGlhbG9nIGNsb3NlcyBhbmQgYWxsIHRyYW5zaXRpb25zIGFyZSBjb21wbGV0ZS5cbiAgICovXG4gICdzaXgtZGlhbG9nLWFmdGVyLWhpZGUnOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVNpeERpYWxvZ0VtcHR5UGF5bG9hZD4+O1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSBkaWFsb2cgb3BlbnMgYW5kIHRoZSBwYW5lbCBnYWlucyBmb2N1cy4gQ2FsbGluZyBgZXZlbnQucHJldmVudERlZmF1bHQoKWAgd2lsbCBwcmV2ZW50IGZvY3VzIGFuZFxuYWxsb3cgeW91IHRvIHNldCBpdCBvbiBhIGRpZmZlcmVudCBlbGVtZW50IGluIHRoZSBkaWFsb2csIHN1Y2ggYXMgYW4gaW5wdXQgb3IgYnV0dG9uLlxuICAgKi9cbiAgJ3NpeC1kaWFsb2ctaW5pdGlhbC1mb2N1cyc6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU2l4RGlhbG9nRW1wdHlQYXlsb2FkPj47XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIG92ZXJsYXkgaXMgY2xpY2tlZC4gQ2FsbGluZyBgZXZlbnQucHJldmVudERlZmF1bHQoKWAgd2lsbCBwcmV2ZW50IHRoZSBkaWFsb2cgZnJvbSBjbG9zaW5nLlxuICAgKi9cbiAgJ3NpeC1kaWFsb2ctb3ZlcmxheS1kaXNtaXNzJzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTaXhEaWFsb2dFbXB0eVBheWxvYWQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY29udGFpbmVkJywgJ2xhYmVsJywgJ25vSGVhZGVyJywgJ29wZW4nLCAncGxhY2VtZW50J10sXG4gIG1ldGhvZHM6IFsnc2hvdycsICdoaWRlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzaXgtZHJhd2VyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjb250YWluZWQnLCAnbGFiZWwnLCAnbm9IZWFkZXInLCAnb3BlbicsICdwbGFjZW1lbnQnXSxcbn0pXG5leHBvcnQgY2xhc3MgU2l4RHJhd2VyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc2l4LWRyYXdlci1zaG93JywgJ3NpeC1kcmF3ZXItYWZ0ZXItc2hvdycsICdzaXgtZHJhd2VyLWhpZGUnLCAnc2l4LWRyYXdlci1hZnRlci1oaWRlJywgJ3NpeC1kcmF3ZXItaW5pdGlhbC1mb2N1cycsICdzaXgtZHJhd2VyLW92ZXJsYXktZGlzbWlzcyddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgRW1wdHlQYXlsb2FkIGFzIElTaXhEcmF3ZXJFbXB0eVBheWxvYWQgfSBmcm9tICdAc2l4LWdyb3VwL3VpLWxpYnJhcnknO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU2l4RHJhd2VyIGV4dGVuZHMgQ29tcG9uZW50cy5TaXhEcmF3ZXIge1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSBkcmF3ZXIgb3BlbnMuIENhbGxpbmcgYGV2ZW50LnByZXZlbnREZWZhdWx0KClgIHdpbGwgcHJldmVudCBpdCBmcm9tIGJlaW5nIG9wZW5lZC5cbiAgICovXG4gICdzaXgtZHJhd2VyLXNob3cnOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVNpeERyYXdlckVtcHR5UGF5bG9hZD4+O1xuICAvKipcbiAgICogRW1pdHRlZCBhZnRlciB0aGUgZHJhd2VyIG9wZW5zIGFuZCBhbGwgdHJhbnNpdGlvbnMgYXJlIGNvbXBsZXRlLlxuICAgKi9cbiAgJ3NpeC1kcmF3ZXItYWZ0ZXItc2hvdyc6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU2l4RHJhd2VyRW1wdHlQYXlsb2FkPj47XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIGRyYXdlciBjbG9zZXMuIENhbGxpbmcgYGV2ZW50LnByZXZlbnREZWZhdWx0KClgIHdpbGwgcHJldmVudCBpdCBmcm9tIGJlaW5nIGNsb3NlZC5cbiAgICovXG4gICdzaXgtZHJhd2VyLWhpZGUnOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVNpeERyYXdlckVtcHR5UGF5bG9hZD4+O1xuICAvKipcbiAgICogRW1pdHRlZCBhZnRlciB0aGUgZHJhd2VyIGNsb3NlcyBhbmQgYWxsIHRyYW5zaXRpb25zIGFyZSBjb21wbGV0ZS5cbiAgICovXG4gICdzaXgtZHJhd2VyLWFmdGVyLWhpZGUnOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVNpeERyYXdlckVtcHR5UGF5bG9hZD4+O1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSBkcmF3ZXIgb3BlbnMgYW5kIHRoZSBwYW5lbCBnYWlucyBmb2N1cy4gQ2FsbGluZyBgZXZlbnQucHJldmVudERlZmF1bHQoKWAgd2lsbCBwcmV2ZW50IGZvY3VzIGFuZFxuYWxsb3cgeW91IHRvIHNldCBpdCBvbiBhIGRpZmZlcmVudCBlbGVtZW50IGluIHRoZSBkcmF3ZXIsIHN1Y2ggYXMgYW4gaW5wdXQgb3IgYnV0dG9uLlxuICAgKi9cbiAgJ3NpeC1kcmF3ZXItaW5pdGlhbC1mb2N1cyc6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU2l4RHJhd2VyRW1wdHlQYXlsb2FkPj47XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIG92ZXJsYXkgaXMgY2xpY2tlZC4gQ2FsbGluZyBgZXZlbnQucHJldmVudERlZmF1bHQoKWAgd2lsbCBwcmV2ZW50IHRoZSBkcmF3ZXIgZnJvbSBjbG9zaW5nLlxuICAgKi9cbiAgJ3NpeC1kcmF3ZXItb3ZlcmxheS1kaXNtaXNzJzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTaXhEcmF3ZXJFbXB0eVBheWxvYWQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYXN5bmNGaWx0ZXInLCAnYXV0b2ZvY3VzRmlsdGVyJywgJ2Nsb3NlT25TZWxlY3QnLCAnY29udGFpbmluZ0VsZW1lbnQnLCAnZGlzYWJsZUhpZGVPbkVudGVyQW5kU3BhY2UnLCAnZGlzdGFuY2UnLCAnZmlsdGVyJywgJ2ZpbHRlckRlYm91bmNlJywgJ2ZpbHRlclBsYWNlaG9sZGVyJywgJ2hvaXN0JywgJ29wZW4nLCAnb3B0aW9ucycsICdwbGFjZW1lbnQnLCAnc2tpZGRpbmcnLCAndmlydHVhbFNjcm9sbCddLFxuICBtZXRob2RzOiBbJ3Nob3cnLCAnaGlkZScsICdyZXBvc2l0aW9uJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzaXgtZHJvcGRvd24nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FzeW5jRmlsdGVyJywgJ2F1dG9mb2N1c0ZpbHRlcicsICdjbG9zZU9uU2VsZWN0JywgJ2NvbnRhaW5pbmdFbGVtZW50JywgJ2Rpc2FibGVIaWRlT25FbnRlckFuZFNwYWNlJywgJ2Rpc3RhbmNlJywgJ2ZpbHRlcicsICdmaWx0ZXJEZWJvdW5jZScsICdmaWx0ZXJQbGFjZWhvbGRlcicsICdob2lzdCcsICdvcGVuJywgJ29wdGlvbnMnLCAncGxhY2VtZW50JywgJ3NraWRkaW5nJywgJ3ZpcnR1YWxTY3JvbGwnXSxcbn0pXG5leHBvcnQgY2xhc3MgU2l4RHJvcGRvd24ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzaXgtZHJvcGRvd24tc2hvdycsICdzaXgtZHJvcGRvd24tYWZ0ZXItc2hvdycsICdzaXgtZHJvcGRvd24taGlkZScsICdzaXgtZHJvcGRvd24tYWZ0ZXItaGlkZScsICdzaXgtZHJvcGRvd24tYXV0by1maWx0ZXItZmlyZWQnLCAnc2l4LWFzeW5jLWZpbHRlci1maXJlZCcsICdzaXgtZHJvcGRvd24tc2Nyb2xsJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBFbXB0eVBheWxvYWQgYXMgSVNpeERyb3Bkb3duRW1wdHlQYXlsb2FkIH0gZnJvbSAnQHNpeC1ncm91cC91aS1saWJyYXJ5JztcbmltcG9ydCB0eXBlIHsgU2l4RHJvcGRvd25BdXRvRmlsdGVyUGF5bG9hZCBhcyBJU2l4RHJvcGRvd25TaXhEcm9wZG93bkF1dG9GaWx0ZXJQYXlsb2FkIH0gZnJvbSAnQHNpeC1ncm91cC91aS1saWJyYXJ5JztcbmltcG9ydCB0eXBlIHsgU2l4RHJvcGRvd25Bc3luY0ZpbHRlclBheWxvYWQgYXMgSVNpeERyb3Bkb3duU2l4RHJvcGRvd25Bc3luY0ZpbHRlclBheWxvYWQgfSBmcm9tICdAc2l4LWdyb3VwL3VpLWxpYnJhcnknO1xuaW1wb3J0IHR5cGUgeyBTaXhEcm9wZG93blNjcm9sbFBheWxvYWQgYXMgSVNpeERyb3Bkb3duU2l4RHJvcGRvd25TY3JvbGxQYXlsb2FkIH0gZnJvbSAnQHNpeC1ncm91cC91aS1saWJyYXJ5JztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFNpeERyb3Bkb3duIGV4dGVuZHMgQ29tcG9uZW50cy5TaXhEcm9wZG93biB7XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIGRyb3Bkb3duIG9wZW5zLiBDYWxsaW5nIGBldmVudC5wcmV2ZW50RGVmYXVsdCgpYCB3aWxsIHByZXZlbnQgaXQgZnJvbSBiZWluZyBvcGVuZWQuXG4gICAqL1xuICAnc2l4LWRyb3Bkb3duLXNob3cnOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVNpeERyb3Bkb3duRW1wdHlQYXlsb2FkPj47XG4gIC8qKlxuICAgKiBFbWl0dGVkIGFmdGVyIHRoZSBkcm9wZG93biBvcGVucyBhbmQgYWxsIHRyYW5zaXRpb25zIGFyZSBjb21wbGV0ZS5cbiAgICovXG4gICdzaXgtZHJvcGRvd24tYWZ0ZXItc2hvdyc6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU2l4RHJvcGRvd25FbXB0eVBheWxvYWQ+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgZHJvcGRvd24gY2xvc2VzLiBDYWxsaW5nIGBldmVudC5wcmV2ZW50RGVmYXVsdCgpYCB3aWxsIHByZXZlbnQgaXQgZnJvbSBiZWluZyBjbG9zZWQuXG4gICAqL1xuICAnc2l4LWRyb3Bkb3duLWhpZGUnOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVNpeERyb3Bkb3duRW1wdHlQYXlsb2FkPj47XG4gIC8qKlxuICAgKiBFbWl0dGVkIGFmdGVyIHRoZSBkcm9wZG93biBjbG9zZXMgYW5kIGFsbCB0cmFuc2l0aW9ucyBhcmUgY29tcGxldGUuXG4gICAqL1xuICAnc2l4LWRyb3Bkb3duLWFmdGVyLWhpZGUnOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVNpeERyb3Bkb3duRW1wdHlQYXlsb2FkPj47XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIGF1dG8gZmlsdGVyIGlzIHRyaWdnZXJlZFxuICAgKi9cbiAgJ3NpeC1kcm9wZG93bi1hdXRvLWZpbHRlci1maXJlZCc6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU2l4RHJvcGRvd25TaXhEcm9wZG93bkF1dG9GaWx0ZXJQYXlsb2FkPj47XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIGFzeW5jIGZpbHRlciBpcyB0cmlnZ2VyZWRcbiAgICovXG4gICdzaXgtYXN5bmMtZmlsdGVyLWZpcmVkJzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTaXhEcm9wZG93blNpeERyb3Bkb3duQXN5bmNGaWx0ZXJQYXlsb2FkPj47XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIHVzZXIgc2Nyb2xscyBpbnNpZGUgZHJvcGRvd24gcGFuZWwuXG4gICAqL1xuICAnc2l4LWRyb3Bkb3duLXNjcm9sbCc6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU2l4RHJvcGRvd25TaXhEcm9wZG93blNjcm9sbFBheWxvYWQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NpeC1lcnJvcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFtdLFxufSlcbmV4cG9ydCBjbGFzcyBTaXhFcnJvciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFNpeEVycm9yIGV4dGVuZHMgQ29tcG9uZW50cy5TaXhFcnJvciB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjdXN0b21EZXNjcmlwdGlvbicsICdjdXN0b21JY29uJywgJ2N1c3RvbVRpdGxlJywgJ2Vycm9yQ29kZScsICdsYW5ndWFnZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2l4LWVycm9yLXBhZ2UnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2N1c3RvbURlc2NyaXB0aW9uJywgJ2N1c3RvbUljb24nLCAnY3VzdG9tVGl0bGUnLCAnZXJyb3JDb2RlJywgJ2xhbmd1YWdlJ10sXG59KVxuZXhwb3J0IGNsYXNzIFNpeEVycm9yUGFnZSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFNpeEVycm9yUGFnZSBleHRlbmRzIENvbXBvbmVudHMuU2l4RXJyb3JQYWdlIHt9XG5cblxuQFByb3h5Q21wKHtcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzaXgtZmlsZS1saXN0JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogW10sXG59KVxuZXhwb3J0IGNsYXNzIFNpeEZpbGVMaXN0IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU2l4RmlsZUxpc3QgZXh0ZW5kcyBDb21wb25lbnRzLlNpeEZpbGVMaXN0IHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2RhdGUnLCAnaWRlbnRpZmllcicsICduYW1lJywgJ25vZGVsZXRlJywgJ25vZG93bmxvYWQnLCAnc2l6ZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2l4LWZpbGUtbGlzdC1pdGVtJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydkYXRlJywgJ2lkZW50aWZpZXInLCAnbmFtZScsICdub2RlbGV0ZScsICdub2Rvd25sb2FkJywgJ3NpemUnXSxcbn0pXG5leHBvcnQgY2xhc3MgU2l4RmlsZUxpc3RJdGVtIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc2l4LWZpbGUtbGlzdC1pdGVtLWRvd25sb2FkJywgJ3NpeC1maWxlLWxpc3QtaXRlbS1yZW1vdmUnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFNpeEZpbGVMaXN0RG93bmxvYWRQYXlsb2FkIGFzIElTaXhGaWxlTGlzdEl0ZW1TaXhGaWxlTGlzdERvd25sb2FkUGF5bG9hZCB9IGZyb20gJ0BzaXgtZ3JvdXAvdWktbGlicmFyeSc7XG5pbXBvcnQgdHlwZSB7IFNpeEZpbGVMaXN0UmVtb3ZlUGF5bG9hZCBhcyBJU2l4RmlsZUxpc3RJdGVtU2l4RmlsZUxpc3RSZW1vdmVQYXlsb2FkIH0gZnJvbSAnQHNpeC1ncm91cC91aS1saWJyYXJ5JztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFNpeEZpbGVMaXN0SXRlbSBleHRlbmRzIENvbXBvbmVudHMuU2l4RmlsZUxpc3RJdGVtIHtcbiAgLyoqXG4gICAqIFRyaWdnZXJlZCBvbiBmaWxlIGRvd25sb2FkLlxuICAgKi9cbiAgJ3NpeC1maWxlLWxpc3QtaXRlbS1kb3dubG9hZCc6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU2l4RmlsZUxpc3RJdGVtU2l4RmlsZUxpc3REb3dubG9hZFBheWxvYWQ+PjtcbiAgLyoqXG4gICAqIFRyaWdnZXJlZCBvbiBmaWxlIHJlbW92ZS5cbiAgICovXG4gICdzaXgtZmlsZS1saXN0LWl0ZW0tcmVtb3ZlJzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTaXhGaWxlTGlzdEl0ZW1TaXhGaWxlTGlzdFJlbW92ZVBheWxvYWQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYWNjZXB0JywgJ2NvbXBhY3QnLCAnZGlzYWJsZWQnLCAnbGFiZWwnLCAnbWF4RmlsZVNpemUnLCAnbXVsdGlwbGUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NpeC1maWxlLXVwbG9hZCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYWNjZXB0JywgJ2NvbXBhY3QnLCAnZGlzYWJsZWQnLCAnbGFiZWwnLCAnbWF4RmlsZVNpemUnLCAnbXVsdGlwbGUnXSxcbn0pXG5leHBvcnQgY2xhc3MgU2l4RmlsZVVwbG9hZCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3NpeC1maWxlLXVwbG9hZC1zdWNjZXNzJywgJ3NpeC1maWxlLXVwbG9hZC1mYWlsdXJlJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTaXhGaWxlVXBsb2FkU3VjY2Vzc1BheWxvYWQgYXMgSVNpeEZpbGVVcGxvYWRTaXhGaWxlVXBsb2FkU3VjY2Vzc1BheWxvYWQgfSBmcm9tICdAc2l4LWdyb3VwL3VpLWxpYnJhcnknO1xuaW1wb3J0IHR5cGUgeyBTaXhGaWxlVXBsb2FkRmFpbHVyZVBheWxvYWQgYXMgSVNpeEZpbGVVcGxvYWRTaXhGaWxlVXBsb2FkRmFpbHVyZVBheWxvYWQgfSBmcm9tICdAc2l4LWdyb3VwL3VpLWxpYnJhcnknO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU2l4RmlsZVVwbG9hZCBleHRlbmRzIENvbXBvbmVudHMuU2l4RmlsZVVwbG9hZCB7XG4gIC8qKlxuICAgKiBUcmlnZ2VycyB3aGVuIGEgZmlsZSBpcyBhZGRlZC5cbiAgICovXG4gICdzaXgtZmlsZS11cGxvYWQtc3VjY2Vzcyc6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU2l4RmlsZVVwbG9hZFNpeEZpbGVVcGxvYWRTdWNjZXNzUGF5bG9hZD4+O1xuICAvKipcbiAgICogVHJpZ2dlcnMgd2hlbiBhbiB1cGxvYWRlZCBmaWxlIGRvZXNuJ3QgbWF0Y2ggTUlNRSB0eXBlIG9yIG1heCBmaWxlIHNpemUuXG4gICAqL1xuICAnc2l4LWZpbGUtdXBsb2FkLWZhaWx1cmUnOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVNpeEZpbGVVcGxvYWRTaXhGaWxlVXBsb2FkRmFpbHVyZVBheWxvYWQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NpeC1mb290ZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbXSxcbn0pXG5leHBvcnQgY2xhc3MgU2l4Rm9vdGVyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU2l4Rm9vdGVyIGV4dGVuZHMgQ29tcG9uZW50cy5TaXhGb290ZXIge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnZGlzYWJsZWQnLCAnaGVscFRleHQnLCAnbGFiZWwnLCAncmVxdWlyZWQnLCAnc2l6ZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2l4LWdyb3VwLWxhYmVsJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydkaXNhYmxlZCcsICdoZWxwVGV4dCcsICdsYWJlbCcsICdyZXF1aXJlZCcsICdzaXplJ10sXG59KVxuZXhwb3J0IGNsYXNzIFNpeEdyb3VwTGFiZWwge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTaXhHcm91cExhYmVsIGV4dGVuZHMgQ29tcG9uZW50cy5TaXhHcm91cExhYmVsIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2NsaWNrYWJsZUxvZ28nLCAnb3BlbkhhbWJ1cmdlck1lbnUnLCAnb3BlblNlYXJjaCcsICdzaGlmdENvbnRlbnQnXSxcbiAgbWV0aG9kczogWydzZXRTZWFyY2hPcGVuU3RhdGUnLCAnZ2V0SXNTZWFyY2hPcGVuJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzaXgtaGVhZGVyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjbGlja2FibGVMb2dvJywgJ29wZW5IYW1idXJnZXJNZW51JywgJ29wZW5TZWFyY2gnLCAnc2hpZnRDb250ZW50J10sXG59KVxuZXhwb3J0IGNsYXNzIFNpeEhlYWRlciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3NpeC1oZWFkZXItYXBwLW5hbWUtY2xpY2tlZCcsICdzaXgtaGVhZGVyLWFwcC1zd2l0Y2hlci1zZWxlY3QnLCAnc2l4LWhlYWRlci1wcm9maWxlLXNlbGVjdCcsICdzaXgtaGVhZGVyLWhhbWJ1cmdlci1tZW51LWNsaWNrZWQnLCAnc2l4LWhlYWRlci1sb2dvLWNsaWNrZWQnLCAnc2l4LWhlYWRlci1zZWFyY2gtZmllbGQtdG9nZ2xlJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBFbXB0eVBheWxvYWQgYXMgSVNpeEhlYWRlckVtcHR5UGF5bG9hZCB9IGZyb20gJ0BzaXgtZ3JvdXAvdWktbGlicmFyeSc7XG5pbXBvcnQgdHlwZSB7IFNpeEhlYWRlckFwcFN3aXRjaGVyU2VsZWN0UGF5bG9hZCBhcyBJU2l4SGVhZGVyU2l4SGVhZGVyQXBwU3dpdGNoZXJTZWxlY3RQYXlsb2FkIH0gZnJvbSAnQHNpeC1ncm91cC91aS1saWJyYXJ5JztcbmltcG9ydCB0eXBlIHsgU2l4SGVhZGVyUHJvZmlsZVNlbGVjdFBheWxvYWQgYXMgSVNpeEhlYWRlclNpeEhlYWRlclByb2ZpbGVTZWxlY3RQYXlsb2FkIH0gZnJvbSAnQHNpeC1ncm91cC91aS1saWJyYXJ5JztcbmltcG9ydCB0eXBlIHsgU2l4SGVhZGVyU2VhcmNoRmllbGRUb2dnbGUgYXMgSVNpeEhlYWRlclNpeEhlYWRlclNlYXJjaEZpZWxkVG9nZ2xlIH0gZnJvbSAnQHNpeC1ncm91cC91aS1saWJyYXJ5JztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFNpeEhlYWRlciBleHRlbmRzIENvbXBvbmVudHMuU2l4SGVhZGVyIHtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgbmFtZSBvZiB0aGUgc2VsZWN0ZWQgYXBwIGlzIGNsaWNrZWQuXG4gICAqL1xuICAnc2l4LWhlYWRlci1hcHAtbmFtZS1jbGlja2VkJzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTaXhIZWFkZXJFbXB0eVBheWxvYWQ+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiBhIG1lbnUgaXRlbSBpcyBpbiB0aGUgYXBwIHN3aXRjaGVyIG1lbnUgaXMgc2VsZWN0ZWQuXG4gICAqL1xuICAnc2l4LWhlYWRlci1hcHAtc3dpdGNoZXItc2VsZWN0JzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTaXhIZWFkZXJTaXhIZWFkZXJBcHBTd2l0Y2hlclNlbGVjdFBheWxvYWQ+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiBhIG1lbnUgaXRlbSBpcyBpbiB0aGUgcHJvZmlsZSBtZW51IGlzIHNlbGVjdGVkLlxuICAgKi9cbiAgJ3NpeC1oZWFkZXItcHJvZmlsZS1zZWxlY3QnOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVNpeEhlYWRlclNpeEhlYWRlclByb2ZpbGVTZWxlY3RQYXlsb2FkPj47XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIGhhbWJ1cmdlciBtZW51IGlzIGNsaWNrZWQuXG4gICAqL1xuICAnc2l4LWhlYWRlci1oYW1idXJnZXItbWVudS1jbGlja2VkJzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTaXhIZWFkZXJFbXB0eVBheWxvYWQ+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgaGVhZGVyIGxvZ28gaXMgY2xpY2tlZC5cbiAgICovXG4gICdzaXgtaGVhZGVyLWxvZ28tY2xpY2tlZCc6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU2l4SGVhZGVyRW1wdHlQYXlsb2FkPj47XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gc2VhcmNoIGZpZWxkIGlzIHRvZ2dsZWQuXG4gICAqL1xuICAnc2l4LWhlYWRlci1zZWFyY2gtZmllbGQtdG9nZ2xlJzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTaXhIZWFkZXJTaXhIZWFkZXJTZWFyY2hGaWVsZFRvZ2dsZT4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydmaWxsZWQnLCAnc2l6ZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2l4LWljb24nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2ZpbGxlZCcsICdzaXplJ10sXG59KVxuZXhwb3J0IGNsYXNzIFNpeEljb24ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTaXhJY29uIGV4dGVuZHMgQ29tcG9uZW50cy5TaXhJY29uIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2Rpc2FibGVkJywgJ2h0bWwnLCAnbGFiZWwnLCAnbmFtZScsICdzaXplJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzaXgtaWNvbi1idXR0b24nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2Rpc2FibGVkJywgJ2h0bWwnLCAnbGFiZWwnLCAnbmFtZScsICdzaXplJ10sXG59KVxuZXhwb3J0IGNsYXNzIFNpeEljb25CdXR0b24ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTaXhJY29uQnV0dG9uIGV4dGVuZHMgQ29tcG9uZW50cy5TaXhJY29uQnV0dG9uIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2F1dG9jYXBpdGFsaXplJywgJ2F1dG9jb21wbGV0ZScsICdhdXRvY29ycmVjdCcsICdhdXRvZm9jdXMnLCAnY2xlYXJhYmxlJywgJ2Rpc2FibGVkJywgJ2Vycm9yVGV4dCcsICdlcnJvclRleHRDb3VudCcsICdoZWxwVGV4dCcsICdpbnB1dG1vZGUnLCAnaW52YWxpZCcsICdsYWJlbCcsICdsaW5lJywgJ21heCcsICdtYXhsZW5ndGgnLCAnbWluJywgJ21pbmxlbmd0aCcsICduYW1lJywgJ3BhdHRlcm4nLCAncGlsbCcsICdwbGFjZWhvbGRlcicsICdyZWFkb25seScsICdyZXF1aXJlZCcsICdzaXplJywgJ3NwZWxsY2hlY2snLCAnc3RlcCcsICd0b2dnbGVQYXNzd29yZCcsICd0eXBlJywgJ3ZhbHVlJ10sXG4gIG1ldGhvZHM6IFsnc2V0Rm9jdXMnLCAncmVtb3ZlRm9jdXMnLCAnc2VsZWN0JywgJ3NldFNlbGVjdGlvblJhbmdlJywgJ3NldFJhbmdlVGV4dCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2l4LWlucHV0JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhdXRvY2FwaXRhbGl6ZScsICdhdXRvY29tcGxldGUnLCAnYXV0b2NvcnJlY3QnLCAnYXV0b2ZvY3VzJywgJ2NsZWFyYWJsZScsICdkaXNhYmxlZCcsICdlcnJvclRleHQnLCAnZXJyb3JUZXh0Q291bnQnLCAnaGVscFRleHQnLCAnaW5wdXRtb2RlJywgJ2ludmFsaWQnLCAnbGFiZWwnLCAnbGluZScsICdtYXgnLCAnbWF4bGVuZ3RoJywgJ21pbicsICdtaW5sZW5ndGgnLCAnbmFtZScsICdwYXR0ZXJuJywgJ3BpbGwnLCAncGxhY2Vob2xkZXInLCAncmVhZG9ubHknLCAncmVxdWlyZWQnLCAnc2l6ZScsICdzcGVsbGNoZWNrJywgJ3N0ZXAnLCAndG9nZ2xlUGFzc3dvcmQnLCAndHlwZScsICd2YWx1ZSddLFxufSlcbmV4cG9ydCBjbGFzcyBTaXhJbnB1dCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3NpeC1pbnB1dC1jaGFuZ2UnLCAnc2l4LWlucHV0LWNsZWFyJywgJ3NpeC1pbnB1dC1pbnB1dCcsICdzaXgtaW5wdXQtZm9jdXMnLCAnc2l4LWlucHV0LWJsdXInXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IEVtcHR5UGF5bG9hZCBhcyBJU2l4SW5wdXRFbXB0eVBheWxvYWQgfSBmcm9tICdAc2l4LWdyb3VwL3VpLWxpYnJhcnknO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU2l4SW5wdXQgZXh0ZW5kcyBDb21wb25lbnRzLlNpeElucHV0IHtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgY29udHJvbCdzIHZhbHVlIGNoYW5nZXMuIEFjY2VzcyB0aGUgbmV3IHZhbHVlIHZpYSBldmVudC50YXJnZXQudmFsdWUuXG4gICAqL1xuICAnc2l4LWlucHV0LWNoYW5nZSc6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU2l4SW5wdXRFbXB0eVBheWxvYWQ+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgY2xlYXIgYnV0dG9uIGlzIGFjdGl2YXRlZC5cbiAgICovXG4gICdzaXgtaW5wdXQtY2xlYXInOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVNpeElucHV0RW1wdHlQYXlsb2FkPj47XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIGNvbnRyb2wgcmVjZWl2ZXMgaW5wdXQuIEFjY2VzcyB0aGUgbmV3IHZhbHVlIHZpYSBldmVudC50YXJnZXQudmFsdWUuXG4gICAqL1xuICAnc2l4LWlucHV0LWlucHV0JzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTaXhJbnB1dEVtcHR5UGF5bG9hZD4+O1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSBjb250cm9sIGdhaW5zIGZvY3VzLlxuICAgKi9cbiAgJ3NpeC1pbnB1dC1mb2N1cyc6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU2l4SW5wdXRFbXB0eVBheWxvYWQ+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgY29udHJvbCBsb3NlcyBmb2N1cy4gQWNjZXNzIHRoZSBuZXcgdmFsdWUgdmlhIGV2ZW50LnRhcmdldC52YWx1ZS5cbiAgICovXG4gICdzaXgtaW5wdXQtYmx1cic6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU2l4SW5wdXRFbXB0eVBheWxvYWQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnZGVib3VuY2UnLCAnaW50ZXJ2YWwnLCAnaXRlbXMnLCAnbWF4JywgJ21pbicsICdwYWRkZWQnLCAncGFkZGluZ0NoYXInLCAncGFkZGluZ0RpcmVjdGlvbicsICdwYWRkaW5nTGVuZ3RoJywgJ3JvdW5kdHJpcCcsICdzdGVwJywgJ3RpbWVvdXQnLCAndHlwZScsICd2YWx1ZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2l4LWl0ZW0tcGlja2VyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydkZWJvdW5jZScsICdpbnRlcnZhbCcsICdpdGVtcycsICdtYXgnLCAnbWluJywgJ3BhZGRlZCcsICdwYWRkaW5nQ2hhcicsICdwYWRkaW5nRGlyZWN0aW9uJywgJ3BhZGRpbmdMZW5ndGgnLCAncm91bmR0cmlwJywgJ3N0ZXAnLCAndGltZW91dCcsICd0eXBlJywgJ3ZhbHVlJ10sXG59KVxuZXhwb3J0IGNsYXNzIFNpeEl0ZW1QaWNrZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzaXgtaXRlbS1waWNrZXItY2hhbmdlJywgJ3NpeC1pdGVtLXBpY2tlci1jaGFuZ2UtZGVib3VuY2VkJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTaXhJdGVtUGlja2VyQ2hhbmdlUGF5bG9hZCBhcyBJU2l4SXRlbVBpY2tlclNpeEl0ZW1QaWNrZXJDaGFuZ2VQYXlsb2FkIH0gZnJvbSAnQHNpeC1ncm91cC91aS1saWJyYXJ5JztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFNpeEl0ZW1QaWNrZXIgZXh0ZW5kcyBDb21wb25lbnRzLlNpeEl0ZW1QaWNrZXIge1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSBpdGVtIHBpY2tlcidzIHZhbHVlIGNoYW5nZXNcbiAgICovXG4gICdzaXgtaXRlbS1waWNrZXItY2hhbmdlJzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTaXhJdGVtUGlja2VyU2l4SXRlbVBpY2tlckNoYW5nZVBheWxvYWQ+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgaXRlbSBwaWNrZXIncyB2YWx1ZSBjaGFuZ2VzLCBidXQgZGVib3VuY2VkXG4gICAqL1xuICAnc2l4LWl0ZW0tcGlja2VyLWNoYW5nZS1kZWJvdW5jZWQnOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVNpeEl0ZW1QaWNrZXJTaXhJdGVtUGlja2VyQ2hhbmdlUGF5bG9hZD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydsYW5ndWFnZXMnLCAnc2VsZWN0ZWQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NpeC1sYW5ndWFnZS1zd2l0Y2hlcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnbGFuZ3VhZ2VzJywgJ3NlbGVjdGVkJ10sXG59KVxuZXhwb3J0IGNsYXNzIFNpeExhbmd1YWdlU3dpdGNoZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzaXgtbGFuZ3VhZ2Utc3dpdGNoZXItY2hhbmdlJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTaXhMYW5ndWFnZVN3aXRjaGVyQ2hhbmdlUGF5bG9hZCBhcyBJU2l4TGFuZ3VhZ2VTd2l0Y2hlclNpeExhbmd1YWdlU3dpdGNoZXJDaGFuZ2VQYXlsb2FkIH0gZnJvbSAnQHNpeC1ncm91cC91aS1saWJyYXJ5JztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFNpeExhbmd1YWdlU3dpdGNoZXIgZXh0ZW5kcyBDb21wb25lbnRzLlNpeExhbmd1YWdlU3dpdGNoZXIge1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSBsYW5ndWFnZSBzd2l0Y2hlcnMgdmFsdWUgY2hhbmdlc1xuICAgKi9cbiAgJ3NpeC1sYW5ndWFnZS1zd2l0Y2hlci1jaGFuZ2UnOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVNpeExhbmd1YWdlU3dpdGNoZXJTaXhMYW5ndWFnZVN3aXRjaGVyQ2hhbmdlUGF5bG9hZD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjb2x1bW5zJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzaXgtbGF5b3V0LWdyaWQnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2NvbHVtbnMnXSxcbn0pXG5leHBvcnQgY2xhc3MgU2l4TGF5b3V0R3JpZCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFNpeExheW91dEdyaWQgZXh0ZW5kcyBDb21wb25lbnRzLlNpeExheW91dEdyaWQge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsncGFkZGVkJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzaXgtbWFpbi1jb250YWluZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ3BhZGRlZCddLFxufSlcbmV4cG9ydCBjbGFzcyBTaXhNYWluQ29udGFpbmVyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU2l4TWFpbkNvbnRhaW5lciBleHRlbmRzIENvbXBvbmVudHMuU2l4TWFpbkNvbnRhaW5lciB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydpdGVtU2l6ZScsICdpdGVtcycsICdpdGVtc1Nob3duJywgJ3JlbW92ZUJveFNoYWRvdycsICdzY3JvbGxpbmdEZWJvdW5jZScsICd2aXJ0dWFsU2Nyb2xsJ10sXG4gIG1ldGhvZHM6IFsndHlwZVRvU2VsZWN0J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzaXgtbWVudScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnaXRlbVNpemUnLCAnaXRlbXMnLCAnaXRlbXNTaG93bicsICdyZW1vdmVCb3hTaGFkb3cnLCAnc2Nyb2xsaW5nRGVib3VuY2UnLCAndmlydHVhbFNjcm9sbCddLFxufSlcbmV4cG9ydCBjbGFzcyBTaXhNZW51IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc2l4LW1lbnUtaXRlbS1zZWxlY3RlZCddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU2l4TWVudUl0ZW1TZWxlY3RlZFBheWxvYWQgYXMgSVNpeE1lbnVTaXhNZW51SXRlbVNlbGVjdGVkUGF5bG9hZCB9IGZyb20gJ0BzaXgtZ3JvdXAvdWktbGlicmFyeSc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTaXhNZW51IGV4dGVuZHMgQ29tcG9uZW50cy5TaXhNZW51IHtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiBhIG1lbnUgaXRlbSBpcyBzZWxlY3RlZC5cbiAgICovXG4gICdzaXgtbWVudS1pdGVtLXNlbGVjdGVkJzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTaXhNZW51U2l4TWVudUl0ZW1TZWxlY3RlZFBheWxvYWQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NpeC1tZW51LWRpdmlkZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbXSxcbn0pXG5leHBvcnQgY2xhc3MgU2l4TWVudURpdmlkZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTaXhNZW51RGl2aWRlciBleHRlbmRzIENvbXBvbmVudHMuU2l4TWVudURpdmlkZXIge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY2hlY2tlZCcsICdkaXNhYmxlZCcsICd2YWx1ZSddLFxuICBtZXRob2RzOiBbJ3NldEZvY3VzJywgJ3JlbW92ZUZvY3VzJywgJ2dldFRleHRMYWJlbCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2l4LW1lbnUtaXRlbScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY2hlY2tlZCcsICdkaXNhYmxlZCcsICd2YWx1ZSddLFxufSlcbmV4cG9ydCBjbGFzcyBTaXhNZW51SXRlbSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFNpeE1lbnVJdGVtIGV4dGVuZHMgQ29tcG9uZW50cy5TaXhNZW51SXRlbSB7fVxuXG5cbkBQcm94eUNtcCh7XG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2l4LW1lbnUtbGFiZWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbXSxcbn0pXG5leHBvcnQgY2xhc3MgU2l4TWVudUxhYmVsIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU2l4TWVudUxhYmVsIGV4dGVuZHMgQ29tcG9uZW50cy5TaXhNZW51TGFiZWwge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnc2l6ZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2l4LXBpY3RvJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydzaXplJ10sXG59KVxuZXhwb3J0IGNsYXNzIFNpeFBpY3RvIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU2l4UGljdG8gZXh0ZW5kcyBDb21wb25lbnRzLlNpeFBpY3RvIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2luZGV0ZXJtaW5hdGUnLCAncGVyY2VudGFnZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2l4LXByb2dyZXNzLWJhcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnaW5kZXRlcm1pbmF0ZScsICdwZXJjZW50YWdlJ10sXG59KVxuZXhwb3J0IGNsYXNzIFNpeFByb2dyZXNzQmFyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU2l4UHJvZ3Jlc3NCYXIgZXh0ZW5kcyBDb21wb25lbnRzLlNpeFByb2dyZXNzQmFyIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ3BlcmNlbnRhZ2UnLCAnc2l6ZScsICdzdHJva2VXaWR0aCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2l4LXByb2dyZXNzLXJpbmcnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ3BlcmNlbnRhZ2UnLCAnc2l6ZScsICdzdHJva2VXaWR0aCddLFxufSlcbmV4cG9ydCBjbGFzcyBTaXhQcm9ncmVzc1Jpbmcge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTaXhQcm9ncmVzc1JpbmcgZXh0ZW5kcyBDb21wb25lbnRzLlNpeFByb2dyZXNzUmluZyB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjaGVja2VkJywgJ2Rpc2FibGVkJywgJ2ludmFsaWQnLCAnbmFtZScsICd2YWx1ZSddLFxuICBtZXRob2RzOiBbJ3NldEZvY3VzJywgJ3JlbW92ZUZvY3VzJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzaXgtcmFkaW8nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2NoZWNrZWQnLCAnZGlzYWJsZWQnLCAnaW52YWxpZCcsICduYW1lJywgJ3ZhbHVlJ10sXG59KVxuZXhwb3J0IGNsYXNzIFNpeFJhZGlvIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc2l4LXJhZGlvLWJsdXInLCAnc2l4LXJhZGlvLWNoYW5nZScsICdzaXgtcmFkaW8tZm9jdXMnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IEVtcHR5UGF5bG9hZCBhcyBJU2l4UmFkaW9FbXB0eVBheWxvYWQgfSBmcm9tICdAc2l4LWdyb3VwL3VpLWxpYnJhcnknO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU2l4UmFkaW8gZXh0ZW5kcyBDb21wb25lbnRzLlNpeFJhZGlvIHtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgY29udHJvbCBsb3NlcyBmb2N1cy5cbiAgICovXG4gICdzaXgtcmFkaW8tYmx1cic6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU2l4UmFkaW9FbXB0eVBheWxvYWQ+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgY29udHJvbCdzIGNoZWNrZWQgc3RhdGUgY2hhbmdlcy5cbiAgICovXG4gICdzaXgtcmFkaW8tY2hhbmdlJzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTaXhSYWRpb0VtcHR5UGF5bG9hZD4+O1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSBjb250cm9sIGdhaW5zIGZvY3VzLlxuICAgKi9cbiAgJ3NpeC1yYWRpby1mb2N1cyc6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU2l4UmFkaW9FbXB0eVBheWxvYWQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnZGlzYWJsZWQnLCAnZXJyb3JUZXh0JywgJ2Vycm9yVGV4dENvdW50JywgJ2hlbHBUZXh0JywgJ2ludmFsaWQnLCAnbGFiZWwnLCAnbWF4JywgJ21pbicsICduYW1lJywgJ3JlcXVpcmVkJywgJ3N0ZXAnLCAndG9vbHRpcCcsICd0b29sdGlwRm9ybWF0dGVyJywgJ3ZhbHVlJ10sXG4gIG1ldGhvZHM6IFsnc2V0Rm9jdXMnLCAncmVtb3ZlRm9jdXMnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NpeC1yYW5nZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnZGlzYWJsZWQnLCAnZXJyb3JUZXh0JywgJ2Vycm9yVGV4dENvdW50JywgJ2hlbHBUZXh0JywgJ2ludmFsaWQnLCAnbGFiZWwnLCAnbWF4JywgJ21pbicsICduYW1lJywgJ3JlcXVpcmVkJywgJ3N0ZXAnLCAndG9vbHRpcCcsICd0b29sdGlwRm9ybWF0dGVyJywgJ3ZhbHVlJ10sXG59KVxuZXhwb3J0IGNsYXNzIFNpeFJhbmdlIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc2l4LXJhbmdlLWNoYW5nZScsICdzaXgtcmFuZ2UtYmx1cicsICdzaXgtcmFuZ2UtZm9jdXMnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IEVtcHR5UGF5bG9hZCBhcyBJU2l4UmFuZ2VFbXB0eVBheWxvYWQgfSBmcm9tICdAc2l4LWdyb3VwL3VpLWxpYnJhcnknO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU2l4UmFuZ2UgZXh0ZW5kcyBDb21wb25lbnRzLlNpeFJhbmdlIHtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgY29udHJvbCdzIHZhbHVlIGNoYW5nZXMuXG4gICAqL1xuICAnc2l4LXJhbmdlLWNoYW5nZSc6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU2l4UmFuZ2VFbXB0eVBheWxvYWQ+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgY29udHJvbCBsb3NlcyBmb2N1cy5cbiAgICovXG4gICdzaXgtcmFuZ2UtYmx1cic6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU2l4UmFuZ2VFbXB0eVBheWxvYWQ+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgY29udHJvbCBnYWlucyBmb2N1cy5cbiAgICovXG4gICdzaXgtcmFuZ2UtZm9jdXMnOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVNpeFJhbmdlRW1wdHlQYXlsb2FkPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2JyZWFrcG9pbnQnLCAncGFkZGVkJywgJ3N0YWdlJywgJ3ZlcnNpb24nXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NpeC1yb290JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydicmVha3BvaW50JywgJ3BhZGRlZCcsICdzdGFnZScsICd2ZXJzaW9uJ10sXG59KVxuZXhwb3J0IGNsYXNzIFNpeFJvb3Qge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzaXgtcm9vdC1jb2xsYXBzZWQnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFNpeFJvb3RDb2xsYXBzZWRQYXlsb2FkIGFzIElTaXhSb290U2l4Um9vdENvbGxhcHNlZFBheWxvYWQgfSBmcm9tICdAc2l4LWdyb3VwL3VpLWxpYnJhcnknO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU2l4Um9vdCBleHRlbmRzIENvbXBvbmVudHMuU2l4Um9vdCB7XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gZGlzcGxheSBzaXplIGlzIHVwZGF0ZWQuXG4gICAqL1xuICAnc2l4LXJvb3QtY29sbGFwc2VkJzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTaXhSb290U2l4Um9vdENvbGxhcHNlZFBheWxvYWQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY2xlYXJhYmxlJywgJ2RlYm91bmNlJywgJ2Rpc2FibGVkJywgJ3BsYWNlaG9sZGVyJywgJ3ZhbHVlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzaXgtc2VhcmNoLWZpZWxkJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjbGVhcmFibGUnLCAnZGVib3VuY2UnLCAnZGlzYWJsZWQnLCAncGxhY2Vob2xkZXInLCAndmFsdWUnXSxcbn0pXG5leHBvcnQgY2xhc3MgU2l4U2VhcmNoRmllbGQge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzaXgtc2VhcmNoLWZpZWxkLWNoYW5nZSddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU2l4U2VhcmNoRmllbGRDaGFuZ2VQYXlsb2FkIGFzIElTaXhTZWFyY2hGaWVsZFNpeFNlYXJjaEZpZWxkQ2hhbmdlUGF5bG9hZCB9IGZyb20gJ0BzaXgtZ3JvdXAvdWktbGlicmFyeSc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTaXhTZWFyY2hGaWVsZCBleHRlbmRzIENvbXBvbmVudHMuU2l4U2VhcmNoRmllbGQge1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIGEgc2VhcmNoIGlzIHRyaWdnZXJlZFxuICAgKi9cbiAgJ3NpeC1zZWFyY2gtZmllbGQtY2hhbmdlJzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTaXhTZWFyY2hGaWVsZFNpeFNlYXJjaEZpZWxkQ2hhbmdlUGF5bG9hZD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhc3luY0ZpbHRlcicsICdhdXRvY29tcGxldGUnLCAnY2xlYXJhYmxlJywgJ2Rpc2FibGVkJywgJ2Vycm9yVGV4dCcsICdlcnJvclRleHRDb3VudCcsICdmaWx0ZXInLCAnZmlsdGVyRGVib3VuY2UnLCAnZmlsdGVyUGxhY2Vob2xkZXInLCAnaGVscFRleHQnLCAnaG9pc3QnLCAnaW5wdXREZWJvdW5jZScsICdpbnZhbGlkJywgJ2xhYmVsJywgJ2xpbmUnLCAnbWF4VGFnc1Zpc2libGUnLCAnbXVsdGlwbGUnLCAnbmFtZScsICdvcHRpb25zJywgJ3BpbGwnLCAncGxhY2Vob2xkZXInLCAncmVxdWlyZWQnLCAnc2l6ZScsICd2YWx1ZScsICd2aXJ0dWFsU2Nyb2xsJ10sXG4gIG1ldGhvZHM6IFsnc2V0Rm9jdXMnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NpeC1zZWxlY3QnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FzeW5jRmlsdGVyJywgJ2F1dG9jb21wbGV0ZScsICdjbGVhcmFibGUnLCAnZGlzYWJsZWQnLCAnZXJyb3JUZXh0JywgJ2Vycm9yVGV4dENvdW50JywgJ2ZpbHRlcicsICdmaWx0ZXJEZWJvdW5jZScsICdmaWx0ZXJQbGFjZWhvbGRlcicsICdoZWxwVGV4dCcsICdob2lzdCcsICdpbnB1dERlYm91bmNlJywgJ2ludmFsaWQnLCAnbGFiZWwnLCAnbGluZScsICdtYXhUYWdzVmlzaWJsZScsICdtdWx0aXBsZScsICduYW1lJywgJ29wdGlvbnMnLCAncGlsbCcsICdwbGFjZWhvbGRlcicsICdyZXF1aXJlZCcsICdzaXplJywgJ3ZhbHVlJywgJ3ZpcnR1YWxTY3JvbGwnXSxcbn0pXG5leHBvcnQgY2xhc3MgU2l4U2VsZWN0IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc2l4LXNlbGVjdC1jaGFuZ2UnLCAnc2l4LXNlbGVjdC1mb2N1cycsICdzaXgtc2VsZWN0LWJsdXInXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFNpeFNlbGVjdENoYW5nZVBheWxvYWQgYXMgSVNpeFNlbGVjdFNpeFNlbGVjdENoYW5nZVBheWxvYWQgfSBmcm9tICdAc2l4LWdyb3VwL3VpLWxpYnJhcnknO1xuaW1wb3J0IHR5cGUgeyBFbXB0eVBheWxvYWQgYXMgSVNpeFNlbGVjdEVtcHR5UGF5bG9hZCB9IGZyb20gJ0BzaXgtZ3JvdXAvdWktbGlicmFyeSc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTaXhTZWxlY3QgZXh0ZW5kcyBDb21wb25lbnRzLlNpeFNlbGVjdCB7XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIGNvbnRyb2wncyB2YWx1ZSBjaGFuZ2VzLlxuICAgKi9cbiAgJ3NpeC1zZWxlY3QtY2hhbmdlJzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTaXhTZWxlY3RTaXhTZWxlY3RDaGFuZ2VQYXlsb2FkPj47XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIGNvbnRyb2wgZ2FpbnMgZm9jdXMuXG4gICAqL1xuICAnc2l4LXNlbGVjdC1mb2N1cyc6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU2l4U2VsZWN0RW1wdHlQYXlsb2FkPj47XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIGNvbnRyb2wgbG9zZXMgZm9jdXMuXG4gICAqL1xuICAnc2l4LXNlbGVjdC1ibHVyJzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTaXhTZWxlY3RFbXB0eVBheWxvYWQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnb3BlbicsICdwb3NpdGlvbicsICd0b2dnbGVkJywgJ3dpZHRoJ10sXG4gIG1ldGhvZHM6IFsndG9nZ2xlJywgJ3Nob3cnLCAnaGlkZScsICdzZWxlY3RJdGVtQnlJbmRleCcsICdzZWxlY3RJdGVtQnlOYW1lJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzaXgtc2lkZWJhcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnb3BlbicsICdwb3NpdGlvbicsICd0b2dnbGVkJywgJ3dpZHRoJ10sXG59KVxuZXhwb3J0IGNsYXNzIFNpeFNpZGViYXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzaXgtc2lkZWJhci1zaG93JywgJ3NpeC1zaWRlYmFyLWFmdGVyLXNob3cnLCAnc2l4LXNpZGViYXItaGlkZScsICdzaXgtc2lkZWJhci1hZnRlci1oaWRlJywgJ3NpeC1zaWRlYmFyLWluaXRpYWwtZm9jdXMnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IEVtcHR5UGF5bG9hZCBhcyBJU2l4U2lkZWJhckVtcHR5UGF5bG9hZCB9IGZyb20gJ0BzaXgtZ3JvdXAvdWktbGlicmFyeSc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTaXhTaWRlYmFyIGV4dGVuZHMgQ29tcG9uZW50cy5TaXhTaWRlYmFyIHtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgc2lkZWJhciBvcGVucy4gQ2FsbGluZyBgZXZlbnQucHJldmVudERlZmF1bHQoKWAgd2lsbCBwcmV2ZW50IGl0IGZyb20gYmVpbmcgb3BlbmVkLlxuICAgKi9cbiAgJ3NpeC1zaWRlYmFyLXNob3cnOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVNpeFNpZGViYXJFbXB0eVBheWxvYWQ+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgYWZ0ZXIgdGhlIHNpZGViYXIgb3BlbnMgYW5kIGFsbCB0cmFuc2l0aW9ucyBhcmUgY29tcGxldGUuXG4gICAqL1xuICAnc2l4LXNpZGViYXItYWZ0ZXItc2hvdyc6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU2l4U2lkZWJhckVtcHR5UGF5bG9hZD4+O1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSBzaWRlYmFyIGNsb3Nlcy4gQ2FsbGluZyBgZXZlbnQucHJldmVudERlZmF1bHQoKWAgd2lsbCBwcmV2ZW50IGl0IGZyb20gYmVpbmcgY2xvc2VkLlxuICAgKi9cbiAgJ3NpeC1zaWRlYmFyLWhpZGUnOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVNpeFNpZGViYXJFbXB0eVBheWxvYWQ+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgYWZ0ZXIgdGhlIHNpZGViYXIgY2xvc2VzIGFuZCBhbGwgdHJhbnNpdGlvbnMgYXJlIGNvbXBsZXRlLlxuICAgKi9cbiAgJ3NpeC1zaWRlYmFyLWFmdGVyLWhpZGUnOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVNpeFNpZGViYXJFbXB0eVBheWxvYWQ+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgc2lkZWJhciBvcGVucyBhbmQgdGhlIHBhbmVsIGdhaW5zIGZvY3VzLiBDYWxsaW5nIGBldmVudC5wcmV2ZW50RGVmYXVsdCgpYCB3aWxsIHByZXZlbnQgZm9jdXMgYW5kXG5hbGxvdyB5b3UgdG8gc2V0IGl0IG9uIGEgZGlmZmVyZW50IGVsZW1lbnQgaW4gdGhlIHNpZGViYXIsIHN1Y2ggYXMgYW4gaW5wdXQgb3IgYnV0dG9uLlxuICAgKi9cbiAgJ3NpeC1zaWRlYmFyLWluaXRpYWwtZm9jdXMnOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVNpeFNpZGViYXJFbXB0eVBheWxvYWQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnZGlzYWJsZWQnLCAnaHJlZicsICdzZWxlY3RlZCcsICd2YWx1ZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2l4LXNpZGViYXItaXRlbScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnZGlzYWJsZWQnLCAnaHJlZicsICdzZWxlY3RlZCcsICd2YWx1ZSddLFxufSlcbmV4cG9ydCBjbGFzcyBTaXhTaWRlYmFySXRlbSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFNpeFNpZGViYXJJdGVtIGV4dGVuZHMgQ29tcG9uZW50cy5TaXhTaWRlYmFySXRlbSB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydocmVmJywgJ2ljb24nLCAnbmFtZScsICdvcGVuJywgJ3N1bW1hcnlJY29uJywgJ3ZhbHVlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzaXgtc2lkZWJhci1pdGVtLWdyb3VwJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydocmVmJywgJ2ljb24nLCAnbmFtZScsICdvcGVuJywgJ3N1bW1hcnlJY29uJywgJ3ZhbHVlJ10sXG59KVxuZXhwb3J0IGNsYXNzIFNpeFNpZGViYXJJdGVtR3JvdXAge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTaXhTaWRlYmFySXRlbUdyb3VwIGV4dGVuZHMgQ29tcG9uZW50cy5TaXhTaWRlYmFySXRlbUdyb3VwIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ3NpeCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2l4LXNwaW5uZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ3NpeCddLFxufSlcbmV4cG9ydCBjbGFzcyBTaXhTcGlubmVyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU2l4U3Bpbm5lciBleHRlbmRzIENvbXBvbmVudHMuU2l4U3Bpbm5lciB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydzdGFnZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2l4LXN0YWdlLWluZGljYXRvcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnc3RhZ2UnXSxcbn0pXG5leHBvcnQgY2xhc3MgU2l4U3RhZ2VJbmRpY2F0b3Ige1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTaXhTdGFnZUluZGljYXRvciBleHRlbmRzIENvbXBvbmVudHMuU2l4U3RhZ2VJbmRpY2F0b3Ige31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY2hlY2tlZCcsICdkaXNhYmxlZCcsICdlcnJvclRleHQnLCAnZXJyb3JUZXh0Q291bnQnLCAnaW52YWxpZCcsICdsYWJlbCcsICduYW1lJywgJ3JlcXVpcmVkJywgJ3ZhbHVlJ10sXG4gIG1ldGhvZHM6IFsnc2V0Rm9jdXMnLCAncmVtb3ZlRm9jdXMnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NpeC1zd2l0Y2gnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2NoZWNrZWQnLCAnZGlzYWJsZWQnLCAnZXJyb3JUZXh0JywgJ2Vycm9yVGV4dENvdW50JywgJ2ludmFsaWQnLCAnbGFiZWwnLCAnbmFtZScsICdyZXF1aXJlZCcsICd2YWx1ZSddLFxufSlcbmV4cG9ydCBjbGFzcyBTaXhTd2l0Y2gge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzaXgtc3dpdGNoLWJsdXInLCAnc2l4LXN3aXRjaC1jaGFuZ2UnLCAnc2l4LXN3aXRjaC1mb2N1cyddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgRW1wdHlQYXlsb2FkIGFzIElTaXhTd2l0Y2hFbXB0eVBheWxvYWQgfSBmcm9tICdAc2l4LWdyb3VwL3VpLWxpYnJhcnknO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU2l4U3dpdGNoIGV4dGVuZHMgQ29tcG9uZW50cy5TaXhTd2l0Y2gge1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSBjb250cm9sIGxvc2VzIGZvY3VzLlxuICAgKi9cbiAgJ3NpeC1zd2l0Y2gtYmx1cic6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxib29sZWFuPj47XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIGNvbnRyb2wncyBjaGVja2VkIHN0YXRlIGNoYW5nZXMuXG4gICAqL1xuICAnc2l4LXN3aXRjaC1jaGFuZ2UnOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8Ym9vbGVhbj4+O1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSBjb250cm9sIGdhaW5zIGZvY3VzLlxuICAgKi9cbiAgJ3NpeC1zd2l0Y2gtZm9jdXMnOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVNpeFN3aXRjaEVtcHR5UGF5bG9hZD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhY3RpdmUnLCAnY2xvc2FibGUnLCAnZGlzYWJsZWQnLCAncGFuZWwnXSxcbiAgbWV0aG9kczogWydzZXRGb2N1cycsICdyZW1vdmVGb2N1cyddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2l4LXRhYicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYWN0aXZlJywgJ2Nsb3NhYmxlJywgJ2Rpc2FibGVkJywgJ3BhbmVsJ10sXG59KVxuZXhwb3J0IGNsYXNzIFNpeFRhYiB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3NpeC10YWItY2xvc2UnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IEVtcHR5UGF5bG9hZCBhcyBJU2l4VGFiRW1wdHlQYXlsb2FkIH0gZnJvbSAnQHNpeC1ncm91cC91aS1saWJyYXJ5JztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFNpeFRhYiBleHRlbmRzIENvbXBvbmVudHMuU2l4VGFiIHtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgdGFiIGlzIGNsb3NhYmxlIGFuZCB0aGUgY2xvc2UgYnV0dG9uIGlzIGFjdGl2YXRlZC5cbiAgICovXG4gICdzaXgtdGFiLWNsb3NlJzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTaXhUYWJFbXB0eVBheWxvYWQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnbm9TY3JvbGxDb250cm9scycsICdwbGFjZW1lbnQnXSxcbiAgbWV0aG9kczogWydzaG93J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzaXgtdGFiLWdyb3VwJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydub1Njcm9sbENvbnRyb2xzJywgJ3BsYWNlbWVudCddLFxufSlcbmV4cG9ydCBjbGFzcyBTaXhUYWJHcm91cCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3NpeC10YWItc2hvdycsICdzaXgtdGFiLWhpZGUnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFNpeFRhYlNob3dQYXlsb2FkIGFzIElTaXhUYWJHcm91cFNpeFRhYlNob3dQYXlsb2FkIH0gZnJvbSAnQHNpeC1ncm91cC91aS1saWJyYXJ5JztcbmltcG9ydCB0eXBlIHsgU2l4VGFiSGlkZVBheWxvYWQgYXMgSVNpeFRhYkdyb3VwU2l4VGFiSGlkZVBheWxvYWQgfSBmcm9tICdAc2l4LWdyb3VwL3VpLWxpYnJhcnknO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU2l4VGFiR3JvdXAgZXh0ZW5kcyBDb21wb25lbnRzLlNpeFRhYkdyb3VwIHtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiBhIHRhYiBpcyBzaG93bi5cbiAgICovXG4gICdzaXgtdGFiLXNob3cnOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVNpeFRhYkdyb3VwU2l4VGFiU2hvd1BheWxvYWQ+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiBhIHRhYiBpcyBoaWRkZW4uXG4gICAqL1xuICAnc2l4LXRhYi1oaWRlJzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTaXhUYWJHcm91cFNpeFRhYkhpZGVQYXlsb2FkPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2FjdGl2ZScsICduYW1lJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzaXgtdGFiLXBhbmVsJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhY3RpdmUnLCAnbmFtZSddLFxufSlcbmV4cG9ydCBjbGFzcyBTaXhUYWJQYW5lbCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFNpeFRhYlBhbmVsIGV4dGVuZHMgQ29tcG9uZW50cy5TaXhUYWJQYW5lbCB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjbGVhcmFibGUnLCAncGlsbCcsICdzaXplJywgJ3R5cGUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NpeC10YWcnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2NsZWFyYWJsZScsICdwaWxsJywgJ3NpemUnLCAndHlwZSddLFxufSlcbmV4cG9ydCBjbGFzcyBTaXhUYWcge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzaXgtdGFnLWNsZWFyJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBFbXB0eVBheWxvYWQgYXMgSVNpeFRhZ0VtcHR5UGF5bG9hZCB9IGZyb20gJ0BzaXgtZ3JvdXAvdWktbGlicmFyeSc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTaXhUYWcgZXh0ZW5kcyBDb21wb25lbnRzLlNpeFRhZyB7XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIGNsZWFyIGJ1dHRvbiBpcyBhY3RpdmF0ZWQuXG4gICAqL1xuICAnc2l4LXRhZy1jbGVhcic6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU2l4VGFnRW1wdHlQYXlsb2FkPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2F1dG9jYXBpdGFsaXplJywgJ2F1dG9jb21wbGV0ZScsICdhdXRvY29ycmVjdCcsICdhdXRvZm9jdXMnLCAnZGlzYWJsZWQnLCAnZXJyb3JUZXh0JywgJ2Vycm9yVGV4dENvdW50JywgJ2hlbHBUZXh0JywgJ2lucHV0bW9kZScsICdpbnZhbGlkJywgJ2xhYmVsJywgJ21heGxlbmd0aCcsICdtaW5sZW5ndGgnLCAnbmFtZScsICdwbGFjZWhvbGRlcicsICdyZWFkb25seScsICdyZXF1aXJlZCcsICdyZXNpemUnLCAncm93cycsICdzaXplJywgJ3NwZWxsY2hlY2snLCAndmFsdWUnXSxcbiAgbWV0aG9kczogWydzZXRGb2N1cycsICdyZW1vdmVGb2N1cycsICdzZWxlY3QnLCAnc2V0U2VsZWN0aW9uUmFuZ2UnLCAnc2V0UmFuZ2VUZXh0J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzaXgtdGV4dGFyZWEnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2F1dG9jYXBpdGFsaXplJywgJ2F1dG9jb21wbGV0ZScsICdhdXRvY29ycmVjdCcsICdhdXRvZm9jdXMnLCAnZGlzYWJsZWQnLCAnZXJyb3JUZXh0JywgJ2Vycm9yVGV4dENvdW50JywgJ2hlbHBUZXh0JywgJ2lucHV0bW9kZScsICdpbnZhbGlkJywgJ2xhYmVsJywgJ21heGxlbmd0aCcsICdtaW5sZW5ndGgnLCAnbmFtZScsICdwbGFjZWhvbGRlcicsICdyZWFkb25seScsICdyZXF1aXJlZCcsICdyZXNpemUnLCAncm93cycsICdzaXplJywgJ3NwZWxsY2hlY2snLCAndmFsdWUnXSxcbn0pXG5leHBvcnQgY2xhc3MgU2l4VGV4dGFyZWEge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzaXgtdGV4dGFyZWEtY2hhbmdlJywgJ3NpeC10ZXh0YXJlYS1pbnB1dCcsICdzaXgtdGV4dGFyZWEtZm9jdXMnLCAnc2l4LXRleHRhcmVhLWJsdXInXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IEVtcHR5UGF5bG9hZCBhcyBJU2l4VGV4dGFyZWFFbXB0eVBheWxvYWQgfSBmcm9tICdAc2l4LWdyb3VwL3VpLWxpYnJhcnknO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU2l4VGV4dGFyZWEgZXh0ZW5kcyBDb21wb25lbnRzLlNpeFRleHRhcmVhIHtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgY29udHJvbCdzIHZhbHVlIGNoYW5nZXMuIEFjY2VzcyB0aGUgbmV3IHZhbHVlIHZpYSBldmVudC50YXJnZXQudmFsdWUuXG4gICAqL1xuICAnc2l4LXRleHRhcmVhLWNoYW5nZSc6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU2l4VGV4dGFyZWFFbXB0eVBheWxvYWQ+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgY29udHJvbCByZWNlaXZlcyBpbnB1dC4gQWNjZXNzIHRoZSBuZXcgdmFsdWUgdmlhIGV2ZW50LnRhcmdldC52YWx1ZS5cbiAgICovXG4gICdzaXgtdGV4dGFyZWEtaW5wdXQnOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVNpeFRleHRhcmVhRW1wdHlQYXlsb2FkPj47XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIGNvbnRyb2wgZ2FpbnMgZm9jdXMuXG4gICAqL1xuICAnc2l4LXRleHRhcmVhLWZvY3VzJzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTaXhUZXh0YXJlYUVtcHR5UGF5bG9hZD4+O1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSBjb250cm9sIGxvc2VzIGZvY3VzLiBBY2Nlc3MgdGhlIG5ldyB2YWx1ZSB2aWEgZXZlbnQudGFyZ2V0LnZhbHVlLlxuICAgKi9cbiAgJ3NpeC10ZXh0YXJlYS1ibHVyJzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTaXhUZXh0YXJlYUVtcHR5UGF5bG9hZD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjbG9zZWFibGUnLCAnZGlzYWJsZVRvb2x0aXAnLCAnZGlzYWJsZWQnLCAnZWxldmF0ZWQnLCAnaWNvbk5hbWUnLCAnbGFiZWwnLCAnc2l6ZSddLFxuICBtZXRob2RzOiBbJ2hpZGUnLCAnc2hvdyddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2l4LXRpbGUnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2Nsb3NlYWJsZScsICdkaXNhYmxlVG9vbHRpcCcsICdkaXNhYmxlZCcsICdlbGV2YXRlZCcsICdpY29uTmFtZScsICdsYWJlbCcsICdzaXplJ10sXG59KVxuZXhwb3J0IGNsYXNzIFNpeFRpbGUge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzaXgtdGlsZS1jbG9zZWQnLCAnc2l4LXRpbGUtc2VsZWN0ZWQnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IEVtcHR5UGF5bG9hZCBhcyBJU2l4VGlsZUVtcHR5UGF5bG9hZCB9IGZyb20gJ0BzaXgtZ3JvdXAvdWktbGlicmFyeSc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTaXhUaWxlIGV4dGVuZHMgQ29tcG9uZW50cy5TaXhUaWxlIHtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgdGlsZSB3YXMgY2xvc2VkLlxuICAgKi9cbiAgJ3NpeC10aWxlLWNsb3NlZCc6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU2l4VGlsZUVtcHR5UGF5bG9hZD4+O1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSB0aWxlIGlzIHNlbGVjdGVkLlxuICAgKi9cbiAgJ3NpeC10aWxlLXNlbGVjdGVkJzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTaXhUaWxlRW1wdHlQYXlsb2FkPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2NsZWFyYWJsZScsICdkZWJvdW5jZScsICdkZWZhdWx0VGltZScsICdkaXNhYmxlZCcsICdlcnJvclRleHQnLCAnZXJyb3JUZXh0Q291bnQnLCAnZm9ybWF0JywgJ2hvaXN0JywgJ2ljb25Qb3NpdGlvbicsICdpbmxpbmUnLCAnaW50ZXJ2YWwnLCAnaW52YWxpZCcsICdsYWJlbCcsICduYW1lJywgJ29wZW4nLCAncGxhY2Vob2xkZXInLCAncGxhY2VtZW50JywgJ3JlYWRvbmx5JywgJ3JlcXVpcmVkJywgJ3NlcGFyYXRvcicsICdzaXplJywgJ3RpbWVvdXQnLCAndmFsdWUnXSxcbiAgbWV0aG9kczogWydzZXRGb2N1cyddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2l4LXRpbWVwaWNrZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2NsZWFyYWJsZScsICdkZWJvdW5jZScsICdkZWZhdWx0VGltZScsICdkaXNhYmxlZCcsICdlcnJvclRleHQnLCAnZXJyb3JUZXh0Q291bnQnLCAnZm9ybWF0JywgJ2hvaXN0JywgJ2ljb25Qb3NpdGlvbicsICdpbmxpbmUnLCAnaW50ZXJ2YWwnLCAnaW52YWxpZCcsICdsYWJlbCcsICduYW1lJywgJ29wZW4nLCAncGxhY2Vob2xkZXInLCAncGxhY2VtZW50JywgJ3JlYWRvbmx5JywgJ3JlcXVpcmVkJywgJ3NlcGFyYXRvcicsICdzaXplJywgJ3RpbWVvdXQnLCAndmFsdWUnXSxcbn0pXG5leHBvcnQgY2xhc3MgU2l4VGltZXBpY2tlciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3NpeC10aW1lcGlja2VyLWNoYW5nZScsICdzaXgtdGltZXBpY2tlci1jaGFuZ2UtZGVib3VuY2VkJywgJ3NpeC10aW1lcGlja2VyLWNsZWFyJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTaXhUaW1lcGlja2VyQ2hhbmdlIGFzIElTaXhUaW1lcGlja2VyU2l4VGltZXBpY2tlckNoYW5nZSB9IGZyb20gJ0BzaXgtZ3JvdXAvdWktbGlicmFyeSc7XG5pbXBvcnQgdHlwZSB7IEVtcHR5UGF5bG9hZCBhcyBJU2l4VGltZXBpY2tlckVtcHR5UGF5bG9hZCB9IGZyb20gJ0BzaXgtZ3JvdXAvdWktbGlicmFyeSc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTaXhUaW1lcGlja2VyIGV4dGVuZHMgQ29tcG9uZW50cy5TaXhUaW1lcGlja2VyIHtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgdGltZXBpY2tlcidzIHZhbHVlIGNoYW5nZXNcbiAgICovXG4gICdzaXgtdGltZXBpY2tlci1jaGFuZ2UnOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVNpeFRpbWVwaWNrZXJTaXhUaW1lcGlja2VyQ2hhbmdlPj47XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIHRpbWVwaWNrZXIncyB2YWx1ZSBjaGFuZ2VzLCBidXQgZGVib3VuY2VkXG4gICAqL1xuICAnc2l4LXRpbWVwaWNrZXItY2hhbmdlLWRlYm91bmNlZCc6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU2l4VGltZXBpY2tlclNpeFRpbWVwaWNrZXJDaGFuZ2U+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgY2xlYXIgYnV0dG9uIGlzIGFjdGl2YXRlZC5cbiAgICovXG4gICdzaXgtdGltZXBpY2tlci1jbGVhcic6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU2l4VGltZXBpY2tlckVtcHR5UGF5bG9hZD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjb250ZW50JywgJ2Rpc2FibGVkJywgJ2Rpc3RhbmNlJywgJ29wZW4nLCAncGxhY2VtZW50JywgJ3NraWRkaW5nJywgJ3RyaWdnZXInXSxcbiAgbWV0aG9kczogWydzaG93JywgJ2hpZGUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NpeC10b29sdGlwJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjb250ZW50JywgJ2Rpc2FibGVkJywgJ2Rpc3RhbmNlJywgJ29wZW4nLCAncGxhY2VtZW50JywgJ3NraWRkaW5nJywgJ3RyaWdnZXInXSxcbn0pXG5leHBvcnQgY2xhc3MgU2l4VG9vbHRpcCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3NpeC10b29sdGlwLXNob3cnLCAnc2l4LXRvb2x0aXAtYWZ0ZXItc2hvdycsICdzaXgtdG9vbHRpcC1oaWRlJywgJ3NpeC10b29sdGlwLWFmdGVyLWhpZGUnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IEVtcHR5UGF5bG9hZCBhcyBJU2l4VG9vbHRpcEVtcHR5UGF5bG9hZCB9IGZyb20gJ0BzaXgtZ3JvdXAvdWktbGlicmFyeSc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTaXhUb29sdGlwIGV4dGVuZHMgQ29tcG9uZW50cy5TaXhUb29sdGlwIHtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgdG9vbHRpcCBiZWdpbnMgdG8gc2hvdy4gQ2FsbGluZyBgZXZlbnQucHJldmVudERlZmF1bHQoKWAgd2lsbCBwcmV2ZW50IGl0IGZyb20gYmVpbmcgc2hvd24uXG4gICAqL1xuICAnc2l4LXRvb2x0aXAtc2hvdyc6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU2l4VG9vbHRpcEVtcHR5UGF5bG9hZD4+O1xuICAvKipcbiAgICogRW1pdHRlZCBhZnRlciB0aGUgdG9vbHRpcCBoYXMgc2hvd24gYW5kIGFsbCB0cmFuc2l0aW9ucyBhcmUgY29tcGxldGUuXG4gICAqL1xuICAnc2l4LXRvb2x0aXAtYWZ0ZXItc2hvdyc6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU2l4VG9vbHRpcEVtcHR5UGF5bG9hZD4+O1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSB0b29sdGlwIGJlZ2lucyB0byBoaWRlLiBDYWxsaW5nIGBldmVudC5wcmV2ZW50RGVmYXVsdCgpYCB3aWxsIHByZXZlbnQgaXQgZnJvbSBiZWluZyBoaWRkZW4uXG4gICAqL1xuICAnc2l4LXRvb2x0aXAtaGlkZSc6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU2l4VG9vbHRpcEVtcHR5UGF5bG9hZD4+O1xuICAvKipcbiAgICogRW1pdHRlZCBhZnRlciB0aGUgdG9vbHRpcCBoYXMgaGlkZGVuIGFuZCBhbGwgdHJhbnNpdGlvbnMgYXJlIGNvbXBsZXRlLlxuICAgKi9cbiAgJ3NpeC10b29sdGlwLWFmdGVyLWhpZGUnOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVNpeFRvb2x0aXBFbXB0eVBheWxvYWQ+Pjtcbn1cblxuXG4iXX0=
1319
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvc3RlbmNpbC1nZW5lcmF0ZWQvY29tcG9uZW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsb0JBQW9CO0FBQ3BCLDhDQUE4QztBQUM5QyxPQUFPLEVBQUUsdUJBQXVCLEVBQXFCLFNBQVMsRUFBb0MsTUFBTSxlQUFlLENBQUM7QUFFeEgsT0FBTyxFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7QUFlaEUsV0FBTSxhQUFhLEdBQW5CLE1BQU0sYUFBYTtJQUV4QixZQUFZLENBQW9CLEVBQUUsQ0FBYSxFQUFZLENBQVM7UUFBVCxNQUFDLEdBQUQsQ0FBQyxDQUFRO1FBQ2xFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNYLElBQUksQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLGFBQWEsQ0FBQztJQUM1QixDQUFDOytHQUxVLGFBQWE7bUdBQWIsYUFBYSxrRkFKZCwyQkFBMkI7O0FBSTFCLGFBQWE7SUFWekIsUUFBUSxDQUFDO1FBQ1IsTUFBTSxFQUFFLENBQUMsT0FBTyxDQUFDO0tBQ2xCLENBQUM7R0FRVyxhQUFhLENBTXpCOzRGQU5ZLGFBQWE7a0JBUHpCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGdCQUFnQjtvQkFDMUIsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLFFBQVEsRUFBRSwyQkFBMkI7b0JBQ3JDLHVFQUF1RTtvQkFDdkUsTUFBTSxFQUFFLENBQUMsT0FBTyxDQUFDO2lCQUNsQjs7QUF3Qk0sV0FBTSxRQUFRLEdBQWQsTUFBTSxRQUFRO0lBRW5CLFlBQVksQ0FBb0IsRUFBRSxDQUFhLEVBQVksQ0FBUztRQUFULE1BQUMsR0FBRCxDQUFDLENBQVE7UUFDbEUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ1gsSUFBSSxDQUFDLEVBQUUsR0FBRyxDQUFDLENB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bUdBQVYsVUFBVSwrTUFKWCwyQkFBMkI7O0FBSTFCLFVBQVU7SUFYdEIsUUFBUSxDQUFDO1FBQ1IsTUFBTSxFQUFFLENBQUMsU0FBUyxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsU0FBUyxDQUFDO1FBQ3ZGLE9BQU8sRUFBRSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUM7S0FDMUIsQ0FBQztHQVFXLFVBQVUsQ0FPdEI7NEZBUFksVUFBVTtrQkFQdEIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsYUFBYTtvQkFDdkIsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLFFBQVEsRUFBRSwyQkFBMkI7b0JBQ3JDLHVFQUF1RTtvQkFDdkUsTUFBTSxFQUFFLENBQUMsU0FBUyxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsU0FBUyxDQUFDO2lCQUN4RiIsInNvdXJjZXNDb250ZW50IjpbIi8qIHRzbGludDpkaXNhYmxlICovXG4vKiBhdXRvLWdlbmVyYXRlZCBhbmd1bGFyIGRpcmVjdGl2ZSBwcm94aWVzICovXG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBOZ1pvbmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgUHJveHlDbXAsIHByb3h5T3V0cHV0cyB9IGZyb20gJy4vYW5ndWxhci1jb21wb25lbnQtbGliL3V0aWxzJztcblxuaW1wb3J0IHsgQ29tcG9uZW50cyB9IGZyb20gJ0BzaXgtZ3JvdXAvdWktbGlicmFyeSc7XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ3ZhbHVlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzZXQtYXR0cmlidXRlcycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsndmFsdWUnXSxcbn0pXG5leHBvcnQgY2xhc3MgU2V0QXR0cmlidXRlcyB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFNldEF0dHJpYnV0ZXMgZXh0ZW5kcyBDb21wb25lbnRzLlNldEF0dHJpYnV0ZXMge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY2xvc2FibGUnLCAnZHVyYXRpb24nLCAnb3BlbicsICd0eXBlJ10sXG4gIG1ldGhvZHM6IFsnc2hvdycsICdoaWRlJywgJ3RvYXN0J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzaXgtYWxlcnQnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2Nsb3NhYmxlJywgJ2R1cmF0aW9uJywgJ29wZW4nLCAndHlwZSddLFxufSlcbmV4cG9ydCBjbGFzcyBTaXhBbGVydCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3NpeC1hbGVydC1zaG93JywgJ3NpeC1hbGVydC1hZnRlci1zaG93JywgJ3NpeC1hbGVydC1oaWRlJywgJ3NpeC1hbGVydC1hZnRlci1oaWRlJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBFbXB0eVBheWxvYWQgYXMgSVNpeEFsZXJ0RW1wdHlQYXlsb2FkIH0gZnJvbSAnQHNpeC1ncm91cC91aS1saWJyYXJ5JztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFNpeEFsZXJ0IGV4dGVuZHMgQ29tcG9uZW50cy5TaXhBbGVydCB7XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIGFsZXJ0IG9wZW5zLiBDYWxsaW5nIGBldmVudC5wcmV2ZW50RGVmYXVsdCgpYCB3aWxsIHByZXZlbnQgaXQgZnJvbSBiZWluZyBvcGVuZWQuXG4gICAqL1xuICAnc2l4LWFsZXJ0LXNob3cnOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVNpeEFsZXJ0RW1wdHlQYXlsb2FkPj47XG4gIC8qKlxuICAgKiBFbWl0dGVkIGFmdGVyIHRoZSBhbGVydCBvcGVucyBhbmQgYWxsIHRyYW5zaXRpb25zIGFyZSBjb21wbGV0ZS5cbiAgICovXG4gICdzaXgtYWxlcnQtYWZ0ZXItc2hvdyc6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU2l4QWxlcnRFbXB0eVBheWxvYWQ+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgYWxlcnQgY2xvc2VzLiBDYWxsaW5nIGBldmVudC5wcmV2ZW50RGVmYXVsdCgpYCB3aWxsIHByZXZlbnQgaXQgZnJvbSBiZWluZyBjbG9zZWQuXG4gICAqL1xuICAnc2l4LWFsZXJ0LWhpZGUnOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVNpeEFsZXJ0RW1wdHlQYXlsb2FkPj47XG4gIC8qKlxuICAgKiBFbWl0dGVkIGFmdGVyIHRoZSBhbGVydCBjbG9zZXMgYW5kIGFsbCB0cmFuc2l0aW9ucyBhcmUgY29tcGxldGUuXG4gICAqL1xuICAnc2l4LWFsZXJ0LWFmdGVyLWhpZGUnOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVNpeEFsZXJ0RW1wdHlQYXlsb2FkPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2FsdCcsICdpbWFnZScsICdpbml0aWFscycsICdzaGFwZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2l4LWF2YXRhcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYWx0JywgJ2ltYWdlJywgJ2luaXRpYWxzJywgJ3NoYXBlJ10sXG59KVxuZXhwb3J0IGNsYXNzIFNpeEF2YXRhciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFNpeEF2YXRhciBleHRlbmRzIENvbXBvbmVudHMuU2l4QXZhdGFyIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ3BpbGwnLCAncHVsc2UnLCAndHlwZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2l4LWJhZGdlJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydwaWxsJywgJ3B1bHNlJywgJ3R5cGUnXSxcbn0pXG5leHBvcnQgY2xhc3MgU2l4QmFkZ2Uge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTaXhCYWRnZSBleHRlbmRzIENvbXBvbmVudHMuU2l4QmFkZ2Uge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY2FyZXQnLCAnY2lyY2xlJywgJ2Rpc2FibGVkJywgJ2Rvd25sb2FkJywgJ2hyZWYnLCAnbG9hZGluZycsICduYW1lJywgJ3BpbGwnLCAncmVzZXQnLCAnc2l6ZScsICdzdWJtaXQnLCAndGFyZ2V0JywgJ3R5cGUnLCAndmFsdWUnXSxcbiAgbWV0aG9kczogWydzZXRGb2N1cycsICdyZW1vdmVGb2N1cyddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2l4LWJ1dHRvbicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY2FyZXQnLCAnY2lyY2xlJywgJ2Rpc2FibGVkJywgJ2Rvd25sb2FkJywgJ2hyZWYnLCAnbG9hZGluZycsICduYW1lJywgJ3BpbGwnLCAncmVzZXQnLCAnc2l6ZScsICdzdWJtaXQnLCAndGFyZ2V0JywgJ3R5cGUnLCAndmFsdWUnXSxcbn0pXG5leHBvcnQgY2xhc3MgU2l4QnV0dG9uIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc2l4LWJ1dHRvbi1ibHVyJywgJ3NpeC1idXR0b24tZm9jdXMnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IEVtcHR5UGF5bG9hZCBhcyBJU2l4QnV0dG9uRW1wdHlQYXlsb2FkIH0gZnJvbSAnQHNpeC1ncm91cC91aS1saWJyYXJ5JztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFNpeEJ1dHRvbiBleHRlbmRzIENvbXBvbmVudHMuU2l4QnV0dG9uIHtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgYnV0dG9uIGxvc2VzIGZvY3VzLlxuICAgKi9cbiAgJ3NpeC1idXR0b24tYmx1cic6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU2l4QnV0dG9uRW1wdHlQYXlsb2FkPj47XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIGJ1dHRvbiBnYWlucyBmb2N1cy5cbiAgICovXG4gICdzaXgtYnV0dG9uLWZvY3VzJzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTaXhCdXR0b25FbXB0eVBheWxvYWQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NpeC1jYXJkJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogW10sXG59KVxuZXhwb3J0IGNsYXNzIFNpeENhcmQge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTaXhDYXJkIGV4dGVuZHMgQ29tcG9uZW50cy5TaXhDYXJkIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2NoZWNrZWQnLCAnZGlzYWJsZWQnLCAnZXJyb3JUZXh0JywgJ2Vycm9yVGV4dENvdW50JywgJ2luZGV0ZXJtaW5hdGUnLCAnaW52YWxpZCcsICdsYWJlbCcsICduYW1lJywgJ3JlcXVpcmVkJywgJ3ZhbHVlJ10sXG4gIG1ldGhvZHM6IFsnc2V0Rm9jdXMnLCAncmVtb3ZlRm9jdXMnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NpeC1jaGVja2JveCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY2hlY2tlZCcsICdkaXNhYmxlZCcsICdlcnJvclRleHQnLCAnZXJyb3JUZXh0Q291bnQnLCAnaW5kZXRlcm1pbmF0ZScsICdpbnZhbGlkJywgJ2xhYmVsJywgJ25hbWUnLCAncmVxdWlyZWQnLCAndmFsdWUnXSxcbn0pXG5leHBvcnQgY2xhc3MgU2l4Q2hlY2tib3gge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzaXgtY2hlY2tib3gtYmx1cicsICdzaXgtY2hlY2tib3gtY2hhbmdlJywgJ3NpeC1jaGVja2JveC1mb2N1cyddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgRW1wdHlQYXlsb2FkIGFzIElTaXhDaGVja2JveEVtcHR5UGF5bG9hZCB9IGZyb20gJ0BzaXgtZ3JvdXAvdWktbGlicmFyeSc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTaXhDaGVja2JveCBleHRlbmRzIENvbXBvbmVudHMuU2l4Q2hlY2tib3gge1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSBjb250cm9sIGxvc2VzIGZvY3VzLlxuICAgKi9cbiAgJ3NpeC1jaGVja2JveC1ibHVyJzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTaXhDaGVja2JveEVtcHR5UGF5bG9hZD4+O1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSBjb250cm9sJ3MgY2hlY2tlZCBzdGF0ZSBjaGFuZ2VzLlxuICAgKi9cbiAgJ3NpeC1jaGVja2JveC1jaGFuZ2UnOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVNpeENoZWNrYm94RW1wdHlQYXlsb2FkPj47XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIGNvbnRyb2wgZ2FpbnMgZm9jdXMuXG4gICAqL1xuICAnc2l4LWNoZWNrYm94LWZvY3VzJzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTaXhDaGVja2JveEVtcHR5UGF5bG9hZD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhbGxvd2VkRGF0ZXMnLCAnY2xlYXJhYmxlJywgJ2Nsb3NlT25TZWxlY3QnLCAnY29udGFpbmluZ0VsZW1lbnQnLCAnZGF0ZUZvcm1hdCcsICdkZWJvdW5jZScsICdkZWZhdWx0RGF0ZScsICdkaXNhYmxlZCcsICdlcnJvclRleHQnLCAnZXJyb3JUZXh0Q291bnQnLCAnaG9pc3QnLCAnaWNvblBvc2l0aW9uJywgJ2lubGluZScsICdpbnZhbGlkJywgJ2xhYmVsJywgJ2xvY2FsZScsICdtYXgnLCAnbWluJywgJ25hbWUnLCAnb3BlbicsICdwbGFjZWhvbGRlcicsICdwbGFjZW1lbnQnLCAncmVhZG9ubHknLCAncmVxdWlyZWQnLCAnc2l6ZScsICd0eXBlJywgJ3ZhbHVlJ10sXG4gIG1ldGhvZHM6IFsnc2V0Rm9jdXMnLCAnc2VsZWN0J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzaXgtZGF0ZXBpY2tlcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYWxsb3dlZERhdGVzJywgJ2NsZWFyYWJsZScsICdjbG9zZU9uU2VsZWN0JywgJ2NvbnRhaW5pbmdFbGVtZW50JywgJ2RhdGVGb3JtYXQnLCAnZGVib3VuY2UnLCAnZGVmYXVsdERhdGUnLCAnZGlzYWJsZWQnLCAnZXJyb3JUZXh0JywgJ2Vycm9yVGV4dENvdW50JywgJ2hvaXN0JywgJ2ljb25Qb3NpdGlvbicsICdpbmxpbmUnLCAnaW52YWxpZCcsICdsYWJlbCcsICdsb2NhbGUnLCAnbWF4JywgJ21pbicsICduYW1lJywgJ29wZW4nLCAncGxhY2Vob2xkZXInLCAncGxhY2VtZW50JywgJ3JlYWRvbmx5JywgJ3JlcXVpcmVkJywgJ3NpemUnLCAndHlwZScsICd2YWx1ZSddLFxufSlcbmV4cG9ydCBjbGFzcyBTaXhEYXRlcGlja2VyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc2l4LWRhdGVwaWNrZXItc2VsZWN0JywgJ3NpeC1kYXRlcGlja2VyLWNsZWFyJywgJ3NpeC1kYXRlcGlja2VyLWJsdXInXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFNpeERhdGVwaWNrZXJTZWxlY3RQYXlsb2FkIGFzIElTaXhEYXRlcGlja2VyU2l4RGF0ZXBpY2tlclNlbGVjdFBheWxvYWQgfSBmcm9tICdAc2l4LWdyb3VwL3VpLWxpYnJhcnknO1xuaW1wb3J0IHR5cGUgeyBFbXB0eVBheWxvYWQgYXMgSVNpeERhdGVwaWNrZXJFbXB0eVBheWxvYWQgfSBmcm9tICdAc2l4LWdyb3VwL3VpLWxpYnJhcnknO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU2l4RGF0ZXBpY2tlciBleHRlbmRzIENvbXBvbmVudHMuU2l4RGF0ZXBpY2tlciB7XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gYSBvcHRpb24gZ290IHNlbGVjdGVkLlxuICAgKi9cbiAgJ3NpeC1kYXRlcGlja2VyLXNlbGVjdCc6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU2l4RGF0ZXBpY2tlclNpeERhdGVwaWNrZXJTZWxlY3RQYXlsb2FkPj47XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIGNsZWFyIGJ1dHRvbiBpcyBhY3RpdmF0ZWQuXG4gICAqL1xuICAnc2l4LWRhdGVwaWNrZXItY2xlYXInOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVNpeERhdGVwaWNrZXJFbXB0eVBheWxvYWQ+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiBhIG9wdGlvbiBnb3Qgc2VsZWN0ZWQuXG4gICAqL1xuICAnc2l4LWRhdGVwaWNrZXItYmx1cic6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU2l4RGF0ZXBpY2tlclNpeERhdGVwaWNrZXJTZWxlY3RQYXlsb2FkPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2Rpc2FibGVkJywgJ2hhc0NvbnRlbnQnLCAnaW5saW5lJywgJ29wZW4nLCAnc2VsZWN0YWJsZUVtcHR5JywgJ3N1bW1hcnknLCAnc3VtbWFyeUljb24nLCAnc3VtbWFyeUljb25TaXplJ10sXG4gIG1ldGhvZHM6IFsnc2hvdycsICdoaWRlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzaXgtZGV0YWlscycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnZGlzYWJsZWQnLCAnaGFzQ29udGVudCcsICdpbmxpbmUnLCAnb3BlbicsICdzZWxlY3RhYmxlRW1wdHknLCAnc3VtbWFyeScsICdzdW1tYXJ5SWNvbicsICdzdW1tYXJ5SWNvblNpemUnXSxcbn0pXG5leHBvcnQgY2xhc3MgU2l4RGV0YWlscyB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3NpeC1kZXRhaWxzLXNob3cnLCAnc2l4LWRldGFpbHMtYWZ0ZXItc2hvdycsICdzaXgtZGV0YWlscy1oaWRlJywgJ3NpeC1kZXRhaWxzLWFmdGVyLWhpZGUnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IEVtcHR5UGF5bG9hZCBhcyBJU2l4RGV0YWlsc0VtcHR5UGF5bG9hZCB9IGZyb20gJ0BzaXgtZ3JvdXAvdWktbGlicmFyeSc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTaXhEZXRhaWxzIGV4dGVuZHMgQ29tcG9uZW50cy5TaXhEZXRhaWxzIHtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgZGV0YWlscyBvcGVucy4gQ2FsbGluZyBgZXZlbnQucHJldmVudERlZmF1bHQoKWAgd2lsbCBwcmV2ZW50IGl0IGZyb20gYmVpbmcgb3BlbmVkLlxuICAgKi9cbiAgJ3NpeC1kZXRhaWxzLXNob3cnOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVNpeERldGFpbHNFbXB0eVBheWxvYWQ+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgYWZ0ZXIgdGhlIGRldGFpbHMgb3BlbnMgYW5kIGFsbCB0cmFuc2l0aW9ucyBhcmUgY29tcGxldGUuXG4gICAqL1xuICAnc2l4LWRldGFpbHMtYWZ0ZXItc2hvdyc6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU2l4RGV0YWlsc0VtcHR5UGF5bG9hZD4+O1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSBkZXRhaWxzIGNsb3Nlcy4gQ2FsbGluZyBgZXZlbnQucHJldmVudERlZmF1bHQoKWAgd2lsbCBwcmV2ZW50IGl0IGZyb20gYmVpbmcgY2xvc2VkLlxuICAgKi9cbiAgJ3NpeC1kZXRhaWxzLWhpZGUnOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVNpeERldGFpbHNFbXB0eVBheWxvYWQ+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgYWZ0ZXIgdGhlIGRldGFpbHMgY2xvc2VzIGFuZCBhbGwgdHJhbnNpdGlvbnMgYXJlIGNvbXBsZXRlLlxuICAgKi9cbiAgJ3NpeC1kZXRhaWxzLWFmdGVyLWhpZGUnOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVNpeERldGFpbHNFbXB0eVBheWxvYWQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnbGFiZWwnLCAnbm9IZWFkZXInLCAnb3BlbiddLFxuICBtZXRob2RzOiBbJ3Nob3cnLCAnaGlkZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2l4LWRpYWxvZycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnbGFiZWwnLCAnbm9IZWFkZXInLCAnb3BlbiddLFxufSlcbmV4cG9ydCBjbGFzcyBTaXhEaWFsb2cge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzaXgtZGlhbG9nLXNob3cnLCAnc2l4LWRpYWxvZy1hZnRlci1zaG93JywgJ3NpeC1kaWFsb2ctaGlkZScsICdzaXgtZGlhbG9nLWFmdGVyLWhpZGUnLCAnc2l4LWRpYWxvZy1pbml0aWFsLWZvY3VzJywgJ3NpeC1kaWFsb2ctb3ZlcmxheS1kaXNtaXNzJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBFbXB0eVBheWxvYWQgYXMgSVNpeERpYWxvZ0VtcHR5UGF5bG9hZCB9IGZyb20gJ0BzaXgtZ3JvdXAvdWktbGlicmFyeSc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTaXhEaWFsb2cgZXh0ZW5kcyBDb21wb25lbnRzLlNpeERpYWxvZyB7XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIGRpYWxvZyBvcGVucy4gQ2FsbGluZyBgZXZlbnQucHJldmVudERlZmF1bHQoKWAgd2lsbCBwcmV2ZW50IGl0IGZyb20gYmVpbmcgb3BlbmVkLlxuICAgKi9cbiAgJ3NpeC1kaWFsb2ctc2hvdyc6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU2l4RGlhbG9nRW1wdHlQYXlsb2FkPj47XG4gIC8qKlxuICAgKiBFbWl0dGVkIGFmdGVyIHRoZSBkaWFsb2cgb3BlbnMgYW5kIGFsbCB0cmFuc2l0aW9ucyBhcmUgY29tcGxldGUuXG4gICAqL1xuICAnc2l4LWRpYWxvZy1hZnRlci1zaG93JzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTaXhEaWFsb2dFbXB0eVBheWxvYWQ+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgZGlhbG9nIGNsb3Nlcy4gQ2FsbGluZyBgZXZlbnQucHJldmVudERlZmF1bHQoKWAgd2lsbCBwcmV2ZW50IGl0IGZyb20gYmVpbmcgY2xvc2VkLlxuICAgKi9cbiAgJ3NpeC1kaWFsb2ctaGlkZSc6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU2l4RGlhbG9nRW1wdHlQYXlsb2FkPj47XG4gIC8qKlxuICAgKiBFbWl0dGVkIGFmdGVyIHRoZSBkaWFsb2cgY2xvc2VzIGFuZCBhbGwgdHJhbnNpdGlvbnMgYXJlIGNvbXBsZXRlLlxuICAgKi9cbiAgJ3NpeC1kaWFsb2ctYWZ0ZXItaGlkZSc6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU2l4RGlhbG9nRW1wdHlQYXlsb2FkPj47XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIGRpYWxvZyBvcGVucyBhbmQgdGhlIHBhbmVsIGdhaW5zIGZvY3VzLiBDYWxsaW5nIGBldmVudC5wcmV2ZW50RGVmYXVsdCgpYCB3aWxsIHByZXZlbnQgZm9jdXMgYW5kXG5hbGxvdyB5b3UgdG8gc2V0IGl0IG9uIGEgZGlmZmVyZW50IGVsZW1lbnQgaW4gdGhlIGRpYWxvZywgc3VjaCBhcyBhbiBpbnB1dCBvciBidXR0b24uXG4gICAqL1xuICAnc2l4LWRpYWxvZy1pbml0aWFsLWZvY3VzJzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTaXhEaWFsb2dFbXB0eVBheWxvYWQ+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgb3ZlcmxheSBpcyBjbGlja2VkLiBDYWxsaW5nIGBldmVudC5wcmV2ZW50RGVmYXVsdCgpYCB3aWxsIHByZXZlbnQgdGhlIGRpYWxvZyBmcm9tIGNsb3NpbmcuXG4gICAqL1xuICAnc2l4LWRpYWxvZy1vdmVybGF5LWRpc21pc3MnOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVNpeERpYWxvZ0VtcHR5UGF5bG9hZD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjb250YWluZWQnLCAnbGFiZWwnLCAnbm9IZWFkZXInLCAnb3BlbicsICdwbGFjZW1lbnQnXSxcbiAgbWV0aG9kczogWydzaG93JywgJ2hpZGUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NpeC1kcmF3ZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2NvbnRhaW5lZCcsICdsYWJlbCcsICdub0hlYWRlcicsICdvcGVuJywgJ3BsYWNlbWVudCddLFxufSlcbmV4cG9ydCBjbGFzcyBTaXhEcmF3ZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzaXgtZHJhd2VyLXNob3cnLCAnc2l4LWRyYXdlci1hZnRlci1zaG93JywgJ3NpeC1kcmF3ZXItaGlkZScsICdzaXgtZHJhd2VyLWFmdGVyLWhpZGUnLCAnc2l4LWRyYXdlci1pbml0aWFsLWZvY3VzJywgJ3NpeC1kcmF3ZXItb3ZlcmxheS1kaXNtaXNzJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBFbXB0eVBheWxvYWQgYXMgSVNpeERyYXdlckVtcHR5UGF5bG9hZCB9IGZyb20gJ0BzaXgtZ3JvdXAvdWktbGlicmFyeSc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTaXhEcmF3ZXIgZXh0ZW5kcyBDb21wb25lbnRzLlNpeERyYXdlciB7XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIGRyYXdlciBvcGVucy4gQ2FsbGluZyBgZXZlbnQucHJldmVudERlZmF1bHQoKWAgd2lsbCBwcmV2ZW50IGl0IGZyb20gYmVpbmcgb3BlbmVkLlxuICAgKi9cbiAgJ3NpeC1kcmF3ZXItc2hvdyc6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU2l4RHJhd2VyRW1wdHlQYXlsb2FkPj47XG4gIC8qKlxuICAgKiBFbWl0dGVkIGFmdGVyIHRoZSBkcmF3ZXIgb3BlbnMgYW5kIGFsbCB0cmFuc2l0aW9ucyBhcmUgY29tcGxldGUuXG4gICAqL1xuICAnc2l4LWRyYXdlci1hZnRlci1zaG93JzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTaXhEcmF3ZXJFbXB0eVBheWxvYWQ+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgZHJhd2VyIGNsb3Nlcy4gQ2FsbGluZyBgZXZlbnQucHJldmVudERlZmF1bHQoKWAgd2lsbCBwcmV2ZW50IGl0IGZyb20gYmVpbmcgY2xvc2VkLlxuICAgKi9cbiAgJ3NpeC1kcmF3ZXItaGlkZSc6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU2l4RHJhd2VyRW1wdHlQYXlsb2FkPj47XG4gIC8qKlxuICAgKiBFbWl0dGVkIGFmdGVyIHRoZSBkcmF3ZXIgY2xvc2VzIGFuZCBhbGwgdHJhbnNpdGlvbnMgYXJlIGNvbXBsZXRlLlxuICAgKi9cbiAgJ3NpeC1kcmF3ZXItYWZ0ZXItaGlkZSc6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU2l4RHJhd2VyRW1wdHlQYXlsb2FkPj47XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIGRyYXdlciBvcGVucyBhbmQgdGhlIHBhbmVsIGdhaW5zIGZvY3VzLiBDYWxsaW5nIGBldmVudC5wcmV2ZW50RGVmYXVsdCgpYCB3aWxsIHByZXZlbnQgZm9jdXMgYW5kXG5hbGxvdyB5b3UgdG8gc2V0IGl0IG9uIGEgZGlmZmVyZW50IGVsZW1lbnQgaW4gdGhlIGRyYXdlciwgc3VjaCBhcyBhbiBpbnB1dCBvciBidXR0b24uXG4gICAqL1xuICAnc2l4LWRyYXdlci1pbml0aWFsLWZvY3VzJzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTaXhEcmF3ZXJFbXB0eVBheWxvYWQ+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgb3ZlcmxheSBpcyBjbGlja2VkLiBDYWxsaW5nIGBldmVudC5wcmV2ZW50RGVmYXVsdCgpYCB3aWxsIHByZXZlbnQgdGhlIGRyYXdlciBmcm9tIGNsb3NpbmcuXG4gICAqL1xuICAnc2l4LWRyYXdlci1vdmVybGF5LWRpc21pc3MnOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVNpeERyYXdlckVtcHR5UGF5bG9hZD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhc3luY0ZpbHRlcicsICdhdXRvZm9jdXNGaWx0ZXInLCAnY2xvc2VPblNlbGVjdCcsICdjb250YWluaW5nRWxlbWVudCcsICdkaXNhYmxlSGlkZU9uRW50ZXJBbmRTcGFjZScsICdkaXN0YW5jZScsICdmaWx0ZXInLCAnZmlsdGVyRGVib3VuY2UnLCAnZmlsdGVyUGxhY2Vob2xkZXInLCAnaG9pc3QnLCAnbWF0Y2hUcmlnZ2VyV2lkdGgnLCAnb3BlbicsICdvcHRpb25zJywgJ3BsYWNlbWVudCcsICdza2lkZGluZycsICd2aXJ0dWFsU2Nyb2xsJ10sXG4gIG1ldGhvZHM6IFsnc2hvdycsICdoaWRlJywgJ3JlcG9zaXRpb24nXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NpeC1kcm9wZG93bicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYXN5bmNGaWx0ZXInLCAnYXV0b2ZvY3VzRmlsdGVyJywgJ2Nsb3NlT25TZWxlY3QnLCAnY29udGFpbmluZ0VsZW1lbnQnLCAnZGlzYWJsZUhpZGVPbkVudGVyQW5kU3BhY2UnLCAnZGlzdGFuY2UnLCAnZmlsdGVyJywgJ2ZpbHRlckRlYm91bmNlJywgJ2ZpbHRlclBsYWNlaG9sZGVyJywgJ2hvaXN0JywgJ21hdGNoVHJpZ2dlcldpZHRoJywgJ29wZW4nLCAnb3B0aW9ucycsICdwbGFjZW1lbnQnLCAnc2tpZGRpbmcnLCAndmlydHVhbFNjcm9sbCddLFxufSlcbmV4cG9ydCBjbGFzcyBTaXhEcm9wZG93biB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3NpeC1kcm9wZG93bi1zaG93JywgJ3NpeC1kcm9wZG93bi1hZnRlci1zaG93JywgJ3NpeC1kcm9wZG93bi1oaWRlJywgJ3NpeC1kcm9wZG93bi1hZnRlci1oaWRlJywgJ3NpeC1kcm9wZG93bi1hdXRvLWZpbHRlci1maXJlZCcsICdzaXgtYXN5bmMtZmlsdGVyLWZpcmVkJywgJ3NpeC1kcm9wZG93bi1zY3JvbGwnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IEVtcHR5UGF5bG9hZCBhcyBJU2l4RHJvcGRvd25FbXB0eVBheWxvYWQgfSBmcm9tICdAc2l4LWdyb3VwL3VpLWxpYnJhcnknO1xuaW1wb3J0IHR5cGUgeyBTaXhEcm9wZG93bkF1dG9GaWx0ZXJQYXlsb2FkIGFzIElTaXhEcm9wZG93blNpeERyb3Bkb3duQXV0b0ZpbHRlclBheWxvYWQgfSBmcm9tICdAc2l4LWdyb3VwL3VpLWxpYnJhcnknO1xuaW1wb3J0IHR5cGUgeyBTaXhEcm9wZG93bkFzeW5jRmlsdGVyUGF5bG9hZCBhcyBJU2l4RHJvcGRvd25TaXhEcm9wZG93bkFzeW5jRmlsdGVyUGF5bG9hZCB9IGZyb20gJ0BzaXgtZ3JvdXAvdWktbGlicmFyeSc7XG5pbXBvcnQgdHlwZSB7IFNpeERyb3Bkb3duU2Nyb2xsUGF5bG9hZCBhcyBJU2l4RHJvcGRvd25TaXhEcm9wZG93blNjcm9sbFBheWxvYWQgfSBmcm9tICdAc2l4LWdyb3VwL3VpLWxpYnJhcnknO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU2l4RHJvcGRvd24gZXh0ZW5kcyBDb21wb25lbnRzLlNpeERyb3Bkb3duIHtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgZHJvcGRvd24gb3BlbnMuIENhbGxpbmcgYGV2ZW50LnByZXZlbnREZWZhdWx0KClgIHdpbGwgcHJldmVudCBpdCBmcm9tIGJlaW5nIG9wZW5lZC5cbiAgICovXG4gICdzaXgtZHJvcGRvd24tc2hvdyc6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU2l4RHJvcGRvd25FbXB0eVBheWxvYWQ+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgYWZ0ZXIgdGhlIGRyb3Bkb3duIG9wZW5zIGFuZCBhbGwgdHJhbnNpdGlvbnMgYXJlIGNvbXBsZXRlLlxuICAgKi9cbiAgJ3NpeC1kcm9wZG93bi1hZnRlci1zaG93JzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTaXhEcm9wZG93bkVtcHR5UGF5bG9hZD4+O1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSBkcm9wZG93biBjbG9zZXMuIENhbGxpbmcgYGV2ZW50LnByZXZlbnREZWZhdWx0KClgIHdpbGwgcHJldmVudCBpdCBmcm9tIGJlaW5nIGNsb3NlZC5cbiAgICovXG4gICdzaXgtZHJvcGRvd24taGlkZSc6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU2l4RHJvcGRvd25FbXB0eVBheWxvYWQ+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgYWZ0ZXIgdGhlIGRyb3Bkb3duIGNsb3NlcyBhbmQgYWxsIHRyYW5zaXRpb25zIGFyZSBjb21wbGV0ZS5cbiAgICovXG4gICdzaXgtZHJvcGRvd24tYWZ0ZXItaGlkZSc6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU2l4RHJvcGRvd25FbXB0eVBheWxvYWQ+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgYXV0byBmaWx0ZXIgaXMgdHJpZ2dlcmVkXG4gICAqL1xuICAnc2l4LWRyb3Bkb3duLWF1dG8tZmlsdGVyLWZpcmVkJzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTaXhEcm9wZG93blNpeERyb3Bkb3duQXV0b0ZpbHRlclBheWxvYWQ+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgYXN5bmMgZmlsdGVyIGlzIHRyaWdnZXJlZFxuICAgKi9cbiAgJ3NpeC1hc3luYy1maWx0ZXItZmlyZWQnOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVNpeERyb3Bkb3duU2l4RHJvcGRvd25Bc3luY0ZpbHRlclBheWxvYWQ+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgdXNlciBzY3JvbGxzIGluc2lkZSBkcm9wZG93biBwYW5lbC5cbiAgICovXG4gICdzaXgtZHJvcGRvd24tc2Nyb2xsJzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTaXhEcm9wZG93blNpeERyb3Bkb3duU2Nyb2xsUGF5bG9hZD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2l4LWVycm9yJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogW10sXG59KVxuZXhwb3J0IGNsYXNzIFNpeEVycm9yIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU2l4RXJyb3IgZXh0ZW5kcyBDb21wb25lbnRzLlNpeEVycm9yIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2N1c3RvbURlc2NyaXB0aW9uJywgJ2N1c3RvbUljb24nLCAnY3VzdG9tVGl0bGUnLCAnZXJyb3JDb2RlJywgJ2xhbmd1YWdlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzaXgtZXJyb3ItcGFnZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY3VzdG9tRGVzY3JpcHRpb24nLCAnY3VzdG9tSWNvbicsICdjdXN0b21UaXRsZScsICdlcnJvckNvZGUnLCAnbGFuZ3VhZ2UnXSxcbn0pXG5leHBvcnQgY2xhc3MgU2l4RXJyb3JQYWdlIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU2l4RXJyb3JQYWdlIGV4dGVuZHMgQ29tcG9uZW50cy5TaXhFcnJvclBhZ2Uge31cblxuXG5AUHJveHlDbXAoe1xufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NpeC1maWxlLWxpc3QnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbXSxcbn0pXG5leHBvcnQgY2xhc3MgU2l4RmlsZUxpc3Qge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTaXhGaWxlTGlzdCBleHRlbmRzIENvbXBvbmVudHMuU2l4RmlsZUxpc3Qge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnZGF0ZScsICdpZGVudGlmaWVyJywgJ25hbWUnLCAnbm9kZWxldGUnLCAnbm9kb3dubG9hZCcsICdzaXplJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzaXgtZmlsZS1saXN0LWl0ZW0nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2RhdGUnLCAnaWRlbnRpZmllcicsICduYW1lJywgJ25vZGVsZXRlJywgJ25vZG93bmxvYWQnLCAnc2l6ZSddLFxufSlcbmV4cG9ydCBjbGFzcyBTaXhGaWxlTGlzdEl0ZW0ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzaXgtZmlsZS1saXN0LWl0ZW0tZG93bmxvYWQnLCAnc2l4LWZpbGUtbGlzdC1pdGVtLXJlbW92ZSddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU2l4RmlsZUxpc3REb3dubG9hZFBheWxvYWQgYXMgSVNpeEZpbGVMaXN0SXRlbVNpeEZpbGVMaXN0RG93bmxvYWRQYXlsb2FkIH0gZnJvbSAnQHNpeC1ncm91cC91aS1saWJyYXJ5JztcbmltcG9ydCB0eXBlIHsgU2l4RmlsZUxpc3RSZW1vdmVQYXlsb2FkIGFzIElTaXhGaWxlTGlzdEl0ZW1TaXhGaWxlTGlzdFJlbW92ZVBheWxvYWQgfSBmcm9tICdAc2l4LWdyb3VwL3VpLWxpYnJhcnknO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU2l4RmlsZUxpc3RJdGVtIGV4dGVuZHMgQ29tcG9uZW50cy5TaXhGaWxlTGlzdEl0ZW0ge1xuICAvKipcbiAgICogVHJpZ2dlcmVkIG9uIGZpbGUgZG93bmxvYWQuXG4gICAqL1xuICAnc2l4LWZpbGUtbGlzdC1pdGVtLWRvd25sb2FkJzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTaXhGaWxlTGlzdEl0ZW1TaXhGaWxlTGlzdERvd25sb2FkUGF5bG9hZD4+O1xuICAvKipcbiAgICogVHJpZ2dlcmVkIG9uIGZpbGUgcmVtb3ZlLlxuICAgKi9cbiAgJ3NpeC1maWxlLWxpc3QtaXRlbS1yZW1vdmUnOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVNpeEZpbGVMaXN0SXRlbVNpeEZpbGVMaXN0UmVtb3ZlUGF5bG9hZD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhY2NlcHQnLCAnY29tcGFjdCcsICdkaXNhYmxlZCcsICdsYWJlbCcsICdtYXhGaWxlU2l6ZScsICdtdWx0aXBsZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2l4LWZpbGUtdXBsb2FkJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhY2NlcHQnLCAnY29tcGFjdCcsICdkaXNhYmxlZCcsICdsYWJlbCcsICdtYXhGaWxlU2l6ZScsICdtdWx0aXBsZSddLFxufSlcbmV4cG9ydCBjbGFzcyBTaXhGaWxlVXBsb2FkIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc2l4LWZpbGUtdXBsb2FkLXN1Y2Nlc3MnLCAnc2l4LWZpbGUtdXBsb2FkLWZhaWx1cmUnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFNpeEZpbGVVcGxvYWRTdWNjZXNzUGF5bG9hZCBhcyBJU2l4RmlsZVVwbG9hZFNpeEZpbGVVcGxvYWRTdWNjZXNzUGF5bG9hZCB9IGZyb20gJ0BzaXgtZ3JvdXAvdWktbGlicmFyeSc7XG5pbXBvcnQgdHlwZSB7IFNpeEZpbGVVcGxvYWRGYWlsdXJlUGF5bG9hZCBhcyBJU2l4RmlsZVVwbG9hZFNpeEZpbGVVcGxvYWRGYWlsdXJlUGF5bG9hZCB9IGZyb20gJ0BzaXgtZ3JvdXAvdWktbGlicmFyeSc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTaXhGaWxlVXBsb2FkIGV4dGVuZHMgQ29tcG9uZW50cy5TaXhGaWxlVXBsb2FkIHtcbiAgLyoqXG4gICAqIFRyaWdnZXJzIHdoZW4gYSBmaWxlIGlzIGFkZGVkLlxuICAgKi9cbiAgJ3NpeC1maWxlLXVwbG9hZC1zdWNjZXNzJzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTaXhGaWxlVXBsb2FkU2l4RmlsZVVwbG9hZFN1Y2Nlc3NQYXlsb2FkPj47XG4gIC8qKlxuICAgKiBUcmlnZ2VycyB3aGVuIGFuIHVwbG9hZGVkIGZpbGUgZG9lc24ndCBtYXRjaCBNSU1FIHR5cGUgb3IgbWF4IGZpbGUgc2l6ZS5cbiAgICovXG4gICdzaXgtZmlsZS11cGxvYWQtZmFpbHVyZSc6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU2l4RmlsZVVwbG9hZFNpeEZpbGVVcGxvYWRGYWlsdXJlUGF5bG9hZD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2l4LWZvb3RlcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFtdLFxufSlcbmV4cG9ydCBjbGFzcyBTaXhGb290ZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTaXhGb290ZXIgZXh0ZW5kcyBDb21wb25lbnRzLlNpeEZvb3RlciB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydkaXNhYmxlZCcsICdoZWxwVGV4dCcsICdsYWJlbCcsICdyZXF1aXJlZCcsICdzaXplJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzaXgtZ3JvdXAtbGFiZWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2Rpc2FibGVkJywgJ2hlbHBUZXh0JywgJ2xhYmVsJywgJ3JlcXVpcmVkJywgJ3NpemUnXSxcbn0pXG5leHBvcnQgY2xhc3MgU2l4R3JvdXBMYWJlbCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFNpeEdyb3VwTGFiZWwgZXh0ZW5kcyBDb21wb25lbnRzLlNpeEdyb3VwTGFiZWwge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY2xpY2thYmxlTG9nbycsICdoaWRlSGFtYnVyZ2VyTWVudScsICdvcGVuSGFtYnVyZ2VyTWVudScsICdvcGVuU2VhcmNoJywgJ3NoaWZ0Q29udGVudCddLFxuICBtZXRob2RzOiBbJ3NldFNlYXJjaE9wZW5TdGF0ZScsICdnZXRJc1NlYXJjaE9wZW4nXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NpeC1oZWFkZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2NsaWNrYWJsZUxvZ28nLCAnaGlkZUhhbWJ1cmdlck1lbnUnLCAnb3BlbkhhbWJ1cmdlck1lbnUnLCAnb3BlblNlYXJjaCcsICdzaGlmdENvbnRlbnQnXSxcbn0pXG5leHBvcnQgY2xhc3MgU2l4SGVhZGVyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc2l4LWhlYWRlci1hcHAtbmFtZS1jbGlja2VkJywgJ3NpeC1oZWFkZXItYXBwLXN3aXRjaGVyLXNlbGVjdCcsICdzaXgtaGVhZGVyLXByb2ZpbGUtc2VsZWN0JywgJ3NpeC1oZWFkZXItaGFtYnVyZ2VyLW1lbnUtY2xpY2tlZCcsICdzaXgtaGVhZGVyLWxvZ28tY2xpY2tlZCcsICdzaXgtaGVhZGVyLXNlYXJjaC1maWVsZC10b2dnbGUnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IEVtcHR5UGF5bG9hZCBhcyBJU2l4SGVhZGVyRW1wdHlQYXlsb2FkIH0gZnJvbSAnQHNpeC1ncm91cC91aS1saWJyYXJ5JztcbmltcG9ydCB0eXBlIHsgU2l4SGVhZGVyQXBwU3dpdGNoZXJTZWxlY3RQYXlsb2FkIGFzIElTaXhIZWFkZXJTaXhIZWFkZXJBcHBTd2l0Y2hlclNlbGVjdFBheWxvYWQgfSBmcm9tICdAc2l4LWdyb3VwL3VpLWxpYnJhcnknO1xuaW1wb3J0IHR5cGUgeyBTaXhIZWFkZXJQcm9maWxlU2VsZWN0UGF5bG9hZCBhcyBJU2l4SGVhZGVyU2l4SGVhZGVyUHJvZmlsZVNlbGVjdFBheWxvYWQgfSBmcm9tICdAc2l4LWdyb3VwL3VpLWxpYnJhcnknO1xuaW1wb3J0IHR5cGUgeyBTaXhIZWFkZXJTZWFyY2hGaWVsZFRvZ2dsZSBhcyBJU2l4SGVhZGVyU2l4SGVhZGVyU2VhcmNoRmllbGRUb2dnbGUgfSBmcm9tICdAc2l4LWdyb3VwL3VpLWxpYnJhcnknO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU2l4SGVhZGVyIGV4dGVuZHMgQ29tcG9uZW50cy5TaXhIZWFkZXIge1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSBuYW1lIG9mIHRoZSBzZWxlY3RlZCBhcHAgaXMgY2xpY2tlZC5cbiAgICovXG4gICdzaXgtaGVhZGVyLWFwcC1uYW1lLWNsaWNrZWQnOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVNpeEhlYWRlckVtcHR5UGF5bG9hZD4+O1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIGEgbWVudSBpdGVtIGlzIGluIHRoZSBhcHAgc3dpdGNoZXIgbWVudSBpcyBzZWxlY3RlZC5cbiAgICovXG4gICdzaXgtaGVhZGVyLWFwcC1zd2l0Y2hlci1zZWxlY3QnOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVNpeEhlYWRlclNpeEhlYWRlckFwcFN3aXRjaGVyU2VsZWN0UGF5bG9hZD4+O1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIGEgbWVudSBpdGVtIGlzIGluIHRoZSBwcm9maWxlIG1lbnUgaXMgc2VsZWN0ZWQuXG4gICAqL1xuICAnc2l4LWhlYWRlci1wcm9maWxlLXNlbGVjdCc6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU2l4SGVhZGVyU2l4SGVhZGVyUHJvZmlsZVNlbGVjdFBheWxvYWQ+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgaGFtYnVyZ2VyIG1lbnUgaXMgY2xpY2tlZC5cbiAgICovXG4gICdzaXgtaGVhZGVyLWhhbWJ1cmdlci1tZW51LWNsaWNrZWQnOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVNpeEhlYWRlckVtcHR5UGF5bG9hZD4+O1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSBoZWFkZXIgbG9nbyBpcyBjbGlja2VkLlxuICAgKi9cbiAgJ3NpeC1oZWFkZXItbG9nby1jbGlja2VkJzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTaXhIZWFkZXJFbXB0eVBheWxvYWQ+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiBzZWFyY2ggZmllbGQgaXMgdG9nZ2xlZC5cbiAgICovXG4gICdzaXgtaGVhZGVyLXNlYXJjaC1maWVsZC10b2dnbGUnOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVNpeEhlYWRlclNpeEhlYWRlclNlYXJjaEZpZWxkVG9nZ2xlPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2ZpbGxlZCcsICdzaXplJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzaXgtaWNvbicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnZmlsbGVkJywgJ3NpemUnXSxcbn0pXG5leHBvcnQgY2xhc3MgU2l4SWNvbiB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFNpeEljb24gZXh0ZW5kcyBDb21wb25lbnRzLlNpeEljb24ge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnZGlzYWJsZWQnLCAnaHRtbCcsICdsYWJlbCcsICduYW1lJywgJ3NpemUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NpeC1pY29uLWJ1dHRvbicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnZGlzYWJsZWQnLCAnaHRtbCcsICdsYWJlbCcsICduYW1lJywgJ3NpemUnXSxcbn0pXG5leHBvcnQgY2xhc3MgU2l4SWNvbkJ1dHRvbiB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFNpeEljb25CdXR0b24gZXh0ZW5kcyBDb21wb25lbnRzLlNpeEljb25CdXR0b24ge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYXV0b2NhcGl0YWxpemUnLCAnYXV0b2NvbXBsZXRlJywgJ2F1dG9jb3JyZWN0JywgJ2F1dG9mb2N1cycsICdjbGVhcmFibGUnLCAnZGlzYWJsZWQnLCAnZHJvcGRvd25TZWFyY2gnLCAnZXJyb3JUZXh0JywgJ2Vycm9yVGV4dENvdW50JywgJ2hlbHBUZXh0JywgJ2lucHV0bW9kZScsICdpbnZhbGlkJywgJ2xhYmVsJywgJ2xpbmUnLCAnbWF4JywgJ21heGxlbmd0aCcsICdtaW4nLCAnbWlubGVuZ3RoJywgJ25hbWUnLCAncGF0dGVybicsICdwaWxsJywgJ3BsYWNlaG9sZGVyJywgJ3JlYWRvbmx5JywgJ3JlcXVpcmVkJywgJ3NpemUnLCAnc3BlbGxjaGVjaycsICdzdGVwJywgJ3RvZ2dsZVBhc3N3b3JkJywgJ3R5cGUnLCAndmFsdWUnXSxcbiAgbWV0aG9kczogWydzZXRGb2N1cycsICdyZW1vdmVGb2N1cycsICdzZWxlY3QnLCAnc2V0U2VsZWN0aW9uUmFuZ2UnLCAnc2V0UmFuZ2VUZXh0J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzaXgtaW5wdXQnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2F1dG9jYXBpdGFsaXplJywgJ2F1dG9jb21wbGV0ZScsICdhdXRvY29ycmVjdCcsICdhdXRvZm9jdXMnLCAnY2xlYXJhYmxlJywgJ2Rpc2FibGVkJywgJ2Ryb3Bkb3duU2VhcmNoJywgJ2Vycm9yVGV4dCcsICdlcnJvclRleHRDb3VudCcsICdoZWxwVGV4dCcsICdpbnB1dG1vZGUnLCAnaW52YWxpZCcsICdsYWJlbCcsICdsaW5lJywgJ21heCcsICdtYXhsZW5ndGgnLCAnbWluJywgJ21pbmxlbmd0aCcsICduYW1lJywgJ3BhdHRlcm4nLCAncGlsbCcsICdwbGFjZWhvbGRlcicsICdyZWFkb25seScsICdyZXF1aXJlZCcsICdzaXplJywgJ3NwZWxsY2hlY2snLCAnc3RlcCcsICd0b2dnbGVQYXNzd29yZCcsICd0eXBlJywgJ3ZhbHVlJ10sXG59KVxuZXhwb3J0IGNsYXNzIFNpeElucHV0IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc2l4LWlucHV0LWNoYW5nZScsICdzaXgtaW5wdXQtY2xlYXInLCAnc2l4LWlucHV0LWlucHV0JywgJ3NpeC1pbnB1dC1mb2N1cycsICdzaXgtaW5wdXQtYmx1ciddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgRW1wdHlQYXlsb2FkIGFzIElTaXhJbnB1dEVtcHR5UGF5bG9hZCB9IGZyb20gJ0BzaXgtZ3JvdXAvdWktbGlicmFyeSc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTaXhJbnB1dCBleHRlbmRzIENvbXBvbmVudHMuU2l4SW5wdXQge1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSBjb250cm9sJ3MgdmFsdWUgY2hhbmdlcy4gQWNjZXNzIHRoZSBuZXcgdmFsdWUgdmlhIGV2ZW50LnRhcmdldC52YWx1ZS5cbiAgICovXG4gICdzaXgtaW5wdXQtY2hhbmdlJzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTaXhJbnB1dEVtcHR5UGF5bG9hZD4+O1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSBjbGVhciBidXR0b24gaXMgYWN0aXZhdGVkLlxuICAgKi9cbiAgJ3NpeC1pbnB1dC1jbGVhcic6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU2l4SW5wdXRFbXB0eVBheWxvYWQ+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgY29udHJvbCByZWNlaXZlcyBpbnB1dC4gQWNjZXNzIHRoZSBuZXcgdmFsdWUgdmlhIGV2ZW50LnRhcmdldC52YWx1ZS5cbiAgICovXG4gICdzaXgtaW5wdXQtaW5wdXQnOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVNpeElucHV0RW1wdHlQYXlsb2FkPj47XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIGNvbnRyb2wgZ2FpbnMgZm9jdXMuXG4gICAqL1xuICAnc2l4LWlucHV0LWZvY3VzJzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTaXhJbnB1dEVtcHR5UGF5bG9hZD4+O1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSBjb250cm9sIGxvc2VzIGZvY3VzLiBBY2Nlc3MgdGhlIG5ldyB2YWx1ZSB2aWEgZXZlbnQudGFyZ2V0LnZhbHVlLlxuICAgKi9cbiAgJ3NpeC1pbnB1dC1ibHVyJzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTaXhJbnB1dEVtcHR5UGF5bG9hZD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydkZWJvdW5jZScsICdpbnRlcnZhbCcsICdpdGVtcycsICdtYXgnLCAnbWluJywgJ3BhZGRlZCcsICdwYWRkaW5nQ2hhcicsICdwYWRkaW5nRGlyZWN0aW9uJywgJ3BhZGRpbmdMZW5ndGgnLCAncm91bmR0cmlwJywgJ3N0ZXAnLCAndGltZW91dCcsICd0eXBlJywgJ3ZhbHVlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzaXgtaXRlbS1waWNrZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2RlYm91bmNlJywgJ2ludGVydmFsJywgJ2l0ZW1zJywgJ21heCcsICdtaW4nLCAncGFkZGVkJywgJ3BhZGRpbmdDaGFyJywgJ3BhZGRpbmdEaXJlY3Rpb24nLCAncGFkZGluZ0xlbmd0aCcsICdyb3VuZHRyaXAnLCAnc3RlcCcsICd0aW1lb3V0JywgJ3R5cGUnLCAndmFsdWUnXSxcbn0pXG5leHBvcnQgY2xhc3MgU2l4SXRlbVBpY2tlciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3NpeC1pdGVtLXBpY2tlci1jaGFuZ2UnLCAnc2l4LWl0ZW0tcGlja2VyLWNoYW5nZS1kZWJvdW5jZWQnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFNpeEl0ZW1QaWNrZXJDaGFuZ2VQYXlsb2FkIGFzIElTaXhJdGVtUGlja2VyU2l4SXRlbVBpY2tlckNoYW5nZVBheWxvYWQgfSBmcm9tICdAc2l4LWdyb3VwL3VpLWxpYnJhcnknO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU2l4SXRlbVBpY2tlciBleHRlbmRzIENvbXBvbmVudHMuU2l4SXRlbVBpY2tlciB7XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIGl0ZW0gcGlja2VyJ3MgdmFsdWUgY2hhbmdlc1xuICAgKi9cbiAgJ3NpeC1pdGVtLXBpY2tlci1jaGFuZ2UnOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVNpeEl0ZW1QaWNrZXJTaXhJdGVtUGlja2VyQ2hhbmdlUGF5bG9hZD4+O1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSBpdGVtIHBpY2tlcidzIHZhbHVlIGNoYW5nZXMsIGJ1dCBkZWJvdW5jZWRcbiAgICovXG4gICdzaXgtaXRlbS1waWNrZXItY2hhbmdlLWRlYm91bmNlZCc6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU2l4SXRlbVBpY2tlclNpeEl0ZW1QaWNrZXJDaGFuZ2VQYXlsb2FkPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2xhbmd1YWdlcycsICdzZWxlY3RlZCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2l4LWxhbmd1YWdlLXN3aXRjaGVyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydsYW5ndWFnZXMnLCAnc2VsZWN0ZWQnXSxcbn0pXG5leHBvcnQgY2xhc3MgU2l4TGFuZ3VhZ2VTd2l0Y2hlciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3NpeC1sYW5ndWFnZS1zd2l0Y2hlci1jaGFuZ2UnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFNpeExhbmd1YWdlU3dpdGNoZXJDaGFuZ2VQYXlsb2FkIGFzIElTaXhMYW5ndWFnZVN3aXRjaGVyU2l4TGFuZ3VhZ2VTd2l0Y2hlckNoYW5nZVBheWxvYWQgfSBmcm9tICdAc2l4LWdyb3VwL3VpLWxpYnJhcnknO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU2l4TGFuZ3VhZ2VTd2l0Y2hlciBleHRlbmRzIENvbXBvbmVudHMuU2l4TGFuZ3VhZ2VTd2l0Y2hlciB7XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIGxhbmd1YWdlIHN3aXRjaGVycyB2YWx1ZSBjaGFuZ2VzXG4gICAqL1xuICAnc2l4LWxhbmd1YWdlLXN3aXRjaGVyLWNoYW5nZSc6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU2l4TGFuZ3VhZ2VTd2l0Y2hlclNpeExhbmd1YWdlU3dpdGNoZXJDaGFuZ2VQYXlsb2FkPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2NvbHVtbnMnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NpeC1sYXlvdXQtZ3JpZCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY29sdW1ucyddLFxufSlcbmV4cG9ydCBjbGFzcyBTaXhMYXlvdXRHcmlkIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU2l4TGF5b3V0R3JpZCBleHRlbmRzIENvbXBvbmVudHMuU2l4TGF5b3V0R3JpZCB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydwYWRkZWQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NpeC1tYWluLWNvbnRhaW5lcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsncGFkZGVkJ10sXG59KVxuZXhwb3J0IGNsYXNzIFNpeE1haW5Db250YWluZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTaXhNYWluQ29udGFpbmVyIGV4dGVuZHMgQ29tcG9uZW50cy5TaXhNYWluQ29udGFpbmVyIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2Rpc2FibGVLZXlib2FyZEhhbmRsaW5nJywgJ2l0ZW1TaXplJywgJ2l0ZW1zJywgJ2l0ZW1zU2hvd24nLCAncmVtb3ZlQm94U2hhZG93JywgJ3Njcm9sbGluZ0RlYm91bmNlJywgJ3ZpcnR1YWxTY3JvbGwnXSxcbiAgbWV0aG9kczogWyd0eXBlVG9TZWxlY3QnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NpeC1tZW51JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydkaXNhYmxlS2V5Ym9hcmRIYW5kbGluZycsICdpdGVtU2l6ZScsICdpdGVtcycsICdpdGVtc1Nob3duJywgJ3JlbW92ZUJveFNoYWRvdycsICdzY3JvbGxpbmdEZWJvdW5jZScsICd2aXJ0dWFsU2Nyb2xsJ10sXG59KVxuZXhwb3J0IGNsYXNzIFNpeE1lbnUge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzaXgtbWVudS1pdGVtLXNlbGVjdGVkJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTaXhNZW51SXRlbVNlbGVjdGVkUGF5bG9hZCBhcyBJU2l4TWVudVNpeE1lbnVJdGVtU2VsZWN0ZWRQYXlsb2FkIH0gZnJvbSAnQHNpeC1ncm91cC91aS1saWJyYXJ5JztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFNpeE1lbnUgZXh0ZW5kcyBDb21wb25lbnRzLlNpeE1lbnUge1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIGEgbWVudSBpdGVtIGlzIHNlbGVjdGVkLlxuICAgKi9cbiAgJ3NpeC1tZW51LWl0ZW0tc2VsZWN0ZWQnOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVNpeE1lbnVTaXhNZW51SXRlbVNlbGVjdGVkUGF5bG9hZD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2l4LW1lbnUtZGl2aWRlcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFtdLFxufSlcbmV4cG9ydCBjbGFzcyBTaXhNZW51RGl2aWRlciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFNpeE1lbnVEaXZpZGVyIGV4dGVuZHMgQ29tcG9uZW50cy5TaXhNZW51RGl2aWRlciB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjaGVja1R5cGUnLCAnY2hlY2tlZCcsICdkaXNhYmxlZCcsICd2YWx1ZSddLFxuICBtZXRob2RzOiBbJ3NldEZvY3VzJywgJ3JlbW92ZUZvY3VzJywgJ2dldFRleHRMYWJlbCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2l4LW1lbnUtaXRlbScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY2hlY2tUeXBlJywgJ2NoZWNrZWQnLCAnZGlzYWJsZWQnLCAndmFsdWUnXSxcbn0pXG5leHBvcnQgY2xhc3MgU2l4TWVudUl0ZW0ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTaXhNZW51SXRlbSBleHRlbmRzIENvbXBvbmVudHMuU2l4TWVudUl0ZW0ge31cblxuXG5AUHJveHlDbXAoe1xufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NpeC1tZW51LWxhYmVsJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogW10sXG59KVxuZXhwb3J0IGNsYXNzIFNpeE1lbnVMYWJlbCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFNpeE1lbnVMYWJlbCBleHRlbmRzIENvbXBvbmVudHMuU2l4TWVudUxhYmVsIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ3NpemUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NpeC1waWN0bycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnc2l6ZSddLFxufSlcbmV4cG9ydCBjbGFzcyBTaXhQaWN0byB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFNpeFBpY3RvIGV4dGVuZHMgQ29tcG9uZW50cy5TaXhQaWN0byB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydpbmRldGVybWluYXRlJywgJ3BlcmNlbnRhZ2UnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NpeC1wcm9ncmVzcy1iYXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2luZGV0ZXJtaW5hdGUnLCAncGVyY2VudGFnZSddLFxufSlcbmV4cG9ydCBjbGFzcyBTaXhQcm9ncmVzc0JhciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFNpeFByb2dyZXNzQmFyIGV4dGVuZHMgQ29tcG9uZW50cy5TaXhQcm9ncmVzc0JhciB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydwZXJjZW50YWdlJywgJ3NpemUnLCAnc3Ryb2tlV2lkdGgnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NpeC1wcm9ncmVzcy1yaW5nJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydwZXJjZW50YWdlJywgJ3NpemUnLCAnc3Ryb2tlV2lkdGgnXSxcbn0pXG5leHBvcnQgY2xhc3MgU2l4UHJvZ3Jlc3NSaW5nIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU2l4UHJvZ3Jlc3NSaW5nIGV4dGVuZHMgQ29tcG9uZW50cy5TaXhQcm9ncmVzc1Jpbmcge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY2hlY2tlZCcsICdkaXNhYmxlZCcsICdpbnZhbGlkJywgJ25hbWUnLCAndmFsdWUnXSxcbiAgbWV0aG9kczogWydzZXRGb2N1cycsICdyZW1vdmVGb2N1cyddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2l4LXJhZGlvJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjaGVja2VkJywgJ2Rpc2FibGVkJywgJ2ludmFsaWQnLCAnbmFtZScsICd2YWx1ZSddLFxufSlcbmV4cG9ydCBjbGFzcyBTaXhSYWRpbyB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3NpeC1yYWRpby1ibHVyJywgJ3NpeC1yYWRpby1jaGFuZ2UnLCAnc2l4LXJhZGlvLWZvY3VzJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBFbXB0eVBheWxvYWQgYXMgSVNpeFJhZGlvRW1wdHlQYXlsb2FkIH0gZnJvbSAnQHNpeC1ncm91cC91aS1saWJyYXJ5JztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFNpeFJhZGlvIGV4dGVuZHMgQ29tcG9uZW50cy5TaXhSYWRpbyB7XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIGNvbnRyb2wgbG9zZXMgZm9jdXMuXG4gICAqL1xuICAnc2l4LXJhZGlvLWJsdXInOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVNpeFJhZGlvRW1wdHlQYXlsb2FkPj47XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIGNvbnRyb2wncyBjaGVja2VkIHN0YXRlIGNoYW5nZXMuXG4gICAqL1xuICAnc2l4LXJhZGlvLWNoYW5nZSc6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU2l4UmFkaW9FbXB0eVBheWxvYWQ+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgY29udHJvbCBnYWlucyBmb2N1cy5cbiAgICovXG4gICdzaXgtcmFkaW8tZm9jdXMnOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVNpeFJhZGlvRW1wdHlQYXlsb2FkPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2Rpc2FibGVkJywgJ2Vycm9yVGV4dCcsICdlcnJvclRleHRDb3VudCcsICdoZWxwVGV4dCcsICdpbnZhbGlkJywgJ2xhYmVsJywgJ21heCcsICdtaW4nLCAnbmFtZScsICdyZXF1aXJlZCcsICdzdGVwJywgJ3Rvb2x0aXAnLCAndG9vbHRpcEZvcm1hdHRlcicsICd2YWx1ZSddLFxuICBtZXRob2RzOiBbJ3NldEZvY3VzJywgJ3JlbW92ZUZvY3VzJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzaXgtcmFuZ2UnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2Rpc2FibGVkJywgJ2Vycm9yVGV4dCcsICdlcnJvclRleHRDb3VudCcsICdoZWxwVGV4dCcsICdpbnZhbGlkJywgJ2xhYmVsJywgJ21heCcsICdtaW4nLCAnbmFtZScsICdyZXF1aXJlZCcsICdzdGVwJywgJ3Rvb2x0aXAnLCAndG9vbHRpcEZvcm1hdHRlcicsICd2YWx1ZSddLFxufSlcbmV4cG9ydCBjbGFzcyBTaXhSYW5nZSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3NpeC1yYW5nZS1jaGFuZ2UnLCAnc2l4LXJhbmdlLWJsdXInLCAnc2l4LXJhbmdlLWZvY3VzJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBFbXB0eVBheWxvYWQgYXMgSVNpeFJhbmdlRW1wdHlQYXlsb2FkIH0gZnJvbSAnQHNpeC1ncm91cC91aS1saWJyYXJ5JztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFNpeFJhbmdlIGV4dGVuZHMgQ29tcG9uZW50cy5TaXhSYW5nZSB7XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIGNvbnRyb2wncyB2YWx1ZSBjaGFuZ2VzLlxuICAgKi9cbiAgJ3NpeC1yYW5nZS1jaGFuZ2UnOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVNpeFJhbmdlRW1wdHlQYXlsb2FkPj47XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIGNvbnRyb2wgbG9zZXMgZm9jdXMuXG4gICAqL1xuICAnc2l4LXJhbmdlLWJsdXInOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVNpeFJhbmdlRW1wdHlQYXlsb2FkPj47XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIGNvbnRyb2wgZ2FpbnMgZm9jdXMuXG4gICAqL1xuICAnc2l4LXJhbmdlLWZvY3VzJzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTaXhSYW5nZUVtcHR5UGF5bG9hZD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydicmVha3BvaW50JywgJ3BhZGRlZCcsICdzdGFnZScsICd2ZXJzaW9uJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzaXgtcm9vdCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYnJlYWtwb2ludCcsICdwYWRkZWQnLCAnc3RhZ2UnLCAndmVyc2lvbiddLFxufSlcbmV4cG9ydCBjbGFzcyBTaXhSb290IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc2l4LXJvb3QtY29sbGFwc2VkJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTaXhSb290Q29sbGFwc2VkUGF5bG9hZCBhcyBJU2l4Um9vdFNpeFJvb3RDb2xsYXBzZWRQYXlsb2FkIH0gZnJvbSAnQHNpeC1ncm91cC91aS1saWJyYXJ5JztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFNpeFJvb3QgZXh0ZW5kcyBDb21wb25lbnRzLlNpeFJvb3Qge1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIGRpc3BsYXkgc2l6ZSBpcyB1cGRhdGVkLlxuICAgKi9cbiAgJ3NpeC1yb290LWNvbGxhcHNlZCc6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU2l4Um9vdFNpeFJvb3RDb2xsYXBzZWRQYXlsb2FkPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2NsZWFyYWJsZScsICdkZWJvdW5jZScsICdkaXNhYmxlZCcsICdwbGFjZWhvbGRlcicsICd2YWx1ZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2l4LXNlYXJjaC1maWVsZCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY2xlYXJhYmxlJywgJ2RlYm91bmNlJywgJ2Rpc2FibGVkJywgJ3BsYWNlaG9sZGVyJywgJ3ZhbHVlJ10sXG59KVxuZXhwb3J0IGNsYXNzIFNpeFNlYXJjaEZpZWxkIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc2l4LXNlYXJjaC1maWVsZC1jaGFuZ2UnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFNpeFNlYXJjaEZpZWxkQ2hhbmdlUGF5bG9hZCBhcyBJU2l4U2VhcmNoRmllbGRTaXhTZWFyY2hGaWVsZENoYW5nZVBheWxvYWQgfSBmcm9tICdAc2l4LWdyb3VwL3VpLWxpYnJhcnknO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU2l4U2VhcmNoRmllbGQgZXh0ZW5kcyBDb21wb25lbnRzLlNpeFNlYXJjaEZpZWxkIHtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiBhIHNlYXJjaCBpcyB0cmlnZ2VyZWRcbiAgICovXG4gICdzaXgtc2VhcmNoLWZpZWxkLWNoYW5nZSc6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU2l4U2VhcmNoRmllbGRTaXhTZWFyY2hGaWVsZENoYW5nZVBheWxvYWQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYXN5bmNGaWx0ZXInLCAnYXV0b2NvbXBsZXRlJywgJ2NsZWFyYWJsZScsICdkaXNhYmxlZCcsICdlcnJvclRleHQnLCAnZXJyb3JUZXh0Q291bnQnLCAnZmlsdGVyJywgJ2ZpbHRlckRlYm91bmNlJywgJ2ZpbHRlclBsYWNlaG9sZGVyJywgJ2hlbHBUZXh0JywgJ2hvaXN0JywgJ2lucHV0RGVib3VuY2UnLCAnaW52YWxpZCcsICdsYWJlbCcsICdsaW5lJywgJ21heFRhZ3NWaXNpYmxlJywgJ211bHRpcGxlJywgJ25hbWUnLCAnb3B0aW9ucycsICdwaWxsJywgJ3BsYWNlaG9sZGVyJywgJ3JlcXVpcmVkJywgJ3NlbGVjdEFsbEJ1dHRvbicsICdzZWxlY3RBbGxUZXh0JywgJ3NpemUnLCAndmFsdWUnLCAndmlydHVhbFNjcm9sbCddLFxuICBtZXRob2RzOiBbJ3NldEZvY3VzJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzaXgtc2VsZWN0JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhc3luY0ZpbHRlcicsICdhdXRvY29tcGxldGUnLCAnY2xlYXJhYmxlJywgJ2Rpc2FibGVkJywgJ2Vycm9yVGV4dCcsICdlcnJvclRleHRDb3VudCcsICdmaWx0ZXInLCAnZmlsdGVyRGVib3VuY2UnLCAnZmlsdGVyUGxhY2Vob2xkZXInLCAnaGVscFRleHQnLCAnaG9pc3QnLCAnaW5wdXREZWJvdW5jZScsICdpbnZhbGlkJywgJ2xhYmVsJywgJ2xpbmUnLCAnbWF4VGFnc1Zpc2libGUnLCAnbXVsdGlwbGUnLCAnbmFtZScsICdvcHRpb25zJywgJ3BpbGwnLCAncGxhY2Vob2xkZXInLCAncmVxdWlyZWQnLCAnc2VsZWN0QWxsQnV0dG9uJywgJ3NlbGVjdEFsbFRleHQnLCAnc2l6ZScsICd2YWx1ZScsICd2aXJ0dWFsU2Nyb2xsJ10sXG59KVxuZXhwb3J0IGNsYXNzIFNpeFNlbGVjdCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3NpeC1zZWxlY3QtY2hhbmdlJywgJ3NpeC1zZWxlY3QtZm9jdXMnLCAnc2l4LXNlbGVjdC1ibHVyJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTaXhTZWxlY3RDaGFuZ2VQYXlsb2FkIGFzIElTaXhTZWxlY3RTaXhTZWxlY3RDaGFuZ2VQYXlsb2FkIH0gZnJvbSAnQHNpeC1ncm91cC91aS1saWJyYXJ5JztcbmltcG9ydCB0eXBlIHsgRW1wdHlQYXlsb2FkIGFzIElTaXhTZWxlY3RFbXB0eVBheWxvYWQgfSBmcm9tICdAc2l4LWdyb3VwL3VpLWxpYnJhcnknO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU2l4U2VsZWN0IGV4dGVuZHMgQ29tcG9uZW50cy5TaXhTZWxlY3Qge1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSBjb250cm9sJ3MgdmFsdWUgY2hhbmdlcy5cbiAgICovXG4gICdzaXgtc2VsZWN0LWNoYW5nZSc6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU2l4U2VsZWN0U2l4U2VsZWN0Q2hhbmdlUGF5bG9hZD4+O1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSBjb250cm9sIGdhaW5zIGZvY3VzLlxuICAgKi9cbiAgJ3NpeC1zZWxlY3QtZm9jdXMnOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVNpeFNlbGVjdEVtcHR5UGF5bG9hZD4+O1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSBjb250cm9sIGxvc2VzIGZvY3VzLlxuICAgKi9cbiAgJ3NpeC1zZWxlY3QtYmx1cic6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU2l4U2VsZWN0RW1wdHlQYXlsb2FkPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ29wZW4nLCAncG9zaXRpb24nLCAndG9nZ2xlZCcsICd3aWR0aCddLFxuICBtZXRob2RzOiBbJ3RvZ2dsZScsICdzaG93JywgJ2hpZGUnLCAnc2VsZWN0SXRlbUJ5SW5kZXgnLCAnc2VsZWN0SXRlbUJ5TmFtZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2l4LXNpZGViYXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ29wZW4nLCAncG9zaXRpb24nLCAndG9nZ2xlZCcsICd3aWR0aCddLFxufSlcbmV4cG9ydCBjbGFzcyBTaXhTaWRlYmFyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc2l4LXNpZGViYXItc2hvdycsICdzaXgtc2lkZWJhci1hZnRlci1zaG93JywgJ3NpeC1zaWRlYmFyLWhpZGUnLCAnc2l4LXNpZGViYXItYWZ0ZXItaGlkZScsICdzaXgtc2lkZWJhci1pbml0aWFsLWZvY3VzJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBFbXB0eVBheWxvYWQgYXMgSVNpeFNpZGViYXJFbXB0eVBheWxvYWQgfSBmcm9tICdAc2l4LWdyb3VwL3VpLWxpYnJhcnknO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU2l4U2lkZWJhciBleHRlbmRzIENvbXBvbmVudHMuU2l4U2lkZWJhciB7XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIHNpZGViYXIgb3BlbnMuIENhbGxpbmcgYGV2ZW50LnByZXZlbnREZWZhdWx0KClgIHdpbGwgcHJldmVudCBpdCBmcm9tIGJlaW5nIG9wZW5lZC5cbiAgICovXG4gICdzaXgtc2lkZWJhci1zaG93JzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTaXhTaWRlYmFyRW1wdHlQYXlsb2FkPj47XG4gIC8qKlxuICAgKiBFbWl0dGVkIGFmdGVyIHRoZSBzaWRlYmFyIG9wZW5zIGFuZCBhbGwgdHJhbnNpdGlvbnMgYXJlIGNvbXBsZXRlLlxuICAgKi9cbiAgJ3NpeC1zaWRlYmFyLWFmdGVyLXNob3cnOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVNpeFNpZGViYXJFbXB0eVBheWxvYWQ+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgc2lkZWJhciBjbG9zZXMuIENhbGxpbmcgYGV2ZW50LnByZXZlbnREZWZhdWx0KClgIHdpbGwgcHJldmVudCBpdCBmcm9tIGJlaW5nIGNsb3NlZC5cbiAgICovXG4gICdzaXgtc2lkZWJhci1oaWRlJzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTaXhTaWRlYmFyRW1wdHlQYXlsb2FkPj47XG4gIC8qKlxuICAgKiBFbWl0dGVkIGFmdGVyIHRoZSBzaWRlYmFyIGNsb3NlcyBhbmQgYWxsIHRyYW5zaXRpb25zIGFyZSBjb21wbGV0ZS5cbiAgICovXG4gICdzaXgtc2lkZWJhci1hZnRlci1oaWRlJzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTaXhTaWRlYmFyRW1wdHlQYXlsb2FkPj47XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIHNpZGViYXIgb3BlbnMgYW5kIHRoZSBwYW5lbCBnYWlucyBmb2N1cy4gQ2FsbGluZyBgZXZlbnQucHJldmVudERlZmF1bHQoKWAgd2lsbCBwcmV2ZW50IGZvY3VzIGFuZFxuYWxsb3cgeW91IHRvIHNldCBpdCBvbiBhIGRpZmZlcmVudCBlbGVtZW50IGluIHRoZSBzaWRlYmFyLCBzdWNoIGFzIGFuIGlucHV0IG9yIGJ1dHRvbi5cbiAgICovXG4gICdzaXgtc2lkZWJhci1pbml0aWFsLWZvY3VzJzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTaXhTaWRlYmFyRW1wdHlQYXlsb2FkPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2Rpc2FibGVkJywgJ2hyZWYnLCAnc2VsZWN0ZWQnLCAndmFsdWUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NpeC1zaWRlYmFyLWl0ZW0nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2Rpc2FibGVkJywgJ2hyZWYnLCAnc2VsZWN0ZWQnLCAndmFsdWUnXSxcbn0pXG5leHBvcnQgY2xhc3MgU2l4U2lkZWJhckl0ZW0ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTaXhTaWRlYmFySXRlbSBleHRlbmRzIENvbXBvbmVudHMuU2l4U2lkZWJhckl0ZW0ge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnaHJlZicsICdpY29uJywgJ25hbWUnLCAnb3BlbicsICdzdW1tYXJ5SWNvbicsICd2YWx1ZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2l4LXNpZGViYXItaXRlbS1ncm91cCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnaHJlZicsICdpY29uJywgJ25hbWUnLCAnb3BlbicsICdzdW1tYXJ5SWNvbicsICd2YWx1ZSddLFxufSlcbmV4cG9ydCBjbGFzcyBTaXhTaWRlYmFySXRlbUdyb3VwIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU2l4U2lkZWJhckl0ZW1Hcm91cCBleHRlbmRzIENvbXBvbmVudHMuU2l4U2lkZWJhckl0ZW1Hcm91cCB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydzaXgnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NpeC1zcGlubmVyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydzaXgnXSxcbn0pXG5leHBvcnQgY2xhc3MgU2l4U3Bpbm5lciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFNpeFNwaW5uZXIgZXh0ZW5kcyBDb21wb25lbnRzLlNpeFNwaW5uZXIge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnc3RhZ2UnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NpeC1zdGFnZS1pbmRpY2F0b3InLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ3N0YWdlJ10sXG59KVxuZXhwb3J0IGNsYXNzIFNpeFN0YWdlSW5kaWNhdG9yIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU2l4U3RhZ2VJbmRpY2F0b3IgZXh0ZW5kcyBDb21wb25lbnRzLlNpeFN0YWdlSW5kaWNhdG9yIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2NoZWNrZWQnLCAnZGlzYWJsZWQnLCAnZXJyb3JUZXh0JywgJ2Vycm9yVGV4dENvdW50JywgJ2ludmFsaWQnLCAnbGFiZWwnLCAnbmFtZScsICdyZXF1aXJlZCcsICd2YWx1ZSddLFxuICBtZXRob2RzOiBbJ3NldEZvY3VzJywgJ3JlbW92ZUZvY3VzJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzaXgtc3dpdGNoJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjaGVja2VkJywgJ2Rpc2FibGVkJywgJ2Vycm9yVGV4dCcsICdlcnJvclRleHRDb3VudCcsICdpbnZhbGlkJywgJ2xhYmVsJywgJ25hbWUnLCAncmVxdWlyZWQnLCAndmFsdWUnXSxcbn0pXG5leHBvcnQgY2xhc3MgU2l4U3dpdGNoIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc2l4LXN3aXRjaC1ibHVyJywgJ3NpeC1zd2l0Y2gtY2hhbmdlJywgJ3NpeC1zd2l0Y2gtZm9jdXMnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IEVtcHR5UGF5bG9hZCBhcyBJU2l4U3dpdGNoRW1wdHlQYXlsb2FkIH0gZnJvbSAnQHNpeC1ncm91cC91aS1saWJyYXJ5JztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFNpeFN3aXRjaCBleHRlbmRzIENvbXBvbmVudHMuU2l4U3dpdGNoIHtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgY29udHJvbCBsb3NlcyBmb2N1cy5cbiAgICovXG4gICdzaXgtc3dpdGNoLWJsdXInOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8Ym9vbGVhbj4+O1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSBjb250cm9sJ3MgY2hlY2tlZCBzdGF0ZSBjaGFuZ2VzLlxuICAgKi9cbiAgJ3NpeC1zd2l0Y2gtY2hhbmdlJzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PGJvb2xlYW4+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgY29udHJvbCBnYWlucyBmb2N1cy5cbiAgICovXG4gICdzaXgtc3dpdGNoLWZvY3VzJzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTaXhTd2l0Y2hFbXB0eVBheWxvYWQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYWN0aXZlJywgJ2Nsb3NhYmxlJywgJ2Rpc2FibGVkJywgJ3BhbmVsJ10sXG4gIG1ldGhvZHM6IFsnc2V0Rm9jdXMnLCAncmVtb3ZlRm9jdXMnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NpeC10YWInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FjdGl2ZScsICdjbG9zYWJsZScsICdkaXNhYmxlZCcsICdwYW5lbCddLFxufSlcbmV4cG9ydCBjbGFzcyBTaXhUYWIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzaXgtdGFiLWNsb3NlJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBFbXB0eVBheWxvYWQgYXMgSVNpeFRhYkVtcHR5UGF5bG9hZCB9IGZyb20gJ0BzaXgtZ3JvdXAvdWktbGlicmFyeSc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTaXhUYWIgZXh0ZW5kcyBDb21wb25lbnRzLlNpeFRhYiB7XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIHRhYiBpcyBjbG9zYWJsZSBhbmQgdGhlIGNsb3NlIGJ1dHRvbiBpcyBhY3RpdmF0ZWQuXG4gICAqL1xuICAnc2l4LXRhYi1jbG9zZSc6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU2l4VGFiRW1wdHlQYXlsb2FkPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ25vU2Nyb2xsQ29udHJvbHMnLCAncGxhY2VtZW50J10sXG4gIG1ldGhvZHM6IFsnc2hvdyddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2l4LXRhYi1ncm91cCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnbm9TY3JvbGxDb250cm9scycsICdwbGFjZW1lbnQnXSxcbn0pXG5leHBvcnQgY2xhc3MgU2l4VGFiR3JvdXAge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzaXgtdGFiLXNob3cnLCAnc2l4LXRhYi1oaWRlJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTaXhUYWJTaG93UGF5bG9hZCBhcyBJU2l4VGFiR3JvdXBTaXhUYWJTaG93UGF5bG9hZCB9IGZyb20gJ0BzaXgtZ3JvdXAvdWktbGlicmFyeSc7XG5pbXBvcnQgdHlwZSB7IFNpeFRhYkhpZGVQYXlsb2FkIGFzIElTaXhUYWJHcm91cFNpeFRhYkhpZGVQYXlsb2FkIH0gZnJvbSAnQHNpeC1ncm91cC91aS1saWJyYXJ5JztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFNpeFRhYkdyb3VwIGV4dGVuZHMgQ29tcG9uZW50cy5TaXhUYWJHcm91cCB7XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gYSB0YWIgaXMgc2hvd24uXG4gICAqL1xuICAnc2l4LXRhYi1zaG93JzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTaXhUYWJHcm91cFNpeFRhYlNob3dQYXlsb2FkPj47XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gYSB0YWIgaXMgaGlkZGVuLlxuICAgKi9cbiAgJ3NpeC10YWItaGlkZSc6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU2l4VGFiR3JvdXBTaXhUYWJIaWRlUGF5bG9hZD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhY3RpdmUnLCAnbmFtZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2l4LXRhYi1wYW5lbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYWN0aXZlJywgJ25hbWUnXSxcbn0pXG5leHBvcnQgY2xhc3MgU2l4VGFiUGFuZWwge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTaXhUYWJQYW5lbCBleHRlbmRzIENvbXBvbmVudHMuU2l4VGFiUGFuZWwge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY2xlYXJhYmxlJywgJ3BpbGwnLCAnc2l6ZScsICd0eXBlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzaXgtdGFnJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjbGVhcmFibGUnLCAncGlsbCcsICdzaXplJywgJ3R5cGUnXSxcbn0pXG5leHBvcnQgY2xhc3MgU2l4VGFnIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc2l4LXRhZy1jbGVhciddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgRW1wdHlQYXlsb2FkIGFzIElTaXhUYWdFbXB0eVBheWxvYWQgfSBmcm9tICdAc2l4LWdyb3VwL3VpLWxpYnJhcnknO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU2l4VGFnIGV4dGVuZHMgQ29tcG9uZW50cy5TaXhUYWcge1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSBjbGVhciBidXR0b24gaXMgYWN0aXZhdGVkLlxuICAgKi9cbiAgJ3NpeC10YWctY2xlYXInOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVNpeFRhZ0VtcHR5UGF5bG9hZD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhdXRvY2FwaXRhbGl6ZScsICdhdXRvY29tcGxldGUnLCAnYXV0b2NvcnJlY3QnLCAnYXV0b2ZvY3VzJywgJ2Rpc2FibGVkJywgJ2Vycm9yVGV4dCcsICdlcnJvclRleHRDb3VudCcsICdoZWxwVGV4dCcsICdpbnB1dG1vZGUnLCAnaW52YWxpZCcsICdsYWJlbCcsICdtYXhsZW5ndGgnLCAnbWlubGVuZ3RoJywgJ25hbWUnLCAncGxhY2Vob2xkZXInLCAncmVhZG9ubHknLCAncmVxdWlyZWQnLCAncmVzaXplJywgJ3Jvd3MnLCAnc2l6ZScsICdzcGVsbGNoZWNrJywgJ3ZhbHVlJ10sXG4gIG1ldGhvZHM6IFsnc2V0Rm9jdXMnLCAncmVtb3ZlRm9jdXMnLCAnc2VsZWN0JywgJ3NldFNlbGVjdGlvblJhbmdlJywgJ3NldFJhbmdlVGV4dCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2l4LXRleHRhcmVhJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhdXRvY2FwaXRhbGl6ZScsICdhdXRvY29tcGxldGUnLCAnYXV0b2NvcnJlY3QnLCAnYXV0b2ZvY3VzJywgJ2Rpc2FibGVkJywgJ2Vycm9yVGV4dCcsICdlcnJvclRleHRDb3VudCcsICdoZWxwVGV4dCcsICdpbnB1dG1vZGUnLCAnaW52YWxpZCcsICdsYWJlbCcsICdtYXhsZW5ndGgnLCAnbWlubGVuZ3RoJywgJ25hbWUnLCAncGxhY2Vob2xkZXInLCAncmVhZG9ubHknLCAncmVxdWlyZWQnLCAncmVzaXplJywgJ3Jvd3MnLCAnc2l6ZScsICdzcGVsbGNoZWNrJywgJ3ZhbHVlJ10sXG59KVxuZXhwb3J0IGNsYXNzIFNpeFRleHRhcmVhIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc2l4LXRleHRhcmVhLWNoYW5nZScsICdzaXgtdGV4dGFyZWEtaW5wdXQnLCAnc2l4LXRleHRhcmVhLWZvY3VzJywgJ3NpeC10ZXh0YXJlYS1ibHVyJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBFbXB0eVBheWxvYWQgYXMgSVNpeFRleHRhcmVhRW1wdHlQYXlsb2FkIH0gZnJvbSAnQHNpeC1ncm91cC91aS1saWJyYXJ5JztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFNpeFRleHRhcmVhIGV4dGVuZHMgQ29tcG9uZW50cy5TaXhUZXh0YXJlYSB7XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIGNvbnRyb2wncyB2YWx1ZSBjaGFuZ2VzLiBBY2Nlc3MgdGhlIG5ldyB2YWx1ZSB2aWEgZXZlbnQudGFyZ2V0LnZhbHVlLlxuICAgKi9cbiAgJ3NpeC10ZXh0YXJlYS1jaGFuZ2UnOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVNpeFRleHRhcmVhRW1wdHlQYXlsb2FkPj47XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIGNvbnRyb2wgcmVjZWl2ZXMgaW5wdXQuIEFjY2VzcyB0aGUgbmV3IHZhbHVlIHZpYSBldmVudC50YXJnZXQudmFsdWUuXG4gICAqL1xuICAnc2l4LXRleHRhcmVhLWlucHV0JzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTaXhUZXh0YXJlYUVtcHR5UGF5bG9hZD4+O1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSBjb250cm9sIGdhaW5zIGZvY3VzLlxuICAgKi9cbiAgJ3NpeC10ZXh0YXJlYS1mb2N1cyc6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU2l4VGV4dGFyZWFFbXB0eVBheWxvYWQ+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgY29udHJvbCBsb3NlcyBmb2N1cy4gQWNjZXNzIHRoZSBuZXcgdmFsdWUgdmlhIGV2ZW50LnRhcmdldC52YWx1ZS5cbiAgICovXG4gICdzaXgtdGV4dGFyZWEtYmx1cic6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU2l4VGV4dGFyZWFFbXB0eVBheWxvYWQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY2xvc2VhYmxlJywgJ2Rpc2FibGVUb29sdGlwJywgJ2Rpc2FibGVkJywgJ2VsZXZhdGVkJywgJ2ljb25OYW1lJywgJ2xhYmVsJywgJ3NpemUnXSxcbiAgbWV0aG9kczogWydoaWRlJywgJ3Nob3cnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NpeC10aWxlJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjbG9zZWFibGUnLCAnZGlzYWJsZVRvb2x0aXAnLCAnZGlzYWJsZWQnLCAnZWxldmF0ZWQnLCAnaWNvbk5hbWUnLCAnbGFiZWwnLCAnc2l6ZSddLFxufSlcbmV4cG9ydCBjbGFzcyBTaXhUaWxlIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc2l4LXRpbGUtY2xvc2VkJywgJ3NpeC10aWxlLXNlbGVjdGVkJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBFbXB0eVBheWxvYWQgYXMgSVNpeFRpbGVFbXB0eVBheWxvYWQgfSBmcm9tICdAc2l4LWdyb3VwL3VpLWxpYnJhcnknO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU2l4VGlsZSBleHRlbmRzIENvbXBvbmVudHMuU2l4VGlsZSB7XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIHRpbGUgd2FzIGNsb3NlZC5cbiAgICovXG4gICdzaXgtdGlsZS1jbG9zZWQnOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVNpeFRpbGVFbXB0eVBheWxvYWQ+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgdGlsZSBpcyBzZWxlY3RlZC5cbiAgICovXG4gICdzaXgtdGlsZS1zZWxlY3RlZCc6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU2l4VGlsZUVtcHR5UGF5bG9hZD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjbGVhcmFibGUnLCAnZGVib3VuY2UnLCAnZGVmYXVsdFRpbWUnLCAnZGlzYWJsZWQnLCAnZXJyb3JUZXh0JywgJ2Vycm9yVGV4dENvdW50JywgJ2Zvcm1hdCcsICdob2lzdCcsICdpY29uUG9zaXRpb24nLCAnaW5saW5lJywgJ2ludGVydmFsJywgJ2ludmFsaWQnLCAnbGFiZWwnLCAnbmFtZScsICdvcGVuJywgJ3BsYWNlaG9sZGVyJywgJ3BsYWNlbWVudCcsICdyZWFkb25seScsICdyZXF1aXJlZCcsICdzZXBhcmF0b3InLCAnc2l6ZScsICd0aW1lb3V0JywgJ3ZhbHVlJ10sXG4gIG1ldGhvZHM6IFsnc2V0Rm9jdXMnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NpeC10aW1lcGlja2VyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjbGVhcmFibGUnLCAnZGVib3VuY2UnLCAnZGVmYXVsdFRpbWUnLCAnZGlzYWJsZWQnLCAnZXJyb3JUZXh0JywgJ2Vycm9yVGV4dENvdW50JywgJ2Zvcm1hdCcsICdob2lzdCcsICdpY29uUG9zaXRpb24nLCAnaW5saW5lJywgJ2ludGVydmFsJywgJ2ludmFsaWQnLCAnbGFiZWwnLCAnbmFtZScsICdvcGVuJywgJ3BsYWNlaG9sZGVyJywgJ3BsYWNlbWVudCcsICdyZWFkb25seScsICdyZXF1aXJlZCcsICdzZXBhcmF0b3InLCAnc2l6ZScsICd0aW1lb3V0JywgJ3ZhbHVlJ10sXG59KVxuZXhwb3J0IGNsYXNzIFNpeFRpbWVwaWNrZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzaXgtdGltZXBpY2tlci1jaGFuZ2UnLCAnc2l4LXRpbWVwaWNrZXItY2hhbmdlLWRlYm91bmNlZCcsICdzaXgtdGltZXBpY2tlci1jbGVhciddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU2l4VGltZXBpY2tlckNoYW5nZSBhcyBJU2l4VGltZXBpY2tlclNpeFRpbWVwaWNrZXJDaGFuZ2UgfSBmcm9tICdAc2l4LWdyb3VwL3VpLWxpYnJhcnknO1xuaW1wb3J0IHR5cGUgeyBFbXB0eVBheWxvYWQgYXMgSVNpeFRpbWVwaWNrZXJFbXB0eVBheWxvYWQgfSBmcm9tICdAc2l4LWdyb3VwL3VpLWxpYnJhcnknO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU2l4VGltZXBpY2tlciBleHRlbmRzIENvbXBvbmVudHMuU2l4VGltZXBpY2tlciB7XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIHRpbWVwaWNrZXIncyB2YWx1ZSBjaGFuZ2VzXG4gICAqL1xuICAnc2l4LXRpbWVwaWNrZXItY2hhbmdlJzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTaXhUaW1lcGlja2VyU2l4VGltZXBpY2tlckNoYW5nZT4+O1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSB0aW1lcGlja2VyJ3MgdmFsdWUgY2hhbmdlcywgYnV0IGRlYm91bmNlZFxuICAgKi9cbiAgJ3NpeC10aW1lcGlja2VyLWNoYW5nZS1kZWJvdW5jZWQnOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVNpeFRpbWVwaWNrZXJTaXhUaW1lcGlja2VyQ2hhbmdlPj47XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIGNsZWFyIGJ1dHRvbiBpcyBhY3RpdmF0ZWQuXG4gICAqL1xuICAnc2l4LXRpbWVwaWNrZXItY2xlYXInOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVNpeFRpbWVwaWNrZXJFbXB0eVBheWxvYWQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY29udGVudCcsICdkaXNhYmxlZCcsICdkaXN0YW5jZScsICdvcGVuJywgJ3BsYWNlbWVudCcsICdza2lkZGluZycsICd0cmlnZ2VyJ10sXG4gIG1ldGhvZHM6IFsnc2hvdycsICdoaWRlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzaXgtdG9vbHRpcCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY29udGVudCcsICdkaXNhYmxlZCcsICdkaXN0YW5jZScsICdvcGVuJywgJ3BsYWNlbWVudCcsICdza2lkZGluZycsICd0cmlnZ2VyJ10sXG59KVxuZXhwb3J0IGNsYXNzIFNpeFRvb2x0aXAge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzaXgtdG9vbHRpcC1zaG93JywgJ3NpeC10b29sdGlwLWFmdGVyLXNob3cnLCAnc2l4LXRvb2x0aXAtaGlkZScsICdzaXgtdG9vbHRpcC1hZnRlci1oaWRlJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBFbXB0eVBheWxvYWQgYXMgSVNpeFRvb2x0aXBFbXB0eVBheWxvYWQgfSBmcm9tICdAc2l4LWdyb3VwL3VpLWxpYnJhcnknO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU2l4VG9vbHRpcCBleHRlbmRzIENvbXBvbmVudHMuU2l4VG9vbHRpcCB7XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIHRvb2x0aXAgYmVnaW5zIHRvIHNob3cuIENhbGxpbmcgYGV2ZW50LnByZXZlbnREZWZhdWx0KClgIHdpbGwgcHJldmVudCBpdCBmcm9tIGJlaW5nIHNob3duLlxuICAgKi9cbiAgJ3NpeC10b29sdGlwLXNob3cnOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVNpeFRvb2x0aXBFbXB0eVBheWxvYWQ+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgYWZ0ZXIgdGhlIHRvb2x0aXAgaGFzIHNob3duIGFuZCBhbGwgdHJhbnNpdGlvbnMgYXJlIGNvbXBsZXRlLlxuICAgKi9cbiAgJ3NpeC10b29sdGlwLWFmdGVyLXNob3cnOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVNpeFRvb2x0aXBFbXB0eVBheWxvYWQ+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgdG9vbHRpcCBiZWdpbnMgdG8gaGlkZS4gQ2FsbGluZyBgZXZlbnQucHJldmVudERlZmF1bHQoKWAgd2lsbCBwcmV2ZW50IGl0IGZyb20gYmVpbmcgaGlkZGVuLlxuICAgKi9cbiAgJ3NpeC10b29sdGlwLWhpZGUnOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVNpeFRvb2x0aXBFbXB0eVBheWxvYWQ+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgYWZ0ZXIgdGhlIHRvb2x0aXAgaGFzIGhpZGRlbiBhbmQgYWxsIHRyYW5zaXRpb25zIGFyZSBjb21wbGV0ZS5cbiAgICovXG4gICdzaXgtdG9vbHRpcC1hZnRlci1oaWRlJzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTaXhUb29sdGlwRW1wdHlQYXlsb2FkPj47XG59XG5cblxuIl19