@sbb-esta/lyne-elements-dev 5.0.0-next.1-dev.1777534699 → 5.0.0-next.1-dev.1777534945

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.
Files changed (37) hide show
  1. package/container/sticky-bar/sticky-bar.component.js +1 -1
  2. package/container.js +1 -1
  3. package/container.pure.js +1 -1
  4. package/core/mixins/form-associated-input-mixin.js +1 -1
  5. package/custom-elements.json +381 -381
  6. package/development/container/sticky-bar/sticky-bar.component.js +1 -1
  7. package/development/container.js +1 -1
  8. package/development/container.pure.js +1 -1
  9. package/development/core/mixins/form-associated-input-mixin.js +2 -2
  10. package/development/expansion-panel/expansion-panel-header/expansion-panel-header.component.js +1 -1
  11. package/development/{expansion-panel-header.component-QbxqMGKG.js → expansion-panel-header.component-DFTa_og5.js} +2 -2
  12. package/development/expansion-panel.js +1 -1
  13. package/development/expansion-panel.pure.js +1 -1
  14. package/development/option/option/option.component.js +1 -1
  15. package/development/{option.component-BbrXKO7i.js → option.component-BPHnz8y-.js} +2 -2
  16. package/development/option.js +1 -1
  17. package/development/option.pure.js +1 -1
  18. package/development/{sticky-bar.component-MMBSPa2B.js → sticky-bar.component-CVKi_65S.js} +3 -3
  19. package/development/{tab-group.component-CxuecHpZ.js → tab-group.component-B56RhxCr.js} +2 -2
  20. package/development/tabs/tab-group/tab-group.component.d.ts.map +1 -1
  21. package/development/tabs/tab-group/tab-group.component.js +1 -1
  22. package/development/tabs.js +1 -1
  23. package/development/tabs.pure.js +1 -1
  24. package/expansion-panel/expansion-panel-header/expansion-panel-header.component.js +1 -1
  25. package/{expansion-panel-header.component-BEpspobZ.js → expansion-panel-header.component-BecyqC-C.js} +1 -1
  26. package/expansion-panel.js +1 -1
  27. package/expansion-panel.pure.js +1 -1
  28. package/option/option/option.component.js +1 -1
  29. package/{option.component-aSuNGDJg.js → option.component-QwHFIP3m.js} +1 -1
  30. package/option.js +1 -1
  31. package/option.pure.js +1 -1
  32. package/package.json +2 -2
  33. package/{sticky-bar.component-B_cdkr-V.js → sticky-bar.component-C3ey8Qj8.js} +2 -2
  34. package/{tab-group.component-CYbbE0J6.js → tab-group.component-C02ZTjXT.js} +1 -1
  35. package/tabs/tab-group/tab-group.component.js +1 -1
  36. package/tabs.js +1 -1
  37. package/tabs.pure.js +1 -1
@@ -1,2 +1,2 @@
1
- import { t as SbbStickyBarElement } from "../../sticky-bar.component-MMBSPa2B.js";
1
+ import { t as SbbStickyBarElement } from "../../sticky-bar.component-CVKi_65S.js";
2
2
  export { SbbStickyBarElement };
@@ -1,5 +1,5 @@
1
1
  import { t as SbbContainerElement } from "./container.component-CM10qyHy.js";
2
- import { t as SbbStickyBarElement } from "./sticky-bar.component-MMBSPa2B.js";
2
+ import { t as SbbStickyBarElement } from "./sticky-bar.component-CVKi_65S.js";
3
3
  import "./container.pure.js";
4
4
  //#region src/elements/container.ts
5
5
  /** @entrypoint */
@@ -1,3 +1,3 @@
1
1
  import { t as SbbContainerElement } from "./container.component-CM10qyHy.js";
2
- import { t as SbbStickyBarElement } from "./sticky-bar.component-MMBSPa2B.js";
2
+ import { t as SbbStickyBarElement } from "./sticky-bar.component-CVKi_65S.js";
3
3
  export { SbbContainerElement, SbbStickyBarElement };
@@ -229,7 +229,7 @@ var SbbFormAssociatedInputMixin = (superClass) => {
229
229
  * changed under the condition that no input event has occurred since creation
230
230
  * or the last form reset.
231
231
  */
232
- if (name !== "value" || !this.internals.states.has("interacted")) super.attributeChangedCallback(name, old, value);
232
+ if (name !== "value" || !this.matches?.(":is(:state(interacted),[state--interacted])")) super.attributeChangedCallback(name, old, value);
233
233
  }
234
234
  /**
235
235
  * Is called whenever the form is being reset.
@@ -336,4 +336,4 @@ var SbbFormAssociatedInputMixin = (superClass) => {
336
336
  //#endregion
337
337
  export { SbbFormAssociatedInputMixin };
338
338
 
339
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1hc3NvY2lhdGVkLWlucHV0LW1peGluLmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jb3JlL21peGlucy9mb3JtLWFzc29jaWF0ZWQtaW5wdXQtbWl4aW4udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaHRtbCwgaXNTZXJ2ZXIsIHR5cGUgUHJvcGVydHlEZWNsYXJhdGlvbiwgdHlwZSBQcm9wZXJ0eVZhbHVlcyB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBldmVudE9wdGlvbnMsIHByb3BlcnR5IH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuXG5pbXBvcnQgeyBzYmJJbnB1dE1vZGFsaXR5RGV0ZWN0b3IgfSBmcm9tICcuLi9hMTF5L2lucHV0LW1vZGFsaXR5LWRldGVjdG9yLnRzJztcbmltcG9ydCB0eXBlIHsgU2JiRWxlbWVudCwgU2JiRWxlbWVudENvbnN0cnVjdG9yIH0gZnJvbSAnLi4vYmFzZS1lbGVtZW50cy9lbGVtZW50LnRzJztcbmltcG9ydCB7IFNiYkxhbmd1YWdlQ29udHJvbGxlciB9IGZyb20gJy4uL2NvbnRyb2xsZXJzL2xhbmd1YWdlLWNvbnRyb2xsZXIudHMnO1xuaW1wb3J0IHsgU2JiTWVkaWFRdWVyeVBvaW50ZXJDb2Fyc2UgfSBmcm9tICcuLi9jb250cm9sbGVycy9tZWRpYS1tYXRjaGVycy1jb250cm9sbGVyLnRzJztcbmltcG9ydCB7IGlzQmxpbmssIGlzV2Via2l0IH0gZnJvbSAnLi4vZG9tL3BsYXRmb3JtLnRzJztcbmltcG9ydCB7IGkxOG5JbnB1dFJlcXVpcmVkIH0gZnJvbSAnLi4vaTE4bi9pMThuLnRzJztcblxuaW1wb3J0IHR5cGUgeyBBYnN0cmFjdENvbnN0cnVjdG9yIH0gZnJvbSAnLi9jb25zdHJ1Y3Rvci50cyc7XG5pbXBvcnQgeyBTYmJEaXNhYmxlZE1peGluIH0gZnJvbSAnLi9kaXNhYmxlZC1taXhpbi50cyc7XG5pbXBvcnQge1xuICB0eXBlIEZvcm1SZXN0b3JlUmVhc29uLFxuICB0eXBlIEZvcm1SZXN0b3JlU3RhdGUsXG4gIFNiYkZvcm1Bc3NvY2lhdGVkTWl4aW4sXG59IGZyb20gJy4vZm9ybS1hc3NvY2lhdGVkLW1peGluLnRzJztcbmltcG9ydCB7IFNiYlJlYWRvbmx5TWl4aW4gfSBmcm9tICcuL3JlYWRvbmx5LW1peGluLnRzJztcbmltcG9ydCB7IFNiYlJlcXVpcmVkTWl4aW4gfSBmcm9tICcuL3JlcXVpcmVkLW1peGluLnRzJztcblxuZXhwb3J0IGRlY2xhcmUgYWJzdHJhY3QgY2xhc3MgU2JiRm9ybUFzc29jaWF0ZWRJbnB1dE1peGluVHlwZSBleHRlbmRzIFNiYlJlcXVpcmVkTWl4aW4oXG4gIFNiYkZvcm1Bc3NvY2lhdGVkTWl4aW4oU2JiRWxlbWVudCksXG4pIHtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBmb3JtRmllbGRBc3NvY2lhdGVkID0gdHJ1ZTtcblxuICBwdWJsaWMgc2V0IHZhbHVlKHZhbHVlOiBzdHJpbmcpO1xuICBwdWJsaWMgZ2V0IHZhbHVlKCk6IHN0cmluZztcblxuICBwdWJsaWMgc2V0IGRpc2FibGVkKHZhbHVlOiBib29sZWFuKTtcbiAgcHVibGljIGdldCBkaXNhYmxlZCgpOiBib29sZWFuO1xuXG4gIHB1YmxpYyBzZXQgcmVhZE9ubHkodmFsdWU6IGJvb2xlYW4pO1xuICBwdWJsaWMgZ2V0IHJlYWRPbmx5KCk6IGJvb2xlYW47XG5cbiAgcHVibGljIHNldCBwbGFjZWhvbGRlcih2YWx1ZTogc3RyaW5nKTtcbiAgcHVibGljIGdldCBwbGFjZWhvbGRlcigpOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE1ha2VzIHRoZSBzZWxlY3Rpb24gZXF1YWwgdG8gdGhlIGN1cnJlbnQgb2JqZWN0LlxuICAgKlxuICAgKiBbTUROIFJlZmVyZW5jZV0oaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZG9jcy9XZWIvQVBJL0hUTUxJbnB1dEVsZW1lbnQvc2VsZWN0KVxuICAgKi9cbiAgcHVibGljIHNlbGVjdCgpOiB2b2lkO1xuXG4gIHB1YmxpYyBmb3JtUmVzZXRDYWxsYmFjaygpOiB2b2lkO1xuICBwdWJsaWMgZm9ybVN0YXRlUmVzdG9yZUNhbGxiYWNrKHN0YXRlOiBGb3JtUmVzdG9yZVN0YXRlIHwgbnVsbCwgcmVhc29uOiBGb3JtUmVzdG9yZVJlYXNvbik6IHZvaWQ7XG5cbiAgcHJvdGVjdGVkIHByZXBhcmVQYXN0ZWRUZXh0KHRleHQ6IHN0cmluZyk6IHN0cmluZztcbiAgcHJvdGVjdGVkIGxhbmd1YWdlOiBTYmJMYW5ndWFnZUNvbnRyb2xsZXI7XG59XG5cbmNvbnN0IGNoZWNrUGxhaW50ZXh0T25seVN1cHBvcnQgPSAoKTogYm9vbGVhbiA9PiB7XG4gIGlmIChpc1NlcnZlcikge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGNvbnN0IGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICBkaXYuc2V0QXR0cmlidXRlKCdjb250ZW50ZWRpdGFibGUnLCAnUExBSU5URVhULU9OTFknKTtcblxuICAvLyBJZiBwbGFpbnRleHQtb25seSBpcyBzdXBwb3J0ZWQsIHRoZSBhdHRyaWJ1dGUgdmFsdWUgaXNcbiAgLy8gcmV0dXJuZWQgYXMgbG93ZXItY2FzZSBmcm9tIHRoZSBwcm9wZXJ0eSBhY2Nlc3MuXG4gIHJldHVybiBkaXYuY29udGVudEVkaXRhYmxlID09PSAncGxhaW50ZXh0LW9ubHknO1xufTtcbmNvbnN0IHBsYWludGV4dE9ubHlTdXBwb3J0ZWQgPSBjaGVja1BsYWludGV4dE9ubHlTdXBwb3J0KCk7XG5cbi8qKlxuICogVGhlIFNiYkZvcm1Bc3NvY2lhdGVkSW5wdXRNaXhpbiBlbmFibGVzIG5hdGl2ZSBmb3JtIHN1cHBvcnQgZm9yIHRleHQgaW5wdXQgY29udHJvbHMuXG4gKi9cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbmV4cG9ydCBjb25zdCBTYmJGb3JtQXNzb2NpYXRlZElucHV0TWl4aW4gPSA8XG4gIFQgZXh0ZW5kcyBBYnN0cmFjdENvbnN0cnVjdG9yPFNiYkVsZW1lbnQ+ICYgU2JiRWxlbWVudENvbnN0cnVjdG9yLFxuPihcbiAgc3VwZXJDbGFzczogVCxcbik6IEFic3RyYWN0Q29uc3RydWN0b3I8U2JiRm9ybUFzc29jaWF0ZWRJbnB1dE1peGluVHlwZT4gJiBUID0+IHtcbiAgYWJzdHJhY3QgY2xhc3MgU2JiRm9ybUFzc29jaWF0ZWRJbnB1dEVsZW1lbnRcbiAgICBleHRlbmRzIFNiYlJlYWRvbmx5TWl4aW4oU2JiRGlzYWJsZWRNaXhpbihTYmJSZXF1aXJlZE1peGluKFNiYkZvcm1Bc3NvY2lhdGVkTWl4aW4oc3VwZXJDbGFzcykpKSlcbiAgICBpbXBsZW1lbnRzIFBhcnRpYWw8U2JiRm9ybUFzc29jaWF0ZWRJbnB1dE1peGluVHlwZT5cbiAge1xuICAgIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgcmVhZG9ubHkgcm9sZSA9ICd0ZXh0Ym94JztcbiAgICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IGZvcm1GaWVsZEFzc29jaWF0ZWQgPSB0cnVlO1xuXG4gICAgLyoqXG4gICAgICogQW4gZWxlbWVudCB3aXRoIGNvbnRlbnRlZGl0YWJsZSB3aWxsIG5vdCBlbWl0IGEgY2hhbmdlIGV2ZW50LiBUbyBhY2hpZXZlIHBhcml0eVxuICAgICAqIHdpdGggYSBuYXRpdmUgdGV4dCBpbnB1dCwgd2UgbmVlZCB0byB0cmFjayB3aGV0aGVyIGEgY2hhbmdlIGV2ZW50IHNob3VsZCBiZVxuICAgICAqIGVtaXR0ZWQuXG4gICAgICovXG4gICAgcHJpdmF0ZSBfc2hvdWxkRW1pdENoYW5nZSA9IGZhbHNlO1xuICAgIC8qKlxuICAgICAqIEEgbmF0aXZlIHRleHQgaW5wdXQgYXR0ZW1wdHMgdG8gc3VibWl0IHRoZSBmb3JtIHdoZW4gcHJlc3NpbmcgRW50ZXIuXG4gICAgICogVGhpcyBjYW4gYmUgcHJldmVudGVkIGJ5IGNhbGxpbmcgcHJldmVudERlZmF1bHQgb24gdGhlIGtleWRvd24gZXZlbnQuXG4gICAgICogV2UgdHJhY2sgd2hldGhlciB0byByZXF1ZXN0IHN1Ym1pdCwgd2hpY2ggc2hvdWxkIG9jY3VyIGJlZm9yZSB0aGUga2V5dXBcbiAgICAgKiBldmVudC5cbiAgICAgKi9cbiAgICBwcml2YXRlIF9zaG91bGRUcmlnZ2VyU3VibWl0ID0gZmFsc2U7XG5cbiAgICBwcm90ZWN0ZWQgbGFuZ3VhZ2UgPSBuZXcgU2JiTGFuZ3VhZ2VDb250cm9sbGVyKHRoaXMpO1xuXG4gICAgLyoqXG4gICAgICogRm9ybSB0eXBlIG9mIGVsZW1lbnQuXG4gICAgICogQGRlZmF1bHQgJ3RleHQnXG4gICAgICovXG4gICAgcHVibGljIG92ZXJyaWRlIGdldCB0eXBlKCk6IHN0cmluZyB7XG4gICAgICByZXR1cm4gJ3RleHQnO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSB2YWx1ZSBvZiB0aGUgaW5wdXQuIFJlZmxlY3RzIHRoZSBjdXJyZW50IHRleHQgdmFsdWUgb2YgdGhpcyBpbnB1dC5cbiAgICAgKi9cbiAgICBAcHJvcGVydHkoKVxuICAgIHB1YmxpYyBzZXQgdmFsdWUodmFsdWU6IHN0cmluZykge1xuICAgICAgdGhpcy5fdmFsdWUgPSB0aGlzLl9jbGVhblRleHQodmFsdWUpO1xuICAgICAgaWYgKHRoaXMuaGFzVXBkYXRlZCkge1xuICAgICAgICB0aGlzLl9hc3NpZ25WYWx1ZSh0aGlzLl92YWx1ZSk7XG4gICAgICB9XG4gICAgICAvKiogQGludGVybmFsICovXG4gICAgICB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCdkaXNwbGF5dmFsdWVjaGFuZ2UnLCB7IGJ1YmJsZXM6IHRydWUsIGNvbXBvc2VkOiB0cnVlIH0pKTtcbiAgICB9XG4gICAgcHVibGljIGdldCB2YWx1ZSgpOiBzdHJpbmcge1xuICAgICAgcmV0dXJuIHRoaXMuX3ZhbHVlID8/ICcnO1xuICAgIH1cbiAgICBwcml2YXRlIF92YWx1ZTogc3RyaW5nID0gJyc7XG5cbiAgICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6IGZhbHNlIH0pXG4gICAgcHVibGljIHNldCBwbGFjZWhvbGRlcih2YWx1ZTogc3RyaW5nKSB7XG4gICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgdGhpcy5zZXRBdHRyaWJ1dGUoJ3BsYWNlaG9sZGVyJywgdmFsdWUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5yZW1vdmVBdHRyaWJ1dGUoJ3BsYWNlaG9sZGVyJyk7XG4gICAgICB9XG4gICAgICB0aGlzLmludGVybmFscy5hcmlhUGxhY2Vob2xkZXIgPSB2YWx1ZSA/IHZhbHVlIDogbnVsbDtcbiAgICB9XG4gICAgcHVibGljIGdldCBwbGFjZWhvbGRlcigpOiBzdHJpbmcge1xuICAgICAgcmV0dXJuIHRoaXMuZ2V0QXR0cmlidXRlKCdwbGFjZWhvbGRlcicpID8/ICcnO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBjb25zdHJ1Y3RvcigpIHtcbiAgICAgIHN1cGVyKCk7XG4gICAgICAvLyBXZSBwcmltYXJpbHkgdXNlIGNhcHR1cmUgZXZlbnQgbGlzdGVuZXJzLCBhcyB3ZSB3YW50XG4gICAgICAvLyBvdXIgbGlzdGVuZXJzIHRvIG9jY3VyIGJlZm9yZSBjb25zdW1lciBldmVudCBsaXN0ZW5lcnMuXG4gICAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/LihcbiAgICAgICAgJ2lucHV0JyxcbiAgICAgICAgKCkgPT4ge1xuICAgICAgICAgIGNvbnN0IG9sZFZhbHVlID0gdGhpcy5fdmFsdWU7XG4gICAgICAgICAgdGhpcy5fdmFsdWUgPSB0aGlzLl9jbGVhblRleHQodGhpcy50ZXh0Q29udGVudCA/PyAnJyk7XG4gICAgICAgICAgdGhpcy5yZXF1ZXN0VXBkYXRlKCd2YWx1ZScsIG9sZFZhbHVlKTtcbiAgICAgICAgICB0aGlzLmludGVybmFscy5zdGF0ZXMuYWRkKCdpbnRlcmFjdGVkJyk7XG4gICAgICAgICAgdGhpcy5fc2hvdWxkRW1pdENoYW5nZSA9IHRydWU7XG4gICAgICAgIH0sXG4gICAgICAgIHsgY2FwdHVyZTogdHJ1ZSB9LFxuICAgICAgKTtcbiAgICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcj8uKCdjaGFuZ2UnLCAoKSA9PiAodGhpcy5fc2hvdWxkRW1pdENoYW5nZSA9IGZhbHNlKSwgeyBjYXB0dXJlOiB0cnVlIH0pO1xuICAgICAgdGhpcy5hZGRFdmVudExpc3RlbmVyPy4oXG4gICAgICAgICdrZXlkb3duJyxcbiAgICAgICAgKGV2ZW50KSA9PiB7XG4gICAgICAgICAgaWYgKHRoaXMuX3JlcXVpcmVzRW1wdHlQYXRjaCgpKSB7XG4gICAgICAgICAgICB0aGlzLl9hc3NpZ25WYWx1ZSgnJyk7XG4gICAgICAgICAgfVxuICAgICAgICAgIC8vIFdlIHByZXZlbnQgcmVjdXJzaXZlIGV2ZW50cyBieSBjaGVja2luZyB0aGUgb3JpZ2luYWwgZXZlbnQgZm9yIGlzVHJ1c3RlZFxuICAgICAgICAgIC8vIHdoaWNoIGlzIGZhbHNlIGZvciBtYW51YWxseSBkaXNwYXRjaGVkIGV2ZW50cyAod2hpY2ggd2UgZGlzcGF0Y2ggYmVsb3cpLlxuICAgICAgICAgIGlmICgoZXZlbnQua2V5ID09PSAnRW50ZXInIHx8IGV2ZW50LmtleSA9PT0gJ1xcbicpICYmIGV2ZW50LmlzVHJ1c3RlZCkge1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgdGhpcy5fc2hvdWxkVHJpZ2dlclN1Ym1pdCA9IHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgS2V5Ym9hcmRFdmVudCgna2V5ZG93bicsIGV2ZW50KSk7XG4gICAgICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgICAgIGlzV2Via2l0ICYmXG4gICAgICAgICAgICB0aGlzLnZhbHVlICYmXG4gICAgICAgICAgICAoZXZlbnQua2V5ID09PSAnQmFja3NwYWNlJyB8fCBldmVudC5rZXkgPT09ICdEZWxldGUnKSAmJlxuICAgICAgICAgICAgZXZlbnQuaXNUcnVzdGVkXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICAvLyBJbiBXZWJraXQgcHJlc3NpbmcgQmFja3NwYWNlIG9yIERlbGV0ZSBjb21wbGV0ZWx5IHJlbW92ZXMgYWxsIHRoZSBjb250ZW50XG4gICAgICAgICAgICAvLyBpZiBjb250ZW50ZWRpdGFibGUgaXMgc2V0IG9uIGEgd2ViIGNvbXBvbmVudCBob3N0LlxuICAgICAgICAgICAgLy8gV2UgaGF2ZSB0byByZXBsaWNhdGUgdGhlIG5vcm1hbCBkZWxldGUgYmVoYXZpb3IuXG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgZXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7XG5cbiAgICAgICAgICAgIGlmICghdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBLZXlib2FyZEV2ZW50KCdrZXlkb3duJywgZXZlbnQpKSkge1xuICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkUmFuZ2UgPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk/LmdldFJhbmdlQXQoMCk7XG4gICAgICAgICAgICBpZiAoIXNlbGVjdGVkUmFuZ2UpIHtcbiAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoc2VsZWN0ZWRSYW5nZS5zdGFydE9mZnNldCAhPT0gc2VsZWN0ZWRSYW5nZS5lbmRPZmZzZXQpIHtcbiAgICAgICAgICAgICAgLy8gSWYgYSB0ZXh0IHJhbmdlIGlzIHNlbGVjdGVkLCB0aGVuIGRlbGV0ZSB0aGlzIHJhbmdlXG4gICAgICAgICAgICAgIHNlbGVjdGVkUmFuZ2UuZGVsZXRlQ29udGVudHMoKTtcbiAgICAgICAgICAgICAgdGhpcy5fZGlzcGF0Y2hJbnB1dEV2ZW50KCk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGV2ZW50LmtleSA9PT0gJ0JhY2tzcGFjZScgJiYgc2VsZWN0ZWRSYW5nZS5zdGFydE9mZnNldCA+IDApIHtcbiAgICAgICAgICAgICAgLy8gV2hlbiBwcmVzc2luZyBCYWNrc3BhY2UsIHdlIHNlbGVjdCB0aGUgcHJldmlvdXMgY2hhcmFjdGVyIGZyb21cbiAgICAgICAgICAgICAgLy8gdGhlIGN1cnJlbnQgY3Vyc29yIHBvc2l0aW9uIGFuZCBkZWxldGUgaXQuXG4gICAgICAgICAgICAgIHNlbGVjdGVkUmFuZ2Uuc2V0U3RhcnQoc2VsZWN0ZWRSYW5nZS5zdGFydENvbnRhaW5lciwgc2VsZWN0ZWRSYW5nZS5zdGFydE9mZnNldCAtIDEpO1xuICAgICAgICAgICAgICBzZWxlY3RlZFJhbmdlLmRlbGV0ZUNvbnRlbnRzKCk7XG4gICAgICAgICAgICAgIHRoaXMuX2Rpc3BhdGNoSW5wdXRFdmVudCgpO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChldmVudC5rZXkgPT09ICdEZWxldGUnICYmIHNlbGVjdGVkUmFuZ2UuZW5kT2Zmc2V0IDwgdGhpcy52YWx1ZS5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgLy8gV2hlbiBwcmVzc2luZyBEZWxldGUsIHdlIHNlbGVjdCB0aGUgbmV4dCBjaGFyYWN0ZXIgZnJvbVxuICAgICAgICAgICAgICAvLyB0aGUgY3VycmVudCBjdXJzb3IgcG9zaXRpb24gYW5kIGRlbGV0ZSBpdC5cbiAgICAgICAgICAgICAgc2VsZWN0ZWRSYW5nZS5zZXRFbmQoc2VsZWN0ZWRSYW5nZS5lbmRDb250YWluZXIsIHNlbGVjdGVkUmFuZ2UuZW5kT2Zmc2V0ICsgMSk7XG4gICAgICAgICAgICAgIHNlbGVjdGVkUmFuZ2UuZGVsZXRlQ29udGVudHMoKTtcbiAgICAgICAgICAgICAgdGhpcy5fZGlzcGF0Y2hJbnB1dEV2ZW50KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICB7IGNhcHR1cmU6IHRydWUgfSxcbiAgICAgICk7XG4gICAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/LihcbiAgICAgICAgJ2tleXVwJyxcbiAgICAgICAgKGV2ZW50KSA9PiB7XG4gICAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gJ0VudGVyJyB8fCBldmVudC5rZXkgPT09ICdcXG4nKSB7XG4gICAgICAgICAgICB0aGlzLl9lbWl0Q2hhbmdlSWZOZWNlc3NhcnkoKTtcbiAgICAgICAgICAgIGlmICh0aGlzLl9zaG91bGRUcmlnZ2VyU3VibWl0KSB7XG4gICAgICAgICAgICAgIHRoaXMuX3Nob3VsZFRyaWdnZXJTdWJtaXQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgdGhpcy5mb3JtPy5yZXF1ZXN0U3VibWl0KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIGlmICh0aGlzLl9yZXF1aXJlc0VtcHR5UGF0Y2goKSkge1xuICAgICAgICAgICAgdGhpcy5fc2V0Q3Vyc29yQXQoMCk7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICB7IGNhcHR1cmU6IHRydWUgfSxcbiAgICAgICk7XG4gICAgICAvLyBjb250ZW50ZWRpdGFibGUgYWxsb3dzIHBhc3RpbmcgcmljaCBjb250ZW50IGludG8gaXRzIGhvc3QuXG4gICAgICAvLyBXZSBwcmV2ZW50IHRoaXMgYnkgbGlzdGVuaW5nIHRvIHRoZSBwYXN0ZSBldmVudCBhbmRcbiAgICAgIC8vIGV4dHJhY3RpbmcgdGhlIHBsYWluIHRleHQgZnJvbSB0aGUgcGFzdGVkIGNvbnRlbnRcbiAgICAgIC8vIGFuZCBpbnNlcnRpbmcgaXQgaW50byB0aGUgc2VsZWN0ZWQgcmFuZ2UgKGN1cnNvciBwb3NpdGlvblxuICAgICAgLy8gb3Igc2VsZWN0aW9uKS5cbiAgICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcj8uKCdwYXN0ZScsIChlKSA9PiB7XG4gICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgaWYgKHRoaXMuX3JlcXVpcmVzRW1wdHlQYXRjaCgpKSB7XG4gICAgICAgICAgdGhpcy5fYXNzaWduVmFsdWUoJycpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgdGV4dCA9IHRoaXMuX2NsZWFuVGV4dChlLmNsaXBib2FyZERhdGE/LmdldERhdGEoJ3RleHQvcGxhaW4nKSA/PyAnJyk7XG4gICAgICAgIGNvbnN0IHNlbGVjdGVkUmFuZ2UgPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk/LmdldFJhbmdlQXQoMCk7XG4gICAgICAgIGlmICghc2VsZWN0ZWRSYW5nZSB8fCAhdGV4dCkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHNlbGVjdGVkUmFuZ2UuZGVsZXRlQ29udGVudHMoKTtcbiAgICAgICAgc2VsZWN0ZWRSYW5nZS5pbnNlcnROb2RlKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHRoaXMucHJlcGFyZVBhc3RlZFRleHQodGV4dCkpKTtcbiAgICAgICAgc2VsZWN0ZWRSYW5nZS5zZXRTdGFydChzZWxlY3RlZFJhbmdlLmVuZENvbnRhaW5lciwgc2VsZWN0ZWRSYW5nZS5lbmRPZmZzZXQpO1xuICAgICAgICB0aGlzLl9kaXNwYXRjaElucHV0RXZlbnQoKTtcbiAgICAgIH0pO1xuICAgICAgLy8gV2hlbiBmb2N1c2luZyBhIHRleHQgaW5wdXQgdmlhIGtleWJvYXJkLCB0aGUgdGV4dCBjb250ZW50IHNob3VsZCBiZSBzZWxlY3RlZC5cbiAgICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcj8uKCdmb2N1cycsICgpID0+IHtcbiAgICAgICAgaWYgKHNiYklucHV0TW9kYWxpdHlEZXRlY3Rvci5tb3N0UmVjZW50TW9kYWxpdHkgPT09ICdrZXlib2FyZCcpIHtcbiAgICAgICAgICAvLyBUT0RPOiBUaGlzIGRvZXMgbm90IHNlZW0gdG8gd29yayBpbiBGaXJlZm94IHdpdGggcmVhZG9ubHkuXG4gICAgICAgICAgd2luZG93LmdldFNlbGVjdGlvbigpPy5zZWxlY3RBbGxDaGlsZHJlbih0aGlzKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/LigndG91Y2hlbmQnLCAoKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLl9yZXF1aXJlc0VtcHR5UGF0Y2goKSkge1xuICAgICAgICAgIHRoaXMuX2Fzc2lnblZhbHVlKCcmbmJzcDsnKTtcbiAgICAgICAgICB0aGlzLl9zZXRDdXJzb3JBdCgwKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/LignY2xpY2snLCAoKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLl9yZXF1aXJlc0VtcHR5UGF0Y2goKSAmJiBzYmJJbnB1dE1vZGFsaXR5RGV0ZWN0b3IubW9zdFJlY2VudE1vZGFsaXR5ID09PSAndG91Y2gnKSB7XG4gICAgICAgICAgdGhpcy5fc2V0Q3Vyc29yQXQoMCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgICAvLyBPbiBibHVyIHRoZSBuYXRpdmUgdGV4dCBpbnB1dCBzY3JvbGxzIHRoZSB0ZXh0IHRvIHRoZSBzdGFydCBvZiB0aGUgdGV4dC5cbiAgICAgIC8vIFdlIG1pbWljIHRoYXQgYnkgcmVzZXR0aW5nIHRoZSBzY3JvbGwgcG9zaXRpb24uXG4gICAgICAvLyBXZSBhbHNvIHVuc2V0IGFueSBzZWxlY3Rpb24gdG8gYWxpZ24gd2l0aCB0aGUgbmF0aXZlIHRleHQgaW5wdXQuXG4gICAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/LihcbiAgICAgICAgJ2JsdXInLFxuICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgd2luZG93LmdldFNlbGVjdGlvbigpPy5yZW1vdmVBbGxSYW5nZXMoKTtcbiAgICAgICAgICBpZiAodGhpcy52YWx1ZSA9PT0gJycpIHtcbiAgICAgICAgICAgIHRoaXMuX2Fzc2lnblZhbHVlKCcnKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5fZW1pdENoYW5nZUlmTmVjZXNzYXJ5KCk7XG4gICAgICAgICAgdGhpcy5zY3JvbGxMZWZ0ID0gMDtcbiAgICAgICAgfSxcbiAgICAgICAgeyBjYXB0dXJlOiB0cnVlIH0sXG4gICAgICApO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBvdmVycmlkZSBpc0Rpc2FibGVkRXh0ZXJuYWxseSgpOiBib29sZWFuIHtcbiAgICAgIHJldHVybiB0aGlzLmZvcm1EaXNhYmxlZDtcbiAgICB9XG5cbiAgICBwdWJsaWMgb3ZlcnJpZGUgY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG4gICAgICBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpO1xuICAgICAgdGhpcy5pbnRlcm5hbHMuYXJpYU11bHRpTGluZSA9ICdmYWxzZSc7XG4gICAgICB0aGlzLl91cGRhdGVDb250ZW50ZWRpdGFibGUoKTtcblxuICAgICAgLy8gV2Ugd2FudCB0byByZXBsYWNlIGFueSBjb250ZW50IGJ5IGp1c3QgdGhlIHRleHQgY29udGVudC5cbiAgICAgIHRoaXMuX2Fzc2lnblZhbHVlKHRoaXMudmFsdWUpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvdmVycmlkZSBmb2N1cyhvcHRpb25zPzogRm9jdXNPcHRpb25zKTogdm9pZCB7XG4gICAgICBzdXBlci5mb2N1cyhvcHRpb25zKTtcbiAgICAgIC8vIEJ5IGRlZmF1bHQsIHdoZW4gY2FsbGluZyBmb2N1cyBvbiBhbiBpbnB1dCBlbGVtZW50LCB0aGUgY3Vyc29yIGlzIHBsYWNlZFxuICAgICAgLy8gYXQgdGhlIGVuZCBvZiB0aGUgaW5wdXQgdGV4dC4gSG93ZXZlciwgd2l0aCBjb250ZW50ZWRpdGFibGUsIHRoZSBjdXJzb3JcbiAgICAgIC8vIGlzIHBsYWNlZCBhdCB0aGUgYmVnaW5uaW5nLCBzbyB3ZSBtb3ZlIGl0IHRvIHRoZSBlbmQsIGlmIHRoYXQgaXMgdGhlIGNhc2UuXG4gICAgICBpZiAodGhpcy5fY2FuU2VsZWN0KCkpIHtcbiAgICAgICAgY29uc3Qgc2VsZWN0aW9uID0gd2luZG93LmdldFNlbGVjdGlvbigpO1xuICAgICAgICBpZiAoIXNlbGVjdGlvbikge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCByYW5nZSA9IHNlbGVjdGlvbi5yYW5nZUNvdW50ID4gMCA/IHNlbGVjdGlvbi5nZXRSYW5nZUF0KDApIDogbnVsbDtcbiAgICAgICAgaWYgKHJhbmdlICYmIHJhbmdlLnN0YXJ0T2Zmc2V0ICE9PSAwKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fc2V0Q3Vyc29yQXQodGhpcy50ZXh0Q29udGVudCEubGVuZ3RoKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgb3ZlcnJpZGUgYXR0cmlidXRlQ2hhbmdlZENhbGxiYWNrKFxuICAgICAgbmFtZTogc3RyaW5nLFxuICAgICAgb2xkOiBzdHJpbmcgfCBudWxsLFxuICAgICAgdmFsdWU6IHN0cmluZyB8IG51bGwsXG4gICAgKTogdm9pZCB7XG4gICAgICAvKipcbiAgICAgICAqIFRoZSBuYXRpdmUgdGV4dCBpbnB1dCBjaGFuZ2VzIHRoZSB2YWx1ZSBwcm9wZXJ0eSB3aGVuIHRoZSB2YWx1ZSBhdHRyaWJ1dGUgaXNcbiAgICAgICAqIGNoYW5nZWQgdW5kZXIgdGhlIGNvbmRpdGlvbiB0aGF0IG5vIGlucHV0IGV2ZW50IGhhcyBvY2N1cnJlZCBzaW5jZSBjcmVhdGlvblxuICAgICAgICogb3IgdGhlIGxhc3QgZm9ybSByZXNldC5cbiAgICAgICAqL1xuICAgICAgaWYgKG5hbWUgIT09ICd2YWx1ZScgfHwgIXRoaXMuaW50ZXJuYWxzLnN0YXRlcy5oYXMoJ2ludGVyYWN0ZWQnKSkge1xuICAgICAgICBzdXBlci5hdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2sobmFtZSwgb2xkLCB2YWx1ZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSXMgY2FsbGVkIHdoZW5ldmVyIHRoZSBmb3JtIGlzIGJlaW5nIHJlc2V0LlxuICAgICAqXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgcHVibGljIG92ZXJyaWRlIGZvcm1SZXNldENhbGxiYWNrKCk6IHZvaWQge1xuICAgICAgdGhpcy5pbnRlcm5hbHMuc3RhdGVzLmRlbGV0ZSgnaW50ZXJhY3RlZCcpO1xuICAgICAgdGhpcy52YWx1ZSA9IHRoaXMuZ2V0QXR0cmlidXRlKCd2YWx1ZScpID8/ICcnO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqICBDYWxsZWQgd2hlbiB0aGUgYnJvd3NlciBpcyB0cnlpbmcgdG8gcmVzdG9yZSBlbGVtZW504oCZcyBzdGF0ZSB0byBzdGF0ZSBpbiB3aGljaCBjYXNlXG4gICAgICogIHJlYXNvbiBpcyBcInJlc3RvcmVcIiwgb3Igd2hlbiB0aGUgYnJvd3NlciBpcyB0cnlpbmcgdG8gZnVsZmlsbCBhdXRvZmlsbCBvbiBiZWhhbGYgb2ZcbiAgICAgKiAgdXNlciBpbiB3aGljaCBjYXNlIHJlYXNvbiBpcyBcImF1dG9jb21wbGV0ZVwiLlxuICAgICAqICBJbiB0aGUgY2FzZSBvZiBcInJlc3RvcmVcIiwgc3RhdGUgaXMgYSBzdHJpbmcsIEZpbGUsIG9yIEZvcm1EYXRhIG9iamVjdFxuICAgICAqICBwcmV2aW91c2x5IHNldCBhcyB0aGUgc2Vjb25kIGFyZ3VtZW50IHRvIHNldEZvcm1WYWx1ZS5cbiAgICAgKlxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHB1YmxpYyBvdmVycmlkZSBmb3JtU3RhdGVSZXN0b3JlQ2FsbGJhY2soXG4gICAgICBzdGF0ZTogRm9ybVJlc3RvcmVTdGF0ZSB8IG51bGwsXG4gICAgICBfcmVhc29uOiBGb3JtUmVzdG9yZVJlYXNvbixcbiAgICApOiB2b2lkIHtcbiAgICAgIGlmIChzdGF0ZSAmJiB0eXBlb2Ygc3RhdGUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHRoaXMudmFsdWUgPSBzdGF0ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBNYWtlcyB0aGUgc2VsZWN0aW9uIGVxdWFsIHRvIHRoZSBjdXJyZW50IG9iamVjdC5cbiAgICAgKlxuICAgICAqIEBsaW5rIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2RvY3MvV2ViL0FQSS9IVE1MSW5wdXRFbGVtZW50L3NlbGVjdFxuICAgICAqL1xuICAgIHB1YmxpYyBzZWxlY3QoKTogdm9pZCB7XG4gICAgICB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk/LnNlbGVjdEFsbENoaWxkcmVuKHRoaXMpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBvdmVycmlkZSBmaXJzdFVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXM6IFByb3BlcnR5VmFsdWVzPHRoaXM+KTogdm9pZCB7XG4gICAgICBzdXBlci5maXJzdFVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXMpO1xuXG4gICAgICAvLyBJZiB0aGUgdmFsdWUgd2FzIGFzc2lnbmVkIGJlZm9yZSBmaXJzdFVwZGF0ZSwgd2UgaGF2ZSB0b1xuICAgICAgLy8gd3JpdGUgaXQgdGhlIGRvY3VtZW50IHRvIGJlIHZpc3VhbGx5IHNlZW5cbiAgICAgIGlmICh0aGlzLnZhbHVlICYmICF0aGlzLmlubmVySFRNTC5sZW5ndGgpIHtcbiAgICAgICAgdGhpcy5fYXNzaWduVmFsdWUodGhpcy52YWx1ZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIG92ZXJyaWRlIHJlcXVlc3RVcGRhdGUoXG4gICAgICBuYW1lPzogUHJvcGVydHlLZXksXG4gICAgICBvbGRWYWx1ZT86IHVua25vd24sXG4gICAgICBvcHRpb25zPzogUHJvcGVydHlEZWNsYXJhdGlvbixcbiAgICApOiB2b2lkIHtcbiAgICAgIHN1cGVyLnJlcXVlc3RVcGRhdGUobmFtZSwgb2xkVmFsdWUsIG9wdGlvbnMpO1xuICAgICAgaWYgKFxuICAgICAgICB0aGlzLmlzQ29ubmVjdGVkICYmXG4gICAgICAgIChuYW1lID09PSAnZGlzYWJsZWQnIHx8IG5hbWUgPT09ICdmb3JtRGlzYWJsZWQnIHx8IG5hbWUgPT09ICdyZWFkT25seScpXG4gICAgICApIHtcbiAgICAgICAgdGhpcy5fdXBkYXRlQ29udGVudGVkaXRhYmxlKCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIHNob3VsZFZhbGlkYXRlKG5hbWU6IFByb3BlcnR5S2V5IHwgdW5kZWZpbmVkKTogYm9vbGVhbiB7XG4gICAgICByZXR1cm4gc3VwZXIuc2hvdWxkVmFsaWRhdGUobmFtZSkgfHwgbmFtZSA9PT0gJ3ZhbHVlJyB8fCBuYW1lID09PSAncmVxdWlyZWQnO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBvdmVycmlkZSB2YWxpZGF0ZSgpOiB2b2lkIHtcbiAgICAgIHN1cGVyLnZhbGlkYXRlKCk7XG4gICAgICBpZiAodGhpcy5yZXF1aXJlZCAmJiAhdGhpcy52YWx1ZSkge1xuICAgICAgICB0aGlzLnNldFZhbGlkaXR5RmxhZygndmFsdWVNaXNzaW5nJywgaTE4bklucHV0UmVxdWlyZWRbdGhpcy5sYW5ndWFnZS5jdXJyZW50XSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnJlbW92ZVZhbGlkaXR5RmxhZygndmFsdWVNaXNzaW5nJyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHByZXBhcmVQYXN0ZWRUZXh0KHRleHQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICByZXR1cm4gdGV4dDtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9yZXF1aXJlc0VtcHR5UGF0Y2goKTogYm9vbGVhbiB7XG4gICAgICAvLyBJbiBCbGluaywgYSBjb250ZW50ZWRpdGFibGUgZWxlbWVudCB3aXRoIGVtcHR5IGNvbnRlbnQgd2lsbCBjcmFzaFxuICAgICAgLy8gdXBvbiByZWNlaXZpbmcgZm9jdXMsIHdoZW4gaW4gTW9iaWxlIG1vZGUuXG4gICAgICAvLyBUbyBwcmV2ZW50IHRoaXMsIHdlIHBhdGNoIHRoZSBlbXB0eSBzdGF0ZSBieSBpbnNlcnRpbmcgYSBub24tYnJlYWtpbmcgc3BhY2UuXG4gICAgICByZXR1cm4gaXNTZXJ2ZXJcbiAgICAgICAgPyBmYWxzZVxuICAgICAgICA6IGlzQmxpbmsgJiYgdGhpcy52YWx1ZSA9PT0gJycgJiYgd2luZG93Lm1hdGNoTWVkaWEoU2JiTWVkaWFRdWVyeVBvaW50ZXJDb2Fyc2UpLm1hdGNoZXM7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfYXNzaWduVmFsdWUodmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgdGhpcy5pbm5lckhUTUwgPSB2YWx1ZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9zZXRDdXJzb3JBdChwb3NpdGlvbjogbnVtYmVyKTogdm9pZCB7XG4gICAgICBjb25zdCBzZWxlY3Rpb24gPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk7XG4gICAgICBpZiAoIXNlbGVjdGlvbikge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHJhbmdlID0gZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKTtcbiAgICAgIHJhbmdlLnNldFN0YXJ0KHRoaXMuZmlyc3RDaGlsZCEsIHBvc2l0aW9uKTtcbiAgICAgIHJhbmdlLmNvbGxhcHNlKHRydWUpO1xuICAgICAgc2VsZWN0aW9uLnJlbW92ZUFsbFJhbmdlcygpO1xuICAgICAgc2VsZWN0aW9uLmFkZFJhbmdlKHJhbmdlKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9jbGVhblRleHQodmFsdWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAvLyBUaGUgbmF0aXZlIHRleHQgaW5wdXQgcmVtb3ZlcyBhbGwgbmV3bGluZSBjaGFyYWN0ZXJzIGlmIHBhc3NlZCB0byB0aGUgdmFsdWUgcHJvcGVydHlcbiAgICAgIHJldHVybiB2YWx1ZSA9PT0gbnVsbCA/ICcnIDogYCR7dmFsdWV9YC5yZXBsYWNlKC9bXFxuXFxyXSsvZywgJycpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2Rpc3BhdGNoSW5wdXRFdmVudCgpOiB2b2lkIHtcbiAgICAgIC8qKiBUaGUgaW5wdXQgZXZlbnQgZmlyZXMgd2hlbiB0aGUgdmFsdWUgaGFzIGJlZW4gY2hhbmdlZCBhcyBhIGRpcmVjdCByZXN1bHQgb2YgYSB1c2VyIGFjdGlvbi4gKi9cbiAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgSW5wdXRFdmVudCgnaW5wdXQnLCB7IGJ1YmJsZXM6IHRydWUsIGNvbXBvc2VkOiB0cnVlIH0pKTtcbiAgICB9XG5cbiAgICBAZXZlbnRPcHRpb25zKHsgcGFzc2l2ZTogdHJ1ZSB9KVxuICAgIHByaXZhdGUgX2NsZWFuQ2hpbGRyZW4oKTogdm9pZCB7XG4gICAgICBpZiAodGhpcy5jaGlsZEVsZW1lbnRDb3VudCkge1xuICAgICAgICBmb3IgKGNvbnN0IGVsZW1lbnQgb2YgdGhpcy5jaGlsZHJlbikge1xuICAgICAgICAgIGVsZW1lbnQucmVtb3ZlKCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIF91cGRhdGVDb250ZW50ZWRpdGFibGUoKTogdm9pZCB7XG4gICAgICBpZiAoIWlzU2VydmVyICYmIHRoaXMuaXNDb25uZWN0ZWQpIHtcbiAgICAgICAgdGhpcy5pbnRlcm5hbHMuYXJpYVJlYWRPbmx5ID0gdGhpcy5yZWFkT25seSA/ICd0cnVlJyA6IG51bGw7XG4gICAgICAgIHRoaXMuaW50ZXJuYWxzLmFyaWFEaXNhYmxlZCA9IHRoaXMuZGlzYWJsZWQgPyAndHJ1ZScgOiBudWxsO1xuICAgICAgICAvLyBUT0RPKDIwMjYpOiBGaXJlZm94IHN1cHBvcnRzIHBsYWludGV4dC1vbmx5IHNpbmNlIHZlcnNpb24gMTM2IChNYXJjaCAyMDI1KS5cbiAgICAgICAgLy8gVW50aWwgdGhpcyBpcyBwYXJ0IG9mIG91ciBiYXNlbGluZSwgd2Ugc2hvdWxkIGZlYXR1cmUgY2hlY2sgdG8gZW5hYmxlIGl0LlxuICAgICAgICBjb25zdCB2YWx1ZSA9XG4gICAgICAgICAgdGhpcy5kaXNhYmxlZCB8fCB0aGlzLnJlYWRPbmx5XG4gICAgICAgICAgICA/ICdmYWxzZSdcbiAgICAgICAgICAgIDogcGxhaW50ZXh0T25seVN1cHBvcnRlZFxuICAgICAgICAgICAgICA/ICdwbGFpbnRleHQtb25seSdcbiAgICAgICAgICAgICAgOiAndHJ1ZSc7XG4gICAgICAgIHRoaXMuc2V0QXR0cmlidXRlKCdjb250ZW50ZWRpdGFibGUnLCB2YWx1ZSk7XG4gICAgICAgIC8vIEluIHRoZSByZWFkb25seSBjYXNlLCB3ZSBkaXNhYmxlIGNvbnRlbnRlZGl0YWJsZSwgYnV0IGl0IHN0aWxsXG4gICAgICAgIC8vIG5lZWRzIHRvIGJlIGZvY3VzYWJsZS4gV2UgYWNoaWV2ZSB0aGlzIGJ5IHNldHRpbmcgdGFiaW5kZXggaW4gdGhhdCBjYXNlLlxuICAgICAgICBpZiAodGhpcy5yZWFkT25seSkge1xuICAgICAgICAgIHRoaXMuc2V0QXR0cmlidXRlKCd0YWJpbmRleCcsICcwJyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5yZW1vdmVBdHRyaWJ1dGUoJ3RhYmluZGV4Jyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIF9lbWl0Q2hhbmdlSWZOZWNlc3NhcnkoKTogdm9pZCB7XG4gICAgICBpZiAodGhpcy5fc2hvdWxkRW1pdENoYW5nZSkge1xuICAgICAgICB0aGlzLl9zaG91bGRFbWl0Q2hhbmdlID0gZmFsc2U7XG4gICAgICAgIC8qKiBUaGUgY2hhbmdlIGV2ZW50IGlzIGZpcmVkIHdoZW4gdGhlIHVzZXIgbW9kaWZpZXMgdGhlIGVsZW1lbnQncyB2YWx1ZS4gVW5saWtlIHRoZSBpbnB1dCBldmVudCwgdGhlIGNoYW5nZSBldmVudCBpcyBub3QgbmVjZXNzYXJpbHkgZmlyZWQgZm9yIGVhY2ggYWx0ZXJhdGlvbiB0byBhbiBlbGVtZW50J3MgdmFsdWUuICovXG4gICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ2NoYW5nZScsIHsgYnViYmxlczogdHJ1ZSB9KSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfY2FuU2VsZWN0KCk6IGJvb2xlYW4ge1xuICAgICAgcmV0dXJuICFpc1NlcnZlciAmJiAhdGhpcy5kaXNhYmxlZCAmJiAhdGhpcy5yZWFkT25seSAmJiAhIXRoaXMudmFsdWU7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlbmRlcigpOiB1bmtub3duIHtcbiAgICAgIHJldHVybiBodG1sYDxzbG90IEBzbG90Y2hhbmdlPSR7dGhpcy5fY2xlYW5DaGlsZHJlbn0+PC9zbG90PmA7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIFNiYkZvcm1Bc3NvY2lhdGVkSW5wdXRFbGVtZW50IGFzIHVua25vd24gYXMgQWJzdHJhY3RDb25zdHJ1Y3RvcjxTYmJGb3JtQXNzb2NpYXRlZElucHV0TWl4aW5UeXBlPiAmXG4gICAgVDtcbn07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFtREEsSUFBTSxrQ0FBMEM7QUFDOUMsS0FBSSxTQUNGLFFBQU87Q0FHVCxNQUFNLE1BQU0sU0FBUyxjQUFjLE1BQU07QUFDekMsS0FBSSxhQUFhLG1CQUFtQixpQkFBaUI7QUFJckQsUUFBTyxJQUFJLG9CQUFvQjs7QUFFakMsSUFBTSx5QkFBeUIsMkJBQTJCOzs7O0FBTTFELElBQWEsK0JBR1gsZUFDNEQ7QUErWjVELGVBOVo0QztvQkFDbEMsaUJBQWlCLGlCQUFpQixpQkFBaUIsdUJBQXVCLFdBQVcsQ0FBQyxDQUFDLENBQUM7Ozs7O2VBRG5GLHNDQUNMLFlBQXdGOzs7NkJBaUMvRixVQUFVLENBQUE7bUNBY1YsU0FBUyxFQUFFLFdBQVcsT0FBTyxDQUFDLENBQUE7a0NBNlQ5QixhQUFhLEVBQUUsU0FBUyxNQUFNLENBQUMsQ0FBQTtBQTFVaEMsaUJBQUEsTUFBQSxNQUFBLHVCQUFBO0tBQUEsTUFBQTtLQUFBLE1BQUE7S0FBQSxRQUFBO0tBQUEsU0FBQTtLQUFBLFFBQUE7TUFBQSxNQUFBLFFBQUEsV0FBQTtNQUFBLE1BQUEsS0FBQSxVQUFBO0FBQUEsV0FBVyxRQUFLOztNQUFBO0tBQUEsVUFBQTtLQUFBLEVBQUEsTUFBQSwyQkFBQTtBQWNoQixpQkFBQSxNQUFBLE1BQUEsNkJBQUE7S0FBQSxNQUFBO0tBQUEsTUFBQTtLQUFBLFFBQUE7S0FBQSxTQUFBO0tBQUEsUUFBQTtNQUFBLE1BQUEsUUFBQSxpQkFBQTtNQUFBLE1BQUEsS0FBQSxVQUFBO0FBQUEsV0FBVyxjQUFXOztNQUFBO0tBQUEsVUFBQTtLQUFBLEVBQUEsTUFBQSwyQkFBQTtBQTZUdEIsaUJBQUEs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
339
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1hc3NvY2lhdGVkLWlucHV0LW1peGluLmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jb3JlL21peGlucy9mb3JtLWFzc29jaWF0ZWQtaW5wdXQtbWl4aW4udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaHRtbCwgaXNTZXJ2ZXIsIHR5cGUgUHJvcGVydHlEZWNsYXJhdGlvbiwgdHlwZSBQcm9wZXJ0eVZhbHVlcyB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBldmVudE9wdGlvbnMsIHByb3BlcnR5IH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuXG5pbXBvcnQgeyBzYmJJbnB1dE1vZGFsaXR5RGV0ZWN0b3IgfSBmcm9tICcuLi9hMTF5L2lucHV0LW1vZGFsaXR5LWRldGVjdG9yLnRzJztcbmltcG9ydCB0eXBlIHsgU2JiRWxlbWVudCwgU2JiRWxlbWVudENvbnN0cnVjdG9yIH0gZnJvbSAnLi4vYmFzZS1lbGVtZW50cy9lbGVtZW50LnRzJztcbmltcG9ydCB7IFNiYkxhbmd1YWdlQ29udHJvbGxlciB9IGZyb20gJy4uL2NvbnRyb2xsZXJzL2xhbmd1YWdlLWNvbnRyb2xsZXIudHMnO1xuaW1wb3J0IHsgU2JiTWVkaWFRdWVyeVBvaW50ZXJDb2Fyc2UgfSBmcm9tICcuLi9jb250cm9sbGVycy9tZWRpYS1tYXRjaGVycy1jb250cm9sbGVyLnRzJztcbmltcG9ydCB7IGlzQmxpbmssIGlzV2Via2l0IH0gZnJvbSAnLi4vZG9tL3BsYXRmb3JtLnRzJztcbmltcG9ydCB7IGkxOG5JbnB1dFJlcXVpcmVkIH0gZnJvbSAnLi4vaTE4bi9pMThuLnRzJztcblxuaW1wb3J0IHR5cGUgeyBBYnN0cmFjdENvbnN0cnVjdG9yIH0gZnJvbSAnLi9jb25zdHJ1Y3Rvci50cyc7XG5pbXBvcnQgeyBTYmJEaXNhYmxlZE1peGluIH0gZnJvbSAnLi9kaXNhYmxlZC1taXhpbi50cyc7XG5pbXBvcnQge1xuICB0eXBlIEZvcm1SZXN0b3JlUmVhc29uLFxuICB0eXBlIEZvcm1SZXN0b3JlU3RhdGUsXG4gIFNiYkZvcm1Bc3NvY2lhdGVkTWl4aW4sXG59IGZyb20gJy4vZm9ybS1hc3NvY2lhdGVkLW1peGluLnRzJztcbmltcG9ydCB7IFNiYlJlYWRvbmx5TWl4aW4gfSBmcm9tICcuL3JlYWRvbmx5LW1peGluLnRzJztcbmltcG9ydCB7IFNiYlJlcXVpcmVkTWl4aW4gfSBmcm9tICcuL3JlcXVpcmVkLW1peGluLnRzJztcblxuZXhwb3J0IGRlY2xhcmUgYWJzdHJhY3QgY2xhc3MgU2JiRm9ybUFzc29jaWF0ZWRJbnB1dE1peGluVHlwZSBleHRlbmRzIFNiYlJlcXVpcmVkTWl4aW4oXG4gIFNiYkZvcm1Bc3NvY2lhdGVkTWl4aW4oU2JiRWxlbWVudCksXG4pIHtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBmb3JtRmllbGRBc3NvY2lhdGVkID0gdHJ1ZTtcblxuICBwdWJsaWMgc2V0IHZhbHVlKHZhbHVlOiBzdHJpbmcpO1xuICBwdWJsaWMgZ2V0IHZhbHVlKCk6IHN0cmluZztcblxuICBwdWJsaWMgc2V0IGRpc2FibGVkKHZhbHVlOiBib29sZWFuKTtcbiAgcHVibGljIGdldCBkaXNhYmxlZCgpOiBib29sZWFuO1xuXG4gIHB1YmxpYyBzZXQgcmVhZE9ubHkodmFsdWU6IGJvb2xlYW4pO1xuICBwdWJsaWMgZ2V0IHJlYWRPbmx5KCk6IGJvb2xlYW47XG5cbiAgcHVibGljIHNldCBwbGFjZWhvbGRlcih2YWx1ZTogc3RyaW5nKTtcbiAgcHVibGljIGdldCBwbGFjZWhvbGRlcigpOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE1ha2VzIHRoZSBzZWxlY3Rpb24gZXF1YWwgdG8gdGhlIGN1cnJlbnQgb2JqZWN0LlxuICAgKlxuICAgKiBbTUROIFJlZmVyZW5jZV0oaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZG9jcy9XZWIvQVBJL0hUTUxJbnB1dEVsZW1lbnQvc2VsZWN0KVxuICAgKi9cbiAgcHVibGljIHNlbGVjdCgpOiB2b2lkO1xuXG4gIHB1YmxpYyBmb3JtUmVzZXRDYWxsYmFjaygpOiB2b2lkO1xuICBwdWJsaWMgZm9ybVN0YXRlUmVzdG9yZUNhbGxiYWNrKHN0YXRlOiBGb3JtUmVzdG9yZVN0YXRlIHwgbnVsbCwgcmVhc29uOiBGb3JtUmVzdG9yZVJlYXNvbik6IHZvaWQ7XG5cbiAgcHJvdGVjdGVkIHByZXBhcmVQYXN0ZWRUZXh0KHRleHQ6IHN0cmluZyk6IHN0cmluZztcbiAgcHJvdGVjdGVkIGxhbmd1YWdlOiBTYmJMYW5ndWFnZUNvbnRyb2xsZXI7XG59XG5cbmNvbnN0IGNoZWNrUGxhaW50ZXh0T25seVN1cHBvcnQgPSAoKTogYm9vbGVhbiA9PiB7XG4gIGlmIChpc1NlcnZlcikge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGNvbnN0IGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICBkaXYuc2V0QXR0cmlidXRlKCdjb250ZW50ZWRpdGFibGUnLCAnUExBSU5URVhULU9OTFknKTtcblxuICAvLyBJZiBwbGFpbnRleHQtb25seSBpcyBzdXBwb3J0ZWQsIHRoZSBhdHRyaWJ1dGUgdmFsdWUgaXNcbiAgLy8gcmV0dXJuZWQgYXMgbG93ZXItY2FzZSBmcm9tIHRoZSBwcm9wZXJ0eSBhY2Nlc3MuXG4gIHJldHVybiBkaXYuY29udGVudEVkaXRhYmxlID09PSAncGxhaW50ZXh0LW9ubHknO1xufTtcbmNvbnN0IHBsYWludGV4dE9ubHlTdXBwb3J0ZWQgPSBjaGVja1BsYWludGV4dE9ubHlTdXBwb3J0KCk7XG5cbi8qKlxuICogVGhlIFNiYkZvcm1Bc3NvY2lhdGVkSW5wdXRNaXhpbiBlbmFibGVzIG5hdGl2ZSBmb3JtIHN1cHBvcnQgZm9yIHRleHQgaW5wdXQgY29udHJvbHMuXG4gKi9cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbmV4cG9ydCBjb25zdCBTYmJGb3JtQXNzb2NpYXRlZElucHV0TWl4aW4gPSA8XG4gIFQgZXh0ZW5kcyBBYnN0cmFjdENvbnN0cnVjdG9yPFNiYkVsZW1lbnQ+ICYgU2JiRWxlbWVudENvbnN0cnVjdG9yLFxuPihcbiAgc3VwZXJDbGFzczogVCxcbik6IEFic3RyYWN0Q29uc3RydWN0b3I8U2JiRm9ybUFzc29jaWF0ZWRJbnB1dE1peGluVHlwZT4gJiBUID0+IHtcbiAgYWJzdHJhY3QgY2xhc3MgU2JiRm9ybUFzc29jaWF0ZWRJbnB1dEVsZW1lbnRcbiAgICBleHRlbmRzIFNiYlJlYWRvbmx5TWl4aW4oU2JiRGlzYWJsZWRNaXhpbihTYmJSZXF1aXJlZE1peGluKFNiYkZvcm1Bc3NvY2lhdGVkTWl4aW4oc3VwZXJDbGFzcykpKSlcbiAgICBpbXBsZW1lbnRzIFBhcnRpYWw8U2JiRm9ybUFzc29jaWF0ZWRJbnB1dE1peGluVHlwZT5cbiAge1xuICAgIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgcmVhZG9ubHkgcm9sZSA9ICd0ZXh0Ym94JztcbiAgICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IGZvcm1GaWVsZEFzc29jaWF0ZWQgPSB0cnVlO1xuXG4gICAgLyoqXG4gICAgICogQW4gZWxlbWVudCB3aXRoIGNvbnRlbnRlZGl0YWJsZSB3aWxsIG5vdCBlbWl0IGEgY2hhbmdlIGV2ZW50LiBUbyBhY2hpZXZlIHBhcml0eVxuICAgICAqIHdpdGggYSBuYXRpdmUgdGV4dCBpbnB1dCwgd2UgbmVlZCB0byB0cmFjayB3aGV0aGVyIGEgY2hhbmdlIGV2ZW50IHNob3VsZCBiZVxuICAgICAqIGVtaXR0ZWQuXG4gICAgICovXG4gICAgcHJpdmF0ZSBfc2hvdWxkRW1pdENoYW5nZSA9IGZhbHNlO1xuICAgIC8qKlxuICAgICAqIEEgbmF0aXZlIHRleHQgaW5wdXQgYXR0ZW1wdHMgdG8gc3VibWl0IHRoZSBmb3JtIHdoZW4gcHJlc3NpbmcgRW50ZXIuXG4gICAgICogVGhpcyBjYW4gYmUgcHJldmVudGVkIGJ5IGNhbGxpbmcgcHJldmVudERlZmF1bHQgb24gdGhlIGtleWRvd24gZXZlbnQuXG4gICAgICogV2UgdHJhY2sgd2hldGhlciB0byByZXF1ZXN0IHN1Ym1pdCwgd2hpY2ggc2hvdWxkIG9jY3VyIGJlZm9yZSB0aGUga2V5dXBcbiAgICAgKiBldmVudC5cbiAgICAgKi9cbiAgICBwcml2YXRlIF9zaG91bGRUcmlnZ2VyU3VibWl0ID0gZmFsc2U7XG5cbiAgICBwcm90ZWN0ZWQgbGFuZ3VhZ2UgPSBuZXcgU2JiTGFuZ3VhZ2VDb250cm9sbGVyKHRoaXMpO1xuXG4gICAgLyoqXG4gICAgICogRm9ybSB0eXBlIG9mIGVsZW1lbnQuXG4gICAgICogQGRlZmF1bHQgJ3RleHQnXG4gICAgICovXG4gICAgcHVibGljIG92ZXJyaWRlIGdldCB0eXBlKCk6IHN0cmluZyB7XG4gICAgICByZXR1cm4gJ3RleHQnO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSB2YWx1ZSBvZiB0aGUgaW5wdXQuIFJlZmxlY3RzIHRoZSBjdXJyZW50IHRleHQgdmFsdWUgb2YgdGhpcyBpbnB1dC5cbiAgICAgKi9cbiAgICBAcHJvcGVydHkoKVxuICAgIHB1YmxpYyBzZXQgdmFsdWUodmFsdWU6IHN0cmluZykge1xuICAgICAgdGhpcy5fdmFsdWUgPSB0aGlzLl9jbGVhblRleHQodmFsdWUpO1xuICAgICAgaWYgKHRoaXMuaGFzVXBkYXRlZCkge1xuICAgICAgICB0aGlzLl9hc3NpZ25WYWx1ZSh0aGlzLl92YWx1ZSk7XG4gICAgICB9XG4gICAgICAvKiogQGludGVybmFsICovXG4gICAgICB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCdkaXNwbGF5dmFsdWVjaGFuZ2UnLCB7IGJ1YmJsZXM6IHRydWUsIGNvbXBvc2VkOiB0cnVlIH0pKTtcbiAgICB9XG4gICAgcHVibGljIGdldCB2YWx1ZSgpOiBzdHJpbmcge1xuICAgICAgcmV0dXJuIHRoaXMuX3ZhbHVlID8/ICcnO1xuICAgIH1cbiAgICBwcml2YXRlIF92YWx1ZTogc3RyaW5nID0gJyc7XG5cbiAgICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6IGZhbHNlIH0pXG4gICAgcHVibGljIHNldCBwbGFjZWhvbGRlcih2YWx1ZTogc3RyaW5nKSB7XG4gICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgdGhpcy5zZXRBdHRyaWJ1dGUoJ3BsYWNlaG9sZGVyJywgdmFsdWUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5yZW1vdmVBdHRyaWJ1dGUoJ3BsYWNlaG9sZGVyJyk7XG4gICAgICB9XG4gICAgICB0aGlzLmludGVybmFscy5hcmlhUGxhY2Vob2xkZXIgPSB2YWx1ZSA/IHZhbHVlIDogbnVsbDtcbiAgICB9XG4gICAgcHVibGljIGdldCBwbGFjZWhvbGRlcigpOiBzdHJpbmcge1xuICAgICAgcmV0dXJuIHRoaXMuZ2V0QXR0cmlidXRlKCdwbGFjZWhvbGRlcicpID8/ICcnO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBjb25zdHJ1Y3RvcigpIHtcbiAgICAgIHN1cGVyKCk7XG4gICAgICAvLyBXZSBwcmltYXJpbHkgdXNlIGNhcHR1cmUgZXZlbnQgbGlzdGVuZXJzLCBhcyB3ZSB3YW50XG4gICAgICAvLyBvdXIgbGlzdGVuZXJzIHRvIG9jY3VyIGJlZm9yZSBjb25zdW1lciBldmVudCBsaXN0ZW5lcnMuXG4gICAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/LihcbiAgICAgICAgJ2lucHV0JyxcbiAgICAgICAgKCkgPT4ge1xuICAgICAgICAgIGNvbnN0IG9sZFZhbHVlID0gdGhpcy5fdmFsdWU7XG4gICAgICAgICAgdGhpcy5fdmFsdWUgPSB0aGlzLl9jbGVhblRleHQodGhpcy50ZXh0Q29udGVudCA/PyAnJyk7XG4gICAgICAgICAgdGhpcy5yZXF1ZXN0VXBkYXRlKCd2YWx1ZScsIG9sZFZhbHVlKTtcbiAgICAgICAgICB0aGlzLmludGVybmFscy5zdGF0ZXMuYWRkKCdpbnRlcmFjdGVkJyk7XG4gICAgICAgICAgdGhpcy5fc2hvdWxkRW1pdENoYW5nZSA9IHRydWU7XG4gICAgICAgIH0sXG4gICAgICAgIHsgY2FwdHVyZTogdHJ1ZSB9LFxuICAgICAgKTtcbiAgICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcj8uKCdjaGFuZ2UnLCAoKSA9PiAodGhpcy5fc2hvdWxkRW1pdENoYW5nZSA9IGZhbHNlKSwgeyBjYXB0dXJlOiB0cnVlIH0pO1xuICAgICAgdGhpcy5hZGRFdmVudExpc3RlbmVyPy4oXG4gICAgICAgICdrZXlkb3duJyxcbiAgICAgICAgKGV2ZW50KSA9PiB7XG4gICAgICAgICAgaWYgKHRoaXMuX3JlcXVpcmVzRW1wdHlQYXRjaCgpKSB7XG4gICAgICAgICAgICB0aGlzLl9hc3NpZ25WYWx1ZSgnJyk7XG4gICAgICAgICAgfVxuICAgICAgICAgIC8vIFdlIHByZXZlbnQgcmVjdXJzaXZlIGV2ZW50cyBieSBjaGVja2luZyB0aGUgb3JpZ2luYWwgZXZlbnQgZm9yIGlzVHJ1c3RlZFxuICAgICAgICAgIC8vIHdoaWNoIGlzIGZhbHNlIGZvciBtYW51YWxseSBkaXNwYXRjaGVkIGV2ZW50cyAod2hpY2ggd2UgZGlzcGF0Y2ggYmVsb3cpLlxuICAgICAgICAgIGlmICgoZXZlbnQua2V5ID09PSAnRW50ZXInIHx8IGV2ZW50LmtleSA9PT0gJ1xcbicpICYmIGV2ZW50LmlzVHJ1c3RlZCkge1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgdGhpcy5fc2hvdWxkVHJpZ2dlclN1Ym1pdCA9IHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgS2V5Ym9hcmRFdmVudCgna2V5ZG93bicsIGV2ZW50KSk7XG4gICAgICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgICAgIGlzV2Via2l0ICYmXG4gICAgICAgICAgICB0aGlzLnZhbHVlICYmXG4gICAgICAgICAgICAoZXZlbnQua2V5ID09PSAnQmFja3NwYWNlJyB8fCBldmVudC5rZXkgPT09ICdEZWxldGUnKSAmJlxuICAgICAgICAgICAgZXZlbnQuaXNUcnVzdGVkXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICAvLyBJbiBXZWJraXQgcHJlc3NpbmcgQmFja3NwYWNlIG9yIERlbGV0ZSBjb21wbGV0ZWx5IHJlbW92ZXMgYWxsIHRoZSBjb250ZW50XG4gICAgICAgICAgICAvLyBpZiBjb250ZW50ZWRpdGFibGUgaXMgc2V0IG9uIGEgd2ViIGNvbXBvbmVudCBob3N0LlxuICAgICAgICAgICAgLy8gV2UgaGF2ZSB0byByZXBsaWNhdGUgdGhlIG5vcm1hbCBkZWxldGUgYmVoYXZpb3IuXG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgZXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7XG5cbiAgICAgICAgICAgIGlmICghdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBLZXlib2FyZEV2ZW50KCdrZXlkb3duJywgZXZlbnQpKSkge1xuICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkUmFuZ2UgPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk/LmdldFJhbmdlQXQoMCk7XG4gICAgICAgICAgICBpZiAoIXNlbGVjdGVkUmFuZ2UpIHtcbiAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoc2VsZWN0ZWRSYW5nZS5zdGFydE9mZnNldCAhPT0gc2VsZWN0ZWRSYW5nZS5lbmRPZmZzZXQpIHtcbiAgICAgICAgICAgICAgLy8gSWYgYSB0ZXh0IHJhbmdlIGlzIHNlbGVjdGVkLCB0aGVuIGRlbGV0ZSB0aGlzIHJhbmdlXG4gICAgICAgICAgICAgIHNlbGVjdGVkUmFuZ2UuZGVsZXRlQ29udGVudHMoKTtcbiAgICAgICAgICAgICAgdGhpcy5fZGlzcGF0Y2hJbnB1dEV2ZW50KCk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGV2ZW50LmtleSA9PT0gJ0JhY2tzcGFjZScgJiYgc2VsZWN0ZWRSYW5nZS5zdGFydE9mZnNldCA+IDApIHtcbiAgICAgICAgICAgICAgLy8gV2hlbiBwcmVzc2luZyBCYWNrc3BhY2UsIHdlIHNlbGVjdCB0aGUgcHJldmlvdXMgY2hhcmFjdGVyIGZyb21cbiAgICAgICAgICAgICAgLy8gdGhlIGN1cnJlbnQgY3Vyc29yIHBvc2l0aW9uIGFuZCBkZWxldGUgaXQuXG4gICAgICAgICAgICAgIHNlbGVjdGVkUmFuZ2Uuc2V0U3RhcnQoc2VsZWN0ZWRSYW5nZS5zdGFydENvbnRhaW5lciwgc2VsZWN0ZWRSYW5nZS5zdGFydE9mZnNldCAtIDEpO1xuICAgICAgICAgICAgICBzZWxlY3RlZFJhbmdlLmRlbGV0ZUNvbnRlbnRzKCk7XG4gICAgICAgICAgICAgIHRoaXMuX2Rpc3BhdGNoSW5wdXRFdmVudCgpO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChldmVudC5rZXkgPT09ICdEZWxldGUnICYmIHNlbGVjdGVkUmFuZ2UuZW5kT2Zmc2V0IDwgdGhpcy52YWx1ZS5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgLy8gV2hlbiBwcmVzc2luZyBEZWxldGUsIHdlIHNlbGVjdCB0aGUgbmV4dCBjaGFyYWN0ZXIgZnJvbVxuICAgICAgICAgICAgICAvLyB0aGUgY3VycmVudCBjdXJzb3IgcG9zaXRpb24gYW5kIGRlbGV0ZSBpdC5cbiAgICAgICAgICAgICAgc2VsZWN0ZWRSYW5nZS5zZXRFbmQoc2VsZWN0ZWRSYW5nZS5lbmRDb250YWluZXIsIHNlbGVjdGVkUmFuZ2UuZW5kT2Zmc2V0ICsgMSk7XG4gICAgICAgICAgICAgIHNlbGVjdGVkUmFuZ2UuZGVsZXRlQ29udGVudHMoKTtcbiAgICAgICAgICAgICAgdGhpcy5fZGlzcGF0Y2hJbnB1dEV2ZW50KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICB7IGNhcHR1cmU6IHRydWUgfSxcbiAgICAgICk7XG4gICAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/LihcbiAgICAgICAgJ2tleXVwJyxcbiAgICAgICAgKGV2ZW50KSA9PiB7XG4gICAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gJ0VudGVyJyB8fCBldmVudC5rZXkgPT09ICdcXG4nKSB7XG4gICAgICAgICAgICB0aGlzLl9lbWl0Q2hhbmdlSWZOZWNlc3NhcnkoKTtcbiAgICAgICAgICAgIGlmICh0aGlzLl9zaG91bGRUcmlnZ2VyU3VibWl0KSB7XG4gICAgICAgICAgICAgIHRoaXMuX3Nob3VsZFRyaWdnZXJTdWJtaXQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgdGhpcy5mb3JtPy5yZXF1ZXN0U3VibWl0KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIGlmICh0aGlzLl9yZXF1aXJlc0VtcHR5UGF0Y2goKSkge1xuICAgICAgICAgICAgdGhpcy5fc2V0Q3Vyc29yQXQoMCk7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICB7IGNhcHR1cmU6IHRydWUgfSxcbiAgICAgICk7XG4gICAgICAvLyBjb250ZW50ZWRpdGFibGUgYWxsb3dzIHBhc3RpbmcgcmljaCBjb250ZW50IGludG8gaXRzIGhvc3QuXG4gICAgICAvLyBXZSBwcmV2ZW50IHRoaXMgYnkgbGlzdGVuaW5nIHRvIHRoZSBwYXN0ZSBldmVudCBhbmRcbiAgICAgIC8vIGV4dHJhY3RpbmcgdGhlIHBsYWluIHRleHQgZnJvbSB0aGUgcGFzdGVkIGNvbnRlbnRcbiAgICAgIC8vIGFuZCBpbnNlcnRpbmcgaXQgaW50byB0aGUgc2VsZWN0ZWQgcmFuZ2UgKGN1cnNvciBwb3NpdGlvblxuICAgICAgLy8gb3Igc2VsZWN0aW9uKS5cbiAgICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcj8uKCdwYXN0ZScsIChlKSA9PiB7XG4gICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgaWYgKHRoaXMuX3JlcXVpcmVzRW1wdHlQYXRjaCgpKSB7XG4gICAgICAgICAgdGhpcy5fYXNzaWduVmFsdWUoJycpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgdGV4dCA9IHRoaXMuX2NsZWFuVGV4dChlLmNsaXBib2FyZERhdGE/LmdldERhdGEoJ3RleHQvcGxhaW4nKSA/PyAnJyk7XG4gICAgICAgIGNvbnN0IHNlbGVjdGVkUmFuZ2UgPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk/LmdldFJhbmdlQXQoMCk7XG4gICAgICAgIGlmICghc2VsZWN0ZWRSYW5nZSB8fCAhdGV4dCkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHNlbGVjdGVkUmFuZ2UuZGVsZXRlQ29udGVudHMoKTtcbiAgICAgICAgc2VsZWN0ZWRSYW5nZS5pbnNlcnROb2RlKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHRoaXMucHJlcGFyZVBhc3RlZFRleHQodGV4dCkpKTtcbiAgICAgICAgc2VsZWN0ZWRSYW5nZS5zZXRTdGFydChzZWxlY3RlZFJhbmdlLmVuZENvbnRhaW5lciwgc2VsZWN0ZWRSYW5nZS5lbmRPZmZzZXQpO1xuICAgICAgICB0aGlzLl9kaXNwYXRjaElucHV0RXZlbnQoKTtcbiAgICAgIH0pO1xuICAgICAgLy8gV2hlbiBmb2N1c2luZyBhIHRleHQgaW5wdXQgdmlhIGtleWJvYXJkLCB0aGUgdGV4dCBjb250ZW50IHNob3VsZCBiZSBzZWxlY3RlZC5cbiAgICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcj8uKCdmb2N1cycsICgpID0+IHtcbiAgICAgICAgaWYgKHNiYklucHV0TW9kYWxpdHlEZXRlY3Rvci5tb3N0UmVjZW50TW9kYWxpdHkgPT09ICdrZXlib2FyZCcpIHtcbiAgICAgICAgICAvLyBUT0RPOiBUaGlzIGRvZXMgbm90IHNlZW0gdG8gd29yayBpbiBGaXJlZm94IHdpdGggcmVhZG9ubHkuXG4gICAgICAgICAgd2luZG93LmdldFNlbGVjdGlvbigpPy5zZWxlY3RBbGxDaGlsZHJlbih0aGlzKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/LigndG91Y2hlbmQnLCAoKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLl9yZXF1aXJlc0VtcHR5UGF0Y2goKSkge1xuICAgICAgICAgIHRoaXMuX2Fzc2lnblZhbHVlKCcmbmJzcDsnKTtcbiAgICAgICAgICB0aGlzLl9zZXRDdXJzb3JBdCgwKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/LignY2xpY2snLCAoKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLl9yZXF1aXJlc0VtcHR5UGF0Y2goKSAmJiBzYmJJbnB1dE1vZGFsaXR5RGV0ZWN0b3IubW9zdFJlY2VudE1vZGFsaXR5ID09PSAndG91Y2gnKSB7XG4gICAgICAgICAgdGhpcy5fc2V0Q3Vyc29yQXQoMCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgICAvLyBPbiBibHVyIHRoZSBuYXRpdmUgdGV4dCBpbnB1dCBzY3JvbGxzIHRoZSB0ZXh0IHRvIHRoZSBzdGFydCBvZiB0aGUgdGV4dC5cbiAgICAgIC8vIFdlIG1pbWljIHRoYXQgYnkgcmVzZXR0aW5nIHRoZSBzY3JvbGwgcG9zaXRpb24uXG4gICAgICAvLyBXZSBhbHNvIHVuc2V0IGFueSBzZWxlY3Rpb24gdG8gYWxpZ24gd2l0aCB0aGUgbmF0aXZlIHRleHQgaW5wdXQuXG4gICAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/LihcbiAgICAgICAgJ2JsdXInLFxuICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgd2luZG93LmdldFNlbGVjdGlvbigpPy5yZW1vdmVBbGxSYW5nZXMoKTtcbiAgICAgICAgICBpZiAodGhpcy52YWx1ZSA9PT0gJycpIHtcbiAgICAgICAgICAgIHRoaXMuX2Fzc2lnblZhbHVlKCcnKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5fZW1pdENoYW5nZUlmTmVjZXNzYXJ5KCk7XG4gICAgICAgICAgdGhpcy5zY3JvbGxMZWZ0ID0gMDtcbiAgICAgICAgfSxcbiAgICAgICAgeyBjYXB0dXJlOiB0cnVlIH0sXG4gICAgICApO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBvdmVycmlkZSBpc0Rpc2FibGVkRXh0ZXJuYWxseSgpOiBib29sZWFuIHtcbiAgICAgIHJldHVybiB0aGlzLmZvcm1EaXNhYmxlZDtcbiAgICB9XG5cbiAgICBwdWJsaWMgb3ZlcnJpZGUgY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG4gICAgICBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpO1xuICAgICAgdGhpcy5pbnRlcm5hbHMuYXJpYU11bHRpTGluZSA9ICdmYWxzZSc7XG4gICAgICB0aGlzLl91cGRhdGVDb250ZW50ZWRpdGFibGUoKTtcblxuICAgICAgLy8gV2Ugd2FudCB0byByZXBsYWNlIGFueSBjb250ZW50IGJ5IGp1c3QgdGhlIHRleHQgY29udGVudC5cbiAgICAgIHRoaXMuX2Fzc2lnblZhbHVlKHRoaXMudmFsdWUpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvdmVycmlkZSBmb2N1cyhvcHRpb25zPzogRm9jdXNPcHRpb25zKTogdm9pZCB7XG4gICAgICBzdXBlci5mb2N1cyhvcHRpb25zKTtcbiAgICAgIC8vIEJ5IGRlZmF1bHQsIHdoZW4gY2FsbGluZyBmb2N1cyBvbiBhbiBpbnB1dCBlbGVtZW50LCB0aGUgY3Vyc29yIGlzIHBsYWNlZFxuICAgICAgLy8gYXQgdGhlIGVuZCBvZiB0aGUgaW5wdXQgdGV4dC4gSG93ZXZlciwgd2l0aCBjb250ZW50ZWRpdGFibGUsIHRoZSBjdXJzb3JcbiAgICAgIC8vIGlzIHBsYWNlZCBhdCB0aGUgYmVnaW5uaW5nLCBzbyB3ZSBtb3ZlIGl0IHRvIHRoZSBlbmQsIGlmIHRoYXQgaXMgdGhlIGNhc2UuXG4gICAgICBpZiAodGhpcy5fY2FuU2VsZWN0KCkpIHtcbiAgICAgICAgY29uc3Qgc2VsZWN0aW9uID0gd2luZG93LmdldFNlbGVjdGlvbigpO1xuICAgICAgICBpZiAoIXNlbGVjdGlvbikge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCByYW5nZSA9IHNlbGVjdGlvbi5yYW5nZUNvdW50ID4gMCA/IHNlbGVjdGlvbi5nZXRSYW5nZUF0KDApIDogbnVsbDtcbiAgICAgICAgaWYgKHJhbmdlICYmIHJhbmdlLnN0YXJ0T2Zmc2V0ICE9PSAwKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fc2V0Q3Vyc29yQXQodGhpcy50ZXh0Q29udGVudCEubGVuZ3RoKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgb3ZlcnJpZGUgYXR0cmlidXRlQ2hhbmdlZENhbGxiYWNrKFxuICAgICAgbmFtZTogc3RyaW5nLFxuICAgICAgb2xkOiBzdHJpbmcgfCBudWxsLFxuICAgICAgdmFsdWU6IHN0cmluZyB8IG51bGwsXG4gICAgKTogdm9pZCB7XG4gICAgICAvKipcbiAgICAgICAqIFRoZSBuYXRpdmUgdGV4dCBpbnB1dCBjaGFuZ2VzIHRoZSB2YWx1ZSBwcm9wZXJ0eSB3aGVuIHRoZSB2YWx1ZSBhdHRyaWJ1dGUgaXNcbiAgICAgICAqIGNoYW5nZWQgdW5kZXIgdGhlIGNvbmRpdGlvbiB0aGF0IG5vIGlucHV0IGV2ZW50IGhhcyBvY2N1cnJlZCBzaW5jZSBjcmVhdGlvblxuICAgICAgICogb3IgdGhlIGxhc3QgZm9ybSByZXNldC5cbiAgICAgICAqL1xuICAgICAgaWYgKG5hbWUgIT09ICd2YWx1ZScgfHwgIXRoaXMubWF0Y2hlcz8uKCc6c3RhdGUoaW50ZXJhY3RlZCknKSkge1xuICAgICAgICBzdXBlci5hdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2sobmFtZSwgb2xkLCB2YWx1ZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSXMgY2FsbGVkIHdoZW5ldmVyIHRoZSBmb3JtIGlzIGJlaW5nIHJlc2V0LlxuICAgICAqXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgcHVibGljIG92ZXJyaWRlIGZvcm1SZXNldENhbGxiYWNrKCk6IHZvaWQge1xuICAgICAgdGhpcy5pbnRlcm5hbHMuc3RhdGVzLmRlbGV0ZSgnaW50ZXJhY3RlZCcpO1xuICAgICAgdGhpcy52YWx1ZSA9IHRoaXMuZ2V0QXR0cmlidXRlKCd2YWx1ZScpID8/ICcnO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqICBDYWxsZWQgd2hlbiB0aGUgYnJvd3NlciBpcyB0cnlpbmcgdG8gcmVzdG9yZSBlbGVtZW504oCZcyBzdGF0ZSB0byBzdGF0ZSBpbiB3aGljaCBjYXNlXG4gICAgICogIHJlYXNvbiBpcyBcInJlc3RvcmVcIiwgb3Igd2hlbiB0aGUgYnJvd3NlciBpcyB0cnlpbmcgdG8gZnVsZmlsbCBhdXRvZmlsbCBvbiBiZWhhbGYgb2ZcbiAgICAgKiAgdXNlciBpbiB3aGljaCBjYXNlIHJlYXNvbiBpcyBcImF1dG9jb21wbGV0ZVwiLlxuICAgICAqICBJbiB0aGUgY2FzZSBvZiBcInJlc3RvcmVcIiwgc3RhdGUgaXMgYSBzdHJpbmcsIEZpbGUsIG9yIEZvcm1EYXRhIG9iamVjdFxuICAgICAqICBwcmV2aW91c2x5IHNldCBhcyB0aGUgc2Vjb25kIGFyZ3VtZW50IHRvIHNldEZvcm1WYWx1ZS5cbiAgICAgKlxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHB1YmxpYyBvdmVycmlkZSBmb3JtU3RhdGVSZXN0b3JlQ2FsbGJhY2soXG4gICAgICBzdGF0ZTogRm9ybVJlc3RvcmVTdGF0ZSB8IG51bGwsXG4gICAgICBfcmVhc29uOiBGb3JtUmVzdG9yZVJlYXNvbixcbiAgICApOiB2b2lkIHtcbiAgICAgIGlmIChzdGF0ZSAmJiB0eXBlb2Ygc3RhdGUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHRoaXMudmFsdWUgPSBzdGF0ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBNYWtlcyB0aGUgc2VsZWN0aW9uIGVxdWFsIHRvIHRoZSBjdXJyZW50IG9iamVjdC5cbiAgICAgKlxuICAgICAqIEBsaW5rIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2RvY3MvV2ViL0FQSS9IVE1MSW5wdXRFbGVtZW50L3NlbGVjdFxuICAgICAqL1xuICAgIHB1YmxpYyBzZWxlY3QoKTogdm9pZCB7XG4gICAgICB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk/LnNlbGVjdEFsbENoaWxkcmVuKHRoaXMpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBvdmVycmlkZSBmaXJzdFVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXM6IFByb3BlcnR5VmFsdWVzPHRoaXM+KTogdm9pZCB7XG4gICAgICBzdXBlci5maXJzdFVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXMpO1xuXG4gICAgICAvLyBJZiB0aGUgdmFsdWUgd2FzIGFzc2lnbmVkIGJlZm9yZSBmaXJzdFVwZGF0ZSwgd2UgaGF2ZSB0b1xuICAgICAgLy8gd3JpdGUgaXQgdGhlIGRvY3VtZW50IHRvIGJlIHZpc3VhbGx5IHNlZW5cbiAgICAgIGlmICh0aGlzLnZhbHVlICYmICF0aGlzLmlubmVySFRNTC5sZW5ndGgpIHtcbiAgICAgICAgdGhpcy5fYXNzaWduVmFsdWUodGhpcy52YWx1ZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIG92ZXJyaWRlIHJlcXVlc3RVcGRhdGUoXG4gICAgICBuYW1lPzogUHJvcGVydHlLZXksXG4gICAgICBvbGRWYWx1ZT86IHVua25vd24sXG4gICAgICBvcHRpb25zPzogUHJvcGVydHlEZWNsYXJhdGlvbixcbiAgICApOiB2b2lkIHtcbiAgICAgIHN1cGVyLnJlcXVlc3RVcGRhdGUobmFtZSwgb2xkVmFsdWUsIG9wdGlvbnMpO1xuICAgICAgaWYgKFxuICAgICAgICB0aGlzLmlzQ29ubmVjdGVkICYmXG4gICAgICAgIChuYW1lID09PSAnZGlzYWJsZWQnIHx8IG5hbWUgPT09ICdmb3JtRGlzYWJsZWQnIHx8IG5hbWUgPT09ICdyZWFkT25seScpXG4gICAgICApIHtcbiAgICAgICAgdGhpcy5fdXBkYXRlQ29udGVudGVkaXRhYmxlKCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIHNob3VsZFZhbGlkYXRlKG5hbWU6IFByb3BlcnR5S2V5IHwgdW5kZWZpbmVkKTogYm9vbGVhbiB7XG4gICAgICByZXR1cm4gc3VwZXIuc2hvdWxkVmFsaWRhdGUobmFtZSkgfHwgbmFtZSA9PT0gJ3ZhbHVlJyB8fCBuYW1lID09PSAncmVxdWlyZWQnO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBvdmVycmlkZSB2YWxpZGF0ZSgpOiB2b2lkIHtcbiAgICAgIHN1cGVyLnZhbGlkYXRlKCk7XG4gICAgICBpZiAodGhpcy5yZXF1aXJlZCAmJiAhdGhpcy52YWx1ZSkge1xuICAgICAgICB0aGlzLnNldFZhbGlkaXR5RmxhZygndmFsdWVNaXNzaW5nJywgaTE4bklucHV0UmVxdWlyZWRbdGhpcy5sYW5ndWFnZS5jdXJyZW50XSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnJlbW92ZVZhbGlkaXR5RmxhZygndmFsdWVNaXNzaW5nJyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHByZXBhcmVQYXN0ZWRUZXh0KHRleHQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICByZXR1cm4gdGV4dDtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9yZXF1aXJlc0VtcHR5UGF0Y2goKTogYm9vbGVhbiB7XG4gICAgICAvLyBJbiBCbGluaywgYSBjb250ZW50ZWRpdGFibGUgZWxlbWVudCB3aXRoIGVtcHR5IGNvbnRlbnQgd2lsbCBjcmFzaFxuICAgICAgLy8gdXBvbiByZWNlaXZpbmcgZm9jdXMsIHdoZW4gaW4gTW9iaWxlIG1vZGUuXG4gICAgICAvLyBUbyBwcmV2ZW50IHRoaXMsIHdlIHBhdGNoIHRoZSBlbXB0eSBzdGF0ZSBieSBpbnNlcnRpbmcgYSBub24tYnJlYWtpbmcgc3BhY2UuXG4gICAgICByZXR1cm4gaXNTZXJ2ZXJcbiAgICAgICAgPyBmYWxzZVxuICAgICAgICA6IGlzQmxpbmsgJiYgdGhpcy52YWx1ZSA9PT0gJycgJiYgd2luZG93Lm1hdGNoTWVkaWEoU2JiTWVkaWFRdWVyeVBvaW50ZXJDb2Fyc2UpLm1hdGNoZXM7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfYXNzaWduVmFsdWUodmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgdGhpcy5pbm5lckhUTUwgPSB2YWx1ZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9zZXRDdXJzb3JBdChwb3NpdGlvbjogbnVtYmVyKTogdm9pZCB7XG4gICAgICBjb25zdCBzZWxlY3Rpb24gPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk7XG4gICAgICBpZiAoIXNlbGVjdGlvbikge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHJhbmdlID0gZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKTtcbiAgICAgIHJhbmdlLnNldFN0YXJ0KHRoaXMuZmlyc3RDaGlsZCEsIHBvc2l0aW9uKTtcbiAgICAgIHJhbmdlLmNvbGxhcHNlKHRydWUpO1xuICAgICAgc2VsZWN0aW9uLnJlbW92ZUFsbFJhbmdlcygpO1xuICAgICAgc2VsZWN0aW9uLmFkZFJhbmdlKHJhbmdlKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9jbGVhblRleHQodmFsdWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAvLyBUaGUgbmF0aXZlIHRleHQgaW5wdXQgcmVtb3ZlcyBhbGwgbmV3bGluZSBjaGFyYWN0ZXJzIGlmIHBhc3NlZCB0byB0aGUgdmFsdWUgcHJvcGVydHlcbiAgICAgIHJldHVybiB2YWx1ZSA9PT0gbnVsbCA/ICcnIDogYCR7dmFsdWV9YC5yZXBsYWNlKC9bXFxuXFxyXSsvZywgJycpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2Rpc3BhdGNoSW5wdXRFdmVudCgpOiB2b2lkIHtcbiAgICAgIC8qKiBUaGUgaW5wdXQgZXZlbnQgZmlyZXMgd2hlbiB0aGUgdmFsdWUgaGFzIGJlZW4gY2hhbmdlZCBhcyBhIGRpcmVjdCByZXN1bHQgb2YgYSB1c2VyIGFjdGlvbi4gKi9cbiAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgSW5wdXRFdmVudCgnaW5wdXQnLCB7IGJ1YmJsZXM6IHRydWUsIGNvbXBvc2VkOiB0cnVlIH0pKTtcbiAgICB9XG5cbiAgICBAZXZlbnRPcHRpb25zKHsgcGFzc2l2ZTogdHJ1ZSB9KVxuICAgIHByaXZhdGUgX2NsZWFuQ2hpbGRyZW4oKTogdm9pZCB7XG4gICAgICBpZiAodGhpcy5jaGlsZEVsZW1lbnRDb3VudCkge1xuICAgICAgICBmb3IgKGNvbnN0IGVsZW1lbnQgb2YgdGhpcy5jaGlsZHJlbikge1xuICAgICAgICAgIGVsZW1lbnQucmVtb3ZlKCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIF91cGRhdGVDb250ZW50ZWRpdGFibGUoKTogdm9pZCB7XG4gICAgICBpZiAoIWlzU2VydmVyICYmIHRoaXMuaXNDb25uZWN0ZWQpIHtcbiAgICAgICAgdGhpcy5pbnRlcm5hbHMuYXJpYVJlYWRPbmx5ID0gdGhpcy5yZWFkT25seSA/ICd0cnVlJyA6IG51bGw7XG4gICAgICAgIHRoaXMuaW50ZXJuYWxzLmFyaWFEaXNhYmxlZCA9IHRoaXMuZGlzYWJsZWQgPyAndHJ1ZScgOiBudWxsO1xuICAgICAgICAvLyBUT0RPKDIwMjYpOiBGaXJlZm94IHN1cHBvcnRzIHBsYWludGV4dC1vbmx5IHNpbmNlIHZlcnNpb24gMTM2IChNYXJjaCAyMDI1KS5cbiAgICAgICAgLy8gVW50aWwgdGhpcyBpcyBwYXJ0IG9mIG91ciBiYXNlbGluZSwgd2Ugc2hvdWxkIGZlYXR1cmUgY2hlY2sgdG8gZW5hYmxlIGl0LlxuICAgICAgICBjb25zdCB2YWx1ZSA9XG4gICAgICAgICAgdGhpcy5kaXNhYmxlZCB8fCB0aGlzLnJlYWRPbmx5XG4gICAgICAgICAgICA/ICdmYWxzZSdcbiAgICAgICAgICAgIDogcGxhaW50ZXh0T25seVN1cHBvcnRlZFxuICAgICAgICAgICAgICA/ICdwbGFpbnRleHQtb25seSdcbiAgICAgICAgICAgICAgOiAndHJ1ZSc7XG4gICAgICAgIHRoaXMuc2V0QXR0cmlidXRlKCdjb250ZW50ZWRpdGFibGUnLCB2YWx1ZSk7XG4gICAgICAgIC8vIEluIHRoZSByZWFkb25seSBjYXNlLCB3ZSBkaXNhYmxlIGNvbnRlbnRlZGl0YWJsZSwgYnV0IGl0IHN0aWxsXG4gICAgICAgIC8vIG5lZWRzIHRvIGJlIGZvY3VzYWJsZS4gV2UgYWNoaWV2ZSB0aGlzIGJ5IHNldHRpbmcgdGFiaW5kZXggaW4gdGhhdCBjYXNlLlxuICAgICAgICBpZiAodGhpcy5yZWFkT25seSkge1xuICAgICAgICAgIHRoaXMuc2V0QXR0cmlidXRlKCd0YWJpbmRleCcsICcwJyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5yZW1vdmVBdHRyaWJ1dGUoJ3RhYmluZGV4Jyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIF9lbWl0Q2hhbmdlSWZOZWNlc3NhcnkoKTogdm9pZCB7XG4gICAgICBpZiAodGhpcy5fc2hvdWxkRW1pdENoYW5nZSkge1xuICAgICAgICB0aGlzLl9zaG91bGRFbWl0Q2hhbmdlID0gZmFsc2U7XG4gICAgICAgIC8qKiBUaGUgY2hhbmdlIGV2ZW50IGlzIGZpcmVkIHdoZW4gdGhlIHVzZXIgbW9kaWZpZXMgdGhlIGVsZW1lbnQncyB2YWx1ZS4gVW5saWtlIHRoZSBpbnB1dCBldmVudCwgdGhlIGNoYW5nZSBldmVudCBpcyBub3QgbmVjZXNzYXJpbHkgZmlyZWQgZm9yIGVhY2ggYWx0ZXJhdGlvbiB0byBhbiBlbGVtZW50J3MgdmFsdWUuICovXG4gICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ2NoYW5nZScsIHsgYnViYmxlczogdHJ1ZSB9KSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfY2FuU2VsZWN0KCk6IGJvb2xlYW4ge1xuICAgICAgcmV0dXJuICFpc1NlcnZlciAmJiAhdGhpcy5kaXNhYmxlZCAmJiAhdGhpcy5yZWFkT25seSAmJiAhIXRoaXMudmFsdWU7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlbmRlcigpOiB1bmtub3duIHtcbiAgICAgIHJldHVybiBodG1sYDxzbG90IEBzbG90Y2hhbmdlPSR7dGhpcy5fY2xlYW5DaGlsZHJlbn0+PC9zbG90PmA7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIFNiYkZvcm1Bc3NvY2lhdGVkSW5wdXRFbGVtZW50IGFzIHVua25vd24gYXMgQWJzdHJhY3RDb25zdHJ1Y3RvcjxTYmJGb3JtQXNzb2NpYXRlZElucHV0TWl4aW5UeXBlPiAmXG4gICAgVDtcbn07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFtREEsSUFBTSxrQ0FBMEM7QUFDOUMsS0FBSSxTQUNGLFFBQU87Q0FHVCxNQUFNLE1BQU0sU0FBUyxjQUFjLE1BQU07QUFDekMsS0FBSSxhQUFhLG1CQUFtQixpQkFBaUI7QUFJckQsUUFBTyxJQUFJLG9CQUFvQjs7QUFFakMsSUFBTSx5QkFBeUIsMkJBQTJCOzs7O0FBTTFELElBQWEsK0JBR1gsZUFDNEQ7QUErWjVELGVBOVo0QztvQkFDbEMsaUJBQWlCLGlCQUFpQixpQkFBaUIsdUJBQXVCLFdBQVcsQ0FBQyxDQUFDLENBQUM7Ozs7O2VBRG5GLHNDQUNMLFlBQXdGOzs7NkJBaUMvRixVQUFVLENBQUE7bUNBY1YsU0FBUyxFQUFFLFdBQVcsT0FBTyxDQUFDLENBQUE7a0NBNlQ5QixhQUFhLEVBQUUsU0FBUyxNQUFNLENBQUMsQ0FBQTtBQTFVaEMsaUJBQUEsTUFBQSxNQUFBLHVCQUFBO0tBQUEsTUFBQTtLQUFBLE1BQUE7S0FBQSxRQUFBO0tBQUEsU0FBQTtLQUFBLFFBQUE7TUFBQSxNQUFBLFFBQUEsV0FBQTtNQUFBLE1BQUEsS0FBQSxVQUFBO0FBQUEsV0FBVyxRQUFLOztNQUFBO0tBQUEsVUFBQTtLQUFBLEVBQUEsTUFBQSwyQkFBQTtBQWNoQixpQkFBQSxNQUFBLE1BQUEsNkJBQUE7S0FBQSxNQUFBO0tBQUEsTUFBQTtLQUFBLFFBQUE7S0FBQSxTQUFBO0tBQUEsUUFBQTtNQUFBLE1BQUEsUUFBQSxpQkFBQTtNQUFBLE1BQUEsS0FBQSxVQUFBO0FBQUEsV0FBVyxjQUFXOztNQUFBO0tBQUEsVUFBQTtLQUFBLEVBQUEsTUFBQSwyQkFBQTtBQTZUdEIsaUJBQUEsTUFB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
@@ -1,2 +1,2 @@
1
- import { t as SbbExpansionPanelHeaderElement } from "../../expansion-panel-header.component-QbxqMGKG.js";
1
+ import { t as SbbExpansionPanelHeaderElement } from "../../expansion-panel-header.component-DFTa_og5.js";
2
2
  export { SbbExpansionPanelHeaderElement };
@@ -57,7 +57,7 @@ var SbbExpansionPanelHeaderElement = class extends SbbDisabledTabIndexActionMixi
57
57
  * but after the 'SbbSlotStateController' has run.
58
58
  */
59
59
  _setIconState() {
60
- this.toggleState("icon", !!(this.iconName || this.internals.states.has("icon")));
60
+ this.toggleState("icon", !!(this.iconName || this.matches?.(":is(:state(icon),[state--icon])")));
61
61
  }
62
62
  renderTemplate() {
63
63
  this._setIconState();
@@ -79,4 +79,4 @@ var SbbExpansionPanelHeaderElement = class extends SbbDisabledTabIndexActionMixi
79
79
  //#endregion
80
80
  export { SbbExpansionPanelHeaderElement as t };
81
81
 
82
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwYW5zaW9uLXBhbmVsLWhlYWRlci5jb21wb25lbnQtUWJ4cU1HS0cuanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2V4cGFuc2lvbi1wYW5lbC9leHBhbnNpb24tcGFuZWwtaGVhZGVyL2V4cGFuc2lvbi1wYW5lbC1oZWFkZXIuc2Nzcz9pbmxpbmUiLCIuLi8uLi8uLi9zcmMvZWxlbWVudHMvZXhwYW5zaW9uLXBhbmVsL2V4cGFuc2lvbi1wYW5lbC1oZWFkZXIvZXhwYW5zaW9uLXBhbmVsLWhlYWRlci5jb21wb25lbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiQHVzZSAnLi4vLi4vY29yZS9zdHlsZXMnIGFzIHNiYjtcblxuOmhvc3Qge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuOmhvc3QoOnN0YXRlKHNpemUtcykpIHtcbiAgLS1zYmItZXhwYW5zaW9uLXBhbmVsLWhlYWRlci1nYXA6IHZhcigtLXNiYi1leHBhbnNpb24tcGFuZWwtaGVhZGVyLWdhcC1zKTtcbiAgLS1zYmItZXhwYW5zaW9uLXBhbmVsLWhlYWRlci1wYWRkaW5nLWJsb2NrOiB2YXIoLS1zYmItZXhwYW5zaW9uLXBhbmVsLWhlYWRlci1wYWRkaW5nLWJsb2NrLXMpO1xuICAtLXNiYi1leHBhbnNpb24tcGFuZWwtaGVhZGVyLXBhZGRpbmctaW5saW5lOiB2YXIoLS1zYmItZXhwYW5zaW9uLXBhbmVsLWhlYWRlci1wYWRkaW5nLWlubGluZS1zKTtcbn1cblxuOmhvc3QoOnN0YXRlKHNpemUtbCkpIHtcbiAgLS1zYmItZXhwYW5zaW9uLXBhbmVsLWhlYWRlci1nYXA6IHZhcigtLXNiYi1leHBhbnNpb24tcGFuZWwtaGVhZGVyLWdhcC1sKTtcbiAgLS1zYmItZXhwYW5zaW9uLXBhbmVsLWhlYWRlci1wYWRkaW5nLWJsb2NrOiB2YXIoLS1zYmItZXhwYW5zaW9uLXBhbmVsLWhlYWRlci1wYWRkaW5nLWJsb2NrLWwpO1xuICAtLXNiYi1leHBhbnNpb24tcGFuZWwtaGVhZGVyLXBhZGRpbmctaW5saW5lOiB2YXIoLS1zYmItZXhwYW5zaW9uLXBhbmVsLWhlYWRlci1wYWRkaW5nLWlubGluZS1sKTtcbn1cblxuOmhvc3QoOm5vdCg6c3RhdGUoc2l6ZS1zKSwgOnN0YXRlKHNpemUtbCkpKSB7XG4gIC0tc2JiLWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItZ2FwOiB2YXIoLS1zYmItZXhwYW5zaW9uLXBhbmVsLWhlYWRlci1nYXAtZGVmYXVsdCk7XG4gIC0tc2JiLWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItcGFkZGluZy1ibG9jazogdmFyKFxuICAgIC0tc2JiLWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItcGFkZGluZy1ibG9jay1kZWZhdWx0XG4gICk7XG4gIC0tc2JiLWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItcGFkZGluZy1pbmxpbmU6IHZhcihcbiAgICAtLXNiYi1leHBhbnNpb24tcGFuZWwtaGVhZGVyLXBhZGRpbmctaW5saW5lLWRlZmF1bHRcbiAgKTtcbn1cblxuOmhvc3QoOmlzKDpkaXNhYmxlZCwgW2Rpc2FibGVkLWludGVyYWN0aXZlXSkpIHtcbiAgLS1zYmItZXhwYW5zaW9uLXBhbmVsLWhlYWRlci1jdXJzb3I6IHZhcigtLXNiYi1jdXJzb3ItZGVmYXVsdCk7XG4gIC0tc2JiLWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItdGV4dC1jb2xvcjogbGlnaHQtZGFyayhcbiAgICB2YXIoLS1zYmItY29sb3ItZ3Jhbml0ZSksXG4gICAgdmFyKC0tc2JiLWNvbG9yLXN0b3JtKVxuICApO1xuXG4gIEBpbmNsdWRlIHNiYi5pZi1mb3JjZWQtY29sb3JzIHtcbiAgICAtLXNiYi1leHBhbnNpb24tcGFuZWwtaGVhZGVyLXRleHQtY29sb3I6IEdyYXlUZXh0O1xuICB9XG59XG5cbjpob3N0KDpmb2N1cy12aXNpYmxlKSB7XG4gIEBpbmNsdWRlIHNiYi5mb2N1cy1vdXRsaW5lO1xuXG4gIG91dGxpbmUtb2Zmc2V0OiB2YXIoLS1zYmItc3BhY2luZy1maXhlZC0xeCk7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXNiYi1leHBhbnNpb24tcGFuZWwtYm9yZGVyLXJhZGl1cyk7XG59XG5cbi5zYmItZXhwYW5zaW9uLXBhbmVsLWhlYWRlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogdmFyKC0tc2JiLWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItanVzdGlmeS1jb250ZW50KTtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiB2YXIoLS1zYmItZXhwYW5zaW9uLXBhbmVsLWhlYWRlci1nYXApO1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZzogdmFyKC0tc2JiLWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItcGFkZGluZy1ibG9jaylcbiAgICB2YXIoLS1zYmItZXhwYW5zaW9uLXBhbmVsLWhlYWRlci1wYWRkaW5nLWlubGluZSk7XG4gIHRleHQtYWxpZ246IHN0YXJ0O1xuICBjdXJzb3I6IHZhcigtLXNiYi1leHBhbnNpb24tcGFuZWwtaGVhZGVyLWN1cnNvcik7XG4gIGNvbG9yOiB2YXIoLS1zYmItZXhwYW5zaW9uLXBhbmVsLWhlYWRlci10ZXh0LWNvbG9yKTtcbiAgZm9udC1zaXplOiB2YXIoLS1zYmItZXhwYW5zaW9uLXBhbmVsLWhlYWRlci1mb250LXNpemUpO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBsZXR0ZXItc3BhY2luZzogdmFyKC0tc2JiLXR5cG8tbGV0dGVyLXNwYWNpbmctdGV4dCk7XG4gIGxpbmUtaGVpZ2h0OiB2YXIoLS1zYmItdHlwby1saW5lLWhlaWdodC10ZXh0KTtcbiAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLnNiYi1leHBhbnNpb24tcGFuZWwtaGVhZGVyX190aXRsZSxcbi5zYmItZXhwYW5zaW9uLXBhbmVsLWhlYWRlcl9fdG9nZ2xlLFxuLnNiYi1leHBhbnNpb24tcGFuZWwtaGVhZGVyX19pY29uIHtcbiAgZGlzcGxheTogZmxleDtcbn1cblxuLnNiYi1leHBhbnNpb24tcGFuZWwtaGVhZGVyX19pY29uIHtcbiAgd2lkdGg6IHZhcigtLXNiYi1leHBhbnNpb24tcGFuZWwtaWNvbi1zaXplKTtcblxuICAtLXNiYi1pY29uLXN2Zy13aWR0aDogdmFyKC0tc2JiLWV4cGFuc2lvbi1wYW5lbC1pY29uLXNpemUpO1xuICAtLXNiYi1pY29uLXN2Zy1oZWlnaHQ6IHZhcigtLXNiYi1leHBhbnNpb24tcGFuZWwtaWNvbi1zaXplKTtcblxuICA6aG9zdCg6bm90KDpzdGF0ZShzbG90dGVkLWljb24pLCA6c3RhdGUoaGFzLWljb24tbmFtZSkpKSAmIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5cbi5zYmItZXhwYW5zaW9uLXBhbmVsLWhlYWRlcl9fdGl0bGUge1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IHZhcigtLXNiYi1leHBhbnNpb24tcGFuZWwtdGl0bGUtZ2FwKTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAvLyBBbGlnbiB3aXRoIHRvZ2dsZSBpY29uXG4gIG1pbi1oZWlnaHQ6IHZhcigtLXNiYi1zaXplLWljb24tdWktbWVkaXVtKTtcbn1cblxuLnNiYi1leHBhbnNpb24tcGFuZWwtaGVhZGVyX190b2dnbGUtaWNvbiB7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSB2YXIoLS1zYmItZGlzYWJsZS1hbmltYXRpb24tZHVyYXRpb24sIHZhcigtLXNiYi1hbmltYXRpb24tZHVyYXRpb24tNHgpKTtcblxuICA6aG9zdChbYXJpYS1leHBhbmRlZF06bm90KFthcmlhLWV4cGFuZGVkPSdmYWxzZSddKSkgJiB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoLTE4MGRlZyk7XG4gIH1cbn1cbiIsImltcG9ydCB7IHR5cGUgQ1NTUmVzdWx0R3JvdXAsIGh0bWwsIG5vdGhpbmcsIHR5cGUgVGVtcGxhdGVSZXN1bHQsIHVuc2FmZUNTUyB9IGZyb20gJ2xpdCc7XG5cbmltcG9ydCB7XG4gIGJveFNpemluZ1N0eWxlcyxcbiAgU2JiQnV0dG9uQmFzZUVsZW1lbnQsXG4gIFNiYkRpc2FibGVkVGFiSW5kZXhBY3Rpb25NaXhpbixcbiAgU2JiTWVkaWFNYXRjaGVyQ29udHJvbGxlcixcbiAgU2JiTWVkaWFRdWVyeUhvdmVyLFxuICBTYmJQcm9wZXJ0eVdhdGNoZXJDb250cm9sbGVyLFxuICDJtXN0YXRlQ29udHJvbGxlcixcbn0gZnJvbSAnLi4vLi4vY29yZS50cyc7XG5pbXBvcnQgeyBTYmJJY29uTmFtZU1peGluIH0gZnJvbSAnLi4vLi4vaWNvbi5wdXJlLnRzJztcbmltcG9ydCB0eXBlIHsgU2JiRXhwYW5zaW9uUGFuZWxFbGVtZW50IH0gZnJvbSAnLi4vZXhwYW5zaW9uLXBhbmVsL2V4cGFuc2lvbi1wYW5lbC5jb21wb25lbnQudHMnO1xuXG5pbXBvcnQgc3R5bGUgZnJvbSAnLi9leHBhbnNpb24tcGFuZWwtaGVhZGVyLnNjc3M/aW5saW5lJztcblxuLyoqXG4gKiBJdCBhY3RzIGFzIGEgbmF0aXZlIGBzdW1tYXJ5YCB0YWcgZm9yIHRoZSBgc2JiLWV4cGFuc2lvbi1wYW5lbGAgY29tcG9uZW50LlxuICpcbiAqIEBzbG90IC0gVXNlIHRoZSB1bm5hbWVkIHNsb3QgdG8gYWRkIGNvbnRlbnQgdG8gdGhlIGBzYmItZXhwYW5zaW9uLXBhbmVsLWhlYWRlcmAuXG4gKiBAc2xvdCBpY29uIC0gU2xvdCB1c2VkIHRvIHJlbmRlciB0aGUgYHNiYi1leHBhbnNpb24tcGFuZWwtaGVhZGVyYCBpY29uLlxuICovXG5leHBvcnQgY2xhc3MgU2JiRXhwYW5zaW9uUGFuZWxIZWFkZXJFbGVtZW50IGV4dGVuZHMgU2JiRGlzYWJsZWRUYWJJbmRleEFjdGlvbk1peGluKFxuICBTYmJJY29uTmFtZU1peGluKFNiYkJ1dHRvbkJhc2VFbGVtZW50KSxcbikge1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHJlYWRvbmx5IGVsZW1lbnROYW1lOiBzdHJpbmcgPSAnc2JiLWV4cGFuc2lvbi1wYW5lbC1oZWFkZXInO1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHN0eWxlczogQ1NTUmVzdWx0R3JvdXAgPSBbYm94U2l6aW5nU3R5bGVzLCB1bnNhZmVDU1Moc3R5bGUpXTtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBldmVudHMgPSB7XG4gICAgdG9nZ2xlZXhwYW5kZWQ6ICd0b2dnbGVleHBhbmRlZCcsXG4gIH0gYXMgY29uc3Q7XG5cbiAgcHJpdmF0ZSBfbWVkaWFNYXRjaGVyID0gbmV3IFNiYk1lZGlhTWF0Y2hlckNvbnRyb2xsZXIodGhpcywge1xuICAgIFtTYmJNZWRpYVF1ZXJ5SG92ZXJdOiAobSkgPT4gKHRoaXMuX2lzSG92ZXIgPSBtKSxcbiAgfSk7XG5cbiAgcHJpdmF0ZSBfaXNIb3ZlcjogYm9vbGVhbiA9IHRoaXMuX21lZGlhTWF0Y2hlci5tYXRjaGVzKFNiYk1lZGlhUXVlcnlIb3ZlcikgPz8gZmFsc2U7XG4gIHByaXZhdGUgX3ByZXZpb3VzU2l6ZT86IHN0cmluZztcblxuICBwdWJsaWMgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/LignY2xpY2snLCAoKSA9PiB0aGlzLl9lbWl0RXhwYW5kZWRFdmVudCgpKTtcbiAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/LignbW91c2VlbnRlcicsICgpID0+IHRoaXMuX29uTW91c2VNb3ZlbWVudCh0cnVlKSk7XG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyPy4oJ21vdXNlbGVhdmUnLCAoKSA9PiB0aGlzLl9vbk1vdXNlTW92ZW1lbnQoZmFsc2UpKTtcbiAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/Lignc2xvdHRlZGNoYW5nZScsICgpID0+IHRoaXMuX3NldEljb25TdGF0ZSgpKTtcbiAgICB0aGlzLmFkZENvbnRyb2xsZXIoXG4gICAgICBuZXcgU2JiUHJvcGVydHlXYXRjaGVyQ29udHJvbGxlcih0aGlzLCAoKSA9PiB0aGlzLmNsb3Nlc3QoJ3NiYi1leHBhbnNpb24tcGFuZWwnKSwge1xuICAgICAgICBzaXplOiAocykgPT4ge1xuICAgICAgICAgIGlmICh0aGlzLl9wcmV2aW91c1NpemUpIHtcbiAgICAgICAgICAgIHRoaXMuaW50ZXJuYWxzLnN0YXRlcy5kZWxldGUoYHNpemUtJHt0aGlzLl9wcmV2aW91c1NpemV9YCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMuX3ByZXZpb3VzU2l6ZSA9IHMuc2l6ZTtcbiAgICAgICAgICBpZiAodGhpcy5fcHJldmlvdXNTaXplKSB7XG4gICAgICAgICAgICB0aGlzLmludGVybmFscy5zdGF0ZXMuYWRkKGBzaXplLSR7dGhpcy5fcHJldmlvdXNTaXplfWApO1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG4gICAgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKTtcbiAgICB0aGlzLnNsb3QgfHw9ICdoZWFkZXInO1xuICB9XG5cbiAgcHJpdmF0ZSBfZW1pdEV4cGFuZGVkRXZlbnQoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmRpc2FibGVkKSB7XG4gICAgICAvKiogTm90aWZpZXMgdGhhdCB0aGUgYHNiYi1leHBhbnNpb24tcGFuZWxgIGlzIGFib3V0IHRvIGV4cGFuZC9zaHJpbmsuICovXG4gICAgICB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCd0b2dnbGVleHBhbmRlZCcsIHsgYnViYmxlczogdHJ1ZSwgY29tcG9zZWQ6IHRydWUgfSkpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX29uTW91c2VNb3ZlbWVudCh0b2dnbGVEYXRhQXR0cmlidXRlOiBib29sZWFuKTogdm9pZCB7XG4gICAgY29uc3QgcGFyZW50OiBTYmJFeHBhbnNpb25QYW5lbEVsZW1lbnQgPSB0aGlzLmNsb3Nlc3QoJ3NiYi1leHBhbnNpb24tcGFuZWwnKSE7XG4gICAgLy8gVGhlIGBzYmIuaG92ZXItbXFgIGxvZ2ljIGhhcyBiZWVuIHJlbW92ZWQgZnJvbSBzY3NzLCBidXQgaXQgbXVzdCBiZSByZXBsaWNhdGVkIHRvIGhhdmUgdGhlIGNvcnJlY3QgYmVoYXZpb3Igb24gbW9iaWxlLlxuICAgIGlmICghdG9nZ2xlRGF0YUF0dHJpYnV0ZSB8fCAocGFyZW50ICYmIHRoaXMuX2lzSG92ZXIpKSB7XG4gICAgICDJtXN0YXRlQ29udHJvbGxlcihwYXJlbnQpLnRvZ2dsZSgndG9nZ2xlLWhvdmVyJywgdG9nZ2xlRGF0YUF0dHJpYnV0ZSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFRoZSA6c3RhdGUoaWNvbikgaXMgdXNlZCBieSB0aGUgJ3NiYi1leHBhbnNpb24tcGFuZWwnLlxuICAgKiBJdCBuZWVkcyB0byBiZSBzZXQgYmVmb3JlIHRoZSBAc2xvdGNoYW5nZSBldmVudCBidWJibGVzIHRvIHRoZSAnZXhwYW5zaW9uLXBhbmVsJ1xuICAgKiBidXQgYWZ0ZXIgdGhlICdTYmJTbG90U3RhdGVDb250cm9sbGVyJyBoYXMgcnVuLlxuICAgKi9cbiAgcHJpdmF0ZSBfc2V0SWNvblN0YXRlKCk6IHZvaWQge1xuICAgIHRoaXMudG9nZ2xlU3RhdGUoJ2ljb24nLCAhISh0aGlzLmljb25OYW1lIHx8IHRoaXMuaW50ZXJuYWxzLnN0YXRlcy5oYXMoJ2ljb24nKSkpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlbmRlclRlbXBsYXRlKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICAvLyBUT0RPOiBTdGlsbCBuZWNlc3Nhcnk/XG4gICAgdGhpcy5fc2V0SWNvblN0YXRlKCk7XG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8c3BhbiBjbGFzcz1cInNiYi1leHBhbnNpb24tcGFuZWwtaGVhZGVyX190aXRsZVwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cInNiYi1leHBhbnNpb24tcGFuZWwtaGVhZGVyX19pY29uXCI+ICR7dGhpcy5yZW5kZXJJY29uU2xvdCgpfSA8L3NwYW4+XG4gICAgICAgIDxzbG90Pjwvc2xvdD5cbiAgICAgIDwvc3Bhbj5cbiAgICAgICR7IXRoaXMuZGlzYWJsZWRcbiAgICAgICAgPyBodG1sYDxzcGFuIGNsYXNzPVwic2JiLWV4cGFuc2lvbi1wYW5lbC1oZWFkZXJfX3RvZ2dsZVwiPlxuICAgICAgICAgICAgPHNiYi1pY29uXG4gICAgICAgICAgICAgIG5hbWU9XCJjaGV2cm9uLXNtYWxsLWRvd24tbWVkaXVtXCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJzYmItZXhwYW5zaW9uLXBhbmVsLWhlYWRlcl9fdG9nZ2xlLWljb25cIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgPC9zYmItaWNvbj5cbiAgICAgICAgICA8L3NwYW4+YFxuICAgICAgICA6IG5vdGhpbmd9XG4gICAgYDtcbiAgfVxufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICAnc2JiLWV4cGFuc2lvbi1wYW5lbC1oZWFkZXInOiBTYmJFeHBhbnNpb25QYW5lbEhlYWRlckVsZW1lbnQ7XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztBQ3NCQSxJQUFhLGlDQUFiLGNBQW9ELCtCQUNsRCxpQkFBaUIscUJBQXFCLENBQ3ZDLENBQUE7O0FBQ2lDLE9BQUEsY0FBc0I7OztBQUMvQixPQUFBLFNBQXlCLENBQUMsaUJBQWlCLFVBQVUsK0JBQU0sQ0FBQzs7O0FBQzVELE9BQUEsU0FBUyxFQUM5QixnQkFBZ0Isa0JBQ1I7O0NBU1YsY0FBQTtBQUNFLFNBQU87QUFSRCxPQUFBLGdCQUFnQixJQUFJLDBCQUEwQixNQUFNLEdBQ3pELHNCQUFzQixNQUFPLEtBQUssV0FBVyxHQUMvQyxDQUFDO0FBRU0sT0FBQSxXQUFvQixLQUFLLGNBQWMsUUFBUSxtQkFBbUIsSUFBSTtBQUs1RSxPQUFLLG1CQUFtQixlQUFlLEtBQUssb0JBQW9CLENBQUM7QUFDakUsT0FBSyxtQkFBbUIsb0JBQW9CLEtBQUssaUJBQWlCLEtBQUssQ0FBQztBQUN4RSxPQUFLLG1CQUFtQixvQkFBb0IsS0FBSyxpQkFBaUIsTUFBTSxDQUFDO0FBQ3pFLE9BQUssbUJBQW1CLHVCQUF1QixLQUFLLGVBQWUsQ0FBQztBQUNwRSxPQUFLLGNBQ0gsSUFBSSw2QkFBNkIsWUFBWSxLQUFLLFFBQVEsc0JBQXNCLEVBQUUsRUFDaEYsT0FBTyxNQUFLO0FBQ1YsT0FBSSxLQUFLLGNBQ1AsTUFBSyxVQUFVLE9BQU8sT0FBTyxRQUFRLEtBQUssZ0JBQWdCO0FBRTVELFFBQUssZ0JBQWdCLEVBQUU7QUFDdkIsT0FBSSxLQUFLLGNBQ1AsTUFBSyxVQUFVLE9BQU8sSUFBSSxRQUFRLEtBQUssZ0JBQWdCO0tBRzVELENBQUMsQ0FDSDs7Q0FHYSxvQkFBaUI7QUFDL0IsUUFBTSxtQkFBbUI7QUFDekIsT0FBSyxTQUFTOztDQUdSLHFCQUFrQjtBQUN4QixNQUFJLENBQUMsS0FBSzs7QUFFUixPQUFLLGNBQWMsSUFBSSxNQUFNLGtCQUFrQjtHQUFFLFNBQVM7R0FBTSxVQUFVO0dBQU0sQ0FBQyxDQUFDOztDQUk5RSxpQkFBaUIscUJBQTRCO0VBQ25ELE1BQU0sU0FBbUMsS0FBSyxRQUFRLHNCQUF1QjtBQUU3RSxNQUFJLENBQUMsdUJBQXdCLFVBQVUsS0FBSyxTQUMxQyxrQkFBaUIsT0FBTyxDQUFDLE9BQU8sZ0JBQWdCLG9CQUFvQjs7Ozs7OztDQVNoRSxnQkFBYTtBQUNuQixPQUFLLFlBQVksUUFBUSxDQUFDLEVBQUUsS0FBSyxZQUFZLEtBQUssVUFBVSxPQUFPLElBQUksT0FBTyxFQUFFOztDQUcvRCxpQkFBYztBQUUvQixPQUFLLGVBQWU7QUFDcEIsU0FBTyxJQUFJOzswREFFMkMsS0FBSyxnQkFBZ0IsQ0FBQTs7O1FBR3ZFLENBQUMsS0FBSyxXQUNKLElBQUk7Ozs7OztxQkFPSixRQUFBIn0=
82
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwYW5zaW9uLXBhbmVsLWhlYWRlci5jb21wb25lbnQtREZUYV9vZzUuanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2V4cGFuc2lvbi1wYW5lbC9leHBhbnNpb24tcGFuZWwtaGVhZGVyL2V4cGFuc2lvbi1wYW5lbC1oZWFkZXIuc2Nzcz9pbmxpbmUiLCIuLi8uLi8uLi9zcmMvZWxlbWVudHMvZXhwYW5zaW9uLXBhbmVsL2V4cGFuc2lvbi1wYW5lbC1oZWFkZXIvZXhwYW5zaW9uLXBhbmVsLWhlYWRlci5jb21wb25lbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiQHVzZSAnLi4vLi4vY29yZS9zdHlsZXMnIGFzIHNiYjtcblxuOmhvc3Qge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuOmhvc3QoOnN0YXRlKHNpemUtcykpIHtcbiAgLS1zYmItZXhwYW5zaW9uLXBhbmVsLWhlYWRlci1nYXA6IHZhcigtLXNiYi1leHBhbnNpb24tcGFuZWwtaGVhZGVyLWdhcC1zKTtcbiAgLS1zYmItZXhwYW5zaW9uLXBhbmVsLWhlYWRlci1wYWRkaW5nLWJsb2NrOiB2YXIoLS1zYmItZXhwYW5zaW9uLXBhbmVsLWhlYWRlci1wYWRkaW5nLWJsb2NrLXMpO1xuICAtLXNiYi1leHBhbnNpb24tcGFuZWwtaGVhZGVyLXBhZGRpbmctaW5saW5lOiB2YXIoLS1zYmItZXhwYW5zaW9uLXBhbmVsLWhlYWRlci1wYWRkaW5nLWlubGluZS1zKTtcbn1cblxuOmhvc3QoOnN0YXRlKHNpemUtbCkpIHtcbiAgLS1zYmItZXhwYW5zaW9uLXBhbmVsLWhlYWRlci1nYXA6IHZhcigtLXNiYi1leHBhbnNpb24tcGFuZWwtaGVhZGVyLWdhcC1sKTtcbiAgLS1zYmItZXhwYW5zaW9uLXBhbmVsLWhlYWRlci1wYWRkaW5nLWJsb2NrOiB2YXIoLS1zYmItZXhwYW5zaW9uLXBhbmVsLWhlYWRlci1wYWRkaW5nLWJsb2NrLWwpO1xuICAtLXNiYi1leHBhbnNpb24tcGFuZWwtaGVhZGVyLXBhZGRpbmctaW5saW5lOiB2YXIoLS1zYmItZXhwYW5zaW9uLXBhbmVsLWhlYWRlci1wYWRkaW5nLWlubGluZS1sKTtcbn1cblxuOmhvc3QoOm5vdCg6c3RhdGUoc2l6ZS1zKSwgOnN0YXRlKHNpemUtbCkpKSB7XG4gIC0tc2JiLWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItZ2FwOiB2YXIoLS1zYmItZXhwYW5zaW9uLXBhbmVsLWhlYWRlci1nYXAtZGVmYXVsdCk7XG4gIC0tc2JiLWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItcGFkZGluZy1ibG9jazogdmFyKFxuICAgIC0tc2JiLWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItcGFkZGluZy1ibG9jay1kZWZhdWx0XG4gICk7XG4gIC0tc2JiLWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItcGFkZGluZy1pbmxpbmU6IHZhcihcbiAgICAtLXNiYi1leHBhbnNpb24tcGFuZWwtaGVhZGVyLXBhZGRpbmctaW5saW5lLWRlZmF1bHRcbiAgKTtcbn1cblxuOmhvc3QoOmlzKDpkaXNhYmxlZCwgW2Rpc2FibGVkLWludGVyYWN0aXZlXSkpIHtcbiAgLS1zYmItZXhwYW5zaW9uLXBhbmVsLWhlYWRlci1jdXJzb3I6IHZhcigtLXNiYi1jdXJzb3ItZGVmYXVsdCk7XG4gIC0tc2JiLWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItdGV4dC1jb2xvcjogbGlnaHQtZGFyayhcbiAgICB2YXIoLS1zYmItY29sb3ItZ3Jhbml0ZSksXG4gICAgdmFyKC0tc2JiLWNvbG9yLXN0b3JtKVxuICApO1xuXG4gIEBpbmNsdWRlIHNiYi5pZi1mb3JjZWQtY29sb3JzIHtcbiAgICAtLXNiYi1leHBhbnNpb24tcGFuZWwtaGVhZGVyLXRleHQtY29sb3I6IEdyYXlUZXh0O1xuICB9XG59XG5cbjpob3N0KDpmb2N1cy12aXNpYmxlKSB7XG4gIEBpbmNsdWRlIHNiYi5mb2N1cy1vdXRsaW5lO1xuXG4gIG91dGxpbmUtb2Zmc2V0OiB2YXIoLS1zYmItc3BhY2luZy1maXhlZC0xeCk7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXNiYi1leHBhbnNpb24tcGFuZWwtYm9yZGVyLXJhZGl1cyk7XG59XG5cbi5zYmItZXhwYW5zaW9uLXBhbmVsLWhlYWRlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogdmFyKC0tc2JiLWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItanVzdGlmeS1jb250ZW50KTtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiB2YXIoLS1zYmItZXhwYW5zaW9uLXBhbmVsLWhlYWRlci1nYXApO1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZzogdmFyKC0tc2JiLWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItcGFkZGluZy1ibG9jaylcbiAgICB2YXIoLS1zYmItZXhwYW5zaW9uLXBhbmVsLWhlYWRlci1wYWRkaW5nLWlubGluZSk7XG4gIHRleHQtYWxpZ246IHN0YXJ0O1xuICBjdXJzb3I6IHZhcigtLXNiYi1leHBhbnNpb24tcGFuZWwtaGVhZGVyLWN1cnNvcik7XG4gIGNvbG9yOiB2YXIoLS1zYmItZXhwYW5zaW9uLXBhbmVsLWhlYWRlci10ZXh0LWNvbG9yKTtcbiAgZm9udC1zaXplOiB2YXIoLS1zYmItZXhwYW5zaW9uLXBhbmVsLWhlYWRlci1mb250LXNpemUpO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBsZXR0ZXItc3BhY2luZzogdmFyKC0tc2JiLXR5cG8tbGV0dGVyLXNwYWNpbmctdGV4dCk7XG4gIGxpbmUtaGVpZ2h0OiB2YXIoLS1zYmItdHlwby1saW5lLWhlaWdodC10ZXh0KTtcbiAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLnNiYi1leHBhbnNpb24tcGFuZWwtaGVhZGVyX190aXRsZSxcbi5zYmItZXhwYW5zaW9uLXBhbmVsLWhlYWRlcl9fdG9nZ2xlLFxuLnNiYi1leHBhbnNpb24tcGFuZWwtaGVhZGVyX19pY29uIHtcbiAgZGlzcGxheTogZmxleDtcbn1cblxuLnNiYi1leHBhbnNpb24tcGFuZWwtaGVhZGVyX19pY29uIHtcbiAgd2lkdGg6IHZhcigtLXNiYi1leHBhbnNpb24tcGFuZWwtaWNvbi1zaXplKTtcblxuICAtLXNiYi1pY29uLXN2Zy13aWR0aDogdmFyKC0tc2JiLWV4cGFuc2lvbi1wYW5lbC1pY29uLXNpemUpO1xuICAtLXNiYi1pY29uLXN2Zy1oZWlnaHQ6IHZhcigtLXNiYi1leHBhbnNpb24tcGFuZWwtaWNvbi1zaXplKTtcblxuICA6aG9zdCg6bm90KDpzdGF0ZShzbG90dGVkLWljb24pLCA6c3RhdGUoaGFzLWljb24tbmFtZSkpKSAmIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5cbi5zYmItZXhwYW5zaW9uLXBhbmVsLWhlYWRlcl9fdGl0bGUge1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IHZhcigtLXNiYi1leHBhbnNpb24tcGFuZWwtdGl0bGUtZ2FwKTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAvLyBBbGlnbiB3aXRoIHRvZ2dsZSBpY29uXG4gIG1pbi1oZWlnaHQ6IHZhcigtLXNiYi1zaXplLWljb24tdWktbWVkaXVtKTtcbn1cblxuLnNiYi1leHBhbnNpb24tcGFuZWwtaGVhZGVyX190b2dnbGUtaWNvbiB7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSB2YXIoLS1zYmItZGlzYWJsZS1hbmltYXRpb24tZHVyYXRpb24sIHZhcigtLXNiYi1hbmltYXRpb24tZHVyYXRpb24tNHgpKTtcblxuICA6aG9zdChbYXJpYS1leHBhbmRlZF06bm90KFthcmlhLWV4cGFuZGVkPSdmYWxzZSddKSkgJiB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoLTE4MGRlZyk7XG4gIH1cbn1cbiIsImltcG9ydCB7IHR5cGUgQ1NTUmVzdWx0R3JvdXAsIGh0bWwsIG5vdGhpbmcsIHR5cGUgVGVtcGxhdGVSZXN1bHQsIHVuc2FmZUNTUyB9IGZyb20gJ2xpdCc7XG5cbmltcG9ydCB7XG4gIGJveFNpemluZ1N0eWxlcyxcbiAgU2JiQnV0dG9uQmFzZUVsZW1lbnQsXG4gIFNiYkRpc2FibGVkVGFiSW5kZXhBY3Rpb25NaXhpbixcbiAgU2JiTWVkaWFNYXRjaGVyQ29udHJvbGxlcixcbiAgU2JiTWVkaWFRdWVyeUhvdmVyLFxuICBTYmJQcm9wZXJ0eVdhdGNoZXJDb250cm9sbGVyLFxuICDJtXN0YXRlQ29udHJvbGxlcixcbn0gZnJvbSAnLi4vLi4vY29yZS50cyc7XG5pbXBvcnQgeyBTYmJJY29uTmFtZU1peGluIH0gZnJvbSAnLi4vLi4vaWNvbi5wdXJlLnRzJztcbmltcG9ydCB0eXBlIHsgU2JiRXhwYW5zaW9uUGFuZWxFbGVtZW50IH0gZnJvbSAnLi4vZXhwYW5zaW9uLXBhbmVsL2V4cGFuc2lvbi1wYW5lbC5jb21wb25lbnQudHMnO1xuXG5pbXBvcnQgc3R5bGUgZnJvbSAnLi9leHBhbnNpb24tcGFuZWwtaGVhZGVyLnNjc3M/aW5saW5lJztcblxuLyoqXG4gKiBJdCBhY3RzIGFzIGEgbmF0aXZlIGBzdW1tYXJ5YCB0YWcgZm9yIHRoZSBgc2JiLWV4cGFuc2lvbi1wYW5lbGAgY29tcG9uZW50LlxuICpcbiAqIEBzbG90IC0gVXNlIHRoZSB1bm5hbWVkIHNsb3QgdG8gYWRkIGNvbnRlbnQgdG8gdGhlIGBzYmItZXhwYW5zaW9uLXBhbmVsLWhlYWRlcmAuXG4gKiBAc2xvdCBpY29uIC0gU2xvdCB1c2VkIHRvIHJlbmRlciB0aGUgYHNiYi1leHBhbnNpb24tcGFuZWwtaGVhZGVyYCBpY29uLlxuICovXG5leHBvcnQgY2xhc3MgU2JiRXhwYW5zaW9uUGFuZWxIZWFkZXJFbGVtZW50IGV4dGVuZHMgU2JiRGlzYWJsZWRUYWJJbmRleEFjdGlvbk1peGluKFxuICBTYmJJY29uTmFtZU1peGluKFNiYkJ1dHRvbkJhc2VFbGVtZW50KSxcbikge1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHJlYWRvbmx5IGVsZW1lbnROYW1lOiBzdHJpbmcgPSAnc2JiLWV4cGFuc2lvbi1wYW5lbC1oZWFkZXInO1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHN0eWxlczogQ1NTUmVzdWx0R3JvdXAgPSBbYm94U2l6aW5nU3R5bGVzLCB1bnNhZmVDU1Moc3R5bGUpXTtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBldmVudHMgPSB7XG4gICAgdG9nZ2xlZXhwYW5kZWQ6ICd0b2dnbGVleHBhbmRlZCcsXG4gIH0gYXMgY29uc3Q7XG5cbiAgcHJpdmF0ZSBfbWVkaWFNYXRjaGVyID0gbmV3IFNiYk1lZGlhTWF0Y2hlckNvbnRyb2xsZXIodGhpcywge1xuICAgIFtTYmJNZWRpYVF1ZXJ5SG92ZXJdOiAobSkgPT4gKHRoaXMuX2lzSG92ZXIgPSBtKSxcbiAgfSk7XG5cbiAgcHJpdmF0ZSBfaXNIb3ZlcjogYm9vbGVhbiA9IHRoaXMuX21lZGlhTWF0Y2hlci5tYXRjaGVzKFNiYk1lZGlhUXVlcnlIb3ZlcikgPz8gZmFsc2U7XG4gIHByaXZhdGUgX3ByZXZpb3VzU2l6ZT86IHN0cmluZztcblxuICBwdWJsaWMgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/LignY2xpY2snLCAoKSA9PiB0aGlzLl9lbWl0RXhwYW5kZWRFdmVudCgpKTtcbiAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/LignbW91c2VlbnRlcicsICgpID0+IHRoaXMuX29uTW91c2VNb3ZlbWVudCh0cnVlKSk7XG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyPy4oJ21vdXNlbGVhdmUnLCAoKSA9PiB0aGlzLl9vbk1vdXNlTW92ZW1lbnQoZmFsc2UpKTtcbiAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/Lignc2xvdHRlZGNoYW5nZScsICgpID0+IHRoaXMuX3NldEljb25TdGF0ZSgpKTtcbiAgICB0aGlzLmFkZENvbnRyb2xsZXIoXG4gICAgICBuZXcgU2JiUHJvcGVydHlXYXRjaGVyQ29udHJvbGxlcih0aGlzLCAoKSA9PiB0aGlzLmNsb3Nlc3QoJ3NiYi1leHBhbnNpb24tcGFuZWwnKSwge1xuICAgICAgICBzaXplOiAocykgPT4ge1xuICAgICAgICAgIGlmICh0aGlzLl9wcmV2aW91c1NpemUpIHtcbiAgICAgICAgICAgIHRoaXMuaW50ZXJuYWxzLnN0YXRlcy5kZWxldGUoYHNpemUtJHt0aGlzLl9wcmV2aW91c1NpemV9YCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMuX3ByZXZpb3VzU2l6ZSA9IHMuc2l6ZTtcbiAgICAgICAgICBpZiAodGhpcy5fcHJldmlvdXNTaXplKSB7XG4gICAgICAgICAgICB0aGlzLmludGVybmFscy5zdGF0ZXMuYWRkKGBzaXplLSR7dGhpcy5fcHJldmlvdXNTaXplfWApO1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG4gICAgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKTtcbiAgICB0aGlzLnNsb3QgfHw9ICdoZWFkZXInO1xuICB9XG5cbiAgcHJpdmF0ZSBfZW1pdEV4cGFuZGVkRXZlbnQoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmRpc2FibGVkKSB7XG4gICAgICAvKiogTm90aWZpZXMgdGhhdCB0aGUgYHNiYi1leHBhbnNpb24tcGFuZWxgIGlzIGFib3V0IHRvIGV4cGFuZC9zaHJpbmsuICovXG4gICAgICB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCd0b2dnbGVleHBhbmRlZCcsIHsgYnViYmxlczogdHJ1ZSwgY29tcG9zZWQ6IHRydWUgfSkpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX29uTW91c2VNb3ZlbWVudCh0b2dnbGVEYXRhQXR0cmlidXRlOiBib29sZWFuKTogdm9pZCB7XG4gICAgY29uc3QgcGFyZW50OiBTYmJFeHBhbnNpb25QYW5lbEVsZW1lbnQgPSB0aGlzLmNsb3Nlc3QoJ3NiYi1leHBhbnNpb24tcGFuZWwnKSE7XG4gICAgLy8gVGhlIGBzYmIuaG92ZXItbXFgIGxvZ2ljIGhhcyBiZWVuIHJlbW92ZWQgZnJvbSBzY3NzLCBidXQgaXQgbXVzdCBiZSByZXBsaWNhdGVkIHRvIGhhdmUgdGhlIGNvcnJlY3QgYmVoYXZpb3Igb24gbW9iaWxlLlxuICAgIGlmICghdG9nZ2xlRGF0YUF0dHJpYnV0ZSB8fCAocGFyZW50ICYmIHRoaXMuX2lzSG92ZXIpKSB7XG4gICAgICDJtXN0YXRlQ29udHJvbGxlcihwYXJlbnQpLnRvZ2dsZSgndG9nZ2xlLWhvdmVyJywgdG9nZ2xlRGF0YUF0dHJpYnV0ZSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFRoZSA6c3RhdGUoaWNvbikgaXMgdXNlZCBieSB0aGUgJ3NiYi1leHBhbnNpb24tcGFuZWwnLlxuICAgKiBJdCBuZWVkcyB0byBiZSBzZXQgYmVmb3JlIHRoZSBAc2xvdGNoYW5nZSBldmVudCBidWJibGVzIHRvIHRoZSAnZXhwYW5zaW9uLXBhbmVsJ1xuICAgKiBidXQgYWZ0ZXIgdGhlICdTYmJTbG90U3RhdGVDb250cm9sbGVyJyBoYXMgcnVuLlxuICAgKi9cbiAgcHJpdmF0ZSBfc2V0SWNvblN0YXRlKCk6IHZvaWQge1xuICAgIHRoaXMudG9nZ2xlU3RhdGUoJ2ljb24nLCAhISh0aGlzLmljb25OYW1lIHx8IHRoaXMubWF0Y2hlcz8uKCc6c3RhdGUoaWNvbiknKSkpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlbmRlclRlbXBsYXRlKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICAvLyBUT0RPOiBTdGlsbCBuZWNlc3Nhcnk/XG4gICAgdGhpcy5fc2V0SWNvblN0YXRlKCk7XG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8c3BhbiBjbGFzcz1cInNiYi1leHBhbnNpb24tcGFuZWwtaGVhZGVyX190aXRsZVwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cInNiYi1leHBhbnNpb24tcGFuZWwtaGVhZGVyX19pY29uXCI+ICR7dGhpcy5yZW5kZXJJY29uU2xvdCgpfSA8L3NwYW4+XG4gICAgICAgIDxzbG90Pjwvc2xvdD5cbiAgICAgIDwvc3Bhbj5cbiAgICAgICR7IXRoaXMuZGlzYWJsZWRcbiAgICAgICAgPyBodG1sYDxzcGFuIGNsYXNzPVwic2JiLWV4cGFuc2lvbi1wYW5lbC1oZWFkZXJfX3RvZ2dsZVwiPlxuICAgICAgICAgICAgPHNiYi1pY29uXG4gICAgICAgICAgICAgIG5hbWU9XCJjaGV2cm9uLXNtYWxsLWRvd24tbWVkaXVtXCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJzYmItZXhwYW5zaW9uLXBhbmVsLWhlYWRlcl9fdG9nZ2xlLWljb25cIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgPC9zYmItaWNvbj5cbiAgICAgICAgICA8L3NwYW4+YFxuICAgICAgICA6IG5vdGhpbmd9XG4gICAgYDtcbiAgfVxufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICAnc2JiLWV4cGFuc2lvbi1wYW5lbC1oZWFkZXInOiBTYmJFeHBhbnNpb25QYW5lbEhlYWRlckVsZW1lbnQ7XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztBQ3NCQSxJQUFhLGlDQUFiLGNBQW9ELCtCQUNsRCxpQkFBaUIscUJBQXFCLENBQ3ZDLENBQUE7O0FBQ2lDLE9BQUEsY0FBc0I7OztBQUMvQixPQUFBLFNBQXlCLENBQUMsaUJBQWlCLFVBQVUsK0JBQU0sQ0FBQzs7O0FBQzVELE9BQUEsU0FBUyxFQUM5QixnQkFBZ0Isa0JBQ1I7O0NBU1YsY0FBQTtBQUNFLFNBQU87QUFSRCxPQUFBLGdCQUFnQixJQUFJLDBCQUEwQixNQUFNLEdBQ3pELHNCQUFzQixNQUFPLEtBQUssV0FBVyxHQUMvQyxDQUFDO0FBRU0sT0FBQSxXQUFvQixLQUFLLGNBQWMsUUFBUSxtQkFBbUIsSUFBSTtBQUs1RSxPQUFLLG1CQUFtQixlQUFlLEtBQUssb0JBQW9CLENBQUM7QUFDakUsT0FBSyxtQkFBbUIsb0JBQW9CLEtBQUssaUJBQWlCLEtBQUssQ0FBQztBQUN4RSxPQUFLLG1CQUFtQixvQkFBb0IsS0FBSyxpQkFBaUIsTUFBTSxDQUFDO0FBQ3pFLE9BQUssbUJBQW1CLHVCQUF1QixLQUFLLGVBQWUsQ0FBQztBQUNwRSxPQUFLLGNBQ0gsSUFBSSw2QkFBNkIsWUFBWSxLQUFLLFFBQVEsc0JBQXNCLEVBQUUsRUFDaEYsT0FBTyxNQUFLO0FBQ1YsT0FBSSxLQUFLLGNBQ1AsTUFBSyxVQUFVLE9BQU8sT0FBTyxRQUFRLEtBQUssZ0JBQWdCO0FBRTVELFFBQUssZ0JBQWdCLEVBQUU7QUFDdkIsT0FBSSxLQUFLLGNBQ1AsTUFBSyxVQUFVLE9BQU8sSUFBSSxRQUFRLEtBQUssZ0JBQWdCO0tBRzVELENBQUMsQ0FDSDs7Q0FHYSxvQkFBaUI7QUFDL0IsUUFBTSxtQkFBbUI7QUFDekIsT0FBSyxTQUFTOztDQUdSLHFCQUFrQjtBQUN4QixNQUFJLENBQUMsS0FBSzs7QUFFUixPQUFLLGNBQWMsSUFBSSxNQUFNLGtCQUFrQjtHQUFFLFNBQVM7R0FBTSxVQUFVO0dBQU0sQ0FBQyxDQUFDOztDQUk5RSxpQkFBaUIscUJBQTRCO0VBQ25ELE1BQU0sU0FBbUMsS0FBSyxRQUFRLHNCQUF1QjtBQUU3RSxNQUFJLENBQUMsdUJBQXdCLFVBQVUsS0FBSyxTQUMxQyxrQkFBaUIsT0FBTyxDQUFDLE9BQU8sZ0JBQWdCLG9CQUFvQjs7Ozs7OztDQVNoRSxnQkFBYTtBQUNuQixPQUFLLFlBQVksUUFBUSxDQUFDLEVBQUUsS0FBSyxZQUFZLEtBQUssVUFBVSxrQ0FBZSxFQUFFOztDQUc1RCxpQkFBYztBQUUvQixPQUFLLGVBQWU7QUFDcEIsU0FBTyxJQUFJOzswREFFMkMsS0FBSyxnQkFBZ0IsQ0FBQTs7O1FBR3ZFLENBQUMsS0FBSyxXQUNKLElBQUk7Ozs7OztxQkFPSixRQUFBIn0=
@@ -1,5 +1,5 @@
1
1
  import { t as SbbExpansionPanelContentElement } from "./expansion-panel-content.component-BM_JVsIs.js";
2
- import { t as SbbExpansionPanelHeaderElement } from "./expansion-panel-header.component-QbxqMGKG.js";
2
+ import { t as SbbExpansionPanelHeaderElement } from "./expansion-panel-header.component-DFTa_og5.js";
3
3
  import { t as SbbExpansionPanelElement } from "./expansion-panel.component-BBESRMTr.js";
4
4
  import "./expansion-panel.pure.js";
5
5
  //#region src/elements/expansion-panel.ts
@@ -1,4 +1,4 @@
1
1
  import { t as SbbExpansionPanelContentElement } from "./expansion-panel-content.component-BM_JVsIs.js";
2
- import { t as SbbExpansionPanelHeaderElement } from "./expansion-panel-header.component-QbxqMGKG.js";
2
+ import { t as SbbExpansionPanelHeaderElement } from "./expansion-panel-header.component-DFTa_og5.js";
3
3
  import { t as SbbExpansionPanelElement } from "./expansion-panel.component-BBESRMTr.js";
4
4
  export { SbbExpansionPanelContentElement, SbbExpansionPanelElement, SbbExpansionPanelHeaderElement };
@@ -1,2 +1,2 @@
1
- import { t as SbbOptionElement } from "../../option.component-BbrXKO7i.js";
1
+ import { t as SbbOptionElement } from "../../option.component-BPHnz8y-.js";
2
2
  export { SbbOptionElement };
@@ -59,7 +59,7 @@ var SbbOptionElement = class extends SbbOptionBaseElement {
59
59
  }));
60
60
  }
61
61
  _isMultiple() {
62
- return !this.hydrationRequired && this.internals.states.has("multiple");
62
+ return !this.hydrationRequired && this.matches?.(":is(:state(multiple),[state--multiple])");
63
63
  }
64
64
  _handleNegativeChange(ancestor) {
65
65
  this.toggleState("negative", ancestor.negative);
@@ -129,4 +129,4 @@ var SbbOptionElement = class extends SbbOptionBaseElement {
129
129
  //#endregion
130
130
  export { SbbOptionElement as t };
131
131
 
132
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9uLmNvbXBvbmVudC1CYnJYS083aS5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZWxlbWVudHMvb3B0aW9uL29wdGlvbi9vcHRpb24uc2Nzcz9pbmxpbmUiLCIuLi8uLi8uLi9zcmMvZWxlbWVudHMvb3B0aW9uL29wdGlvbi9vcHRpb24uY29tcG9uZW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbIkB1c2UgJy4uLy4uL2NvcmUvc3R5bGVzJyBhcyBzYmI7XG5cbjpob3N0IHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNiYi1vcHRpb24tYmFja2dyb3VuZC1jb2xvcik7XG4gIGZvbnQtc2l6ZTogdmFyKC0tc2JiLW9wdGlvbi1mb250LXNpemUpO1xuICBsZXR0ZXItc3BhY2luZzogdmFyKC0tc2JiLXR5cG8tbGV0dGVyLXNwYWNpbmctdGV4dCk7XG59XG5cbjpob3N0KDpzdGF0ZShuZWdhdGl2ZSkpIHtcbiAgLS1zYmItb3B0aW9uLWNvbG9yOiB2YXIoLS1zYmItY29sb3ItMy1uZWdhdGl2ZSk7XG4gIC0tc2JiLW9wdGlvbi1pY29uLWNvbG9yOiB2YXIoLS1zYmItY29sb3ItNSk7XG4gIC0tc2JiLW9wdGlvbi1iYWNrZ3JvdW5kLWNvbG9yLWhvdmVyOiB2YXIoLS1zYmItY29sb3ItbWlkbmlnaHQpO1xuICAtLXNiYi1vcHRpb24tYmFja2dyb3VuZC1jb2xvci1hY3RpdmU6IHZhcigtLXNiYi1iYWNrZ3JvdW5kLWNvbG9yLTQtbmVnYXRpdmUpO1xuICAtLXNiYi1vcHRpb24tZGlzYWJsZWQtYm9yZGVyLWNvbG9yOiB2YXIoLS1zYmItYm9yZGVyLWNvbG9yLTUpO1xuICAtLXNiYi1vcHRpb24tZGlzYWJsZWQtYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2JiLWJhY2tncm91bmQtY29sb3ItMy1uZWdhdGl2ZSk7XG4gIC0tc2JiLWZvY3VzLW91dGxpbmUtY29sb3I6IHZhcigtLXNiYi1mb2N1cy1vdXRsaW5lLWNvbG9yLWRhcmspO1xufVxuXG46aG9zdCg6aG92ZXI6bm90KDpzdGF0ZShkaXNhYmxlZCkpKSB7XG4gIEBpbmNsdWRlIHNiYi5ob3Zlci1tcSgkaG92ZXI6IHRydWUpIHtcbiAgICAtLXNiYi1vcHRpb24tYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2JiLW9wdGlvbi1iYWNrZ3JvdW5kLWNvbG9yLWhvdmVyKTtcbiAgfVxufVxuXG46aG9zdCg6YWN0aXZlOm5vdCg6c3RhdGUoZGlzYWJsZWQpKSkge1xuICAtLXNiYi1vcHRpb24tYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2JiLW9wdGlvbi1iYWNrZ3JvdW5kLWNvbG9yLWFjdGl2ZSk7XG59XG5cbi8vIElmIGhpZ2hsaWdodGluZyBpcyBlbmFibGVkLCBoaWRlIHRoZSBvcmlnaW5hbCBzbG90IGNvbnRlbnRcbjpob3N0KDpub3QoOnN0YXRlKGRpc2FibGUtaGlnaGxpZ2h0KSkpIHtcbiAgLnNiYi1vcHRpb25fX2xhYmVsIHNsb3Qge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cblxuOmhvc3QoOnN0YXRlKGRpc2FibGVkKSkge1xuICAtLXNiYi1vcHRpb24tY3Vyc29yOiB2YXIoLS1zYmItY3Vyc29yLWRlZmF1bHQpO1xuXG4gIEBpbmNsdWRlIHNiYi5pZi1mb3JjZWQtY29sb3JzIHtcbiAgICAtLXNiYi1vcHRpb24tY29sb3I6IEdyYXlUZXh0O1xuICB9XG59XG5cbjpob3N0KDpzdGF0ZSh2YXJpYW50LXNlbGVjdCkpIHtcbiAgLS1zYmItb3B0aW9uLWNvbHVtbi1nYXA6IHZhcigtLXNiYi1zcGFjaW5nLWZpeGVkLTJ4KTtcbiAgLS1zYmItb3B0aW9uLWp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2Vlbjtcbn1cblxuOmhvc3QoOnN0YXRlKHZhcmlhbnQtc2VsZWN0KTpzdGF0ZShtdWx0aXBsZSkpIHtcbiAgLS1zYmItb3B0aW9uLWp1c3RpZnktY29udGVudDogc3RhcnQ7XG59XG5cbjpob3N0KDpzdGF0ZShhY3RpdmUpKSB7XG4gIC0tc2JiLW9wdGlvbi1mb2N1cy1vdXRsaW5lLWNvbG9yOiB2YXIoLS1zYmItZm9jdXMtb3V0bGluZS1jb2xvcik7XG59XG5cbi5zYmItb3B0aW9uX19sYWJlbC0taGlnaGxpZ2h0IHtcbiAgOmhvc3QoOm5vdCg6aXMoOnN0YXRlKGRpc2FibGVkKSkpKSAmIHtcbiAgICBAaW5jbHVkZSBzYmIudGV4dC0tYm9sZDtcbiAgICBAaW5jbHVkZSBzYmIuaWYtZm9yY2VkLWNvbG9ycyB7XG4gICAgICBjb2xvcjogSGlnaGxpZ2h0O1xuICAgIH1cbiAgfVxufVxuXG4uc2JiLW9wdGlvbiB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogZmxleDtcbiAgbWluLWhlaWdodDogdmFyKC0tc2JiLW9wdGlvbi1taW4taGVpZ2h0KTtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgY29sdW1uLWdhcDogdmFyKC0tc2JiLW9wdGlvbi1jb2x1bW4tZ2FwKTtcbiAgcGFkZGluZy1pbmxpbmU6IHZhcigtLXNiYi1vcHRpb24tcGFkZGluZy1pbmxpbmUpO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHZhcigtLXNiYi1vcHRpb24tanVzdGlmeS1jb250ZW50KTtcbiAgY29sb3I6IHZhcigtLXNiYi1vcHRpb24tY29sb3IpO1xuICBjdXJzb3I6IHZhcigtLXNiYi1vcHRpb24tY3Vyc29yKTtcbiAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgLXdlYmtpdC10ZXh0LWZpbGwtY29sb3I6IHZhcigtLXNiYi1vcHRpb24tY29sb3IpO1xuXG4gIC8vIFdlIHVzZSB0aGUgcHNldWRvIGVsZW1lbnQgdG8gZGlzcGxheSB0aGUgZm9jdXMgb3V0bGluZSAoaW5saW5lIGluIHRoaXMgY2FzZSlcbiAgJjo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBpbnNldDogdmFyKC0tc2JiLW9wdGlvbi1mb2N1cy1vdXRsaW5lLWluc2V0KTtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICBib3JkZXI6IHZhcigtLXNiYi1mb2N1cy1vdXRsaW5lLXdpZHRoKSBzb2xpZCB2YXIoLS1zYmItb3B0aW9uLWZvY3VzLW91dGxpbmUtY29sb3IpO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXNiYi1vcHRpb24tYm9yZGVyLXJhZGl1cyk7XG4gIH1cblxuICAvLyBBZGQgaW5uZXIgYm9yZGVyIGFuZCBiYWNrZ3JvdW5kIGZvciBkaXNhYmxlZCBvcHRpb24gd2hlbiBpdCdzIG5vdCBtdWx0aXBsZVxuICA6aG9zdCg6c3RhdGUoZGlzYWJsZWQpOm5vdCg6c3RhdGUobXVsdGlwbGUpKSkgJiB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHotaW5kZXg6IDA7XG5cbiAgICAmOjpiZWZvcmUge1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGluc2V0OiAje3NiYi5weC10by1yZW0tYnVpbGQoNil9O1xuICAgICAgYm9yZGVyOiB2YXIoLS1zYmItYm9yZGVyLXdpZHRoLTF4KSBkYXNoZWQgdmFyKC0tc2JiLW9wdGlvbi1kaXNhYmxlZC1ib3JkZXItY29sb3IpO1xuICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tc2JiLWJvcmRlci1yYWRpdXMtMngpO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2JiLW9wdGlvbi1kaXNhYmxlZC1iYWNrZ3JvdW5kLWNvbG9yKTtcbiAgICAgIHotaW5kZXg6IC0xO1xuXG4gICAgICBAaW5jbHVkZSBzYmIuaWYtZm9yY2VkLWNvbG9ycyB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogR3JheVRleHQ7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi5zYmItb3B0aW9uX19pY29uIHtcbiAgZGlzcGxheTogZmxleDtcbiAgbWluLXdpZHRoOiB2YXIoLS1zYmItc2l6ZS1pY29uLXVpLXNtYWxsKTtcbiAgbWluLWhlaWdodDogdmFyKC0tc2JiLXNpemUtaWNvbi11aS1zbWFsbCk7XG4gIGNvbG9yOiB2YXIoLS1zYmItb3B0aW9uLWljb24tY29sb3IpO1xuXG4gIDpob3N0KDpub3QoOnN0YXRlKHNsb3R0ZWQtaWNvbiksIDpzdGF0ZShoYXMtaWNvbi1uYW1lKSkpICYge1xuICAgIC8vIENhbiBiZSBvdmVycmlkZGVuIGJ5IHRoZSAncHJlc2VydmUtaWNvbi1zcGFjZScgb24gdGhlIGF1dG9jb21wbGV0ZVxuICAgIGRpc3BsYXk6IHZhcigtLXNiYi1vcHRpb24taWNvbi1jb250YWluZXItZGlzcGxheSwgbm9uZSk7XG4gIH1cbn1cblxuLnNiYi1vcHRpb25fX2xhYmVsIHtcbiAgdGV4dC1vdmVyZmxvdzogdmFyKC0tc2JiLW9wdGlvbi10ZXh0LW92ZXJmbG93KTtcbiAgb3ZlcmZsb3c6IHZhcigtLXNiYi1vcHRpb24tb3ZlcmZsb3cpO1xuICB3aGl0ZS1zcGFjZTogdmFyKC0tc2JiLW9wdGlvbi13aGl0ZS1zcGFjZSwgaW5pdGlhbCk7XG59XG4iLCJpbXBvcnQgeyB0eXBlIENTU1Jlc3VsdEdyb3VwLCBodG1sLCBub3RoaW5nLCB0eXBlIFRlbXBsYXRlUmVzdWx0LCB1bnNhZmVDU1MgfSBmcm9tICdsaXQnO1xuXG5pbXBvcnQgdHlwZSB7IFNiYkF1dG9jb21wbGV0ZUVsZW1lbnQgfSBmcm9tICcuLi8uLi9hdXRvY29tcGxldGUucHVyZS50cyc7XG5pbXBvcnQgdHlwZSB7IFNiYkVsZW1lbnRUeXBlIH0gZnJvbSAnLi4vLi4vY29yZS50cyc7XG5pbXBvcnQgeyBTYmJQcm9wZXJ0eVdhdGNoZXJDb250cm9sbGVyIH0gZnJvbSAnLi4vLi4vY29yZS50cyc7XG5pbXBvcnQgdHlwZSB7IFNiYlNlbGVjdEVsZW1lbnQgfSBmcm9tICcuLi8uLi9zZWxlY3QucHVyZS50cyc7XG5pbXBvcnQgeyBTYmJWaXN1YWxDaGVja2JveEVsZW1lbnQgfSBmcm9tICcuLi8uLi92aXN1YWwtY2hlY2tib3gucHVyZS50cyc7XG5cbmltcG9ydCB7IFNiYk9wdGlvbkJhc2VFbGVtZW50IH0gZnJvbSAnLi9vcHRpb24tYmFzZS1lbGVtZW50LnRzJztcbmltcG9ydCBzdHlsZSBmcm9tICcuL29wdGlvbi5zY3NzP2lubGluZSc7XG5cbmV4cG9ydCB0eXBlIFNiYk9wdGlvblZhcmlhbnQgPSAnYXV0b2NvbXBsZXRlJyB8ICdzZWxlY3QnIHwgbnVsbDtcblxuLyoqXG4gKiBJdCBkaXNwbGF5cyBvbiBvcHRpb24gaXRlbSB3aGljaCBjYW4gYmUgdXNlZCBpbiBgc2JiLXNlbGVjdGAgb3IgYHNiYi1hdXRvY29tcGxldGVgLlxuICpcbiAqIEBzbG90IC0gVXNlIHRoZSB1bm5hbWVkIHNsb3QgdG8gYWRkIGNvbnRlbnQgdG8gdGhlIG9wdGlvbiBsYWJlbC5cbiAqIEBzbG90IGljb24gLSBVc2UgdGhpcyBzbG90IHRvIHByb3ZpZGUgYW4gaWNvbi4gSWYgYGljb24tbmFtZWAgaXMgc2V0LCBhIHNiYi1pY29uIHdpbGwgYmUgdXNlZC5cbiAqIEBjc3Nwcm9wIFstLXNiYi1vcHRpb24taWNvbi1jb250YWluZXItZGlzcGxheT1ub25lXSAtIENhbiBiZSB1c2VkIHRvIHJlc2VydmUgc3BhY2UgZXZlblxuICogd2hlbiBwcmVzZXJ2ZS1pY29uLXNwYWNlIG9uIGF1dG9jb21wbGV0ZSBpcyBub3Qgc2V0IG9yIGljb25OYW1lIGlzIG5vdCBzZXQuXG4gKiBAb3ZlcnJpZGVUeXBlIHZhbHVlIC0gKFQgPSBzdHJpbmcpIHwgbnVsbFxuICovXG5leHBvcnQgY2xhc3MgU2JiT3B0aW9uRWxlbWVudDxUID0gc3RyaW5nPiBleHRlbmRzIFNiYk9wdGlvbkJhc2VFbGVtZW50PFQ+IHtcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSByZWFkb25seSBlbGVtZW50TmFtZTogc3RyaW5nID0gJ3NiYi1vcHRpb24nO1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIGVsZW1lbnREZXBlbmRlbmNpZXM6IFNiYkVsZW1lbnRUeXBlW10gPSBbU2JiVmlzdWFsQ2hlY2tib3hFbGVtZW50XTtcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSByZWFkb25seSByb2xlID0gJ29wdGlvbic7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgc3R5bGVzOiBDU1NSZXN1bHRHcm91cCA9IFt1bnNhZmVDU1Moc3R5bGUpXTtcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSByZWFkb25seSBldmVudHMgPSB7XG4gICAgb3B0aW9uc2VsZWN0aW9uY2hhbmdlOiAnb3B0aW9uc2VsZWN0aW9uY2hhbmdlJyxcbiAgICBvcHRpb25zZWxlY3RlZDogJ29wdGlvbnNlbGVjdGVkJyxcbiAgfSBhcyBjb25zdDtcblxuICBwcm90ZWN0ZWQgb3B0aW9uSWQgPSBgc2JiLW9wdGlvbmA7XG5cbiAgcHJpdmF0ZSBzZXQgX3ZhcmlhbnQodmFyaWFudDogU2JiT3B0aW9uVmFyaWFudCkge1xuICAgIGlmICh0aGlzLl92YXJpYW50SW50ZXJuYWwpIHtcbiAgICAgIHRoaXMuaW50ZXJuYWxzLnN0YXRlcy5kZWxldGUoYHZhcmlhbnQtJHt0aGlzLl92YXJpYW50SW50ZXJuYWx9YCk7XG4gICAgfVxuICAgIHRoaXMuX3ZhcmlhbnRJbnRlcm5hbCA9IHZhcmlhbnQ7XG4gICAgaWYgKHRoaXMuX3ZhcmlhbnRJbnRlcm5hbCkge1xuICAgICAgdGhpcy5pbnRlcm5hbHMuc3RhdGVzLmFkZChgdmFyaWFudC0ke3RoaXMuX3ZhcmlhbnRJbnRlcm5hbH1gKTtcbiAgICB9XG4gIH1cbiAgcHJpdmF0ZSBnZXQgX3ZhcmlhbnQoKTogU2JiT3B0aW9uVmFyaWFudCB7XG4gICAgcmV0dXJuIHRoaXMuX3ZhcmlhbnRJbnRlcm5hbCA/PyBudWxsO1xuICB9XG4gIHByaXZhdGUgX3ZhcmlhbnRJbnRlcm5hbD86IFNiYk9wdGlvblZhcmlhbnQ7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5hZGRDb250cm9sbGVyKFxuICAgICAgbmV3IFNiYlByb3BlcnR5V2F0Y2hlckNvbnRyb2xsZXIodGhpcywgKCkgPT4gdGhpcy5jbG9zZXN0KCdzYmItb3B0Z3JvdXAnKSwge1xuICAgICAgICBkaXNhYmxlZDogKHApID0+ICh0aGlzLmRpc2FibGVkRnJvbUdyb3VwID0gcC5kaXNhYmxlZCksXG4gICAgICAgIGxhYmVsOiAocCkgPT4gKHRoaXMuZ3JvdXBMYWJlbCA9IHAubGFiZWwpLFxuICAgICAgfSksXG4gICAgKTtcblxuICAgIHRoaXMuYWRkQ29udHJvbGxlcihcbiAgICAgIG5ldyBTYmJQcm9wZXJ0eVdhdGNoZXJDb250cm9sbGVyKHRoaXMsICgpID0+IHRoaXMuY2xvc2VzdCgnc2JiLWF1dG9jb21wbGV0ZScpLCB7XG4gICAgICAgIG5lZ2F0aXZlOiAoZSkgPT4gdGhpcy5faGFuZGxlTmVnYXRpdmVDaGFuZ2UoZSksXG4gICAgICB9KSxcbiAgICApO1xuXG4gICAgdGhpcy5hZGRDb250cm9sbGVyKFxuICAgICAgbmV3IFNiYlByb3BlcnR5V2F0Y2hlckNvbnRyb2xsZXIodGhpcywgKCkgPT4gdGhpcy5jbG9zZXN0KCdzYmItc2VsZWN0JyksIHtcbiAgICAgICAgbXVsdGlwbGU6IChhbmNlc3RvcikgPT4ge1xuICAgICAgICAgIHRoaXMudG9nZ2xlU3RhdGUoJ211bHRpcGxlJywgYW5jZXN0b3IubXVsdGlwbGUpO1xuXG4gICAgICAgICAgLy8gTXVsdGlwbGUgaGFzIHRvIGJlIHByb3BhZ2F0ZWQgdG8gc2JiLXZpc3VhbC1jaGVja2JveCBpbnNpZGUgdGhlIG9wdGlvbi5cbiAgICAgICAgICB0aGlzLnJlcXVlc3RVcGRhdGUoKTtcbiAgICAgICAgfSxcbiAgICAgICAgbmVnYXRpdmU6IChlKSA9PiB0aGlzLl9oYW5kbGVOZWdhdGl2ZUNoYW5nZShlKSxcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIF9pc011bHRpcGxlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhdGhpcy5oeWRyYXRpb25SZXF1aXJlZCAmJiB0aGlzLmludGVybmFscy5zdGF0ZXMuaGFzKCdtdWx0aXBsZScpO1xuICB9XG5cbiAgcHJpdmF0ZSBfaGFuZGxlTmVnYXRpdmVDaGFuZ2UoYW5jZXN0b3I6IFNiYkF1dG9jb21wbGV0ZUVsZW1lbnQgfCBTYmJTZWxlY3RFbGVtZW50KTogdm9pZCB7XG4gICAgdGhpcy50b2dnbGVTdGF0ZSgnbmVnYXRpdmUnLCBhbmNlc3Rvci5uZWdhdGl2ZSk7XG5cbiAgICAvLyBOZWdhdGl2ZSBoYXMgdG8gYmUgcHJvcGFnYXRlZCB0byBzYmItdmlzdWFsLWNoZWNrYm94IGluc2lkZSB0aGUgb3B0aW9uLlxuICAgIHRoaXMucmVxdWVzdFVwZGF0ZSgpO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGNvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgIHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCk7XG5cbiAgICAvLyBXZSBuZWVkIHRvIGNoZWNrIGhpZ2hsaWdodCBzdGF0ZSBib3RoIG9uIHNsb3QgY2hhbmdlLCBidXQgYWxzbyB3aGVuIGNvbm5lY3RpbmdcbiAgICAvLyB0aGUgZWxlbWVudCB0byB0aGUgRE9NLiBUaGUgc2xvdCBjaGFuZ2UgZXZlbnRzIG1pZ2h0IGJlIHN3YWxsb3dlZCB3aGVuIHVzaW5nIGRlY2xhcmF0aXZlXG4gICAgLy8gc2hhZG93IERPTSB3aXRoIFNTUiBvciBpZiB0aGUgRE9NIGlzIGNoYW5nZWQgd2hlbiBkaXNjb25uZWN0ZWQuXG4gICAgaWYgKHRoaXMuaHlkcmF0aW9uUmVxdWlyZWQpIHtcbiAgICAgIHRoaXMuaHlkcmF0aW9uQ29tcGxldGUudGhlbigoKSA9PiB0aGlzLl9pbml0KCkpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9pbml0KCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfaW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLl9zZXRWYXJpYW50QnlDb250ZXh0KCk7XG4gICAgdGhpcy5oYW5kbGVIaWdobGlnaHRTdGF0ZSgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHNlbGVjdEJ5Q2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCB8fCB0aGlzLmRpc2FibGVkRnJvbUdyb3VwKSB7XG4gICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5faXNNdWx0aXBsZSgpKSB7XG4gICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgIHRoaXMuc2VsZWN0VmlhVXNlckludGVyYWN0aW9uKCF0aGlzLnNlbGVjdGVkKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zZWxlY3RWaWFVc2VySW50ZXJhY3Rpb24odHJ1ZSk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHNlbGVjdFZpYVVzZXJJbnRlcmFjdGlvbihzZWxlY3RlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHN1cGVyLnNlbGVjdFZpYVVzZXJJbnRlcmFjdGlvbihzZWxlY3RlZCk7XG4gICAgLyoqIFRoZSBvcHRpb25zZWxlY3Rpb25jaGFuZ2UgZXZlbnQgaXMgZGlzcGF0Y2hlZCB3aGVuIHRoZSBvcHRpb24gc2VsZWN0aW9uIHN0YXR1cyBjaGFuZ2VzLiAqL1xuICAgIHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ29wdGlvbnNlbGVjdGlvbmNoYW5nZScsIHsgYnViYmxlczogdHJ1ZSwgY29tcG9zZWQ6IHRydWUgfSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBfc2V0VmFyaWFudEJ5Q29udGV4dCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5jbG9zZXN0Py4oJ3NiYi1hdXRvY29tcGxldGUnKSkge1xuICAgICAgdGhpcy5fdmFyaWFudCA9ICdhdXRvY29tcGxldGUnO1xuICAgIH0gZWxzZSBpZiAodGhpcy5jbG9zZXN0Py4oJ3NiYi1zZWxlY3QnKSkge1xuICAgICAgdGhpcy5fdmFyaWFudCA9ICdzZWxlY3QnO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBoYW5kbGVIaWdobGlnaHRTdGF0ZSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fdmFyaWFudCAhPT0gJ2F1dG9jb21wbGV0ZScpIHtcbiAgICAgIHRoaXMudXBkYXRlRGlzYWJsZUhpZ2hsaWdodCh0cnVlKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBzdXBlci5oYW5kbGVIaWdobGlnaHRTdGF0ZSgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlbmRlckljb24oKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIHJldHVybiBodG1sYFxuICAgICAgPCEtLSBJY29uIC0tPlxuICAgICAgJHshdGhpcy5faXNNdWx0aXBsZSgpXG4gICAgICAgID8gaHRtbGAgPHNwYW4gY2xhc3M9XCJzYmItb3B0aW9uX19pY29uXCI+ICR7dGhpcy5yZW5kZXJJY29uU2xvdCgpfSA8L3NwYW4+YFxuICAgICAgICA6IG5vdGhpbmd9XG5cbiAgICAgIDwhLS0gQ2hlY2tib3ggLS0+XG4gICAgICAke3RoaXMuX2lzTXVsdGlwbGUoKVxuICAgICAgICA/IGh0bWxgXG4gICAgICAgICAgICA8c2JiLXZpc3VhbC1jaGVja2JveFxuICAgICAgICAgICAgICA/Y2hlY2tlZD0ke3RoaXMuc2VsZWN0ZWR9XG4gICAgICAgICAgICAgID9kaXNhYmxlZD0ke3RoaXMuZGlzYWJsZWQgfHwgdGhpcy5kaXNhYmxlZEZyb21Hcm91cH1cbiAgICAgICAgICAgICAgP25lZ2F0aXZlPSR7dGhpcy5tYXRjaGVzPy4oJzpzdGF0ZShuZWdhdGl2ZSknKX1cbiAgICAgICAgICAgID48L3NiYi12aXN1YWwtY2hlY2tib3g+XG4gICAgICAgICAgYFxuICAgICAgICA6IG5vdGhpbmd9XG4gICAgYDtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXJMYWJlbCgpOiBUZW1wbGF0ZVJlc3VsdCB8IHR5cGVvZiBub3RoaW5nIHtcbiAgICBpZiAodGhpcy5fdmFyaWFudCAhPT0gJ2F1dG9jb21wbGV0ZScpIHtcbiAgICAgIHJldHVybiBub3RoaW5nO1xuICAgIH1cbiAgICByZXR1cm4gc3VwZXIucmVuZGVyTGFiZWwoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXJUaWNrKCk6IFRlbXBsYXRlUmVzdWx0IHwgdHlwZW9mIG5vdGhpbmcge1xuICAgIHJldHVybiB0aGlzLl92YXJpYW50ID09PSAnc2VsZWN0JyAmJiAhdGhpcy5faXNNdWx0aXBsZSgpICYmIHRoaXMuc2VsZWN0ZWRcbiAgICAgID8gaHRtbGA8c2JiLWljb24gbmFtZT1cInRpY2stc21hbGxcIj48L3NiYi1pY29uPmBcbiAgICAgIDogbm90aGluZztcbiAgfVxufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICAnc2JiLW9wdGlvbic6IFNiYk9wdGlvbkVsZW1lbnQ7XG4gIH1cblxuICBpbnRlcmZhY2UgR2xvYmFsRXZlbnRIYW5kbGVyc0V2ZW50TWFwIHtcbiAgICBvcHRpb25zZWxlY3Rpb25jaGFuZ2U6IEV2ZW50O1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDc0JBLElBQWEsbUJBQWIsY0FBa0QscUJBQXVCOztBQUN2QyxPQUFBLGNBQXNCOzs7QUFDL0IsT0FBQSxzQkFBd0MsQ0FBQyx5QkFBeUI7OztBQUN6RCxPQUFBLE9BQU87OztBQUNoQixPQUFBLFNBQXlCLENBQUMsVUFBVSxlQUFNLENBQUM7OztBQUNsQyxPQUFBLFNBQVM7R0FDdkMsdUJBQXVCO0dBQ3ZCLGdCQUFnQjtHQUNSOztDQUlWLElBQVksU0FBUyxTQUF5QjtBQUM1QyxNQUFJLEtBQUssaUJBQ1AsTUFBSyxVQUFVLE9BQU8sT0FBTyxXQUFXLEtBQUssbUJBQW1CO0FBRWxFLE9BQUssbUJBQW1CO0FBQ3hCLE1BQUksS0FBSyxpQkFDUCxNQUFLLFVBQVUsT0FBTyxJQUFJ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
132
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9uLmNvbXBvbmVudC1CUEhuejh5LS5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZWxlbWVudHMvb3B0aW9uL29wdGlvbi9vcHRpb24uc2Nzcz9pbmxpbmUiLCIuLi8uLi8uLi9zcmMvZWxlbWVudHMvb3B0aW9uL29wdGlvbi9vcHRpb24uY29tcG9uZW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbIkB1c2UgJy4uLy4uL2NvcmUvc3R5bGVzJyBhcyBzYmI7XG5cbjpob3N0IHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNiYi1vcHRpb24tYmFja2dyb3VuZC1jb2xvcik7XG4gIGZvbnQtc2l6ZTogdmFyKC0tc2JiLW9wdGlvbi1mb250LXNpemUpO1xuICBsZXR0ZXItc3BhY2luZzogdmFyKC0tc2JiLXR5cG8tbGV0dGVyLXNwYWNpbmctdGV4dCk7XG59XG5cbjpob3N0KDpzdGF0ZShuZWdhdGl2ZSkpIHtcbiAgLS1zYmItb3B0aW9uLWNvbG9yOiB2YXIoLS1zYmItY29sb3ItMy1uZWdhdGl2ZSk7XG4gIC0tc2JiLW9wdGlvbi1pY29uLWNvbG9yOiB2YXIoLS1zYmItY29sb3ItNSk7XG4gIC0tc2JiLW9wdGlvbi1iYWNrZ3JvdW5kLWNvbG9yLWhvdmVyOiB2YXIoLS1zYmItY29sb3ItbWlkbmlnaHQpO1xuICAtLXNiYi1vcHRpb24tYmFja2dyb3VuZC1jb2xvci1hY3RpdmU6IHZhcigtLXNiYi1iYWNrZ3JvdW5kLWNvbG9yLTQtbmVnYXRpdmUpO1xuICAtLXNiYi1vcHRpb24tZGlzYWJsZWQtYm9yZGVyLWNvbG9yOiB2YXIoLS1zYmItYm9yZGVyLWNvbG9yLTUpO1xuICAtLXNiYi1vcHRpb24tZGlzYWJsZWQtYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2JiLWJhY2tncm91bmQtY29sb3ItMy1uZWdhdGl2ZSk7XG4gIC0tc2JiLWZvY3VzLW91dGxpbmUtY29sb3I6IHZhcigtLXNiYi1mb2N1cy1vdXRsaW5lLWNvbG9yLWRhcmspO1xufVxuXG46aG9zdCg6aG92ZXI6bm90KDpzdGF0ZShkaXNhYmxlZCkpKSB7XG4gIEBpbmNsdWRlIHNiYi5ob3Zlci1tcSgkaG92ZXI6IHRydWUpIHtcbiAgICAtLXNiYi1vcHRpb24tYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2JiLW9wdGlvbi1iYWNrZ3JvdW5kLWNvbG9yLWhvdmVyKTtcbiAgfVxufVxuXG46aG9zdCg6YWN0aXZlOm5vdCg6c3RhdGUoZGlzYWJsZWQpKSkge1xuICAtLXNiYi1vcHRpb24tYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2JiLW9wdGlvbi1iYWNrZ3JvdW5kLWNvbG9yLWFjdGl2ZSk7XG59XG5cbi8vIElmIGhpZ2hsaWdodGluZyBpcyBlbmFibGVkLCBoaWRlIHRoZSBvcmlnaW5hbCBzbG90IGNvbnRlbnRcbjpob3N0KDpub3QoOnN0YXRlKGRpc2FibGUtaGlnaGxpZ2h0KSkpIHtcbiAgLnNiYi1vcHRpb25fX2xhYmVsIHNsb3Qge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cblxuOmhvc3QoOnN0YXRlKGRpc2FibGVkKSkge1xuICAtLXNiYi1vcHRpb24tY3Vyc29yOiB2YXIoLS1zYmItY3Vyc29yLWRlZmF1bHQpO1xuXG4gIEBpbmNsdWRlIHNiYi5pZi1mb3JjZWQtY29sb3JzIHtcbiAgICAtLXNiYi1vcHRpb24tY29sb3I6IEdyYXlUZXh0O1xuICB9XG59XG5cbjpob3N0KDpzdGF0ZSh2YXJpYW50LXNlbGVjdCkpIHtcbiAgLS1zYmItb3B0aW9uLWNvbHVtbi1nYXA6IHZhcigtLXNiYi1zcGFjaW5nLWZpeGVkLTJ4KTtcbiAgLS1zYmItb3B0aW9uLWp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2Vlbjtcbn1cblxuOmhvc3QoOnN0YXRlKHZhcmlhbnQtc2VsZWN0KTpzdGF0ZShtdWx0aXBsZSkpIHtcbiAgLS1zYmItb3B0aW9uLWp1c3RpZnktY29udGVudDogc3RhcnQ7XG59XG5cbjpob3N0KDpzdGF0ZShhY3RpdmUpKSB7XG4gIC0tc2JiLW9wdGlvbi1mb2N1cy1vdXRsaW5lLWNvbG9yOiB2YXIoLS1zYmItZm9jdXMtb3V0bGluZS1jb2xvcik7XG59XG5cbi5zYmItb3B0aW9uX19sYWJlbC0taGlnaGxpZ2h0IHtcbiAgOmhvc3QoOm5vdCg6aXMoOnN0YXRlKGRpc2FibGVkKSkpKSAmIHtcbiAgICBAaW5jbHVkZSBzYmIudGV4dC0tYm9sZDtcbiAgICBAaW5jbHVkZSBzYmIuaWYtZm9yY2VkLWNvbG9ycyB7XG4gICAgICBjb2xvcjogSGlnaGxpZ2h0O1xuICAgIH1cbiAgfVxufVxuXG4uc2JiLW9wdGlvbiB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogZmxleDtcbiAgbWluLWhlaWdodDogdmFyKC0tc2JiLW9wdGlvbi1taW4taGVpZ2h0KTtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgY29sdW1uLWdhcDogdmFyKC0tc2JiLW9wdGlvbi1jb2x1bW4tZ2FwKTtcbiAgcGFkZGluZy1pbmxpbmU6IHZhcigtLXNiYi1vcHRpb24tcGFkZGluZy1pbmxpbmUpO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHZhcigtLXNiYi1vcHRpb24tanVzdGlmeS1jb250ZW50KTtcbiAgY29sb3I6IHZhcigtLXNiYi1vcHRpb24tY29sb3IpO1xuICBjdXJzb3I6IHZhcigtLXNiYi1vcHRpb24tY3Vyc29yKTtcbiAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgLXdlYmtpdC10ZXh0LWZpbGwtY29sb3I6IHZhcigtLXNiYi1vcHRpb24tY29sb3IpO1xuXG4gIC8vIFdlIHVzZSB0aGUgcHNldWRvIGVsZW1lbnQgdG8gZGlzcGxheSB0aGUgZm9jdXMgb3V0bGluZSAoaW5saW5lIGluIHRoaXMgY2FzZSlcbiAgJjo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBpbnNldDogdmFyKC0tc2JiLW9wdGlvbi1mb2N1cy1vdXRsaW5lLWluc2V0KTtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICBib3JkZXI6IHZhcigtLXNiYi1mb2N1cy1vdXRsaW5lLXdpZHRoKSBzb2xpZCB2YXIoLS1zYmItb3B0aW9uLWZvY3VzLW91dGxpbmUtY29sb3IpO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXNiYi1vcHRpb24tYm9yZGVyLXJhZGl1cyk7XG4gIH1cblxuICAvLyBBZGQgaW5uZXIgYm9yZGVyIGFuZCBiYWNrZ3JvdW5kIGZvciBkaXNhYmxlZCBvcHRpb24gd2hlbiBpdCdzIG5vdCBtdWx0aXBsZVxuICA6aG9zdCg6c3RhdGUoZGlzYWJsZWQpOm5vdCg6c3RhdGUobXVsdGlwbGUpKSkgJiB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHotaW5kZXg6IDA7XG5cbiAgICAmOjpiZWZvcmUge1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGluc2V0OiAje3NiYi5weC10by1yZW0tYnVpbGQoNil9O1xuICAgICAgYm9yZGVyOiB2YXIoLS1zYmItYm9yZGVyLXdpZHRoLTF4KSBkYXNoZWQgdmFyKC0tc2JiLW9wdGlvbi1kaXNhYmxlZC1ib3JkZXItY29sb3IpO1xuICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tc2JiLWJvcmRlci1yYWRpdXMtMngpO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2JiLW9wdGlvbi1kaXNhYmxlZC1iYWNrZ3JvdW5kLWNvbG9yKTtcbiAgICAgIHotaW5kZXg6IC0xO1xuXG4gICAgICBAaW5jbHVkZSBzYmIuaWYtZm9yY2VkLWNvbG9ycyB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogR3JheVRleHQ7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi5zYmItb3B0aW9uX19pY29uIHtcbiAgZGlzcGxheTogZmxleDtcbiAgbWluLXdpZHRoOiB2YXIoLS1zYmItc2l6ZS1pY29uLXVpLXNtYWxsKTtcbiAgbWluLWhlaWdodDogdmFyKC0tc2JiLXNpemUtaWNvbi11aS1zbWFsbCk7XG4gIGNvbG9yOiB2YXIoLS1zYmItb3B0aW9uLWljb24tY29sb3IpO1xuXG4gIDpob3N0KDpub3QoOnN0YXRlKHNsb3R0ZWQtaWNvbiksIDpzdGF0ZShoYXMtaWNvbi1uYW1lKSkpICYge1xuICAgIC8vIENhbiBiZSBvdmVycmlkZGVuIGJ5IHRoZSAncHJlc2VydmUtaWNvbi1zcGFjZScgb24gdGhlIGF1dG9jb21wbGV0ZVxuICAgIGRpc3BsYXk6IHZhcigtLXNiYi1vcHRpb24taWNvbi1jb250YWluZXItZGlzcGxheSwgbm9uZSk7XG4gIH1cbn1cblxuLnNiYi1vcHRpb25fX2xhYmVsIHtcbiAgdGV4dC1vdmVyZmxvdzogdmFyKC0tc2JiLW9wdGlvbi10ZXh0LW92ZXJmbG93KTtcbiAgb3ZlcmZsb3c6IHZhcigtLXNiYi1vcHRpb24tb3ZlcmZsb3cpO1xuICB3aGl0ZS1zcGFjZTogdmFyKC0tc2JiLW9wdGlvbi13aGl0ZS1zcGFjZSwgaW5pdGlhbCk7XG59XG4iLCJpbXBvcnQgeyB0eXBlIENTU1Jlc3VsdEdyb3VwLCBodG1sLCBub3RoaW5nLCB0eXBlIFRlbXBsYXRlUmVzdWx0LCB1bnNhZmVDU1MgfSBmcm9tICdsaXQnO1xuXG5pbXBvcnQgdHlwZSB7IFNiYkF1dG9jb21wbGV0ZUVsZW1lbnQgfSBmcm9tICcuLi8uLi9hdXRvY29tcGxldGUucHVyZS50cyc7XG5pbXBvcnQgdHlwZSB7IFNiYkVsZW1lbnRUeXBlIH0gZnJvbSAnLi4vLi4vY29yZS50cyc7XG5pbXBvcnQgeyBTYmJQcm9wZXJ0eVdhdGNoZXJDb250cm9sbGVyIH0gZnJvbSAnLi4vLi4vY29yZS50cyc7XG5pbXBvcnQgdHlwZSB7IFNiYlNlbGVjdEVsZW1lbnQgfSBmcm9tICcuLi8uLi9zZWxlY3QucHVyZS50cyc7XG5pbXBvcnQgeyBTYmJWaXN1YWxDaGVja2JveEVsZW1lbnQgfSBmcm9tICcuLi8uLi92aXN1YWwtY2hlY2tib3gucHVyZS50cyc7XG5cbmltcG9ydCB7IFNiYk9wdGlvbkJhc2VFbGVtZW50IH0gZnJvbSAnLi9vcHRpb24tYmFzZS1lbGVtZW50LnRzJztcbmltcG9ydCBzdHlsZSBmcm9tICcuL29wdGlvbi5zY3NzP2lubGluZSc7XG5cbmV4cG9ydCB0eXBlIFNiYk9wdGlvblZhcmlhbnQgPSAnYXV0b2NvbXBsZXRlJyB8ICdzZWxlY3QnIHwgbnVsbDtcblxuLyoqXG4gKiBJdCBkaXNwbGF5cyBvbiBvcHRpb24gaXRlbSB3aGljaCBjYW4gYmUgdXNlZCBpbiBgc2JiLXNlbGVjdGAgb3IgYHNiYi1hdXRvY29tcGxldGVgLlxuICpcbiAqIEBzbG90IC0gVXNlIHRoZSB1bm5hbWVkIHNsb3QgdG8gYWRkIGNvbnRlbnQgdG8gdGhlIG9wdGlvbiBsYWJlbC5cbiAqIEBzbG90IGljb24gLSBVc2UgdGhpcyBzbG90IHRvIHByb3ZpZGUgYW4gaWNvbi4gSWYgYGljb24tbmFtZWAgaXMgc2V0LCBhIHNiYi1pY29uIHdpbGwgYmUgdXNlZC5cbiAqIEBjc3Nwcm9wIFstLXNiYi1vcHRpb24taWNvbi1jb250YWluZXItZGlzcGxheT1ub25lXSAtIENhbiBiZSB1c2VkIHRvIHJlc2VydmUgc3BhY2UgZXZlblxuICogd2hlbiBwcmVzZXJ2ZS1pY29uLXNwYWNlIG9uIGF1dG9jb21wbGV0ZSBpcyBub3Qgc2V0IG9yIGljb25OYW1lIGlzIG5vdCBzZXQuXG4gKiBAb3ZlcnJpZGVUeXBlIHZhbHVlIC0gKFQgPSBzdHJpbmcpIHwgbnVsbFxuICovXG5leHBvcnQgY2xhc3MgU2JiT3B0aW9uRWxlbWVudDxUID0gc3RyaW5nPiBleHRlbmRzIFNiYk9wdGlvbkJhc2VFbGVtZW50PFQ+IHtcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSByZWFkb25seSBlbGVtZW50TmFtZTogc3RyaW5nID0gJ3NiYi1vcHRpb24nO1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIGVsZW1lbnREZXBlbmRlbmNpZXM6IFNiYkVsZW1lbnRUeXBlW10gPSBbU2JiVmlzdWFsQ2hlY2tib3hFbGVtZW50XTtcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSByZWFkb25seSByb2xlID0gJ29wdGlvbic7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgc3R5bGVzOiBDU1NSZXN1bHRHcm91cCA9IFt1bnNhZmVDU1Moc3R5bGUpXTtcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSByZWFkb25seSBldmVudHMgPSB7XG4gICAgb3B0aW9uc2VsZWN0aW9uY2hhbmdlOiAnb3B0aW9uc2VsZWN0aW9uY2hhbmdlJyxcbiAgICBvcHRpb25zZWxlY3RlZDogJ29wdGlvbnNlbGVjdGVkJyxcbiAgfSBhcyBjb25zdDtcblxuICBwcm90ZWN0ZWQgb3B0aW9uSWQgPSBgc2JiLW9wdGlvbmA7XG5cbiAgcHJpdmF0ZSBzZXQgX3ZhcmlhbnQodmFyaWFudDogU2JiT3B0aW9uVmFyaWFudCkge1xuICAgIGlmICh0aGlzLl92YXJpYW50SW50ZXJuYWwpIHtcbiAgICAgIHRoaXMuaW50ZXJuYWxzLnN0YXRlcy5kZWxldGUoYHZhcmlhbnQtJHt0aGlzLl92YXJpYW50SW50ZXJuYWx9YCk7XG4gICAgfVxuICAgIHRoaXMuX3ZhcmlhbnRJbnRlcm5hbCA9IHZhcmlhbnQ7XG4gICAgaWYgKHRoaXMuX3ZhcmlhbnRJbnRlcm5hbCkge1xuICAgICAgdGhpcy5pbnRlcm5hbHMuc3RhdGVzLmFkZChgdmFyaWFudC0ke3RoaXMuX3ZhcmlhbnRJbnRlcm5hbH1gKTtcbiAgICB9XG4gIH1cbiAgcHJpdmF0ZSBnZXQgX3ZhcmlhbnQoKTogU2JiT3B0aW9uVmFyaWFudCB7XG4gICAgcmV0dXJuIHRoaXMuX3ZhcmlhbnRJbnRlcm5hbCA/PyBudWxsO1xuICB9XG4gIHByaXZhdGUgX3ZhcmlhbnRJbnRlcm5hbD86IFNiYk9wdGlvblZhcmlhbnQ7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5hZGRDb250cm9sbGVyKFxuICAgICAgbmV3IFNiYlByb3BlcnR5V2F0Y2hlckNvbnRyb2xsZXIodGhpcywgKCkgPT4gdGhpcy5jbG9zZXN0KCdzYmItb3B0Z3JvdXAnKSwge1xuICAgICAgICBkaXNhYmxlZDogKHApID0+ICh0aGlzLmRpc2FibGVkRnJvbUdyb3VwID0gcC5kaXNhYmxlZCksXG4gICAgICAgIGxhYmVsOiAocCkgPT4gKHRoaXMuZ3JvdXBMYWJlbCA9IHAubGFiZWwpLFxuICAgICAgfSksXG4gICAgKTtcblxuICAgIHRoaXMuYWRkQ29udHJvbGxlcihcbiAgICAgIG5ldyBTYmJQcm9wZXJ0eVdhdGNoZXJDb250cm9sbGVyKHRoaXMsICgpID0+IHRoaXMuY2xvc2VzdCgnc2JiLWF1dG9jb21wbGV0ZScpLCB7XG4gICAgICAgIG5lZ2F0aXZlOiAoZSkgPT4gdGhpcy5faGFuZGxlTmVnYXRpdmVDaGFuZ2UoZSksXG4gICAgICB9KSxcbiAgICApO1xuXG4gICAgdGhpcy5hZGRDb250cm9sbGVyKFxuICAgICAgbmV3IFNiYlByb3BlcnR5V2F0Y2hlckNvbnRyb2xsZXIodGhpcywgKCkgPT4gdGhpcy5jbG9zZXN0KCdzYmItc2VsZWN0JyksIHtcbiAgICAgICAgbXVsdGlwbGU6IChhbmNlc3RvcikgPT4ge1xuICAgICAgICAgIHRoaXMudG9nZ2xlU3RhdGUoJ211bHRpcGxlJywgYW5jZXN0b3IubXVsdGlwbGUpO1xuXG4gICAgICAgICAgLy8gTXVsdGlwbGUgaGFzIHRvIGJlIHByb3BhZ2F0ZWQgdG8gc2JiLXZpc3VhbC1jaGVja2JveCBpbnNpZGUgdGhlIG9wdGlvbi5cbiAgICAgICAgICB0aGlzLnJlcXVlc3RVcGRhdGUoKTtcbiAgICAgICAgfSxcbiAgICAgICAgbmVnYXRpdmU6IChlKSA9PiB0aGlzLl9oYW5kbGVOZWdhdGl2ZUNoYW5nZShlKSxcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIF9pc011bHRpcGxlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhdGhpcy5oeWRyYXRpb25SZXF1aXJlZCAmJiB0aGlzLm1hdGNoZXM/LignOnN0YXRlKG11bHRpcGxlKScpO1xuICB9XG5cbiAgcHJpdmF0ZSBfaGFuZGxlTmVnYXRpdmVDaGFuZ2UoYW5jZXN0b3I6IFNiYkF1dG9jb21wbGV0ZUVsZW1lbnQgfCBTYmJTZWxlY3RFbGVtZW50KTogdm9pZCB7XG4gICAgdGhpcy50b2dnbGVTdGF0ZSgnbmVnYXRpdmUnLCBhbmNlc3Rvci5uZWdhdGl2ZSk7XG5cbiAgICAvLyBOZWdhdGl2ZSBoYXMgdG8gYmUgcHJvcGFnYXRlZCB0byBzYmItdmlzdWFsLWNoZWNrYm94IGluc2lkZSB0aGUgb3B0aW9uLlxuICAgIHRoaXMucmVxdWVzdFVwZGF0ZSgpO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGNvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgIHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCk7XG5cbiAgICAvLyBXZSBuZWVkIHRvIGNoZWNrIGhpZ2hsaWdodCBzdGF0ZSBib3RoIG9uIHNsb3QgY2hhbmdlLCBidXQgYWxzbyB3aGVuIGNvbm5lY3RpbmdcbiAgICAvLyB0aGUgZWxlbWVudCB0byB0aGUgRE9NLiBUaGUgc2xvdCBjaGFuZ2UgZXZlbnRzIG1pZ2h0IGJlIHN3YWxsb3dlZCB3aGVuIHVzaW5nIGRlY2xhcmF0aXZlXG4gICAgLy8gc2hhZG93IERPTSB3aXRoIFNTUiBvciBpZiB0aGUgRE9NIGlzIGNoYW5nZWQgd2hlbiBkaXNjb25uZWN0ZWQuXG4gICAgaWYgKHRoaXMuaHlkcmF0aW9uUmVxdWlyZWQpIHtcbiAgICAgIHRoaXMuaHlkcmF0aW9uQ29tcGxldGUudGhlbigoKSA9PiB0aGlzLl9pbml0KCkpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9pbml0KCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfaW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLl9zZXRWYXJpYW50QnlDb250ZXh0KCk7XG4gICAgdGhpcy5oYW5kbGVIaWdobGlnaHRTdGF0ZSgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHNlbGVjdEJ5Q2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCB8fCB0aGlzLmRpc2FibGVkRnJvbUdyb3VwKSB7XG4gICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5faXNNdWx0aXBsZSgpKSB7XG4gICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgIHRoaXMuc2VsZWN0VmlhVXNlckludGVyYWN0aW9uKCF0aGlzLnNlbGVjdGVkKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zZWxlY3RWaWFVc2VySW50ZXJhY3Rpb24odHJ1ZSk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHNlbGVjdFZpYVVzZXJJbnRlcmFjdGlvbihzZWxlY3RlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHN1cGVyLnNlbGVjdFZpYVVzZXJJbnRlcmFjdGlvbihzZWxlY3RlZCk7XG4gICAgLyoqIFRoZSBvcHRpb25zZWxlY3Rpb25jaGFuZ2UgZXZlbnQgaXMgZGlzcGF0Y2hlZCB3aGVuIHRoZSBvcHRpb24gc2VsZWN0aW9uIHN0YXR1cyBjaGFuZ2VzLiAqL1xuICAgIHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ29wdGlvbnNlbGVjdGlvbmNoYW5nZScsIHsgYnViYmxlczogdHJ1ZSwgY29tcG9zZWQ6IHRydWUgfSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBfc2V0VmFyaWFudEJ5Q29udGV4dCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5jbG9zZXN0Py4oJ3NiYi1hdXRvY29tcGxldGUnKSkge1xuICAgICAgdGhpcy5fdmFyaWFudCA9ICdhdXRvY29tcGxldGUnO1xuICAgIH0gZWxzZSBpZiAodGhpcy5jbG9zZXN0Py4oJ3NiYi1zZWxlY3QnKSkge1xuICAgICAgdGhpcy5fdmFyaWFudCA9ICdzZWxlY3QnO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBoYW5kbGVIaWdobGlnaHRTdGF0ZSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fdmFyaWFudCAhPT0gJ2F1dG9jb21wbGV0ZScpIHtcbiAgICAgIHRoaXMudXBkYXRlRGlzYWJsZUhpZ2hsaWdodCh0cnVlKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBzdXBlci5oYW5kbGVIaWdobGlnaHRTdGF0ZSgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlbmRlckljb24oKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIHJldHVybiBodG1sYFxuICAgICAgPCEtLSBJY29uIC0tPlxuICAgICAgJHshdGhpcy5faXNNdWx0aXBsZSgpXG4gICAgICAgID8gaHRtbGAgPHNwYW4gY2xhc3M9XCJzYmItb3B0aW9uX19pY29uXCI+ICR7dGhpcy5yZW5kZXJJY29uU2xvdCgpfSA8L3NwYW4+YFxuICAgICAgICA6IG5vdGhpbmd9XG5cbiAgICAgIDwhLS0gQ2hlY2tib3ggLS0+XG4gICAgICAke3RoaXMuX2lzTXVsdGlwbGUoKVxuICAgICAgICA/IGh0bWxgXG4gICAgICAgICAgICA8c2JiLXZpc3VhbC1jaGVja2JveFxuICAgICAgICAgICAgICA/Y2hlY2tlZD0ke3RoaXMuc2VsZWN0ZWR9XG4gICAgICAgICAgICAgID9kaXNhYmxlZD0ke3RoaXMuZGlzYWJsZWQgfHwgdGhpcy5kaXNhYmxlZEZyb21Hcm91cH1cbiAgICAgICAgICAgICAgP25lZ2F0aXZlPSR7dGhpcy5tYXRjaGVzPy4oJzpzdGF0ZShuZWdhdGl2ZSknKX1cbiAgICAgICAgICAgID48L3NiYi12aXN1YWwtY2hlY2tib3g+XG4gICAgICAgICAgYFxuICAgICAgICA6IG5vdGhpbmd9XG4gICAgYDtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXJMYWJlbCgpOiBUZW1wbGF0ZVJlc3VsdCB8IHR5cGVvZiBub3RoaW5nIHtcbiAgICBpZiAodGhpcy5fdmFyaWFudCAhPT0gJ2F1dG9jb21wbGV0ZScpIHtcbiAgICAgIHJldHVybiBub3RoaW5nO1xuICAgIH1cbiAgICByZXR1cm4gc3VwZXIucmVuZGVyTGFiZWwoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXJUaWNrKCk6IFRlbXBsYXRlUmVzdWx0IHwgdHlwZW9mIG5vdGhpbmcge1xuICAgIHJldHVybiB0aGlzLl92YXJpYW50ID09PSAnc2VsZWN0JyAmJiAhdGhpcy5faXNNdWx0aXBsZSgpICYmIHRoaXMuc2VsZWN0ZWRcbiAgICAgID8gaHRtbGA8c2JiLWljb24gbmFtZT1cInRpY2stc21hbGxcIj48L3NiYi1pY29uPmBcbiAgICAgIDogbm90aGluZztcbiAgfVxufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICAnc2JiLW9wdGlvbic6IFNiYk9wdGlvbkVsZW1lbnQ7XG4gIH1cblxuICBpbnRlcmZhY2UgR2xvYmFsRXZlbnRIYW5kbGVyc0V2ZW50TWFwIHtcbiAgICBvcHRpb25zZWxlY3Rpb25jaGFuZ2U6IEV2ZW50O1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDc0JBLElBQWEsbUJBQWIsY0FBa0QscUJBQXVCOztBQUN2QyxPQUFBLGNBQXNCOzs7QUFDL0IsT0FBQSxzQkFBd0MsQ0FBQyx5QkFBeUI7OztBQUN6RCxPQUFBLE9BQU87OztBQUNoQixPQUFBLFNBQXlCLENBQUMsVUFBVSxlQUFNLENBQUM7OztBQUNsQyxPQUFBLFNBQVM7R0FDdkMsdUJBQXVCO0dBQ3ZCLGdCQUFnQjtHQUNSOztDQUlWLElBQVksU0FBUyxTQUF5QjtBQUM1QyxNQUFJLEtBQUssaUJBQ1AsTUFBSyxVQUFVLE9BQU8sT0FBTyxXQUFXLEtBQUssbUJBQW1CO0FBRWxFLE9BQUssbUJBQW1CO0FBQ3hCLE1BQUksS0FBSyxpQkFDUCxNQUFLLFVBQVUsT0FBTyxJQUFJLFdB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
@@ -2,7 +2,7 @@ import { t as SbbOptgroupBaseElement } from "./optgroup-base-element-CUh4tWc1.js
2
2
  import { SbbOptGroupElement } from "./option/optgroup/optgroup.component.js";
3
3
  import { t as SbbOptionHintElement } from "./option-hint.component-D4P0hM0D.js";
4
4
  import { SbbOptionBaseElement } from "./option/option/option-base-element.js";
5
- import { t as SbbOptionElement } from "./option.component-BbrXKO7i.js";
5
+ import { t as SbbOptionElement } from "./option.component-BPHnz8y-.js";
6
6
  import "./option.pure.js";
7
7
  //#region src/elements/option.ts
8
8
  /** @entrypoint */
@@ -2,5 +2,5 @@ import { t as SbbOptgroupBaseElement } from "./optgroup-base-element-CUh4tWc1.js
2
2
  import { SbbOptGroupElement } from "./option/optgroup/optgroup.component.js";
3
3
  import { t as SbbOptionHintElement } from "./option-hint.component-D4P0hM0D.js";
4
4
  import { SbbOptionBaseElement } from "./option/option/option-base-element.js";
5
- import { t as SbbOptionElement } from "./option.component-BbrXKO7i.js";
5
+ import { t as SbbOptionElement } from "./option.component-BPHnz8y-.js";
6
6
  export { SbbOptGroupElement, SbbOptgroupBaseElement, SbbOptionBaseElement, SbbOptionElement, SbbOptionHintElement };
@@ -155,13 +155,13 @@ var SbbStickyBarElement = (() => {
155
155
  stick() {
156
156
  if (this._state !== "unsticky" || !this._dispatchBeforeStickEvent()) return;
157
157
  this._state = "sticking";
158
- if (!this.internals.states.has("sticking") || this._isZeroAnimationDuration()) this._stickyCallback();
158
+ if (!this.matches?.(":is(:state(sticking),[state--sticking])") || this._isZeroAnimationDuration()) this._stickyCallback();
159
159
  }
160
160
  /** Animates `position: sticky` to normal content flow position. */
161
161
  unstick() {
162
162
  if (this._state !== "sticky" || !this._dispatchBeforeUnStickEvent()) return;
163
163
  this._state = "unsticking";
164
- if (!this.internals.states.has("sticking") || this._isZeroAnimationDuration()) this._unstickyCallback();
164
+ if (!this.matches?.(":is(:state(sticking),[state--sticking])") || this._isZeroAnimationDuration()) this._unstickyCallback();
165
165
  }
166
166
  _stickyCallback() {
167
167
  this._state = "sticky";
@@ -200,4 +200,4 @@ var SbbStickyBarElement = (() => {
200
200
  //#endregion
201
201
  export { SbbStickyBarElement as t };
202
202
 
203
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RpY2t5LWJhci5jb21wb25lbnQtTU1CU1BhMkIuanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2NvbnRhaW5lci9zdGlja3ktYmFyL3N0aWNreS1iYXIuc2Nzcz9pbmxpbmUiLCIuLi8uLi8uLi9zcmMvZWxlbWVudHMvY29udGFpbmVyL3N0aWNreS1iYXIvc3RpY2t5LWJhci5jb21wb25lbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiQHVzZSAnLi4vLi4vY29yZS9zdHlsZXMnIGFzIHNiYjtcblxuJGludGVyc2VjdG9yLW92ZXJsYXBwaW5nOiAxcHg7XG5cbi8vIGA6c3RhdGUoc3RpY2tpbmcpYCB2LnMuIGA6c3RhdGUoc3RhdGUtc3RpY2t5KWA6XG4vLyBXaGlsZSBgOnN0YXRlKHN0aWNraW5nKWAgaXMgcmVwcmVzZW50aW5nIHdoZXRoZXIgdGhlIHN0aWNreSBiYXIgaXMgY3VycmVudGx5IHN0aWNraW5nIChkdWUgc2Nyb2xsaW5nKSxcbi8vIHRoZSBgOnN0YXRlKHN0YXRlLXh5KWAgaG9sZHMgaW5mb3JtYXRpb24gd2hldGhlciB0aGUgYHBvc2l0aW9uOiBzdGlja3lgIGlzIGFwcGxpZWQgb3Igbm90XG4vLyBidXQgbm90IGNvbnNpZGVyaW5nIHRoZSByZWFsIHN0aWNraW5nIHN0YXRlLlxuXG46aG9zdCB7XG4gIC0tc2JiLXN0aWNreS1iYXItZmFkZS1pbi1hbmltYXRpb24tZHVyYXRpb246IHZhcihcbiAgICAtLXNiYi1kaXNhYmxlLWFuaW1hdGlvbi1kdXJhdGlvbixcbiAgICB2YXIoLS1zYmItYW5pbWF0aW9uLWR1cmF0aW9uLTV4KVxuICApO1xuICAtLXNiYi1zdGlja3ktYmFyLWZhZGUtb3V0LWFuaW1hdGlvbi1kdXJhdGlvbjogdmFyKFxuICAgIC0tc2JiLWRpc2FibGUtYW5pbWF0aW9uLWR1cmF0aW9uLFxuICAgIHZhcigtLXNiYi1hbmltYXRpb24tZHVyYXRpb24tMngpXG4gICk7XG4gIC0tc2JiLXN0aWNreS1iYXItc2xpZGUtdmVydGljYWxseS1hbmltYXRpb24tZHVyYXRpb246IHZhcihcbiAgICAtLXNiYi1kaXNhYmxlLWFuaW1hdGlvbi1kdXJhdGlvbixcbiAgICB2YXIoLS1zYmItYW5pbWF0aW9uLWR1cmF0aW9uLTR4KVxuICApO1xuICAtLV9zYmItc3RpY2t5LWJhci1iYWNrZ3JvdW5kLWFuaW1hdGlvbi1kdXJhdGlvbjogdmFyKFxuICAgIC0tc2JiLXN0aWNreS1iYXItZmFkZS1vdXQtYW5pbWF0aW9uLWR1cmF0aW9uXG4gICk7XG5cbiAgLy8gRGlzcGxheSBjb250ZW50cyBuZWVkZWQgdG8gZ2V0IHRoZSBzdGlja3kgYmFyIHN0aWNreS5cbiAgZGlzcGxheTogY29udGVudHM7XG59XG5cbjpob3N0KFtzaXplPSdzJ10pIHtcbiAgLS1zYmItc3RpY2t5LWJhci1wYWRkaW5nLWJsb2NrOiB2YXIoLS1zYmItc3BhY2luZy1yZXNwb25zaXZlLXh4eHMpO1xufVxuXG46aG9zdChbc2l6ZT0nbSddKSB7XG4gIC0tc2JiLXN0aWNreS1iYXItcGFkZGluZy1ibG9jazogdmFyKC0tc2JiLXNwYWNpbmctcmVzcG9uc2l2ZS14cyk7XG59XG5cbjpob3N0KDpzdGF0ZShzdGlja2luZyk6bm90KDpzdGF0ZShzdGF0ZS11bnN0aWNreSkpKSB7XG4gIC0tc2JiLXN0aWNreS1iYXItc3RpY2t5LWJhY2tncm91bmQtY29sb3I6IHZhcihcbiAgICAtLXNiYi1jb250YWluZXItYmFja2dyb3VuZC1jb2xvcixcbiAgICB2YXIoLS1zYmItYmFja2dyb3VuZC1jb2xvci0xKVxuICApO1xuICAtLV9zYmItc3RpY2t5LWJhci1pbnRlcnNlY3Rvci1iYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zYmItc3RpY2t5LWJhci1zdGlja3ktYmFja2dyb3VuZC1jb2xvcik7XG4gIC0tX3NiYi1zdGlja3ktYmFyLWJhY2tncm91bmQtYW5pbWF0aW9uLWR1cmF0aW9uOiB2YXIoLS1zYmItc3RpY2t5LWJhci1mYWRlLWluLWFuaW1hdGlvbi1kdXJhdGlvbik7XG5cbiAgQGluY2x1ZGUgc2JiLmlmLWZvcmNlZC1jb2xvcnMge1xuICAgIC0tX3NiYi1zdGlja3ktYmFyLWZvcmNlZC1jb2xvcnMtYm9yZGVyOiB2YXIoLS1zYmItYm9yZGVyLXdpZHRoLTF4KSBzb2xpZCBDYW52YXNUZXh0O1xuICB9XG59XG5cbjpob3N0KDpzdGF0ZShzdGlja2luZyk6bm90KDpzdGF0ZShzdGF0ZS11bnN0aWNreSkpW2NvbG9yPSd3aGl0ZSddKSB7XG4gIC0tc2JiLXN0aWNreS1iYXItc3RpY2t5LWJhY2tncm91bmQtY29sb3I6IHZhcigtLXNiYi1iYWNrZ3JvdW5kLWNvbG9yLTEpO1xufVxuXG46aG9zdCg6c3RhdGUoc3RpY2tpbmcpOm5vdCg6c3RhdGUoc3RhdGUtdW5zdGlja3kpKVtjb2xvcj0nbWlsayddKSB7XG4gIC0tc2JiLXN0aWNreS1iYXItc3RpY2t5LWJhY2tncm91bmQtY29sb3I6IHZhcigtLXNiYi1iYWNrZ3JvdW5kLWNvbG9yLTMpO1xufVxuXG46aG9zdCg6c3RhdGUoc3RpY2tpbmcpOm5vdCg6c3RhdGUoc3RhdGUtdW5zdGlja3kpKVtjb2xvcj0nbWlkbmlnaHQnXSkge1xuICAtLXNiYi1zdGlja3ktYmFyLXN0aWNreS1iYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zYmItYmFja2dyb3VuZC1jb2xvci0xLW5lZ2F0aXZlKTtcbn1cblxuOmhvc3QoOnN0YXRlKHN0aWNraW5nKTpub3QoOnN0YXRlKHN0YXRlLXVuc3RpY2t5KSlbY29sb3I9J2NoYXJjb2FsJ10pIHtcbiAgLS1zYmItc3RpY2t5LWJhci1zdGlja3ktYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2JiLWJhY2tncm91bmQtY29sb3ItMi1uZWdhdGl2ZSk7XG59XG5cbjpob3N0KFxuICA6aXMoXG4gICAgOnN0YXRlKHN0aWNraW5nKTppcyg6c3RhdGUoc2xpZGUtdmVydGljYWxseSksIDpzdGF0ZShzdGF0ZS1zdGlja2luZyksIDpzdGF0ZShzdGF0ZS11bnN0aWNraW5nKSksXG4gICAgOnN0YXRlKHN0YXRlLXVuc3RpY2t5KVxuICApXG4pIHtcbiAgLS1fc2JiLXN0aWNreS1iYXItYmFja2dyb3VuZC1hbmltYXRpb24tZHVyYXRpb246IDBzO1xufVxuXG46aG9zdChcbiAgOnN0YXRlKHN0aWNraW5nKTppcyhcbiAgICA6c3RhdGUoc2xpZGUtdmVydGljYWxseSk6bm90KDpzdGF0ZShzdGF0ZS11bnN0aWNreSksIDpzdGF0ZShzdGF0ZS11bnN0aWNraW5nKSksXG4gICAgOnN0YXRlKHN0YXRlLXN0aWNraW5nKVxuICApXG4pIHtcbiAgLS1zYmItc3RpY2t5LWJhci1zbGlkZS12ZXJ0aWNhbGx5LWFuaW1hdGlvbi1uYW1lOiBzbGlkZS1pbjtcbn1cblxuOmhvc3QoOnN0YXRlKHN0aWNraW5nKTpzdGF0ZShzdGF0ZS11bnN0aWNraW5nKSkge1xuICAtLXNiYi1zdGlja3ktYmFyLXNsaWRlLXZlcnRpY2FsbHktYW5pbWF0aW9uLW5hbWU6IHNsaWRlLW91dDtcbn1cblxuOmhvc3QoOmlzKDpub3QoOnN0YXRlKGluaXRpYWxpemVkKSksIDpzdGF0ZShzdGF0ZS11bnN0aWNreSkpKSB7XG4gIC0tc2JiLXN0aWNreS1iYXItcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4uc2JiLXN0aWNreS1iYXJfX3dyYXBwZXIge1xuICBwb3NpdGlvbjogdmFyKC0tc2JiLXN0aWNreS1iYXItcG9zaXRpb24pO1xuICBpbnNldC1ibG9jay1lbmQ6IDA7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB6LWluZGV4OiB2YXIoLS1zYmItc3RpY2t5LWJhci16LWluZGV4KTtcblxuICBhbmltYXRpb246IHtcbiAgICBuYW1lOiB2YXIoLS1zYmItc3RpY2t5LWJhci1zbGlkZS12ZXJ0aWNhbGx5LWFuaW1hdGlvbi1uYW1lLCB1bnNldCk7XG4gICAgZHVyYXRpb246IHZhcigtLXNiYi1zdGlja3ktYmFyLXNsaWRlLXZlcnRpY2FsbHktYW5pbWF0aW9uLWR1cmF0aW9uKTtcbiAgICB0aW1pbmctZnVuY3Rpb246IHZhcigtLXNiYi1zdGlja3ktYmFyLXNsaWRlLXZlcnRpY2FsbHktYW5pbWF0aW9uLWVhc2luZyk7XG4gICAgZGVsYXk6IDBzO1xuXG4gICAgLy8gRmlsbCBtb2RlIG5lZWRlZCB0byBlbmFibGUgZGVsYXlcbiAgICBmaWxsLW1vZGU6IGJhY2t3YXJkcztcbiAgfVxuXG4gICY6OmFmdGVyLFxuICAmOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGluc2V0OiAwO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB6LWluZGV4OiAtMTtcbiAgfVxuXG4gIC8vIENvbnRhaW5lciBiYWNrZ3JvdW5kIGNvbG9yIChjb3B5aW5nIGNvbnRhaW5lcilcbiAgJjo6YmVmb3JlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zYmItY29udGFpbmVyLWJhY2tncm91bmQtY29sb3IpO1xuXG4gICAgLy8gTmVlZGVkIGJlY2F1c2UgdGhlcmUgaXMgbm8gY29udGVudCBhbmQgRmlyZWZveFxuICAgIC8vIGhhcyB0cm91YmxlcyBkaXNwbGF5aW5nIGNvcnJlY3QgcGFkZGluZyB3aGVuIHRoZXJlIGlzIG5vIGNvbnRlbnQuXG4gICAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuXG4gICAgOmhvc3QoOm5vdCg6c3RhdGUoZXhwYW5kZWQpKSkgJiB7XG4gICAgICBAaW5jbHVkZSBzYmIucGFnZS1zcGFjaW5nO1xuICAgIH1cbiAgfVxuXG4gIC8vIENvbG9yIGFuZCBib3JkZXIgcmFkaXVzIHdoZW4gc3RpY2t5XG4gICY6OmFmdGVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zYmItc3RpY2t5LWJhci1zdGlja3ktYmFja2dyb3VuZC1jb2xvciwgdHJhbnNwYXJlbnQpO1xuICAgIGJvcmRlci1zdGFydC1zdGFydC1yYWRpdXM6IHZhcigtLXNiYi1zdGlja3ktYmFyLWJvcmRlci1yYWRpdXMpO1xuICAgIGJvcmRlci1zdGFydC1lbmQtcmFkaXVzOiB2YXIoLS1zYmItc3RpY2t5LWJhci1ib3JkZXItcmFkaXVzKTtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIHZhcigtLV9zYmItc3RpY2t5LWJhci1iYWNrZ3JvdW5kLWFuaW1hdGlvbi1kdXJhdGlvbilcbiAgICAgIHZhcigtLXNiYi1zdGlja3ktYmFyLWFuaW1hdGlvbi1lYXNpbmcpO1xuXG4gICAgLy8gRGlzcGxheSBhIGJvcmRlciBvbiBoaWdoIGNvbnRyYXN0IG1vZGUuXG4gICAgYm9yZGVyOiB2YXIoLS1fc2JiLXN0aWNreS1iYXItZm9yY2VkLWNvbG9ycy1ib3JkZXIsIG5vbmUpO1xuICB9XG59XG5cbi5zYmItc3RpY2t5LWJhciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHBhZGRpbmctYmxvY2s6IHZhcigtLXNiYi1zdGlja3ktYmFyLXBhZGRpbmctYmxvY2spO1xuXG4gIC8vIFRvIHB1c2ggdGhlIC5zYmItc3RpY2t5LWJhcl9faW50ZXJzZWN0b3IgdXAgd2l0aG91dCB1c2luZyBhYnNvbHV0ZSBwb3NpdGlvbiB3ZSBuZWVkIGEgbmVnYXRpdmUgYmxvY2sgbWFyZ2luLlxuICBtYXJnaW4tYmxvY2stZW5kOiAtJGludGVyc2VjdG9yLW92ZXJsYXBwaW5nO1xuXG4gIC8vIFNoYWRvdyB3aXRoIGJvcmRlciByYWRpdXMgYW5kIGNsaXBwZWQgc2hhZG93IGF0IHRoZSBib3R0b21cbiAgJjo6YmVmb3JlIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgaW5zZXQ6IDA7XG4gICAgei1pbmRleDogLTE7XG4gICAgYm9yZGVyLXN0YXJ0LXN0YXJ0LXJhZGl1czogdmFyKC0tc2JiLXN0aWNreS1iYXItYm9yZGVyLXJhZGl1cyk7XG4gICAgYm9yZGVyLXN0YXJ0LWVuZC1yYWRpdXM6IHZhcigtLXNiYi1zdGlja3ktYmFyLWJvcmRlci1yYWRpdXMpO1xuICAgIHRyYW5zaXRpb246IGJveC1zaGFkb3cgdmFyKC0tX3NiYi1zdGlja3ktYmFyLWJhY2tncm91bmQtYW5pbWF0aW9uLWR1cmF0aW9uKVxuICAgICAgdmFyKC0tc2JiLXN0aWNreS1iYXItYW5pbWF0aW9uLWVhc2luZyk7XG4gICAgY2xpcC1wYXRoOiBwb2x5Z29uKFxuICAgICAgLTEwMCUgY2FsYygtMSAqIHZhcigtLXNiYi1zaGFkb3ctZWxldmF0aW9uLWxldmVsLTExLXNoYWRvdy0xLWJsdXIpKSxcbiAgICAgIDE1MCUgY2FsYygtMSAqIHZhcigtLXNiYi1zaGFkb3ctZWxldmF0aW9uLWxldmVsLTExLXNoYWRvdy0xLWJsdXIpKSxcbiAgICAgIDE1MCUgMTAwJSxcbiAgICAgIC0xMDAlIDEwMCVcbiAgICApO1xuXG4gICAgOmhvc3QoOnN0YXRlKHN0aWNraW5nKTpub3QoOnN0YXRlKHN0YXRlLXVuc3RpY2t5KSkpICYge1xuICAgICAgYm94LXNoYWRvdzogdmFyKC0tc2JiLWJveC1zaGFkb3ctbGV2ZWwtMTEtc29mdCk7XG4gICAgfVxuICB9XG5cbiAgOmhvc3QoOm5vdCg6c3RhdGUoZXhwYW5kZWQpKSkgJiB7XG4gICAgQGluY2x1ZGUgc2JiLnBhZ2Utc3BhY2luZztcbiAgfVxuXG4gIDpob3N0KDpzdGF0ZShleHBhbmRlZCkpICYge1xuICAgIEBpbmNsdWRlIHNiYi5wYWdlLXNwYWNpbmctZXhwYW5kZWQ7XG4gIH1cbn1cblxuLnNiYi1zdGlja3ktYmFyX19pbnRlcnNlY3RvciB7XG4gIC8vIEluIG9yZGVyIHRvIG1ha2UgdGhlIGludGVyc2VjdGlvbiBvYnNlcnZlciB3b3JrIHByb3Blcmx5IG9uIHdpbmRvd3MgdGhlIGludGVyc2VjdG9yIG5lZWRzIHRvIGhhdmUgYSBkZWZpbmVkIGhlaWdodFxuICBoZWlnaHQ6ICRpbnRlcnNlY3Rvci1vdmVybGFwcGluZztcblxuICAmOjphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogY2FsYyh2YXIoLS1zYmItc3RpY2t5LWJhci1ib3R0b20tb3ZlcmxhcHBpbmctaGVpZ2h0LCAwKSArICRpbnRlcnNlY3Rvci1vdmVybGFwcGluZyk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tX3NiYi1zdGlja3ktYmFyLWludGVyc2VjdG9yLWJhY2tncm91bmQtY29sb3IsIHRyYW5zcGFyZW50KTtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIHZhcigtLV9zYmItc3RpY2t5LWJhci1iYWNrZ3JvdW5kLWFuaW1hdGlvbi1kdXJhdGlvbilcbiAgICAgIHZhcigtLXNiYi1zdGlja3ktYmFyLWFuaW1hdGlvbi1lYXNpbmcpO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgc2xpZGUtaW4ge1xuICBmcm9tIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTAwJSk7XG4gIH1cblxuICB0byB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDAlKTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIHNsaWRlLW91dCB7XG4gIGZyb20ge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwJSk7XG4gIH1cblxuICB0byB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwMCUpO1xuICB9XG59XG4iLCJpbXBvcnQgeyBJbnRlcnNlY3Rpb25Db250cm9sbGVyIH0gZnJvbSAnQGxpdC1sYWJzL29ic2VydmVycy9pbnRlcnNlY3Rpb24tY29udHJvbGxlci5qcyc7XG5pbXBvcnQge1xuICB0eXBlIENTU1Jlc3VsdEdyb3VwLFxuICBodG1sLFxuICB0eXBlIFByb3BlcnR5VmFsdWVzLFxuICB0eXBlIFRlbXBsYXRlUmVzdWx0LFxuICB1bnNhZmVDU1MsXG59IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBwcm9wZXJ0eSB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcblxuaW1wb3J0IHtcbiAgYm94U2l6aW5nU3R5bGVzLFxuICBpc0xlYW4sXG4gIGlzWmVyb0FuaW1hdGlvbkR1cmF0aW9uLFxuICBTYmJFbGVtZW50LFxuICBTYmJVcGRhdGVTY2hlZHVsZXJNaXhpbixcbn0gZnJvbSAnLi4vLi4vY29yZS50cyc7XG5cbmltcG9ydCBzdHlsZSBmcm9tICcuL3N0aWNreS1iYXIuc2Nzcz9pbmxpbmUnO1xuXG50eXBlIFN0aWNreVN0YXRlID0gJ3N0aWNraW5nJyB8ICdzdGlja3knIHwgJ3Vuc3RpY2tpbmcnIHwgJ3Vuc3RpY2t5JztcblxuLyoqXG4gKiBBIGNvbnRhaW5lciB0aGF0IHN0aWNrcyB0byB0aGUgYm90dG9tIG9mIHRoZSBwYWdlIGlmIHNsb3R0ZWQgaW50byBgc2JiLWNvbnRhaW5lcmAuXG4gKlxuICogQHNsb3QgLSBVc2UgdGhlIHVubmFtZWQgc2xvdCB0byBhZGQgY29udGVudCB0byB0aGUgc3RpY2t5IGJhci5cbiAqIEBjc3Nwcm9wIFstLXNiYi1zdGlja3ktYmFyLXBhZGRpbmctYmxvY2s9dmFyKC0tc2JiLXNwYWNpbmctcmVzcG9uc2l2ZS14cyldIC0gQmxvY2sgcGFkZGluZyBvZiB0aGUgc3RpY2t5IGJhci5cbiAqIEBjc3Nwcm9wIFstLXNiYi1zdGlja3ktYmFyLWJvdHRvbS1vdmVybGFwcGluZy1oZWlnaHQ9MHB4XSAtIERlZmluZSBhbiBhZGRpdGlvbmFsIGFyZWEgd2hlcmVcbiAqIHRoZSBzdGlja3kgYmFyIG92ZXJsYXBzIHRoZSBmb2xsb3dpbmcgY29udGVudCBvbiB0aGUgYm90dG9tLlxuICogVGhpcyBhcmVhIGJlY29tZXMgdmlzaWJsZSB3aGVuIHRoZSBzdGlja3kgYmFyIHRyYW5zaXRpb25zIGZyb20gc3RpY2t5IHRvIHRoZSBub3JtYWwgZG9jdW1lbnQgZmxvdy5cbiAqIEBjc3Nwcm9wIFstLXNiYi1zdGlja3ktYmFyLXotaW5kZXhdIC0gVG8gc3BlY2lmeSBhIGN1c3RvbSBzdGFjayBvcmRlcixcbiAqIHRoZSBgei1pbmRleGAgY2FuIGJlIG92ZXJyaWRkZW4gYnkgZGVmaW5pbmcgdGhpcyBDU1MgdmFyaWFibGUuXG4gKi9cbmV4cG9ydCBjbGFzcyBTYmJTdGlja3lCYXJFbGVtZW50IGV4dGVuZHMgU2JiVXBkYXRlU2NoZWR1bGVyTWl4aW4oU2JiRWxlbWVudCkge1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHJlYWRvbmx5IGVsZW1lbnROYW1lOiBzdHJpbmcgPSAnc2JiLXN0aWNreS1iYXInO1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHN0eWxlczogQ1NTUmVzdWx0R3JvdXAgPSBbYm94U2l6aW5nU3R5bGVzLCB1bnNhZmVDU1Moc3R5bGUpXTtcblxuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IGV2ZW50cyA9IHtcbiAgICBiZWZvcmVzdGljazogJ2JlZm9yZXN0aWNrJyxcbiAgICBzdGljazogJ3N0aWNrJyxcbiAgICBiZWZvcmV1bnN0aWNrOiAnYmVmb3JldW5zdGljaycsXG4gICAgdW5zdGljazogJ3Vuc3RpY2snLFxuICB9IGFzIGNvbnN0O1xuXG4gIC8qKiBDb2xvciBvZiB0aGUgY29udGFpbmVyLCBsaWtlIHRyYW5zcGFyZW50LCB3aGl0ZSBldGMuICovXG4gIEBwcm9wZXJ0eSh7IHJlZmxlY3Q6IHRydWUgfSkgcHVibGljIGFjY2Vzc29yIGNvbG9yOlxuICAgIHwgJ3doaXRlJ1xuICAgIHwgJ21pbGsnXG4gICAgfCAnbWlkbmlnaHQnXG4gICAgfCAnY2hhcmNvYWwnXG4gICAgfCBudWxsID0gbnVsbDtcblxuICAvKipcbiAgICogU2l6ZSBvZiB0aGUgY29udGFpbmVyLlxuICAgKiBAZGVmYXVsdCAnbScgLyAncycgKGxlYW4pXG4gICAqL1xuICBAcHJvcGVydHkoeyByZWZsZWN0OiB0cnVlIH0pIHB1YmxpYyBhY2Nlc3NvciBzaXplOiAnbScgfCAncycgPSBpc0xlYW4oKSA/ICdzJyA6ICdtJztcblxuICAvKiogVGhlIHN0YXRlIG9mIHRoZSBjb21wb25lbnQuICovXG4gIHByaXZhdGUgc2V0IF9zdGF0ZShzdGF0ZTogU3RpY2t5U3RhdGUpIHtcbiAgICBpZiAodGhpcy5fc3RhdGVJbnRlcm5hbCkge1xuICAgICAgdGhpcy5pbnRlcm5hbHMuc3RhdGVzLmRlbGV0ZShgc3RhdGUtJHt0aGlzLl9zdGF0ZUludGVybmFsfWApO1xuICAgIH1cbiAgICB0aGlzLl9zdGF0ZUludGVybmFsID0gc3RhdGU7XG4gICAgaWYgKHRoaXMuX3N0YXRlSW50ZXJuYWwpIHtcbiAgICAgIHRoaXMuaW50ZXJuYWxzLnN0YXRlcy5hZGQoYHN0YXRlLSR7dGhpcy5fc3RhdGVJbnRlcm5hbH1gKTtcbiAgICB9XG4gIH1cbiAgcHJpdmF0ZSBnZXQgX3N0YXRlKCk6IFN0aWNreVN0YXRlIHtcbiAgICByZXR1cm4gdGhpcy5fc3RhdGVJbnRlcm5hbDtcbiAgfVxuICBwcml2YXRlIF9zdGF0ZUludGVybmFsITogU3RpY2t5U3RhdGU7XG5cbiAgcHJpdmF0ZSBfaW50ZXJzZWN0b3I/OiBIVE1MU3BhbkVsZW1lbnQ7XG4gIHByaXZhdGUgX29ic2VydmVyID0gbmV3IEludGVyc2VjdGlvbkNvbnRyb2xsZXIodGhpcywge1xuICAgIC8vIEFsdGhvdWdoIGB0aGlzYCBpcyBvYnNlcnZlZCwgd2UgaGF2ZSB0byBwb3N0cG9uZSBvYnNlcnZpbmdcbiAgICAvLyBpbnRvIGZpcnN0VXBkYXRlZCgpIHRvIGFjaGlldmUgYSBjb3JyZWN0IGluaXRpYWwgc3RhdGUuXG4gICAgdGFyZ2V0OiBudWxsLFxuICAgIGNhbGxiYWNrOiAoZW50cmllcykgPT4gdGhpcy5fZGV0ZWN0U3RpY2t5U3RhdGUoZW50cmllc1swXSksXG4gIH0pO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuXG4gICAgdGhpcy5fc3RhdGUgPSAnc3RpY2t5JztcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpO1xuICAgIHRoaXMuc2xvdCB8fD0gJ3N0aWNreS1iYXInO1xuXG4gICAgLy8gU3RpY2t5IGJhciBuZWVkcyB0byBiZSBoaWRkZW4gdW50aWwgZmlyc3Qgb2JzZXJ2ZXIgY2FsbGJhY2tcbiAgICB0aGlzLnN0YXJ0VXBkYXRlKCk7XG5cbiAgICBjb25zdCBjb250YWluZXIgPSB0aGlzLmNsb3Nlc3QoJ3NiYi1jb250YWluZXInKTtcbiAgICBpZiAoY29udGFpbmVyKSB7XG4gICAgICB0aGlzLnRvZ2dsZVN0YXRlKCdleHBhbmRlZCcsIGNvbnRhaW5lci5leHBhbmRlZCk7XG4gICAgfVxuICAgIGlmICh0aGlzLl9pbnRlcnNlY3Rvcikge1xuICAgICAgdGhpcy5fb2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzLl9pbnRlcnNlY3Rvcik7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgIHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCk7XG4gICAgdGhpcy5pbnRlcm5hbHMuc3RhdGVzLmRlbGV0ZSgnaW5pdGlhbGl6ZWQnKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBmaXJzdFVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXM6IFByb3BlcnR5VmFsdWVzPHRoaXM+KTogdm9pZCB7XG4gICAgc3VwZXIuZmlyc3RVcGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzKTtcblxuICAgIGlmICghdGhpcy5faW50ZXJzZWN0b3IpIHtcbiAgICAgIHRoaXMuX2ludGVyc2VjdG9yID0gdGhpcy5zaGFkb3dSb290IS5xdWVyeVNlbGVjdG9yKCcuc2JiLXN0aWNreS1iYXJfX2ludGVyc2VjdG9yJykhO1xuICAgICAgdGhpcy5fb2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzLl9pbnRlcnNlY3Rvcik7XG4gICAgfVxuICAgIHRoaXMuX29ic2VydmVyLm9ic2VydmUodGhpcyk7XG4gIH1cblxuICBwcml2YXRlIF9pc1plcm9BbmltYXRpb25EdXJhdGlvbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gaXNaZXJvQW5pbWF0aW9uRHVyYXRpb24odGhpcywgJy0tc2JiLXN0aWNreS1iYXItc2xpZGUtdmVydGljYWxseS1hbmltYXRpb24tZHVyYXRpb24nKTtcbiAgfVxuXG4gIHByaXZhdGUgX2RldGVjdFN0aWNreVN0YXRlKGVudHJ5OiBJbnRlcnNlY3Rpb25PYnNlcnZlckVudHJ5KTogdm9pZCB7XG4gICAgdGhpcy5pbnRlcm5hbHMuc3RhdGVzLmFkZCgnaW5pdGlhbGl6ZWQnKTtcblxuICAgIGNvbnN0IGlzU3RpY2t5ID0gIWVudHJ5LmlzSW50ZXJzZWN0aW5nICYmIGVudHJ5LmJvdW5kaW5nQ2xpZW50UmVjdC50b3AgPiAwO1xuXG4gICAgLy8gVG8gb3B0aW1pemUgdGhlIHZpc3VhbCBwZXJjZXB0aW9uIG9mIHRoZSBzdGlja3kgYmFyLCB3ZSBoYXZlIGNlcnRhaW4gY2FzZXMgKGUuZy4gb24gcGFnZSBsb2FkKVxuICAgIC8vIHdoZXJlIHdlIHdhbnQgdGhlIHN0aWNreSBiYXIgdG8gc2xpZGUgaW4gZnJvbSB0aGUgYm90dG9tLlxuICAgIC8vIFRvIGRlY2lkZSB3aGV0aGVyIHRvIHNsaWRlIGluIGZyb20gdGhlIGJvdHRvbSB1cCxcbiAgICAvLyB3ZSBjaGVjayBob3cgZmFyIGF3YXkgdGhlIHN0aWNreSBiYXIgaXMgZnJvbSB0aGUgaW50ZXJzZWN0b3IgZWxlbWVudC4gV2hlbiBzY3JvbGxpbmcgZmFzdCwgdGhlXG4gICAgLy8gZGlmZmVyZW5jZSBjYW4gdmFyeSBzbGlnaHRseS4gVG8gYWNjb3VudCBmb3IgdGhpcyB3ZSBhZGQgYSBoZWlnaHQgdG9sZXJhbmNlLlxuICAgIC8vIFRoaXMgdmFsdWUgd2FzIGZvdW5kIGJ5IHRyaWFsIGFuZCBlcnJvci5cbiAgICBjb25zdCBpbnRlcnNlY3RvclJlY3QgPSB0aGlzLl9pbnRlcnNlY3Rvcj8uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgY29uc3Qgc3RpY2t5QmFyUmVjdCA9IHRoaXMuc2hhZG93Um9vdCEucXVlcnlTZWxlY3RvcihcbiAgICAgICcuc2JiLXN0aWNreS1iYXJfX3dyYXBwZXInLFxuICAgICkhLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgIGNvbnN0IEhFSUdIVF9UT0xFUkFOQ0UgPSAzMDtcblxuICAgIHRoaXMudG9nZ2xlU3RhdGUoXG4gICAgICAnc2xpZGUtdmVydGljYWxseScsXG4gICAgICBpc1N0aWNreSAmJlxuICAgICAgICB0aGlzLl9pbnRlcnNlY3RvciAmJlxuICAgICAgICBNYXRoLmFicyhpbnRlcnNlY3RvclJlY3QhLmJvdHRvbSAtIHN0aWNreUJhclJlY3QuYm90dG9tKSA+IEhFSUdIVF9UT0xFUkFOQ0UsXG4gICAgKTtcblxuICAgIC8vIFRvZ2dsaW5nIHN0aWNraW5nIGhhcyB0byBiZSBhZnRlciBzbGlkZS12ZXJ0aWNhbGx5IChwcmV2ZW50cyBiYWNrZ3JvdW5kIGNvbG9yIHRyYW5zaXRpb24pXG4gICAgdGhpcy50b2dnbGVTdGF0ZSgnc3RpY2tpbmcnLCBpc1N0aWNreSk7XG5cbiAgICAvLyBTdGlja3kgYmFyIG5lZWRzIHRvIGJlIGhpZGRlbiB1bnRpbCBmaXJzdCBvYnNlcnZlciBjYWxsYmFja1xuICAgIHRoaXMuY29tcGxldGVVcGRhdGUoKTtcbiAgfVxuXG4gIC8qKiBBbmltYXRlcyBmcm9tIG5vcm1hbCBjb250ZW50IGZsb3cgcG9zaXRpb24gdG8gYHBvc2l0aW9uOiBzdGlja3lgLiAqL1xuICBwdWJsaWMgc3RpY2soKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX3N0YXRlICE9PSAndW5zdGlja3knIHx8ICF0aGlzLl9kaXNwYXRjaEJlZm9yZVN0aWNrRXZlbnQoKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuX3N0YXRlID0gJ3N0aWNraW5nJztcbiAgICBpZiAoIXRoaXMuaW50ZXJuYWxzLnN0YXRlcy5oYXMoJ3N0aWNraW5nJykgfHwgdGhpcy5faXNaZXJvQW5pbWF0aW9uRHVyYXRpb24oKSkge1xuICAgICAgdGhpcy5fc3RpY2t5Q2FsbGJhY2soKTtcbiAgICB9XG4gIH1cblxuICAvKiogQW5pbWF0ZXMgYHBvc2l0aW9uOiBzdGlja3lgIHRvIG5vcm1hbCBjb250ZW50IGZsb3cgcG9zaXRpb24uICovXG4gIHB1YmxpYyB1bnN0aWNrKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9zdGF0ZSAhPT0gJ3N0aWNreScgfHwgIXRoaXMuX2Rpc3BhdGNoQmVmb3JlVW5TdGlja0V2ZW50KCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLl9zdGF0ZSA9ICd1bnN0aWNraW5nJztcblxuICAgIGlmICghdGhpcy5pbnRlcm5hbHMuc3RhdGVzLmhhcygnc3RpY2tpbmcnKSB8fCB0aGlzLl9pc1plcm9BbmltYXRpb25EdXJhdGlvbigpKSB7XG4gICAgICB0aGlzLl91bnN0aWNreUNhbGxiYWNrKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfc3RpY2t5Q2FsbGJhY2soKTogdm9pZCB7XG4gICAgdGhpcy5fc3RhdGUgPSAnc3RpY2t5JztcblxuICAgIC8qKiBFbWl0cyB3aGVuIHRoZSBhbmltYXRpb24gZnJvbSBub3JtYWwgY29udGVudCBmbG93IHRvIGBwb3NpdGlvbjogc3RpY2t5YCBlbmRzLiAqL1xuICAgIHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ3N0aWNrJykpO1xuICB9XG5cbiAgcHJpdmF0ZSBfdW5zdGlja3lDYWxsYmFjaygpOiB2b2lkIHtcbiAgICAvKiogRW1pdHMgd2hlbiB0aGUgYW5pbWF0aW9uIGZyb20gYHBvc2l0aW9uOiBzdGlja3lgIHRvIG5vcm1hbCBjb250ZW50IGZsb3cgZW5kcy4gKi9cbiAgICB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCd1bnN0aWNrJykpO1xuICAgIHRoaXMuX3N0YXRlID0gJ3Vuc3RpY2t5JztcbiAgfVxuXG4gIHByaXZhdGUgX29uQW5pbWF0aW9uRW5kKGV2ZW50OiBBbmltYXRpb25FdmVudCk6IHZvaWQge1xuICAgIGlmIChcbiAgICAgICh0aGlzLl9zdGF0ZSA9PT0gJ3N0aWNraW5nJyB8fCB0aGlzLl9zdGF0ZSA9PT0gJ3N0aWNreScpICYmXG4gICAgICBldmVudC5hbmltYXRpb25OYW1lID09PSAnc2xpZGUtaW4nXG4gICAgKSB7XG4gICAgICB0aGlzLl9zdGlja3lDYWxsYmFjaygpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5fc3RhdGUgPT09ICd1bnN0aWNraW5nJyAmJiBldmVudC5hbmltYXRpb25OYW1lID09PSAnc2xpZGUtb3V0Jykge1xuICAgICAgdGhpcy5fdW5zdGlja3lDYWxsYmFjaygpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2Rpc3BhdGNoQmVmb3JlU3RpY2tFdmVudCgpOiBib29sZWFuIHtcbiAgICAvKiogRW1pdHMgd2hlbiB0aGUgYW5pbWF0aW9uIGZyb20gbm9ybWFsIGNvbnRlbnQgZmxvdyB0byBgcG9zaXRpb246IHN0aWNreWAgc3RhcnRzLiBDYW4gYmUgY2FuY2VsZWQuICovXG4gICAgcmV0dXJuIHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ2JlZm9yZXN0aWNrJywgeyBjYW5jZWxhYmxlOiB0cnVlIH0pKTtcbiAgfVxuXG4gIHByaXZhdGUgX2Rpc3BhdGNoQmVmb3JlVW5TdGlja0V2ZW50KCk6IGJvb2xlYW4ge1xuICAgIC8qKiBFbWl0cyB3aGVuIHRoZSBhbmltYXRpb24gZnJvbSBgcG9zaXRpb246IHN0aWNreWAgdG8gbm9ybWFsIGNvbnRlbnQgZmxvdyBzdGFydHMuIENhbiBiZSBjYW5jZWxlZC4gKi9cbiAgICByZXR1cm4gdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgnYmVmb3JldW5zdGljaycsIHsgY2FuY2VsYWJsZTogdHJ1ZSB9KSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxkaXYgY2xhc3M9XCJzYmItc3RpY2t5LWJhcl9fd3JhcHBlclwiIEBhbmltYXRpb25lbmQ9JHt0aGlzLl9vbkFuaW1hdGlvbkVuZH0+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzYmItc3RpY2t5LWJhclwiPlxuICAgICAgICAgIDxzbG90Pjwvc2xvdD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJzYmItc3RpY2t5LWJhcl9faW50ZXJzZWN0b3JcIj48L2Rpdj5cbiAgICBgO1xuICB9XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgICdzYmItc3RpY2t5LWJhcic6IFNiYlN0aWNreUJhckVsZW1lbnQ7XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7SUNpQ2EsNkJBQW1CO21CQUFTLHdCQUF3QixXQUFXOzs7Ozs7O2NBQS9ELDRCQUE0QixZQUFtQzs7O3dCQVl6RSxTQUFTLEVBQUUsU0FBUyxNQUFNLENBQUMsQ0FBQTt1QkFXM0IsU0FBUyxFQUFFLFNBQVMsTUFBTSxDQUFDLENBQUE7QUFYQyxnQkFBQSxNQUFBLE1BQUEsbUJBQUE7SUFBQSxNQUFBO0lBQUEsTUFBQTtJQUFBLFFBQUE7SUFBQSxTQUFBO0lBQUEsUUFBQTtLQUFBLE1BQUEsUUFBQSxXQUFBO0tBQUEsTUFBQSxRQUFBLElBQWdCO0tBQUssTUFBQSxLQUFBLFVBQUE7QUFBQSxVQUFMLFFBQUs7O0tBQUE7SUFBQSxVQUFBO0lBQUEsRUFBQSxxQkFBQSx5QkFBQTtBQVdyQixnQkFBQSxNQUFBLE1BQUEsa0JBQUE7SUFBQSxNQUFBO0lBQUEsTUFBQTtJQUFBLFFBQUE7SUFBQSxTQUFBO0lBQUEsUUFBQTtLQUFBLE1BQUEsUUFBQSxVQUFBO0tBQUEsTUFBQSxRQUFBLElBQWdCO0tBQUksTUFBQSxLQUFBLFVBQUE7QUFBQSxVQUFKLE9BQUk7O0tBQUE7SUFBQSxVQUFBO0lBQUEsRUFBQSxvQkFBQSx3QkFBQTs7Ozs7Ozs7O0FBdEJqQixRQUFBLGNBQXNCOzs7QUFDL0IsUUFBQSxTQUF5QixDQUFDLGlCQUFpQixVQUFVLG1CQUFNLENBQUM7OztBQUU1RCxRQUFBLFNB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
203
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RpY2t5LWJhci5jb21wb25lbnQtQ1ZLaV82NVMuanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2NvbnRhaW5lci9zdGlja3ktYmFyL3N0aWNreS1iYXIuc2Nzcz9pbmxpbmUiLCIuLi8uLi8uLi9zcmMvZWxlbWVudHMvY29udGFpbmVyL3N0aWNreS1iYXIvc3RpY2t5LWJhci5jb21wb25lbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiQHVzZSAnLi4vLi4vY29yZS9zdHlsZXMnIGFzIHNiYjtcblxuJGludGVyc2VjdG9yLW92ZXJsYXBwaW5nOiAxcHg7XG5cbi8vIGA6c3RhdGUoc3RpY2tpbmcpYCB2LnMuIGA6c3RhdGUoc3RhdGUtc3RpY2t5KWA6XG4vLyBXaGlsZSBgOnN0YXRlKHN0aWNraW5nKWAgaXMgcmVwcmVzZW50aW5nIHdoZXRoZXIgdGhlIHN0aWNreSBiYXIgaXMgY3VycmVudGx5IHN0aWNraW5nIChkdWUgc2Nyb2xsaW5nKSxcbi8vIHRoZSBgOnN0YXRlKHN0YXRlLXh5KWAgaG9sZHMgaW5mb3JtYXRpb24gd2hldGhlciB0aGUgYHBvc2l0aW9uOiBzdGlja3lgIGlzIGFwcGxpZWQgb3Igbm90XG4vLyBidXQgbm90IGNvbnNpZGVyaW5nIHRoZSByZWFsIHN0aWNraW5nIHN0YXRlLlxuXG46aG9zdCB7XG4gIC0tc2JiLXN0aWNreS1iYXItZmFkZS1pbi1hbmltYXRpb24tZHVyYXRpb246IHZhcihcbiAgICAtLXNiYi1kaXNhYmxlLWFuaW1hdGlvbi1kdXJhdGlvbixcbiAgICB2YXIoLS1zYmItYW5pbWF0aW9uLWR1cmF0aW9uLTV4KVxuICApO1xuICAtLXNiYi1zdGlja3ktYmFyLWZhZGUtb3V0LWFuaW1hdGlvbi1kdXJhdGlvbjogdmFyKFxuICAgIC0tc2JiLWRpc2FibGUtYW5pbWF0aW9uLWR1cmF0aW9uLFxuICAgIHZhcigtLXNiYi1hbmltYXRpb24tZHVyYXRpb24tMngpXG4gICk7XG4gIC0tc2JiLXN0aWNreS1iYXItc2xpZGUtdmVydGljYWxseS1hbmltYXRpb24tZHVyYXRpb246IHZhcihcbiAgICAtLXNiYi1kaXNhYmxlLWFuaW1hdGlvbi1kdXJhdGlvbixcbiAgICB2YXIoLS1zYmItYW5pbWF0aW9uLWR1cmF0aW9uLTR4KVxuICApO1xuICAtLV9zYmItc3RpY2t5LWJhci1iYWNrZ3JvdW5kLWFuaW1hdGlvbi1kdXJhdGlvbjogdmFyKFxuICAgIC0tc2JiLXN0aWNreS1iYXItZmFkZS1vdXQtYW5pbWF0aW9uLWR1cmF0aW9uXG4gICk7XG5cbiAgLy8gRGlzcGxheSBjb250ZW50cyBuZWVkZWQgdG8gZ2V0IHRoZSBzdGlja3kgYmFyIHN0aWNreS5cbiAgZGlzcGxheTogY29udGVudHM7XG59XG5cbjpob3N0KFtzaXplPSdzJ10pIHtcbiAgLS1zYmItc3RpY2t5LWJhci1wYWRkaW5nLWJsb2NrOiB2YXIoLS1zYmItc3BhY2luZy1yZXNwb25zaXZlLXh4eHMpO1xufVxuXG46aG9zdChbc2l6ZT0nbSddKSB7XG4gIC0tc2JiLXN0aWNreS1iYXItcGFkZGluZy1ibG9jazogdmFyKC0tc2JiLXNwYWNpbmctcmVzcG9uc2l2ZS14cyk7XG59XG5cbjpob3N0KDpzdGF0ZShzdGlja2luZyk6bm90KDpzdGF0ZShzdGF0ZS11bnN0aWNreSkpKSB7XG4gIC0tc2JiLXN0aWNreS1iYXItc3RpY2t5LWJhY2tncm91bmQtY29sb3I6IHZhcihcbiAgICAtLXNiYi1jb250YWluZXItYmFja2dyb3VuZC1jb2xvcixcbiAgICB2YXIoLS1zYmItYmFja2dyb3VuZC1jb2xvci0xKVxuICApO1xuICAtLV9zYmItc3RpY2t5LWJhci1pbnRlcnNlY3Rvci1iYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zYmItc3RpY2t5LWJhci1zdGlja3ktYmFja2dyb3VuZC1jb2xvcik7XG4gIC0tX3NiYi1zdGlja3ktYmFyLWJhY2tncm91bmQtYW5pbWF0aW9uLWR1cmF0aW9uOiB2YXIoLS1zYmItc3RpY2t5LWJhci1mYWRlLWluLWFuaW1hdGlvbi1kdXJhdGlvbik7XG5cbiAgQGluY2x1ZGUgc2JiLmlmLWZvcmNlZC1jb2xvcnMge1xuICAgIC0tX3NiYi1zdGlja3ktYmFyLWZvcmNlZC1jb2xvcnMtYm9yZGVyOiB2YXIoLS1zYmItYm9yZGVyLXdpZHRoLTF4KSBzb2xpZCBDYW52YXNUZXh0O1xuICB9XG59XG5cbjpob3N0KDpzdGF0ZShzdGlja2luZyk6bm90KDpzdGF0ZShzdGF0ZS11bnN0aWNreSkpW2NvbG9yPSd3aGl0ZSddKSB7XG4gIC0tc2JiLXN0aWNreS1iYXItc3RpY2t5LWJhY2tncm91bmQtY29sb3I6IHZhcigtLXNiYi1iYWNrZ3JvdW5kLWNvbG9yLTEpO1xufVxuXG46aG9zdCg6c3RhdGUoc3RpY2tpbmcpOm5vdCg6c3RhdGUoc3RhdGUtdW5zdGlja3kpKVtjb2xvcj0nbWlsayddKSB7XG4gIC0tc2JiLXN0aWNreS1iYXItc3RpY2t5LWJhY2tncm91bmQtY29sb3I6IHZhcigtLXNiYi1iYWNrZ3JvdW5kLWNvbG9yLTMpO1xufVxuXG46aG9zdCg6c3RhdGUoc3RpY2tpbmcpOm5vdCg6c3RhdGUoc3RhdGUtdW5zdGlja3kpKVtjb2xvcj0nbWlkbmlnaHQnXSkge1xuICAtLXNiYi1zdGlja3ktYmFyLXN0aWNreS1iYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zYmItYmFja2dyb3VuZC1jb2xvci0xLW5lZ2F0aXZlKTtcbn1cblxuOmhvc3QoOnN0YXRlKHN0aWNraW5nKTpub3QoOnN0YXRlKHN0YXRlLXVuc3RpY2t5KSlbY29sb3I9J2NoYXJjb2FsJ10pIHtcbiAgLS1zYmItc3RpY2t5LWJhci1zdGlja3ktYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2JiLWJhY2tncm91bmQtY29sb3ItMi1uZWdhdGl2ZSk7XG59XG5cbjpob3N0KFxuICA6aXMoXG4gICAgOnN0YXRlKHN0aWNraW5nKTppcyg6c3RhdGUoc2xpZGUtdmVydGljYWxseSksIDpzdGF0ZShzdGF0ZS1zdGlja2luZyksIDpzdGF0ZShzdGF0ZS11bnN0aWNraW5nKSksXG4gICAgOnN0YXRlKHN0YXRlLXVuc3RpY2t5KVxuICApXG4pIHtcbiAgLS1fc2JiLXN0aWNreS1iYXItYmFja2dyb3VuZC1hbmltYXRpb24tZHVyYXRpb246IDBzO1xufVxuXG46aG9zdChcbiAgOnN0YXRlKHN0aWNraW5nKTppcyhcbiAgICA6c3RhdGUoc2xpZGUtdmVydGljYWxseSk6bm90KDpzdGF0ZShzdGF0ZS11bnN0aWNreSksIDpzdGF0ZShzdGF0ZS11bnN0aWNraW5nKSksXG4gICAgOnN0YXRlKHN0YXRlLXN0aWNraW5nKVxuICApXG4pIHtcbiAgLS1zYmItc3RpY2t5LWJhci1zbGlkZS12ZXJ0aWNhbGx5LWFuaW1hdGlvbi1uYW1lOiBzbGlkZS1pbjtcbn1cblxuOmhvc3QoOnN0YXRlKHN0aWNraW5nKTpzdGF0ZShzdGF0ZS11bnN0aWNraW5nKSkge1xuICAtLXNiYi1zdGlja3ktYmFyLXNsaWRlLXZlcnRpY2FsbHktYW5pbWF0aW9uLW5hbWU6IHNsaWRlLW91dDtcbn1cblxuOmhvc3QoOmlzKDpub3QoOnN0YXRlKGluaXRpYWxpemVkKSksIDpzdGF0ZShzdGF0ZS11bnN0aWNreSkpKSB7XG4gIC0tc2JiLXN0aWNreS1iYXItcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4uc2JiLXN0aWNreS1iYXJfX3dyYXBwZXIge1xuICBwb3NpdGlvbjogdmFyKC0tc2JiLXN0aWNreS1iYXItcG9zaXRpb24pO1xuICBpbnNldC1ibG9jay1lbmQ6IDA7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB6LWluZGV4OiB2YXIoLS1zYmItc3RpY2t5LWJhci16LWluZGV4KTtcblxuICBhbmltYXRpb246IHtcbiAgICBuYW1lOiB2YXIoLS1zYmItc3RpY2t5LWJhci1zbGlkZS12ZXJ0aWNhbGx5LWFuaW1hdGlvbi1uYW1lLCB1bnNldCk7XG4gICAgZHVyYXRpb246IHZhcigtLXNiYi1zdGlja3ktYmFyLXNsaWRlLXZlcnRpY2FsbHktYW5pbWF0aW9uLWR1cmF0aW9uKTtcbiAgICB0aW1pbmctZnVuY3Rpb246IHZhcigtLXNiYi1zdGlja3ktYmFyLXNsaWRlLXZlcnRpY2FsbHktYW5pbWF0aW9uLWVhc2luZyk7XG4gICAgZGVsYXk6IDBzO1xuXG4gICAgLy8gRmlsbCBtb2RlIG5lZWRlZCB0byBlbmFibGUgZGVsYXlcbiAgICBmaWxsLW1vZGU6IGJhY2t3YXJkcztcbiAgfVxuXG4gICY6OmFmdGVyLFxuICAmOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGluc2V0OiAwO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB6LWluZGV4OiAtMTtcbiAgfVxuXG4gIC8vIENvbnRhaW5lciBiYWNrZ3JvdW5kIGNvbG9yIChjb3B5aW5nIGNvbnRhaW5lcilcbiAgJjo6YmVmb3JlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zYmItY29udGFpbmVyLWJhY2tncm91bmQtY29sb3IpO1xuXG4gICAgLy8gTmVlZGVkIGJlY2F1c2UgdGhlcmUgaXMgbm8gY29udGVudCBhbmQgRmlyZWZveFxuICAgIC8vIGhhcyB0cm91YmxlcyBkaXNwbGF5aW5nIGNvcnJlY3QgcGFkZGluZyB3aGVuIHRoZXJlIGlzIG5vIGNvbnRlbnQuXG4gICAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuXG4gICAgOmhvc3QoOm5vdCg6c3RhdGUoZXhwYW5kZWQpKSkgJiB7XG4gICAgICBAaW5jbHVkZSBzYmIucGFnZS1zcGFjaW5nO1xuICAgIH1cbiAgfVxuXG4gIC8vIENvbG9yIGFuZCBib3JkZXIgcmFkaXVzIHdoZW4gc3RpY2t5XG4gICY6OmFmdGVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zYmItc3RpY2t5LWJhci1zdGlja3ktYmFja2dyb3VuZC1jb2xvciwgdHJhbnNwYXJlbnQpO1xuICAgIGJvcmRlci1zdGFydC1zdGFydC1yYWRpdXM6IHZhcigtLXNiYi1zdGlja3ktYmFyLWJvcmRlci1yYWRpdXMpO1xuICAgIGJvcmRlci1zdGFydC1lbmQtcmFkaXVzOiB2YXIoLS1zYmItc3RpY2t5LWJhci1ib3JkZXItcmFkaXVzKTtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIHZhcigtLV9zYmItc3RpY2t5LWJhci1iYWNrZ3JvdW5kLWFuaW1hdGlvbi1kdXJhdGlvbilcbiAgICAgIHZhcigtLXNiYi1zdGlja3ktYmFyLWFuaW1hdGlvbi1lYXNpbmcpO1xuXG4gICAgLy8gRGlzcGxheSBhIGJvcmRlciBvbiBoaWdoIGNvbnRyYXN0IG1vZGUuXG4gICAgYm9yZGVyOiB2YXIoLS1fc2JiLXN0aWNreS1iYXItZm9yY2VkLWNvbG9ycy1ib3JkZXIsIG5vbmUpO1xuICB9XG59XG5cbi5zYmItc3RpY2t5LWJhciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHBhZGRpbmctYmxvY2s6IHZhcigtLXNiYi1zdGlja3ktYmFyLXBhZGRpbmctYmxvY2spO1xuXG4gIC8vIFRvIHB1c2ggdGhlIC5zYmItc3RpY2t5LWJhcl9faW50ZXJzZWN0b3IgdXAgd2l0aG91dCB1c2luZyBhYnNvbHV0ZSBwb3NpdGlvbiB3ZSBuZWVkIGEgbmVnYXRpdmUgYmxvY2sgbWFyZ2luLlxuICBtYXJnaW4tYmxvY2stZW5kOiAtJGludGVyc2VjdG9yLW92ZXJsYXBwaW5nO1xuXG4gIC8vIFNoYWRvdyB3aXRoIGJvcmRlciByYWRpdXMgYW5kIGNsaXBwZWQgc2hhZG93IGF0IHRoZSBib3R0b21cbiAgJjo6YmVmb3JlIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgaW5zZXQ6IDA7XG4gICAgei1pbmRleDogLTE7XG4gICAgYm9yZGVyLXN0YXJ0LXN0YXJ0LXJhZGl1czogdmFyKC0tc2JiLXN0aWNreS1iYXItYm9yZGVyLXJhZGl1cyk7XG4gICAgYm9yZGVyLXN0YXJ0LWVuZC1yYWRpdXM6IHZhcigtLXNiYi1zdGlja3ktYmFyLWJvcmRlci1yYWRpdXMpO1xuICAgIHRyYW5zaXRpb246IGJveC1zaGFkb3cgdmFyKC0tX3NiYi1zdGlja3ktYmFyLWJhY2tncm91bmQtYW5pbWF0aW9uLWR1cmF0aW9uKVxuICAgICAgdmFyKC0tc2JiLXN0aWNreS1iYXItYW5pbWF0aW9uLWVhc2luZyk7XG4gICAgY2xpcC1wYXRoOiBwb2x5Z29uKFxuICAgICAgLTEwMCUgY2FsYygtMSAqIHZhcigtLXNiYi1zaGFkb3ctZWxldmF0aW9uLWxldmVsLTExLXNoYWRvdy0xLWJsdXIpKSxcbiAgICAgIDE1MCUgY2FsYygtMSAqIHZhcigtLXNiYi1zaGFkb3ctZWxldmF0aW9uLWxldmVsLTExLXNoYWRvdy0xLWJsdXIpKSxcbiAgICAgIDE1MCUgMTAwJSxcbiAgICAgIC0xMDAlIDEwMCVcbiAgICApO1xuXG4gICAgOmhvc3QoOnN0YXRlKHN0aWNraW5nKTpub3QoOnN0YXRlKHN0YXRlLXVuc3RpY2t5KSkpICYge1xuICAgICAgYm94LXNoYWRvdzogdmFyKC0tc2JiLWJveC1zaGFkb3ctbGV2ZWwtMTEtc29mdCk7XG4gICAgfVxuICB9XG5cbiAgOmhvc3QoOm5vdCg6c3RhdGUoZXhwYW5kZWQpKSkgJiB7XG4gICAgQGluY2x1ZGUgc2JiLnBhZ2Utc3BhY2luZztcbiAgfVxuXG4gIDpob3N0KDpzdGF0ZShleHBhbmRlZCkpICYge1xuICAgIEBpbmNsdWRlIHNiYi5wYWdlLXNwYWNpbmctZXhwYW5kZWQ7XG4gIH1cbn1cblxuLnNiYi1zdGlja3ktYmFyX19pbnRlcnNlY3RvciB7XG4gIC8vIEluIG9yZGVyIHRvIG1ha2UgdGhlIGludGVyc2VjdGlvbiBvYnNlcnZlciB3b3JrIHByb3Blcmx5IG9uIHdpbmRvd3MgdGhlIGludGVyc2VjdG9yIG5lZWRzIHRvIGhhdmUgYSBkZWZpbmVkIGhlaWdodFxuICBoZWlnaHQ6ICRpbnRlcnNlY3Rvci1vdmVybGFwcGluZztcblxuICAmOjphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogY2FsYyh2YXIoLS1zYmItc3RpY2t5LWJhci1ib3R0b20tb3ZlcmxhcHBpbmctaGVpZ2h0LCAwKSArICRpbnRlcnNlY3Rvci1vdmVybGFwcGluZyk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tX3NiYi1zdGlja3ktYmFyLWludGVyc2VjdG9yLWJhY2tncm91bmQtY29sb3IsIHRyYW5zcGFyZW50KTtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIHZhcigtLV9zYmItc3RpY2t5LWJhci1iYWNrZ3JvdW5kLWFuaW1hdGlvbi1kdXJhdGlvbilcbiAgICAgIHZhcigtLXNiYi1zdGlja3ktYmFyLWFuaW1hdGlvbi1lYXNpbmcpO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgc2xpZGUtaW4ge1xuICBmcm9tIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTAwJSk7XG4gIH1cblxuICB0byB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDAlKTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIHNsaWRlLW91dCB7XG4gIGZyb20ge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwJSk7XG4gIH1cblxuICB0byB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwMCUpO1xuICB9XG59XG4iLCJpbXBvcnQgeyBJbnRlcnNlY3Rpb25Db250cm9sbGVyIH0gZnJvbSAnQGxpdC1sYWJzL29ic2VydmVycy9pbnRlcnNlY3Rpb24tY29udHJvbGxlci5qcyc7XG5pbXBvcnQge1xuICB0eXBlIENTU1Jlc3VsdEdyb3VwLFxuICBodG1sLFxuICB0eXBlIFByb3BlcnR5VmFsdWVzLFxuICB0eXBlIFRlbXBsYXRlUmVzdWx0LFxuICB1bnNhZmVDU1MsXG59IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBwcm9wZXJ0eSB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcblxuaW1wb3J0IHtcbiAgYm94U2l6aW5nU3R5bGVzLFxuICBpc0xlYW4sXG4gIGlzWmVyb0FuaW1hdGlvbkR1cmF0aW9uLFxuICBTYmJFbGVtZW50LFxuICBTYmJVcGRhdGVTY2hlZHVsZXJNaXhpbixcbn0gZnJvbSAnLi4vLi4vY29yZS50cyc7XG5cbmltcG9ydCBzdHlsZSBmcm9tICcuL3N0aWNreS1iYXIuc2Nzcz9pbmxpbmUnO1xuXG50eXBlIFN0aWNreVN0YXRlID0gJ3N0aWNraW5nJyB8ICdzdGlja3knIHwgJ3Vuc3RpY2tpbmcnIHwgJ3Vuc3RpY2t5JztcblxuLyoqXG4gKiBBIGNvbnRhaW5lciB0aGF0IHN0aWNrcyB0byB0aGUgYm90dG9tIG9mIHRoZSBwYWdlIGlmIHNsb3R0ZWQgaW50byBgc2JiLWNvbnRhaW5lcmAuXG4gKlxuICogQHNsb3QgLSBVc2UgdGhlIHVubmFtZWQgc2xvdCB0byBhZGQgY29udGVudCB0byB0aGUgc3RpY2t5IGJhci5cbiAqIEBjc3Nwcm9wIFstLXNiYi1zdGlja3ktYmFyLXBhZGRpbmctYmxvY2s9dmFyKC0tc2JiLXNwYWNpbmctcmVzcG9uc2l2ZS14cyldIC0gQmxvY2sgcGFkZGluZyBvZiB0aGUgc3RpY2t5IGJhci5cbiAqIEBjc3Nwcm9wIFstLXNiYi1zdGlja3ktYmFyLWJvdHRvbS1vdmVybGFwcGluZy1oZWlnaHQ9MHB4XSAtIERlZmluZSBhbiBhZGRpdGlvbmFsIGFyZWEgd2hlcmVcbiAqIHRoZSBzdGlja3kgYmFyIG92ZXJsYXBzIHRoZSBmb2xsb3dpbmcgY29udGVudCBvbiB0aGUgYm90dG9tLlxuICogVGhpcyBhcmVhIGJlY29tZXMgdmlzaWJsZSB3aGVuIHRoZSBzdGlja3kgYmFyIHRyYW5zaXRpb25zIGZyb20gc3RpY2t5IHRvIHRoZSBub3JtYWwgZG9jdW1lbnQgZmxvdy5cbiAqIEBjc3Nwcm9wIFstLXNiYi1zdGlja3ktYmFyLXotaW5kZXhdIC0gVG8gc3BlY2lmeSBhIGN1c3RvbSBzdGFjayBvcmRlcixcbiAqIHRoZSBgei1pbmRleGAgY2FuIGJlIG92ZXJyaWRkZW4gYnkgZGVmaW5pbmcgdGhpcyBDU1MgdmFyaWFibGUuXG4gKi9cbmV4cG9ydCBjbGFzcyBTYmJTdGlja3lCYXJFbGVtZW50IGV4dGVuZHMgU2JiVXBkYXRlU2NoZWR1bGVyTWl4aW4oU2JiRWxlbWVudCkge1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHJlYWRvbmx5IGVsZW1lbnROYW1lOiBzdHJpbmcgPSAnc2JiLXN0aWNreS1iYXInO1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHN0eWxlczogQ1NTUmVzdWx0R3JvdXAgPSBbYm94U2l6aW5nU3R5bGVzLCB1bnNhZmVDU1Moc3R5bGUpXTtcblxuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IGV2ZW50cyA9IHtcbiAgICBiZWZvcmVzdGljazogJ2JlZm9yZXN0aWNrJyxcbiAgICBzdGljazogJ3N0aWNrJyxcbiAgICBiZWZvcmV1bnN0aWNrOiAnYmVmb3JldW5zdGljaycsXG4gICAgdW5zdGljazogJ3Vuc3RpY2snLFxuICB9IGFzIGNvbnN0O1xuXG4gIC8qKiBDb2xvciBvZiB0aGUgY29udGFpbmVyLCBsaWtlIHRyYW5zcGFyZW50LCB3aGl0ZSBldGMuICovXG4gIEBwcm9wZXJ0eSh7IHJlZmxlY3Q6IHRydWUgfSkgcHVibGljIGFjY2Vzc29yIGNvbG9yOlxuICAgIHwgJ3doaXRlJ1xuICAgIHwgJ21pbGsnXG4gICAgfCAnbWlkbmlnaHQnXG4gICAgfCAnY2hhcmNvYWwnXG4gICAgfCBudWxsID0gbnVsbDtcblxuICAvKipcbiAgICogU2l6ZSBvZiB0aGUgY29udGFpbmVyLlxuICAgKiBAZGVmYXVsdCAnbScgLyAncycgKGxlYW4pXG4gICAqL1xuICBAcHJvcGVydHkoeyByZWZsZWN0OiB0cnVlIH0pIHB1YmxpYyBhY2Nlc3NvciBzaXplOiAnbScgfCAncycgPSBpc0xlYW4oKSA/ICdzJyA6ICdtJztcblxuICAvKiogVGhlIHN0YXRlIG9mIHRoZSBjb21wb25lbnQuICovXG4gIHByaXZhdGUgc2V0IF9zdGF0ZShzdGF0ZTogU3RpY2t5U3RhdGUpIHtcbiAgICBpZiAodGhpcy5fc3RhdGVJbnRlcm5hbCkge1xuICAgICAgdGhpcy5pbnRlcm5hbHMuc3RhdGVzLmRlbGV0ZShgc3RhdGUtJHt0aGlzLl9zdGF0ZUludGVybmFsfWApO1xuICAgIH1cbiAgICB0aGlzLl9zdGF0ZUludGVybmFsID0gc3RhdGU7XG4gICAgaWYgKHRoaXMuX3N0YXRlSW50ZXJuYWwpIHtcbiAgICAgIHRoaXMuaW50ZXJuYWxzLnN0YXRlcy5hZGQoYHN0YXRlLSR7dGhpcy5fc3RhdGVJbnRlcm5hbH1gKTtcbiAgICB9XG4gIH1cbiAgcHJpdmF0ZSBnZXQgX3N0YXRlKCk6IFN0aWNreVN0YXRlIHtcbiAgICByZXR1cm4gdGhpcy5fc3RhdGVJbnRlcm5hbDtcbiAgfVxuICBwcml2YXRlIF9zdGF0ZUludGVybmFsITogU3RpY2t5U3RhdGU7XG5cbiAgcHJpdmF0ZSBfaW50ZXJzZWN0b3I/OiBIVE1MU3BhbkVsZW1lbnQ7XG4gIHByaXZhdGUgX29ic2VydmVyID0gbmV3IEludGVyc2VjdGlvbkNvbnRyb2xsZXIodGhpcywge1xuICAgIC8vIEFsdGhvdWdoIGB0aGlzYCBpcyBvYnNlcnZlZCwgd2UgaGF2ZSB0byBwb3N0cG9uZSBvYnNlcnZpbmdcbiAgICAvLyBpbnRvIGZpcnN0VXBkYXRlZCgpIHRvIGFjaGlldmUgYSBjb3JyZWN0IGluaXRpYWwgc3RhdGUuXG4gICAgdGFyZ2V0OiBudWxsLFxuICAgIGNhbGxiYWNrOiAoZW50cmllcykgPT4gdGhpcy5fZGV0ZWN0U3RpY2t5U3RhdGUoZW50cmllc1swXSksXG4gIH0pO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuXG4gICAgdGhpcy5fc3RhdGUgPSAnc3RpY2t5JztcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpO1xuICAgIHRoaXMuc2xvdCB8fD0gJ3N0aWNreS1iYXInO1xuXG4gICAgLy8gU3RpY2t5IGJhciBuZWVkcyB0byBiZSBoaWRkZW4gdW50aWwgZmlyc3Qgb2JzZXJ2ZXIgY2FsbGJhY2tcbiAgICB0aGlzLnN0YXJ0VXBkYXRlKCk7XG5cbiAgICBjb25zdCBjb250YWluZXIgPSB0aGlzLmNsb3Nlc3QoJ3NiYi1jb250YWluZXInKTtcbiAgICBpZiAoY29udGFpbmVyKSB7XG4gICAgICB0aGlzLnRvZ2dsZVN0YXRlKCdleHBhbmRlZCcsIGNvbnRhaW5lci5leHBhbmRlZCk7XG4gICAgfVxuICAgIGlmICh0aGlzLl9pbnRlcnNlY3Rvcikge1xuICAgICAgdGhpcy5fb2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzLl9pbnRlcnNlY3Rvcik7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgIHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCk7XG4gICAgdGhpcy5pbnRlcm5hbHMuc3RhdGVzLmRlbGV0ZSgnaW5pdGlhbGl6ZWQnKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBmaXJzdFVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXM6IFByb3BlcnR5VmFsdWVzPHRoaXM+KTogdm9pZCB7XG4gICAgc3VwZXIuZmlyc3RVcGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzKTtcblxuICAgIGlmICghdGhpcy5faW50ZXJzZWN0b3IpIHtcbiAgICAgIHRoaXMuX2ludGVyc2VjdG9yID0gdGhpcy5zaGFkb3dSb290IS5xdWVyeVNlbGVjdG9yKCcuc2JiLXN0aWNreS1iYXJfX2ludGVyc2VjdG9yJykhO1xuICAgICAgdGhpcy5fb2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzLl9pbnRlcnNlY3Rvcik7XG4gICAgfVxuICAgIHRoaXMuX29ic2VydmVyLm9ic2VydmUodGhpcyk7XG4gIH1cblxuICBwcml2YXRlIF9pc1plcm9BbmltYXRpb25EdXJhdGlvbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gaXNaZXJvQW5pbWF0aW9uRHVyYXRpb24odGhpcywgJy0tc2JiLXN0aWNreS1iYXItc2xpZGUtdmVydGljYWxseS1hbmltYXRpb24tZHVyYXRpb24nKTtcbiAgfVxuXG4gIHByaXZhdGUgX2RldGVjdFN0aWNreVN0YXRlKGVudHJ5OiBJbnRlcnNlY3Rpb25PYnNlcnZlckVudHJ5KTogdm9pZCB7XG4gICAgdGhpcy5pbnRlcm5hbHMuc3RhdGVzLmFkZCgnaW5pdGlhbGl6ZWQnKTtcblxuICAgIGNvbnN0IGlzU3RpY2t5ID0gIWVudHJ5LmlzSW50ZXJzZWN0aW5nICYmIGVudHJ5LmJvdW5kaW5nQ2xpZW50UmVjdC50b3AgPiAwO1xuXG4gICAgLy8gVG8gb3B0aW1pemUgdGhlIHZpc3VhbCBwZXJjZXB0aW9uIG9mIHRoZSBzdGlja3kgYmFyLCB3ZSBoYXZlIGNlcnRhaW4gY2FzZXMgKGUuZy4gb24gcGFnZSBsb2FkKVxuICAgIC8vIHdoZXJlIHdlIHdhbnQgdGhlIHN0aWNreSBiYXIgdG8gc2xpZGUgaW4gZnJvbSB0aGUgYm90dG9tLlxuICAgIC8vIFRvIGRlY2lkZSB3aGV0aGVyIHRvIHNsaWRlIGluIGZyb20gdGhlIGJvdHRvbSB1cCxcbiAgICAvLyB3ZSBjaGVjayBob3cgZmFyIGF3YXkgdGhlIHN0aWNreSBiYXIgaXMgZnJvbSB0aGUgaW50ZXJzZWN0b3IgZWxlbWVudC4gV2hlbiBzY3JvbGxpbmcgZmFzdCwgdGhlXG4gICAgLy8gZGlmZmVyZW5jZSBjYW4gdmFyeSBzbGlnaHRseS4gVG8gYWNjb3VudCBmb3IgdGhpcyB3ZSBhZGQgYSBoZWlnaHQgdG9sZXJhbmNlLlxuICAgIC8vIFRoaXMgdmFsdWUgd2FzIGZvdW5kIGJ5IHRyaWFsIGFuZCBlcnJvci5cbiAgICBjb25zdCBpbnRlcnNlY3RvclJlY3QgPSB0aGlzLl9pbnRlcnNlY3Rvcj8uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgY29uc3Qgc3RpY2t5QmFyUmVjdCA9IHRoaXMuc2hhZG93Um9vdCEucXVlcnlTZWxlY3RvcihcbiAgICAgICcuc2JiLXN0aWNreS1iYXJfX3dyYXBwZXInLFxuICAgICkhLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgIGNvbnN0IEhFSUdIVF9UT0xFUkFOQ0UgPSAzMDtcblxuICAgIHRoaXMudG9nZ2xlU3RhdGUoXG4gICAgICAnc2xpZGUtdmVydGljYWxseScsXG4gICAgICBpc1N0aWNreSAmJlxuICAgICAgICB0aGlzLl9pbnRlcnNlY3RvciAmJlxuICAgICAgICBNYXRoLmFicyhpbnRlcnNlY3RvclJlY3QhLmJvdHRvbSAtIHN0aWNreUJhclJlY3QuYm90dG9tKSA+IEhFSUdIVF9UT0xFUkFOQ0UsXG4gICAgKTtcblxuICAgIC8vIFRvZ2dsaW5nIHN0aWNraW5nIGhhcyB0byBiZSBhZnRlciBzbGlkZS12ZXJ0aWNhbGx5IChwcmV2ZW50cyBiYWNrZ3JvdW5kIGNvbG9yIHRyYW5zaXRpb24pXG4gICAgdGhpcy50b2dnbGVTdGF0ZSgnc3RpY2tpbmcnLCBpc1N0aWNreSk7XG5cbiAgICAvLyBTdGlja3kgYmFyIG5lZWRzIHRvIGJlIGhpZGRlbiB1bnRpbCBmaXJzdCBvYnNlcnZlciBjYWxsYmFja1xuICAgIHRoaXMuY29tcGxldGVVcGRhdGUoKTtcbiAgfVxuXG4gIC8qKiBBbmltYXRlcyBmcm9tIG5vcm1hbCBjb250ZW50IGZsb3cgcG9zaXRpb24gdG8gYHBvc2l0aW9uOiBzdGlja3lgLiAqL1xuICBwdWJsaWMgc3RpY2soKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX3N0YXRlICE9PSAndW5zdGlja3knIHx8ICF0aGlzLl9kaXNwYXRjaEJlZm9yZVN0aWNrRXZlbnQoKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuX3N0YXRlID0gJ3N0aWNraW5nJztcbiAgICBpZiAoIXRoaXMubWF0Y2hlcz8uKCc6c3RhdGUoc3RpY2tpbmcpJykgfHwgdGhpcy5faXNaZXJvQW5pbWF0aW9uRHVyYXRpb24oKSkge1xuICAgICAgdGhpcy5fc3RpY2t5Q2FsbGJhY2soKTtcbiAgICB9XG4gIH1cblxuICAvKiogQW5pbWF0ZXMgYHBvc2l0aW9uOiBzdGlja3lgIHRvIG5vcm1hbCBjb250ZW50IGZsb3cgcG9zaXRpb24uICovXG4gIHB1YmxpYyB1bnN0aWNrKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9zdGF0ZSAhPT0gJ3N0aWNreScgfHwgIXRoaXMuX2Rpc3BhdGNoQmVmb3JlVW5TdGlja0V2ZW50KCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLl9zdGF0ZSA9ICd1bnN0aWNraW5nJztcblxuICAgIGlmICghdGhpcy5tYXRjaGVzPy4oJzpzdGF0ZShzdGlja2luZyknKSB8fCB0aGlzLl9pc1plcm9BbmltYXRpb25EdXJhdGlvbigpKSB7XG4gICAgICB0aGlzLl91bnN0aWNreUNhbGxiYWNrKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfc3RpY2t5Q2FsbGJhY2soKTogdm9pZCB7XG4gICAgdGhpcy5fc3RhdGUgPSAnc3RpY2t5JztcblxuICAgIC8qKiBFbWl0cyB3aGVuIHRoZSBhbmltYXRpb24gZnJvbSBub3JtYWwgY29udGVudCBmbG93IHRvIGBwb3NpdGlvbjogc3RpY2t5YCBlbmRzLiAqL1xuICAgIHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ3N0aWNrJykpO1xuICB9XG5cbiAgcHJpdmF0ZSBfdW5zdGlja3lDYWxsYmFjaygpOiB2b2lkIHtcbiAgICAvKiogRW1pdHMgd2hlbiB0aGUgYW5pbWF0aW9uIGZyb20gYHBvc2l0aW9uOiBzdGlja3lgIHRvIG5vcm1hbCBjb250ZW50IGZsb3cgZW5kcy4gKi9cbiAgICB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCd1bnN0aWNrJykpO1xuICAgIHRoaXMuX3N0YXRlID0gJ3Vuc3RpY2t5JztcbiAgfVxuXG4gIHByaXZhdGUgX29uQW5pbWF0aW9uRW5kKGV2ZW50OiBBbmltYXRpb25FdmVudCk6IHZvaWQge1xuICAgIGlmIChcbiAgICAgICh0aGlzLl9zdGF0ZSA9PT0gJ3N0aWNraW5nJyB8fCB0aGlzLl9zdGF0ZSA9PT0gJ3N0aWNreScpICYmXG4gICAgICBldmVudC5hbmltYXRpb25OYW1lID09PSAnc2xpZGUtaW4nXG4gICAgKSB7XG4gICAgICB0aGlzLl9zdGlja3lDYWxsYmFjaygpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5fc3RhdGUgPT09ICd1bnN0aWNraW5nJyAmJiBldmVudC5hbmltYXRpb25OYW1lID09PSAnc2xpZGUtb3V0Jykge1xuICAgICAgdGhpcy5fdW5zdGlja3lDYWxsYmFjaygpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2Rpc3BhdGNoQmVmb3JlU3RpY2tFdmVudCgpOiBib29sZWFuIHtcbiAgICAvKiogRW1pdHMgd2hlbiB0aGUgYW5pbWF0aW9uIGZyb20gbm9ybWFsIGNvbnRlbnQgZmxvdyB0byBgcG9zaXRpb246IHN0aWNreWAgc3RhcnRzLiBDYW4gYmUgY2FuY2VsZWQuICovXG4gICAgcmV0dXJuIHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ2JlZm9yZXN0aWNrJywgeyBjYW5jZWxhYmxlOiB0cnVlIH0pKTtcbiAgfVxuXG4gIHByaXZhdGUgX2Rpc3BhdGNoQmVmb3JlVW5TdGlja0V2ZW50KCk6IGJvb2xlYW4ge1xuICAgIC8qKiBFbWl0cyB3aGVuIHRoZSBhbmltYXRpb24gZnJvbSBgcG9zaXRpb246IHN0aWNreWAgdG8gbm9ybWFsIGNvbnRlbnQgZmxvdyBzdGFydHMuIENhbiBiZSBjYW5jZWxlZC4gKi9cbiAgICByZXR1cm4gdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgnYmVmb3JldW5zdGljaycsIHsgY2FuY2VsYWJsZTogdHJ1ZSB9KSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxkaXYgY2xhc3M9XCJzYmItc3RpY2t5LWJhcl9fd3JhcHBlclwiIEBhbmltYXRpb25lbmQ9JHt0aGlzLl9vbkFuaW1hdGlvbkVuZH0+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzYmItc3RpY2t5LWJhclwiPlxuICAgICAgICAgIDxzbG90Pjwvc2xvdD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJzYmItc3RpY2t5LWJhcl9faW50ZXJzZWN0b3JcIj48L2Rpdj5cbiAgICBgO1xuICB9XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgICdzYmItc3RpY2t5LWJhcic6IFNiYlN0aWNreUJhckVsZW1lbnQ7XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7SUNpQ2EsNkJBQW1CO21CQUFTLHdCQUF3QixXQUFXOzs7Ozs7O2NBQS9ELDRCQUE0QixZQUFtQzs7O3dCQVl6RSxTQUFTLEVBQUUsU0FBUyxNQUFNLENBQUMsQ0FBQTt1QkFXM0IsU0FBUyxFQUFFLFNBQVMsTUFBTSxDQUFDLENBQUE7QUFYQyxnQkFBQSxNQUFBLE1BQUEsbUJBQUE7SUFBQSxNQUFBO0lBQUEsTUFBQTtJQUFBLFFBQUE7SUFBQSxTQUFBO0lBQUEsUUFBQTtLQUFBLE1BQUEsUUFBQSxXQUFBO0tBQUEsTUFBQSxRQUFBLElBQWdCO0tBQUssTUFBQSxLQUFBLFVBQUE7QUFBQSxVQUFMLFFBQUs7O0tBQUE7SUFBQSxVQUFBO0lBQUEsRUFBQSxxQkFBQSx5QkFBQTtBQVdyQixnQkFBQSxNQUFBLE1BQUEsa0JBQUE7SUFBQSxNQUFBO0lBQUEsTUFBQTtJQUFBLFFBQUE7SUFBQSxTQUFBO0lBQUEsUUFBQTtLQUFBLE1BQUEsUUFBQSxVQUFBO0tBQUEsTUFBQSxRQUFBLElBQWdCO0tBQUksTUFBQSxLQUFBLFVBQUE7QUFBQSxVQUFKLE9BQUk7O0tBQUE7SUFBQSxVQUFBO0lBQUEsRUFBQSxvQkFBQSx3QkFBQTs7Ozs7Ozs7O0FBdEJqQixRQUFBLGNBQXNCOzs7QUFDL0IsUUFBQSxTQUF5QixDQUFDLGlCQUFpQixVQUFVLG1CQUFNLENBQUM7OztBQUU1RCxRQUFBLFNBQVM7SUFD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