@natec/mef-dev-ui-kit 0.0.698 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (100) hide show
  1. package/README.md +6 -6
  2. package/esm2020/lib/markup-kit/card/card/card.component.mjs +1 -1
  3. package/esm2020/lib/markup-kit/card/card-long/card-long.component.mjs +1 -1
  4. package/esm2020/lib/markup-kit/card/card-long/cart-type-colors.enum.mjs +1 -1
  5. package/esm2020/lib/markup-kit/card/card-simple/card-simple.component.mjs +1 -1
  6. package/esm2020/lib/markup-kit/card/card.module.mjs +1 -5
  7. package/esm2020/lib/markup-kit/card/index.mjs +1 -1
  8. package/esm2020/lib/markup-kit/collapse/collapse/collapse.component.mjs +3 -3
  9. package/esm2020/lib/markup-kit/collapse/collapse-set/collapse-set.component.mjs +1 -1
  10. package/esm2020/lib/markup-kit/collapse/collapse.module.mjs +1 -1
  11. package/esm2020/lib/markup-kit/collapse/index.mjs +1 -1
  12. package/esm2020/lib/markup-kit/modals/fill/fill.component.mjs +2 -2
  13. package/esm2020/lib/markup-kit/modals/index.mjs +1 -1
  14. package/esm2020/lib/markup-kit/modals/markup-kit.module.mjs +1 -1
  15. package/esm2020/lib/markup-kit/modals/modal-size.enum.mjs +1 -1
  16. package/esm2020/lib/markup-kit/modals/right-filter/right-filter.component.mjs +1 -1
  17. package/esm2020/lib/markup-kit/modals/slide-right/slide-right.component.mjs +2 -2
  18. package/esm2020/lib/markup-kit/modals/slide-up/slide-up.component.mjs +2 -2
  19. package/esm2020/lib/markup-kit/page-layouts/central-page/central-page.component.mjs +1 -1
  20. package/esm2020/lib/markup-kit/page-layouts/central-page-row/central-page-row.component.mjs +1 -1
  21. package/esm2020/lib/markup-kit/page-layouts/index.mjs +1 -1
  22. package/esm2020/lib/markup-kit/page-layouts/manage-page/manage-page.component.mjs +3 -3
  23. package/esm2020/lib/markup-kit/page-layouts/page-layouts.module.mjs +5 -6
  24. package/esm2020/lib/markup-kit/page-layouts/profile/profile.component.mjs +3 -3
  25. package/esm2020/lib/markup-kit/page-layouts/table-page/table-page.component.mjs +1 -1
  26. package/esm2020/lib/markup-kit/utils/filtered-field/filtered-field-container/filtered-field-container.component.mjs +1 -1
  27. package/esm2020/lib/markup-kit/utils/filtered-field/filtered-field-item/filtered-field-item.component.mjs +1 -1
  28. package/esm2020/lib/markup-kit/utils/filtered-field/filtered-field.module.mjs +1 -1
  29. package/esm2020/lib/markup-kit/utils/filtered-field/filtered-field.service.mjs +1 -1
  30. package/esm2020/lib/markup-kit/utils/filtered-field/filtred-item.model.mjs +1 -1
  31. package/esm2020/lib/markup-kit/utils/filtered-field/index.mjs +1 -1
  32. package/esm2020/lib/markup-kit/utils/help-block/help-block.component.mjs +1 -1
  33. package/esm2020/lib/markup-kit/utils/help-block/hepl-block.module.mjs +1 -1
  34. package/esm2020/lib/markup-kit/utils/help-block/index.mjs +1 -1
  35. package/esm2020/lib/markup-kit/utils/loader/index.mjs +1 -1
  36. package/esm2020/lib/markup-kit/utils/loader/loader/loader.component.mjs +1 -1
  37. package/esm2020/lib/markup-kit/utils/loader/loader.module.mjs +1 -1
  38. package/esm2020/lib/markup-kit/utils/loader/loader.service.mjs +1 -1
  39. package/esm2020/lib/markup-kit/utils/loader/request-event.enum.mjs +1 -1
  40. package/esm2020/lib/pg-components/card/card.components.mjs +3 -3
  41. package/esm2020/lib/pg-components/card/card.module.mjs +5 -5
  42. package/esm2020/lib/pg-components/progress/index.mjs +1 -1
  43. package/esm2020/lib/pg-components/progress/progress.component.mjs +6 -6
  44. package/esm2020/lib/pg-components/progress/progress.config.mjs +1 -1
  45. package/esm2020/lib/pg-components/progress/progress.module.mjs +10 -10
  46. package/esm2020/lib/pg-components/select/index.mjs +1 -1
  47. package/esm2020/lib/pg-components/select/option.component.mjs +3 -3
  48. package/esm2020/lib/pg-components/select/option.pipe.mjs +1 -1
  49. package/esm2020/lib/pg-components/select/select.component.mjs +3 -3
  50. package/esm2020/lib/pg-components/select/select.module.mjs +6 -6
  51. package/esm2020/lib/pg-components/spec-flow-test/index.mjs +1 -1
  52. package/esm2020/lib/pg-components/spec-flow-test/spec-flow-test/spec-flow-test.component.mjs +6 -6
  53. package/esm2020/lib/pg-components/spec-flow-test/spec-flow-test.module.mjs +10 -10
  54. package/esm2020/lib/pg-components/switch/index.mjs +1 -1
  55. package/esm2020/lib/pg-components/switch/switch.component.mjs +8 -8
  56. package/esm2020/lib/pg-components/switch/switch.module.mjs +9 -9
  57. package/esm2020/lib/pg-components/tabs/index.mjs +8 -8
  58. package/esm2020/lib/pg-components/tabs/tab-body.component.mjs +6 -6
  59. package/esm2020/lib/pg-components/tabs/tab-label.directive.mjs +5 -5
  60. package/esm2020/lib/pg-components/tabs/tab.component.mjs +11 -11
  61. package/esm2020/lib/pg-components/tabs/tabs-ink-bar.directive.mjs +5 -5
  62. package/esm2020/lib/pg-components/tabs/tabs-nav.component.mjs +12 -13
  63. package/esm2020/lib/pg-components/tabs/tabs.module.mjs +15 -16
  64. package/esm2020/lib/pg-components/tabs/tabset.component.mjs +17 -18
  65. package/esm2020/lib/pg-components/util/convert.mjs +1 -1
  66. package/esm2020/lib/pg-components/util/request-animation.mjs +1 -1
  67. package/esm2020/natec-mef-dev-ui-kit.mjs +1 -1
  68. package/esm2020/public-api.mjs +3 -4
  69. package/fesm2015/natec-mef-dev-ui-kit.mjs +305 -312
  70. package/fesm2015/natec-mef-dev-ui-kit.mjs.map +1 -1
  71. package/fesm2020/natec-mef-dev-ui-kit.mjs +305 -312
  72. package/fesm2020/natec-mef-dev-ui-kit.mjs.map +1 -1
  73. package/lib/markup-kit/page-layouts/page-layouts.module.d.ts +1 -2
  74. package/lib/pg-components/card/card.module.d.ts +1 -1
  75. package/lib/pg-components/progress/progress.component.d.ts +3 -3
  76. package/lib/pg-components/progress/progress.module.d.ts +5 -5
  77. package/lib/pg-components/select/option.component.d.ts +1 -1
  78. package/lib/pg-components/select/select.component.d.ts +1 -1
  79. package/lib/pg-components/spec-flow-test/spec-flow-test/spec-flow-test.component.d.ts +3 -3
  80. package/lib/pg-components/spec-flow-test/spec-flow-test.module.d.ts +5 -5
  81. package/lib/pg-components/switch/switch.component.d.ts +3 -3
  82. package/lib/pg-components/switch/switch.module.d.ts +4 -4
  83. package/lib/pg-components/tabs/index.d.ts +7 -7
  84. package/lib/pg-components/tabs/tab-body.component.d.ts +3 -3
  85. package/lib/pg-components/tabs/tab-label.directive.d.ts +3 -3
  86. package/lib/pg-components/tabs/tab.component.d.ts +6 -6
  87. package/lib/pg-components/tabs/tabs-ink-bar.directive.d.ts +3 -3
  88. package/lib/pg-components/tabs/tabs-nav.component.d.ts +7 -7
  89. package/lib/pg-components/tabs/tabs.module.d.ts +4 -5
  90. package/lib/pg-components/tabs/tabset.component.d.ts +9 -9
  91. package/package.json +2 -2
  92. package/public-api.d.ts +0 -2
  93. package/src/lib/styles/icons.scss +3 -0
  94. package/src/lib/styles/pg/_color.scss +1 -1
  95. package/src/lib/styles/pg/_mixins.scss +4 -4
  96. package/src/lib/styles/pg/_var.scss +1 -1
  97. package/src/lib/styles/pg/core.scss +13 -1
  98. package/src/lib/styles/pg/modules/_select.scss +3 -3
  99. package/esm2020/lib/pg-components/card/index.mjs +0 -3
  100. package/lib/pg-components/card/index.d.ts +0 -2
@@ -604,7 +604,7 @@ export class pgSelectComponent {
604
604
  }
605
605
  }
606
606
  pgSelectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: pgSelectComponent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
607
- pgSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: pgSelectComponent, selector: "pg-select", inputs: { Filter: "Filter", MaxMultiple: "MaxMultiple", FirstDefault: "FirstDefault", AllowClear: "AllowClear", KeepUnListOptions: "KeepUnListOptions", Mode: "Mode", Multiple: "Multiple", PlaceHolder: "PlaceHolder", NotFoundContent: "NotFoundContent", Size: "Size", ShowSearch: "ShowSearch", Tags: "Tags", Disabled: "Disabled", Open: "Open" }, outputs: { SearchChange: "SearchChange", change: "change", OpenChange: "OpenChange", ScrollToBottom: "ScrollToBottom" }, host: { listeners: { "click": "onClick($event)", "keydown": "onKeyDown($event)" } }, providers: [
607
+ pgSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: pgSelectComponent, selector: "mefdev-select", inputs: { Filter: "Filter", MaxMultiple: "MaxMultiple", FirstDefault: "FirstDefault", AllowClear: "AllowClear", KeepUnListOptions: "KeepUnListOptions", Mode: "Mode", Multiple: "Multiple", PlaceHolder: "PlaceHolder", NotFoundContent: "NotFoundContent", Size: "Size", ShowSearch: "ShowSearch", Tags: "Tags", Disabled: "Disabled", Open: "Open" }, outputs: { SearchChange: "SearchChange", change: "change", OpenChange: "OpenChange", ScrollToBottom: "ScrollToBottom" }, host: { listeners: { "click": "onClick($event)", "keydown": "onKeyDown($event)" } }, providers: [
608
608
  {
609
609
  provide: NG_VALUE_ACCESSOR,
610
610
  useExisting: forwardRef(() => pgSelectComponent),
@@ -655,7 +655,7 @@ pgSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", vers
655
655
  ])], encapsulation: i0.ViewEncapsulation.None });
656
656
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: pgSelectComponent, decorators: [{
657
657
  type: Component,
658
- args: [{ selector: "pg-select", encapsulation: ViewEncapsulation.None, providers: [
658
+ args: [{ selector: "mefdev-select", encapsulation: ViewEncapsulation.None, providers: [
659
659
  {
660
660
  provide: NG_VALUE_ACCESSOR,
661
661
  useExisting: forwardRef(() => pgSelectComponent),
@@ -759,4 +759,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImpor
759
759
  type: HostListener,
760
760
  args: ["keydown", ["$event"]]
761
761
  }] } });
762
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21lZi1kZXYtdWktdG9vbC1raXQvc3JjL2xpYi9wZy1jb21wb25lbnRzL3NlbGVjdC9zZWxlY3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWVmLWRldi11aS10b29sLWtpdC9zcmMvbGliL3BnLWNvbXBvbmVudHMvc2VsZWN0L3NlbGVjdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFDSCxPQUFPLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMvRCxPQUFPLEVBQ0wsbUJBQW1CLEVBRXBCLE1BQU0sc0JBQXNCLENBQUM7QUFDOUIsT0FBTyxFQUNMLFVBQVUsRUFHVixTQUFTLEVBRVQsWUFBWSxFQUNaLFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUVOLFNBQVMsRUFDVCxpQkFBaUIsRUFFbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXpFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzVDLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7O0FBeURqRixNQUFNLE9BQU8saUJBQWlCO0lBMG9CNUIsWUFDVSxXQUF1QixFQUN2QixTQUFvQixFQUNwQixLQUF3QjtRQUZ4QixnQkFBVyxHQUFYLFdBQVcsQ0FBWTtRQUN2QixjQUFTLEdBQVQsU0FBUyxDQUFXO1FBQ3BCLFVBQUssR0FBTCxLQUFLLENBQW1CO1FBdm9CMUIsZ0JB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ZW50IjpbIi8qKlxyXG4gKiBjb21wbGV4IGJ1dCB3b3JrIHdlbGxcclxuICogVE9ETzogcmVidWlsZCBsYXR0ZXJcclxuICovXHJcbmltcG9ydCB7IERPV05fQVJST1csIEVOVEVSLCBUQUIgfSBmcm9tIFwiQGFuZ3VsYXIvY2RrL2tleWNvZGVzXCI7XHJcbmltcG9ydCB7XHJcbiAgQ2RrQ29ubmVjdGVkT3ZlcmxheSxcclxuICBDb25uZWN0ZWRPdmVybGF5UG9zaXRpb25DaGFuZ2VcclxufSBmcm9tIFwiQGFuZ3VsYXIvY2RrL292ZXJsYXlcIjtcclxuaW1wb3J0IHtcclxuICBmb3J3YXJkUmVmLFxyXG4gIEFmdGVyQ29udGVudENoZWNrZWQsXHJcbiAgQWZ0ZXJDb250ZW50SW5pdCxcclxuICBDb21wb25lbnQsXHJcbiAgRWxlbWVudFJlZixcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgSG9zdExpc3RlbmVyLFxyXG4gIElucHV0LFxyXG4gIE9uSW5pdCxcclxuICBPdXRwdXQsXHJcbiAgUmVuZGVyZXIyLFxyXG4gIFZpZXdDaGlsZCxcclxuICBWaWV3RW5jYXBzdWxhdGlvbixcclxuICBDaGFuZ2VEZXRlY3RvclJlZlxyXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5pbXBvcnQgeyBwZ09wdGlvbkNvbXBvbmVudCB9IGZyb20gXCIuL29wdGlvbi5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgT3B0aW9uUGlwZSB9IGZyb20gXCIuL29wdGlvbi5waXBlXCI7XHJcbmltcG9ydCB7IHRvQm9vbGVhbiB9IGZyb20gJy4uL3V0aWwvY29udmVydCc7XHJcbmltcG9ydCB7IGFuaW1hdGUsIHN0YXRlLCBzdHlsZSwgdHJhbnNpdGlvbiwgdHJpZ2dlciB9IGZyb20gXCJAYW5ndWxhci9hbmltYXRpb25zXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogXCJwZy1zZWxlY3RcIixcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gcGdTZWxlY3RDb21wb25lbnQpLFxyXG4gICAgICBtdWx0aTogdHJ1ZVxyXG4gICAgfVxyXG4gIF0sXHJcbiAgYW5pbWF0aW9uczogW3RyaWdnZXIoJ2Ryb3BEb3duQW5pbWF0aW9uJywgW1xyXG4gICAgc3RhdGUoJ2JvdHRvbScsIHN0eWxlKHtcclxuICAgICAgb3BhY2l0eSAgICAgICAgOiAxLFxyXG4gICAgICB0cmFuc2Zvcm0gICAgICA6ICdzY2FsZVkoMSknLFxyXG4gICAgICB0cmFuc2Zvcm1PcmlnaW46ICcwJSAwJSdcclxuICAgIH0pKSxcclxuICAgIHRyYW5zaXRpb24oJ3ZvaWQgPT4gYm90dG9tJywgW1xyXG4gICAgICBzdHlsZSh7XHJcbiAgICAgICAgb3BhY2l0eSAgICAgICAgOiAwLFxyXG4gICAgICAgIHRyYW5zZm9ybSAgICAgIDogJ3NjYWxlWSgwKScsXHJcbiAgICAgICAgdHJhbnNmb3JtT3JpZ2luOiAnMCUgMCUnXHJcbiAgICAgIH0pLFxyXG4gICAgICBhbmltYXRlKCcxNTBtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKScpXHJcbiAgICBdKSxcclxuICAgIHN0YXRlKCd0b3AnLCBzdHlsZSh7XHJcbiAgICAgIG9wYWNpdHkgICAgICAgIDogMSxcclxuICAgICAgdHJhbnNmb3JtICAgICAgOiAnc2NhbGVZKDEpJyxcclxuICAgICAgdHJhbnNmb3JtT3JpZ2luOiAnMCUgMTAwJSdcclxuICAgIH0pKSxcclxuICAgIHRyYW5zaXRpb24oJ3ZvaWQgPT4gdG9wJywgW1xyXG4gICAgICBzdHlsZSh7XHJcbiAgICAgICAgb3BhY2l0eSAgICAgICAgOiAwLFxyXG4gICAgICAgIHRyYW5zZm9ybSAgICAgIDogJ3NjYWxlWSgwKScsXHJcbiAgICAgICAgdHJhbnNmb3JtT3JpZ2luOiAnMCUgMTAwJSdcclxuICAgICAgfSksXHJcbiAgICAgIGFuaW1hdGUoJzE1MG1zIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpJylcclxuICAgIF0pLFxyXG4gICAgdHJhbnNpdGlvbignKiA9PiB2b2lkJywgW1xyXG4gICAgICBhbmltYXRlKCcyNTBtcyAxMDBtcyBsaW5lYXInLCBzdHlsZSh7IG9wYWNpdHk6IDAgfSkpXHJcbiAgICBdKVxyXG4gIF0pLFxyXG4gIFxyXG4gIHRyaWdnZXIoJ3RhZ0FuaW1hdGlvbicsIFtcclxuICAgIHN0YXRlKCcqJywgc3R5bGUoeyBvcGFjaXR5OiAxLCB0cmFuc2Zvcm06ICdzY2FsZSgxKScgfSkpLFxyXG4gICAgdHJhbnNpdGlvbigndm9pZCA9PiAqJywgW1xyXG4gICAgICBzdHlsZSh7IG9wYWNpdHk6IDAsIHRyYW5zZm9ybTogJ3NjYWxlKDApJyB9KSxcclxuICAgICAgYW5pbWF0ZSgnMTUwbXMgbGluZWFyJylcclxuICAgIF0pLFxyXG4gICAgc3RhdGUoJ3ZvaWQnLCBzdHlsZSh7IG9wYWNpdHk6IDAsIHRyYW5zZm9ybTogJ3NjYWxlKDApJyB9KSksXHJcbiAgICB0cmFuc2l0aW9uKCcqID0+IHZvaWQnLCBbXHJcbiAgICAgIHN0eWxlKHsgb3BhY2l0eTogMSwgdHJhbnNmb3JtOiAnc2NhbGUoMSknIH0pLFxyXG4gICAgICBhbmltYXRlKCcxNTBtcyBsaW5lYXInKVxyXG4gICAgXSldKV0sXHJcbiAgdGVtcGxhdGVVcmw6IFwiLi9zZWxlY3QuY29tcG9uZW50Lmh0bWxcIlxyXG59KVxyXG5leHBvcnQgY2xhc3MgcGdTZWxlY3RDb21wb25lbnRcclxuICBpbXBsZW1lbnRzXHJcbiAgICBPbkluaXQsXHJcbiAgICBBZnRlckNvbnRlbnRJbml0LFxyXG4gICAgQWZ0ZXJDb250ZW50Q2hlY2tlZCxcclxuICAgIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcclxuICBwcml2YXRlIF9hbGxvd0NsZWFyID0gZmFsc2U7XHJcbiAgcHJpdmF0ZSBfZGlzYWJsZWQgPSBmYWxzZTtcclxuICBwcml2YXRlIF9pc1RhZ3MgPSBmYWxzZTtcclxuICBwcml2YXRlIF9pc011bHRpcGxlID0gZmFsc2U7XHJcbiAgcHJpdmF0ZSBfa2VlcFVuTGlzdE9wdGlvbnMgPSBmYWxzZTtcclxuICBwcml2YXRlIF9zaG93U2VhcmNoID0gZmFsc2U7XHJcbiAgX2VsOiBIVE1MRWxlbWVudDtcclxuICBfaXNPcGVuID0gZmFsc2U7XHJcbiAgX3ByZWZpeENscyA9IFwicGctc2VsZWN0XCI7XHJcbiAgX2NsYXNzTGlzdDogc3RyaW5nW10gPSBbXTtcclxuICBfZHJvcERvd25DbGFzc01hcDogYW55O1xyXG4gIF9kcm9wRG93blByZWZpeENscyA9IGAke3RoaXMuX3ByZWZpeENsc30tZHJvcGRvd25gO1xyXG4gIF9zZWxlY3Rpb25DbGFzc01hcDogYW55O1xyXG4gIF9zZWxlY3Rpb25QcmVmaXhDbHMgPSBgJHt0aGlzLl9wcmVmaXhDbHN9LXNlbGVjdGlvbmA7XHJcbiAgX3NpemU6IHN0cmluZztcclxuICBfdmFsdWU6IHN0cmluZ1tdIHwgc3RyaW5nO1xyXG4gIF9wbGFjZWhvbGRlciA9IFwicGxhY2Vob2xkZXJcIjtcclxuICBfbm90Rm91bmRDb250ZW50ID0gXCJObyBDb250ZW50XCI7XHJcbiAgX3NlYXJjaFRleHQgPSBcIlwiO1xyXG4gIF90cmlnZ2VyV2lkdGggPSAwO1xyXG4gIF9zZWxlY3RlZE9wdGlvbjogcGdPcHRpb25Db21wb25lbnQ7XHJcbiAgX29wZXJhdGluZ011bHRpcGxlT3B0aW9uOiBwZ09wdGlvbkNvbXBvbmVudDtcclxuICBfc2VsZWN0ZWRPcHRpb25zOiBTZXQ8cGdPcHRpb25Db21wb25lbnQ+ID0gbmV3IFNldCgpO1xyXG4gIF9vcHRpb25zOiBwZ09wdGlvbkNvbXBvbmVudFtdID0gW107XHJcbiAgX2NhY2hlT3B0aW9uczogcGdPcHRpb25Db21wb25lbnRbXSA9IFtdO1xyXG4gIF9maWx0ZXJPcHRpb25zOiBwZ09wdGlvbkNvbXBvbmVudFtdID0gW107XHJcbiAgX3RhZ3NPcHRpb25zOiBwZ09wdGlvbkNvbXBvbmVudFtdID0gW107XHJcbiAgX2FjdGl2ZUZpbHRlck9wdGlvbjogcGdPcHRpb25Db21wb25lbnQ7XHJcbiAgX2lzTXVsdGlJbml0ID0gZmFsc2U7XHJcbiAgX2Ryb3BEb3duUG9zaXRpb246IFwidG9wXCIgfCBcImNlbnRlclwiIHwgXCJib3R0b21cIiA9IFwiYm90dG9tXCI7XHJcbiAgX2NvbXBvc2luZyA9IGZhbHNlO1xyXG4gIF9tb2RlOiBhbnk7XHJcbiAgLy8gbmdNb2RlbCBBY2Nlc3NcclxuICBvbkNoYW5nZTogKHZhbHVlOiBzdHJpbmcgfCBzdHJpbmdbXSkgPT4gdm9pZCA9ICgpID0+IG51bGw7XHJcbiAgb25Ub3VjaGVkOiAoKSA9PiB2b2lkID0gKCkgPT4gbnVsbDtcclxuICBAVmlld0NoaWxkKFwic2VhcmNoSW5wdXRcIikgc2VhcmNoSW5wdXRFbGVtZW50UmVmOiBhbnk7XHJcbiAgQFZpZXdDaGlsZChcInRyaWdnZXJcIikgdHJpZ2dlcjogRWxlbWVudFJlZjtcclxuICBAVmlld0NoaWxkKFwiZHJvcGRvd25VbFwiKSBkcm9wZG93blVsOiBFbGVtZW50UmVmO1xyXG4gIEBPdXRwdXQoKSBTZWFyY2hDaGFuZ2U6IEV2ZW50RW1pdHRlcjxzdHJpbmc+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBjaGFuZ2U6IEV2ZW50RW1pdHRlcjxzdHJpbmc+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBPcGVuQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIFNjcm9sbFRvQm90dG9tOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQElucHV0KCkgRmlsdGVyID0gdHJ1ZTtcclxuICBASW5wdXQoKSBNYXhNdWx0aXBsZSA9IEluZmluaXR5O1xyXG4gIEBJbnB1dCgpIEZpcnN0RGVmYXVsdDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBWaWV3Q2hpbGQoQ2RrQ29ubmVjdGVkT3ZlcmxheSkgX2Nka092ZXJsYXk6IENka0Nvbm5lY3RlZE92ZXJsYXk7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IEFsbG93Q2xlYXIodmFsdWU6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuX2FsbG93Q2xlYXIgPSB0b0Jvb2xlYW4odmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IEFsbG93Q2xlYXIoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5fYWxsb3dDbGVhcjtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IEtlZXBVbkxpc3RPcHRpb25zKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLl9rZWVwVW5MaXN0T3B0aW9ucyA9IHRvQm9vbGVhbih2YWx1ZSk7XHJcbiAgfVxyXG5cclxuICBnZXQgS2VlcFVuTGlzdE9wdGlvbnMoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5fa2VlcFVuTGlzdE9wdGlvbnM7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIHNldCBNb2RlKHZhbHVlOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuX21vZGUgPSB2YWx1ZTtcclxuICAgIGlmICh0aGlzLl9tb2RlID09PSBcIm11bHRpcGxlXCIpIHtcclxuICAgICAgdGhpcy5NdWx0aXBsZSA9IHRydWU7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMuX21vZGUgPT09IFwidGFnc1wiKSB7XHJcbiAgICAgIHRoaXMuVGFncyA9IHRydWU7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMuX21vZGUgPT09IFwiY29tYm9ib3hcIikge1xyXG4gICAgICB0aGlzLlNob3dTZWFyY2ggPSB0cnVlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQElucHV0KClcclxuICBzZXQgTXVsdGlwbGUodmFsdWU6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuX2lzTXVsdGlwbGUgPSB0b0Jvb2xlYW4odmFsdWUpO1xyXG4gICAgaWYgKHRoaXMuX2lzTXVsdGlwbGUpIHtcclxuICAgICAgdGhpcy5TaG93U2VhcmNoID0gdHJ1ZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldCBNdWx0aXBsZSgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLl9pc011bHRpcGxlO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KClcclxuICBzZXQgUGxhY2VIb2xkZXIodmFsdWU6IHN0cmluZykge1xyXG4gICAgdGhpcy5fcGxhY2Vob2xkZXIgPSB2YWx1ZTtcclxuICB9XHJcblxyXG4gIGdldCBQbGFjZUhvbGRlcigpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX3BsYWNlaG9sZGVyO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KClcclxuICBzZXQgTm90Rm91bmRDb250ZW50KHZhbHVlOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuX25vdEZvdW5kQ29udGVudCA9IHZhbHVlO1xyXG4gIH1cclxuXHJcbiAgZ2V0IE5vdEZvdW5kQ29udGVudCgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX25vdEZvdW5kQ29udGVudDtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IFNpemUodmFsdWU6IHN0cmluZykge1xyXG4gICAgIC8vIEB0cy1pZ25vcmVcclxuICAgIHRoaXMuX3NpemUgPSB7IGxhcmdlOiBcImxnXCIsIHNtYWxsOiBcInNtXCIgfVt2YWx1ZV07XHJcbiAgICB0aGlzLnNldENsYXNzTWFwKCk7XHJcbiAgfVxyXG5cclxuICBnZXQgU2l6ZSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX3NpemU7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIHNldCBTaG93U2VhcmNoKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLl9zaG93U2VhcmNoID0gdG9Cb29sZWFuKHZhbHVlKTtcclxuICB9XHJcblxyXG4gIGdldCBTaG93U2VhcmNoKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX3Nob3dTZWFyY2g7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIHNldCBUYWdzKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICBjb25zdCBpc1RhZ3MgPSB0b0Jvb2xlYW4odmFsdWUpO1xyXG4gICAgdGhpcy5faXNUYWdzID0gaXNUYWdzO1xyXG4gICAgdGhpcy5NdWx0aXBsZSA9IGlzVGFncztcclxuICB9XHJcblxyXG4gIGdldCBUYWdzKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2lzVGFncztcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IERpc2FibGVkKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLl9kaXNhYmxlZCA9IHRvQm9vbGVhbih2YWx1ZSk7XHJcbiAgICB0aGlzLmNsb3NlRHJvcERvd24oKTtcclxuICAgIHRoaXMuc2V0Q2xhc3NNYXAoKTtcclxuICB9XHJcblxyXG4gIGdldCBEaXNhYmxlZCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLl9kaXNhYmxlZDtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IE9wZW4odmFsdWU6IGJvb2xlYW4pIHtcclxuICAgIGNvbnN0IGlzT3BlbiA9IHRvQm9vbGVhbih2YWx1ZSk7XHJcbiAgICBpZiAodGhpcy5faXNPcGVuID09PSBpc09wZW4pIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgaWYgKGlzT3Blbikge1xyXG4gICAgICB0aGlzLnNjcm9sbFRvQWN0aXZlKCk7XHJcbiAgICAgIHRoaXMuX3NldFRyaWdnZXJXaWR0aCgpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5faXNPcGVuID0gaXNPcGVuO1xyXG4gICAgdGhpcy5PcGVuQ2hhbmdlLmVtaXQodGhpcy5faXNPcGVuKTtcclxuICAgIHRoaXMuc2V0Q2xhc3NNYXAoKTtcclxuICAgIGlmICh0aGlzLl9pc09wZW4pIHtcclxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5jaGVja0Ryb3BEb3duU2Nyb2xsKCk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0IE9wZW4oKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5faXNPcGVuO1xyXG4gIH1cclxuXHJcbiAgLyoqIG5ldyAtb3B0aW9uIGluc2VydCBvciBuZXcgdGFncyBpbnNlcnQgKi9cclxuICAgLy8gQHRzLWlnbm9yZVxyXG4gIGFkZE9wdGlvbiA9IG9wdGlvbiA9PiB7XHJcbiAgICB0aGlzLl9vcHRpb25zLnB1c2gob3B0aW9uKTtcclxuICAgIGlmICghdGhpcy5faXNUYWdzKSB7XHJcbiAgICAgIGlmIChvcHRpb24uVmFsdWUpIHtcclxuICAgICAgICB0aGlzLnVwZGF0ZVNlbGVjdGVkT3B0aW9uKHRoaXMuX3ZhbHVlKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmZvcmNlVXBkYXRlU2VsZWN0ZWRPcHRpb24odGhpcy5fdmFsdWUpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfTtcclxuXHJcbiAgLyoqIC1vcHRpb24gcmVtb3ZlIG9yIHRhZ3MgcmVtb3ZlICovXHJcbiAgcmVtb3ZlT3B0aW9uKG9wdGlvbjogcGdPcHRpb25Db21wb25lbnQpOiB2b2lkIHtcclxuICAgIHRoaXMuX29wdGlvbnMuc3BsaWNlKHRoaXMuX29wdGlvbnMuaW5kZXhPZihvcHRpb24pLCAxKTtcclxuICAgIGlmICghdGhpcy5faXNUYWdzKSB7XHJcbiAgICAgIHRoaXMuZm9yY2VVcGRhdGVTZWxlY3RlZE9wdGlvbih0aGlzLl92YWx1ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKiogZHJvcGRvd24gcG9zaXRpb24gY2hhbmdlZCAqL1xyXG4gIG9uUG9zaXRpb25DaGFuZ2UocG9zaXRpb246IENvbm5lY3RlZE92ZXJsYXlQb3NpdGlvbkNoYW5nZSk6IHZvaWQge1xyXG4gICAgdGhpcy5fZHJvcERvd25Qb3NpdGlvbiA9IHBvc2l0aW9uLmNvbm5lY3Rpb25QYWlyLm9yaWdpblk7XHJcbiAgfVxyXG5cclxuICBjb21wb3NpdGlvblN0YXJ0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fY29tcG9zaW5nID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIGNvbXBvc2l0aW9uRW5kKCk6IHZvaWQge1xyXG4gICAgdGhpcy5fY29tcG9zaW5nID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICAvKiogY2xlYXIgc2luZ2xlIHNlbGVjdGVkIG9wdGlvbiAqL1xyXG4gIGNsZWFyU2VsZWN0KCRldmVudD86IE1vdXNlRXZlbnQpOiB2b2lkIHtcclxuICAgIGlmICgkZXZlbnQpIHtcclxuICAgICAgJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIH0gLy8gQHRzLWlnbm9yZVxyXG4gICAgdGhpcy5fc2VsZWN0ZWRPcHRpb24gPSBudWxsOyAvLyBAdHMtaWdub3JlXHJcbiAgICB0aGlzLlZhbHVlID0gbnVsbDsgLy8gQHRzLWlnbm9yZVxyXG4gICAgdGhpcy5vbkNoYW5nZShudWxsKTtcclxuICB9XHJcblxyXG4gIC8qKiBjbGljayBkcm9wZG93biBvcHRpb24gYnkgdXNlciAqL1xyXG4gIGNsaWNrT3B0aW9uKG9wdGlvbjogcGdPcHRpb25Db21wb25lbnQsICRldmVudD86IE1vdXNlRXZlbnQpOiB2b2lkIHtcclxuICAgIGlmICghb3B0aW9uKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMuY2hvb3NlT3B0aW9uKG9wdGlvbiwgdHJ1ZSwgJGV2ZW50KTtcclxuICAgIHRoaXMuY2xlYXJTZWFyY2hUZXh0KCk7XHJcbiAgICBpZiAoIXRoaXMuX2lzTXVsdGlwbGUpIHtcclxuICAgICAgdGhpcy5PcGVuID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKiogY2hvb3NlIG9wdGlvbiAqL1xyXG4gIGNob29zZU9wdGlvbihcclxuICAgIG9wdGlvbjogcGdPcHRpb25Db21wb25lbnQsXHJcbiAgICBpc1VzZXJDbGljazogYm9vbGVhbiA9IGZhbHNlLFxyXG4gICAgJGV2ZW50PzogTW91c2VFdmVudFxyXG4gICk6IHZvaWQge1xyXG4gICAgaWYgKCRldmVudCkge1xyXG4gICAgICAkZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5fYWN0aXZlRmlsdGVyT3B0aW9uID0gb3B0aW9uO1xyXG4gICAgaWYgKG9wdGlvbiAmJiAhb3B0aW9uLkRpc2FibGVkKSB7XHJcbiAgICAgIGlmICghdGhpcy5NdWx0aXBsZSkge1xyXG4gICAgICAgIHRoaXMuX3NlbGVjdGVkT3B0aW9uID0gb3B0aW9uO1xyXG4gICAgICAgIHRoaXMuX3ZhbHVlID0gb3B0aW9uLlZhbHVlO1xyXG4gICAgICAgIGlmIChpc1VzZXJDbGljaykge1xyXG4gICAgICAgICAgdGhpcy5jaGFuZ2UubmV4dCh0aGlzLl92YWx1ZSk7XHJcbiAgICAgICAgICB0aGlzLm9uQ2hhbmdlKG9wdGlvbi5WYWx1ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGlmIChpc1VzZXJDbGljaykge1xyXG4gICAgICAgICAgdGhpcy5pc0luU2V0KHRoaXMuX3NlbGVjdGVkT3B0aW9ucywgb3B0aW9uKVxyXG4gICAgICAgICAgICA/IHRoaXMudW5TZWxlY3RNdWx0aXBsZU9wdGlvbihvcHRpb24pXHJcbiAgICAgICAgICAgIDogdGhpcy5zZWxlY3RNdWx0aXBsZU9wdGlvbihvcHRpb24pO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgdXBkYXRlV2lkdGgoZWxlbWVudDogSFRNTElucHV0RWxlbWVudCwgdGV4dDogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBpZiAodGV4dCkge1xyXG4gICAgICAvKiogd2FpdCBmb3Igc2Nyb2xsIHdpZHRoIGNoYW5nZSAqLyAvLyBAdHMtaWdub3JlXHJcbiAgICAgIHNldFRpbWVvdXQoXyA9PiB7XHJcbiAgICAgICAgdGhpcy5fcmVuZGVyZXIuc2V0U3R5bGUoZWxlbWVudCwgXCJ3aWR0aFwiLCBgJHtlbGVtZW50LnNjcm9sbFdpZHRofXB4YCk7XHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5fcmVuZGVyZXIucmVtb3ZlU3R5bGUoZWxlbWVudCwgXCJ3aWR0aFwiKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKiBkZXRlcm1pbmUgaWYgb3B0aW9uIGluIHNldCAqL1xyXG4gIGlzSW5TZXQoXHJcbiAgICBzZXQ6IFNldDxwZ09wdGlvbkNvbXBvbmVudD4sXHJcbiAgICBvcHRpb246IHBnT3B0aW9uQ29tcG9uZW50XHJcbiAgKTogcGdPcHRpb25Db21wb25lbnQgeyAvLyBAdHMtaWdub3JlXHJcbiAgICByZXR1cm4gKEFycmF5LmZyb20oc2V0KSBhcyBwZ09wdGlvbkNvbXBvbmVudFtdKS5maW5kKFxyXG4gICAgICAoZGF0YTogcGdPcHRpb25Db21wb25lbnQpID0+IGRhdGEuVmFsdWUgPT09IG9wdGlvbi5WYWx1ZVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8qKiBjYW5jZWwgc2VsZWN0IG11bHRpcGxlIG9wdGlvbiAqLyAvLyBAdHMtaWdub3JlXHJcbiAgdW5TZWxlY3RNdWx0aXBsZU9wdGlvbiA9IChvcHRpb24sICRldmVudD8sIGVtaXRDaGFuZ2UgPSB0cnVlKSA9PiB7XHJcbiAgICB0aGlzLl9vcGVyYXRpbmdNdWx0aXBsZU9wdGlvbiA9IG9wdGlvbjtcclxuICAgIHRoaXMuX3NlbGVjdGVkT3B0aW9ucy5kZWxldGUob3B0aW9uKTtcclxuICAgIGlmIChlbWl0Q2hhbmdlKSB7XHJcbiAgICAgIHRoaXMuZW1pdE11bHRpcGxlT3B0aW9ucygpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIOWvuVRhZ+i/m+ihjOeJueauiuWkhOeQhlxyXG4gICAgaWYgKFxyXG4gICAgICB0aGlzLl9pc1RhZ3MgJiZcclxuICAgICAgdGhpcy5fb3B0aW9ucy5pbmRleE9mKG9wdGlvbikgIT09IC0xICYmXHJcbiAgICAgIHRoaXMuX3RhZ3NPcHRpb25zLmluZGV4T2Yob3B0aW9uKSAhPT0gLTFcclxuICAgICkge1xyXG4gICAgICB0aGlzLnJlbW92ZU9wdGlvbihvcHRpb24pO1xyXG4gICAgICB0aGlzLl90YWdzT3B0aW9ucy5zcGxpY2UodGhpcy5fdGFnc09wdGlvbnMuaW5kZXhPZihvcHRpb24pLCAxKTtcclxuICAgIH1cclxuICAgIGlmICgkZXZlbnQpIHtcclxuICAgICAgJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIH1cclxuICB9O1xyXG5cclxuICAvKiogc2VsZWN0IG11bHRpcGxlIG9wdGlvbiAqL1xyXG4gIHNlbGVjdE11bHRpcGxlT3B0aW9uKG9wdGlvbjogcGdPcHRpb25Db21wb25lbnQsICRldmVudD86IE1vdXNlRXZlbnQpOiB2b2lkIHtcclxuICAgIC8qKiBpZiB0YWdzIGRvIHB1c2ggdG8gdGFnIG9wdGlvbiAqL1xyXG4gICAgaWYgKFxyXG4gICAgICB0aGlzLl9pc1RhZ3MgJiZcclxuICAgICAgdGhpcy5fb3B0aW9ucy5pbmRleE9mKG9wdGlvbikgPT09IC0xICYmXHJcbiAgICAgIHRoaXMuX3RhZ3NPcHRpb25zLmluZGV4T2Yob3B0aW9uKSA9PT0gLTFcclxuICAgICkge1xyXG4gICAgICB0aGlzLmFkZE9wdGlvbihvcHRpb24pO1xyXG4gICAgICB0aGlzLl90YWdzT3B0aW9ucy5wdXNoKG9wdGlvbik7XHJcbiAgICB9XHJcbiAgICB0aGlzLl9vcGVyYXRpbmdNdWx0aXBsZU9wdGlvbiA9IG9wdGlvbjtcclxuICAgIGlmICh0aGlzLl9zZWxlY3RlZE9wdGlvbnMuc2l6ZSA8IHRoaXMuTWF4TXVsdGlwbGUpIHtcclxuICAgICAgdGhpcy5fc2VsZWN0ZWRPcHRpb25zLmFkZChvcHRpb24pO1xyXG4gICAgfVxyXG4gICAgdGhpcy5lbWl0TXVsdGlwbGVPcHRpb25zKCk7XHJcblxyXG4gICAgaWYgKCRldmVudCkge1xyXG4gICAgICAkZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqIGVtaXQgbXVsdGlwbGUgb3B0aW9ucyAqL1xyXG4gIGVtaXRNdWx0aXBsZU9wdGlvbnMoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5faXNNdWx0aUluaXQpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgY29uc3QgYXJyYXlPcHRpb25zID0gQXJyYXkuZnJvbSh0aGlzLl9zZWxlY3RlZE9wdGlvbnMpO1xyXG4gICAgdGhpcy5fdmFsdWUgPSBhcnJheU9wdGlvbnMubWFwKGl0ZW0gPT4gaXRlbS5WYWx1ZSk7XHJcbiAgICB0aGlzLm9uQ2hhbmdlKHRoaXMuX3ZhbHVlKTtcclxuICB9XHJcblxyXG4gIC8qKiB1cGRhdGUgc2VsZWN0ZWQgb3B0aW9uIHdoZW4gYWRkIHJlbW92ZSBvcHRpb24gZXRjICovXHJcbiAgdXBkYXRlU2VsZWN0ZWRPcHRpb24oXHJcbiAgICBjdXJyZW50TW9kZWxWYWx1ZTogc3RyaW5nIHwgc3RyaW5nW10sXHJcbiAgICB0cmlnZ2VyQnlOZ01vZGVsOiBib29sZWFuID0gZmFsc2VcclxuICApOiB2b2lkIHtcclxuICAgIGlmIChjdXJyZW50TW9kZWxWYWx1ZSA9PSBudWxsKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLk11bHRpcGxlKSB7XHJcbiAgICAgIGNvbnN0IHNlbGVjdGVkT3B0aW9ucyA9IHRoaXMuX29wdGlvbnMuZmlsdGVyKGl0ZW0gPT4ge1xyXG4gICAgICAgIHJldHVybiBpdGVtICE9IG51bGwgJiYgY3VycmVudE1vZGVsVmFsdWUuaW5kZXhPZihpdGVtLlZhbHVlKSAhPT0gLTE7XHJcbiAgICAgIH0pO1xyXG4gICAgICBpZiAoKHRoaXMuS2VlcFVuTGlzdE9wdGlvbnMgfHwgdGhpcy5UYWdzKSAmJiAhdHJpZ2dlckJ5TmdNb2RlbCkge1xyXG4gICAgICAgIGNvbnN0IF9zZWxlY3RlZE9wdGlvbnMgPSBBcnJheS5mcm9tKHRoaXMuX3NlbGVjdGVkT3B0aW9ucyk7XHJcbiAgICAgICAgc2VsZWN0ZWRPcHRpb25zLmZvckVhY2gob3B0aW9uID0+IHtcclxuICAgICAgICAgIGNvbnN0IF9leGlzdCA9IF9zZWxlY3RlZE9wdGlvbnMuc29tZShcclxuICAgICAgICAgICAgaXRlbSA9PiBpdGVtLl92YWx1ZSA9PT0gb3B0aW9uLl92YWx1ZVxyXG4gICAgICAgICAgKTtcclxuICAgICAgICAgIGlmICghX2V4aXN0KSB7XHJcbiAgICAgICAgICAgIHRoaXMuX3NlbGVjdGVkT3B0aW9ucy5hZGQob3B0aW9uKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLl9zZWxlY3RlZE9wdGlvbnMgPSBuZXcgU2V0KCk7XHJcbiAgICAgICAgc2VsZWN0ZWRPcHRpb25zLmZvckVhY2gob3B0aW9uID0+IHtcclxuICAgICAgICAgIHRoaXMuX3NlbGVjdGVkT3B0aW9ucy5hZGQob3B0aW9uKTtcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc3Qgc2VsZWN0ZWRPcHRpb24gPSB0aGlzLl9vcHRpb25zLmZpbHRlcihpdGVtID0+IHtcclxuICAgICAgICByZXR1cm4gaXRlbSAhPSBudWxsICYmIGl0ZW0uVmFsdWUgPT09IGN1cnJlbnRNb2RlbFZhbHVlO1xyXG4gICAgICB9KTtcclxuICAgICAgdGhpcy5jaG9vc2VPcHRpb24oc2VsZWN0ZWRPcHRpb25bMF0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZm9yY2VVcGRhdGVTZWxlY3RlZE9wdGlvbih2YWx1ZTogc3RyaW5nIHwgc3RyaW5nW10pOiB2b2lkIHtcclxuICAgIC8qKiB0cmlnZ2VyIGRpcnR5IGNoZWNrICovIC8vIEB0cy1pZ25vcmVcclxuICAgIHNldFRpbWVvdXQoXyA9PiB7XHJcbiAgICAgIHRoaXMudXBkYXRlU2VsZWN0ZWRPcHRpb24odmFsdWUpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBnZXQgVmFsdWUoKTogc3RyaW5nIHwgc3RyaW5nW10ge1xyXG4gICAgcmV0dXJuIHRoaXMuX3ZhbHVlO1xyXG4gIH1cclxuXHJcbiAgc2V0IFZhbHVlKHZhbHVlOiBzdHJpbmcgfCBzdHJpbmdbXSkge1xyXG4gICAgdGhpcy5fdXBkYXRlVmFsdWUodmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgY2xlYXJBbGxTZWxlY3RlZE9wdGlvbihlbWl0Q2hhbmdlOiBib29sZWFuID0gdHJ1ZSk6IHZvaWQge1xyXG4gICAgdGhpcy5fc2VsZWN0ZWRPcHRpb25zLmZvckVhY2goaXRlbSA9PiB7XHJcbiAgICAgIHRoaXMudW5TZWxlY3RNdWx0aXBsZU9wdGlvbihpdGVtLCBudWxsLCBlbWl0Q2hhbmdlKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgaGFuZGxlS2V5RW50ZXJFdmVudChldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xyXG4gICAgLyoqIHdoZW4gY29tcG9zaW5nIGVuZCAqL1xyXG4gICAgaWYgKCF0aGlzLl9jb21wb3NpbmcgJiYgdGhpcy5faXNPcGVuKSB7XHJcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgICB0aGlzLnVwZGF0ZUZpbHRlck9wdGlvbihmYWxzZSk7XHJcbiAgICAgIHRoaXMuY2xpY2tPcHRpb24odGhpcy5fYWN0aXZlRmlsdGVyT3B0aW9uKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGhhbmRsZUtleUJhY2tzcGFjZUV2ZW50KGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMuX3NlYXJjaFRleHQgJiYgIXRoaXMuX2NvbXBvc2luZyAmJiB0aGlzLl9pc011bHRpcGxlKSB7XHJcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgIGNvbnN0IGxhc3RPcHRpb24gPSBBcnJheS5mcm9tKHRoaXMuX3NlbGVjdGVkT3B0aW9ucykucG9wKCk7XHJcbiAgICAgIHRoaXMudW5TZWxlY3RNdWx0aXBsZU9wdGlvbihsYXN0T3B0aW9uKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGhhbmRsZUtleURvd25FdmVudCgkZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLl9pc09wZW4pIHtcclxuICAgICAgJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgICAgdGhpcy5fYWN0aXZlRmlsdGVyT3B0aW9uID0gdGhpcy5uZXh0T3B0aW9uKFxyXG4gICAgICAgIHRoaXMuX2FjdGl2ZUZpbHRlck9wdGlvbixcclxuICAgICAgICB0aGlzLl9maWx0ZXJPcHRpb25zLmZpbHRlcih3ID0+ICF3LkRpc2FibGVkKVxyXG4gICAgICApO1xyXG4gICAgICB0aGlzLnNjcm9sbFRvQWN0aXZlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBoYW5kbGVLZXlVcEV2ZW50KCRldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuX2lzT3Blbikge1xyXG4gICAgICAkZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgICB0aGlzLl9hY3RpdmVGaWx0ZXJPcHRpb24gPSB0aGlzLnByZU9wdGlvbihcclxuICAgICAgICB0aGlzLl9hY3RpdmVGaWx0ZXJPcHRpb24sXHJcbiAgICAgICAgdGhpcy5fZmlsdGVyT3B0aW9ucy5maWx0ZXIodyA9PiAhdy5EaXNhYmxlZClcclxuICAgICAgKTtcclxuICAgICAgdGhpcy5zY3JvbGxUb0FjdGl2ZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJlT3B0aW9uKFxyXG4gICAgb3B0aW9uOiBwZ09wdGlvbkNvbXBvbmVudCxcclxuICAgIG9wdGlvbnM6IHBnT3B0aW9uQ29tcG9uZW50W11cclxuICApOiBwZ09wdGlvbkNvbXBvbmVudCB7XHJcbiAgICByZXR1cm4gb3B0aW9uc1tvcHRpb25zLmluZGV4T2Yob3B0aW9uKSAtIDFdIHx8IG9wdGlvbnNbb3B0aW9ucy5sZW5ndGggLSAxXTtcclxuICB9XHJcblxyXG4gIG5leHRPcHRpb24oXHJcbiAgICBvcHRpb246IHBnT3B0aW9uQ29tcG9uZW50LFxyXG4gICAgb3B0aW9uczogcGdPcHRpb25Db21wb25lbnRbXVxyXG4gICk6IHBnT3B0aW9uQ29tcG9uZW50IHtcclxuICAgIHJldHVybiBvcHRpb25zW29wdGlvbnMuaW5kZXhPZihvcHRpb24pICsgMV0gfHwgb3B0aW9uc1swXTtcclxuICB9XHJcblxyXG4gIGNsZWFyU2VhcmNoVGV4dCgpOiB2b2lkIHtcclxuICAgIHRoaXMuX3NlYXJjaFRleHQgPSBcIlwiO1xyXG4gICAgdGhpcy51cGRhdGVGaWx0ZXJPcHRpb24oKTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZUZpbHRlck9wdGlvbih1cGRhdGVBY3RpdmVGaWx0ZXI6IGJvb2xlYW4gPSB0cnVlKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5GaWx0ZXIpIHtcclxuICAgICAgdGhpcy5fZmlsdGVyT3B0aW9ucyA9IG5ldyBPcHRpb25QaXBlKCkudHJhbnNmb3JtKHRoaXMuX29wdGlvbnMsIHtcclxuICAgICAgICBzZWFyY2hUZXh0OiB0aGlzLl9zZWFyY2hUZXh0LFxyXG4gICAgICAgIHRhZ3M6IHRoaXMuX2lzVGFncyxcclxuICAgICAgICBub3RGb3VuZENvbnRlbnQ6IHRoaXMuX2lzVGFnc1xyXG4gICAgICAgICAgPyB0aGlzLl9zZWFyY2hUZXh0XHJcbiAgICAgICAgICA6IHRoaXMuX25vdEZvdW5kQ29udGVudCxcclxuICAgICAgICBkaXNhYmxlZDogIXRoaXMuX2lzVGFncyxcclxuICAgICAgICB2YWx1ZTogdGhpcy5faXNUYWdzID8gdGhpcy5fc2VhcmNoVGV4dCA6IFwiZGlzYWJsZWRcIlxyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuX2ZpbHRlck9wdGlvbnMgPSB0aGlzLl9vcHRpb25zO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKiBUT0RPOiBjYXVzZSBwcmUgJiBuZXh0IGtleSBzZWxlY3Rpb24gbm90IHdvcmsgKi9cclxuICAgIGlmICh1cGRhdGVBY3RpdmVGaWx0ZXIgJiYgIXRoaXMuX3NlbGVjdGVkT3B0aW9uKSB7XHJcbiAgICAgIHRoaXMuX2FjdGl2ZUZpbHRlck9wdGlvbiA9IHRoaXMuX2ZpbHRlck9wdGlvbnNbMF07XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvblNlYXJjaENoYW5nZShzZWFyY2hWYWx1ZTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLlNlYXJjaENoYW5nZS5lbWl0KHNlYXJjaFZhbHVlKTtcclxuICB9XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoXCJjbGlja1wiLCBbXCIkZXZlbnRcIl0pXHJcbiAgb25DbGljayhlOiBNb3VzZUV2ZW50KTogdm9pZCB7XHJcbiAgICBlLnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICBpZiAoIXRoaXMuX2Rpc2FibGVkKSB7XHJcbiAgICAgIHRoaXMuT3BlbiA9ICF0aGlzLk9wZW47XHJcbiAgICAgIGlmICh0aGlzLlNob3dTZWFyY2gpIHtcclxuICAgICAgICAvKiogd2FpdCBmb3Igc2VhcmNoIGRpc3BsYXkgKi8gLy8gQHRzLWlnbm9yZVxyXG4gICAgICAgIHNldFRpbWVvdXQoXyA9PiB7XHJcbiAgICAgICAgICB0aGlzLnNlYXJjaElucHV0RWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoXCJrZXlkb3duXCIsIFtcIiRldmVudFwiXSlcclxuICBvbktleURvd24oZTogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xyXG4gICAgY29uc3Qga2V5Q29kZSA9IGUua2V5Q29kZTtcclxuICAgIGlmIChrZXlDb2RlID09PSBUQUIgJiYgdGhpcy5PcGVuKSB7XHJcbiAgICAgIHRoaXMuT3BlbiA9IGZhbHNlO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBpZiAoKGtleUNvZGUgIT09IERPV05fQVJST1cgJiYga2V5Q29kZSAhPT0gRU5URVIpIHx8IHRoaXMuT3Blbikge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBlLnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICBpZiAoIXRoaXMuX2Rpc2FibGVkKSB7XHJcbiAgICAgIHRoaXMuT3BlbiA9IHRydWU7XHJcbiAgICAgIGlmICh0aGlzLlNob3dTZWFyY2gpIHtcclxuICAgICAgICAvKiogd2FpdCBmb3Igc2VhcmNoIGRpc3BsYXkgKi8gLy8gQHRzLWlnbm9yZVxyXG4gICAgICAgIHNldFRpbWVvdXQoXyA9PiB7XHJcbiAgICAgICAgICB0aGlzLnNlYXJjaElucHV0RWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNsb3NlRHJvcERvd24oKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMuT3Blbikge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLm9uVG91Y2hlZCgpO1xyXG4gICAgaWYgKHRoaXMuTXVsdGlwbGUpIHtcclxuICAgICAgdGhpcy5fcmVuZGVyZXIucmVtb3ZlU3R5bGUoXHJcbiAgICAgICAgdGhpcy5zZWFyY2hJbnB1dEVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCxcclxuICAgICAgICBcIndpZHRoXCJcclxuICAgICAgKTtcclxuICAgIH1cclxuICAgIHRoaXMuY2xlYXJTZWFyY2hUZXh0KCk7XHJcbiAgICB0aGlzLk9wZW4gPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIHNldENsYXNzTWFwKCk6IHZvaWQge1xyXG4gICAgdGhpcy5fY2xhc3NMaXN0LmZvckVhY2goX2NsYXNzTmFtZSA9PiB7XHJcbiAgICAgIHRoaXMuX3JlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMuX2VsLCBfY2xhc3NOYW1lKTtcclxuICAgIH0pOyAvLyBAdHMtaWdub3JlXHJcbiAgICB0aGlzLl9jbGFzc0xpc3QgPSBbXHJcbiAgICAgIHRoaXMuX3ByZWZpeENscyxcclxuICAgICAgdGhpcy5fbW9kZSA9PT0gXCJjb21ib2JveFwiICYmIGAke3RoaXMuX3ByZWZpeENsc30tY29tYm9ib3hgLFxyXG4gICAgICAhdGhpcy5fZGlzYWJsZWQgJiYgYCR7dGhpcy5fcHJlZml4Q2xzfS1lbmFibGVkYCxcclxuICAgICAgdGhpcy5fZGlzYWJsZWQgJiYgYCR7dGhpcy5fcHJlZml4Q2xzfS1kaXNhYmxlZGAsXHJcbiAgICAgIHRoaXMuX2lzT3BlbiAmJiBgJHt0aGlzLl9wcmVmaXhDbHN9LW9wZW5gLFxyXG4gICAgICB0aGlzLl9zaG93U2VhcmNoICYmIGAke3RoaXMuX3ByZWZpeENsc30tc2hvdy1zZWFyY2hgLFxyXG4gICAgICB0aGlzLl9zaXplICYmIGAke3RoaXMuX3ByZWZpeENsc30tJHt0aGlzLl9zaXplfWBcclxuICAgIF0uZmlsdGVyKGl0ZW0gPT4ge1xyXG4gICAgICByZXR1cm4gISFpdGVtO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLl9jbGFzc0xpc3QuZm9yRWFjaChfY2xhc3NOYW1lID0+IHtcclxuICAgICAgdGhpcy5fcmVuZGVyZXIuYWRkQ2xhc3ModGhpcy5fZWwsIF9jbGFzc05hbWUpO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLl9zZWxlY3Rpb25DbGFzc01hcCA9IHtcclxuICAgICAgW3RoaXMuX3NlbGVjdGlvblByZWZpeENsc106IHRydWUsXHJcbiAgICAgIFtgJHt0aGlzLl9zZWxlY3Rpb25QcmVmaXhDbHN9LS1zaW5nbGVgXTogIXRoaXMuTXVsdGlwbGUsXHJcbiAgICAgIFtgJHt0aGlzLl9zZWxlY3Rpb25QcmVmaXhDbHN9LS1tdWx0aXBsZWBdOiB0aGlzLk11bHRpcGxlXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgc2V0RHJvcERvd25DbGFzc01hcCgpOiB2b2lkIHtcclxuICAgIHRoaXMuX2Ryb3BEb3duQ2xhc3NNYXAgPSB7XHJcbiAgICAgIFt0aGlzLl9kcm9wRG93blByZWZpeENsc106IHRydWUsXHJcbiAgICAgIFtcImNvbXBvbmVudC1zZWxlY3RcIl06IHRoaXMuX21vZGUgPT09IFwiY29tYm9ib3hcIixcclxuICAgICAgW2Ake3RoaXMuX2Ryb3BEb3duUHJlZml4Q2xzfS0tc2luZ2xlYF06ICF0aGlzLk11bHRpcGxlLFxyXG4gICAgICBbYCR7dGhpcy5fZHJvcERvd25QcmVmaXhDbHN9LS1tdWx0aXBsZWBdOiB0aGlzLk11bHRpcGxlLFxyXG4gICAgICBbYCR7dGhpcy5fZHJvcERvd25QcmVmaXhDbHN9LXBsYWNlbWVudC1ib3R0b21MZWZ0YF06XHJcbiAgICAgICAgdGhpcy5fZHJvcERvd25Qb3NpdGlvbiA9PT0gXCJib3R0b21cIixcclxuICAgICAgW2Ake3RoaXMuX2Ryb3BEb3duUHJlZml4Q2xzfS1wbGFjZW1lbnQtdG9wTGVmdGBdOlxyXG4gICAgICAgIHRoaXMuX2Ryb3BEb3duUG9zaXRpb24gPT09IFwidG9wXCJcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBzY3JvbGxUb0FjdGl2ZSgpOiB2b2lkIHtcclxuICAgIC8qKiB3YWl0IGZvciBkcm9wZG93biBkaXNwbGF5ICovIC8vIEB0cy1pZ25vcmVcclxuICAgIHNldFRpbWVvdXQoXyA9PiB7XHJcbiAgICAgIGlmICh0aGlzLl9hY3RpdmVGaWx0ZXJPcHRpb24gJiYgdGhpcy5fYWN0aXZlRmlsdGVyT3B0aW9uLlZhbHVlKSB7XHJcbiAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLl9maWx0ZXJPcHRpb25zLmZpbmRJbmRleChcclxuICAgICAgICAgIG9wdGlvbiA9PiBvcHRpb24uVmFsdWUgPT09IHRoaXMuX2FjdGl2ZUZpbHRlck9wdGlvbi5WYWx1ZVxyXG4gICAgICAgICk7XHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgIGNvbnN0IHNjcm9sbFBhbmUgPSB0aGlzLmRyb3Bkb3duVWwubmF0aXZlRWxlbWVudC5jaGlsZHJlbltcclxuICAgICAgICAgICAgaW5kZXhcclxuICAgICAgICAgIF0gYXMgSFRNTExJRWxlbWVudDtcclxuICAgICAgICAgIC8vIFRPRE86IHNjcm9sbEludG9WaWV3SWZOZWVkZWQgaXMgbm90IGEgc3RhbmRhcmQgQVBJLCB3aHkgZG9pbmcgc28/XHJcbiAgICAgICAgICAvKiB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8tYW55ICovXHJcbiAgICAgICAgICAoc2Nyb2xsUGFuZSBhcyBhbnkpLnNjcm9sbEludG9WaWV3SWZOZWVkZWQoZmFsc2UpO1xyXG4gICAgICAgIH0gY2F0Y2ggKGUpIHt9XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZmx1c2hDb21wb25lbnRTdGF0ZSgpOiB2b2lkIHtcclxuICAgIHRoaXMudXBkYXRlRmlsdGVyT3B0aW9uKCk7XHJcbiAgICBpZiAoIXRoaXMuTXVsdGlwbGUpIHtcclxuICAgICAgdGhpcy51cGRhdGVTZWxlY3RlZE9wdGlvbih0aGlzLl92YWx1ZSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZiAodGhpcy5fdmFsdWUpIHtcclxuICAgICAgICB0aGlzLnVwZGF0ZVNlbGVjdGVkT3B0aW9uKHRoaXMuX3ZhbHVlKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgX3NldFRyaWdnZXJXaWR0aCgpOiB2b2lkIHtcclxuICAgIHRoaXMuX3RyaWdnZXJXaWR0aCA9IHRoaXMuX2dldFRyaWdnZXJSZWN0KCkud2lkdGg7XHJcbiAgICAvKiogc2hvdWxkIHJlbW92ZSBhZnRlciBhZnRlciBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9tYXRlcmlhbDIvcHVsbC84NzY1IG1lcmdlZCAqKi9cclxuICAgIGlmICh0aGlzLl9jZGtPdmVybGF5ICYmIHRoaXMuX2Nka092ZXJsYXkub3ZlcmxheVJlZikge1xyXG4gICAgICB0aGlzLl9jZGtPdmVybGF5Lm92ZXJsYXlSZWYudXBkYXRlU2l6ZSh7XHJcbiAgICAgICAgd2lkdGg6IHRoaXMuX3RyaWdnZXJXaWR0aFxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIF9nZXRUcmlnZ2VyUmVjdCgpOiBDbGllbnRSZWN0IHtcclxuICAgIHJldHVybiB0aGlzLnRyaWdnZXIubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuICB9XHJcblxyXG4gIHdyaXRlVmFsdWUodmFsdWU6IHN0cmluZyB8IHN0cmluZ1tdKTogdm9pZCB7XHJcbiAgICB0aGlzLl91cGRhdGVWYWx1ZSh2YWx1ZSwgZmFsc2UpO1xyXG4gIH1cclxuXHJcbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogKHZhbHVlOiBzdHJpbmcgfCBzdHJpbmdbXSkgPT4gdm9pZCk6IHZvaWQge1xyXG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xyXG4gIH1cclxuXHJcbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46ICgpID0+IHZvaWQpOiB2b2lkIHtcclxuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XHJcbiAgfVxyXG5cclxuICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIHRoaXMuRGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xyXG4gIH1cclxuXHJcbiAgZHJvcERvd25TY3JvbGwodWw6IEhUTUxVTGlzdEVsZW1lbnQpOiB2b2lkIHtcclxuICAgIGlmICh1bCAmJiB1bC5zY3JvbGxIZWlnaHQgLSB1bC5zY3JvbGxUb3AgPT09IHVsLmNsaWVudEhlaWdodCkge1xyXG4gICAgICB0aGlzLlNjcm9sbFRvQm90dG9tLmVtaXQodHJ1ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjaGVja0Ryb3BEb3duU2Nyb2xsKCk6IHZvaWQge1xyXG4gICAgaWYgKFxyXG4gICAgICB0aGlzLmRyb3Bkb3duVWwgJiZcclxuICAgICAgdGhpcy5kcm9wZG93blVsLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsSGVpZ2h0ID09PVxyXG4gICAgICAgIHRoaXMuZHJvcGRvd25VbC5uYXRpdmVFbGVtZW50LmNsaWVudEhlaWdodFxyXG4gICAgKSB7XHJcbiAgICAgIHRoaXMuU2Nyb2xsVG9Cb3R0b20uZW1pdCh0cnVlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBfZWxlbWVudFJlZjogRWxlbWVudFJlZixcclxuICAgIHByaXZhdGUgX3JlbmRlcmVyOiBSZW5kZXJlcjIsXHJcbiAgICBwcml2YXRlIGNEUmVmOiBDaGFuZ2VEZXRlY3RvclJlZlxyXG4gICkge1xyXG4gICAgdGhpcy5fZWwgPSB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5fdmFsdWUgIT0gbnVsbCkge1xyXG4gICAgICB0aGlzLmZsdXNoQ29tcG9uZW50U3RhdGUoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy51cGRhdGVGaWx0ZXJPcHRpb24oKTtcclxuICAgIHRoaXMuc2V0Q2xhc3NNYXAoKTtcclxuICAgIHRoaXMuc2V0RHJvcERvd25DbGFzc01hcCgpO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlckNvbnRlbnRDaGVja2VkKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuX2NhY2hlT3B0aW9ucyAhPT0gdGhpcy5fb3B0aW9ucykge1xyXG4gICAgICAvKiogdXBkYXRlIGZpbHRlciBvcHRpb24gYWZ0ZXIgZXZlcnkgY29udGVudCBjaGVjayBjeWNsZSAqL1xyXG4gICAgICB0aGlzLnVwZGF0ZUZpbHRlck9wdGlvbigpO1xyXG4gICAgICB0aGlzLl9jYWNoZU9wdGlvbnMgPSB0aGlzLl9vcHRpb25zO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy51cGRhdGVGaWx0ZXJPcHRpb24oZmFsc2UpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLkZpcnN0RGVmYXVsdCkge1xyXG4gICAgICBpZiAoIXRoaXMuX3ZhbHVlICYmIHRoaXMuX29wdGlvbnMpIHtcclxuICAgICAgICBpZiAodGhpcy5fb3B0aW9uc1swXSAhPT0gdW5kZWZpbmVkICYmIHRoaXMuX29wdGlvbnNbMF0uVmFsdWUpIHtcclxuICAgICAgICAgIHRoaXMuY2hvb3NlT3B0aW9uKHRoaXMuX29wdGlvbnNbMF0sIGZhbHNlKTtcclxuICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLm9uQ2hhbmdlKHRoaXMuX29wdGlvbnNbMF0uVmFsdWUpO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF91cGRhdGVWYWx1ZShcclxuICAgIHZhbHVlOiBzdHJpbmdbXSB8IHN0cmluZyxcclxuICAgIGVtaXRDaGFuZ2U6IGJvb2xlYW4gPSB0cnVlXHJcbiAgKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5fdmFsdWUgPT09IHZhbHVlKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGlmICh2YWx1ZSA9PSBudWxsICYmIHRoaXMuTXVsdGlwbGUpIHtcclxuICAgICAgdGhpcy5fdmFsdWUgPSBbXTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuX3ZhbHVlID0gdmFsdWU7XHJcbiAgICB9XHJcbiAgICBpZiAoIXRoaXMuTXVsdGlwbGUpIHtcclxuICAgICAgaWYgKHZhbHVlID09IG51bGwpIHsgLy8gQHRzLWlnbm9yZVxyXG4gICAgICAgIHRoaXMuX3NlbGVjdGVkT3B0aW9uID0gbnVsbDtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnVwZGF0ZVNlbGVjdGVkT3B0aW9uKHZhbHVlKTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKHZhbHVlKSB7XHJcbiAgICAgICAgaWYgKHZhbHVlLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgICAgdGhpcy5jbGVhckFsbFNlbGVjdGVkT3B0aW9uKGVtaXRDaGFuZ2UpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLnVwZGF0ZVNlbGVjdGVkT3B0aW9uKHZhbHVlLCB0cnVlKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSBpZiAodmFsdWUgPT0gbnVsbCkge1xyXG4gICAgICAgIHRoaXMuY2xlYXJBbGxTZWxlY3RlZE9wdGlvbihlbWl0Q2hhbmdlKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCI8ZGl2IHRhYmluZGV4PVwiMFwiICN0cmlnZ2VyIGNka092ZXJsYXlPcmlnaW4gI29yaWdpbj1cImNka092ZXJsYXlPcmlnaW5cIiBbbmdDbGFzc109XCJfc2VsZWN0aW9uQ2xhc3NNYXBcIlxyXG4gIChrZXlkb3duLkVudGVyKT1cImhhbmRsZUtleUVudGVyRXZlbnQoJGV2ZW50KVwiIChrZXlkb3duLkJhY2tzcGFjZSk9XCJoYW5kbGVLZXlCYWNrc3BhY2VFdmVudCgkZXZlbnQpXCJcclxuICAoa2V5ZG93bi5BcnJvd1VwKT1cImhhbmRsZUtleVVwRXZlbnQoJGV2ZW50KVwiIChrZXlkb3duLkFycm93RG93bik9XCJoYW5kbGVLZXlEb3duRXZlbnQoJGV2ZW50KVwiPlxyXG4gIDxkaXYgY2xhc3M9XCJwZy1zZWxlY3Qtc2VsZWN0aW9uX19yZW5kZXJlZFwiICpuZ0lmPVwiIVNob3dTZWFyY2hcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJwZy1zZWxlY3Qtc2VsZWN0aW9uX19wbGFjZWhvbGRlclwiPlxyXG4gICAgICA8bmctdGVtcGxhdGUgW25nSWZdPVwiIV9zZWxlY3RlZE9wdGlvblwiPlxyXG4gICAgICAgIHt7IFBsYWNlSG9sZGVyIH19XHJcbiAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJwZy1zZWxlY3Qtc2VsZWN0aW9uLXNlbGVjdGVkLXZhbHVlXCI+XHJcbiAgICAgIHt7IF9zZWxlY3RlZE9wdGlvbj8uTGFiZWwgfX1cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgY2xhc3M9XCJwZy1zZWxlY3Qtc2VsZWN0aW9uX19yZW5kZXJlZFwiICpuZ0lmPVwiU2hvd1NlYXJjaFwiPlxyXG4gICAgPGRpdiBbaGlkZGVuXT1cIl9zZWFyY2hUZXh0fHwoIU9wZW4mJl9zZWxlY3RlZE9wdGlvbil8fF9zZWxlY3RlZE9wdGlvbnMuc2l6ZVwiXHJcbiAgICAgIGNsYXNzPVwicGctc2VsZWN0LXNlbGVjdGlvbl9fcGxhY2Vob2xkZXJcIj5cclxuICAgICAgPG5nLXRlbXBsYXRlIFtuZ0lmXT1cIighX2NvbXBvc2luZykmJl9zZWxlY3RlZE9wdGlvblwiPlxyXG4gICAgICAgIHt7IF9zZWxlY3RlZE9wdGlvbi5MYWJlbCB9fVxyXG4gICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICA8bmctdGVtcGxhdGUgW25nSWZdPVwiKCFfY29tcG9zaW5nKSYmKCFfc2VsZWN0ZWRPcHRpb24pXCI+XHJcbiAgICAgICAge3sgUGxhY2VIb2xkZXIgfX1cclxuICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgIDwvZGl2PlxyXG4gICAgPHVsICpuZ0lmPVwiTXVsdGlwbGVcIj5cclxuICAgICAgPGxpICpuZ0Zvcj1cImxldCBvcHRpb24gb2YgX3NlbGVjdGVkT3B0aW9uc1wiIFtAdGFnQW5pbWF0aW9uXSBbYXR0ci50aXRsZV09XCJvcHRpb24/LkxhYmVsIHx8IG9wdGlvbj8uVmFsdWVcIlxyXG4gICAgICAgIGNsYXNzPVwicGctc2VsZWN0LXNlbGVjdGlvbl9fY2hvaWNlXCIgc3R5bGU9XCItd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1wiPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwicGctc2VsZWN0LXNlbGVjdGlvbl9fY2hvaWNlX19yZW1vdmVcIiAoY2xpY2spPVwidW5TZWxlY3RNdWx0aXBsZU9wdGlvbihvcHRpb24sJGV2ZW50KVwiPjwvc3Bhbj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicGctc2VsZWN0LXNlbGVjdGlvbl9fY2hvaWNlX19jb250ZW50XCI+e3sgb3B0aW9uPy5MYWJlbCB9fTwvZGl2PlxyXG4gICAgICA8L2xpPlxyXG4gICAgICA8bGkgY2xhc3M9XCJwZy1zZWxlY3Qtc2VhcmNoIHBnLXNlbGVjdC1zZWFyY2gtLWlubGluZVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJwZy1zZWxlY3Qtc2VhcmNoX19maWVsZF9fd3JhcFwiPlxyXG4gICAgICAgICAgPGlucHV0IGNsYXNzPVwicGctc2VsZWN0LXNlYXJjaF9fZmllbGRcIiAoY29tcG9zaXRpb25zdGFydCk9XCJjb21wb3NpdGlvblN0YXJ0KClcIlxyXG4gICAgICAgICAgICAoY29tcG9zaXRpb25lbmQpPVwiY29tcG9zaXRpb25FbmQoKTt1cGRhdGVXaWR0aChzZWFyY2hJbnB1dCxfc2VhcmNoVGV4dCk7XCIgWyhuZ01vZGVsKV09XCJfc2VhcmNoVGV4dFwiXHJcbiAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInVwZGF0ZUZpbHRlck9wdGlvbigpO29uU2VhcmNoQ2hhbmdlKCRldmVudCk7XCJcclxuICAgICAgICAgICAgKGtleWRvd24pPVwidXBkYXRlV2lkdGgoc2VhcmNoSW5wdXQsX3NlYXJjaFRleHQpXCIgKGlucHV0KT1cInVwZGF0ZVdpZHRoKHNlYXJjaElucHV0LF9zZWFyY2hUZXh0KVwiXHJcbiAgICAgICAgICAgIChibHVyKT1cIm9uVG91Y2hlZCgpXCIgI3NlYXJjaElucHV0PlxyXG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJwZy1zZWxlY3Qtc2VhcmNoX19maWVsZF9fbWlycm9yXCI+PC9zcGFuPjwvZGl2PlxyXG4gICAgICA8L2xpPlxyXG4gICAgPC91bD5cclxuICAgIDxkaXYgKm5nSWY9XCIhTXVsdGlwbGVcIiBjbGFzcz1cInBnLXNlbGVjdC1zZWxlY3Rpb24tc2VsZWN0ZWQtdmFsdWVcIiBbaGlkZGVuXT1cIiEoX3NlbGVjdGVkT3B0aW9uPy5MYWJlbCl8fE9wZW5cIj5cclxuICAgICAge3sgX3NlbGVjdGVkT3B0aW9uPy5MYWJlbCB9fVxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2ICpuZ0lmPVwiIU11bHRpcGxlXCIgW2hpZGRlbl09XCIhT3BlblwiIGNsYXNzPVwicGctc2VsZWN0LXNlYXJjaCBwZy1zZWxlY3Qtc2VhcmNoLS1pbmxpbmVcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cInBnLXNlbGVjdC1zZWFyY2hfX2ZpZWxkX193cmFwXCI+XHJcbiAgICAgICAgPGlucHV0IGNsYXNzPVwicGctc2VsZWN0LXNlYXJjaF9fZmllbGRcIiAoYmx1cik9XCJvblRvdWNoZWQoKVwiIChjb21wb3NpdGlvbnN0YXJ0KT1cImNvbXBvc2l0aW9uU3RhcnQoKVwiXHJcbiAgICAgICAgICAoY29tcG9zaXRpb25lbmQpPVwiY29tcG9zaXRpb25FbmQoKVwiIFsobmdNb2RlbCldPVwiX3NlYXJjaFRleHRcIlxyXG4gICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwidXBkYXRlRmlsdGVyT3B0aW9uKCk7b25TZWFyY2hDaGFuZ2UoJGV2ZW50KTtcIiAjc2VhcmNoSW5wdXQ+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJwZy1zZWxlY3Qtc2VhcmNoX19maWVsZF9fbWlycm9yXCI+PC9zcGFuPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG4gIDxzcGFuIChjbGljayk9XCJvblRvdWNoZWQoKTtjbGVhclNlbGVjdCgkZXZlbnQpXCIgY2xhc3M9XCJwZy1zZWxlY3Qtc2VsZWN0aW9uX19jbGVhclwiIHN0eWxlPVwiLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcIlxyXG4gICAgKm5nSWY9XCJfc2VsZWN0ZWRPcHRpb24/LkxhYmVsJiZBbGxvd0NsZWFyJiYhTXVsdGlwbGVcIj5cclxuICA8L3NwYW4+XHJcbiAgPHNwYW4gY2xhc3M9XCJwZy1zZWxlY3QtYXJyb3dcIj48Yj48L2I+PC9zcGFuPlxyXG48L2Rpdj5cclxuPG5nLXRlbXBsYXRlIGNka0Nvbm5lY3RlZE92ZXJsYXkgY2RrQ29ubmVjdGVkT3ZlcmxheUhhc0JhY2tkcm9wIFtjZGtDb25uZWN0ZWRPdmVybGF5T3JpZ2luXT1cIm9yaWdpblwiXHJcbiAgKGJhY2tkcm9wQ2xpY2spPVwiY2xvc2VEcm9wRG93bigpXCIgKGRldGFjaCk9XCJjbG9zZURyb3BEb3duKCk7XCIgKHBvc2l0aW9uQ2hhbmdlKT1cIm9uUG9zaXRpb25DaGFuZ2UoJGV2ZW50KVwiXHJcbiAgW2Nka0Nvbm5lY3RlZE92ZXJsYXlXaWR0aF09XCJfdHJpZ2dlcldpZHRoXCIgW2Nka0Nvbm5lY3RlZE92ZXJsYXlPcGVuXT1cIl9pc09wZW5cIj5cclxuICA8ZGl2IFtuZ0NsYXNzXT1cIl9kcm9wRG93bkNsYXNzTWFwXCIgW0Bkcm9wRG93bkFuaW1hdGlvbl09XCJfZHJvcERvd25Qb3NpdGlvblwiPlxyXG4gICAgPGRpdiBzdHlsZT1cIm92ZXJmbG93OiBhdXRvO1wiPlxyXG4gICAgICA8dWwgY2xhc3M9XCJwZy1zZWxlY3QtZHJvcGRvd24tbWVudSBwZy1zZWxlY3QtZHJvcGRvd24tbWVudS12ZXJ0aWNhbCBwZy1zZWxlY3QtZHJvcGRvd24tbWVudS1yb290XCIgI2Ryb3Bkb3duVWxcclxuICAgICAgICAoc2Nyb2xsKT1cImRyb3BEb3duU2Nyb2xsKGRyb3Bkb3duVWwpXCI+XHJcbiAgICAgICAgPGxpICpuZ0Zvcj1cImxldCBvcHRpb24gb2YgX2ZpbHRlck9wdGlvbnNcIiBbY2xhc3MucGctc2VsZWN0LWRyb3Bkb3duLW1lbnUtaXRlbS1kaXNhYmxlZF09XCJvcHRpb24uRGlzYWJsZWRcIlxyXG4gICAgICAgICAgW2NsYXNzLnBnLXNlbGVjdC1kcm9wZG93bi1tZW51LWl0ZW0tYWN0aXZlXT1cIm9wdGlvbi5WYWx1ZSA9PSBfYWN0aXZlRmlsdGVyT3B0aW9uPy5WYWx1ZVwiXHJcbiAgICAgICAgICBbY2xhc3MucGctc2VsZWN0LWRyb3Bkb3duLW1lbnUtaXRlbS1zZWxlY3RlZF09XCIob3B0aW9uLlZhbHVlPT0oX3NlbGVjdGVkT3B0aW9uPy5WYWx1ZSkpfHwoaXNJblNldChfc2VsZWN0ZWRPcHRpb25zLG9wdGlvbikpXCJcclxuICAgICAgICAgIGNsYXNzPVwicGctc2VsZWN0LWRyb3Bkb3duLW1lbnUtaXRlbVwiIChjbGljayk9XCJjbGlja09wdGlvbihvcHRpb24sJGV2ZW50KVwiPlxyXG4gICAgICAgICAgPG5nLXRlbXBsYXRlICpuZ0lmPVwib3B0aW9uLk9wdGlvblRlbXBsYXRlXCIgW25nVGVtcGxhdGVPdXRsZXRdPVwib3B0aW9uLk9wdGlvblRlbXBsYXRlXCI+XHJcbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ0lmXT1cIiFvcHRpb24uT3B0aW9uVGVtcGxhdGVcIj5cclxuICAgICAgICAgICAge3sgb3B0aW9uLkxhYmVsIH19XHJcbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDwvbGk+XHJcbiAgICAgIDwvdWw+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9uZy10ZW1wbGF0ZT4iXX0=
762
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWtpdC1saWIvc3JjL2xpYi9wZy1jb21wb25lbnRzL3NlbGVjdC9zZWxlY3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkta2l0LWxpYi9zcmMvbGliL3BnLWNvbXBvbmVudHMvc2VsZWN0L3NlbGVjdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFDSCxPQUFPLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMvRCxPQUFPLEVBQ0wsbUJBQW1CLEVBRXBCLE1BQU0sc0JBQXNCLENBQUM7QUFDOUIsT0FBTyxFQUNMLFVBQVUsRUFHVixTQUFTLEVBRVQsWUFBWSxFQUNaLFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUVOLFNBQVMsRUFDVCxpQkFBaUIsRUFFbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXpFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzVDLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7O0FBeURqRixNQUFNLE9BQU8saUJBQWlCO0lBMG9CNUIsWUFDVSxXQUF1QixFQUN2QixTQUFvQixFQUNwQixLQUF3QjtRQUZ4QixnQkFBVyxHQUFYLFdBQVcsQ0FBWTtRQUN2QixjQUFTLEdBQVQsU0FBUyxDQUFXO1FBQ3BCLFVBQUssR0FBTCxLQUFLLENBQW1CO1FBdm9CMUIsZ0JBQVcsR0FBRyxLQUFLLENBQUM7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b21wbGV4IGJ1dCB3b3JrIHdlbGxcclxuICogVE9ETzogcmVidWlsZCBsYXR0ZXJcclxuICovXHJcbmltcG9ydCB7IERPV05fQVJST1csIEVOVEVSLCBUQUIgfSBmcm9tIFwiQGFuZ3VsYXIvY2RrL2tleWNvZGVzXCI7XHJcbmltcG9ydCB7XHJcbiAgQ2RrQ29ubmVjdGVkT3ZlcmxheSxcclxuICBDb25uZWN0ZWRPdmVybGF5UG9zaXRpb25DaGFuZ2VcclxufSBmcm9tIFwiQGFuZ3VsYXIvY2RrL292ZXJsYXlcIjtcclxuaW1wb3J0IHtcclxuICBmb3J3YXJkUmVmLFxyXG4gIEFmdGVyQ29udGVudENoZWNrZWQsXHJcbiAgQWZ0ZXJDb250ZW50SW5pdCxcclxuICBDb21wb25lbnQsXHJcbiAgRWxlbWVudFJlZixcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgSG9zdExpc3RlbmVyLFxyXG4gIElucHV0LFxyXG4gIE9uSW5pdCxcclxuICBPdXRwdXQsXHJcbiAgUmVuZGVyZXIyLFxyXG4gIFZpZXdDaGlsZCxcclxuICBWaWV3RW5jYXBzdWxhdGlvbixcclxuICBDaGFuZ2VEZXRlY3RvclJlZlxyXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5pbXBvcnQgeyBwZ09wdGlvbkNvbXBvbmVudCB9IGZyb20gXCIuL29wdGlvbi5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgT3B0aW9uUGlwZSB9IGZyb20gXCIuL29wdGlvbi5waXBlXCI7XHJcbmltcG9ydCB7IHRvQm9vbGVhbiB9IGZyb20gJy4uL3V0aWwvY29udmVydCc7XHJcbmltcG9ydCB7IGFuaW1hdGUsIHN0YXRlLCBzdHlsZSwgdHJhbnNpdGlvbiwgdHJpZ2dlciB9IGZyb20gXCJAYW5ndWxhci9hbmltYXRpb25zXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogXCJtZWZkZXYtc2VsZWN0XCIsXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IHBnU2VsZWN0Q29tcG9uZW50KSxcclxuICAgICAgbXVsdGk6IHRydWVcclxuICAgIH1cclxuICBdLFxyXG4gIGFuaW1hdGlvbnM6IFt0cmlnZ2VyKCdkcm9wRG93bkFuaW1hdGlvbicsIFtcclxuICAgIHN0YXRlKCdib3R0b20nLCBzdHlsZSh7XHJcbiAgICAgIG9wYWNpdHkgICAgICAgIDogMSxcclxuICAgICAgdHJhbnNmb3JtICAgICAgOiAnc2NhbGVZKDEpJyxcclxuICAgICAgdHJhbnNmb3JtT3JpZ2luOiAnMCUgMCUnXHJcbiAgICB9KSksXHJcbiAgICB0cmFuc2l0aW9uKCd2b2lkID0+IGJvdHRvbScsIFtcclxuICAgICAgc3R5bGUoe1xyXG4gICAgICAgIG9wYWNpdHkgICAgICAgIDogMCxcclxuICAgICAgICB0cmFuc2Zvcm0gICAgICA6ICdzY2FsZVkoMCknLFxyXG4gICAgICAgIHRyYW5zZm9ybU9yaWdpbjogJzAlIDAlJ1xyXG4gICAgICB9KSxcclxuICAgICAgYW5pbWF0ZSgnMTUwbXMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSknKVxyXG4gICAgXSksXHJcbiAgICBzdGF0ZSgndG9wJywgc3R5bGUoe1xyXG4gICAgICBvcGFjaXR5ICAgICAgICA6IDEsXHJcbiAgICAgIHRyYW5zZm9ybSAgICAgIDogJ3NjYWxlWSgxKScsXHJcbiAgICAgIHRyYW5zZm9ybU9yaWdpbjogJzAlIDEwMCUnXHJcbiAgICB9KSksXHJcbiAgICB0cmFuc2l0aW9uKCd2b2lkID0+IHRvcCcsIFtcclxuICAgICAgc3R5bGUoe1xyXG4gICAgICAgIG9wYWNpdHkgICAgICAgIDogMCxcclxuICAgICAgICB0cmFuc2Zvcm0gICAgICA6ICdzY2FsZVkoMCknLFxyXG4gICAgICAgIHRyYW5zZm9ybU9yaWdpbjogJzAlIDEwMCUnXHJcbiAgICAgIH0pLFxyXG4gICAgICBhbmltYXRlKCcxNTBtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKScpXHJcbiAgICBdKSxcclxuICAgIHRyYW5zaXRpb24oJyogPT4gdm9pZCcsIFtcclxuICAgICAgYW5pbWF0ZSgnMjUwbXMgMTAwbXMgbGluZWFyJywgc3R5bGUoeyBvcGFjaXR5OiAwIH0pKVxyXG4gICAgXSlcclxuICBdKSxcclxuICBcclxuICB0cmlnZ2VyKCd0YWdBbmltYXRpb24nLCBbXHJcbiAgICBzdGF0ZSgnKicsIHN0eWxlKHsgb3BhY2l0eTogMSwgdHJhbnNmb3JtOiAnc2NhbGUoMSknIH0pKSxcclxuICAgIHRyYW5zaXRpb24oJ3ZvaWQgPT4gKicsIFtcclxuICAgICAgc3R5bGUoeyBvcGFjaXR5OiAwLCB0cmFuc2Zvcm06ICdzY2FsZSgwKScgfSksXHJcbiAgICAgIGFuaW1hdGUoJzE1MG1zIGxpbmVhcicpXHJcbiAgICBdKSxcclxuICAgIHN0YXRlKCd2b2lkJywgc3R5bGUoeyBvcGFjaXR5OiAwLCB0cmFuc2Zvcm06ICdzY2FsZSgwKScgfSkpLFxyXG4gICAgdHJhbnNpdGlvbignKiA9PiB2b2lkJywgW1xyXG4gICAgICBzdHlsZSh7IG9wYWNpdHk6IDEsIHRyYW5zZm9ybTogJ3NjYWxlKDEpJyB9KSxcclxuICAgICAgYW5pbWF0ZSgnMTUwbXMgbGluZWFyJylcclxuICAgIF0pXSldLFxyXG4gIHRlbXBsYXRlVXJsOiBcIi4vc2VsZWN0LmNvbXBvbmVudC5odG1sXCJcclxufSlcclxuZXhwb3J0IGNsYXNzIHBnU2VsZWN0Q29tcG9uZW50XHJcbiAgaW1wbGVtZW50c1xyXG4gICAgT25Jbml0LFxyXG4gICAgQWZ0ZXJDb250ZW50SW5pdCxcclxuICAgIEFmdGVyQ29udGVudENoZWNrZWQsXHJcbiAgICBDb250cm9sVmFsdWVBY2Nlc3NvciB7XHJcbiAgcHJpdmF0ZSBfYWxsb3dDbGVhciA9IGZhbHNlO1xyXG4gIHByaXZhdGUgX2Rpc2FibGVkID0gZmFsc2U7XHJcbiAgcHJpdmF0ZSBfaXNUYWdzID0gZmFsc2U7XHJcbiAgcHJpdmF0ZSBfaXNNdWx0aXBsZSA9IGZhbHNlO1xyXG4gIHByaXZhdGUgX2tlZXBVbkxpc3RPcHRpb25zID0gZmFsc2U7XHJcbiAgcHJpdmF0ZSBfc2hvd1NlYXJjaCA9IGZhbHNlO1xyXG4gIF9lbDogSFRNTEVsZW1lbnQ7XHJcbiAgX2lzT3BlbiA9IGZhbHNlO1xyXG4gIF9wcmVmaXhDbHMgPSBcInBnLXNlbGVjdFwiO1xyXG4gIF9jbGFzc0xpc3Q6IHN0cmluZ1tdID0gW107XHJcbiAgX2Ryb3BEb3duQ2xhc3NNYXA6IGFueTtcclxuICBfZHJvcERvd25QcmVmaXhDbHMgPSBgJHt0aGlzLl9wcmVmaXhDbHN9LWRyb3Bkb3duYDtcclxuICBfc2VsZWN0aW9uQ2xhc3NNYXA6IGFueTtcclxuICBfc2VsZWN0aW9uUHJlZml4Q2xzID0gYCR7dGhpcy5fcHJlZml4Q2xzfS1zZWxlY3Rpb25gO1xyXG4gIF9zaXplOiBzdHJpbmc7XHJcbiAgX3ZhbHVlOiBzdHJpbmdbXSB8IHN0cmluZztcclxuICBfcGxhY2Vob2xkZXIgPSBcInBsYWNlaG9sZGVyXCI7XHJcbiAgX25vdEZvdW5kQ29udGVudCA9IFwiTm8gQ29udGVudFwiO1xyXG4gIF9zZWFyY2hUZXh0ID0gXCJcIjtcclxuICBfdHJpZ2dlcldpZHRoID0gMDtcclxuICBfc2VsZWN0ZWRPcHRpb246IHBnT3B0aW9uQ29tcG9uZW50O1xyXG4gIF9vcGVyYXRpbmdNdWx0aXBsZU9wdGlvbjogcGdPcHRpb25Db21wb25lbnQ7XHJcbiAgX3NlbGVjdGVkT3B0aW9uczogU2V0PHBnT3B0aW9uQ29tcG9uZW50PiA9IG5ldyBTZXQoKTtcclxuICBfb3B0aW9uczogcGdPcHRpb25Db21wb25lbnRbXSA9IFtdO1xyXG4gIF9jYWNoZU9wdGlvbnM6IHBnT3B0aW9uQ29tcG9uZW50W10gPSBbXTtcclxuICBfZmlsdGVyT3B0aW9uczogcGdPcHRpb25Db21wb25lbnRbXSA9IFtdO1xyXG4gIF90YWdzT3B0aW9uczogcGdPcHRpb25Db21wb25lbnRbXSA9IFtdO1xyXG4gIF9hY3RpdmVGaWx0ZXJPcHRpb246IHBnT3B0aW9uQ29tcG9uZW50O1xyXG4gIF9pc011bHRpSW5pdCA9IGZhbHNlO1xyXG4gIF9kcm9wRG93blBvc2l0aW9uOiBcInRvcFwiIHwgXCJjZW50ZXJcIiB8IFwiYm90dG9tXCIgPSBcImJvdHRvbVwiO1xyXG4gIF9jb21wb3NpbmcgPSBmYWxzZTtcclxuICBfbW9kZTogYW55O1xyXG4gIC8vIG5nTW9kZWwgQWNjZXNzXHJcbiAgb25DaGFuZ2U6ICh2YWx1ZTogc3RyaW5nIHwgc3RyaW5nW10pID0+IHZvaWQgPSAoKSA9PiBudWxsO1xyXG4gIG9uVG91Y2hlZDogKCkgPT4gdm9pZCA9ICgpID0+IG51bGw7XHJcbiAgQFZpZXdDaGlsZChcInNlYXJjaElucHV0XCIpIHNlYXJjaElucHV0RWxlbWVudFJlZjogYW55O1xyXG4gIEBWaWV3Q2hpbGQoXCJ0cmlnZ2VyXCIpIHRyaWdnZXI6IEVsZW1lbnRSZWY7XHJcbiAgQFZpZXdDaGlsZChcImRyb3Bkb3duVWxcIikgZHJvcGRvd25VbDogRWxlbWVudFJlZjtcclxuICBAT3V0cHV0KCkgU2VhcmNoQ2hhbmdlOiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgY2hhbmdlOiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgT3BlbkNoYW5nZTogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBTY3JvbGxUb0JvdHRvbTogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBJbnB1dCgpIEZpbHRlciA9IHRydWU7XHJcbiAgQElucHV0KCkgTWF4TXVsdGlwbGUgPSBJbmZpbml0eTtcclxuICBASW5wdXQoKSBGaXJzdERlZmF1bHQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBAVmlld0NoaWxkKENka0Nvbm5lY3RlZE92ZXJsYXkpIF9jZGtPdmVybGF5OiBDZGtDb25uZWN0ZWRPdmVybGF5O1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHNldCBBbGxvd0NsZWFyKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLl9hbGxvd0NsZWFyID0gdG9Cb29sZWFuKHZhbHVlKTtcclxuICB9XHJcblxyXG4gIGdldCBBbGxvd0NsZWFyKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2FsbG93Q2xlYXI7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIHNldCBLZWVwVW5MaXN0T3B0aW9ucyh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgdGhpcy5fa2VlcFVuTGlzdE9wdGlvbnMgPSB0b0Jvb2xlYW4odmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IEtlZXBVbkxpc3RPcHRpb25zKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2tlZXBVbkxpc3RPcHRpb25zO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KClcclxuICBzZXQgTW9kZSh2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLl9tb2RlID0gdmFsdWU7XHJcbiAgICBpZiAodGhpcy5fbW9kZSA9PT0gXCJtdWx0aXBsZVwiKSB7XHJcbiAgICAgIHRoaXMuTXVsdGlwbGUgPSB0cnVlO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLl9tb2RlID09PSBcInRhZ3NcIikge1xyXG4gICAgICB0aGlzLlRhZ3MgPSB0cnVlO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLl9tb2RlID09PSBcImNvbWJvYm94XCIpIHtcclxuICAgICAgdGhpcy5TaG93U2VhcmNoID0gdHJ1ZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IE11bHRpcGxlKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLl9pc011bHRpcGxlID0gdG9Cb29sZWFuKHZhbHVlKTtcclxuICAgIGlmICh0aGlzLl9pc011bHRpcGxlKSB7XHJcbiAgICAgIHRoaXMuU2hvd1NlYXJjaCA9IHRydWU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXQgTXVsdGlwbGUoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5faXNNdWx0aXBsZTtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IFBsYWNlSG9sZGVyKHZhbHVlOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuX3BsYWNlaG9sZGVyID0gdmFsdWU7XHJcbiAgfVxyXG5cclxuICBnZXQgUGxhY2VIb2xkZXIoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl9wbGFjZWhvbGRlcjtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IE5vdEZvdW5kQ29udGVudCh2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLl9ub3RGb3VuZENvbnRlbnQgPSB2YWx1ZTtcclxuICB9XHJcblxyXG4gIGdldCBOb3RGb3VuZENvbnRlbnQoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl9ub3RGb3VuZENvbnRlbnQ7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIHNldCBTaXplKHZhbHVlOiBzdHJpbmcpIHtcclxuICAgICAvLyBAdHMtaWdub3JlXHJcbiAgICB0aGlzLl9zaXplID0geyBsYXJnZTogXCJsZ1wiLCBzbWFsbDogXCJzbVwiIH1bdmFsdWVdO1xyXG4gICAgdGhpcy5zZXRDbGFzc01hcCgpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IFNpemUoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl9zaXplO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KClcclxuICBzZXQgU2hvd1NlYXJjaCh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgdGhpcy5fc2hvd1NlYXJjaCA9IHRvQm9vbGVhbih2YWx1ZSk7XHJcbiAgfVxyXG5cclxuICBnZXQgU2hvd1NlYXJjaCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLl9zaG93U2VhcmNoO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KClcclxuICBzZXQgVGFncyh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgY29uc3QgaXNUYWdzID0gdG9Cb29sZWFuKHZhbHVlKTtcclxuICAgIHRoaXMuX2lzVGFncyA9IGlzVGFncztcclxuICAgIHRoaXMuTXVsdGlwbGUgPSBpc1RhZ3M7XHJcbiAgfVxyXG5cclxuICBnZXQgVGFncygpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLl9pc1RhZ3M7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIHNldCBEaXNhYmxlZCh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgdGhpcy5fZGlzYWJsZWQgPSB0b0Jvb2xlYW4odmFsdWUpO1xyXG4gICAgdGhpcy5jbG9zZURyb3BEb3duKCk7XHJcbiAgICB0aGlzLnNldENsYXNzTWFwKCk7XHJcbiAgfVxyXG5cclxuICBnZXQgRGlzYWJsZWQoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5fZGlzYWJsZWQ7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIHNldCBPcGVuKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICBjb25zdCBpc09wZW4gPSB0b0Jvb2xlYW4odmFsdWUpO1xyXG4gICAgaWYgKHRoaXMuX2lzT3BlbiA9PT0gaXNPcGVuKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGlmIChpc09wZW4pIHtcclxuICAgICAgdGhpcy5zY3JvbGxUb0FjdGl2ZSgpO1xyXG4gICAgICB0aGlzLl9zZXRUcmlnZ2VyV2lkdGgoKTtcclxuICAgIH1cclxuICAgIHRoaXMuX2lzT3BlbiA9IGlzT3BlbjtcclxuICAgIHRoaXMuT3BlbkNoYW5nZS5lbWl0KHRoaXMuX2lzT3Blbik7XHJcbiAgICB0aGlzLnNldENsYXNzTWFwKCk7XHJcbiAgICBpZiAodGhpcy5faXNPcGVuKSB7XHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuY2hlY2tEcm9wRG93blNjcm9sbCgpO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldCBPcGVuKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2lzT3BlbjtcclxuICB9XHJcblxyXG4gIC8qKiBuZXcgLW9wdGlvbiBpbnNlcnQgb3IgbmV3IHRhZ3MgaW5zZXJ0ICovXHJcbiAgIC8vIEB0cy1pZ25vcmVcclxuICBhZGRPcHRpb24gPSBvcHRpb24gPT4ge1xyXG4gICAgdGhpcy5fb3B0aW9ucy5wdXNoKG9wdGlvbik7XHJcbiAgICBpZiAoIXRoaXMuX2lzVGFncykge1xyXG4gICAgICBpZiAob3B0aW9uLlZhbHVlKSB7XHJcbiAgICAgICAgdGhpcy51cGRhdGVTZWxlY3RlZE9wdGlvbih0aGlzLl92YWx1ZSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5mb3JjZVVwZGF0ZVNlbGVjdGVkT3B0aW9uKHRoaXMuX3ZhbHVlKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH07XHJcblxyXG4gIC8qKiAtb3B0aW9uIHJlbW92ZSBvciB0YWdzIHJlbW92ZSAqL1xyXG4gIHJlbW92ZU9wdGlvbihvcHRpb246IHBnT3B0aW9uQ29tcG9uZW50KTogdm9pZCB7XHJcbiAgICB0aGlzLl9vcHRpb25zLnNwbGljZSh0aGlzLl9vcHRpb25zLmluZGV4T2Yob3B0aW9uKSwgMSk7XHJcbiAgICBpZiAoIXRoaXMuX2lzVGFncykge1xyXG4gICAgICB0aGlzLmZvcmNlVXBkYXRlU2VsZWN0ZWRPcHRpb24odGhpcy5fdmFsdWUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqIGRyb3Bkb3duIHBvc2l0aW9uIGNoYW5nZWQgKi9cclxuICBvblBvc2l0aW9uQ2hhbmdlKHBvc2l0aW9uOiBDb25uZWN0ZWRPdmVybGF5UG9zaXRpb25DaGFuZ2UpOiB2b2lkIHtcclxuICAgIHRoaXMuX2Ryb3BEb3duUG9zaXRpb24gPSBwb3NpdGlvbi5jb25uZWN0aW9uUGFpci5vcmlnaW5ZO1xyXG4gIH1cclxuXHJcbiAgY29tcG9zaXRpb25TdGFydCgpOiB2b2lkIHtcclxuICAgIHRoaXMuX2NvbXBvc2luZyA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBjb21wb3NpdGlvbkVuZCgpOiB2b2lkIHtcclxuICAgIHRoaXMuX2NvbXBvc2luZyA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgLyoqIGNsZWFyIHNpbmdsZSBzZWxlY3RlZCBvcHRpb24gKi9cclxuICBjbGVhclNlbGVjdCgkZXZlbnQ/OiBNb3VzZUV2ZW50KTogdm9pZCB7XHJcbiAgICBpZiAoJGV2ZW50KSB7XHJcbiAgICAgICRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICB9IC8vIEB0cy1pZ25vcmVcclxuICAgIHRoaXMuX3NlbGVjdGVkT3B0aW9uID0gbnVsbDsgLy8gQHRzLWlnbm9yZVxyXG4gICAgdGhpcy5WYWx1ZSA9IG51bGw7IC8vIEB0cy1pZ25vcmVcclxuICAgIHRoaXMub25DaGFuZ2UobnVsbCk7XHJcbiAgfVxyXG5cclxuICAvKiogY2xpY2sgZHJvcGRvd24gb3B0aW9uIGJ5IHVzZXIgKi9cclxuICBjbGlja09wdGlvbihvcHRpb246IHBnT3B0aW9uQ29tcG9uZW50LCAkZXZlbnQ/OiBNb3VzZUV2ZW50KTogdm9pZCB7XHJcbiAgICBpZiAoIW9wdGlvbikge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLmNob29zZU9wdGlvbihvcHRpb24sIHRydWUsICRldmVudCk7XHJcbiAgICB0aGlzLmNsZWFyU2VhcmNoVGV4dCgpO1xyXG4gICAgaWYgKCF0aGlzLl9pc011bHRpcGxlKSB7XHJcbiAgICAgIHRoaXMuT3BlbiA9IGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqIGNob29zZSBvcHRpb24gKi9cclxuICBjaG9vc2VPcHRpb24oXHJcbiAgICBvcHRpb246IHBnT3B0aW9uQ29tcG9uZW50LFxyXG4gICAgaXNVc2VyQ2xpY2s6IGJvb2xlYW4gPSBmYWxzZSxcclxuICAgICRldmVudD86IE1vdXNlRXZlbnRcclxuICApOiB2b2lkIHtcclxuICAgIGlmICgkZXZlbnQpIHtcclxuICAgICAgJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIH1cclxuICAgIHRoaXMuX2FjdGl2ZUZpbHRlck9wdGlvbiA9IG9wdGlvbjtcclxuICAgIGlmIChvcHRpb24gJiYgIW9wdGlvbi5EaXNhYmxlZCkge1xyXG4gICAgICBpZiAoIXRoaXMuTXVsdGlwbGUpIHtcclxuICAgICAgICB0aGlzLl9zZWxlY3RlZE9wdGlvbiA9IG9wdGlvbjtcclxuICAgICAgICB0aGlzLl92YWx1ZSA9IG9wdGlvbi5WYWx1ZTtcclxuICAgICAgICBpZiAoaXNVc2VyQ2xpY2spIHtcclxuICAgICAgICAgIHRoaXMuY2hhbmdlLm5leHQodGhpcy5fdmFsdWUpO1xyXG4gICAgICAgICAgdGhpcy5vbkNoYW5nZShvcHRpb24uVmFsdWUpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBpZiAoaXNVc2VyQ2xpY2spIHtcclxuICAgICAgICAgIHRoaXMuaXNJblNldCh0aGlzLl9zZWxlY3RlZE9wdGlvbnMsIG9wdGlvbilcclxuICAgICAgICAgICAgPyB0aGlzLnVuU2VsZWN0TXVsdGlwbGVPcHRpb24ob3B0aW9uKVxyXG4gICAgICAgICAgICA6IHRoaXMuc2VsZWN0TXVsdGlwbGVPcHRpb24ob3B0aW9uKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHVwZGF0ZVdpZHRoKGVsZW1lbnQ6IEhUTUxJbnB1dEVsZW1lbnQsIHRleHQ6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgaWYgKHRleHQpIHtcclxuICAgICAgLyoqIHdhaXQgZm9yIHNjcm9sbCB3aWR0aCBjaGFuZ2UgKi8gLy8gQHRzLWlnbm9yZVxyXG4gICAgICBzZXRUaW1lb3V0KF8gPT4ge1xyXG4gICAgICAgIHRoaXMuX3JlbmRlcmVyLnNldFN0eWxlKGVsZW1lbnQsIFwid2lkdGhcIiwgYCR7ZWxlbWVudC5zY3JvbGxXaWR0aH1weGApO1xyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuX3JlbmRlcmVyLnJlbW92ZVN0eWxlKGVsZW1lbnQsIFwid2lkdGhcIik7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKiogZGV0ZXJtaW5lIGlmIG9wdGlvbiBpbiBzZXQgKi9cclxuICBpc0luU2V0KFxyXG4gICAgc2V0OiBTZXQ8cGdPcHRpb25Db21wb25lbnQ+LFxyXG4gICAgb3B0aW9uOiBwZ09wdGlvbkNvbXBvbmVudFxyXG4gICk6IHBnT3B0aW9uQ29tcG9uZW50IHsgLy8gQHRzLWlnbm9yZVxyXG4gICAgcmV0dXJuIChBcnJheS5mcm9tKHNldCkgYXMgcGdPcHRpb25Db21wb25lbnRbXSkuZmluZChcclxuICAgICAgKGRhdGE6IHBnT3B0aW9uQ29tcG9uZW50KSA9PiBkYXRhLlZhbHVlID09PSBvcHRpb24uVmFsdWVcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICAvKiogY2FuY2VsIHNlbGVjdCBtdWx0aXBsZSBvcHRpb24gKi8gLy8gQHRzLWlnbm9yZVxyXG4gIHVuU2VsZWN0TXVsdGlwbGVPcHRpb24gPSAob3B0aW9uLCAkZXZlbnQ/LCBlbWl0Q2hhbmdlID0gdHJ1ZSkgPT4ge1xyXG4gICAgdGhpcy5fb3BlcmF0aW5nTXVsdGlwbGVPcHRpb24gPSBvcHRpb247XHJcbiAgICB0aGlzLl9zZWxlY3RlZE9wdGlvbnMuZGVsZXRlKG9wdGlvbik7XHJcbiAgICBpZiAoZW1pdENoYW5nZSkge1xyXG4gICAgICB0aGlzLmVtaXRNdWx0aXBsZU9wdGlvbnMoKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyDlr7lUYWfov5vooYznibnmrorlpITnkIZcclxuICAgIGlmIChcclxuICAgICAgdGhpcy5faXNUYWdzICYmXHJcbiAgICAgIHRoaXMuX29wdGlvbnMuaW5kZXhPZihvcHRpb24pICE9PSAtMSAmJlxyXG4gICAgICB0aGlzLl90YWdzT3B0aW9ucy5pbmRleE9mKG9wdGlvbikgIT09IC0xXHJcbiAgICApIHtcclxuICAgICAgdGhpcy5yZW1vdmVPcHRpb24ob3B0aW9uKTtcclxuICAgICAgdGhpcy5fdGFnc09wdGlvbnMuc3BsaWNlKHRoaXMuX3RhZ3NPcHRpb25zLmluZGV4T2Yob3B0aW9uKSwgMSk7XHJcbiAgICB9XHJcbiAgICBpZiAoJGV2ZW50KSB7XHJcbiAgICAgICRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICB9XHJcbiAgfTtcclxuXHJcbiAgLyoqIHNlbGVjdCBtdWx0aXBsZSBvcHRpb24gKi9cclxuICBzZWxlY3RNdWx0aXBsZU9wdGlvbihvcHRpb246IHBnT3B0aW9uQ29tcG9uZW50LCAkZXZlbnQ/OiBNb3VzZUV2ZW50KTogdm9pZCB7XHJcbiAgICAvKiogaWYgdGFncyBkbyBwdXNoIHRvIHRhZyBvcHRpb24gKi9cclxuICAgIGlmIChcclxuICAgICAgdGhpcy5faXNUYWdzICYmXHJcbiAgICAgIHRoaXMuX29wdGlvbnMuaW5kZXhPZihvcHRpb24pID09PSAtMSAmJlxyXG4gICAgICB0aGlzLl90YWdzT3B0aW9ucy5pbmRleE9mKG9wdGlvbikgPT09IC0xXHJcbiAgICApIHtcclxuICAgICAgdGhpcy5hZGRPcHRpb24ob3B0aW9uKTtcclxuICAgICAgdGhpcy5fdGFnc09wdGlvbnMucHVzaChvcHRpb24pO1xyXG4gICAgfVxyXG4gICAgdGhpcy5fb3BlcmF0aW5nTXVsdGlwbGVPcHRpb24gPSBvcHRpb247XHJcbiAgICBpZiAodGhpcy5fc2VsZWN0ZWRPcHRpb25zLnNpemUgPCB0aGlzLk1heE11bHRpcGxlKSB7XHJcbiAgICAgIHRoaXMuX3NlbGVjdGVkT3B0aW9ucy5hZGQob3B0aW9uKTtcclxuICAgIH1cclxuICAgIHRoaXMuZW1pdE11bHRpcGxlT3B0aW9ucygpO1xyXG5cclxuICAgIGlmICgkZXZlbnQpIHtcclxuICAgICAgJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKiBlbWl0IG11bHRpcGxlIG9wdGlvbnMgKi9cclxuICBlbWl0TXVsdGlwbGVPcHRpb25zKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuX2lzTXVsdGlJbml0KSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGNvbnN0IGFycmF5T3B0aW9ucyA9IEFycmF5LmZyb20odGhpcy5fc2VsZWN0ZWRPcHRpb25zKTtcclxuICAgIHRoaXMuX3ZhbHVlID0gYXJyYXlPcHRpb25zLm1hcChpdGVtID0+IGl0ZW0uVmFsdWUpO1xyXG4gICAgdGhpcy5vbkNoYW5nZSh0aGlzLl92YWx1ZSk7XHJcbiAgfVxyXG5cclxuICAvKiogdXBkYXRlIHNlbGVjdGVkIG9wdGlvbiB3aGVuIGFkZCByZW1vdmUgb3B0aW9uIGV0YyAqL1xyXG4gIHVwZGF0ZVNlbGVjdGVkT3B0aW9uKFxyXG4gICAgY3VycmVudE1vZGVsVmFsdWU6IHN0cmluZyB8IHN0cmluZ1tdLFxyXG4gICAgdHJpZ2dlckJ5TmdNb2RlbDogYm9vbGVhbiA9IGZhbHNlXHJcbiAgKTogdm9pZCB7XHJcbiAgICBpZiAoY3VycmVudE1vZGVsVmFsdWUgPT0gbnVsbCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5NdWx0aXBsZSkge1xyXG4gICAgICBjb25zdCBzZWxlY3RlZE9wdGlvbnMgPSB0aGlzLl9vcHRpb25zLmZpbHRlcihpdGVtID0+IHtcclxuICAgICAgICByZXR1cm4gaXRlbSAhPSBudWxsICYmIGN1cnJlbnRNb2RlbFZhbHVlLmluZGV4T2YoaXRlbS5WYWx1ZSkgIT09IC0xO1xyXG4gICAgICB9KTtcclxuICAgICAgaWYgKCh0aGlzLktlZXBVbkxpc3RPcHRpb25zIHx8IHRoaXMuVGFncykgJiYgIXRyaWdnZXJCeU5nTW9kZWwpIHtcclxuICAgICAgICBjb25zdCBfc2VsZWN0ZWRPcHRpb25zID0gQXJyYXkuZnJvbSh0aGlzLl9zZWxlY3RlZE9wdGlvbnMpO1xyXG4gICAgICAgIHNlbGVjdGVkT3B0aW9ucy5mb3JFYWNoKG9wdGlvbiA9PiB7XHJcbiAgICAgICAgICBjb25zdCBfZXhpc3QgPSBfc2VsZWN0ZWRPcHRpb25zLnNvbWUoXHJcbiAgICAgICAgICAgIGl0ZW0gPT4gaXRlbS5fdmFsdWUgPT09IG9wdGlvbi5fdmFsdWVcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgICBpZiAoIV9leGlzdCkge1xyXG4gICAgICAgICAgICB0aGlzLl9zZWxlY3RlZE9wdGlvbnMuYWRkKG9wdGlvbik7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5fc2VsZWN0ZWRPcHRpb25zID0gbmV3IFNldCgpO1xyXG4gICAgICAgIHNlbGVjdGVkT3B0aW9ucy5mb3JFYWNoKG9wdGlvbiA9PiB7XHJcbiAgICAgICAgICB0aGlzLl9zZWxlY3RlZE9wdGlvbnMuYWRkKG9wdGlvbik7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnN0IHNlbGVjdGVkT3B0aW9uID0gdGhpcy5fb3B0aW9ucy5maWx0ZXIoaXRlbSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIGl0ZW0gIT0gbnVsbCAmJiBpdGVtLlZhbHVlID09PSBjdXJyZW50TW9kZWxWYWx1ZTtcclxuICAgICAgfSk7XHJcbiAgICAgIHRoaXMuY2hvb3NlT3B0aW9uKHNlbGVjdGVkT3B0aW9uWzBdKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGZvcmNlVXBkYXRlU2VsZWN0ZWRPcHRpb24odmFsdWU6IHN0cmluZyB8IHN0cmluZ1tdKTogdm9pZCB7XHJcbiAgICAvKiogdHJpZ2dlciBkaXJ0eSBjaGVjayAqLyAvLyBAdHMtaWdub3JlXHJcbiAgICBzZXRUaW1lb3V0KF8gPT4ge1xyXG4gICAgICB0aGlzLnVwZGF0ZVNlbGVjdGVkT3B0aW9uKHZhbHVlKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0IFZhbHVlKCk6IHN0cmluZyB8IHN0cmluZ1tdIHtcclxuICAgIHJldHVybiB0aGlzLl92YWx1ZTtcclxuICB9XHJcblxyXG4gIHNldCBWYWx1ZSh2YWx1ZTogc3RyaW5nIHwgc3RyaW5nW10pIHtcclxuICAgIHRoaXMuX3VwZGF0ZVZhbHVlKHZhbHVlKTtcclxuICB9XHJcblxyXG4gIGNsZWFyQWxsU2VsZWN0ZWRPcHRpb24oZW1pdENoYW5nZTogYm9vbGVhbiA9IHRydWUpOiB2b2lkIHtcclxuICAgIHRoaXMuX3NlbGVjdGVkT3B0aW9ucy5mb3JFYWNoKGl0ZW0gPT4ge1xyXG4gICAgICB0aGlzLnVuU2VsZWN0TXVsdGlwbGVPcHRpb24oaXRlbSwgbnVsbCwgZW1pdENoYW5nZSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGhhbmRsZUtleUVudGVyRXZlbnQoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcclxuICAgIC8qKiB3aGVuIGNvbXBvc2luZyBlbmQgKi9cclxuICAgIGlmICghdGhpcy5fY29tcG9zaW5nICYmIHRoaXMuX2lzT3Blbikge1xyXG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgICAgdGhpcy51cGRhdGVGaWx0ZXJPcHRpb24oZmFsc2UpO1xyXG4gICAgICB0aGlzLmNsaWNrT3B0aW9uKHRoaXMuX2FjdGl2ZUZpbHRlck9wdGlvbik7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBoYW5kbGVLZXlCYWNrc3BhY2VFdmVudChldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLl9zZWFyY2hUZXh0ICYmICF0aGlzLl9jb21wb3NpbmcgJiYgdGhpcy5faXNNdWx0aXBsZSkge1xyXG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICBjb25zdCBsYXN0T3B0aW9uID0gQXJyYXkuZnJvbSh0aGlzLl9zZWxlY3RlZE9wdGlvbnMpLnBvcCgpO1xyXG4gICAgICB0aGlzLnVuU2VsZWN0TXVsdGlwbGVPcHRpb24obGFzdE9wdGlvbik7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBoYW5kbGVLZXlEb3duRXZlbnQoJGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5faXNPcGVuKSB7XHJcbiAgICAgICRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICAgIHRoaXMuX2FjdGl2ZUZpbHRlck9wdGlvbiA9IHRoaXMubmV4dE9wdGlvbihcclxuICAgICAgICB0aGlzLl9hY3RpdmVGaWx0ZXJPcHRpb24sXHJcbiAgICAgICAgdGhpcy5fZmlsdGVyT3B0aW9ucy5maWx0ZXIodyA9PiAhdy5EaXNhYmxlZClcclxuICAgICAgKTtcclxuICAgICAgdGhpcy5zY3JvbGxUb0FjdGl2ZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaGFuZGxlS2V5VXBFdmVudCgkZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLl9pc09wZW4pIHtcclxuICAgICAgJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgICAgdGhpcy5fYWN0aXZlRmlsdGVyT3B0aW9uID0gdGhpcy5wcmVPcHRpb24oXHJcbiAgICAgICAgdGhpcy5fYWN0aXZlRmlsdGVyT3B0aW9uLFxyXG4gICAgICAgIHRoaXMuX2ZpbHRlck9wdGlvbnMuZmlsdGVyKHcgPT4gIXcuRGlzYWJsZWQpXHJcbiAgICAgICk7XHJcbiAgICAgIHRoaXMuc2Nyb2xsVG9BY3RpdmUoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByZU9wdGlvbihcclxuICAgIG9wdGlvbjogcGdPcHRpb25Db21wb25lbnQsXHJcbiAgICBvcHRpb25zOiBwZ09wdGlvbkNvbXBvbmVudFtdXHJcbiAgKTogcGdPcHRpb25Db21wb25lbnQge1xyXG4gICAgcmV0dXJuIG9wdGlvbnNbb3B0aW9ucy5pbmRleE9mKG9wdGlvbikgLSAxXSB8fCBvcHRpb25zW29wdGlvbnMubGVuZ3RoIC0gMV07XHJcbiAgfVxyXG5cclxuICBuZXh0T3B0aW9uKFxyXG4gICAgb3B0aW9uOiBwZ09wdGlvbkNvbXBvbmVudCxcclxuICAgIG9wdGlvbnM6IHBnT3B0aW9uQ29tcG9uZW50W11cclxuICApOiBwZ09wdGlvbkNvbXBvbmVudCB7XHJcbiAgICByZXR1cm4gb3B0aW9uc1tvcHRpb25zLmluZGV4T2Yob3B0aW9uKSArIDFdIHx8IG9wdGlvbnNbMF07XHJcbiAgfVxyXG5cclxuICBjbGVhclNlYXJjaFRleHQoKTogdm9pZCB7XHJcbiAgICB0aGlzLl9zZWFyY2hUZXh0ID0gXCJcIjtcclxuICAgIHRoaXMudXBkYXRlRmlsdGVyT3B0aW9uKCk7XHJcbiAgfVxyXG5cclxuICB1cGRhdGVGaWx0ZXJPcHRpb24odXBkYXRlQWN0aXZlRmlsdGVyOiBib29sZWFuID0gdHJ1ZSk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuRmlsdGVyKSB7XHJcbiAgICAgIHRoaXMuX2ZpbHRlck9wdGlvbnMgPSBuZXcgT3B0aW9uUGlwZSgpLnRyYW5zZm9ybSh0aGlzLl9vcHRpb25zLCB7XHJcbiAgICAgICAgc2VhcmNoVGV4dDogdGhpcy5fc2VhcmNoVGV4dCxcclxuICAgICAgICB0YWdzOiB0aGlzLl9pc1RhZ3MsXHJcbiAgICAgICAgbm90Rm91bmRDb250ZW50OiB0aGlzLl9pc1RhZ3NcclxuICAgICAgICAgID8gdGhpcy5fc2VhcmNoVGV4dFxyXG4gICAgICAgICAgOiB0aGlzLl9ub3RGb3VuZENvbnRlbnQsXHJcbiAgICAgICAgZGlzYWJsZWQ6ICF0aGlzLl9pc1RhZ3MsXHJcbiAgICAgICAgdmFsdWU6IHRoaXMuX2lzVGFncyA/IHRoaXMuX3NlYXJjaFRleHQgOiBcImRpc2FibGVkXCJcclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLl9maWx0ZXJPcHRpb25zID0gdGhpcy5fb3B0aW9ucztcclxuICAgIH1cclxuXHJcbiAgICAvKiogVE9ETzogY2F1c2UgcHJlICYgbmV4dCBrZXkgc2VsZWN0aW9uIG5vdCB3b3JrICovXHJcbiAgICBpZiAodXBkYXRlQWN0aXZlRmlsdGVyICYmICF0aGlzLl9zZWxlY3RlZE9wdGlvbikge1xyXG4gICAgICB0aGlzLl9hY3RpdmVGaWx0ZXJPcHRpb24gPSB0aGlzLl9maWx0ZXJPcHRpb25zWzBdO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25TZWFyY2hDaGFuZ2Uoc2VhcmNoVmFsdWU6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdGhpcy5TZWFyY2hDaGFuZ2UuZW1pdChzZWFyY2hWYWx1ZSk7XHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKFwiY2xpY2tcIiwgW1wiJGV2ZW50XCJdKVxyXG4gIG9uQ2xpY2soZTogTW91c2VFdmVudCk6IHZvaWQge1xyXG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgaWYgKCF0aGlzLl9kaXNhYmxlZCkge1xyXG4gICAgICB0aGlzLk9wZW4gPSAhdGhpcy5PcGVuO1xyXG4gICAgICBpZiAodGhpcy5TaG93U2VhcmNoKSB7XHJcbiAgICAgICAgLyoqIHdhaXQgZm9yIHNlYXJjaCBkaXNwbGF5ICovIC8vIEB0cy1pZ25vcmVcclxuICAgICAgICBzZXRUaW1lb3V0KF8gPT4ge1xyXG4gICAgICAgICAgdGhpcy5zZWFyY2hJbnB1dEVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5mb2N1cygpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKFwia2V5ZG93blwiLCBbXCIkZXZlbnRcIl0pXHJcbiAgb25LZXlEb3duKGU6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcclxuICAgIGNvbnN0IGtleUNvZGUgPSBlLmtleUNvZGU7XHJcbiAgICBpZiAoa2V5Q29kZSA9PT0gVEFCICYmIHRoaXMuT3Blbikge1xyXG4gICAgICB0aGlzLk9wZW4gPSBmYWxzZTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgaWYgKChrZXlDb2RlICE9PSBET1dOX0FSUk9XICYmIGtleUNvZGUgIT09IEVOVEVSKSB8fCB0aGlzLk9wZW4pIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgaWYgKCF0aGlzLl9kaXNhYmxlZCkge1xyXG4gICAgICB0aGlzLk9wZW4gPSB0cnVlO1xyXG4gICAgICBpZiAodGhpcy5TaG93U2VhcmNoKSB7XHJcbiAgICAgICAgLyoqIHdhaXQgZm9yIHNlYXJjaCBkaXNwbGF5ICovIC8vIEB0cy1pZ25vcmVcclxuICAgICAgICBzZXRUaW1lb3V0KF8gPT4ge1xyXG4gICAgICAgICAgdGhpcy5zZWFyY2hJbnB1dEVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5mb2N1cygpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjbG9zZURyb3BEb3duKCk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLk9wZW4pIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5vblRvdWNoZWQoKTtcclxuICAgIGlmICh0aGlzLk11bHRpcGxlKSB7XHJcbiAgICAgIHRoaXMuX3JlbmRlcmVyLnJlbW92ZVN0eWxlKFxyXG4gICAgICAgIHRoaXMuc2VhcmNoSW5wdXRFbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsXHJcbiAgICAgICAgXCJ3aWR0aFwiXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmNsZWFyU2VhcmNoVGV4dCgpO1xyXG4gICAgdGhpcy5PcGVuID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBzZXRDbGFzc01hcCgpOiB2b2lkIHtcclxuICAgIHRoaXMuX2NsYXNzTGlzdC5mb3JFYWNoKF9jbGFzc05hbWUgPT4ge1xyXG4gICAgICB0aGlzLl9yZW5kZXJlci5yZW1vdmVDbGFzcyh0aGlzLl9lbCwgX2NsYXNzTmFtZSk7XHJcbiAgICB9KTsgLy8gQHRzLWlnbm9yZVxyXG4gICAgdGhpcy5fY2xhc3NMaXN0ID0gW1xyXG4gICAgICB0aGlzLl9wcmVmaXhDbHMsXHJcbiAgICAgIHRoaXMuX21vZGUgPT09IFwiY29tYm9ib3hcIiAmJiBgJHt0aGlzLl9wcmVmaXhDbHN9LWNvbWJvYm94YCxcclxuICAgICAgIXRoaXMuX2Rpc2FibGVkICYmIGAke3RoaXMuX3ByZWZpeENsc30tZW5hYmxlZGAsXHJcbiAgICAgIHRoaXMuX2Rpc2FibGVkICYmIGAke3RoaXMuX3ByZWZpeENsc30tZGlzYWJsZWRgLFxyXG4gICAgICB0aGlzLl9pc09wZW4gJiYgYCR7dGhpcy5fcHJlZml4Q2xzfS1vcGVuYCxcclxuICAgICAgdGhpcy5fc2hvd1NlYXJjaCAmJiBgJHt0aGlzLl9wcmVmaXhDbHN9LXNob3ctc2VhcmNoYCxcclxuICAgICAgdGhpcy5fc2l6ZSAmJiBgJHt0aGlzLl9wcmVmaXhDbHN9LSR7dGhpcy5fc2l6ZX1gXHJcbiAgICBdLmZpbHRlcihpdGVtID0+IHtcclxuICAgICAgcmV0dXJuICEhaXRlbTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5fY2xhc3NMaXN0LmZvckVhY2goX2NsYXNzTmFtZSA9PiB7XHJcbiAgICAgIHRoaXMuX3JlbmRlcmVyLmFkZENsYXNzKHRoaXMuX2VsLCBfY2xhc3NOYW1lKTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5fc2VsZWN0aW9uQ2xhc3NNYXAgPSB7XHJcbiAgICAgIFt0aGlzLl9zZWxlY3Rpb25QcmVmaXhDbHNdOiB0cnVlLFxyXG4gICAgICBbYCR7dGhpcy5fc2VsZWN0aW9uUHJlZml4Q2xzfS0tc2luZ2xlYF06ICF0aGlzLk11bHRpcGxlLFxyXG4gICAgICBbYCR7dGhpcy5fc2VsZWN0aW9uUHJlZml4Q2xzfS0tbXVsdGlwbGVgXTogdGhpcy5NdWx0aXBsZVxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIHNldERyb3BEb3duQ2xhc3NNYXAoKTogdm9pZCB7XHJcbiAgICB0aGlzLl9kcm9wRG93bkNsYXNzTWFwID0ge1xyXG4gICAgICBbdGhpcy5fZHJvcERvd25QcmVmaXhDbHNdOiB0cnVlLFxyXG4gICAgICBbXCJjb21wb25lbnQtc2VsZWN0XCJdOiB0aGlzLl9tb2RlID09PSBcImNvbWJvYm94XCIsXHJcbiAgICAgIFtgJHt0aGlzLl9kcm9wRG93blByZWZpeENsc30tLXNpbmdsZWBdOiAhdGhpcy5NdWx0aXBsZSxcclxuICAgICAgW2Ake3RoaXMuX2Ryb3BEb3duUHJlZml4Q2xzfS0tbXVsdGlwbGVgXTogdGhpcy5NdWx0aXBsZSxcclxuICAgICAgW2Ake3RoaXMuX2Ryb3BEb3duUHJlZml4Q2xzfS1wbGFjZW1lbnQtYm90dG9tTGVmdGBdOlxyXG4gICAgICAgIHRoaXMuX2Ryb3BEb3duUG9zaXRpb24gPT09IFwiYm90dG9tXCIsXHJcbiAgICAgIFtgJHt0aGlzLl9kcm9wRG93blByZWZpeENsc30tcGxhY2VtZW50LXRvcExlZnRgXTpcclxuICAgICAgICB0aGlzLl9kcm9wRG93blBvc2l0aW9uID09PSBcInRvcFwiXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgc2Nyb2xsVG9BY3RpdmUoKTogdm9pZCB7XHJcbiAgICAvKiogd2FpdCBmb3IgZHJvcGRvd24gZGlzcGxheSAqLyAvLyBAdHMtaWdub3JlXHJcbiAgICBzZXRUaW1lb3V0KF8gPT4ge1xyXG4gICAgICBpZiAodGhpcy5fYWN0aXZlRmlsdGVyT3B0aW9uICYmIHRoaXMuX2FjdGl2ZUZpbHRlck9wdGlvbi5WYWx1ZSkge1xyXG4gICAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5fZmlsdGVyT3B0aW9ucy5maW5kSW5kZXgoXHJcbiAgICAgICAgICBvcHRpb24gPT4gb3B0aW9uLlZhbHVlID09PSB0aGlzLl9hY3RpdmVGaWx0ZXJPcHRpb24uVmFsdWVcclxuICAgICAgICApO1xyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICBjb25zdCBzY3JvbGxQYW5lID0gdGhpcy5kcm9wZG93blVsLm5hdGl2ZUVsZW1lbnQuY2hpbGRyZW5bXHJcbiAgICAgICAgICAgIGluZGV4XHJcbiAgICAgICAgICBdIGFzIEhUTUxMSUVsZW1lbnQ7XHJcbiAgICAgICAgICAvLyBUT0RPOiBzY3JvbGxJbnRvVmlld0lmTmVlZGVkIGlzIG5vdCBhIHN0YW5kYXJkIEFQSSwgd2h5IGRvaW5nIHNvP1xyXG4gICAgICAgICAgLyogdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWFueSAqL1xyXG4gICAgICAgICAgKHNjcm9sbFBhbmUgYXMgYW55KS5zY3JvbGxJbnRvVmlld0lmTmVlZGVkKGZhbHNlKTtcclxuICAgICAgICB9IGNhdGNoIChlKSB7fVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGZsdXNoQ29tcG9uZW50U3RhdGUoKTogdm9pZCB7XHJcbiAgICB0aGlzLnVwZGF0ZUZpbHRlck9wdGlvbigpO1xyXG4gICAgaWYgKCF0aGlzLk11bHRpcGxlKSB7XHJcbiAgICAgIHRoaXMudXBkYXRlU2VsZWN0ZWRPcHRpb24odGhpcy5fdmFsdWUpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKHRoaXMuX3ZhbHVlKSB7XHJcbiAgICAgICAgdGhpcy51cGRhdGVTZWxlY3RlZE9wdGlvbih0aGlzLl92YWx1ZSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIF9zZXRUcmlnZ2VyV2lkdGgoKTogdm9pZCB7XHJcbiAgICB0aGlzLl90cmlnZ2VyV2lkdGggPSB0aGlzLl9nZXRUcmlnZ2VyUmVjdCgpLndpZHRoO1xyXG4gICAgLyoqIHNob3VsZCByZW1vdmUgYWZ0ZXIgYWZ0ZXIgaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvbWF0ZXJpYWwyL3B1bGwvODc2NSBtZXJnZWQgKiovXHJcbiAgICBpZiAodGhpcy5fY2RrT3ZlcmxheSAmJiB0aGlzLl9jZGtPdmVybGF5Lm92ZXJsYXlSZWYpIHtcclxuICAgICAgdGhpcy5fY2RrT3ZlcmxheS5vdmVybGF5UmVmLnVwZGF0ZVNpemUoe1xyXG4gICAgICAgIHdpZHRoOiB0aGlzLl90cmlnZ2VyV2lkdGhcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBfZ2V0VHJpZ2dlclJlY3QoKTogQ2xpZW50UmVjdCB7XHJcbiAgICByZXR1cm4gdGhpcy50cmlnZ2VyLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XHJcbiAgfVxyXG5cclxuICB3cml0ZVZhbHVlKHZhbHVlOiBzdHJpbmcgfCBzdHJpbmdbXSk6IHZvaWQge1xyXG4gICAgdGhpcy5fdXBkYXRlVmFsdWUodmFsdWUsIGZhbHNlKTtcclxuICB9XHJcblxyXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46ICh2YWx1ZTogc3RyaW5nIHwgc3RyaW5nW10pID0+IHZvaWQpOiB2b2lkIHtcclxuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcclxuICB9XHJcblxyXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiAoKSA9PiB2b2lkKTogdm9pZCB7XHJcbiAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xyXG4gIH1cclxuXHJcbiAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICB0aGlzLkRpc2FibGVkID0gaXNEaXNhYmxlZDtcclxuICB9XHJcblxyXG4gIGRyb3BEb3duU2Nyb2xsKHVsOiBIVE1MVUxpc3RFbGVtZW50KTogdm9pZCB7XHJcbiAgICBpZiAodWwgJiYgdWwuc2Nyb2xsSGVpZ2h0IC0gdWwuc2Nyb2xsVG9wID09PSB1bC5jbGllbnRIZWlnaHQpIHtcclxuICAgICAgdGhpcy5TY3JvbGxUb0JvdHRvbS5lbWl0KHRydWUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY2hlY2tEcm9wRG93blNjcm9sbCgpOiB2b2lkIHtcclxuICAgIGlmIChcclxuICAgICAgdGhpcy5kcm9wZG93blVsICYmXHJcbiAgICAgIHRoaXMuZHJvcGRvd25VbC5uYXRpdmVFbGVtZW50LnNjcm9sbEhlaWdodCA9PT1cclxuICAgICAgICB0aGlzLmRyb3Bkb3duVWwubmF0aXZlRWxlbWVudC5jbGllbnRIZWlnaHRcclxuICAgICkge1xyXG4gICAgICB0aGlzLlNjcm9sbFRvQm90dG9tLmVtaXQodHJ1ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXHJcbiAgICBwcml2YXRlIF9yZW5kZXJlcjogUmVuZGVyZXIyLFxyXG4gICAgcHJpdmF0ZSBjRFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWZcclxuICApIHtcclxuICAgIHRoaXMuX2VsID0gdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuX3ZhbHVlICE9IG51bGwpIHtcclxuICAgICAgdGhpcy5mbHVzaENvbXBvbmVudFN0YXRlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMudXBkYXRlRmlsdGVyT3B0aW9uKCk7XHJcbiAgICB0aGlzLnNldENsYXNzTWFwKCk7XHJcbiAgICB0aGlzLnNldERyb3BEb3duQ2xhc3NNYXAoKTtcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJDb250ZW50Q2hlY2tlZCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLl9jYWNoZU9wdGlvbnMgIT09IHRoaXMuX29wdGlvbnMpIHtcclxuICAgICAgLyoqIHVwZGF0ZSBmaWx0ZXIgb3B0aW9uIGFmdGVyIGV2ZXJ5IGNvbnRlbnQgY2hlY2sgY3ljbGUgKi9cclxuICAgICAgdGhpcy51cGRhdGVGaWx0ZXJPcHRpb24oKTtcclxuICAgICAgdGhpcy5fY2FjaGVPcHRpb25zID0gdGhpcy5fb3B0aW9ucztcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMudXBkYXRlRmlsdGVyT3B0aW9uKGZhbHNlKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5GaXJzdERlZmF1bHQpIHtcclxuICAgICAgaWYgKCF0aGlzLl92YWx1ZSAmJiB0aGlzLl9vcHRpb25zKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuX29wdGlvbnNbMF0gIT09IHVuZGVmaW5lZCAmJiB0aGlzLl9vcHRpb25zWzBdLlZhbHVlKSB7XHJcbiAgICAgICAgICB0aGlzLmNob29zZU9wdGlvbih0aGlzLl9vcHRpb25zWzBdLCBmYWxzZSk7XHJcbiAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5vbkNoYW5nZSh0aGlzLl9vcHRpb25zWzBdLlZhbHVlKTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfdXBkYXRlVmFsdWUoXHJcbiAgICB2YWx1ZTogc3RyaW5nW10gfCBzdHJpbmcsXHJcbiAgICBlbWl0Q2hhbmdlOiBib29sZWFuID0gdHJ1ZVxyXG4gICk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuX3ZhbHVlID09PSB2YWx1ZSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBpZiAodmFsdWUgPT0gbnVsbCAmJiB0aGlzLk11bHRpcGxlKSB7XHJcbiAgICAgIHRoaXMuX3ZhbHVlID0gW107XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLl92YWx1ZSA9IHZhbHVlO1xyXG4gICAgfVxyXG4gICAgaWYgKCF0aGlzLk11bHRpcGxlKSB7XHJcbiAgICAgIGlmICh2YWx1ZSA9PSBudWxsKSB7IC8vIEB0cy1pZ25vcmVcclxuICAgICAgICB0aGlzLl9zZWxlY3RlZE9wdGlvbiA9IG51bGw7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy51cGRhdGVTZWxlY3RlZE9wdGlvbih2YWx1ZSk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmICh2YWx1ZSkge1xyXG4gICAgICAgIGlmICh2YWx1ZS5sZW5ndGggPT09IDApIHtcclxuICAgICAgICAgIHRoaXMuY2xlYXJBbGxTZWxlY3RlZE9wdGlvbihlbWl0Q2hhbmdlKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy51cGRhdGVTZWxlY3RlZE9wdGlvbih2YWx1ZSwgdHJ1ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2UgaWYgKHZhbHVlID09IG51bGwpIHtcclxuICAgICAgICB0aGlzLmNsZWFyQWxsU2VsZWN0ZWRPcHRpb24oZW1pdENoYW5nZSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiPGRpdiB0YWJpbmRleD1cIjBcIiAjdHJpZ2dlciBjZGtPdmVybGF5T3JpZ2luICNvcmlnaW49XCJjZGtPdmVybGF5T3JpZ2luXCIgW25nQ2xhc3NdPVwiX3NlbGVjdGlvbkNsYXNzTWFwXCJcclxuICAoa2V5ZG93bi5FbnRlcik9XCJoYW5kbGVLZXlFbnRlckV2ZW50KCRldmVudClcIiAoa2V5ZG93bi5CYWNrc3BhY2UpPVwiaGFuZGxlS2V5QmFja3NwYWNlRXZlbnQoJGV2ZW50KVwiXHJcbiAgKGtleWRvd24uQXJyb3dVcCk9XCJoYW5kbGVLZXlVcEV2ZW50KCRldmVudClcIiAoa2V5ZG93bi5BcnJvd0Rvd24pPVwiaGFuZGxlS2V5RG93bkV2ZW50KCRldmVudClcIj5cclxuICA8ZGl2IGNsYXNzPVwicGctc2VsZWN0LXNlbGVjdGlvbl9fcmVuZGVyZWRcIiAqbmdJZj1cIiFTaG93U2VhcmNoXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwicGctc2VsZWN0LXNlbGVjdGlvbl9fcGxhY2Vob2xkZXJcIj5cclxuICAgICAgPG5nLXRlbXBsYXRlIFtuZ0lmXT1cIiFfc2VsZWN0ZWRPcHRpb25cIj5cclxuICAgICAgICB7eyBQbGFjZUhvbGRlciB9fVxyXG4gICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwicGctc2VsZWN0LXNlbGVjdGlvbi1zZWxlY3RlZC12YWx1ZVwiPlxyXG4gICAgICB7eyBfc2VsZWN0ZWRPcHRpb24/LkxhYmVsIH19XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuICA8ZGl2IGNsYXNzPVwicGctc2VsZWN0LXNlbGVjdGlvbl9fcmVuZGVyZWRcIiAqbmdJZj1cIlNob3dTZWFyY2hcIj5cclxuICAgIDxkaXYgW2hpZGRlbl09XCJfc2VhcmNoVGV4dHx8KCFPcGVuJiZfc2VsZWN0ZWRPcHRpb24pfHxfc2VsZWN0ZWRPcHRpb25zLnNpemVcIlxyXG4gICAgICBjbGFzcz1cInBnLXNlbGVjdC1zZWxlY3Rpb25fX3BsYWNlaG9sZGVyXCI+XHJcbiAgICAgIDxuZy10ZW1wbGF0ZSBbbmdJZl09XCIoIV9jb21wb3NpbmcpJiZfc2VsZWN0ZWRPcHRpb25cIj5cclxuICAgICAgICB7eyBfc2VsZWN0ZWRPcHRpb24uTGFiZWwgfX1cclxuICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgPG5nLXRlbXBsYXRlIFtuZ0lmXT1cIighX2NvbXBvc2luZykmJighX3NlbGVjdGVkT3B0aW9uKVwiPlxyXG4gICAgICAgIHt7IFBsYWNlSG9sZGVyIH19XHJcbiAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICA8L2Rpdj5cclxuICAgIDx1bCAqbmdJZj1cIk11bHRpcGxlXCI+XHJcbiAgICAgIDxsaSAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIF9zZWxlY3RlZE9wdGlvbnNcIiBbQHRhZ0FuaW1hdGlvbl0gW2F0dHIudGl0bGVdPVwib3B0aW9uPy5MYWJlbCB8fCBvcHRpb24/LlZhbHVlXCJcclxuICAgICAgICBjbGFzcz1cInBnLXNlbGVjdC1zZWxlY3Rpb25fX2Nob2ljZVwiIHN0eWxlPVwiLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcIj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cInBnLXNlbGVjdC1zZWxlY3Rpb25fX2Nob2ljZV9fcmVtb3ZlXCIgKGNsaWNrKT1cInVuU2VsZWN0TXVsdGlwbGVPcHRpb24ob3B0aW9uLCRldmVudClcIj48L3NwYW4+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInBnLXNlbGVjdC1zZWxlY3Rpb25fX2Nob2ljZV9fY29udGVudFwiPnt7IG9wdGlvbj8uTGFiZWwgfX08L2Rpdj5cclxuICAgICAgPC9saT5cclxuICAgICAgPGxpIGNsYXNzPVwicGctc2VsZWN0LXNlYXJjaCBwZy1zZWxlY3Qtc2VhcmNoLS1pbmxpbmVcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicGctc2VsZWN0LXNlYXJjaF9fZmllbGRfX3dyYXBcIj5cclxuICAgICAgICAgIDxpbnB1dCBjbGFzcz1cInBnLXNlbGVjdC1zZWFyY2hfX2ZpZWxkXCIgKGNvbXBvc2l0aW9uc3RhcnQpPVwiY29tcG9zaXRpb25TdGFydCgpXCJcclxuICAgICAgICAgICAgKGNvbXBvc2l0aW9uZW5kKT1cImNvbXBvc2l0aW9uRW5kKCk7dXBkYXRlV2lkdGgoc2VhcmNoSW5wdXQsX3NlYXJjaFRleHQpO1wiIFsobmdNb2RlbCldPVwiX3NlYXJjaFRleHRcIlxyXG4gICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJ1cGRhdGVGaWx0ZXJPcHRpb24oKTtvblNlYXJjaENoYW5nZSgkZXZlbnQpO1wiXHJcbiAgICAgICAgICAgIChrZXlkb3duKT1cInVwZGF0ZVdpZHRoKHNlYXJjaElucHV0LF9zZWFyY2hUZXh0KVwiIChpbnB1dCk9XCJ1cGRhdGVXaWR0aChzZWFyY2hJbnB1dCxfc2VhcmNoVGV4dClcIlxyXG4gICAgICAgICAgICAoYmx1cik9XCJvblRvdWNoZWQoKVwiICNzZWFyY2hJbnB1dD5cclxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwicGctc2VsZWN0LXNlYXJjaF9fZmllbGRfX21pcnJvclwiPjwvc3Bhbj48L2Rpdj5cclxuICAgICAgPC9saT5cclxuICAgIDwvdWw+XHJcbiAgICA8ZGl2ICpuZ0lmPVwiIU11bHRpcGxlXCIgY2xhc3M9XCJwZy1zZWxlY3Qtc2VsZWN0aW9uLXNlbGVjdGVkLXZhbHVlXCIgW2hpZGRlbl09XCIhKF9zZWxlY3RlZE9wdGlvbj8uTGFiZWwpfHxPcGVuXCI+XHJcbiAgICAgIHt7IF9zZWxlY3RlZE9wdGlvbj8uTGFiZWwgfX1cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiAqbmdJZj1cIiFNdWx0aXBsZVwiIFtoaWRkZW5dPVwiIU9wZW5cIiBjbGFzcz1cInBnLXNlbGVjdC1zZWFyY2ggcGctc2VsZWN0LXNlYXJjaC0taW5saW5lXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJwZy1zZWxlY3Qtc2VhcmNoX19maWVsZF9fd3JhcFwiPlxyXG4gICAgICAgIDxpbnB1dCBjbGFzcz1cInBnLXNlbGVjdC1zZWFyY2hfX2ZpZWxkXCIgKGJsdXIpPVwib25Ub3VjaGVkKClcIiAoY29tcG9zaXRpb25zdGFydCk9XCJjb21wb3NpdGlvblN0YXJ0KClcIlxyXG4gICAgICAgICAgKGNvbXBvc2l0aW9uZW5kKT1cImNvbXBvc2l0aW9uRW5kKClcIiBbKG5nTW9kZWwpXT1cIl9zZWFyY2hUZXh0XCJcclxuICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInVwZGF0ZUZpbHRlck9wdGlvbigpO29uU2VhcmNoQ2hhbmdlKCRldmVudCk7XCIgI3NlYXJjaElucHV0PlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwicGctc2VsZWN0LXNlYXJjaF9fZmllbGRfX21pcnJvclwiPjwvc3Bhbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuICA8c3BhbiAoY2xpY2spPVwib25Ub3VjaGVkKCk7Y2xlYXJTZWxlY3QoJGV2ZW50KVwiIGNsYXNzPVwicGctc2VsZWN0LXNlbGVjdGlvbl9fY2xlYXJcIiBzdHlsZT1cIi13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XCJcclxuICAgICpuZ0lmPVwiX3NlbGVjdGVkT3B0aW9uPy5MYWJlbCYmQWxsb3dDbGVhciYmIU11bHRpcGxlXCI+XHJcbiAgPC9zcGFuPlxyXG4gIDxzcGFuIGNsYXNzPVwicGctc2VsZWN0LWFycm93XCI+PGI+PC9iPjwvc3Bhbj5cclxuPC9kaXY+XHJcbjxuZy10ZW1wbGF0ZSBjZGtDb25uZWN0ZWRPdmVybGF5IGNka0Nvbm5lY3RlZE92ZXJsYXlIYXNCYWNrZHJvcCBbY2RrQ29ubmVjdGVkT3ZlcmxheU9yaWdpbl09XCJvcmlnaW5cIlxyXG4gIChiYWNrZHJvcENsaWNrKT1cImNsb3NlRHJvcERvd24oKVwiIChkZXRhY2gpPVwiY2xvc2VEcm9wRG93bigpO1wiIChwb3NpdGlvbkNoYW5nZSk9XCJvblBvc2l0aW9uQ2hhbmdlKCRldmVudClcIlxyXG4gIFtjZGtDb25uZWN0ZWRPdmVybGF5V2lkdGhdPVwiX3RyaWdnZXJXaWR0aFwiIFtjZGtDb25uZWN0ZWRPdmVybGF5T3Blbl09XCJfaXNPcGVuXCI+XHJcbiAgPGRpdiBbbmdDbGFzc109XCJfZHJvcERvd25DbGFzc01hcFwiIFtAZHJvcERvd25BbmltYXRpb25dPVwiX2Ryb3BEb3duUG9zaXRpb25cIj5cclxuICAgIDxkaXYgc3R5bGU9XCJvdmVyZmxvdzogYXV0bztcIj5cclxuICAgICAgPHVsIGNsYXNzPVwicGctc2VsZWN0LWRyb3Bkb3duLW1lbnUgcGctc2VsZWN0LWRyb3Bkb3duLW1lbnUtdmVydGljYWwgcGctc2VsZWN0LWRyb3Bkb3duLW1lbnUtcm9vdFwiICNkcm9wZG93blVsXHJcbiAgICAgICAgKHNjcm9sbCk9XCJkcm9wRG93blNjcm9sbChkcm9wZG93blVsKVwiPlxyXG4gICAgICAgIDxsaSAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIF9maWx0ZXJPcHRpb25zXCIgW2NsYXNzLnBnLXNlbGVjdC1kcm9wZG93bi1tZW51LWl0ZW0tZGlzYWJsZWRdPVwib3B0aW9uLkRpc2FibGVkXCJcclxuICAgICAgICAgIFtjbGFzcy5wZy1zZWxlY3QtZHJvcGRvd24tbWVudS1pdGVtLWFjdGl2ZV09XCJvcHRpb24uVmFsdWUgPT0gX2FjdGl2ZUZpbHRlck9wdGlvbj8uVmFsdWVcIlxyXG4gICAgICAgICAgW2NsYXNzLnBnLXNlbGVjdC1kcm9wZG93bi1tZW51LWl0ZW0tc2VsZWN0ZWRdPVwiKG9wdGlvbi5WYWx1ZT09KF9zZWxlY3RlZE9wdGlvbj8uVmFsdWUpKXx8KGlzSW5TZXQoX3NlbGVjdGVkT3B0aW9ucyxvcHRpb24pKVwiXHJcbiAgICAgICAgICBjbGFzcz1cInBnLXNlbGVjdC1kcm9wZG93bi1tZW51LWl0ZW1cIiAoY2xpY2spPVwiY2xpY2tPcHRpb24ob3B0aW9uLCRldmVudClcIj5cclxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSAqbmdJZj1cIm9wdGlvbi5PcHRpb25UZW1wbGF0ZVwiIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIm9wdGlvbi5PcHRpb25UZW1wbGF0ZVwiPlxyXG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdJZl09XCIhb3B0aW9uLk9wdGlvblRlbXBsYXRlXCI+XHJcbiAgICAgICAgICAgIHt7IG9wdGlvbi5MYWJlbCB9fVxyXG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8L2xpPlxyXG4gICAgICA8L3VsPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+Il19
@@ -2,21 +2,21 @@ import { OverlayModule } from "@angular/cdk/overlay";
2
2
  import { CommonModule } from "@angular/common";
3
3
  import { NgModule } from "@angular/core";
4
4
  import { FormsModule } from "@angular/forms";
5
- import { pgOptionComponent } from "./option.component";
5
+ import { pgOptionComponent as MefDevOptionComponent } from "./option.component";
6
6
  import { OptionPipe } from "./option.pipe";
7
- import { pgSelectComponent } from "./select.component";
7
+ import { pgSelectComponent as MefDevSelectComponent } from "./select.component";
8
8
  import * as i0 from "@angular/core";
9
9
  export class PgSelectModule {
10
10
  }
11
11
  PgSelectModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: PgSelectModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
12
- PgSelectModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: PgSelectModule, declarations: [OptionPipe, pgOptionComponent, pgSelectComponent], imports: [CommonModule, FormsModule, OverlayModule], exports: [OptionPipe, pgOptionComponent, pgSelectComponent] });
12
+ PgSelectModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: PgSelectModule, declarations: [OptionPipe, MefDevOptionComponent, MefDevSelectComponent], imports: [CommonModule, FormsModule, OverlayModule], exports: [OptionPipe, MefDevOptionComponent, MefDevSelectComponent] });
13
13
  PgSelectModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: PgSelectModule, imports: [[CommonModule, FormsModule, OverlayModule]] });
14
14
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: PgSelectModule, decorators: [{
15
15
  type: NgModule,
16
16
  args: [{
17
17
  imports: [CommonModule, FormsModule, OverlayModule],
18
- declarations: [OptionPipe, pgOptionComponent, pgSelectComponent],
19
- exports: [OptionPipe, pgOptionComponent, pgSelectComponent]
18
+ declarations: [OptionPipe, MefDevOptionComponent, MefDevSelectComponent],
19
+ exports: [OptionPipe, MefDevOptionComponent, MefDevSelectComponent]
20
20
  }]
21
21
  }] });
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21lZi1kZXYtdWktdG9vbC1raXQvc3JjL2xpYi9wZy1jb21wb25lbnRzL3NlbGVjdC9zZWxlY3QubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDdkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7QUFPdkQsTUFBTSxPQUFPLGNBQWM7OzJHQUFkLGNBQWM7NEdBQWQsY0FBYyxpQkFIVixVQUFVLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLGFBRHJELFlBQVksRUFBRSxXQUFXLEVBQUUsYUFBYSxhQUV4QyxVQUFVLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCOzRHQUUvQyxjQUFjLFlBSmhCLENBQUMsWUFBWSxFQUFFLFdBQVcsRUFBRSxhQUFhLENBQUM7MkZBSXhDLGNBQWM7a0JBTDFCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLFdBQVcsRUFBRSxhQUFhLENBQUM7b0JBQ25ELFlBQVksRUFBRSxDQUFDLFVBQVUsRUFBRSxpQkFBaUIsRUFBRSxpQkFBaUIsQ0FBQztvQkFDaEUsT0FBTyxFQUFFLENBQUMsVUFBVSxFQUFFLGlCQUFpQixFQUFFLGlCQUFpQixDQUFDO2lCQUM1RCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE92ZXJsYXlNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvY2RrL292ZXJsYXlcIjtcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xyXG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcbmltcG9ydCB7IHBnT3B0aW9uQ29tcG9uZW50IH0gZnJvbSBcIi4vb3B0aW9uLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBPcHRpb25QaXBlIH0gZnJvbSBcIi4vb3B0aW9uLnBpcGVcIjtcclxuaW1wb3J0IHsgcGdTZWxlY3RDb21wb25lbnQgfSBmcm9tIFwiLi9zZWxlY3QuY29tcG9uZW50XCI7XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEZvcm1zTW9kdWxlLCBPdmVybGF5TW9kdWxlXSxcclxuICBkZWNsYXJhdGlvbnM6IFtPcHRpb25QaXBlLCBwZ09wdGlvbkNvbXBvbmVudCwgcGdTZWxlY3RDb21wb25lbnRdLFxyXG4gIGV4cG9ydHM6IFtPcHRpb25QaXBlLCBwZ09wdGlvbkNvbXBvbmVudCwgcGdTZWxlY3RDb21wb25lbnRdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBQZ1NlbGVjdE1vZHVsZSB7fVxyXG4iXX0=
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWtpdC1saWIvc3JjL2xpYi9wZy1jb21wb25lbnRzL3NlbGVjdC9zZWxlY3QubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGlCQUFpQixJQUFJLHFCQUFxQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDaEYsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsaUJBQWlCLElBQUkscUJBQXFCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7QUFPaEYsTUFBTSxPQUFPLGNBQWM7OzJHQUFkLGNBQWM7NEdBQWQsY0FBYyxpQkFIVixVQUFVLEVBQUUscUJBQXFCLEVBQUUscUJBQXFCLGFBRDdELFlBQVksRUFBRSxXQUFXLEVBQUUsYUFBYSxhQUV4QyxVQUFVLEVBQUUscUJBQXFCLEVBQUUscUJBQXFCOzRHQUV2RCxjQUFjLFlBSmhCLENBQUMsWUFBWSxFQUFFLFdBQVcsRUFBRSxhQUFhLENBQUM7MkZBSXhDLGNBQWM7a0JBTDFCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLFdBQVcsRUFBRSxhQUFhLENBQUM7b0JBQ25ELFlBQVksRUFBRSxDQUFDLFVBQVUsRUFBRSxxQkFBcUIsRUFBRSxxQkFBcUIsQ0FBQztvQkFDeEUsT0FBTyxFQUFFLENBQUMsVUFBVSxFQUFFLHFCQUFxQixFQUFFLHFCQUFxQixDQUFDO2lCQUNwRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE92ZXJsYXlNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvY2RrL292ZXJsYXlcIjtcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xyXG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcbmltcG9ydCB7IHBnT3B0aW9uQ29tcG9uZW50IGFzIE1lZkRldk9wdGlvbkNvbXBvbmVudCB9IGZyb20gXCIuL29wdGlvbi5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgT3B0aW9uUGlwZSB9IGZyb20gXCIuL29wdGlvbi5waXBlXCI7XHJcbmltcG9ydCB7IHBnU2VsZWN0Q29tcG9uZW50IGFzIE1lZkRldlNlbGVjdENvbXBvbmVudCB9IGZyb20gXCIuL3NlbGVjdC5jb21wb25lbnRcIjtcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgRm9ybXNNb2R1bGUsIE92ZXJsYXlNb2R1bGVdLFxyXG4gIGRlY2xhcmF0aW9uczogW09wdGlvblBpcGUsIE1lZkRldk9wdGlvbkNvbXBvbmVudCwgTWVmRGV2U2VsZWN0Q29tcG9uZW50XSxcclxuICBleHBvcnRzOiBbT3B0aW9uUGlwZSwgTWVmRGV2T3B0aW9uQ29tcG9uZW50LCBNZWZEZXZTZWxlY3RDb21wb25lbnRdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBQZ1NlbGVjdE1vZHVsZSB7fVxyXG4iXX0=
@@ -1,3 +1,3 @@
1
1
  export * from './spec-flow-test/spec-flow-test.component';
2
2
  export * from './spec-flow-test.module';
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tZWYtZGV2LXVpLXRvb2wta2l0L3NyYy9saWIvcGctY29tcG9uZW50cy9zcGVjLWZsb3ctdGVzdC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDJDQUEyQyxDQUFDO0FBQzFELGNBQWMseUJBQXlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3NwZWMtZmxvdy10ZXN0L3NwZWMtZmxvdy10ZXN0LmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vc3BlYy1mbG93LXRlc3QubW9kdWxlJzsiXX0=
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1raXQtbGliL3NyYy9saWIvcGctY29tcG9uZW50cy9zcGVjLWZsb3ctdGVzdC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDJDQUEyQyxDQUFDO0FBQzFELGNBQWMseUJBQXlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3NwZWMtZmxvdy10ZXN0L3NwZWMtZmxvdy10ZXN0LmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vc3BlYy1mbG93LXRlc3QubW9kdWxlJzsiXX0=
@@ -1,6 +1,6 @@
1
1
  import { Component } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
- export class SpecFlowTestComponent {
3
+ export class MefDevSpecFlowTestComponent {
4
4
  constructor() { }
5
5
  ngOnInit() {
6
6
  }
@@ -15,10 +15,10 @@ export class SpecFlowTestComponent {
15
15
  this.ReportError = undefined;
16
16
  }
17
17
  }
18
- SpecFlowTestComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SpecFlowTestComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
19
- SpecFlowTestComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: SpecFlowTestComponent, selector: "app-spec-flow-test", ngImport: i0, template: "<!-- Block for test -->\r\n<div style=\"display: none;\">\r\n <input id=\"ResponseTimestamp\" type=\"hidden\" value=\"{{ResponseTimestamp}}\" />\r\n <input id=\"ResponseError\" type=\"hidden\" value=\"{{ResponseError}}\" />\r\n <input id=\"ReportError\" type=\"hidden\" value=\"{{ReportError}}\" />\r\n</div>", styles: [""] });
20
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SpecFlowTestComponent, decorators: [{
18
+ MefDevSpecFlowTestComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: MefDevSpecFlowTestComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
19
+ MefDevSpecFlowTestComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: MefDevSpecFlowTestComponent, selector: "mefdev-spec-flow-test", ngImport: i0, template: "<!-- Block for test -->\r\n<div style=\"display: none;\">\r\n <input id=\"ResponseTimestamp\" type=\"hidden\" value=\"{{ResponseTimestamp}}\" />\r\n <input id=\"ResponseError\" type=\"hidden\" value=\"{{ResponseError}}\" />\r\n <input id=\"ReportError\" type=\"hidden\" value=\"{{ReportError}}\" />\r\n</div>", styles: [""] });
20
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: MefDevSpecFlowTestComponent, decorators: [{
21
21
  type: Component,
22
- args: [{ selector: 'app-spec-flow-test', template: "<!-- Block for test -->\r\n<div style=\"display: none;\">\r\n <input id=\"ResponseTimestamp\" type=\"hidden\" value=\"{{ResponseTimestamp}}\" />\r\n <input id=\"ResponseError\" type=\"hidden\" value=\"{{ResponseError}}\" />\r\n <input id=\"ReportError\" type=\"hidden\" value=\"{{ReportError}}\" />\r\n</div>", styles: [""] }]
22
+ args: [{ selector: 'mefdev-spec-flow-test', template: "<!-- Block for test -->\r\n<div style=\"display: none;\">\r\n <input id=\"ResponseTimestamp\" type=\"hidden\" value=\"{{ResponseTimestamp}}\" />\r\n <input id=\"ResponseError\" type=\"hidden\" value=\"{{ResponseError}}\" />\r\n <input id=\"ReportError\" type=\"hidden\" value=\"{{ReportError}}\" />\r\n</div>", styles: [""] }]
23
23
  }], ctorParameters: function () { return []; } });
24
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BlYy1mbG93LXRlc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWVmLWRldi11aS10b29sLWtpdC9zcmMvbGliL3BnLWNvbXBvbmVudHMvc3BlYy1mbG93LXRlc3Qvc3BlYy1mbG93LXRlc3Qvc3BlYy1mbG93LXRlc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWVmLWRldi11aS10b29sLWtpdC9zcmMvbGliL3BnLWNvbXBvbmVudHMvc3BlYy1mbG93LXRlc3Qvc3BlYy1mbG93LXRlc3Qvc3BlYy1mbG93LXRlc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQzs7QUFPbEQsTUFBTSxPQUFPLHFCQUFxQjtJQWFoQyxnQkFBZ0IsQ0FBQztJQUVqQixRQUFRO0lBQ1IsQ0FBQztJQUNNLFFBQVEsQ0FBQyxLQUFTO1FBQ3ZCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDcEMsSUFBSSxDQUFDLGFBQWEsR0FBRyxDQUFDLENBQUM7UUFDdkIsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7SUFDM0IsQ0FBQztJQUNNLFVBQVU7UUFDZixJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ3BDLElBQUksQ0FBQyxhQUFhLEdBQUcsQ0FBQyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxXQUFXLEdBQUcsU0FBUyxDQUFDO0lBQy9CLENBQUM7O2tIQTFCVSxxQkFBcUI7c0dBQXJCLHFCQUFxQiwwRENQbEMseVRBS007MkZERU8scUJBQXFCO2tCQUxqQyxTQUFTOytCQUNFLG9CQUFvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1zcGVjLWZsb3ctdGVzdCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3NwZWMtZmxvdy10ZXN0LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9zcGVjLWZsb3ctdGVzdC5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTcGVjRmxvd1Rlc3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIC8qKlxyXG4gICAqICBVVEMgZGF0ZXRpbWVcclxuICAgKi9cclxuICBSZXNwb25zZVRpbWVzdGFtcDogYW55O1xyXG4gIC8qKlxyXG4gICAqIDAvMSAxIC0g0L7RiNC40LHQutCwLCAwIC0g0YPRgdC/0LXRhSAoMjAwLCAyMDEg0Lgg0YLQtClcclxuICAgKi9cclxuICBSZXNwb25zZUVycm9yOiBhbnk7XHJcbiAgLyoqXHJcbiAgICogc3RyaW5nINC00LvRjyBSZXNwb25zZUVycm9yPTFcclxuICAgKi9cclxuICBSZXBvcnRFcnJvcjogYW55O1xyXG4gIGNvbnN0cnVjdG9yKCkgeyB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gIH1cclxuICBwdWJsaWMgc2V0RXJyb3IoZXJyb3I6YW55KSB7XHJcbiAgICB0aGlzLlJlc3BvbnNlVGltZXN0YW1wID0gRGF0ZS5ub3coKTtcclxuICAgIHRoaXMuUmVzcG9uc2VFcnJvciA9IDE7XHJcbiAgICB0aGlzLlJlcG9ydEVycm9yID0gZXJyb3I7XHJcbiAgfVxyXG4gIHB1YmxpYyBzZXRTdWNjZXNzKCl7XHJcbiAgICB0aGlzLlJlc3BvbnNlVGltZXN0YW1wID0gRGF0ZS5ub3coKTtcclxuICAgIHRoaXMuUmVzcG9uc2VFcnJvciA9IDA7XHJcbiAgICB0aGlzLlJlcG9ydEVycm9yID0gdW5kZWZpbmVkO1xyXG4gIH1cclxuXHJcbn1cclxuIiwiPCEtLSBCbG9jayBmb3IgdGVzdCAtLT5cclxuPGRpdiBzdHlsZT1cImRpc3BsYXk6IG5vbmU7XCI+XHJcbiAgPGlucHV0IGlkPVwiUmVzcG9uc2VUaW1lc3RhbXBcIiB0eXBlPVwiaGlkZGVuXCIgdmFsdWU9XCJ7e1Jlc3BvbnNlVGltZXN0YW1wfX1cIiAvPlxyXG4gIDxpbnB1dCBpZD1cIlJlc3BvbnNlRXJyb3JcIiB0eXBlPVwiaGlkZGVuXCIgdmFsdWU9XCJ7e1Jlc3BvbnNlRXJyb3J9fVwiIC8+XHJcbiAgPGlucHV0IGlkPVwiUmVwb3J0RXJyb3JcIiB0eXBlPVwiaGlkZGVuXCIgdmFsdWU9XCJ7e1JlcG9ydEVycm9yfX1cIiAvPlxyXG48L2Rpdj4iXX0=
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BlYy1mbG93LXRlc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkta2l0LWxpYi9zcmMvbGliL3BnLWNvbXBvbmVudHMvc3BlYy1mbG93LXRlc3Qvc3BlYy1mbG93LXRlc3Qvc3BlYy1mbG93LXRlc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkta2l0LWxpYi9zcmMvbGliL3BnLWNvbXBvbmVudHMvc3BlYy1mbG93LXRlc3Qvc3BlYy1mbG93LXRlc3Qvc3BlYy1mbG93LXRlc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQzs7QUFPbEQsTUFBTSxPQUFPLDJCQUEyQjtJQWF0QyxnQkFBZ0IsQ0FBQztJQUVqQixRQUFRO0lBQ1IsQ0FBQztJQUNNLFFBQVEsQ0FBQyxLQUFTO1FBQ3ZCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDcEMsSUFBSSxDQUFDLGFBQWEsR0FBRyxDQUFDLENBQUM7UUFDdkIsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7SUFDM0IsQ0FBQztJQUNNLFVBQVU7UUFDZixJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ3BDLElBQUksQ0FBQyxhQUFhLEdBQUcsQ0FBQyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxXQUFXLEdBQUcsU0FBUyxDQUFDO0lBQy9CLENBQUM7O3dIQTFCVSwyQkFBMkI7NEdBQTNCLDJCQUEyQiw2RENQeEMseVRBS007MkZERU8sMkJBQTJCO2tCQUx2QyxTQUFTOytCQUNFLHVCQUF1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ21lZmRldi1zcGVjLWZsb3ctdGVzdCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3NwZWMtZmxvdy10ZXN0LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9zcGVjLWZsb3ctdGVzdC5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBNZWZEZXZTcGVjRmxvd1Rlc3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIC8qKlxyXG4gICAqICBVVEMgZGF0ZXRpbWVcclxuICAgKi9cclxuICBSZXNwb25zZVRpbWVzdGFtcDogYW55O1xyXG4gIC8qKlxyXG4gICAqIDAvMSAxIC0g0L7RiNC40LHQutCwLCAwIC0g0YPRgdC/0LXRhSAoMjAwLCAyMDEg0Lgg0YLQtClcclxuICAgKi9cclxuICBSZXNwb25zZUVycm9yOiBhbnk7XHJcbiAgLyoqXHJcbiAgICogc3RyaW5nINC00LvRjyBSZXNwb25zZUVycm9yPTFcclxuICAgKi9cclxuICBSZXBvcnRFcnJvcjogYW55O1xyXG4gIGNvbnN0cnVjdG9yKCkgeyB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gIH1cclxuICBwdWJsaWMgc2V0RXJyb3IoZXJyb3I6YW55KSB7XHJcbiAgICB0aGlzLlJlc3BvbnNlVGltZXN0YW1wID0gRGF0ZS5ub3coKTtcclxuICAgIHRoaXMuUmVzcG9uc2VFcnJvciA9IDE7XHJcbiAgICB0aGlzLlJlcG9ydEVycm9yID0gZXJyb3I7XHJcbiAgfVxyXG4gIHB1YmxpYyBzZXRTdWNjZXNzKCl7XHJcbiAgICB0aGlzLlJlc3BvbnNlVGltZXN0YW1wID0gRGF0ZS5ub3coKTtcclxuICAgIHRoaXMuUmVzcG9uc2VFcnJvciA9IDA7XHJcbiAgICB0aGlzLlJlcG9ydEVycm9yID0gdW5kZWZpbmVkO1xyXG4gIH1cclxuXHJcbn1cclxuIiwiPCEtLSBCbG9jayBmb3IgdGVzdCAtLT5cclxuPGRpdiBzdHlsZT1cImRpc3BsYXk6IG5vbmU7XCI+XHJcbiAgPGlucHV0IGlkPVwiUmVzcG9uc2VUaW1lc3RhbXBcIiB0eXBlPVwiaGlkZGVuXCIgdmFsdWU9XCJ7e1Jlc3BvbnNlVGltZXN0YW1wfX1cIiAvPlxyXG4gIDxpbnB1dCBpZD1cIlJlc3BvbnNlRXJyb3JcIiB0eXBlPVwiaGlkZGVuXCIgdmFsdWU9XCJ7e1Jlc3BvbnNlRXJyb3J9fVwiIC8+XHJcbiAgPGlucHV0IGlkPVwiUmVwb3J0RXJyb3JcIiB0eXBlPVwiaGlkZGVuXCIgdmFsdWU9XCJ7e1JlcG9ydEVycm9yfX1cIiAvPlxyXG48L2Rpdj4iXX0=
@@ -1,27 +1,27 @@
1
1
  import { NgModule } from '@angular/core';
2
2
  import { CommonModule } from '@angular/common';
3
- import { SpecFlowTestComponent } from './spec-flow-test/spec-flow-test.component';
3
+ import { MefDevSpecFlowTestComponent } from './spec-flow-test/spec-flow-test.component';
4
4
  import * as i0 from "@angular/core";
5
- export class SpecFlowTestModule {
5
+ export class MefDevSpecFlowTestModule {
6
6
  static forRoot() {
7
7
  return {
8
- ngModule: SpecFlowTestModule
8
+ ngModule: MefDevSpecFlowTestModule
9
9
  };
10
10
  }
11
11
  }
12
- SpecFlowTestModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SpecFlowTestModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
13
- SpecFlowTestModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SpecFlowTestModule, declarations: [SpecFlowTestComponent], imports: [CommonModule], exports: [SpecFlowTestComponent] });
14
- SpecFlowTestModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SpecFlowTestModule, imports: [[
12
+ MefDevSpecFlowTestModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: MefDevSpecFlowTestModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
13
+ MefDevSpecFlowTestModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: MefDevSpecFlowTestModule, declarations: [MefDevSpecFlowTestComponent], imports: [CommonModule], exports: [MefDevSpecFlowTestComponent] });
14
+ MefDevSpecFlowTestModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: MefDevSpecFlowTestModule, imports: [[
15
15
  CommonModule
16
16
  ]] });
17
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SpecFlowTestModule, decorators: [{
17
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: MefDevSpecFlowTestModule, decorators: [{
18
18
  type: NgModule,
19
19
  args: [{
20
- declarations: [SpecFlowTestComponent],
21
- exports: [SpecFlowTestComponent],
20
+ declarations: [MefDevSpecFlowTestComponent],
21
+ exports: [MefDevSpecFlowTestComponent],
22
22
  imports: [
23
23
  CommonModule
24
24
  ]
25
25
  }]
26
26
  }] });
27
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BlYy1mbG93LXRlc3QubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWVmLWRldi11aS10b29sLWtpdC9zcmMvbGliL3BnLWNvbXBvbmVudHMvc3BlYy1mbG93LXRlc3Qvc3BlYy1mbG93LXRlc3QubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBdUIsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQzs7QUFTbEYsTUFBTSxPQUFPLGtCQUFrQjtJQUM3QixNQUFNLENBQUMsT0FBTztRQUNaLE9BQU87WUFDTCxRQUFRLEVBQUUsa0JBQWtCO1NBQzdCLENBQUM7SUFDSixDQUFDOzsrR0FMVSxrQkFBa0I7Z0hBQWxCLGtCQUFrQixpQkFOZCxxQkFBcUIsYUFHbEMsWUFBWSxhQUZKLHFCQUFxQjtnSEFLcEIsa0JBQWtCLFlBSnBCO1lBQ1AsWUFBWTtTQUNiOzJGQUVVLGtCQUFrQjtrQkFQOUIsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQztvQkFDckMsT0FBTyxFQUFFLENBQUMscUJBQXFCLENBQUM7b0JBQ2hDLE9BQU8sRUFBRTt3QkFDUCxZQUFZO3FCQUNiO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTW9kdWxlV2l0aFByb3ZpZGVycywgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgU3BlY0Zsb3dUZXN0Q29tcG9uZW50IH0gZnJvbSAnLi9zcGVjLWZsb3ctdGVzdC9zcGVjLWZsb3ctdGVzdC5jb21wb25lbnQnO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBkZWNsYXJhdGlvbnM6IFtTcGVjRmxvd1Rlc3RDb21wb25lbnRdLFxyXG4gIGV4cG9ydHM6IFtTcGVjRmxvd1Rlc3RDb21wb25lbnRdLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZVxyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIFNwZWNGbG93VGVzdE1vZHVsZSB7XHJcbiAgc3RhdGljIGZvclJvb3QoKTogTW9kdWxlV2l0aFByb3ZpZGVyczxTcGVjRmxvd1Rlc3RNb2R1bGU+IHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIG5nTW9kdWxlOiBTcGVjRmxvd1Rlc3RNb2R1bGVcclxuICAgIH07XHJcbiAgfVxyXG4gfVxyXG4iXX0=
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BlYy1mbG93LXRlc3QubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkta2l0LWxpYi9zcmMvbGliL3BnLWNvbXBvbmVudHMvc3BlYy1mbG93LXRlc3Qvc3BlYy1mbG93LXRlc3QubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBdUIsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQzs7QUFTeEYsTUFBTSxPQUFPLHdCQUF3QjtJQUNuQyxNQUFNLENBQUMsT0FBTztRQUNaLE9BQU87WUFDTCxRQUFRLEVBQUUsd0JBQXdCO1NBQ25DLENBQUM7SUFDSixDQUFDOztxSEFMVSx3QkFBd0I7c0hBQXhCLHdCQUF3QixpQkFOcEIsMkJBQTJCLGFBR3hDLFlBQVksYUFGSiwyQkFBMkI7c0hBSzFCLHdCQUF3QixZQUoxQjtZQUNQLFlBQVk7U0FDYjsyRkFFVSx3QkFBd0I7a0JBUHBDLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUMsMkJBQTJCLENBQUM7b0JBQzNDLE9BQU8sRUFBRSxDQUFDLDJCQUEyQixDQUFDO29CQUN0QyxPQUFPLEVBQUU7d0JBQ1AsWUFBWTtxQkFDYjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1vZHVsZVdpdGhQcm92aWRlcnMsIE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IE1lZkRldlNwZWNGbG93VGVzdENvbXBvbmVudCB9IGZyb20gJy4vc3BlYy1mbG93LXRlc3Qvc3BlYy1mbG93LXRlc3QuY29tcG9uZW50JztcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgZGVjbGFyYXRpb25zOiBbTWVmRGV2U3BlY0Zsb3dUZXN0Q29tcG9uZW50XSxcclxuICBleHBvcnRzOiBbTWVmRGV2U3BlY0Zsb3dUZXN0Q29tcG9uZW50XSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGVcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBNZWZEZXZTcGVjRmxvd1Rlc3RNb2R1bGUge1xyXG4gIHN0YXRpYyBmb3JSb290KCk6IE1vZHVsZVdpdGhQcm92aWRlcnM8TWVmRGV2U3BlY0Zsb3dUZXN0TW9kdWxlPiB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBuZ01vZHVsZTogTWVmRGV2U3BlY0Zsb3dUZXN0TW9kdWxlXHJcbiAgICB9O1xyXG4gIH1cclxuIH1cclxuIl19
@@ -1,3 +1,3 @@
1
1
  export * from './switch.component';
2
2
  export * from './switch.module';
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tZWYtZGV2LXVpLXRvb2wta2l0L3NyYy9saWIvcGctY29tcG9uZW50cy9zd2l0Y2gvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLGlCQUFpQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9zd2l0Y2guY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9zd2l0Y2gubW9kdWxlJzsiXX0=
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1raXQtbGliL3NyYy9saWIvcGctY29tcG9uZW50cy9zd2l0Y2gvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLGlCQUFpQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9zd2l0Y2guY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9zd2l0Y2gubW9kdWxlJzsiXX0=
@@ -3,7 +3,7 @@ import { NG_VALUE_ACCESSOR } from "@angular/forms";
3
3
  import { toBoolean } from "../util/convert";
4
4
  import * as i0 from "@angular/core";
5
5
  import * as i1 from "@angular/common";
6
- export class pgSwitchComponent {
6
+ export class MefDevSwitchComponent {
7
7
  constructor() {
8
8
  this._disabled = false;
9
9
  this._prefixCls = "toggle-switch";
@@ -71,11 +71,11 @@ export class pgSwitchComponent {
71
71
  this.setClassMap();
72
72
  }
73
73
  }
74
- pgSwitchComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: pgSwitchComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
75
- pgSwitchComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: pgSwitchComponent, selector: "pg-switch", inputs: { Size: "Size", Color: "Color", Disabled: "Disabled" }, outputs: { onChange: "onChange" }, host: { listeners: { "click": "onClick($event)" } }, providers: [
74
+ MefDevSwitchComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: MefDevSwitchComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
75
+ MefDevSwitchComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: MefDevSwitchComponent, selector: "mefdev-switch", inputs: { Size: "Size", Color: "Color", Disabled: "Disabled" }, outputs: { onChange: "onChange" }, host: { listeners: { "click": "onClick($event)" } }, providers: [
76
76
  {
77
77
  provide: NG_VALUE_ACCESSOR,
78
- useExisting: forwardRef(() => pgSwitchComponent),
78
+ useExisting: forwardRef(() => MefDevSwitchComponent),
79
79
  multi: true
80
80
  }
81
81
  ], ngImport: i0, template: `
@@ -90,10 +90,10 @@ pgSwitchComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", vers
90
90
  </span>
91
91
  </span>
92
92
  `, isInline: true, directives: [{ type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], encapsulation: i0.ViewEncapsulation.None });
93
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: pgSwitchComponent, decorators: [{
93
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: MefDevSwitchComponent, decorators: [{
94
94
  type: Component,
95
95
  args: [{
96
- selector: "pg-switch",
96
+ selector: "mefdev-switch",
97
97
  encapsulation: ViewEncapsulation.None,
98
98
  template: `
99
99
  <span [ngClass]="_classMap" tabindex="0">
@@ -110,7 +110,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImpor
110
110
  providers: [
111
111
  {
112
112
  provide: NG_VALUE_ACCESSOR,
113
- useExisting: forwardRef(() => pgSwitchComponent),
113
+ useExisting: forwardRef(() => MefDevSwitchComponent),
114
114
  multi: true
115
115
  }
116
116
  ]
@@ -127,4 +127,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImpor
127
127
  type: HostListener,
128
128
  args: ["click", ["$event"]]
129
129
  }] } });
130
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3dpdGNoLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21lZi1kZXYtdWktdG9vbC1raXQvc3JjL2xpYi9wZy1jb21wb25lbnRzL3N3aXRjaC9zd2l0Y2guY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTixVQUFVLEVBQ1YsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBRUwsaUJBQWlCLEVBQ2pCLE1BQU0sRUFDTixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7QUF5QjVDLE1BQU0sT0FBTyxpQkFBaUI7SUF2QjlCO1FBd0JTLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFDMUIsZUFBVSxHQUFHLGVBQWUsQ0FBQztRQUM3QixXQUFNLEdBQUcsU0FBUyxDQUFDO1FBQ25CLG9CQUFlLEdBQUcsR0FBRyxJQUFJLENBQUMsVUFBVSxTQUFTLENBQUM7UUFHOUMsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUVqQixpQkFBaUI7UUFFakIsYUFBUSxHQUE2QixHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUM7UUFDaEQsY0FBUyxHQUFlLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQztLQTBFbkM7SUF4RUEsSUFDSSxJQUFJLENBQUMsS0FBYTtRQUNyQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDcEIsQ0FBQztJQUVELElBQ0ksS0FBSyxDQUFDLEtBQWE7UUFDdEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFDcEIsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3BCLENBQUM7SUFFRCxJQUFJLElBQUk7UUFDUCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDbkIsQ0FBQztJQUVELElBQ0ksUUFBUSxDQUFDLEtBQWM7UUFDMUIsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbEMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3BCLENBQUM7SUFFRCxJQUFJLFFBQVE7UUFDWCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDdkIsQ0FBQztJQUdELE9BQU8sQ0FBQyxDQUFhO1FBQ3BCLENBQUMsQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUNuQixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNwQixJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ2pDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1NBQzdCO0lBQ0YsQ0FBQztJQUVELFdBQVcsQ0FBQyxLQUFjO1FBQ3pCLElBQUksSUFBSSxDQUFDLFFBQVEsS0FBSyxLQUFLLEVBQUU7WUFDNUIsT0FBTztTQUNQO1FBQ0QsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7UUFDdEIsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3BCLENBQUM7SUFFRCxXQUFXO1FBQ1YsSUFBSSxDQUFDLFNBQVMsR0FBRztZQUNoQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxJQUFJO1lBQ3ZCLENBQUMsR0FBRyxJQUFJLENBQUMsVUFBVSxVQUFVLENBQUMsRUFBRSxJQUFJLENBQUMsUUFBUTtZQUM3QyxDQUFDLEdBQUcsSUFBSSxDQUFDLFVBQVUsV0FBVyxDQUFDLEVBQUUsSUFBSSxDQUFDLFNBQVM7WUFDL0MsQ0FBQyxHQUFHLElBQUksQ0FBQyxVQUFVLFFBQVEsQ0FBQyxFQUFFLElBQUksQ0FBQyxLQUFLLEtBQUssT0FBTztZQUNwRCxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxJQUFJLENBQUMsTUFBTTtTQUMxQixDQUFDO0lBQ0gsQ0FBQztJQUVELFVBQVUsQ0FBQyxLQUFjO1FBQ3hCLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDekIsQ0FBQztJQUVELGdCQUFnQixDQUFDLEVBQXdCO1FBQ3hDLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO0lBQ3BCLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxFQUFjO1FBQy9CLElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxVQUFtQjtRQUNuQyxJQUFJLENBQUMsUUFBUSxHQUFHLFVBQVUsQ0FBQztJQUM1QixDQUFDO0lBRUQsUUFBUTtRQUNQLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNwQixDQUFDOzs4R0FyRlcsaUJBQWlCO2tHQUFqQixpQkFBaUIsNExBUmxCO1FBQ1Y7WUFDQyxPQUFPLEVBQUUsaUJBQWlCO1lBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsaUJBQWlCLENBQUM7WUFDaEQsS0FBSyxFQUFFLElBQUk7U0FDWDtLQUNELDBCQWxCUzs7Ozs7Ozs7Ozs7RUFXVDsyRkFTVyxpQkFBaUI7a0JBdkI3QixTQUFTO21CQUFDO29CQUNWLFFBQVEsRUFBRSxXQUFXO29CQUNyQixhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtvQkFDckMsUUFBUSxFQUFFOzs7Ozs7Ozs7OztFQVdUO29CQUNELFNBQVMsRUFBRTt3QkFDVjs0QkFDQyxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxrQkFBa0IsQ0FBQzs0QkFDaEQsS0FBSyxFQUFFLElBQUk7eUJBQ1g7cUJBQ0Q7aUJBQ0Q7OEJBWUEsUUFBUTtzQkFEUCxNQUFNO2dCQUtILElBQUk7c0JBRFAsS0FBSztnQkFPRixLQUFLO3NCQURSLEtBQUs7Z0JBV0YsUUFBUTtzQkFEWCxLQUFLO2dCQVdOLE9BQU87c0JBRE4sWUFBWTt1QkFBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG5cdGZvcndhcmRSZWYsXHJcblx0Q29tcG9uZW50LFxyXG5cdEhvc3RMaXN0ZW5lcixcclxuXHRJbnB1dCxcclxuXHRPbkluaXQsXHJcblx0Vmlld0VuY2Fwc3VsYXRpb24sXHJcblx0T3V0cHV0XHJcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcbmltcG9ydCB7IHRvQm9vbGVhbiB9IGZyb20gXCIuLi91dGlsL2NvbnZlcnRcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG5cdHNlbGVjdG9yOiBcInBnLXN3aXRjaFwiLFxyXG5cdGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcblx0dGVtcGxhdGU6IGBcclxuXHRcdDxzcGFuIFtuZ0NsYXNzXT1cIl9jbGFzc01hcFwiIHRhYmluZGV4PVwiMFwiPlxyXG5cdFx0XHQ8c3BhbiBbbmdDbGFzc109XCJfaW5uZXJQcmVmaXhDbHNcIj5cclxuXHRcdFx0XHQ8bmctdGVtcGxhdGUgW25nSWZdPVwiX2NoZWNrZWRcIj5cclxuXHRcdFx0XHRcdDxuZy1jb250ZW50IHNlbGVjdD1cIltjaGVja2VkXVwiPjwvbmctY29udGVudD5cclxuXHRcdFx0XHQ8L25nLXRlbXBsYXRlPlxyXG5cdFx0XHRcdDxuZy10ZW1wbGF0ZSBbbmdJZl09XCIhX2NoZWNrZWRcIj5cclxuXHRcdFx0XHRcdDxuZy1jb250ZW50IHNlbGVjdD1cIlt1bmNoZWNrZWRdXCI+PC9uZy1jb250ZW50PlxyXG5cdFx0XHRcdDwvbmctdGVtcGxhdGU+XHJcblx0XHRcdDwvc3Bhbj5cclxuXHRcdDwvc3Bhbj5cclxuXHRgLFxyXG5cdHByb3ZpZGVyczogW1xyXG5cdFx0e1xyXG5cdFx0XHRwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuXHRcdFx0dXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gcGdTd2l0Y2hDb21wb25lbnQpLFxyXG5cdFx0XHRtdWx0aTogdHJ1ZVxyXG5cdFx0fVxyXG5cdF1cclxufSlcclxuZXhwb3J0IGNsYXNzIHBnU3dpdGNoQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBDb250cm9sVmFsdWVBY2Nlc3NvciB7XHJcblx0cHJpdmF0ZSBfZGlzYWJsZWQgPSBmYWxzZTtcclxuXHRfcHJlZml4Q2xzID0gXCJ0b2dnbGUtc3dpdGNoXCI7XHJcblx0X2NvbG9yID0gXCJwcmltYXJ5XCI7XHJcblx0X2lubmVyUHJlZml4Q2xzID0gYCR7dGhpcy5fcHJlZml4Q2xzfS1pbm5lciBgO1xyXG5cdF9jbGFzc01hcDphbnk7XHJcblx0X3NpemU6IHN0cmluZztcclxuXHRfY2hlY2tlZCA9IGZhbHNlO1xyXG5cclxuXHQvLyBuZ01vZGVsIEFjY2Vzc1xyXG5cdEBPdXRwdXQoKVxyXG5cdG9uQ2hhbmdlOiAodmFsdWU6IGJvb2xlYW4pID0+IHZvaWQgPSAoKSA9PiBudWxsO1xyXG5cdG9uVG91Y2hlZDogKCkgPT4gdm9pZCA9ICgpID0+IG51bGw7XHJcblxyXG5cdEBJbnB1dCgpXHJcblx0c2V0IFNpemUodmFsdWU6IHN0cmluZykge1xyXG5cdFx0dGhpcy5fc2l6ZSA9IHZhbHVlO1xyXG5cdFx0dGhpcy5zZXRDbGFzc01hcCgpO1xyXG5cdH1cclxuXHJcblx0QElucHV0KClcclxuXHRzZXQgQ29sb3IodmFsdWU6IHN0cmluZykge1xyXG5cdFx0dGhpcy5fY29sb3IgPSB2YWx1ZTtcclxuXHRcdHRoaXMuc2V0Q2xhc3NNYXAoKTtcclxuXHR9XHJcblxyXG5cdGdldCBTaXplKCk6IHN0cmluZyB7XHJcblx0XHRyZXR1cm4gdGhpcy5fc2l6ZTtcclxuXHR9XHJcblxyXG5cdEBJbnB1dCgpXHJcblx0c2V0IERpc2FibGVkKHZhbHVlOiBib29sZWFuKSB7XHJcblx0XHR0aGlzLl9kaXNhYmxlZCA9IHRvQm9vbGVhbih2YWx1ZSk7XHJcblx0XHR0aGlzLnNldENsYXNzTWFwKCk7XHJcblx0fVxyXG5cclxuXHRnZXQgRGlzYWJsZWQoKTogYm9vbGVhbiB7XHJcblx0XHRyZXR1cm4gdGhpcy5fZGlzYWJsZWQ7XHJcblx0fVxyXG5cclxuXHRASG9zdExpc3RlbmVyKFwiY2xpY2tcIiwgW1wiJGV2ZW50XCJdKVxyXG5cdG9uQ2xpY2soZTogTW91c2VFdmVudCk6IHZvaWQge1xyXG5cdFx0ZS5wcmV2ZW50RGVmYXVsdCgpO1xyXG5cdFx0aWYgKCF0aGlzLl9kaXNhYmxlZCkge1xyXG5cdFx0XHR0aGlzLnVwZGF0ZVZhbHVlKCF0aGlzLl9jaGVja2VkKTtcclxuXHRcdFx0dGhpcy5vbkNoYW5nZSh0aGlzLl9jaGVja2VkKTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdHVwZGF0ZVZhbHVlKHZhbHVlOiBib29sZWFuKTogdm9pZCB7XHJcblx0XHRpZiAodGhpcy5fY2hlY2tlZCA9PT0gdmFsdWUpIHtcclxuXHRcdFx0cmV0dXJuO1xyXG5cdFx0fVxyXG5cdFx0dGhpcy5fY2hlY2tlZCA9IHZhbHVlO1xyXG5cdFx0dGhpcy5zZXRDbGFzc01hcCgpO1xyXG5cdH1cclxuXHJcblx0c2V0Q2xhc3NNYXAoKTogdm9pZCB7XHJcblx0XHR0aGlzLl9jbGFzc01hcCA9IHtcclxuXHRcdFx0W3RoaXMuX3ByZWZpeENsc106IHRydWUsXHJcblx0XHRcdFtgJHt0aGlzLl9wcmVmaXhDbHN9LWNoZWNrZWRgXTogdGhpcy5fY2hlY2tlZCxcclxuXHRcdFx0W2Ake3RoaXMuX3ByZWZpeENsc30tZGlzYWJsZWRgXTogdGhpcy5fZGlzYWJsZWQsXHJcblx0XHRcdFtgJHt0aGlzLl9wcmVmaXhDbHN9LXNtYWxsYF06IHRoaXMuX3NpemUgPT09IFwic21hbGxcIixcclxuXHRcdFx0W3RoaXMuX2NvbG9yXTogdGhpcy5fY29sb3JcclxuXHRcdH07XHJcblx0fVxyXG5cclxuXHR3cml0ZVZhbHVlKHZhbHVlOiBib29sZWFuKTogdm9pZCB7XHJcblx0XHR0aGlzLnVwZGF0ZVZhbHVlKHZhbHVlKTtcclxuXHR9XHJcblxyXG5cdHJlZ2lzdGVyT25DaGFuZ2UoZm46IChfOiBib29sZWFuKSA9PiB2b2lkKTogdm9pZCB7XHJcblx0XHR0aGlzLm9uQ2hhbmdlID0gZm47XHJcblx0fVxyXG5cclxuXHRyZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xyXG5cdFx0dGhpcy5vblRvdWNoZWQgPSBmbjtcclxuXHR9XHJcblxyXG5cdHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xyXG5cdFx0dGhpcy5EaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XHJcblx0fVxyXG5cclxuXHRuZ09uSW5pdCgpOiB2b2lkIHtcclxuXHRcdHRoaXMuc2V0Q2xhc3NNYXAoKTtcclxuXHR9XHJcbn1cclxuIl19
130
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3dpdGNoLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWtpdC1saWIvc3JjL2xpYi9wZy1jb21wb25lbnRzL3N3aXRjaC9zd2l0Y2guY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTixVQUFVLEVBQ1YsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBRUwsaUJBQWlCLEVBQ2pCLE1BQU0sRUFDTixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7QUF5QjVDLE1BQU0sT0FBTyxxQkFBcUI7SUF2QmxDO1FBd0JTLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFDMUIsZUFBVSxHQUFHLGVBQWUsQ0FBQztRQUM3QixXQUFNLEdBQUcsU0FBUyxDQUFDO1FBQ25CLG9CQUFlLEdBQUcsR0FBRyxJQUFJLENBQUMsVUFBVSxTQUFTLENBQUM7UUFHOUMsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUVqQixpQkFBaUI7UUFFakIsYUFBUSxHQUE2QixHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUM7UUFDaEQsY0FBUyxHQUFlLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQztLQTBFbkM7SUF4RUEsSUFDSSxJQUFJLENBQUMsS0FBYTtRQUNyQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDcEIsQ0FBQztJQUVELElBQ0ksS0FBSyxDQUFDLEtBQWE7UUFDdEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFDcEIsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3BCLENBQUM7SUFFRCxJQUFJLElBQUk7UUFDUCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDbkIsQ0FBQztJQUVELElBQ0ksUUFBUSxDQUFDLEtBQWM7UUFDMUIsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbEMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3BCLENBQUM7SUFFRCxJQUFJLFFBQVE7UUFDWCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDdkIsQ0FBQztJQUdELE9BQU8sQ0FBQyxDQUFhO1FBQ3BCLENBQUMsQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUNuQixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNwQixJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ2pDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1NBQzdCO0lBQ0YsQ0FBQztJQUVELFdBQVcsQ0FBQyxLQUFjO1FBQ3pCLElBQUksSUFBSSxDQUFDLFFBQVEsS0FBSyxLQUFLLEVBQUU7WUFDNUIsT0FBTztTQUNQO1FBQ0QsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7UUFDdEIsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3BCLENBQUM7SUFFRCxXQUFXO1FBQ1YsSUFBSSxDQUFDLFNBQVMsR0FBRztZQUNoQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxJQUFJO1lBQ3ZCLENBQUMsR0FBRyxJQUFJLENBQUMsVUFBVSxVQUFVLENBQUMsRUFBRSxJQUFJLENBQUMsUUFBUTtZQUM3QyxDQUFDLEdBQUcsSUFBSSxDQUFDLFVBQVUsV0FBVyxDQUFDLEVBQUUsSUFBSSxDQUFDLFNBQVM7WUFDL0MsQ0FBQyxHQUFHLElBQUksQ0FBQyxVQUFVLFFBQVEsQ0FBQyxFQUFFLElBQUksQ0FBQyxLQUFLLEtBQUssT0FBTztZQUNwRCxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxJQUFJLENBQUMsTUFBTTtTQUMxQixDQUFDO0lBQ0gsQ0FBQztJQUVELFVBQVUsQ0FBQyxLQUFjO1FBQ3hCLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDekIsQ0FBQztJQUVELGdCQUFnQixDQUFDLEVBQXdCO1FBQ3hDLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO0lBQ3BCLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxFQUFjO1FBQy9CLElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxVQUFtQjtRQUNuQyxJQUFJLENBQUMsUUFBUSxHQUFHLFVBQVUsQ0FBQztJQUM1QixDQUFDO0lBRUQsUUFBUTtRQUNQLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNwQixDQUFDOztrSEFyRlcscUJBQXFCO3NHQUFyQixxQkFBcUIsZ01BUnRCO1FBQ1Y7WUFDQyxPQUFPLEVBQUUsaUJBQWlCO1lBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMscUJBQXFCLENBQUM7WUFDcEQsS0FBSyxFQUFFLElBQUk7U0FDWDtLQUNELDBCQWxCUzs7Ozs7Ozs7Ozs7RUFXVDsyRkFTVyxxQkFBcUI7a0JBdkJqQyxTQUFTO21CQUFDO29CQUNWLFFBQVEsRUFBRSxlQUFlO29CQUN6QixhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtvQkFDckMsUUFBUSxFQUFFOzs7Ozs7Ozs7OztFQVdUO29CQUNELFNBQVMsRUFBRTt3QkFDVjs0QkFDQyxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxzQkFBc0IsQ0FBQzs0QkFDcEQsS0FBSyxFQUFFLElBQUk7eUJBQ1g7cUJBQ0Q7aUJBQ0Q7OEJBWUEsUUFBUTtzQkFEUCxNQUFNO2dCQUtILElBQUk7c0JBRFAsS0FBSztnQkFPRixLQUFLO3NCQURSLEtBQUs7Z0JBV0YsUUFBUTtzQkFEWCxLQUFLO2dCQVdOLE9BQU87c0JBRE4sWUFBWTt1QkFBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG5cdGZvcndhcmRSZWYsXHJcblx0Q29tcG9uZW50LFxyXG5cdEhvc3RMaXN0ZW5lcixcclxuXHRJbnB1dCxcclxuXHRPbkluaXQsXHJcblx0Vmlld0VuY2Fwc3VsYXRpb24sXHJcblx0T3V0cHV0XHJcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcbmltcG9ydCB7IHRvQm9vbGVhbiB9IGZyb20gXCIuLi91dGlsL2NvbnZlcnRcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG5cdHNlbGVjdG9yOiBcIm1lZmRldi1zd2l0Y2hcIixcclxuXHRlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG5cdHRlbXBsYXRlOiBgXHJcblx0XHQ8c3BhbiBbbmdDbGFzc109XCJfY2xhc3NNYXBcIiB0YWJpbmRleD1cIjBcIj5cclxuXHRcdFx0PHNwYW4gW25nQ2xhc3NdPVwiX2lubmVyUHJlZml4Q2xzXCI+XHJcblx0XHRcdFx0PG5nLXRlbXBsYXRlIFtuZ0lmXT1cIl9jaGVja2VkXCI+XHJcblx0XHRcdFx0XHQ8bmctY29udGVudCBzZWxlY3Q9XCJbY2hlY2tlZF1cIj48L25nLWNvbnRlbnQ+XHJcblx0XHRcdFx0PC9uZy10ZW1wbGF0ZT5cclxuXHRcdFx0XHQ8bmctdGVtcGxhdGUgW25nSWZdPVwiIV9jaGVja2VkXCI+XHJcblx0XHRcdFx0XHQ8bmctY29udGVudCBzZWxlY3Q9XCJbdW5jaGVja2VkXVwiPjwvbmctY29udGVudD5cclxuXHRcdFx0XHQ8L25nLXRlbXBsYXRlPlxyXG5cdFx0XHQ8L3NwYW4+XHJcblx0XHQ8L3NwYW4+XHJcblx0YCxcclxuXHRwcm92aWRlcnM6IFtcclxuXHRcdHtcclxuXHRcdFx0cHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcblx0XHRcdHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IE1lZkRldlN3aXRjaENvbXBvbmVudCksXHJcblx0XHRcdG11bHRpOiB0cnVlXHJcblx0XHR9XHJcblx0XVxyXG59KVxyXG5leHBvcnQgY2xhc3MgTWVmRGV2U3dpdGNoQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBDb250cm9sVmFsdWVBY2Nlc3NvciB7XHJcblx0cHJpdmF0ZSBfZGlzYWJsZWQgPSBmYWxzZTtcclxuXHRfcHJlZml4Q2xzID0gXCJ0b2dnbGUtc3dpdGNoXCI7XHJcblx0X2NvbG9yID0gXCJwcmltYXJ5XCI7XHJcblx0X2lubmVyUHJlZml4Q2xzID0gYCR7dGhpcy5fcHJlZml4Q2xzfS1pbm5lciBgO1xyXG5cdF9jbGFzc01hcDphbnk7XHJcblx0X3NpemU6IHN0cmluZztcclxuXHRfY2hlY2tlZCA9IGZhbHNlO1xyXG5cclxuXHQvLyBuZ01vZGVsIEFjY2Vzc1xyXG5cdEBPdXRwdXQoKVxyXG5cdG9uQ2hhbmdlOiAodmFsdWU6IGJvb2xlYW4pID0+IHZvaWQgPSAoKSA9PiBudWxsO1xyXG5cdG9uVG91Y2hlZDogKCkgPT4gdm9pZCA9ICgpID0+IG51bGw7XHJcblxyXG5cdEBJbnB1dCgpXHJcblx0c2V0IFNpemUodmFsdWU6IHN0cmluZykge1xyXG5cdFx0dGhpcy5fc2l6ZSA9IHZhbHVlO1xyXG5cdFx0dGhpcy5zZXRDbGFzc01hcCgpO1xyXG5cdH1cclxuXHJcblx0QElucHV0KClcclxuXHRzZXQgQ29sb3IodmFsdWU6IHN0cmluZykge1xyXG5cdFx0dGhpcy5fY29sb3IgPSB2YWx1ZTtcclxuXHRcdHRoaXMuc2V0Q2xhc3NNYXAoKTtcclxuXHR9XHJcblxyXG5cdGdldCBTaXplKCk6IHN0cmluZyB7XHJcblx0XHRyZXR1cm4gdGhpcy5fc2l6ZTtcclxuXHR9XHJcblxyXG5cdEBJbnB1dCgpXHJcblx0c2V0IERpc2FibGVkKHZhbHVlOiBib29sZWFuKSB7XHJcblx0XHR0aGlzLl9kaXNhYmxlZCA9IHRvQm9vbGVhbih2YWx1ZSk7XHJcblx0XHR0aGlzLnNldENsYXNzTWFwKCk7XHJcblx0fVxyXG5cclxuXHRnZXQgRGlzYWJsZWQoKTogYm9vbGVhbiB7XHJcblx0XHRyZXR1cm4gdGhpcy5fZGlzYWJsZWQ7XHJcblx0fVxyXG5cclxuXHRASG9zdExpc3RlbmVyKFwiY2xpY2tcIiwgW1wiJGV2ZW50XCJdKVxyXG5cdG9uQ2xpY2soZTogTW91c2VFdmVudCk6IHZvaWQge1xyXG5cdFx0ZS5wcmV2ZW50RGVmYXVsdCgpO1xyXG5cdFx0aWYgKCF0aGlzLl9kaXNhYmxlZCkge1xyXG5cdFx0XHR0aGlzLnVwZGF0ZVZhbHVlKCF0aGlzLl9jaGVja2VkKTtcclxuXHRcdFx0dGhpcy5vbkNoYW5nZSh0aGlzLl9jaGVja2VkKTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdHVwZGF0ZVZhbHVlKHZhbHVlOiBib29sZWFuKTogdm9pZCB7XHJcblx0XHRpZiAodGhpcy5fY2hlY2tlZCA9PT0gdmFsdWUpIHtcclxuXHRcdFx0cmV0dXJuO1xyXG5cdFx0fVxyXG5cdFx0dGhpcy5fY2hlY2tlZCA9IHZhbHVlO1xyXG5cdFx0dGhpcy5zZXRDbGFzc01hcCgpO1xyXG5cdH1cclxuXHJcblx0c2V0Q2xhc3NNYXAoKTogdm9pZCB7XHJcblx0XHR0aGlzLl9jbGFzc01hcCA9IHtcclxuXHRcdFx0W3RoaXMuX3ByZWZpeENsc106IHRydWUsXHJcblx0XHRcdFtgJHt0aGlzLl9wcmVmaXhDbHN9LWNoZWNrZWRgXTogdGhpcy5fY2hlY2tlZCxcclxuXHRcdFx0W2Ake3RoaXMuX3ByZWZpeENsc30tZGlzYWJsZWRgXTogdGhpcy5fZGlzYWJsZWQsXHJcblx0XHRcdFtgJHt0aGlzLl9wcmVmaXhDbHN9LXNtYWxsYF06IHRoaXMuX3NpemUgPT09IFwic21hbGxcIixcclxuXHRcdFx0W3RoaXMuX2NvbG9yXTogdGhpcy5fY29sb3JcclxuXHRcdH07XHJcblx0fVxyXG5cclxuXHR3cml0ZVZhbHVlKHZhbHVlOiBib29sZWFuKTogdm9pZCB7XHJcblx0XHR0aGlzLnVwZGF0ZVZhbHVlKHZhbHVlKTtcclxuXHR9XHJcblxyXG5cdHJlZ2lzdGVyT25DaGFuZ2UoZm46IChfOiBib29sZWFuKSA9PiB2b2lkKTogdm9pZCB7XHJcblx0XHR0aGlzLm9uQ2hhbmdlID0gZm47XHJcblx0fVxyXG5cclxuXHRyZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xyXG5cdFx0dGhpcy5vblRvdWNoZWQgPSBmbjtcclxuXHR9XHJcblxyXG5cdHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xyXG5cdFx0dGhpcy5EaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XHJcblx0fVxyXG5cclxuXHRuZ09uSW5pdCgpOiB2b2lkIHtcclxuXHRcdHRoaXMuc2V0Q2xhc3NNYXAoKTtcclxuXHR9XHJcbn1cclxuIl19