@po-ui/ng-components 6.10.0 → 6.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (71) hide show
  1. package/esm2020/lib/components/po-button/po-button-base.component.mjs +64 -14
  2. package/esm2020/lib/components/po-button/po-button-type.enum.mjs +10 -0
  3. package/esm2020/lib/components/po-button/po-button.component.mjs +4 -4
  4. package/esm2020/lib/components/po-dynamic/po-dynamic-field.interface.mjs +1 -1
  5. package/esm2020/lib/components/po-dynamic/po-dynamic-form/po-dynamic-form-fields/po-dynamic-form-fields-base.component.mjs +12 -2
  6. package/esm2020/lib/components/po-dynamic/po-dynamic-view/po-dynamic-view-base.component.mjs +12 -2
  7. package/esm2020/lib/components/po-dynamic/po-dynamic.util.mjs +18 -11
  8. package/esm2020/lib/components/po-field/index.mjs +2 -1
  9. package/esm2020/lib/components/po-field/po-checkbox/po-checkbox.module.mjs +20 -0
  10. package/esm2020/lib/components/po-field/po-combo/po-combo-base.component.mjs +2 -1
  11. package/esm2020/lib/components/po-field/po-field.module.mjs +15 -13
  12. package/esm2020/lib/components/po-field/po-upload/po-upload.component.mjs +3 -3
  13. package/esm2020/lib/components/po-list-view/po-list-view.component.mjs +4 -4
  14. package/esm2020/lib/components/po-menu/po-menu-base.component.mjs +46 -6
  15. package/esm2020/lib/components/po-menu/po-menu.component.mjs +5 -5
  16. package/esm2020/lib/components/po-modal/po-modal-footer/po-modal-footer.component.mjs +2 -2
  17. package/esm2020/lib/components/po-modal/po-modal.component.mjs +6 -6
  18. package/esm2020/lib/components/po-page/po-page-default/po-page-default.component.mjs +3 -3
  19. package/esm2020/lib/components/po-page/po-page-detail/po-page-detail.component.mjs +7 -7
  20. package/esm2020/lib/components/po-page/po-page-edit/po-page-edit.component.mjs +6 -6
  21. package/esm2020/lib/components/po-page/po-page-list/po-page-list.component.mjs +3 -3
  22. package/esm2020/lib/components/po-table/po-table-base.component.mjs +6 -2
  23. package/esm2020/lib/components/po-table/po-table-column-manager/po-table-column-manager.component.mjs +19 -5
  24. package/esm2020/lib/components/po-table/po-table-detail/po-table-detail.component.mjs +40 -40
  25. package/esm2020/lib/components/po-table/po-table.component.mjs +441 -438
  26. package/esm2020/lib/components/po-table/po-table.module.mjs +12 -4
  27. package/esm2020/lib/services/po-notification/po-notification-base.service.mjs +6 -4
  28. package/esm2020/lib/services/po-notification/po-notification.interface.mjs +1 -1
  29. package/esm2020/lib/services/po-notification/po-notification.module.mjs +6 -4
  30. package/esm2020/lib/services/po-notification/po-notification.service.mjs +3 -2
  31. package/esm2020/lib/services/po-notification/po-toaster/po-toaster.component.mjs +49 -32
  32. package/esm2020/lib/services/po-notification/po-toaster/po-toaster.literals.mjs +15 -0
  33. package/fesm2015/po-ui-ng-components.mjs +1078 -886
  34. package/fesm2015/po-ui-ng-components.mjs.map +1 -1
  35. package/fesm2020/po-ui-ng-components.mjs +1070 -871
  36. package/fesm2020/po-ui-ng-components.mjs.map +1 -1
  37. package/lib/components/po-button/po-button-base.component.d.ts +40 -9
  38. package/lib/components/po-button/po-button-type.enum.d.ts +8 -0
  39. package/lib/components/po-dynamic/po-dynamic-field.interface.d.ts +44 -0
  40. package/lib/components/po-dynamic/po-dynamic-view/po-dynamic-view-base.component.d.ts +5 -0
  41. package/lib/components/po-dynamic/po-dynamic.util.d.ts +1 -1
  42. package/lib/components/po-field/index.d.ts +1 -0
  43. package/lib/components/po-field/po-checkbox/po-checkbox.module.d.ts +9 -0
  44. package/lib/components/po-field/po-field.module.d.ts +54 -54
  45. package/lib/components/po-menu/po-menu-base.component.d.ts +19 -1
  46. package/lib/components/po-modal/po-modal-footer/po-modal-footer.component.d.ts +1 -1
  47. package/lib/components/po-modal/po-modal.component.d.ts +1 -1
  48. package/lib/components/po-table/po-table-base.component.d.ts +2 -0
  49. package/lib/components/po-table/po-table-column-manager/po-table-column-manager.component.d.ts +3 -0
  50. package/lib/components/po-table/po-table.component.d.ts +2 -0
  51. package/lib/components/po-table/po-table.module.d.ts +14 -12
  52. package/lib/services/po-notification/po-notification-base.service.d.ts +4 -2
  53. package/lib/services/po-notification/po-notification.interface.d.ts +5 -1
  54. package/lib/services/po-notification/po-notification.module.d.ts +3 -1
  55. package/lib/services/po-notification/po-toaster/po-toaster.component.d.ts +5 -1
  56. package/lib/services/po-notification/po-toaster/po-toaster.literals.d.ts +14 -0
  57. package/package.json +4 -4
  58. package/po-ui-ng-components-6.12.0.tgz +0 -0
  59. package/schematics/ng-add/index.js +1 -1
  60. package/schematics/ng-add/index.spec.js +5 -5
  61. package/schematics/ng-generate/po-page-default/index.spec.js +12 -12
  62. package/schematics/ng-generate/po-page-detail/index.spec.js +12 -12
  63. package/schematics/ng-generate/po-page-edit/index.spec.js +12 -12
  64. package/schematics/ng-generate/po-page-list/index.spec.js +12 -12
  65. package/schematics/ng-generate/sidemenu/index.spec.js +4 -4
  66. package/schematics/ng-update/v2/index.js +1 -1
  67. package/schematics/ng-update/v3/index.js +1 -1
  68. package/schematics/ng-update/v4/index.js +1 -1
  69. package/schematics/ng-update/v5/index.js +1 -1
  70. package/schematics/ng-update/v6/index.js +1 -1
  71. package/po-ui-ng-components-6.10.0.tgz +0 -0
@@ -29,7 +29,7 @@ function PoMenuComponent_div_6_Template(rf, ctx) { if (rf & 1) {
29
29
  } if (rf & 2) {
30
30
  const ctx_r1 = i0.ɵɵnextContext();
31
31
  i0.ɵɵadvance(2);
32
- i0.ɵɵproperty("ngClass", ctx_r1.enableCollapse ? "po-menu-short-logo" : "po-menu-logo")("src", ctx_r1.enableCollapse ? ctx_r1.shortLogo || ctx_r1.logo : ctx_r1.logo, i0.ɵɵsanitizeUrl);
32
+ i0.ɵɵproperty("ngClass", ctx_r1.enableCollapse ? "po-menu-short-logo" : "po-menu-logo")("src", ctx_r1.enableCollapse ? ctx_r1.shortLogo || ctx_r1.logo : ctx_r1.logo, i0.ɵɵsanitizeUrl)("alt", ctx_r1.logoAlt);
33
33
  } }
34
34
  function PoMenuComponent_div_7_ng_container_1_Template(rf, ctx) { if (rf & 1) {
35
35
  i0.ɵɵelementContainer(0);
@@ -553,14 +553,14 @@ PoMenuComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: PoMenuCompo
553
553
  } if (rf & 2) {
554
554
  let _t;
555
555
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.menuHeaderTemplate = _t.first);
556
- } }, features: [i0.ɵɵProvidersFeature([PoMenuItemsService, PoMenuService]), i0.ɵɵInheritDefinitionFeature], decls: 15, vars: 10, consts: [["class", "po-menu-overlay", 3, "click", 4, "ngIf"], [1, "po-menu-mobile", "po-clickable", 3, "click"], [1, "po-icon", "po-icon-menu"], [1, "po-menu", 3, "ngClass"], [1, "po-menu-header"], ["class", "po-menu-header-container-logo", 4, "ngIf"], ["class", "po-menu-header-template", 4, "ngIf"], [3, "p-loading", "p-filter", 4, "ngIf"], [1, "po-menu-body"], [1, "po-menu-outer"], [1, "po-menu-inner"], ["class", "po-menu-item-wrapper", 4, "ngIf"], ["class", "po-menu-item-wrapper", 4, "ngFor", "ngForOf"], ["class", "po-menu-footer", 4, "ngIf"], [1, "po-menu-overlay", 3, "click"], [1, "po-menu-header-container-logo"], ["href", "./"], [3, "ngClass", "src"], [1, "po-menu-header-template"], [4, "ngTemplateOutlet"], [3, "p-loading", "p-filter"], [1, "po-menu-item-wrapper"], [1, "po-menu-item-first"], [1, "po-menu-icon-container", "po-menu-item-no-data"], [1, "po-icon", "po-icon-info", "po-menu-icon-item", "po-lg-2"], [1, "po-lg-10", "po-menu-icon-label"], [3, "p-action", "p-badge-alert", "p-badge-color", "p-badge-value", "p-collapsed-menu", "p-icon", "p-id", "p-label", "p-level", "p-link", "p-short-label", "p-sub-items", "p-type"], [1, "po-menu-footer"], [1, "po-menu-collapse-button-icon", "po-clickable", 3, "click"], [1, "po-icon"]], template: function PoMenuComponent_Template(rf, ctx) { if (rf & 1) {
556
+ } }, features: [i0.ɵɵProvidersFeature([PoMenuItemsService, PoMenuService]), i0.ɵɵInheritDefinitionFeature], decls: 15, vars: 10, consts: [["class", "po-menu-overlay", 3, "click", 4, "ngIf"], [1, "po-menu-mobile", "po-clickable", 3, "click"], [1, "po-icon", "po-icon-menu"], [1, "po-menu", 3, "ngClass"], [1, "po-menu-header"], ["class", "po-menu-header-container-logo", 4, "ngIf"], ["class", "po-menu-header-template", 4, "ngIf"], [3, "p-loading", "p-filter", 4, "ngIf"], [1, "po-menu-body"], [1, "po-menu-outer"], [1, "po-menu-inner"], ["class", "po-menu-item-wrapper", 4, "ngIf"], ["class", "po-menu-item-wrapper", 4, "ngFor", "ngForOf"], ["class", "po-menu-footer", 4, "ngIf"], [1, "po-menu-overlay", 3, "click"], [1, "po-menu-header-container-logo"], ["href", "./"], [3, "ngClass", "src", "alt"], [1, "po-menu-header-template"], [4, "ngTemplateOutlet"], [3, "p-loading", "p-filter"], [1, "po-menu-item-wrapper"], [1, "po-menu-item-first"], [1, "po-menu-icon-container", "po-menu-item-no-data"], [1, "po-icon", "po-icon-info", "po-menu-icon-item", "po-lg-2"], [1, "po-lg-10", "po-menu-icon-label"], [3, "p-action", "p-badge-alert", "p-badge-color", "p-badge-value", "p-collapsed-menu", "p-icon", "p-id", "p-label", "p-level", "p-link", "p-short-label", "p-sub-items", "p-type"], [1, "po-menu-footer"], [1, "po-menu-collapse-button-icon", "po-clickable", 3, "click"], [1, "po-icon"]], template: function PoMenuComponent_Template(rf, ctx) { if (rf & 1) {
557
557
  i0.ɵɵtemplate(0, PoMenuComponent_div_0_Template, 1, 0, "div", 0);
558
558
  i0.ɵɵelementStart(1, "nav")(2, "div", 1);
559
559
  i0.ɵɵlistener("click", function PoMenuComponent_Template_div_click_2_listener() { return ctx.toggleMenuMobile(); });
560
560
  i0.ɵɵelement(3, "span", 2);
561
561
  i0.ɵɵelementEnd();
562
562
  i0.ɵɵelementStart(4, "div", 3)(5, "div", 4);
563
- i0.ɵɵtemplate(6, PoMenuComponent_div_6_Template, 3, 2, "div", 5);
563
+ i0.ɵɵtemplate(6, PoMenuComponent_div_6_Template, 3, 3, "div", 5);
564
564
  i0.ɵɵtemplate(7, PoMenuComponent_div_7_Template, 2, 1, "div", 6);
565
565
  i0.ɵɵtemplate(8, PoMenuComponent_po_menu_filter_8_Template, 1, 1, "po-menu-filter", 7);
566
566
  i0.ɵɵelementEnd();
@@ -589,9 +589,9 @@ PoMenuComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: PoMenuCompo
589
589
  } }, directives: [i6.NgIf, i6.NgClass, i6.NgTemplateOutlet, i7.PoMenuFilterComponent, i8.PoIconComponent, i6.NgForOf, i9.PoMenuItemComponent], encapsulation: 2 });
590
590
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PoMenuComponent, [{
591
591
  type: Component,
592
- args: [{ selector: 'po-menu', providers: [PoMenuItemsService, PoMenuService], template: "<div *ngIf=\"mobileOpened\" class=\"po-menu-overlay\" (click)=\"toggleMenuMobile()\"></div>\n<nav>\n <div class=\"po-menu-mobile po-clickable\" (click)=\"toggleMenuMobile()\">\n <span class=\"po-icon po-icon-menu\"></span>\n </div>\n\n <div class=\"po-menu\" [ngClass]=\"{ 'po-menu-animation': mobileOpened }\">\n <div class=\"po-menu-header\">\n <div *ngIf=\"logo || (shortLogo && enableCollapse)\" class=\"po-menu-header-container-logo\">\n <a href=\"./\">\n <img\n [ngClass]=\"enableCollapse ? 'po-menu-short-logo' : 'po-menu-logo'\"\n [src]=\"enableCollapse ? shortLogo || logo : logo\"\n />\n </a>\n </div>\n\n <div *ngIf=\"!enableCollapse && menuHeaderTemplate\" class=\"po-menu-header-template\">\n <ng-container *ngTemplateOutlet=\"menuHeaderTemplate.templateRef\"></ng-container>\n </div>\n\n <po-menu-filter *ngIf=\"filter && !enableCollapse\" [p-loading]=\"filterLoading\" (p-filter)=\"debounceFilter($event)\">\n </po-menu-filter>\n </div>\n\n <div class=\"po-menu-body\">\n <!-- Inner e outer para esconder scroll -->\n <div class=\"po-menu-outer\">\n <div class=\"po-menu-inner\">\n <div *ngIf=\"noData\" class=\"po-menu-item-wrapper\">\n <div class=\"po-menu-item-first\">\n <div class=\"po-menu-icon-container po-menu-item-no-data\">\n <po-icon class=\"po-icon po-icon-info po-menu-icon-item po-lg-2\"></po-icon>\n <div class=\"po-lg-10 po-menu-icon-label\">{{ literals.itemNotFound }}</div>\n </div>\n </div>\n </div>\n\n <div *ngFor=\"let menu of filteredItems; let menuIndex = index\" class=\"po-menu-item-wrapper\">\n <po-menu-item\n [class.po-menu-item-first]=\"menuIndex === 0\"\n [p-action]=\"menu.action\"\n [p-badge-alert]=\"menu.badgeAlert\"\n [p-badge-color]=\"menu.badge ? menu.badge.color : undefined\"\n [p-badge-value]=\"menu.badge ? menu.badge.value : undefined\"\n [p-collapsed-menu]=\"enableCollapse\"\n [p-icon]=\"allowIcons ? menu.icon : null\"\n [p-id]=\"menu.id\"\n [p-label]=\"menu.label\"\n [p-level]=\"menu.level\"\n [p-link]=\"menu.link\"\n [p-short-label]=\"menu.shortLabel\"\n [p-sub-items]=\"menu.subItems\"\n [p-type]=\"menu.type\"\n >\n </po-menu-item>\n </div>\n </div>\n </div>\n </div>\n\n <div *ngIf=\"hasFooter\" class=\"po-menu-footer\">\n <a class=\"po-menu-collapse-button-icon po-clickable\" (click)=\"toggle()\">\n <span\n class=\"po-icon\"\n [class.po-icon-menu-close]=\"enableCollapseButton\"\n [class.po-icon-menu-open]=\"enableCollapse\"\n >\n </span>\n </a>\n </div>\n </div>\n</nav>\n" }]
592
+ args: [{ selector: 'po-menu', providers: [PoMenuItemsService, PoMenuService], template: "<div *ngIf=\"mobileOpened\" class=\"po-menu-overlay\" (click)=\"toggleMenuMobile()\"></div>\n<nav>\n <div class=\"po-menu-mobile po-clickable\" (click)=\"toggleMenuMobile()\">\n <span class=\"po-icon po-icon-menu\"></span>\n </div>\n\n <div class=\"po-menu\" [ngClass]=\"{ 'po-menu-animation': mobileOpened }\">\n <div class=\"po-menu-header\">\n <div *ngIf=\"logo || (shortLogo && enableCollapse)\" class=\"po-menu-header-container-logo\">\n <a href=\"./\">\n <img\n [ngClass]=\"enableCollapse ? 'po-menu-short-logo' : 'po-menu-logo'\"\n [src]=\"enableCollapse ? shortLogo || logo : logo\"\n [alt]=\"logoAlt\"\n />\n </a>\n </div>\n\n <div *ngIf=\"!enableCollapse && menuHeaderTemplate\" class=\"po-menu-header-template\">\n <ng-container *ngTemplateOutlet=\"menuHeaderTemplate.templateRef\"></ng-container>\n </div>\n\n <po-menu-filter *ngIf=\"filter && !enableCollapse\" [p-loading]=\"filterLoading\" (p-filter)=\"debounceFilter($event)\">\n </po-menu-filter>\n </div>\n\n <div class=\"po-menu-body\">\n <!-- Inner e outer para esconder scroll -->\n <div class=\"po-menu-outer\">\n <div class=\"po-menu-inner\">\n <div *ngIf=\"noData\" class=\"po-menu-item-wrapper\">\n <div class=\"po-menu-item-first\">\n <div class=\"po-menu-icon-container po-menu-item-no-data\">\n <po-icon class=\"po-icon po-icon-info po-menu-icon-item po-lg-2\"></po-icon>\n <div class=\"po-lg-10 po-menu-icon-label\">{{ literals.itemNotFound }}</div>\n </div>\n </div>\n </div>\n\n <div *ngFor=\"let menu of filteredItems; let menuIndex = index\" class=\"po-menu-item-wrapper\">\n <po-menu-item\n [class.po-menu-item-first]=\"menuIndex === 0\"\n [p-action]=\"menu.action\"\n [p-badge-alert]=\"menu.badgeAlert\"\n [p-badge-color]=\"menu.badge ? menu.badge.color : undefined\"\n [p-badge-value]=\"menu.badge ? menu.badge.value : undefined\"\n [p-collapsed-menu]=\"enableCollapse\"\n [p-icon]=\"allowIcons ? menu.icon : null\"\n [p-id]=\"menu.id\"\n [p-label]=\"menu.label\"\n [p-level]=\"menu.level\"\n [p-link]=\"menu.link\"\n [p-short-label]=\"menu.shortLabel\"\n [p-sub-items]=\"menu.subItems\"\n [p-type]=\"menu.type\"\n >\n </po-menu-item>\n </div>\n </div>\n </div>\n </div>\n\n <div *ngIf=\"hasFooter\" class=\"po-menu-footer\">\n <a class=\"po-menu-collapse-button-icon po-clickable\" (click)=\"toggle()\">\n <span\n class=\"po-icon\"\n [class.po-icon-menu-close]=\"enableCollapseButton\"\n [class.po-icon-menu-open]=\"enableCollapse\"\n >\n </span>\n </a>\n </div>\n </div>\n</nav>\n" }]
593
593
  }], function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i1.Router }, { type: i2.PoMenuItemsService }, { type: i3.PoMenuGlobalService }, { type: i4.PoMenuService }, { type: i5.PoLanguageService }]; }, { menuHeaderTemplate: [{
594
594
  type: ContentChild,
595
595
  args: [PoMenuHeaderTemplateDirective, { static: true }]
596
596
  }] }); })();
597
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tbWVudS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL2NvbXBvbmVudHMvcG8tbWVudS9wby1tZW51LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvY29tcG9uZW50cy9wby1tZW51L3BvLW1lbnUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUdMLFNBQVMsRUFDVCxZQUFZLEVBTWIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGFBQWEsRUFBVSxNQUFNLGlCQUFpQixDQUFDO0FBRTFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUdyQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsUUFBUSxFQUFFLGdCQUFnQixFQUFFLElBQUksRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRXRGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQy9ELE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLDZEQUE2RCxDQUFDO0FBRzVHLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBRXRFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7Ozs7Ozs7Ozs7OztJQ3pCM0QsK0JBQStFO0lBQTdCLHlKQUFTLHlCQUFrQixJQUFDO0lBQUMsaUJBQU07OztJQVEvRSwrQkFBeUYsWUFBQTtJQUVyRiwwQkFHRTtJQUNKLGlCQUFJLEVBQUE7OztJQUhBLGVBQWtFO0lBQWxFLHVGQUFrRSxnR0FBQTs7O0lBT3RFLHdCQUFnRjs7O0lBRGxGLCtCQUFtRjtJQUNqRix5RkFBZ0Y7SUFDbEYsaUJBQU07OztJQURXLGVBQWdEO0lBQWhELHdFQUFnRDs7OztJQUdqRSwwQ0FBa0g7SUFBcEMsNkxBQVksOEJBQXNCLElBQUM7SUFDakgsaUJBQWlCOzs7SUFEaUMsZ0RBQTJCOzs7SUFRekUsK0JBQWlELGNBQUEsY0FBQTtJQUczQyw4QkFBMEU7SUFDMUUsK0JBQXlDO0lBQUEsWUFBMkI7SUFBQSxpQkFBTSxFQUFBLEVBQUEsRUFBQTs7O0lBQWpDLGVBQTJCO0lBQTNCLGtEQUEyQjs7O0lBSzFFLCtCQUE0RjtJQUMxRixtQ0FnQmU7SUFDakIsaUJBQU07Ozs7O0lBaEJGLGVBQTRDO0lBQTVDLHlEQUE0QztJQUM1QywwQ0FBd0Isc0NBQUEsb0VBQUEsb0VBQUEsMkNBQUEsb0RBQUEscUJBQUEsMkJBQUEsMkJBQUEseUJBQUEsc0NBQUEsa0NBQUEseUJBQUE7Ozs7SUFvQmxDLCtCQUE4QyxZQUFBO0lBQ1MsMEpBQVMsZ0JBQVEsSUFBQztJQUNyRSwyQkFLTztJQUNULGlCQUFJLEVBQUE7OztJQUpBLGVBQWlEO0lBQWpELGlFQUFpRCw0Q0FBQTs7O0FEckMzRCxNQUFNLGtCQUFrQixHQUFHLEdBQUcsQ0FBQztBQUMvQixNQUFNLGVBQWUsR0FBRyxDQUFDLENBQUM7QUFDMUIsTUFBTSxlQUFlLEdBQUcsQ0FBQyxDQUFDO0FBRTFCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FpRkc7QUFNSCxNQUFNLE9BQU8sZUFBZ0IsU0FBUSxtQkFBbUI7SUFxQnRELFlBQ1MsY0FBaUMsRUFDaEMsT0FBbUIsRUFDbkIsUUFBbUIsRUFDbkIsTUFBYyxFQUNkLGdCQUFvQyxFQUM1QyxpQkFBc0MsRUFDdEMsV0FBMEIsRUFDMUIsZUFBa0M7UUFFbEMsS0FBSyxDQUFDLGlCQUFpQixFQUFFLFdBQVcsRUFBRSxlQUFlLENBQUMsQ0FBQztRQVRoRCxtQkFBYyxHQUFkLGNBQWMsQ0FBbUI7UUFDaEMsWUFBTyxHQUFQLE9BQU8sQ0FBWTtRQUNuQixhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQ25CLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQW9CO1FBckI5QyxrQkFBYSxHQUFHLEtBQUssQ0FBQztRQUV0QixPQUFFLEdBQUcsSUFBSSxFQUFFLENBQUM7UUFFWixpQkFBWSxHQUFZLEtBQUssQ0FBQztRQUM5QixXQUFNLEdBQVksS0FBSyxDQUFDO1FBR2hCLG1CQUFjLEdBQVksS0FBSyxDQUFDO1FBQ2hDLG9CQUFlLEdBQVksS0FBSyxDQUFDO1FBQ2pDLGlCQUFZLEdBQUcsSUFBSSxDQUFDO0lBaUI1QixDQUFDO0lBRUQsSUFBWSx1QkFBdUI7UUFDakMsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDdEUsQ0FBQztJQUVELElBQUksY0FBYztRQUNoQixPQUFPLElBQUksQ0FBQyxXQUFXLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDO0lBQ25ELENBQUM7SUFFRCxJQUFJLG9CQUFvQjtRQUN0QixPQUFPLElBQUksQ0FBQyxpQkFBaUIsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQ3pFLENBQUM7SUFFRCxJQUFJLFNBQVM7UUFDWCxPQUFPLElBQUksQ0FBQyxvQkFBb0IsSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDO0lBQzFELENBQUM7SUFFRCxJQUFJLFdBQVc7UUFDYixPQUFPLElBQUksQ0FBQyxpQkFBaUIsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ2xELENBQUM7SUFFRCxTQUFTO1FBQ1AsSUFBSSxJQUFJLENBQUMsY0FBYyxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDdEMsT0FBTztTQUNSO1FBRUQsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFL0MsSUFBSSxJQUFJLENBQUMsWUFBWSxLQUFLLFdBQVcsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUU7WUFDOUQsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ2xCLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1NBQzlCO0lBQ0gsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDcEMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFdBQVcsRUFBRSxDQUFDO1FBRXJDLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRTtZQUN2QixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7U0FDdkI7UUFFRCxJQUFJLENBQUMsaUJBQWlCLENBQUMsMEJBQTBCLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7UUFDM0IsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLENBQUMsaUJBQWlCLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVELGlCQUFpQixDQUFDLE9BQWUsRUFBRSxLQUF3QjtRQUN6RCxJQUFJLEtBQUssRUFBRTtZQUNULE1BQU0sMEJBQTBCLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsT0FBTyxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQy9FLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRTtnQkFDdkIsTUFBTSxpQkFBaUIsR0FBRyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ3RELE1BQU0sWUFBWSxHQUFHLEdBQUcsMEJBQTBCLEdBQUcsaUJBQWlCLENBQUMsTUFBTSxDQUMzRSxpQkFBaUIsQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQ25DLEVBQUUsQ0FBQztnQkFFSixJQUFJLFlBQVksS0FBSyxPQUFPLElBQUksWUFBWSxLQUFLLGlCQUFpQixFQUFFO29CQUNsRSxJQUFJLENBQUMsVUFBVSxHQUFHLGlCQUFpQixDQUFDO29CQUNwQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUM7b0JBQzVCLE9BQU8sSUFBSSxDQUFDO2lCQUNiO3FCQUFNO29CQUNMLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7aUJBQ3ZEO1lBQ0gsQ0FBQyxDQUFDLENBQUM7U0FDSjtJQUNILENBQUM7SUFFRCxvQkFBb0IsQ0FBQyxPQUFlO1FBQ2xDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxVQUFVLEtBQUssT0FBTyxFQUFFO1lBQ25ELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQzdDO0lBQ0gsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxRQUFRO1FBQ04sSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxjQUFjLENBQUMsTUFBYztRQUMzQixZQUFZLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBRWpDLElBQUksQ0FBQyxhQUFhLEdBQUcsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNuQyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzdCLENBQUMsRUFBRSxrQkFBa0IsQ0FBQyxDQUFDO0lBQ3pCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsTUFBTTtRQUNKLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQsbUJBQW1CO1FBQ2pCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsMkJBQTJCLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFnQixFQUFFLEVBQUU7WUFDekcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMzQixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxnQkFBZ0I7UUFDZCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQzFELElBQUksR0FBRyxZQUFZLGFBQWEsSUFBSSxHQUFHLFlBQVksZ0JBQWdCLEVBQUU7Z0JBQ25FLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQywrQkFBK0IsRUFBRSxDQUFDO2dCQUN6RCxJQUFJLENBQUMsb0JBQW9CLENBQUMsU0FBUyxDQUFDLENBQUM7YUFDdEM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxNQUFNO1FBQ0osSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFRCxnQkFBZ0I7UUFDZCxJQUFJLENBQUMsWUFBWSxHQUFHLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQztRQUN2QyxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQztRQUUzRCxJQUFJLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBRWpELElBQUksUUFBUSxFQUFFLEVBQUU7WUFDZCxPQUFPO1NBQ1I7UUFFRCxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDckIsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7U0FDN0I7SUFDSCxDQUFDO0lBRVMsK0JBQStCO1FBQ3ZDLE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUV2RixPQUFPLGVBQWUsQ0FBQyxDQUFDLENBQUMsSUFBSSxlQUFlLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQzVGLENBQUM7SUFFUyxxQkFBcUIsQ0FBQyxrQkFBMkIsS0FBSztRQUM5RCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUM7UUFDdEQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLE9BQU8sRUFBRSxtQkFBbUIsQ0FBQyxDQUFDO0lBQ2pILENBQUM7SUFFTywyQkFBMkI7UUFDakMsSUFBSSxDQUFDLDBCQUEwQixDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUVyRCxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxHQUFHLGVBQWUsSUFBSSxJQUFJLENBQUMsdUJBQXVCLEVBQUU7WUFDckcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7U0FDMUM7SUFDSCxDQUFDO0lBRU8sZ0JBQWdCLENBQUMsSUFBZ0I7UUFDdkMsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUM7UUFDM0IsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQzVCLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsR0FBRyxlQUFlLEVBQUU7WUFDbEQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7U0FDMUM7YUFBTTtZQUNMLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDO1NBQzdCO1FBQ0QsSUFBSSxDQUFDLGdCQUFnQixDQUFDLHNCQUFzQixDQUFDO1lBQzNDLE1BQU0sRUFBRSxJQUFJLENBQUMsY0FBYztZQUMzQixPQUFPLEVBQUUsSUFBSSxDQUFDLGVBQWU7WUFDN0IsZ0JBQWdCLEVBQUUsSUFBSTtTQUN2QixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sV0FBVyxDQUFDLEtBQXdCO1FBQzFDLE9BQU8sS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxlQUFlLENBQUMsQ0FBQztJQUM5RCxDQUFDO0lBRU8sMEJBQTBCLENBQUMsY0FBMEI7UUFDM0QsSUFBSSxjQUFjLENBQUMsT0FBTyxDQUFDLEtBQUssZUFBZSxFQUFFO1lBQy9DLElBQUksQ0FBQyxlQUFlLEdBQUcsU0FBUyxDQUFDO1NBQ2xDO0lBQ0gsQ0FBQztJQUVPLGFBQWEsQ0FBQyxJQUFnQjtRQUNwQyxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDZixJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDOUI7UUFFRCxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxjQUFjLEVBQUU7WUFDbkMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQzdCO2FBQU0sSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssY0FBYyxFQUFFO1lBQzFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUM3QjthQUFNLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLFVBQVUsRUFBRTtZQUN0QyxJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUU7Z0JBQ3ZCLElBQUksQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFDO2FBQzdCO1lBRUQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUMxQjtRQUVELElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLFVBQVUsRUFBRTtZQUMvQixJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztTQUMzQjtJQUNILENBQUM7SUFFTyx5QkFBeUIsQ0FBQyxXQUFnQixFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRTtRQUN2RSxNQUFNLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxHQUFHLFFBQVEsQ0FBQztRQUVqQyxNQUFNLGdCQUFnQixHQUF1QixFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQztRQUU3RCxJQUFJLENBQUMscUJBQXFCLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUU3QyxPQUFPLGdCQUFnQixDQUFDO0lBQzFCLENBQUM7SUFFTyxvQkFBb0I7UUFDMUIsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRTtZQUNsRSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDcEIsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3hCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLGlCQUFpQixDQUFDLElBQWdCO1FBQ3hDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDcEIsQ0FBQztJQUVPLEtBQUssQ0FBQyxXQUFXLENBQUMsTUFBYztRQUN0QyxNQUFNLFVBQVUsR0FBRyxNQUFNLElBQUksTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO1FBRTNDLElBQUksVUFBVSxFQUFFO1lBQ2QsSUFBSSxDQUFDLGFBQWEsR0FBRyxFQUFFLENBQUM7WUFDeEIsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsYUFBYTtnQkFDckMsQ0FBQyxDQUFDLE1BQU0sSUFBSSxDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUM7Z0JBQ3hDLENBQUMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDdEMsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUM7U0FDNUI7YUFBTTtZQUNMLElBQUksQ0FBQyxhQUFhLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNyQyxJQUFJLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQztTQUM3QjtJQUNILENBQUM7SUFFTyxnQkFBZ0IsQ0FBQyxNQUFjO1FBQ3JDLE1BQU0sYUFBYSxHQUFHLEVBQUUsQ0FBQztRQUV6QixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLFdBQVcsRUFBRSxFQUFFLGFBQWEsQ0FBQyxDQUFDO1FBRWhFLE9BQU8sYUFBYSxDQUFDO0lBQ3ZCLENBQUM7SUFFTyxhQUFhLENBQUMsTUFBYztRQUNsQyxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztRQUUxQixJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQzthQUNyQixJQUFJLENBQUMsR0FBRyxFQUFFO1lBQ1QsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUM7WUFFM0IsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ2xCLElBQUksQ0FBQyxjQUFjLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDcEMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLHNCQUFzQixDQUFDLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxjQUFjLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQyxDQUFDO1FBQy9HLENBQUMsQ0FBQzthQUNELEtBQUssQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUNiLElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDO1lBQzNCLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDeEIsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU8sS0FBSyxDQUFDLGVBQWUsQ0FBQyxTQUFpQixFQUFFO1FBQy9DLElBQUksTUFBTSxDQUFDLE1BQU0sSUFBSSxlQUFlLEVBQUU7WUFDcEMsT0FBTyxNQUFNLElBQUksQ0FBQyxhQUFhO2lCQUM1QixlQUFlLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUM7aUJBQ3BDLElBQUksQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsRUFBRSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7aUJBQzNHLFNBQVMsRUFBRSxDQUFDO1NBQ2hCO2FBQU07WUFDTCxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUM7U0FDM0I7SUFDSCxDQUFDO0lBRU8sU0FBUyxDQUFDLEtBQXdCLEVBQUUsTUFBYyxFQUFFLGFBQXlCO1FBQ25GLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDbkIsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDO1lBQzNDLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBRWpFLElBQUksY0FBYyxJQUFJLFNBQVMsRUFBRTtnQkFDL0IsTUFBTSxPQUFPLEdBQUcsRUFBRSxHQUFHLElBQUksRUFBRSxDQUFDO2dCQUU1QixJQUFJLE9BQU8sQ0FBQyxRQUFRLEVBQUUsTUFBTSxFQUFFO29CQUM1QixPQUFPLE9BQU8sQ0FBQyxRQUFRLENBQUM7b0JBQ3hCLE9BQU8sQ0FBQyxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO2lCQUM3QztnQkFFRCxhQUFhLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2FBQzdCO1lBRUQsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO2dCQUNqQixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsTUFBTSxFQUFFLGFBQWEsQ0FBQyxDQUFDO2FBQ3REO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sVUFBVSxDQUFDLEtBQXdCLEVBQUUsUUFBb0I7UUFDL0QsTUFBTSxTQUFTLEdBQUcsVUFBVSxTQUE0QixFQUFFLEVBQUU7WUFDMUQsSUFBSSxTQUFTLEVBQUU7Z0JBQ2IsS0FBSyxJQUFJLEtBQUssR0FBRyxDQUFDLEVBQUUsS0FBSyxHQUFHLFNBQVMsQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLEVBQUU7b0JBQ3JELE1BQU0sSUFBSSxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztvQkFDOUIsSUFBSSxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxFQUFFO3dCQUN4RSxPQUFPLElBQUksQ0FBQztxQkFDYjtvQkFDRCxNQUFNLEtBQUssR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQztvQkFDM0MsSUFBSSxLQUFLLEVBQUU7d0JBQ1QsT0FBTyxLQUFLLENBQUM7cUJBQ2Q7aUJBQ0Y7YUFDRjtRQUNILENBQUMsQ0FBQztRQUNGLE9BQU8sU0FBUyxDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRU8sY0FBYyxDQUFDLEtBQXdCLEVBQUUsSUFBZ0I7UUFDL0QsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQztRQUVuQyxNQUFNLGFBQWEsR0FBRyxVQUFVLFNBQTRCLEVBQUUsUUFBUTtZQUNwRSxJQUFJLE1BQU0sR0FBRyxVQUFVLENBQUMsU0FBUyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1lBRTdDLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLGVBQWUsRUFBRTtnQkFDdkMsTUFBTSxHQUFHLGFBQWEsQ0FBQyxTQUFTLEVBQUUsTUFBTSxDQUFDLENBQUM7YUFDM0M7WUFDRCxPQUFPLE1BQU0sQ0FBQztRQUNoQixDQUFDLENBQUM7UUFDRixPQUFPLGFBQWEsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVPLG1CQUFtQixDQUFDLEtBQXdCLEVBQUUsY0FBMEIsRUFBRSxlQUEyQjtRQUMzRyxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxlQUFlLEVBQUUsY0FBYyxDQUFDLENBQUMsRUFBRTtZQUN2RCxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxFQUFFLGNBQWMsQ0FBQyxDQUFDO1NBQ25EO0lBQ0gsQ0FBQztJQUVPLGFBQWEsQ0FBQyxJQUFnQjtRQUNwQyxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDbEIsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7U0FDM0I7UUFFRCxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDckMsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUM7UUFFNUIsSUFDRSxJQUFJLENBQUMsY0FBYztZQUNuQixJQUFJLENBQUMsVUFBVSxDQUFDO1lBQ2hCLElBQUksQ0FBQyx1QkFBdUI7WUFDNUIsSUFBSSxDQUFDLDBCQUEwQixDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsRUFDdEU7WUFDQSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1NBQzVDO1FBRUQsSUFBSSxDQUFDLGdCQUFnQixDQUFDLHNCQUFzQixDQUFDLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxjQUFjLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQyxDQUFDO0lBQy9HLENBQUM7SUFFTywwQkFBMEIsQ0FDaEMsS0FBd0IsRUFDeEIsY0FBMEIsRUFDMUIsZUFBMkI7UUFFM0IsTUFBTSxvQkFBb0IsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssRUFBRSxjQUFjLENBQUMsQ0FBQztRQUN4RSxPQUFPLG9CQUFvQixDQUFDLElBQUksQ0FBQyxLQUFLLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM5RCxDQUFDO0lBRU8sY0FBYyxDQUFDLFNBQXFCO1FBQzFDLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsQ0FBQztRQUN0RCxNQUFNLENBQUMsVUFBVSxDQUFDLEdBQUcsSUFBSSxDQUFDO1FBQzFCLElBQUksQ0FBQyxlQUFlLEdBQUcsTUFBTSxDQUFDO0lBQ2hDLENBQUM7SUFFTyxVQUFVO1FBQ2hCLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFTyxTQUFTLENBQUMsS0FBd0I7UUFDeEMsZ0dBQWdHO1FBQ2hHLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFO1lBQy9DLElBQUksR0FBRyxLQUFLLE1BQU0sRUFBRTtnQkFDbEIsT0FBTyxLQUFLLENBQUM7YUFDZDtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLHFCQUFxQjtRQUMzQixJQUFJLENBQUMsZUFBZSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsaUJBQWlCLENBQUM7SUFDL0UsQ0FBQztJQUVPLGtCQUFrQixDQUFDLFlBQXFCLEtBQUs7UUFDbkQsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7UUFFM0IsSUFBSSxJQUFJLENBQUMsZUFBZSxJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUU7WUFDL0MsSUFBSSxDQUFDLGVBQWU7Z0JBQ2xCLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLElBQUksQ0FBQyxlQUFlLENBQUM7WUFDMUcsSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7U0FDOUI7UUFFRCxJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUU7WUFDdkIsSUFBSSxDQUFDLDJCQUEyQixFQUFFLENBQUM7WUFDbkMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLHNCQUFzQixDQUFDO2dCQUMzQyxNQUFNLEVBQUUsSUFBSSxDQUFDLGNBQWM7Z0JBQzNCLE9BQU8sRUFBRSxJQUFJLENBQUMsZUFBZTtnQkFDN0IsZ0JBQWdCLEVBQUUsSUFBSTthQUN2QixDQUFDLENBQUM7U0FDSjtRQUVELElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUNwQixDQUFDO0lBRU8sWUFBWTtRQUNsQixJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDckIsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7WUFDMUIsSUFBSSxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUM7WUFDN0IsSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztTQUNsRDtJQUNILENBQUM7SUFFTyxrQkFBa0IsQ0FBQyxTQUFrQjtRQUMzQyxJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFO1lBQzNCLE9BQU87U0FDUjtRQUVELElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRU8sVUFBVTtRQUNoQixJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQztRQUM1QixJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztRQUM5QixJQUFJLENBQUMsYUFBYSxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDckMsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMvQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNqQyxDQUFDOzs4RUF6ZFUsZUFBZTtrRUFBZixlQUFlO29DQUNaLDZCQUE2Qjs7OzswQ0FIaEMsQ0FBQyxrQkFBa0IsRUFBRSxhQUFhLENBQUM7UUNySGhELGdFQUFxRjtRQUNyRiwyQkFBSyxhQUFBO1FBQ3NDLHlGQUFTLHNCQUFrQixJQUFDO1FBQ25FLDBCQUEwQztRQUM1QyxpQkFBTTtRQUVOLDhCQUF1RSxhQUFBO1FBRW5FLGdFQU9NO1FBRU4sZ0VBRU07UUFFTixzRkFDaUI7UUFDbkIsaUJBQU07UUFFTiw4QkFBMEIsY0FBQSxlQUFBO1FBSXBCLG1FQU9NO1FBRU4sb0VBa0JNO1FBQ1IsaUJBQU0sRUFBQSxFQUFBO1FBSVYsbUVBU007UUFDUixpQkFBTSxFQUFBOztRQXZFRix1Q0FBa0I7UUFNRCxlQUFpRDtRQUFqRCxzRUFBaUQ7UUFFNUQsZUFBMkM7UUFBM0Msc0VBQTJDO1FBUzNDLGVBQTJDO1FBQTNDLG9FQUEyQztRQUloQyxlQUErQjtRQUEvQix3REFBK0I7UUFRdEMsZUFBWTtRQUFaLGlDQUFZO1FBU0ksZUFBa0I7UUFBbEIsMkNBQWtCO1FBdUJ4QyxlQUFlO1FBQWYsb0NBQWU7O3VGRDBEWixlQUFlO2NBTDNCLFNBQVM7MkJBQ0UsU0FBUyxhQUVSLENBQUMsa0JBQWtCLEVBQUUsYUFBYSxDQUFDO3lRQUdpQixrQkFBa0I7a0JBQWhGLFlBQVk7bUJBQUMsNkJBQTZCLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkLFxuICBEb0NoZWNrLFxuICBFbGVtZW50UmVmLFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgUmVuZGVyZXIyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBOYXZpZ2F0aW9uQ2FuY2VsLCBOYXZpZ2F0aW9uRW5kLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgZ2V0Rm9ybWF0dGVkTGluaywgaXNNb2JpbGUsIG9wZW5FeHRlcm5hbExpbmssIHV1aWQgfSBmcm9tICcuLi8uLi91dGlscy91dGlsJztcblxuaW1wb3J0IHsgUG9NZW51QmFzZUNvbXBvbmVudCB9IGZyb20gJy4vcG8tbWVudS1iYXNlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQb01lbnVIZWFkZXJUZW1wbGF0ZURpcmVjdGl2ZSB9IGZyb20gJy4vcG8tbWVudS1oZWFkZXItdGVtcGxhdGUvcG8tbWVudS1oZWFkZXItdGVtcGxhdGUuZGlyZWN0aXZlJztcbmltcG9ydCB7IFBvTWVudUl0ZW0gfSBmcm9tICcuL3BvLW1lbnUtaXRlbS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUG9NZW51SXRlbUZpbHRlcmVkIH0gZnJvbSAnLi9wby1tZW51LWl0ZW0vcG8tbWVudS1pdGVtLWZpbHRlcmVkLmludGVyZmFjZSc7XG5pbXBvcnQgeyBQb01lbnVJdGVtc1NlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL3BvLW1lbnUtaXRlbXMuc2VydmljZSc7XG5pbXBvcnQgeyBQb01lbnVHbG9iYWxTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9wby1tZW51LWdsb2JhbC5zZXJ2aWNlJztcbmltcG9ydCB7IFBvTWVudVNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL3BvLW1lbnUuc2VydmljZSc7XG5pbXBvcnQgeyBQb0xhbmd1YWdlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3BvLWxhbmd1YWdlL3BvLWxhbmd1YWdlLnNlcnZpY2UnO1xuXG5jb25zdCBwb01lbnVEZWJvdW5jZVRpbWUgPSA0MDA7XG5jb25zdCBwb01lbnVNaW5MZW5ndGggPSAzO1xuY29uc3QgcG9NZW51Um9vdExldmVsID0gMTtcblxuLyoqXG4gKiBAZG9jc0V4dGVuZHMgUG9NZW51QmFzZUNvbXBvbmVudFxuICpcbiAqIEBkZXNjcmlwdGlvblxuICpcbiAqIEFwYXJlY2UgY29tcGxldG8gZW0gdGVsYXMgY29tIGxhcmd1cmEgbWFpb3IgcXVlIDEyMDBweCwgY2FzbyBjb250csOhcmlvIG8gbWVudSDDqSBlc2NvbmRpZG8gZSBjaGFtYWRvIHBvciBtZWlvIGRlIHVtIGJvdMOjby5cbiAqXG4gKiBPIG1lbnUgdGFtYsOpbSBwb2RlIHNlciBjb2xhcHNhZG8uIEVzc2Egb3DDp8OjbyDDqSBoYWJpbGl0YWRhIHF1YW5kbyB0b2RvcyBvcyBpdGVucyBkZSBwcmltZWlybyBuw612ZWwgcG9zc3XDrXJlbSDDrWNvbmVzIGUgdGV4dG9zIGN1cnRvcy5cbiAqIFNlIGNvbGFwc2Fkbywgc29tZW50ZSBvcyBpdGVucyBkZSBwcmltZWlybyBuw612ZWwgc2Vyw6NvIGV4aWJpZG9zIGUsIGNhc28gbyBpdGVtIHNlbGVjaW9uYWRvIHBvc3N1YSBzdWItbsOtdmVpcyxcbiAqIGVudMOjbyBvIG1lbnUgYWx0ZXJuYXLDoSBub3ZhbWVudGUgcGFyYSBvIGVzdGFkbyBhYmVydG8uXG4gKlxuICogRXhpc3RlIGEgcG9zc2liaWxpZGFkZSBkZSBjdXN0b21pemFyIGEgbG9nb21hcmNhLCBxdWUgw6kgZXhpYmlkYSBuYSBwYXJ0ZSBzdXBlcmlvciBkbyBjb21wb25lbnRlLlxuICpcbiAqIEUgcGFyYSBhZGljaW9uYXIgdW0gY29udGXDumRvIHBlcnNvbmFsaXphZG8gZW50cmUgYSBsb2dvbWFyY2EgZSBvIGNhbXBvIGRlIGZpbHRybyxcbiAqIGJhc3RhIGFkaWNpb25hciBlc3RlIGNvbnRlw7pkbyBjb20gYSBkaXJldGl2YSBbKipwLW1lbnUtaGVhZGVyLXRlbXBsYXRlKipdKC9kb2N1bWVudGF0aW9uL3BvLW1lbnUtaGVhZGVyLXRlbXBsYXRlKS5cbiAqXG4gKiBDYXNvIHV0aWxpemFyIG8gZmlsdHJvIGRlIG1lbnVzLCDDqSBwb3Nzw612ZWwgcmVhbGl6YXIgYnVzY2FzIGVtIHNlcnZpw6dvLCBhcGVuYXMgaW5mb3JtYW5kbyBhIFVSTCBkbyBzZXJ2acOnbyBvdSBhIGluc3TDom5jaWEgZGVcbiAqIHVtIHNlcnZpw6dvIGN1c3RvbWl6YWRvIGltcGxlbWVudGFuZG8gYSBpbnRlcmZhY2UgYFBvTWVudUZpbHRlcmAuXG4gKlxuICogUGFyYSBvIG1lbnUgZnVuY2lvbmFyIGNvcnJldGFtZW50ZSDDqSBuZWNlc3PDoXJpbyBpbXBvcnRhciBvIGBSb3V0ZXJNb2R1bGVgIGUgYFJvdXRlc2AgZG8gbcOzZHVsbyBwcmluY2lwYWwgZGVcbiAqICBzdWEgYXBsaWNhw6fDo286XG4gKlxuICogYGBgYFxuICogaW1wb3J0IHsgUm91dGVyTW9kdWxlLCBSb3V0ZXMgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuICpcbiAqIC4uLlxuICpcbiAqIEBOZ01vZHVsZSh7XG4gKiAgIGltcG9ydHM6IFtcbiAqICAgICBSb3V0ZXJNb2R1bGUsXG4gKiAgICAgUm91dGVzLFxuICogICAgIC4uLlxuICogICAgIFBvTW9kdWxlLFxuICogICAgIC4uLlxuICogICBdLFxuICogICBkZWNsYXJhdGlvbnM6IFtcbiAqICAgICBBcHBDb21wb25lbnRcbiAqICAgXSxcbiAqICAgcHJvdmlkZXJzOiBbXSxcbiAqICAgYm9vdHN0cmFwOiBbQXBwQ29tcG9uZW50XVxuICogfSlcbiAqIGV4cG9ydCBjbGFzcyBBcHBNb2R1bGUgeyB9XG4gKiBgYGBcbiAqXG4gKiBBbMOpbSBkaXNzbyDDqSBuZWNlc3PDoXJpbyBjcmlhciB1bSBtw7NkdWxvIGNvbmZpZ3VyYW5kbyBhcyByb3RhcyBkYSBhcGxpY2HDp8Ojby5cbiAqXG4gKiBgYGBcbiAqIGltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG4gKlxuICogaW1wb3J0IHsgUm91dGVyTW9kdWxlLCBSb3V0ZXMgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuICpcbiAqIGltcG9ydCB7IEhlbGxvV29ybGRDb21wb25lbnQgfSBmcm9tICcuL2hlbGxvLXdvcmxkL2hlbGxvLXdvcmxkLmNvbXBvbmVudCc7XG4gKlxuICogY29uc3Qgcm91dGVzOiBSb3V0ZXMgPSBbXG4gKiAgIHtwYXRoOiAnaGVsbG8td29ybGQnLCBjb21wb25lbnQ6IEhlbGxvV29ybGRDb21wb25lbnR9XG4gKiBdO1xuICpcbiAqIEBOZ01vZHVsZSh7XG4gKiAgIGltcG9ydHM6IFtSb3V0ZXJNb2R1bGUuZm9yUm9vdChyb3V0ZXMsIHt1c2VIYXNoOiB0cnVlfSldLFxuICogICBleHBvcnRzOiBbUm91dGVyTW9kdWxlXVxuICogfSlcbiAqIGV4cG9ydCBjbGFzcyBBcHBSb3V0aW5nTW9kdWxlIHt9XG4gKiBgYGBcbiAqXG4gKiBAZXhhbXBsZVxuICpcbiAqIDxleGFtcGxlIG5hbWU9XCJwby1tZW51LWJhc2ljXCIgdGl0bGU9XCJQTyBNZW51IEJhc2ljXCI+XG4gKiAgIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tbWVudS1iYXNpYy9zYW1wbGUtcG8tbWVudS1iYXNpYy5jb21wb25lbnQuaHRtbFwiPiA8L2ZpbGU+XG4gKiAgIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tbWVudS1iYXNpYy9zYW1wbGUtcG8tbWVudS1iYXNpYy5jb21wb25lbnQudHNcIj4gPC9maWxlPlxuICogPC9leGFtcGxlPlxuICpcbiAqIDxleGFtcGxlIG5hbWU9XCJwby1tZW51LWxhYnNcIiB0aXRsZT1cIlBPIE1lbnUgTGFic1wiPlxuICogICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLW1lbnUtbGFicy9zYW1wbGUtcG8tbWVudS1sYWJzLmNvbXBvbmVudC5odG1sXCI+IDwvZmlsZT5cbiAqICAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby1tZW51LWxhYnMvc2FtcGxlLXBvLW1lbnUtbGFicy5jb21wb25lbnQudHNcIj4gPC9maWxlPlxuICogPC9leGFtcGxlPlxuICpcbiAqIDxleGFtcGxlIG5hbWU9XCJwby1tZW51LWh1bWFuLXJlc291cmNlc1wiIHRpdGxlPVwiUE8gTWVudSAtIEh1bWFuIFJlc291cmNlc1wiPlxuICogICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLW1lbnUtaHVtYW4tcmVzb3VyY2VzL3NhbXBsZS1wby1tZW51LWh1bWFuLXJlc291cmNlcy5jb21wb25lbnQuaHRtbFwiPiA8L2ZpbGU+XG4gKiAgIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tbWVudS1odW1hbi1yZXNvdXJjZXMvc2FtcGxlLXBvLW1lbnUtaHVtYW4tcmVzb3VyY2VzLmNvbXBvbmVudC50c1wiPiA8L2ZpbGU+XG4gKiAgIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tbWVudS1odW1hbi1yZXNvdXJjZXMvc2FtcGxlLXBvLW1lbnUtaHVtYW4tcmVzb3VyY2VzLnNlcnZpY2UudHNcIj4gPC9maWxlPlxuICogPC9leGFtcGxlPlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwby1tZW51JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3BvLW1lbnUuY29tcG9uZW50Lmh0bWwnLFxuICBwcm92aWRlcnM6IFtQb01lbnVJdGVtc1NlcnZpY2UsIFBvTWVudVNlcnZpY2VdXG59KVxuZXhwb3J0IGNsYXNzIFBvTWVudUNvbXBvbmVudCBleHRlbmRzIFBvTWVudUJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgRG9DaGVjayB7XG4gIEBDb250ZW50Q2hpbGQoUG9NZW51SGVhZGVyVGVtcGxhdGVEaXJlY3RpdmUsIHsgc3RhdGljOiB0cnVlIH0pIG1lbnVIZWFkZXJUZW1wbGF0ZTogUG9NZW51SGVhZGVyVGVtcGxhdGVEaXJlY3RpdmU7XG5cbiAgYWN0aXZlTWVudUl0ZW06IFBvTWVudUl0ZW07XG4gIGNvbGxhcHNlZE1vYmlsZTogYm9vbGVhbjtcbiAgZmlsdGVyTG9hZGluZyA9IGZhbHNlO1xuICBncm91cGVkTWVudUl0ZW06IFBvTWVudUl0ZW07XG4gIGlkID0gdXVpZCgpO1xuICBsaW5rQWN0aXZlOiBzdHJpbmc7XG4gIG1vYmlsZU9wZW5lZDogYm9vbGVhbiA9IGZhbHNlO1xuICBub0RhdGE6IGJvb2xlYW4gPSBmYWxzZTtcbiAgdGltZW91dEZpbHRlcjogYW55O1xuXG4gIHByaXZhdGUgZmlsdGVyaW5nSXRlbXM6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHJpdmF0ZSBtZW51SW5pdGlhbGl6ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHJpdmF0ZSBtZW51UHJldmlvdXMgPSBudWxsO1xuICBwcml2YXRlIHJlc2l6ZUxpc3RlbmVyOiAoKSA9PiB2b2lkO1xuXG4gIHByaXZhdGUgaXRlbVN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuICBwcml2YXRlIHJvdXRlU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGNoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIGVsZW1lbnQ6IEVsZW1lbnRSZWYsXG4gICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJpdmF0ZSBtZW51SXRlbXNTZXJ2aWNlOiBQb01lbnVJdGVtc1NlcnZpY2UsXG4gICAgbWVudUdsb2JhbFNlcnZpY2U6IFBvTWVudUdsb2JhbFNlcnZpY2UsXG4gICAgbWVudVNlcnZpY2U6IFBvTWVudVNlcnZpY2UsXG4gICAgbGFuZ3VhZ2VTZXJ2aWNlOiBQb0xhbmd1YWdlU2VydmljZVxuICApIHtcbiAgICBzdXBlcihtZW51R2xvYmFsU2VydmljZSwgbWVudVNlcnZpY2UsIGxhbmd1YWdlU2VydmljZSk7XG4gIH1cblxuICBwcml2YXRlIGdldCBpc0FjdGl2ZUl0ZW1NZW51U3ViTWVudSgpIHtcbiAgICByZXR1cm4gdGhpcy5hY3RpdmVNZW51SXRlbVsnbGV2ZWwnXSA+IHRoaXMuZ3JvdXBlZE1lbnVJdGVtWydsZXZlbCddO1xuICB9XG5cbiAgZ2V0IGVuYWJsZUNvbGxhcHNlKCkge1xuICAgIHJldHVybiB0aGlzLmlzQ29sbGFwc2VkICYmICF0aGlzLmNvbGxhcHNlZE1vYmlsZTtcbiAgfVxuXG4gIGdldCBlbmFibGVDb2xsYXBzZUJ1dHRvbigpIHtcbiAgICByZXR1cm4gdGhpcy5hbGxvd0NvbGxhcHNlTWVudSAmJiAhdGhpcy5jb2xsYXBzZWQgJiYgIXRoaXMubW9iaWxlT3BlbmVkO1xuICB9XG5cbiAgZ2V0IGhhc0Zvb3RlcigpIHtcbiAgICByZXR1cm4gdGhpcy5lbmFibGVDb2xsYXBzZUJ1dHRvbiB8fCB0aGlzLmVuYWJsZUNvbGxhcHNlO1xuICB9XG5cbiAgZ2V0IGlzQ29sbGFwc2VkKCkge1xuICAgIHJldHVybiB0aGlzLmFsbG93Q29sbGFwc2VNZW51ICYmIHRoaXMuY29sbGFwc2VkO1xuICB9XG5cbiAgbmdEb0NoZWNrKCkge1xuICAgIGlmICh0aGlzLmZpbHRlcmluZ0l0ZW1zICYmIHRoaXMuZmlsdGVyKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgbWVudUN1cnJlbnQgPSB0aGlzLnN0cmluZ2lmeSh0aGlzLm1lbnVzKTtcblxuICAgIGlmICh0aGlzLm1lbnVQcmV2aW91cyAhPT0gbWVudUN1cnJlbnQgfHwgIXRoaXMubWVudUluaXRpYWxpemVkKSB7XG4gICAgICB0aGlzLnVwZGF0ZU1lbnUoKTtcbiAgICAgIHRoaXMudmFsaWRhdGVDb2xsYXBzZUNsYXNzKCk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5pdGVtU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy5yb3V0ZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuXG4gICAgaWYgKHRoaXMucmVzaXplTGlzdGVuZXIpIHtcbiAgICAgIHRoaXMucmVzaXplTGlzdGVuZXIoKTtcbiAgICB9XG5cbiAgICB0aGlzLm1lbnVHbG9iYWxTZXJ2aWNlLnNlbmRSZW1vdmVkQXBwbGljYXRpb25NZW51KHRoaXMuaWQpO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5zdWJzY3JpYmVUb01lbnVJdGVtKCk7XG4gICAgdGhpcy5zdWJzY3JpYmVUb1JvdXRlKCk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy5tZW51R2xvYmFsU2VydmljZS5zZW5kQXBwbGljYXRpb25NZW51KHRoaXMpO1xuICB9XG5cbiAgYWN0aXZhdGVNZW51QnlVcmwodXJsUGF0aDogc3RyaW5nLCBtZW51czogQXJyYXk8UG9NZW51SXRlbT4pIHtcbiAgICBpZiAobWVudXMpIHtcbiAgICAgIGNvbnN0IHVybFBhdGhXaXRob3V0TGFzdEZyYWdtZW50ID0gdXJsUGF0aC5zdWJzdHIoMCwgdXJsUGF0aC5sYXN0SW5kZXhPZignLycpKTtcbiAgICAgIHJldHVybiBtZW51cy5zb21lKG1lbnUgPT4ge1xuICAgICAgICBjb25zdCBmb3JtYXR0ZWRNZW51TGluayA9IGdldEZvcm1hdHRlZExpbmsobWVudS5saW5rKTtcbiAgICAgICAgY29uc3QgbWVudUxpbmtQYXRoID0gYCR7dXJsUGF0aFdpdGhvdXRMYXN0RnJhZ21lbnR9JHtmb3JtYXR0ZWRNZW51TGluay5zdWJzdHIoXG4gICAgICAgICAgZm9ybWF0dGVkTWVudUxpbmsubGFzdEluZGV4T2YoJy8nKVxuICAgICAgICApfWA7XG5cbiAgICAgICAgaWYgKG1lbnVMaW5rUGF0aCA9PT0gdXJsUGF0aCAmJiBtZW51TGlua1BhdGggPT09IGZvcm1hdHRlZE1lbnVMaW5rKSB7XG4gICAgICAgICAgdGhpcy5saW5rQWN0aXZlID0gZm9ybWF0dGVkTWVudUxpbms7XG4gICAgICAgICAgdGhpcy5hY3RpdmF0ZU1lbnVJdGVtKG1lbnUpO1xuICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiB0aGlzLmFjdGl2YXRlTWVudUJ5VXJsKHVybFBhdGgsIG1lbnUuc3ViSXRlbXMpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBjaGVja0FjdGl2ZU1lbnVCeVVybCh1cmxQYXRoOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMubGlua0FjdGl2ZSB8fCB0aGlzLmxpbmtBY3RpdmUgIT09IHVybFBhdGgpIHtcbiAgICAgIHRoaXMuYWN0aXZhdGVNZW51QnlVcmwodXJsUGF0aCwgdGhpcy5tZW51cyk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIDxhIGlkPVwiY29sYXBzZU1ldGhvZFwiPjwvYT5cbiAgICpcbiAgICogKk3DqXRvZG8gcGFyYSBjb2xhcHNhciAocmV0cmFpcikgbyBtZW51LlxuICAgKi9cbiAgY29sbGFwc2UoKSB7XG4gICAgdGhpcy52YWxpZGF0ZVRvZ2dsZU1lbnUodHJ1ZSk7XG4gIH1cblxuICBkZWJvdW5jZUZpbHRlcihmaWx0ZXI6IHN0cmluZykge1xuICAgIGNsZWFyVGltZW91dCh0aGlzLnRpbWVvdXRGaWx0ZXIpO1xuXG4gICAgdGhpcy50aW1lb3V0RmlsdGVyID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLmZpbHRlclByb2Nlc3MoZmlsdGVyKTtcbiAgICB9LCBwb01lbnVEZWJvdW5jZVRpbWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIDxhIGlkPVwiZXhwYW5kTWV0aG9kXCI+PC9hPlxuICAgKlxuICAgKiAqTcOpdG9kbyBwYXJhIGV4cGFuZGlyIChhdW1lbnRhcikgbyBtZW51LlxuICAgKi9cbiAgZXhwYW5kKCkge1xuICAgIHRoaXMudmFsaWRhdGVUb2dnbGVNZW51KGZhbHNlKTtcbiAgfVxuXG4gIHN1YnNjcmliZVRvTWVudUl0ZW0oKSB7XG4gICAgdGhpcy5pdGVtU3Vic2NyaXB0aW9uID0gdGhpcy5tZW51SXRlbXNTZXJ2aWNlLnJlY2VpdmVGcm9tQ2hpbGRNZW51Q2xpY2tlZCgpLnN1YnNjcmliZSgobWVudTogUG9NZW51SXRlbSkgPT4ge1xuICAgICAgdGhpcy5jbGlja01lbnVJdGVtKG1lbnUpO1xuICAgIH0pO1xuICB9XG5cbiAgc3Vic2NyaWJlVG9Sb3V0ZSgpIHtcbiAgICB0aGlzLnJvdXRlU3Vic2NyaXB0aW9uID0gdGhpcy5yb3V0ZXIuZXZlbnRzLnN1YnNjcmliZSh2YWwgPT4ge1xuICAgICAgaWYgKHZhbCBpbnN0YW5jZW9mIE5hdmlnYXRpb25FbmQgfHwgdmFsIGluc3RhbmNlb2YgTmF2aWdhdGlvbkNhbmNlbCkge1xuICAgICAgICBjb25zdCB1cmxSb3V0ZXIgPSB0aGlzLmNoZWNraW5nUm91dGVyQ2hpbGRyZW5GcmFnbWVudHMoKTtcbiAgICAgICAgdGhpcy5jaGVja0FjdGl2ZU1lbnVCeVVybCh1cmxSb3V0ZXIpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIDxhIGlkPVwidG9nZ2xlTWV0aG9kXCI+PC9hPlxuICAgKiAqTcOpdG9kbyBxdWUgY29sYXBzYSBlIGV4cGFuZGUgbyBtZW51IGFsdGVybmFkYW1lbnRlLlxuICAgKlxuICAgKiA+ICpPcyBtw6l0b2RvcyBhcGVuYXMgdsOjbyBjb2xhcHNhci9leHBhbmRpciBvIG1lbnUgc2U6XG4gICAqICAtIFRvZG9zIG9zIGl0ZW5zIGRlIG1lbnUgdGl2ZXJlbSB2YWxvciBuYXMgcHJvcHJpZWRhZGVzIGBpY29uYCBlIGBzaG9ydExhYmVsYC5cbiAgICovXG4gIHRvZ2dsZSgpIHtcbiAgICB0aGlzLnZhbGlkYXRlVG9nZ2xlTWVudSghdGhpcy5jb2xsYXBzZWQpO1xuICB9XG5cbiAgdG9nZ2xlTWVudU1vYmlsZSgpOiB2b2lkIHtcbiAgICB0aGlzLm1vYmlsZU9wZW5lZCA9ICF0aGlzLm1vYmlsZU9wZW5lZDtcbiAgICB0aGlzLmNvbGxhcHNlZE1vYmlsZSA9IHRoaXMuY29sbGFwc2VkICYmIHRoaXMubW9iaWxlT3BlbmVkO1xuXG4gICAgdGhpcy52YWxpZGF0ZUNvbGxhcHNlQ2xhc3ModGhpcy5jb2xsYXBzZWRNb2JpbGUpO1xuXG4gICAgaWYgKGlzTW9iaWxlKCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5tb2JpbGVPcGVuZWQpIHtcbiAgICAgIHRoaXMuY3JlYXRlUmVzaXplTGlzdGVuZXIoKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgY2hlY2tpbmdSb3V0ZXJDaGlsZHJlbkZyYWdtZW50cygpIHtcbiAgICBjb25zdCBjaGlsZHJlblByaW1hcnkgPSB0aGlzLnJvdXRlci5wYXJzZVVybCh0aGlzLnJvdXRlci51cmwpLnJvb3QuY2hpbGRyZW5bJ3ByaW1hcnknXTtcblxuICAgIHJldHVybiBjaGlsZHJlblByaW1hcnkgPyBgLyR7Y2hpbGRyZW5QcmltYXJ5LnNlZ21lbnRzLm1hcChpdCA9PiBpdC5wYXRoKS5qb2luKCcvJyl9YCA6ICcnO1xuICB9XG5cbiAgcHJvdGVjdGVkIHZhbGlkYXRlQ29sbGFwc2VDbGFzcyhjb2xsYXBzZWRNb2JpbGU6IGJvb2xlYW4gPSBmYWxzZSkge1xuICAgIGNvbnN0IHdyYXBwZXIgPSB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudC5wYXJlbnROb2RlO1xuICAgIHRoaXMucmVuZGVyZXJbdGhpcy5pc0NvbGxhcHNlZCAmJiAhY29sbGFwc2VkTW9iaWxlID8gJ2FkZENsYXNzJyA6ICdyZW1vdmVDbGFzcyddKHdyYXBwZXIsICdwby1jb2xsYXBzZWQtbWVudScpO1xuICB9XG5cbiAgcHJpdmF0ZSBhY3RpdmF0ZUNvbGxhcHNlU3ViTWVudUl0ZW0oKSB7XG4gICAgdGhpcy5jbGVhckdyb3VwTWVudUlmRmlyc3RMZXZlbCh0aGlzLmFjdGl2ZU1lbnVJdGVtKTtcblxuICAgIGlmICghdGhpcy5jb2xsYXBzZWQgJiYgdGhpcy5hY3RpdmVNZW51SXRlbVsnbGV2ZWwnXSA+IHBvTWVudVJvb3RMZXZlbCAmJiB0aGlzLmlzQWN0aXZlSXRlbU1lbnVTdWJNZW51KSB7XG4gICAgICB0aGlzLm9wZW5QYXJlbnRNZW51KHRoaXMuYWN0aXZlTWVudUl0ZW0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYWN0aXZhdGVNZW51SXRlbShtZW51OiBQb01lbnVJdGVtKTogdm9pZCB7XG4gICAgdGhpcy5hY3RpdmVNZW51SXRlbSA9IG1lbnU7XG4gICAgdGhpcy5saW5rQWN0aXZlID0gbWVudS5saW5rO1xuICAgIGlmICh0aGlzLmFjdGl2ZU1lbnVJdGVtWydsZXZlbCddID4gcG9NZW51Um9vdExldmVsKSB7XG4gICAgICB0aGlzLm9wZW5QYXJlbnRNZW51KHRoaXMuYWN0aXZlTWVudUl0ZW0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmdyb3VwZWRNZW51SXRlbSA9IG51bGw7XG4gICAgfVxuICAgIHRoaXMubWVudUl0ZW1zU2VydmljZS5zZW5kVG9DaGlsZE1lbnVDbGlja2VkKHtcbiAgICAgIGFjdGl2ZTogdGhpcy5hY3RpdmVNZW51SXRlbSxcbiAgICAgIGdyb3VwZWQ6IHRoaXMuZ3JvdXBlZE1lbnVJdGVtLFxuICAgICAgYWN0aXZhdGVkQnlSb3V0ZTogdHJ1ZVxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBhcmVTdWJNZW51cyhtZW51czogQXJyYXk8UG9NZW51SXRlbT4pIHtcbiAgICByZXR1cm4gbWVudXMuZXZlcnkobWVudSA9PiBtZW51WydsZXZlbCddID4gcG9NZW51Um9vdExldmVsKTtcbiAgfVxuXG4gIHByaXZhdGUgY2xlYXJHcm91cE1lbnVJZkZpcnN0TGV2ZWwoYWN0aXZlTWVudUl0ZW06IFBvTWVudUl0ZW0pIHtcbiAgICBpZiAoYWN0aXZlTWVudUl0ZW1bJ2xldmVsJ10gPT09IHBvTWVudVJvb3RMZXZlbCkge1xuICAgICAgdGhpcy5ncm91cGVkTWVudUl0ZW0gPSB1bmRlZmluZWQ7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBjbGlja01lbnVJdGVtKG1lbnU6IFBvTWVudUl0ZW0pIHtcbiAgICBpZiAobWVudS5hY3Rpb24pIHtcbiAgICAgIHRoaXMuZXhlY3V0ZU1lbnVBY3Rpb24obWVudSk7XG4gICAgfVxuXG4gICAgaWYgKG1lbnVbJ3R5cGUnXSA9PT0gJ2V4dGVybmFsTGluaycpIHtcbiAgICAgIG9wZW5FeHRlcm5hbExpbmsobWVudS5saW5rKTtcbiAgICB9IGVsc2UgaWYgKG1lbnVbJ3R5cGUnXSA9PT0gJ2ludGVybmFsTGluaycpIHtcbiAgICAgIHRoaXMuYWN0aXZhdGVNZW51SXRlbShtZW51KTtcbiAgICB9IGVsc2UgaWYgKG1lbnVbJ3R5cGUnXSA9PT0gJ3N1Ykl0ZW1zJykge1xuICAgICAgaWYgKHRoaXMuZmlsdGVyaW5nSXRlbXMpIHtcbiAgICAgICAgdGhpcy5maWx0ZXJpbmdJdGVtcyA9IGZhbHNlO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmdyb3VwTWVudUl0ZW0obWVudSk7XG4gICAgfVxuXG4gICAgaWYgKG1lbnVbJ3R5cGUnXSAhPT0gJ3N1Ykl0ZW1zJykge1xuICAgICAgdGhpcy5tb2JpbGVPcGVuZWQgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNvbnZlcnRUb01lbnVJdGVtRmlsdGVyZWQobWVudUl0ZW06IGFueSA9IHsgbGFiZWw6ICcnLCBsaW5rOiAnJyB9KTogUG9NZW51SXRlbUZpbHRlcmVkIHtcbiAgICBjb25zdCB7IGxhYmVsLCBsaW5rIH0gPSBtZW51SXRlbTtcblxuICAgIGNvbnN0IG1lbnVJdGVtRmlsdGVyZWQ6IFBvTWVudUl0ZW1GaWx0ZXJlZCA9IHsgbGFiZWwsIGxpbmsgfTtcblxuICAgIHRoaXMuc2V0TWVudUl0ZW1Qcm9wZXJ0aWVzKG1lbnVJdGVtRmlsdGVyZWQpO1xuXG4gICAgcmV0dXJuIG1lbnVJdGVtRmlsdGVyZWQ7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZVJlc2l6ZUxpc3RlbmVyKCkge1xuICAgIHRoaXMucmVzaXplTGlzdGVuZXIgPSB0aGlzLnJlbmRlcmVyLmxpc3Rlbignd2luZG93JywgJ3Jlc2l6ZScsICgpID0+IHtcbiAgICAgIHRoaXMudG9nZ2xlUmVzaXplKCk7XG4gICAgICB0aGlzLnJlc2l6ZUxpc3RlbmVyKCk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGV4ZWN1dGVNZW51QWN0aW9uKG1lbnU6IFBvTWVudUl0ZW0pOiB2b2lkIHtcbiAgICBtZW51LmFjdGlvbihtZW51KTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZmlsdGVySXRlbXMoZmlsdGVyOiBzdHJpbmcpIHtcbiAgICBjb25zdCB0cmltRmlsdGVyID0gZmlsdGVyICYmIGZpbHRlci50cmltKCk7XG5cbiAgICBpZiAodHJpbUZpbHRlcikge1xuICAgICAgdGhpcy5maWx0ZXJlZEl0ZW1zID0gW107XG4gICAgICB0aGlzLmZpbHRlcmVkSXRlbXMgPSB0aGlzLmZpbHRlclNlcnZpY2VcbiAgICAgICAgPyBhd2FpdCB0aGlzLmZpbHRlck9uU2VydmljZSh0cmltRmlsdGVyKVxuICAgICAgICA6IHRoaXMuZmlsdGVyTG9jYWxJdGVtcyh0cmltRmlsdGVyKTtcbiAgICAgIHRoaXMuZmlsdGVyaW5nSXRlbXMgPSB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmZpbHRlcmVkSXRlbXMgPSBbLi4udGhpcy5tZW51c107XG4gICAgICB0aGlzLmZpbHRlcmluZ0l0ZW1zID0gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBmaWx0ZXJMb2NhbEl0ZW1zKGZpbHRlcjogc3RyaW5nKSB7XG4gICAgY29uc3QgZmlsdGVyZWRJdGVtcyA9IFtdO1xuXG4gICAgdGhpcy5maW5kSXRlbXModGhpcy5tZW51cywgZmlsdGVyLnRvTG93ZXJDYXNlKCksIGZpbHRlcmVkSXRlbXMpO1xuXG4gICAgcmV0dXJuIGZpbHRlcmVkSXRlbXM7XG4gIH1cblxuICBwcml2YXRlIGZpbHRlclByb2Nlc3MoZmlsdGVyOiBzdHJpbmcpIHtcbiAgICB0aGlzLmZpbHRlckxvYWRpbmcgPSB0cnVlO1xuXG4gICAgdGhpcy5maWx0ZXJJdGVtcyhmaWx0ZXIpXG4gICAgICAudGhlbigoKSA9PiB7XG4gICAgICAgIHRoaXMuZmlsdGVyTG9hZGluZyA9IGZhbHNlO1xuXG4gICAgICAgIHRoaXMuc2hvd05vRGF0YSgpO1xuICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgdGhpcy5tZW51SXRlbXNTZXJ2aWNlLnNlbmRUb0NoaWxkTWVudUNsaWNrZWQoeyBhY3RpdmU6IHRoaXMuYWN0aXZlTWVudUl0ZW0sIGdyb3VwZWQ6IHRoaXMuZ3JvdXBlZE1lbnVJdGVtIH0pO1xuICAgICAgfSlcbiAgICAgIC5jYXRjaChlcnJvciA9PiB7XG4gICAgICAgIHRoaXMuZmlsdGVyTG9hZGluZyA9IGZhbHNlO1xuICAgICAgICBQcm9taXNlLnJlamVjdChlcnJvcik7XG4gICAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZmlsdGVyT25TZXJ2aWNlKHNlYXJjaDogc3RyaW5nID0gJycpIHtcbiAgICBpZiAoc2VhcmNoLmxlbmd0aCA+PSBwb01lbnVNaW5MZW5ndGgpIHtcbiAgICAgIHJldHVybiBhd2FpdCB0aGlzLmZpbHRlclNlcnZpY2VcbiAgICAgICAgLmdldEZpbHRlcmVkRGF0YShzZWFyY2gsIHRoaXMucGFyYW1zKVxuICAgICAgICAucGlwZShtYXAobWVudUl0ZW1zRmlsdGVyZWQgPT4gbWVudUl0ZW1zRmlsdGVyZWQubWFwKG1lbnVJdGVtID0+IHRoaXMuY29udmVydFRvTWVudUl0ZW1GaWx0ZXJlZChtZW51SXRlbSkpKSlcbiAgICAgICAgLnRvUHJvbWlzZSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdGhpcy5maWx0ZXJlZEl0ZW1zO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZmluZEl0ZW1zKG1lbnVzOiBBcnJheTxQb01lbnVJdGVtPiwgZmlsdGVyOiBzdHJpbmcsIGZpbHRlcmVkSXRlbXM6IEFycmF5PGFueT4pIHtcbiAgICBtZW51cy5mb3JFYWNoKG1lbnUgPT4ge1xuICAgICAgY29uc3QgaGFzQWN0aW9uID0gbWVudS5hY3Rpb24gfHwgbWVudS5saW5rO1xuICAgICAgY29uc3QgbGFiZWxIYXNGaWx0ZXIgPSBtZW51LmxhYmVsLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoZmlsdGVyKTtcblxuICAgICAgaWYgKGxhYmVsSGFzRmlsdGVyICYmIGhhc0FjdGlvbikge1xuICAgICAgICBjb25zdCBuZXdNZW51ID0geyAuLi5tZW51IH07XG5cbiAgICAgICAgaWYgKG5ld01lbnUuc3ViSXRlbXM/Lmxlbmd0aCkge1xuICAgICAgICAgIGRlbGV0ZSBuZXdNZW51LnN1Ykl0ZW1zO1xuICAgICAgICAgIG5ld01lbnVbJ3R5cGUnXSA9IHRoaXMuc2V0TWVudVR5cGUobmV3TWVudSk7XG4gICAgICAgIH1cblxuICAgICAgICBmaWx0ZXJlZEl0ZW1zLnB1c2gobmV3TWVudSk7XG4gICAgICB9XG5cbiAgICAgIGlmIChtZW51LnN1Ykl0ZW1zKSB7XG4gICAgICAgIHRoaXMuZmluZEl0ZW1zKG1lbnUuc3ViSXRlbXMsIGZpbHRlciwgZmlsdGVyZWRJdGVtcyk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGZpbmRQYXJlbnQobWVudXM6IEFycmF5PFBvTWVudUl0ZW0+LCBtZW51SXRlbTogUG9NZW51SXRlbSk6IFBvTWVudUl0ZW0ge1xuICAgIGNvbnN0IGdldFBhcmVudCA9IGZ1bmN0aW9uIChtZW51SXRlbXM6IEFycmF5PFBvTWVudUl0ZW0+LCBpZCkge1xuICAgICAgaWYgKG1lbnVJdGVtcykge1xuICAgICAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgbWVudUl0ZW1zLmxlbmd0aDsgaW5kZXgrKykge1xuICAgICAgICAgIGNvbnN0IG1lbnUgPSBtZW51SXRlbXNbaW5kZXhdO1xuICAgICAgICAgIGlmIChtZW51LnN1Ykl0ZW1zICYmIG1lbnUuc3ViSXRlbXMuZmluZChzdWJJdGVtID0+IHN1Ykl0ZW1bJ2lkJ10gPT09IGlkKSkge1xuICAgICAgICAgICAgcmV0dXJuIG1lbnU7XG4gICAgICAgICAgfVxuICAgICAgICAgIGNvbnN0IGZvdW5kID0gZ2V0UGFyZW50KG1lbnUuc3ViSXRlbXMsIGlkKTtcbiAgICAgICAgICBpZiAoZm91bmQpIHtcbiAgICAgICAgICAgIHJldHVybiBmb3VuZDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9O1xuICAgIHJldHVybiBnZXRQYXJlbnQobWVudXMsIG1lbnVJdGVtWydpZCddKTtcbiAgfVxuXG4gIHByaXZhdGUgZmluZFJvb3RQYXJlbnQobWVudXM6IEFycmF5PFBvTWVudUl0ZW0+LCBtZW51OiBQb01lbnVJdGVtKTogUG9NZW51SXRlbSB7XG4gICAgY29uc3QgZmluZFBhcmVudCA9IHRoaXMuZmluZFBhcmVudDtcblxuICAgIGNvbnN0IGdldFJvb3RQYXJlbnQgPSBmdW5jdGlvbiAobWVudUl0ZW1zOiBBcnJheTxQb01lbnVJdGVtPiwgbWVudUl0ZW0pOiBQb01lbnVJdGVtIHtcbiAgICAgIGxldCBwYXJlbnQgPSBmaW5kUGFyZW50KG1lbnVJdGVtcywgbWVudUl0ZW0pO1xuXG4gICAgICBpZiAocGFyZW50WydsZXZlbCddICE9PSBwb01lbnVSb290TGV2ZWwpIHtcbiAgICAgICAgcGFyZW50ID0gZ2V0Um9vdFBhcmVudChtZW51SXRlbXMsIHBhcmVudCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gcGFyZW50O1xuICAgIH07XG4gICAgcmV0dXJuIGdldFJvb3RQYXJlbnQobWVudXMsIG1lbnUpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRBY3RpdmVNZW51UGFyZW50KG1lbnVzOiBBcnJheTxQb01lbnVJdGVtPiwgYWN0aXZlTWVudUl0ZW06IFBvTWVudUl0ZW0sIGdyb3VwZWRNZW51SXRlbTogUG9NZW51SXRlbSkge1xuICAgIGlmICh0aGlzLmFyZVN1Yk1lbnVzKFtncm91cGVkTWVudUl0ZW0sIGFjdGl2ZU1lbnVJdGVtXSkpIHtcbiAgICAgIHJldHVybiB0aGlzLmZpbmRSb290UGFyZW50KG1lbnVzLCBhY3RpdmVNZW51SXRlbSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBncm91cE1lbnVJdGVtKG1lbnU6IFBvTWVudUl0ZW0pOiB2b2lkIHtcbiAgICBpZiAodGhpcy5jb2xsYXBzZWQpIHtcbiAgICAgIHRoaXMudG9nZ2xlTWVudUNvbGxhcHNlKCk7XG4gICAgfVxuXG4gICAgbWVudVsnaXNPcGVuZWQnXSA9ICFtZW51Wydpc09wZW5lZCddO1xuICAgIHRoaXMuZ3JvdXBlZE1lbnVJdGVtID0gbWVudTtcblxuICAgIGlmIChcbiAgICAgIHRoaXMuYWN0aXZlTWVudUl0ZW0gJiZcbiAgICAgIG1lbnVbJ2lzT3BlbmVkJ10gJiZcbiAgICAgIHRoaXMuaXNBY3RpdmVJdGVtTWVudVN1Yk1lbnUgJiZcbiAgICAgIHRoaXMuaXNSb290TWVudUVxdWFsR3JvdXBlZE1lbnUodGhpcy5tZW51cywgdGhpcy5hY3RpdmVNZW51SXRlbSwgbWVudSlcbiAgICApIHtcbiAgICAgIHRoaXMuYWN0aXZhdGVNZW51SXRlbSh0aGlzLmFjdGl2ZU1lbnVJdGVtKTtcbiAgICB9XG5cbiAgICB0aGlzLm1lbnVJdGVtc1NlcnZpY2Uuc2VuZFRvQ2hpbGRNZW51Q2xpY2tlZCh7IGFjdGl2ZTogdGhpcy5hY3RpdmVNZW51SXRlbSwgZ3JvdXBlZDogdGhpcy5ncm91cGVkTWVudUl0ZW0gfSk7XG4gIH1cblxuICBwcml2YXRlIGlzUm9vdE1lbnVFcXVhbEdyb3VwZWRNZW51KFxuICAgIG1lbnVzOiBBcnJheTxQb01lbnVJdGVtPixcbiAgICBhY3RpdmVNZW51SXRlbTogUG9NZW51SXRlbSxcbiAgICBncm91cGVkTWVudUl0ZW06IFBvTWVudUl0ZW1cbiAgKSB7XG4gICAgY29uc3QgYWN0aXZlTWVudVJvb3RQYXJlbnQgPSB0aGlzLmZpbmRSb290UGFyZW50KG1lbnVzLCBhY3RpdmVNZW51SXRlbSk7XG4gICAgcmV0dXJuIGFjdGl2ZU1lbnVSb290UGFyZW50WydpZCddID09PSBncm91cGVkTWVudUl0ZW1bJ2lkJ107XG4gIH1cblxuICBwcml2YXRlIG9wZW5QYXJlbnRNZW51KGNoaWxkTWVudTogUG9NZW51SXRlbSk6IHZvaWQge1xuICAgIGNvbnN0IHBhcmVudCA9IHRoaXMuZmluZFBhcmVudCh0aGlzLm1lbnVzLCBjaGlsZE1lbnUpO1xuICAgIHBhcmVudFsnaXNPcGVuZWQnXSA9IHRydWU7XG4gICAgdGhpcy5ncm91cGVkTWVudUl0ZW0gPSBwYXJlbnQ7XG4gIH1cblxuICBwcml2YXRlIHNob3dOb0RhdGEoKSB7XG4gICAgdGhpcy5ub0RhdGEgPSB0aGlzLmZpbHRlcmVkSXRlbXMubGVuZ3RoID09PSAwO1xuICB9XG5cbiAgcHJpdmF0ZSBzdHJpbmdpZnkobWVudXM6IEFycmF5PFBvTWVudUl0ZW0+KTogc3RyaW5nIHtcbiAgICAvLyBuw6NvIGZheiBvIHN0cmluZ2lmeSBkYSBwcm9wcmllZGFkZSBpY29uLCBwb2lzIHBvZGUgY29udGVyIG9iamV0byBjb21wbGV4byBlIGRpc3BhcmFyIHVtIGVycm8uXG4gICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHRoaXMubWVudXMsIChrZXksIHZhbHVlKSA9PiB7XG4gICAgICBpZiAoa2V5ICE9PSAnaWNvbicpIHtcbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSB0b2dnbGVHcm91cGVkTWVudUl0ZW0oKSB7XG4gICAgdGhpcy5ncm91cGVkTWVudUl0ZW1bJ2lzT3BlbmVkJ10gPSAhdGhpcy5jb2xsYXBzZWQgJiYgdGhpcy5hbGxvd0NvbGxhcHNlTWVudTtcbiAgfVxuXG4gIHByaXZhdGUgdG9nZ2xlTWVudUNvbGxhcHNlKGNvbGxhcHNlZDogYm9vbGVhbiA9IGZhbHNlKSB7XG4gICAgdGhpcy5jb2xsYXBzZWQgPSBjb2xsYXBzZWQ7XG5cbiAgICBpZiAodGhpcy5ncm91cGVkTWVudUl0ZW0gJiYgdGhpcy5hY3RpdmVNZW51SXRlbSkge1xuICAgICAgdGhpcy5ncm91cGVkTWVudUl0ZW0gPVxuICAgICAgICB0aGlzLmdldEFjdGl2ZU1lbnVQYXJlbnQodGhpcy5tZW51cywgdGhpcy5hY3RpdmVNZW51SXRlbSwgdGhpcy5ncm91cGVkTWVudUl0ZW0pIHx8IHRoaXMuZ3JvdXBlZE1lbnVJdGVtO1xuICAgICAgdGhpcy50b2dnbGVHcm91cGVkTWVudUl0ZW0oKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5hY3RpdmVNZW51SXRlbSkge1xuICAgICAgdGhpcy5hY3RpdmF0ZUNvbGxhcHNlU3ViTWVudUl0ZW0oKTtcbiAgICAgIHRoaXMubWVudUl0ZW1zU2VydmljZS5zZW5kVG9DaGlsZE1lbnVDbGlja2VkKHtcbiAgICAgICAgYWN0aXZlOiB0aGlzLmFjdGl2ZU1lbnVJdGVtLFxuICAgICAgICBncm91cGVkOiB0aGlzLmdyb3VwZWRNZW51SXRlbSxcbiAgICAgICAgYWN0aXZhdGVkQnlSb3V0ZTogdHJ1ZVxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgdGhpcy51cGRhdGVNZW51KCk7XG4gIH1cblxuICBwcml2YXRlIHRvZ2dsZVJlc2l6ZSgpIHtcbiAgICBpZiAodGhpcy5tb2JpbGVPcGVuZWQpIHtcbiAgICAgIHRoaXMubW9iaWxlT3BlbmVkID0gZmFsc2U7XG4gICAgICB0aGlzLmNvbGxhcHNlZE1vYmlsZSA9IGZhbHNlO1xuICAgICAgdGhpcy52YWxpZGF0ZUNvbGxhcHNlQ2xhc3ModGhpcy5jb2xsYXBzZWRNb2JpbGUpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgdmFsaWRhdGVUb2dnbGVNZW51KGNvbGxhcHNlZDogYm9vbGVhbikge1xuICAgIGlmICghdGhpcy5hbGxvd0NvbGxhcHNlTWVudSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMudG9nZ2xlTWVudUNvbGxhcHNlKGNvbGxhcHNlZCk7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZU1lbnUoKSB7XG4gICAgdGhpcy5tZW51SW5pdGlhbGl6ZWQgPSB0cnVlO1xuICAgIHRoaXMuc2V0TWVudUV4dHJhUHJvcGVydGllcygpO1xuICAgIHRoaXMuZmlsdGVyZWRJdGVtcyA9IFsuLi50aGlzLm1lbnVzXTtcbiAgICB0aGlzLm1lbnVQcmV2aW91cyA9IHRoaXMuc3RyaW5naWZ5KHRoaXMubWVudXMpO1xuICAgIHRoaXMudmFsaWRhdGVNZW51cyh0aGlzLm1lbnVzKTtcbiAgfVxufVxuIiwiPGRpdiAqbmdJZj1cIm1vYmlsZU9wZW5lZFwiIGNsYXNzPVwicG8tbWVudS1vdmVybGF5XCIgKGNsaWNrKT1cInRvZ2dsZU1lbnVNb2JpbGUoKVwiPjwvZGl2PlxuPG5hdj5cbiAgPGRpdiBjbGFzcz1cInBvLW1lbnUtbW9iaWxlIHBvLWNsaWNrYWJsZVwiIChjbGljayk9XCJ0b2dnbGVNZW51TW9iaWxlKClcIj5cbiAgICA8c3BhbiBjbGFzcz1cInBvLWljb24gcG8taWNvbi1tZW51XCI+PC9zcGFuPlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwicG8tbWVudVwiIFtuZ0NsYXNzXT1cInsgJ3BvLW1lbnUtYW5pbWF0aW9uJzogbW9iaWxlT3BlbmVkIH1cIj5cbiAgICA8ZGl2IGNsYXNzPVwicG8tbWVudS1oZWFkZXJcIj5cbiAgICAgIDxkaXYgKm5nSWY9XCJsb2dvIHx8IChzaG9ydExvZ28gJiYgZW5hYmxlQ29sbGFwc2UpXCIgY2xhc3M9XCJwby1tZW51LWhlYWRlci1jb250YWluZXItbG9nb1wiPlxuICAgICAgICA8YSBocmVmPVwiLi9cIj5cbiAgICAgICAgICA8aW1nXG4gICAgICAgICAgICBbbmdDbGFzc109XCJlbmFibGVDb2xsYXBzZSA/ICdwby1tZW51LXNob3J0LWxvZ28nIDogJ3BvLW1lbnUtbG9nbydcIlxuICAgICAgICAgICAgW3NyY109XCJlbmFibGVDb2xsYXBzZSA/IHNob3J0TG9nbyB8fCBsb2dvIDogbG9nb1wiXG4gICAgICAgICAgLz5cbiAgICAgICAgPC9hPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgKm5nSWY9XCIhZW5hYmxlQ29sbGFwc2UgJiYgbWVudUhlYWRlclRlbXBsYXRlXCIgY2xhc3M9XCJwby1tZW51LWhlYWRlci10ZW1wbGF0ZVwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwibWVudUhlYWRlclRlbXBsYXRlLnRlbXBsYXRlUmVmXCI+PC9uZy1jb250YWluZXI+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPHBvLW1lbnUtZmlsdGVyICpuZ0lmPVwiZmlsdGVyICYmICFlbmFibGVDb2xsYXBzZVwiIFtwLWxvYWRpbmddPVwiZmlsdGVyTG9hZGluZ1wiIChwLWZpbHRlcik9XCJkZWJvdW5jZUZpbHRlcigkZXZlbnQpXCI+XG4gICAgICA8L3BvLW1lbnUtZmlsdGVyPlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cInBvLW1lbnUtYm9keVwiPlxuICAgICAgPCEtLSBJbm5lciBlIG91dGVyIHBhcmEgZXNjb25kZXIgc2Nyb2xsIC0tPlxuICAgICAgPGRpdiBjbGFzcz1cInBvLW1lbnUtb3V0ZXJcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInBvLW1lbnUtaW5uZXJcIj5cbiAgICAgICAgICA8ZGl2ICpuZ0lmPVwibm9EYXRhXCIgY2xhc3M9XCJwby1tZW51LWl0ZW0td3JhcHBlclwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBvLW1lbnUtaXRlbS1maXJzdFwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicG8tbWVudS1pY29uLWNvbnRhaW5lciBwby1tZW51LWl0ZW0tbm8tZGF0YVwiPlxuICAgICAgICAgICAgICAgIDxwby1pY29uIGNsYXNzPVwicG8taWNvbiBwby1pY29uLWluZm8gcG8tbWVudS1pY29uLWl0ZW0gcG8tbGctMlwiPjwvcG8taWNvbj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicG8tbGctMTAgcG8tbWVudS1pY29uLWxhYmVsXCI+e3sgbGl0ZXJhbHMuaXRlbU5vdEZvdW5kIH19PC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBtZW51IG9mIGZpbHRlcmVkSXRlbXM7IGxldCBtZW51SW5kZXggPSBpbmRleFwiIGNsYXNzPVwicG8tbWVudS1pdGVtLXdyYXBwZXJcIj5cbiAgICAgICAgICAgIDxwby1tZW51LWl0ZW1cbiAgICAgICAgICAgICAgW2NsYXNzLnBvLW1lbnUtaXRlbS1maXJzdF09XCJtZW51SW5kZXggPT09IDBcIlxuICAgICAgICAgICAgICBbcC1hY3Rpb25dPVwibWVudS5hY3Rpb25cIlxuICAgICAgICAgICAgICBbcC1iYWRnZS1hbGVydF09XCJtZW51LmJhZGdlQWxlcnRcIlxuICAgICAgICAgICAgICBbcC1iYWRnZS1jb2xvcl09XCJtZW51LmJhZGdlID8gbWVudS5iYWRnZS5jb2xvciA6IHVuZGVmaW5lZFwiXG4gICAgICAgICAgICAgIFtwLWJhZGdlLXZhbHVlXT1cIm1lbnUuYmFkZ2UgPyBtZW51LmJhZGdlLnZhbHVlIDogdW5kZWZpbmVkXCJcbiAgICAgICAgICAgICAgW3AtY29sbGFwc2VkLW1lbnVdPVwiZW5hYmxlQ29sbGFwc2VcIlxuICAgICAgICAgICAgICBbcC1pY29uXT1cImFsbG93SWNvbnMgPyBtZW51Lmljb24gOiBudWxsXCJcbiAgICAgICAgICAgICAgW3AtaWRdPVwibWVudS5pZFwiXG4gICAgICAgICAgICAgIFtwLWxhYmVsXT1cIm1lbnUubGFiZWxcIlxuICAgICAgICAgICAgICBbcC1sZXZlbF09XCJtZW51LmxldmVsXCJcbiAgICAgICAgICAgICAgW3AtbGlua109XCJtZW51LmxpbmtcIlxuICAgICAgICAgICAgICBbcC1zaG9ydC1sYWJlbF09XCJtZW51LnNob3J0TGFiZWxcIlxuICAgICAgICAgICAgICBbcC1zdWItaXRlbXNdPVwibWVudS5zdWJJdGVtc1wiXG4gICAgICAgICAgICAgIFtwLXR5cGVdPVwibWVudS50eXBlXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgIDwvcG8tbWVudS1pdGVtPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiAqbmdJZj1cImhhc0Zvb3RlclwiIGNsYXNzPVwicG8tbWVudS1mb290ZXJcIj5cbiAgICAgIDxhIGNsYXNzPVwicG8tbWVudS1jb2xsYXBzZS1idXR0b24taWNvbiBwby1jbGlja2FibGVcIiAoY2xpY2spPVwidG9nZ2xlKClcIj5cbiAgICAgICAgPHNwYW5cbiAgICAgICAgICBjbGFzcz1cInBvLWljb25cIlxuICAgICAgICAgIFtjbGFzcy5wby1pY29uLW1lbnUtY2xvc2VdPVwiZW5hYmxlQ29sbGFwc2VCdXR0b25cIlxuICAgICAgICAgIFtjbGFzcy5wby1pY29uLW1lbnUtb3Blbl09XCJlbmFibGVDb2xsYXBzZVwiXG4gICAgICAgID5cbiAgICAgICAgPC9zcGFuPlxuICAgICAgPC9hPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvbmF2PlxuIl19
597
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tbWVudS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL2NvbXBvbmVudHMvcG8tbWVudS9wby1tZW51LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvY29tcG9uZW50cy9wby1tZW51L3BvLW1lbnUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUdMLFNBQVMsRUFDVCxZQUFZLEVBTWIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGFBQWEsRUFBVSxNQUFNLGlCQUFpQixDQUFDO0FBRTFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUdyQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsUUFBUSxFQUFFLGdCQUFnQixFQUFFLElBQUksRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRXRGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQy9ELE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLDZEQUE2RCxDQUFDO0FBRzVHLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBRXRFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7Ozs7Ozs7Ozs7OztJQ3pCM0QsK0JBQStFO0lBQTdCLHlKQUFTLHlCQUFrQixJQUFDO0lBQUMsaUJBQU07OztJQVEvRSwrQkFBeUYsWUFBQTtJQUVyRiwwQkFJRTtJQUNKLGlCQUFJLEVBQUE7OztJQUpBLGVBQWtFO0lBQWxFLHVGQUFrRSxnR0FBQSx1QkFBQTs7O0lBUXRFLHdCQUFnRjs7O0lBRGxGLCtCQUFtRjtJQUNqRix5RkFBZ0Y7SUFDbEYsaUJBQU07OztJQURXLGVBQWdEO0lBQWhELHdFQUFnRDs7OztJQUdqRSwwQ0FB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LHNCQUFrQixJQUFDO1FBQ25FLDBCQUEwQztRQUM1QyxpQkFBTTtRQUVOLDhCQUF1RSxhQUFBO1FBRW5FLGdFQVFNO1FBRU4sZ0VBRU07UUFFTixzRkFDaUI7UUFDbkIsaUJBQU07UUFFTiw4QkFBMEIsY0FBQSxlQUFBO1FBSXBCLG1FQU9NO1FBRU4sb0VBa0JNO1FBQ1IsaUJBQU0sRUFBQSxFQUFBO1FBSVYsbUVBU007UUFDUixpQkFBTSxFQUFBOztRQXhFRix1Q0FBa0I7UUFNRCxlQUFpRDtRQUFqRCxzRUFBaUQ7UUFFNUQsZUFBMkM7UUFBM0Msc0VBQTJDO1FBVTNDLGVBQTJDO1FBQTNDLG9FQUEyQztRQUloQyxlQUErQjtRQUEvQix3REFBK0I7UUFRdEMsZUFBWTtRQUFaLGlDQUFZO1FBU0ksZUFBa0I7UUFBbEIsMkNBQWtCO1FBdUJ4QyxlQUFlO1FBQWYsb0NBQWU7O3VGRHlEWixlQUFlO2NBTDNCLFNBQVM7MkJBQ0UsU0FBUyxhQUVSLENBQUMsa0JBQWtCLEVBQUUsYUFBYSxDQUFDO3lRQUdpQixrQkFBa0I7a0JBQWhGLFlBQVk7bUJBQUMsNkJBQTZCLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkLFxuICBEb0NoZWNrLFxuICBFbGVtZW50UmVmLFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgUmVuZGVyZXIyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBOYXZpZ2F0aW9uQ2FuY2VsLCBOYXZpZ2F0aW9uRW5kLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgZ2V0Rm9ybWF0dGVkTGluaywgaXNNb2JpbGUsIG9wZW5FeHRlcm5hbExpbmssIHV1aWQgfSBmcm9tICcuLi8uLi91dGlscy91dGlsJztcblxuaW1wb3J0IHsgUG9NZW51QmFzZUNvbXBvbmVudCB9IGZyb20gJy4vcG8tbWVudS1iYXNlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQb01lbnVIZWFkZXJUZW1wbGF0ZURpcmVjdGl2ZSB9IGZyb20gJy4vcG8tbWVudS1oZWFkZXItdGVtcGxhdGUvcG8tbWVudS1oZWFkZXItdGVtcGxhdGUuZGlyZWN0aXZlJztcbmltcG9ydCB7IFBvTWVudUl0ZW0gfSBmcm9tICcuL3BvLW1lbnUtaXRlbS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUG9NZW51SXRlbUZpbHRlcmVkIH0gZnJvbSAnLi9wby1tZW51LWl0ZW0vcG8tbWVudS1pdGVtLWZpbHRlcmVkLmludGVyZmFjZSc7XG5pbXBvcnQgeyBQb01lbnVJdGVtc1NlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL3BvLW1lbnUtaXRlbXMuc2VydmljZSc7XG5pbXBvcnQgeyBQb01lbnVHbG9iYWxTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9wby1tZW51LWdsb2JhbC5zZXJ2aWNlJztcbmltcG9ydCB7IFBvTWVudVNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL3BvLW1lbnUuc2VydmljZSc7XG5pbXBvcnQgeyBQb0xhbmd1YWdlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3BvLWxhbmd1YWdlL3BvLWxhbmd1YWdlLnNlcnZpY2UnO1xuXG5jb25zdCBwb01lbnVEZWJvdW5jZVRpbWUgPSA0MDA7XG5jb25zdCBwb01lbnVNaW5MZW5ndGggPSAzO1xuY29uc3QgcG9NZW51Um9vdExldmVsID0gMTtcblxuLyoqXG4gKiBAZG9jc0V4dGVuZHMgUG9NZW51QmFzZUNvbXBvbmVudFxuICpcbiAqIEBkZXNjcmlwdGlvblxuICpcbiAqIEFwYXJlY2UgY29tcGxldG8gZW0gdGVsYXMgY29tIGxhcmd1cmEgbWFpb3IgcXVlIDEyMDBweCwgY2FzbyBjb250csOhcmlvIG8gbWVudSDDqSBlc2NvbmRpZG8gZSBjaGFtYWRvIHBvciBtZWlvIGRlIHVtIGJvdMOjby5cbiAqXG4gKiBPIG1lbnUgdGFtYsOpbSBwb2RlIHNlciBjb2xhcHNhZG8uIEVzc2Egb3DDp8OjbyDDqSBoYWJpbGl0YWRhIHF1YW5kbyB0b2RvcyBvcyBpdGVucyBkZSBwcmltZWlybyBuw612ZWwgcG9zc3XDrXJlbSDDrWNvbmVzIGUgdGV4dG9zIGN1cnRvcy5cbiAqIFNlIGNvbGFwc2Fkbywgc29tZW50ZSBvcyBpdGVucyBkZSBwcmltZWlybyBuw612ZWwgc2Vyw6NvIGV4aWJpZG9zIGUsIGNhc28gbyBpdGVtIHNlbGVjaW9uYWRvIHBvc3N1YSBzdWItbsOtdmVpcyxcbiAqIGVudMOjbyBvIG1lbnUgYWx0ZXJuYXLDoSBub3ZhbWVudGUgcGFyYSBvIGVzdGFkbyBhYmVydG8uXG4gKlxuICogRXhpc3RlIGEgcG9zc2liaWxpZGFkZSBkZSBjdXN0b21pemFyIGEgbG9nb21hcmNhLCBxdWUgw6kgZXhpYmlkYSBuYSBwYXJ0ZSBzdXBlcmlvciBkbyBjb21wb25lbnRlLlxuICpcbiAqIEUgcGFyYSBhZGljaW9uYXIgdW0gY29udGXDumRvIHBlcnNvbmFsaXphZG8gZW50cmUgYSBsb2dvbWFyY2EgZSBvIGNhbXBvIGRlIGZpbHRybyxcbiAqIGJhc3RhIGFkaWNpb25hciBlc3RlIGNvbnRlw7pkbyBjb20gYSBkaXJldGl2YSBbKipwLW1lbnUtaGVhZGVyLXRlbXBsYXRlKipdKC9kb2N1bWVudGF0aW9uL3BvLW1lbnUtaGVhZGVyLXRlbXBsYXRlKS5cbiAqXG4gKiBDYXNvIHV0aWxpemFyIG8gZmlsdHJvIGRlIG1lbnVzLCDDqSBwb3Nzw612ZWwgcmVhbGl6YXIgYnVzY2FzIGVtIHNlcnZpw6dvLCBhcGVuYXMgaW5mb3JtYW5kbyBhIFVSTCBkbyBzZXJ2acOnbyBvdSBhIGluc3TDom5jaWEgZGVcbiAqIHVtIHNlcnZpw6dvIGN1c3RvbWl6YWRvIGltcGxlbWVudGFuZG8gYSBpbnRlcmZhY2UgYFBvTWVudUZpbHRlcmAuXG4gKlxuICogUGFyYSBvIG1lbnUgZnVuY2lvbmFyIGNvcnJldGFtZW50ZSDDqSBuZWNlc3PDoXJpbyBpbXBvcnRhciBvIGBSb3V0ZXJNb2R1bGVgIGUgYFJvdXRlc2AgZG8gbcOzZHVsbyBwcmluY2lwYWwgZGVcbiAqICBzdWEgYXBsaWNhw6fDo286XG4gKlxuICogYGBgYFxuICogaW1wb3J0IHsgUm91dGVyTW9kdWxlLCBSb3V0ZXMgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuICpcbiAqIC4uLlxuICpcbiAqIEBOZ01vZHVsZSh7XG4gKiAgIGltcG9ydHM6IFtcbiAqICAgICBSb3V0ZXJNb2R1bGUsXG4gKiAgICAgUm91dGVzLFxuICogICAgIC4uLlxuICogICAgIFBvTW9kdWxlLFxuICogICAgIC4uLlxuICogICBdLFxuICogICBkZWNsYXJhdGlvbnM6IFtcbiAqICAgICBBcHBDb21wb25lbnRcbiAqICAgXSxcbiAqICAgcHJvdmlkZXJzOiBbXSxcbiAqICAgYm9vdHN0cmFwOiBbQXBwQ29tcG9uZW50XVxuICogfSlcbiAqIGV4cG9ydCBjbGFzcyBBcHBNb2R1bGUgeyB9XG4gKiBgYGBcbiAqXG4gKiBBbMOpbSBkaXNzbyDDqSBuZWNlc3PDoXJpbyBjcmlhciB1bSBtw7NkdWxvIGNvbmZpZ3VyYW5kbyBhcyByb3RhcyBkYSBhcGxpY2HDp8Ojby5cbiAqXG4gKiBgYGBcbiAqIGltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG4gKlxuICogaW1wb3J0IHsgUm91dGVyTW9kdWxlLCBSb3V0ZXMgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuICpcbiAqIGltcG9ydCB7IEhlbGxvV29ybGRDb21wb25lbnQgfSBmcm9tICcuL2hlbGxvLXdvcmxkL2hlbGxvLXdvcmxkLmNvbXBvbmVudCc7XG4gKlxuICogY29uc3Qgcm91dGVzOiBSb3V0ZXMgPSBbXG4gKiAgIHtwYXRoOiAnaGVsbG8td29ybGQnLCBjb21wb25lbnQ6IEhlbGxvV29ybGRDb21wb25lbnR9XG4gKiBdO1xuICpcbiAqIEBOZ01vZHVsZSh7XG4gKiAgIGltcG9ydHM6IFtSb3V0ZXJNb2R1bGUuZm9yUm9vdChyb3V0ZXMsIHt1c2VIYXNoOiB0cnVlfSldLFxuICogICBleHBvcnRzOiBbUm91dGVyTW9kdWxlXVxuICogfSlcbiAqIGV4cG9ydCBjbGFzcyBBcHBSb3V0aW5nTW9kdWxlIHt9XG4gKiBgYGBcbiAqXG4gKiBAZXhhbXBsZVxuICpcbiAqIDxleGFtcGxlIG5hbWU9XCJwby1tZW51LWJhc2ljXCIgdGl0bGU9XCJQTyBNZW51IEJhc2ljXCI+XG4gKiAgIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tbWVudS1iYXNpYy9zYW1wbGUtcG8tbWVudS1iYXNpYy5jb21wb25lbnQuaHRtbFwiPiA8L2ZpbGU+XG4gKiAgIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tbWVudS1iYXNpYy9zYW1wbGUtcG8tbWVudS1iYXNpYy5jb21wb25lbnQudHNcIj4gPC9maWxlPlxuICogPC9leGFtcGxlPlxuICpcbiAqIDxleGFtcGxlIG5hbWU9XCJwby1tZW51LWxhYnNcIiB0aXRsZT1cIlBPIE1lbnUgTGFic1wiPlxuICogICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLW1lbnUtbGFicy9zYW1wbGUtcG8tbWVudS1sYWJzLmNvbXBvbmVudC5odG1sXCI+IDwvZmlsZT5cbiAqICAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby1tZW51LWxhYnMvc2FtcGxlLXBvLW1lbnUtbGFicy5jb21wb25lbnQudHNcIj4gPC9maWxlPlxuICogPC9leGFtcGxlPlxuICpcbiAqIDxleGFtcGxlIG5hbWU9XCJwby1tZW51LWh1bWFuLXJlc291cmNlc1wiIHRpdGxlPVwiUE8gTWVudSAtIEh1bWFuIFJlc291cmNlc1wiPlxuICogICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLW1lbnUtaHVtYW4tcmVzb3VyY2VzL3NhbXBsZS1wby1tZW51LWh1bWFuLXJlc291cmNlcy5jb21wb25lbnQuaHRtbFwiPiA8L2ZpbGU+XG4gKiAgIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tbWVudS1odW1hbi1yZXNvdXJjZXMvc2FtcGxlLXBvLW1lbnUtaHVtYW4tcmVzb3VyY2VzLmNvbXBvbmVudC50c1wiPiA8L2ZpbGU+XG4gKiAgIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tbWVudS1odW1hbi1yZXNvdXJjZXMvc2FtcGxlLXBvLW1lbnUtaHVtYW4tcmVzb3VyY2VzLnNlcnZpY2UudHNcIj4gPC9maWxlPlxuICogPC9leGFtcGxlPlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwby1tZW51JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3BvLW1lbnUuY29tcG9uZW50Lmh0bWwnLFxuICBwcm92aWRlcnM6IFtQb01lbnVJdGVtc1NlcnZpY2UsIFBvTWVudVNlcnZpY2VdXG59KVxuZXhwb3J0IGNsYXNzIFBvTWVudUNvbXBvbmVudCBleHRlbmRzIFBvTWVudUJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgRG9DaGVjayB7XG4gIEBDb250ZW50Q2hpbGQoUG9NZW51SGVhZGVyVGVtcGxhdGVEaXJlY3RpdmUsIHsgc3RhdGljOiB0cnVlIH0pIG1lbnVIZWFkZXJUZW1wbGF0ZTogUG9NZW51SGVhZGVyVGVtcGxhdGVEaXJlY3RpdmU7XG5cbiAgYWN0aXZlTWVudUl0ZW06IFBvTWVudUl0ZW07XG4gIGNvbGxhcHNlZE1vYmlsZTogYm9vbGVhbjtcbiAgZmlsdGVyTG9hZGluZyA9IGZhbHNlO1xuICBncm91cGVkTWVudUl0ZW06IFBvTWVudUl0ZW07XG4gIGlkID0gdXVpZCgpO1xuICBsaW5rQWN0aXZlOiBzdHJpbmc7XG4gIG1vYmlsZU9wZW5lZDogYm9vbGVhbiA9IGZhbHNlO1xuICBub0RhdGE6IGJvb2xlYW4gPSBmYWxzZTtcbiAgdGltZW91dEZpbHRlcjogYW55O1xuXG4gIHByaXZhdGUgZmlsdGVyaW5nSXRlbXM6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHJpdmF0ZSBtZW51SW5pdGlhbGl6ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHJpdmF0ZSBtZW51UHJldmlvdXMgPSBudWxsO1xuICBwcml2YXRlIHJlc2l6ZUxpc3RlbmVyOiAoKSA9PiB2b2lkO1xuXG4gIHByaXZhdGUgaXRlbVN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuICBwcml2YXRlIHJvdXRlU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGNoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIGVsZW1lbnQ6IEVsZW1lbnRSZWYsXG4gICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJpdmF0ZSBtZW51SXRlbXNTZXJ2aWNlOiBQb01lbnVJdGVtc1NlcnZpY2UsXG4gICAgbWVudUdsb2JhbFNlcnZpY2U6IFBvTWVudUdsb2JhbFNlcnZpY2UsXG4gICAgbWVudVNlcnZpY2U6IFBvTWVudVNlcnZpY2UsXG4gICAgbGFuZ3VhZ2VTZXJ2aWNlOiBQb0xhbmd1YWdlU2VydmljZVxuICApIHtcbiAgICBzdXBlcihtZW51R2xvYmFsU2VydmljZSwgbWVudVNlcnZpY2UsIGxhbmd1YWdlU2VydmljZSk7XG4gIH1cblxuICBwcml2YXRlIGdldCBpc0FjdGl2ZUl0ZW1NZW51U3ViTWVudSgpIHtcbiAgICByZXR1cm4gdGhpcy5hY3RpdmVNZW51SXRlbVsnbGV2ZWwnXSA+IHRoaXMuZ3JvdXBlZE1lbnVJdGVtWydsZXZlbCddO1xuICB9XG5cbiAgZ2V0IGVuYWJsZUNvbGxhcHNlKCkge1xuICAgIHJldHVybiB0aGlzLmlzQ29sbGFwc2VkICYmICF0aGlzLmNvbGxhcHNlZE1vYmlsZTtcbiAgfVxuXG4gIGdldCBlbmFibGVDb2xsYXBzZUJ1dHRvbigpIHtcbiAgICByZXR1cm4gdGhpcy5hbGxvd0NvbGxhcHNlTWVudSAmJiAhdGhpcy5jb2xsYXBzZWQgJiYgIXRoaXMubW9iaWxlT3BlbmVkO1xuICB9XG5cbiAgZ2V0IGhhc0Zvb3RlcigpIHtcbiAgICByZXR1cm4gdGhpcy5lbmFibGVDb2xsYXBzZUJ1dHRvbiB8fCB0aGlzLmVuYWJsZUNvbGxhcHNlO1xuICB9XG5cbiAgZ2V0IGlzQ29sbGFwc2VkKCkge1xuICAgIHJldHVybiB0aGlzLmFsbG93Q29sbGFwc2VNZW51ICYmIHRoaXMuY29sbGFwc2VkO1xuICB9XG5cbiAgbmdEb0NoZWNrKCkge1xuICAgIGlmICh0aGlzLmZpbHRlcmluZ0l0ZW1zICYmIHRoaXMuZmlsdGVyKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgbWVudUN1cnJlbnQgPSB0aGlzLnN0cmluZ2lmeSh0aGlzLm1lbnVzKTtcblxuICAgIGlmICh0aGlzLm1lbnVQcmV2aW91cyAhPT0gbWVudUN1cnJlbnQgfHwgIXRoaXMubWVudUluaXRpYWxpemVkKSB7XG4gICAgICB0aGlzLnVwZGF0ZU1lbnUoKTtcbiAgICAgIHRoaXMudmFsaWRhdGVDb2xsYXBzZUNsYXNzKCk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5pdGVtU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy5yb3V0ZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuXG4gICAgaWYgKHRoaXMucmVzaXplTGlzdGVuZXIpIHtcbiAgICAgIHRoaXMucmVzaXplTGlzdGVuZXIoKTtcbiAgICB9XG5cbiAgICB0aGlzLm1lbnVHbG9iYWxTZXJ2aWNlLnNlbmRSZW1vdmVkQXBwbGljYXRpb25NZW51KHRoaXMuaWQpO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5zdWJzY3JpYmVUb01lbnVJdGVtKCk7XG4gICAgdGhpcy5zdWJzY3JpYmVUb1JvdXRlKCk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy5tZW51R2xvYmFsU2VydmljZS5zZW5kQXBwbGljYXRpb25NZW51KHRoaXMpO1xuICB9XG5cbiAgYWN0aXZhdGVNZW51QnlVcmwodXJsUGF0aDogc3RyaW5nLCBtZW51czogQXJyYXk8UG9NZW51SXRlbT4pIHtcbiAgICBpZiAobWVudXMpIHtcbiAgICAgIGNvbnN0IHVybFBhdGhXaXRob3V0TGFzdEZyYWdtZW50ID0gdXJsUGF0aC5zdWJzdHIoMCwgdXJsUGF0aC5sYXN0SW5kZXhPZignLycpKTtcbiAgICAgIHJldHVybiBtZW51cy5zb21lKG1lbnUgPT4ge1xuICAgICAgICBjb25zdCBmb3JtYXR0ZWRNZW51TGluayA9IGdldEZvcm1hdHRlZExpbmsobWVudS5saW5rKTtcbiAgICAgICAgY29uc3QgbWVudUxpbmtQYXRoID0gYCR7dXJsUGF0aFdpdGhvdXRMYXN0RnJhZ21lbnR9JHtmb3JtYXR0ZWRNZW51TGluay5zdWJzdHIoXG4gICAgICAgICAgZm9ybWF0dGVkTWVudUxpbmsubGFzdEluZGV4T2YoJy8nKVxuICAgICAgICApfWA7XG5cbiAgICAgICAgaWYgKG1lbnVMaW5rUGF0aCA9PT0gdXJsUGF0aCAmJiBtZW51TGlua1BhdGggPT09IGZvcm1hdHRlZE1lbnVMaW5rKSB7XG4gICAgICAgICAgdGhpcy5saW5rQWN0aXZlID0gZm9ybWF0dGVkTWVudUxpbms7XG4gICAgICAgICAgdGhpcy5hY3RpdmF0ZU1lbnVJdGVtKG1lbnUpO1xuICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiB0aGlzLmFjdGl2YXRlTWVudUJ5VXJsKHVybFBhdGgsIG1lbnUuc3ViSXRlbXMpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBjaGVja0FjdGl2ZU1lbnVCeVVybCh1cmxQYXRoOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMubGlua0FjdGl2ZSB8fCB0aGlzLmxpbmtBY3RpdmUgIT09IHVybFBhdGgpIHtcbiAgICAgIHRoaXMuYWN0aXZhdGVNZW51QnlVcmwodXJsUGF0aCwgdGhpcy5tZW51cyk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIDxhIGlkPVwiY29sYXBzZU1ldGhvZFwiPjwvYT5cbiAgICpcbiAgICogKk3DqXRvZG8gcGFyYSBjb2xhcHNhciAocmV0cmFpcikgbyBtZW51LlxuICAgKi9cbiAgY29sbGFwc2UoKSB7XG4gICAgdGhpcy52YWxpZGF0ZVRvZ2dsZU1lbnUodHJ1ZSk7XG4gIH1cblxuICBkZWJvdW5jZUZpbHRlcihmaWx0ZXI6IHN0cmluZykge1xuICAgIGNsZWFyVGltZW91dCh0aGlzLnRpbWVvdXRGaWx0ZXIpO1xuXG4gICAgdGhpcy50aW1lb3V0RmlsdGVyID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLmZpbHRlclByb2Nlc3MoZmlsdGVyKTtcbiAgICB9LCBwb01lbnVEZWJvdW5jZVRpbWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIDxhIGlkPVwiZXhwYW5kTWV0aG9kXCI+PC9hPlxuICAgKlxuICAgKiAqTcOpdG9kbyBwYXJhIGV4cGFuZGlyIChhdW1lbnRhcikgbyBtZW51LlxuICAgKi9cbiAgZXhwYW5kKCkge1xuICAgIHRoaXMudmFsaWRhdGVUb2dnbGVNZW51KGZhbHNlKTtcbiAgfVxuXG4gIHN1YnNjcmliZVRvTWVudUl0ZW0oKSB7XG4gICAgdGhpcy5pdGVtU3Vic2NyaXB0aW9uID0gdGhpcy5tZW51SXRlbXNTZXJ2aWNlLnJlY2VpdmVGcm9tQ2hpbGRNZW51Q2xpY2tlZCgpLnN1YnNjcmliZSgobWVudTogUG9NZW51SXRlbSkgPT4ge1xuICAgICAgdGhpcy5jbGlja01lbnVJdGVtKG1lbnUpO1xuICAgIH0pO1xuICB9XG5cbiAgc3Vic2NyaWJlVG9Sb3V0ZSgpIHtcbiAgICB0aGlzLnJvdXRlU3Vic2NyaXB0aW9uID0gdGhpcy5yb3V0ZXIuZXZlbnRzLnN1YnNjcmliZSh2YWwgPT4ge1xuICAgICAgaWYgKHZhbCBpbnN0YW5jZW9mIE5hdmlnYXRpb25FbmQgfHwgdmFsIGluc3RhbmNlb2YgTmF2aWdhdGlvbkNhbmNlbCkge1xuICAgICAgICBjb25zdCB1cmxSb3V0ZXIgPSB0aGlzLmNoZWNraW5nUm91dGVyQ2hpbGRyZW5GcmFnbWVudHMoKTtcbiAgICAgICAgdGhpcy5jaGVja0FjdGl2ZU1lbnVCeVVybCh1cmxSb3V0ZXIpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIDxhIGlkPVwidG9nZ2xlTWV0aG9kXCI+PC9hPlxuICAgKiAqTcOpdG9kbyBxdWUgY29sYXBzYSBlIGV4cGFuZGUgbyBtZW51IGFsdGVybmFkYW1lbnRlLlxuICAgKlxuICAgKiA+ICpPcyBtw6l0b2RvcyBhcGVuYXMgdsOjbyBjb2xhcHNhci9leHBhbmRpciBvIG1lbnUgc2U6XG4gICAqICAtIFRvZG9zIG9zIGl0ZW5zIGRlIG1lbnUgdGl2ZXJlbSB2YWxvciBuYXMgcHJvcHJpZWRhZGVzIGBpY29uYCBlIGBzaG9ydExhYmVsYC5cbiAgICovXG4gIHRvZ2dsZSgpIHtcbiAgICB0aGlzLnZhbGlkYXRlVG9nZ2xlTWVudSghdGhpcy5jb2xsYXBzZWQpO1xuICB9XG5cbiAgdG9nZ2xlTWVudU1vYmlsZSgpOiB2b2lkIHtcbiAgICB0aGlzLm1vYmlsZU9wZW5lZCA9ICF0aGlzLm1vYmlsZU9wZW5lZDtcbiAgICB0aGlzLmNvbGxhcHNlZE1vYmlsZSA9IHRoaXMuY29sbGFwc2VkICYmIHRoaXMubW9iaWxlT3BlbmVkO1xuXG4gICAgdGhpcy52YWxpZGF0ZUNvbGxhcHNlQ2xhc3ModGhpcy5jb2xsYXBzZWRNb2JpbGUpO1xuXG4gICAgaWYgKGlzTW9iaWxlKCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5tb2JpbGVPcGVuZWQpIHtcbiAgICAgIHRoaXMuY3JlYXRlUmVzaXplTGlzdGVuZXIoKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgY2hlY2tpbmdSb3V0ZXJDaGlsZHJlbkZyYWdtZW50cygpIHtcbiAgICBjb25zdCBjaGlsZHJlblByaW1hcnkgPSB0aGlzLnJvdXRlci5wYXJzZVVybCh0aGlzLnJvdXRlci51cmwpLnJvb3QuY2hpbGRyZW5bJ3ByaW1hcnknXTtcblxuICAgIHJldHVybiBjaGlsZHJlblByaW1hcnkgPyBgLyR7Y2hpbGRyZW5QcmltYXJ5LnNlZ21lbnRzLm1hcChpdCA9PiBpdC5wYXRoKS5qb2luKCcvJyl9YCA6ICcnO1xuICB9XG5cbiAgcHJvdGVjdGVkIHZhbGlkYXRlQ29sbGFwc2VDbGFzcyhjb2xsYXBzZWRNb2JpbGU6IGJvb2xlYW4gPSBmYWxzZSkge1xuICAgIGNvbnN0IHdyYXBwZXIgPSB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudC5wYXJlbnROb2RlO1xuICAgIHRoaXMucmVuZGVyZXJbdGhpcy5pc0NvbGxhcHNlZCAmJiAhY29sbGFwc2VkTW9iaWxlID8gJ2FkZENsYXNzJyA6ICdyZW1vdmVDbGFzcyddKHdyYXBwZXIsICdwby1jb2xsYXBzZWQtbWVudScpO1xuICB9XG5cbiAgcHJpdmF0ZSBhY3RpdmF0ZUNvbGxhcHNlU3ViTWVudUl0ZW0oKSB7XG4gICAgdGhpcy5jbGVhckdyb3VwTWVudUlmRmlyc3RMZXZlbCh0aGlzLmFjdGl2ZU1lbnVJdGVtKTtcblxuICAgIGlmICghdGhpcy5jb2xsYXBzZWQgJiYgdGhpcy5hY3RpdmVNZW51SXRlbVsnbGV2ZWwnXSA+IHBvTWVudVJvb3RMZXZlbCAmJiB0aGlzLmlzQWN0aXZlSXRlbU1lbnVTdWJNZW51KSB7XG4gICAgICB0aGlzLm9wZW5QYXJlbnRNZW51KHRoaXMuYWN0aXZlTWVudUl0ZW0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYWN0aXZhdGVNZW51SXRlbShtZW51OiBQb01lbnVJdGVtKTogdm9pZCB7XG4gICAgdGhpcy5hY3RpdmVNZW51SXRlbSA9IG1lbnU7XG4gICAgdGhpcy5saW5rQWN0aXZlID0gbWVudS5saW5rO1xuICAgIGlmICh0aGlzLmFjdGl2ZU1lbnVJdGVtWydsZXZlbCddID4gcG9NZW51Um9vdExldmVsKSB7XG4gICAgICB0aGlzLm9wZW5QYXJlbnRNZW51KHRoaXMuYWN0aXZlTWVudUl0ZW0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmdyb3VwZWRNZW51SXRlbSA9IG51bGw7XG4gICAgfVxuICAgIHRoaXMubWVudUl0ZW1zU2VydmljZS5zZW5kVG9DaGlsZE1lbnVDbGlja2VkKHtcbiAgICAgIGFjdGl2ZTogdGhpcy5hY3RpdmVNZW51SXRlbSxcbiAgICAgIGdyb3VwZWQ6IHRoaXMuZ3JvdXBlZE1lbnVJdGVtLFxuICAgICAgYWN0aXZhdGVkQnlSb3V0ZTogdHJ1ZVxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBhcmVTdWJNZW51cyhtZW51czogQXJyYXk8UG9NZW51SXRlbT4pIHtcbiAgICByZXR1cm4gbWVudXMuZXZlcnkobWVudSA9PiBtZW51WydsZXZlbCddID4gcG9NZW51Um9vdExldmVsKTtcbiAgfVxuXG4gIHByaXZhdGUgY2xlYXJHcm91cE1lbnVJZkZpcnN0TGV2ZWwoYWN0aXZlTWVudUl0ZW06IFBvTWVudUl0ZW0pIHtcbiAgICBpZiAoYWN0aXZlTWVudUl0ZW1bJ2xldmVsJ10gPT09IHBvTWVudVJvb3RMZXZlbCkge1xuICAgICAgdGhpcy5ncm91cGVkTWVudUl0ZW0gPSB1bmRlZmluZWQ7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBjbGlja01lbnVJdGVtKG1lbnU6IFBvTWVudUl0ZW0pIHtcbiAgICBpZiAobWVudS5hY3Rpb24pIHtcbiAgICAgIHRoaXMuZXhlY3V0ZU1lbnVBY3Rpb24obWVudSk7XG4gICAgfVxuXG4gICAgaWYgKG1lbnVbJ3R5cGUnXSA9PT0gJ2V4dGVybmFsTGluaycpIHtcbiAgICAgIG9wZW5FeHRlcm5hbExpbmsobWVudS5saW5rKTtcbiAgICB9IGVsc2UgaWYgKG1lbnVbJ3R5cGUnXSA9PT0gJ2ludGVybmFsTGluaycpIHtcbiAgICAgIHRoaXMuYWN0aXZhdGVNZW51SXRlbShtZW51KTtcbiAgICB9IGVsc2UgaWYgKG1lbnVbJ3R5cGUnXSA9PT0gJ3N1Ykl0ZW1zJykge1xuICAgICAgaWYgKHRoaXMuZmlsdGVyaW5nSXRlbXMpIHtcbiAgICAgICAgdGhpcy5maWx0ZXJpbmdJdGVtcyA9IGZhbHNlO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmdyb3VwTWVudUl0ZW0obWVudSk7XG4gICAgfVxuXG4gICAgaWYgKG1lbnVbJ3R5cGUnXSAhPT0gJ3N1Ykl0ZW1zJykge1xuICAgICAgdGhpcy5tb2JpbGVPcGVuZWQgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNvbnZlcnRUb01lbnVJdGVtRmlsdGVyZWQobWVudUl0ZW06IGFueSA9IHsgbGFiZWw6ICcnLCBsaW5rOiAnJyB9KTogUG9NZW51SXRlbUZpbHRlcmVkIHtcbiAgICBjb25zdCB7IGxhYmVsLCBsaW5rIH0gPSBtZW51SXRlbTtcblxuICAgIGNvbnN0IG1lbnVJdGVtRmlsdGVyZWQ6IFBvTWVudUl0ZW1GaWx0ZXJlZCA9IHsgbGFiZWwsIGxpbmsgfTtcblxuICAgIHRoaXMuc2V0TWVudUl0ZW1Qcm9wZXJ0aWVzKG1lbnVJdGVtRmlsdGVyZWQpO1xuXG4gICAgcmV0dXJuIG1lbnVJdGVtRmlsdGVyZWQ7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZVJlc2l6ZUxpc3RlbmVyKCkge1xuICAgIHRoaXMucmVzaXplTGlzdGVuZXIgPSB0aGlzLnJlbmRlcmVyLmxpc3Rlbignd2luZG93JywgJ3Jlc2l6ZScsICgpID0+IHtcbiAgICAgIHRoaXMudG9nZ2xlUmVzaXplKCk7XG4gICAgICB0aGlzLnJlc2l6ZUxpc3RlbmVyKCk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGV4ZWN1dGVNZW51QWN0aW9uKG1lbnU6IFBvTWVudUl0ZW0pOiB2b2lkIHtcbiAgICBtZW51LmFjdGlvbihtZW51KTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZmlsdGVySXRlbXMoZmlsdGVyOiBzdHJpbmcpIHtcbiAgICBjb25zdCB0cmltRmlsdGVyID0gZmlsdGVyICYmIGZpbHRlci50cmltKCk7XG5cbiAgICBpZiAodHJpbUZpbHRlcikge1xuICAgICAgdGhpcy5maWx0ZXJlZEl0ZW1zID0gW107XG4gICAgICB0aGlzLmZpbHRlcmVkSXRlbXMgPSB0aGlzLmZpbHRlclNlcnZpY2VcbiAgICAgICAgPyBhd2FpdCB0aGlzLmZpbHRlck9uU2VydmljZSh0cmltRmlsdGVyKVxuICAgICAgICA6IHRoaXMuZmlsdGVyTG9jYWxJdGVtcyh0cmltRmlsdGVyKTtcbiAgICAgIHRoaXMuZmlsdGVyaW5nSXRlbXMgPSB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmZpbHRlcmVkSXRlbXMgPSBbLi4udGhpcy5tZW51c107XG4gICAgICB0aGlzLmZpbHRlcmluZ0l0ZW1zID0gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBmaWx0ZXJMb2NhbEl0ZW1zKGZpbHRlcjogc3RyaW5nKSB7XG4gICAgY29uc3QgZmlsdGVyZWRJdGVtcyA9IFtdO1xuXG4gICAgdGhpcy5maW5kSXRlbXModGhpcy5tZW51cywgZmlsdGVyLnRvTG93ZXJDYXNlKCksIGZpbHRlcmVkSXRlbXMpO1xuXG4gICAgcmV0dXJuIGZpbHRlcmVkSXRlbXM7XG4gIH1cblxuICBwcml2YXRlIGZpbHRlclByb2Nlc3MoZmlsdGVyOiBzdHJpbmcpIHtcbiAgICB0aGlzLmZpbHRlckxvYWRpbmcgPSB0cnVlO1xuXG4gICAgdGhpcy5maWx0ZXJJdGVtcyhmaWx0ZXIpXG4gICAgICAudGhlbigoKSA9PiB7XG4gICAgICAgIHRoaXMuZmlsdGVyTG9hZGluZyA9IGZhbHNlO1xuXG4gICAgICAgIHRoaXMuc2hvd05vRGF0YSgpO1xuICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgdGhpcy5tZW51SXRlbXNTZXJ2aWNlLnNlbmRUb0NoaWxkTWVudUNsaWNrZWQoeyBhY3RpdmU6IHRoaXMuYWN0aXZlTWVudUl0ZW0sIGdyb3VwZWQ6IHRoaXMuZ3JvdXBlZE1lbnVJdGVtIH0pO1xuICAgICAgfSlcbiAgICAgIC5jYXRjaChlcnJvciA9PiB7XG4gICAgICAgIHRoaXMuZmlsdGVyTG9hZGluZyA9IGZhbHNlO1xuICAgICAgICBQcm9taXNlLnJlamVjdChlcnJvcik7XG4gICAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZmlsdGVyT25TZXJ2aWNlKHNlYXJjaDogc3RyaW5nID0gJycpIHtcbiAgICBpZiAoc2VhcmNoLmxlbmd0aCA+PSBwb01lbnVNaW5MZW5ndGgpIHtcbiAgICAgIHJldHVybiBhd2FpdCB0aGlzLmZpbHRlclNlcnZpY2VcbiAgICAgICAgLmdldEZpbHRlcmVkRGF0YShzZWFyY2gsIHRoaXMucGFyYW1zKVxuICAgICAgICAucGlwZShtYXAobWVudUl0ZW1zRmlsdGVyZWQgPT4gbWVudUl0ZW1zRmlsdGVyZWQubWFwKG1lbnVJdGVtID0+IHRoaXMuY29udmVydFRvTWVudUl0ZW1GaWx0ZXJlZChtZW51SXRlbSkpKSlcbiAgICAgICAgLnRvUHJvbWlzZSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdGhpcy5maWx0ZXJlZEl0ZW1zO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZmluZEl0ZW1zKG1lbnVzOiBBcnJheTxQb01lbnVJdGVtPiwgZmlsdGVyOiBzdHJpbmcsIGZpbHRlcmVkSXRlbXM6IEFycmF5PGFueT4pIHtcbiAgICBtZW51cy5mb3JFYWNoKG1lbnUgPT4ge1xuICAgICAgY29uc3QgaGFzQWN0aW9uID0gbWVudS5hY3Rpb24gfHwgbWVudS5saW5rO1xuICAgICAgY29uc3QgbGFiZWxIYXNGaWx0ZXIgPSBtZW51LmxhYmVsLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoZmlsdGVyKTtcblxuICAgICAgaWYgKGxhYmVsSGFzRmlsdGVyICYmIGhhc0FjdGlvbikge1xuICAgICAgICBjb25zdCBuZXdNZW51ID0geyAuLi5tZW51IH07XG5cbiAgICAgICAgaWYgKG5ld01lbnUuc3ViSXRlbXM/Lmxlbmd0aCkge1xuICAgICAgICAgIGRlbGV0ZSBuZXdNZW51LnN1Ykl0ZW1zO1xuICAgICAgICAgIG5ld01lbnVbJ3R5cGUnXSA9IHRoaXMuc2V0TWVudVR5cGUobmV3TWVudSk7XG4gICAgICAgIH1cblxuICAgICAgICBmaWx0ZXJlZEl0ZW1zLnB1c2gobmV3TWVudSk7XG4gICAgICB9XG5cbiAgICAgIGlmIChtZW51LnN1Ykl0ZW1zKSB7XG4gICAgICAgIHRoaXMuZmluZEl0ZW1zKG1lbnUuc3ViSXRlbXMsIGZpbHRlciwgZmlsdGVyZWRJdGVtcyk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGZpbmRQYXJlbnQobWVudXM6IEFycmF5PFBvTWVudUl0ZW0+LCBtZW51SXRlbTogUG9NZW51SXRlbSk6IFBvTWVudUl0ZW0ge1xuICAgIGNvbnN0IGdldFBhcmVudCA9IGZ1bmN0aW9uIChtZW51SXRlbXM6IEFycmF5PFBvTWVudUl0ZW0+LCBpZCkge1xuICAgICAgaWYgKG1lbnVJdGVtcykge1xuICAgICAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgbWVudUl0ZW1zLmxlbmd0aDsgaW5kZXgrKykge1xuICAgICAgICAgIGNvbnN0IG1lbnUgPSBtZW51SXRlbXNbaW5kZXhdO1xuICAgICAgICAgIGlmIChtZW51LnN1Ykl0ZW1zICYmIG1lbnUuc3ViSXRlbXMuZmluZChzdWJJdGVtID0+IHN1Ykl0ZW1bJ2lkJ10gPT09IGlkKSkge1xuICAgICAgICAgICAgcmV0dXJuIG1lbnU7XG4gICAgICAgICAgfVxuICAgICAgICAgIGNvbnN0IGZvdW5kID0gZ2V0UGFyZW50KG1lbnUuc3ViSXRlbXMsIGlkKTtcbiAgICAgICAgICBpZiAoZm91bmQpIHtcbiAgICAgICAgICAgIHJldHVybiBmb3VuZDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9O1xuICAgIHJldHVybiBnZXRQYXJlbnQobWVudXMsIG1lbnVJdGVtWydpZCddKTtcbiAgfVxuXG4gIHByaXZhdGUgZmluZFJvb3RQYXJlbnQobWVudXM6IEFycmF5PFBvTWVudUl0ZW0+LCBtZW51OiBQb01lbnVJdGVtKTogUG9NZW51SXRlbSB7XG4gICAgY29uc3QgZmluZFBhcmVudCA9IHRoaXMuZmluZFBhcmVudDtcblxuICAgIGNvbnN0IGdldFJvb3RQYXJlbnQgPSBmdW5jdGlvbiAobWVudUl0ZW1zOiBBcnJheTxQb01lbnVJdGVtPiwgbWVudUl0ZW0pOiBQb01lbnVJdGVtIHtcbiAgICAgIGxldCBwYXJlbnQgPSBmaW5kUGFyZW50KG1lbnVJdGVtcywgbWVudUl0ZW0pO1xuXG4gICAgICBpZiAocGFyZW50WydsZXZlbCddICE9PSBwb01lbnVSb290TGV2ZWwpIHtcbiAgICAgICAgcGFyZW50ID0gZ2V0Um9vdFBhcmVudChtZW51SXRlbXMsIHBhcmVudCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gcGFyZW50O1xuICAgIH07XG4gICAgcmV0dXJuIGdldFJvb3RQYXJlbnQobWVudXMsIG1lbnUpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRBY3RpdmVNZW51UGFyZW50KG1lbnVzOiBBcnJheTxQb01lbnVJdGVtPiwgYWN0aXZlTWVudUl0ZW06IFBvTWVudUl0ZW0sIGdyb3VwZWRNZW51SXRlbTogUG9NZW51SXRlbSkge1xuICAgIGlmICh0aGlzLmFyZVN1Yk1lbnVzKFtncm91cGVkTWVudUl0ZW0sIGFjdGl2ZU1lbnVJdGVtXSkpIHtcbiAgICAgIHJldHVybiB0aGlzLmZpbmRSb290UGFyZW50KG1lbnVzLCBhY3RpdmVNZW51SXRlbSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBncm91cE1lbnVJdGVtKG1lbnU6IFBvTWVudUl0ZW0pOiB2b2lkIHtcbiAgICBpZiAodGhpcy5jb2xsYXBzZWQpIHtcbiAgICAgIHRoaXMudG9nZ2xlTWVudUNvbGxhcHNlKCk7XG4gICAgfVxuXG4gICAgbWVudVsnaXNPcGVuZWQnXSA9ICFtZW51Wydpc09wZW5lZCddO1xuICAgIHRoaXMuZ3JvdXBlZE1lbnVJdGVtID0gbWVudTtcblxuICAgIGlmIChcbiAgICAgIHRoaXMuYWN0aXZlTWVudUl0ZW0gJiZcbiAgICAgIG1lbnVbJ2lzT3BlbmVkJ10gJiZcbiAgICAgIHRoaXMuaXNBY3RpdmVJdGVtTWVudVN1Yk1lbnUgJiZcbiAgICAgIHRoaXMuaXNSb290TWVudUVxdWFsR3JvdXBlZE1lbnUodGhpcy5tZW51cywgdGhpcy5hY3RpdmVNZW51SXRlbSwgbWVudSlcbiAgICApIHtcbiAgICAgIHRoaXMuYWN0aXZhdGVNZW51SXRlbSh0aGlzLmFjdGl2ZU1lbnVJdGVtKTtcbiAgICB9XG5cbiAgICB0aGlzLm1lbnVJdGVtc1NlcnZpY2Uuc2VuZFRvQ2hpbGRNZW51Q2xpY2tlZCh7IGFjdGl2ZTogdGhpcy5hY3RpdmVNZW51SXRlbSwgZ3JvdXBlZDogdGhpcy5ncm91cGVkTWVudUl0ZW0gfSk7XG4gIH1cblxuICBwcml2YXRlIGlzUm9vdE1lbnVFcXVhbEdyb3VwZWRNZW51KFxuICAgIG1lbnVzOiBBcnJheTxQb01lbnVJdGVtPixcbiAgICBhY3RpdmVNZW51SXRlbTogUG9NZW51SXRlbSxcbiAgICBncm91cGVkTWVudUl0ZW06IFBvTWVudUl0ZW1cbiAgKSB7XG4gICAgY29uc3QgYWN0aXZlTWVudVJvb3RQYXJlbnQgPSB0aGlzLmZpbmRSb290UGFyZW50KG1lbnVzLCBhY3RpdmVNZW51SXRlbSk7XG4gICAgcmV0dXJuIGFjdGl2ZU1lbnVSb290UGFyZW50WydpZCddID09PSBncm91cGVkTWVudUl0ZW1bJ2lkJ107XG4gIH1cblxuICBwcml2YXRlIG9wZW5QYXJlbnRNZW51KGNoaWxkTWVudTogUG9NZW51SXRlbSk6IHZvaWQge1xuICAgIGNvbnN0IHBhcmVudCA9IHRoaXMuZmluZFBhcmVudCh0aGlzLm1lbnVzLCBjaGlsZE1lbnUpO1xuICAgIHBhcmVudFsnaXNPcGVuZWQnXSA9IHRydWU7XG4gICAgdGhpcy5ncm91cGVkTWVudUl0ZW0gPSBwYXJlbnQ7XG4gIH1cblxuICBwcml2YXRlIHNob3dOb0RhdGEoKSB7XG4gICAgdGhpcy5ub0RhdGEgPSB0aGlzLmZpbHRlcmVkSXRlbXMubGVuZ3RoID09PSAwO1xuICB9XG5cbiAgcHJpdmF0ZSBzdHJpbmdpZnkobWVudXM6IEFycmF5PFBvTWVudUl0ZW0+KTogc3RyaW5nIHtcbiAgICAvLyBuw6NvIGZheiBvIHN0cmluZ2lmeSBkYSBwcm9wcmllZGFkZSBpY29uLCBwb2lzIHBvZGUgY29udGVyIG9iamV0byBjb21wbGV4byBlIGRpc3BhcmFyIHVtIGVycm8uXG4gICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHRoaXMubWVudXMsIChrZXksIHZhbHVlKSA9PiB7XG4gICAgICBpZiAoa2V5ICE9PSAnaWNvbicpIHtcbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSB0b2dnbGVHcm91cGVkTWVudUl0ZW0oKSB7XG4gICAgdGhpcy5ncm91cGVkTWVudUl0ZW1bJ2lzT3BlbmVkJ10gPSAhdGhpcy5jb2xsYXBzZWQgJiYgdGhpcy5hbGxvd0NvbGxhcHNlTWVudTtcbiAgfVxuXG4gIHByaXZhdGUgdG9nZ2xlTWVudUNvbGxhcHNlKGNvbGxhcHNlZDogYm9vbGVhbiA9IGZhbHNlKSB7XG4gICAgdGhpcy5jb2xsYXBzZWQgPSBjb2xsYXBzZWQ7XG5cbiAgICBpZiAodGhpcy5ncm91cGVkTWVudUl0ZW0gJiYgdGhpcy5hY3RpdmVNZW51SXRlbSkge1xuICAgICAgdGhpcy5ncm91cGVkTWVudUl0ZW0gPVxuICAgICAgICB0aGlzLmdldEFjdGl2ZU1lbnVQYXJlbnQodGhpcy5tZW51cywgdGhpcy5hY3RpdmVNZW51SXRlbSwgdGhpcy5ncm91cGVkTWVudUl0ZW0pIHx8IHRoaXMuZ3JvdXBlZE1lbnVJdGVtO1xuICAgICAgdGhpcy50b2dnbGVHcm91cGVkTWVudUl0ZW0oKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5hY3RpdmVNZW51SXRlbSkge1xuICAgICAgdGhpcy5hY3RpdmF0ZUNvbGxhcHNlU3ViTWVudUl0ZW0oKTtcbiAgICAgIHRoaXMubWVudUl0ZW1zU2VydmljZS5zZW5kVG9DaGlsZE1lbnVDbGlja2VkKHtcbiAgICAgICAgYWN0aXZlOiB0aGlzLmFjdGl2ZU1lbnVJdGVtLFxuICAgICAgICBncm91cGVkOiB0aGlzLmdyb3VwZWRNZW51SXRlbSxcbiAgICAgICAgYWN0aXZhdGVkQnlSb3V0ZTogdHJ1ZVxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgdGhpcy51cGRhdGVNZW51KCk7XG4gIH1cblxuICBwcml2YXRlIHRvZ2dsZVJlc2l6ZSgpIHtcbiAgICBpZiAodGhpcy5tb2JpbGVPcGVuZWQpIHtcbiAgICAgIHRoaXMubW9iaWxlT3BlbmVkID0gZmFsc2U7XG4gICAgICB0aGlzLmNvbGxhcHNlZE1vYmlsZSA9IGZhbHNlO1xuICAgICAgdGhpcy52YWxpZGF0ZUNvbGxhcHNlQ2xhc3ModGhpcy5jb2xsYXBzZWRNb2JpbGUpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgdmFsaWRhdGVUb2dnbGVNZW51KGNvbGxhcHNlZDogYm9vbGVhbikge1xuICAgIGlmICghdGhpcy5hbGxvd0NvbGxhcHNlTWVudSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMudG9nZ2xlTWVudUNvbGxhcHNlKGNvbGxhcHNlZCk7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZU1lbnUoKSB7XG4gICAgdGhpcy5tZW51SW5pdGlhbGl6ZWQgPSB0cnVlO1xuICAgIHRoaXMuc2V0TWVudUV4dHJhUHJvcGVydGllcygpO1xuICAgIHRoaXMuZmlsdGVyZWRJdGVtcyA9IFsuLi50aGlzLm1lbnVzXTtcbiAgICB0aGlzLm1lbnVQcmV2aW91cyA9IHRoaXMuc3RyaW5naWZ5KHRoaXMubWVudXMpO1xuICAgIHRoaXMudmFsaWRhdGVNZW51cyh0aGlzLm1lbnVzKTtcbiAgfVxufVxuIiwiPGRpdiAqbmdJZj1cIm1vYmlsZU9wZW5lZFwiIGNsYXNzPVwicG8tbWVudS1vdmVybGF5XCIgKGNsaWNrKT1cInRvZ2dsZU1lbnVNb2JpbGUoKVwiPjwvZGl2PlxuPG5hdj5cbiAgPGRpdiBjbGFzcz1cInBvLW1lbnUtbW9iaWxlIHBvLWNsaWNrYWJsZVwiIChjbGljayk9XCJ0b2dnbGVNZW51TW9iaWxlKClcIj5cbiAgICA8c3BhbiBjbGFzcz1cInBvLWljb24gcG8taWNvbi1tZW51XCI+PC9zcGFuPlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwicG8tbWVudVwiIFtuZ0NsYXNzXT1cInsgJ3BvLW1lbnUtYW5pbWF0aW9uJzogbW9iaWxlT3BlbmVkIH1cIj5cbiAgICA8ZGl2IGNsYXNzPVwicG8tbWVudS1oZWFkZXJcIj5cbiAgICAgIDxkaXYgKm5nSWY9XCJsb2dvIHx8IChzaG9ydExvZ28gJiYgZW5hYmxlQ29sbGFwc2UpXCIgY2xhc3M9XCJwby1tZW51LWhlYWRlci1jb250YWluZXItbG9nb1wiPlxuICAgICAgICA8YSBocmVmPVwiLi9cIj5cbiAgICAgICAgICA8aW1nXG4gICAgICAgICAgICBbbmdDbGFzc109XCJlbmFibGVDb2xsYXBzZSA/ICdwby1tZW51LXNob3J0LWxvZ28nIDogJ3BvLW1lbnUtbG9nbydcIlxuICAgICAgICAgICAgW3NyY109XCJlbmFibGVDb2xsYXBzZSA/IHNob3J0TG9nbyB8fCBsb2dvIDogbG9nb1wiXG4gICAgICAgICAgICBbYWx0XT1cImxvZ29BbHRcIlxuICAgICAgICAgIC8+XG4gICAgICAgIDwvYT5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2ICpuZ0lmPVwiIWVuYWJsZUNvbGxhcHNlICYmIG1lbnVIZWFkZXJUZW1wbGF0ZVwiIGNsYXNzPVwicG8tbWVudS1oZWFkZXItdGVtcGxhdGVcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIm1lbnVIZWFkZXJUZW1wbGF0ZS50ZW1wbGF0ZVJlZlwiPjwvbmctY29udGFpbmVyPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxwby1tZW51LWZpbHRlciAqbmdJZj1cImZpbHRlciAmJiAhZW5hYmxlQ29sbGFwc2VcIiBbcC1sb2FkaW5nXT1cImZpbHRlckxvYWRpbmdcIiAocC1maWx0ZXIpPVwiZGVib3VuY2VGaWx0ZXIoJGV2ZW50KVwiPlxuICAgICAgPC9wby1tZW51LWZpbHRlcj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJwby1tZW51LWJvZHlcIj5cbiAgICAgIDwhLS0gSW5uZXIgZSBvdXRlciBwYXJhIGVzY29uZGVyIHNjcm9sbCAtLT5cbiAgICAgIDxkaXYgY2xhc3M9XCJwby1tZW51LW91dGVyXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJwby1tZW51LWlubmVyXCI+XG4gICAgICAgICAgPGRpdiAqbmdJZj1cIm5vRGF0YVwiIGNsYXNzPVwicG8tbWVudS1pdGVtLXdyYXBwZXJcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwby1tZW51LWl0ZW0tZmlyc3RcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBvLW1lbnUtaWNvbi1jb250YWluZXIgcG8tbWVudS1pdGVtLW5vLWRhdGFcIj5cbiAgICAgICAgICAgICAgICA8cG8taWNvbiBjbGFzcz1cInBvLWljb24gcG8taWNvbi1pbmZvIHBvLW1lbnUtaWNvbi1pdGVtIHBvLWxnLTJcIj48L3BvLWljb24+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBvLWxnLTEwIHBvLW1lbnUtaWNvbi1sYWJlbFwiPnt7IGxpdGVyYWxzLml0ZW1Ob3RGb3VuZCB9fTwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgbWVudSBvZiBmaWx0ZXJlZEl0ZW1zOyBsZXQgbWVudUluZGV4ID0gaW5kZXhcIiBjbGFzcz1cInBvLW1lbnUtaXRlbS13cmFwcGVyXCI+XG4gICAgICAgICAgICA8cG8tbWVudS1pdGVtXG4gICAgICAgICAgICAgIFtjbGFzcy5wby1tZW51LWl0ZW0tZmlyc3RdPVwibWVudUluZGV4ID09PSAwXCJcbiAgICAgICAgICAgICAgW3AtYWN0aW9uXT1cIm1lbnUuYWN0aW9uXCJcbiAgICAgICAgICAgICAgW3AtYmFkZ2UtYWxlcnRdPVwibWVudS5iYWRnZUFsZXJ0XCJcbiAgICAgICAgICAgICAgW3AtYmFkZ2UtY29sb3JdPVwibWVudS5iYWRnZSA/IG1lbnUuYmFkZ2UuY29sb3IgOiB1bmRlZmluZWRcIlxuICAgICAgICAgICAgICBbcC1iYWRnZS12YWx1ZV09XCJtZW51LmJhZGdlID8gbWVudS5iYWRnZS52YWx1ZSA6IHVuZGVmaW5lZFwiXG4gICAgICAgICAgICAgIFtwLWNvbGxhcHNlZC1tZW51XT1cImVuYWJsZUNvbGxhcHNlXCJcbiAgICAgICAgICAgICAgW3AtaWNvbl09XCJhbGxvd0ljb25zID8gbWVudS5pY29uIDogbnVsbFwiXG4gICAgICAgICAgICAgIFtwLWlkXT1cIm1lbnUuaWRcIlxuICAgICAgICAgICAgICBbcC1sYWJlbF09XCJtZW51LmxhYmVsXCJcbiAgICAgICAgICAgICAgW3AtbGV2ZWxdPVwibWVudS5sZXZlbFwiXG4gICAgICAgICAgICAgIFtwLWxpbmtdPVwibWVudS5saW5rXCJcbiAgICAgICAgICAgICAgW3Atc2hvcnQtbGFiZWxdPVwibWVudS5zaG9ydExhYmVsXCJcbiAgICAgICAgICAgICAgW3Atc3ViLWl0ZW1zXT1cIm1lbnUuc3ViSXRlbXNcIlxuICAgICAgICAgICAgICBbcC10eXBlXT1cIm1lbnUudHlwZVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICA8L3BvLW1lbnUtaXRlbT5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgKm5nSWY9XCJoYXNGb290ZXJcIiBjbGFzcz1cInBvLW1lbnUtZm9vdGVyXCI+XG4gICAgICA8YSBjbGFzcz1cInBvLW1lbnUtY29sbGFwc2UtYnV0dG9uLWljb24gcG8tY2xpY2thYmxlXCIgKGNsaWNrKT1cInRvZ2dsZSgpXCI+XG4gICAgICAgIDxzcGFuXG4gICAgICAgICAgY2xhc3M9XCJwby1pY29uXCJcbiAgICAgICAgICBbY2xhc3MucG8taWNvbi1tZW51LWNsb3NlXT1cImVuYWJsZUNvbGxhcHNlQnV0dG9uXCJcbiAgICAgICAgICBbY2xhc3MucG8taWNvbi1tZW51LW9wZW5dPVwiZW5hYmxlQ29sbGFwc2VcIlxuICAgICAgICA+XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgIDwvYT5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L25hdj5cbiJdfQ==
@@ -12,7 +12,7 @@ const _c0 = ["*"];
12
12
  * <po-modal-footer>
13
13
  * <po-button p-label="Close" (p-click)="modal.close()"> </po-button>
14
14
  * <po-button p-label="Clean" (p-click)="clean()"> </po-button>
15
- * <po-button p-label="Confirm" p-type="primary" (p-click)="confirm()"> </po-button>
15
+ * <po-button p-label="Confirm" p-kind="primary" (p-click)="confirm()"> </po-button>
16
16
  * </po-modal-footer>
17
17
  * </po-modal>
18
18
  * ```
@@ -49,4 +49,4 @@ PoModalFooterComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: PoMo
49
49
  type: Input,
50
50
  args: ['p-disabled-align']
51
51
  }] }); })();
52
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tbW9kYWwtZm9vdGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvY29tcG9uZW50cy9wby1tb2RhbC9wby1tb2RhbC1mb290ZXIvcG8tbW9kYWwtZm9vdGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvY29tcG9uZW50cy9wby1tb2RhbC9wby1tb2RhbC1mb290ZXIvcG8tbW9kYWwtZm9vdGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFFakQ7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBS0gsTUFBTSxPQUFPLHNCQUFzQjtJQUpuQztRQUtFOzs7Ozs7Ozs7O1dBVUc7UUFDd0Isa0JBQWEsR0FBYSxLQUFLLENBQUM7S0FDNUQ7OzRGQWJZLHNCQUFzQjt5RUFBdEIsc0JBQXNCOztRQ3RCbkMsOEJBQWtGO1FBQ2hGLGtCQUF5QjtRQUMzQixpQkFBTTs7UUFGdUIsaUVBQW9EOzt1RkRzQnBFLHNCQUFzQjtjQUpsQyxTQUFTOzJCQUNFLGlCQUFpQjtnQkFlQSxhQUFhO2tCQUF2QyxLQUFLO21CQUFDLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLyoqXG4gKiBAZGVzY3JpcHRpb25cbiAqXG4gKiBPIGNvbXBvbmVudGUgYHBvLW1vZGFsLWZvb3RlcmAgcG9kZSBzZXIgdXRpbGl6YWRvIHBhcmEgaW5jbHVpciBvcyBib3TDtWVzIGRlIGHDp8O1ZXMgbm8gcm9kYXDDqSBkYSBbYFBvTW9kYWxgXSgvZG9jdW1lbnRhdGlvbi9wby1tb2RhbCksIGJlbSBjb21vIHBhcmEgZGFyIGxpYmVyZGFkZSBhbyBkZXNlbnZvbHZlZG9yIGRlIGluY2x1aXIgb3V0cm9zIGl0ZW5zIG5lY2Vzc8Ohcmlvcy5cbiAqID4gQ29tbyBib2EgcHLDoXRpY2EsIGRldmUtc2Ugb2JzZXJ2YXIgYSB1dGlsaXphw6fDo28gZGUgYXBlbmFzIHVtIGJvdMOjbyBwcmltw6FyaW8uXG4gKlxuICogYGBgXG4gKiA8cG8tbW9kYWwgcC10aXRsZT1cIlRpdGxlIE1vZGFsXCIgI21vZGFsPlxuICogIDxwby1tb2RhbC1mb290ZXI+XG4gKiAgICA8cG8tYnV0dG9uIHAtbGFiZWw9XCJDbG9zZVwiIChwLWNsaWNrKT1cIm1vZGFsLmNsb3NlKClcIj4gPC9wby1idXR0b24+XG4gKiAgICA8cG8tYnV0dG9uIHAtbGFiZWw9XCJDbGVhblwiIChwLWNsaWNrKT1cImNsZWFuKClcIj4gPC9wby1idXR0b24+XG4gKiAgICA8cG8tYnV0dG9uIHAtbGFiZWw9XCJDb25maXJtXCIgcC10eXBlPVwicHJpbWFyeVwiIChwLWNsaWNrKT1cImNvbmZpcm0oKVwiPiA8L3BvLWJ1dHRvbj5cbiAqICA8L3BvLW1vZGFsLWZvb3Rlcj5cbiAqIDwvcG8tbW9kYWw+XG4gKiBgYGBcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncG8tbW9kYWwtZm9vdGVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3BvLW1vZGFsLWZvb3Rlci5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgUG9Nb2RhbEZvb3RlckNvbXBvbmVudCB7XG4gIC8qKlxuICAgKiBAb3B0aW9uYWxcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIERlc2FiaWxpdGEgbyBhbGluaGFtZW50byBwYWRyw6NvLCDDoCBkaXJlaXRhLCBkb3MgYm90w7VlcyBkZSBhw6fDtWVzIHF1ZSBmaWNhbSBubyByb2RhcMOpIGRhIFtgUG9Nb2RhbGBdKC9kb2N1bWVudGF0aW9uL3BvLW1vZGFsKS5cbiAgICpcbiAgICogPiBDYXNvIGEgcHJvcHJpZWRhZGUgZXN0ZWphIGhhYmlsaXRhZGEsIG8gYWxpbmhhbWVudG8gZGV2ZXLDoSBzZXIgYSBlc3F1ZXJkYSBlIHBvZGUgc2VyIHBlcnNvbmFsaXphZG8uXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICBASW5wdXQoJ3AtZGlzYWJsZWQtYWxpZ24nKSBkaXNhYmxlZEFsaWduPzogYm9vbGVhbiA9IGZhbHNlO1xufVxuIiwiPGRpdiBjbGFzcz1cInBvLW1vZGFsLWZvb3RlclwiIFtjbGFzcy5wby1tb2RhbC1mb290ZXItYWxpZ24tcmlnaHRdPVwiIWRpc2FibGVkQWxpZ25cIj5cbiAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuPC9kaXY+XG4iXX0=
52
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tbW9kYWwtZm9vdGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvY29tcG9uZW50cy9wby1tb2RhbC9wby1tb2RhbC1mb290ZXIvcG8tbW9kYWwtZm9vdGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvY29tcG9uZW50cy9wby1tb2RhbC9wby1tb2RhbC1mb290ZXIvcG8tbW9kYWwtZm9vdGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFFakQ7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBS0gsTUFBTSxPQUFPLHNCQUFzQjtJQUpuQztRQUtFOzs7Ozs7Ozs7O1dBVUc7UUFDd0Isa0JBQWEsR0FBYSxLQUFLLENBQUM7S0FDNUQ7OzRGQWJZLHNCQUFzQjt5RUFBdEIsc0JBQXNCOztRQ3RCbkMsOEJBQWtGO1FBQ2hGLGtCQUF5QjtRQUMzQixpQkFBTTs7UUFGdUIsaUVBQW9EOzt1RkRzQnBFLHNCQUFzQjtjQUpsQyxTQUFTOzJCQUNFLGlCQUFpQjtnQkFlQSxhQUFhO2tCQUF2QyxLQUFLO21CQUFDLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLyoqXG4gKiBAZGVzY3JpcHRpb25cbiAqXG4gKiBPIGNvbXBvbmVudGUgYHBvLW1vZGFsLWZvb3RlcmAgcG9kZSBzZXIgdXRpbGl6YWRvIHBhcmEgaW5jbHVpciBvcyBib3TDtWVzIGRlIGHDp8O1ZXMgbm8gcm9kYXDDqSBkYSBbYFBvTW9kYWxgXSgvZG9jdW1lbnRhdGlvbi9wby1tb2RhbCksIGJlbSBjb21vIHBhcmEgZGFyIGxpYmVyZGFkZSBhbyBkZXNlbnZvbHZlZG9yIGRlIGluY2x1aXIgb3V0cm9zIGl0ZW5zIG5lY2Vzc8Ohcmlvcy5cbiAqID4gQ29tbyBib2EgcHLDoXRpY2EsIGRldmUtc2Ugb2JzZXJ2YXIgYSB1dGlsaXphw6fDo28gZGUgYXBlbmFzIHVtIGJvdMOjbyBwcmltw6FyaW8uXG4gKlxuICogYGBgXG4gKiA8cG8tbW9kYWwgcC10aXRsZT1cIlRpdGxlIE1vZGFsXCIgI21vZGFsPlxuICogIDxwby1tb2RhbC1mb290ZXI+XG4gKiAgICA8cG8tYnV0dG9uIHAtbGFiZWw9XCJDbG9zZVwiIChwLWNsaWNrKT1cIm1vZGFsLmNsb3NlKClcIj4gPC9wby1idXR0b24+XG4gKiAgICA8cG8tYnV0dG9uIHAtbGFiZWw9XCJDbGVhblwiIChwLWNsaWNrKT1cImNsZWFuKClcIj4gPC9wby1idXR0b24+XG4gKiAgICA8cG8tYnV0dG9uIHAtbGFiZWw9XCJDb25maXJtXCIgcC1raW5kPVwicHJpbWFyeVwiIChwLWNsaWNrKT1cImNvbmZpcm0oKVwiPiA8L3BvLWJ1dHRvbj5cbiAqICA8L3BvLW1vZGFsLWZvb3Rlcj5cbiAqIDwvcG8tbW9kYWw+XG4gKiBgYGBcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncG8tbW9kYWwtZm9vdGVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3BvLW1vZGFsLWZvb3Rlci5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgUG9Nb2RhbEZvb3RlckNvbXBvbmVudCB7XG4gIC8qKlxuICAgKiBAb3B0aW9uYWxcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIERlc2FiaWxpdGEgbyBhbGluaGFtZW50byBwYWRyw6NvLCDDoCBkaXJlaXRhLCBkb3MgYm90w7VlcyBkZSBhw6fDtWVzIHF1ZSBmaWNhbSBubyByb2RhcMOpIGRhIFtgUG9Nb2RhbGBdKC9kb2N1bWVudGF0aW9uL3BvLW1vZGFsKS5cbiAgICpcbiAgICogPiBDYXNvIGEgcHJvcHJpZWRhZGUgZXN0ZWphIGhhYmlsaXRhZGEsIG8gYWxpbmhhbWVudG8gZGV2ZXLDoSBzZXIgYSBlc3F1ZXJkYSBlIHBvZGUgc2VyIHBlcnNvbmFsaXphZG8uXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICBASW5wdXQoJ3AtZGlzYWJsZWQtYWxpZ24nKSBkaXNhYmxlZEFsaWduPzogYm9vbGVhbiA9IGZhbHNlO1xufVxuIiwiPGRpdiBjbGFzcz1cInBvLW1vZGFsLWZvb3RlclwiIFtjbGFzcy5wby1tb2RhbC1mb290ZXItYWxpZ24tcmlnaHRdPVwiIWRpc2FibGVkQWxpZ25cIj5cbiAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuPC9kaXY+XG4iXX0=
@@ -28,7 +28,7 @@ function PoModalComponent_div_0_ng_template_13_po_button_1_Template(rf, ctx) { i
28
28
  i0.ɵɵelementEnd();
29
29
  } if (rf & 2) {
30
30
  const ctx_r8 = i0.ɵɵnextContext(3);
31
- i0.ɵɵproperty("p-disabled", ctx_r8.secondaryAction.disabled)("p-label", ctx_r8.secondaryAction.label)("p-loading", ctx_r8.secondaryAction.loading)("p-type", ctx_r8.getSecondaryActionButtonType());
31
+ i0.ɵɵproperty("p-disabled", ctx_r8.secondaryAction.disabled)("p-label", ctx_r8.secondaryAction.label)("p-loading", ctx_r8.secondaryAction.loading)("p-kind", ctx_r8.getSecondaryActionButtonType());
32
32
  } }
33
33
  function PoModalComponent_div_0_ng_template_13_Template(rf, ctx) { if (rf & 1) {
34
34
  const _r12 = i0.ɵɵgetCurrentView();
@@ -42,7 +42,7 @@ function PoModalComponent_div_0_ng_template_13_Template(rf, ctx) { if (rf & 1) {
42
42
  i0.ɵɵadvance(1);
43
43
  i0.ɵɵproperty("ngIf", ctx_r5.secondaryAction);
44
44
  i0.ɵɵadvance(1);
45
- i0.ɵɵproperty("p-disabled", ctx_r5.primaryAction.disabled)("p-label", ctx_r5.primaryAction.label)("p-loading", ctx_r5.primaryAction.loading)("p-type", ctx_r5.getPrimaryActionButtonType());
45
+ i0.ɵɵproperty("p-disabled", ctx_r5.primaryAction.disabled)("p-label", ctx_r5.primaryAction.label)("p-loading", ctx_r5.primaryAction.loading)("p-kind", ctx_r5.getPrimaryActionButtonType());
46
46
  } }
47
47
  function PoModalComponent_div_0_Template(rf, ctx) { if (rf & 1) {
48
48
  const _r14 = i0.ɵɵgetCurrentView();
@@ -121,7 +121,7 @@ export class PoModalComponent extends PoModalBaseComponent {
121
121
  return this.primaryAction.danger ? 'danger' : 'primary';
122
122
  }
123
123
  getSecondaryActionButtonType() {
124
- return this.secondaryAction && this.secondaryAction.danger && !this.primaryAction.danger ? 'danger' : 'default';
124
+ return this.secondaryAction && this.secondaryAction.danger && !this.primaryAction.danger ? 'danger' : 'secondary';
125
125
  }
126
126
  onClickOut(event) {
127
127
  if (this.clickOut && !this.modalContent.nativeElement.contains(event.target)) {
@@ -179,7 +179,7 @@ PoModalComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: PoModalCom
179
179
  } if (rf & 2) {
180
180
  let _t;
181
181
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.modalContent = _t.first);
182
- } }, features: [i0.ɵɵInheritDefinitionFeature], ngContentSelectors: _c2, decls: 1, vars: 1, consts: [["class", "po-modal", "tabindex", "0", 3, "keydown.esc", 4, "ngIf"], ["tabindex", "0", 1, "po-modal", 3, "keydown.esc"], [1, "po-modal-overlay"], [1, "po-modal-container", "po-pb-2", "po-pt-2", 3, "mousedown"], [1, "po-modal-vertical-align"], ["tabindex", "-1"], ["modalContent", ""], [1, "po-modal-header"], [1, "po-modal-title", "po-text-ellipsis"], ["class", "po-modal-header-close-button", "tabindex", "0", 3, "click", 4, "ngIf"], [1, "po-modal-body"], [4, "ngIf", "ngIfElse"], ["defaultModalFooterTemplate", ""], ["tabindex", "0", 1, "po-modal-header-close-button", 3, "click"], [1, "po-icon", "po-icon-close"], [3, "p-disabled", "p-label", "p-loading", "p-type", "p-click", 4, "ngIf"], [1, "po-button-modal-first-action", 3, "p-disabled", "p-label", "p-loading", "p-type", "p-click"], [3, "p-disabled", "p-label", "p-loading", "p-type", "p-click"]], template: function PoModalComponent_Template(rf, ctx) { if (rf & 1) {
182
+ } }, features: [i0.ɵɵInheritDefinitionFeature], ngContentSelectors: _c2, decls: 1, vars: 1, consts: [["class", "po-modal", "tabindex", "0", 3, "keydown.esc", 4, "ngIf"], ["tabindex", "0", 1, "po-modal", 3, "keydown.esc"], [1, "po-modal-overlay"], [1, "po-modal-container", "po-pb-2", "po-pt-2", 3, "mousedown"], [1, "po-modal-vertical-align"], ["tabindex", "-1"], ["modalContent", ""], [1, "po-modal-header"], [1, "po-modal-title", "po-text-ellipsis"], ["class", "po-modal-header-close-button", "tabindex", "0", 3, "click", 4, "ngIf"], [1, "po-modal-body"], [4, "ngIf", "ngIfElse"], ["defaultModalFooterTemplate", ""], ["tabindex", "0", 1, "po-modal-header-close-button", 3, "click"], [1, "po-icon", "po-icon-close"], [3, "p-disabled", "p-label", "p-loading", "p-kind", "p-click", 4, "ngIf"], [1, "po-button-modal-first-action", 3, "p-disabled", "p-label", "p-loading", "p-kind", "p-click"], [3, "p-disabled", "p-label", "p-loading", "p-kind", "p-click"]], template: function PoModalComponent_Template(rf, ctx) { if (rf & 1) {
183
183
  i0.ɵɵprojectionDef(_c1);
184
184
  i0.ɵɵtemplate(0, PoModalComponent_div_0_Template, 15, 7, "div", 0);
185
185
  } if (rf & 2) {
@@ -187,7 +187,7 @@ PoModalComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: PoModalCom
187
187
  } }, directives: [i3.NgIf, i4.PoModalFooterComponent, i5.PoButtonComponent], encapsulation: 2 });
188
188
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PoModalComponent, [{
189
189
  type: Component,
190
- args: [{ selector: 'po-modal', template: "<div *ngIf=\"!isHidden\" class=\"po-modal\" tabindex=\"0\" (keydown.esc)=\"closeModalOnEscapeKey($event)\">\n <div class=\"po-modal-overlay\">\n <div class=\"po-modal-container po-pb-2 po-pt-2\" (mousedown)=\"onClickOut($event)\">\n <div class=\"po-modal-vertical-align\">\n <div #modalContent class=\"po-modal-content po-modal-{{ size }}\" tabindex=\"-1\">\n <div class=\"po-modal-header\">\n <div class=\"po-modal-title po-text-ellipsis\">\n {{ title }}\n </div>\n\n <a *ngIf=\"!hideClose\" class=\"po-modal-header-close-button\" tabindex=\"0\" (click)=\"close(true)\">\n <span class=\"po-icon po-icon-close\"></span>\n </a>\n </div>\n\n <div class=\"po-modal-body\">\n <ng-content></ng-content>\n </div>\n\n <ng-container *ngIf=\"modalFooter; else defaultModalFooterTemplate\">\n <ng-content select=\"po-modal-footer\"></ng-content>\n </ng-container>\n\n <ng-template #defaultModalFooterTemplate>\n <po-modal-footer>\n <po-button\n *ngIf=\"secondaryAction\"\n [p-disabled]=\"secondaryAction.disabled\"\n [p-label]=\"secondaryAction.label\"\n [p-loading]=\"secondaryAction.loading\"\n [p-type]=\"getSecondaryActionButtonType()\"\n (p-click)=\"secondaryAction.action()\"\n >\n </po-button>\n\n <po-button\n class=\"po-button-modal-first-action\"\n [p-disabled]=\"primaryAction.disabled\"\n [p-label]=\"primaryAction.label\"\n [p-loading]=\"primaryAction.loading\"\n [p-type]=\"getPrimaryActionButtonType()\"\n (p-click)=\"primaryAction.action()\"\n >\n </po-button>\n </po-modal-footer>\n </ng-template>\n </div>\n </div>\n </div>\n </div>\n</div>\n" }]
190
+ args: [{ selector: 'po-modal', template: "<div *ngIf=\"!isHidden\" class=\"po-modal\" tabindex=\"0\" (keydown.esc)=\"closeModalOnEscapeKey($event)\">\n <div class=\"po-modal-overlay\">\n <div class=\"po-modal-container po-pb-2 po-pt-2\" (mousedown)=\"onClickOut($event)\">\n <div class=\"po-modal-vertical-align\">\n <div #modalContent class=\"po-modal-content po-modal-{{ size }}\" tabindex=\"-1\">\n <div class=\"po-modal-header\">\n <div class=\"po-modal-title po-text-ellipsis\">\n {{ title }}\n </div>\n\n <a *ngIf=\"!hideClose\" class=\"po-modal-header-close-button\" tabindex=\"0\" (click)=\"close(true)\">\n <span class=\"po-icon po-icon-close\"></span>\n </a>\n </div>\n\n <div class=\"po-modal-body\">\n <ng-content></ng-content>\n </div>\n\n <ng-container *ngIf=\"modalFooter; else defaultModalFooterTemplate\">\n <ng-content select=\"po-modal-footer\"></ng-content>\n </ng-container>\n\n <ng-template #defaultModalFooterTemplate>\n <po-modal-footer>\n <po-button\n *ngIf=\"secondaryAction\"\n [p-disabled]=\"secondaryAction.disabled\"\n [p-label]=\"secondaryAction.label\"\n [p-loading]=\"secondaryAction.loading\"\n [p-kind]=\"getSecondaryActionButtonType()\"\n (p-click)=\"secondaryAction.action()\"\n >\n </po-button>\n\n <po-button\n class=\"po-button-modal-first-action\"\n [p-disabled]=\"primaryAction.disabled\"\n [p-label]=\"primaryAction.label\"\n [p-loading]=\"primaryAction.loading\"\n [p-kind]=\"getPrimaryActionButtonType()\"\n (p-click)=\"primaryAction.action()\"\n >\n </po-button>\n </po-modal-footer>\n </ng-template>\n </div>\n </div>\n </div>\n </div>\n</div>\n" }]
191
191
  }], function () { return [{ type: i1.PoActiveOverlayService }, { type: i2.PoLanguageService }]; }, { modalContent: [{
192
192
  type: ViewChild,
193
193
  args: ['modalContent', { read: ElementRef }]
@@ -195,4 +195,4 @@ PoModalComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: PoModalCom
195
195
  type: ContentChild,
196
196
  args: [PoModalFooterComponent]
197
197
  }] }); })();
198
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tbW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9jb21wb25lbnRzL3BvLW1vZGFsL3BvLW1vZGFsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvY29tcG9uZW50cy9wby1tb2RhbC9wby1tb2RhbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRS9FLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7Ozs7Ozs7OztJQ001Qiw2QkFBOEY7SUFBdEIsNkpBQVMsYUFBTSxJQUFJLENBQUMsSUFBQztJQUMzRiwyQkFBMkM7SUFDN0MsaUJBQUk7OztJQU9OLDZCQUFtRTtJQUNqRSxxQkFBa0Q7SUFDcEQsMEJBQWU7Ozs7SUFJWCxxQ0FPQztJQURDLGlNQUFXLCtCQUF3QixJQUFDO0lBRXRDLGlCQUFZOzs7SUFOViw0REFBdUMseUNBQUEsNkNBQUEsaURBQUE7Ozs7SUFIM0MsdUNBQWlCO0lBQ2YsbUdBUVk7SUFFWixxQ0FPQztJQURDLHNMQUFXLDhCQUFzQixJQUFDO0lBRXBDLGlCQUFZLEVBQUE7OztJQWpCVCxlQUFxQjtJQUFyQiw2Q0FBcUI7SUFXdEIsZUFBcUM7SUFBckMsMERBQXFDLHVDQUFBLDJDQUFBLCtDQUFBOzs7O0lBckNyRCw4QkFBbUc7SUFBOUMsOEtBQWUscUNBQTZCLElBQUM7SUFDaEcsOEJBQThCLGFBQUE7SUFDb0IsMEtBQWEsMEJBQWtCLElBQUM7SUFDOUUs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Ozs7K0JBREQsVUFBVTs7Ozs7O1FDbkMvQyxrRUFrRE07O1FBbERBLG9DQUFlOzt1RkRrQ1IsZ0JBQWdCO2NBSjVCLFNBQVM7MkJBQ0UsVUFBVTt5R0FJNkIsWUFBWTtrQkFBNUQsU0FBUzttQkFBQyxjQUFjLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFO1lBQ1QsV0FBVztrQkFBaEQsWUFBWTttQkFBQyxzQkFBc0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIENvbnRlbnRDaGlsZCwgRWxlbWVudFJlZiwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFBvTW9kYWxCYXNlQ29tcG9uZW50IH0gZnJvbSAnLi9wby1tb2RhbC1iYXNlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQb01vZGFsRm9vdGVyQ29tcG9uZW50IH0gZnJvbSAnLi9wby1tb2RhbC1mb290ZXIvcG8tbW9kYWwtZm9vdGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyB1dWlkIH0gZnJvbSAnLi4vLi4vdXRpbHMvdXRpbCc7XG5cbmltcG9ydCB7IFBvQWN0aXZlT3ZlcmxheVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9wby1hY3RpdmUtb3ZlcmxheS9wby1hY3RpdmUtb3ZlcmxheS5zZXJ2aWNlJztcbmltcG9ydCB7IFBvTGFuZ3VhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvcG8tbGFuZ3VhZ2UvcG8tbGFuZ3VhZ2Uuc2VydmljZSc7XG5cbi8qKlxuICogQGRvY3NFeHRlbmRzIFBvTW9kYWxCYXNlQ29tcG9uZW50XG4gKlxuICogQGV4YW1wbGVcbiAqXG4gKiA8ZXhhbXBsZSBuYW1lPVwicG8tbW9kYWwtYmFzaWNcIiB0aXRsZT1cIlBPIE1vZGFsIEJhc2ljXCI+XG4gKiAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby1tb2RhbC1iYXNpYy9zYW1wbGUtcG8tbW9kYWwtYmFzaWMuY29tcG9uZW50Lmh0bWxcIj4gPC9maWxlPlxuICogIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tbW9kYWwtYmFzaWMvc2FtcGxlLXBvLW1vZGFsLWJhc2ljLmNvbXBvbmVudC50c1wiPiA8L2ZpbGU+XG4gKiA8L2V4YW1wbGU+XG4gKlxuICogPGV4YW1wbGUgbmFtZT1cInBvLW1vZGFsLWxhYnNcIiB0aXRsZT1cIlBPIE1vZGFsIExhYnNcIj5cbiAqICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLW1vZGFsLWxhYnMvc2FtcGxlLXBvLW1vZGFsLWxhYnMuY29tcG9uZW50Lmh0bWxcIj4gPC9maWxlPlxuICogIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tbW9kYWwtbGFicy9zYW1wbGUtcG8tbW9kYWwtbGFicy5jb21wb25lbnQudHNcIj4gPC9maWxlPlxuICogPC9leGFtcGxlPlxuICpcbiAqIDxleGFtcGxlIG5hbWU9XCJwby1tb2RhbC1mcnVpdHMtc2FsYWRcIiB0aXRsZT1cIlBPIE1vZGFsIC0gRnJ1aXRzIFNhbGFkXCI+XG4gKiAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby1tb2RhbC1mcnVpdHMtc2FsYWQvc2FtcGxlLXBvLW1vZGFsLWZydWl0cy1zYWxhZC5jb21wb25lbnQuaHRtbFwiPiA8L2ZpbGU+XG4gKiAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby1tb2RhbC1mcnVpdHMtc2FsYWQvc2FtcGxlLXBvLW1vZGFsLWZydWl0cy1zYWxhZC5jb21wb25lbnQudHNcIj4gPC9maWxlPlxuICogPC9leGFtcGxlPlxuICovXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3BvLW1vZGFsJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3BvLW1vZGFsLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBQb01vZGFsQ29tcG9uZW50IGV4dGVuZHMgUG9Nb2RhbEJhc2VDb21wb25lbnQge1xuICBAVmlld0NoaWxkKCdtb2RhbENvbnRlbnQnLCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSkgbW9kYWxDb250ZW50OiBFbGVtZW50UmVmO1xuICBAQ29udGVudENoaWxkKFBvTW9kYWxGb290ZXJDb21wb25lbnQpIG1vZGFsRm9vdGVyOiBQb01vZGFsRm9vdGVyQ29tcG9uZW50O1xuXG4gIHByaXZhdGUgZmlyc3RFbGVtZW50O1xuICBwcml2YXRlIGZvY3VzRnVuY3Rpb247XG4gIHByaXZhdGUgZm9jdXNhYmxlRWxlbWVudHMgPSAnaW5wdXQsIHNlbGVjdCwgdGV4dGFyZWEsIGJ1dHRvbjpub3QoW2Rpc2FibGVkXSksIGEnO1xuICBwcml2YXRlIGlkOiBzdHJpbmcgPSB1dWlkKCk7XG4gIHByaXZhdGUgc291cmNlRWxlbWVudDtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHBvQWN0aXZlT3ZlcmxheVNlcnZpY2U6IFBvQWN0aXZlT3ZlcmxheVNlcnZpY2UsIHBvTGFuZ3VhZ2VTZXJ2aWNlOiBQb0xhbmd1YWdlU2VydmljZSkge1xuICAgIHN1cGVyKHBvTGFuZ3VhZ2VTZXJ2aWNlKTtcbiAgfVxuXG4gIGNsb3NlKHhDbG9zZWQgPSBmYWxzZSkge1xuICAgIHRoaXMucG9BY3RpdmVPdmVybGF5U2VydmljZS5hY3RpdmVPdmVybGF5LnBvcCgpO1xuXG4gICAgc3VwZXIuY2xvc2UoeENsb3NlZCk7XG5cbiAgICB0aGlzLnJlbW92ZUV2ZW50TGlzdGVuZXJzKCk7XG5cbiAgICBpZiAodGhpcy5zb3VyY2VFbGVtZW50KSB7XG4gICAgICB0aGlzLnNvdXJjZUVsZW1lbnQuZm9jdXMoKTtcbiAgICB9XG4gIH1cblxuICBjbG9zZU1vZGFsT25Fc2NhcGVLZXkoZXZlbnQpIHtcbiAgICBpZiAoIXRoaXMuaGlkZUNsb3NlKSB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICB0aGlzLmNsb3NlKCk7XG4gICAgfVxuICB9XG5cbiAgZ2V0UHJpbWFyeUFjdGlvbkJ1dHRvblR5cGUoKSB7XG4gICAgcmV0dXJuIHRoaXMucHJpbWFyeUFjdGlvbi5kYW5nZXIgPyAnZGFuZ2VyJyA6ICdwcmltYXJ5JztcbiAgfVxuXG4gIGdldFNlY29uZGFyeUFjdGlvbkJ1dHRvblR5cGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuc2Vjb25kYXJ5QWN0aW9uICYmIHRoaXMuc2Vjb25kYXJ5QWN0aW9uLmRhbmdlciAmJiAhdGhpcy5wcmltYXJ5QWN0aW9uLmRhbmdlciA/ICdkYW5nZXInIDogJ2RlZmF1bHQnO1xuICB9XG5cbiAgb25DbGlja091dChldmVudCkge1xuICAgIGlmICh0aGlzLmNsaWNrT3V0ICYmICF0aGlzLm1vZGFsQ29udGVudC5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKGV2ZW50LnRhcmdldCkpIHtcbiAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICB9XG4gIH1cblxuICBvcGVuKCkge1xuICAgIHRoaXMuc291cmNlRWxlbWVudCA9IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ7XG4gICAgc3VwZXIub3BlbigpO1xuICAgIHRoaXMuaGFuZGxlRm9jdXMoKTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlRm9jdXMoKTogYW55IHtcbiAgICB0aGlzLnBvQWN0aXZlT3ZlcmxheVNlcnZpY2UuYWN0aXZlT3ZlcmxheS5wdXNoKHRoaXMuaWQpO1xuXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBpZiAodGhpcy5tb2RhbENvbnRlbnQpIHtcbiAgICAgICAgdGhpcy5pbml0Rm9jdXMoKTtcbiAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignZm9jdXMnLCB0aGlzLmZvY3VzRnVuY3Rpb24sIHRydWUpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0Rm9jdXMoKSB7XG4gICAgdGhpcy5mb2N1c0Z1bmN0aW9uID0gKGV2ZW50OiBhbnkpID0+IHtcbiAgICAgIGNvbnN0IG1vZGFsRWxlbWVudCA9IHRoaXMubW9kYWxDb250ZW50Lm5hdGl2ZUVsZW1lbnQ7XG5cbiAgICAgIGlmIChcbiAgICAgICAgIW1vZGFsRWxlbWVudC5jb250YWlucyhldmVudC50YXJnZXQpICYmXG4gICAgICAgIHRoaXMucG9BY3RpdmVPdmVybGF5U2VydmljZS5hY3RpdmVPdmVybGF5W3RoaXMucG9BY3RpdmVPdmVybGF5U2VydmljZS5hY3RpdmVPdmVybGF5Lmxlbmd0aCAtIDFdID09PSB0aGlzLmlkXG4gICAgICApIHtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIHRoaXMuZmlyc3RFbGVtZW50LmZvY3VzKCk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIHRoaXMuc2V0Rmlyc3RFbGVtZW50KCk7XG5cbiAgICBpZiAodGhpcy5oaWRlQ2xvc2UpIHtcbiAgICAgIHRoaXMuZmlyc3RFbGVtZW50LmZvY3VzKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IGZpcnN0RmllbGRFbGVtZW50ID1cbiAgICAgICAgdGhpcy5tb2RhbENvbnRlbnQubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKHRoaXMuZm9jdXNhYmxlRWxlbWVudHMpWzFdIHx8IHRoaXMubW9kYWxDb250ZW50Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgICBmaXJzdEZpZWxkRWxlbWVudC5mb2N1cygpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcmVtb3ZlRXZlbnRMaXN0ZW5lcnMoKSB7XG4gICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignZm9jdXMnLCB0aGlzLmZvY3VzRnVuY3Rpb24sIHRydWUpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRGaXJzdEVsZW1lbnQoKSB7XG4gICAgdGhpcy5maXJzdEVsZW1lbnQgPVxuICAgICAgdGhpcy5tb2RhbENvbnRlbnQubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKHRoaXMuZm9jdXNhYmxlRWxlbWVudHMpIHx8IHRoaXMubW9kYWxDb250ZW50Lm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cbiIsIjxkaXYgKm5nSWY9XCIhaXNIaWRkZW5cIiBjbGFzcz1cInBvLW1vZGFsXCIgdGFiaW5kZXg9XCIwXCIgKGtleWRvd24uZXNjKT1cImNsb3NlTW9kYWxPbkVzY2FwZUtleSgkZXZlbnQpXCI+XG4gIDxkaXYgY2xhc3M9XCJwby1tb2RhbC1vdmVybGF5XCI+XG4gICAgPGRpdiBjbGFzcz1cInBvLW1vZGFsLWNvbnRhaW5lciBwby1wYi0yIHBvLXB0LTJcIiAobW91c2Vkb3duKT1cIm9uQ2xpY2tPdXQoJGV2ZW50KVwiPlxuICAgICAgPGRpdiBjbGFzcz1cInBvLW1vZGFsLXZlcnRpY2FsLWFsaWduXCI+XG4gICAgICAgIDxkaXYgI21vZGFsQ29udGVudCBjbGFzcz1cInBvLW1vZGFsLWNvbnRlbnQgcG8tbW9kYWwte3sgc2l6ZSB9fVwiIHRhYmluZGV4PVwiLTFcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicG8tbW9kYWwtaGVhZGVyXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicG8tbW9kYWwtdGl0bGUgcG8tdGV4dC1lbGxpcHNpc1wiPlxuICAgICAgICAgICAgICB7eyB0aXRsZSB9fVxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDxhICpuZ0lmPVwiIWhpZGVDbG9zZVwiIGNsYXNzPVwicG8tbW9kYWwtaGVhZGVyLWNsb3NlLWJ1dHRvblwiIHRhYmluZGV4PVwiMFwiIChjbGljayk9XCJjbG9zZSh0cnVlKVwiPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInBvLWljb24gcG8taWNvbi1jbG9zZVwiPjwvc3Bhbj5cbiAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJwby1tb2RhbC1ib2R5XCI+XG4gICAgICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibW9kYWxGb290ZXI7IGVsc2UgZGVmYXVsdE1vZGFsRm9vdGVyVGVtcGxhdGVcIj5cbiAgICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cInBvLW1vZGFsLWZvb3RlclwiPjwvbmctY29udGVudD5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdE1vZGFsRm9vdGVyVGVtcGxhdGU+XG4gICAgICAgICAgICA8cG8tbW9kYWwtZm9vdGVyPlxuICAgICAgICAgICAgICA8cG8tYnV0dG9uXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJzZWNvbmRhcnlBY3Rpb25cIlxuICAgICAgICAgICAgICAgIFtwLWRpc2FibGVkXT1cInNlY29uZGFyeUFjdGlvbi5kaXNhYmxlZFwiXG4gICAgICAgICAgICAgICAgW3AtbGFiZWxdPVwic2Vjb25kYXJ5QWN0aW9uLmxhYmVsXCJcbiAgICAgICAgICAgICAgICBbcC1sb2FkaW5nXT1cInNlY29uZGFyeUFjdGlvbi5sb2FkaW5nXCJcbiAgICAgICAgICAgICAgICBbcC10eXBlXT1cImdldFNlY29uZGFyeUFjdGlvbkJ1dHRvblR5cGUoKVwiXG4gICAgICAgICAgICAgICAgKHAtY2xpY2spPVwic2Vjb25kYXJ5QWN0aW9uLmFjdGlvbigpXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8L3BvLWJ1dHRvbj5cblxuICAgICAgICAgICAgICA8cG8tYnV0dG9uXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJwby1idXR0b24tbW9kYWwtZmlyc3QtYWN0aW9uXCJcbiAgICAgICAgICAgICAgICBbcC1kaXNhYmxlZF09XCJwcmltYXJ5QWN0aW9uLmRpc2FibGVkXCJcbiAgICAgICAgICAgICAgICBbcC1sYWJlbF09XCJwcmltYXJ5QWN0aW9uLmxhYmVsXCJcbiAgICAgICAgICAgICAgICBbcC1sb2FkaW5nXT1cInByaW1hcnlBY3Rpb24ubG9hZGluZ1wiXG4gICAgICAgICAgICAgICAgW3AtdHlwZV09XCJnZXRQcmltYXJ5QWN0aW9uQnV0dG9uVHlwZSgpXCJcbiAgICAgICAgICAgICAgICAocC1jbGljayk9XCJwcmltYXJ5QWN0aW9uLmFjdGlvbigpXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8L3BvLWJ1dHRvbj5cbiAgICAgICAgICAgIDwvcG8tbW9kYWwtZm9vdGVyPlxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
198
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tbW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9jb21wb25lbnRzL3BvLW1vZGFsL3BvLW1vZGFsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvY29tcG9uZW50cy9wby1tb2RhbC9wby1tb2RhbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRS9FLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7Ozs7Ozs7OztJQ001Qiw2QkFBOEY7SUFBdEIsNkpBQVMsYUFBTSxJQUFJLENBQUMsSUFBQztJQUMzRiwyQkFBMkM7SUFDN0MsaUJBQUk7OztJQU9OLDZCQUFtRTtJQUNqRSxxQkFBa0Q7SUFDcEQsMEJBQWU7Ozs7SUFJWCxxQ0FPQztJQURDLGlNQUFXLCtCQUF3QixJQUFDO0lBRXRDLGlCQUFZOzs7SUFOViw0REFBdUMseUNBQUEsNkNBQUEsaURBQUE7Ozs7SUFIM0MsdUNBQWlCO0lBQ2YsbUdBUVk7SUFFWixxQ0FPQztJQURDLHNMQUFXLDhCQUFzQixJQUFDO0lBRXBDLGlCQUFZLEVBQUE7OztJQWpCVCxlQUFxQjtJQUFyQiw2Q0FBcUI7SUFXdEIsZUFBcUM7SUFBckMsMERBQXFDLHVDQUFBLDJDQUFBLCtDQUFBOzs7O0lBckNyRCw4QkFBbUc7SUFBOUMsOEtBQWUscUNBQTZCLElBQUM7SUFDaEcsOEJBQThCLGFBQUE7SUFDb0IsMEtBQWEsMEJBQWtCLElBQUM7SUFDOUUs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Ozs7K0JBREQsVUFBVTs7Ozs7O1FDbkMvQyxrRUFrRE07O1FBbERBLG9DQUFlOzt1RkRrQ1IsZ0JBQWdCO2NBSjVCLFNBQVM7MkJBQ0UsVUFBVTt5R0FJNkIsWUFBWTtrQkFBNUQsU0FBUzttQkFBQyxjQUFjLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFO1lBQ1QsV0FBVztrQkFBaEQsWUFBWTttQkFBQyxzQkFBc0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIENvbnRlbnRDaGlsZCwgRWxlbWVudFJlZiwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFBvTW9kYWxCYXNlQ29tcG9uZW50IH0gZnJvbSAnLi9wby1tb2RhbC1iYXNlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQb01vZGFsRm9vdGVyQ29tcG9uZW50IH0gZnJvbSAnLi9wby1tb2RhbC1mb290ZXIvcG8tbW9kYWwtZm9vdGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyB1dWlkIH0gZnJvbSAnLi4vLi4vdXRpbHMvdXRpbCc7XG5cbmltcG9ydCB7IFBvQWN0aXZlT3ZlcmxheVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9wby1hY3RpdmUtb3ZlcmxheS9wby1hY3RpdmUtb3ZlcmxheS5zZXJ2aWNlJztcbmltcG9ydCB7IFBvTGFuZ3VhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvcG8tbGFuZ3VhZ2UvcG8tbGFuZ3VhZ2Uuc2VydmljZSc7XG5cbi8qKlxuICogQGRvY3NFeHRlbmRzIFBvTW9kYWxCYXNlQ29tcG9uZW50XG4gKlxuICogQGV4YW1wbGVcbiAqXG4gKiA8ZXhhbXBsZSBuYW1lPVwicG8tbW9kYWwtYmFzaWNcIiB0aXRsZT1cIlBPIE1vZGFsIEJhc2ljXCI+XG4gKiAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby1tb2RhbC1iYXNpYy9zYW1wbGUtcG8tbW9kYWwtYmFzaWMuY29tcG9uZW50Lmh0bWxcIj4gPC9maWxlPlxuICogIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tbW9kYWwtYmFzaWMvc2FtcGxlLXBvLW1vZGFsLWJhc2ljLmNvbXBvbmVudC50c1wiPiA8L2ZpbGU+XG4gKiA8L2V4YW1wbGU+XG4gKlxuICogPGV4YW1wbGUgbmFtZT1cInBvLW1vZGFsLWxhYnNcIiB0aXRsZT1cIlBPIE1vZGFsIExhYnNcIj5cbiAqICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLW1vZGFsLWxhYnMvc2FtcGxlLXBvLW1vZGFsLWxhYnMuY29tcG9uZW50Lmh0bWxcIj4gPC9maWxlPlxuICogIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tbW9kYWwtbGFicy9zYW1wbGUtcG8tbW9kYWwtbGFicy5jb21wb25lbnQudHNcIj4gPC9maWxlPlxuICogPC9leGFtcGxlPlxuICpcbiAqIDxleGFtcGxlIG5hbWU9XCJwby1tb2RhbC1mcnVpdHMtc2FsYWRcIiB0aXRsZT1cIlBPIE1vZGFsIC0gRnJ1aXRzIFNhbGFkXCI+XG4gKiAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby1tb2RhbC1mcnVpdHMtc2FsYWQvc2FtcGxlLXBvLW1vZGFsLWZydWl0cy1zYWxhZC5jb21wb25lbnQuaHRtbFwiPiA8L2ZpbGU+XG4gKiAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby1tb2RhbC1mcnVpdHMtc2FsYWQvc2FtcGxlLXBvLW1vZGFsLWZydWl0cy1zYWxhZC5jb21wb25lbnQudHNcIj4gPC9maWxlPlxuICogPC9leGFtcGxlPlxuICovXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3BvLW1vZGFsJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3BvLW1vZGFsLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBQb01vZGFsQ29tcG9uZW50IGV4dGVuZHMgUG9Nb2RhbEJhc2VDb21wb25lbnQge1xuICBAVmlld0NoaWxkKCdtb2RhbENvbnRlbnQnLCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSkgbW9kYWxDb250ZW50OiBFbGVtZW50UmVmO1xuICBAQ29udGVudENoaWxkKFBvTW9kYWxGb290ZXJDb21wb25lbnQpIG1vZGFsRm9vdGVyOiBQb01vZGFsRm9vdGVyQ29tcG9uZW50O1xuXG4gIHByaXZhdGUgZmlyc3RFbGVtZW50O1xuICBwcml2YXRlIGZvY3VzRnVuY3Rpb247XG4gIHByaXZhdGUgZm9jdXNhYmxlRWxlbWVudHMgPSAnaW5wdXQsIHNlbGVjdCwgdGV4dGFyZWEsIGJ1dHRvbjpub3QoW2Rpc2FibGVkXSksIGEnO1xuICBwcml2YXRlIGlkOiBzdHJpbmcgPSB1dWlkKCk7XG4gIHByaXZhdGUgc291cmNlRWxlbWVudDtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHBvQWN0aXZlT3ZlcmxheVNlcnZpY2U6IFBvQWN0aXZlT3ZlcmxheVNlcnZpY2UsIHBvTGFuZ3VhZ2VTZXJ2aWNlOiBQb0xhbmd1YWdlU2VydmljZSkge1xuICAgIHN1cGVyKHBvTGFuZ3VhZ2VTZXJ2aWNlKTtcbiAgfVxuXG4gIGNsb3NlKHhDbG9zZWQgPSBmYWxzZSkge1xuICAgIHRoaXMucG9BY3RpdmVPdmVybGF5U2VydmljZS5hY3RpdmVPdmVybGF5LnBvcCgpO1xuXG4gICAgc3VwZXIuY2xvc2UoeENsb3NlZCk7XG5cbiAgICB0aGlzLnJlbW92ZUV2ZW50TGlzdGVuZXJzKCk7XG5cbiAgICBpZiAodGhpcy5zb3VyY2VFbGVtZW50KSB7XG4gICAgICB0aGlzLnNvdXJjZUVsZW1lbnQuZm9jdXMoKTtcbiAgICB9XG4gIH1cblxuICBjbG9zZU1vZGFsT25Fc2NhcGVLZXkoZXZlbnQpIHtcbiAgICBpZiAoIXRoaXMuaGlkZUNsb3NlKSB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICB0aGlzLmNsb3NlKCk7XG4gICAgfVxuICB9XG5cbiAgZ2V0UHJpbWFyeUFjdGlvbkJ1dHRvblR5cGUoKSB7XG4gICAgcmV0dXJuIHRoaXMucHJpbWFyeUFjdGlvbi5kYW5nZXIgPyAnZGFuZ2VyJyA6ICdwcmltYXJ5JztcbiAgfVxuXG4gIGdldFNlY29uZGFyeUFjdGlvbkJ1dHRvblR5cGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuc2Vjb25kYXJ5QWN0aW9uICYmIHRoaXMuc2Vjb25kYXJ5QWN0aW9uLmRhbmdlciAmJiAhdGhpcy5wcmltYXJ5QWN0aW9uLmRhbmdlciA/ICdkYW5nZXInIDogJ3NlY29uZGFyeSc7XG4gIH1cblxuICBvbkNsaWNrT3V0KGV2ZW50KSB7XG4gICAgaWYgKHRoaXMuY2xpY2tPdXQgJiYgIXRoaXMubW9kYWxDb250ZW50Lm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0KSkge1xuICAgICAgdGhpcy5jbG9zZSgpO1xuICAgIH1cbiAgfVxuXG4gIG9wZW4oKSB7XG4gICAgdGhpcy5zb3VyY2VFbGVtZW50ID0gZG9jdW1lbnQuYWN0aXZlRWxlbWVudDtcbiAgICBzdXBlci5vcGVuKCk7XG4gICAgdGhpcy5oYW5kbGVGb2N1cygpO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVGb2N1cygpOiBhbnkge1xuICAgIHRoaXMucG9BY3RpdmVPdmVybGF5U2VydmljZS5hY3RpdmVPdmVybGF5LnB1c2godGhpcy5pZCk7XG5cbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGlmICh0aGlzLm1vZGFsQ29udGVudCkge1xuICAgICAgICB0aGlzLmluaXRGb2N1cygpO1xuICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdmb2N1cycsIHRoaXMuZm9jdXNGdW5jdGlvbiwgdHJ1ZSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGluaXRGb2N1cygpIHtcbiAgICB0aGlzLmZvY3VzRnVuY3Rpb24gPSAoZXZlbnQ6IGFueSkgPT4ge1xuICAgICAgY29uc3QgbW9kYWxFbGVtZW50ID0gdGhpcy5tb2RhbENvbnRlbnQubmF0aXZlRWxlbWVudDtcblxuICAgICAgaWYgKFxuICAgICAgICAhbW9kYWxFbGVtZW50LmNvbnRhaW5zKGV2ZW50LnRhcmdldCkgJiZcbiAgICAgICAgdGhpcy5wb0FjdGl2ZU92ZXJsYXlTZXJ2aWNlLmFjdGl2ZU92ZXJsYXlbdGhpcy5wb0FjdGl2ZU92ZXJsYXlTZXJ2aWNlLmFjdGl2ZU92ZXJsYXkubGVuZ3RoIC0gMV0gPT09IHRoaXMuaWRcbiAgICAgICkge1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgdGhpcy5maXJzdEVsZW1lbnQuZm9jdXMoKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgdGhpcy5zZXRGaXJzdEVsZW1lbnQoKTtcblxuICAgIGlmICh0aGlzLmhpZGVDbG9zZSkge1xuICAgICAgdGhpcy5maXJzdEVsZW1lbnQuZm9jdXMoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgZmlyc3RGaWVsZEVsZW1lbnQgPVxuICAgICAgICB0aGlzLm1vZGFsQ29udGVudC5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwodGhpcy5mb2N1c2FibGVFbGVtZW50cylbMV0gfHwgdGhpcy5tb2RhbENvbnRlbnQubmF0aXZlRWxlbWVudDtcbiAgICAgIGZpcnN0RmllbGRFbGVtZW50LmZvY3VzKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSByZW1vdmVFdmVudExpc3RlbmVycygpIHtcbiAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdmb2N1cycsIHRoaXMuZm9jdXNGdW5jdGlvbiwgdHJ1ZSk7XG4gIH1cblxuICBwcml2YXRlIHNldEZpcnN0RWxlbWVudCgpIHtcbiAgICB0aGlzLmZpcnN0RWxlbWVudCA9XG4gICAgICB0aGlzLm1vZGFsQ29udGVudC5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IodGhpcy5mb2N1c2FibGVFbGVtZW50cykgfHwgdGhpcy5tb2RhbENvbnRlbnQubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuIiwiPGRpdiAqbmdJZj1cIiFpc0hpZGRlblwiIGNsYXNzPVwicG8tbW9kYWxcIiB0YWJpbmRleD1cIjBcIiAoa2V5ZG93bi5lc2MpPVwiY2xvc2VNb2RhbE9uRXNjYXBlS2V5KCRldmVudClcIj5cbiAgPGRpdiBjbGFzcz1cInBvLW1vZGFsLW92ZXJsYXlcIj5cbiAgICA8ZGl2IGNsYXNzPVwicG8tbW9kYWwtY29udGFpbmVyIHBvLXBiLTIgcG8tcHQtMlwiIChtb3VzZWRvd24pPVwib25DbGlja091dCgkZXZlbnQpXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwicG8tbW9kYWwtdmVydGljYWwtYWxpZ25cIj5cbiAgICAgICAgPGRpdiAjbW9kYWxDb250ZW50IGNsYXNzPVwicG8tbW9kYWwtY29udGVudCBwby1tb2RhbC17eyBzaXplIH19XCIgdGFiaW5kZXg9XCItMVwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJwby1tb2RhbC1oZWFkZXJcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwby1tb2RhbC10aXRsZSBwby10ZXh0LWVsbGlwc2lzXCI+XG4gICAgICAgICAgICAgIHt7IHRpdGxlIH19XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPGEgKm5nSWY9XCIhaGlkZUNsb3NlXCIgY2xhc3M9XCJwby1tb2RhbC1oZWFkZXItY2xvc2UtYnV0dG9uXCIgdGFiaW5kZXg9XCIwXCIgKGNsaWNrKT1cImNsb3NlKHRydWUpXCI+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicG8taWNvbiBwby1pY29uLWNsb3NlXCI+PC9zcGFuPlxuICAgICAgICAgICAgPC9hPlxuICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInBvLW1vZGFsLWJvZHlcIj5cbiAgICAgICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJtb2RhbEZvb3RlcjsgZWxzZSBkZWZhdWx0TW9kYWxGb290ZXJUZW1wbGF0ZVwiPlxuICAgICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwicG8tbW9kYWwtZm9vdGVyXCI+PC9uZy1jb250ZW50PlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgPG5nLXRlbXBsYXRlICNkZWZhdWx0TW9kYWxGb290ZXJUZW1wbGF0ZT5cbiAgICAgICAgICAgIDxwby1tb2RhbC1mb290ZXI+XG4gICAgICAgICAgICAgIDxwby1idXR0b25cbiAgICAgICAgICAgICAgICAqbmdJZj1cInNlY29uZGFyeUFjdGlvblwiXG4gICAgICAgICAgICAgICAgW3AtZGlzYWJsZWRdPVwic2Vjb25kYXJ5QWN0aW9uLmRpc2FibGVkXCJcbiAgICAgICAgICAgICAgICBbcC1sYWJlbF09XCJzZWNvbmRhcnlBY3Rpb24ubGFiZWxcIlxuICAgICAgICAgICAgICAgIFtwLWxvYWRpbmddPVwic2Vjb25kYXJ5QWN0aW9uLmxvYWRpbmdcIlxuICAgICAgICAgICAgICAgIFtwLWtpbmRdPVwiZ2V0U2Vjb25kYXJ5QWN0aW9uQnV0dG9uVHlwZSgpXCJcbiAgICAgICAgICAgICAgICAocC1jbGljayk9XCJzZWNvbmRhcnlBY3Rpb24uYWN0aW9uKClcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDwvcG8tYnV0dG9uPlxuXG4gICAgICAgICAgICAgIDxwby1idXR0b25cbiAgICAgICAgICAgICAgICBjbGFzcz1cInBvLWJ1dHRvbi1tb2RhbC1maXJzdC1hY3Rpb25cIlxuICAgICAgICAgICAgICAgIFtwLWRpc2FibGVkXT1cInByaW1hcnlBY3Rpb24uZGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgIFtwLWxhYmVsXT1cInByaW1hcnlBY3Rpb24ubGFiZWxcIlxuICAgICAgICAgICAgICAgIFtwLWxvYWRpbmddPVwicHJpbWFyeUFjdGlvbi5sb2FkaW5nXCJcbiAgICAgICAgICAgICAgICBbcC1raW5kXT1cImdldFByaW1hcnlBY3Rpb25CdXR0b25UeXBlKClcIlxuICAgICAgICAgICAgICAgIChwLWNsaWNrKT1cInByaW1hcnlBY3Rpb24uYWN0aW9uKClcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDwvcG8tYnV0dG9uPlxuICAgICAgICAgICAgPC9wby1tb2RhbC1mb290ZXI+XG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
@@ -144,7 +144,7 @@ export class PoPageDefaultComponent extends PoPageDefaultBaseComponent {
144
144
  }
145
145
  }
146
146
  PoPageDefaultComponent.ɵfac = function PoPageDefaultComponent_Factory(t) { return new (t || PoPageDefaultComponent)(i0.ɵɵdirectiveInject(i0.ViewContainerRef), i0.ɵɵdirectiveInject(i1.PoLanguageService), i0.ɵɵdirectiveInject(i0.Renderer2), i0.ɵɵdirectiveInject(i2.Router)); };
147
- PoPageDefaultComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: PoPageDefaultComponent, selectors: [["po-page-default"]], features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature], ngContentSelectors: _c0, decls: 4, vars: 1, consts: [[3, "p-breadcrumb", "p-title", 4, "ngIf"], [3, "p-breadcrumb", "p-title"], [1, "po-page-header-actions"], [3, "p-label", "p-actions", 4, "ngIf"], [3, "p-disabled", "p-label", "p-click", 4, "ngIf"], ["p-type", "primary", 3, "p-disabled", "p-icon", "p-label", "p-click", 4, "ngIf"], [3, "p-label", "p-actions"], [3, "p-disabled", "p-label", "p-click"], ["p-type", "primary", 3, "p-disabled", "p-icon", "p-label", "p-click"]], template: function PoPageDefaultComponent_Template(rf, ctx) { if (rf & 1) {
147
+ PoPageDefaultComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: PoPageDefaultComponent, selectors: [["po-page-default"]], features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature], ngContentSelectors: _c0, decls: 4, vars: 1, consts: [[3, "p-breadcrumb", "p-title", 4, "ngIf"], [3, "p-breadcrumb", "p-title"], [1, "po-page-header-actions"], [3, "p-label", "p-actions", 4, "ngIf"], [3, "p-disabled", "p-label", "p-click", 4, "ngIf"], ["p-kind", "primary", 3, "p-disabled", "p-icon", "p-label", "p-click", 4, "ngIf"], [3, "p-label", "p-actions"], [3, "p-disabled", "p-label", "p-click"], ["p-kind", "primary", 3, "p-disabled", "p-icon", "p-label", "p-click"]], template: function PoPageDefaultComponent_Template(rf, ctx) { if (rf & 1) {
148
148
  i0.ɵɵprojectionDef();
149
149
  i0.ɵɵelementStart(0, "po-page");
150
150
  i0.ɵɵtemplate(1, PoPageDefaultComponent_po_page_header_1_Template, 6, 6, "po-page-header", 0);
@@ -157,6 +157,6 @@ PoPageDefaultComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: PoPa
157
157
  } }, directives: [i3.PoPageComponent, i4.NgIf, i5.PoPageHeaderComponent, i6.PoDropdownComponent, i7.PoButtonComponent, i8.PoPageContentComponent], encapsulation: 2 });
158
158
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PoPageDefaultComponent, [{
159
159
  type: Component,
160
- args: [{ selector: 'po-page-default', template: "<po-page>\n <!-- HEADER -->\n <po-page-header *ngIf=\"hasPageHeader()\" [p-breadcrumb]=\"breadcrumb\" [p-title]=\"title\">\n <!-- OPERATIONS -->\n <div class=\"po-page-header-actions\">\n <po-dropdown\n *ngIf=\"visibleActions.length > limitPrimaryActions\"\n [p-label]=\"literals.otherActions\"\n [p-actions]=\"dropdownActions\"\n >\n </po-dropdown>\n\n <po-button\n *ngIf=\"visibleActions.length === 3 && visibleActions[2] && !isMobile\"\n [p-disabled]=\"actionIsDisabled(visibleActions[2])\"\n [p-label]=\"visibleActions[2].label\"\n (p-click)=\"callAction(visibleActions[2])\"\n >\n </po-button>\n\n <po-button\n *ngIf=\"visibleActions[1] && (visibleActions.length === 2 || !isMobile)\"\n [p-disabled]=\"actionIsDisabled(visibleActions[1])\"\n [p-label]=\"visibleActions[1].label\"\n (p-click)=\"callAction(visibleActions[1])\"\n >\n </po-button>\n\n <po-button\n *ngIf=\"visibleActions[0]\"\n p-type=\"primary\"\n [p-disabled]=\"actionIsDisabled(visibleActions[0])\"\n [p-icon]=\"visibleActions[0].icon\"\n [p-label]=\"visibleActions[0].label\"\n (p-click)=\"callAction(visibleActions[0])\"\n >\n </po-button>\n </div>\n </po-page-header>\n\n <!-- CONTENT -->\n <po-page-content>\n <ng-content></ng-content>\n </po-page-content>\n</po-page>\n" }]
160
+ args: [{ selector: 'po-page-default', template: "<po-page>\n <!-- HEADER -->\n <po-page-header *ngIf=\"hasPageHeader()\" [p-breadcrumb]=\"breadcrumb\" [p-title]=\"title\">\n <!-- OPERATIONS -->\n <div class=\"po-page-header-actions\">\n <po-dropdown\n *ngIf=\"visibleActions.length > limitPrimaryActions\"\n [p-label]=\"literals.otherActions\"\n [p-actions]=\"dropdownActions\"\n >\n </po-dropdown>\n\n <po-button\n *ngIf=\"visibleActions.length === 3 && visibleActions[2] && !isMobile\"\n [p-disabled]=\"actionIsDisabled(visibleActions[2])\"\n [p-label]=\"visibleActions[2].label\"\n (p-click)=\"callAction(visibleActions[2])\"\n >\n </po-button>\n\n <po-button\n *ngIf=\"visibleActions[1] && (visibleActions.length === 2 || !isMobile)\"\n [p-disabled]=\"actionIsDisabled(visibleActions[1])\"\n [p-label]=\"visibleActions[1].label\"\n (p-click)=\"callAction(visibleActions[1])\"\n >\n </po-button>\n\n <po-button\n *ngIf=\"visibleActions[0]\"\n p-kind=\"primary\"\n [p-disabled]=\"actionIsDisabled(visibleActions[0])\"\n [p-icon]=\"visibleActions[0].icon\"\n [p-label]=\"visibleActions[0].label\"\n (p-click)=\"callAction(visibleActions[0])\"\n >\n </po-button>\n </div>\n </po-page-header>\n\n <!-- CONTENT -->\n <po-page-content>\n <ng-content></ng-content>\n </po-page-content>\n</po-page>\n" }]
161
161
  }], function () { return [{ type: i0.ViewContainerRef }, { type: i1.PoLanguageService }, { type: i0.Renderer2 }, { type: i2.Router }]; }, null); })();
162
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tcGFnZS1kZWZhdWx0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvY29tcG9uZW50cy9wby1wYWdlL3BvLXBhZ2UtZGVmYXVsdC9wby1wYWdlLWRlZmF1bHQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9jb21wb25lbnRzL3BvLXBhZ2UvcG8tcGFnZS1kZWZhdWx0L3BvLXBhZ2UtZGVmYXVsdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQW9CLFNBQVMsRUFBd0QsTUFBTSxlQUFlLENBQUM7QUFLbEgsT0FBTyxFQUFnQixjQUFjLEVBQUUsUUFBUSxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFHL0YsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7Ozs7Ozs7Ozs7O0lDSHhFLGlDQUtjOzs7SUFIWixzREFBaUMscUNBQUE7Ozs7SUFLbkMsb0NBS0M7SUFEQyxrTUFBVyx3Q0FBMEIsQ0FBQyxFQUFFLElBQUM7SUFFM0MsaUJBQVk7OztJQUpWLDhFQUFrRCwyQ0FBQTs7OztJQU1wRCxvQ0FLQztJQURDLGtNQUFXLHdDQUEwQixDQUFDLEVBQUUsSUFBQztJQUUzQyxpQkFBWTs7O0lBSlYsOEVBQWtELDJDQUFBOzs7O0lBTXBELG9DQU9DO0lBREMsbU1BQVcsd0NBQTBCLENBQUMsRUFBRSxJQUFDO0lBRTNDLGlCQUFZOzs7SUFMViw4RUFBa0QseUNBQUEsMkNBQUE7OztJQTdCeEQseUNBQXNGLGFBQUE7SUFHbEYsd0dBS2M7SUFFZCxvR0FNWTtJQUVaLG9HQU1ZO0lBRVosb0dBUVk7SUFDZCxpQkFBTSxFQUFBOzs7SUFuQ2dDLGdEQUEyQix5QkFBQTtJQUk1RCxlQUFpRDtJQUFqRCxnRkFBaUQ7SUFPakQsZUFBbUU7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QUM7U0FDM0I7SUFDSCxDQUFDO0lBRU8sV0FBVztRQUNqQixJQUFJLE1BQU0sQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLGNBQWMsRUFBRTtZQUMzQyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztZQUNyQixJQUFJLENBQUMsbUJBQW1CLEdBQUcsQ0FBQyxDQUFDO1NBQzlCO0lBQ0gsQ0FBQzs7NEZBMUVVLHNCQUFzQjt5RUFBdEIsc0JBQXNCOztRQ25DbkMsK0JBQVM7UUFFUCw2RkFvQ2lCO1FBR2pCLHVDQUFpQjtRQUNmLGtCQUF5QjtRQUMzQixpQkFBa0IsRUFBQTs7UUF6Q0QsZUFBcUI7UUFBckIsMENBQXFCOzt1RkRpQzNCLHNCQUFzQjtjQUpsQyxTQUFTOzJCQUNFLGlCQUFpQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyQ29udGVudEluaXQsIENvbXBvbmVudCwgT25DaGFuZ2VzLCBSZW5kZXJlcjIsIFNpbXBsZUNoYW5nZSwgVmlld0NvbnRhaW5lclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuaW1wb3J0IHsgUG9MYW5ndWFnZVNlcnZpY2UgfSBmcm9tICcuLy4uLy4uLy4uL3NlcnZpY2VzL3BvLWxhbmd1YWdlL3BvLWxhbmd1YWdlLnNlcnZpY2UnO1xuXG5pbXBvcnQgeyBjYWxsRnVuY3Rpb24sIGlzRXh0ZXJuYWxMaW5rLCBpc1R5cGVvZiwgb3BlbkV4dGVybmFsTGluayB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL3V0aWwnO1xuaW1wb3J0IHsgUG9QYWdlQWN0aW9uIH0gZnJvbSAnLi4vcG8tcGFnZS1hY3Rpb24uaW50ZXJmYWNlJztcblxuaW1wb3J0IHsgUG9QYWdlRGVmYXVsdEJhc2VDb21wb25lbnQgfSBmcm9tICcuL3BvLXBhZ2UtZGVmYXVsdC1iYXNlLmNvbXBvbmVudCc7XG5cbi8qKlxuICogQGRvY3NFeHRlbmRzIFBvUGFnZURlZmF1bHRCYXNlQ29tcG9uZW50XG4gKlxuICogQGV4YW1wbGVcbiAqXG4gKiA8ZXhhbXBsZSBuYW1lPVwicG8tcGFnZS1kZWZhdWx0LWJhc2ljXCIgdGl0bGU9XCJQTyBQYWdlIERlZmF1bHQgQmFzaWNcIj5cbiAqICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLXBhZ2UtZGVmYXVsdC1iYXNpYy9zYW1wbGUtcG8tcGFnZS1kZWZhdWx0LWJhc2ljLmNvbXBvbmVudC5odG1sXCI+IDwvZmlsZT5cbiAqICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLXBhZ2UtZGVmYXVsdC1iYXNpYy9zYW1wbGUtcG8tcGFnZS1kZWZhdWx0LWJhc2ljLmNvbXBvbmVudC50c1wiPiA8L2ZpbGU+XG4gKiA8L2V4YW1wbGU+XG4gKlxuICogPGV4YW1wbGUgbmFtZT1cInBvLXBhZ2UtZGVmYXVsdC1sYWJzXCIgdGl0bGU9XCJQTyBQYWdlIERlZmF1bHQgTGFic1wiPlxuICogIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tcGFnZS1kZWZhdWx0LWxhYnMvc2FtcGxlLXBvLXBhZ2UtZGVmYXVsdC1sYWJzLmNvbXBvbmVudC5odG1sXCI+IDwvZmlsZT5cbiAqICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLXBhZ2UtZGVmYXVsdC1sYWJzL3NhbXBsZS1wby1wYWdlLWRlZmF1bHQtbGFicy5jb21wb25lbnQudHNcIj4gPC9maWxlPlxuICogPC9leGFtcGxlPlxuICpcbiAqIDxleGFtcGxlIG5hbWU9XCJwby1wYWdlLWRlZmF1bHQtZGFzaGJvYXJkXCIgdGl0bGU9XCJQTyBQYWdlIERlZmF1bHQgLSBEYXNoYm9hcmRcIj5cbiAqICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLXBhZ2UtZGVmYXVsdC1kYXNoYm9hcmQvc2FtcGxlLXBvLXBhZ2UtZGVmYXVsdC1kYXNoYm9hcmQuY29tcG9uZW50Lmh0bWxcIj4gPC9maWxlPlxuICogIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tcGFnZS1kZWZhdWx0LWRhc2hib2FyZC9zYW1wbGUtcG8tcGFnZS1kZWZhdWx0LWRhc2hib2FyZC5jb21wb25lbnQudHNcIj4gPC9maWxlPlxuICogIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tcGFnZS1kZWZhdWx0LWRhc2hib2FyZC9zYW1wbGUtcG8tcGFnZS1kZWZhdWx0LWRhc2hib2FyZC5zZXJ2aWNlLnRzXCI+IDwvZmlsZT5cbiAqIDwvZXhhbXBsZT5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncG8tcGFnZS1kZWZhdWx0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3BvLXBhZ2UtZGVmYXVsdC5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgUG9QYWdlRGVmYXVsdENvbXBvbmVudCBleHRlbmRzIFBvUGFnZURlZmF1bHRCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCwgT25DaGFuZ2VzIHtcbiAgbGltaXRQcmltYXJ5QWN0aW9uczogbnVtYmVyID0gMztcbiAgZHJvcGRvd25BY3Rpb25zOiBBcnJheTxQb1BhZ2VBY3Rpb24+O1xuICBpc01vYmlsZTogYm9vbGVhbjtcblxuICBwcml2YXRlIG1heFdpZHRoTW9iaWxlOiBudW1iZXIgPSA0ODA7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgdmlld1JlZjogVmlld0NvbnRhaW5lclJlZixcbiAgICBsYW5ndWFnZVNlcnZpY2U6IFBvTGFuZ3VhZ2VTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyXG4gICkge1xuICAgIHN1cGVyKGxhbmd1YWdlU2VydmljZSk7XG4gIH1cblxuICBwdWJsaWMgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuc2V0SXNNb2JpbGUoKTtcbiAgICB0aGlzLnNldERyb3Bkb3duQWN0aW9ucygpO1xuXG4gICAgdGhpcy5yZW5kZXJlci5saXN0ZW4oJ3dpbmRvdycsICdyZXNpemUnLCAoZXZlbnQ6IEV2ZW50KSA9PiB7XG4gICAgICB0aGlzLm9uUmVzaXplKGV2ZW50KTtcbiAgICB9KTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IHsgW3Byb3BOYW1lOiBzdHJpbmddOiBTaW1wbGVDaGFuZ2UgfSkge1xuICAgIHRoaXMuc2V0RHJvcGRvd25BY3Rpb25zKCk7XG4gIH1cblxuICBhY3Rpb25Jc0Rpc2FibGVkKGFjdGlvbjogYW55KSB7XG4gICAgcmV0dXJuIGlzVHlwZW9mKGFjdGlvbi5kaXNhYmxlZCwgJ2Z1bmN0aW9uJykgPyBhY3Rpb24uZGlzYWJsZWQoYWN0aW9uKSA6IGFjdGlvbi5kaXNhYmxlZDtcbiAgfVxuXG4gIGNhbGxBY3Rpb24oaXRlbTogUG9QYWdlQWN0aW9uKTogdm9pZCB7XG4gICAgaWYgKGl0ZW0udXJsKSB7XG4gICAgICBpc0V4dGVybmFsTGluayhpdGVtLnVybCkgPyBvcGVuRXh0ZXJuYWxMaW5rKGl0ZW0udXJsKSA6IHRoaXMucm91dGVyLm5hdmlnYXRlKFtpdGVtLnVybF0pO1xuICAgIH0gZWxzZSBpZiAoaXRlbS5hY3Rpb24pIHtcbiAgICAgIGl0ZW0uYWN0aW9uKCk7XG4gICAgfVxuICB9XG5cbiAgaGFzUGFnZUhlYWRlcigpIHtcbiAgICByZXR1cm4gISEoXG4gICAgICB0aGlzLnRpdGxlIHx8XG4gICAgICAodGhpcy52aXNpYmxlQWN0aW9ucyAmJiB0aGlzLnZpc2libGVBY3Rpb25zLmxlbmd0aCkgfHxcbiAgICAgICh0aGlzLmJyZWFkY3J1bWIgJiYgdGhpcy5icmVhZGNydW1iLml0ZW1zLmxlbmd0aClcbiAgICApO1xuICB9XG5cbiAgc2V0RHJvcGRvd25BY3Rpb25zKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnZpc2libGVBY3Rpb25zLmxlbmd0aCA+IHRoaXMubGltaXRQcmltYXJ5QWN0aW9ucykge1xuICAgICAgdGhpcy5kcm9wZG93bkFjdGlvbnMgPSB0aGlzLnZpc2libGVBY3Rpb25zLnNsaWNlKHRoaXMubGltaXRQcmltYXJ5QWN0aW9ucyAtIDEpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgb25SZXNpemUoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgY29uc3Qgd2lkdGggPSAoZXZlbnQudGFyZ2V0IGFzIFdpbmRvdykuaW5uZXJXaWR0aDtcblxuICAgIGlmICh3aWR0aCA8IHRoaXMubWF4V2lkdGhNb2JpbGUpIHtcbiAgICAgIHRoaXMuaXNNb2JpbGUgPSB0cnVlO1xuICAgICAgdGhpcy5saW1pdFByaW1hcnlBY3Rpb25zID0gMjtcbiAgICAgIHRoaXMuc2V0RHJvcGRvd25BY3Rpb25zKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuaXNNb2JpbGUgPSBmYWxzZTtcbiAgICAgIHRoaXMubGltaXRQcmltYXJ5QWN0aW9ucyA9IDM7XG4gICAgICB0aGlzLnNldERyb3Bkb3duQWN0aW9ucygpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2V0SXNNb2JpbGUoKTogdm9pZCB7XG4gICAgaWYgKHdpbmRvdy5pbm5lcldpZHRoIDwgdGhpcy5tYXhXaWR0aE1vYmlsZSkge1xuICAgICAgdGhpcy5pc01vYmlsZSA9IHRydWU7XG4gICAgICB0aGlzLmxpbWl0UHJpbWFyeUFjdGlvbnMgPSAyO1xuICAgIH1cbiAgfVxufVxuIiwiPHBvLXBhZ2U+XG4gIDwhLS0gSEVBREVSIC0tPlxuICA8cG8tcGFnZS1oZWFkZXIgKm5nSWY9XCJoYXNQYWdlSGVhZGVyKClcIiBbcC1icmVhZGNydW1iXT1cImJyZWFkY3J1bWJcIiBbcC10aXRsZV09XCJ0aXRsZVwiPlxuICAgIDwhLS0gT1BFUkFUSU9OUyAtLT5cbiAgICA8ZGl2IGNsYXNzPVwicG8tcGFnZS1oZWFkZXItYWN0aW9uc1wiPlxuICAgICAgPHBvLWRyb3Bkb3duXG4gICAgICAgICpuZ0lmPVwidmlzaWJsZUFjdGlvbnMubGVuZ3RoID4gbGltaXRQcmltYXJ5QWN0aW9uc1wiXG4gICAgICAgIFtwLWxhYmVsXT1cImxpdGVyYWxzLm90aGVyQWN0aW9uc1wiXG4gICAgICAgIFtwLWFjdGlvbnNdPVwiZHJvcGRvd25BY3Rpb25zXCJcbiAgICAgID5cbiAgICAgIDwvcG8tZHJvcGRvd24+XG5cbiAgICAgIDxwby1idXR0b25cbiAgICAgICAgKm5nSWY9XCJ2aXNpYmxlQWN0aW9ucy5sZW5ndGggPT09IDMgJiYgdmlzaWJsZUFjdGlvbnNbMl0gJiYgIWlzTW9iaWxlXCJcbiAgICAgICAgW3AtZGlzYWJsZWRdPVwiYWN0aW9uSXNEaXNhYmxlZCh2aXNpYmxlQWN0aW9uc1syXSlcIlxuICAgICAgICBbcC1sYWJlbF09XCJ2aXNpYmxlQWN0aW9uc1syXS5sYWJlbFwiXG4gICAgICAgIChwLWNsaWNrKT1cImNhbGxBY3Rpb24odmlzaWJsZUFjdGlvbnNbMl0pXCJcbiAgICAgID5cbiAgICAgIDwvcG8tYnV0dG9uPlxuXG4gICAgICA8cG8tYnV0dG9uXG4gICAgICAgICpuZ0lmPVwidmlzaWJsZUFjdGlvbnNbMV0gJiYgKHZpc2libGVBY3Rpb25zLmxlbmd0aCA9PT0gMiB8fCAhaXNNb2JpbGUpXCJcbiAgICAgICAgW3AtZGlzYWJsZWRdPVwiYWN0aW9uSXNEaXNhYmxlZCh2aXNpYmxlQWN0aW9uc1sxXSlcIlxuICAgICAgICBbcC1sYWJlbF09XCJ2aXNpYmxlQWN0aW9uc1sxXS5sYWJlbFwiXG4gICAgICAgIChwLWNsaWNrKT1cImNhbGxBY3Rpb24odmlzaWJsZUFjdGlvbnNbMV0pXCJcbiAgICAgID5cbiAgICAgIDwvcG8tYnV0dG9uPlxuXG4gICAgICA8cG8tYnV0dG9uXG4gICAgICAgICpuZ0lmPVwidmlzaWJsZUFjdGlvbnNbMF1cIlxuICAgICAgICBwLXR5cGU9XCJwcmltYXJ5XCJcbiAgICAgICAgW3AtZGlzYWJsZWRdPVwiYWN0aW9uSXNEaXNhYmxlZCh2aXNpYmxlQWN0aW9uc1swXSlcIlxuICAgICAgICBbcC1pY29uXT1cInZpc2libGVBY3Rpb25zWzBdLmljb25cIlxuICAgICAgICBbcC1sYWJlbF09XCJ2aXNpYmxlQWN0aW9uc1swXS5sYWJlbFwiXG4gICAgICAgIChwLWNsaWNrKT1cImNhbGxBY3Rpb24odmlzaWJsZUFjdGlvbnNbMF0pXCJcbiAgICAgID5cbiAgICAgIDwvcG8tYnV0dG9uPlxuICAgIDwvZGl2PlxuICA8L3BvLXBhZ2UtaGVhZGVyPlxuXG4gIDwhLS0gQ09OVEVOVCAtLT5cbiAgPHBvLXBhZ2UtY29udGVudD5cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gIDwvcG8tcGFnZS1jb250ZW50PlxuPC9wby1wYWdlPlxuIl19
162
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tcGFnZS1kZWZhdWx0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvY29tcG9uZW50cy9wby1wYWdlL3BvLXBhZ2UtZGVmYXVsdC9wby1wYWdlLWRlZmF1bHQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9jb21wb25lbnRzL3BvLXBhZ2UvcG8tcGFnZS1kZWZhdWx0L3BvLXBhZ2UtZGVmYXVsdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQW9CLFNBQVMsRUFBd0QsTUFBTSxlQUFlLENBQUM7QUFLbEgsT0FBTyxFQUFnQixjQUFjLEVBQUUsUUFBUSxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFHL0YsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7Ozs7Ozs7Ozs7O0lDSHhFLGlDQUtjOzs7SUFIWixzREFBaUMscUNBQUE7Ozs7SUFLbkMsb0NBS0M7SUFEQyxrTUFBVyx3Q0FBMEIsQ0FBQyxFQUFFLElBQUM7SUFFM0MsaUJBQVk7OztJQUpWLDhFQUFrRCwyQ0FBQTs7OztJQU1wRCxvQ0FLQztJQURDLGtNQUFXLHdDQUEwQixDQUFDLEVBQUUsSUFBQztJQUUzQyxpQkFBWTs7O0lBSlYsOEVBQWtELDJDQUFBOzs7O0lBTXBELG9DQU9DO0lBREMsbU1BQVcsd0NBQTBCLENBQUMsRUFBRSxJQUFDO0lBRTNDLGlCQUFZOzs7SUFMViw4RUFBa0QseUNBQUEsMkNBQUE7OztJQTdCeEQseUNBQXNGLGFBQUE7SUFHbEYsd0dBS2M7SUFFZCxvR0FNWTtJQUVaLG9HQU1ZO0lBRVosb0dBUVk7SUFDZCxpQkFBTSxFQUFBOzs7SUFuQ2dDLGdEQUEyQix5QkFBQTtJQUk1RCxlQUFpRDtJQUFqRCxnRkFBaUQ7SUFPakQsZUFBbUU7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QUM7U0FDM0I7SUFDSCxDQUFDO0lBRU8sV0FBVztRQUNqQixJQUFJLE1BQU0sQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLGNBQWMsRUFBRTtZQUMzQyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztZQUNyQixJQUFJLENBQUMsbUJBQW1CLEdBQUcsQ0FBQyxDQUFDO1NBQzlCO0lBQ0gsQ0FBQzs7NEZBMUVVLHNCQUFzQjt5RUFBdEIsc0JBQXNCOztRQ25DbkMsK0JBQVM7UUFFUCw2RkFvQ2lCO1FBR2pCLHVDQUFpQjtRQUNmLGtCQUF5QjtRQUMzQixpQkFBa0IsRUFBQTs7UUF6Q0QsZUFBcUI7UUFBckIsMENBQXFCOzt1RkRpQzNCLHNCQUFzQjtjQUpsQyxTQUFTOzJCQUNFLGlCQUFpQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyQ29udGVudEluaXQsIENvbXBvbmVudCwgT25DaGFuZ2VzLCBSZW5kZXJlcjIsIFNpbXBsZUNoYW5nZSwgVmlld0NvbnRhaW5lclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuaW1wb3J0IHsgUG9MYW5ndWFnZVNlcnZpY2UgfSBmcm9tICcuLy4uLy4uLy4uL3NlcnZpY2VzL3BvLWxhbmd1YWdlL3BvLWxhbmd1YWdlLnNlcnZpY2UnO1xuXG5pbXBvcnQgeyBjYWxsRnVuY3Rpb24sIGlzRXh0ZXJuYWxMaW5rLCBpc1R5cGVvZiwgb3BlbkV4dGVybmFsTGluayB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL3V0aWwnO1xuaW1wb3J0IHsgUG9QYWdlQWN0aW9uIH0gZnJvbSAnLi4vcG8tcGFnZS1hY3Rpb24uaW50ZXJmYWNlJztcblxuaW1wb3J0IHsgUG9QYWdlRGVmYXVsdEJhc2VDb21wb25lbnQgfSBmcm9tICcuL3BvLXBhZ2UtZGVmYXVsdC1iYXNlLmNvbXBvbmVudCc7XG5cbi8qKlxuICogQGRvY3NFeHRlbmRzIFBvUGFnZURlZmF1bHRCYXNlQ29tcG9uZW50XG4gKlxuICogQGV4YW1wbGVcbiAqXG4gKiA8ZXhhbXBsZSBuYW1lPVwicG8tcGFnZS1kZWZhdWx0LWJhc2ljXCIgdGl0bGU9XCJQTyBQYWdlIERlZmF1bHQgQmFzaWNcIj5cbiAqICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLXBhZ2UtZGVmYXVsdC1iYXNpYy9zYW1wbGUtcG8tcGFnZS1kZWZhdWx0LWJhc2ljLmNvbXBvbmVudC5odG1sXCI+IDwvZmlsZT5cbiAqICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLXBhZ2UtZGVmYXVsdC1iYXNpYy9zYW1wbGUtcG8tcGFnZS1kZWZhdWx0LWJhc2ljLmNvbXBvbmVudC50c1wiPiA8L2ZpbGU+XG4gKiA8L2V4YW1wbGU+XG4gKlxuICogPGV4YW1wbGUgbmFtZT1cInBvLXBhZ2UtZGVmYXVsdC1sYWJzXCIgdGl0bGU9XCJQTyBQYWdlIERlZmF1bHQgTGFic1wiPlxuICogIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tcGFnZS1kZWZhdWx0LWxhYnMvc2FtcGxlLXBvLXBhZ2UtZGVmYXVsdC1sYWJzLmNvbXBvbmVudC5odG1sXCI+IDwvZmlsZT5cbiAqICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLXBhZ2UtZGVmYXVsdC1sYWJzL3NhbXBsZS1wby1wYWdlLWRlZmF1bHQtbGFicy5jb21wb25lbnQudHNcIj4gPC9maWxlPlxuICogPC9leGFtcGxlPlxuICpcbiAqIDxleGFtcGxlIG5hbWU9XCJwby1wYWdlLWRlZmF1bHQtZGFzaGJvYXJkXCIgdGl0bGU9XCJQTyBQYWdlIERlZmF1bHQgLSBEYXNoYm9hcmRcIj5cbiAqICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLXBhZ2UtZGVmYXVsdC1kYXNoYm9hcmQvc2FtcGxlLXBvLXBhZ2UtZGVmYXVsdC1kYXNoYm9hcmQuY29tcG9uZW50Lmh0bWxcIj4gPC9maWxlPlxuICogIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tcGFnZS1kZWZhdWx0LWRhc2hib2FyZC9zYW1wbGUtcG8tcGFnZS1kZWZhdWx0LWRhc2hib2FyZC5jb21wb25lbnQudHNcIj4gPC9maWxlPlxuICogIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tcGFnZS1kZWZhdWx0LWRhc2hib2FyZC9zYW1wbGUtcG8tcGFnZS1kZWZhdWx0LWRhc2hib2FyZC5zZXJ2aWNlLnRzXCI+IDwvZmlsZT5cbiAqIDwvZXhhbXBsZT5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncG8tcGFnZS1kZWZhdWx0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3BvLXBhZ2UtZGVmYXVsdC5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgUG9QYWdlRGVmYXVsdENvbXBvbmVudCBleHRlbmRzIFBvUGFnZURlZmF1bHRCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCwgT25DaGFuZ2VzIHtcbiAgbGltaXRQcmltYXJ5QWN0aW9uczogbnVtYmVyID0gMztcbiAgZHJvcGRvd25BY3Rpb25zOiBBcnJheTxQb1BhZ2VBY3Rpb24+O1xuICBpc01vYmlsZTogYm9vbGVhbjtcblxuICBwcml2YXRlIG1heFdpZHRoTW9iaWxlOiBudW1iZXIgPSA0ODA7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgdmlld1JlZjogVmlld0NvbnRhaW5lclJlZixcbiAgICBsYW5ndWFnZVNlcnZpY2U6IFBvTGFuZ3VhZ2VTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyXG4gICkge1xuICAgIHN1cGVyKGxhbmd1YWdlU2VydmljZSk7XG4gIH1cblxuICBwdWJsaWMgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuc2V0SXNNb2JpbGUoKTtcbiAgICB0aGlzLnNldERyb3Bkb3duQWN0aW9ucygpO1xuXG4gICAgdGhpcy5yZW5kZXJlci5saXN0ZW4oJ3dpbmRvdycsICdyZXNpemUnLCAoZXZlbnQ6IEV2ZW50KSA9PiB7XG4gICAgICB0aGlzLm9uUmVzaXplKGV2ZW50KTtcbiAgICB9KTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IHsgW3Byb3BOYW1lOiBzdHJpbmddOiBTaW1wbGVDaGFuZ2UgfSkge1xuICAgIHRoaXMuc2V0RHJvcGRvd25BY3Rpb25zKCk7XG4gIH1cblxuICBhY3Rpb25Jc0Rpc2FibGVkKGFjdGlvbjogYW55KSB7XG4gICAgcmV0dXJuIGlzVHlwZW9mKGFjdGlvbi5kaXNhYmxlZCwgJ2Z1bmN0aW9uJykgPyBhY3Rpb24uZGlzYWJsZWQoYWN0aW9uKSA6IGFjdGlvbi5kaXNhYmxlZDtcbiAgfVxuXG4gIGNhbGxBY3Rpb24oaXRlbTogUG9QYWdlQWN0aW9uKTogdm9pZCB7XG4gICAgaWYgKGl0ZW0udXJsKSB7XG4gICAgICBpc0V4dGVybmFsTGluayhpdGVtLnVybCkgPyBvcGVuRXh0ZXJuYWxMaW5rKGl0ZW0udXJsKSA6IHRoaXMucm91dGVyLm5hdmlnYXRlKFtpdGVtLnVybF0pO1xuICAgIH0gZWxzZSBpZiAoaXRlbS5hY3Rpb24pIHtcbiAgICAgIGl0ZW0uYWN0aW9uKCk7XG4gICAgfVxuICB9XG5cbiAgaGFzUGFnZUhlYWRlcigpIHtcbiAgICByZXR1cm4gISEoXG4gICAgICB0aGlzLnRpdGxlIHx8XG4gICAgICAodGhpcy52aXNpYmxlQWN0aW9ucyAmJiB0aGlzLnZpc2libGVBY3Rpb25zLmxlbmd0aCkgfHxcbiAgICAgICh0aGlzLmJyZWFkY3J1bWIgJiYgdGhpcy5icmVhZGNydW1iLml0ZW1zLmxlbmd0aClcbiAgICApO1xuICB9XG5cbiAgc2V0RHJvcGRvd25BY3Rpb25zKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnZpc2libGVBY3Rpb25zLmxlbmd0aCA+IHRoaXMubGltaXRQcmltYXJ5QWN0aW9ucykge1xuICAgICAgdGhpcy5kcm9wZG93bkFjdGlvbnMgPSB0aGlzLnZpc2libGVBY3Rpb25zLnNsaWNlKHRoaXMubGltaXRQcmltYXJ5QWN0aW9ucyAtIDEpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgb25SZXNpemUoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgY29uc3Qgd2lkdGggPSAoZXZlbnQudGFyZ2V0IGFzIFdpbmRvdykuaW5uZXJXaWR0aDtcblxuICAgIGlmICh3aWR0aCA8IHRoaXMubWF4V2lkdGhNb2JpbGUpIHtcbiAgICAgIHRoaXMuaXNNb2JpbGUgPSB0cnVlO1xuICAgICAgdGhpcy5saW1pdFByaW1hcnlBY3Rpb25zID0gMjtcbiAgICAgIHRoaXMuc2V0RHJvcGRvd25BY3Rpb25zKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuaXNNb2JpbGUgPSBmYWxzZTtcbiAgICAgIHRoaXMubGltaXRQcmltYXJ5QWN0aW9ucyA9IDM7XG4gICAgICB0aGlzLnNldERyb3Bkb3duQWN0aW9ucygpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2V0SXNNb2JpbGUoKTogdm9pZCB7XG4gICAgaWYgKHdpbmRvdy5pbm5lcldpZHRoIDwgdGhpcy5tYXhXaWR0aE1vYmlsZSkge1xuICAgICAgdGhpcy5pc01vYmlsZSA9IHRydWU7XG4gICAgICB0aGlzLmxpbWl0UHJpbWFyeUFjdGlvbnMgPSAyO1xuICAgIH1cbiAgfVxufVxuIiwiPHBvLXBhZ2U+XG4gIDwhLS0gSEVBREVSIC0tPlxuICA8cG8tcGFnZS1oZWFkZXIgKm5nSWY9XCJoYXNQYWdlSGVhZGVyKClcIiBbcC1icmVhZGNydW1iXT1cImJyZWFkY3J1bWJcIiBbcC10aXRsZV09XCJ0aXRsZVwiPlxuICAgIDwhLS0gT1BFUkFUSU9OUyAtLT5cbiAgICA8ZGl2IGNsYXNzPVwicG8tcGFnZS1oZWFkZXItYWN0aW9uc1wiPlxuICAgICAgPHBvLWRyb3Bkb3duXG4gICAgICAgICpuZ0lmPVwidmlzaWJsZUFjdGlvbnMubGVuZ3RoID4gbGltaXRQcmltYXJ5QWN0aW9uc1wiXG4gICAgICAgIFtwLWxhYmVsXT1cImxpdGVyYWxzLm90aGVyQWN0aW9uc1wiXG4gICAgICAgIFtwLWFjdGlvbnNdPVwiZHJvcGRvd25BY3Rpb25zXCJcbiAgICAgID5cbiAgICAgIDwvcG8tZHJvcGRvd24+XG5cbiAgICAgIDxwby1idXR0b25cbiAgICAgICAgKm5nSWY9XCJ2aXNpYmxlQWN0aW9ucy5sZW5ndGggPT09IDMgJiYgdmlzaWJsZUFjdGlvbnNbMl0gJiYgIWlzTW9iaWxlXCJcbiAgICAgICAgW3AtZGlzYWJsZWRdPVwiYWN0aW9uSXNEaXNhYmxlZCh2aXNpYmxlQWN0aW9uc1syXSlcIlxuICAgICAgICBbcC1sYWJlbF09XCJ2aXNpYmxlQWN0aW9uc1syXS5sYWJlbFwiXG4gICAgICAgIChwLWNsaWNrKT1cImNhbGxBY3Rpb24odmlzaWJsZUFjdGlvbnNbMl0pXCJcbiAgICAgID5cbiAgICAgIDwvcG8tYnV0dG9uPlxuXG4gICAgICA8cG8tYnV0dG9uXG4gICAgICAgICpuZ0lmPVwidmlzaWJsZUFjdGlvbnNbMV0gJiYgKHZpc2libGVBY3Rpb25zLmxlbmd0aCA9PT0gMiB8fCAhaXNNb2JpbGUpXCJcbiAgICAgICAgW3AtZGlzYWJsZWRdPVwiYWN0aW9uSXNEaXNhYmxlZCh2aXNpYmxlQWN0aW9uc1sxXSlcIlxuICAgICAgICBbcC1sYWJlbF09XCJ2aXNpYmxlQWN0aW9uc1sxXS5sYWJlbFwiXG4gICAgICAgIChwLWNsaWNrKT1cImNhbGxBY3Rpb24odmlzaWJsZUFjdGlvbnNbMV0pXCJcbiAgICAgID5cbiAgICAgIDwvcG8tYnV0dG9uPlxuXG4gICAgICA8cG8tYnV0dG9uXG4gICAgICAgICpuZ0lmPVwidmlzaWJsZUFjdGlvbnNbMF1cIlxuICAgICAgICBwLWtpbmQ9XCJwcmltYXJ5XCJcbiAgICAgICAgW3AtZGlzYWJsZWRdPVwiYWN0aW9uSXNEaXNhYmxlZCh2aXNpYmxlQWN0aW9uc1swXSlcIlxuICAgICAgICBbcC1pY29uXT1cInZpc2libGVBY3Rpb25zWzBdLmljb25cIlxuICAgICAgICBbcC1sYWJlbF09XCJ2aXNpYmxlQWN0aW9uc1swXS5sYWJlbFwiXG4gICAgICAgIChwLWNsaWNrKT1cImNhbGxBY3Rpb24odmlzaWJsZUFjdGlvbnNbMF0pXCJcbiAgICAgID5cbiAgICAgIDwvcG8tYnV0dG9uPlxuICAgIDwvZGl2PlxuICA8L3BvLXBhZ2UtaGVhZGVyPlxuXG4gIDwhLS0gQ09OVEVOVCAtLT5cbiAgPHBvLXBhZ2UtY29udGVudD5cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gIDwvcG8tcGFnZS1jb250ZW50PlxuPC9wby1wYWdlPlxuIl19