@sbb-esta/lyne-elements-dev 5.0.0-next.3-dev.1779268556 → 5.0.0-next.3-dev.1779279790
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/autocomplete/autocomplete-base-element.js +1 -1
- package/autocomplete/autocomplete.component.js +1 -1
- package/{autocomplete-base-element-jaXVQcA7.js → autocomplete-base-element-DjfmUS0W.js} +0 -1
- package/autocomplete.js +1 -1
- package/autocomplete.pure.js +1 -1
- package/calendar/calendar/calendar.component.js +1 -1
- package/{calendar.component-DKgkIocz.js → calendar.component-BhUyyFtR.js} +66 -66
- package/calendar.js +1 -1
- package/calendar.pure.js +1 -1
- package/core/base-elements/button-base-element.js +47 -68
- package/core/datetime/date-adapter.js +2 -2
- package/core/mixins/form-associated-checkbox-mixin.js +17 -26
- package/core.js +40 -42
- package/custom-elements.json +98 -362
- package/datepicker/common/datepicker-button.js +1 -1
- package/{datepicker-button-aYDFZ_3v.js → datepicker-button-CuoZoC6e.js} +0 -3
- package/datepicker.js +1 -1
- package/datepicker.pure.js +1 -1
- package/development/autocomplete/autocomplete-base-element.d.ts +0 -2
- package/development/autocomplete/autocomplete-base-element.d.ts.map +1 -1
- package/development/autocomplete/autocomplete-base-element.js +1 -1
- package/development/autocomplete/autocomplete.component.js +1 -1
- package/development/{autocomplete-base-element-JxM7QbC4.js → autocomplete-base-element-CTZEg--s.js} +1 -3
- package/development/autocomplete.js +1 -1
- package/development/autocomplete.pure.js +1 -1
- package/development/calendar/calendar/calendar.component.d.ts +0 -6
- package/development/calendar/calendar/calendar.component.d.ts.map +1 -1
- package/development/calendar/calendar/calendar.component.js +1 -1
- package/development/calendar.component-DnC8Zkdk.js +1478 -0
- package/development/calendar.js +1 -1
- package/development/calendar.pure.js +1 -1
- package/development/core/base-elements/button-base-element.d.ts +1 -0
- package/development/core/base-elements/button-base-element.d.ts.map +1 -1
- package/development/core/base-elements/button-base-element.js +66 -92
- package/development/core/base-elements/element.d.ts.map +1 -1
- package/development/core/datetime/date-adapter.d.ts +0 -5
- package/development/core/datetime/date-adapter.d.ts.map +1 -1
- package/development/core/datetime/date-adapter.js +2 -7
- package/development/core/mixins/form-associated-checkbox-mixin.d.ts.map +1 -1
- package/development/core/mixins/form-associated-checkbox-mixin.js +7 -21
- package/development/core/mixins/form-associated-mixin.d.ts +1 -1
- package/development/core/mixins/form-associated-mixin.d.ts.map +1 -1
- package/development/core/mixins/form-associated-mixin.js +1 -1
- package/development/core.d.ts +0 -2
- package/development/core.d.ts.map +1 -1
- package/development/core.js +2 -4
- package/development/datepicker/common/datepicker-button.d.ts +0 -2
- package/development/datepicker/common/datepicker-button.d.ts.map +1 -1
- package/development/datepicker/common/datepicker-button.js +1 -1
- package/development/{datepicker-button-BAT1ebzJ.js → datepicker-button-Bb76EBYH.js} +1 -5
- package/development/datepicker.js +1 -1
- package/development/datepicker.pure.js +1 -1
- package/development/dialog/dialog/dialog.component.js +1 -1
- package/development/{dialog.component-D8B2dVck.js → dialog.component-cZ3SAujq.js} +5 -5
- package/development/dialog.js +1 -1
- package/development/dialog.pure.js +1 -1
- package/development/element-BAsBayf5.js +1 -1
- package/development/expansion-panel/expansion-panel-header/expansion-panel-header.component.d.ts.map +1 -1
- package/development/expansion-panel-header.component-gg5A_7Pz.js +1 -1
- package/development/form-field/form-field/form-field.component.d.ts.map +1 -1
- package/development/form-field/form-field/form-field.component.js +1 -1
- package/development/form-field.component-Cb58q-Ty.js +702 -0
- package/development/form-field.js +1 -1
- package/development/form-field.pure.js +1 -1
- package/development/icon/icon.component.d.ts +1 -1
- package/development/icon/icon.component.d.ts.map +1 -1
- package/development/icon/icon.component.js +5 -7
- package/development/optgroup-base-element-BzfcJgxG.js +140 -0
- package/development/option/optgroup/optgroup-base-element.d.ts +1 -2
- package/development/option/optgroup/optgroup-base-element.d.ts.map +1 -1
- package/development/option/optgroup/optgroup-base-element.js +1 -1
- package/development/option/optgroup/optgroup.component.js +1 -1
- package/development/option.js +1 -1
- package/development/option.pure.js +1 -1
- package/development/overlay/overlay-base-element.d.ts +2 -4
- package/development/overlay/overlay-base-element.d.ts.map +1 -1
- package/development/overlay/overlay-base-element.js +6 -5
- package/development/overlay/overlay.component.js +1 -1
- package/development/{overlay.component-BH-aue7w.js → overlay.component-DywhKxO1.js} +5 -5
- package/development/overlay.js +1 -1
- package/development/overlay.pure.js +1 -1
- package/development/panel-mixin-DPybe45K.js +1 -1
- package/development/slider/slider.component.d.ts +1 -0
- package/development/slider/slider.component.d.ts.map +1 -1
- package/development/slider/slider.component.js +1 -1
- package/development/{slider.component-BLptxiZ4.js → slider.component-Dz4Nl2ZL.js} +8 -21
- package/development/slider.js +1 -1
- package/development/slider.pure.js +1 -1
- package/development/{step.component-DpSJEkrK.js → step.component-CfA-kmt1.js} +1 -11
- package/development/stepper/step/step.component.d.ts +4 -14
- package/development/stepper/step/step.component.d.ts.map +1 -1
- package/development/stepper/step/step.component.js +1 -1
- package/development/stepper/stepper/stepper.component.js +1 -1
- package/development/{stepper.component-Bv6LCFU0.js → stepper.component-2yRFnnju.js} +5 -5
- package/development/stepper.js +2 -2
- package/development/stepper.pure.js +2 -2
- package/dialog/dialog/dialog.component.js +1 -1
- package/{dialog.component-CsBryhM-.js → dialog.component-D3G0AX4Y.js} +4 -4
- package/dialog.js +1 -1
- package/dialog.pure.js +1 -1
- package/form-field/form-field/form-field.component.js +1 -1
- package/{form-field.component-BdfK6r2v.js → form-field.component-BoLly8qP.js} +4 -4
- package/form-field.js +1 -1
- package/form-field.pure.js +1 -1
- package/icon/icon.component.js +2 -5
- package/lean-off-brand-theme.css +1 -0
- package/lean-safety-theme.css +1 -0
- package/lean-theme.css +1 -0
- package/off-brand-theme.css +1 -0
- package/{optgroup-base-element-Cxe8SIQh.js → optgroup-base-element-CBxsRPUF.js} +10 -17
- package/option/optgroup/optgroup-base-element.js +1 -1
- package/option/optgroup/optgroup.component.js +1 -1
- package/option.js +1 -1
- package/option.pure.js +1 -1
- package/overlay/overlay-base-element.js +3 -3
- package/overlay/overlay.component.js +1 -1
- package/{overlay.component-D7Z_vx1A.js → overlay.component-OSLtja0_.js} +4 -4
- package/overlay.js +1 -1
- package/overlay.pure.js +1 -1
- package/package.json +2 -2
- package/safety-theme.css +1 -0
- package/slider/slider.component.js +1 -1
- package/{slider.component-C8LKcM11.js → slider.component-BMkoF1l1.js} +23 -31
- package/slider.js +1 -1
- package/slider.pure.js +1 -1
- package/standard-theme.css +1 -0
- package/core/decorators/host-attributes.js +0 -17
- package/core/eventing/throttle.js +0 -11
- package/development/calendar.component-CgEXjBeQ.js +0 -1473
- package/development/core/decorators/host-attributes.d.ts +0 -22
- package/development/core/decorators/host-attributes.d.ts.map +0 -1
- package/development/core/decorators/host-attributes.js +0 -41
- package/development/core/eventing/throttle.d.ts +0 -3
- package/development/core/eventing/throttle.d.ts.map +0 -1
- package/development/core/eventing/throttle.js +0 -18
- package/development/form-field.component-CPWBCHer.js +0 -702
- package/development/optgroup-base-element-CLfE6pmz.js +0 -147
|
@@ -391,4 +391,4 @@ var SbbElement = class extends LitElement {
|
|
|
391
391
|
//#endregion
|
|
392
392
|
export { ɵstateController as a, removeAriaElements as i, SbbSlottedChangeEvent as n, appendAriaElements as r, SbbElement as t };
|
|
393
393
|
|
|
394
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlbWVudC1CQXNCYXlmNS5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZWxlbWVudHMvY29yZS9iYXNlLWVsZW1lbnRzL2VsZW1lbnQuc2Nzcz9pbmxpbmUiLCIuLi8uLi8uLi9zcmMvZWxlbWVudHMvY29yZS9iYXNlLWVsZW1lbnRzL2VsZW1lbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiQHVzZSAnLi4vc3R5bGVzL21peGlucy9oZWxwZXJzJztcblxuQGluY2x1ZGUgaGVscGVycy5ib3gtc2l6aW5nO1xuIiwiaW1wb3J0IHtcbiAgdHlwZSBDU1NSZXN1bHRHcm91cCxcbiAgdHlwZSBDU1NSZXN1bHRPck5hdGl2ZSxcbiAgaXNTZXJ2ZXIsXG4gIExpdEVsZW1lbnQsXG4gIHR5cGUgUHJvcGVydHlEZWNsYXJhdGlvbixcbiAgdHlwZSBQcm9wZXJ0eVZhbHVlcyxcbiAgdHlwZSBSZWFjdGl2ZUNvbnRyb2xsZXIsXG4gIHVuc2FmZUNTUyxcbn0gZnJvbSAnbGl0JztcblxuaW1wb3J0IHN0eWxlIGZyb20gJy4vZWxlbWVudC5zY3NzP2lubGluZSc7XG5cbi8vIE1vc3Qgb2Ygb3VyIHRhcmdldCBicm93c2VycyBzdXBwb3J0IHRoZSA6c3RhdGUoKSBwc2V1ZG8gY2xhc3MsIGJ1dCBub3QgYWxsIG9mIHRoZW0uXG4vLyBXZSBwYXRjaCB0aGUgc3RhdGVzIHByb3BlcnR5IG9mIHRoZSBlbGVtZW50IGludGVybmFscyB0byB1c2UgYXR0cmlidXRlcyBpbnN0ZWFkLFxuLy8gaWYgOnN0YXRlKCkgaXMgbm90IHN1cHBvcnRlZC5cbi8vIE5vdGUgdGhhdCBmb3IgU1NSLCB0aGUgc3RhdGVzIHByb3BlcnR5IGlzIGEgc2ltcGxlIFNldCwgaW1wbGVtZW50ZWQgaW4gTGl0IFNTUi5cbnR5cGUgQ3VzdG9tU3RhdGVTZXRJbnRlcmZhY2UgPSBDdXN0b21TdGF0ZVNldDtcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbmNvbnN0IEN1c3RvbVN0YXRlU2V0UG9seWZpbGw6IChuZXcgKGhvc3Q6IExpdEVsZW1lbnQpID0+IEN1c3RvbVN0YXRlU2V0SW50ZXJmYWNlKSB8IG51bGwgPVxuICBpc1NlcnZlciB8fCAhQ1NTLnN1cHBvcnRzKCdzZWxlY3Rvcig6c3RhdGUobG9hZGluZykpJylcbiAgICA/IGNsYXNzIEN1c3RvbVN0YXRlU2V0XG4gICAgICAgIGV4dGVuZHMgU2V0PHN0cmluZz5cbiAgICAgICAgaW1wbGVtZW50cyBDdXN0b21TdGF0ZVNldEludGVyZmFjZSwgUmVhY3RpdmVDb250cm9sbGVyXG4gICAgICB7XG4gICAgICAgIHByaXZhdGUgX2FwcGxpZWQgPSBpc1NlcnZlcjtcblxuICAgICAgICBwdWJsaWMgY29uc3RydWN0b3IocHJpdmF0ZSBfaG9zdDogTGl0RWxlbWVudCkge1xuICAgICAgICAgIHN1cGVyKCk7XG4gICAgICAgICAgdGhpcy5faG9zdC5hZGRDb250cm9sbGVyKHRoaXMpO1xuICAgICAgICAgIGlmICghaXNTZXJ2ZXIpIHtcbiAgICAgICAgICAgIC8vIFdlIHdhbnQgdG8gYXBwbHkgdGhlIGF0dHJpYnV0ZXMgYXMgZWFybHkgYXMgcG9zc2libGUgd2hpY2ggY2FuXG4gICAgICAgICAgICAvLyBlaXRoZXIgYmUgdmlhIHRoaXMgUHJvbWlzZS5yZXNvbHZlKCkgb3IgdGhlIGNvbm5lY3RlZENhbGxiYWNrKCkuXG4gICAgICAgICAgICBQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpID0+IHRoaXMuX2FwcGx5U3RhdGVzKCkpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHB1YmxpYyBvdmVycmlkZSBhZGQoc3RhdGU6IHN0cmluZyk6IHRoaXMge1xuICAgICAgICAgIGlmICh0aGlzLl9hcHBsaWVkKSB7XG4gICAgICAgICAgICB0aGlzLl90b2dnbGVTdGF0ZShzdGF0ZSwgdHJ1ZSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBzdXBlci5hZGQoc3RhdGUpO1xuICAgICAgICB9XG5cbiAgICAgICAgcHVibGljIG92ZXJyaWRlIGRlbGV0ZShzdGF0ZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgICAgdGhpcy5fdG9nZ2xlU3RhdGUoc3RhdGUsIGZhbHNlKTtcbiAgICAgICAgICByZXR1cm4gc3VwZXIuZGVsZXRlKHN0YXRlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHB1YmxpYyBvdmVycmlkZSBjbGVhcigpOiB2b2lkIHtcbiAgICAgICAgICB0aGlzLmZvckVhY2goKHN0YXRlKSA9PiB0aGlzLmRlbGV0ZShzdGF0ZSkpO1xuICAgICAgICB9XG5cbiAgICAgICAgcHVibGljIGhvc3RDb25uZWN0ZWQoKTogdm9pZCB7XG4gICAgICAgICAgdGhpcy5fYXBwbHlTdGF0ZXMoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHByaXZhdGUgX3RvZ2dsZVN0YXRlKHN0YXRlOiBzdHJpbmcsIGVuYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgICB0aGlzLl9ob3N0LnRvZ2dsZUF0dHJpYnV0ZShgc3RhdGUtLSR7c3RhdGV9YCwgZW5hYmxlZCk7XG4gICAgICAgIH1cblxuICAgICAgICBwcml2YXRlIF9hcHBseVN0YXRlcygpOiB2b2lkIHtcbiAgICAgICAgICBpZiAodGhpcy5fYXBwbGllZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLl9hcHBsaWVkID0gdHJ1ZTtcbiAgICAgICAgICB0aGlzLmZvckVhY2goKHN0YXRlKSA9PiB0aGlzLl90b2dnbGVTdGF0ZShzdGF0ZSwgdHJ1ZSkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgOiBudWxsO1xuXG5pZiAoIWlzU2VydmVyKSB7XG4gIC8vIFRoaXMgaXMgYSBwb2x5ZmlsbCBmb3IgdGhlIGFyaWEgZWxlbWVudHMgcHJvcGVydGllcyBvbiBFbGVtZW50SW50ZXJuYWxzIGFuZCBFbGVtZW50LlxuICBsZXQgbmV4dElkID0gMDtcbiAgY29uc3QgcmVzb2x2ZUhvc3QgPSAob3JpZ2luOiBFbGVtZW50SW50ZXJuYWxzIHwgRWxlbWVudCk6IEVsZW1lbnQgPT5cbiAgICBvcmlnaW4uc2hhZG93Um9vdD8uaG9zdCA/P1xuICAgIChvcmlnaW4gaW5zdGFuY2VvZiBFbGVtZW50XG4gICAgICA/IG9yaWdpblxuICAgICAgOiAoKCkgPT4ge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcignVW5hYmxlIHRvIHJlc29sdmUgcmVsYXRlZCBlbGVtZW50ISBUaGlzIHNob3VsZCBuZXZlciBoYXBwZW4uJyk7XG4gICAgICAgIH0pKCkpO1xuICBjb25zdCBvYnNlcnZlck9wdGlvbnM6IE11dGF0aW9uT2JzZXJ2ZXJJbml0ID0geyBhdHRyaWJ1dGVzOiB0cnVlLCBhdHRyaWJ1dGVGaWx0ZXI6IFsnaWQnXSB9O1xuICBjb25zdCBhc3NpZ25FbGVtZW50ID0gKFxuICAgIGhvc3Q6IEVsZW1lbnQsXG4gICAgYXR0cmlidXRlOiBzdHJpbmcsXG4gICAgZWxlbWVudHM6IFJlY29yZDxzdHJpbmcsIEVsZW1lbnQ+LFxuICApOiB2b2lkID0+IHtcbiAgICAvLyBJbiBjYXNlIGJvdGggRWxlbWVudCBhbmQgRWxlbWVudEludGVybmFscyBwcm9wZXJ0aWVzIGFyZSBzZXQsXG4gICAgLy8gdGhlIGVsZW1lbnQgcmVmZXJlbmNlIGZyb20gRWxlbWVudCBoYXMgcHJpb3JpdHkuXG4gICAgY29uc3QgYWN0aXZlRWxlbWVudCA9IGVsZW1lbnRzW0VsZW1lbnQubmFtZV0gPz8gZWxlbWVudHNbRWxlbWVudEludGVybmFscy5uYW1lXTtcbiAgICBob3N0LnNldEF0dHJpYnV0ZShhdHRyaWJ1dGUsIChhY3RpdmVFbGVtZW50LmlkIHx8PSBgYXJpYS1yZWYtJHtuZXh0SWQrK31gKSk7XG4gIH07XG4gIGNvbnN0IGFzc2lnbkVsZW1lbnRzID0gKFxuICAgIGhvc3Q6IEVsZW1lbnQsXG4gICAgYXR0cmlidXRlOiBzdHJpbmcsXG4gICAgZWxlbWVudHM6IFJlY29yZDxzdHJpbmcsIEVsZW1lbnRbXT4sXG4gICk6IHZvaWQgPT4ge1xuICAgIC8vIEluIGNhc2UgYm90aCBFbGVtZW50IGFuZCBFbGVtZW50SW50ZXJuYWxzIHByb3BlcnRpZXMgYXJlIHNldCxcbiAgICAvLyB3ZSBjb21iaW5lIHRoZSBlbGVtZW50IHJlZmVyZW5jZXMuXG4gICAgaG9zdC5zZXRBdHRyaWJ1dGUoXG4gICAgICBhdHRyaWJ1dGUsXG4gICAgICBPYmplY3QudmFsdWVzKGVsZW1lbnRzKVxuICAgICAgICAucmVkdWNlKChjdXJyZW50LCBuZXh0KSA9PiBjdXJyZW50LmNvbmNhdChuZXh0KSlcbiAgICAgICAgLmZpbHRlcigodiwgaSwgYSkgPT4gYS5pbmRleE9mKHYpID09PSBpKVxuICAgICAgICAubWFwKChlKSA9PiBlLmlkIHx8IChlLmlkID0gYGFyaWEtcmVmLSR7bmV4dElkKyt9YCkpXG4gICAgICAgIC5qb2luKCcgJyksXG4gICAgKTtcbiAgfTtcblxuICBmb3IgKGNvbnN0IHR5cGUgb2YgW0VsZW1lbnRJbnRlcm5hbHMsIEVsZW1lbnRdKSB7XG4gICAgY29uc3QgcHJvdG90eXBlID0gdHlwZS5wcm90b3R5cGU7XG4gICAgaWYgKCEoJ2FyaWFBY3RpdmVEZXNjZW5kYW50RWxlbWVudCcgaW4gcHJvdG90eXBlKSkge1xuICAgICAgY29uc3QgYXR0cmlidXRlID0gJ2FyaWEtYWN0aXZlZGVzY2VuZGFudCc7XG4gICAgICBjb25zdCBzdG9yYWdlID0gbmV3IFdlYWtNYXA8XG4gICAgICAgIEVsZW1lbnQsXG4gICAgICAgIHsgZWxlbWVudHM6IFJlY29yZDxzdHJpbmcsIEVsZW1lbnQ+OyBvYnNlcnZlcjogTXV0YXRpb25PYnNlcnZlciB9XG4gICAgICA+KCk7XG4gICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkocHJvdG90eXBlLCAnYXJpYUFjdGl2ZURlc2NlbmRhbnRFbGVtZW50Jywge1xuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgICAgIGdldCh0aGlzOiBFbGVtZW50SW50ZXJuYWxzIHwgRWxlbWVudCk6IEVsZW1lbnQgfCBudWxsIHtcbiAgICAgICAgICBjb25zdCBob3N0ID0gcmVzb2x2ZUhvc3QodGhpcyk7XG4gICAgICAgICAgY29uc3QgaWQgPSBob3N0LmdldEF0dHJpYnV0ZShhdHRyaWJ1dGUpPy5zcGxpdCgvXFxzKy8pWzBdID8/IG51bGw7XG4gICAgICAgICAgcmV0dXJuIGlkXG4gICAgICAgICAgICA/ICgoaG9zdC5nZXRSb290Tm9kZSgpIGFzIERvY3VtZW50IHwgU2hhZG93Um9vdCkuZ2V0RWxlbWVudEJ5SWQ/LihpZCkgPz8gbnVsbClcbiAgICAgICAgICAgIDogbnVsbDtcbiAgICAgICAgfSxcbiAgICAgICAgc2V0KHRoaXM6IEVsZW1lbnRJbnRlcm5hbHMgfCBFbGVtZW50LCB2YWx1ZTogRWxlbWVudCB8IG51bGwpIHtcbiAgICAgICAgICBpZiAodmFsdWUgIT09IG51bGwgJiYgISh2YWx1ZSBpbnN0YW5jZW9mIEVsZW1lbnQpKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFxuICAgICAgICAgICAgICBgRmFpbGVkIHRvIHNldCB0aGUgJ2FyaWFBY3RpdmVEZXNjZW5kYW50RWxlbWVudCcgcHJvcGVydHkgb24gJyR7dHlwZS5uYW1lfSc6IEZhaWxlZCB0byBjb252ZXJ0IHZhbHVlIHRvICdFbGVtZW50Jy5gLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb25zdCBob3N0ID0gcmVzb2x2ZUhvc3QodGhpcyk7XG4gICAgICAgICAgY29uc3QgZW50cnkgPSBzdG9yYWdlLmdldChob3N0KTtcbiAgICAgICAgICBlbnRyeT8ub2JzZXJ2ZXI/LmRpc2Nvbm5lY3QoKTtcbiAgICAgICAgICBpZiAodmFsdWUgPT09IG51bGwpIHtcbiAgICAgICAgICAgIGlmIChlbnRyeSkge1xuICAgICAgICAgICAgICBkZWxldGUgZW50cnkuZWxlbWVudHNbdHlwZS5uYW1lXTtcbiAgICAgICAgICAgICAgaWYgKCFPYmplY3Qua2V5cyhlbnRyeSkubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgc3RvcmFnZS5kZWxldGUoaG9zdCk7XG4gICAgICAgICAgICAgICAgaG9zdC5yZW1vdmVBdHRyaWJ1dGUoYXR0cmlidXRlKTtcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBlbnRyeS5vYnNlcnZlci5vYnNlcnZlKE9iamVjdC52YWx1ZXMoZW50cnkuZWxlbWVudHMpWzBdLCBvYnNlcnZlck9wdGlvbnMpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIGlmICghZW50cnkpIHtcbiAgICAgICAgICAgIGNvbnN0IGVsZW1lbnRzOiBSZWNvcmQ8c3RyaW5nLCBFbGVtZW50PiA9IHsgW3R5cGUubmFtZV06IHZhbHVlIH07XG4gICAgICAgICAgICBhc3NpZ25FbGVtZW50KGhvc3QsIGF0dHJpYnV0ZSwgZWxlbWVudHMpO1xuICAgICAgICAgICAgY29uc3Qgb2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcigoKSA9PiBhc3NpZ25FbGVtZW50KGhvc3QsIGF0dHJpYnV0ZSwgZWxlbWVudHMpKTtcbiAgICAgICAgICAgIG9ic2VydmVyLm9ic2VydmUodmFsdWUsIG9ic2VydmVyT3B0aW9ucyk7XG4gICAgICAgICAgICBzdG9yYWdlLnNldChob3N0LCB7IGVsZW1lbnRzLCBvYnNlcnZlciB9KTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZW50cnkuZWxlbWVudHNbdHlwZS5uYW1lXSA9IHZhbHVlO1xuICAgICAgICAgICAgYXNzaWduRWxlbWVudChob3N0LCBhdHRyaWJ1dGUsIGVudHJ5LmVsZW1lbnRzKTtcbiAgICAgICAgICAgIE9iamVjdC52YWx1ZXMoZW50cnkuZWxlbWVudHMpLmZvckVhY2goKGUpID0+XG4gICAgICAgICAgICAgIGVudHJ5Lm9ic2VydmVyLm9ic2VydmUoZSwgb2JzZXJ2ZXJPcHRpb25zKSxcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgZm9yIChjb25zdCBwcm9wZXJ0eSBvZiBbXG4gICAgICAnYXJpYUNvbnRyb2xzRWxlbWVudHMnLFxuICAgICAgJ2FyaWFEZXNjcmliZWRCeUVsZW1lbnRzJyxcbiAgICAgICdhcmlhRGV0YWlsc0VsZW1lbnRzJyxcbiAgICAgICdhcmlhRXJyb3JNZXNzYWdlRWxlbWVudHMnLFxuICAgICAgJ2FyaWFMYWJlbGxlZEJ5RWxlbWVudHMnLFxuICAgICAgJ2FyaWFPd25zRWxlbWVudHMnLFxuICAgIF0pIHtcbiAgICAgIGlmICghKHByb3BlcnR5IGluIHByb3RvdHlwZSkpIHtcbiAgICAgICAgY29uc3Qgc3RvcmFnZSA9IG5ldyBXZWFrTWFwPFxuICAgICAgICAgIEVsZW1lbnQsXG4gICAgICAgICAgeyBlbGVtZW50czogUmVjb3JkPHN0cmluZywgRWxlbWVudFtdPjsgb2JzZXJ2ZXI6IE11dGF0aW9uT2JzZXJ2ZXIgfVxuICAgICAgICA+KCk7XG4gICAgICAgIGNvbnN0IGF0dHJpYnV0ZSA9IGBhcmlhLSR7cHJvcGVydHkuc2xpY2UoNCwgLTgpLnRvTG93ZXJDYXNlKCl9YDtcbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHByb3RvdHlwZSwgcHJvcGVydHksIHtcbiAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICAgICAgICBnZXQodGhpczogRWxlbWVudEludGVybmFscyB8IEVsZW1lbnQpOiByZWFkb25seSBFbGVtZW50W10gfCBudWxsIHtcbiAgICAgICAgICAgIGNvbnN0IGhvc3QgPSByZXNvbHZlSG9zdCh0aGlzKTtcbiAgICAgICAgICAgIGNvbnN0IGVsZW1lbnRzID0gaG9zdFxuICAgICAgICAgICAgICAuZ2V0QXR0cmlidXRlKGF0dHJpYnV0ZSlcbiAgICAgICAgICAgICAgPy5zcGxpdCgvXFxzKy8pXG4gICAgICAgICAgICAgIC5maWx0ZXIoKHYsIGksIGEpID0+IGEuaW5kZXhPZih2KSA9PT0gaSlcbiAgICAgICAgICAgICAgLm1hcCgoaWQpID0+IChob3N0LmdldFJvb3ROb2RlKCkgYXMgRG9jdW1lbnQgfCBTaGFkb3dSb290KS5nZXRFbGVtZW50QnlJZD8uKGlkKSlcbiAgICAgICAgICAgICAgLmZpbHRlcigoZSkgPT4gZSBpbnN0YW5jZW9mIEVsZW1lbnQpO1xuICAgICAgICAgICAgcmV0dXJuIGVsZW1lbnRzPy5sZW5ndGggPyBPYmplY3QuZnJlZXplKGVsZW1lbnRzKSA6IG51bGw7XG4gICAgICAgICAgfSxcbiAgICAgICAgICBzZXQodGhpczogRWxlbWVudEludGVybmFscyB8IEVsZW1lbnQsIHZhbHVlOiBFbGVtZW50W10pIHtcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgdmFsdWUgIT09IG51bGwgJiZcbiAgICAgICAgICAgICAgKCFBcnJheS5pc0FycmF5KHZhbHVlKSB8fCB2YWx1ZS5zb21lKChlbGVtZW50KSA9PiAhKGVsZW1lbnQgaW5zdGFuY2VvZiBFbGVtZW50KSkpXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcbiAgICAgICAgICAgICAgICBgRmFpbGVkIHRvIHNldCB0aGUgJyR7cHJvcGVydHl9JyBwcm9wZXJ0eSBvbiAnJHt0eXBlLm5hbWV9JzogRmFpbGVkIHRvIGNvbnZlcnQgdmFsdWUgdG8gJ0VsZW1lbnQnLmAsXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IGhvc3QgPSByZXNvbHZlSG9zdCh0aGlzKTtcbiAgICAgICAgICAgIHZhbHVlID0gdmFsdWU/LmZpbHRlcigodiwgaSwgYSkgPT4gYS5pbmRleE9mKHYpID09PSBpKSA/PyBudWxsO1xuICAgICAgICAgICAgY29uc3QgZW50cnkgPSBzdG9yYWdlLmdldChob3N0KTtcbiAgICAgICAgICAgIGVudHJ5Py5vYnNlcnZlcj8uZGlzY29ubmVjdCgpO1xuICAgICAgICAgICAgaWYgKHZhbHVlID09PSBudWxsKSB7XG4gICAgICAgICAgICAgIGlmIChlbnRyeSkge1xuICAgICAgICAgICAgICAgIGRlbGV0ZSBlbnRyeS5lbGVtZW50c1t0eXBlLm5hbWVdO1xuICAgICAgICAgICAgICAgIGlmICghT2JqZWN0LmtleXMoZW50cnkuZWxlbWVudHMpLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgc3RvcmFnZS5kZWxldGUoaG9zdCk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgIE9iamVjdC52YWx1ZXMoZW50cnkuZWxlbWVudHMpXG4gICAgICAgICAgICAgICAgICAgIC5yZWR1Y2UoKGN1cnJlbnQsIG5leHQpID0+IGN1cnJlbnQuY29uY2F0KG5leHQpKVxuICAgICAgICAgICAgICAgICAgICAuZm9yRWFjaCgoZSkgPT4gZW50cnkub2JzZXJ2ZXIub2JzZXJ2ZShlLCBvYnNlcnZlck9wdGlvbnMpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSBpZiAoIWVudHJ5KSB7XG4gICAgICAgICAgICAgIGNvbnN0IGVsZW1lbnRzOiBSZWNvcmQ8c3RyaW5nLCBFbGVtZW50W10+ID0geyBbdHlwZS5uYW1lXTogdmFsdWUgfTtcbiAgICAgICAgICAgICAgYXNzaWduRWxlbWVudHMoaG9zdCwgYXR0cmlidXRlLCBlbGVtZW50cyk7XG4gICAgICAgICAgICAgIGNvbnN0IG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoKCkgPT5cbiAgICAgICAgICAgICAgICBhc3NpZ25FbGVtZW50cyhob3N0LCBhdHRyaWJ1dGUsIGVsZW1lbnRzKSxcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgdmFsdWUuZm9yRWFjaCgoZWxlbWVudCkgPT4gb2JzZXJ2ZXIub2JzZXJ2ZShlbGVtZW50LCBvYnNlcnZlck9wdGlvbnMpKTtcbiAgICAgICAgICAgICAgc3RvcmFnZS5zZXQoaG9zdCwgeyBlbGVtZW50cywgb2JzZXJ2ZXIgfSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBlbnRyeS5lbGVtZW50c1t0eXBlLm5hbWVdID0gdmFsdWU7XG4gICAgICAgICAgICAgIGFzc2lnbkVsZW1lbnRzKGhvc3QsIGF0dHJpYnV0ZSwgZW50cnkuZWxlbWVudHMpO1xuICAgICAgICAgICAgICBPYmplY3QudmFsdWVzKGVudHJ5LmVsZW1lbnRzKVxuICAgICAgICAgICAgICAgIC5yZWR1Y2UoKGN1cnJlbnQsIG5leHQpID0+IGN1cnJlbnQuY29uY2F0KG5leHQpKVxuICAgICAgICAgICAgICAgIC5mb3JFYWNoKChlKSA9PiBlbnRyeS5vYnNlcnZlci5vYnNlcnZlKGUsIG9ic2VydmVyT3B0aW9ucykpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5jb25zdCBhdHRhY2hlZEVsZW1lbnRJbnRlcm5hbHMgPSBuZXcgV2Vha01hcDxFbGVtZW50LCBFbGVtZW50SW50ZXJuYWxzPigpO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNiYlN0YXRlQ29udHJvbGxlciB7XG4gIGFkZCh2YWx1ZTogc3RyaW5nKTogdGhpcztcbiAgZGVsZXRlKHZhbHVlOiBzdHJpbmcpOiBib29sZWFuO1xuICBoYXModmFsdWU6IHN0cmluZyk6IGJvb2xlYW47XG4gIHRvZ2dsZSh2YWx1ZTogc3RyaW5nLCBmb3JjZT86IGJvb2xlYW4pOiB2b2lkO1xufVxuXG4vKipcbiAqIENyZWF0ZXMgYSBzdGF0ZSBjb250cm9sbGVyIGZvciB0aGUgZ2l2ZW4gZWxlbWVudC5cbiAqIE5PVCBJTlRFTkRFRCBUTyBCRSBVU0VEIEJZIENPTlNVTUVSUyFcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgZnVuY3Rpb24gybVzdGF0ZUNvbnRyb2xsZXIoZWxlbWVudDogRWxlbWVudCk6IFNiYlN0YXRlQ29udHJvbGxlcjtcbmV4cG9ydCBmdW5jdGlvbiDJtXN0YXRlQ29udHJvbGxlcihlbGVtZW50OiBFbGVtZW50IHwgdW5kZWZpbmVkIHwgbnVsbCk6IFNiYlN0YXRlQ29udHJvbGxlciB8IG51bGw7XG5leHBvcnQgZnVuY3Rpb24gybVzdGF0ZUNvbnRyb2xsZXIoZWxlbWVudDogRWxlbWVudCB8IHVuZGVmaW5lZCB8IG51bGwpOiBTYmJTdGF0ZUNvbnRyb2xsZXIgfCBudWxsIHtcbiAgaWYgKCFlbGVtZW50KSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbiAgY29uc3Qgc3RhdGVzID0gYXR0YWNoZWRFbGVtZW50SW50ZXJuYWxzLmdldChlbGVtZW50KT8uc3RhdGVzO1xuICBjb25zdCB0b2dnbGU6IFNiYlN0YXRlQ29udHJvbGxlclsndG9nZ2xlJ10gPSBmdW5jdGlvbiAodGhpczogU2JiU3RhdGVDb250cm9sbGVyLCB2YWx1ZSwgZm9yY2UpIHtcbiAgICBpZiAoZm9yY2UgfHwgKGZvcmNlICE9PSBmYWxzZSAmJiAhdGhpcy5oYXModmFsdWUpKSkge1xuICAgICAgdGhpcy5hZGQodmFsdWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmRlbGV0ZSh2YWx1ZSk7XG4gICAgfVxuICB9O1xuICBpZiAoc3RhdGVzKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGFkZCh2YWx1ZSkge1xuICAgICAgICBzdGF0ZXMuYWRkKHZhbHVlKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICB9LFxuICAgICAgZGVsZXRlOiAodmFsdWUpID0+IHN0YXRlcy5kZWxldGUodmFsdWUpLFxuICAgICAgaGFzOiAodmFsdWUpID0+IHN0YXRlcy5oYXModmFsdWUpLFxuICAgICAgdG9nZ2xlLFxuICAgIH07XG4gIH0gZWxzZSB7XG4gICAgLy8gSWYgbm8gRWxlbWVudEludGVybmFscyBpcyBhdHRhY2hlZCwgd2UgZmFsbCBiYWNrIHRvIHVzaW5nIGF0dHJpYnV0ZXMuIEUuZy4gZm9yIHRyaWdnZXJzLlxuICAgIHJldHVybiB7XG4gICAgICBhZGQodmFsdWUpIHtcbiAgICAgICAgZWxlbWVudC50b2dnbGVBdHRyaWJ1dGUoYHN0YXRlLS0ke3ZhbHVlfWAsIHRydWUpO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgIH0sXG4gICAgICBkZWxldGU6ICh2YWx1ZSkgPT4gZWxlbWVudC50b2dnbGVBdHRyaWJ1dGUoYHN0YXRlLS0ke3ZhbHVlfWAsIGZhbHNlKSxcbiAgICAgIGhhczogKHZhbHVlKSA9PiBlbGVtZW50Lmhhc0F0dHJpYnV0ZShgc3RhdGUtLSR7dmFsdWV9YCksXG4gICAgICB0b2dnbGUsXG4gICAgfTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgU2JiU2xvdHRlZENoYW5nZUV2ZW50IGV4dGVuZHMgRXZlbnQge1xuICBwdWJsaWMgY29uc3RydWN0b3IocHVibGljIHJlYWRvbmx5IHNsb3Q6IEhUTUxTbG90RWxlbWVudCkge1xuICAgIHN1cGVyKCdzbG90dGVkY2hhbmdlJywgeyBjb21wb3NlZDogdHJ1ZSB9KTtcbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNiYlByb3BlcnR5VmFsdWVzIHtcbiAgb2xkVmFsdWU/OiB1bmtub3duO1xuICB2YWx1ZT86IHVua25vd247XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2JiUmVhY3RpdmVDb250cm9sbGVyIGV4dGVuZHMgUmVhY3RpdmVDb250cm9sbGVyIHtcbiAgaG9zdFByb3BlcnR5VXBkYXRlPyhcbiAgICBuYW1lOiBQcm9wZXJ0eUtleSxcbiAgICB2YWx1ZXM/OiBTYmJQcm9wZXJ0eVZhbHVlcyxcbiAgICBvcHRpb25zPzogUHJvcGVydHlEZWNsYXJhdGlvbixcbiAgKTogdm9pZDtcbn1cblxuLyoqXG4gKiBBcHBlbmRzIHRoZSBnaXZlbiBlbGVtZW50cyB0byB0aGUgZ2l2ZW4gYXJpYSB2YWx1ZSBhbmQgcmV0dXJucyB0aGVcbiAqIGNvbWJpbmVkIHZhbHVlIGFzIGEgbmV3IGFycmF5IG9yIG51bGwsIGlmIGJvdGggdmFsdWVzIHdlcmUgZW1wdHkuXG4gKi9cbmV4cG9ydCBjb25zdCBhcHBlbmRBcmlhRWxlbWVudHMgPSAoXG4gIGFyaWFWYWx1ZTogcmVhZG9ubHkgRWxlbWVudFtdIHwgbnVsbCxcbiAgLi4ubmV3RWxlbWVudHM6IChFbGVtZW50IHwgbnVsbClbXVxuKTogRWxlbWVudFtdIHwgbnVsbCA9PiB7XG4gIGNvbnN0IGVsZW1lbnRzID0gbmV3RWxlbWVudHMuZmlsdGVyKCh2KTogdiBpcyBFbGVtZW50ID0+ICEhdik7XG4gIHJldHVybiBhcmlhVmFsdWU/Lmxlbmd0aCA/IGFyaWFWYWx1ZS5jb25jYXQoZWxlbWVudHMpIDogbmV3RWxlbWVudHMubGVuZ3RoID8gZWxlbWVudHMgOiBudWxsO1xufTtcblxuLyoqXG4gKiBSZW1vdmVzIHRoZSBnaXZlbiBlbGVtZW50cyBmcm9tIHRoZSBnaXZlbiBhcmlhIHZhbHVlIGFuZCByZXR1cm5zXG4gKiB0aGUgcmVtYWluaW5nIGVsZW1lbnRzIGFzIGEgbmV3IGFycmF5IG9yIG51bGwsIGlmIHRoZSByZXN1bHQgaXMgZW1wdHkuXG4gKi9cbmV4cG9ydCBjb25zdCByZW1vdmVBcmlhRWxlbWVudHMgPSAoXG4gIGFyaWFWYWx1ZTogcmVhZG9ubHkgRWxlbWVudFtdIHwgbnVsbCxcbiAgLi4ucmVtb3ZhYmxlRWxlbWVudHM6IChFbGVtZW50IHwgbnVsbClbXVxuKTogRWxlbWVudFtdIHwgbnVsbCA9PiB7XG4gIHJlbW92YWJsZUVsZW1lbnRzID0gcmVtb3ZhYmxlRWxlbWVudHMuZmlsdGVyKCh2KSA9PiAhIXYpO1xuICBjb25zdCBlbGVtZW50cyA9IGFyaWFWYWx1ZT8uZmlsdGVyKCh2KSA9PiAhcmVtb3ZhYmxlRWxlbWVudHMuaW5jbHVkZXModikpID8/IG51bGw7XG4gIHJldHVybiBlbGVtZW50cz8ubGVuZ3RoID8gZWxlbWVudHMgOiBudWxsO1xufTtcblxuZXhwb3J0IHR5cGUgU2JiRWxlbWVudFR5cGUgPSB0eXBlb2YgU2JiRWxlbWVudDtcblxuZXhwb3J0IGludGVyZmFjZSBTYmJFbGVtZW50Q29uc3RydWN0b3Ige1xuICBlbGVtZW50RGVwZW5kZW5jaWVzPzogU2JiRWxlbWVudFR5cGVbXTtcbiAgcm9sZT86IEVsZW1lbnRJbnRlcm5hbHNbJ3JvbGUnXTtcbn1cblxuLyoqXG4gKiBBIGJhc2UgY2xhc3MgZm9yIGFsbCBTQkIgZWxlbWVudHMuXG4gKiBJbmNsdWRlcyBhdHRhY2hpbmcgRWxlbWVudEludGVybmFscywgaGFuZGxpbmcgaHlkcmF0aW9uLCBhbmQgbWFuYWdpbmcgc3RhdGUuXG4gKi9cbi8vIFRPRE8oYnJlYWtpbmctY2hhbmdlKTogSW5saW5lIGFuZCByZW1vdmUgU2JiRWxlbWVudEludGVybmFsc01peGluIGFuZCBTYmJIeWRyYXRpb25NaXhpbiBhcyBhIGJyZWFraW5nIGNoYW5nZVxuZXhwb3J0IGNsYXNzIFNiYkVsZW1lbnQgZXh0ZW5kcyBMaXRFbGVtZW50IHtcbiAgcHVibGljIHN0YXRpYyBbJ18kc2JiRWxlbWVudCQnXSA9IHRydWU7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgZWxlbWVudE5hbWU6IHN0cmluZztcbiAgcHVibGljIHN0YXRpYyBlbGVtZW50RGVwZW5kZW5jaWVzPzogU2JiRWxlbWVudFR5cGVbXTtcbiAgcHVibGljIHN0YXRpYyByb2xlPzogRWxlbWVudEludGVybmFsc1sncm9sZSddO1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHN0eWxlczogQ1NTUmVzdWx0R3JvdXAgPSBbdW5zYWZlQ1NTKHN0eWxlKV07XG5cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgaW50ZXJuYWxzOiBFbGVtZW50SW50ZXJuYWxzID0gdGhpcy5hdHRhY2hJbnRlcm5hbHMoKTtcblxuICBwcml2YXRlIF9jb250cm9sbGVycz86IFNldDxTYmJSZWFjdGl2ZUNvbnRyb2xsZXI+O1xuICBwcml2YXRlIF9oeWRyYXRpb25SZXF1aXJlZDogYm9vbGVhbjtcbiAgcHJpdmF0ZSBfaHlkcmF0aW9uQ29tcGxldGUgPSBuZXcgUHJvbWlzZTxib29sZWFuPihcbiAgICAocmVzb2x2ZSkgPT4gKHRoaXMuX3Jlc29sdmVIeWRyYXRpb24gPSByZXNvbHZlKSxcbiAgKTtcbiAgcHJpdmF0ZSBfcmVzb2x2ZUh5ZHJhdGlvbiE6IChoeWRyYXRpb25SZXF1aXJlZDogYm9vbGVhbikgPT4gdm9pZDtcbiAgcHJpdmF0ZSBfdGV4dE9ic2VydmVyPzogTXV0YXRpb25PYnNlcnZlcjtcblxuICAvKipcbiAgICogUmV0dXJucyBhIFByb21pc2UgdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBlbGVtZW50IGhhcyBjb21wbGV0ZWQgaHlkcmF0aW9uLlxuICAgKiBUaGUgUHJvbWlzZSB2YWx1ZSBpcyBhIGJvb2xlYW4gdGhhdCBpcyBgdHJ1ZWAgaWYgdGhlIGVsZW1lbnQgcmVxdWlyZWQgaHlkcmF0aW9uXG4gICAqIGFuZCBgZmFsc2VgIGlmIG5vdC5cbiAgICpcbiAgICogQHJldHVybiBBIHByb21pc2Ugb2YgYSBib29sZWFuIHRoYXQgcmVzb2x2ZXMgdG8gdHJ1ZSBvbmNlIHRoZSBoeWRyYXRpb24gY29tcGxldGVkLlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHB1YmxpYyBnZXQgaHlkcmF0aW9uQ29tcGxldGUoKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMuX2h5ZHJhdGlvbkNvbXBsZXRlO1xuICB9XG5cbiAgLyoqIFJldHVybnMgd2hldGhlciBoeWRyYXRpb24gaXMgcmVxdWlyZWQgYW5kIG5vdCBjb21wbGV0ZWQuICovXG4gIHByb3RlY3RlZCBnZXQgaHlkcmF0aW9uUmVxdWlyZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2h5ZHJhdGlvblJlcXVpcmVkO1xuICB9XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gICAgYXR0YWNoZWRFbGVtZW50SW50ZXJuYWxzLnNldCh0aGlzLCB0aGlzLmludGVybmFscyk7XG4gICAgaWYgKEN1c3RvbVN0YXRlU2V0UG9seWZpbGwpIHtcbiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLmludGVybmFscywgJ3N0YXRlcycsIHtcbiAgICAgICAgdmFsdWU6IG5ldyBDdXN0b21TdGF0ZVNldFBvbHlmaWxsKHRoaXMpLFxuICAgICAgICB3cml0YWJsZTogZmFsc2UsXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogZmFsc2UsXG4gICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFdlIHVzZSB0aGUgQ3VzdG9tU3RhdGVTZXQgcG9seWZpbGwgaW4gU1NSLCB3aGljaCByZW5kZXJzIHRoZSBzdGF0ZSBhcyBhdHRyaWJ1dGVzXG4gICAgICAvLyB3aGljaCBjYW4gYmUgdHJhbnNmZXJyZWQgdG8gY2xpZW50IHNpZGUsIHdoZXJlIHdlIGNhbiB0aGVuIGNvbnZlcnQgW3N0YXRlLS0qXVxuICAgICAgLy8gYXR0cmlidXRlcyB0byBpbnRlcm5hbCBzdGF0ZS5cbiAgICAgIGZvciAoY29uc3QgbmFtZSBvZiB0aGlzLmdldEF0dHJpYnV0ZU5hbWVzKCkuZmlsdGVyKChuKSA9PiBuLnN0YXJ0c1dpdGgoJ3N0YXRlLS0nKSkpIHtcbiAgICAgICAgdGhpcy5pbnRlcm5hbHMuc3RhdGVzLmFkZChuYW1lLnNsaWNlKDcpKTtcbiAgICAgICAgdGhpcy5yZW1vdmVBdHRyaWJ1dGUobmFtZSk7XG4gICAgICB9XG4gICAgfVxuICAgIGNvbnN0IHJvbGUgPSAodGhpcy5jb25zdHJ1Y3RvciBhcyBTYmJFbGVtZW50Q29uc3RydWN0b3IpLnJvbGU7XG4gICAgaWYgKHJvbGUpIHtcbiAgICAgIHRoaXMuaW50ZXJuYWxzLnJvbGUgPSByb2xlO1xuICAgIH1cblxuICAgIC8vIENoZWNrIHdoZXRoZXIgaHlkcmF0aW9uIGlzIG5lZWRlZCBieSBjaGVja2luZyB3aGV0aGVyIHRoZSBzaGFkb3cgcm9vdFxuICAgIC8vIGlzIGF2YWlsYWJsZSBkdXJpbmcgY29uc3RydWN0aW9uL3VwZ3JhZGUgcGhhc2UuXG4gICAgdGhpcy5faHlkcmF0aW9uUmVxdWlyZWQgPSAhIXRoaXMuc2hhZG93Um9vdDtcbiAgICBpZiAoIXRoaXMuX2h5ZHJhdGlvblJlcXVpcmVkKSB7XG4gICAgICB0aGlzLl9yZXNvbHZlSHlkcmF0aW9uKGZhbHNlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gRHVyaW5nIGh5ZHJhdGlvbiBwaGFzZSwgd2Ugd2FudCB0byBzdXBwcmVzcyBzbG90Y2hhbmdlIGV2ZW50cyBhcyB0aGV5XG4gICAgICAvLyBjYW4gY2F1c2UgcmVuZGVyIGRpZmZlcmVuY2VzLCB3aGljaCB3b3VsZCBicmVhayBoeWRyYXRpb24uIEFmdGVyXG4gICAgICAvLyBoeWRyYXRpb24gaXMgY29tcGxldGUsIHdlIGRpc3BhdGNoIGEgbWFudWFsIHNsb3RjaGFuZ2UgZXZlbnQsIGlmIHRoZXJlXG4gICAgICAvLyBhcmUgZWxlbWVudHMgYXNzaWduZWQgdG8gYSBzbG90LlxuICAgICAgY29uc3Qgc3VwcHJlc3NTbG90Y2hhbmdlRXZlbnQgPSAoZXZlbnQ6IEV2ZW50KTogdm9pZCA9PiB7XG4gICAgICAgIGlmICh0aGlzLl9oeWRyYXRpb25SZXF1aXJlZCkge1xuICAgICAgICAgIGV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO1xuICAgICAgICB9XG4gICAgICB9O1xuICAgICAgY29uc3QgZXZlbnRPcHRpb25zOiBFdmVudExpc3RlbmVyT3B0aW9ucyA9IHsgY2FwdHVyZTogdHJ1ZSB9O1xuICAgICAgY29uc3Qgc2xvdHMgPSB0aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3JBbGwoJ3Nsb3QnKTtcbiAgICAgIGlmIChzbG90cz8ubGVuZ3RoKSB7XG4gICAgICAgIHNsb3RzLmZvckVhY2goKHNsb3QpID0+XG4gICAgICAgICAgc2xvdC5hZGRFdmVudExpc3RlbmVyKCdzbG90Y2hhbmdlJywgc3VwcHJlc3NTbG90Y2hhbmdlRXZlbnQsIGV2ZW50T3B0aW9ucyksXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuaHlkcmF0aW9uQ29tcGxldGUudGhlbigoKSA9PlxuICAgICAgICAgIHNsb3RzLmZvckVhY2goKHNsb3QpID0+IHtcbiAgICAgICAgICAgIHNsb3QucmVtb3ZlRXZlbnRMaXN0ZW5lcignc2xvdGNoYW5nZScsIHN1cHByZXNzU2xvdGNoYW5nZUV2ZW50LCBldmVudE9wdGlvbnMpO1xuICAgICAgICAgICAgaWYgKHNsb3QuYXNzaWduZWROb2RlcygpLmxlbmd0aCkge1xuICAgICAgICAgICAgICAvKiogQGludGVybmFsICovXG4gICAgICAgICAgICAgIHNsb3QuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ3Nsb3RjaGFuZ2UnLCB7IGJ1YmJsZXM6IHRydWUgfSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pLFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKiBSZWdpc3RlciB0aGUgY3VzdG9tIGVsZW1lbnQgaW4gdGhlIGdsb2JhbCBDdXN0b21FbGVtZW50UmVnaXN0cnkuICovXG4gIHB1YmxpYyBzdGF0aWMgZGVmaW5lKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5lbGVtZW50TmFtZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgVGhlIHN0YXRpYyBwcm9wZXJ0eSBcImVsZW1lbnROYW1lXCIgaXMgbm90IGRlZmluZWQgb24gJHt0aGlzLm5hbWV9LiBQbGVhc2UgZGVmaW5lIGl0IHRvIHJlZ2lzdGVyIHRoZSBjdXN0b20gZWxlbWVudC5gLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBjb25zdCBlbGVtZW50Q2xhc3MgPSBjdXN0b21FbGVtZW50cy5nZXQodGhpcy5lbGVtZW50TmFtZSk7XG4gICAgaWYgKCFlbGVtZW50Q2xhc3MpIHtcbiAgICAgIGN1c3RvbUVsZW1lbnRzLmRlZmluZSh0aGlzLmVsZW1lbnROYW1lLCB0aGlzIGFzIHVua25vd24gYXMgQ3VzdG9tRWxlbWVudENvbnN0cnVjdG9yKTtcblxuICAgICAgY29uc3QgZWxlbWVudERlcGVuZGVuY2llczogU2JiRWxlbWVudFR5cGVbXSA9IFtdO1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby10aGlzLWFsaWFzXG4gICAgICBsZXQgY3RvcjogU2JiRWxlbWVudFR5cGUgPSB0aGlzO1xuICAgICAgd2hpbGUgKGN0b3JbJ18kc2JiRWxlbWVudCQnXSkge1xuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShjdG9yLmVsZW1lbnREZXBlbmRlbmNpZXMpKSB7XG4gICAgICAgICAgZWxlbWVudERlcGVuZGVuY2llcy5wdXNoKC4uLmN0b3IuZWxlbWVudERlcGVuZGVuY2llcyk7XG4gICAgICAgIH1cbiAgICAgICAgY3RvciA9IE9iamVjdC5nZXRQcm90b3R5cGVPZihjdG9yKTtcbiAgICAgIH1cbiAgICAgIG5ldyBTZXQoZWxlbWVudERlcGVuZGVuY2llcykuZm9yRWFjaCgoZGVwZW5kZW5jeSkgPT4gZGVwZW5kZW5jeS5kZWZpbmUoKSk7XG4gICAgfSBlbHNlIGlmIChpbXBvcnQubWV0YS5lbnYuREVWICYmIGVsZW1lbnRDbGFzcyAhPT0gdGhpcykge1xuICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICBgVGhlIGN1c3RvbSBlbGVtZW50IHdpdGggbmFtZSBcIiR7dGhpcy5lbGVtZW50TmFtZX1cIiBpcyBhbHJlYWR5IGRlZmluZWQuIFNraXBwaW5nLmAsXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDb2xsZWN0cyBgc3R5bGVzYCBmcm9tIGV2ZXJ5IGNsYXNzIGluIHRoZSBwcm90b3R5cGUgY2hhaW4gKHVzaW5nIGBPYmplY3QuaGFzT3duYClcbiAgICogYW5kIG1lcmdlcyB0aGVtIGluIHRvcC1kb3duIG9yZGVyLiBUaGlzIG1lYW5zIGVhY2ggY2xhc3MvbWl4aW4gb25seSBuZWVkcyB0byBkZWNsYXJlXG4gICAqIGl0cyAqKm93bioqIHN0eWxlcyDigJQgdGhlcmUgaXMgbm8gbmVlZCB0byByZWZlcmVuY2UgYHN1cGVyLnN0eWxlc2AuXG4gICAqXG4gICAqIExpdCdzIGRlZmF1bHQgYmVoYXZpb3VyIGFscmVhZHkgd2Fsa3MgdGhlIGNoYWluLCBidXQgZmFpbHMgZm9yIG1peGlucyB3aGVyZVxuICAgKiBgc3VwZXIuc3R5bGVzYCByZXNvbHZlcyB0byB0aGUgd3JvbmcgY2xhc3MuIFRoaXMgb3ZlcnJpZGUgZml4ZXMgdGhhdC5cbiAgICovXG4gIHByb3RlY3RlZCBzdGF0aWMgb3ZlcnJpZGUgZmluYWxpemVTdHlsZXMoX3N0eWxlczogQ1NTUmVzdWx0R3JvdXApOiBDU1NSZXN1bHRPck5hdGl2ZVtdIHtcbiAgICBjb25zdCBjb2xsZWN0ZWQ6IENTU1Jlc3VsdEdyb3VwW10gPSBbXTtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXRoaXMtYWxpYXNcbiAgICBsZXQgY3RvcjogdHlwZW9mIFNiYkVsZW1lbnQgfCBudWxsID0gdGhpcztcbiAgICB3aGlsZSAoY3RvciAmJiBjdG9yICE9PSBMaXRFbGVtZW50KSB7XG4gICAgICBpZiAoT2JqZWN0Lmhhc093bihjdG9yLCAnc3R5bGVzJykgJiYgY3Rvci5zdHlsZXMpIHtcbiAgICAgICAgY29sbGVjdGVkLnVuc2hpZnQoY3Rvci5zdHlsZXMpO1xuICAgICAgfVxuICAgICAgY3RvciA9IE9iamVjdC5nZXRQcm90b3R5cGVPZihjdG9yKSBhcyB0eXBlb2YgU2JiRWxlbWVudCB8IG51bGw7XG4gICAgfVxuICAgIC8vIENhbGwgTGl0RWxlbWVudC5maW5hbGl6ZVN0eWxlcyB3aGljaCBoYW5kbGVzIGRlZHVwICYgYWRvcHRpb25cbiAgICByZXR1cm4gc3VwZXIuZmluYWxpemVTdHlsZXMoY29sbGVjdGVkKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBjcmVhdGVSZW5kZXJSb290KCk6IEhUTUxFbGVtZW50IHwgRG9jdW1lbnRGcmFnbWVudCB7XG4gICAgY29uc3Qgcm9vdCA9IHN1cGVyLmNyZWF0ZVJlbmRlclJvb3QoKTtcbiAgICB0aGlzLnNoYWRvd1Jvb3Q/LmFkZEV2ZW50TGlzdGVuZXIoJ3Nsb3RjaGFuZ2UnLCAoZSkgPT5cbiAgICAgIHRoaXMuX3Nsb3RjaGFuZ2VIYW5kbGVyKGUsIGUudGFyZ2V0IGFzIEhUTUxTbG90RWxlbWVudCksXG4gICAgKTtcbiAgICB0aGlzLnNoYWRvd1Jvb3Q/LmFkZEV2ZW50TGlzdGVuZXIoJ3Nsb3R0ZWRjaGFuZ2UnLCAoZSkgPT4gdGhpcy5fc2xvdGNoYW5nZUhhbmRsZXIoZSwgZS5zbG90KSwge1xuICAgICAgY2FwdHVyZTogdHJ1ZSxcbiAgICB9KTtcbiAgICB0aGlzLnNoYWRvd1Jvb3RcbiAgICAgID8ucXVlcnlTZWxlY3RvckFsbD8uKCdzbG90JylcbiAgICAgIC5mb3JFYWNoKChzbG90KSA9PiB0aGlzLl9oYW5kbGVTbG90Q2hhbmdlRm9yU2xvdHRlZFN0YXRlKHNsb3QpKTtcblxuICAgIHJldHVybiByb290O1xuICB9XG5cbiAgLyoqXG4gICAqIFJlZ2lzdGVycyBhIGBSZWFjdGl2ZUNvbnRyb2xsZXJgIHRvIHBhcnRpY2lwYXRlIGluIHRoZSBlbGVtZW50J3MgcmVhY3RpdmVcbiAgICogdXBkYXRlIGN5Y2xlLiBUaGUgZWxlbWVudCBhdXRvbWF0aWNhbGx5IGNhbGxzIGludG8gYW55IHJlZ2lzdGVyZWRcbiAgICogY29udHJvbGxlcnMgZHVyaW5nIGl0cyBsaWZlY3ljbGUgY2FsbGJhY2tzLlxuICAgKlxuICAgKiBJZiB0aGUgZWxlbWVudCBpcyBjb25uZWN0ZWQgd2hlbiBgYWRkQ29udHJvbGxlcigpYCBpcyBjYWxsZWQsIHRoZVxuICAgKiBjb250cm9sbGVyJ3MgYGhvc3RDb25uZWN0ZWQoKWAgY2FsbGJhY2sgd2lsbCBiZSBpbW1lZGlhdGVseSBjYWxsZWQuXG4gICAqL1xuICBwdWJsaWMgb3ZlcnJpZGUgYWRkQ29udHJvbGxlcihjb250cm9sbGVyOiBTYmJSZWFjdGl2ZUNvbnRyb2xsZXIpOiB2b2lkIHtcbiAgICBzdXBlci5hZGRDb250cm9sbGVyKGNvbnRyb2xsZXIpO1xuICAgICh0aGlzLl9jb250cm9sbGVycyA/Pz0gbmV3IFNldCgpKS5hZGQoY29udHJvbGxlcik7XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlcyBhIGBSZWFjdGl2ZUNvbnRyb2xsZXJgIGZyb20gdGhlIGVsZW1lbnQuXG4gICAqL1xuICBwdWJsaWMgb3ZlcnJpZGUgcmVtb3ZlQ29udHJvbGxlcihjb250cm9sbGVyOiBTYmJSZWFjdGl2ZUNvbnRyb2xsZXIpOiB2b2lkIHtcbiAgICBzdXBlci5yZW1vdmVDb250cm9sbGVyKGNvbnRyb2xsZXIpO1xuICAgIHRoaXMuX2NvbnRyb2xsZXJzPy5kZWxldGUoY29udHJvbGxlcik7XG4gIH1cblxuICAvKipcbiAgICogUmVxdWVzdHMgYW4gdXBkYXRlIHdoaWNoIGlzIHByb2Nlc3NlZCBhc3luY2hyb25vdXNseS4gVGhpcyBzaG91bGQgYmUgY2FsbGVkXG4gICAqIHdoZW4gYW4gZWxlbWVudCBzaG91bGQgdXBkYXRlIGJhc2VkIG9uIHNvbWUgc3RhdGUgbm90IHRyaWdnZXJlZCBieSBzZXR0aW5nXG4gICAqIGEgcmVhY3RpdmUgcHJvcGVydHkuIEluIHRoaXMgY2FzZSwgcGFzcyBubyBhcmd1bWVudHMuIEl0IHNob3VsZCBhbHNvIGJlXG4gICAqIGNhbGxlZCB3aGVuIG1hbnVhbGx5IGltcGxlbWVudGluZyBhIHByb3BlcnR5IHNldHRlci4gSW4gdGhpcyBjYXNlLCBwYXNzIHRoZVxuICAgKiBwcm9wZXJ0eSBgbmFtZWAgYW5kIGBvbGRWYWx1ZWAgdG8gZW5zdXJlIHRoYXQgYW55IGNvbmZpZ3VyZWQgcHJvcGVydHlcbiAgICogb3B0aW9ucyBhcmUgaG9ub3JlZC5cbiAgICpcbiAgICogQHBhcmFtIG5hbWUgbmFtZSBvZiByZXF1ZXN0aW5nIHByb3BlcnR5XG4gICAqIEBwYXJhbSBvbGRWYWx1ZSBvbGQgdmFsdWUgb2YgcmVxdWVzdGluZyBwcm9wZXJ0eVxuICAgKiBAcGFyYW0gb3B0aW9ucyBwcm9wZXJ0eSBvcHRpb25zIHRvIHVzZSBpbnN0ZWFkIG9mIHRoZSBwcmV2aW91c2x5XG4gICAqICAgICBjb25maWd1cmVkIG9wdGlvbnNcbiAgICogQHBhcmFtIHVzZU5ld1ZhbHVlIGlmIHRydWUsIHRoZSBuZXdWYWx1ZSBhcmd1bWVudCBpcyB1c2VkIGluc3RlYWQgb2ZcbiAgICogICAgIHJlYWRpbmcgdGhlIHByb3BlcnR5IHZhbHVlLiBUaGlzIGlzIGltcG9ydGFudCB0byB1c2UgaWYgdGhlIHJlYWN0aXZlXG4gICAqICAgICBwcm9wZXJ0eSBpcyBhIHN0YW5kYXJkIHByaXZhdGUgYWNjZXNzb3IsIGFzIG9wcG9zZWQgdG8gYSBwbGFpblxuICAgKiAgICAgcHJvcGVydHksIHNpbmNlIHByaXZhdGUgbWVtYmVycyBjYW4ndCBiZSBkeW5hbWljYWxseSByZWFkIGJ5IG5hbWUuXG4gICAqIEBwYXJhbSBuZXdWYWx1ZSB0aGUgbmV3IHZhbHVlIG9mIHRoZSBwcm9wZXJ0eS4gVGhpcyBpcyBvbmx5IHVzZWQgaWZcbiAgICogICAgIGB1c2VOZXdWYWx1ZWAgaXMgdHJ1ZS5cbiAgICovXG4gIHB1YmxpYyBvdmVycmlkZSByZXF1ZXN0VXBkYXRlKFxuICAgIG5hbWU/OiBQcm9wZXJ0eUtleSxcbiAgICBvbGRWYWx1ZT86IHVua25vd24sXG4gICAgb3B0aW9ucz86IFByb3BlcnR5RGVjbGFyYXRpb24sXG4gICAgdXNlTmV3VmFsdWU/OiBib29sZWFuLFxuICAgIG5ld1ZhbHVlPzogdW5rbm93bixcbiAgKTogdm9pZCB7XG4gICAgc3VwZXIucmVxdWVzdFVwZGF0ZShuYW1lLCBvbGRWYWx1ZSwgb3B0aW9ucywgdXNlTmV3VmFsdWUsIG5ld1ZhbHVlKTtcbiAgICBpZiAobmFtZSkge1xuICAgICAgY29uc3QgdmFsdWVzOiBTYmJQcm9wZXJ0eVZhbHVlcyA9IHtcbiAgICAgICAgb2xkVmFsdWUsXG4gICAgICAgIHZhbHVlOiB1c2VOZXdWYWx1ZSA/IG5ld1ZhbHVlIDogdGhpc1tuYW1lIGFzIGtleW9mIHRoaXNdLFxuICAgICAgfTtcbiAgICAgIHRoaXMuX2NvbnRyb2xsZXJzPy5mb3JFYWNoKChjb250cm9sbGVyKSA9PlxuICAgICAgICBjb250cm9sbGVyLmhvc3RQcm9wZXJ0eVVwZGF0ZT8uKG5hbWUsIHZhbHVlcywgb3B0aW9ucyksXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSB1cGRhdGUoY2hhbmdlZFByb3BlcnRpZXM6IFByb3BlcnR5VmFsdWVzPHRoaXM+KTogdm9pZCB7XG4gICAgLy8gV2hlbiBoeWRyYXRpb24gaXMgbmVlZGVkLCB3ZSB3YWl0IHRoZSBoeWRyYXRpb24gcHJvY2VzcyB0byBmaW5pc2gsIHdoaWNoIGlzIHBhdGNoZWRcbiAgICAvLyBpbnRvIHRoZSB1cGRhdGUgbWV0aG9kIG9mIHRoZSBMaXRFbGVtZW50IGJhc2UgY2xhc3MuXG4gICAgc3VwZXIudXBkYXRlKGNoYW5nZWRQcm9wZXJ0aWVzKTtcblxuICAgIGlmICh0aGlzLl9oeWRyYXRpb25SZXF1aXJlZCkge1xuICAgICAgdGhpcy5faHlkcmF0aW9uUmVxdWlyZWQgPSBmYWxzZTtcbiAgICAgIHRoaXMuX3Jlc29sdmVIeWRyYXRpb24odHJ1ZSk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIHRvZ2dsZVN0YXRlKHZhbHVlOiBzdHJpbmcsIGZvcmNlPzogYm9vbGVhbik6IHZvaWQge1xuICAgIGlmIChmb3JjZSB8fCAoZm9yY2UgIT09IGZhbHNlICYmICF0aGlzLmludGVybmFscy5zdGF0ZXMuaGFzKHZhbHVlKSkpIHtcbiAgICAgIHRoaXMuaW50ZXJuYWxzLnN0YXRlcy5hZGQodmFsdWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmludGVybmFscy5zdGF0ZXMuZGVsZXRlKHZhbHVlKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9zbG90Y2hhbmdlSGFuZGxlcihldmVudDogRXZlbnQsIHNsb3Q6IEhUTUxTbG90RWxlbWVudCk6IHZvaWQge1xuICAgIGNvbnN0IHJlc29sdmVkU2xvdCA9IHRoaXMuc2hhZG93Um9vdCEuY29udGFpbnMoc2xvdClcbiAgICAgID8gc2xvdFxuICAgICAgOiBldmVudFxuICAgICAgICAgIC5jb21wb3NlZFBhdGgoKVxuICAgICAgICAgIC5maW5kKFxuICAgICAgICAgICAgKGVsKTogZWwgaXMgSFRNTFNsb3RFbGVtZW50ID0+XG4gICAgICAgICAgICAgIGVsIGluc3RhbmNlb2YgSFRNTFNsb3RFbGVtZW50ICYmIHRoaXMuc2hhZG93Um9vdCEuY29udGFpbnMoZWwpLFxuICAgICAgICAgICk7XG4gICAgaWYgKHJlc29sdmVkU2xvdCkge1xuICAgICAgdGhpcy5faGFuZGxlU2xvdENoYW5nZUZvclNsb3R0ZWRTdGF0ZShyZXNvbHZlZFNsb3QpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2hhbmRsZVNsb3RDaGFuZ2VGb3JTbG90dGVkU3RhdGUoc2xvdDogSFRNTFNsb3RFbGVtZW50KTogdm9pZCB7XG4gICAgdGhpcy5fdXBkYXRlU2xvdHRlZFN0YXRlKHNsb3QpO1xuICAgIGlmICghc2xvdC5uYW1lKSB7XG4gICAgICB0aGlzLl9vYnNlcnZlVGV4dE5vZGVzSW5TbG90KHNsb3QpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX3VwZGF0ZVNsb3R0ZWRTdGF0ZShzbG90OiBIVE1MU2xvdEVsZW1lbnQpOiB2b2lkIHtcbiAgICBjb25zdCBzdGF0ZU5hbWUgPSBzbG90Lm5hbWUgPyBgc2xvdHRlZC0ke3Nsb3QubmFtZX1gIDogJ3Nsb3R0ZWQnO1xuICAgIGNvbnN0IGhhc1Nsb3R0ZWRDb250ZW50ID0gdGhpcy5faGFzU2xvdHRlZENvbnRlbnQoc2xvdCk7XG4gICAgaWYgKGhhc1Nsb3R0ZWRDb250ZW50ICYmICF0aGlzLmludGVybmFscy5zdGF0ZXMuaGFzKHN0YXRlTmFtZSkpIHtcbiAgICAgIHRoaXMuaW50ZXJuYWxzLnN0YXRlcy5hZGQoc3RhdGVOYW1lKTtcbiAgICAgIC8qKiBAaW50ZXJuYWwgKi9cbiAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgU2JiU2xvdHRlZENoYW5nZUV2ZW50KHNsb3QpKTtcbiAgICB9IGVsc2UgaWYgKCFoYXNTbG90dGVkQ29udGVudCAmJiB0aGlzLmludGVybmFscy5zdGF0ZXMuaGFzKHN0YXRlTmFtZSkpIHtcbiAgICAgIHRoaXMuaW50ZXJuYWxzLnN0YXRlcy5kZWxldGUoc3RhdGVOYW1lKTtcbiAgICAgIC8qKiBAaW50ZXJuYWwgKi9cbiAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgU2JiU2xvdHRlZENoYW5nZUV2ZW50KHNsb3QpKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9vYnNlcnZlVGV4dE5vZGVzSW5TbG90KHNsb3Q6IEhUTUxTbG90RWxlbWVudCk6IHZvaWQge1xuICAgIHRoaXMuX3RleHRPYnNlcnZlcj8uZGlzY29ubmVjdCgpO1xuICAgIC8vIE9ubHkgY3JlYXRlIHRoZSBNdXRhdGlvbk9ic2VydmVyIHdoZW4gaXQgaXMgYWN0dWFsbHkgbmVlZGVkIHRvIG9wdGltaXplIHBlcmZvcm1hbmNlLlxuICAgIHRoaXMuX3RleHRPYnNlcnZlciA/Pz0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoKCkgPT4ge1xuICAgICAgY29uc3Qgc2xvdCA9IHRoaXMuc2hhZG93Um9vdCEucXVlcnlTZWxlY3RvcjxIVE1MU2xvdEVsZW1lbnQ+KCdzbG90Om5vdChbbmFtZV0pJyk7XG4gICAgICBpZiAoc2xvdCkge1xuICAgICAgICB0aGlzLl91cGRhdGVTbG90dGVkU3RhdGUoc2xvdCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLl90ZXh0T2JzZXJ2ZXIhLmRpc2Nvbm5lY3QoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICAvLyBUZXh0IG5vZGVzIGNhbiBiZSBlbXB0eSBhbmQgZmlsbGVkIGxhdGVyIChvciB2aWNlIHZlcnNhKS5cbiAgICAvLyBGaWxsaW5nIGFuIGV4aXN0aW5nIG5vZGUgbGF0ZXIgd291bGQgbm90IHRyaWdnZXIgYW5vdGhlciBzbG90Y2hhbmdlIGV2ZW50LlxuICAgIC8vIFRoZXJlZm9yZSwgd2UgbmVlZCB0byBvYnNlcnZlIHRleHQgbm9kZXMgYW5kIGNoZWNrIGlmIHRoZXkgYmVjb21lIGZpbGxlZCBvciBlbXB0eS5cbiAgICAvLyBUaGlzIGlzIG9ubHkgbmVlZGVkIGZvciB0aGUgdW5uYW1lZCBzbG90IGFzIGZvciBldmVyeSBvdGhlciB0aGVyZSB3b3VsZFxuICAgIC8vIGJlIGEgdGFnIHdoaWNoIHRyaWdnZXJzIHRoZSBzbG90IGNoYW5nZSBldmVudC5cbiAgICAvLyBUaGUgbWFpbiByZWFzb24gaXMgdGhhdCBBbmd1bGFyIGNyZWF0ZXMgZW1wdHkgdGV4dCBub2RlcyBhbmQgZmlsbHMgdGhlbSBsYXRlci5cbiAgICBzbG90XG4gICAgICAuYXNzaWduZWROb2RlcygpXG4gICAgICAuZmlsdGVyKChuKSA9PiBuLm5vZGVUeXBlID09PSBuLlRFWFRfTk9ERSlcbiAgICAgIC5mb3JFYWNoKChub2RlKSA9PiB0aGlzLl90ZXh0T2JzZXJ2ZXIhLm9ic2VydmUobm9kZSwgeyBjaGFyYWN0ZXJEYXRhOiB0cnVlIH0pKTtcbiAgfVxuXG4gIHByaXZhdGUgX2hhc1Nsb3R0ZWRDb250ZW50KHNsb3Q6IEhUTUxTbG90RWxlbWVudCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBzbG90Lm5hbWVcbiAgICAgID8gc2xvdFxuICAgICAgICAgIC5hc3NpZ25lZEVsZW1lbnRzKClcbiAgICAgICAgICAuc29tZSgobm9kZSkgPT4gIShub2RlIGluc3RhbmNlb2YgSFRNTFNsb3RFbGVtZW50KSB8fCB0aGlzLl9oYXNTbG90dGVkQ29udGVudChub2RlKSlcbiAgICAgIDogc2xvdC5hc3NpZ25lZE5vZGVzKCkuc29tZSgobm9kZSkgPT4ge1xuICAgICAgICAgIHJldHVybiBub2RlIGluc3RhbmNlb2YgSFRNTFNsb3RFbGVtZW50XG4gICAgICAgICAgICA/IHRoaXMuX2hhc1Nsb3R0ZWRDb250ZW50KG5vZGUpXG4gICAgICAgICAgICA6IG5vZGUubm9kZVR5cGUgIT09IG5vZGUuVEVYVF9OT0RFIHx8ICEhbm9kZS50ZXh0Q29udGVudD8udHJpbSgpO1xuICAgICAgICB9KTtcbiAgfVxufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudEV2ZW50TWFwIHtcbiAgICBzbG90dGVkY2hhbmdlOiBTYmJTbG90dGVkQ2hhbmdlRXZlbnQ7XG4gIH1cbiAgaW50ZXJmYWNlIFNoYWRvd1Jvb3RFdmVudE1hcCB7XG4gICAgc2xvdHRlZGNoYW5nZTogU2JiU2xvdHRlZENoYW5nZUV2ZW50O1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7O0FDbUJBLElBQU0seUJBQ0osWUFBWSxDQUFDLElBQUksU0FBUywyQkFBMkIsSUFDakQsTUFBTSx1QkFDSSxJQUFXO0NBS25CLFlBQTJCLE9BQWlCO0VBQzFDLE1BQUs7RUFEb0IsS0FBQSxRQUFBO0VBRm5CLEtBQUEsV0FBVztFQUlqQixLQUFLLE1BQU0sY0FBYyxJQUFJO0VBQzdCLElBQUksQ0FBQyxVQUdILFFBQVEsUUFBTyxFQUFHLFdBQVcsS0FBSyxhQUFZLENBQUU7Q0FFcEQ7Q0FFZ0IsSUFBSSxPQUFhO0VBQy9CLElBQUksS0FBSyxVQUNQLEtBQUssYUFBYSxPQUFPLElBQUk7RUFFL0IsT0FBTyxNQUFNLElBQUksS0FBSztDQUN4QjtDQUVnQixPQUFPLE9BQWE7RUFDbEMsS0FBSyxhQUFhLE9BQU8sS0FBSztFQUM5QixPQUFPLE1BQU0sT0FBTyxLQUFLO0NBQzNCO0NBRWdCLFFBQUs7RUFDbkIsS0FBSyxTQUFTLFVBQVUsS0FBSyxPQUFPLEtBQUssQ0FBQztDQUM1QztDQUVPLGdCQUFhO0VBQ2xCLEtBQUssYUFBWTtDQUNuQjtDQUVRLGFBQWEsT0FBZSxTQUFnQjtFQUNsRCxLQUFLLE1BQU0sZ0JBQWdCLFVBQVUsU0FBUyxPQUFPO0NBQ3ZEO0NBRVEsZUFBWTtFQUNsQixJQUFJLEtBQUssVUFDUDtFQUVGLEtBQUssV0FBVztFQUNoQixLQUFLLFNBQVMsVUFBVSxLQUFLLGFBQWEsT0FBTyxJQUFJLENBQUM7Q0FDeEQ7SUFFRjtBQUVOLElBQUksQ0FBQyxVQUFVO0NBRWIsSUFBSSxTQUFTO0NBQ2IsTUFBTSxlQUFlLFdBQ25C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
|
|
394
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlbWVudC1CQXNCYXlmNS5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZWxlbWVudHMvY29yZS9iYXNlLWVsZW1lbnRzL2VsZW1lbnQuc2Nzcz9pbmxpbmUiLCIuLi8uLi8uLi9zcmMvZWxlbWVudHMvY29yZS9iYXNlLWVsZW1lbnRzL2VsZW1lbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiQHVzZSAnLi4vc3R5bGVzL21peGlucy9oZWxwZXJzJztcblxuQGluY2x1ZGUgaGVscGVycy5ib3gtc2l6aW5nO1xuIiwiaW1wb3J0IHtcbiAgdHlwZSBDU1NSZXN1bHRHcm91cCxcbiAgdHlwZSBDU1NSZXN1bHRPck5hdGl2ZSxcbiAgaXNTZXJ2ZXIsXG4gIExpdEVsZW1lbnQsXG4gIHR5cGUgUHJvcGVydHlEZWNsYXJhdGlvbixcbiAgdHlwZSBQcm9wZXJ0eVZhbHVlcyxcbiAgdHlwZSBSZWFjdGl2ZUNvbnRyb2xsZXIsXG4gIHVuc2FmZUNTUyxcbn0gZnJvbSAnbGl0JztcblxuaW1wb3J0IHN0eWxlIGZyb20gJy4vZWxlbWVudC5zY3NzP2lubGluZSc7XG5cbi8vIE1vc3Qgb2Ygb3VyIHRhcmdldCBicm93c2VycyBzdXBwb3J0IHRoZSA6c3RhdGUoKSBwc2V1ZG8gY2xhc3MsIGJ1dCBub3QgYWxsIG9mIHRoZW0uXG4vLyBXZSBwYXRjaCB0aGUgc3RhdGVzIHByb3BlcnR5IG9mIHRoZSBlbGVtZW50IGludGVybmFscyB0byB1c2UgYXR0cmlidXRlcyBpbnN0ZWFkLFxuLy8gaWYgOnN0YXRlKCkgaXMgbm90IHN1cHBvcnRlZC5cbi8vIE5vdGUgdGhhdCBmb3IgU1NSLCB0aGUgc3RhdGVzIHByb3BlcnR5IGlzIGEgc2ltcGxlIFNldCwgaW1wbGVtZW50ZWQgaW4gTGl0IFNTUi5cbnR5cGUgQ3VzdG9tU3RhdGVTZXRJbnRlcmZhY2UgPSBDdXN0b21TdGF0ZVNldDtcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbmNvbnN0IEN1c3RvbVN0YXRlU2V0UG9seWZpbGw6IChuZXcgKGhvc3Q6IExpdEVsZW1lbnQpID0+IEN1c3RvbVN0YXRlU2V0SW50ZXJmYWNlKSB8IG51bGwgPVxuICBpc1NlcnZlciB8fCAhQ1NTLnN1cHBvcnRzKCdzZWxlY3Rvcig6c3RhdGUobG9hZGluZykpJylcbiAgICA/IGNsYXNzIEN1c3RvbVN0YXRlU2V0XG4gICAgICAgIGV4dGVuZHMgU2V0PHN0cmluZz5cbiAgICAgICAgaW1wbGVtZW50cyBDdXN0b21TdGF0ZVNldEludGVyZmFjZSwgUmVhY3RpdmVDb250cm9sbGVyXG4gICAgICB7XG4gICAgICAgIHByaXZhdGUgX2FwcGxpZWQgPSBpc1NlcnZlcjtcblxuICAgICAgICBwdWJsaWMgY29uc3RydWN0b3IocHJpdmF0ZSBfaG9zdDogTGl0RWxlbWVudCkge1xuICAgICAgICAgIHN1cGVyKCk7XG4gICAgICAgICAgdGhpcy5faG9zdC5hZGRDb250cm9sbGVyKHRoaXMpO1xuICAgICAgICAgIGlmICghaXNTZXJ2ZXIpIHtcbiAgICAgICAgICAgIC8vIFdlIHdhbnQgdG8gYXBwbHkgdGhlIGF0dHJpYnV0ZXMgYXMgZWFybHkgYXMgcG9zc2libGUgd2hpY2ggY2FuXG4gICAgICAgICAgICAvLyBlaXRoZXIgYmUgdmlhIHRoaXMgUHJvbWlzZS5yZXNvbHZlKCkgb3IgdGhlIGNvbm5lY3RlZENhbGxiYWNrKCkuXG4gICAgICAgICAgICBQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpID0+IHRoaXMuX2FwcGx5U3RhdGVzKCkpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHB1YmxpYyBvdmVycmlkZSBhZGQoc3RhdGU6IHN0cmluZyk6IHRoaXMge1xuICAgICAgICAgIGlmICh0aGlzLl9hcHBsaWVkKSB7XG4gICAgICAgICAgICB0aGlzLl90b2dnbGVTdGF0ZShzdGF0ZSwgdHJ1ZSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBzdXBlci5hZGQoc3RhdGUpO1xuICAgICAgICB9XG5cbiAgICAgICAgcHVibGljIG92ZXJyaWRlIGRlbGV0ZShzdGF0ZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgICAgdGhpcy5fdG9nZ2xlU3RhdGUoc3RhdGUsIGZhbHNlKTtcbiAgICAgICAgICByZXR1cm4gc3VwZXIuZGVsZXRlKHN0YXRlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHB1YmxpYyBvdmVycmlkZSBjbGVhcigpOiB2b2lkIHtcbiAgICAgICAgICB0aGlzLmZvckVhY2goKHN0YXRlKSA9PiB0aGlzLmRlbGV0ZShzdGF0ZSkpO1xuICAgICAgICB9XG5cbiAgICAgICAgcHVibGljIGhvc3RDb25uZWN0ZWQoKTogdm9pZCB7XG4gICAgICAgICAgdGhpcy5fYXBwbHlTdGF0ZXMoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHByaXZhdGUgX3RvZ2dsZVN0YXRlKHN0YXRlOiBzdHJpbmcsIGVuYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgICB0aGlzLl9ob3N0LnRvZ2dsZUF0dHJpYnV0ZShgc3RhdGUtLSR7c3RhdGV9YCwgZW5hYmxlZCk7XG4gICAgICAgIH1cblxuICAgICAgICBwcml2YXRlIF9hcHBseVN0YXRlcygpOiB2b2lkIHtcbiAgICAgICAgICBpZiAodGhpcy5fYXBwbGllZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLl9hcHBsaWVkID0gdHJ1ZTtcbiAgICAgICAgICB0aGlzLmZvckVhY2goKHN0YXRlKSA9PiB0aGlzLl90b2dnbGVTdGF0ZShzdGF0ZSwgdHJ1ZSkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgOiBudWxsO1xuXG5pZiAoIWlzU2VydmVyKSB7XG4gIC8vIFRoaXMgaXMgYSBwb2x5ZmlsbCBmb3IgdGhlIGFyaWEgZWxlbWVudHMgcHJvcGVydGllcyBvbiBFbGVtZW50SW50ZXJuYWxzIGFuZCBFbGVtZW50LlxuICBsZXQgbmV4dElkID0gMDtcbiAgY29uc3QgcmVzb2x2ZUhvc3QgPSAob3JpZ2luOiBFbGVtZW50SW50ZXJuYWxzIHwgRWxlbWVudCk6IEVsZW1lbnQgPT5cbiAgICBvcmlnaW4uc2hhZG93Um9vdD8uaG9zdCA/P1xuICAgIChvcmlnaW4gaW5zdGFuY2VvZiBFbGVtZW50XG4gICAgICA/IG9yaWdpblxuICAgICAgOiAoKCkgPT4ge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcignVW5hYmxlIHRvIHJlc29sdmUgcmVsYXRlZCBlbGVtZW50ISBUaGlzIHNob3VsZCBuZXZlciBoYXBwZW4uJyk7XG4gICAgICAgIH0pKCkpO1xuICBjb25zdCBvYnNlcnZlck9wdGlvbnM6IE11dGF0aW9uT2JzZXJ2ZXJJbml0ID0geyBhdHRyaWJ1dGVzOiB0cnVlLCBhdHRyaWJ1dGVGaWx0ZXI6IFsnaWQnXSB9O1xuICBjb25zdCBhc3NpZ25FbGVtZW50ID0gKFxuICAgIGhvc3Q6IEVsZW1lbnQsXG4gICAgYXR0cmlidXRlOiBzdHJpbmcsXG4gICAgZWxlbWVudHM6IFJlY29yZDxzdHJpbmcsIEVsZW1lbnQ+LFxuICApOiB2b2lkID0+IHtcbiAgICAvLyBJbiBjYXNlIGJvdGggRWxlbWVudCBhbmQgRWxlbWVudEludGVybmFscyBwcm9wZXJ0aWVzIGFyZSBzZXQsXG4gICAgLy8gdGhlIGVsZW1lbnQgcmVmZXJlbmNlIGZyb20gRWxlbWVudCBoYXMgcHJpb3JpdHkuXG4gICAgY29uc3QgYWN0aXZlRWxlbWVudCA9IGVsZW1lbnRzW0VsZW1lbnQubmFtZV0gPz8gZWxlbWVudHNbRWxlbWVudEludGVybmFscy5uYW1lXTtcbiAgICBob3N0LnNldEF0dHJpYnV0ZShhdHRyaWJ1dGUsIChhY3RpdmVFbGVtZW50LmlkIHx8PSBgYXJpYS1yZWYtJHtuZXh0SWQrK31gKSk7XG4gIH07XG4gIGNvbnN0IGFzc2lnbkVsZW1lbnRzID0gKFxuICAgIGhvc3Q6IEVsZW1lbnQsXG4gICAgYXR0cmlidXRlOiBzdHJpbmcsXG4gICAgZWxlbWVudHM6IFJlY29yZDxzdHJpbmcsIEVsZW1lbnRbXT4sXG4gICk6IHZvaWQgPT4ge1xuICAgIC8vIEluIGNhc2UgYm90aCBFbGVtZW50IGFuZCBFbGVtZW50SW50ZXJuYWxzIHByb3BlcnRpZXMgYXJlIHNldCxcbiAgICAvLyB3ZSBjb21iaW5lIHRoZSBlbGVtZW50IHJlZmVyZW5jZXMuXG4gICAgaG9zdC5zZXRBdHRyaWJ1dGUoXG4gICAgICBhdHRyaWJ1dGUsXG4gICAgICBPYmplY3QudmFsdWVzKGVsZW1lbnRzKVxuICAgICAgICAucmVkdWNlKChjdXJyZW50LCBuZXh0KSA9PiBjdXJyZW50LmNvbmNhdChuZXh0KSlcbiAgICAgICAgLmZpbHRlcigodiwgaSwgYSkgPT4gYS5pbmRleE9mKHYpID09PSBpKVxuICAgICAgICAubWFwKChlKSA9PiBlLmlkIHx8IChlLmlkID0gYGFyaWEtcmVmLSR7bmV4dElkKyt9YCkpXG4gICAgICAgIC5qb2luKCcgJyksXG4gICAgKTtcbiAgfTtcblxuICBmb3IgKGNvbnN0IHR5cGUgb2YgW0VsZW1lbnRJbnRlcm5hbHMsIEVsZW1lbnRdKSB7XG4gICAgY29uc3QgcHJvdG90eXBlID0gdHlwZS5wcm90b3R5cGU7XG4gICAgaWYgKCEoJ2FyaWFBY3RpdmVEZXNjZW5kYW50RWxlbWVudCcgaW4gcHJvdG90eXBlKSkge1xuICAgICAgY29uc3QgYXR0cmlidXRlID0gJ2FyaWEtYWN0aXZlZGVzY2VuZGFudCc7XG4gICAgICBjb25zdCBzdG9yYWdlID0gbmV3IFdlYWtNYXA8XG4gICAgICAgIEVsZW1lbnQsXG4gICAgICAgIHsgZWxlbWVudHM6IFJlY29yZDxzdHJpbmcsIEVsZW1lbnQ+OyBvYnNlcnZlcjogTXV0YXRpb25PYnNlcnZlciB9XG4gICAgICA+KCk7XG4gICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkocHJvdG90eXBlLCAnYXJpYUFjdGl2ZURlc2NlbmRhbnRFbGVtZW50Jywge1xuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgICAgIGdldCh0aGlzOiBFbGVtZW50SW50ZXJuYWxzIHwgRWxlbWVudCk6IEVsZW1lbnQgfCBudWxsIHtcbiAgICAgICAgICBjb25zdCBob3N0ID0gcmVzb2x2ZUhvc3QodGhpcyk7XG4gICAgICAgICAgY29uc3QgaWQgPSBob3N0LmdldEF0dHJpYnV0ZShhdHRyaWJ1dGUpPy5zcGxpdCgvXFxzKy8pWzBdID8/IG51bGw7XG4gICAgICAgICAgcmV0dXJuIGlkXG4gICAgICAgICAgICA/ICgoaG9zdC5nZXRSb290Tm9kZSgpIGFzIERvY3VtZW50IHwgU2hhZG93Um9vdCkuZ2V0RWxlbWVudEJ5SWQ/LihpZCkgPz8gbnVsbClcbiAgICAgICAgICAgIDogbnVsbDtcbiAgICAgICAgfSxcbiAgICAgICAgc2V0KHRoaXM6IEVsZW1lbnRJbnRlcm5hbHMgfCBFbGVtZW50LCB2YWx1ZTogRWxlbWVudCB8IG51bGwpIHtcbiAgICAgICAgICBpZiAodmFsdWUgIT09IG51bGwgJiYgISh2YWx1ZSBpbnN0YW5jZW9mIEVsZW1lbnQpKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFxuICAgICAgICAgICAgICBgRmFpbGVkIHRvIHNldCB0aGUgJ2FyaWFBY3RpdmVEZXNjZW5kYW50RWxlbWVudCcgcHJvcGVydHkgb24gJyR7dHlwZS5uYW1lfSc6IEZhaWxlZCB0byBjb252ZXJ0IHZhbHVlIHRvICdFbGVtZW50Jy5gLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb25zdCBob3N0ID0gcmVzb2x2ZUhvc3QodGhpcyk7XG4gICAgICAgICAgY29uc3QgZW50cnkgPSBzdG9yYWdlLmdldChob3N0KTtcbiAgICAgICAgICBlbnRyeT8ub2JzZXJ2ZXI/LmRpc2Nvbm5lY3QoKTtcbiAgICAgICAgICBpZiAodmFsdWUgPT09IG51bGwpIHtcbiAgICAgICAgICAgIGlmIChlbnRyeSkge1xuICAgICAgICAgICAgICBkZWxldGUgZW50cnkuZWxlbWVudHNbdHlwZS5uYW1lXTtcbiAgICAgICAgICAgICAgaWYgKCFPYmplY3Qua2V5cyhlbnRyeSkubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgc3RvcmFnZS5kZWxldGUoaG9zdCk7XG4gICAgICAgICAgICAgICAgaG9zdC5yZW1vdmVBdHRyaWJ1dGUoYXR0cmlidXRlKTtcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBlbnRyeS5vYnNlcnZlci5vYnNlcnZlKE9iamVjdC52YWx1ZXMoZW50cnkuZWxlbWVudHMpWzBdLCBvYnNlcnZlck9wdGlvbnMpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIGlmICghZW50cnkpIHtcbiAgICAgICAgICAgIGNvbnN0IGVsZW1lbnRzOiBSZWNvcmQ8c3RyaW5nLCBFbGVtZW50PiA9IHsgW3R5cGUubmFtZV06IHZhbHVlIH07XG4gICAgICAgICAgICBhc3NpZ25FbGVtZW50KGhvc3QsIGF0dHJpYnV0ZSwgZWxlbWVudHMpO1xuICAgICAgICAgICAgY29uc3Qgb2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcigoKSA9PiBhc3NpZ25FbGVtZW50KGhvc3QsIGF0dHJpYnV0ZSwgZWxlbWVudHMpKTtcbiAgICAgICAgICAgIG9ic2VydmVyLm9ic2VydmUodmFsdWUsIG9ic2VydmVyT3B0aW9ucyk7XG4gICAgICAgICAgICBzdG9yYWdlLnNldChob3N0LCB7IGVsZW1lbnRzLCBvYnNlcnZlciB9KTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZW50cnkuZWxlbWVudHNbdHlwZS5uYW1lXSA9IHZhbHVlO1xuICAgICAgICAgICAgYXNzaWduRWxlbWVudChob3N0LCBhdHRyaWJ1dGUsIGVudHJ5LmVsZW1lbnRzKTtcbiAgICAgICAgICAgIE9iamVjdC52YWx1ZXMoZW50cnkuZWxlbWVudHMpLmZvckVhY2goKGUpID0+XG4gICAgICAgICAgICAgIGVudHJ5Lm9ic2VydmVyLm9ic2VydmUoZSwgb2JzZXJ2ZXJPcHRpb25zKSxcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgZm9yIChjb25zdCBwcm9wZXJ0eSBvZiBbXG4gICAgICAnYXJpYUNvbnRyb2xzRWxlbWVudHMnLFxuICAgICAgJ2FyaWFEZXNjcmliZWRCeUVsZW1lbnRzJyxcbiAgICAgICdhcmlhRGV0YWlsc0VsZW1lbnRzJyxcbiAgICAgICdhcmlhRXJyb3JNZXNzYWdlRWxlbWVudHMnLFxuICAgICAgJ2FyaWFMYWJlbGxlZEJ5RWxlbWVudHMnLFxuICAgICAgJ2FyaWFPd25zRWxlbWVudHMnLFxuICAgIF0pIHtcbiAgICAgIGlmICghKHByb3BlcnR5IGluIHByb3RvdHlwZSkpIHtcbiAgICAgICAgY29uc3Qgc3RvcmFnZSA9IG5ldyBXZWFrTWFwPFxuICAgICAgICAgIEVsZW1lbnQsXG4gICAgICAgICAgeyBlbGVtZW50czogUmVjb3JkPHN0cmluZywgRWxlbWVudFtdPjsgb2JzZXJ2ZXI6IE11dGF0aW9uT2JzZXJ2ZXIgfVxuICAgICAgICA+KCk7XG4gICAgICAgIGNvbnN0IGF0dHJpYnV0ZSA9IGBhcmlhLSR7cHJvcGVydHkuc2xpY2UoNCwgLTgpLnRvTG93ZXJDYXNlKCl9YDtcbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHByb3RvdHlwZSwgcHJvcGVydHksIHtcbiAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICAgICAgICBnZXQodGhpczogRWxlbWVudEludGVybmFscyB8IEVsZW1lbnQpOiByZWFkb25seSBFbGVtZW50W10gfCBudWxsIHtcbiAgICAgICAgICAgIGNvbnN0IGhvc3QgPSByZXNvbHZlSG9zdCh0aGlzKTtcbiAgICAgICAgICAgIGNvbnN0IGVsZW1lbnRzID0gaG9zdFxuICAgICAgICAgICAgICAuZ2V0QXR0cmlidXRlKGF0dHJpYnV0ZSlcbiAgICAgICAgICAgICAgPy5zcGxpdCgvXFxzKy8pXG4gICAgICAgICAgICAgIC5maWx0ZXIoKHYsIGksIGEpID0+IGEuaW5kZXhPZih2KSA9PT0gaSlcbiAgICAgICAgICAgICAgLm1hcCgoaWQpID0+IChob3N0LmdldFJvb3ROb2RlKCkgYXMgRG9jdW1lbnQgfCBTaGFkb3dSb290KS5nZXRFbGVtZW50QnlJZD8uKGlkKSlcbiAgICAgICAgICAgICAgLmZpbHRlcigoZSkgPT4gZSBpbnN0YW5jZW9mIEVsZW1lbnQpO1xuICAgICAgICAgICAgcmV0dXJuIGVsZW1lbnRzPy5sZW5ndGggPyBPYmplY3QuZnJlZXplKGVsZW1lbnRzKSA6IG51bGw7XG4gICAgICAgICAgfSxcbiAgICAgICAgICBzZXQodGhpczogRWxlbWVudEludGVybmFscyB8IEVsZW1lbnQsIHZhbHVlOiBFbGVtZW50W10pIHtcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgdmFsdWUgIT09IG51bGwgJiZcbiAgICAgICAgICAgICAgKCFBcnJheS5pc0FycmF5KHZhbHVlKSB8fCB2YWx1ZS5zb21lKChlbGVtZW50KSA9PiAhKGVsZW1lbnQgaW5zdGFuY2VvZiBFbGVtZW50KSkpXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcbiAgICAgICAgICAgICAgICBgRmFpbGVkIHRvIHNldCB0aGUgJyR7cHJvcGVydHl9JyBwcm9wZXJ0eSBvbiAnJHt0eXBlLm5hbWV9JzogRmFpbGVkIHRvIGNvbnZlcnQgdmFsdWUgdG8gJ0VsZW1lbnQnLmAsXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IGhvc3QgPSByZXNvbHZlSG9zdCh0aGlzKTtcbiAgICAgICAgICAgIHZhbHVlID0gdmFsdWU/LmZpbHRlcigodiwgaSwgYSkgPT4gYS5pbmRleE9mKHYpID09PSBpKSA/PyBudWxsO1xuICAgICAgICAgICAgY29uc3QgZW50cnkgPSBzdG9yYWdlLmdldChob3N0KTtcbiAgICAgICAgICAgIGVudHJ5Py5vYnNlcnZlcj8uZGlzY29ubmVjdCgpO1xuICAgICAgICAgICAgaWYgKHZhbHVlID09PSBudWxsKSB7XG4gICAgICAgICAgICAgIGlmIChlbnRyeSkge1xuICAgICAgICAgICAgICAgIGRlbGV0ZSBlbnRyeS5lbGVtZW50c1t0eXBlLm5hbWVdO1xuICAgICAgICAgICAgICAgIGlmICghT2JqZWN0LmtleXMoZW50cnkuZWxlbWVudHMpLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgc3RvcmFnZS5kZWxldGUoaG9zdCk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgIE9iamVjdC52YWx1ZXMoZW50cnkuZWxlbWVudHMpXG4gICAgICAgICAgICAgICAgICAgIC5yZWR1Y2UoKGN1cnJlbnQsIG5leHQpID0+IGN1cnJlbnQuY29uY2F0KG5leHQpKVxuICAgICAgICAgICAgICAgICAgICAuZm9yRWFjaCgoZSkgPT4gZW50cnkub2JzZXJ2ZXIub2JzZXJ2ZShlLCBvYnNlcnZlck9wdGlvbnMpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSBpZiAoIWVudHJ5KSB7XG4gICAgICAgICAgICAgIGNvbnN0IGVsZW1lbnRzOiBSZWNvcmQ8c3RyaW5nLCBFbGVtZW50W10+ID0geyBbdHlwZS5uYW1lXTogdmFsdWUgfTtcbiAgICAgICAgICAgICAgYXNzaWduRWxlbWVudHMoaG9zdCwgYXR0cmlidXRlLCBlbGVtZW50cyk7XG4gICAgICAgICAgICAgIGNvbnN0IG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoKCkgPT5cbiAgICAgICAgICAgICAgICBhc3NpZ25FbGVtZW50cyhob3N0LCBhdHRyaWJ1dGUsIGVsZW1lbnRzKSxcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgdmFsdWUuZm9yRWFjaCgoZWxlbWVudCkgPT4gb2JzZXJ2ZXIub2JzZXJ2ZShlbGVtZW50LCBvYnNlcnZlck9wdGlvbnMpKTtcbiAgICAgICAgICAgICAgc3RvcmFnZS5zZXQoaG9zdCwgeyBlbGVtZW50cywgb2JzZXJ2ZXIgfSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBlbnRyeS5lbGVtZW50c1t0eXBlLm5hbWVdID0gdmFsdWU7XG4gICAgICAgICAgICAgIGFzc2lnbkVsZW1lbnRzKGhvc3QsIGF0dHJpYnV0ZSwgZW50cnkuZWxlbWVudHMpO1xuICAgICAgICAgICAgICBPYmplY3QudmFsdWVzKGVudHJ5LmVsZW1lbnRzKVxuICAgICAgICAgICAgICAgIC5yZWR1Y2UoKGN1cnJlbnQsIG5leHQpID0+IGN1cnJlbnQuY29uY2F0KG5leHQpKVxuICAgICAgICAgICAgICAgIC5mb3JFYWNoKChlKSA9PiBlbnRyeS5vYnNlcnZlci5vYnNlcnZlKGUsIG9ic2VydmVyT3B0aW9ucykpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5jb25zdCBhdHRhY2hlZEVsZW1lbnRJbnRlcm5hbHMgPSBuZXcgV2Vha01hcDxFbGVtZW50LCBFbGVtZW50SW50ZXJuYWxzPigpO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNiYlN0YXRlQ29udHJvbGxlciB7XG4gIGFkZCh2YWx1ZTogc3RyaW5nKTogdGhpcztcbiAgZGVsZXRlKHZhbHVlOiBzdHJpbmcpOiBib29sZWFuO1xuICBoYXModmFsdWU6IHN0cmluZyk6IGJvb2xlYW47XG4gIHRvZ2dsZSh2YWx1ZTogc3RyaW5nLCBmb3JjZT86IGJvb2xlYW4pOiB2b2lkO1xufVxuXG4vKipcbiAqIENyZWF0ZXMgYSBzdGF0ZSBjb250cm9sbGVyIGZvciB0aGUgZ2l2ZW4gZWxlbWVudC5cbiAqIE5PVCBJTlRFTkRFRCBUTyBCRSBVU0VEIEJZIENPTlNVTUVSUyFcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgZnVuY3Rpb24gybVzdGF0ZUNvbnRyb2xsZXIoZWxlbWVudDogRWxlbWVudCk6IFNiYlN0YXRlQ29udHJvbGxlcjtcbmV4cG9ydCBmdW5jdGlvbiDJtXN0YXRlQ29udHJvbGxlcihlbGVtZW50OiBFbGVtZW50IHwgdW5kZWZpbmVkIHwgbnVsbCk6IFNiYlN0YXRlQ29udHJvbGxlciB8IG51bGw7XG5leHBvcnQgZnVuY3Rpb24gybVzdGF0ZUNvbnRyb2xsZXIoZWxlbWVudDogRWxlbWVudCB8IHVuZGVmaW5lZCB8IG51bGwpOiBTYmJTdGF0ZUNvbnRyb2xsZXIgfCBudWxsIHtcbiAgaWYgKCFlbGVtZW50KSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbiAgY29uc3Qgc3RhdGVzID0gYXR0YWNoZWRFbGVtZW50SW50ZXJuYWxzLmdldChlbGVtZW50KT8uc3RhdGVzO1xuICBjb25zdCB0b2dnbGU6IFNiYlN0YXRlQ29udHJvbGxlclsndG9nZ2xlJ10gPSBmdW5jdGlvbiAodGhpczogU2JiU3RhdGVDb250cm9sbGVyLCB2YWx1ZSwgZm9yY2UpIHtcbiAgICBpZiAoZm9yY2UgfHwgKGZvcmNlICE9PSBmYWxzZSAmJiAhdGhpcy5oYXModmFsdWUpKSkge1xuICAgICAgdGhpcy5hZGQodmFsdWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmRlbGV0ZSh2YWx1ZSk7XG4gICAgfVxuICB9O1xuICBpZiAoc3RhdGVzKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGFkZCh2YWx1ZSkge1xuICAgICAgICBzdGF0ZXMuYWRkKHZhbHVlKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICB9LFxuICAgICAgZGVsZXRlOiAodmFsdWUpID0+IHN0YXRlcy5kZWxldGUodmFsdWUpLFxuICAgICAgaGFzOiAodmFsdWUpID0+IHN0YXRlcy5oYXModmFsdWUpLFxuICAgICAgdG9nZ2xlLFxuICAgIH07XG4gIH0gZWxzZSB7XG4gICAgLy8gSWYgbm8gRWxlbWVudEludGVybmFscyBpcyBhdHRhY2hlZCwgd2UgZmFsbCBiYWNrIHRvIHVzaW5nIGF0dHJpYnV0ZXMuIEUuZy4gZm9yIHRyaWdnZXJzLlxuICAgIHJldHVybiB7XG4gICAgICBhZGQodmFsdWUpIHtcbiAgICAgICAgZWxlbWVudC50b2dnbGVBdHRyaWJ1dGUoYHN0YXRlLS0ke3ZhbHVlfWAsIHRydWUpO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgIH0sXG4gICAgICBkZWxldGU6ICh2YWx1ZSkgPT4gZWxlbWVudC50b2dnbGVBdHRyaWJ1dGUoYHN0YXRlLS0ke3ZhbHVlfWAsIGZhbHNlKSxcbiAgICAgIGhhczogKHZhbHVlKSA9PiBlbGVtZW50Lmhhc0F0dHJpYnV0ZShgc3RhdGUtLSR7dmFsdWV9YCksXG4gICAgICB0b2dnbGUsXG4gICAgfTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgU2JiU2xvdHRlZENoYW5nZUV2ZW50IGV4dGVuZHMgRXZlbnQge1xuICBwdWJsaWMgY29uc3RydWN0b3IocHVibGljIHJlYWRvbmx5IHNsb3Q6IEhUTUxTbG90RWxlbWVudCkge1xuICAgIHN1cGVyKCdzbG90dGVkY2hhbmdlJywgeyBjb21wb3NlZDogdHJ1ZSB9KTtcbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNiYlByb3BlcnR5VmFsdWVzIHtcbiAgb2xkVmFsdWU/OiB1bmtub3duO1xuICB2YWx1ZT86IHVua25vd247XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2JiUmVhY3RpdmVDb250cm9sbGVyIGV4dGVuZHMgUmVhY3RpdmVDb250cm9sbGVyIHtcbiAgaG9zdFByb3BlcnR5VXBkYXRlPyhcbiAgICBuYW1lOiBQcm9wZXJ0eUtleSxcbiAgICB2YWx1ZXM/OiBTYmJQcm9wZXJ0eVZhbHVlcyxcbiAgICBvcHRpb25zPzogUHJvcGVydHlEZWNsYXJhdGlvbixcbiAgKTogdm9pZDtcbn1cblxuLyoqXG4gKiBBcHBlbmRzIHRoZSBnaXZlbiBlbGVtZW50cyB0byB0aGUgZ2l2ZW4gYXJpYSB2YWx1ZSBhbmQgcmV0dXJucyB0aGVcbiAqIGNvbWJpbmVkIHZhbHVlIGFzIGEgbmV3IGFycmF5IG9yIG51bGwsIGlmIGJvdGggdmFsdWVzIHdlcmUgZW1wdHkuXG4gKi9cbmV4cG9ydCBjb25zdCBhcHBlbmRBcmlhRWxlbWVudHMgPSAoXG4gIGFyaWFWYWx1ZTogcmVhZG9ubHkgRWxlbWVudFtdIHwgbnVsbCxcbiAgLi4ubmV3RWxlbWVudHM6IChFbGVtZW50IHwgbnVsbClbXVxuKTogRWxlbWVudFtdIHwgbnVsbCA9PiB7XG4gIGNvbnN0IGVsZW1lbnRzID0gbmV3RWxlbWVudHMuZmlsdGVyKCh2KTogdiBpcyBFbGVtZW50ID0+ICEhdik7XG4gIHJldHVybiBhcmlhVmFsdWU/Lmxlbmd0aCA/IGFyaWFWYWx1ZS5jb25jYXQoZWxlbWVudHMpIDogbmV3RWxlbWVudHMubGVuZ3RoID8gZWxlbWVudHMgOiBudWxsO1xufTtcblxuLyoqXG4gKiBSZW1vdmVzIHRoZSBnaXZlbiBlbGVtZW50cyBmcm9tIHRoZSBnaXZlbiBhcmlhIHZhbHVlIGFuZCByZXR1cm5zXG4gKiB0aGUgcmVtYWluaW5nIGVsZW1lbnRzIGFzIGEgbmV3IGFycmF5IG9yIG51bGwsIGlmIHRoZSByZXN1bHQgaXMgZW1wdHkuXG4gKi9cbmV4cG9ydCBjb25zdCByZW1vdmVBcmlhRWxlbWVudHMgPSAoXG4gIGFyaWFWYWx1ZTogcmVhZG9ubHkgRWxlbWVudFtdIHwgbnVsbCxcbiAgLi4ucmVtb3ZhYmxlRWxlbWVudHM6IChFbGVtZW50IHwgbnVsbClbXVxuKTogRWxlbWVudFtdIHwgbnVsbCA9PiB7XG4gIHJlbW92YWJsZUVsZW1lbnRzID0gcmVtb3ZhYmxlRWxlbWVudHMuZmlsdGVyKCh2KSA9PiAhIXYpO1xuICBjb25zdCBlbGVtZW50cyA9IGFyaWFWYWx1ZT8uZmlsdGVyKCh2KSA9PiAhcmVtb3ZhYmxlRWxlbWVudHMuaW5jbHVkZXModikpID8/IG51bGw7XG4gIHJldHVybiBlbGVtZW50cz8ubGVuZ3RoID8gZWxlbWVudHMgOiBudWxsO1xufTtcblxuZXhwb3J0IHR5cGUgU2JiRWxlbWVudFR5cGUgPSB0eXBlb2YgU2JiRWxlbWVudDtcblxuZXhwb3J0IGludGVyZmFjZSBTYmJFbGVtZW50Q29uc3RydWN0b3Ige1xuICBlbGVtZW50RGVwZW5kZW5jaWVzPzogU2JiRWxlbWVudFR5cGVbXTtcbiAgcm9sZT86IEVsZW1lbnRJbnRlcm5hbHNbJ3JvbGUnXTtcbn1cblxuLyoqXG4gKiBBIGJhc2UgY2xhc3MgZm9yIGFsbCBTQkIgZWxlbWVudHMuXG4gKiBJbmNsdWRlcyBhdHRhY2hpbmcgRWxlbWVudEludGVybmFscywgaGFuZGxpbmcgaHlkcmF0aW9uLCBhbmQgbWFuYWdpbmcgc3RhdGUuXG4gKi9cbmV4cG9ydCBjbGFzcyBTYmJFbGVtZW50IGV4dGVuZHMgTGl0RWxlbWVudCB7XG4gIHB1YmxpYyBzdGF0aWMgWydfJHNiYkVsZW1lbnQkJ10gPSB0cnVlO1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IGVsZW1lbnROYW1lOiBzdHJpbmc7XG4gIHB1YmxpYyBzdGF0aWMgZWxlbWVudERlcGVuZGVuY2llcz86IFNiYkVsZW1lbnRUeXBlW107XG4gIHB1YmxpYyBzdGF0aWMgcm9sZT86IEVsZW1lbnRJbnRlcm5hbHNbJ3JvbGUnXTtcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSBzdHlsZXM6IENTU1Jlc3VsdEdyb3VwID0gW3Vuc2FmZUNTUyhzdHlsZSldO1xuXG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGludGVybmFsczogRWxlbWVudEludGVybmFscyA9IHRoaXMuYXR0YWNoSW50ZXJuYWxzKCk7XG5cbiAgcHJpdmF0ZSBfY29udHJvbGxlcnM/OiBTZXQ8U2JiUmVhY3RpdmVDb250cm9sbGVyPjtcbiAgcHJpdmF0ZSBfaHlkcmF0aW9uUmVxdWlyZWQ6IGJvb2xlYW47XG4gIHByaXZhdGUgX2h5ZHJhdGlvbkNvbXBsZXRlID0gbmV3IFByb21pc2U8Ym9vbGVhbj4oXG4gICAgKHJlc29sdmUpID0+ICh0aGlzLl9yZXNvbHZlSHlkcmF0aW9uID0gcmVzb2x2ZSksXG4gICk7XG4gIHByaXZhdGUgX3Jlc29sdmVIeWRyYXRpb24hOiAoaHlkcmF0aW9uUmVxdWlyZWQ6IGJvb2xlYW4pID0+IHZvaWQ7XG4gIHByaXZhdGUgX3RleHRPYnNlcnZlcj86IE11dGF0aW9uT2JzZXJ2ZXI7XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSBQcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgZWxlbWVudCBoYXMgY29tcGxldGVkIGh5ZHJhdGlvbi5cbiAgICogVGhlIFByb21pc2UgdmFsdWUgaXMgYSBib29sZWFuIHRoYXQgaXMgYHRydWVgIGlmIHRoZSBlbGVtZW50IHJlcXVpcmVkIGh5ZHJhdGlvblxuICAgKiBhbmQgYGZhbHNlYCBpZiBub3QuXG4gICAqXG4gICAqIEByZXR1cm4gQSBwcm9taXNlIG9mIGEgYm9vbGVhbiB0aGF0IHJlc29sdmVzIHRvIHRydWUgb25jZSB0aGUgaHlkcmF0aW9uIGNvbXBsZXRlZC5cbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgZ2V0IGh5ZHJhdGlvbkNvbXBsZXRlKCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLl9oeWRyYXRpb25Db21wbGV0ZTtcbiAgfVxuXG4gIC8qKiBSZXR1cm5zIHdoZXRoZXIgaHlkcmF0aW9uIGlzIHJlcXVpcmVkIGFuZCBub3QgY29tcGxldGVkLiAqL1xuICBwcm90ZWN0ZWQgZ2V0IGh5ZHJhdGlvblJlcXVpcmVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9oeWRyYXRpb25SZXF1aXJlZDtcbiAgfVxuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICAgIGF0dGFjaGVkRWxlbWVudEludGVybmFscy5zZXQodGhpcywgdGhpcy5pbnRlcm5hbHMpO1xuICAgIGlmIChDdXN0b21TdGF0ZVNldFBvbHlmaWxsKSB7XG4gICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcy5pbnRlcm5hbHMsICdzdGF0ZXMnLCB7XG4gICAgICAgIHZhbHVlOiBuZXcgQ3VzdG9tU3RhdGVTZXRQb2x5ZmlsbCh0aGlzKSxcbiAgICAgICAgd3JpdGFibGU6IGZhbHNlLFxuICAgICAgICBjb25maWd1cmFibGU6IGZhbHNlLFxuICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBXZSB1c2UgdGhlIEN1c3RvbVN0YXRlU2V0IHBvbHlmaWxsIGluIFNTUiwgd2hpY2ggcmVuZGVycyB0aGUgc3RhdGUgYXMgYXR0cmlidXRlc1xuICAgICAgLy8gd2hpY2ggY2FuIGJlIHRyYW5zZmVycmVkIHRvIGNsaWVudCBzaWRlLCB3aGVyZSB3ZSBjYW4gdGhlbiBjb252ZXJ0IFtzdGF0ZS0tKl1cbiAgICAgIC8vIGF0dHJpYnV0ZXMgdG8gaW50ZXJuYWwgc3RhdGUuXG4gICAgICBmb3IgKGNvbnN0IG5hbWUgb2YgdGhpcy5nZXRBdHRyaWJ1dGVOYW1lcygpLmZpbHRlcigobikgPT4gbi5zdGFydHNXaXRoKCdzdGF0ZS0tJykpKSB7XG4gICAgICAgIHRoaXMuaW50ZXJuYWxzLnN0YXRlcy5hZGQobmFtZS5zbGljZSg3KSk7XG4gICAgICAgIHRoaXMucmVtb3ZlQXR0cmlidXRlKG5hbWUpO1xuICAgICAgfVxuICAgIH1cbiAgICBjb25zdCByb2xlID0gKHRoaXMuY29uc3RydWN0b3IgYXMgU2JiRWxlbWVudENvbnN0cnVjdG9yKS5yb2xlO1xuICAgIGlmIChyb2xlKSB7XG4gICAgICB0aGlzLmludGVybmFscy5yb2xlID0gcm9sZTtcbiAgICB9XG5cbiAgICAvLyBDaGVjayB3aGV0aGVyIGh5ZHJhdGlvbiBpcyBuZWVkZWQgYnkgY2hlY2tpbmcgd2hldGhlciB0aGUgc2hhZG93IHJvb3RcbiAgICAvLyBpcyBhdmFpbGFibGUgZHVyaW5nIGNvbnN0cnVjdGlvbi91cGdyYWRlIHBoYXNlLlxuICAgIHRoaXMuX2h5ZHJhdGlvblJlcXVpcmVkID0gISF0aGlzLnNoYWRvd1Jvb3Q7XG4gICAgaWYgKCF0aGlzLl9oeWRyYXRpb25SZXF1aXJlZCkge1xuICAgICAgdGhpcy5fcmVzb2x2ZUh5ZHJhdGlvbihmYWxzZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIER1cmluZyBoeWRyYXRpb24gcGhhc2UsIHdlIHdhbnQgdG8gc3VwcHJlc3Mgc2xvdGNoYW5nZSBldmVudHMgYXMgdGhleVxuICAgICAgLy8gY2FuIGNhdXNlIHJlbmRlciBkaWZmZXJlbmNlcywgd2hpY2ggd291bGQgYnJlYWsgaHlkcmF0aW9uLiBBZnRlclxuICAgICAgLy8gaHlkcmF0aW9uIGlzIGNvbXBsZXRlLCB3ZSBkaXNwYXRjaCBhIG1hbnVhbCBzbG90Y2hhbmdlIGV2ZW50LCBpZiB0aGVyZVxuICAgICAgLy8gYXJlIGVsZW1lbnRzIGFzc2lnbmVkIHRvIGEgc2xvdC5cbiAgICAgIGNvbnN0IHN1cHByZXNzU2xvdGNoYW5nZUV2ZW50ID0gKGV2ZW50OiBFdmVudCk6IHZvaWQgPT4ge1xuICAgICAgICBpZiAodGhpcy5faHlkcmF0aW9uUmVxdWlyZWQpIHtcbiAgICAgICAgICBldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICAgIGNvbnN0IGV2ZW50T3B0aW9uczogRXZlbnRMaXN0ZW5lck9wdGlvbnMgPSB7IGNhcHR1cmU6IHRydWUgfTtcbiAgICAgIGNvbnN0IHNsb3RzID0gdGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yQWxsKCdzbG90Jyk7XG4gICAgICBpZiAoc2xvdHM/Lmxlbmd0aCkge1xuICAgICAgICBzbG90cy5mb3JFYWNoKChzbG90KSA9PlxuICAgICAgICAgIHNsb3QuYWRkRXZlbnRMaXN0ZW5lcignc2xvdGNoYW5nZScsIHN1cHByZXNzU2xvdGNoYW5nZUV2ZW50LCBldmVudE9wdGlvbnMpLFxuICAgICAgICApO1xuICAgICAgICB0aGlzLmh5ZHJhdGlvbkNvbXBsZXRlLnRoZW4oKCkgPT5cbiAgICAgICAgICBzbG90cy5mb3JFYWNoKChzbG90KSA9PiB7XG4gICAgICAgICAgICBzbG90LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Nsb3RjaGFuZ2UnLCBzdXBwcmVzc1Nsb3RjaGFuZ2VFdmVudCwgZXZlbnRPcHRpb25zKTtcbiAgICAgICAgICAgIGlmIChzbG90LmFzc2lnbmVkTm9kZXMoKS5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgLyoqIEBpbnRlcm5hbCAqL1xuICAgICAgICAgICAgICBzbG90LmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCdzbG90Y2hhbmdlJywgeyBidWJibGVzOiB0cnVlIH0pKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KSxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKiogUmVnaXN0ZXIgdGhlIGN1c3RvbSBlbGVtZW50IGluIHRoZSBnbG9iYWwgQ3VzdG9tRWxlbWVudFJlZ2lzdHJ5LiAqL1xuICBwdWJsaWMgc3RhdGljIGRlZmluZSgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuZWxlbWVudE5hbWUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYFRoZSBzdGF0aWMgcHJvcGVydHkgXCJlbGVtZW50TmFtZVwiIGlzIG5vdCBkZWZpbmVkIG9uICR7dGhpcy5uYW1lfS4gUGxlYXNlIGRlZmluZSBpdCB0byByZWdpc3RlciB0aGUgY3VzdG9tIGVsZW1lbnQuYCxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgY29uc3QgZWxlbWVudENsYXNzID0gY3VzdG9tRWxlbWVudHMuZ2V0KHRoaXMuZWxlbWVudE5hbWUpO1xuICAgIGlmICghZWxlbWVudENsYXNzKSB7XG4gICAgICBjdXN0b21FbGVtZW50cy5kZWZpbmUodGhpcy5lbGVtZW50TmFtZSwgdGhpcyBhcyB1bmtub3duIGFzIEN1c3RvbUVsZW1lbnRDb25zdHJ1Y3Rvcik7XG5cbiAgICAgIGNvbnN0IGVsZW1lbnREZXBlbmRlbmNpZXM6IFNiYkVsZW1lbnRUeXBlW10gPSBbXTtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdGhpcy1hbGlhc1xuICAgICAgbGV0IGN0b3I6IFNiYkVsZW1lbnRUeXBlID0gdGhpcztcbiAgICAgIHdoaWxlIChjdG9yWydfJHNiYkVsZW1lbnQkJ10pIHtcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoY3Rvci5lbGVtZW50RGVwZW5kZW5jaWVzKSkge1xuICAgICAgICAgIGVsZW1lbnREZXBlbmRlbmNpZXMucHVzaCguLi5jdG9yLmVsZW1lbnREZXBlbmRlbmNpZXMpO1xuICAgICAgICB9XG4gICAgICAgIGN0b3IgPSBPYmplY3QuZ2V0UHJvdG90eXBlT2YoY3Rvcik7XG4gICAgICB9XG4gICAgICBuZXcgU2V0KGVsZW1lbnREZXBlbmRlbmNpZXMpLmZvckVhY2goKGRlcGVuZGVuY3kpID0+IGRlcGVuZGVuY3kuZGVmaW5lKCkpO1xuICAgIH0gZWxzZSBpZiAoaW1wb3J0Lm1ldGEuZW52LkRFViAmJiBlbGVtZW50Q2xhc3MgIT09IHRoaXMpIHtcbiAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgYFRoZSBjdXN0b20gZWxlbWVudCB3aXRoIG5hbWUgXCIke3RoaXMuZWxlbWVudE5hbWV9XCIgaXMgYWxyZWFkeSBkZWZpbmVkLiBTa2lwcGluZy5gLFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ29sbGVjdHMgYHN0eWxlc2AgZnJvbSBldmVyeSBjbGFzcyBpbiB0aGUgcHJvdG90eXBlIGNoYWluICh1c2luZyBgT2JqZWN0Lmhhc093bmApXG4gICAqIGFuZCBtZXJnZXMgdGhlbSBpbiB0b3AtZG93biBvcmRlci4gVGhpcyBtZWFucyBlYWNoIGNsYXNzL21peGluIG9ubHkgbmVlZHMgdG8gZGVjbGFyZVxuICAgKiBpdHMgKipvd24qKiBzdHlsZXMg4oCUIHRoZXJlIGlzIG5vIG5lZWQgdG8gcmVmZXJlbmNlIGBzdXBlci5zdHlsZXNgLlxuICAgKlxuICAgKiBMaXQncyBkZWZhdWx0IGJlaGF2aW91ciBhbHJlYWR5IHdhbGtzIHRoZSBjaGFpbiwgYnV0IGZhaWxzIGZvciBtaXhpbnMgd2hlcmVcbiAgICogYHN1cGVyLnN0eWxlc2AgcmVzb2x2ZXMgdG8gdGhlIHdyb25nIGNsYXNzLiBUaGlzIG92ZXJyaWRlIGZpeGVzIHRoYXQuXG4gICAqL1xuICBwcm90ZWN0ZWQgc3RhdGljIG92ZXJyaWRlIGZpbmFsaXplU3R5bGVzKF9zdHlsZXM6IENTU1Jlc3VsdEdyb3VwKTogQ1NTUmVzdWx0T3JOYXRpdmVbXSB7XG4gICAgY29uc3QgY29sbGVjdGVkOiBDU1NSZXN1bHRHcm91cFtdID0gW107XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby10aGlzLWFsaWFzXG4gICAgbGV0IGN0b3I6IHR5cGVvZiBTYmJFbGVtZW50IHwgbnVsbCA9IHRoaXM7XG4gICAgd2hpbGUgKGN0b3IgJiYgY3RvciAhPT0gTGl0RWxlbWVudCkge1xuICAgICAgaWYgKE9iamVjdC5oYXNPd24oY3RvciwgJ3N0eWxlcycpICYmIGN0b3Iuc3R5bGVzKSB7XG4gICAgICAgIGNvbGxlY3RlZC51bnNoaWZ0KGN0b3Iuc3R5bGVzKTtcbiAgICAgIH1cbiAgICAgIGN0b3IgPSBPYmplY3QuZ2V0UHJvdG90eXBlT2YoY3RvcikgYXMgdHlwZW9mIFNiYkVsZW1lbnQgfCBudWxsO1xuICAgIH1cbiAgICAvLyBDYWxsIExpdEVsZW1lbnQuZmluYWxpemVTdHlsZXMgd2hpY2ggaGFuZGxlcyBkZWR1cCAmIGFkb3B0aW9uXG4gICAgcmV0dXJuIHN1cGVyLmZpbmFsaXplU3R5bGVzKGNvbGxlY3RlZCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgY3JlYXRlUmVuZGVyUm9vdCgpOiBIVE1MRWxlbWVudCB8IERvY3VtZW50RnJhZ21lbnQge1xuICAgIGNvbnN0IHJvb3QgPSBzdXBlci5jcmVhdGVSZW5kZXJSb290KCk7XG4gICAgdGhpcy5zaGFkb3dSb290Py5hZGRFdmVudExpc3RlbmVyKCdzbG90Y2hhbmdlJywgKGUpID0+XG4gICAgICB0aGlzLl9zbG90Y2hhbmdlSGFuZGxlcihlLCBlLnRhcmdldCBhcyBIVE1MU2xvdEVsZW1lbnQpLFxuICAgICk7XG4gICAgdGhpcy5zaGFkb3dSb290Py5hZGRFdmVudExpc3RlbmVyKCdzbG90dGVkY2hhbmdlJywgKGUpID0+IHRoaXMuX3Nsb3RjaGFuZ2VIYW5kbGVyKGUsIGUuc2xvdCksIHtcbiAgICAgIGNhcHR1cmU6IHRydWUsXG4gICAgfSk7XG4gICAgdGhpcy5zaGFkb3dSb290XG4gICAgICA/LnF1ZXJ5U2VsZWN0b3JBbGw/Lignc2xvdCcpXG4gICAgICAuZm9yRWFjaCgoc2xvdCkgPT4gdGhpcy5faGFuZGxlU2xvdENoYW5nZUZvclNsb3R0ZWRTdGF0ZShzbG90KSk7XG5cbiAgICByZXR1cm4gcm9vdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWdpc3RlcnMgYSBgUmVhY3RpdmVDb250cm9sbGVyYCB0byBwYXJ0aWNpcGF0ZSBpbiB0aGUgZWxlbWVudCdzIHJlYWN0aXZlXG4gICAqIHVwZGF0ZSBjeWNsZS4gVGhlIGVsZW1lbnQgYXV0b21hdGljYWxseSBjYWxscyBpbnRvIGFueSByZWdpc3RlcmVkXG4gICAqIGNvbnRyb2xsZXJzIGR1cmluZyBpdHMgbGlmZWN5Y2xlIGNhbGxiYWNrcy5cbiAgICpcbiAgICogSWYgdGhlIGVsZW1lbnQgaXMgY29ubmVjdGVkIHdoZW4gYGFkZENvbnRyb2xsZXIoKWAgaXMgY2FsbGVkLCB0aGVcbiAgICogY29udHJvbGxlcidzIGBob3N0Q29ubmVjdGVkKClgIGNhbGxiYWNrIHdpbGwgYmUgaW1tZWRpYXRlbHkgY2FsbGVkLlxuICAgKi9cbiAgcHVibGljIG92ZXJyaWRlIGFkZENvbnRyb2xsZXIoY29udHJvbGxlcjogU2JiUmVhY3RpdmVDb250cm9sbGVyKTogdm9pZCB7XG4gICAgc3VwZXIuYWRkQ29udHJvbGxlcihjb250cm9sbGVyKTtcbiAgICAodGhpcy5fY29udHJvbGxlcnMgPz89IG5ldyBTZXQoKSkuYWRkKGNvbnRyb2xsZXIpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZXMgYSBgUmVhY3RpdmVDb250cm9sbGVyYCBmcm9tIHRoZSBlbGVtZW50LlxuICAgKi9cbiAgcHVibGljIG92ZXJyaWRlIHJlbW92ZUNvbnRyb2xsZXIoY29udHJvbGxlcjogU2JiUmVhY3RpdmVDb250cm9sbGVyKTogdm9pZCB7XG4gICAgc3VwZXIucmVtb3ZlQ29udHJvbGxlcihjb250cm9sbGVyKTtcbiAgICB0aGlzLl9jb250cm9sbGVycz8uZGVsZXRlKGNvbnRyb2xsZXIpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlcXVlc3RzIGFuIHVwZGF0ZSB3aGljaCBpcyBwcm9jZXNzZWQgYXN5bmNocm9ub3VzbHkuIFRoaXMgc2hvdWxkIGJlIGNhbGxlZFxuICAgKiB3aGVuIGFuIGVsZW1lbnQgc2hvdWxkIHVwZGF0ZSBiYXNlZCBvbiBzb21lIHN0YXRlIG5vdCB0cmlnZ2VyZWQgYnkgc2V0dGluZ1xuICAgKiBhIHJlYWN0aXZlIHByb3BlcnR5LiBJbiB0aGlzIGNhc2UsIHBhc3Mgbm8gYXJndW1lbnRzLiBJdCBzaG91bGQgYWxzbyBiZVxuICAgKiBjYWxsZWQgd2hlbiBtYW51YWxseSBpbXBsZW1lbnRpbmcgYSBwcm9wZXJ0eSBzZXR0ZXIuIEluIHRoaXMgY2FzZSwgcGFzcyB0aGVcbiAgICogcHJvcGVydHkgYG5hbWVgIGFuZCBgb2xkVmFsdWVgIHRvIGVuc3VyZSB0aGF0IGFueSBjb25maWd1cmVkIHByb3BlcnR5XG4gICAqIG9wdGlvbnMgYXJlIGhvbm9yZWQuXG4gICAqXG4gICAqIEBwYXJhbSBuYW1lIG5hbWUgb2YgcmVxdWVzdGluZyBwcm9wZXJ0eVxuICAgKiBAcGFyYW0gb2xkVmFsdWUgb2xkIHZhbHVlIG9mIHJlcXVlc3RpbmcgcHJvcGVydHlcbiAgICogQHBhcmFtIG9wdGlvbnMgcHJvcGVydHkgb3B0aW9ucyB0byB1c2UgaW5zdGVhZCBvZiB0aGUgcHJldmlvdXNseVxuICAgKiAgICAgY29uZmlndXJlZCBvcHRpb25zXG4gICAqIEBwYXJhbSB1c2VOZXdWYWx1ZSBpZiB0cnVlLCB0aGUgbmV3VmFsdWUgYXJndW1lbnQgaXMgdXNlZCBpbnN0ZWFkIG9mXG4gICAqICAgICByZWFkaW5nIHRoZSBwcm9wZXJ0eSB2YWx1ZS4gVGhpcyBpcyBpbXBvcnRhbnQgdG8gdXNlIGlmIHRoZSByZWFjdGl2ZVxuICAgKiAgICAgcHJvcGVydHkgaXMgYSBzdGFuZGFyZCBwcml2YXRlIGFjY2Vzc29yLCBhcyBvcHBvc2VkIHRvIGEgcGxhaW5cbiAgICogICAgIHByb3BlcnR5LCBzaW5jZSBwcml2YXRlIG1lbWJlcnMgY2FuJ3QgYmUgZHluYW1pY2FsbHkgcmVhZCBieSBuYW1lLlxuICAgKiBAcGFyYW0gbmV3VmFsdWUgdGhlIG5ldyB2YWx1ZSBvZiB0aGUgcHJvcGVydHkuIFRoaXMgaXMgb25seSB1c2VkIGlmXG4gICAqICAgICBgdXNlTmV3VmFsdWVgIGlzIHRydWUuXG4gICAqL1xuICBwdWJsaWMgb3ZlcnJpZGUgcmVxdWVzdFVwZGF0ZShcbiAgICBuYW1lPzogUHJvcGVydHlLZXksXG4gICAgb2xkVmFsdWU/OiB1bmtub3duLFxuICAgIG9wdGlvbnM/OiBQcm9wZXJ0eURlY2xhcmF0aW9uLFxuICAgIHVzZU5ld1ZhbHVlPzogYm9vbGVhbixcbiAgICBuZXdWYWx1ZT86IHVua25vd24sXG4gICk6IHZvaWQge1xuICAgIHN1cGVyLnJlcXVlc3RVcGRhdGUobmFtZSwgb2xkVmFsdWUsIG9wdGlvbnMsIHVzZU5ld1ZhbHVlLCBuZXdWYWx1ZSk7XG4gICAgaWYgKG5hbWUpIHtcbiAgICAgIGNvbnN0IHZhbHVlczogU2JiUHJvcGVydHlWYWx1ZXMgPSB7XG4gICAgICAgIG9sZFZhbHVlLFxuICAgICAgICB2YWx1ZTogdXNlTmV3VmFsdWUgPyBuZXdWYWx1ZSA6IHRoaXNbbmFtZSBhcyBrZXlvZiB0aGlzXSxcbiAgICAgIH07XG4gICAgICB0aGlzLl9jb250cm9sbGVycz8uZm9yRWFjaCgoY29udHJvbGxlcikgPT5cbiAgICAgICAgY29udHJvbGxlci5ob3N0UHJvcGVydHlVcGRhdGU/LihuYW1lLCB2YWx1ZXMsIG9wdGlvbnMpLFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgdXBkYXRlKGNoYW5nZWRQcm9wZXJ0aWVzOiBQcm9wZXJ0eVZhbHVlczx0aGlzPik6IHZvaWQge1xuICAgIC8vIFdoZW4gaHlkcmF0aW9uIGlzIG5lZWRlZCwgd2Ugd2FpdCB0aGUgaHlkcmF0aW9uIHByb2Nlc3MgdG8gZmluaXNoLCB3aGljaCBpcyBwYXRjaGVkXG4gICAgLy8gaW50byB0aGUgdXBkYXRlIG1ldGhvZCBvZiB0aGUgTGl0RWxlbWVudCBiYXNlIGNsYXNzLlxuICAgIHN1cGVyLnVwZGF0ZShjaGFuZ2VkUHJvcGVydGllcyk7XG5cbiAgICBpZiAodGhpcy5faHlkcmF0aW9uUmVxdWlyZWQpIHtcbiAgICAgIHRoaXMuX2h5ZHJhdGlvblJlcXVpcmVkID0gZmFsc2U7XG4gICAgICB0aGlzLl9yZXNvbHZlSHlkcmF0aW9uKHRydWUpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCB0b2dnbGVTdGF0ZSh2YWx1ZTogc3RyaW5nLCBmb3JjZT86IGJvb2xlYW4pOiB2b2lkIHtcbiAgICBpZiAoZm9yY2UgfHwgKGZvcmNlICE9PSBmYWxzZSAmJiAhdGhpcy5pbnRlcm5hbHMuc3RhdGVzLmhhcyh2YWx1ZSkpKSB7XG4gICAgICB0aGlzLmludGVybmFscy5zdGF0ZXMuYWRkKHZhbHVlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5pbnRlcm5hbHMuc3RhdGVzLmRlbGV0ZSh2YWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfc2xvdGNoYW5nZUhhbmRsZXIoZXZlbnQ6IEV2ZW50LCBzbG90OiBIVE1MU2xvdEVsZW1lbnQpOiB2b2lkIHtcbiAgICBjb25zdCByZXNvbHZlZFNsb3QgPSB0aGlzLnNoYWRvd1Jvb3QhLmNvbnRhaW5zKHNsb3QpXG4gICAgICA/IHNsb3RcbiAgICAgIDogZXZlbnRcbiAgICAgICAgICAuY29tcG9zZWRQYXRoKClcbiAgICAgICAgICAuZmluZChcbiAgICAgICAgICAgIChlbCk6IGVsIGlzIEhUTUxTbG90RWxlbWVudCA9PlxuICAgICAgICAgICAgICBlbCBpbnN0YW5jZW9mIEhUTUxTbG90RWxlbWVudCAmJiB0aGlzLnNoYWRvd1Jvb3QhLmNvbnRhaW5zKGVsKSxcbiAgICAgICAgICApO1xuICAgIGlmIChyZXNvbHZlZFNsb3QpIHtcbiAgICAgIHRoaXMuX2hhbmRsZVNsb3RDaGFuZ2VGb3JTbG90dGVkU3RhdGUocmVzb2x2ZWRTbG90KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9oYW5kbGVTbG90Q2hhbmdlRm9yU2xvdHRlZFN0YXRlKHNsb3Q6IEhUTUxTbG90RWxlbWVudCk6IHZvaWQge1xuICAgIHRoaXMuX3VwZGF0ZVNsb3R0ZWRTdGF0ZShzbG90KTtcbiAgICBpZiAoIXNsb3QubmFtZSkge1xuICAgICAgdGhpcy5fb2JzZXJ2ZVRleHROb2Rlc0luU2xvdChzbG90KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF91cGRhdGVTbG90dGVkU3RhdGUoc2xvdDogSFRNTFNsb3RFbGVtZW50KTogdm9pZCB7XG4gICAgY29uc3Qgc3RhdGVOYW1lID0gc2xvdC5uYW1lID8gYHNsb3R0ZWQtJHtzbG90Lm5hbWV9YCA6ICdzbG90dGVkJztcbiAgICBjb25zdCBoYXNTbG90dGVkQ29udGVudCA9IHRoaXMuX2hhc1Nsb3R0ZWRDb250ZW50KHNsb3QpO1xuICAgIGlmIChoYXNTbG90dGVkQ29udGVudCAmJiAhdGhpcy5pbnRlcm5hbHMuc3RhdGVzLmhhcyhzdGF0ZU5hbWUpKSB7XG4gICAgICB0aGlzLmludGVybmFscy5zdGF0ZXMuYWRkKHN0YXRlTmFtZSk7XG4gICAgICAvKiogQGludGVybmFsICovXG4gICAgICB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IFNiYlNsb3R0ZWRDaGFuZ2VFdmVudChzbG90KSk7XG4gICAgfSBlbHNlIGlmICghaGFzU2xvdHRlZENvbnRlbnQgJiYgdGhpcy5pbnRlcm5hbHMuc3RhdGVzLmhhcyhzdGF0ZU5hbWUpKSB7XG4gICAgICB0aGlzLmludGVybmFscy5zdGF0ZXMuZGVsZXRlKHN0YXRlTmFtZSk7XG4gICAgICAvKiogQGludGVybmFsICovXG4gICAgICB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IFNiYlNsb3R0ZWRDaGFuZ2VFdmVudChzbG90KSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfb2JzZXJ2ZVRleHROb2Rlc0luU2xvdChzbG90OiBIVE1MU2xvdEVsZW1lbnQpOiB2b2lkIHtcbiAgICB0aGlzLl90ZXh0T2JzZXJ2ZXI/LmRpc2Nvbm5lY3QoKTtcbiAgICAvLyBPbmx5IGNyZWF0ZSB0aGUgTXV0YXRpb25PYnNlcnZlciB3aGVuIGl0IGlzIGFjdHVhbGx5IG5lZWRlZCB0byBvcHRpbWl6ZSBwZXJmb3JtYW5jZS5cbiAgICB0aGlzLl90ZXh0T2JzZXJ2ZXIgPz89IG5ldyBNdXRhdGlvbk9ic2VydmVyKCgpID0+IHtcbiAgICAgIGNvbnN0IHNsb3QgPSB0aGlzLnNoYWRvd1Jvb3QhLnF1ZXJ5U2VsZWN0b3I8SFRNTFNsb3RFbGVtZW50Pignc2xvdDpub3QoW25hbWVdKScpO1xuICAgICAgaWYgKHNsb3QpIHtcbiAgICAgICAgdGhpcy5fdXBkYXRlU2xvdHRlZFN0YXRlKHNsb3QpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5fdGV4dE9ic2VydmVyIS5kaXNjb25uZWN0KCk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgLy8gVGV4dCBub2RlcyBjYW4gYmUgZW1wdHkgYW5kIGZpbGxlZCBsYXRlciAob3IgdmljZSB2ZXJzYSkuXG4gICAgLy8gRmlsbGluZyBhbiBleGlzdGluZyBub2RlIGxhdGVyIHdvdWxkIG5vdCB0cmlnZ2VyIGFub3RoZXIgc2xvdGNoYW5nZSBldmVudC5cbiAgICAvLyBUaGVyZWZvcmUsIHdlIG5lZWQgdG8gb2JzZXJ2ZSB0ZXh0IG5vZGVzIGFuZCBjaGVjayBpZiB0aGV5IGJlY29tZSBmaWxsZWQgb3IgZW1wdHkuXG4gICAgLy8gVGhpcyBpcyBvbmx5IG5lZWRlZCBmb3IgdGhlIHVubmFtZWQgc2xvdCBhcyBmb3IgZXZlcnkgb3RoZXIgdGhlcmUgd291bGRcbiAgICAvLyBiZSBhIHRhZyB3aGljaCB0cmlnZ2VycyB0aGUgc2xvdCBjaGFuZ2UgZXZlbnQuXG4gICAgLy8gVGhlIG1haW4gcmVhc29uIGlzIHRoYXQgQW5ndWxhciBjcmVhdGVzIGVtcHR5IHRleHQgbm9kZXMgYW5kIGZpbGxzIHRoZW0gbGF0ZXIuXG4gICAgc2xvdFxuICAgICAgLmFzc2lnbmVkTm9kZXMoKVxuICAgICAgLmZpbHRlcigobikgPT4gbi5ub2RlVHlwZSA9PT0gbi5URVhUX05PREUpXG4gICAgICAuZm9yRWFjaCgobm9kZSkgPT4gdGhpcy5fdGV4dE9ic2VydmVyIS5vYnNlcnZlKG5vZGUsIHsgY2hhcmFjdGVyRGF0YTogdHJ1ZSB9KSk7XG4gIH1cblxuICBwcml2YXRlIF9oYXNTbG90dGVkQ29udGVudChzbG90OiBIVE1MU2xvdEVsZW1lbnQpOiBib29sZWFuIHtcbiAgICByZXR1cm4gc2xvdC5uYW1lXG4gICAgICA/IHNsb3RcbiAgICAgICAgICAuYXNzaWduZWRFbGVtZW50cygpXG4gICAgICAgICAgLnNvbWUoKG5vZGUpID0+ICEobm9kZSBpbnN0YW5jZW9mIEhUTUxTbG90RWxlbWVudCkgfHwgdGhpcy5faGFzU2xvdHRlZENvbnRlbnQobm9kZSkpXG4gICAgICA6IHNsb3QuYXNzaWduZWROb2RlcygpLnNvbWUoKG5vZGUpID0+IHtcbiAgICAgICAgICByZXR1cm4gbm9kZSBpbnN0YW5jZW9mIEhUTUxTbG90RWxlbWVudFxuICAgICAgICAgICAgPyB0aGlzLl9oYXNTbG90dGVkQ29udGVudChub2RlKVxuICAgICAgICAgICAgOiBub2RlLm5vZGVUeXBlICE9PSBub2RlLlRFWFRfTk9ERSB8fCAhIW5vZGUudGV4dENvbnRlbnQ/LnRyaW0oKTtcbiAgICAgICAgfSk7XG4gIH1cbn1cblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgSFRNTEVsZW1lbnRFdmVudE1hcCB7XG4gICAgc2xvdHRlZGNoYW5nZTogU2JiU2xvdHRlZENoYW5nZUV2ZW50O1xuICB9XG4gIGludGVyZmFjZSBTaGFkb3dSb290RXZlbnRNYXAge1xuICAgIHNsb3R0ZWRjaGFuZ2U6IFNiYlNsb3R0ZWRDaGFuZ2VFdmVudDtcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7OztBQ21CQSxJQUFNLHlCQUNKLFlBQVksQ0FBQyxJQUFJLFNBQVMsMkJBQTJCLElBQ2pELE1BQU0sdUJBQ0ksSUFBVztDQUtuQixZQUEyQixPQUFpQjtFQUMxQyxNQUFLO0VBRG9CLEtBQUEsUUFBQTtFQUZuQixLQUFBLFdBQVc7RUFJakIsS0FBSyxNQUFNLGNBQWMsSUFBSTtFQUM3QixJQUFJLENBQUMsVUFHSCxRQUFRLFFBQU8sRUFBRyxXQUFXLEtBQUssYUFBWSxDQUFFO0NBRXBEO0NBRWdCLElBQUksT0FBYTtFQUMvQixJQUFJLEtBQUssVUFDUCxLQUFLLGFBQWEsT0FBTyxJQUFJO0VBRS9CLE9BQU8sTUFBTSxJQUFJLEtBQUs7Q0FDeEI7Q0FFZ0IsT0FBTyxPQUFhO0VBQ2xDLEtBQUssYUFBYSxPQUFPLEtBQUs7RUFDOUIsT0FBTyxNQUFNLE9BQU8sS0FBSztDQUMzQjtDQUVnQixRQUFLO0VBQ25CLEtBQUssU0FBUyxVQUFVLEtBQUssT0FBTyxLQUFLLENBQUM7Q0FDNUM7Q0FFTyxnQkFBYTtFQUNsQixLQUFLLGFBQVk7Q0FDbkI7Q0FFUSxhQUFhLE9BQWUsU0FBZ0I7RUFDbEQsS0FBSyxNQUFNLGdCQUFnQixVQUFVLFNBQVMsT0FBTztDQUN2RDtDQUVRLGVBQVk7RUFDbEIsSUFBSSxLQUFLLFVBQ1A7RUFFRixLQUFLLFdBQVc7RUFDaEIsS0FBSyxTQUFTLFVBQVUsS0FBSyxhQUFhLE9BQU8sSUFBSSxDQUFDO0NBQ3hEO0lBRUY7QUFFTixJQUFJLENBQUMsVUFBVTtDQUViLElBQUksU0FBUztDQUNiLE1BQU0sZUFBZSxXQUNuQixPQUFPLFlBQVksU0FDbEIsa0JBQWtCLFVBQ2YsZ0JBQ007RUFDSixNQUFNLElBQUksTUFBTSw4REFBOEQ7Q0FDaEYsR0FBRTtDQUNSLE1BQU0sa0JBQXdDO0VBQUUsWUFBWTtFQUFNLGlCQUFpQixD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
|
package/development/expansion-panel/expansion-panel-header/expansion-panel-header.component.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"expansion-panel-header.component.d.ts","sourceRoot":"","sources":["../../../../../src/elements/expansion-panel/expansion-panel-header/expansion-panel-header.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAiB,KAAK,cAAc,EAAa,MAAM,KAAK,CAAC;AAEzF,OAAO,EACL,oBAAoB,EAMrB,MAAM,eAAe,CAAC;;AAMvB;;;;;GAKG;AACH,qBAAa,8BAA+B,SAAQ,mCAEnD;IACC,gBAAgC,WAAW,EAAE,MAAM,CAAgC;IACnF,OAAuB,MAAM,EAAE,cAAc,CAAsB;IACnE,gBAAuB,MAAM;;MAElB;IAEX,OAAO,CAAC,aAAa,CAElB;IAEH,OAAO,CAAC,QAAQ,CAAoE;IACpF,OAAO,CAAC,aAAa,CAA0C;;IAuB/C,iBAAiB,IAAI,IAAI;IAKzC,OAAO,CAAC,kBAAkB;IAO1B,OAAO,CAAC,gBAAgB;
|
|
1
|
+
{"version":3,"file":"expansion-panel-header.component.d.ts","sourceRoot":"","sources":["../../../../../src/elements/expansion-panel/expansion-panel-header/expansion-panel-header.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAiB,KAAK,cAAc,EAAa,MAAM,KAAK,CAAC;AAEzF,OAAO,EACL,oBAAoB,EAMrB,MAAM,eAAe,CAAC;;AAMvB;;;;;GAKG;AACH,qBAAa,8BAA+B,SAAQ,mCAEnD;IACC,gBAAgC,WAAW,EAAE,MAAM,CAAgC;IACnF,OAAuB,MAAM,EAAE,cAAc,CAAsB;IACnE,gBAAuB,MAAM;;MAElB;IAEX,OAAO,CAAC,aAAa,CAElB;IAEH,OAAO,CAAC,QAAQ,CAAoE;IACpF,OAAO,CAAC,aAAa,CAA0C;;IAuB/C,iBAAiB,IAAI,IAAI;IAKzC,OAAO,CAAC,kBAAkB;IAO1B,OAAO,CAAC,gBAAgB;IASxB;;;;OAIG;IACH,OAAO,CAAC,aAAa;cAIF,cAAc,IAAI,cAAc;CAkBpD;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,4BAA4B,EAAE,8BAA8B,CAAC;KAC9D;CACF"}
|
|
@@ -80,4 +80,4 @@ var SbbExpansionPanelHeaderElement = class extends SbbDisabledTabIndexActionMixi
|
|
|
80
80
|
//#endregion
|
|
81
81
|
export { SbbExpansionPanelHeaderElement as t };
|
|
82
82
|
|
|
83
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwYW5zaW9uLXBhbmVsLWhlYWRlci5jb21wb25lbnQtZ2c1QV83UHouanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2V4cGFuc2lvbi1wYW5lbC9leHBhbnNpb24tcGFuZWwtaGVhZGVyL2V4cGFuc2lvbi1wYW5lbC1oZWFkZXIuc2Nzcz9pbmxpbmUiLCIuLi8uLi8uLi9zcmMvZWxlbWVudHMvZXhwYW5zaW9uLXBhbmVsL2V4cGFuc2lvbi1wYW5lbC1oZWFkZXIvZXhwYW5zaW9uLXBhbmVsLWhlYWRlci5jb21wb25lbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiQHVzZSAnLi4vLi4vY29yZS9zdHlsZXMnIGFzIHNiYjtcblxuOmhvc3Qge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuOmhvc3QoOnN0YXRlKHNpemUtcykpIHtcbiAgLS1zYmItZXhwYW5zaW9uLXBhbmVsLWhlYWRlci1nYXA6IHZhcigtLXNiYi1leHBhbnNpb24tcGFuZWwtaGVhZGVyLWdhcC1zKTtcbiAgLS1zYmItZXhwYW5zaW9uLXBhbmVsLWhlYWRlci1wYWRkaW5nLWJsb2NrOiB2YXIoLS1zYmItZXhwYW5zaW9uLXBhbmVsLWhlYWRlci1wYWRkaW5nLWJsb2NrLXMpO1xuICAtLXNiYi1leHBhbnNpb24tcGFuZWwtaGVhZGVyLXBhZGRpbmctaW5saW5lOiB2YXIoLS1zYmItZXhwYW5zaW9uLXBhbmVsLWhlYWRlci1wYWRkaW5nLWlubGluZS1zKTtcbn1cblxuOmhvc3QoOnN0YXRlKHNpemUtbCkpIHtcbiAgLS1zYmItZXhwYW5zaW9uLXBhbmVsLWhlYWRlci1nYXA6IHZhcigtLXNiYi1leHBhbnNpb24tcGFuZWwtaGVhZGVyLWdhcC1sKTtcbiAgLS1zYmItZXhwYW5zaW9uLXBhbmVsLWhlYWRlci1wYWRkaW5nLWJsb2NrOiB2YXIoLS1zYmItZXhwYW5zaW9uLXBhbmVsLWhlYWRlci1wYWRkaW5nLWJsb2NrLWwpO1xuICAtLXNiYi1leHBhbnNpb24tcGFuZWwtaGVhZGVyLXBhZGRpbmctaW5saW5lOiB2YXIoLS1zYmItZXhwYW5zaW9uLXBhbmVsLWhlYWRlci1wYWRkaW5nLWlubGluZS1sKTtcbn1cblxuOmhvc3QoOm5vdCg6c3RhdGUoc2l6ZS1zKSwgOnN0YXRlKHNpemUtbCkpKSB7XG4gIC0tc2JiLWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItZ2FwOiB2YXIoLS1zYmItZXhwYW5zaW9uLXBhbmVsLWhlYWRlci1nYXAtZGVmYXVsdCk7XG4gIC0tc2JiLWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItcGFkZGluZy1ibG9jazogdmFyKFxuICAgIC0tc2JiLWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItcGFkZGluZy1ibG9jay1kZWZhdWx0XG4gICk7XG4gIC0tc2JiLWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItcGFkZGluZy1pbmxpbmU6IHZhcihcbiAgICAtLXNiYi1leHBhbnNpb24tcGFuZWwtaGVhZGVyLXBhZGRpbmctaW5saW5lLWRlZmF1bHRcbiAgKTtcbn1cblxuOmhvc3QoOmlzKDpkaXNhYmxlZCwgW2Rpc2FibGVkLWludGVyYWN0aXZlXSkpIHtcbiAgLS1zYmItZXhwYW5zaW9uLXBhbmVsLWhlYWRlci1jdXJzb3I6IHZhcigtLXNiYi1jdXJzb3ItZGVmYXVsdCk7XG4gIC0tc2JiLWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItdGV4dC1jb2xvcjogbGlnaHQtZGFyayhcbiAgICB2YXIoLS1zYmItY29sb3ItZ3Jhbml0ZSksXG4gICAgdmFyKC0tc2JiLWNvbG9yLXN0b3JtKVxuICApO1xuXG4gIEBtZWRpYSAoZm9yY2VkLWNvbG9yczogYWN0aXZlKSB7XG4gICAgLS1zYmItZXhwYW5zaW9uLXBhbmVsLWhlYWRlci10ZXh0LWNvbG9yOiBHcmF5VGV4dDtcbiAgfVxufVxuXG46aG9zdCg6Zm9jdXMtdmlzaWJsZSkge1xuICBAaW5jbHVkZSBzYmIuZm9jdXMtb3V0bGluZTtcblxuICBvdXRsaW5lLW9mZnNldDogdmFyKC0tc2JiLXNwYWNpbmctZml4ZWQtMXgpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1zYmItZXhwYW5zaW9uLXBhbmVsLWJvcmRlci1yYWRpdXMpO1xufVxuXG4uc2JiLWV4cGFuc2lvbi1wYW5lbC1oZWFkZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHZhcigtLXNiYi1leHBhbnNpb24tcGFuZWwtaGVhZGVyLWp1c3RpZnktY29udGVudCk7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogdmFyKC0tc2JiLWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItZ2FwKTtcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IHZhcigtLXNiYi1leHBhbnNpb24tcGFuZWwtaGVhZGVyLXBhZGRpbmctYmxvY2spXG4gICAgdmFyKC0tc2JiLWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItcGFkZGluZy1pbmxpbmUpO1xuICB0ZXh0LWFsaWduOiBzdGFydDtcbiAgY3Vyc29yOiB2YXIoLS1zYmItZXhwYW5zaW9uLXBhbmVsLWhlYWRlci1jdXJzb3IpO1xuICBjb2xvcjogdmFyKC0tc2JiLWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItdGV4dC1jb2xvcik7XG4gIGZvbnQtc2l6ZTogdmFyKC0tc2JiLWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItZm9udC1zaXplKTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgbGV0dGVyLXNwYWNpbmc6IHZhcigtLXNiYi10eXBvLWxldHRlci1zcGFjaW5nLXRleHQpO1xuICBsaW5lLWhlaWdodDogdmFyKC0tc2JiLXR5cG8tbGluZS1oZWlnaHQtdGV4dCk7XG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5cbi5zYmItZXhwYW5zaW9uLXBhbmVsLWhlYWRlcl9fdGl0bGUsXG4uc2JiLWV4cGFuc2lvbi1wYW5lbC1oZWFkZXJfX3RvZ2dsZSxcbi5zYmItZXhwYW5zaW9uLXBhbmVsLWhlYWRlcl9faWNvbiB7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG5cbi5zYmItZXhwYW5zaW9uLXBhbmVsLWhlYWRlcl9faWNvbiB7XG4gIHdpZHRoOiB2YXIoLS1zYmItZXhwYW5zaW9uLXBhbmVsLWljb24tc2l6ZSk7XG5cbiAgLS1zYmItaWNvbi1zdmctd2lkdGg6IHZhcigtLXNiYi1leHBhbnNpb24tcGFuZWwtaWNvbi1zaXplKTtcbiAgLS1zYmItaWNvbi1zdmctaGVpZ2h0OiB2YXIoLS1zYmItZXhwYW5zaW9uLXBhbmVsLWljb24tc2l6ZSk7XG5cbiAgOmhvc3QoOm5vdCg6c3RhdGUoc2xvdHRlZC1pY29uKSwgOnN0YXRlKGhhcy1pY29uLW5hbWUpKSkgJiB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuXG4uc2JiLWV4cGFuc2lvbi1wYW5lbC1oZWFkZXJfX3RpdGxlIHtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiB2YXIoLS1zYmItZXhwYW5zaW9uLXBhbmVsLXRpdGxlLWdhcCk7XG4gIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgLy8gQWxpZ24gd2l0aCB0b2dnbGUgaWNvblxuICBtaW4taGVpZ2h0OiB2YXIoLS1zYmItc2l6ZS1pY29uLXVpLW1lZGl1bSk7XG59XG5cbi5zYmItZXhwYW5zaW9uLXBhbmVsLWhlYWRlcl9fdG9nZ2xlLWljb24ge1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gdmFyKC0tc2JiLWRpc2FibGUtYW5pbWF0aW9uLWR1cmF0aW9uLCB2YXIoLS1zYmItYW5pbWF0aW9uLWR1cmF0aW9uLTR4KSk7XG5cbiAgOmhvc3QoW2FyaWEtZXhwYW5kZWRdOm5vdChbYXJpYS1leHBhbmRlZD0nZmFsc2UnXSkpICYge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKC0xODBkZWcpO1xuICB9XG59XG4iLCJpbXBvcnQgeyB0eXBlIENTU1Jlc3VsdEdyb3VwLCBodG1sLCBub3RoaW5nLCB0eXBlIFRlbXBsYXRlUmVzdWx0LCB1bnNhZmVDU1MgfSBmcm9tICdsaXQnO1xuXG5pbXBvcnQge1xuICBTYmJCdXR0b25CYXNlRWxlbWVudCxcbiAgU2JiRGlzYWJsZWRUYWJJbmRleEFjdGlvbk1peGluLFxuICBTYmJNZWRpYU1hdGNoZXJDb250cm9sbGVyLFxuICBTYmJNZWRpYVF1ZXJ5SG92ZXIsXG4gIFNiYlByb3BlcnR5V2F0Y2hlckNvbnRyb2xsZXIsXG4gIMm1c3RhdGVDb250cm9sbGVyLFxufSBmcm9tICcuLi8uLi9jb3JlLnRzJztcbmltcG9ydCB7IFNiYkljb25OYW1lTWl4aW4gfSBmcm9tICcuLi8uLi9pY29uLnB1cmUudHMnO1xuaW1wb3J0IHR5cGUgeyBTYmJFeHBhbnNpb25QYW5lbEVsZW1lbnQgfSBmcm9tICcuLi9leHBhbnNpb24tcGFuZWwvZXhwYW5zaW9uLXBhbmVsLmNvbXBvbmVudC50cyc7XG5cbmltcG9ydCBzdHlsZSBmcm9tICcuL2V4cGFuc2lvbi1wYW5lbC1oZWFkZXIuc2Nzcz9pbmxpbmUnO1xuXG4vKipcbiAqIEl0IGFjdHMgYXMgYSBuYXRpdmUgYHN1bW1hcnlgIHRhZyBmb3IgdGhlIGBzYmItZXhwYW5zaW9uLXBhbmVsYCBjb21wb25lbnQuXG4gKlxuICogQHNsb3QgLSBVc2UgdGhlIHVubmFtZWQgc2xvdCB0byBhZGQgY29udGVudCB0byB0aGUgYHNiYi1leHBhbnNpb24tcGFuZWwtaGVhZGVyYC5cbiAqIEBzbG90IGljb24gLSBTbG90IHVzZWQgdG8gcmVuZGVyIHRoZSBgc2JiLWV4cGFuc2lvbi1wYW5lbC1oZWFkZXJgIGljb24uXG4gKi9cbmV4cG9ydCBjbGFzcyBTYmJFeHBhbnNpb25QYW5lbEhlYWRlckVsZW1lbnQgZXh0ZW5kcyBTYmJEaXNhYmxlZFRhYkluZGV4QWN0aW9uTWl4aW4oXG4gIFNiYkljb25OYW1lTWl4aW4oU2JiQnV0dG9uQmFzZUVsZW1lbnQpLFxuKSB7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgcmVhZG9ubHkgZWxlbWVudE5hbWU6IHN0cmluZyA9ICdzYmItZXhwYW5zaW9uLXBhbmVsLWhlYWRlcic7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgc3R5bGVzOiBDU1NSZXN1bHRHcm91cCA9IFt1bnNhZmVDU1Moc3R5bGUpXTtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBldmVudHMgPSB7XG4gICAgdG9nZ2xlZXhwYW5kZWQ6ICd0b2dnbGVleHBhbmRlZCcsXG4gIH0gYXMgY29uc3Q7XG5cbiAgcHJpdmF0ZSBfbWVkaWFNYXRjaGVyID0gbmV3IFNiYk1lZGlhTWF0Y2hlckNvbnRyb2xsZXIodGhpcywge1xuICAgIFtTYmJNZWRpYVF1ZXJ5SG92ZXJdOiAobSkgPT4gKHRoaXMuX2lzSG92ZXIgPSBtKSxcbiAgfSk7XG5cbiAgcHJpdmF0ZSBfaXNIb3ZlcjogYm9vbGVhbiA9IHRoaXMuX21lZGlhTWF0Y2hlci5tYXRjaGVzKFNiYk1lZGlhUXVlcnlIb3ZlcikgPz8gZmFsc2U7XG4gIHByaXZhdGUgX3ByZXZpb3VzU2l6ZTogU2JiRXhwYW5zaW9uUGFuZWxFbGVtZW50WydzaXplJ10gPSBudWxsO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcj8uKCdjbGljaycsICgpID0+IHRoaXMuX2VtaXRFeHBhbmRlZEV2ZW50KCkpO1xuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcj8uKCdtb3VzZWVudGVyJywgKCkgPT4gdGhpcy5fb25Nb3VzZU1vdmVtZW50KHRydWUpKTtcbiAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/LignbW91c2VsZWF2ZScsICgpID0+IHRoaXMuX29uTW91c2VNb3ZlbWVudChmYWxzZSkpO1xuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcj8uKCdzbG90dGVkY2hhbmdlJywgKCkgPT4gdGhpcy5fc2V0SWNvblN0YXRlKCkpO1xuICAgIHRoaXMuYWRkQ29udHJvbGxlcihcbiAgICAgIG5ldyBTYmJQcm9wZXJ0eVdhdGNoZXJDb250cm9sbGVyKHRoaXMsICgpID0+IHRoaXMuY2xvc2VzdCgnc2JiLWV4cGFuc2lvbi1wYW5lbCcpLCB7XG4gICAgICAgIHNpemU6IChzKSA9PiB7XG4gICAgICAgICAgaWYgKHRoaXMuX3ByZXZpb3VzU2l6ZSkge1xuICAgICAgICAgICAgdGhpcy5pbnRlcm5hbHMuc3RhdGVzLmRlbGV0ZShgc2l6ZS0ke3RoaXMuX3ByZXZpb3VzU2l6ZX1gKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5fcHJldmlvdXNTaXplID0gcy5zaXplO1xuICAgICAgICAgIGlmICh0aGlzLl9wcmV2aW91c1NpemUpIHtcbiAgICAgICAgICAgIHRoaXMuaW50ZXJuYWxzLnN0YXRlcy5hZGQoYHNpemUtJHt0aGlzLl9wcmV2aW91c1NpemV9YCk7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgfSksXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpO1xuICAgIHRoaXMuc2xvdCB8fD0gJ2hlYWRlcic7XG4gIH1cblxuICBwcml2YXRlIF9lbWl0RXhwYW5kZWRFdmVudCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIC8qKiBOb3RpZmllcyB0aGF0IHRoZSBgc2JiLWV4cGFuc2lvbi1wYW5lbGAgaXMgYWJvdXQgdG8gZXhwYW5kL3Nocmluay4gKi9cbiAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ3RvZ2dsZWV4cGFuZGVkJywgeyBidWJibGVzOiB0cnVlLCBjb21wb3NlZDogdHJ1ZSB9KSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfb25Nb3VzZU1vdmVtZW50KHRvZ2dsZURhdGFBdHRyaWJ1dGU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICBjb25zdCBwYXJlbnQ6IFNiYkV4cGFuc2lvblBhbmVsRWxlbWVudCA9IHRoaXMuY2xvc2VzdCgnc2JiLWV4cGFuc2lvbi1wYW5lbCcpITtcbiAgICAvLyBUaGUgYHNiYi5ob3Zlci1tcWAgbG9naWMgaGFzIGJlZW4gcmVtb3ZlZCBmcm9tIHNjc3MsIGJ1dCBpdCBtdXN0IGJlIHJlcGxpY2F0ZWQgdG8gaGF2ZSB0aGUgY29ycmVjdCBiZWhhdmlvciBvbiBtb2JpbGUuXG4gICAgaWYgKCF0b2dnbGVEYXRhQXR0cmlidXRlIHx8IChwYXJlbnQgJiYgdGhpcy5faXNIb3ZlcikpIHtcbiAgICAgIMm1c3RhdGVDb250cm9sbGVyKHBhcmVudCkudG9nZ2xlKCd0b2dnbGUtaG92ZXInLCB0b2dnbGVEYXRhQXR0cmlidXRlKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVGhlIDpzdGF0ZShpY29uKSBpcyB1c2VkIGJ5IHRoZSAnc2JiLWV4cGFuc2lvbi1wYW5lbCcuXG4gICAqIEl0IG5lZWRzIHRvIGJlIHNldCBiZWZvcmUgdGhlIEBzbG90Y2hhbmdlIGV2ZW50IGJ1YmJsZXMgdG8gdGhlICdleHBhbnNpb24tcGFuZWwnXG4gICAqIGJ1dCBhZnRlciB0aGUgJ1NiYlNsb3RTdGF0ZUNvbnRyb2xsZXInIGhhcyBydW4uXG4gICAqL1xuICBwcml2YXRlIF9zZXRJY29uU3RhdGUoKTogdm9pZCB7XG4gICAgdGhpcy50b2dnbGVTdGF0ZSgnaWNvbicsICEhKHRoaXMuaWNvbk5hbWUgfHwgdGhpcy5tYXRjaGVzPy4oJzpzdGF0ZShpY29uKScpKSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyVGVtcGxhdGUoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIC8vIFRPRE86IFN0aWxsIG5lY2Vzc2FyeT9cbiAgICB0aGlzLl9zZXRJY29uU3RhdGUoKTtcbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxzcGFuIGNsYXNzPVwic2JiLWV4cGFuc2lvbi1wYW5lbC1oZWFkZXJfX3RpdGxlXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwic2JiLWV4cGFuc2lvbi1wYW5lbC1oZWFkZXJfX2ljb25cIj4gJHt0aGlzLnJlbmRlckljb25TbG90KCl9IDwvc3Bhbj5cbiAgICAgICAgPHNsb3Q+PC9zbG90PlxuICAgICAgPC9zcGFuPlxuICAgICAgJHshdGhpcy5kaXNhYmxlZFxuICAgICAgICA/IGh0bWxgPHNwYW4gY2xhc3M9XCJzYmItZXhwYW5zaW9uLXBhbmVsLWhlYWRlcl9fdG9nZ2xlXCI+XG4gICAgICAgICAgICA8c2JiLWljb25cbiAgICAgICAgICAgICAgbmFtZT1cImNoZXZyb24tc21hbGwtZG93bi1tZWRpdW1cIlxuICAgICAgICAgICAgICBjbGFzcz1cInNiYi1leHBhbnNpb24tcGFuZWwtaGVhZGVyX190b2dnbGUtaWNvblwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICA8L3NiYi1pY29uPlxuICAgICAgICAgIDwvc3Bhbj5gXG4gICAgICAgIDogbm90aGluZ31cbiAgICBgO1xuICB9XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgICdzYmItZXhwYW5zaW9uLXBhbmVsLWhlYWRlcic6IFNiYkV4cGFuc2lvblBhbmVsSGVhZGVyRWxlbWVudDtcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0FDcUJBLElBQWEsaUNBQWIsY0FBb0QsK0JBQ2xELGlCQUFpQixvQkFBb0IsQ0FBQyxFQUN2Qzs7RUFDaUMsS0FBQSxjQUFzQjtDQUE2Qjs7RUFDNUQsS0FBQSxTQUF5QixDQUFDLFVBQVUsOEJBQUssQ0FBQztDQUFFOztFQUM1QyxLQUFBLFNBQVMsRUFDOUIsZ0JBQWdCLGlCQUFBO0NBQ1A7Q0FTWCxjQUFBO0VBQ0UsTUFBSztFQVJDLEtBQUEsZ0JBQWdCLElBQUksMEJBQTBCLE1BQU0sR0FDekQsc0JBQXNCLE1BQU8sS0FBSyxXQUFXLEVBQUEsQ0FDL0M7RUFFTyxLQUFBLFdBQW9CLEtBQUssY0FBYyxRQUFRLGtCQUFrQixLQUFLO0VBQ3RFLEtBQUEsZ0JBQWtEO0VBSXhELEtBQUssbUJBQW1CLGVBQWUsS0FBSyxtQkFBa0IsQ0FBRTtFQUNoRSxLQUFLLG1CQUFtQixvQkFBb0IsS0FBSyxpQkFBaUIsSUFBSSxDQUFDO0VBQ3ZFLEtBQUssbUJBQW1CLG9CQUFvQixLQUFLLGlCQUFpQixLQUFLLENBQUM7RUFDeEUsS0FBSyxtQkFBbUIsdUJBQXVCLEtBQUssY0FBYSxDQUFFO0VBQ25FLEtBQUssY0FDSCxJQUFJLDZCQUE2QixZQUFZLEtBQUssUUFBUSxxQkFBcUIsR0FBRyxFQUNoRixPQUFPLE1BQUs7R0FDVixJQUFJLEtBQUssZUFDUCxLQUFLLFVBQVUsT0FBTyxPQUFPLFFBQVEsS0FBSyxlQUFlO0dBRTNELEtBQUssZ0JBQWdCLEVBQUU7R0FDdkIsSUFBSSxLQUFLLGVBQ1AsS0FBSyxVQUFVLE9BQU8sSUFBSSxRQUFRLEtBQUssZUFBZTtFQUUxRCxFQUFBLENBQ0QsQ0FBQztDQUVOO0NBRWdCLG9CQUFpQjtFQUMvQixNQUFNLGtCQUFpQjtFQUN2QixLQUFLLFNBQVM7Q0FDaEI7Q0FFUSxxQkFBa0I7RUFDeEIsSUFBSSxDQUFDLEtBQUs7O0VBRVIsS0FBSyxjQUFjLElBQUksTUFBTSxrQkFBa0I7R0FBRSxTQUFTO0dBQU0sVUFBVTtFQUFJLENBQUUsQ0FBQztDQUVyRjtDQUVRLGlCQUFpQixxQkFBNEI7RUFDbkQsTUFBTSxTQUFtQyxLQUFLLFFBQVEscUJBQXFCO0VBRTNFLElBQUksQ0FBQyx1QkFBd0IsVUFBVSxLQUFLLFVBQzFDLGlCQUFpQixNQUFNLEVBQUUsT0FBTyxnQkFBZ0IsbUJBQW1CO0NBRXZFOzs7Ozs7Q0FPUSxnQkFBYTtFQUNuQixLQUFLLFlBQVksUUFBUSxDQUFDLEVBQUUsS0FBSyxZQUFZLEtBQUssVUFBVSxpQ0FBYyxFQUFFO0NBQzlFO0NBRW1CLGlCQUFjO0VBRS9CLEtBQUssY0FBYTtFQUNsQixPQUFPLElBQUk7OzBEQUUyQyxLQUFLLGVBQWMsRUFBRTs7O1FBR3ZFLENBQUMsS0FBSyxXQUNKLElBQUk7Ozs7OztxQkFPSixRQUFBOztDQUVSIn0=
|
|
83
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwYW5zaW9uLXBhbmVsLWhlYWRlci5jb21wb25lbnQtZ2c1QV83UHouanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2V4cGFuc2lvbi1wYW5lbC9leHBhbnNpb24tcGFuZWwtaGVhZGVyL2V4cGFuc2lvbi1wYW5lbC1oZWFkZXIuc2Nzcz9pbmxpbmUiLCIuLi8uLi8uLi9zcmMvZWxlbWVudHMvZXhwYW5zaW9uLXBhbmVsL2V4cGFuc2lvbi1wYW5lbC1oZWFkZXIvZXhwYW5zaW9uLXBhbmVsLWhlYWRlci5jb21wb25lbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiQHVzZSAnLi4vLi4vY29yZS9zdHlsZXMnIGFzIHNiYjtcblxuOmhvc3Qge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuOmhvc3QoOnN0YXRlKHNpemUtcykpIHtcbiAgLS1zYmItZXhwYW5zaW9uLXBhbmVsLWhlYWRlci1nYXA6IHZhcigtLXNiYi1leHBhbnNpb24tcGFuZWwtaGVhZGVyLWdhcC1zKTtcbiAgLS1zYmItZXhwYW5zaW9uLXBhbmVsLWhlYWRlci1wYWRkaW5nLWJsb2NrOiB2YXIoLS1zYmItZXhwYW5zaW9uLXBhbmVsLWhlYWRlci1wYWRkaW5nLWJsb2NrLXMpO1xuICAtLXNiYi1leHBhbnNpb24tcGFuZWwtaGVhZGVyLXBhZGRpbmctaW5saW5lOiB2YXIoLS1zYmItZXhwYW5zaW9uLXBhbmVsLWhlYWRlci1wYWRkaW5nLWlubGluZS1zKTtcbn1cblxuOmhvc3QoOnN0YXRlKHNpemUtbCkpIHtcbiAgLS1zYmItZXhwYW5zaW9uLXBhbmVsLWhlYWRlci1nYXA6IHZhcigtLXNiYi1leHBhbnNpb24tcGFuZWwtaGVhZGVyLWdhcC1sKTtcbiAgLS1zYmItZXhwYW5zaW9uLXBhbmVsLWhlYWRlci1wYWRkaW5nLWJsb2NrOiB2YXIoLS1zYmItZXhwYW5zaW9uLXBhbmVsLWhlYWRlci1wYWRkaW5nLWJsb2NrLWwpO1xuICAtLXNiYi1leHBhbnNpb24tcGFuZWwtaGVhZGVyLXBhZGRpbmctaW5saW5lOiB2YXIoLS1zYmItZXhwYW5zaW9uLXBhbmVsLWhlYWRlci1wYWRkaW5nLWlubGluZS1sKTtcbn1cblxuOmhvc3QoOm5vdCg6c3RhdGUoc2l6ZS1zKSwgOnN0YXRlKHNpemUtbCkpKSB7XG4gIC0tc2JiLWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItZ2FwOiB2YXIoLS1zYmItZXhwYW5zaW9uLXBhbmVsLWhlYWRlci1nYXAtZGVmYXVsdCk7XG4gIC0tc2JiLWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItcGFkZGluZy1ibG9jazogdmFyKFxuICAgIC0tc2JiLWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItcGFkZGluZy1ibG9jay1kZWZhdWx0XG4gICk7XG4gIC0tc2JiLWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItcGFkZGluZy1pbmxpbmU6IHZhcihcbiAgICAtLXNiYi1leHBhbnNpb24tcGFuZWwtaGVhZGVyLXBhZGRpbmctaW5saW5lLWRlZmF1bHRcbiAgKTtcbn1cblxuOmhvc3QoOmlzKDpkaXNhYmxlZCwgW2Rpc2FibGVkLWludGVyYWN0aXZlXSkpIHtcbiAgLS1zYmItZXhwYW5zaW9uLXBhbmVsLWhlYWRlci1jdXJzb3I6IHZhcigtLXNiYi1jdXJzb3ItZGVmYXVsdCk7XG4gIC0tc2JiLWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItdGV4dC1jb2xvcjogbGlnaHQtZGFyayhcbiAgICB2YXIoLS1zYmItY29sb3ItZ3Jhbml0ZSksXG4gICAgdmFyKC0tc2JiLWNvbG9yLXN0b3JtKVxuICApO1xuXG4gIEBtZWRpYSAoZm9yY2VkLWNvbG9yczogYWN0aXZlKSB7XG4gICAgLS1zYmItZXhwYW5zaW9uLXBhbmVsLWhlYWRlci10ZXh0LWNvbG9yOiBHcmF5VGV4dDtcbiAgfVxufVxuXG46aG9zdCg6Zm9jdXMtdmlzaWJsZSkge1xuICBAaW5jbHVkZSBzYmIuZm9jdXMtb3V0bGluZTtcblxuICBvdXRsaW5lLW9mZnNldDogdmFyKC0tc2JiLXNwYWNpbmctZml4ZWQtMXgpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1zYmItZXhwYW5zaW9uLXBhbmVsLWJvcmRlci1yYWRpdXMpO1xufVxuXG4uc2JiLWV4cGFuc2lvbi1wYW5lbC1oZWFkZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHZhcigtLXNiYi1leHBhbnNpb24tcGFuZWwtaGVhZGVyLWp1c3RpZnktY29udGVudCk7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogdmFyKC0tc2JiLWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItZ2FwKTtcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IHZhcigtLXNiYi1leHBhbnNpb24tcGFuZWwtaGVhZGVyLXBhZGRpbmctYmxvY2spXG4gICAgdmFyKC0tc2JiLWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItcGFkZGluZy1pbmxpbmUpO1xuICB0ZXh0LWFsaWduOiBzdGFydDtcbiAgY3Vyc29yOiB2YXIoLS1zYmItZXhwYW5zaW9uLXBhbmVsLWhlYWRlci1jdXJzb3IpO1xuICBjb2xvcjogdmFyKC0tc2JiLWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItdGV4dC1jb2xvcik7XG4gIGZvbnQtc2l6ZTogdmFyKC0tc2JiLWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItZm9udC1zaXplKTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgbGV0dGVyLXNwYWNpbmc6IHZhcigtLXNiYi10eXBvLWxldHRlci1zcGFjaW5nLXRleHQpO1xuICBsaW5lLWhlaWdodDogdmFyKC0tc2JiLXR5cG8tbGluZS1oZWlnaHQtdGV4dCk7XG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5cbi5zYmItZXhwYW5zaW9uLXBhbmVsLWhlYWRlcl9fdGl0bGUsXG4uc2JiLWV4cGFuc2lvbi1wYW5lbC1oZWFkZXJfX3RvZ2dsZSxcbi5zYmItZXhwYW5zaW9uLXBhbmVsLWhlYWRlcl9faWNvbiB7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG5cbi5zYmItZXhwYW5zaW9uLXBhbmVsLWhlYWRlcl9faWNvbiB7XG4gIHdpZHRoOiB2YXIoLS1zYmItZXhwYW5zaW9uLXBhbmVsLWljb24tc2l6ZSk7XG5cbiAgLS1zYmItaWNvbi1zdmctd2lkdGg6IHZhcigtLXNiYi1leHBhbnNpb24tcGFuZWwtaWNvbi1zaXplKTtcbiAgLS1zYmItaWNvbi1zdmctaGVpZ2h0OiB2YXIoLS1zYmItZXhwYW5zaW9uLXBhbmVsLWljb24tc2l6ZSk7XG5cbiAgOmhvc3QoOm5vdCg6c3RhdGUoc2xvdHRlZC1pY29uKSwgOnN0YXRlKGhhcy1pY29uLW5hbWUpKSkgJiB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuXG4uc2JiLWV4cGFuc2lvbi1wYW5lbC1oZWFkZXJfX3RpdGxlIHtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiB2YXIoLS1zYmItZXhwYW5zaW9uLXBhbmVsLXRpdGxlLWdhcCk7XG4gIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgLy8gQWxpZ24gd2l0aCB0b2dnbGUgaWNvblxuICBtaW4taGVpZ2h0OiB2YXIoLS1zYmItc2l6ZS1pY29uLXVpLW1lZGl1bSk7XG59XG5cbi5zYmItZXhwYW5zaW9uLXBhbmVsLWhlYWRlcl9fdG9nZ2xlLWljb24ge1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gdmFyKC0tc2JiLWRpc2FibGUtYW5pbWF0aW9uLWR1cmF0aW9uLCB2YXIoLS1zYmItYW5pbWF0aW9uLWR1cmF0aW9uLTR4KSk7XG5cbiAgOmhvc3QoW2FyaWEtZXhwYW5kZWRdOm5vdChbYXJpYS1leHBhbmRlZD0nZmFsc2UnXSkpICYge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKC0xODBkZWcpO1xuICB9XG59XG4iLCJpbXBvcnQgeyB0eXBlIENTU1Jlc3VsdEdyb3VwLCBodG1sLCBub3RoaW5nLCB0eXBlIFRlbXBsYXRlUmVzdWx0LCB1bnNhZmVDU1MgfSBmcm9tICdsaXQnO1xuXG5pbXBvcnQge1xuICBTYmJCdXR0b25CYXNlRWxlbWVudCxcbiAgU2JiRGlzYWJsZWRUYWJJbmRleEFjdGlvbk1peGluLFxuICBTYmJNZWRpYU1hdGNoZXJDb250cm9sbGVyLFxuICBTYmJNZWRpYVF1ZXJ5SG92ZXIsXG4gIFNiYlByb3BlcnR5V2F0Y2hlckNvbnRyb2xsZXIsXG4gIMm1c3RhdGVDb250cm9sbGVyLFxufSBmcm9tICcuLi8uLi9jb3JlLnRzJztcbmltcG9ydCB7IFNiYkljb25OYW1lTWl4aW4gfSBmcm9tICcuLi8uLi9pY29uLnB1cmUudHMnO1xuaW1wb3J0IHR5cGUgeyBTYmJFeHBhbnNpb25QYW5lbEVsZW1lbnQgfSBmcm9tICcuLi9leHBhbnNpb24tcGFuZWwvZXhwYW5zaW9uLXBhbmVsLmNvbXBvbmVudC50cyc7XG5cbmltcG9ydCBzdHlsZSBmcm9tICcuL2V4cGFuc2lvbi1wYW5lbC1oZWFkZXIuc2Nzcz9pbmxpbmUnO1xuXG4vKipcbiAqIEl0IGFjdHMgYXMgYSBuYXRpdmUgYHN1bW1hcnlgIHRhZyBmb3IgdGhlIGBzYmItZXhwYW5zaW9uLXBhbmVsYCBjb21wb25lbnQuXG4gKlxuICogQHNsb3QgLSBVc2UgdGhlIHVubmFtZWQgc2xvdCB0byBhZGQgY29udGVudCB0byB0aGUgYHNiYi1leHBhbnNpb24tcGFuZWwtaGVhZGVyYC5cbiAqIEBzbG90IGljb24gLSBTbG90IHVzZWQgdG8gcmVuZGVyIHRoZSBgc2JiLWV4cGFuc2lvbi1wYW5lbC1oZWFkZXJgIGljb24uXG4gKi9cbmV4cG9ydCBjbGFzcyBTYmJFeHBhbnNpb25QYW5lbEhlYWRlckVsZW1lbnQgZXh0ZW5kcyBTYmJEaXNhYmxlZFRhYkluZGV4QWN0aW9uTWl4aW4oXG4gIFNiYkljb25OYW1lTWl4aW4oU2JiQnV0dG9uQmFzZUVsZW1lbnQpLFxuKSB7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgcmVhZG9ubHkgZWxlbWVudE5hbWU6IHN0cmluZyA9ICdzYmItZXhwYW5zaW9uLXBhbmVsLWhlYWRlcic7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgc3R5bGVzOiBDU1NSZXN1bHRHcm91cCA9IFt1bnNhZmVDU1Moc3R5bGUpXTtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBldmVudHMgPSB7XG4gICAgdG9nZ2xlZXhwYW5kZWQ6ICd0b2dnbGVleHBhbmRlZCcsXG4gIH0gYXMgY29uc3Q7XG5cbiAgcHJpdmF0ZSBfbWVkaWFNYXRjaGVyID0gbmV3IFNiYk1lZGlhTWF0Y2hlckNvbnRyb2xsZXIodGhpcywge1xuICAgIFtTYmJNZWRpYVF1ZXJ5SG92ZXJdOiAobSkgPT4gKHRoaXMuX2lzSG92ZXIgPSBtKSxcbiAgfSk7XG5cbiAgcHJpdmF0ZSBfaXNIb3ZlcjogYm9vbGVhbiA9IHRoaXMuX21lZGlhTWF0Y2hlci5tYXRjaGVzKFNiYk1lZGlhUXVlcnlIb3ZlcikgPz8gZmFsc2U7XG4gIHByaXZhdGUgX3ByZXZpb3VzU2l6ZTogU2JiRXhwYW5zaW9uUGFuZWxFbGVtZW50WydzaXplJ10gPSBudWxsO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcj8uKCdjbGljaycsICgpID0+IHRoaXMuX2VtaXRFeHBhbmRlZEV2ZW50KCkpO1xuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcj8uKCdtb3VzZWVudGVyJywgKCkgPT4gdGhpcy5fb25Nb3VzZU1vdmVtZW50KHRydWUpKTtcbiAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/LignbW91c2VsZWF2ZScsICgpID0+IHRoaXMuX29uTW91c2VNb3ZlbWVudChmYWxzZSkpO1xuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcj8uKCdzbG90dGVkY2hhbmdlJywgKCkgPT4gdGhpcy5fc2V0SWNvblN0YXRlKCkpO1xuICAgIHRoaXMuYWRkQ29udHJvbGxlcihcbiAgICAgIG5ldyBTYmJQcm9wZXJ0eVdhdGNoZXJDb250cm9sbGVyKHRoaXMsICgpID0+IHRoaXMuY2xvc2VzdCgnc2JiLWV4cGFuc2lvbi1wYW5lbCcpLCB7XG4gICAgICAgIHNpemU6IChzKSA9PiB7XG4gICAgICAgICAgaWYgKHRoaXMuX3ByZXZpb3VzU2l6ZSkge1xuICAgICAgICAgICAgdGhpcy5pbnRlcm5hbHMuc3RhdGVzLmRlbGV0ZShgc2l6ZS0ke3RoaXMuX3ByZXZpb3VzU2l6ZX1gKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5fcHJldmlvdXNTaXplID0gcy5zaXplO1xuICAgICAgICAgIGlmICh0aGlzLl9wcmV2aW91c1NpemUpIHtcbiAgICAgICAgICAgIHRoaXMuaW50ZXJuYWxzLnN0YXRlcy5hZGQoYHNpemUtJHt0aGlzLl9wcmV2aW91c1NpemV9YCk7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgfSksXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpO1xuICAgIHRoaXMuc2xvdCB8fD0gJ2hlYWRlcic7XG4gIH1cblxuICBwcml2YXRlIF9lbWl0RXhwYW5kZWRFdmVudCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIC8qKiBOb3RpZmllcyB0aGF0IHRoZSBgc2JiLWV4cGFuc2lvbi1wYW5lbGAgaXMgYWJvdXQgdG8gZXhwYW5kL3Nocmluay4gKi9cbiAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ3RvZ2dsZWV4cGFuZGVkJywgeyBidWJibGVzOiB0cnVlLCBjb21wb3NlZDogdHJ1ZSB9KSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfb25Nb3VzZU1vdmVtZW50KHRvZ2dsZURhdGFBdHRyaWJ1dGU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICBjb25zdCBwYXJlbnQ6IFNiYkV4cGFuc2lvblBhbmVsRWxlbWVudCA9IHRoaXMuY2xvc2VzdCgnc2JiLWV4cGFuc2lvbi1wYW5lbCcpITtcbiAgICAvLyBUaGUgYHNiYi5ob3Zlci1tcWAgbG9naWMgaGFzIGJlZW4gcmVtb3ZlZCBmcm9tIHNjc3MsIGJ1dCBpdCBtdXN0IGJlIHJlcGxpY2F0ZWQgdG8gaGF2ZSB0aGUgY29ycmVjdCBiZWhhdmlvciBvbiBtb2JpbGUuXG4gICAgLy8gVE9ETzogd2l0aCBtb3JlIHN1cHBvcnQgZm9yIGxpZ2h0IERPTSBzdHlsZXMgc2V0IGZyb20gYSBjb21wb2VudCAocm9vdG5vZGUpLCB3ZSBzaG91bGQgbW92ZSB0aGlzIGludG8gc2NzcyB3aXRoIDpoYXMoOmhvdmVyKSBzZWxlY3Rvci5cbiAgICBpZiAoIXRvZ2dsZURhdGFBdHRyaWJ1dGUgfHwgKHBhcmVudCAmJiB0aGlzLl9pc0hvdmVyKSkge1xuICAgICAgybVzdGF0ZUNvbnRyb2xsZXIocGFyZW50KS50b2dnbGUoJ3RvZ2dsZS1ob3ZlcicsIHRvZ2dsZURhdGFBdHRyaWJ1dGUpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgOnN0YXRlKGljb24pIGlzIHVzZWQgYnkgdGhlICdzYmItZXhwYW5zaW9uLXBhbmVsJy5cbiAgICogSXQgbmVlZHMgdG8gYmUgc2V0IGJlZm9yZSB0aGUgQHNsb3RjaGFuZ2UgZXZlbnQgYnViYmxlcyB0byB0aGUgJ2V4cGFuc2lvbi1wYW5lbCdcbiAgICogYnV0IGFmdGVyIHRoZSAnU2JiU2xvdFN0YXRlQ29udHJvbGxlcicgaGFzIHJ1bi5cbiAgICovXG4gIHByaXZhdGUgX3NldEljb25TdGF0ZSgpOiB2b2lkIHtcbiAgICB0aGlzLnRvZ2dsZVN0YXRlKCdpY29uJywgISEodGhpcy5pY29uTmFtZSB8fCB0aGlzLm1hdGNoZXM/LignOnN0YXRlKGljb24pJykpKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXJUZW1wbGF0ZSgpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgdGhpcy5fc2V0SWNvblN0YXRlKCk7XG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8c3BhbiBjbGFzcz1cInNiYi1leHBhbnNpb24tcGFuZWwtaGVhZGVyX190aXRsZVwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cInNiYi1leHBhbnNpb24tcGFuZWwtaGVhZGVyX19pY29uXCI+ICR7dGhpcy5yZW5kZXJJY29uU2xvdCgpfSA8L3NwYW4+XG4gICAgICAgIDxzbG90Pjwvc2xvdD5cbiAgICAgIDwvc3Bhbj5cbiAgICAgICR7IXRoaXMuZGlzYWJsZWRcbiAgICAgICAgPyBodG1sYDxzcGFuIGNsYXNzPVwic2JiLWV4cGFuc2lvbi1wYW5lbC1oZWFkZXJfX3RvZ2dsZVwiPlxuICAgICAgICAgICAgPHNiYi1pY29uXG4gICAgICAgICAgICAgIG5hbWU9XCJjaGV2cm9uLXNtYWxsLWRvd24tbWVkaXVtXCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJzYmItZXhwYW5zaW9uLXBhbmVsLWhlYWRlcl9fdG9nZ2xlLWljb25cIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgPC9zYmItaWNvbj5cbiAgICAgICAgICA8L3NwYW4+YFxuICAgICAgICA6IG5vdGhpbmd9XG4gICAgYDtcbiAgfVxufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICAnc2JiLWV4cGFuc2lvbi1wYW5lbC1oZWFkZXInOiBTYmJFeHBhbnNpb25QYW5lbEhlYWRlckVsZW1lbnQ7XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztBQ3FCQSxJQUFhLGlDQUFiLGNBQW9ELCtCQUNsRCxpQkFBaUIsb0JBQW9CLENBQUMsRUFDdkM7O0VBQ2lDLEtBQUEsY0FBc0I7Q0FBNkI7O0VBQzVELEtBQUEsU0FBeUIsQ0FBQyxVQUFVLDhCQUFLLENBQUM7Q0FBRTs7RUFDNUMsS0FBQSxTQUFTLEVBQzlCLGdCQUFnQixpQkFBQTtDQUNQO0NBU1gsY0FBQTtFQUNFLE1BQUs7RUFSQyxLQUFBLGdCQUFnQixJQUFJLDBCQUEwQixNQUFNLEdBQ3pELHNCQUFzQixNQUFPLEtBQUssV0FBVyxFQUFBLENBQy9DO0VBRU8sS0FBQSxXQUFvQixLQUFLLGNBQWMsUUFBUSxrQkFBa0IsS0FBSztFQUN0RSxLQUFBLGdCQUFrRDtFQUl4RCxLQUFLLG1CQUFtQixlQUFlLEtBQUssbUJBQWtCLENBQUU7RUFDaEUsS0FBSyxtQkFBbUIsb0JBQW9CLEtBQUssaUJBQWlCLElBQUksQ0FBQztFQUN2RSxLQUFLLG1CQUFtQixvQkFBb0IsS0FBSyxpQkFBaUIsS0FBSyxDQUFDO0VBQ3hFLEtBQUssbUJBQW1CLHVCQUF1QixLQUFLLGNBQWEsQ0FBRTtFQUNuRSxLQUFLLGNBQ0gsSUFBSSw2QkFBNkIsWUFBWSxLQUFLLFFBQVEscUJBQXFCLEdBQUcsRUFDaEYsT0FBTyxNQUFLO0dBQ1YsSUFBSSxLQUFLLGVBQ1AsS0FBSyxVQUFVLE9BQU8sT0FBTyxRQUFRLEtBQUssZUFBZTtHQUUzRCxLQUFLLGdCQUFnQixFQUFFO0dBQ3ZCLElBQUksS0FBSyxlQUNQLEtBQUssVUFBVSxPQUFPLElBQUksUUFBUSxLQUFLLGVBQWU7RUFFMUQsRUFBQSxDQUNELENBQUM7Q0FFTjtDQUVnQixvQkFBaUI7RUFDL0IsTUFBTSxrQkFBaUI7RUFDdkIsS0FBSyxTQUFTO0NBQ2hCO0NBRVEscUJBQWtCO0VBQ3hCLElBQUksQ0FBQyxLQUFLOztFQUVSLEtBQUssY0FBYyxJQUFJLE1BQU0sa0JBQWtCO0dBQUUsU0FBUztHQUFNLFVBQVU7RUFBSSxDQUFFLENBQUM7Q0FFckY7Q0FFUSxpQkFBaUIscUJBQTRCO0VBQ25ELE1BQU0sU0FBbUMsS0FBSyxRQUFRLHFCQUFxQjtFQUczRSxJQUFJLENBQUMsdUJBQXdCLFVBQVUsS0FBSyxVQUMxQyxpQkFBaUIsTUFBTSxFQUFFLE9BQU8sZ0JBQWdCLG1CQUFtQjtDQUV2RTs7Ozs7O0NBT1EsZ0JBQWE7RUFDbkIsS0FBSyxZQUFZLFFBQVEsQ0FBQyxFQUFFLEtBQUssWUFBWSxLQUFLLFVBQVUsaUNBQWMsRUFBRTtDQUM5RTtDQUVtQixpQkFBYztFQUMvQixLQUFLLGNBQWE7RUFDbEIsT0FBTyxJQUFJOzswREFFMkMsS0FBSyxlQUFjLEVBQUU7OztRQUd2RSxDQUFDLEtBQUssV0FDSixJQUFJOzs7Ozs7cUJBT0osUUFBQTs7Q0FFUiJ9
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"form-field.component.d.ts","sourceRoot":"","sources":["../../../../../src/elements/form-field/form-field/form-field.component.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"form-field.component.d.ts","sourceRoot":"","sources":["../../../../../src/elements/form-field/form-field/form-field.component.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { n as SbbFormFieldElement, t as SbbFormFieldControlEvent } from "../../form-field.component-
|
|
1
|
+
import { n as SbbFormFieldElement, t as SbbFormFieldControlEvent } from "../../form-field.component-Cb58q-Ty.js";
|
|
2
2
|
export { SbbFormFieldControlEvent, SbbFormFieldElement };
|