@wizishop/wizi-block 4.2.32-beta → 4.2.35-beta

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 (60) hide show
  1. package/bundles/wizishop-wizi-block.umd.js +320 -364
  2. package/bundles/wizishop-wizi-block.umd.js.map +1 -1
  3. package/bundles/wizishop-wizi-block.umd.min.js +1 -1
  4. package/bundles/wizishop-wizi-block.umd.min.js.map +1 -1
  5. package/esm2015/lib/services/blocks/images/images-banner.service.js +2 -2
  6. package/esm2015/lib/services/blocks/images/images-simple.service.js +2 -2
  7. package/esm2015/lib/services/blocks/text-backgrounds/text-backgrounds-simple.service.js +2 -2
  8. package/esm2015/lib/services/blocks/text-backgrounds/text-backgrounds-with-banner.service.js +2 -2
  9. package/esm2015/lib/services/blocks/text-backgrounds/text-backgrounds-with-txt.service.js +2 -2
  10. package/esm2015/lib/shared/components/editorjs/editorjs.component.js +21 -12
  11. package/esm2015/lib/shared/components/editorjs/tools/inline/bold-tool.component.js +1 -1
  12. package/esm2015/lib/shared/components/editorjs/tools/inline/capitalize-tool.component.js +1 -1
  13. package/esm2015/lib/shared/components/editorjs/tools/inline/italic-tool.component.js +1 -1
  14. package/esm2015/lib/shared/components/editorjs/tools/inline/link-tool.component.js +1 -1
  15. package/esm2015/lib/shared/components/editorjs/tools/inline/strike-tool.component.js +1 -1
  16. package/esm2015/lib/shared/components/editorjs/tools/inline/subscript-tool.component.js +1 -1
  17. package/esm2015/lib/shared/components/editorjs/tools/inline/superscript-tool.component.js +1 -1
  18. package/esm2015/lib/shared/components/editorjs/tools/inline/tool-type/inline-style-tool.component.js +105 -64
  19. package/esm2015/lib/shared/components/editorjs/tools/inline/tool-type/text-tool.component.js +1 -18
  20. package/esm2015/lib/shared/components/editorjs/tools/inline/underline-tool.component.js +1 -1
  21. package/esm2015/lib/shared/components/editorjs/tools/paragraph/ordered-list-tool.component.js +2 -2
  22. package/esm2015/lib/shared/components/editorjs/tools/paragraph/quote-tool.component.js +2 -2
  23. package/esm2015/lib/shared/components/editorjs/tools/paragraph/text-align-tool.component.js +2 -2
  24. package/esm2015/lib/shared/components/editorjs/tools/paragraph/text-type-tool.component.js +2 -2
  25. package/esm2015/lib/shared/components/editorjs/tools/paragraph/tool-type/paragraph-style-tool.component.js +2 -18
  26. package/esm2015/lib/shared/components/editorjs/tools/paragraph/tool-type/text-edition.component.js +1 -1
  27. package/esm2015/lib/shared/components/editorjs/tools/paragraph/unordered-list-tool.component.js +2 -2
  28. package/esm2015/lib/shared/components/editorjs/tools/utils/editorjs-tool.component.js +8 -1
  29. package/esm2015/lib/shared/components/quill/quill.component.js +2 -1
  30. package/esm2015/lib/structures/map/background-form-left/map-background-form-left.component.js +32 -41
  31. package/esm2015/lib/structures/map/background-form-right/map-background-form-right.component.js +32 -41
  32. package/esm2015/lib/structures/map/fullpage/map-fullpage.component.js +32 -43
  33. package/esm2015/lib/structures/map/left-text/map-left-text.component.js +30 -41
  34. package/esm2015/lib/structures/map/right-text/map-right-text.component.js +30 -41
  35. package/esm2015/lib/structures/map/text-form/map-text-form.component.js +32 -43
  36. package/esm2015/lib/structures/structures.module.js +3 -1
  37. package/fesm2015/wizishop-wizi-block.js +328 -355
  38. package/fesm2015/wizishop-wizi-block.js.map +1 -1
  39. package/lib/shared/components/editorjs/editorjs.component.d.ts +1 -0
  40. package/lib/shared/components/editorjs/tools/inline/bold-tool.component.d.ts +1 -1
  41. package/lib/shared/components/editorjs/tools/inline/capitalize-tool.component.d.ts +1 -1
  42. package/lib/shared/components/editorjs/tools/inline/italic-tool.component.d.ts +1 -1
  43. package/lib/shared/components/editorjs/tools/inline/link-tool.component.d.ts +1 -1
  44. package/lib/shared/components/editorjs/tools/inline/strike-tool.component.d.ts +1 -1
  45. package/lib/shared/components/editorjs/tools/inline/subscript-tool.component.d.ts +1 -1
  46. package/lib/shared/components/editorjs/tools/inline/superscript-tool.component.d.ts +1 -1
  47. package/lib/shared/components/editorjs/tools/inline/tool-type/inline-style-tool.component.d.ts +2 -0
  48. package/lib/shared/components/editorjs/tools/inline/tool-type/text-tool.component.d.ts +0 -1
  49. package/lib/shared/components/editorjs/tools/inline/underline-tool.component.d.ts +1 -1
  50. package/lib/shared/components/editorjs/tools/paragraph/tool-type/paragraph-style-tool.component.d.ts +0 -1
  51. package/lib/shared/components/editorjs/tools/utils/editorjs-tool.component.d.ts +2 -0
  52. package/lib/structures/map/background-form-left/map-background-form-left.component.d.ts +8 -6
  53. package/lib/structures/map/background-form-right/map-background-form-right.component.d.ts +8 -6
  54. package/lib/structures/map/fullpage/map-fullpage.component.d.ts +7 -5
  55. package/lib/structures/map/left-text/map-left-text.component.d.ts +7 -5
  56. package/lib/structures/map/right-text/map-right-text.component.d.ts +7 -5
  57. package/lib/structures/map/text-form/map-text-form.component.d.ts +8 -6
  58. package/package.json +1 -1
  59. package/wizi-block.scss +35 -30
  60. package/wizishop-wizi-block.metadata.json +1 -1
@@ -265,4 +265,4 @@ function onEditList(event) {
265
265
  }
266
266
  }
267
267
  }
268
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1lZGl0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIvaG9tZS9wYXVsaW5lL0RvY3VtZW50cy93b3Jrc3BhY2Uvd2l6aS1ibG9jay9wcm9qZWN0cy93aXppLWJsb2NrL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9zaGFyZWQvY29tcG9uZW50cy9lZGl0b3Jqcy90b29scy9wYXJhZ3JhcGgvdG9vbC10eXBlL3RleHQtZWRpdGlvbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDdEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbkUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDbkYsT0FBTyxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDcEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUU3QyxNQUFNLE9BQWdCLGVBQWdCLFNBQVEsa0JBQWtCO0lBQWhFOztRQUtJLG1CQUFjLEdBQUcscUJBQXFCLENBQUM7UUFDdkMsZUFBVSxHQUFHLDRCQUE0QixDQUFDO1FBQzFDLGdCQUFXLEdBQUcsb0NBQW9DLENBQUM7UUFDbkQsZ0JBQVcsR0FBRyxxQ0FBcUMsQ0FBQztJQXlLeEQsQ0FBQztJQXZLRyxJQUFJO1FBQ0EsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDckMsSUFBSSxTQUFTLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN0RCxJQUFJLGNBQWMsR0FBRyxJQUFJLENBQUMscUJBQXFCLENBQUMsTUFBTSxDQUFDLEVBQUUsR0FBRyxRQUFRLENBQUM7WUFDakUsQ0FB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LGdCQUFnQixDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQzthQUM1SDtTQUNKO0tBQ0o7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGFyYWdyYXBoU3R5bGVUb29sIH0gZnJvbSAnLi9wYXJhZ3JhcGgtc3R5bGUtdG9vbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgTElTVF9FRElUX0tFWV9DT0RFUyB9IGZyb20gJy4uLy4uL3V0aWxzL2NvbG9ycy5jb21wb25lbnQnO1xuaW1wb3J0IHsgZWRpdG9ySlNJMThuRGljdGlvbm5hcnkgfSBmcm9tICcuLi8uLi91dGlscy9lZGl0b3Jqcy10cmFuc2xhdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IEVkaXRvclZpZXcsIGJhc2ljU2V0dXAgfSBmcm9tICdjb2RlbWlycm9yJztcbmltcG9ydCB7IEVkaXRvclN0YXRlIH0gZnJvbSAnQGNvZGVtaXJyb3Ivc3RhdGUnO1xuaW1wb3J0IHsgaHRtbCB9IGZyb20gJ0Bjb2RlbWlycm9yL2xhbmctaHRtbCc7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBUZXh0RWRpdGlvblRvb2wgZXh0ZW5kcyBQYXJhZ3JhcGhTdHlsZVRvb2wge1xuICAgIG5vZGVzOiB7IGJ1dHRvbjogSFRNTEJ1dHRvbkVsZW1lbnQgfTtcblxuICAgIENTUzogYW55O1xuXG4gICAgY29udGFpbmVyQ2xhc3MgPSAnY29kZUVkaXRfX2NvbnRhaW5lcic7XG4gICAgbW9kYWxDbGFzcyA9ICdjb2RlRWRpdF9fY29udGFpbmVyX19tb2RhbCc7XG4gICAgZWRpdG9yQ2xhc3MgPSAnY29kZUVkaXRfX2NvbnRhaW5lcl9fbW9kYWxfX2VkaXRvcic7XG4gICAgYnV0dG9uQ2xhc3MgPSAnY29kZUVkaXRfX2NvbnRhaW5lcl9fbW9kYWxfX2J1dHRvbnMnO1xuXG4gICAgdW5kbygpIHtcbiAgICAgICAgbGV0IGVkaXRvciA9IHRoaXMuZmluZFBhcmVudEVkaXRvcigpO1xuICAgICAgICBsZXQgc2F2ZWREYXRhID0gdGhpcy5nZXRTYXZlZEVkaXRvckNvbnRlbnQoZWRpdG9yLmlkKTtcbiAgICAgICAgbGV0IHNhdmVkRGF0YUluZGV4ID0gdGhpcy5nZXRTYXZlZEVkaXRvckNvbnRlbnQoZWRpdG9yLmlkICsgJy1pbmRleCcpXG4gICAgICAgICAgICA/IHBhcnNlSW50KHRoaXMuZ2V0U2F2ZWRFZGl0b3JDb250ZW50KGVkaXRvci5pZCArICctaW5kZXgnKSlcbiAgICAgICAgICAgIDogLTE7XG4gICAgICAgIGxldCBwYXJzZWRTYXZlZERhdGE6IEFycmF5PHN0cmluZz4gPSBbXTtcbiAgICAgICAgaWYgKCFzYXZlZERhdGEpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBwYXJzZWRTYXZlZERhdGEgPSBKU09OLnBhcnNlKHNhdmVkRGF0YSk7XG4gICAgICAgIC0tc2F2ZWREYXRhSW5kZXg7XG4gICAgICAgIHNhdmVkRGF0YUluZGV4ID0gc2F2ZWREYXRhSW5kZXggPCAwID8gMCA6IHNhdmVkRGF0YUluZGV4O1xuICAgICAgICBjb2RlRWRpdEVkaXRvciA9IHRoaXMuZmluZFBhcmVudEVkaXRvcigpO1xuICAgICAgICBjb2RlRWRpdEFwaSA9IHRoaXMuYXBpO1xuICAgICAgICBzYXZlQ29kZUVkaXRNb2RhbChwYXJzZWRTYXZlZERhdGFbc2F2ZWREYXRhSW5kZXhdKTtcbiAgICAgICAgdGhpcy5zZXRTYXZlZEVkaXRvckNvbnRlbnQoZWRpdG9yLmlkICsgJy1pbmRleCcsIHNhdmVkRGF0YUluZGV4LnRvU3RyaW5nKCkpO1xuICAgIH1cblxuICAgIHJlZG8oKSB7XG4gICAgICAgIGxldCBlZGl0b3IgPSB0aGlzLmZpbmRQYXJlbnRFZGl0b3IoKTtcblxuICAgICAgICBsZXQgc2F2ZWREYXRhID0gdGhpcy5nZXRTYXZlZEVkaXRvckNvbnRlbnQoZWRpdG9yLmlkKTtcbiAgICAgICAgbGV0IHNhdmVkRGF0YUluZGV4ID0gdGhpcy5nZXRTYXZlZEVkaXRvckNvbnRlbnQoZWRpdG9yLmlkICsgJy1pbmRleCcpXG4gICAgICAgICAgICA/IHBhcnNlSW50KHRoaXMuZ2V0U2F2ZWRFZGl0b3JDb250ZW50KGVkaXRvci5pZCArICctaW5kZXgnKSlcbiAgICAgICAgICAgIDogLTE7XG4gICAgICAgIGxldCBwYXJzZWRTYXZlZERhdGE6IEFycmF5PHN0cmluZz4gPSBbXTtcbiAgICAgICAgaWYgKCFzYXZlZERhdGEpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBwYXJzZWRTYXZlZERhdGEgPSBKU09OLnBhcnNlKHNhdmVkRGF0YSk7XG4gICAgICAgICsrc2F2ZWREYXRhSW5kZXg7XG4gICAgICAgIHNhdmVkRGF0YUluZGV4ID0gc2F2ZWREYXRhSW5kZXggPiBwYXJzZWRTYXZlZERhdGEubGVuZ3RoID8gcGFyc2VkU2F2ZWREYXRhLmxlbmd0aCA6IHNhdmVkRGF0YUluZGV4O1xuICAgICAgICBjb2RlRWRpdEVkaXRvciA9IHRoaXMuZmluZFBhcmVudEVkaXRvcigpO1xuICAgICAgICBjb2RlRWRpdEFwaSA9IHRoaXMuYXBpO1xuICAgICAgICBzYXZlQ29kZUVkaXRNb2RhbChwYXJzZWRTYXZlZERhdGFbc2F2ZWREYXRhSW5kZXhdKTtcbiAgICAgICAgdGhpcy5zZXRTYXZlZEVkaXRvckNvbnRlbnQoZWRpdG9yLmlkICsgJy1pbmRleCcsIHNhdmVkRGF0YUluZGV4LnRvU3RyaW5nKCkpO1xuICAgIH1cblxuICAgIGVkaXRIVE1MKCkge1xuICAgICAgICBsZXQgY29udGVudCA9IHRoaXMuZ2V0RWRpdG9yQ29udGVudCgpO1xuICAgICAgICB0aGlzLmNyZWF0ZUhUTUxFZGl0TW9kYWwoY29udGVudCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjcmVhdGVIVE1MRWRpdE1vZGFsKGNvbnRlbnQ6IHN0cmluZykge1xuICAgICAgICBsZXQgY29udGFpbmVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgICAgIGNvbnRhaW5lci5jbGFzc0xpc3QuYWRkKHRoaXMuY29udGFpbmVyQ2xhc3MpO1xuICAgICAgICBsZXQgbW9kYWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICAgICAgbW9kYWwuY2xhc3NMaXN0LmFkZCh0aGlzLm1vZGFsQ2xhc3MpO1xuICAgICAgICBsZXQgZWRpdG9yQ29udGFpbmVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgICAgIGVkaXRvckNvbnRhaW5lci5jbGFzc0xpc3QuYWRkKHRoaXMuZWRpdG9yQ2xhc3MpO1xuICAgICAgICBjb2RlRWRpdEVkaXRvciA9IHRoaXMuZmluZFBhcmVudEVkaXRvcigpO1xuICAgICAgICBjb2RlRWRpdEFwaSA9IHRoaXMuYXBpO1xuXG4gICAgICAgIGxldCBidXR0b25Db250YWluZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICAgICAgbGV0IGNhbmNlbEJ1dHRvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2J1dHRvbicpO1xuICAgICAgICBsZXQgc2F2ZUJ1dHRvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2J1dHRvbicpO1xuICAgICAgICBjYW5jZWxCdXR0b24uaW5uZXJUZXh0ID0gZWRpdG9ySlNJMThuRGljdGlvbm5hcnkubWVzc2FnZXMudG9vbHMuY29kZUVkaXRbJ0NhbmNlbCddO1xuICAgICAgICBzYXZlQnV0dG9uLmlubmVyVGV4dCA9IGVkaXRvckpTSTE4bkRpY3Rpb25uYXJ5Lm1lc3NhZ2VzLnRvb2xzLmNvZGVFZGl0WydTYXZlJ107XG4gICAgICAgIGNhbmNlbEJ1dHRvbi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGNsb3NlQ29kZUVkaXRNb2RhbCwgdHJ1ZSk7XG4gICAgICAgIGJ1dHRvbkNvbnRhaW5lci5hcHBlbmRDaGlsZChjYW5jZWxCdXR0b24pO1xuICAgICAgICBidXR0b25Db250YWluZXIuY2xhc3NMaXN0LmFkZCh0aGlzLmJ1dHRvbkNsYXNzKTtcblxuICAgICAgICBtb2RhbC5hcHBlbmRDaGlsZChlZGl0b3JDb250YWluZXIpO1xuICAgICAgICBtb2RhbC5hcHBlbmRDaGlsZChidXR0b25Db250YWluZXIpO1xuICAgICAgICBjb250YWluZXIuYXBwZW5kQ2hpbGQobW9kYWwpO1xuICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGNvbnRhaW5lcik7XG5cbiAgICAgICAgbGV0IHN0YXRlID0gRWRpdG9yU3RhdGUuY3JlYXRlKHtcbiAgICAgICAgICAgIGRvYzogY29udGVudCxcbiAgICAgICAgICAgIGV4dGVuc2lvbnM6IFtiYXNpY1NldHVwLCBodG1sKCldLFxuICAgICAgICB9KTtcbiAgICAgICAgbGV0IHZpZXcgPSBuZXcgRWRpdG9yVmlldyh7XG4gICAgICAgICAgICBzdGF0ZTogc3RhdGUsXG4gICAgICAgICAgICBwYXJlbnQ6IGVkaXRvckNvbnRhaW5lcixcbiAgICAgICAgfSk7XG5cbiAgICAgICAgc2F2ZUJ1dHRvbi5hZGRFdmVudExpc3RlbmVyKFxuICAgICAgICAgICAgJ2NsaWNrJyxcbiAgICAgICAgICAgICgpID0+IHNhdmVDb2RlRWRpdE1vZGFsKHZpZXcuc3RhdGUuZG9jLnRvU3RyaW5nKCkpLFxuICAgICAgICAgICAgdHJ1ZVxuICAgICAgICApO1xuICAgICAgICBidXR0b25Db250YWluZXIuYXBwZW5kQ2hpbGQoc2F2ZUJ1dHRvbik7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRTYXZlZEVkaXRvckNvbnRlbnQobmFtZTogc3RyaW5nKSB7XG4gICAgICAgIHJldHVybiBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShuYW1lKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldFNhdmVkRWRpdG9yQ29udGVudChuYW1lOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0obmFtZSwgdmFsdWUpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0RWRpdG9yQ29udGVudCgpOiBzdHJpbmcge1xuICAgICAgICBsZXQgY3VycmVudEVkaXRvciA9IHRoaXMuZmluZFBhcmVudEVkaXRvcigpO1xuICAgICAgICBsZXQgZWRpdG9yQmxvY2tzID0gY3VycmVudEVkaXRvci5xdWVyeVNlbGVjdG9yQWxsKCcuY29kZXgtZWRpdG9yX19yZWRhY3RvciAuY2UtcGFyYWdyYXBoJyk7XG4gICAgICAgIGxldCBjb250ZW50ID0gJyc7XG4gICAgICAgIGVkaXRvckJsb2Nrcy5mb3JFYWNoKChibG9jaykgPT4ge1xuICAgICAgICAgICAgbGV0IGNsb3NpbmdUYWcgPSAnPC8nICsgYmxvY2suY2hpbGRyZW5bMF0/LnRhZ05hbWUudG9Mb3dlckNhc2UoKSArICc+JztcbiAgICAgICAgICAgIGxldCByZWdleHAgPSAvKCg8XFwvKVxcdysoPikpKD8hW1xcc1xcU10qKCg8XFwvKVxcdysoPikpW1xcc1xcU10qJCkvaTtcbiAgICAgICAgICAgIGxldCBsYXN0Q29udGVudENsb3NpbmdUYWcgPSBjb250ZW50Lm1hdGNoKHJlZ2V4cCkgPyBjb250ZW50Lm1hdGNoKHJlZ2V4cClbMF0gOiAnJztcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAoYmxvY2suY2hpbGRyZW5bMF0/LnRhZ05hbWUudG9Mb3dlckNhc2UoKSA9PT0gJ3VsJyB8fCBibG9jay5jaGlsZHJlblswXT8udGFnTmFtZS50b0xvd2VyQ2FzZSgpID09PSAnb2wnKSAmJlxuICAgICAgICAgICAgICAgIGxhc3RDb250ZW50Q2xvc2luZ1RhZyA9PT0gY2xvc2luZ1RhZ1xuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgY29udGVudCA9IGNvbnRlbnQuc3Vic3RyaW5nKDAsIGNvbnRlbnQubGVuZ3RoIC0gY2xvc2luZ1RhZy5sZW5ndGgpO1xuICAgICAgICAgICAgICAgIGNvbnRlbnQgKz0gYmxvY2suaW5uZXJIVE1MLnN1YnN0cmluZyhjbG9zaW5nVGFnLnJlcGxhY2UoJy8nLCAnJykubGVuZ3RoLCBibG9jay5pbm5lckhUTUwubGVuZ3RoKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY29udGVudCArPSBibG9jay5pbm5lckhUTUw7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gdGhpcy5Gb3JtYXRIVE1MU3RyaW5nSW5kZW50YXRpb24oY29udGVudCk7XG4gICAgfVxuXG4gICAgLy8gQWRhcHRlZCBGUk9NIGpzZmlkZGxlIGhlcmU6IGh0dHBzOi8vanNmaWRkbGUubmV0L2J1a3N5L3J4dWNnMWdkL1xuICAgIHByaXZhdGUgRm9ybWF0SFRNTFN0cmluZ0luZGVudGF0aW9uKGNvZGU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIGxldCBzdHJpcFdoaXRlU3BhY2VzID0gdHJ1ZTtcbiAgICAgICAgbGV0IHN0cmlwRW1wdHlMaW5lcyA9IHRydWU7XG4gICAgICAgIGNvbnN0IHdoaXRlc3BhY2UgPSAnICcucmVwZWF0KDIpOyAvLyBEZWZhdWx0IGluZGVudGluZyA0IHdoaXRlc3BhY2VzXG4gICAgICAgIGxldCBjdXJyZW50SW5kZW50ID0gMDtcbiAgICAgICAgY29uc3QgbmV3bGluZUNoYXIgPSAnXFxuJztcbiAgICAgICAgbGV0IHByZXZDaGFyID0gbnVsbDtcbiAgICAgICAgbGV0IGNoYXIgPSBudWxsO1xuICAgICAgICBsZXQgbmV4dENoYXIgPSBudWxsO1xuXG4gICAgICAgIGxldCByZXN1bHQgPSAnJztcbiAgICAgICAgZm9yIChsZXQgcG9zID0gMDsgcG9zIDw9IGNvZGUubGVuZ3RoOyBwb3MrKykge1xuICAgICAgICAgICAgcHJldkNoYXIgPSBjaGFyO1xuICAgICAgICAgICAgY2hhciA9IGNvZGUuc3Vic3RyKHBvcywgMSk7XG4gICAgICAgICAgICBuZXh0Q2hhciA9IGNvZGUuc3Vic3RyKHBvcyArIDEsIDEpO1xuXG4gICAgICAgICAgICBjb25zdCBpc0JyVGFnID0gY29kZS5zdWJzdHIocG9zLCA0KSA9PT0gJzxicj4nO1xuICAgICAgICAgICAgY29uc3QgaXNPcGVuaW5nVGFnID0gY2hhciA9PT0gJzwnICYmIG5leHRDaGFyICE9PSAnLycgJiYgIWlzQnJUYWc7XG4gICAgICAgICAgICBjb25zdCBpc0Nsb3NpbmdUYWcgPSBjaGFyID09PSAnPCcgJiYgbmV4dENoYXIgPT09ICcvJyAmJiAhaXNCclRhZztcbiAgICAgICAgICAgIGNvbnN0IGlzVGFnRW5kID0gcHJldkNoYXIgPT09ICc+JyAmJiBjaGFyICE9PSAnPCcgJiYgY3VycmVudEluZGVudCA+IDA7XG4gICAgICAgICAgICBjb25zdCBpc1RhZ05leHQgPVxuICAgICAgICAgICAgICAgICFpc0JyVGFnICYmICFpc09wZW5pbmdUYWcgJiYgIWlzQ2xvc2luZ1RhZyAmJiBpc1RhZ0VuZCAmJiBjb2RlLnN1YnN0cihwb3MsIGNvZGUuc3Vic3RyKHBvcykuaW5kZXhPZignPCcpKS50cmltKCkgPT09ICcnO1xuICAgICAgICAgICAgaWYgKGlzQnJUYWcpIHtcbiAgICAgICAgICAgICAgICAvLyBJZiBvcGVuaW5nIHRhZywgYWRkIG5ld2xpbmUgY2hhcmFjdGVyIGFuZCBpbmRlbnRpb25cbiAgICAgICAgICAgICAgICByZXN1bHQgKz0gbmV3bGluZUNoYXIgKyB3aGl0ZXNwYWNlLnJlcGVhdChjdXJyZW50SW5kZW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChpc09wZW5pbmdUYWcpIHtcbiAgICAgICAgICAgICAgICAvLyBJZiBvcGVuaW5nIHRhZywgYWRkIG5ld2xpbmUgY2hhcmFjdGVyIGFuZCBpbmRlbnRpb25cbiAgICAgICAgICAgICAgICByZXN1bHQgKz0gKHBvcyA9PT0gMCA/ICcnIDogbmV3bGluZUNoYXIpICsgd2hpdGVzcGFjZS5yZXBlYXQoY3VycmVudEluZGVudCk7XG4gICAgICAgICAgICAgICAgY3VycmVudEluZGVudCsrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gaWYgQ2xvc2luZyB0YWcsIGFkZCBuZXdsaW5lIGFuZCBpbmRlbnRpb25cbiAgICAgICAgICAgIGVsc2UgaWYgKGlzQ2xvc2luZ1RhZykge1xuICAgICAgICAgICAgICAgIC8vIElmIHRoZXJlJ3JlIG1vcmUgY2xvc2luZyB0YWdzIHRoYW4gb3BlbmluZ1xuICAgICAgICAgICAgICAgIGlmICgtLWN1cnJlbnRJbmRlbnQgPCAwKSBjdXJyZW50SW5kZW50ID0gMDtcbiAgICAgICAgICAgICAgICByZXN1bHQgKz0gbmV3bGluZUNoYXIgKyB3aGl0ZXNwYWNlLnJlcGVhdChjdXJyZW50SW5kZW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIHJlbW92ZSBtdWx0aXBsZSB3aGl0ZXNwYWNlc1xuICAgICAgICAgICAgZWxzZSBpZiAoc3RyaXBXaGl0ZVNwYWNlcyA9PT0gdHJ1ZSAmJiBjaGFyID09PSAnICcgJiYgbmV4dENoYXIgPT09ICcgJykgY2hhciA9ICcnO1xuICAgICAgICAgICAgLy8gcmVtb3ZlIGVtcHR5IGxpbmVzXG4gICAgICAgICAgICBlbHNlIGlmIChzdHJpcEVtcHR5TGluZXMgPT09IHRydWUgJiYgY2hhciA9PT0gbmV3bGluZUNoYXIpIHtcbiAgICAgICAgICAgICAgICAvL2RlYnVnZ2VyO1xuICAgICAgICAgICAgICAgIGlmIChjb2RlLnN1YnN0cihwb3MsIGNvZGUuc3Vic3RyKHBvcykuaW5kZXhPZignPCcpKS50cmltKCkgPT09ICcnKSBjaGFyID0gJyc7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoaXNUYWdFbmQgJiYgIWlzVGFnTmV4dCkge1xuICAgICAgICAgICAgICAgIHJlc3VsdCArPSBuZXdsaW5lQ2hhciArIHdoaXRlc3BhY2UucmVwZWF0KGN1cnJlbnRJbmRlbnQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXN1bHQgKz0gY2hhcjtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cbn1cblxudmFyIGNvZGVFZGl0RWRpdG9yID0gbnVsbDtcbnZhciBjb2RlRWRpdEFwaSA9IG51bGw7XG5cbmZ1bmN0aW9uIGNsb3NlQ29kZUVkaXRNb2RhbCgpIHtcbiAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcuY29kZUVkaXRfX2NvbnRhaW5lcicpPy5yZW1vdmUoKTtcbn1cblxuZnVuY3Rpb24gc2F2ZUNvZGVFZGl0TW9kYWwoY29udGVudCkge1xuICAgIGxldCB0bXBFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgdG1wRWxlbWVudC5pbm5lckhUTUwgPSBjb250ZW50O1xuXG4gICAgY29kZUVkaXRBcGkuYmxvY2tzLmNsZWFyKCk7XG4gICAgbGV0IHBhcmFncmFwaCA9IGNvZGVFZGl0RWRpdG9yLnF1ZXJ5U2VsZWN0b3JBbGwoJy5jZS1wYXJhZ3JhcGgnKTtcbiAgICBsZXQgaSA9IDA7XG5cbiAgICB3aGlsZSAodG1wRWxlbWVudC5maXJzdEVsZW1lbnRDaGlsZCkge1xuICAgICAgICBpZiAodG1wRWxlbWVudC5maXJzdEVsZW1lbnRDaGlsZC50YWdOYW1lLnRvTG93ZXJDYXNlKCkgPT09ICd1bCcgfHwgdG1wRWxlbWVudC5maXJzdEVsZW1lbnRDaGlsZC50YWdOYW1lLnRvTG93ZXJDYXNlKCkgPT09ICdvbCcpIHtcbiAgICAgICAgICAgIGxldCBsaXN0TWFya2VyID0gMTtcbiAgICAgICAgICAgIGxldCBwcmV2aW91c0NvbnRhaW5lcldhc09sID0gZmFsc2U7XG4gICAgICAgICAgICB3aGlsZSAodG1wRWxlbWVudC5maXJzdEVsZW1lbnRDaGlsZC5maXJzdEVsZW1lbnRDaGlsZCkge1xuICAgICAgICAgICAgICAgIGxldCBjb250YWluZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRtcEVsZW1lbnQuZmlyc3RFbGVtZW50Q2hpbGQudGFnTmFtZSk7XG4gICAgICAgICAgICAgICAgY29udGFpbmVyLmFwcGVuZENoaWxkKHRtcEVsZW1lbnQuZmlyc3RFbGVtZW50Q2hpbGQuZmlyc3RFbGVtZW50Q2hpbGQuY2xvbmVOb2RlKHRydWUpKTtcbiAgICAgICAgICAgICAgICBpZiAoY29udGFpbmVyLnRhZ05hbWUudG9Mb3dlckNhc2UoKSA9PT0gJ29sJykge1xuICAgICAgICAgICAgICAgICAgICBpZiAoIXByZXZpb3VzQ29udGFpbmVyV2FzT2wpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxpc3RNYXJrZXIgPSAxO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lci5maXJzdEVsZW1lbnRDaGlsZC5zZXRBdHRyaWJ1dGUoJ3ZhbHVlJywgbGlzdE1hcmtlci50b1N0cmluZygpKTtcbiAgICAgICAgICAgICAgICAgICAgcHJldmlvdXNDb250YWluZXJXYXNPbCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICsrbGlzdE1hcmtlcjtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBwcmV2aW91c0NvbnRhaW5lcldhc09sID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChpID49IHBhcmFncmFwaC5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgY29kZUVkaXRBcGkuYmxvY2tzLmluc2VydCgpO1xuICAgICAgICAgICAgICAgICAgICBsZXQgdG1wUGFyYWdyYXBoID0gY29kZUVkaXRFZGl0b3IucXVlcnlTZWxlY3RvckFsbCgnLmNlLXBhcmFncmFwaCcpO1xuICAgICAgICAgICAgICAgICAgICB0bXBQYXJhZ3JhcGhbdG1wUGFyYWdyYXBoLmxlbmd0aCAtIDFdLmlubmVySFRNTCA9ICcnO1xuICAgICAgICAgICAgICAgICAgICB0bXBQYXJhZ3JhcGhbdG1wUGFyYWdyYXBoLmxlbmd0aCAtIDFdLmFwcGVuZENoaWxkKGNvbnRhaW5lcik7XG4gICAgICAgICAgICAgICAgICAgIHRtcFBhcmFncmFwaFt0bXBQYXJhZ3JhcGgubGVuZ3RoIC0gMV0uYWRkRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsIG9uRWRpdExpc3QsIHRydWUpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHBhcmFncmFwaFtpXS5pbm5lckhUTUwgPSAnJztcbiAgICAgICAgICAgICAgICAgICAgcGFyYWdyYXBoW2ldLmFwcGVuZENoaWxkKGNvbnRhaW5lcik7XG4gICAgICAgICAgICAgICAgICAgIHBhcmFncmFwaFtpXS5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJywgb25FZGl0TGlzdCwgdHJ1ZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRtcEVsZW1lbnQuZmlyc3RFbGVtZW50Q2hpbGQuZmlyc3RFbGVtZW50Q2hpbGQucmVtb3ZlKCk7XG4gICAgICAgICAgICAgICAgKytpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKGkgPj0gcGFyYWdyYXBoLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIGNvZGVFZGl0QXBpLmJsb2Nrcy5pbnNlcnQoKTtcbiAgICAgICAgICAgICAgICBsZXQgdG1wUGFyYWdyYXBoID0gY29kZUVkaXRFZGl0b3IucXVlcnlTZWxlY3RvckFsbCgnLmNlLXBhcmFncmFwaCcpO1xuICAgICAgICAgICAgICAgIHRtcFBhcmFncmFwaFt0bXBQYXJhZ3JhcGgubGVuZ3RoIC0gMV0uaW5uZXJIVE1MID0gJyc7XG4gICAgICAgICAgICAgICAgdG1wUGFyYWdyYXBoW3RtcFBhcmFncmFwaC5sZW5ndGggLSAxXS5hcHBlbmRDaGlsZCh0bXBFbGVtZW50LmZpcnN0RWxlbWVudENoaWxkLmNsb25lTm9kZSh0cnVlKSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHBhcmFncmFwaFtpXS5pbm5lckhUTUwgPSAnJztcbiAgICAgICAgICAgICAgICBwYXJhZ3JhcGhbaV0uYXBwZW5kQ2hpbGQodG1wRWxlbWVudC5maXJzdEVsZW1lbnRDaGlsZC5jbG9uZU5vZGUodHJ1ZSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgKytpO1xuICAgICAgICB9XG4gICAgICAgIHRtcEVsZW1lbnQuZmlyc3RFbGVtZW50Q2hpbGQucmVtb3ZlKCk7XG4gICAgfVxuXG4gICAgY2xvc2VDb2RlRWRpdE1vZGFsKCk7XG59XG5cbmZ1bmN0aW9uIG9uRWRpdExpc3QoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICBsZXQgZm9jdXNlZEJsb2NrID0gPEhUTUxFbGVtZW50PmV2ZW50LnRhcmdldDtcbiAgICBpZiAoTElTVF9FRElUX0tFWV9DT0RFUy5pbmRleE9mKGV2ZW50LmNvZGUpID4gLTEpIHtcbiAgICAgICAgaWYgKGV2ZW50LmNvZGUgPT09ICdCYWNrc3BhY2UnKSB7XG4gICAgICAgICAgICBpZiAoZm9jdXNlZEJsb2NrLmlubmVyVGV4dC5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgICBsZXQgY3VycmVudFBhcmFncmFwaCA9IGNvZGVFZGl0RWRpdG9yLnF1ZXJ5U2VsZWN0b3JBbGwoJy5jZS1wYXJhZ3JhcGgnKVtjb2RlRWRpdEFwaS5ibG9ja3MuZ2V0Q3VycmVudEJsb2NrSW5kZXgoKV07XG4gICAgICAgICAgICAgICAgY3VycmVudFBhcmFncmFwaC5pbm5lckhUTUwgPSAnJztcbiAgICAgICAgICAgICAgICBjdXJyZW50UGFyYWdyYXBoLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3AnKSk7XG4gICAgICAgICAgICAgICAgY3VycmVudFBhcmFncmFwaC5yZW1vdmVFdmVudExpc3RlbmVyKCdrZXlkb3duJywgb25FZGl0TGlzdCwgdHJ1ZSk7XG4gICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0U2VsZWN0aW9uKCkuc2V0QmFzZUFuZEV4dGVudChjdXJyZW50UGFyYWdyYXBoLnF1ZXJ5U2VsZWN0b3IoJ3AnKSwgMCwgY3VycmVudFBhcmFncmFwaC5xdWVyeVNlbGVjdG9yKCdwJyksIDApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgaWYgKGZvY3VzZWRCbG9jay5pbm5lclRleHQgIT09ICcnKSB7XG4gICAgICAgICAgICAgICAgY29kZUVkaXRBcGkuYmxvY2tzLmluc2VydCgncGFyYWdyYXBoJywgY29kZUVkaXRBcGkuYmxvY2tzLmdldEN1cnJlbnRCbG9ja0luZGV4KCkpO1xuICAgICAgICAgICAgICAgIGxldCBjdXJyZW50QmxvY2sgPSBjb2RlRWRpdEVkaXRvci5xdWVyeVNlbGVjdG9yQWxsKCcuY2UtYmxvY2snKVtjb2RlRWRpdEFwaS5ibG9ja3MuZ2V0Q3VycmVudEJsb2NrSW5kZXgoKV07XG4gICAgICAgICAgICAgICAgbGV0IHByZXZpb3VzQmxvY2sgPSBjb2RlRWRpdEVkaXRvci5xdWVyeVNlbGVjdG9yQWxsKCcuY2UtYmxvY2snKVtjb2RlRWRpdEFwaS5ibG9ja3MuZ2V0Q3VycmVudEJsb2NrSW5kZXgoKSAtIDFdO1xuICAgICAgICAgICAgICAgIGxldCBjdXJyZW50UGFyYWdyYXBoID0gY3VycmVudEJsb2NrLnF1ZXJ5U2VsZWN0b3IoJy5jZS1wYXJhZ3JhcGgnKTtcbiAgICAgICAgICAgICAgICBsZXQgbGlzdEVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHByZXZpb3VzQmxvY2sucXVlcnlTZWxlY3RvcignLmNlLXBhcmFncmFwaCcpLmZpcnN0RWxlbWVudENoaWxkLnRhZ05hbWUpO1xuICAgICAgICAgICAgICAgIGxpc3RFbGVtZW50LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2xpJykpO1xuICAgICAgICAgICAgICAgIGlmIChsaXN0RWxlbWVudC50YWdOYW1lLnRvTG93ZXJDYXNlKCkgPT09ICdvbCcpIHtcbiAgICAgICAgICAgICAgICAgICAgbGlzdEVsZW1lbnQuZmlyc3RFbGVtZW50Q2hpbGQuc2V0QXR0cmlidXRlKFxuICAgICAgICAgICAgICAgICAgICAgICAgJ3ZhbHVlJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIChwYXJzZUludChwcmV2aW91c0Jsb2NrLnF1ZXJ5U2VsZWN0b3IoJ2xpJykuZ2V0QXR0cmlidXRlKCd2YWx1ZScpKSArIDEpLnRvU3RyaW5nKClcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY3VycmVudFBhcmFncmFwaC5hcHBlbmRDaGlsZChsaXN0RWxlbWVudCk7XG4gICAgICAgICAgICAgICAgY3VycmVudFBhcmFncmFwaC5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJywgb25FZGl0TGlzdCwgdHJ1ZSk7XG4gICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0U2VsZWN0aW9uKCkuc2V0QmFzZUFuZEV4dGVudChjdXJyZW50UGFyYWdyYXBoLnF1ZXJ5U2VsZWN0b3IoJ2xpJyksIDAsIGN1cnJlbnRQYXJhZ3JhcGgucXVlcnlTZWxlY3RvcignbGknKSwgMCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGxldCBjdXJyZW50UGFyYWdyYXBoID0gY29kZUVkaXRFZGl0b3IucXVlcnlTZWxlY3RvckFsbCgnLmNlLXBhcmFncmFwaCcpW2NvZGVFZGl0QXBpLmJsb2Nrcy5nZXRDdXJyZW50QmxvY2tJbmRleCgpXTtcbiAgICAgICAgICAgICAgICBjdXJyZW50UGFyYWdyYXBoLmlubmVySFRNTCA9ICcnO1xuICAgICAgICAgICAgICAgIGN1cnJlbnRQYXJhZ3JhcGguYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgncCcpKTtcbiAgICAgICAgICAgICAgICBjdXJyZW50UGFyYWdyYXBoLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCBvbkVkaXRMaXN0LCB0cnVlKTtcbiAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRTZWxlY3Rpb24oKS5zZXRCYXNlQW5kRXh0ZW50KGN1cnJlbnRQYXJhZ3JhcGgucXVlcnlTZWxlY3RvcigncCcpLCAwLCBjdXJyZW50UGFyYWdyYXBoLnF1ZXJ5U2VsZWN0b3IoJ3AnKSwgMCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
268
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1lZGl0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIvaG9tZS9wYXVsaW5lL0RvY3VtZW50cy93b3Jrc3BhY2Uvd2l6aS1ibG9jay9wcm9qZWN0cy93aXppLWJsb2NrL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9zaGFyZWQvY29tcG9uZW50cy9lZGl0b3Jqcy90b29scy9wYXJhZ3JhcGgvdG9vbC10eXBlL3RleHQtZWRpdGlvbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDdEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbkUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDbkYsT0FBTyxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDcEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUU3QyxNQUFNLE9BQWdCLGVBQWdCLFNBQVEsa0JBQWtCO0lBQWhFOztRQUtJLG1CQUFjLEdBQUcscUJBQXFCLENBQUM7UUFDdkMsZUFBVSxHQUFHLDRCQUE0QixDQUFDO1FBQzFDLGdCQUFXLEdBQUcsb0NBQW9DLENBQUM7UUFDbkQsZ0JBQVcsR0FBRyxxQ0FBcUMsQ0FBQztJQXFLeEQsQ0FBQztJQW5LRyxJQUFJO1FBQ0EsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDckMsSUFBSSxTQUFTLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN0RCxJQUFJLGNBQWMsR0FBRyxJQUFJLENBQUMscUJBQXFCLENBQUMsTUFBTSxDQUFDLEVBQUUsR0FBRyxRQUFRLENBQUM7WUFDakUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsTUFBTSxDQUFDLEVBQUUsR0FBRyxRQUFRLENBQUMsQ0FBQztZQUM1RCxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDVCxJQUFJLGVBQWUsR0FBa0IsRUFBRSxDQUFDO1FBQ3hDLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDWixPQUFPO1NBQ1Y7UUFDRCxlQUFlLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN4QyxFQUFFLGNBQWMsQ0FBQztRQUNqQixjQUFjLEdBQUcsY0FBYyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUM7UUFDekQsY0FBYyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQ3pDLFdBQVcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDO1FBQ3ZCLGlCQUFpQixDQUFDLGVBQWUsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDO1FBQ25ELElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxNQUFNLENBQUMsRUFBRSxHQUFHLFFBQVEsRUFBRSxjQUFjLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUNoRixDQUFDO0lBRUQsSUFBSTtRQUNBLElBQUksTUFBTSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBRXJDLElBQUksU0FBUyxHQUFHLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDdEQsSUFBSSxjQUFjLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDLE1BQU0sQ0FBQyxFQUFFLEdBQUcsUUFBUSxDQUFDO1lBQ2pFLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLE1BQU0sQ0FBQyxFQUFFLEdBQUcsUUFBUSxDQUFDLENBQUM7WUFDNUQsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ1QsSUFBSSxlQUFlLEdBQWtCLEVBQUUsQ0FBQztRQUN4QyxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ1osT0FBTztTQUNWO1FBQ0QsZUFBZSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDeEMsRUFBRSxjQUFjLENBQUM7UUFDakIsY0FBYyxHQUFHLGNBQWMsR0FBRyxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUM7UUFDbkcsY0FBYyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQ3pDLFdBQVcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDO1FBQ3ZCLGlCQUFpQixDQUFDLGVBQWUsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDO1FBQ25ELElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxNQUFNLENBQUMsRUFBRSxHQUFHLFFBQVEsRUFBRSxjQUFjLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUNoRixDQUFDO0lBRUQsUUFBUTtRQUNKLElBQUksT0FBTyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQ3RDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRU8sbUJBQW1CLENBQUMsT0FBZTtRQUN2QyxJQUFJLFNBQVMsR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzlDLFNBQVMsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUM3QyxJQUFJLEtBQUssR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzFDLEtBQUssQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNyQyxJQUFJLGVBQWUsR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3BELGVBQWUsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNoRCxjQUFjLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDekMsV0FBVyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUM7UUFFdkIsSUFBSSxlQUFlLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNwRCxJQUFJLFlBQVksR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3BELElBQUksVUFBVSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDbEQsWUFBWSxDQUFDLFNBQVMsR0FBRyx1QkFBdUIsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNuRixVQUFVLENBQUMsU0FBUyxHQUFHLHVCQUF1QixDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQy9FLFlBQVksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDakUsZUFBZSxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUMxQyxlQUFlLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFFaEQsS0FBSyxDQUFDLFdBQVcsQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUNuQyxLQUFLLENBQUMsV0FBVyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ25DLFNBQVMsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDN0IsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFckMsSUFBSSxLQUFLLEdBQUcsV0FBVyxDQUFDLE1BQU0sQ0FBQztZQUMzQixHQUFHLEVBQUUsT0FBTztZQUNaLFVBQVUsRUFBRSxDQUFDLFVBQVUsRUFBRSxJQUFJLEVBQUUsQ0FBQztTQUNuQyxDQUFDLENBQUM7UUFDSCxJQUFJLElBQUksR0FBRyxJQUFJLFVBQVUsQ0FBQztZQUN0QixLQUFLLEVBQUUsS0FBSztZQUNaLE1BQU0sRUFBRSxlQUFlO1NBQzFCLENBQUMsQ0FBQztRQUVILFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUMvRixlQUFlLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFTyxxQkFBcUIsQ0FBQyxJQUFZO1FBQ3RDLE9BQU8sWUFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRU8scUJBQXFCLENBQUMsSUFBWSxFQUFFLEtBQWE7UUFDckQsWUFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVPLGdCQUFnQjtRQUNwQixJQUFJLGFBQWEsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUM1QyxJQUFJLFlBQVksR0FBRyxhQUFhLENBQUMsZ0JBQWdCLENBQUMsdUNBQXVDLENBQUMsQ0FBQztRQUMzRixJQUFJLE9BQU8sR0FBRyxFQUFFLENBQUM7UUFDakIsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFOztZQUMzQixJQUFJLFVBQVUsR0FBRyxJQUFJLFVBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsMENBQUUsT0FBTyxDQUFDLFdBQVcsR0FBRSxHQUFHLEdBQUcsQ0FBQztZQUN2RSxJQUFJLE1BQU0sR0FBRyxnREFBZ0QsQ0FBQztZQUM5RCxJQUFJLHFCQUFxQixHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUNsRixJQUNJLENBQUMsT0FBQSxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQywwQ0FBRSxPQUFPLENBQUMsV0FBVyxRQUFPLElBQUksSUFBSSxPQUFBLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLDBDQUFFLE9BQU8sQ0FBQyxXQUFXLFFBQU8sSUFBSSxDQUFDO2dCQUN4RyxxQkFBcUIsS0FBSyxVQUFVLEVBQ3RDO2dCQUNFLE9BQU8sR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxPQUFPLENBQUMsTUFBTSxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDbkUsT0FBTyxJQUFJLEtBQUssQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO2FBQ3BHO2lCQUFNO2dCQUNILE9BQU8sSUFBSSxLQUFLLENBQUMsU0FBUyxDQUFDO2FBQzlCO1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBRUQsbUVBQW1FO0lBQzNELDJCQUEyQixDQUFDLElBQVk7UUFDNUMsSUFBSSxnQkFBZ0IsR0FBRyxJQUFJLENBQUM7UUFDNUIsSUFBSSxlQUFlLEdBQUcsSUFBSSxDQUFDO1FBQzNCLE1BQU0sVUFBVSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxrQ0FBa0M7UUFDcEUsSUFBSSxhQUFhLEdBQUcsQ0FBQyxDQUFDO1FBQ3RCLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQztRQUN6QixJQUFJLFFBQVEsR0FBRyxJQUFJLENBQUM7UUFDcEIsSUFBSSxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2hCLElBQUksUUFBUSxHQUFHLElBQUksQ0FBQztRQUVwQixJQUFJLE1BQU0sR0FBRyxFQUFFLENBQUM7UUFDaEIsS0FBSyxJQUFJLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBRyxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLEVBQUU7WUFDekMsUUFBUSxHQUFHLElBQUksQ0FBQztZQUNoQixJQUFJLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDM0IsUUFBUSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUVuQyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsS0FBSyxNQUFNLENBQUM7WUFDL0MsTUFBTSxZQUFZLEdBQUcsSUFBSSxLQUFLLEdBQUcsSUFBSSxRQUFRLEtBQUssR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO1lBQ2xFLE1BQU0sWUFBWSxHQUFHLElBQUksS0FBSyxHQUFHLElBQUksUUFBUSxLQUFLLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQztZQUNsRSxNQUFNLFFBQVEsR0FBRyxRQUFRLEtBQUssR0FBRyxJQUFJLElBQUksS0FBSyxHQUFHLElBQUksYUFBYSxHQUFHLENBQUMsQ0FBQztZQUN2RSxNQUFNLFNBQVMsR0FDWCxDQUFDLE9BQU8sSUFBSSxDQUFDLFlBQVksSUFBSSxDQUFDLFlBQVksSUFBSSxRQUFRLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUM7WUFDNUgsSUFBSSxPQUFPLEVBQUU7Z0JBQ1Qsc0RBQXNEO2dCQUN0RCxNQUFNLElBQUksV0FBVyxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7YUFDNUQ7WUFDRCxJQUFJLFlBQVksRUFBRTtnQkFDZCxzREFBc0Q7Z0JBQ3RELE1BQU0sSUFBSSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztnQkFDNUUsYUFBYSxFQUFFLENBQUM7YUFDbkI7WUFDRCw0Q0FBNEM7aUJBQ3ZDLElBQUksWUFBWSxFQUFFO2dCQUNuQiw2Q0FBNkM7Z0JBQzdDLElBQUksRUFBRSxhQUFhLEdBQUcsQ0FBQztvQkFBRSxhQUFhLEdBQUcsQ0FBQyxDQUFDO2dCQUMzQyxNQUFNLElBQUksV0FBVyxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7YUFDNUQ7WUFDRCw4QkFBOEI7aUJBQ3pCLElBQUksZ0JBQWdCLEtBQUssSUFBSSxJQUFJLElBQUksS0FBSyxHQUFHLElBQUksUUFBUSxLQUFLLEdBQUc7Z0JBQUUsSUFBSSxHQUFHLEVBQUUsQ0FBQztZQUNsRixxQkFBcUI7aUJBQ2hCLElBQUksZUFBZSxLQUFLLElBQUksSUFBSSxJQUFJLEtBQUssV0FBVyxFQUFFO2dCQUN2RCxXQUFXO2dCQUNYLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFO29CQUFFLElBQUksR0FBRyxFQUFFLENBQUM7YUFDaEY7WUFDRCxJQUFJLFFBQVEsSUFBSSxDQUFDLFNBQVMsRUFBRTtnQkFDeEIsTUFBTSxJQUFJLFdBQVcsR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO2FBQzVEO1lBRUQsTUFBTSxJQUFJLElBQUksQ0FBQztTQUNsQjtRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2xCLENBQUM7Q0FDSjtBQUVELElBQUksY0FBYyxHQUFHLElBQUksQ0FBQztBQUMxQixJQUFJLFdBQVcsR0FBRyxJQUFJLENBQUM7QUFFdkIsU0FBUyxrQkFBa0I7O0lBQ3ZCLE1BQUEsUUFBUSxDQUFDLGFBQWEsQ0FBQyxzQkFBc0IsQ0FBQywwQ0FBRSxNQUFNLEdBQUc7QUFDN0QsQ0FBQztBQUVELFNBQVMsaUJBQWlCLENBQUMsT0FBTztJQUM5QixJQUFJLFVBQVUsR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQy9DLFVBQVUsQ0FBQyxTQUFTLEdBQUcsT0FBTyxDQUFDO0lBRS9CLFdBQVcsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDM0IsSUFBSSxTQUFTLEdBQUcsY0FBYyxDQUFDLGdCQUFnQixDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQ2pFLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUVWLE9BQU8sVUFBVSxDQUFDLGlCQUFpQixFQUFFO1FBQ2pDLElBQUksVUFBVSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsS0FBSyxJQUFJLElBQUksVUFBVSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsS0FBSyxJQUFJLEVBQUU7WUFDNUgsSUFBSSxVQUFVLEdBQUcsQ0FBQyxDQUFDO1lBQ25CLElBQUksc0JBQXNCLEdBQUcsS0FBSyxDQUFDO1lBQ25DLE9BQU8sVUFBVSxDQUFDLGlCQUFpQixDQUFDLGlCQUFpQixFQUFFO2dCQUNuRCxJQUFJLFNBQVMsR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDN0UsU0FBUyxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsaUJBQWlCLENBQUMsaUJBQWlCLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7Z0JBQ3RGLElBQUksU0FBUyxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsS0FBSyxJQUFJLEVBQUU7b0JBQzFDLElBQUksQ0FBQyxzQkFBc0IsRUFBRTt3QkFDekIsVUFBVSxHQUFHLENBQUMsQ0FBQztxQkFDbEI7b0JBQ0QsU0FBUyxDQUFDLGlCQUFpQixDQUFDLFlBQVksQ0FBQyxPQUFPLEVBQUUsVUFBVSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7b0JBQ3pFLHNCQUFzQixHQUFHLElBQUksQ0FBQztvQkFDOUIsRUFBRSxVQUFVLENBQUM7aUJBQ2hCO3FCQUFNO29CQUNILHNCQUFzQixHQUFHLEtBQUssQ0FBQztpQkFDbEM7Z0JBQ0QsSUFBSSxDQUFDLElBQUksU0FBUyxDQUFDLE1BQU0sRUFBRTtvQkFDdkIsV0FBVyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztvQkFDNUIsSUFBSSxZQUFZLEdBQUcsY0FBYyxDQUFDLGdCQUFnQixDQUFDLGVBQWUsQ0FBQyxDQUFDO29CQUNwRSxZQUFZLENBQUMsWUFBWSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO29CQUNyRCxZQUFZLENBQUMsWUFBWSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUM7b0JBQzdELFlBQVksQ0FBQyxZQUFZLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLFNBQVMsRUFBRSxVQUFVLEVBQUUsSUFBSSxDQUFDLENBQUM7aUJBQ3ZGO3FCQUFNO29CQUNILFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO29CQUM1QixTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDO29CQUNwQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxFQUFFLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQztpQkFDOUQ7Z0JBQ0QsVUFBVSxDQUFDLGlCQUFpQixDQUFDLGlCQUFpQixDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUN4RCxFQUFFLENBQUMsQ0FBQzthQUNQO1NBQ0o7YUFBTTtZQUNILElBQUksQ0FBQyxJQUFJLFNBQVMsQ0FBQyxNQUFNLEVBQUU7Z0JBQ3ZCLFdBQVcsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7Z0JBQzVCLElBQUksWUFBWSxHQUFHLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQyxlQUFlLENBQUMsQ0FBQztnQkFDcEUsWUFBWSxDQUFDLFlBQVksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztnQkFDckQsWUFBWSxDQUFDLFlBQVksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQzthQUNuRztpQkFBTTtnQkFDSCxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztnQkFDNUIsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsaUJBQWlCLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7YUFDMUU7WUFDRCxFQUFFLENBQUMsQ0FBQztTQUNQO1FBQ0QsVUFBVSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sRUFBRSxDQUFDO0tBQ3pDO0lBRUQsa0JBQWtCLEVBQUUsQ0FBQztBQUN6QixDQUFDO0FBRUQsU0FBUyxVQUFVLENBQUMsS0FBb0I7SUFDcEMsSUFBSSxZQUFZLEdBQWdCLEtBQUssQ0FBQyxNQUFNLENBQUM7SUFDN0MsSUFBSSxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFO1FBQzlDLElBQUksS0FBSyxDQUFDLElBQUksS0FBSyxXQUFXLEVBQUU7WUFDNUIsSUFBSSxZQUFZLENBQUMsU0FBUyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7Z0JBQ3JDLElBQUksZ0JBQWdCLEdBQUcsY0FBYyxDQUFDLGdCQUFnQixDQUFDLGVBQWUsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsb0JBQW9CLEVBQUUsQ0FBQyxDQUFDO2dCQUNuSCxnQkFBZ0IsQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO2dCQUNoQyxnQkFBZ0IsQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO2dCQUMxRCxnQkFBZ0IsQ0FBQyxtQkFBbUIsQ0FBQyxTQUFTLEVBQUUsVUFBVSxFQUFFLElBQUksQ0FBQyxDQUFDO2dCQUNsRSxRQUFRLENBQUMsWUFBWSxFQUFFLENBQUMsZ0JBQWdCLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7YUFDNUg7U0FDSjthQUFNO1lBQ0gsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3ZCLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUN4QixJQUFJLFlBQVksQ0FBQyxTQUFTLEtBQUssRUFBRSxFQUFFO2dCQUMvQixXQUFXLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQUUsV0FBVyxDQUFDLE1BQU0sQ0FBQyxvQkFBb0IsRUFBRSxDQUFDLENBQUM7Z0JBQ2xGLElBQUksWUFBWSxHQUFHLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLENBQUMsQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLG9CQUFvQixFQUFFLENBQUMsQ0FBQztnQkFDM0csSUFBSSxhQUFhLEdBQUcsY0FBYyxDQUFDLGdCQUFnQixDQUFDLFdBQVcsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsb0JBQW9CLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztnQkFDaEgsSUFBSSxnQkFBZ0IsR0FBRyxZQUFZLENBQUMsYUFBYSxDQUFDLGVBQWUsQ0FBQyxDQUFDO2dCQUNuRSxJQUFJLFdBQVcsR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsZUFBZSxDQUFDLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQ2pILFdBQVcsQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO2dCQUN0RCxJQUFJLFdBQVcsQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLEtBQUssSUFBSSxFQUFFO29CQUM1QyxXQUFXLENBQUMsaUJBQWlCLENBQUMsWUFBWSxDQUN0QyxPQUFPLEVBQ1AsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FDckYsQ0FBQztpQkFDTDtnQkFDRCxnQkFBZ0IsQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLENBQUM7Z0JBQzFDLGdCQUFnQixDQUFDLGdCQUFnQixDQUFDLFNBQVMsRUFBRSxVQUFVLEVBQUUsSUFBSSxDQUFDLENBQUM7Z0JBQy9ELFFBQVEsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLGdCQUFnQixDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQzthQUM5SDtpQkFBTTtnQkFDSCxJQUFJLGdCQUFnQixHQUFHLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQyxlQUFlLENBQUMsQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLG9CQUFvQixFQUFFLENBQUMsQ0FBQztnQkFDbkgsZ0JBQWdCLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztnQkFDaEMsZ0JBQWdCLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztnQkFDMUQsZ0JBQWdCLENBQUMsbUJBQW1CLENBQUMsU0FBUyxFQUFFLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQztnQkFDbEUsUUFBUSxDQUFDLFlBQVksRUFBRSxDQUFDLGdCQUFnQixDQUFDLGdCQUFnQixDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsZ0JBQWdCLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO2FBQzVIO1NBQ0o7S0FDSjtBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQYXJhZ3JhcGhTdHlsZVRvb2wgfSBmcm9tICcuL3BhcmFncmFwaC1zdHlsZS10b29sLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBMSVNUX0VESVRfS0VZX0NPREVTIH0gZnJvbSAnLi4vLi4vdXRpbHMvY29sb3JzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBlZGl0b3JKU0kxOG5EaWN0aW9ubmFyeSB9IGZyb20gJy4uLy4uL3V0aWxzL2VkaXRvcmpzLXRyYW5zbGF0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgRWRpdG9yVmlldywgYmFzaWNTZXR1cCB9IGZyb20gJ2NvZGVtaXJyb3InO1xuaW1wb3J0IHsgRWRpdG9yU3RhdGUgfSBmcm9tICdAY29kZW1pcnJvci9zdGF0ZSc7XG5pbXBvcnQgeyBodG1sIH0gZnJvbSAnQGNvZGVtaXJyb3IvbGFuZy1odG1sJztcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFRleHRFZGl0aW9uVG9vbCBleHRlbmRzIFBhcmFncmFwaFN0eWxlVG9vbCB7XG4gICAgbm9kZXM6IHsgYnV0dG9uOiBIVE1MQnV0dG9uRWxlbWVudCB9O1xuXG4gICAgQ1NTOiBhbnk7XG5cbiAgICBjb250YWluZXJDbGFzcyA9ICdjb2RlRWRpdF9fY29udGFpbmVyJztcbiAgICBtb2RhbENsYXNzID0gJ2NvZGVFZGl0X19jb250YWluZXJfX21vZGFsJztcbiAgICBlZGl0b3JDbGFzcyA9ICdjb2RlRWRpdF9fY29udGFpbmVyX19tb2RhbF9fZWRpdG9yJztcbiAgICBidXR0b25DbGFzcyA9ICdjb2RlRWRpdF9fY29udGFpbmVyX19tb2RhbF9fYnV0dG9ucyc7XG5cbiAgICB1bmRvKCkge1xuICAgICAgICBsZXQgZWRpdG9yID0gdGhpcy5maW5kUGFyZW50RWRpdG9yKCk7XG4gICAgICAgIGxldCBzYXZlZERhdGEgPSB0aGlzLmdldFNhdmVkRWRpdG9yQ29udGVudChlZGl0b3IuaWQpO1xuICAgICAgICBsZXQgc2F2ZWREYXRhSW5kZXggPSB0aGlzLmdldFNhdmVkRWRpdG9yQ29udGVudChlZGl0b3IuaWQgKyAnLWluZGV4JylcbiAgICAgICAgICAgID8gcGFyc2VJbnQodGhpcy5nZXRTYXZlZEVkaXRvckNvbnRlbnQoZWRpdG9yLmlkICsgJy1pbmRleCcpKVxuICAgICAgICAgICAgOiAtMTtcbiAgICAgICAgbGV0IHBhcnNlZFNhdmVkRGF0YTogQXJyYXk8c3RyaW5nPiA9IFtdO1xuICAgICAgICBpZiAoIXNhdmVkRGF0YSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHBhcnNlZFNhdmVkRGF0YSA9IEpTT04ucGFyc2Uoc2F2ZWREYXRhKTtcbiAgICAgICAgLS1zYXZlZERhdGFJbmRleDtcbiAgICAgICAgc2F2ZWREYXRhSW5kZXggPSBzYXZlZERhdGFJbmRleCA8IDAgPyAwIDogc2F2ZWREYXRhSW5kZXg7XG4gICAgICAgIGNvZGVFZGl0RWRpdG9yID0gdGhpcy5maW5kUGFyZW50RWRpdG9yKCk7XG4gICAgICAgIGNvZGVFZGl0QXBpID0gdGhpcy5hcGk7XG4gICAgICAgIHNhdmVDb2RlRWRpdE1vZGFsKHBhcnNlZFNhdmVkRGF0YVtzYXZlZERhdGFJbmRleF0pO1xuICAgICAgICB0aGlzLnNldFNhdmVkRWRpdG9yQ29udGVudChlZGl0b3IuaWQgKyAnLWluZGV4Jywgc2F2ZWREYXRhSW5kZXgudG9TdHJpbmcoKSk7XG4gICAgfVxuXG4gICAgcmVkbygpIHtcbiAgICAgICAgbGV0IGVkaXRvciA9IHRoaXMuZmluZFBhcmVudEVkaXRvcigpO1xuXG4gICAgICAgIGxldCBzYXZlZERhdGEgPSB0aGlzLmdldFNhdmVkRWRpdG9yQ29udGVudChlZGl0b3IuaWQpO1xuICAgICAgICBsZXQgc2F2ZWREYXRhSW5kZXggPSB0aGlzLmdldFNhdmVkRWRpdG9yQ29udGVudChlZGl0b3IuaWQgKyAnLWluZGV4JylcbiAgICAgICAgICAgID8gcGFyc2VJbnQodGhpcy5nZXRTYXZlZEVkaXRvckNvbnRlbnQoZWRpdG9yLmlkICsgJy1pbmRleCcpKVxuICAgICAgICAgICAgOiAtMTtcbiAgICAgICAgbGV0IHBhcnNlZFNhdmVkRGF0YTogQXJyYXk8c3RyaW5nPiA9IFtdO1xuICAgICAgICBpZiAoIXNhdmVkRGF0YSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHBhcnNlZFNhdmVkRGF0YSA9IEpTT04ucGFyc2Uoc2F2ZWREYXRhKTtcbiAgICAgICAgKytzYXZlZERhdGFJbmRleDtcbiAgICAgICAgc2F2ZWREYXRhSW5kZXggPSBzYXZlZERhdGFJbmRleCA+IHBhcnNlZFNhdmVkRGF0YS5sZW5ndGggPyBwYXJzZWRTYXZlZERhdGEubGVuZ3RoIDogc2F2ZWREYXRhSW5kZXg7XG4gICAgICAgIGNvZGVFZGl0RWRpdG9yID0gdGhpcy5maW5kUGFyZW50RWRpdG9yKCk7XG4gICAgICAgIGNvZGVFZGl0QXBpID0gdGhpcy5hcGk7XG4gICAgICAgIHNhdmVDb2RlRWRpdE1vZGFsKHBhcnNlZFNhdmVkRGF0YVtzYXZlZERhdGFJbmRleF0pO1xuICAgICAgICB0aGlzLnNldFNhdmVkRWRpdG9yQ29udGVudChlZGl0b3IuaWQgKyAnLWluZGV4Jywgc2F2ZWREYXRhSW5kZXgudG9TdHJpbmcoKSk7XG4gICAgfVxuXG4gICAgZWRpdEhUTUwoKSB7XG4gICAgICAgIGxldCBjb250ZW50ID0gdGhpcy5nZXRFZGl0b3JDb250ZW50KCk7XG4gICAgICAgIHRoaXMuY3JlYXRlSFRNTEVkaXRNb2RhbChjb250ZW50KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNyZWF0ZUhUTUxFZGl0TW9kYWwoY29udGVudDogc3RyaW5nKSB7XG4gICAgICAgIGxldCBjb250YWluZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICAgICAgY29udGFpbmVyLmNsYXNzTGlzdC5hZGQodGhpcy5jb250YWluZXJDbGFzcyk7XG4gICAgICAgIGxldCBtb2RhbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgICAgICBtb2RhbC5jbGFzc0xpc3QuYWRkKHRoaXMubW9kYWxDbGFzcyk7XG4gICAgICAgIGxldCBlZGl0b3JDb250YWluZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICAgICAgZWRpdG9yQ29udGFpbmVyLmNsYXNzTGlzdC5hZGQodGhpcy5lZGl0b3JDbGFzcyk7XG4gICAgICAgIGNvZGVFZGl0RWRpdG9yID0gdGhpcy5maW5kUGFyZW50RWRpdG9yKCk7XG4gICAgICAgIGNvZGVFZGl0QXBpID0gdGhpcy5hcGk7XG5cbiAgICAgICAgbGV0IGJ1dHRvbkNvbnRhaW5lciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgICAgICBsZXQgY2FuY2VsQnV0dG9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYnV0dG9uJyk7XG4gICAgICAgIGxldCBzYXZlQnV0dG9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYnV0dG9uJyk7XG4gICAgICAgIGNhbmNlbEJ1dHRvbi5pbm5lclRleHQgPSBlZGl0b3JKU0kxOG5EaWN0aW9ubmFyeS5tZXNzYWdlcy50b29scy5jb2RlRWRpdFsnQ2FuY2VsJ107XG4gICAgICAgIHNhdmVCdXR0b24uaW5uZXJUZXh0ID0gZWRpdG9ySlNJMThuRGljdGlvbm5hcnkubWVzc2FnZXMudG9vbHMuY29kZUVkaXRbJ1NhdmUnXTtcbiAgICAgICAgY2FuY2VsQnV0dG9uLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgY2xvc2VDb2RlRWRpdE1vZGFsLCB0cnVlKTtcbiAgICAgICAgYnV0dG9uQ29udGFpbmVyLmFwcGVuZENoaWxkKGNhbmNlbEJ1dHRvbik7XG4gICAgICAgIGJ1dHRvbkNvbnRhaW5lci5jbGFzc0xpc3QuYWRkKHRoaXMuYnV0dG9uQ2xhc3MpO1xuXG4gICAgICAgIG1vZGFsLmFwcGVuZENoaWxkKGVkaXRvckNvbnRhaW5lcik7XG4gICAgICAgIG1vZGFsLmFwcGVuZENoaWxkKGJ1dHRvbkNvbnRhaW5lcik7XG4gICAgICAgIGNvbnRhaW5lci5hcHBlbmRDaGlsZChtb2RhbCk7XG4gICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoY29udGFpbmVyKTtcblxuICAgICAgICBsZXQgc3RhdGUgPSBFZGl0b3JTdGF0ZS5jcmVhdGUoe1xuICAgICAgICAgICAgZG9jOiBjb250ZW50LFxuICAgICAgICAgICAgZXh0ZW5zaW9uczogW2Jhc2ljU2V0dXAsIGh0bWwoKV0sXG4gICAgICAgIH0pO1xuICAgICAgICBsZXQgdmlldyA9IG5ldyBFZGl0b3JWaWV3KHtcbiAgICAgICAgICAgIHN0YXRlOiBzdGF0ZSxcbiAgICAgICAgICAgIHBhcmVudDogZWRpdG9yQ29udGFpbmVyLFxuICAgICAgICB9KTtcblxuICAgICAgICBzYXZlQnV0dG9uLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKCkgPT4gc2F2ZUNvZGVFZGl0TW9kYWwodmlldy5zdGF0ZS5kb2MudG9TdHJpbmcoKSksIHRydWUpO1xuICAgICAgICBidXR0b25Db250YWluZXIuYXBwZW5kQ2hpbGQoc2F2ZUJ1dHRvbik7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRTYXZlZEVkaXRvckNvbnRlbnQobmFtZTogc3RyaW5nKSB7XG4gICAgICAgIHJldHVybiBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShuYW1lKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldFNhdmVkRWRpdG9yQ29udGVudChuYW1lOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0obmFtZSwgdmFsdWUpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0RWRpdG9yQ29udGVudCgpOiBzdHJpbmcge1xuICAgICAgICBsZXQgY3VycmVudEVkaXRvciA9IHRoaXMuZmluZFBhcmVudEVkaXRvcigpO1xuICAgICAgICBsZXQgZWRpdG9yQmxvY2tzID0gY3VycmVudEVkaXRvci5xdWVyeVNlbGVjdG9yQWxsKCcuY29kZXgtZWRpdG9yX19yZWRhY3RvciAuY2UtcGFyYWdyYXBoJyk7XG4gICAgICAgIGxldCBjb250ZW50ID0gJyc7XG4gICAgICAgIGVkaXRvckJsb2Nrcy5mb3JFYWNoKChibG9jaykgPT4ge1xuICAgICAgICAgICAgbGV0IGNsb3NpbmdUYWcgPSAnPC8nICsgYmxvY2suY2hpbGRyZW5bMF0/LnRhZ05hbWUudG9Mb3dlckNhc2UoKSArICc+JztcbiAgICAgICAgICAgIGxldCByZWdleHAgPSAvKCg8XFwvKVxcdysoPikpKD8hW1xcc1xcU10qKCg8XFwvKVxcdysoPikpW1xcc1xcU10qJCkvaTtcbiAgICAgICAgICAgIGxldCBsYXN0Q29udGVudENsb3NpbmdUYWcgPSBjb250ZW50Lm1hdGNoKHJlZ2V4cCkgPyBjb250ZW50Lm1hdGNoKHJlZ2V4cClbMF0gOiAnJztcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAoYmxvY2suY2hpbGRyZW5bMF0/LnRhZ05hbWUudG9Mb3dlckNhc2UoKSA9PT0gJ3VsJyB8fCBibG9jay5jaGlsZHJlblswXT8udGFnTmFtZS50b0xvd2VyQ2FzZSgpID09PSAnb2wnKSAmJlxuICAgICAgICAgICAgICAgIGxhc3RDb250ZW50Q2xvc2luZ1RhZyA9PT0gY2xvc2luZ1RhZ1xuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgY29udGVudCA9IGNvbnRlbnQuc3Vic3RyaW5nKDAsIGNvbnRlbnQubGVuZ3RoIC0gY2xvc2luZ1RhZy5sZW5ndGgpO1xuICAgICAgICAgICAgICAgIGNvbnRlbnQgKz0gYmxvY2suaW5uZXJIVE1MLnN1YnN0cmluZyhjbG9zaW5nVGFnLnJlcGxhY2UoJy8nLCAnJykubGVuZ3RoLCBibG9jay5pbm5lckhUTUwubGVuZ3RoKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY29udGVudCArPSBibG9jay5pbm5lckhUTUw7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gdGhpcy5Gb3JtYXRIVE1MU3RyaW5nSW5kZW50YXRpb24oY29udGVudCk7XG4gICAgfVxuXG4gICAgLy8gQWRhcHRlZCBGUk9NIGpzZmlkZGxlIGhlcmU6IGh0dHBzOi8vanNmaWRkbGUubmV0L2J1a3N5L3J4dWNnMWdkL1xuICAgIHByaXZhdGUgRm9ybWF0SFRNTFN0cmluZ0luZGVudGF0aW9uKGNvZGU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIGxldCBzdHJpcFdoaXRlU3BhY2VzID0gdHJ1ZTtcbiAgICAgICAgbGV0IHN0cmlwRW1wdHlMaW5lcyA9IHRydWU7XG4gICAgICAgIGNvbnN0IHdoaXRlc3BhY2UgPSAnICcucmVwZWF0KDIpOyAvLyBEZWZhdWx0IGluZGVudGluZyA0IHdoaXRlc3BhY2VzXG4gICAgICAgIGxldCBjdXJyZW50SW5kZW50ID0gMDtcbiAgICAgICAgY29uc3QgbmV3bGluZUNoYXIgPSAnXFxuJztcbiAgICAgICAgbGV0IHByZXZDaGFyID0gbnVsbDtcbiAgICAgICAgbGV0IGNoYXIgPSBudWxsO1xuICAgICAgICBsZXQgbmV4dENoYXIgPSBudWxsO1xuXG4gICAgICAgIGxldCByZXN1bHQgPSAnJztcbiAgICAgICAgZm9yIChsZXQgcG9zID0gMDsgcG9zIDw9IGNvZGUubGVuZ3RoOyBwb3MrKykge1xuICAgICAgICAgICAgcHJldkNoYXIgPSBjaGFyO1xuICAgICAgICAgICAgY2hhciA9IGNvZGUuc3Vic3RyKHBvcywgMSk7XG4gICAgICAgICAgICBuZXh0Q2hhciA9IGNvZGUuc3Vic3RyKHBvcyArIDEsIDEpO1xuXG4gICAgICAgICAgICBjb25zdCBpc0JyVGFnID0gY29kZS5zdWJzdHIocG9zLCA0KSA9PT0gJzxicj4nO1xuICAgICAgICAgICAgY29uc3QgaXNPcGVuaW5nVGFnID0gY2hhciA9PT0gJzwnICYmIG5leHRDaGFyICE9PSAnLycgJiYgIWlzQnJUYWc7XG4gICAgICAgICAgICBjb25zdCBpc0Nsb3NpbmdUYWcgPSBjaGFyID09PSAnPCcgJiYgbmV4dENoYXIgPT09ICcvJyAmJiAhaXNCclRhZztcbiAgICAgICAgICAgIGNvbnN0IGlzVGFnRW5kID0gcHJldkNoYXIgPT09ICc+JyAmJiBjaGFyICE9PSAnPCcgJiYgY3VycmVudEluZGVudCA+IDA7XG4gICAgICAgICAgICBjb25zdCBpc1RhZ05leHQgPVxuICAgICAgICAgICAgICAgICFpc0JyVGFnICYmICFpc09wZW5pbmdUYWcgJiYgIWlzQ2xvc2luZ1RhZyAmJiBpc1RhZ0VuZCAmJiBjb2RlLnN1YnN0cihwb3MsIGNvZGUuc3Vic3RyKHBvcykuaW5kZXhPZignPCcpKS50cmltKCkgPT09ICcnO1xuICAgICAgICAgICAgaWYgKGlzQnJUYWcpIHtcbiAgICAgICAgICAgICAgICAvLyBJZiBvcGVuaW5nIHRhZywgYWRkIG5ld2xpbmUgY2hhcmFjdGVyIGFuZCBpbmRlbnRpb25cbiAgICAgICAgICAgICAgICByZXN1bHQgKz0gbmV3bGluZUNoYXIgKyB3aGl0ZXNwYWNlLnJlcGVhdChjdXJyZW50SW5kZW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChpc09wZW5pbmdUYWcpIHtcbiAgICAgICAgICAgICAgICAvLyBJZiBvcGVuaW5nIHRhZywgYWRkIG5ld2xpbmUgY2hhcmFjdGVyIGFuZCBpbmRlbnRpb25cbiAgICAgICAgICAgICAgICByZXN1bHQgKz0gKHBvcyA9PT0gMCA/ICcnIDogbmV3bGluZUNoYXIpICsgd2hpdGVzcGFjZS5yZXBlYXQoY3VycmVudEluZGVudCk7XG4gICAgICAgICAgICAgICAgY3VycmVudEluZGVudCsrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gaWYgQ2xvc2luZyB0YWcsIGFkZCBuZXdsaW5lIGFuZCBpbmRlbnRpb25cbiAgICAgICAgICAgIGVsc2UgaWYgKGlzQ2xvc2luZ1RhZykge1xuICAgICAgICAgICAgICAgIC8vIElmIHRoZXJlJ3JlIG1vcmUgY2xvc2luZyB0YWdzIHRoYW4gb3BlbmluZ1xuICAgICAgICAgICAgICAgIGlmICgtLWN1cnJlbnRJbmRlbnQgPCAwKSBjdXJyZW50SW5kZW50ID0gMDtcbiAgICAgICAgICAgICAgICByZXN1bHQgKz0gbmV3bGluZUNoYXIgKyB3aGl0ZXNwYWNlLnJlcGVhdChjdXJyZW50SW5kZW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIHJlbW92ZSBtdWx0aXBsZSB3aGl0ZXNwYWNlc1xuICAgICAgICAgICAgZWxzZSBpZiAoc3RyaXBXaGl0ZVNwYWNlcyA9PT0gdHJ1ZSAmJiBjaGFyID09PSAnICcgJiYgbmV4dENoYXIgPT09ICcgJykgY2hhciA9ICcnO1xuICAgICAgICAgICAgLy8gcmVtb3ZlIGVtcHR5IGxpbmVzXG4gICAgICAgICAgICBlbHNlIGlmIChzdHJpcEVtcHR5TGluZXMgPT09IHRydWUgJiYgY2hhciA9PT0gbmV3bGluZUNoYXIpIHtcbiAgICAgICAgICAgICAgICAvL2RlYnVnZ2VyO1xuICAgICAgICAgICAgICAgIGlmIChjb2RlLnN1YnN0cihwb3MsIGNvZGUuc3Vic3RyKHBvcykuaW5kZXhPZignPCcpKS50cmltKCkgPT09ICcnKSBjaGFyID0gJyc7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoaXNUYWdFbmQgJiYgIWlzVGFnTmV4dCkge1xuICAgICAgICAgICAgICAgIHJlc3VsdCArPSBuZXdsaW5lQ2hhciArIHdoaXRlc3BhY2UucmVwZWF0KGN1cnJlbnRJbmRlbnQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXN1bHQgKz0gY2hhcjtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cbn1cblxudmFyIGNvZGVFZGl0RWRpdG9yID0gbnVsbDtcbnZhciBjb2RlRWRpdEFwaSA9IG51bGw7XG5cbmZ1bmN0aW9uIGNsb3NlQ29kZUVkaXRNb2RhbCgpIHtcbiAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcuY29kZUVkaXRfX2NvbnRhaW5lcicpPy5yZW1vdmUoKTtcbn1cblxuZnVuY3Rpb24gc2F2ZUNvZGVFZGl0TW9kYWwoY29udGVudCkge1xuICAgIGxldCB0bXBFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgdG1wRWxlbWVudC5pbm5lckhUTUwgPSBjb250ZW50O1xuXG4gICAgY29kZUVkaXRBcGkuYmxvY2tzLmNsZWFyKCk7XG4gICAgbGV0IHBhcmFncmFwaCA9IGNvZGVFZGl0RWRpdG9yLnF1ZXJ5U2VsZWN0b3JBbGwoJy5jZS1wYXJhZ3JhcGgnKTtcbiAgICBsZXQgaSA9IDA7XG5cbiAgICB3aGlsZSAodG1wRWxlbWVudC5maXJzdEVsZW1lbnRDaGlsZCkge1xuICAgICAgICBpZiAodG1wRWxlbWVudC5maXJzdEVsZW1lbnRDaGlsZC50YWdOYW1lLnRvTG93ZXJDYXNlKCkgPT09ICd1bCcgfHwgdG1wRWxlbWVudC5maXJzdEVsZW1lbnRDaGlsZC50YWdOYW1lLnRvTG93ZXJDYXNlKCkgPT09ICdvbCcpIHtcbiAgICAgICAgICAgIGxldCBsaXN0TWFya2VyID0gMTtcbiAgICAgICAgICAgIGxldCBwcmV2aW91c0NvbnRhaW5lcldhc09sID0gZmFsc2U7XG4gICAgICAgICAgICB3aGlsZSAodG1wRWxlbWVudC5maXJzdEVsZW1lbnRDaGlsZC5maXJzdEVsZW1lbnRDaGlsZCkge1xuICAgICAgICAgICAgICAgIGxldCBjb250YWluZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRtcEVsZW1lbnQuZmlyc3RFbGVtZW50Q2hpbGQudGFnTmFtZSk7XG4gICAgICAgICAgICAgICAgY29udGFpbmVyLmFwcGVuZENoaWxkKHRtcEVsZW1lbnQuZmlyc3RFbGVtZW50Q2hpbGQuZmlyc3RFbGVtZW50Q2hpbGQuY2xvbmVOb2RlKHRydWUpKTtcbiAgICAgICAgICAgICAgICBpZiAoY29udGFpbmVyLnRhZ05hbWUudG9Mb3dlckNhc2UoKSA9PT0gJ29sJykge1xuICAgICAgICAgICAgICAgICAgICBpZiAoIXByZXZpb3VzQ29udGFpbmVyV2FzT2wpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxpc3RNYXJrZXIgPSAxO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lci5maXJzdEVsZW1lbnRDaGlsZC5zZXRBdHRyaWJ1dGUoJ3ZhbHVlJywgbGlzdE1hcmtlci50b1N0cmluZygpKTtcbiAgICAgICAgICAgICAgICAgICAgcHJldmlvdXNDb250YWluZXJXYXNPbCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICsrbGlzdE1hcmtlcjtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBwcmV2aW91c0NvbnRhaW5lcldhc09sID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChpID49IHBhcmFncmFwaC5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgY29kZUVkaXRBcGkuYmxvY2tzLmluc2VydCgpO1xuICAgICAgICAgICAgICAgICAgICBsZXQgdG1wUGFyYWdyYXBoID0gY29kZUVkaXRFZGl0b3IucXVlcnlTZWxlY3RvckFsbCgnLmNlLXBhcmFncmFwaCcpO1xuICAgICAgICAgICAgICAgICAgICB0bXBQYXJhZ3JhcGhbdG1wUGFyYWdyYXBoLmxlbmd0aCAtIDFdLmlubmVySFRNTCA9ICcnO1xuICAgICAgICAgICAgICAgICAgICB0bXBQYXJhZ3JhcGhbdG1wUGFyYWdyYXBoLmxlbmd0aCAtIDFdLmFwcGVuZENoaWxkKGNvbnRhaW5lcik7XG4gICAgICAgICAgICAgICAgICAgIHRtcFBhcmFncmFwaFt0bXBQYXJhZ3JhcGgubGVuZ3RoIC0gMV0uYWRkRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsIG9uRWRpdExpc3QsIHRydWUpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHBhcmFncmFwaFtpXS5pbm5lckhUTUwgPSAnJztcbiAgICAgICAgICAgICAgICAgICAgcGFyYWdyYXBoW2ldLmFwcGVuZENoaWxkKGNvbnRhaW5lcik7XG4gICAgICAgICAgICAgICAgICAgIHBhcmFncmFwaFtpXS5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJywgb25FZGl0TGlzdCwgdHJ1ZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRtcEVsZW1lbnQuZmlyc3RFbGVtZW50Q2hpbGQuZmlyc3RFbGVtZW50Q2hpbGQucmVtb3ZlKCk7XG4gICAgICAgICAgICAgICAgKytpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKGkgPj0gcGFyYWdyYXBoLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIGNvZGVFZGl0QXBpLmJsb2Nrcy5pbnNlcnQoKTtcbiAgICAgICAgICAgICAgICBsZXQgdG1wUGFyYWdyYXBoID0gY29kZUVkaXRFZGl0b3IucXVlcnlTZWxlY3RvckFsbCgnLmNlLXBhcmFncmFwaCcpO1xuICAgICAgICAgICAgICAgIHRtcFBhcmFncmFwaFt0bXBQYXJhZ3JhcGgubGVuZ3RoIC0gMV0uaW5uZXJIVE1MID0gJyc7XG4gICAgICAgICAgICAgICAgdG1wUGFyYWdyYXBoW3RtcFBhcmFncmFwaC5sZW5ndGggLSAxXS5hcHBlbmRDaGlsZCh0bXBFbGVtZW50LmZpcnN0RWxlbWVudENoaWxkLmNsb25lTm9kZSh0cnVlKSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHBhcmFncmFwaFtpXS5pbm5lckhUTUwgPSAnJztcbiAgICAgICAgICAgICAgICBwYXJhZ3JhcGhbaV0uYXBwZW5kQ2hpbGQodG1wRWxlbWVudC5maXJzdEVsZW1lbnRDaGlsZC5jbG9uZU5vZGUodHJ1ZSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgKytpO1xuICAgICAgICB9XG4gICAgICAgIHRtcEVsZW1lbnQuZmlyc3RFbGVtZW50Q2hpbGQucmVtb3ZlKCk7XG4gICAgfVxuXG4gICAgY2xvc2VDb2RlRWRpdE1vZGFsKCk7XG59XG5cbmZ1bmN0aW9uIG9uRWRpdExpc3QoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICBsZXQgZm9jdXNlZEJsb2NrID0gPEhUTUxFbGVtZW50PmV2ZW50LnRhcmdldDtcbiAgICBpZiAoTElTVF9FRElUX0tFWV9DT0RFUy5pbmRleE9mKGV2ZW50LmNvZGUpID4gLTEpIHtcbiAgICAgICAgaWYgKGV2ZW50LmNvZGUgPT09ICdCYWNrc3BhY2UnKSB7XG4gICAgICAgICAgICBpZiAoZm9jdXNlZEJsb2NrLmlubmVyVGV4dC5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgICBsZXQgY3VycmVudFBhcmFncmFwaCA9IGNvZGVFZGl0RWRpdG9yLnF1ZXJ5U2VsZWN0b3JBbGwoJy5jZS1wYXJhZ3JhcGgnKVtjb2RlRWRpdEFwaS5ibG9ja3MuZ2V0Q3VycmVudEJsb2NrSW5kZXgoKV07XG4gICAgICAgICAgICAgICAgY3VycmVudFBhcmFncmFwaC5pbm5lckhUTUwgPSAnJztcbiAgICAgICAgICAgICAgICBjdXJyZW50UGFyYWdyYXBoLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3AnKSk7XG4gICAgICAgICAgICAgICAgY3VycmVudFBhcmFncmFwaC5yZW1vdmVFdmVudExpc3RlbmVyKCdrZXlkb3duJywgb25FZGl0TGlzdCwgdHJ1ZSk7XG4gICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0U2VsZWN0aW9uKCkuc2V0QmFzZUFuZEV4dGVudChjdXJyZW50UGFyYWdyYXBoLnF1ZXJ5U2VsZWN0b3IoJ3AnKSwgMCwgY3VycmVudFBhcmFncmFwaC5xdWVyeVNlbGVjdG9yKCdwJyksIDApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgaWYgKGZvY3VzZWRCbG9jay5pbm5lclRleHQgIT09ICcnKSB7XG4gICAgICAgICAgICAgICAgY29kZUVkaXRBcGkuYmxvY2tzLmluc2VydCgncGFyYWdyYXBoJywgY29kZUVkaXRBcGkuYmxvY2tzLmdldEN1cnJlbnRCbG9ja0luZGV4KCkpO1xuICAgICAgICAgICAgICAgIGxldCBjdXJyZW50QmxvY2sgPSBjb2RlRWRpdEVkaXRvci5xdWVyeVNlbGVjdG9yQWxsKCcuY2UtYmxvY2snKVtjb2RlRWRpdEFwaS5ibG9ja3MuZ2V0Q3VycmVudEJsb2NrSW5kZXgoKV07XG4gICAgICAgICAgICAgICAgbGV0IHByZXZpb3VzQmxvY2sgPSBjb2RlRWRpdEVkaXRvci5xdWVyeVNlbGVjdG9yQWxsKCcuY2UtYmxvY2snKVtjb2RlRWRpdEFwaS5ibG9ja3MuZ2V0Q3VycmVudEJsb2NrSW5kZXgoKSAtIDFdO1xuICAgICAgICAgICAgICAgIGxldCBjdXJyZW50UGFyYWdyYXBoID0gY3VycmVudEJsb2NrLnF1ZXJ5U2VsZWN0b3IoJy5jZS1wYXJhZ3JhcGgnKTtcbiAgICAgICAgICAgICAgICBsZXQgbGlzdEVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHByZXZpb3VzQmxvY2sucXVlcnlTZWxlY3RvcignLmNlLXBhcmFncmFwaCcpLmZpcnN0RWxlbWVudENoaWxkLnRhZ05hbWUpO1xuICAgICAgICAgICAgICAgIGxpc3RFbGVtZW50LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2xpJykpO1xuICAgICAgICAgICAgICAgIGlmIChsaXN0RWxlbWVudC50YWdOYW1lLnRvTG93ZXJDYXNlKCkgPT09ICdvbCcpIHtcbiAgICAgICAgICAgICAgICAgICAgbGlzdEVsZW1lbnQuZmlyc3RFbGVtZW50Q2hpbGQuc2V0QXR0cmlidXRlKFxuICAgICAgICAgICAgICAgICAgICAgICAgJ3ZhbHVlJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIChwYXJzZUludChwcmV2aW91c0Jsb2NrLnF1ZXJ5U2VsZWN0b3IoJ2xpJykuZ2V0QXR0cmlidXRlKCd2YWx1ZScpKSArIDEpLnRvU3RyaW5nKClcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY3VycmVudFBhcmFncmFwaC5hcHBlbmRDaGlsZChsaXN0RWxlbWVudCk7XG4gICAgICAgICAgICAgICAgY3VycmVudFBhcmFncmFwaC5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJywgb25FZGl0TGlzdCwgdHJ1ZSk7XG4gICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0U2VsZWN0aW9uKCkuc2V0QmFzZUFuZEV4dGVudChjdXJyZW50UGFyYWdyYXBoLnF1ZXJ5U2VsZWN0b3IoJ2xpJyksIDAsIGN1cnJlbnRQYXJhZ3JhcGgucXVlcnlTZWxlY3RvcignbGknKSwgMCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGxldCBjdXJyZW50UGFyYWdyYXBoID0gY29kZUVkaXRFZGl0b3IucXVlcnlTZWxlY3RvckFsbCgnLmNlLXBhcmFncmFwaCcpW2NvZGVFZGl0QXBpLmJsb2Nrcy5nZXRDdXJyZW50QmxvY2tJbmRleCgpXTtcbiAgICAgICAgICAgICAgICBjdXJyZW50UGFyYWdyYXBoLmlubmVySFRNTCA9ICcnO1xuICAgICAgICAgICAgICAgIGN1cnJlbnRQYXJhZ3JhcGguYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgncCcpKTtcbiAgICAgICAgICAgICAgICBjdXJyZW50UGFyYWdyYXBoLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCBvbkVkaXRMaXN0LCB0cnVlKTtcbiAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRTZWxlY3Rpb24oKS5zZXRCYXNlQW5kRXh0ZW50KGN1cnJlbnRQYXJhZ3JhcGgucXVlcnlTZWxlY3RvcigncCcpLCAwLCBjdXJyZW50UGFyYWdyYXBoLnF1ZXJ5U2VsZWN0b3IoJ3AnKSwgMCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
@@ -55,7 +55,7 @@ export class UnorderedListTool extends ParagraphStyleTool {
55
55
  if (!isBlockFocused) {
56
56
  setBlockFocus(this.parentEditor);
57
57
  }
58
- const parentModifier = this.findParentModifier(selection.anchorNode.parentElement);
58
+ const parentModifier = this.findParentModifier();
59
59
  if (!parentModifier) {
60
60
  return false;
61
61
  }
@@ -65,4 +65,4 @@ export class UnorderedListTool extends ParagraphStyleTool {
65
65
  }
66
66
  }
67
67
  UnorderedListTool.title = 'Unordered List';
68
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5vcmRlcmVkLWxpc3QtdG9vbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiL2hvbWUvcGF1bGluZS9Eb2N1bWVudHMvd29ya3NwYWNlL3dpemktYmxvY2svcHJvamVjdHMvd2l6aS1ibG9jay9zcmMvIiwic291cmNlcyI6WyJsaWIvc2hhcmVkL2NvbXBvbmVudHMvZWRpdG9yanMvdG9vbHMvcGFyYWdyYXBoL3Vub3JkZXJlZC1saXN0LXRvb2wuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFDQSxPQUFPLEVBQUUsY0FBYyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBRWhGLFdBQVc7QUFDWCxNQUFNLE9BQU8saUJBQWtCLFNBQVEsa0JBQWtCO0lBeUNyRCxZQUFZLEVBQUUsR0FBRyxFQUFFO1FBQ2YsS0FBSyxFQUFFLENBQUM7UUF2Q0ssZ0JBQVcsR0FBVyxlQUFlLENBQUM7UUFFdkQsUUFBRyxHQUFHO1lBQ0YsTUFBTSxFQUFFLGdCQUFnQjtZQUN4QixZQUFZLEVBQUUsd0JBQXdCO1lBQ3RDLGNBQWMsRUFBRSwrQkFBK0I7U0FDbEQsQ0FBQztRQUVGLFVBQUssR0FBa0M7WUFDbkMsTUFBTSxFQUFFLFNBQVM7U0FDcEIsQ0FBQztRQU1GLFFBQUcsR0FBRyxJQUFJLENBQUM7UUF3QlAsSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUM7UUFDZixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztJQUN4QixDQUFDO0lBeEJNLE1BQU0sS0FBSyxRQUFRO1FBQ3RCLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFTSxNQUFNLEtBQUssUUFBUTtRQUN0QixPQUFPO1lBQ0gsQ0FBQyxFQUFFLEVBQUU7U0FDVyxDQUFDO0lBQ3pCLENBQUM7SUFFRCxJQUFJLEtBQUs7UUFDTCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDdkIsQ0FBQztJQUVELElBQUksS0FBSyxDQUFDLEtBQUs7UUFDWCxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztRQUVwQixJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLHNCQUFzQixFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3RGLENBQUM7SUFRRCxNQUFNO1FBQ0YsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQXNCLENBQUM7UUFDMUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxHQUFHLFFBQVEsQ0FBQztRQUNsQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDMUUsSUFBSSxJQUFJLENBQUMsa0JBQWtCLEVBQUU7WUFDekIsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7U0FDeEQ7UUFFRCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDO0lBQzdCLENBQUM7SUFFSyxRQUFRLENBQUMsS0FBWTs7WUFDdkIsTUFBTSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3RDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUM7UUFDekMsQ0FBQztLQUFBO0lBRUQsVUFBVSxDQUFDLFNBQVM7UUFDaEIsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDcEIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztTQUMvQztRQUNELElBQUksQ0FBQyxjQUFjLEVBQUU7WUFDakIsYUFBYSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztTQUNwQztRQUNELE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBYyxTQUFTLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ2hHLElBQUksQ0FBQyxjQUFjLEVBQUU7WUFDakIsT0FBTyxLQUFLLENBQUM7U0FDaEI7UUFDRCxJQUFJLFFBQVEsR0FBRyxjQUFjLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDL0UsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxRQUFRLENBQUMsQ0FBQztRQUVwRSxPQUFPLFFBQVEsQ0FBQztJQUNwQixDQUFDOztBQTdFYSx1QkFBSyxHQUFHLGdCQUFnQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5saW5lVG9vbCwgU2FuaXRpemVyQ29uZmlnIH0gZnJvbSAnQGVkaXRvcmpzL2VkaXRvcmpzJztcbmltcG9ydCB7IGlzQmxvY2tGb2N1c2VkLCBzZXRCbG9ja0ZvY3VzIH0gZnJvbSAnLi4vdXRpbHMvZWRpdG9yanMtdG9vbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgUGFyYWdyYXBoU3R5bGVUb29sIH0gZnJvbSAnLi90b29sLXR5cGUvcGFyYWdyYXBoLXN0eWxlLXRvb2wuY29tcG9uZW50JztcblxuLy8gQGR5bmFtaWNcbmV4cG9ydCBjbGFzcyBVbm9yZGVyZWRMaXN0VG9vbCBleHRlbmRzIFBhcmFncmFwaFN0eWxlVG9vbCBpbXBsZW1lbnRzIElubGluZVRvb2wge1xuICAgIHB1YmxpYyBzdGF0aWMgdGl0bGUgPSAnVW5vcmRlcmVkIExpc3QnO1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBjb21tYW5kTmFtZTogc3RyaW5nID0gJ3Vub3JkZXJlZExpc3QnO1xuXG4gICAgQ1NTID0ge1xuICAgICAgICBidXR0b246ICdjZS1pbmxpbmUtdG9vbCcsXG4gICAgICAgIGJ1dHRvbkFjdGl2ZTogJ2NlLWlubGluZS10b29sLS1hY3RpdmUnLFxuICAgICAgICBidXR0b25Nb2RpZmllcjogJ2NlLWlubGluZS10b29sLS11bm9yZGVyZWRMaXN0JyxcbiAgICB9O1xuXG4gICAgbm9kZXM6IHsgYnV0dG9uOiBIVE1MQnV0dG9uRWxlbWVudCB9ID0ge1xuICAgICAgICBidXR0b246IHVuZGVmaW5lZCxcbiAgICB9O1xuXG4gICAgYXBpOiBhbnk7XG5cbiAgICBwcml2YXRlIF9zdGF0ZTogYm9vbGVhbjtcblxuICAgIHRhZyA9ICdVTCc7XG5cbiAgICBwdWJsaWMgc3RhdGljIGdldCBpc0lubGluZSgpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBnZXQgc2FuaXRpemUoKTogU2FuaXRpemVyQ29uZmlnIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGI6IHt9LFxuICAgICAgICB9IGFzIFNhbml0aXplckNvbmZpZztcbiAgICB9XG5cbiAgICBnZXQgc3RhdGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zdGF0ZTtcbiAgICB9XG5cbiAgICBzZXQgc3RhdGUoc3RhdGUpIHtcbiAgICAgICAgdGhpcy5fc3RhdGUgPSBzdGF0ZTtcblxuICAgICAgICB0aGlzLm5vZGVzLmJ1dHRvbi5jbGFzc0xpc3QudG9nZ2xlKHRoaXMuYXBpLnN0eWxlcy5pbmxpbmVUb29sQnV0dG9uQWN0aXZlLCBzdGF0ZSk7XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IoeyBhcGkgfSkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLmFwaSA9IGFwaTtcbiAgICAgICAgdGhpcy5fc3RhdGUgPSBmYWxzZTtcbiAgICB9XG5cbiAgICByZW5kZXIoKSB7XG4gICAgICAgIHRoaXMubm9kZXMuYnV0dG9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYnV0dG9uJykgYXMgSFRNTEJ1dHRvbkVsZW1lbnQ7XG4gICAgICAgIHRoaXMubm9kZXMuYnV0dG9uLnR5cGUgPSAnYnV0dG9uJztcbiAgICAgICAgdGhpcy5ub2Rlcy5idXR0b24uY2xhc3NMaXN0LmFkZCh0aGlzLkNTUy5idXR0b24sIHRoaXMuQ1NTLmJ1dHRvbk1vZGlmaWVyKTtcbiAgICAgICAgaWYgKHRoaXMuaGFzU2VwYXJhdG9yQmVmb3JlKSB7XG4gICAgICAgICAgICB0aGlzLm5vZGVzLmJ1dHRvbi5jbGFzc0xpc3QuYWRkKHRoaXMuc2VwYXJhdG9yQ2xhc3MpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMubm9kZXMuYnV0dG9uO1xuICAgIH1cblxuICAgIGFzeW5jIHN1cnJvdW5kKHJhbmdlOiBSYW5nZSkge1xuICAgICAgICBhd2FpdCB0aGlzLmV4ZWNDb21tYW5kU3R5bGUodGhpcy50YWcpO1xuICAgICAgICB0aGlzLmNoZWNrU3RhdGUodGhpcy5nZXRTZWxlY3Rpb24oKSk7XG4gICAgfVxuXG4gICAgY2hlY2tTdGF0ZShzZWxlY3Rpb24pIHtcbiAgICAgICAgaWYgKCF0aGlzLnBhcmVudEVkaXRvcikge1xuICAgICAgICAgICAgdGhpcy5wYXJlbnRFZGl0b3IgPSB0aGlzLmZpbmRQYXJlbnRFZGl0b3IoKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIWlzQmxvY2tGb2N1c2VkKSB7XG4gICAgICAgICAgICBzZXRCbG9ja0ZvY3VzKHRoaXMucGFyZW50RWRpdG9yKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBwYXJlbnRNb2RpZmllciA9IHRoaXMuZmluZFBhcmVudE1vZGlmaWVyKDxIVE1MRWxlbWVudD5zZWxlY3Rpb24uYW5jaG9yTm9kZS5wYXJlbnRFbGVtZW50KTtcbiAgICAgICAgaWYgKCFwYXJlbnRNb2RpZmllcikge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGxldCBpc0FjdGl2ZSA9IHBhcmVudE1vZGlmaWVyLnRhZ05hbWUudG9Mb3dlckNhc2UoKSA9PT0gdGhpcy50YWcudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgdGhpcy5ub2Rlcy5idXR0b24uY2xhc3NMaXN0LnRvZ2dsZSh0aGlzLkNTUy5idXR0b25BY3RpdmUsIGlzQWN0aXZlKTtcblxuICAgICAgICByZXR1cm4gaXNBY3RpdmU7XG4gICAgfVxufVxuIl19
68
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5vcmRlcmVkLWxpc3QtdG9vbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiL2hvbWUvcGF1bGluZS9Eb2N1bWVudHMvd29ya3NwYWNlL3dpemktYmxvY2svcHJvamVjdHMvd2l6aS1ibG9jay9zcmMvIiwic291cmNlcyI6WyJsaWIvc2hhcmVkL2NvbXBvbmVudHMvZWRpdG9yanMvdG9vbHMvcGFyYWdyYXBoL3Vub3JkZXJlZC1saXN0LXRvb2wuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFDQSxPQUFPLEVBQUUsY0FBYyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBRWhGLFdBQVc7QUFDWCxNQUFNLE9BQU8saUJBQWtCLFNBQVEsa0JBQWtCO0lBeUNyRCxZQUFZLEVBQUUsR0FBRyxFQUFFO1FBQ2YsS0FBSyxFQUFFLENBQUM7UUF2Q0ssZ0JBQVcsR0FBVyxlQUFlLENBQUM7UUFFdkQsUUFBRyxHQUFHO1lBQ0YsTUFBTSxFQUFFLGdCQUFnQjtZQUN4QixZQUFZLEVBQUUsd0JBQXdCO1lBQ3RDLGNBQWMsRUFBRSwrQkFBK0I7U0FDbEQsQ0FBQztRQUVGLFVBQUssR0FBa0M7WUFDbkMsTUFBTSxFQUFFLFNBQVM7U0FDcEIsQ0FBQztRQU1GLFFBQUcsR0FBRyxJQUFJLENBQUM7UUF3QlAsSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUM7UUFDZixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztJQUN4QixDQUFDO0lBeEJNLE1BQU0sS0FBSyxRQUFRO1FBQ3RCLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFTSxNQUFNLEtBQUssUUFBUTtRQUN0QixPQUFPO1lBQ0gsQ0FBQyxFQUFFLEVBQUU7U0FDVyxDQUFDO0lBQ3pCLENBQUM7SUFFRCxJQUFJLEtBQUs7UUFDTCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDdkIsQ0FBQztJQUVELElBQUksS0FBSyxDQUFDLEtBQUs7UUFDWCxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztRQUVwQixJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLHNCQUFzQixFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3RGLENBQUM7SUFRRCxNQUFNO1FBQ0YsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQXNCLENBQUM7UUFDMUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxHQUFHLFFBQVEsQ0FBQztRQUNsQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDMUUsSUFBSSxJQUFJLENBQUMsa0JBQWtCLEVBQUU7WUFDekIsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7U0FDeEQ7UUFFRCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDO0lBQzdCLENBQUM7SUFFSyxRQUFRLENBQUMsS0FBWTs7WUFDdkIsTUFBTSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3RDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUM7UUFDekMsQ0FBQztLQUFBO0lBRUQsVUFBVSxDQUFDLFNBQVM7UUFDaEIsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDcEIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztTQUMvQztRQUNELElBQUksQ0FBQyxjQUFjLEVBQUU7WUFDakIsYUFBYSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztTQUNwQztRQUNELE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1FBQ2pELElBQUksQ0FBQyxjQUFjLEVBQUU7WUFDakIsT0FBTyxLQUFLLENBQUM7U0FDaEI7UUFDRCxJQUFJLFFBQVEsR0FBRyxjQUFjLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDL0UsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxRQUFRLENBQUMsQ0FBQztRQUVwRSxPQUFPLFFBQVEsQ0FBQztJQUNwQixDQUFDOztBQTdFYSx1QkFBSyxHQUFHLGdCQUFnQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5saW5lVG9vbCwgU2FuaXRpemVyQ29uZmlnIH0gZnJvbSAnQGVkaXRvcmpzL2VkaXRvcmpzJztcbmltcG9ydCB7IGlzQmxvY2tGb2N1c2VkLCBzZXRCbG9ja0ZvY3VzIH0gZnJvbSAnLi4vdXRpbHMvZWRpdG9yanMtdG9vbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgUGFyYWdyYXBoU3R5bGVUb29sIH0gZnJvbSAnLi90b29sLXR5cGUvcGFyYWdyYXBoLXN0eWxlLXRvb2wuY29tcG9uZW50JztcblxuLy8gQGR5bmFtaWNcbmV4cG9ydCBjbGFzcyBVbm9yZGVyZWRMaXN0VG9vbCBleHRlbmRzIFBhcmFncmFwaFN0eWxlVG9vbCBpbXBsZW1lbnRzIElubGluZVRvb2wge1xuICAgIHB1YmxpYyBzdGF0aWMgdGl0bGUgPSAnVW5vcmRlcmVkIExpc3QnO1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBjb21tYW5kTmFtZTogc3RyaW5nID0gJ3Vub3JkZXJlZExpc3QnO1xuXG4gICAgQ1NTID0ge1xuICAgICAgICBidXR0b246ICdjZS1pbmxpbmUtdG9vbCcsXG4gICAgICAgIGJ1dHRvbkFjdGl2ZTogJ2NlLWlubGluZS10b29sLS1hY3RpdmUnLFxuICAgICAgICBidXR0b25Nb2RpZmllcjogJ2NlLWlubGluZS10b29sLS11bm9yZGVyZWRMaXN0JyxcbiAgICB9O1xuXG4gICAgbm9kZXM6IHsgYnV0dG9uOiBIVE1MQnV0dG9uRWxlbWVudCB9ID0ge1xuICAgICAgICBidXR0b246IHVuZGVmaW5lZCxcbiAgICB9O1xuXG4gICAgYXBpOiBhbnk7XG5cbiAgICBwcml2YXRlIF9zdGF0ZTogYm9vbGVhbjtcblxuICAgIHRhZyA9ICdVTCc7XG5cbiAgICBwdWJsaWMgc3RhdGljIGdldCBpc0lubGluZSgpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBnZXQgc2FuaXRpemUoKTogU2FuaXRpemVyQ29uZmlnIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGI6IHt9LFxuICAgICAgICB9IGFzIFNhbml0aXplckNvbmZpZztcbiAgICB9XG5cbiAgICBnZXQgc3RhdGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zdGF0ZTtcbiAgICB9XG5cbiAgICBzZXQgc3RhdGUoc3RhdGUpIHtcbiAgICAgICAgdGhpcy5fc3RhdGUgPSBzdGF0ZTtcblxuICAgICAgICB0aGlzLm5vZGVzLmJ1dHRvbi5jbGFzc0xpc3QudG9nZ2xlKHRoaXMuYXBpLnN0eWxlcy5pbmxpbmVUb29sQnV0dG9uQWN0aXZlLCBzdGF0ZSk7XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IoeyBhcGkgfSkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLmFwaSA9IGFwaTtcbiAgICAgICAgdGhpcy5fc3RhdGUgPSBmYWxzZTtcbiAgICB9XG5cbiAgICByZW5kZXIoKSB7XG4gICAgICAgIHRoaXMubm9kZXMuYnV0dG9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYnV0dG9uJykgYXMgSFRNTEJ1dHRvbkVsZW1lbnQ7XG4gICAgICAgIHRoaXMubm9kZXMuYnV0dG9uLnR5cGUgPSAnYnV0dG9uJztcbiAgICAgICAgdGhpcy5ub2Rlcy5idXR0b24uY2xhc3NMaXN0LmFkZCh0aGlzLkNTUy5idXR0b24sIHRoaXMuQ1NTLmJ1dHRvbk1vZGlmaWVyKTtcbiAgICAgICAgaWYgKHRoaXMuaGFzU2VwYXJhdG9yQmVmb3JlKSB7XG4gICAgICAgICAgICB0aGlzLm5vZGVzLmJ1dHRvbi5jbGFzc0xpc3QuYWRkKHRoaXMuc2VwYXJhdG9yQ2xhc3MpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMubm9kZXMuYnV0dG9uO1xuICAgIH1cblxuICAgIGFzeW5jIHN1cnJvdW5kKHJhbmdlOiBSYW5nZSkge1xuICAgICAgICBhd2FpdCB0aGlzLmV4ZWNDb21tYW5kU3R5bGUodGhpcy50YWcpO1xuICAgICAgICB0aGlzLmNoZWNrU3RhdGUodGhpcy5nZXRTZWxlY3Rpb24oKSk7XG4gICAgfVxuXG4gICAgY2hlY2tTdGF0ZShzZWxlY3Rpb24pIHtcbiAgICAgICAgaWYgKCF0aGlzLnBhcmVudEVkaXRvcikge1xuICAgICAgICAgICAgdGhpcy5wYXJlbnRFZGl0b3IgPSB0aGlzLmZpbmRQYXJlbnRFZGl0b3IoKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIWlzQmxvY2tGb2N1c2VkKSB7XG4gICAgICAgICAgICBzZXRCbG9ja0ZvY3VzKHRoaXMucGFyZW50RWRpdG9yKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBwYXJlbnRNb2RpZmllciA9IHRoaXMuZmluZFBhcmVudE1vZGlmaWVyKCk7XG4gICAgICAgIGlmICghcGFyZW50TW9kaWZpZXIpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBsZXQgaXNBY3RpdmUgPSBwYXJlbnRNb2RpZmllci50YWdOYW1lLnRvTG93ZXJDYXNlKCkgPT09IHRoaXMudGFnLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgIHRoaXMubm9kZXMuYnV0dG9uLmNsYXNzTGlzdC50b2dnbGUodGhpcy5DU1MuYnV0dG9uQWN0aXZlLCBpc0FjdGl2ZSk7XG5cbiAgICAgICAgcmV0dXJuIGlzQWN0aXZlO1xuICAgIH1cbn1cbiJdfQ==
@@ -77,6 +77,13 @@ export class EditorJSTool {
77
77
  const selection = this.currentSelection ? this.currentSelection : this.getSelection();
78
78
  return selection.anchorNode.parentElement.closest('.editorJs');
79
79
  }
80
+ findParentModifier() {
81
+ if (!this.parentEditor) {
82
+ this.parentEditor = this.findParentEditor();
83
+ }
84
+ return (this.parentEditor.querySelectorAll('.ce-block')[this.api.blocks.getCurrentBlockIndex()].querySelector('.ce-paragraph')
85
+ .children[0]);
86
+ }
80
87
  clear() {
81
88
  resetBlockFocus(this.parentEditor);
82
89
  }
@@ -120,4 +127,4 @@ export function resetBlockFocus(parentEditor) {
120
127
  containerToFocus.classList.remove('editorjs-focused');
121
128
  }
122
129
  }
123
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdG9yanMtdG9vbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiL2hvbWUvcGF1bGluZS9Eb2N1bWVudHMvd29ya3NwYWNlL3dpemktYmxvY2svcHJvamVjdHMvd2l6aS1ibG9jay9zcmMvIiwic291cmNlcyI6WyJsaWIvc2hhcmVkL2NvbXBvbmVudHMvZWRpdG9yanMvdG9vbHMvdXRpbHMvZWRpdG9yanMtdG9vbC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxPQUFPLFdBQVc7Q0FNdkI7QUFFRCxNQUFNLE9BQU8sZUFBZTtDQUczQjtBQUVELE1BQU0sT0FBZ0IsWUFBWTtJQUFsQztRQUNJLGlCQUFZLEdBQW1CLElBQUksQ0FBQztRQUVwQyxtQkFBYyxHQUFHLHdCQUF3QixDQUFDO1FBSTFDLHVCQUFrQixHQUFTLElBQUksQ0FBQztRQUVoQyxzQkFBaUIsR0FBUyxJQUFJLENBQUM7UUFFL0IsaUJBQVksR0FBVyxDQUFDLENBQUMsQ0FBQztRQUUxQixnQkFBVyxHQUFXLENBQUMsQ0FBQyxDQUFDO1FBRXpCLHVCQUFrQixHQUFhLEtBQUssQ0FBQztRQUVyQyxtQkFBYyxHQUFXLDJCQUEyQixDQUFDO0lBdUZ6RCxDQUFDO0lBckZHLFlBQVk7UUFDUixJQUFJLE1BQU0sYUFBTixNQUFNLHVCQUFOLE1BQU0sQ0FBRSxZQUFZLEVBQUU7WUFDdEIsT0FBTyxNQUFNLENBQUMsWUFBWSxFQUFFLENBQUM7U0FDaEM7YUFBTSxJQUFJLFFBQVEsYUFBUixRQUFRLHVCQUFSLFFBQVEsQ0FBRSxZQUFZLEVBQUU7WUFDL0IsT0FBTyxRQUFRLENBQUMsWUFBWSxFQUFFLENBQUM7U0FDbEM7YUFBTSxJQUFJLFFBQVEsSUFBSyxRQUFnQixDQUFDLFNBQVMsRUFBRTtZQUNoRCxPQUFRLFFBQWdCLENBQUMsU0FBUyxDQUFDLFdBQVcsRUFBRSxDQUFDLElBQUksQ0FBQztTQUN6RDtRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFF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QUMxRCxJQUFJLEtBQUssQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLCtCQUErQixDQUFDLEVBQUU7UUFDM0QsS0FBSyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsK0JBQStCLENBQUMsQ0FBQztLQUMzRDtJQUVELElBQUksZ0JBQWdCLEdBQUcsWUFBWSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUN2RCxJQUFJLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsa0JBQWtCLENBQUMsRUFBRTtRQUN6RCxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUM7S0FDekQ7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIFN0eWxlT2JqZWN0IHtcbiAgICBwcm9wZXJ0eTogc3RyaW5nO1xuICAgIHZhbHVlOiBzdHJpbmc7XG4gICAgZGVmYXVsdDogc3RyaW5nO1xuICAgIGlucHV0Pzogc3RyaW5nO1xuICAgIGNsYXNzPzogc3RyaW5nO1xufVxuXG5leHBvcnQgY2xhc3MgQXR0cmlidXRlT2JqZWN0IHtcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgdmFsdWU6IHN0cmluZztcbn1cblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEVkaXRvckpTVG9vbCB7XG4gICAgcGFyZW50RWRpdG9yOiBIVE1MRGl2RWxlbWVudCA9IG51bGw7XG5cbiAgICB0ZXh0Q29udGFpbmVycyA9ICdoMSxoMixoMyxoNCxoNSxoNixwLGxpJztcblxuICAgIGN1cnJlbnRTZWxlY3Rpb24/OiBTZWxlY3Rpb247XG5cbiAgICBzZWxlY3RlZEFuY2hvck5vZGU6IE5vZGUgPSBudWxsO1xuXG4gICAgc2VsZWN0ZWRGb2N1c05vZGU6IE5vZGUgPSBudWxsO1xuXG4gICAgYW5jaG9yT2Zmc2V0OiBudW1iZXIgPSAtMTtcblxuICAgIGZvY3VzT2Zmc2V0OiBudW1iZXIgPSAtMTtcblxuICAgIGhhc1NlcGFyYXRvckJlZm9yZT86IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIHNlcGFyYXRvckNsYXNzOiBzdHJpbmcgPSAnY2UtaW5saW5lLXRvb2wtLXNlcGFyYXRvcic7XG5cbiAgICBnZXRTZWxlY3Rpb24oKTogU2VsZWN0aW9uIHtcbiAgICAgICAgaWYgKHdpbmRvdz8uZ2V0U2VsZWN0aW9uKSB7XG4gICAgICAgICAgICByZXR1cm4gd2luZG93LmdldFNlbGVjdGlvbigpO1xuICAgICAgICB9IGVsc2UgaWYgKGRvY3VtZW50Py5nZXRTZWxlY3Rpb24pIHtcbiAgICAgICAgICAgIHJldHVybiBkb2N1bWVudC5nZXRTZWxlY3Rpb24oKTtcbiAgICAgICAgfSBlbHNlIGlmIChkb2N1bWVudCAmJiAoZG9jdW1lbnQgYXMgYW55KS5zZWxlY3Rpb24pIHtcbiAgICAgICAgICAgIHJldHVybiAoZG9jdW1lbnQgYXMgYW55KS5zZWxlY3Rpb24uY3JlYXRlUmFuZ2UoKS50ZXh0O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGdldFJhbmdlT2JqZWN0KHNlbGVjdGlvbk9iamVjdDogU2VsZWN0aW9uKTogUmFuZ2Uge1xuICAgICAgICBpZiAoc2VsZWN0aW9uT2JqZWN0LmdldFJhbmdlQXQpIHtcbiAgICAgICAgICAgIHJldHVybiBzZWxlY3Rpb25PYmplY3QuZ2V0UmFuZ2VBdCgwKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGxldCByYW5nZSA9IGRvY3VtZW50LmNyZWF0ZVJhbmdlKCk7XG4gICAgICAgICAgICByYW5nZS5zZXRTdGFydChzZWxlY3Rpb25PYmplY3QuYW5jaG9yTm9kZS5wYXJlbnRFbGVtZW50LCBzZWxlY3Rpb25PYmplY3QuYW5jaG9yT2Zmc2V0KTtcbiAgICAgICAgICAgIHJhbmdlLnNldEVuZChzZWxlY3Rpb25PYmplY3QuZm9jdXNOb2RlLCBzZWxlY3Rpb25PYmplY3QuZm9jdXNPZmZzZXQpO1xuICAgICAgICAgICAgcmV0dXJuIHJhbmdlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgc2F2ZVVzZXJTZWxlY3Rpb24oKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY3VycmVudFNlbGVjdGlvbiA9IHRoaXMuZ2V0U2VsZWN0aW9uKCk7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRBbmNob3JOb2RlID0gdGhpcy5jdXJyZW50U2VsZWN0aW9uLmFuY2hvck5vZGU7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRGb2N1c05vZGUgPSB0aGlzLmN1cnJlbnRTZWxlY3Rpb24uZm9jdXNOb2RlO1xuICAgICAgICB0aGlzLmFuY2hvck9mZnNldCA9IHRoaXMuY3VycmVudFNlbGVjdGlvbi5hbmNob3JPZmZzZXQ7XG4gICAgICAgIHRoaXMuZm9jdXNPZmZzZXQgPSB0aGlzLmN1cnJlbnRTZWxlY3Rpb24uZm9jdXNPZmZzZXQ7XG4gICAgfVxuXG4gICAgcmVzZXRVc2VyU2VsZWN0aW9uKCk6IHZvaWQge1xuICAgICAgICBjb25zb2xlLmxvZygncmVzZXQgaGVyZScpO1xuICAgICAgICBpZiAodGhpcy5zZWxlY3RlZEFuY2hvck5vZGUubm9kZVR5cGUgPT09IE5vZGUuRUxFTUVOVF9OT0RFICYmICg8SFRNTEVsZW1lbnQ+dGhpcy5zZWxlY3RlZEFuY2hvck5vZGUpLmNoaWxkcmVuKSB7XG4gICAgICAgICAgICB3aGlsZSAoXG4gICAgICAgICAgICAgICAgKDxIVE1MRWxlbWVudD50aGlzLnNlbGVjdGVkQW5jaG9yTm9kZSkuY2hpbGRyZW4gJiZcbiAgICAgICAgICAgICAgICAoPEhUTUxFbGVtZW50PnRoaXMuc2VsZWN0ZWRBbmNob3JOb2RlKS5pbm5lclRleHQgPT09XG4gICAgICAgICAgICAgICAgICAgICg8SFRNTEVsZW1lbnQ+KDxIVE1MRWxlbWVudD50aGlzLnNlbGVjdGVkQW5jaG9yTm9kZSkuY2hpbGRyZW5bMF0pPy5pbm5lclRleHQgJiZcbiAgICAgICAgICAgICAgICAoPEhUTUxFbGVtZW50PnRoaXMuc2VsZWN0ZWRBbmNob3JOb2RlKS5jaGlsZHJlbi5sZW5ndGggPT09IDFcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRBbmNob3JOb2RlID0gKDxIVE1MRWxlbWVudD50aGlzLnNlbGVjdGVkQW5jaG9yTm9kZSkuY2hpbGRyZW5bMF07XG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEZvY3VzTm9kZSA9IHRoaXMuc2VsZWN0ZWRBbmNob3JOb2RlO1xuICAgICAgICAgICAgICAgIHRoaXMuYW5jaG9yT2Zmc2V0ID0gMDtcbiAgICAgICAgICAgICAgICB0aGlzLmZvY3VzT2Zmc2V0ID0gMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0aGlzLnRleHRDb250YWluZXJzLnNwbGl0KCcsJykuaW5kZXhPZigoPEhUTUxFbGVtZW50PnRoaXMuc2VsZWN0ZWRBbmNob3JOb2RlKS50YWdOYW1lLnRvTG93ZXJDYXNlKCkpID4gLTEpIHtcbiAgICAgICAgICAgICAgICBsZXQgY2hpbGRUZXh0Tm9kZXMgPSB0aGlzLmdldFRleHROb2Rlcyh0aGlzLnNlbGVjdGVkQW5jaG9yTm9kZSk7XG4gICAgICAgICAgICAgICAgbGV0IGZvY3VzTm9kZSA9XG4gICAgICAgICAgICAgICAgICAgIGNoaWxkVGV4dE5vZGVzLmxlbmd0aCA+IDFcbiAgICAgICAgICAgICAgICAgICAgICAgID8gKDxIVE1MRWxlbWVudD50aGlzLnNlbGVjdGVkQW5jaG9yTm9kZSkuY2hpbGROb2Rlc1tjaGlsZFRleHROb2Rlcy5sZW5ndGggLSAxXVxuICAgICAgICAgICAgICAgICAgICAgICAgOiAoPEhUTUxFbGVtZW50PnRoaXMuc2VsZWN0ZWRBbmNob3JOb2RlKS5jaGlsZE5vZGVzWzBdO1xuICAgICAgICAgICAgICAgIGxldCBmb2N1c09mZnNldCA9IGNoaWxkVGV4dE5vZGVzLmxlbmd0aCA+IDEgPyBjaGlsZFRleHROb2Rlcy5sZW5ndGggOiBjaGlsZFRleHROb2Rlc1swXS50ZXh0Q29udGVudC5sZW5ndGg7XG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEFuY2hvck5vZGUgPSAoPEhUTUxFbGVtZW50PnRoaXMuc2VsZWN0ZWRBbmNob3JOb2RlKS5jaGlsZE5vZGVzWzBdO1xuICAgICAgICAgICAgICAgIHRoaXMuYW5jaG9yT2Zmc2V0ID0gMDtcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkRm9jdXNOb2RlID0gZm9jdXNOb2RlO1xuICAgICAgICAgICAgICAgIHRoaXMuZm9jdXNPZmZzZXQgPSBmb2N1c09mZnNldDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBkb2N1bWVudC5nZXRTZWxlY3Rpb24oKS5zZXRCYXNlQW5kRXh0ZW50KHRoaXMuc2VsZWN0ZWRBbmNob3JOb2RlLCB0aGlzLmFuY2hvck9mZnNldCwgdGhpcy5zZWxlY3RlZEZvY3VzTm9kZSwgdGhpcy5mb2N1c09mZnNldCk7XG4gICAgfVxuXG4gICAgY29sbGFwc2VTZWxlY3Rpb24oKSB7XG4gICAgICAgIGxldCBzZWxlY3Rpb24gPSB0aGlzLmdldFNlbGVjdGlvbigpO1xuICAgICAgICBkb2N1bWVudC5nZXRTZWxlY3Rpb24oKS5zZXRCYXNlQW5kRXh0ZW50KHNlbGVjdGlvbi5hbmNob3JOb2RlLCAwLCBzZWxlY3Rpb24uYW5jaG9yTm9kZSwgMCk7XG4gICAgfVxuXG4gICAgZmluZFBhcmVudEVkaXRvcigpOiBIVE1MRGl2RWxlbWVudCB8IG51bGwge1xuICAgICAgICBjb25zdCBzZWxlY3Rpb246IFNlbGVjdGlvbiB8IG51bGwgPSB0aGlzLmN1cnJlbnRTZWxlY3Rpb24gPyB0aGlzLmN1cnJlbnRTZWxlY3Rpb24gOiB0aGlzLmdldFNlbGVjdGlvbigpO1xuICAgICAgICByZXR1cm4gc2VsZWN0aW9uLmFuY2hvck5vZGUucGFyZW50RWxlbWVudC5jbG9zZXN0KCcuZWRpdG9ySnMnKTtcbiAgICB9XG5cbiAgICBjbGVhcigpIHtcbiAgICAgICAgcmVzZXRCbG9ja0ZvY3VzKHRoaXMucGFyZW50RWRpdG9yKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFRleHROb2Rlcyhjb250YWluZXIpOiBBcnJheTxOb2RlPiB7XG4gICAgICAgIGxldCBjaGlsZFRleHROb2RlczogQXJyYXk8Tm9kZT4gPSBbXTtcbiAgICAgICAgaWYgKGNvbnRhaW5lci5jaGlsZE5vZGVzKSB7XG4gICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNvbnRhaW5lci5jaGlsZE5vZGVzLmxlbmd0aDsgKytpKSB7XG4gICAgICAgICAgICAgICAgaWYgKGNvbnRhaW5lci5jaGlsZE5vZGVzW2ldLm5vZGVUeXBlID09PSBOb2RlLlRFWFRfTk9ERSkge1xuICAgICAgICAgICAgICAgICAgICBjaGlsZFRleHROb2Rlcy5wdXNoKGNvbnRhaW5lci5jaGlsZE5vZGVzW2ldKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGNoaWxkVGV4dE5vZGVzO1xuICAgIH1cbn1cblxuZXhwb3J0IHZhciBpc1RleHRFZGl0aW9uVG9vbDogYm9vbGVhbiA9IGZhbHNlO1xuXG5leHBvcnQgdmFyIGlzQmxvY2tGb2N1c2VkOiBib29sZWFuID0gZmFsc2U7XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXRJc1RleHRFZGl0aW9uVG9vbCh2YWx1ZTogYm9vbGVhbikge1xuICAgIGlzVGV4dEVkaXRpb25Ub29sID0gdmFsdWU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXRJc0Jsb2NrRm9jdXNlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIGlzQmxvY2tGb2N1c2VkID0gdmFsdWU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXRCbG9ja0ZvY3VzKHBhcmVudEVkaXRvcjogSFRNTEVsZW1lbnQpIHtcbiAgICBsZXQgYmxvY2sgPSBwYXJlbnRFZGl0b3IuY2xvc2VzdCgnLndiLWJsb2Nrc19fY29udGFpbmVyJyk7XG4gICAgaWYgKCFibG9jay5jbGFzc0xpc3QuY29udGFpbnMoJ3diLWJsb2Nrc19fY29udGFpbmVyLS1mb2N1c2VkJykpIHtcbiAgICAgICAgYmxvY2suY2xhc3NMaXN0LmFkZCgnd2ItYmxvY2tzX19jb250YWluZXItLWZvY3VzZWQnKTtcbiAgICB9XG5cbiAgICBsZXQgY29udGFpbmVyVG9Gb2N1cyA9IHBhcmVudEVkaXRvci5jbG9zZXN0KCcuY29sdW1uJyk7XG4gICAgaWYgKCFjb250YWluZXJUb0ZvY3VzLmNsYXNzTGlzdC5jb250YWlucygnZWRpdG9yanMtZm9jdXNlZCcpKSB7XG4gICAgICAgIGNvbnRhaW5lclRvRm9jdXMuY2xhc3NMaXN0LmFkZCgnZWRpdG9yanMtZm9jdXNlZCcpO1xuICAgIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlc2V0QmxvY2tGb2N1cyhwYXJlbnRFZGl0b3I6IEhUTUxFbGVtZW50KSB7XG4gICAgbGV0IGJsb2NrID0gcGFyZW50RWRpdG9yLmNsb3Nlc3QoJy53Yi1ibG9ja3NfX2NvbnRhaW5lcicpO1xuICAgIGlmIChibG9jay5jbGFzc0xpc3QuY29udGFpbnMoJ3diLWJsb2Nrc19fY29udGFpbmVyLS1mb2N1c2VkJykpIHtcbiAgICAgICAgYmxvY2suY2xhc3NMaXN0LnJlbW92ZSgnd2ItYmxvY2tzX19jb250YWluZXItLWZvY3VzZWQnKTtcbiAgICB9XG5cbiAgICBsZXQgY29udGFpbmVyVG9Gb2N1cyA9IHBhcmVudEVkaXRvci5jbG9zZXN0KCcuY29sdW1uJyk7XG4gICAgaWYgKGNvbnRhaW5lclRvRm9jdXMuY2xhc3NMaXN0LmNvbnRhaW5zKCdlZGl0b3Jqcy1mb2N1c2VkJykpIHtcbiAgICAgICAgY29udGFpbmVyVG9Gb2N1cy5jbGFzc0xpc3QucmVtb3ZlKCdlZGl0b3Jqcy1mb2N1c2VkJyk7XG4gICAgfVxufVxuIl19
130
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdG9yanMtdG9vbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiL2hvbWUvcGF1bGluZS9Eb2N1bWVudHMvd29ya3NwYWNlL3dpemktYmxvY2svcHJvamVjdHMvd2l6aS1ibG9jay9zcmMvIiwic291cmNlcyI6WyJsaWIvc2hhcmVkL2NvbXBvbmVudHMvZWRpdG9yanMvdG9vbHMvdXRpbHMvZWRpdG9yanMtdG9vbC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxPQUFPLFdBQVc7Q0FNdkI7QUFFRCxNQUFNLE9BQU8sZUFBZTtDQUczQjtBQUVELE1BQU0sT0FBZ0IsWUFBWTtJQUFsQztRQUdJLGlCQUFZLEdBQW1CLElBQUksQ0FBQztRQUVwQyxtQkFBYyxHQUFHLHdCQUF3QixDQUFDO1FBSTFDLHVCQUFrQixHQUFTLElBQUksQ0FBQztRQUVoQyxzQkFBaUIsR0FBUyxJQUFJLENBQUM7UUFFL0IsaUJBQVksR0FBVyxDQUFDLENBQUMsQ0FBQztRQUUxQixnQkFBVyxHQUFXLENBQUMsQ0FBQyxDQUFDO1FBRXpCLHVCQUFrQixHQUFhLEtBQUssQ0FBQztRQUVyQyxtQkFBYyxHQUFXLDJCQUEyQixDQUFDO0lBaUd6RCxDQUFDO0lBL0ZHLFlBQVk7UUFDUixJQUFJLE1BQU0sYUFBTixNQUFNLHVCQUFOLE1BQU0sQ0FBRSxZQUFZLEVBQUU7WUFDdEIsT0FBTyxNQUFNLENBQUMsWUFBWSxFQUFFLENBQUM7U0FDaEM7YUFBTSxJQUFJLFFBQVEsYUFBUixRQUFRLHVCQUFSLFFBQVEsQ0FBRSxZQUFZLEVBQUU7WUFDL0IsT0FBTyxRQUFRLENBQUMsWUFBWSxFQUFFLENBQUM7U0FDbEM7YUFBTSxJQUFJLFFBQVEsSUFBSyxRQUFnQixDQUFDLFNBQVMsRUFBRTtZQUNoRCxPQUFRLFFBQWdCLENBQUMsU0FBUyxDQUFDLFdBQVcsRUFBRSxDQUFDLElBQUksQ0FBQztTQUN6RDtRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFF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S0FDeEQ7SUFFRCxJQUFJLGdCQUFnQixHQUFHLFlBQVksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDdkQsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsa0JBQWtCLENBQUMsRUFBRTtRQUMxRCxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLGtCQUFrQixDQUFDLENBQUM7S0FDdEQ7QUFDTCxDQUFDO0FBRUQsTUFBTSxVQUFVLGVBQWUsQ0FBQyxZQUF5QjtJQUNyRCxJQUFJLEtBQUssR0FBRyxZQUFZLENBQUMsT0FBTyxDQUFDLHVCQUF1QixDQUFDLENBQUM7SUFDMUQsSUFBSSxLQUFLLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQywrQkFBK0IsQ0FBQyxFQUFFO1FBQzNELEtBQUssQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLCtCQUErQixDQUFDLENBQUM7S0FDM0Q7SUFFRCxJQUFJLGdCQUFnQixHQUFHLFlBQVksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDdkQsSUFBSSxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLGtCQUFrQixDQUFDLEVBQUU7UUFDekQsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0tBQ3pEO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBTdHlsZU9iamVjdCB7XG4gICAgcHJvcGVydHk6IHN0cmluZztcbiAgICB2YWx1ZTogc3RyaW5nO1xuICAgIGRlZmF1bHQ6IHN0cmluZztcbiAgICBpbnB1dD86IHN0cmluZztcbiAgICBjbGFzcz86IHN0cmluZztcbn1cblxuZXhwb3J0IGNsYXNzIEF0dHJpYnV0ZU9iamVjdCB7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIHZhbHVlOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBFZGl0b3JKU1Rvb2wge1xuICAgIGFwaTogYW55O1xuXG4gICAgcGFyZW50RWRpdG9yOiBIVE1MRGl2RWxlbWVudCA9IG51bGw7XG5cbiAgICB0ZXh0Q29udGFpbmVycyA9ICdoMSxoMixoMyxoNCxoNSxoNixwLGxpJztcblxuICAgIGN1cnJlbnRTZWxlY3Rpb24/OiBTZWxlY3Rpb247XG5cbiAgICBzZWxlY3RlZEFuY2hvck5vZGU6IE5vZGUgPSBudWxsO1xuXG4gICAgc2VsZWN0ZWRGb2N1c05vZGU6IE5vZGUgPSBudWxsO1xuXG4gICAgYW5jaG9yT2Zmc2V0OiBudW1iZXIgPSAtMTtcblxuICAgIGZvY3VzT2Zmc2V0OiBudW1iZXIgPSAtMTtcblxuICAgIGhhc1NlcGFyYXRvckJlZm9yZT86IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIHNlcGFyYXRvckNsYXNzOiBzdHJpbmcgPSAnY2UtaW5saW5lLXRvb2wtLXNlcGFyYXRvcic7XG5cbiAgICBnZXRTZWxlY3Rpb24oKTogU2VsZWN0aW9uIHtcbiAgICAgICAgaWYgKHdpbmRvdz8uZ2V0U2VsZWN0aW9uKSB7XG4gICAgICAgICAgICByZXR1cm4gd2luZG93LmdldFNlbGVjdGlvbigpO1xuICAgICAgICB9IGVsc2UgaWYgKGRvY3VtZW50Py5nZXRTZWxlY3Rpb24pIHtcbiAgICAgICAgICAgIHJldHVybiBkb2N1bWVudC5nZXRTZWxlY3Rpb24oKTtcbiAgICAgICAgfSBlbHNlIGlmIChkb2N1bWVudCAmJiAoZG9jdW1lbnQgYXMgYW55KS5zZWxlY3Rpb24pIHtcbiAgICAgICAgICAgIHJldHVybiAoZG9jdW1lbnQgYXMgYW55KS5zZWxlY3Rpb24uY3JlYXRlUmFuZ2UoKS50ZXh0O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGdldFJhbmdlT2JqZWN0KHNlbGVjdGlvbk9iamVjdDogU2VsZWN0aW9uKTogUmFuZ2Uge1xuICAgICAgICBpZiAoc2VsZWN0aW9uT2JqZWN0LmdldFJhbmdlQXQpIHtcbiAgICAgICAgICAgIHJldHVybiBzZWxlY3Rpb25PYmplY3QuZ2V0UmFuZ2VBdCgwKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGxldCByYW5nZSA9IGRvY3VtZW50LmNyZWF0ZVJhbmdlKCk7XG4gICAgICAgICAgICByYW5nZS5zZXRTdGFydChzZWxlY3Rpb25PYmplY3QuYW5jaG9yTm9kZS5wYXJlbnRFbGVtZW50LCBzZWxlY3Rpb25PYmplY3QuYW5jaG9yT2Zmc2V0KTtcbiAgICAgICAgICAgIHJhbmdlLnNldEVuZChzZWxlY3Rpb25PYmplY3QuZm9jdXNOb2RlLCBzZWxlY3Rpb25PYmplY3QuZm9jdXNPZmZzZXQpO1xuICAgICAgICAgICAgcmV0dXJuIHJhbmdlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgc2F2ZVVzZXJTZWxlY3Rpb24oKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY3VycmVudFNlbGVjdGlvbiA9IHRoaXMuZ2V0U2VsZWN0aW9uKCk7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRBbmNob3JOb2RlID0gdGhpcy5jdXJyZW50U2VsZWN0aW9uLmFuY2hvck5vZGU7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRGb2N1c05vZGUgPSB0aGlzLmN1cnJlbnRTZWxlY3Rpb24uZm9jdXNOb2RlO1xuICAgICAgICB0aGlzLmFuY2hvck9mZnNldCA9IHRoaXMuY3VycmVudFNlbGVjdGlvbi5hbmNob3JPZmZzZXQ7XG4gICAgICAgIHRoaXMuZm9jdXNPZmZzZXQgPSB0aGlzLmN1cnJlbnRTZWxlY3Rpb24uZm9jdXNPZmZzZXQ7XG4gICAgfVxuXG4gICAgcmVzZXRVc2VyU2VsZWN0aW9uKCk6IHZvaWQge1xuICAgICAgICBjb25zb2xlLmxvZygncmVzZXQgaGVyZScpO1xuICAgICAgICBpZiAodGhpcy5zZWxlY3RlZEFuY2hvck5vZGUubm9kZVR5cGUgPT09IE5vZGUuRUxFTUVOVF9OT0RFICYmICg8SFRNTEVsZW1lbnQ+dGhpcy5zZWxlY3RlZEFuY2hvck5vZGUpLmNoaWxkcmVuKSB7XG4gICAgICAgICAgICB3aGlsZSAoXG4gICAgICAgICAgICAgICAgKDxIVE1MRWxlbWVudD50aGlzLnNlbGVjdGVkQW5jaG9yTm9kZSkuY2hpbGRyZW4gJiZcbiAgICAgICAgICAgICAgICAoPEhUTUxFbGVtZW50PnRoaXMuc2VsZWN0ZWRBbmNob3JOb2RlKS5pbm5lclRleHQgPT09XG4gICAgICAgICAgICAgICAgICAgICg8SFRNTEVsZW1lbnQ+KDxIVE1MRWxlbWVudD50aGlzLnNlbGVjdGVkQW5jaG9yTm9kZSkuY2hpbGRyZW5bMF0pPy5pbm5lclRleHQgJiZcbiAgICAgICAgICAgICAgICAoPEhUTUxFbGVtZW50PnRoaXMuc2VsZWN0ZWRBbmNob3JOb2RlKS5jaGlsZHJlbi5sZW5ndGggPT09IDFcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRBbmNob3JOb2RlID0gKDxIVE1MRWxlbWVudD50aGlzLnNlbGVjdGVkQW5jaG9yTm9kZSkuY2hpbGRyZW5bMF07XG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEZvY3VzTm9kZSA9IHRoaXMuc2VsZWN0ZWRBbmNob3JOb2RlO1xuICAgICAgICAgICAgICAgIHRoaXMuYW5jaG9yT2Zmc2V0ID0gMDtcbiAgICAgICAgICAgICAgICB0aGlzLmZvY3VzT2Zmc2V0ID0gMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0aGlzLnRleHRDb250YWluZXJzLnNwbGl0KCcsJykuaW5kZXhPZigoPEhUTUxFbGVtZW50PnRoaXMuc2VsZWN0ZWRBbmNob3JOb2RlKS50YWdOYW1lLnRvTG93ZXJDYXNlKCkpID4gLTEpIHtcbiAgICAgICAgICAgICAgICBsZXQgY2hpbGRUZXh0Tm9kZXMgPSB0aGlzLmdldFRleHROb2Rlcyh0aGlzLnNlbGVjdGVkQW5jaG9yTm9kZSk7XG4gICAgICAgICAgICAgICAgbGV0IGZvY3VzTm9kZSA9XG4gICAgICAgICAgICAgICAgICAgIGNoaWxkVGV4dE5vZGVzLmxlbmd0aCA+IDFcbiAgICAgICAgICAgICAgICAgICAgICAgID8gKDxIVE1MRWxlbWVudD50aGlzLnNlbGVjdGVkQW5jaG9yTm9kZSkuY2hpbGROb2Rlc1tjaGlsZFRleHROb2Rlcy5sZW5ndGggLSAxXVxuICAgICAgICAgICAgICAgICAgICAgICAgOiAoPEhUTUxFbGVtZW50PnRoaXMuc2VsZWN0ZWRBbmNob3JOb2RlKS5jaGlsZE5vZGVzWzBdO1xuICAgICAgICAgICAgICAgIGxldCBmb2N1c09mZnNldCA9IGNoaWxkVGV4dE5vZGVzLmxlbmd0aCA+IDEgPyBjaGlsZFRleHROb2Rlcy5sZW5ndGggOiBjaGlsZFRleHROb2Rlc1swXS50ZXh0Q29udGVudC5sZW5ndGg7XG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEFuY2hvck5vZGUgPSAoPEhUTUxFbGVtZW50PnRoaXMuc2VsZWN0ZWRBbmNob3JOb2RlKS5jaGlsZE5vZGVzWzBdO1xuICAgICAgICAgICAgICAgIHRoaXMuYW5jaG9yT2Zmc2V0ID0gMDtcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkRm9jdXNOb2RlID0gZm9jdXNOb2RlO1xuICAgICAgICAgICAgICAgIHRoaXMuZm9jdXNPZmZzZXQgPSBmb2N1c09mZnNldDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBkb2N1bWVudC5nZXRTZWxlY3Rpb24oKS5zZXRCYXNlQW5kRXh0ZW50KHRoaXMuc2VsZWN0ZWRBbmNob3JOb2RlLCB0aGlzLmFuY2hvck9mZnNldCwgdGhpcy5zZWxlY3RlZEZvY3VzTm9kZSwgdGhpcy5mb2N1c09mZnNldCk7XG4gICAgfVxuXG4gICAgY29sbGFwc2VTZWxlY3Rpb24oKSB7XG4gICAgICAgIGxldCBzZWxlY3Rpb24gPSB0aGlzLmdldFNlbGVjdGlvbigpO1xuICAgICAgICBkb2N1bWVudC5nZXRTZWxlY3Rpb24oKS5zZXRCYXNlQW5kRXh0ZW50KHNlbGVjdGlvbi5hbmNob3JOb2RlLCAwLCBzZWxlY3Rpb24uYW5jaG9yTm9kZSwgMCk7XG4gICAgfVxuXG4gICAgZmluZFBhcmVudEVkaXRvcigpOiBIVE1MRGl2RWxlbWVudCB8IG51bGwge1xuICAgICAgICBjb25zdCBzZWxlY3Rpb246IFNlbGVjdGlvbiB8IG51bGwgPSB0aGlzLmN1cnJlbnRTZWxlY3Rpb24gPyB0aGlzLmN1cnJlbnRTZWxlY3Rpb24gOiB0aGlzLmdldFNlbGVjdGlvbigpO1xuICAgICAgICByZXR1cm4gc2VsZWN0aW9uLmFuY2hvck5vZGUucGFyZW50RWxlbWVudC5jbG9zZXN0KCcuZWRpdG9ySnMnKTtcbiAgICB9XG5cbiAgICBmaW5kUGFyZW50TW9kaWZpZXIoKTogSFRNTEVsZW1lbnQgfCBudWxsIHtcbiAgICAgICAgaWYgKCF0aGlzLnBhcmVudEVkaXRvcikge1xuICAgICAgICAgICAgdGhpcy5wYXJlbnRFZGl0b3IgPSB0aGlzLmZpbmRQYXJlbnRFZGl0b3IoKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gPEhUTUxFbGVtZW50PihcbiAgICAgICAgICAgIHRoaXMucGFyZW50RWRpdG9yLnF1ZXJ5U2VsZWN0b3JBbGwoJy5jZS1ibG9jaycpW3RoaXMuYXBpLmJsb2Nrcy5nZXRDdXJyZW50QmxvY2tJbmRleCgpXS5xdWVyeVNlbGVjdG9yKCcuY2UtcGFyYWdyYXBoJylcbiAgICAgICAgICAgICAgICAuY2hpbGRyZW5bMF1cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBjbGVhcigpIHtcbiAgICAgICAgcmVzZXRCbG9ja0ZvY3VzKHRoaXMucGFyZW50RWRpdG9yKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFRleHROb2Rlcyhjb250YWluZXIpOiBBcnJheTxOb2RlPiB7XG4gICAgICAgIGxldCBjaGlsZFRleHROb2RlczogQXJyYXk8Tm9kZT4gPSBbXTtcbiAgICAgICAgaWYgKGNvbnRhaW5lci5jaGlsZE5vZGVzKSB7XG4gICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNvbnRhaW5lci5jaGlsZE5vZGVzLmxlbmd0aDsgKytpKSB7XG4gICAgICAgICAgICAgICAgaWYgKGNvbnRhaW5lci5jaGlsZE5vZGVzW2ldLm5vZGVUeXBlID09PSBOb2RlLlRFWFRfTk9ERSkge1xuICAgICAgICAgICAgICAgICAgICBjaGlsZFRleHROb2Rlcy5wdXNoKGNvbnRhaW5lci5jaGlsZE5vZGVzW2ldKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGNoaWxkVGV4dE5vZGVzO1xuICAgIH1cbn1cblxuZXhwb3J0IHZhciBpc1RleHRFZGl0aW9uVG9vbDogYm9vbGVhbiA9IGZhbHNlO1xuXG5leHBvcnQgdmFyIGlzQmxvY2tGb2N1c2VkOiBib29sZWFuID0gZmFsc2U7XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXRJc1RleHRFZGl0aW9uVG9vbCh2YWx1ZTogYm9vbGVhbikge1xuICAgIGlzVGV4dEVkaXRpb25Ub29sID0gdmFsdWU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXRJc0Jsb2NrRm9jdXNlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIGlzQmxvY2tGb2N1c2VkID0gdmFsdWU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXRCbG9ja0ZvY3VzKHBhcmVudEVkaXRvcjogSFRNTEVsZW1lbnQpIHtcbiAgICBsZXQgYmxvY2sgPSBwYXJlbnRFZGl0b3IuY2xvc2VzdCgnLndiLWJsb2Nrc19fY29udGFpbmVyJyk7XG4gICAgaWYgKCFibG9jay5jbGFzc0xpc3QuY29udGFpbnMoJ3diLWJsb2Nrc19fY29udGFpbmVyLS1mb2N1c2VkJykpIHtcbiAgICAgICAgYmxvY2suY2xhc3NMaXN0LmFkZCgnd2ItYmxvY2tzX19jb250YWluZXItLWZvY3VzZWQnKTtcbiAgICB9XG5cbiAgICBsZXQgY29udGFpbmVyVG9Gb2N1cyA9IHBhcmVudEVkaXRvci5jbG9zZXN0KCcuY29sdW1uJyk7XG4gICAgaWYgKCFjb250YWluZXJUb0ZvY3VzLmNsYXNzTGlzdC5jb250YWlucygnZWRpdG9yanMtZm9jdXNlZCcpKSB7XG4gICAgICAgIGNvbnRhaW5lclRvRm9jdXMuY2xhc3NMaXN0LmFkZCgnZWRpdG9yanMtZm9jdXNlZCcpO1xuICAgIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlc2V0QmxvY2tGb2N1cyhwYXJlbnRFZGl0b3I6IEhUTUxFbGVtZW50KSB7XG4gICAgbGV0IGJsb2NrID0gcGFyZW50RWRpdG9yLmNsb3Nlc3QoJy53Yi1ibG9ja3NfX2NvbnRhaW5lcicpO1xuICAgIGlmIChibG9jay5jbGFzc0xpc3QuY29udGFpbnMoJ3diLWJsb2Nrc19fY29udGFpbmVyLS1mb2N1c2VkJykpIHtcbiAgICAgICAgYmxvY2suY2xhc3NMaXN0LnJlbW92ZSgnd2ItYmxvY2tzX19jb250YWluZXItLWZvY3VzZWQnKTtcbiAgICB9XG5cbiAgICBsZXQgY29udGFpbmVyVG9Gb2N1cyA9IHBhcmVudEVkaXRvci5jbG9zZXN0KCcuY29sdW1uJyk7XG4gICAgaWYgKGNvbnRhaW5lclRvRm9jdXMuY2xhc3NMaXN0LmNvbnRhaW5zKCdlZGl0b3Jqcy1mb2N1c2VkJykpIHtcbiAgICAgICAgY29udGFpbmVyVG9Gb2N1cy5jbGFzc0xpc3QucmVtb3ZlKCdlZGl0b3Jqcy1mb2N1c2VkJyk7XG4gICAgfVxufVxuIl19
@@ -104,6 +104,7 @@ export class QuillComponent {
104
104
  },
105
105
  clipboard: {
106
106
  matchers: [['BR', this.lineBreakMatcher]],
107
+ matchVisual: false,
107
108
  },
108
109
  keyboard: {
109
110
  bindings: {
@@ -297,4 +298,4 @@ QuillComponent.propDecorators = {
297
298
  color: [{ type: Input }],
298
299
  placeholder: [{ type: Input }]
299
300
  };
300
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVpbGwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Ii9ob21lL3BhdWxpbmUvRG9jdW1lbnRzL3dvcmtzcGFjZS93aXppLWJsb2NrL3Byb2plY3RzL3dpemktYmxvY2svc3JjLyIsInNvdXJjZXMiOlsibGliL3NoYXJlZC9jb21wb25lbnRzL3F1aWxsL3F1aWxsLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDNUMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLHFCQUFxQixFQUFFLG1CQUFtQixFQUFFLFlBQVksRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ25JLE9BQU8sRUFBRSxFQUFFLElBQUksSUFBSSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2xDLE9BQU8sS0FBSyxjQUFjLE1BQU0sT0FBTyxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUM1RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUV2RCxNQUFNLEtBQUssR0FBUSxjQUFjLENBQUM7QUFNbEMsTUFBTSxPQUFPLGNBQWM7SUE2R3ZCLFlBQW9CLE1BQWMsRUFBVSxZQUEwQixFQUFVLGdCQUFrQztRQUE5RixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQVUsaUJBQVksR0FBWixZQUFZLENBQWM7UUFBVSxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBNUd4RyxrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFFbkMscUJBQWdCLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQUUvQyxxQkFBZ0IsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO1FBRWhELFlBQU8sR0FBRyxFQUFFLENB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Q0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFTyxnQkFBZ0I7UUFDcEIsSUFBSSxRQUFRLEdBQUcsSUFBSSxLQUFLLEVBQUUsQ0FBQztRQUMzQixRQUFRLENBQUMsTUFBTSxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDL0IsT0FBTyxRQUFRLENBQUM7SUFDcEIsQ0FBQzs7O1lBdFVKLFNBQVMsU0FBQztnQkFDUCxRQUFRLEVBQUUsVUFBVTtnQkFDcEIsMnNIQUFxQzthQUN4Qzs7O1lBYndDLE1BQU07WUFFd0IsWUFBWTtZQUkxRSxnQkFBZ0I7Ozs0QkFTcEIsTUFBTTsrQkFFTixNQUFNOytCQUVOLE1BQU07c0JBRU4sS0FBSztxQkFFTCxLQUFLO3NCQUVMLEtBQUs7b0JBMERMLEtBQUs7MEJBTUwsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgTmdab25lLCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVGlueUNvbG9yIH0gZnJvbSAnQGN0cmwvdGlueWNvbG9yJztcbmltcG9ydCB7IENVU1RPTV9MSU5LX05BTUUsIENVU1RPTV9VUFBFUkNBU0VfTkFNRSwgQ1VTVE9NX0xJTktfQ1JZUFRFRCwgUXVpbGxTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvdXRpbHMvcXVpbGwuc2VydmljZSc7XG5pbXBvcnQgeyB2NCBhcyB1dWlkIH0gZnJvbSAndXVpZCc7XG5pbXBvcnQgKiBhcyBRdWlsbE5hbWVzcGFjZSBmcm9tICdxdWlsbCc7XG5pbXBvcnQgeyBEZWx0YSB9IGZyb20gJy4uLy4uLy4uL2R0b3MvdXRpbHMvcXVpbGwvZGVsdGEuZHRvJztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcblxuY29uc3QgUXVpbGw6IGFueSA9IFF1aWxsTmFtZXNwYWNlO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3diLXF1aWxsJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vcXVpbGwuY29tcG9uZW50Lmh0bWwnLFxufSlcbmV4cG9ydCBjbGFzcyBRdWlsbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgQE91dHB1dCgpIGNvbnRlbnRDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBAT3V0cHV0KCkgaXNUb29sdGlwRm9jdXNlZCA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICAgIEBPdXRwdXQoKSB0b29sdGlwTG9zdEZvY3VzID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gICAgQElucHV0KCkgY29udGVudCA9ICcnO1xuXG4gICAgQElucHV0KCkgb2Zmc2V0ID0gZmFsc2U7XG5cbiAgICBASW5wdXQoKSB0b29sYmFyID0gW1xuICAgICAgICBbJ2JvbGQnLCAnaXRhbGljJywgJ3VuZGVybGluZScsICdzdHJpa2UnLCBDVVNUT01fVVBQRVJDQVNFX05BTUVdLFxuICAgICAgICBbJ2Jsb2NrcXVvdGUnXSxcblxuICAgICAgICBbeyBsaXN0OiAnb3JkZXJlZCcgfSwgeyBsaXN0OiAnYnVsbGV0JyB9XSxcbiAgICAgICAgW3sgc2NyaXB0OiAnc3ViJyB9LCB7IHNjcmlwdDogJ3N1cGVyJyB9XSxcbiAgICAgICAgW3sgaW5kZW50OiAnLTEnIH0sIHsgaW5kZW50OiAnKzEnIH1dLFxuICAgICAgICBbeyBzaXplOiBbJ3NtYWxsJywgZmFsc2UsICdsYXJnZScsICdodWdlJ10gfV0sXG4gICAgICAgIFt7IGhlYWRlcjogWzEsIDIsIDMsIDQsIDUsIDYsIGZhbHNlXSB9XSxcbiAgICAgICAgW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGNvbG9yOiBbXG4gICAgICAgICAgICAgICAgICAgICcjMDAwMDAwJyxcbiAgICAgICAgICAgICAgICAgICAgJyNlNjAwMDAnLFxuICAgICAgICAgICAgICAgICAgICAnI2ZmOTkwMCcsXG4gICAgICAgICAgICAgICAgICAgICcjZmZmZjAwJyxcbiAgICAgICAgICAgICAgICAgICAgJyMwMDhhMDAnLFxuICAgICAgICAgICAgICAgICAgICAnIzAwNjZjYycsXG4gICAgICAgICAgICAgICAgICAgICcjOTkzM2ZmJyxcbiAgICAgICAgICAgICAgICAgICAgJyNmZmZmZmYnLFxuICAgICAgICAgICAgICAgICAgICAnI2ZhY2NjYycsXG4gICAgICAgICAgICAgICAgICAgICcjZmZlYmNjJyxcbiAgICAgICAgICAgICAgICAgICAgJyNmZmZmY2MnLFxuICAgICAgICAgICAgICAgICAgICAnI2NjZThjYycsXG4gICAgICAgICAgICAgICAgICAgICcjY2NlMGY1JyxcbiAgICAgICAgICAgICAgICAgICAgJyNlYmQ2ZmYnLFxuICAgICAgICAgICAgICAgICAgICAnI2JiYmJiYicsXG4gICAgICAgICAgICAgICAgICAgICcjZjA2NjY2JyxcbiAgICAgICAgICAgICAgICAgICAgJyNmZmMyNjYnLFxuICAgICAgICAgICAgICAgICAgICAnI2ZmZmY2NicsXG4gICAgICAgICAgICAgICAgICAgICcjNjZiOTY2JyxcbiAgICAgICAgICAgICAgICAgICAgJyM2NmEzZTAnLFxuICAgICAgICAgICAgICAgICAgICAnI2MyODVmZicsXG4gICAgICAgICAgICAgICAgICAgICcjODg4ODg4JyxcbiAgICAgICAgICAgICAgICAgICAgJyNhMTAwMDAnLFxuICAgICAgICAgICAgICAgICAgICAnI2IyNmIwMCcsXG4gICAgICAgICAgICAgICAgICAgICcjYjJiMjAwJyxcbiAgICAgICAgICAgICAgICAgICAgJyMwMDYxMDAnLFxuICAgICAgICAgICAgICAgICAgICAnIzAwNDdiMicsXG4gICAgICAgICAgICAgICAgICAgICcjNmIyNGIyJyxcbiAgICAgICAgICAgICAgICAgICAgJyM0NDQ0NDQnLFxuICAgICAgICAgICAgICAgICAgICAnIzVjMDAwMCcsXG4gICAgICAgICAgICAgICAgICAgICcjNjYzZDAwJyxcbiAgICAgICAgICAgICAgICAgICAgJyM2NjY2MDAnLFxuICAgICAgICAgICAgICAgICAgICAnIzAwMzcwMCcsXG4gICAgICAgICAgICAgICAgICAgICcjMDAyOTY2JyxcbiAgICAgICAgICAgICAgICAgICAgJyMzZDE0NjYnLFxuICAgICAgICAgICAgICAgICAgICAnI2ZmOTkwMScsXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7IGJhY2tncm91bmQ6IFtdIH0sXG4gICAgICAgIF0sXG4gICAgICAgIFt7IGFsaWduOiBbXSB9XSxcbiAgICAgICAgW0NVU1RPTV9MSU5LX05BTUVdLFxuICAgICAgICBbQ1VTVE9NX0xJTktfQ1JZUFRFRF0sXG4gICAgICAgIFsnY2xlYW4nXSxcbiAgICBdO1xuXG4gICAgQElucHV0KClcbiAgICBzZXQgY29sb3IodmFsdWU6IGFueSkge1xuICAgICAgICB0aGlzLl9jb2xvciA9IHZhbHVlO1xuICAgICAgICB0aGlzLmNvbG9yVGludCA9IG5ldyBUaW55Q29sb3IodmFsdWUpLmlzTGlnaHQoKTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBwbGFjZWhvbGRlcjogc3RyaW5nID0gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ3diLnNoYXJlZC5jb21wb25lbnRzLnF1aWxsLjEnKTtcblxuICAgIF9jb2xvcjogYW55O1xuXG4gICAgdG1wQ29udGVudCA9ICcnO1xuXG4gICAgY29sb3JUaW50ID0gZmFsc2U7XG5cbiAgICBvcGVuQ29uZmlnID0gZmFsc2U7XG5cbiAgICBzb3VyY2VDb2RlID0gZmFsc2U7XG5cbiAgICBzb3VyY2VDb2RlVmFsdWUgPSAnJztcblxuICAgIGN1cnJlbnRFZGl0b3I6IGFueTtcblxuICAgIGxpbmtDb25maWcgPSAnJztcblxuICAgIGxpbmtTdHlsZSA9ICcnO1xuXG4gICAgbGlua0FscmVhZHlFeGlzdDogYm9vbGVhbjtcblxuICAgIGNoZWNrZWQgPSBmYWxzZTtcblxuICAgIGNyeXB0ZWQgPSBmYWxzZTtcblxuICAgIGN1cnJlbnRUb29sVGlwOiBhbnk7XG5cbiAgICBlZGl0b3I6IGFueTtcblxuICAgIG1vZHVsZXM6IGFueTtcblxuICAgIHV1aWQgPSB1dWlkKCk7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIG5nWm9uZTogTmdab25lLCBwcml2YXRlIHF1aWxsU2VydmljZTogUXVpbGxTZXJ2aWNlLCBwcml2YXRlIHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UpIHtcbiAgICAgICAgdGhpcy5xdWlsbFNlcnZpY2UuaW5pdCgpO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmhhbmRsZURlZmF1bHRDb250ZW50VHJhbnNsYXRpb24oKTtcbiAgICAgICAgdGhpcy5tb2R1bGVzID0ge1xuICAgICAgICAgICAgc3ludGF4OiBmYWxzZSxcbiAgICAgICAgICAgIGh0bWxFZGl0QnV0dG9uOiB7fSxcbiAgICAgICAgICAgIHRvb2xiYXI6IHtcbiAgICAgICAgICAgICAgICBjb250YWluZXI6IHRoaXMudG9vbGJhcixcbiAgICAgICAgICAgICAgICBoYW5kbGVyczoge1xuICAgICAgICAgICAgICAgICAgICBbQ1VTVE9NX0xJTktfTkFNRV06IHRoaXMuYWRkTGluay5iaW5kKHRoaXMpLFxuICAgICAgICAgICAgICAgICAgICBbQ1VTVE9NX0xJTktfQ1JZUFRFRF06IHRoaXMuYWRkTGluay5iaW5kKHRoaXMpLFxuICAgICAgICAgICAgICAgICAgICBbQ1VTVE9NX1VQUEVSQ0FTRV9OQU1FXTogdGhpcy5hZGRVcHBlckNhc2UuYmluZCh0aGlzKSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGNsaXBib2FyZDoge1xuICAgICAgICAgICAgICAgIG1hdGNoZXJzOiBbWydCUicsIHRoaXMubGluZUJyZWFrTWF0Y2hlcl1dLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGtleWJvYXJkOiB7XG4gICAgICAgICAgICAgICAgYmluZGluZ3M6IHtcbiAgICAgICAgICAgICAgICAgICAgbGluZWJyZWFrOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBrZXk6IDEzLFxuICAgICAgICAgICAgICAgICAgICAgICAgc2hpZnRLZXk6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVyOiAocmFuZ2U6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEhhbmRsZSBsaW5lIGJyZWFrcyB3aXRoIHNoaWZ0ICsgZW50ZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgY3VycmVudExlYWYgPSB0aGlzLmVkaXRvci5nZXRMZWFmKHJhbmdlLmluZGV4KVswXTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbmV4dExlYWYgPSB0aGlzLmVkaXRvci5nZXRMZWFmKHJhbmdlLmluZGV4ICsgMSlbMF07XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmVkaXRvci5pbnNlcnRFbWJlZChyYW5nZS5pbmRleCwgJ2JyZWFrJywgdHJ1ZSwgJ3VzZXInKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEluc2VydCBhIHNlY29uZCBicmVhayBpZjpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBBdCB0aGUgZW5kIG9mIHRoZSBlZGl0b3IsIE9SIG5leHQgbGVhZiBoYXMgYSBkaWZmZXJlbnQgcGFyZW50ICg8cD4pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG5leHRMZWFmID09PSBudWxsIHx8IGN1cnJlbnRMZWFmLnBhcmVudCAhPT0gbmV4dExlYWYucGFyZW50KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZWRpdG9yLmluc2VydEVtYmVkKHJhbmdlLmluZGV4LCAnYnJlYWsnLCB0cnVlLCAndXNlcicpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIE5vdyB0aGF0IHdlJ3ZlIGluc2VydGVkIGEgbGluZSBicmVhaywgbW92ZSB0aGUgY3Vyc29yIGZvcndhcmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmVkaXRvci5zZXRTZWxlY3Rpb24ocmFuZ2UuaW5kZXggKyAxLCBRdWlsbC5zb3VyY2VzLlNJTEVOVCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICB9O1xuXG4gICAgICAgIHRoaXMucXVpbGxTZXJ2aWNlLmJpbmRUb29sdGlwRm9jdXMoKS5zdWJzY3JpYmUoKGlkKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmlzVG9vbHRpcEZvY3VzZWQuZW1pdChmYWxzZSk7XG4gICAgICAgICAgICBpZiAoaWQgPT09IHRoaXMudXVpZCkge1xuICAgICAgICAgICAgICAgIHRoaXMuaXNUb29sdGlwRm9jdXNlZC5lbWl0KHRydWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBoYW5kbGVEZWZhdWx0Q29udGVudFRyYW5zbGF0aW9uKCkge1xuICAgICAgICB0aGlzLnRtcENvbnRlbnQgPSAvXndiXFwuLy50ZXN0KHRoaXMuY29udGVudCkgPyB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCh0aGlzLmNvbnRlbnQpIDogdGhpcy5jb250ZW50O1xuICAgIH1cblxuICAgIGNvbnRlbnRDaGFuZ2VkKGV2ZW50KSB7XG4gICAgICAgIGlmICh0aGlzLmVkaXRvcikge1xuICAgICAgICAgICAgaWYgKHRoaXMuaXNTZXREZWZhdWx0VGV4dENvbG9yQWN0aW9uKGV2ZW50LmRlbHRhKSkge1xuICAgICAgICAgICAgICAgIHRoaXMuc2V0VGV4dEJsYWNrQ29sb3IoKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMuY29udGVudCA9IHRoaXMuZWRpdG9yLnJvb3QuaW5uZXJIVE1MO1xuICAgICAgICAgICAgaWYgKHRoaXMuaXNFbXB0eSh0aGlzLmNvbnRlbnQpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jb250ZW50ID0gJyc7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMuY29udGVudENoYW5nZS5lbWl0KHRoaXMuY29udGVudCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBlZGl0b3JMb2FkZWQoZTogYW55KSB7XG4gICAgICAgIHRoaXMuZWRpdG9yID0gZTtcbiAgICAgICAgdGhpcy5zZXRFdmVudExpc3RlbmVyKCk7XG4gICAgfVxuXG4gICAgYWRkVXBwZXJDYXNlKHZhbHVlOiBhbnkpIHtcbiAgICAgICAgaWYgKCF2YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5lZGl0b3IuZm9ybWF0KENVU1RPTV9VUFBFUkNBU0VfTkFNRSwgZmFsc2UpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5lZGl0b3IuZm9ybWF0KENVU1RPTV9VUFBFUkNBU0VfTkFNRSwgJ3VwcGVyY2FzZScpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgYWRkTGluayh2YWx1ZTogYW55KSB7XG4gICAgICAgIHRoaXMubGlua0FscmVhZHlFeGlzdCA9IGZhbHNlO1xuICAgICAgICBpZiAoIXZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLnJldHJpZXZlRXhpc3RpbmdMaW5rKCk7XG4gICAgICAgIH1cbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICBpZiAoIXRoaXMuY3VycmVudFRvb2xUaXApIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oJ05vIHBhcmVudCBlbGVtZW50Jyk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGxldCBsZWZ0U3R5bGUgPSB0aGlzLmN1cnJlbnRUb29sVGlwLnN0eWxlLmxlZnQ7XG4gICAgICAgICAgICAgICAgICAgIGxldCB3aWR0aFN0eWxlID0gdGhpcy5jdXJyZW50VG9vbFRpcC5zdHlsZS53aWR0aDtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdG9wU3R5bGUgPSB0aGlzLmN1cnJlbnRUb29sVGlwLnN0eWxlLnRvcDtcblxuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5vZmZzZXQgJiYgd2lkdGhTdHlsZS5yZXBsYWNlKCdweCcsICcnKSA8IDUwMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbW92ZWRTdHlsZSA9ICg1MjAgLSBwYXJzZUludCh3aWR0aFN0eWxlLnJlcGxhY2UoJ3B4JywgJycpLCAxMCkpIC8gMjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoU3R5bGUgPSAnNTIwcHgnO1xuICAgICAgICAgICAgICAgICAgICAgICAgbGVmdFN0eWxlID0gcGFyc2VJbnQobGVmdFN0eWxlLnJlcGxhY2UoJ3B4JywgJycpLCAxMCkgLSBtb3ZlZFN0eWxlICsgJ3B4JztcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubGlua1N0eWxlID1cbiAgICAgICAgICAgICAgICAgICAgICAgICdoZWlnaHQ6JyArXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRUb29sVGlwLmNsaWVudEhlaWdodCArXG4gICAgICAgICAgICAgICAgICAgICAgICAncHg7IHdpZHRoOicgK1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGhTdHlsZSArXG4gICAgICAgICAgICAgICAgICAgICAgICAnO2xlZnQ6JyArXG4gICAgICAgICAgICAgICAgICAgICAgICBsZWZ0U3R5bGUgK1xuICAgICAgICAgICAgICAgICAgICAgICAgJzt0b3A6JyArXG4gICAgICAgICAgICAgICAgICAgICAgICB0b3BTdHlsZTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vcGVuQ29uZmlnID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50RWRpdG9yID0gdGhpcy5lZGl0b3I7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sIDEwMCk7XG4gICAgfVxuXG4gICAgc2V0RXZlbnRMaXN0ZW5lcigpIHtcbiAgICAgICAgY29uc3QgY3VycmVudFRvb2wgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcucWwtdG9vbHRpcCcpO1xuICAgICAgICBjdXJyZW50VG9vbC5mb3JFYWNoKChlbGVtZW50KSA9PiB7XG4gICAgICAgICAgICBlbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKGV2ZW50OiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRUb29sVGlwID0gZXZlbnQudGFyZ2V0LmNsb3Nlc3QoJy5xbC10b29sdGlwJyk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgdmFsaWRUaGlzVXJsT25FbnRlcihlOiBhbnkpIHtcbiAgICAgICAgaWYgKGUua2V5Q29kZSA9PT0gMTMpIHtcbiAgICAgICAgICAgIHRoaXMudmFsaWRUaGlzVXJsKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB2YWxpZFRoaXNVcmwoKSB7XG4gICAgICAgIGlmICh0aGlzLmN1cnJlbnRFZGl0b3IpIHtcbiAgICAgICAgICAgIC8vIFJlc2V0IHRoZSBsaW5rLCBhdm9pZCBocmVmID0gW09iamVjdCBPYmplY3RdXG4gICAgICAgICAgICBpZiAodGhpcy5saW5rQWxyZWFkeUV4aXN0KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5yZW1vdmVMaW5rKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRFZGl0b3IuZm9ybWF0KENVU1RPTV9MSU5LX05BTUUsIHsgdGFyZ2V0OiAhdGhpcy5jaGVja2VkLCB2YWx1ZTogdGhpcy5saW5rQ29uZmlnLCBjcnlwdGVkOiB0aGlzLmNyeXB0ZWQgfSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jbG9zZVVybENvbmZpZygpO1xuICAgIH1cblxuICAgIGNsb3NlVXJsQ29uZmlnKCkge1xuICAgICAgICB0aGlzLm9wZW5Db25maWcgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5saW5rQ29uZmlnID0gJyc7XG4gICAgICAgIHRoaXMuY2hlY2tlZCA9IGZhbHNlO1xuICAgIH1cblxuICAgIGlzRW1wdHkoY29udGVudDogYW55KSB7XG4gICAgICAgIGNvbnN0IGNvbW1lbnRUZXh0ID0gY29udGVudC50cmltKCk7XG4gICAgICAgIGNvbnN0IHJlID0gL148W3BoMC05XSs+KDxicj58PGJyXFwvPnw8YnJcXHNcXC8+fFxccyt8KTxcXC9bcGgwLTldKz4kL2dtO1xuICAgICAgICByZXR1cm4gcmUudGVzdChjb21tZW50VGV4dCk7XG4gICAgfVxuXG4gICAgZm9jdXNUaGlzKGV2ZW50OiBhbnkpIHtcbiAgICAgICAgdGhpcy5lZGl0b3IgPSBldmVudC5lZGl0b3I7XG4gICAgICAgIHRoaXMucXVpbGxTZXJ2aWNlLnNldEZvY3VzZWQodGhpcy51dWlkKTtcbiAgICB9XG5cbiAgICBvbkZvY3VzTG9zdCgpIHtcbiAgICAgICAgdGhpcy50b29sdGlwTG9zdEZvY3VzLmVtaXQodHJ1ZSk7XG4gICAgfVxuXG4gICAgcmV0cmlldmVFeGlzdGluZ0xpbmsoKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCBsaW5rRm9ybWF0ID0gdGhpcy5lZGl0b3IuZ2V0Rm9ybWF0KClbQ1VTVE9NX0xJTktfTkFNRV07XG4gICAgICAgICAgICBpZiAoIWxpbmtGb3JtYXQudGFyZ2V0KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jaGVja2VkID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMubGlua0NvbmZpZyA9IGxpbmtGb3JtYXQuY3J5cHRlZCA/IGF0b2IobGlua0Zvcm1hdC5jcnlwdGVkKSA6IGxpbmtGb3JtYXQudmFsdWUgPyBsaW5rRm9ybWF0LnZhbHVlIDogbGlua0Zvcm1hdFswXS52YWx1ZTtcbiAgICAgICAgICAgIHRoaXMubGlua0FscmVhZHlFeGlzdCA9IHRydWU7XG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvblJlbW92ZUxpbmsoKSB7XG4gICAgICAgIHRoaXMucmVtb3ZlTGluaygpO1xuICAgIH1cblxuICAgIHJlbW92ZUxpbmsoKSB7XG4gICAgICAgIHRoaXMuY3VycmVudEVkaXRvci5mb3JtYXQoQ1VTVE9NX0xJTktfTkFNRSk7XG4gICAgfVxuXG4gICAgaXNTZXREZWZhdWx0VGV4dENvbG9yQWN0aW9uKGRlbHRhOiBhbnkpIHtcbiAgICAgICAgZm9yIChjb25zdCBvcGUgb2YgZGVsdGEub3BzKSB7XG4gICAgICAgICAgICBpZiAob3BlLmF0dHJpYnV0ZXMgJiYgb3BlLmF0dHJpYnV0ZXMuY29sb3IgPT09ICcjZmY5OTAxJykge1xuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFF1aWxsIGhhcyB0aGUgYmxhY2sgY29sb3IgYnkgZGVmYXVsdC5cbiAgICAgKiBBZGRpbmcgYmxhY2sgY29sb3IgYXZvaWQgaGlkZGluZyB0ZXh0IGluIHRoZSBmcm9udCAod2hlbiB0aGUgZGVmYXVsdCBjb2xvciB0ZXh0IGluIHRoZSBmcm9udCBpcyB3aGl0ZSlcbiAgICAgKi9cbiAgICBzZXRUZXh0QmxhY2tDb2xvcigpIHtcbiAgICAgICAgdGhpcy5lZGl0b3IuZm9ybWF0KCdjb2xvcicsIGZhbHNlKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGxpbmVCcmVha01hdGNoZXIoKSB7XG4gICAgICAgIHZhciBuZXdEZWx0YSA9IG5ldyBEZWx0YSgpO1xuICAgICAgICBuZXdEZWx0YS5pbnNlcnQoeyBicmVhazogJycgfSk7XG4gICAgICAgIHJldHVybiBuZXdEZWx0YTtcbiAgICB9XG59XG4iXX0=
301
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVpbGwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Ii9ob21lL3BhdWxpbmUvRG9jdW1lbnRzL3dvcmtzcGFjZS93aXppLWJsb2NrL3Byb2plY3RzL3dpemktYmxvY2svc3JjLyIsInNvdXJjZXMiOlsibGliL3NoYXJlZC9jb21wb25lbnRzL3F1aWxsL3F1aWxsLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDNUMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLHFCQUFxQixFQUFFLG1CQUFtQixFQUFFLFlBQVksRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ25JLE9BQU8sRUFBRSxFQUFFLElBQUksSUFBSSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2xDLE9BQU8sS0FBSyxjQUFjLE1BQU0sT0FBTyxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUM1RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUV2RCxNQUFNLEtBQUssR0FBUSxjQUFjLENBQUM7QUFNbEMsTUFBTSxPQUFPLGNBQWM7SUE2R3ZCLFlBQW9CLE1BQWMsRUFBVSxZQUEwQixFQUFVLGdCQUFrQztRQUE5RixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQVUsaUJBQVksR0FBWixZQUFZLENBQWM7UUFBVSxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBNUd4RyxrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFFbkMscUJBQWdCLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQUUvQyxxQkFBZ0IsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO1FBRWhELFlBQU8sR0FBRyxFQUFFLENBQUM7UUFFYixXQUFNLEdBQUcsS0FBSyxDQUFDO1FBRWYsWUFBTyxHQUFHO1lBQ2YsQ0FBQyxNQUFNLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUUscUJBQXFCLENBQUM7WUFDaEUsQ0FBQyxZQUFZLENBQUM7WUFFZCxDQUFDLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxDQUFDO1lBQ3pDLENBQUMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLENBQUM7WUFDeEMsQ0FBQyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQztZQUNwQyxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsT0FBTyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsTUFBTSxDQUFDLEVBQUUsQ0FBQztZQUM3QyxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUN2QztnQkFDSTtvQkFDSSxLQUFLLEVBQUU7d0JBQ0gsU0FBUzt3QkFDVCxTQUFTO3dCQUNULFNBQVM7d0JBQ1QsU0FBUzt3QkFDVCxTQUFTO3dCQUNULFNBQVM7d0JBQ1QsU0FBUzt3QkFDVCxTQUFTO3dCQUNULFNBQVM7d0JBQ1QsU0FBUzt3QkFDVCxTQUFTO3dCQUNULFNBQVM7d0JBQ1QsU0FBUzt3QkFDVCxTQUFTO3dCQUNULFNBQVM7d0JBQ1QsU0FBUzt3QkFDVCxTQUFTO3dCQUNULFNBQVM7d0JBQ1QsU0FBUzt3QkFDVCxTQUFTO3dCQUNULFNBQVM7d0JBQ1QsU0FBUzt3QkFDVCxTQUFTO3dCQUNULFNBQVM7d0JBQ1QsU0FBUzt3QkFDVCxTQUFTO3dCQUNULFNBQVM7d0JBQ1QsU0FBUzt3QkFDVCxTQUFTO3dCQUNULFNBQVM7d0JBQ1QsU0FBUzt3QkFDVCxTQUFTO3dCQUNULFNBQVM7d0JBQ1QsU0FBUzt3QkFDVCxTQUFTO3dCQUNULFNBQVM7cUJBQ1o7aUJBQ0o7Z0JBQ0QsRUFBRSxVQUFVLEVBQUUsRUFBRSxFQUFFO2FBQ3JCO1lBQ0QsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsQ0FBQztZQUNmLENBQUMsZ0JBQWdCLENBQUM7WUFDbEIsQ0FBQyxtQkFBbUIsQ0FBQztZQUNyQixDQUFDLE9BQU8sQ0FBQztTQUNaLENBQUM7UUFRTyxnQkFBVyxHQUFXLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsOEJBQThCLENBQUMsQ0FBQztRQUk3RixlQUFVLEdBQUcsRUFBRSxDQUFDO1FBRWhCLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFFbEIsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUVuQixlQUFVLEdBQUcsS0FBSyxDQUFDO1FBRW5CLG9CQUFlLEdBQUcsRUFBRSxDQUFDO1FBSXJCLGVBQVUsR0FBRyxFQUFFLENBQUM7UUFFaEIsY0FBUyxHQUFHLEVBQUUsQ0FBQztRQUlmLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFFaEIsWUFBTyxHQUFHLEtBQUssQ0FBQztRQVFoQixTQUFJLEdBQUcsSUFBSSxFQUFFLENBQUM7UUFHVixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzdCLENBQUM7SUExQ0QsSUFDSSxLQUFLLENBQUMsS0FBVTtRQUNoQixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztRQUNwQixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ3BELENBQUM7SUF3Q0QsUUFBUTtRQUNKLElBQUksQ0FBQywrQkFBK0IsRUFBRSxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxPQUFPLEdBQUc7WUFDWCxNQUFNLEVBQUUsS0FBSztZQUNiLGNBQWMsRUFBRSxFQUFFO1lBQ2xCLE9BQU8sRUFBRTtnQkFDTCxTQUFTLEVBQUUsSUFBSSxDQUFDLE9BQU87Z0JBQ3ZCLFFBQVEsRUFBRTtvQkFDTixDQUFDLGdCQUFnQixDQUFDLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO29CQUMzQyxDQUFDLG1CQUFtQixDQUFDLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO29CQUM5QyxDQUFDLHFCQUFxQixDQUFDLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO2lCQUN4RDthQUNKO1lBQ0QsU0FBUyxFQUFFO2dCQUNQLFFBQVEsRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO2dCQUN6QyxXQUFXLEVBQUUsS0FBSzthQUNyQjtZQUNELFFBQVEsRUFBRTtnQkFDTixRQUFRLEVBQUU7b0JBQ04sU0FBUyxFQUFFO3dCQUNQLEdBQUcsRUFBRSxFQUFFO3dCQUNQLFFBQVEsRUFBRSxJQUFJO3dCQUNkLE9BQU8sRUFBRSxDQUFDLEtBQVUsRUFBRSxFQUFFOzRCQUNwQix3Q0FBd0M7NEJBQ3hDLElBQUksV0FBVyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzs0QkFDdEQsSUFBSSxRQUFRLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzs0QkFFdkQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDOzRCQUU1RCw0QkFBNEI7NEJBQzVCLHNFQUFzRTs0QkFDdEUsSUFBSSxRQUFRLEtBQUssSUFBSSxJQUFJLFdBQVcsQ0FBQyxNQUFNLEtBQUssUUFBUSxDQUFDLE1BQU0sRUFBRTtnQ0FDN0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDOzZCQUMvRDs0QkFFRCxnRUFBZ0U7NEJBQ2hFLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsQ0FBQyxFQUFFLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7d0JBQ3BFLENBQUM7cUJBQ0o7aUJBQ0o7YUFDSjtTQUNKLENBQUM7UUFFRixJQUFJLENBQUMsWUFBWSxDQUFDLGdCQUFnQixFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUU7WUFDbEQsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNsQyxJQUFJLEVBQUUsS0FBSyxJQUFJLENBQUMsSUFBSSxFQUFFO2dCQUNsQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQ3BDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsK0JBQStCO1FBQzNCLElBQUksQ0FBQyxVQUFVLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQzlHLENBQUM7SUFFRCxjQUFjLENBQUMsS0FBSztRQUNoQixJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDYixJQUFJLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUU7Z0JBQy9DLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO2dCQUN6QixPQUFPO2FBQ1Y7WUFFRCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQztZQUMxQyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFO2dCQUM1QixJQUFJLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQzthQUNyQjtZQUVELElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUN6QztJQUNMLENBQUM7SUFFRCxZQUFZLENBQUMsQ0FBTTtRQUNmLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1FBQ2hCLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFRCxZQUFZLENBQUMsS0FBVTtRQUNuQixJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ1IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMscUJBQXFCLEVBQUUsS0FBSyxDQUFDLENBQUM7U0FDcEQ7YUFBTTtZQUNILElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLHFCQUFxQixFQUFFLFdBQVcsQ0FBQyxDQUFDO1NBQzFEO0lBQ0wsQ0FBQztJQUVELE9BQU8sQ0FBQyxLQUFVO1FBQ2QsSUFBSSxDQUFDLGdCQUFnQixHQUFHLEtBQUssQ0FBQztRQUM5QixJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ1IsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7U0FDL0I7UUFDRCxVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ1osSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUU7Z0JBQ3RCLE9BQU8sQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQzthQUNyQztpQkFBTTtnQkFDSCxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUU7b0JBQ2pCLElBQUksU0FBUyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQztvQkFDL0MsSUFBSSxVQUFVLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDO29CQUNqRCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUM7b0JBRS9DLElBQUksSUFBSSxDQUFDLE1BQU0sSUFBSSxVQUFVLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFHLEVBQUU7d0JBQ25ELE1BQU0sVUFBVSxHQUFHLENBQUMsR0FBRyxHQUFHLFFBQVEsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQzt3QkFDMUUsVUFBVSxHQUFHLE9BQU8sQ0FBQzt3QkFDckIsU0FBUyxHQUFHLFFBQVEsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxVQUFVLEdBQUcsSUFBSSxDQUFDO3FCQUM3RTtvQkFFRCxJQUFJLENBQUMsU0FBUzt3QkFDVixTQUFTOzRCQUNULElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWTs0QkFDaEMsWUFBWTs0QkFDWixVQUFVOzRCQUNWLFFBQVE7NEJBQ1IsU0FBUzs0QkFDVCxPQUFPOzRCQUNQLFFBQVEsQ0FBQztvQkFDYixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztvQkFDdkIsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO2dCQUNyQyxDQUFDLENBQUMsQ0FBQzthQUNOO1FBQ0wsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ1osQ0FBQztJQUVELGdCQUFnQjtRQUNaLE1BQU0sV0FBVyxHQUFHLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUM3RCxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7WUFDNUIsT0FBTyxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxDQUFDLEtBQVUsRUFBRSxFQUFFO2dCQUM3QyxJQUFJLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQzlELENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsbUJBQW1CLENBQUMsQ0FBTTtRQUN0QixJQUFJLENBQUMsQ0FBQyxPQUFPLEtBQUssRUFBRSxFQUFFO1lBQ2xCLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztTQUN2QjtJQUNMLENBQUM7SUFFRCxZQUFZO1FBQ1IsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFO1lBQ3BCLCtDQUErQztZQUMvQyxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtnQkFDdkIsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO2FBQ3JCO1lBQ0QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLEVBQUUsRUFBRSxNQUFNLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztTQUN6SDtRQUNELElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRUQsY0FBYztRQUNWLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxVQUFVLEdBQUcsRUFBRSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO0lBQ3pCLENBQUM7SUFFRCxPQUFPLENBQUMsT0FBWTtRQUNoQixNQUFNLFdBQVcsR0FBRyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDbkMsTUFBTSxFQUFFLEdBQUcsdURBQXVELENBQUM7UUFDbkUsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxTQUFTLENBQUMsS0FBVTtRQUNoQixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUM7UUFDM0IsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFRCxXQUFXO1FBQ1AsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQsb0JBQW9CO1FBQ2hCLElBQUk7WUFDQSxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRSxDQUFDLGdCQUFnQixDQUFDLENBQUM7WUFDN0QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUU7Z0JBQ3BCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO2FBQ3ZCO1lBQ0QsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO1lBQzVILElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUM7U0FDaEM7UUFBQyxPQUFPLEtBQUssRUFBRTtZQUNaLE9BQU87U0FDVjtJQUNMLENBQUM7SUFFRCxZQUFZO1FBQ1IsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFRCxVQUFVO1FBQ04sSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBRUQsMkJBQTJCLENBQUMsS0FBVTtRQUNsQyxLQUFLLE1BQU0sR0FBRyxJQUFJLEtBQUssQ0FBQyxHQUFHLEVBQUU7WUFDekIsSUFBSSxHQUFHLENBQUMsVUFBVSxJQUFJLEdBQUcsQ0FBQyxVQUFVLENBQUMsS0FBSyxLQUFLLFNBQVMsRUFBRTtnQkFDdEQsT0FBTyxJQUFJLENBQUM7YUFDZjtTQUNKO1FBRUQsT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQztJQUVEOzs7T0FHRztJQUNILGlCQUFpQjtRQUNiLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRU8sZ0JBQWdCO1FBQ3BCLElBQUksUUFBUSxHQUFHLElBQUksS0FBSyxFQUFFLENBQUM7UUFDM0IsUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQy9CLE9BQU8sUUFBUSxDQUFDO0lBQ3BCLENBQUM7OztZQXZVSixTQUFTLFNBQUM7Z0JBQ1AsUUFBUSxFQUFFLFVBQVU7Z0JBQ3BCLDJzSEFBcUM7YUFDeEM7OztZQWJ3QyxNQUFNO1lBRXdCLFlBQVk7WUFJMUUsZ0JBQWdCOzs7NEJBU3BCLE1BQU07K0JBRU4sTUFBTTsrQkFFTixNQUFNO3NCQUVOLEtBQUs7cUJBRUwsS0FBSztzQkFFTCxLQUFLO29CQTBETCxLQUFLOzBCQU1MLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE5nWm9uZSwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRpbnlDb2xvciB9IGZyb20gJ0BjdHJsL3Rpbnljb2xvcic7XG5pbXBvcnQgeyBDVVNUT01fTElOS19OQU1FLCBDVVNUT01fVVBQRVJDQVNFX05BTUUsIENVU1RPTV9MSU5LX0NSWVBURUQsIFF1aWxsU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3V0aWxzL3F1aWxsLnNlcnZpY2UnO1xuaW1wb3J0IHsgdjQgYXMgdXVpZCB9IGZyb20gJ3V1aWQnO1xuaW1wb3J0ICogYXMgUXVpbGxOYW1lc3BhY2UgZnJvbSAncXVpbGwnO1xuaW1wb3J0IHsgRGVsdGEgfSBmcm9tICcuLi8uLi8uLi9kdG9zL3V0aWxzL3F1aWxsL2RlbHRhLmR0byc7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5cbmNvbnN0IFF1aWxsOiBhbnkgPSBRdWlsbE5hbWVzcGFjZTtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd3Yi1xdWlsbCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3F1aWxsLmNvbXBvbmVudC5odG1sJyxcbn0pXG5leHBvcnQgY2xhc3MgUXVpbGxDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIEBPdXRwdXQoKSBjb250ZW50Q2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgQE91dHB1dCgpIGlzVG9vbHRpcEZvY3VzZWQgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgICBAT3V0cHV0KCkgdG9vbHRpcExvc3RGb2N1cyA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICAgIEBJbnB1dCgpIGNvbnRlbnQgPSAnJztcblxuICAgIEBJbnB1dCgpIG9mZnNldCA9IGZhbHNlO1xuXG4gICAgQElucHV0KCkgdG9vbGJhciA9IFtcbiAgICAgICAgWydib2xkJywgJ2l0YWxpYycsICd1bmRlcmxpbmUnLCAnc3RyaWtlJywgQ1VTVE9NX1VQUEVSQ0FTRV9OQU1FXSxcbiAgICAgICAgWydibG9ja3F1b3RlJ10sXG5cbiAgICAgICAgW3sgbGlzdDogJ29yZGVyZWQnIH0sIHsgbGlzdDogJ2J1bGxldCcgfV0sXG4gICAgICAgIFt7IHNjcmlwdDogJ3N1YicgfSwgeyBzY3JpcHQ6ICdzdXBlcicgfV0sXG4gICAgICAgIFt7IGluZGVudDogJy0xJyB9LCB7IGluZGVudDogJysxJyB9XSxcbiAgICAgICAgW3sgc2l6ZTogWydzbWFsbCcsIGZhbHNlLCAnbGFyZ2UnLCAnaHVnZSddIH1dLFxuICAgICAgICBbeyBoZWFkZXI6IFsxLCAyLCAzLCA0LCA1LCA2LCBmYWxzZV0gfV0sXG4gICAgICAgIFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogW1xuICAgICAgICAgICAgICAgICAgICAnIzAwMDAwMCcsXG4gICAgICAgICAgICAgICAgICAgICcjZTYwMDAwJyxcbiAgICAgICAgICAgICAgICAgICAgJyNmZjk5MDAnLFxuICAgICAgICAgICAgICAgICAgICAnI2ZmZmYwMCcsXG4gICAgICAgICAgICAgICAgICAgICcjMDA4YTAwJyxcbiAgICAgICAgICAgICAgICAgICAgJyMwMDY2Y2MnLFxuICAgICAgICAgICAgICAgICAgICAnIzk5MzNmZicsXG4gICAgICAgICAgICAgICAgICAgICcjZmZmZmZmJyxcbiAgICAgICAgICAgICAgICAgICAgJyNmYWNjY2MnLFxuICAgICAgICAgICAgICAgICAgICAnI2ZmZWJjYycsXG4gICAgICAgICAgICAgICAgICAgICcjZmZmZmNjJyxcbiAgICAgICAgICAgICAgICAgICAgJyNjY2U4Y2MnLFxuICAgICAgICAgICAgICAgICAgICAnI2NjZTBmNScsXG4gICAgICAgICAgICAgICAgICAgICcjZWJkNmZmJyxcbiAgICAgICAgICAgICAgICAgICAgJyNiYmJiYmInLFxuICAgICAgICAgICAgICAgICAgICAnI2YwNjY2NicsXG4gICAgICAgICAgICAgICAgICAgICcjZmZjMjY2JyxcbiAgICAgICAgICAgICAgICAgICAgJyNmZmZmNjYnLFxuICAgICAgICAgICAgICAgICAgICAnIzY2Yjk2NicsXG4gICAgICAgICAgICAgICAgICAgICcjNjZhM2UwJyxcbiAgICAgICAgICAgICAgICAgICAgJyNjMjg1ZmYnLFxuICAgICAgICAgICAgICAgICAgICAnIzg4ODg4OCcsXG4gICAgICAgICAgICAgICAgICAgICcjYTEwMDAwJyxcbiAgICAgICAgICAgICAgICAgICAgJyNiMjZiMDAnLFxuICAgICAgICAgICAgICAgICAgICAnI2IyYjIwMCcsXG4gICAgICAgICAgICAgICAgICAgICcjMDA2MTAwJyxcbiAgICAgICAgICAgICAgICAgICAgJyMwMDQ3YjInLFxuICAgICAgICAgICAgICAgICAgICAnIzZiMjRiMicsXG4gICAgICAgICAgICAgICAgICAgICcjNDQ0NDQ0JyxcbiAgICAgICAgICAgICAgICAgICAgJyM1YzAwMDAnLFxuICAgICAgICAgICAgICAgICAgICAnIzY2M2QwMCcsXG4gICAgICAgICAgICAgICAgICAgICcjNjY2NjAwJyxcbiAgICAgICAgICAgICAgICAgICAgJyMwMDM3MDAnLFxuICAgICAgICAgICAgICAgICAgICAnIzAwMjk2NicsXG4gICAgICAgICAgICAgICAgICAgICcjM2QxNDY2JyxcbiAgICAgICAgICAgICAgICAgICAgJyNmZjk5MDEnLFxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgeyBiYWNrZ3JvdW5kOiBbXSB9LFxuICAgICAgICBdLFxuICAgICAgICBbeyBhbGlnbjogW10gfV0sXG4gICAgICAgIFtDVVNUT01fTElOS19OQU1FXSxcbiAgICAgICAgW0NVU1RPTV9MSU5LX0NSWVBURURdLFxuICAgICAgICBbJ2NsZWFuJ10sXG4gICAgXTtcblxuICAgIEBJbnB1dCgpXG4gICAgc2V0IGNvbG9yKHZhbHVlOiBhbnkpIHtcbiAgICAgICAgdGhpcy5fY29sb3IgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5jb2xvclRpbnQgPSBuZXcgVGlueUNvbG9yKHZhbHVlKS5pc0xpZ2h0KCk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgcGxhY2Vob2xkZXI6IHN0cmluZyA9IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCd3Yi5zaGFyZWQuY29tcG9uZW50cy5xdWlsbC4xJyk7XG5cbiAgICBfY29sb3I6IGFueTtcblxuICAgIHRtcENvbnRlbnQgPSAnJztcblxuICAgIGNvbG9yVGludCA9IGZhbHNlO1xuXG4gICAgb3BlbkNvbmZpZyA9IGZhbHNlO1xuXG4gICAgc291cmNlQ29kZSA9IGZhbHNlO1xuXG4gICAgc291cmNlQ29kZVZhbHVlID0gJyc7XG5cbiAgICBjdXJyZW50RWRpdG9yOiBhbnk7XG5cbiAgICBsaW5rQ29uZmlnID0gJyc7XG5cbiAgICBsaW5rU3R5bGUgPSAnJztcblxuICAgIGxpbmtBbHJlYWR5RXhpc3Q6IGJvb2xlYW47XG5cbiAgICBjaGVja2VkID0gZmFsc2U7XG5cbiAgICBjcnlwdGVkID0gZmFsc2U7XG5cbiAgICBjdXJyZW50VG9vbFRpcDogYW55O1xuXG4gICAgZWRpdG9yOiBhbnk7XG5cbiAgICBtb2R1bGVzOiBhbnk7XG5cbiAgICB1dWlkID0gdXVpZCgpO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBuZ1pvbmU6IE5nWm9uZSwgcHJpdmF0ZSBxdWlsbFNlcnZpY2U6IFF1aWxsU2VydmljZSwgcHJpdmF0ZSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlKSB7XG4gICAgICAgIHRoaXMucXVpbGxTZXJ2aWNlLmluaXQoKTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5oYW5kbGVEZWZhdWx0Q29udGVudFRyYW5zbGF0aW9uKCk7XG4gICAgICAgIHRoaXMubW9kdWxlcyA9IHtcbiAgICAgICAgICAgIHN5bnRheDogZmFsc2UsXG4gICAgICAgICAgICBodG1sRWRpdEJ1dHRvbjoge30sXG4gICAgICAgICAgICB0b29sYmFyOiB7XG4gICAgICAgICAgICAgICAgY29udGFpbmVyOiB0aGlzLnRvb2xiYXIsXG4gICAgICAgICAgICAgICAgaGFuZGxlcnM6IHtcbiAgICAgICAgICAgICAgICAgICAgW0NVU1RPTV9MSU5LX05BTUVdOiB0aGlzLmFkZExpbmsuYmluZCh0aGlzKSxcbiAgICAgICAgICAgICAgICAgICAgW0NVU1RPTV9MSU5LX0NSWVBURURdOiB0aGlzLmFkZExpbmsuYmluZCh0aGlzKSxcbiAgICAgICAgICAgICAgICAgICAgW0NVU1RPTV9VUFBFUkNBU0VfTkFNRV06IHRoaXMuYWRkVXBwZXJDYXNlLmJpbmQodGhpcyksXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBjbGlwYm9hcmQ6IHtcbiAgICAgICAgICAgICAgICBtYXRjaGVyczogW1snQlInLCB0aGlzLmxpbmVCcmVha01hdGNoZXJdXSxcbiAgICAgICAgICAgICAgICBtYXRjaFZpc3VhbDogZmFsc2UsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAga2V5Ym9hcmQ6IHtcbiAgICAgICAgICAgICAgICBiaW5kaW5nczoge1xuICAgICAgICAgICAgICAgICAgICBsaW5lYnJlYWs6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGtleTogMTMsXG4gICAgICAgICAgICAgICAgICAgICAgICBzaGlmdEtleTogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZXI6IChyYW5nZTogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gSGFuZGxlIGxpbmUgYnJlYWtzIHdpdGggc2hpZnQgKyBlbnRlclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBjdXJyZW50TGVhZiA9IHRoaXMuZWRpdG9yLmdldExlYWYocmFuZ2UuaW5kZXgpWzBdO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBuZXh0TGVhZiA9IHRoaXMuZWRpdG9yLmdldExlYWYocmFuZ2UuaW5kZXggKyAxKVswXTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZWRpdG9yLmluc2VydEVtYmVkKHJhbmdlLmluZGV4LCAnYnJlYWsnLCB0cnVlLCAndXNlcicpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gSW5zZXJ0IGEgc2Vjb25kIGJyZWFrIGlmOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEF0IHRoZSBlbmQgb2YgdGhlIGVkaXRvciwgT1IgbmV4dCBsZWFmIGhhcyBhIGRpZmZlcmVudCBwYXJlbnQgKDxwPilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobmV4dExlYWYgPT09IG51bGwgfHwgY3VycmVudExlYWYucGFyZW50ICE9PSBuZXh0TGVhZi5wYXJlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5lZGl0b3IuaW5zZXJ0RW1iZWQocmFuZ2UuaW5kZXgsICdicmVhaycsIHRydWUsICd1c2VyJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gTm93IHRoYXQgd2UndmUgaW5zZXJ0ZWQgYSBsaW5lIGJyZWFrLCBtb3ZlIHRoZSBjdXJzb3IgZm9yd2FyZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZWRpdG9yLnNldFNlbGVjdGlvbihyYW5nZS5pbmRleCArIDEsIFF1aWxsLnNvdXJjZXMuU0lMRU5UKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH07XG5cbiAgICAgICAgdGhpcy5xdWlsbFNlcnZpY2UuYmluZFRvb2x0aXBGb2N1cygpLnN1YnNjcmliZSgoaWQpID0+IHtcbiAgICAgICAgICAgIHRoaXMuaXNUb29sdGlwRm9jdXNlZC5lbWl0KGZhbHNlKTtcbiAgICAgICAgICAgIGlmIChpZCA9PT0gdGhpcy51dWlkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5pc1Rvb2x0aXBGb2N1c2VkLmVtaXQodHJ1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGhhbmRsZURlZmF1bHRDb250ZW50VHJhbnNsYXRpb24oKSB7XG4gICAgICAgIHRoaXMudG1wQ29udGVudCA9IC9ed2JcXC4vLnRlc3QodGhpcy5jb250ZW50KSA/IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KHRoaXMuY29udGVudCkgOiB0aGlzLmNvbnRlbnQ7XG4gICAgfVxuXG4gICAgY29udGVudENoYW5nZWQoZXZlbnQpIHtcbiAgICAgICAgaWYgKHRoaXMuZWRpdG9yKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5pc1NldERlZmF1bHRUZXh0Q29sb3JBY3Rpb24oZXZlbnQuZGVsdGEpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXRUZXh0QmxhY2tDb2xvcigpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5jb250ZW50ID0gdGhpcy5lZGl0b3Iucm9vdC5pbm5lckhUTUw7XG4gICAgICAgICAgICBpZiAodGhpcy5pc0VtcHR5KHRoaXMuY29udGVudCkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbnRlbnQgPSAnJztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5jb250ZW50Q2hhbmdlLmVtaXQodGhpcy5jb250ZW50KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGVkaXRvckxvYWRlZChlOiBhbnkpIHtcbiAgICAgICAgdGhpcy5lZGl0b3IgPSBlO1xuICAgICAgICB0aGlzLnNldEV2ZW50TGlzdGVuZXIoKTtcbiAgICB9XG5cbiAgICBhZGRVcHBlckNhc2UodmFsdWU6IGFueSkge1xuICAgICAgICBpZiAoIXZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLmVkaXRvci5mb3JtYXQoQ1VTVE9NX1VQUEVSQ0FTRV9OQU1FLCBmYWxzZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmVkaXRvci5mb3JtYXQoQ1VTVE9NX1VQUEVSQ0FTRV9OQU1FLCAndXBwZXJjYXNlJyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBhZGRMaW5rKHZhbHVlOiBhbnkpIHtcbiAgICAgICAgdGhpcy5saW5rQWxyZWFkeUV4aXN0ID0gZmFsc2U7XG4gICAgICAgIGlmICghdmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMucmV0cmlldmVFeGlzdGluZ0xpbmsoKTtcbiAgICAgICAgfVxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIGlmICghdGhpcy5jdXJyZW50VG9vbFRpcCkge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybignTm8gcGFyZW50IGVsZW1lbnQnKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5uZ1pvbmUucnVuKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IGxlZnRTdHlsZSA9IHRoaXMuY3VycmVudFRvb2xUaXAuc3R5bGUubGVmdDtcbiAgICAgICAgICAgICAgICAgICAgbGV0IHdpZHRoU3R5bGUgPSB0aGlzLmN1cnJlbnRUb29sVGlwLnN0eWxlLndpZHRoO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB0b3BTdHlsZSA9IHRoaXMuY3VycmVudFRvb2xUaXAuc3R5bGUudG9wO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLm9mZnNldCAmJiB3aWR0aFN0eWxlLnJlcGxhY2UoJ3B4JywgJycpIDwgNTAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBtb3ZlZFN0eWxlID0gKDUyMCAtIHBhcnNlSW50KHdpZHRoU3R5bGUucmVwbGFjZSgncHgnLCAnJyksIDEwKSkgLyAyO1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGhTdHlsZSA9ICc1MjBweCc7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZWZ0U3R5bGUgPSBwYXJzZUludChsZWZ0U3R5bGUucmVwbGFjZSgncHgnLCAnJyksIDEwKSAtIG1vdmVkU3R5bGUgKyAncHgnO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5saW5rU3R5bGUgPVxuICAgICAgICAgICAgICAgICAgICAgICAgJ2hlaWdodDonICtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY3VycmVudFRvb2xUaXAuY2xpZW50SGVpZ2h0ICtcbiAgICAgICAgICAgICAgICAgICAgICAgICdweDsgd2lkdGg6JyArXG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aFN0eWxlICtcbiAgICAgICAgICAgICAgICAgICAgICAgICc7bGVmdDonICtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxlZnRTdHlsZSArXG4gICAgICAgICAgICAgICAgICAgICAgICAnO3RvcDonICtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRvcFN0eWxlO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm9wZW5Db25maWcgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRFZGl0b3IgPSB0aGlzLmVkaXRvcjtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSwgMTAwKTtcbiAgICB9XG5cbiAgICBzZXRFdmVudExpc3RlbmVyKCkge1xuICAgICAgICBjb25zdCBjdXJyZW50VG9vbCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5xbC10b29sdGlwJyk7XG4gICAgICAgIGN1cnJlbnRUb29sLmZvckVhY2goKGVsZW1lbnQpID0+IHtcbiAgICAgICAgICAgIGVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoZXZlbnQ6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuY3VycmVudFRvb2xUaXAgPSBldmVudC50YXJnZXQuY2xvc2VzdCgnLnFsLXRvb2x0aXAnKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICB2YWxpZFRoaXNVcmxPbkVudGVyKGU6IGFueSkge1xuICAgICAgICBpZiAoZS5rZXlDb2RlID09PSAxMykge1xuICAgICAgICAgICAgdGhpcy52YWxpZFRoaXNVcmwoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHZhbGlkVGhpc1VybCgpIHtcbiAgICAgICAgaWYgKHRoaXMuY3VycmVudEVkaXRvcikge1xuICAgICAgICAgICAgLy8gUmVzZXQgdGhlIGxpbmssIGF2b2lkIGhyZWYgPSBbT2JqZWN0IE9iamVjdF1cbiAgICAgICAgICAgIGlmICh0aGlzLmxpbmtBbHJlYWR5RXhpc3QpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnJlbW92ZUxpbmsoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuY3VycmVudEVkaXRvci5mb3JtYXQoQ1VTVE9NX0xJTktfTkFNRSwgeyB0YXJnZXQ6ICF0aGlzLmNoZWNrZWQsIHZhbHVlOiB0aGlzLmxpbmtDb25maWcsIGNyeXB0ZWQ6IHRoaXMuY3J5cHRlZCB9KTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmNsb3NlVXJsQ29uZmlnKCk7XG4gICAgfVxuXG4gICAgY2xvc2VVcmxDb25maWcoKSB7XG4gICAgICAgIHRoaXMub3BlbkNvbmZpZyA9IGZhbHNlO1xuICAgICAgICB0aGlzLmxpbmtDb25maWcgPSAnJztcbiAgICAgICAgdGhpcy5jaGVja2VkID0gZmFsc2U7XG4gICAgfVxuXG4gICAgaXNFbXB0eShjb250ZW50OiBhbnkpIHtcbiAgICAgICAgY29uc3QgY29tbWVudFRleHQgPSBjb250ZW50LnRyaW0oKTtcbiAgICAgICAgY29uc3QgcmUgPSAvXjxbcGgwLTldKz4oPGJyPnw8YnJcXC8+fDxiclxcc1xcLz58XFxzK3wpPFxcL1twaDAtOV0rPiQvZ207XG4gICAgICAgIHJldHVybiByZS50ZXN0KGNvbW1lbnRUZXh0KTtcbiAgICB9XG5cbiAgICBmb2N1c1RoaXMoZXZlbnQ6IGFueSkge1xuICAgICAgICB0aGlzLmVkaXRvciA9IGV2ZW50LmVkaXRvcjtcbiAgICAgICAgdGhpcy5xdWlsbFNlcnZpY2Uuc2V0Rm9jdXNlZCh0aGlzLnV1aWQpO1xuICAgIH1cblxuICAgIG9uRm9jdXNMb3N0KCkge1xuICAgICAgICB0aGlzLnRvb2x0aXBMb3N0Rm9jdXMuZW1pdCh0cnVlKTtcbiAgICB9XG5cbiAgICByZXRyaWV2ZUV4aXN0aW5nTGluaygpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IGxpbmtGb3JtYXQgPSB0aGlzLmVkaXRvci5nZXRGb3JtYXQoKVtDVVNUT01fTElOS19OQU1FXTtcbiAgICAgICAgICAgIGlmICghbGlua0Zvcm1hdC50YXJnZXQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNoZWNrZWQgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5saW5rQ29uZmlnID0gbGlua0Zvcm1hdC5jcnlwdGVkID8gYXRvYihsaW5rRm9ybWF0LmNyeXB0ZWQpIDogbGlua0Zvcm1hdC52YWx1ZSA/IGxpbmtGb3JtYXQudmFsdWUgOiBsaW5rRm9ybWF0WzBdLnZhbHVlO1xuICAgICAgICAgICAgdGhpcy5saW5rQWxyZWFkeUV4aXN0ID0gdHJ1ZTtcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uUmVtb3ZlTGluaygpIHtcbiAgICAgICAgdGhpcy5yZW1vdmVMaW5rKCk7XG4gICAgfVxuXG4gICAgcmVtb3ZlTGluaygpIHtcbiAgICAgICAgdGhpcy5jdXJyZW50RWRpdG9yLmZvcm1hdChDVVNUT01fTElOS19OQU1FKTtcbiAgICB9XG5cbiAgICBpc1NldERlZmF1bHRUZXh0Q29sb3JBY3Rpb24oZGVsdGE6IGFueSkge1xuICAgICAgICBmb3IgKGNvbnN0IG9wZSBvZiBkZWx0YS5vcHMpIHtcbiAgICAgICAgICAgIGlmIChvcGUuYXR0cmlidXRlcyAmJiBvcGUuYXR0cmlidXRlcy5jb2xvciA9PT0gJyNmZjk5MDEnKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUXVpbGwgaGFzIHRoZSBibGFjayBjb2xvciBieSBkZWZhdWx0LlxuICAgICAqIEFkZGluZyBibGFjayBjb2xvciBhdm9pZCBoaWRkaW5nIHRleHQgaW4gdGhlIGZyb250ICh3aGVuIHRoZSBkZWZhdWx0IGNvbG9yIHRleHQgaW4gdGhlIGZyb250IGlzIHdoaXRlKVxuICAgICAqL1xuICAgIHNldFRleHRCbGFja0NvbG9yKCkge1xuICAgICAgICB0aGlzLmVkaXRvci5mb3JtYXQoJ2NvbG9yJywgZmFsc2UpO1xuICAgIH1cblxuICAgIHByaXZhdGUgbGluZUJyZWFrTWF0Y2hlcigpIHtcbiAgICAgICAgdmFyIG5ld0RlbHRhID0gbmV3IERlbHRhKCk7XG4gICAgICAgIG5ld0RlbHRhLmluc2VydCh7IGJyZWFrOiAnJyB9KTtcbiAgICAgICAgcmV0dXJuIG5ld0RlbHRhO1xuICAgIH1cbn1cbiJdfQ==