ca-components 1.3.32 → 1.3.34

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 (63) hide show
  1. package/esm2022/lib/ca-components.module.mjs +10 -4
  2. package/esm2022/lib/components/ca-chart/ca-chart.component.mjs +12 -11
  3. package/esm2022/lib/components/ca-checkbox/ca-checkbox.component.mjs +134 -0
  4. package/esm2022/lib/components/ca-checkbox/interfaces/column-check-action.interface.mjs +2 -0
  5. package/esm2022/lib/components/ca-checkbox/interfaces/index.mjs +2 -0
  6. package/esm2022/lib/components/ca-checkbox/utils/svg-routes/checkbox-svg-routes.mjs +7 -0
  7. package/esm2022/lib/components/ca-checkbox/utils/svg-routes/index.mjs +2 -0
  8. package/esm2022/lib/components/ca-custom-datetime-pickers/ca-custom-datetime-pickers.component.mjs +3 -3
  9. package/esm2022/lib/components/ca-dropdown-menu/ca-dropdown-menu.component.mjs +95 -24
  10. package/esm2022/lib/components/ca-dropdown-menu/enums/dropdown-menu.enum.mjs +19 -0
  11. package/esm2022/lib/components/ca-dropdown-menu/enums/index.mjs +2 -2
  12. package/esm2022/lib/components/ca-dropdown-menu/interfaces/dropdown-menu-item.interface.mjs +2 -0
  13. package/esm2022/lib/components/ca-dropdown-menu/interfaces/dropdown-menu-option-emit.interface.mjs +2 -0
  14. package/esm2022/lib/components/ca-dropdown-menu/interfaces/index.mjs +3 -0
  15. package/esm2022/lib/components/ca-dropdown-menu/pipes/dropdown-menu-placement-class.pipe.mjs +4 -4
  16. package/esm2022/lib/components/ca-dropdown-menu/pipes/group-item-checked-state.pipe.mjs +21 -0
  17. package/esm2022/lib/components/ca-dropdown-menu/pipes/index.mjs +2 -1
  18. package/esm2022/lib/components/ca-main-table/ca-main-table.component.mjs +5 -3
  19. package/esm2022/lib/components/ca-period-content/components/ca-period-content-payment/ca-period-content-payment.component.mjs +1 -1
  20. package/esm2022/lib/components/ca-pickup-delivery-block/components/ca-load/components/ca-load-single/ca-load-single.component.mjs +1 -1
  21. package/esm2022/lib/components/ca-tooltip-list/ca-tooltip-list.component.mjs +3 -3
  22. package/esm2022/lib/enums/dropdown-menu.enum.mjs +20 -0
  23. package/esm2022/lib/pipes/row-class.pipe.mjs +26 -0
  24. package/esm2022/lib/utils/constants/dropdown-menu-content.constants.mjs +26 -26
  25. package/esm2022/lib/utils/helpers/dropdown-menu-content-conditional-items.helper.mjs +4 -4
  26. package/esm2022/lib/utils/helpers/dropdown-menu-content.helper.mjs +6 -6
  27. package/esm2022/public-api.mjs +2 -1
  28. package/fesm2022/ca-components.mjs +350 -99
  29. package/fesm2022/ca-components.mjs.map +1 -1
  30. package/lib/ca-components.module.d.ts +2 -1
  31. package/lib/components/ca-checkbox/ca-checkbox.component.d.ts +39 -0
  32. package/lib/components/ca-checkbox/interfaces/column-check-action.interface.d.ts +6 -0
  33. package/lib/components/ca-checkbox/interfaces/index.d.ts +1 -0
  34. package/lib/components/ca-checkbox/utils/svg-routes/checkbox-svg-routes.d.ts +6 -0
  35. package/lib/components/ca-checkbox/utils/svg-routes/index.d.ts +1 -0
  36. package/lib/components/ca-dropdown-menu/ca-dropdown-menu.component.d.ts +16 -7
  37. package/lib/components/ca-dropdown-menu/enums/{dropdown-menu-string.enum.d.ts → dropdown-menu.enum.d.ts} +5 -2
  38. package/lib/components/ca-dropdown-menu/enums/index.d.ts +1 -1
  39. package/lib/components/ca-dropdown-menu/{models/dropdown-menu-item.model.d.ts → interfaces/dropdown-menu-item.interface.d.ts} +7 -1
  40. package/lib/components/ca-dropdown-menu/{models/dropdown-menu-option-emit.model.d.ts → interfaces/dropdown-menu-option-emit.interface.d.ts} +1 -1
  41. package/lib/components/ca-dropdown-menu/interfaces/index.d.ts +2 -0
  42. package/lib/components/ca-dropdown-menu/pipes/group-item-checked-state.pipe.d.ts +8 -0
  43. package/lib/components/ca-dropdown-menu/pipes/index.d.ts +1 -0
  44. package/lib/components/ca-filters/ca-filter.component.d.ts +2 -2
  45. package/lib/components/ca-period-content/components/ca-period-content-payment/ca-period-content-payment.component.d.ts +4 -4
  46. package/lib/components/ca-pickup-delivery-block/components/ca-load/components/ca-load-single/ca-load-single.component.d.ts +3 -3
  47. package/lib/enums/{dropdown-menu-string.enum.d.ts → dropdown-menu.enum.d.ts} +1 -1
  48. package/lib/pipes/row-class.pipe.d.ts +7 -0
  49. package/lib/utils/constants/dropdown-menu-content.constants.d.ts +3 -3
  50. package/lib/utils/helpers/dropdown-menu-content-conditional-items.helper.d.ts +3 -3
  51. package/lib/utils/helpers/dropdown-menu-content.helper.d.ts +3 -3
  52. package/package.json +1 -1
  53. package/public-api.d.ts +1 -0
  54. package/src/assets/ca-components/svg/common/ic_carriera-logo-active.svg +4 -0
  55. package/src/assets/ca-components/svg/common/ic_carriera-logo-inactive.svg +4 -0
  56. package/src/assets/ca-components/svg/common/ic_columns.svg +8 -0
  57. package/src/assets/ca-components/svg/common/ic_disable.svg +3 -0
  58. package/esm2022/lib/components/ca-dropdown-menu/enums/dropdown-menu-string.enum.mjs +0 -14
  59. package/esm2022/lib/components/ca-dropdown-menu/models/dropdown-menu-item.model.mjs +0 -2
  60. package/esm2022/lib/components/ca-dropdown-menu/models/dropdown-menu-option-emit.model.mjs +0 -2
  61. package/esm2022/lib/components/ca-dropdown-menu/models/index.mjs +0 -3
  62. package/esm2022/lib/enums/dropdown-menu-string.enum.mjs +0 -20
  63. package/lib/components/ca-dropdown-menu/models/index.d.ts +0 -2
@@ -0,0 +1,19 @@
1
+ export var eDropdownMenu;
2
+ (function (eDropdownMenu) {
3
+ // actions
4
+ eDropdownMenu["CLOSE"] = "Close";
5
+ eDropdownMenu["OPEN"] = "Open";
6
+ // positions
7
+ eDropdownMenu["RIGHT_TOP"] = "right-top";
8
+ eDropdownMenu["BOTTOM_RIGHT"] = "bottom-right";
9
+ // types
10
+ eDropdownMenu["DOTS_MENU_TYPE"] = "dots-menu-type";
11
+ eDropdownMenu["HAMBURGER_MENU_TYPE"] = "hamburger-menu-type";
12
+ eDropdownMenu["SELECT_MENU_TYPE"] = "select-menu-type";
13
+ eDropdownMenu["RESET_TABLE_TYPE"] = "reset-table-type";
14
+ // Empty string
15
+ eDropdownMenu["EMPTY_STRING_PLACEHOLDER"] = "";
16
+ // titles
17
+ eDropdownMenu["BACK_TO_MENU"] = "Back To Menu";
18
+ })(eDropdownMenu || (eDropdownMenu = {}));
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24tbWVudS5lbnVtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2EtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvY2EtZHJvcGRvd24tbWVudS9lbnVtcy9kcm9wZG93bi1tZW51LmVudW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFOLElBQVksYUFvQlg7QUFwQkQsV0FBWSxhQUFhO0lBQ3JCLFVBQVU7SUFDVixnQ0FBZSxDQUFBO0lBQ2YsOEJBQWEsQ0FBQTtJQUViLFlBQVk7SUFDWix3Q0FBdUIsQ0FBQTtJQUN2Qiw4Q0FBNkIsQ0FBQTtJQUU3QixRQUFRO0lBQ1Isa0RBQWlDLENBQUE7SUFDakMsNERBQTJDLENBQUE7SUFDM0Msc0RBQXFDLENBQUE7SUFDckMsc0RBQXFDLENBQUE7SUFFckMsZUFBZTtJQUNmLDhDQUE2QixDQUFBO0lBRTdCLFNBQVM7SUFDVCw4Q0FBNkIsQ0FBQTtBQUNqQyxDQUFDLEVBcEJXLGFBQWEsS0FBYixhQUFhLFFBb0J4QiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBlbnVtIGVEcm9wZG93bk1lbnUge1xuICAgIC8vIGFjdGlvbnNcbiAgICBDTE9TRSA9ICdDbG9zZScsXG4gICAgT1BFTiA9ICdPcGVuJyxcblxuICAgIC8vIHBvc2l0aW9uc1xuICAgIFJJR0hUX1RPUCA9ICdyaWdodC10b3AnLFxuICAgIEJPVFRPTV9SSUdIVCA9ICdib3R0b20tcmlnaHQnLFxuXG4gICAgLy8gdHlwZXNcbiAgICBET1RTX01FTlVfVFlQRSA9ICdkb3RzLW1lbnUtdHlwZScsXG4gICAgSEFNQlVSR0VSX01FTlVfVFlQRSA9ICdoYW1idXJnZXItbWVudS10eXBlJyxcbiAgICBTRUxFQ1RfTUVOVV9UWVBFID0gJ3NlbGVjdC1tZW51LXR5cGUnLFxuICAgIFJFU0VUX1RBQkxFX1RZUEUgPSAncmVzZXQtdGFibGUtdHlwZScsXG5cbiAgICAvLyBFbXB0eSBzdHJpbmdcbiAgICBFTVBUWV9TVFJJTkdfUExBQ0VIT0xERVIgPSAnJyxcblxuICAgIC8vIHRpdGxlc1xuICAgIEJBQ0tfVE9fTUVOVSA9ICdCYWNrIFRvIE1lbnUnXG59XG4iXX0=
@@ -1,2 +1,2 @@
1
- export * from './dropdown-menu-string.enum';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jYS1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9jYS1kcm9wZG93bi1tZW51L2VudW1zL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsNkJBQTZCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2Ryb3Bkb3duLW1lbnUtc3RyaW5nLmVudW0nO1xuIl19
1
+ export * from './dropdown-menu.enum';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jYS1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9jYS1kcm9wZG93bi1tZW51L2VudW1zL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsc0JBQXNCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2Ryb3Bkb3duLW1lbnUuZW51bSc7XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24tbWVudS1pdGVtLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NhLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2NhLWRyb3Bkb3duLW1lbnUvaW50ZXJmYWNlcy9kcm9wZG93bi1tZW51LWl0ZW0uaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIElEcm9wZG93bk1lbnVJdGVtIHtcbiAgICBpZD86IG51bWJlcjtcbiAgICB0aXRsZTogc3RyaW5nO1xuICAgIHRpdGxlT3B0aW9uYWxDbGFzcz86IHN0cmluZztcbiAgICB0eXBlPzogc3RyaW5nO1xuICAgIHN2Z1VybD86IHN0cmluZztcbiAgICBzdmdDbGFzcz86IHN0cmluZztcbiAgICBoYXNCb3JkZXI/OiBib29sZWFuO1xuICAgIGlzRGlzYWJsZWQ/OiBib29sZWFuO1xuICAgIGlubmVyRHJvcGRvd25Db250ZW50Pzoge1xuICAgICAgICB0aXRsZTogc3RyaW5nO1xuICAgICAgICB0eXBlOiBzdHJpbmc7XG4gICAgICAgIGlzQ2hlY2tlZD86IGJvb2xlYW47XG4gICAgICAgIGlzQ29sdW1uRHJvcGRvd24/OiBib29sZWFuO1xuICAgIH1bXTtcbiAgICBpc1NlbGVjdE1lbnVUeXBlQWN0aW9uSXRlbT86IGJvb2xlYW47XG4gICAgaXNDaGVja2VkPzogYm9vbGVhbjtcbiAgICBncm91cE5hbWU/OiBzdHJpbmc7XG4gICAgaXNDb2x1bW5Ecm9wZG93bj86IGJvb2xlYW47XG4gICAgaXNDaGVja0JveERpc2FibGVkPzogYm9vbGVhbjtcbn1cbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24tbWVudS1vcHRpb24tZW1pdC5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jYS1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9jYS1kcm9wZG93bi1tZW51L2ludGVyZmFjZXMvZHJvcGRvd24tbWVudS1vcHRpb24tZW1pdC5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgSURyb3Bkb3duTWVudU9wdGlvbkVtaXQge1xuICAgIGlkPzogbnVtYmVyO1xuICAgIHR5cGU/OiBzdHJpbmc7XG4gICAgaXNBY3RpdmU/OiBib29sZWFuO1xufVxuIl19
@@ -0,0 +1,3 @@
1
+ export * from './dropdown-menu-item.interface';
2
+ export * from './dropdown-menu-option-emit.interface';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jYS1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9jYS1kcm9wZG93bi1tZW51L2ludGVyZmFjZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxnQ0FBZ0MsQ0FBQztBQUMvQyxjQUFjLHVDQUF1QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9kcm9wZG93bi1tZW51LWl0ZW0uaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vZHJvcGRvd24tbWVudS1vcHRpb24tZW1pdC5pbnRlcmZhY2UnO1xuIl19
@@ -1,14 +1,14 @@
1
1
  import { Pipe } from '@angular/core';
2
2
  // enums
3
- import { DropdownMenuStringEnum } from '../enums/dropdown-menu-string.enum';
3
+ import { eDropdownMenu } from '../enums';
4
4
  import * as i0 from "@angular/core";
5
5
  export class DropdownMenuPlacementClassPipe {
6
6
  transform(type, isPositionTranslateUnset, placement) {
7
7
  if (isPositionTranslateUnset) {
8
8
  return 'menu-translate-unset';
9
9
  }
10
- else if (type === DropdownMenuStringEnum.DOTS_MENU_TYPE) {
11
- return placement === DropdownMenuStringEnum.BOTTOM_RIGHT
10
+ else if (type === eDropdownMenu.DOTS_MENU_TYPE) {
11
+ return placement === eDropdownMenu.BOTTOM_RIGHT
12
12
  ? 'dots-menu-bottom'
13
13
  : 'dots-menu';
14
14
  }
@@ -26,4 +26,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
26
26
  standalone: true,
27
27
  }]
28
28
  }] });
29
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24tbWVudS1wbGFjZW1lbnQtY2xhc3MucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NhLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2NhLWRyb3Bkb3duLW1lbnUvcGlwZXMvZHJvcGRvd24tbWVudS1wbGFjZW1lbnQtY2xhc3MucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUVwRCxRQUFRO0FBQ1IsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7O0FBTTVFLE1BQU0sT0FBTyw4QkFBOEI7SUFDdkMsU0FBUyxDQUNMLElBQVksRUFDWix3QkFBaUMsRUFDakMsU0FBaUI7UUFFakIsSUFBSSx3QkFBd0IsRUFBRSxDQUFDO1lBQzNCLE9BQU8sc0JBQXNCLENBQUM7UUFDbEMsQ0FBQzthQUFNLElBQUksSUFBSSxLQUFLLHNCQUFzQixDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3hELE9BQU8sU0FBUyxLQUFLLHNCQUFzQixDQUFDLFlBQVk7Z0JBQ3BELENBQUMsQ0FBQyxrQkFBa0I7Z0JBQ3BCLENBQUMsQ0FBQyxXQUFXLENBQUM7UUFDdEIsQ0FBQzthQUFNLENBQUM7WUFDSixPQUFPLHVCQUF1QixDQUFDO1FBQ25DLENBQUM7SUFDTCxDQUFDOytHQWZRLDhCQUE4Qjs2R0FBOUIsOEJBQThCOzs0RkFBOUIsOEJBQThCO2tCQUoxQyxJQUFJO21CQUFDO29CQUNGLElBQUksRUFBRSw0QkFBNEI7b0JBQ2xDLFVBQVUsRUFBRSxJQUFJO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLy8gZW51bXNcbmltcG9ydCB7IERyb3Bkb3duTWVudVN0cmluZ0VudW0gfSBmcm9tICcuLi9lbnVtcy9kcm9wZG93bi1tZW51LXN0cmluZy5lbnVtJztcblxuQFBpcGUoe1xuICAgIG5hbWU6ICdkcm9wZG93bk1lbnVQbGFjZW1lbnRDbGFzcycsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgRHJvcGRvd25NZW51UGxhY2VtZW50Q2xhc3NQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gICAgdHJhbnNmb3JtKFxuICAgICAgICB0eXBlOiBzdHJpbmcsXG4gICAgICAgIGlzUG9zaXRpb25UcmFuc2xhdGVVbnNldDogYm9vbGVhbixcbiAgICAgICAgcGxhY2VtZW50OiBzdHJpbmdcbiAgICApOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgICAgICBpZiAoaXNQb3NpdGlvblRyYW5zbGF0ZVVuc2V0KSB7XG4gICAgICAgICAgICByZXR1cm4gJ21lbnUtdHJhbnNsYXRlLXVuc2V0JztcbiAgICAgICAgfSBlbHNlIGlmICh0eXBlID09PSBEcm9wZG93bk1lbnVTdHJpbmdFbnVtLkRPVFNfTUVOVV9UWVBFKSB7XG4gICAgICAgICAgICByZXR1cm4gcGxhY2VtZW50ID09PSBEcm9wZG93bk1lbnVTdHJpbmdFbnVtLkJPVFRPTV9SSUdIVFxuICAgICAgICAgICAgICAgID8gJ2RvdHMtbWVudS1ib3R0b20nXG4gICAgICAgICAgICAgICAgOiAnZG90cy1tZW51JztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiAnaGFtYnVyZ2VyLXNlbGVjdC1tZW51JztcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24tbWVudS1wbGFjZW1lbnQtY2xhc3MucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NhLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2NhLWRyb3Bkb3duLW1lbnUvcGlwZXMvZHJvcGRvd24tbWVudS1wbGFjZW1lbnQtY2xhc3MucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUVwRCxRQUFRO0FBQ1IsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLFVBQVUsQ0FBQzs7QUFNekMsTUFBTSxPQUFPLDhCQUE4QjtJQUN2QyxTQUFTLENBQ0wsSUFBWSxFQUNaLHdCQUFpQyxFQUNqQyxTQUFpQjtRQUVqQixJQUFJLHdCQUF3QixFQUFFLENBQUM7WUFDM0IsT0FBTyxzQkFBc0IsQ0FBQztRQUNsQyxDQUFDO2FBQU0sSUFBSSxJQUFJLEtBQUssYUFBYSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQy9DLE9BQU8sU0FBUyxLQUFLLGFBQWEsQ0FBQyxZQUFZO2dCQUMzQyxDQUFDLENBQUMsa0JBQWtCO2dCQUNwQixDQUFDLENBQUMsV0FBVyxDQUFDO1FBQ3RCLENBQUM7YUFBTSxDQUFDO1lBQ0osT0FBTyx1QkFBdUIsQ0FBQztRQUNuQyxDQUFDO0lBQ0wsQ0FBQzsrR0FmUSw4QkFBOEI7NkdBQTlCLDhCQUE4Qjs7NEZBQTlCLDhCQUE4QjtrQkFKMUMsSUFBSTttQkFBQztvQkFDRixJQUFJLEVBQUUsNEJBQTRCO29CQUNsQyxVQUFVLEVBQUUsSUFBSTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbi8vIGVudW1zXG5pbXBvcnQgeyBlRHJvcGRvd25NZW51IH0gZnJvbSAnLi4vZW51bXMnO1xuXG5AUGlwZSh7XG4gICAgbmFtZTogJ2Ryb3Bkb3duTWVudVBsYWNlbWVudENsYXNzJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBEcm9wZG93bk1lbnVQbGFjZW1lbnRDbGFzc1BpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgICB0cmFuc2Zvcm0oXG4gICAgICAgIHR5cGU6IHN0cmluZyxcbiAgICAgICAgaXNQb3NpdGlvblRyYW5zbGF0ZVVuc2V0OiBib29sZWFuLFxuICAgICAgICBwbGFjZW1lbnQ6IHN0cmluZ1xuICAgICk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgICAgIGlmIChpc1Bvc2l0aW9uVHJhbnNsYXRlVW5zZXQpIHtcbiAgICAgICAgICAgIHJldHVybiAnbWVudS10cmFuc2xhdGUtdW5zZXQnO1xuICAgICAgICB9IGVsc2UgaWYgKHR5cGUgPT09IGVEcm9wZG93bk1lbnUuRE9UU19NRU5VX1RZUEUpIHtcbiAgICAgICAgICAgIHJldHVybiBwbGFjZW1lbnQgPT09IGVEcm9wZG93bk1lbnUuQk9UVE9NX1JJR0hUXG4gICAgICAgICAgICAgICAgPyAnZG90cy1tZW51LWJvdHRvbSdcbiAgICAgICAgICAgICAgICA6ICdkb3RzLW1lbnUnO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuICdoYW1idXJnZXItc2VsZWN0LW1lbnUnO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
@@ -0,0 +1,21 @@
1
+ import { Pipe } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class GroupItemCheckedStatePipe {
4
+ transform(option) {
5
+ if (!option.innerDropdownContent)
6
+ return false;
7
+ const innerOptions = option.innerDropdownContent;
8
+ return (innerOptions.some((opt) => opt.isChecked) &&
9
+ innerOptions.some((opt) => !opt.isChecked));
10
+ }
11
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: GroupItemCheckedStatePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
12
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: GroupItemCheckedStatePipe, isStandalone: true, name: "groupItemCheckedState" }); }
13
+ }
14
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: GroupItemCheckedStatePipe, decorators: [{
15
+ type: Pipe,
16
+ args: [{
17
+ name: 'groupItemCheckedState',
18
+ standalone: true,
19
+ }]
20
+ }] });
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JvdXAtaXRlbS1jaGVja2VkLXN0YXRlLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jYS1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9jYS1kcm9wZG93bi1tZW51L3BpcGVzL2dyb3VwLWl0ZW0tY2hlY2tlZC1zdGF0ZS5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDOztBQVNwRCxNQUFNLE9BQU8seUJBQXlCO0lBQ2xDLFNBQVMsQ0FBQyxNQUF5QjtRQUMvQixJQUFJLENBQUMsTUFBTSxDQUFDLG9CQUFvQjtZQUFFLE9BQU8sS0FBSyxDQUFDO1FBRS9DLE1BQU0sWUFBWSxHQUFHLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQztRQUNqRCxPQUFPLENBQ0gsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQztZQUN6QyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FDN0MsQ0FBQztJQUNOLENBQUM7K0dBVFEseUJBQXlCOzZHQUF6Qix5QkFBeUI7OzRGQUF6Qix5QkFBeUI7a0JBSnJDLElBQUk7bUJBQUM7b0JBQ0YsSUFBSSxFQUFFLHVCQUF1QjtvQkFDN0IsVUFBVSxFQUFFLElBQUk7aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG4vLyBtb2RlbHNcbmltcG9ydCB7IElEcm9wZG93bk1lbnVJdGVtIH0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XG5cbkBQaXBlKHtcbiAgICBuYW1lOiAnZ3JvdXBJdGVtQ2hlY2tlZFN0YXRlJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBHcm91cEl0ZW1DaGVja2VkU3RhdGVQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gICAgdHJhbnNmb3JtKG9wdGlvbjogSURyb3Bkb3duTWVudUl0ZW0pOiBib29sZWFuIHtcbiAgICAgICAgaWYgKCFvcHRpb24uaW5uZXJEcm9wZG93bkNvbnRlbnQpIHJldHVybiBmYWxzZTtcblxuICAgICAgICBjb25zdCBpbm5lck9wdGlvbnMgPSBvcHRpb24uaW5uZXJEcm9wZG93bkNvbnRlbnQ7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICBpbm5lck9wdGlvbnMuc29tZSgob3B0KSA9PiBvcHQuaXNDaGVja2VkKSAmJlxuICAgICAgICAgICAgaW5uZXJPcHRpb25zLnNvbWUoKG9wdCkgPT4gIW9wdC5pc0NoZWNrZWQpXG4gICAgICAgICk7XG4gICAgfVxufVxuIl19
@@ -1,2 +1,3 @@
1
1
  export * from './dropdown-menu-placement-class.pipe';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jYS1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9jYS1kcm9wZG93bi1tZW51L3BpcGVzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsc0NBQXNDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2Ryb3Bkb3duLW1lbnUtcGxhY2VtZW50LWNsYXNzLnBpcGUnO1xuIl19
2
+ export * from './group-item-checked-state.pipe';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jYS1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9jYS1kcm9wZG93bi1tZW51L3BpcGVzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsc0NBQXNDLENBQUM7QUFDckQsY0FBYyxpQ0FBaUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZHJvcGRvd24tbWVudS1wbGFjZW1lbnQtY2xhc3MucGlwZSc7XG5leHBvcnQgKiBmcm9tICcuL2dyb3VwLWl0ZW0tY2hlY2tlZC1zdGF0ZS5waXBlJztcbiJdfQ==
@@ -4,6 +4,7 @@ import { CdkDrag, CdkDragPreview, CdkDropList, CdkDropListGroup, moveItemInArray
4
4
  import { ScrollingModule } from '@angular/cdk/scrolling';
5
5
  // Pipes
6
6
  import { CaMainTableHiddenRowsPipe } from './pipes/ca-main-table-hidden-rows/ca-main-table-hidden-rows.pipe';
7
+ import { RowClassPipe } from '../../pipes/row-class.pipe';
7
8
  import * as i0 from "@angular/core";
8
9
  import * as i1 from "@angular/common";
9
10
  import * as i2 from "@angular/cdk/scrolling";
@@ -60,7 +61,7 @@ export class CaMainTableComponent {
60
61
  this.onReorder.emit(event);
61
62
  }
62
63
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CaMainTableComponent, deps: [{ token: i0.Injector }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
63
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: CaMainTableComponent, isStandalone: true, selector: "app-ca-main-table", inputs: { reorderTemplate: "reorderTemplate", reorderTemplatePreview: "reorderTemplatePreview", transparentTable: "transparentTable", sortPredicate: "sortPredicate", hideFieldsToHide: "hideFieldsToHide", reorderItems: "reorderItems", disableReorderRow: "disableReorderRow", columns: "columns", data$: "data$" }, outputs: { onPressEvent: "onPressEvent", onReorder: "onReorder" }, ngImport: i0, template: "<div class=\"ca-main-table-holder\">\n <!-- <cdk-virtual-scroll-viewport itemSize=\"44\" class=\"main-table-scroll-viewport\"> -->\n <table\n class=\"ca-main-table\"\n [class.transparent]=\"transparentTable\"\n cdkDropListGroup\n >\n <thead>\n <tr\n cdkDropList\n cdkDropListOrientation=\"horizontal\"\n [cdkDropListDisabled]=\"!reorderItems\"\n (cdkDropListDropped)=\"dropHeader($event)\"\n class=\"table-body-list th-table-body-list\"\n >\n <div\n cdkDragLockAxis=\"x\"\n cdkDrag\n cdkDragPreviewContainer=\"parent\"\n *ngFor=\"\n let col of columns | caMainTableHiddenRows: hideFieldsToHide;\n let indx = index\n \"\n class=\"cdk_th_div table-tr\"\n [class]=\"col.cellCustomClasses\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n headerThTemplate;\n context: {\n $implicit: col,\n index: indx,\n }\n \"\n ></ng-container>\n </div>\n </tr>\n </thead>\n <tbody\n #tableMainBody\n cdkScrollable\n cdkDropList\n [cdkDropListData]=\"data$ | async\"\n [cdkDropListSortPredicate]=\"sortPredicate\"\n (cdkDropListDropped)=\"drop($event)\"\n class=\"table-body-list\"\n >\n <ng-container *ngFor=\"let row of data$ | async; let rowIndex = index\">\n <ng-container *ngIf=\"row.rowType != 'reorder'; else reorder\">\n <tr\n cdkDragLockAxis=\"y\"\n cdkDrag\n cdkDragPreviewContainer=\"parent\"\n cdkDragBoundary=\".table-body-list\"\n [cdkDragDisabled]=\"!reorderItems\"\n (click)=\"onPressRow(row)\"\n class=\"table-tr\"\n [class.selected-row]=\"row.selected\"\n >\n <ng-container\n *ngFor=\"\n let col of columns | caMainTableHiddenRows: hideFieldsToHide\n \"\n >\n <td [class]=\"col.cellCustomClasses\">\n <ng-container\n *ngTemplateOutlet=\"\n rowTemplate;\n context: { row: row, col: col, index: rowIndex }\n \"\n >\n </ng-container>\n </td>\n </ng-container>\n </tr>\n </ng-container>\n\n <ng-template #reorder>\n <tr\n cdkDragLockAxis=\"y\"\n cdkDrag\n cdkDragPreviewContainer=\"parent\"\n cdkDragBoundary=\".table-body-list\"\n class=\"table-tr table-preview-row\"\n [cdkDragDisabled]=\"disableReorderRow\"\n >\n <ng-template cdkDragPreview matchSize>\n <tr class=\"table-tr\">\n <ng-container\n *ngTemplateOutlet=\"\n reorderTemplatePreview;\n context: { row: row, index: rowIndex }\n \"\n ></ng-container>\n </tr>\n </ng-template>\n <ng-container\n *ngTemplateOutlet=\"\n reorderTemplate;\n context: { row: row, index: rowIndex }\n \"\n ></ng-container>\n </tr>\n </ng-template>\n </ng-container>\n </tbody>\n </table>\n <!-- </cdk-virtual-scroll-viewport> -->\n</div>\n\n<ng-template #headerThTemplate let-col let-indx=\"index\">\n <th>\n <ng-container [ngSwitch]=\"col.headerCellType\">\n <!-- Template cell -->\n <ng-container *ngSwitchCase=\"'template'\">\n <ng-container\n *ngTemplateOutlet=\"\n col.headerTemplate;\n context: {\n $implicit: col.header,\n index: indx,\n }\n \"\n ></ng-container>\n </ng-container>\n <div *ngSwitchDefault class=\"th-content-container\">\n {{ col.header }}\n </div>\n </ng-container>\n </th>\n</ng-template>\n\n<ng-template #rowTemplate let-row=\"row\" let-col=\"col\" let-index=\"index\">\n <div class=\"td-container\">\n <div class=\"td-content-container\">\n <ng-container [ngSwitch]=\"col.cellType\">\n <!-- Template cell -->\n <ng-container *ngSwitchCase=\"'template'\">\n <ng-container\n *ngTemplateOutlet=\"\n col.template;\n context: {\n $implicit: col.row ? row : row[col.field],\n index: index,\n }\n \"\n ></ng-container>\n </ng-container>\n\n <!-- Custom component cell -->\n <ng-container *ngSwitchCase=\"'component'\">\n <ng-container\n *ngComponentOutlet=\"\n col.component;\n injector: createInjector(col.inputs)\n \"\n ></ng-container>\n </ng-container>\n\n <!-- Default fallback -->\n <ng-container *ngSwitchDefault>\n <ng-container\n *ngTemplateOutlet=\"\n customTextTemplate;\n context: {\n $implicit: {\n field: row[col.field],\n pipeType: col.pipeType,\n pipeString: col.pipeString,\n textCustomClasses: col.textCustomClasses,\n index: index,\n },\n }\n \"\n ></ng-container>\n </ng-container>\n </ng-container>\n </div>\n </div>\n</ng-template>\n\n<!-- Default Text Template -->\n<ng-template #customTextTemplate let-data let-index>\n <ng-container [ngSwitch]=\"data.pipeType\">\n <ng-container *ngSwitchCase=\"'date'\">\n <div [ngClass]=\"data.textCustomClasses\" class=\"text\">\n {{ data.field | date: data.pipeString }}\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'currency'\">\n <div [ngClass]=\"data.textCustomClasses\" class=\"text\">\n {{ data.field | currency: data.pipeString }}\n </div>\n </ng-container>\n <ng-container *ngSwitchDefault>\n <div [ngClass]=\"data.textCustomClasses\" class=\"text\">\n {{ data.field }}\n </div>\n </ng-container>\n </ng-container>\n</ng-template>\n", styles: [".ca-main-table-holder .main-table-scroll-viewport{min-height:200px}.ca-main-table-holder .ca-main-table{color:#424242;width:100%;border-collapse:collapse;background-color:#eee}.ca-main-table-holder .ca-main-table.transparent{background-color:transparent}.ca-main-table-holder .ca-main-table thead.hidden_thead{display:none!important}.ca-main-table-holder .ca-main-table thead tr th{color:#6c6c6c;text-transform:uppercase;font-size:11px}.ca-main-table-holder .ca-main-table thead tr th .th-content-container{padding:4px}.ca-main-table-holder .ca-main-table thead .table-tr.text-right{text-align:right}.ca-main-table-holder .ca-main-table thead .table-tr.text-center{text-align:center}.ca-main-table-holder .ca-main-table tbody.cdk-drop-list-dragging *{-webkit-user-select:none;-ms-user-select:none;user-select:none}.ca-main-table-holder .ca-main-table tbody .table-tr.selected-row{background-color:var(--selected-row-background, #eee)}.ca-main-table-holder .ca-main-table tbody .table-tr:first-child:not(.table-preview-row){opacity:var(--opacity-first-row, 1)}.ca-main-table-holder .ca-main-table tbody .table-tr.table-preview-row~.table-tr:not(.cdk-drag-preview){opacity:var(--under-reorder-opacity, 1)}.ca-main-table-holder .ca-main-table tbody .table-tr.table-preview-row{border-top:var(--table-preview-row-border-top)}.ca-main-table-holder .ca-main-table tbody .table-tr.table-preview-row:not(.cdk-drag-disabled){cursor:grab}.ca-main-table-holder .ca-main-table tbody .table-tr.table-preview-row.cdk-drag-placeholder{cursor:grabbing}.ca-main-table-holder .ca-main-table tbody .table-tr.table-preview-row td:first-child .td-content-container{border-top-left-radius:0;padding:var(--table-preview-row-first-td-padding, 0)}.ca-main-table-holder .ca-main-table tbody .table-tr.table-preview-row td:last-child .td-content-container{border-top-right-radius:0}.ca-main-table-holder .ca-main-table tbody tr td{height:var(--td-height, 36px);padding:var(--td-padding, 1px 0)}.ca-main-table-holder .ca-main-table tbody tr td .td-container{padding:var(--td-container-padding, 4px 0);display:flex;align-items:center;height:var(--td-container-height, 34px);background-color:#fff}.ca-main-table-holder .ca-main-table tbody tr td .td-container .td-content-container{min-height:var(--td-container-content-min-height, 26px);flex:1;padding:var(--td-container-content-padding, 0px 4px);display:flex;align-items:center}.ca-main-table-holder .ca-main-table tbody tr td .td-container .td-content-container .text{font-size:14px}.ca-main-table-holder .ca-main-table tbody tr td .td-container .td-content-container .text.b-100{font-weight:100}.ca-main-table-holder .ca-main-table tbody tr td .td-container .td-content-container .text.b-200{font-weight:200}.ca-main-table-holder .ca-main-table tbody tr td .td-container .td-content-container .text.b-300{font-weight:300}.ca-main-table-holder .ca-main-table tbody tr td .td-container .td-content-container .text.b-400{font-weight:400}.ca-main-table-holder .ca-main-table tbody tr td .td-container .td-content-container .text.b-500{font-weight:500}.ca-main-table-holder .ca-main-table tbody tr td .td-container .td-content-container .text.b-600{font-weight:600}.ca-main-table-holder .ca-main-table tbody tr td .td-container .td-content-container .text.b-700{font-weight:700}.ca-main-table-holder .ca-main-table tbody tr td .td-container .td-content-container .text.b-800{font-weight:800}.ca-main-table-holder .ca-main-table tbody tr td .td-container .td-content-container .text.b-900{font-weight:900}.ca-main-table-holder .ca-main-table tbody tr td .td-container .td-content-container .dragg-move-end-period{display:inline-block;padding:2px 6px;background-color:#91919166;color:#fff;font-size:11px;line-height:14px}.ca-main-table-holder .ca-main-table tbody tr td:first-child .td-container{border-top-left-radius:3px;border-bottom-left-radius:3px;padding-left:var(--td-cointainer-first-child-padding-left, 4px)}.ca-main-table-holder .ca-main-table tbody tr td:first-child .td-container .td-content-container{border-top-left-radius:3px;border-bottom-left-radius:3px}.ca-main-table-holder .ca-main-table tbody tr td:last-child .td-container{border-top-right-radius:3px;border-bottom-right-radius:3px;padding-right:var(--td-cointainer-last-child-padding-right, 4px)}.ca-main-table-holder .ca-main-table tbody tr td:last-child .td-container .td-content-container{border-top-right-radius:3px;border-bottom-right-radius:3px}.ca-main-table-holder .ca-main-table tbody tr td.text-right .td-content-container{justify-content:flex-end}.ca-main-table-holder .ca-main-table tbody tr td.text-center .td-content-container{justify-content:center}.ca-main-table-holder .ca-main-table tbody tr td.text-left .td-content-container{justify-content:flex-start}.ca-main-table-holder .ca-main-table tbody tr:hover td .td-container .td-content-container{background-color:#eee}.cdk_th_div{display:table-cell}.cdk_th_div th{display:block}.drag-placeholder{background-color:#fff}.cdk-drag-preview{box-sizing:border-box;border-radius:4px;box-shadow:var(--cdk-drag-preview-box-shadow, 0 5px 5px -3px rgba(0, 0, 0, .2), 0 8px 10px 1px rgba(0, 0, 0, .14), 0 3px 14px 2px rgba(0, 0, 0, .12))}.cdk-drag-preview td{background-color:var(--cdk-preview-td-bgcolor, transparent)!important}.cdk-drag-preview td .with-padding{padding:0 8px!important}.cdk-drag-preview .td-container{background-color:var(--cdk-preview-bgcolor, transparent)!important;color:var(--cdk-preview-textColor, \"#fff\")}.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}.table-tr:last-child{border:none}.table-body-list.cdk-drop-list-dragging .table-tr:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1);cursor:grabbing!important}.table-body-list.cdk-drop-list-dragging .table-tr:not(.cdk-drag-placeholder) *{cursor:grabbing!important}.drag-placeholder{background:#ccc;border:dotted 3px #999;min-height:60px;transition:transform .25s cubic-bezier(0,0,.2,1)}.cdk-drag-placeholder,.th-table-body-list .cdk-drag-placeholder{opacity:0}.th-table-body-list .cdk_th_div{box-shadow:none!important;background-color:transparent!important}\n"], dependencies: [{ kind: "directive", type: CdkDropListGroup, selector: "[cdkDropListGroup]", inputs: ["cdkDropListGroupDisabled"], exportAs: ["cdkDropListGroup"] }, { kind: "directive", type: CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep", "cdkDropListElementContainer"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer", "cdkDragScale"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: CdkDragPreview, selector: "ng-template[cdkDragPreview]", inputs: ["data", "matchSize"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i1.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i1.CurrencyPipe, name: "currency" }, { kind: "pipe", type: i1.DatePipe, name: "date" }, { kind: "ngmodule", type: ScrollingModule }, { kind: "directive", type: i2.CdkScrollable, selector: "[cdk-scrollable], [cdkScrollable]" }, { kind: "pipe", type: CaMainTableHiddenRowsPipe, name: "caMainTableHiddenRows" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.ShadowDom }); }
64
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: CaMainTableComponent, isStandalone: true, selector: "app-ca-main-table", inputs: { reorderTemplate: "reorderTemplate", reorderTemplatePreview: "reorderTemplatePreview", transparentTable: "transparentTable", sortPredicate: "sortPredicate", hideFieldsToHide: "hideFieldsToHide", reorderItems: "reorderItems", disableReorderRow: "disableReorderRow", columns: "columns", data$: "data$" }, outputs: { onPressEvent: "onPressEvent", onReorder: "onReorder" }, ngImport: i0, template: "@let tableData = data$ | async;\n\n<div class=\"ca-main-table-holder\">\n <!-- <cdk-virtual-scroll-viewport itemSize=\"44\" class=\"main-table-scroll-viewport\"> -->\n <table\n class=\"ca-main-table\"\n [class.transparent]=\"transparentTable\"\n cdkDropListGroup\n >\n <thead>\n <tr\n cdkDropList\n cdkDropListOrientation=\"horizontal\"\n [cdkDropListDisabled]=\"!reorderItems\"\n (cdkDropListDropped)=\"dropHeader($event)\"\n class=\"table-body-list th-table-body-list\"\n >\n <div\n cdkDragLockAxis=\"x\"\n cdkDrag\n cdkDragPreviewContainer=\"parent\"\n *ngFor=\"\n let col of columns | caMainTableHiddenRows: hideFieldsToHide;\n let indx = index\n \"\n class=\"cdk_th_div table-tr\"\n [class]=\"col.cellCustomClasses\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n headerThTemplate;\n context: {\n $implicit: col,\n index: indx,\n }\n \"\n ></ng-container>\n </div>\n </tr>\n </thead>\n <tbody\n #tableMainBody\n cdkScrollable\n cdkDropList\n [cdkDropListData]=\"data$ | async\"\n [cdkDropListSortPredicate]=\"sortPredicate\"\n (cdkDropListDropped)=\"drop($event)\"\n class=\"table-body-list\"\n >\n @for (row of tableData; track $index; let rowIndex = $index) {\n <ng-container *ngIf=\"row.rowType != 'reorder'; else reorder\">\n <tr\n cdkDragLockAxis=\"y\"\n cdkDrag\n cdkDragPreviewContainer=\"parent\"\n cdkDragBoundary=\".table-body-list\"\n [cdkDragDisabled]=\"!reorderItems\"\n (click)=\"onPressRow(row)\"\n class=\"table-tr\"\n [class]=\"row | rowClass : tableData : rowIndex\"\n >\n <ng-container\n *ngFor=\"\n let col of columns | caMainTableHiddenRows: hideFieldsToHide\n \"\n >\n <td [class]=\"col.cellCustomClasses\">\n <ng-container\n *ngTemplateOutlet=\"\n rowTemplate;\n context: { row: row, col: col, index: rowIndex }\n \"\n >\n </ng-container>\n </td>\n </ng-container>\n </tr>\n </ng-container>\n\n <ng-template #reorder>\n <tr\n cdkDragLockAxis=\"y\"\n cdkDrag\n cdkDragPreviewContainer=\"parent\"\n cdkDragBoundary=\".table-body-list\"\n class=\"table-tr table-preview-row\"\n [cdkDragDisabled]=\"disableReorderRow\"\n >\n <ng-template cdkDragPreview matchSize>\n <tr class=\"table-tr\">\n <ng-container\n *ngTemplateOutlet=\"\n reorderTemplatePreview;\n context: { row: row, index: rowIndex }\n \"\n ></ng-container>\n </tr>\n </ng-template>\n <ng-container\n *ngTemplateOutlet=\"\n reorderTemplate;\n context: { row: row, index: rowIndex }\n \"\n ></ng-container>\n </tr>\n </ng-template>\n }\n </tbody>\n </table>\n <!-- </cdk-virtual-scroll-viewport> -->\n</div>\n\n<ng-template #headerThTemplate let-col let-indx=\"index\">\n <th>\n <ng-container [ngSwitch]=\"col.headerCellType\">\n <!-- Template cell -->\n <ng-container *ngSwitchCase=\"'template'\">\n <ng-container\n *ngTemplateOutlet=\"\n col.headerTemplate;\n context: {\n $implicit: col.header,\n index: indx,\n }\n \"\n ></ng-container>\n </ng-container>\n <div *ngSwitchDefault class=\"th-content-container\">\n {{ col.header }}\n </div>\n </ng-container>\n </th>\n</ng-template>\n\n<ng-template #rowTemplate let-row=\"row\" let-col=\"col\" let-index=\"index\">\n <div class=\"td-container\">\n <div class=\"td-content-container\">\n <ng-container [ngSwitch]=\"col.cellType\">\n <!-- Template cell -->\n <ng-container *ngSwitchCase=\"'template'\">\n <ng-container\n *ngTemplateOutlet=\"\n col.template;\n context: {\n $implicit: col.row ? row : row[col.field],\n index: index,\n }\n \"\n ></ng-container>\n </ng-container>\n\n <!-- Custom component cell -->\n <ng-container *ngSwitchCase=\"'component'\">\n <ng-container\n *ngComponentOutlet=\"\n col.component;\n injector: createInjector(col.inputs)\n \"\n ></ng-container>\n </ng-container>\n\n <!-- Default fallback -->\n <ng-container *ngSwitchDefault>\n <ng-container\n *ngTemplateOutlet=\"\n customTextTemplate;\n context: {\n $implicit: {\n field: row[col.field],\n pipeType: col.pipeType,\n pipeString: col.pipeString,\n textCustomClasses: col.textCustomClasses,\n index: index,\n },\n }\n \"\n ></ng-container>\n </ng-container>\n </ng-container>\n </div>\n </div>\n</ng-template>\n\n<!-- Default Text Template -->\n<ng-template #customTextTemplate let-data let-index>\n <ng-container [ngSwitch]=\"data.pipeType\">\n <ng-container *ngSwitchCase=\"'date'\">\n <div [ngClass]=\"data.textCustomClasses\" class=\"text\">\n {{ data.field | date: data.pipeString }}\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'currency'\">\n <div [ngClass]=\"data.textCustomClasses\" class=\"text\">\n {{ data.field | currency: data.pipeString }}\n </div>\n </ng-container>\n <ng-container *ngSwitchDefault>\n <div [ngClass]=\"data.textCustomClasses\" class=\"text\">\n {{ data.field }}\n </div>\n </ng-container>\n </ng-container>\n</ng-template>\n", styles: ["@keyframes dropdown{0%{margin-top:20px;visibility:hidden;opacity:0}to{opacity:1;margin-top:10px;visibility:visible!important}}@keyframes dropup{0%{margin-top:-19px;visibility:hidden;opacity:0}to{margin-top:inherit;visibility:visible!important}}.ca-main-table-holder .main-table-scroll-viewport{min-height:200px}.ca-main-table-holder .ca-main-table{color:#424242;width:100%;border-collapse:collapse;background-color:#eee}.ca-main-table-holder .ca-main-table.transparent{background-color:transparent}.ca-main-table-holder .ca-main-table thead.hidden_thead{display:none!important}.ca-main-table-holder .ca-main-table thead tr th{color:#6c6c6c;text-transform:uppercase;font-size:11px}.ca-main-table-holder .ca-main-table thead tr th .th-content-container{padding:4px}.ca-main-table-holder .ca-main-table thead .table-tr.text-right{text-align:right}.ca-main-table-holder .ca-main-table thead .table-tr.text-center{text-align:center}.ca-main-table-holder .ca-main-table tbody.cdk-drop-list-dragging *{-webkit-user-select:none;-ms-user-select:none;user-select:none}.ca-main-table-holder .ca-main-table tbody .table-tr.selected-row{background-color:var(--selected-row-background, #eee)}.ca-main-table-holder .ca-main-table tbody .table-tr:first-child:not(.table-preview-row){opacity:var(--opacity-first-row, 1)}.ca-main-table-holder .ca-main-table tbody .table-tr.table-preview-row~.table-tr:not(.cdk-drag-preview){opacity:var(--under-reorder-opacity, 1)}.ca-main-table-holder .ca-main-table tbody .table-tr.table-preview-row{border-top:var(--table-preview-row-border-top)}.ca-main-table-holder .ca-main-table tbody .table-tr.table-preview-row:not(.cdk-drag-disabled){cursor:grab}.ca-main-table-holder .ca-main-table tbody .table-tr.table-preview-row.cdk-drag-placeholder{cursor:grabbing}.ca-main-table-holder .ca-main-table tbody .table-tr.table-preview-row td:first-child .td-content-container{border-top-left-radius:0;padding:var(--table-preview-row-first-td-padding, 0)}.ca-main-table-holder .ca-main-table tbody .table-tr.table-preview-row td:last-child .td-content-container{border-top-right-radius:0}.ca-main-table-holder .ca-main-table tbody tr td{height:var(--td-height, 36px);padding:var(--td-padding, 1px 0)}.ca-main-table-holder .ca-main-table tbody tr td .td-container{padding:var(--td-container-padding, 4px 0);display:flex;align-items:center;height:var(--td-container-height, 34px);background-color:#fff}.ca-main-table-holder .ca-main-table tbody tr td .td-container .td-content-container{min-height:var(--td-container-content-min-height, 26px);flex:1;padding:var(--td-container-content-padding, 0px 4px);display:flex;align-items:center}.ca-main-table-holder .ca-main-table tbody tr td .td-container .td-content-container .text{font-size:14px}.ca-main-table-holder .ca-main-table tbody tr td .td-container .td-content-container .text.b-100{font-weight:100}.ca-main-table-holder .ca-main-table tbody tr td .td-container .td-content-container .text.b-200{font-weight:200}.ca-main-table-holder .ca-main-table tbody tr td .td-container .td-content-container .text.b-300{font-weight:300}.ca-main-table-holder .ca-main-table tbody tr td .td-container .td-content-container .text.b-400{font-weight:400}.ca-main-table-holder .ca-main-table tbody tr td .td-container .td-content-container .text.b-500{font-weight:500}.ca-main-table-holder .ca-main-table tbody tr td .td-container .td-content-container .text.b-600{font-weight:600}.ca-main-table-holder .ca-main-table tbody tr td .td-container .td-content-container .text.b-700{font-weight:700}.ca-main-table-holder .ca-main-table tbody tr td .td-container .td-content-container .text.b-800{font-weight:800}.ca-main-table-holder .ca-main-table tbody tr td .td-container .td-content-container .text.b-900{font-weight:900}.ca-main-table-holder .ca-main-table tbody tr td .td-container .td-content-container .dragg-move-end-period{display:inline-block;padding:2px 6px;background-color:#91919166;color:#fff;font-size:11px;line-height:14px}.ca-main-table-holder .ca-main-table tbody tr td:first-child .td-container{border-top-left-radius:3px;border-bottom-left-radius:3px;padding-left:var(--td-cointainer-first-child-padding-left, 4px)}.ca-main-table-holder .ca-main-table tbody tr td:first-child .td-container .td-content-container{border-top-left-radius:3px;border-bottom-left-radius:3px}.ca-main-table-holder .ca-main-table tbody tr td:last-child .td-container{border-top-right-radius:3px;border-bottom-right-radius:3px;padding-right:var(--td-cointainer-last-child-padding-right, 4px)}.ca-main-table-holder .ca-main-table tbody tr td:last-child .td-container .td-content-container{border-top-right-radius:3px;border-bottom-right-radius:3px}.ca-main-table-holder .ca-main-table tbody tr td.text-right .td-content-container{justify-content:flex-end}.ca-main-table-holder .ca-main-table tbody tr td.text-center .td-content-container{justify-content:center}.ca-main-table-holder .ca-main-table tbody tr td.text-left .td-content-container{justify-content:flex-start}.ca-main-table-holder .ca-main-table tbody tr:hover td .td-container .td-content-container{background-color:#eee}.cdk_th_div{display:table-cell}.cdk_th_div th{display:block}.drag-placeholder{background-color:#fff}.cdk-drag-preview{box-sizing:border-box;border-radius:4px;box-shadow:var(--cdk-drag-preview-box-shadow, 0 5px 5px -3px rgba(0, 0, 0, .2), 0 8px 10px 1px rgba(0, 0, 0, .14), 0 3px 14px 2px rgba(0, 0, 0, .12))}.cdk-drag-preview td{background-color:var(--cdk-preview-td-bgcolor, transparent)!important}.cdk-drag-preview td .with-padding{padding:0 8px!important}.cdk-drag-preview .td-container{background-color:var(--cdk-preview-bgcolor, transparent)!important;color:var(--cdk-preview-textColor, \"#fff\")}.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}.table-tr:last-child{border:none}.table-body-list.cdk-drop-list-dragging .table-tr:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1);cursor:grabbing!important}.table-body-list.cdk-drop-list-dragging .table-tr:not(.cdk-drag-placeholder) *{cursor:grabbing!important}.drag-placeholder{background:#ccc;border:dotted 3px #999;min-height:60px;transition:transform .25s cubic-bezier(0,0,.2,1)}.cdk-drag-placeholder,.th-table-body-list .cdk-drag-placeholder{opacity:0}.th-table-body-list .cdk_th_div{box-shadow:none!important;background-color:transparent!important}.tr-border-left{border-left:1px solid #dadada!important}.tr-border-top{border-top:1px solid #dadada!important}.tr-border-bottom{border-bottom:1px solid #dadada!important}\n"], dependencies: [{ kind: "directive", type: CdkDropListGroup, selector: "[cdkDropListGroup]", inputs: ["cdkDropListGroupDisabled"], exportAs: ["cdkDropListGroup"] }, { kind: "directive", type: CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep", "cdkDropListElementContainer"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer", "cdkDragScale"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: CdkDragPreview, selector: "ng-template[cdkDragPreview]", inputs: ["data", "matchSize"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i1.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i1.CurrencyPipe, name: "currency" }, { kind: "pipe", type: i1.DatePipe, name: "date" }, { kind: "ngmodule", type: ScrollingModule }, { kind: "directive", type: i2.CdkScrollable, selector: "[cdk-scrollable], [cdkScrollable]" }, { kind: "pipe", type: CaMainTableHiddenRowsPipe, name: "caMainTableHiddenRows" }, { kind: "pipe", type: RowClassPipe, name: "rowClass" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.ShadowDom }); }
64
65
  }
65
66
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CaMainTableComponent, decorators: [{
66
67
  type: Component,
@@ -72,7 +73,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
72
73
  CommonModule,
73
74
  ScrollingModule,
74
75
  CaMainTableHiddenRowsPipe,
75
- ], encapsulation: ViewEncapsulation.ShadowDom, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"ca-main-table-holder\">\n <!-- <cdk-virtual-scroll-viewport itemSize=\"44\" class=\"main-table-scroll-viewport\"> -->\n <table\n class=\"ca-main-table\"\n [class.transparent]=\"transparentTable\"\n cdkDropListGroup\n >\n <thead>\n <tr\n cdkDropList\n cdkDropListOrientation=\"horizontal\"\n [cdkDropListDisabled]=\"!reorderItems\"\n (cdkDropListDropped)=\"dropHeader($event)\"\n class=\"table-body-list th-table-body-list\"\n >\n <div\n cdkDragLockAxis=\"x\"\n cdkDrag\n cdkDragPreviewContainer=\"parent\"\n *ngFor=\"\n let col of columns | caMainTableHiddenRows: hideFieldsToHide;\n let indx = index\n \"\n class=\"cdk_th_div table-tr\"\n [class]=\"col.cellCustomClasses\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n headerThTemplate;\n context: {\n $implicit: col,\n index: indx,\n }\n \"\n ></ng-container>\n </div>\n </tr>\n </thead>\n <tbody\n #tableMainBody\n cdkScrollable\n cdkDropList\n [cdkDropListData]=\"data$ | async\"\n [cdkDropListSortPredicate]=\"sortPredicate\"\n (cdkDropListDropped)=\"drop($event)\"\n class=\"table-body-list\"\n >\n <ng-container *ngFor=\"let row of data$ | async; let rowIndex = index\">\n <ng-container *ngIf=\"row.rowType != 'reorder'; else reorder\">\n <tr\n cdkDragLockAxis=\"y\"\n cdkDrag\n cdkDragPreviewContainer=\"parent\"\n cdkDragBoundary=\".table-body-list\"\n [cdkDragDisabled]=\"!reorderItems\"\n (click)=\"onPressRow(row)\"\n class=\"table-tr\"\n [class.selected-row]=\"row.selected\"\n >\n <ng-container\n *ngFor=\"\n let col of columns | caMainTableHiddenRows: hideFieldsToHide\n \"\n >\n <td [class]=\"col.cellCustomClasses\">\n <ng-container\n *ngTemplateOutlet=\"\n rowTemplate;\n context: { row: row, col: col, index: rowIndex }\n \"\n >\n </ng-container>\n </td>\n </ng-container>\n </tr>\n </ng-container>\n\n <ng-template #reorder>\n <tr\n cdkDragLockAxis=\"y\"\n cdkDrag\n cdkDragPreviewContainer=\"parent\"\n cdkDragBoundary=\".table-body-list\"\n class=\"table-tr table-preview-row\"\n [cdkDragDisabled]=\"disableReorderRow\"\n >\n <ng-template cdkDragPreview matchSize>\n <tr class=\"table-tr\">\n <ng-container\n *ngTemplateOutlet=\"\n reorderTemplatePreview;\n context: { row: row, index: rowIndex }\n \"\n ></ng-container>\n </tr>\n </ng-template>\n <ng-container\n *ngTemplateOutlet=\"\n reorderTemplate;\n context: { row: row, index: rowIndex }\n \"\n ></ng-container>\n </tr>\n </ng-template>\n </ng-container>\n </tbody>\n </table>\n <!-- </cdk-virtual-scroll-viewport> -->\n</div>\n\n<ng-template #headerThTemplate let-col let-indx=\"index\">\n <th>\n <ng-container [ngSwitch]=\"col.headerCellType\">\n <!-- Template cell -->\n <ng-container *ngSwitchCase=\"'template'\">\n <ng-container\n *ngTemplateOutlet=\"\n col.headerTemplate;\n context: {\n $implicit: col.header,\n index: indx,\n }\n \"\n ></ng-container>\n </ng-container>\n <div *ngSwitchDefault class=\"th-content-container\">\n {{ col.header }}\n </div>\n </ng-container>\n </th>\n</ng-template>\n\n<ng-template #rowTemplate let-row=\"row\" let-col=\"col\" let-index=\"index\">\n <div class=\"td-container\">\n <div class=\"td-content-container\">\n <ng-container [ngSwitch]=\"col.cellType\">\n <!-- Template cell -->\n <ng-container *ngSwitchCase=\"'template'\">\n <ng-container\n *ngTemplateOutlet=\"\n col.template;\n context: {\n $implicit: col.row ? row : row[col.field],\n index: index,\n }\n \"\n ></ng-container>\n </ng-container>\n\n <!-- Custom component cell -->\n <ng-container *ngSwitchCase=\"'component'\">\n <ng-container\n *ngComponentOutlet=\"\n col.component;\n injector: createInjector(col.inputs)\n \"\n ></ng-container>\n </ng-container>\n\n <!-- Default fallback -->\n <ng-container *ngSwitchDefault>\n <ng-container\n *ngTemplateOutlet=\"\n customTextTemplate;\n context: {\n $implicit: {\n field: row[col.field],\n pipeType: col.pipeType,\n pipeString: col.pipeString,\n textCustomClasses: col.textCustomClasses,\n index: index,\n },\n }\n \"\n ></ng-container>\n </ng-container>\n </ng-container>\n </div>\n </div>\n</ng-template>\n\n<!-- Default Text Template -->\n<ng-template #customTextTemplate let-data let-index>\n <ng-container [ngSwitch]=\"data.pipeType\">\n <ng-container *ngSwitchCase=\"'date'\">\n <div [ngClass]=\"data.textCustomClasses\" class=\"text\">\n {{ data.field | date: data.pipeString }}\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'currency'\">\n <div [ngClass]=\"data.textCustomClasses\" class=\"text\">\n {{ data.field | currency: data.pipeString }}\n </div>\n </ng-container>\n <ng-container *ngSwitchDefault>\n <div [ngClass]=\"data.textCustomClasses\" class=\"text\">\n {{ data.field }}\n </div>\n </ng-container>\n </ng-container>\n</ng-template>\n", styles: [".ca-main-table-holder .main-table-scroll-viewport{min-height:200px}.ca-main-table-holder .ca-main-table{color:#424242;width:100%;border-collapse:collapse;background-color:#eee}.ca-main-table-holder .ca-main-table.transparent{background-color:transparent}.ca-main-table-holder .ca-main-table thead.hidden_thead{display:none!important}.ca-main-table-holder .ca-main-table thead tr th{color:#6c6c6c;text-transform:uppercase;font-size:11px}.ca-main-table-holder .ca-main-table thead tr th .th-content-container{padding:4px}.ca-main-table-holder .ca-main-table thead .table-tr.text-right{text-align:right}.ca-main-table-holder .ca-main-table thead .table-tr.text-center{text-align:center}.ca-main-table-holder .ca-main-table tbody.cdk-drop-list-dragging *{-webkit-user-select:none;-ms-user-select:none;user-select:none}.ca-main-table-holder .ca-main-table tbody .table-tr.selected-row{background-color:var(--selected-row-background, #eee)}.ca-main-table-holder .ca-main-table tbody .table-tr:first-child:not(.table-preview-row){opacity:var(--opacity-first-row, 1)}.ca-main-table-holder .ca-main-table tbody .table-tr.table-preview-row~.table-tr:not(.cdk-drag-preview){opacity:var(--under-reorder-opacity, 1)}.ca-main-table-holder .ca-main-table tbody .table-tr.table-preview-row{border-top:var(--table-preview-row-border-top)}.ca-main-table-holder .ca-main-table tbody .table-tr.table-preview-row:not(.cdk-drag-disabled){cursor:grab}.ca-main-table-holder .ca-main-table tbody .table-tr.table-preview-row.cdk-drag-placeholder{cursor:grabbing}.ca-main-table-holder .ca-main-table tbody .table-tr.table-preview-row td:first-child .td-content-container{border-top-left-radius:0;padding:var(--table-preview-row-first-td-padding, 0)}.ca-main-table-holder .ca-main-table tbody .table-tr.table-preview-row td:last-child .td-content-container{border-top-right-radius:0}.ca-main-table-holder .ca-main-table tbody tr td{height:var(--td-height, 36px);padding:var(--td-padding, 1px 0)}.ca-main-table-holder .ca-main-table tbody tr td .td-container{padding:var(--td-container-padding, 4px 0);display:flex;align-items:center;height:var(--td-container-height, 34px);background-color:#fff}.ca-main-table-holder .ca-main-table tbody tr td .td-container .td-content-container{min-height:var(--td-container-content-min-height, 26px);flex:1;padding:var(--td-container-content-padding, 0px 4px);display:flex;align-items:center}.ca-main-table-holder .ca-main-table tbody tr td .td-container .td-content-container .text{font-size:14px}.ca-main-table-holder .ca-main-table tbody tr td .td-container .td-content-container .text.b-100{font-weight:100}.ca-main-table-holder .ca-main-table tbody tr td .td-container .td-content-container .text.b-200{font-weight:200}.ca-main-table-holder .ca-main-table tbody tr td .td-container .td-content-container .text.b-300{font-weight:300}.ca-main-table-holder .ca-main-table tbody tr td .td-container .td-content-container .text.b-400{font-weight:400}.ca-main-table-holder .ca-main-table tbody tr td .td-container .td-content-container .text.b-500{font-weight:500}.ca-main-table-holder .ca-main-table tbody tr td .td-container .td-content-container .text.b-600{font-weight:600}.ca-main-table-holder .ca-main-table tbody tr td .td-container .td-content-container .text.b-700{font-weight:700}.ca-main-table-holder .ca-main-table tbody tr td .td-container .td-content-container .text.b-800{font-weight:800}.ca-main-table-holder .ca-main-table tbody tr td .td-container .td-content-container .text.b-900{font-weight:900}.ca-main-table-holder .ca-main-table tbody tr td .td-container .td-content-container .dragg-move-end-period{display:inline-block;padding:2px 6px;background-color:#91919166;color:#fff;font-size:11px;line-height:14px}.ca-main-table-holder .ca-main-table tbody tr td:first-child .td-container{border-top-left-radius:3px;border-bottom-left-radius:3px;padding-left:var(--td-cointainer-first-child-padding-left, 4px)}.ca-main-table-holder .ca-main-table tbody tr td:first-child .td-container .td-content-container{border-top-left-radius:3px;border-bottom-left-radius:3px}.ca-main-table-holder .ca-main-table tbody tr td:last-child .td-container{border-top-right-radius:3px;border-bottom-right-radius:3px;padding-right:var(--td-cointainer-last-child-padding-right, 4px)}.ca-main-table-holder .ca-main-table tbody tr td:last-child .td-container .td-content-container{border-top-right-radius:3px;border-bottom-right-radius:3px}.ca-main-table-holder .ca-main-table tbody tr td.text-right .td-content-container{justify-content:flex-end}.ca-main-table-holder .ca-main-table tbody tr td.text-center .td-content-container{justify-content:center}.ca-main-table-holder .ca-main-table tbody tr td.text-left .td-content-container{justify-content:flex-start}.ca-main-table-holder .ca-main-table tbody tr:hover td .td-container .td-content-container{background-color:#eee}.cdk_th_div{display:table-cell}.cdk_th_div th{display:block}.drag-placeholder{background-color:#fff}.cdk-drag-preview{box-sizing:border-box;border-radius:4px;box-shadow:var(--cdk-drag-preview-box-shadow, 0 5px 5px -3px rgba(0, 0, 0, .2), 0 8px 10px 1px rgba(0, 0, 0, .14), 0 3px 14px 2px rgba(0, 0, 0, .12))}.cdk-drag-preview td{background-color:var(--cdk-preview-td-bgcolor, transparent)!important}.cdk-drag-preview td .with-padding{padding:0 8px!important}.cdk-drag-preview .td-container{background-color:var(--cdk-preview-bgcolor, transparent)!important;color:var(--cdk-preview-textColor, \"#fff\")}.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}.table-tr:last-child{border:none}.table-body-list.cdk-drop-list-dragging .table-tr:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1);cursor:grabbing!important}.table-body-list.cdk-drop-list-dragging .table-tr:not(.cdk-drag-placeholder) *{cursor:grabbing!important}.drag-placeholder{background:#ccc;border:dotted 3px #999;min-height:60px;transition:transform .25s cubic-bezier(0,0,.2,1)}.cdk-drag-placeholder,.th-table-body-list .cdk-drag-placeholder{opacity:0}.th-table-body-list .cdk_th_div{box-shadow:none!important;background-color:transparent!important}\n"] }]
76
+ RowClassPipe,
77
+ ], encapsulation: ViewEncapsulation.ShadowDom, changeDetection: ChangeDetectionStrategy.OnPush, template: "@let tableData = data$ | async;\n\n<div class=\"ca-main-table-holder\">\n <!-- <cdk-virtual-scroll-viewport itemSize=\"44\" class=\"main-table-scroll-viewport\"> -->\n <table\n class=\"ca-main-table\"\n [class.transparent]=\"transparentTable\"\n cdkDropListGroup\n >\n <thead>\n <tr\n cdkDropList\n cdkDropListOrientation=\"horizontal\"\n [cdkDropListDisabled]=\"!reorderItems\"\n (cdkDropListDropped)=\"dropHeader($event)\"\n class=\"table-body-list th-table-body-list\"\n >\n <div\n cdkDragLockAxis=\"x\"\n cdkDrag\n cdkDragPreviewContainer=\"parent\"\n *ngFor=\"\n let col of columns | caMainTableHiddenRows: hideFieldsToHide;\n let indx = index\n \"\n class=\"cdk_th_div table-tr\"\n [class]=\"col.cellCustomClasses\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n headerThTemplate;\n context: {\n $implicit: col,\n index: indx,\n }\n \"\n ></ng-container>\n </div>\n </tr>\n </thead>\n <tbody\n #tableMainBody\n cdkScrollable\n cdkDropList\n [cdkDropListData]=\"data$ | async\"\n [cdkDropListSortPredicate]=\"sortPredicate\"\n (cdkDropListDropped)=\"drop($event)\"\n class=\"table-body-list\"\n >\n @for (row of tableData; track $index; let rowIndex = $index) {\n <ng-container *ngIf=\"row.rowType != 'reorder'; else reorder\">\n <tr\n cdkDragLockAxis=\"y\"\n cdkDrag\n cdkDragPreviewContainer=\"parent\"\n cdkDragBoundary=\".table-body-list\"\n [cdkDragDisabled]=\"!reorderItems\"\n (click)=\"onPressRow(row)\"\n class=\"table-tr\"\n [class]=\"row | rowClass : tableData : rowIndex\"\n >\n <ng-container\n *ngFor=\"\n let col of columns | caMainTableHiddenRows: hideFieldsToHide\n \"\n >\n <td [class]=\"col.cellCustomClasses\">\n <ng-container\n *ngTemplateOutlet=\"\n rowTemplate;\n context: { row: row, col: col, index: rowIndex }\n \"\n >\n </ng-container>\n </td>\n </ng-container>\n </tr>\n </ng-container>\n\n <ng-template #reorder>\n <tr\n cdkDragLockAxis=\"y\"\n cdkDrag\n cdkDragPreviewContainer=\"parent\"\n cdkDragBoundary=\".table-body-list\"\n class=\"table-tr table-preview-row\"\n [cdkDragDisabled]=\"disableReorderRow\"\n >\n <ng-template cdkDragPreview matchSize>\n <tr class=\"table-tr\">\n <ng-container\n *ngTemplateOutlet=\"\n reorderTemplatePreview;\n context: { row: row, index: rowIndex }\n \"\n ></ng-container>\n </tr>\n </ng-template>\n <ng-container\n *ngTemplateOutlet=\"\n reorderTemplate;\n context: { row: row, index: rowIndex }\n \"\n ></ng-container>\n </tr>\n </ng-template>\n }\n </tbody>\n </table>\n <!-- </cdk-virtual-scroll-viewport> -->\n</div>\n\n<ng-template #headerThTemplate let-col let-indx=\"index\">\n <th>\n <ng-container [ngSwitch]=\"col.headerCellType\">\n <!-- Template cell -->\n <ng-container *ngSwitchCase=\"'template'\">\n <ng-container\n *ngTemplateOutlet=\"\n col.headerTemplate;\n context: {\n $implicit: col.header,\n index: indx,\n }\n \"\n ></ng-container>\n </ng-container>\n <div *ngSwitchDefault class=\"th-content-container\">\n {{ col.header }}\n </div>\n </ng-container>\n </th>\n</ng-template>\n\n<ng-template #rowTemplate let-row=\"row\" let-col=\"col\" let-index=\"index\">\n <div class=\"td-container\">\n <div class=\"td-content-container\">\n <ng-container [ngSwitch]=\"col.cellType\">\n <!-- Template cell -->\n <ng-container *ngSwitchCase=\"'template'\">\n <ng-container\n *ngTemplateOutlet=\"\n col.template;\n context: {\n $implicit: col.row ? row : row[col.field],\n index: index,\n }\n \"\n ></ng-container>\n </ng-container>\n\n <!-- Custom component cell -->\n <ng-container *ngSwitchCase=\"'component'\">\n <ng-container\n *ngComponentOutlet=\"\n col.component;\n injector: createInjector(col.inputs)\n \"\n ></ng-container>\n </ng-container>\n\n <!-- Default fallback -->\n <ng-container *ngSwitchDefault>\n <ng-container\n *ngTemplateOutlet=\"\n customTextTemplate;\n context: {\n $implicit: {\n field: row[col.field],\n pipeType: col.pipeType,\n pipeString: col.pipeString,\n textCustomClasses: col.textCustomClasses,\n index: index,\n },\n }\n \"\n ></ng-container>\n </ng-container>\n </ng-container>\n </div>\n </div>\n</ng-template>\n\n<!-- Default Text Template -->\n<ng-template #customTextTemplate let-data let-index>\n <ng-container [ngSwitch]=\"data.pipeType\">\n <ng-container *ngSwitchCase=\"'date'\">\n <div [ngClass]=\"data.textCustomClasses\" class=\"text\">\n {{ data.field | date: data.pipeString }}\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'currency'\">\n <div [ngClass]=\"data.textCustomClasses\" class=\"text\">\n {{ data.field | currency: data.pipeString }}\n </div>\n </ng-container>\n <ng-container *ngSwitchDefault>\n <div [ngClass]=\"data.textCustomClasses\" class=\"text\">\n {{ data.field }}\n </div>\n </ng-container>\n </ng-container>\n</ng-template>\n", styles: ["@keyframes dropdown{0%{margin-top:20px;visibility:hidden;opacity:0}to{opacity:1;margin-top:10px;visibility:visible!important}}@keyframes dropup{0%{margin-top:-19px;visibility:hidden;opacity:0}to{margin-top:inherit;visibility:visible!important}}.ca-main-table-holder .main-table-scroll-viewport{min-height:200px}.ca-main-table-holder .ca-main-table{color:#424242;width:100%;border-collapse:collapse;background-color:#eee}.ca-main-table-holder .ca-main-table.transparent{background-color:transparent}.ca-main-table-holder .ca-main-table thead.hidden_thead{display:none!important}.ca-main-table-holder .ca-main-table thead tr th{color:#6c6c6c;text-transform:uppercase;font-size:11px}.ca-main-table-holder .ca-main-table thead tr th .th-content-container{padding:4px}.ca-main-table-holder .ca-main-table thead .table-tr.text-right{text-align:right}.ca-main-table-holder .ca-main-table thead .table-tr.text-center{text-align:center}.ca-main-table-holder .ca-main-table tbody.cdk-drop-list-dragging *{-webkit-user-select:none;-ms-user-select:none;user-select:none}.ca-main-table-holder .ca-main-table tbody .table-tr.selected-row{background-color:var(--selected-row-background, #eee)}.ca-main-table-holder .ca-main-table tbody .table-tr:first-child:not(.table-preview-row){opacity:var(--opacity-first-row, 1)}.ca-main-table-holder .ca-main-table tbody .table-tr.table-preview-row~.table-tr:not(.cdk-drag-preview){opacity:var(--under-reorder-opacity, 1)}.ca-main-table-holder .ca-main-table tbody .table-tr.table-preview-row{border-top:var(--table-preview-row-border-top)}.ca-main-table-holder .ca-main-table tbody .table-tr.table-preview-row:not(.cdk-drag-disabled){cursor:grab}.ca-main-table-holder .ca-main-table tbody .table-tr.table-preview-row.cdk-drag-placeholder{cursor:grabbing}.ca-main-table-holder .ca-main-table tbody .table-tr.table-preview-row td:first-child .td-content-container{border-top-left-radius:0;padding:var(--table-preview-row-first-td-padding, 0)}.ca-main-table-holder .ca-main-table tbody .table-tr.table-preview-row td:last-child .td-content-container{border-top-right-radius:0}.ca-main-table-holder .ca-main-table tbody tr td{height:var(--td-height, 36px);padding:var(--td-padding, 1px 0)}.ca-main-table-holder .ca-main-table tbody tr td .td-container{padding:var(--td-container-padding, 4px 0);display:flex;align-items:center;height:var(--td-container-height, 34px);background-color:#fff}.ca-main-table-holder .ca-main-table tbody tr td .td-container .td-content-container{min-height:var(--td-container-content-min-height, 26px);flex:1;padding:var(--td-container-content-padding, 0px 4px);display:flex;align-items:center}.ca-main-table-holder .ca-main-table tbody tr td .td-container .td-content-container .text{font-size:14px}.ca-main-table-holder .ca-main-table tbody tr td .td-container .td-content-container .text.b-100{font-weight:100}.ca-main-table-holder .ca-main-table tbody tr td .td-container .td-content-container .text.b-200{font-weight:200}.ca-main-table-holder .ca-main-table tbody tr td .td-container .td-content-container .text.b-300{font-weight:300}.ca-main-table-holder .ca-main-table tbody tr td .td-container .td-content-container .text.b-400{font-weight:400}.ca-main-table-holder .ca-main-table tbody tr td .td-container .td-content-container .text.b-500{font-weight:500}.ca-main-table-holder .ca-main-table tbody tr td .td-container .td-content-container .text.b-600{font-weight:600}.ca-main-table-holder .ca-main-table tbody tr td .td-container .td-content-container .text.b-700{font-weight:700}.ca-main-table-holder .ca-main-table tbody tr td .td-container .td-content-container .text.b-800{font-weight:800}.ca-main-table-holder .ca-main-table tbody tr td .td-container .td-content-container .text.b-900{font-weight:900}.ca-main-table-holder .ca-main-table tbody tr td .td-container .td-content-container .dragg-move-end-period{display:inline-block;padding:2px 6px;background-color:#91919166;color:#fff;font-size:11px;line-height:14px}.ca-main-table-holder .ca-main-table tbody tr td:first-child .td-container{border-top-left-radius:3px;border-bottom-left-radius:3px;padding-left:var(--td-cointainer-first-child-padding-left, 4px)}.ca-main-table-holder .ca-main-table tbody tr td:first-child .td-container .td-content-container{border-top-left-radius:3px;border-bottom-left-radius:3px}.ca-main-table-holder .ca-main-table tbody tr td:last-child .td-container{border-top-right-radius:3px;border-bottom-right-radius:3px;padding-right:var(--td-cointainer-last-child-padding-right, 4px)}.ca-main-table-holder .ca-main-table tbody tr td:last-child .td-container .td-content-container{border-top-right-radius:3px;border-bottom-right-radius:3px}.ca-main-table-holder .ca-main-table tbody tr td.text-right .td-content-container{justify-content:flex-end}.ca-main-table-holder .ca-main-table tbody tr td.text-center .td-content-container{justify-content:center}.ca-main-table-holder .ca-main-table tbody tr td.text-left .td-content-container{justify-content:flex-start}.ca-main-table-holder .ca-main-table tbody tr:hover td .td-container .td-content-container{background-color:#eee}.cdk_th_div{display:table-cell}.cdk_th_div th{display:block}.drag-placeholder{background-color:#fff}.cdk-drag-preview{box-sizing:border-box;border-radius:4px;box-shadow:var(--cdk-drag-preview-box-shadow, 0 5px 5px -3px rgba(0, 0, 0, .2), 0 8px 10px 1px rgba(0, 0, 0, .14), 0 3px 14px 2px rgba(0, 0, 0, .12))}.cdk-drag-preview td{background-color:var(--cdk-preview-td-bgcolor, transparent)!important}.cdk-drag-preview td .with-padding{padding:0 8px!important}.cdk-drag-preview .td-container{background-color:var(--cdk-preview-bgcolor, transparent)!important;color:var(--cdk-preview-textColor, \"#fff\")}.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}.table-tr:last-child{border:none}.table-body-list.cdk-drop-list-dragging .table-tr:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1);cursor:grabbing!important}.table-body-list.cdk-drop-list-dragging .table-tr:not(.cdk-drag-placeholder) *{cursor:grabbing!important}.drag-placeholder{background:#ccc;border:dotted 3px #999;min-height:60px;transition:transform .25s cubic-bezier(0,0,.2,1)}.cdk-drag-placeholder,.th-table-body-list .cdk-drag-placeholder{opacity:0}.th-table-body-list .cdk_th_div{box-shadow:none!important;background-color:transparent!important}.tr-border-left{border-left:1px solid #dadada!important}.tr-border-top{border-top:1px solid #dadada!important}.tr-border-bottom{border-bottom:1px solid #dadada!important}\n"] }]
76
78
  }], ctorParameters: () => [{ type: i0.Injector }, { type: i0.ChangeDetectorRef }], propDecorators: { onPressEvent: [{
77
79
  type: Output
78
80
  }], onReorder: [{
@@ -96,4 +98,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
96
98
  }], data$: [{
97
99
  type: Input
98
100
  }] } });
99
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2EtbWFpbi10YWJsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jYS1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9jYS1tYWluLXRhYmxlL2NhLW1haW4tdGFibGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2EtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvY2EtbWFpbi10YWJsZS9jYS1tYWluLXRhYmxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQ0wsdUJBQXVCLEVBRXZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osUUFBUSxFQUNSLEtBQUssRUFFTCxNQUFNLEVBRU4saUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFDTCxPQUFPLEVBRVAsY0FBYyxFQUNkLFdBQVcsRUFDWCxnQkFBZ0IsRUFDaEIsZUFBZSxFQUNoQixNQUFNLHdCQUF3QixDQUFDO0FBRWhDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUV6RCxRQUFRO0FBQ1IsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sa0VBQWtFLENBQUM7Ozs7QUFzQjdHLE1BQU0sT0FBTyxvQkFBb0I7SUEwQi9CLFlBQ1UsUUFBa0IsRUFDbEIsS0FBd0I7UUFEeEIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUNsQixVQUFLLEdBQUwsS0FBSyxDQUFtQjtRQTNCM0IsY0FBUyxHQUFNLEVBQU8sQ0FBQztRQUU5QixVQUFVO1FBQ0EsaUJBQVksR0FBc0IsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUMxRCxjQUFTLEdBQ2pCLElBQUksWUFBWSxFQUF1QyxDQUFDO1FBS2pELHFCQUFnQixHQUFZLEtBQUssQ0FBQztRQUNsQyxr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O2dCQUNHLHNCQUFzQjtzQkFBOUIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFRRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbmplY3RvcixcbiAgSW5wdXQsXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtcbiAgQ2RrRHJhZyxcbiAgQ2RrRHJhZ0Ryb3AsXG4gIENka0RyYWdQcmV2aWV3LFxuICBDZGtEcm9wTGlzdCxcbiAgQ2RrRHJvcExpc3RHcm91cCxcbiAgbW92ZUl0ZW1JbkFycmF5XG59IGZyb20gJ0Bhbmd1bGFyL2Nkay9kcmFnLWRyb3AnO1xuXG5pbXBvcnQgeyBTY3JvbGxpbmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvc2Nyb2xsaW5nJztcblxuLy8gUGlwZXNcbmltcG9ydCB7IENhTWFpblRhYmxlSGlkZGVuUm93c1BpcGUgfSBmcm9tICcuL3BpcGVzL2NhLW1haW4tdGFibGUtaGlkZGVuLXJvd3MvY2EtbWFpbi10YWJsZS1oaWRkZW4tcm93cy5waXBlJztcblxuLy8gTW9kZWxzXG5pbXBvcnQgeyBDb2x1bW5Db25maWcgfSBmcm9tICcuL21vZGVscy9tYWluLXRhYmxlLm1vZGVsJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWNhLW1haW4tdGFibGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vY2EtbWFpbi10YWJsZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDZGtEcm9wTGlzdEdyb3VwLFxuICAgIENka0Ryb3BMaXN0LFxuICAgIENka0RyYWcsXG4gICAgQ2RrRHJhZ1ByZXZpZXcsXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIFNjcm9sbGluZ01vZHVsZSxcbiAgICBDYU1haW5UYWJsZUhpZGRlblJvd3NQaXBlLFxuXSxcbiAgc3R5bGVVcmxzOiBbJy4vY2EtbWFpbi10YWJsZS5jb21wb25lbnQuc2NzcyddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5TaGFkb3dEb20sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIENhTWFpblRhYmxlQ29tcG9uZW50PFQgPSBhbnk+IGltcGxlbWVudHMgT25Jbml0IHtcbiAgcHVibGljIHRhYmxlRGF0YTogVCA9IHt9IGFzIFQ7XG5cbiAgLy8gT3V0cHV0c1xuICBAT3V0cHV0KCkgb25QcmVzc0V2ZW50OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBAT3V0cHV0KCkgb25SZW9yZGVyOiBFdmVudEVtaXR0ZXI8Q2RrRHJhZ0Ryb3A8YW55W10gfCBudWxsLCBhbnksIGFueT4+ID1cbiAgICBuZXcgRXZlbnRFbWl0dGVyPENka0RyYWdEcm9wPGFueVtdIHwgbnVsbCwgYW55LCBhbnk+PigpO1xuXG4gIC8vIElucHV0c1xuICBASW5wdXQoKSByZW9yZGVyVGVtcGxhdGUhOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICBASW5wdXQoKSByZW9yZGVyVGVtcGxhdGVQcmV2aWV3ITogVGVtcGxhdGVSZWY8YW55PjtcbiAgQElucHV0KCkgdHJhbnNwYXJlbnRUYWJsZTogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBzb3J0UHJlZGljYXRlOiAoaW5kZXg6IG51bWJlciwgaXRlbTogQ2RrRHJhZzxudW1iZXI+KSA9PiBib29sZWFuID0gKFxuICAgIF86IG51bWJlcixcbiAgICBfXzogQ2RrRHJhZzxudW1iZXI+XG4gICkgPT4ge1xuICAgIHJldHVybiB0cnVlO1xuICB9O1xuXG4gIC8vIElucHV0c1xuICBASW5wdXQoKSBoaWRlRmllbGRzVG9IaWRlOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHJlb3JkZXJJdGVtczogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBkaXNhYmxlUmVvcmRlclJvdzogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBjb2x1bW5zOiBDb2x1bW5Db25maWdbXSA9IFtdO1xuICBASW5wdXQoKSBkYXRhJCE6IE9ic2VydmFibGU8YW55W10+OyAvLyBBY2NlcHRzIHRoZSBkYXRhIGFzIGFuIG9ic2VydmFibGVcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGluamVjdG9yOiBJbmplY3RvcixcbiAgICBwcml2YXRlIGNkUmVmOiBDaGFuZ2VEZXRlY3RvclJlZlxuICApIHt9XG5cbiAgcHVibGljIG9uUHJlc3NSb3cocm93RGF0YTogYW55KTogdm9pZCB7XG4gICAgdGhpcy5vblByZXNzRXZlbnQuZW1pdChyb3dEYXRhKTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuZGF0YSQuc3Vic2NyaWJlKChkYXRhKSA9PiB7XG4gICAgICAvLyBUcmlnZ2VyIGNoYW5nZSBkZXRlY3Rpb24gdG8gdXBkYXRlIHRoZSB2aWV3IHdoZW4gZGF0YSBjaGFuZ2VzXG4gICAgICB0aGlzLnRhYmxlRGF0YSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoZGF0YSkpO1xuICAgICAgdGhpcy5jZFJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgY3JlYXRlSW5qZWN0b3IoXG4gICAgaW5wdXRzOiB7IFtrZXk6IHN0cmluZ106IGFueSB9XG4gICk6IEluamVjdG9yIHtcbiAgICBjb25zdCBpbnB1dFByb3ZpZGVycyA9IE9iamVjdC5rZXlzKGlucHV0cyB8fCB7fSkubWFwKChrZXkpID0+ICh7XG4gICAgICBwcm92aWRlOiBrZXksXG4gICAgICB1c2VWYWx1ZTogaW5wdXRzW2tleV0sXG4gICAgfSkpO1xuICAgIHJldHVybiBJbmplY3Rvci5jcmVhdGUoe1xuICAgICAgcHJvdmlkZXJzOiBpbnB1dFByb3ZpZGVycyxcbiAgICAgIHBhcmVudDogdGhpcy5pbmplY3RvcixcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBhdHRhY2hPdXRwdXRzKFxuICAgIGNvbXBvbmVudFJlZjogYW55LFxuICAgIG91dHB1dHM6IHsgW2tleTogc3RyaW5nXTogKGV2ZW50OiBhbnkpID0+IHZvaWQgfVxuICApOiB2b2lkIHtcbiAgICBPYmplY3Qua2V5cyhvdXRwdXRzKS5mb3JFYWNoKChvdXRwdXRLZXkpID0+IHtcbiAgICAgIGlmIChjb21wb25lbnRSZWYuaW5zdGFuY2Vbb3V0cHV0S2V5XSkge1xuICAgICAgICBjb21wb25lbnRSZWYuaW5zdGFuY2Vbb3V0cHV0S2V5XS5zdWJzY3JpYmUob3V0cHV0c1tvdXRwdXRLZXldKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBkcm9wSGVhZGVyKGV2ZW50OiBDZGtEcmFnRHJvcDxzdHJpbmdbXT4pOiB2b2lkIHtcbiAgICBtb3ZlSXRlbUluQXJyYXkodGhpcy5jb2x1bW5zLCBldmVudC5wcmV2aW91c0luZGV4LCBldmVudC5jdXJyZW50SW5kZXgpO1xuICB9XG5cbiAgcHVibGljIGRyb3AoZXZlbnQ6IENka0RyYWdEcm9wPGFueVtdIHwgbnVsbCwgYW55LCBhbnk+KTogdm9pZCB7XG4gICAgbW92ZUl0ZW1JbkFycmF5KFxuICAgICAgZXZlbnQuY29udGFpbmVyLmRhdGEhLFxuICAgICAgZXZlbnQucHJldmlvdXNJbmRleCxcbiAgICAgIGV2ZW50LmN1cnJlbnRJbmRleFxuICAgICk7XG5cbiAgICB0aGlzLm9uUmVvcmRlci5lbWl0KGV2ZW50KTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImNhLW1haW4tdGFibGUtaG9sZGVyXCI+XG4gIDwhLS0gPGNkay12aXJ0dWFsLXNjcm9sbC12aWV3cG9ydCBpdGVtU2l6ZT1cIjQ0XCIgY2xhc3M9XCJtYWluLXRhYmxlLXNjcm9sbC12aWV3cG9ydFwiPiAtLT5cbiAgPHRhYmxlXG4gICAgY2xhc3M9XCJjYS1tYWluLXRhYmxlXCJcbiAgICBbY2xhc3MudHJhbnNwYXJlbnRdPVwidHJhbnNwYXJlbnRUYWJsZVwiXG4gICAgY2RrRHJvcExpc3RHcm91cFxuICA+XG4gICAgPHRoZWFkPlxuICAgICAgPHRyXG4gICAgICAgIGNka0Ryb3BMaXN0XG4gICAgICAgIGNka0Ryb3BMaXN0T3JpZW50YXRpb249XCJob3Jpem9udGFsXCJcbiAgICAgICAgW2Nka0Ryb3BMaXN0RGlzYWJsZWRdPVwiIXJlb3JkZXJJdGVtc1wiXG4gICAgICAgIChjZGtEcm9wTGlzdERyb3BwZWQpPVwiZHJvcEhlYWRlcigkZXZlbnQpXCJcbiAgICAgICAgY2xhc3M9XCJ0YWJsZS1ib2R5LWxpc3QgdGgtdGFibGUtYm9keS1saXN0XCJcbiAgICAgID5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNka0RyYWdMb2NrQXhpcz1cInhcIlxuICAgICAgICAgIGNka0RyYWdcbiAgICAgICAgICBjZGtEcmFnUHJldmlld0NvbnRhaW5lcj1cInBhcmVudFwiXG4gICAgICAgICAgKm5nRm9yPVwiXG4gICAgICAgICAgICBsZXQgY29sIG9mIGNvbHVtbnMgfCBjYU1haW5UYWJsZUhpZGRlblJvd3M6IGhpZGVGaWVsZHNUb0hpZGU7XG4gICAgICAgICAgICBsZXQgaW5keCA9IGluZGV4XG4gICAgICAgICAgXCJcbiAgICAgICAgICBjbGFzcz1cImNka190aF9kaXYgdGFibGUtdHJcIlxuICAgICAgICAgIFtjbGFzc109XCJjb2wuY2VsbEN1c3RvbUNsYXNzZXNcIlxuICAgICAgICA+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgICAgaGVhZGVyVGhUZW1wbGF0ZTtcbiAgICAgICAgICAgICAgY29udGV4dDoge1xuICAgICAgICAgICAgICAgICRpbXBsaWNpdDogY29sLFxuICAgICAgICAgICAgICAgIGluZGV4OiBpbmR4LFxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBcIlxuICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L3RyPlxuICAgIDwvdGhlYWQ+XG4gICAgPHRib2R5XG4gICAgICAjdGFibGVNYWluQm9keVxuICAgICAgY2RrU2Nyb2xsYWJsZVxuICAgICAgY2RrRHJvcExpc3RcbiAgICAgIFtjZGtEcm9wTGlzdERhdGFdPVwiZGF0YSQgfCBhc3luY1wiXG4gICAgICBbY2RrRHJvcExpc3RTb3J0UHJlZGljYXRlXT1cInNvcnRQcmVkaWNhdGVcIlxuICAgICAgKGNka0Ryb3BMaXN0RHJvcHBlZCk9XCJkcm9wKCRldmVudClcIlxuICAgICAgY2xhc3M9XCJ0YWJsZS1ib2R5LWxpc3RcIlxuICAgID5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHJvdyBvZiBkYXRhJCB8IGFzeW5jOyBsZXQgcm93SW5kZXggPSBpbmRleFwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwicm93LnJvd1R5cGUgIT0gJ3Jlb3JkZXInOyBlbHNlIHJlb3JkZXJcIj5cbiAgICAgICAgICA8dHJcbiAgICAgICAgICAgIGNka0RyYWdMb2NrQXhpcz1cInlcIlxuICAgICAgICAgICAgY2RrRHJhZ1xuICAgICAgICAgICAgY2RrRHJhZ1ByZXZpZXdDb250YWluZXI9XCJwYXJlbnRcIlxuICAgICAgICAgICAgY2RrRHJhZ0JvdW5kYXJ5PVwiLnRhYmxlLWJvZHktbGlzdFwiXG4gICAgICAgICAgICBbY2RrRHJhZ0Rpc2FibGVkXT1cIiFyZW9yZGVySXRlbXNcIlxuICAgICAgICAgICAgKGNsaWNrKT1cIm9uUHJlc3NSb3cocm93KVwiXG4gICAgICAgICAgICBjbGFzcz1cInRhYmxlLXRyXCJcbiAgICAgICAgICAgIFtjbGFzcy5zZWxlY3RlZC1yb3ddPVwicm93LnNlbGVjdGVkXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICpuZ0Zvcj1cIlxuICAgICAgICAgICAgICAgIGxldCBjb2wgb2YgY29sdW1ucyB8IGNhTWFpblRhYmxlSGlkZGVuUm93czogaGlkZUZpZWxkc1RvSGlkZVxuICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8dGQgW2NsYXNzXT1cImNvbC5jZWxsQ3VzdG9tQ2xhc3Nlc1wiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgICAgICAgICAgIHJvd1RlbXBsYXRlO1xuICAgICAgICAgICAgICAgICAgICBjb250ZXh0OiB7IHJvdzogcm93LCBjb2w6IGNvbCwgaW5kZXg6IHJvd0luZGV4IH1cbiAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPC90cj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgPG5nLXRlbXBsYXRlICNyZW9yZGVyPlxuICAgICAgICAgIDx0clxuICAgICAgICAgICAgY2RrRHJhZ0xvY2tBeGlzPVwieVwiXG4gICAgICAgICAgICBjZGtEcmFnXG4gICAgICAgICAgICBjZGtEcmFnUHJldmlld0NvbnRhaW5lcj1cInBhcmVudFwiXG4gICAgICAgICAgICBjZGtEcmFnQm91bmRhcnk9XCIudGFibGUtYm9keS1saXN0XCJcbiAgICAgICAgICAgIGNsYXNzPVwidGFibGUtdHIgdGFibGUtcHJldmlldy1yb3dcIlxuICAgICAgICAgICAgW2Nka0RyYWdEaXNhYmxlZF09XCJkaXNhYmxlUmVvcmRlclJvd1wiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlIGNka0RyYWdQcmV2aWV3IG1hdGNoU2l6ZT5cbiAgICAgICAgICAgICAgPHRyIGNsYXNzPVwidGFibGUtdHJcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgICAgICAgICByZW9yZGVyVGVtcGxhdGVQcmV2aWV3O1xuICAgICAgICAgICAgICAgICAgICBjb250ZXh0OiB7IHJvdzogcm93LCBpbmRleDogcm93SW5kZXggfVxuICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgICAgIHJlb3JkZXJUZW1wbGF0ZTtcbiAgICAgICAgICAgICAgICBjb250ZXh0OiB7IHJvdzogcm93LCBpbmRleDogcm93SW5kZXggfVxuICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvdHI+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L3Rib2R5PlxuICA8L3RhYmxlPlxuICA8IS0tIDwvY2RrLXZpcnR1YWwtc2Nyb2xsLXZpZXdwb3J0PiAtLT5cbjwvZGl2PlxuXG48bmctdGVtcGxhdGUgI2hlYWRlclRoVGVtcGxhdGUgbGV0LWNvbCBsZXQtaW5keD1cImluZGV4XCI+XG4gIDx0aD5cbiAgICA8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJjb2wuaGVhZGVyQ2VsbFR5cGVcIj5cbiAgICAgIDwhLS0gVGVtcGxhdGUgY2VsbCAtLT5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIid0ZW1wbGF0ZSdcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgICBjb2wuaGVhZGVyVGVtcGxhdGU7XG4gICAgICAgICAgICBjb250ZXh0OiB7XG4gICAgICAgICAgICAgICRpbXBsaWNpdDogY29sLmhlYWRlcixcbiAgICAgICAgICAgICAgaW5kZXg6IGluZHgsXG4gICAgICAgICAgICB9XG4gICAgICAgICAgXCJcbiAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8ZGl2ICpuZ1N3aXRjaERlZmF1bHQgY2xhc3M9XCJ0aC1jb250ZW50LWNvbnRhaW5lclwiPlxuICAgICAgICB7eyBjb2wuaGVhZGVyIH19XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC90aD5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjcm93VGVtcGxhdGUgbGV0LXJvdz1cInJvd1wiIGxldC1jb2w9XCJjb2xcIiBsZXQtaW5kZXg9XCJpbmRleFwiPlxuICA8ZGl2IGNsYXNzPVwidGQtY29udGFpbmVyXCI+XG4gICAgPGRpdiBjbGFzcz1cInRkLWNvbnRlbnQtY29udGFpbmVyXCI+XG4gICAgICA8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJjb2wuY2VsbFR5cGVcIj5cbiAgICAgICAgPCEtLSBUZW1wbGF0ZSBjZWxsIC0tPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCIndGVtcGxhdGUnXCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgICAgY29sLnRlbXBsYXRlO1xuICAgICAgICAgICAgICBjb250ZXh0OiB7XG4gICAgICAgICAgICAgICAgJGltcGxpY2l0OiBjb2wucm93ID8gcm93IDogcm93W2NvbC5maWVsZF0sXG4gICAgICAgICAgICAgICAgaW5kZXg6IGluZGV4LFxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBcIlxuICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgPCEtLSBDdXN0b20gY29tcG9uZW50IGNlbGwgLS0+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidjb21wb25lbnQnXCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgKm5nQ29tcG9uZW50T3V0bGV0PVwiXG4gICAgICAgICAgICAgIGNvbC5jb21wb25lbnQ7XG4gICAgICAgICAgICAgIGluamVjdG9yOiBjcmVhdGVJbmplY3Rvcihjb2wuaW5wdXRzKVxuICAgICAgICAgICAgXCJcbiAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDwhLS0gRGVmYXVsdCBmYWxsYmFjayAtLT5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hEZWZhdWx0PlxuICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgICAgIGN1c3RvbVRleHRUZW1wbGF0ZTtcbiAgICAgICAgICAgICAgY29udGV4dDoge1xuICAgICAgICAgICAgICAgICRpbXBsaWNpdDoge1xuICAgICAgICAgICAgICAgICAgZmllbGQ6IHJvd1tjb2wuZmllbGRdLFxuICAgICAgICAgICAgICAgICAgcGlwZVR5cGU6IGNvbC5waXBlVHlwZSxcbiAgICAgICAgICAgICAgICAgIHBpcGVTdHJpbmc6IGNvbC5waXBlU3RyaW5nLFxuICAgICAgICAgICAgICAgICAgdGV4dEN1c3RvbUNsYXNzZXM6IGNvbC50ZXh0Q3VzdG9tQ2xhc3NlcyxcbiAgICAgICAgICAgICAgICAgIGluZGV4OiBpbmRleCxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBcIlxuICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG48IS0tIERlZmF1bHQgVGV4dCBUZW1wbGF0ZSAgLS0+XG48bmctdGVtcGxhdGUgI2N1c3RvbVRleHRUZW1wbGF0ZSBsZXQtZGF0YSBsZXQtaW5kZXg+XG4gIDxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cImRhdGEucGlwZVR5cGVcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInZGF0ZSdcIj5cbiAgICAgIDxkaXYgW25nQ2xhc3NdPVwiZGF0YS50ZXh0Q3VzdG9tQ2xhc3Nlc1wiIGNsYXNzPVwidGV4dFwiPlxuICAgICAgICB7eyBkYXRhLmZpZWxkIHwgZGF0ZTogZGF0YS5waXBlU3RyaW5nIH19XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInY3VycmVuY3knXCI+XG4gICAgICA8ZGl2IFtuZ0NsYXNzXT1cImRhdGEudGV4dEN1c3RvbUNsYXNzZXNcIiBjbGFzcz1cInRleHRcIj5cbiAgICAgICAge3sgZGF0YS5maWVsZCB8IGN1cnJlbmN5OiBkYXRhLnBpcGVTdHJpbmcgfX1cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoRGVmYXVsdD5cbiAgICAgIDxkaXYgW25nQ2xhc3NdPVwiZGF0YS50ZXh0Q3VzdG9tQ2xhc3Nlc1wiIGNsYXNzPVwidGV4dFwiPlxuICAgICAgICB7eyBkYXRhLmZpZWxkIH19XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9uZy1jb250YWluZXI+XG48L25nLXRlbXBsYXRlPlxuIl19
101
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2EtbWFpbi10YWJsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jYS1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9jYS1tYWluLXRhYmxlL2NhLW1haW4tdGFibGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2EtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvY2EtbWFpbi10YWJsZS9jYS1tYWluLXRhYmxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQ0wsdUJBQXVCLEVBRXZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osUUFBUSxFQUNSLEtBQUssRUFFTCxNQUFNLEVBRU4saUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFDTCxPQUFPLEVBRVAsY0FBYyxFQUNkLFdBQVcsRUFDWCxnQkFBZ0IsRUFDaEIsZUFBZSxFQUNoQixNQUFNLHdCQUF3QixDQUFDO0FBRWhDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUV6RCxRQUFRO0FBQ1IsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sa0VBQWtFLENBQUM7QUFDN0csT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7O0FBdUIxRCxNQUFNLE9BQU8sb0JBQW9CO0lBMEIvQixZQUNVLFFBQWtCLEVBQ2xCLEtBQXdCO1FBRHhCLGFBQVEsR0FBUixRQUFRLENBQVU7UUFDbEIsVUFBSyxHQUFMLEtBQUssQ0FBbUI7UUEzQjNCLGNBQVMsR0FBTSxFQUFPLENBQUM7UUFFOUIsVUFBVTtRQUNBLGlCQUFZLEdBQXNCLElBQUksWUFBWSxFQUFPLENBQUM7UUFDMUQsY0FBUyxHQUNqQixJQUFJLFlBQVksRUFB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ckMsWUFBWTtzQkFBckIsTUFBTTtnQkFDRyxTQUFTO3NCQUFsQixNQUFNO2dCQUlFLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csc0JBQXNCO3NCQUE5QixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQVFHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIEluamVjdG9yLFxuICBJbnB1dCxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1xuICBDZGtEcmFnLFxuICBDZGtEcmFnRHJvcCxcbiAgQ2RrRHJhZ1ByZXZpZXcsXG4gIENka0Ryb3BMaXN0LFxuICBDZGtEcm9wTGlzdEdyb3VwLFxuICBtb3ZlSXRlbUluQXJyYXlcbn0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XG5cbmltcG9ydCB7IFNjcm9sbGluZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9zY3JvbGxpbmcnO1xuXG4vLyBQaXBlc1xuaW1wb3J0IHsgQ2FNYWluVGFibGVIaWRkZW5Sb3dzUGlwZSB9IGZyb20gJy4vcGlwZXMvY2EtbWFpbi10YWJsZS1oaWRkZW4tcm93cy9jYS1tYWluLXRhYmxlLWhpZGRlbi1yb3dzLnBpcGUnO1xuaW1wb3J0IHsgUm93Q2xhc3NQaXBlIH0gZnJvbSAnLi4vLi4vcGlwZXMvcm93LWNsYXNzLnBpcGUnO1xuXG4vLyBNb2RlbHNcbmltcG9ydCB7IENvbHVtbkNvbmZpZyB9IGZyb20gJy4vbW9kZWxzL21haW4tdGFibGUubW9kZWwnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtY2EtbWFpbi10YWJsZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9jYS1tYWluLXRhYmxlLmNvbXBvbmVudC5odG1sJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENka0Ryb3BMaXN0R3JvdXAsXG4gICAgQ2RrRHJvcExpc3QsXG4gICAgQ2RrRHJhZyxcbiAgICBDZGtEcmFnUHJldmlldyxcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgU2Nyb2xsaW5nTW9kdWxlLFxuICAgIENhTWFpblRhYmxlSGlkZGVuUm93c1BpcGUsXG4gICAgUm93Q2xhc3NQaXBlLFxuXSxcbiAgc3R5bGVVcmxzOiBbJy4vY2EtbWFpbi10YWJsZS5jb21wb25lbnQuc2NzcyddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5TaGFkb3dEb20sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIENhTWFpblRhYmxlQ29tcG9uZW50PFQgPSBhbnk+IGltcGxlbWVudHMgT25Jbml0IHtcbiAgcHVibGljIHRhYmxlRGF0YTogVCA9IHt9IGFzIFQ7XG5cbiAgLy8gT3V0cHV0c1xuICBAT3V0cHV0KCkgb25QcmVzc0V2ZW50OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBAT3V0cHV0KCkgb25SZW9yZGVyOiBFdmVudEVtaXR0ZXI8Q2RrRHJhZ0Ryb3A8YW55W10gfCBudWxsLCBhbnksIGFueT4+ID1cbiAgICBuZXcgRXZlbnRFbWl0dGVyPENka0RyYWdEcm9wPGFueVtdIHwgbnVsbCwgYW55LCBhbnk+PigpO1xuXG4gIC8vIElucHV0c1xuICBASW5wdXQoKSByZW9yZGVyVGVtcGxhdGUhOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICBASW5wdXQoKSByZW9yZGVyVGVtcGxhdGVQcmV2aWV3ITogVGVtcGxhdGVSZWY8YW55PjtcbiAgQElucHV0KCkgdHJhbnNwYXJlbnRUYWJsZTogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBzb3J0UHJlZGljYXRlOiAoaW5kZXg6IG51bWJlciwgaXRlbTogQ2RrRHJhZzxudW1iZXI+KSA9PiBib29sZWFuID0gKFxuICAgIF86IG51bWJlcixcbiAgICBfXzogQ2RrRHJhZzxudW1iZXI+XG4gICkgPT4ge1xuICAgIHJldHVybiB0cnVlO1xuICB9O1xuXG4gIC8vIElucHV0c1xuICBASW5wdXQoKSBoaWRlRmllbGRzVG9IaWRlOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHJlb3JkZXJJdGVtczogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBkaXNhYmxlUmVvcmRlclJvdzogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBjb2x1bW5zOiBDb2x1bW5Db25maWdbXSA9IFtdO1xuICBASW5wdXQoKSBkYXRhJCE6IE9ic2VydmFibGU8YW55W10+OyAvLyBBY2NlcHRzIHRoZSBkYXRhIGFzIGFuIG9ic2VydmFibGVcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGluamVjdG9yOiBJbmplY3RvcixcbiAgICBwcml2YXRlIGNkUmVmOiBDaGFuZ2VEZXRlY3RvclJlZlxuICApIHt9XG5cbiAgcHVibGljIG9uUHJlc3NSb3cocm93RGF0YTogYW55KTogdm9pZCB7XG4gICAgdGhpcy5vblByZXNzRXZlbnQuZW1pdChyb3dEYXRhKTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuZGF0YSQuc3Vic2NyaWJlKChkYXRhKSA9PiB7XG4gICAgICAvLyBUcmlnZ2VyIGNoYW5nZSBkZXRlY3Rpb24gdG8gdXBkYXRlIHRoZSB2aWV3IHdoZW4gZGF0YSBjaGFuZ2VzXG4gICAgICB0aGlzLnRhYmxlRGF0YSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoZGF0YSkpO1xuICAgICAgdGhpcy5jZFJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgY3JlYXRlSW5qZWN0b3IoXG4gICAgaW5wdXRzOiB7IFtrZXk6IHN0cmluZ106IGFueSB9XG4gICk6IEluamVjdG9yIHtcbiAgICBjb25zdCBpbnB1dFByb3ZpZGVycyA9IE9iamVjdC5rZXlzKGlucHV0cyB8fCB7fSkubWFwKChrZXkpID0+ICh7XG4gICAgICBwcm92aWRlOiBrZXksXG4gICAgICB1c2VWYWx1ZTogaW5wdXRzW2tleV0sXG4gICAgfSkpO1xuICAgIHJldHVybiBJbmplY3Rvci5jcmVhdGUoe1xuICAgICAgcHJvdmlkZXJzOiBpbnB1dFByb3ZpZGVycyxcbiAgICAgIHBhcmVudDogdGhpcy5pbmplY3RvcixcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBhdHRhY2hPdXRwdXRzKFxuICAgIGNvbXBvbmVudFJlZjogYW55LFxuICAgIG91dHB1dHM6IHsgW2tleTogc3RyaW5nXTogKGV2ZW50OiBhbnkpID0+IHZvaWQgfVxuICApOiB2b2lkIHtcbiAgICBPYmplY3Qua2V5cyhvdXRwdXRzKS5mb3JFYWNoKChvdXRwdXRLZXkpID0+IHtcbiAgICAgIGlmIChjb21wb25lbnRSZWYuaW5zdGFuY2Vbb3V0cHV0S2V5XSkge1xuICAgICAgICBjb21wb25lbnRSZWYuaW5zdGFuY2Vbb3V0cHV0S2V5XS5zdWJzY3JpYmUob3V0cHV0c1tvdXRwdXRLZXldKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBkcm9wSGVhZGVyKGV2ZW50OiBDZGtEcmFnRHJvcDxzdHJpbmdbXT4pOiB2b2lkIHtcbiAgICBtb3ZlSXRlbUluQXJyYXkodGhpcy5jb2x1bW5zLCBldmVudC5wcmV2aW91c0luZGV4LCBldmVudC5jdXJyZW50SW5kZXgpO1xuICB9XG5cbiAgcHVibGljIGRyb3AoZXZlbnQ6IENka0RyYWdEcm9wPGFueVtdIHwgbnVsbCwgYW55LCBhbnk+KTogdm9pZCB7XG4gICAgbW92ZUl0ZW1JbkFycmF5KFxuICAgICAgZXZlbnQuY29udGFpbmVyLmRhdGEhLFxuICAgICAgZXZlbnQucHJldmlvdXNJbmRleCxcbiAgICAgIGV2ZW50LmN1cnJlbnRJbmRleFxuICAgICk7XG5cbiAgICB0aGlzLm9uUmVvcmRlci5lbWl0KGV2ZW50KTtcbiAgfVxufVxuIiwiQGxldCB0YWJsZURhdGEgPSBkYXRhJCB8IGFzeW5jO1xuXG48ZGl2IGNsYXNzPVwiY2EtbWFpbi10YWJsZS1ob2xkZXJcIj5cbiAgPCEtLSA8Y2RrLXZpcnR1YWwtc2Nyb2xsLXZpZXdwb3J0IGl0ZW1TaXplPVwiNDRcIiBjbGFzcz1cIm1haW4tdGFibGUtc2Nyb2xsLXZpZXdwb3J0XCI+IC0tPlxuICA8dGFibGVcbiAgICBjbGFzcz1cImNhLW1haW4tdGFibGVcIlxuICAgIFtjbGFzcy50cmFuc3BhcmVudF09XCJ0cmFuc3BhcmVudFRhYmxlXCJcbiAgICBjZGtEcm9wTGlzdEdyb3VwXG4gID5cbiAgICA8dGhlYWQ+XG4gICAgICA8dHJcbiAgICAgICAgY2RrRHJvcExpc3RcbiAgICAgICAgY2RrRHJvcExpc3RPcmllbnRhdGlvbj1cImhvcml6b250YWxcIlxuICAgICAgICBbY2RrRHJvcExpc3REaXNhYmxlZF09XCIhcmVvcmRlckl0ZW1zXCJcbiAgICAgICAgKGNka0Ryb3BMaXN0RHJvcHBlZCk9XCJkcm9wSGVhZGVyKCRldmVudClcIlxuICAgICAgICBjbGFzcz1cInRhYmxlLWJvZHktbGlzdCB0aC10YWJsZS1ib2R5LWxpc3RcIlxuICAgICAgPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2RrRHJhZ0xvY2tBeGlzPVwieFwiXG4gICAgICAgICAgY2RrRHJhZ1xuICAgICAgICAgIGNka0RyYWdQcmV2aWV3Q29udGFpbmVyPVwicGFyZW50XCJcbiAgICAgICAgICAqbmdGb3I9XCJcbiAgICAgICAgICAgIGxldCBjb2wgb2YgY29sdW1ucyB8IGNhTWFpblRhYmxlSGlkZGVuUm93czogaGlkZUZpZWxkc1RvSGlkZTtcbiAgICAgICAgICAgIGxldCBpbmR4ID0gaW5kZXhcbiAgICAgICAgICBcIlxuICAgICAgICAgIGNsYXNzPVwiY2RrX3RoX2RpdiB0YWJsZS10clwiXG4gICAgICAgICAgW2NsYXNzXT1cImNvbC5jZWxsQ3VzdG9tQ2xhc3Nlc1wiXG4gICAgICAgID5cbiAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgICBoZWFkZXJUaFRlbXBsYXRlO1xuICAgICAgICAgICAgICBjb250ZXh0OiB7XG4gICAgICAgICAgICAgICAgJGltcGxpY2l0OiBjb2wsXG4gICAgICAgICAgICAgICAgaW5kZXg6IGluZHgsXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIFwiXG4gICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvdHI+XG4gICAgPC90aGVhZD5cbiAgICA8dGJvZHlcbiAgICAgICN0YWJsZU1haW5Cb2R5XG4gICAgICBjZGtTY3JvbGxhYmxlXG4gICAgICBjZGtEcm9wTGlzdFxuICAgICAgW2Nka0Ryb3BMaXN0RGF0YV09XCJkYXRhJCB8IGFzeW5jXCJcbiAgICAgIFtjZGtEcm9wTGlzdFNvcnRQcmVkaWNhdGVdPVwic29ydFByZWRpY2F0ZVwiXG4gICAgICAoY2RrRHJvcExpc3REcm9wcGVkKT1cImRyb3AoJGV2ZW50KVwiXG4gICAgICBjbGFzcz1cInRhYmxlLWJvZHktbGlzdFwiXG4gICAgPlxuICAgICAgQGZvciAocm93IG9mIHRhYmxlRGF0YTsgdHJhY2sgJGluZGV4OyBsZXQgcm93SW5kZXggPSAkaW5kZXgpIHtcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInJvdy5yb3dUeXBlICE9ICdyZW9yZGVyJzsgZWxzZSByZW9yZGVyXCI+XG4gICAgICAgICAgPHRyXG4gICAgICAgICAgICBjZGtEcmFnTG9ja0F4aXM9XCJ5XCJcbiAgICAgICAgICAgIGNka0RyYWdcbiAgICAgICAgICAgIGNka0RyYWdQcmV2aWV3Q29udGFpbmVyPVwicGFyZW50XCJcbiAgICAgICAgICAgIGNka0RyYWdCb3VuZGFyeT1cIi50YWJsZS1ib2R5LWxpc3RcIlxuICAgICAgICAgICAgW2Nka0RyYWdEaXNhYmxlZF09XCIhcmVvcmRlckl0ZW1zXCJcbiAgICAgICAgICAgIChjbGljayk9XCJvblByZXNzUm93KHJvdylcIlxuICAgICAgICAgICAgY2xhc3M9XCJ0YWJsZS10clwiXG4gICAgICAgICAgICBbY2xhc3NdPVwicm93IHwgcm93Q2xhc3MgOiB0YWJsZURhdGEgOiByb3dJbmRleFwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAqbmdGb3I9XCJcbiAgICAgICAgICAgICAgICBsZXQgY29sIG9mIGNvbHVtbnMgfCBjYU1haW5UYWJsZUhpZGRlblJvd3M6IGhpZGVGaWVsZHNUb0hpZGVcbiAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPHRkIFtjbGFzc109XCJjb2wuY2VsbEN1c3RvbUNsYXNzZXNcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgICAgICAgICByb3dUZW1wbGF0ZTtcbiAgICAgICAgICAgICAgICAgICAgY29udGV4dDogeyByb3c6IHJvdywgY29sOiBjb2wsIGluZGV4OiByb3dJbmRleCB9XG4gICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvdHI+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjcmVvcmRlcj5cbiAgICAgICAgICA8dHJcbiAgICAgICAgICAgIGNka0RyYWdMb2NrQXhpcz1cInlcIlxuICAgICAgICAgICAgY2RrRHJhZ1xuICAgICAgICAgICAgY2RrRHJhZ1ByZXZpZXdDb250YWluZXI9XCJwYXJlbnRcIlxuICAgICAgICAgICAgY2RrRHJhZ0JvdW5kYXJ5PVwiLnRhYmxlLWJvZHktbGlzdFwiXG4gICAgICAgICAgICBjbGFzcz1cInRhYmxlLXRyIHRhYmxlLXByZXZpZXctcm93XCJcbiAgICAgICAgICAgIFtjZGtEcmFnRGlzYWJsZWRdPVwiZGlzYWJsZVJlb3JkZXJSb3dcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBjZGtEcmFnUHJldmlldyBtYXRjaFNpemU+XG4gICAgICAgICAgICAgIDx0ciBjbGFzcz1cInRhYmxlLXRyXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgICAgICAgICAgcmVvcmRlclRlbXBsYXRlUHJldmlldztcbiAgICAgICAgICAgICAgICAgICAgY29udGV4dDogeyByb3c6IHJvdywgaW5kZXg6IHJvd0luZGV4IH1cbiAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgICAgICByZW9yZGVyVGVtcGxhdGU7XG4gICAgICAgICAgICAgICAgY29udGV4dDogeyByb3c6IHJvdywgaW5kZXg6IHJvd0luZGV4IH1cbiAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L3RyPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgfVxuICAgIDwvdGJvZHk+XG4gIDwvdGFibGU+XG4gIDwhLS0gPC9jZGstdmlydHVhbC1zY3JvbGwtdmlld3BvcnQ+IC0tPlxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZSAjaGVhZGVyVGhUZW1wbGF0ZSBsZXQtY29sIGxldC1pbmR4PVwiaW5kZXhcIj5cbiAgPHRoPlxuICAgIDxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cImNvbC5oZWFkZXJDZWxsVHlwZVwiPlxuICAgICAgPCEtLSBUZW1wbGF0ZSBjZWxsIC0tPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ3RlbXBsYXRlJ1wiPlxuICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgIGNvbC5oZWFkZXJUZW1wbGF0ZTtcbiAgICAgICAgICAgIGNvbnRleHQ6IHtcbiAgICAgICAgICAgICAgJGltcGxpY2l0OiBjb2wuaGVhZGVyLFxuICAgICAgICAgICAgICBpbmRleDogaW5keCxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICBcIlxuICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDxkaXYgKm5nU3dpdGNoRGVmYXVsdCBjbGFzcz1cInRoLWNvbnRlbnQtY29udGFpbmVyXCI+XG4gICAgICAgIHt7IGNvbC5oZWFkZXIgfX1cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L3RoPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNyb3dUZW1wbGF0ZSBsZXQtcm93PVwicm93XCIgbGV0LWNvbD1cImNvbFwiIGxldC1pbmRleD1cImluZGV4XCI+XG4gIDxkaXYgY2xhc3M9XCJ0ZC1jb250YWluZXJcIj5cbiAgICA8ZGl2IGNsYXNzPVwidGQtY29udGVudC1jb250YWluZXJcIj5cbiAgICAgIDxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cImNvbC5jZWxsVHlwZVwiPlxuICAgICAgICA8IS0tIFRlbXBsYXRlIGNlbGwgLS0+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIid0ZW1wbGF0ZSdcIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgICBjb2wudGVtcGxhdGU7XG4gICAgICAgICAgICAgIGNvbnRleHQ6IHtcbiAgICAgICAgICAgICAgICAkaW1wbGljaXQ6IGNvbC5yb3cgPyByb3cgOiByb3dbY29sLmZpZWxkXSxcbiAgICAgICAgICAgICAgICBpbmRleDogaW5kZXgsXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIFwiXG4gICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8IS0tIEN1c3RvbSBjb21wb25lbnQgY2VsbCAtLT5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2NvbXBvbmVudCdcIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAqbmdDb21wb25lbnRPdXRsZXQ9XCJcbiAgICAgICAgICAgICAgY29sLmNvbXBvbmVudDtcbiAgICAgICAgICAgICAgaW5qZWN0b3I6IGNyZWF0ZUluamVjdG9yKGNvbC5pbnB1dHMpXG4gICAgICAgICAgICBcIlxuICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgPCEtLSBEZWZhdWx0IGZhbGxiYWNrIC0tPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaERlZmF1bHQ+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgICAgY3VzdG9tVGV4dFRlbXBsYXRlO1xuICAgICAgICAgICAgICBjb250ZXh0OiB7XG4gICAgICAgICAgICAgICAgJGltcGxpY2l0OiB7XG4gICAgICAgICAgICAgICAgICBmaWVsZDogcm93W2NvbC5maWVsZF0sXG4gICAgICAgICAgICAgICAgICBwaXBlVHlwZTogY29sLnBpcGVUeXBlLFxuICAgICAgICAgICAgICAgICAgcGlwZVN0cmluZzogY29sLnBpcGVTdHJpbmcsXG4gICAgICAgICAgICAgICAgICB0ZXh0Q3VzdG9tQ2xhc3NlczogY29sLnRleHRDdXN0b21DbGFzc2VzLFxuICAgICAgICAgICAgICAgICAgaW5kZXg6IGluZGV4LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIFwiXG4gICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cbjwhLS0gRGVmYXVsdCBUZXh0IFRlbXBsYXRlICAtLT5cbjxuZy10ZW1wbGF0ZSAjY3VzdG9tVGV4dFRlbXBsYXRlIGxldC1kYXRhIGxldC1pbmRleD5cbiAgPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwiZGF0YS5waXBlVHlwZVwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidkYXRlJ1wiPlxuICAgICAgPGRpdiBbbmdDbGFzc109XCJkYXRhLnRleHRDdXN0b21DbGFzc2VzXCIgY2xhc3M9XCJ0ZXh0XCI+XG4gICAgICAgIHt7IGRhdGEuZmllbGQgfCBkYXRlOiBkYXRhLnBpcGVTdHJpbmcgfX1cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidjdXJyZW5jeSdcIj5cbiAgICAgIDxkaXYgW25nQ2xhc3NdPVwiZGF0YS50ZXh0Q3VzdG9tQ2xhc3Nlc1wiIGNsYXNzPVwidGV4dFwiPlxuICAgICAgICB7eyBkYXRhLmZpZWxkIHwgY3VycmVuY3k6IGRhdGEucGlwZVN0cmluZyB9fVxuICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hEZWZhdWx0PlxuICAgICAgPGRpdiBbbmdDbGFzc109XCJkYXRhLnRleHRDdXN0b21DbGFzc2VzXCIgY2xhc3M9XCJ0ZXh0XCI+XG4gICAgICAgIHt7IGRhdGEuZmllbGQgfX1cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L25nLWNvbnRhaW5lcj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
@@ -135,4 +135,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
135
135
  }], reorderedDataEmiter: [{
136
136
  type: Output
137
137
  }] } });
138
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2EtcGVyaW9kLWNvbnRlbnQtcGF5bWVudC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jYS1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9jYS1wZXJpb2QtY29udGVudC9jb21wb25lbnRzL2NhLXBlcmlvZC1jb250ZW50LXBheW1lbnQvY2EtcGVyaW9kLWNvbnRlbnQtcGF5bWVudC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jYS1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9jYS1wZXJpb2QtY29udGVudC9jb21wb25lbnRzL2NhLXBlcmlvZC1jb250ZW50LXBheW1lbnQvY2EtcGVyaW9kLWNvbnRlbnQtcGF5bWVudC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBRXZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFDTixTQUFTLEdBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRS9DLGFBQWE7QUFDYixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUVoRSxVQUFVO0FBQ1YsT0FBTyxFQUVILGNBQWMsRUFDZCxlQUFlLEVBQ2YsaUJBQWlCLEdBQ3BCLE1BQU0sd0JBQXdCLENBQUM7QUFDaEMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFeEQsWUFBWTtBQUNaLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUV0RCxhQUFhO0FBQ2IsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFFL0YsVUFBVTtBQUNWLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFN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QkFHZ0IsdUJBQXVCLENBQUMsTUFBTTtzRkFNdEMsY0FBYztzQkFBdEIsS0FBSztnQkFFTyxRQUFRO3NCQUFwQixLQUFLO2dCQU1PLFFBQVE7c0JBQXBCLEtBQUs7Z0JBT0MsWUFBWTtzQkFEbEIsU0FBUzt1QkFBQyxjQUFjLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQU0vQixNQUFNO3NCQUFsQixLQUFLO2dCQVdHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUVJLHFCQUFxQjtzQkFBOUIsTUFBTTtnQkFDRyxpQkFBaUI7c0JBQTFCLE1BQU07Z0JBTUcsbUJBQW1CO3NCQUE1QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIElucHV0LFxuICAgIE9uSW5pdCxcbiAgICBPdXRwdXQsXG4gICAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbi8vIHN2ZyByb3V0ZXNcbmltcG9ydCB7IFBlcmlvZENvbnRlbnRTdmdSb3V0ZXMgfSBmcm9tICcuLi8uLi91dGlscy9zdmctcm91dGVzJztcblxuLy8gbW9kdWxlc1xuaW1wb3J0IHtcbiAgICBDZGtEcmFnRHJvcCxcbiAgICBEcmFnRHJvcE1vZHVsZSxcbiAgICBtb3ZlSXRlbUluQXJyYXksXG4gICAgdHJhbnNmZXJBcnJheUl0ZW0sXG59IGZyb20gJ0Bhbmd1bGFyL2Nkay9kcmFnLWRyb3AnO1xuaW1wb3J0IHsgQW5ndWxhclN2Z0ljb25Nb2R1bGUgfSBmcm9tICdhbmd1bGFyLXN2Zy1pY29uJztcblxuLy8gY29uc3RhbnRzXG5pbXBvcnQgeyB0aXRsZUNvbG9yTWFwIH0gZnJvbSAnLi4vLi4vdXRpbHMvY29uc3RhbnRzJztcblxuLy8gY29tcG9uZW50c1xuaW1wb3J0IHsgQ2FEcm9wZG93bk1lbnVDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9jYS1kcm9wZG93bi1tZW51L2NhLWRyb3Bkb3duLW1lbnUuY29tcG9uZW50JztcblxuLy8gaGVscGVyc1xuaW1wb3J0IHsgUGF5cm9sbFBlcmlvZENvbnRlbnRIZWxwZXIgfSBmcm9tICcuLi8uLi91dGlscy9oZWxwZXJzJztcbmltcG9ydCB7XG4gICAgRHJvcGRvd25NZW51Q29udGVudEhlbHBlcixcbiAgICBNZXRob2RzQ2FsY3VsYXRpb25zSGVscGVyLFxufSBmcm9tICcuLi8uLi8uLi8uLi91dGlscy9oZWxwZXJzJztcblxuLy8gbW9kZWxzXG5pbXBvcnQgeyBQYXlyb2xsUmVwb3J0VGFibGVSZXNwb25zZSB9IGZyb20gJy4uLy4uL21vZGVscy9wYXlyb2xsLXJlcG9ydC10YWJsZXMudHlwZSc7XG5pbXBvcnQge1xuICAgIERyb3Bkb3duTWVudUl0ZW0sXG4gICAgRHJvcGRvd25NZW51T3B0aW9uRW1pdCxcbn0gZnJvbSAnLi4vLi4vLi4vY2EtZHJvcGRvd24tbWVudS9tb2RlbHMnO1xuXG4vLyBwaXBlc1xuaW1wb3J0IHsgSW5jbHVkZWRDb3VudFBpcGUgfSBmcm9tICcuLi8uLi9waXBlcy9pbmNsdWRlZF9jb3VudC5waXBlJztcbmltcG9ydCB7IEZvcm1hdEN1cnJlbmN5UGlwZSB9IGZyb20gJy4uLy4uLy4uLy4uL3BpcGVzL2Zvcm1hdC1jdXJyZW5jeS5waXBlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdhcHAtY2EtcGVyaW9kLWNvbnRlbnQtcGF5bWVudCcsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBwcm92aWRlcnM6IFtGb3JtYXRDdXJyZW5jeVBpcGVdLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgLy9Nb2R1bGVzXG4gICAgICAgIENvbW1vbk1vZHVsZSxcbiAgICAgICAgQW5ndWxhclN2Z0ljb25Nb2R1bGUsXG4gICAgICAgIERyYWdEcm9wTW9kdWxlLFxuXG4gICAgICAgIC8vQ29tcG9uZW50c1xuICAgICAgICBDYURyb3Bkb3duTWVudUNvbXBvbmVudCxcblxuICAgICAgICBJbmNsdWRlZENvdW50UGlwZSxcbiAgICBdLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9jYS1wZXJpb2QtY29udGVudC1wYXltZW50LmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9jYS1wZXJpb2QtY29udGVudC1wYXltZW50LmNvbXBvbmVudC5zY3NzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIENhUGVyaW9kQ29udGVudFBheW1lbnRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIHB1YmxpYyBfaW5jbHVkZWQ6IFBheXJvbGxSZXBvcnRUYWJsZVJlc3BvbnNlW10gPSBbXTtcbiAgICBwdWJsaWMgX2V4Y2x1ZGVkOiBQYXlyb2xsUmVwb3J0VGFibGVSZXNwb25zZVtdID0gW107XG5cbiAgICBASW5wdXQoKSBkaXNhYmxlUmVvcmRlcjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgQElucHV0KCkgc2V0IGluY2x1ZGVkKGluY2x1ZGVkOiBQYXlyb2xsUmVwb3J0VGFibGVSZXNwb25zZVtdIHwgdW5kZWZpbmVkKSB7XG4gICAgICAgIGlmIChpbmNsdWRlZCkge1xuICAgICAgICAgICAgdGhpcy5faW5jbHVkZWQgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGluY2x1ZGVkKSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgZXhjbHVkZWQoZXhjbHVkZWQ6IFBheXJvbGxSZXBvcnRUYWJsZVJlc3BvbnNlW10gfCB1bmRlZmluZWQpIHtcbiAgICAgICAgaWYgKGV4Y2x1ZGVkKSB7XG4gICAgICAgICAgICB0aGlzLl9leGNsdWRlZCA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoZXhjbHVkZWQpKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBWaWV3Q2hpbGQoJ2Ryb3Bkb3duTWVudScsIHsgc3RhdGljOiBmYWxzZSB9KVxuICAgIHB1YmxpYyBkcm9wZG93bk1lbnUhOiBDYURyb3Bkb3duTWVudUNvbXBvbmVudDtcblxuICAgIF9pc09wZW46IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBwdWJsaWMgZHJvcGRvd25PcHRpb25zOiBEcm9wZG93bk1lbnVJdGVtW10gPSBbXTtcblxuICAgIEBJbnB1dCgpIHNldCBpc09wZW4ob3BlbjogYm9vbGVhbikge1xuICAgICAgICB0aGlzLl9pc09wZW4gPSBvcGVuO1xuXG4gICAgICAgIHRoaXMuZHJvcGRvd25PcHRpb25zID1cbiAgICAgICAgICAgIERyb3Bkb3duTWVudUNvbnRlbnRIZWxwZXIuZ2V0UGF5cm9sbERyb3Bkb3duQ29udGVudCh0aGlzLl9pc09wZW4pO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgaXNPcGVuKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5faXNPcGVuO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHRpdGxlITogc3RyaW5nO1xuICAgIEBJbnB1dCgpIGhpZGVUb3RhbDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgQE91dHB1dCgpIG9wZW5BZGROZXdNb2RhbEVtaXRlciA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuICAgIEBPdXRwdXQoKSBvcGVuRWRpdEVudHJ5SXRlbSA9IG5ldyBFdmVudEVtaXR0ZXI8e1xuICAgICAgICAkZXZlbnQ6IERyb3Bkb3duTWVudU9wdGlvbkVtaXQ7XG4gICAgICAgIGRhdGE6IGFueTtcbiAgICAgICAgdGl0bGU6IHN0cmluZztcbiAgICB9PigpO1xuXG4gICAgQE91dHB1dCgpIHJlb3JkZXJlZERhdGFFbWl0ZXIgPSBuZXcgRXZlbnRFbWl0dGVyPHtcbiAgICAgICAgX2luY2x1ZGVkOiBQYXlyb2xsUmVwb3J0VGFibGVSZXNwb25zZVtdO1xuICAgICAgICBfdGl0bGU6IHN0cmluZztcbiAgICB9PigpO1xuXG4gICAgLy8gZHJvcGRvd25cbiAgICBwdWJsaWMgZHJvcGRvd25Ib3ZlckluZGV4OiBudW1iZXIgPSAtMTtcblxuICAgIC8vIGljb25zXG4gICAgcHVibGljIHBlcmlvZENvbnRlbnRTdmdSb3V0ZXM6IFBlcmlvZENvbnRlbnRTdmdSb3V0ZXMgPVxuICAgICAgICBQZXJpb2RDb250ZW50U3ZnUm91dGVzO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmKSB7fVxuXG4gICAgbmdPbkluaXQoKSB7fVxuXG4gICAgcHVibGljIGhhbmRsZURyb3Bkb3duTWVudUhvdmVyKFxuICAgICAgICBob3ZlckluZGV4OiBudW1iZXIgPSB0aGlzLmRyb3Bkb3duSG92ZXJJbmRleFxuICAgICk6IHZvaWQge1xuICAgICAgICB0aGlzLmRyb3Bkb3duSG92ZXJJbmRleCA9XG4gICAgICAgICAgICBob3ZlckluZGV4ICE9PSB0aGlzLmRyb3Bkb3duSG92ZXJJbmRleCB8fFxuICAgICAgICAgICAgdGhpcy5kcm9wZG93bk1lbnU/LmlzRHJvcGRvd25NZW51QWN0aXZlXG4gICAgICAgICAgICAgICAgPyBob3ZlckluZGV4XG4gICAgICAgICAgICAgICAgOiB0aGlzLmRyb3Bkb3duSG92ZXJJbmRleDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0Q29sb3IodGl0bGU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aXRsZUNvbG9yTWFwW3RpdGxlLnRvTG93ZXJDYXNlKCldIHx8ICcjNDI0MjQyJztcbiAgICB9XG5cbiAgICBwdWJsaWMgb25Ecm9wKGV2ZW50OiBDZGtEcmFnRHJvcDxQYXlyb2xsUmVwb3J0VGFibGVSZXNwb25zZVtdPik6IHZvaWQge1xuICAgICAgICBpZiAoZXZlbnQucHJldmlvdXNDb250YWluZXIgPT09IGV2ZW50LmNvbnRhaW5lcikge1xuICAgICAgICAgICAgbW92ZUl0ZW1JbkFycmF5KFxuICAgICAgICAgICAgICAgIGV2ZW50LmNvbnRhaW5lci5kYXRhISxcbiAgICAgICAgICAgICAgICBldmVudC5wcmV2aW91c0luZGV4LFxuICAgICAgICAgICAgICAgIGV2ZW50LmN1cnJlbnRJbmRleFxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRyYW5zZmVyQXJyYXlJdGVtKFxuICAgICAgICAgICAgICAgIGV2ZW50LnByZXZpb3VzQ29udGFpbmVyLmRhdGEsXG4gICAgICAgICAgICAgICAgZXZlbnQuY29udGFpbmVyLmRhdGEhLFxuICAgICAgICAgICAgICAgIGV2ZW50LnByZXZpb3VzSW5kZXgsXG4gICAgICAgICAgICAgICAgZXZlbnQuY3VycmVudEluZGV4XG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuXG4gICAgICAgIHRoaXMucmVvcmRlcmVkRGF0YUVtaXRlci5lbWl0KHtcbiAgICAgICAgICAgIF90aXRsZTogdGhpcy50aXRsZSxcbiAgICAgICAgICAgIF9pbmNsdWRlZDogdGhpcy5faW5jbHVkZWQsXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRTdmdQYXRoKFxuICAgICAgICBwcm9wZXJ0eU5hbWU6IGtleW9mIHR5cGVvZiBQZXJpb2RDb250ZW50U3ZnUm91dGVzXG4gICAgKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIFBheXJvbGxQZXJpb2RDb250ZW50SGVscGVyLmdldFN2Z1BhdGgocHJvcGVydHlOYW1lKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZm9ybWF0RGF0ZShkYXRlOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gTWV0aG9kc0NhbGN1bGF0aW9uc0hlbHBlci5jb252ZXJ0RGF0ZUZyb21CYWNrZW5kKGRhdGUpO1xuICAgIH1cblxuICAgIHB1YmxpYyBpZGVudGl0eShpbmRleDogbnVtYmVyKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIGluZGV4O1xuICAgIH1cblxuICAgIHB1YmxpYyBvcGVuQWRkTmV3TW9kYWwoKTogdm9pZCB7XG4gICAgICAgIGlmKCF0aGlzLmlzT3BlbikgcmV0dXJuO1xuICAgICAgICB0aGlzLm9wZW5BZGROZXdNb2RhbEVtaXRlci5lbWl0KHRoaXMudGl0bGUpO1xuICAgIH1cblxuICAgIHB1YmxpYyBoYW5kbGVNZW51T3BlbihldmVudDoge1xuICAgICAgICAkZXZlbnQ6IERyb3Bkb3duTWVudU9wdGlvbkVtaXQ7XG4gICAgICAgIGRhdGE6IFBheXJvbGxSZXBvcnRUYWJsZVJlc3BvbnNlO1xuICAgICAgICB0aXRsZTogc3RyaW5nO1xuICAgIH0pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vcGVuRWRpdEVudHJ5SXRlbS5lbWl0KGV2ZW50KTtcbiAgICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwibWFpbi1jb250YWluZXJcIj5cbiAgICA8bmctY29udGFpbmVyPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cIndyYXBwZXIgZC1mbGV4IGZsZXgtY29sdW1uIGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtc3RhcnRcIlxuICAgICAgICA+XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ0aXRsZS1jb250YWluZXIgY29udGFpbmVyIGQtZmxleCBmbGV4LWNvbHVtbiBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidGV4dC12YWx1ZSBkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtY2VudGVyXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicGF5bWVudC1jb3VudCBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1zdGFydFwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dCBjYS1mb250LWV4dHJhLWJvbGRcIj57eyB0aXRsZSB9fTwvc3Bhbj5cblxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIl9pbmNsdWRlZD8ubGVuZ3RoXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJyb3VuZCBjYS1mb250LWJvbGQgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IF9pbmNsdWRlZC5sZW5ndGggfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInZhbHVlIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgYWRkX25ld19pdGVtXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvcGVuQWRkTmV3TW9kYWwoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MudmFsdWUtaG92ZXJdPVwiaXNPcGVuXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChpc09wZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnLWljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJkLWZsZXggaWNvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzcmNdPVwiZ2V0U3ZnUGF0aCgncGx1cycpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3N2Z1N0eWxlXT1cInsgJ3dpZHRoLnB4JzogMTgsICdoZWlnaHQucHgnOiAxOCB9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9zdmctaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5jbHVkZWRfZXhjbHVkZWRfaG9sZGVyXCI+XG4gICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICBjZGtEcm9wTGlzdFxuICAgICAgICAgICAgICAgICAgICAjaW5jbHVkZWRMaXN0PVwiY2RrRHJvcExpc3RcIlxuICAgICAgICAgICAgICAgICAgICBbY2RrRHJvcExpc3RDb25uZWN0ZWRUb109XCJbZXhjbHVkZWRMaXN0XVwiXG4gICAgICAgICAgICAgICAgICAgIFtjZGtEcm9wTGlzdERhdGFdPVwiX2luY2x1ZGVkXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjb21wb25lbnQtZGF0YS1jb250YWluZXIgZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgZmxleC1jb2x1bW5cIlxuICAgICAgICAgICAgICAgICAgICBbY2xhc3MuZW1wdHlfbGlzdF9leF9pbl09XCIhX2luY2x1ZGVkLmxlbmd0aFwiXG4gICAgICAgICAgICAgICAgICAgIChjZGtEcm9wTGlzdERyb3BwZWQpPVwib25Ecm9wKCRldmVudClcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRhdGEgb2YgX2luY2x1ZGVkO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBpID0gaW5kZXg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhY2tCeTogaWRlbnRpdHlcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZGtEcmFnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNka0RyYWdMb2NrQXhpcz1cInlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZGtEcmFnUHJldmlld0NvbnRhaW5lcj1cInBhcmVudFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjZGtEcmFnRGlzYWJsZWRdPVwiIWlzT3BlbiB8fCBkaXNhYmxlUmVvcmRlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpjZGtEcmFnUGxhY2Vob2xkZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZHJhZy1wbGFjZWhvbGRlclwiPjwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIGNka0RyYWdQcmV2aWV3IG1hdGNoU2l6ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjdXN0b20tZHJhZy1wcmV2aWV3XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF5bWVudExpc3RJdGVtO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpbXBsaWNpdDogZGF0YSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmRleDogaSArIDEsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNEcmFnUHJldmlldzogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXltZW50TGlzdEl0ZW07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaW1wbGljaXQ6IGRhdGEsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4OiBpICsgMSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFoaWRlVG90YWxcIj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJwYXltZW50TGlzdFRvdGFsXCJcbiAgICAgICAgICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgY2RrRHJvcExpc3RcbiAgICAgICAgICAgICAgICAgICAgW2Nka0Ryb3BMaXN0Q29ubmVjdGVkVG9dPVwiW2luY2x1ZGVkTGlzdF1cIlxuICAgICAgICAgICAgICAgICAgICBbY2RrRHJvcExpc3REYXRhXT1cIl9leGNsdWRlZFwiXG4gICAgICAgICAgICAgICAgICAgICNleGNsdWRlZExpc3Q9XCJjZGtEcm9wTGlzdFwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY29tcG9uZW50LWRhdGEtY29udGFpbmVyIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGZsZXgtY29sdW1uIGV4Y2x1ZGVfbGlzdFwiXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzcy5lbXB0eV9saXN0X2V4X2luXT1cIiFfZXhjbHVkZWQubGVuZ3RoXCJcbiAgICAgICAgICAgICAgICAgICAgKGNka0Ryb3BMaXN0RHJvcHBlZCk9XCJvbkRyb3AoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGF0YSBvZiBfZXhjbHVkZWQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGkgPSBpbmRleDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFja0J5OiBpZGVudGl0eVxuICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFkYXRhLnJlb3JkZXJJdGVtOyBlbHNlIGVsc2VUb3RhbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2RrRHJhZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZGtEcmFnTG9ja0F4aXM9XCJ5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2RrRHJhZ1ByZXZpZXdDb250YWluZXI9XCJwYXJlbnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2RrRHJhZ0Rpc2FibGVkXT1cIiFpc09wZW5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqY2RrRHJhZ1BsYWNlaG9sZGVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRyYWctcGxhY2Vob2xkZXJcIj48L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBjZGtEcmFnUHJldmlldyBtYXRjaFNpemU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3VzdG9tLWRyYWctcHJldmlld1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBheW1lbnRMaXN0SXRlbTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQ6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaW1wbGljaXQ6IGRhdGEsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXg6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGkgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfaW5jbHVkZWQubGVuZ3RoICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc0RyYWdQcmV2aWV3OiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBheW1lbnRMaXN0SXRlbTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpbXBsaWNpdDogZGF0YSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXg6IGkgKyBfaW5jbHVkZWQubGVuZ3RoICsgMSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNFeGNsdWRlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZWxzZVRvdGFsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJwYXltZW50TGlzdFRvdGFsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDxuZy10ZW1wbGF0ZSAjZW1wdHlDb21wb25lbnREYXRhPlxuICAgICAgICA8ZGl2IGNsYXNzPVwidGl0bGUtY29udGFpbmVyIGNvbnRhaW5lci1lbXB0eSBkLWZsZXggZmxleC1jb2x1bW5cIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LXZhbHVlIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlblwiPlxuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwYXltZW50LWNvdW50IGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LXN0YXJ0XCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInRleHQgY2EtZm9udC1leHRyYS1ib2xkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1N0eWxlXT1cInsgY29sb3I6IGlzT3BlbiA/ICcjNDI0MjQyJyA6ICcjYWFhYWFhJyB9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgID57eyB0aXRsZSB9fTwvc3BhblxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2YWx1ZSBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc09wZW47IGVsc2Ugbm90T3BlblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHN2Zy1pY29uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJkLWZsZXggaWNvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9wZW5BZGROZXdNb2RhbCgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3JjXT1cImdldFN2Z1BhdGgoJ3BsdXMnKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3N2Z1N0eWxlXT1cInsgJ3dpZHRoLnB4JzogMTgsICdoZWlnaHQucHgnOiAxOCB9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L3N2Zy1pY29uPlxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNub3RPcGVuPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0b3RhbC1tb25leS1jbG9zZWQgY2EtZm9udC1zZW1pLWJvbGRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID4kMC4wMDwvc3BhblxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L25nLXRlbXBsYXRlPlxuPC9kaXY+XG5cbjwhLS0gQ0EgUEVSSU9EIFRFTVBMQVRFUyAtLT5cblxuPG5nLXRlbXBsYXRlICNwYXltZW50TGlzdFRvdGFsPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJfaW5jbHVkZWQgfCBpbmNsdWRlZENvdW50OiBpc09wZW4gYXMgaW5jbHVkZWRfY291bnRcIj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3M9XCJ0b3RhbC1tb25leS10aXRsZSBkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtY2VudGVyXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImljb24tdG90YWwgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxuICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZG9sYXItaWNvbiBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAgW25nU3R5bGVdPVwieyBjb2xvcjogZ2V0Q29sb3IodGl0bGUpIH1cIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPHN2Zy1pY29uXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3NyY109XCJnZXRTdmdQYXRoKCdkb2xhclNpZ24nKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbc3ZnU3R5bGVdPVwieyAnd2lkdGgucHgnOiAxOCwgJ2hlaWdodC5weCc6IDE4IH1cIlxuICAgICAgICAgICAgICAgICAgICA+PC9zdmctaWNvbj5cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0b3RhbC10aXRsZSBjYS1mb250LWJvbGRcIj5Ub3RhbDwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICBjbGFzcz1cInRvdGFsLW1vbmV5IGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtZW5kIGFsaWduLWl0ZW1zLWNlbnRlciBjYS1mb250LXNlbWktYm9sZFwiXG4gICAgICAgICAgICAgICAgW25nU3R5bGVdPVwieyBjb2xvcjogZ2V0Q29sb3IodGl0bGUpIH1cIlxuICAgICAgICAgICAgICAgID57eyBpbmNsdWRlZF9jb3VudCB9fTwvc3BhblxuICAgICAgICAgICAgPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZVxuICAgICNwYXltZW50TGlzdEl0ZW1cbiAgICBsZXQtZGF0YVxuICAgIGxldC1pPVwiaW5kZXhcIlxuICAgIGxldC1pc0RyYWdQcmV2aWV3PVwiaXNEcmFnUHJldmlld1wiXG4gICAgbGV0LWlzRXhjbHVkZWQ9XCJpc0V4Y2x1ZGVkXCJcbj5cbiAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLWNlbnRlciBpbmZvcm1hdGlvblwiXG4gICAgICAgIFtjbGFzcy5leGNsdWRlZF09XCJpc0V4Y2x1ZGVkXCJcbiAgICA+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwibnVtYmVyLWRhdGUtbG9jYXRpb24taG9sZGVyIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlblwiXG4gICAgICAgICAgICAobW91c2VlbnRlcik9XCJoYW5kbGVEcm9wZG93bk1lbnVIb3ZlcihpKVwiXG4gICAgICAgICAgICAobW91c2VsZWF2ZSk9XCJoYW5kbGVEcm9wZG93bk1lbnVIb3ZlcigpXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzRHJhZ1ByZXZpZXdcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZHJhZy1wcmV2aWV3LWljb25cIj5cbiAgICAgICAgICAgICAgICAgICAgPHN2Zy1pY29uXG4gICAgICAgICAgICAgICAgICAgICAgICBbc3ZnU3R5bGVdPVwie1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICd3aWR0aC5weCc6IDE0LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICdoZWlnaHQucHgnOiAxNCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJyNEQURBREEnLFxuICAgICAgICAgICAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbc3JjXT1cImdldFN2Z1BhdGgoJ3ByZXZpZXdBcnJvd3MnKVwiXG4gICAgICAgICAgICAgICAgICAgID48L3N2Zy1pY29uPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhaXNEcmFnUHJldmlld1wiPlxuICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibnVtYmVyIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlciBjYS1mb250LW1lZGl1bVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICBAaWYgKGkgPT09IGRyb3Bkb3duSG92ZXJJbmRleCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgPGNhLWRyb3Bkb3duLW1lbnVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAjZHJvcGRvd25NZW51XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3R5cGVdPVwiJ2RvdHMtbWVudS10eXBlJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3BsYWNlbWVudF09XCInYm90dG9tLXJpZ2h0J1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW29wdGlvbnNdPVwiZHJvcGRvd25PcHRpb25zXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZHJvcGRvd25PcHRpb25FbWl0dGVyKT1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVNZW51T3Blbih7ICRldmVudCwgZGF0YSwgdGl0bGUgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9jYS1kcm9wZG93bi1tZW51PlxuICAgICAgICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IGkgfX1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgY2xhc3M9XCJkYXRlLWxvY2F0aW9uIGQtZmxleCBmbGV4LWNvbHVtbiBqdXN0aWZ5LWNvbnRlbnQtc3RhcnQgYWxpZ24taXRlbXMtc3RhcnRcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY2EtZm9udC1zZW1pLWJvbGQgbG9jYXRpb24gZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiXG4gICAgICAgICAgICAgICAgICAgID57eyBkYXRhLmRlc2NyaXB0aW9uIH19PC9zcGFuXG4gICAgICAgICAgICAgICAgPlxuXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJkYXRlIGNhLWZvbnQtbWVkaXVtIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj57e1xuICAgICAgICAgICAgICAgICAgICBmb3JtYXREYXRlKGRhdGEuZGF0ZSlcbiAgICAgICAgICAgICAgICB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgICAgICdqdXN0aWZ5LWNvbnRlbnQtYmV0d2Vlbic6XG4gICAgICAgICAgICAgICAgICAgIHRpdGxlID09PSAnRGVkdWN0aW9uJyB8fCB0aXRsZSA9PT0gJ0Z1ZWwnLFxuICAgICAgICAgICAgICAgICdqdXN0aWZ5LWNvbnRlbnQtZW5kJzpcbiAgICAgICAgICAgICAgICAgICAgdGl0bGUgIT09ICdEZWR1Y3Rpb24nICYmIHRpdGxlICE9PSAnRnVlbCcsXG4gICAgICAgICAgICB9XCJcbiAgICAgICAgICAgIGNsYXNzPVwiaWNvbi1tb25leS1ob2xkZXIgZC1mbGV4XCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInRpdGxlID09PSAnRGVkdWN0aW9uJ1wiPlxuICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicmVjdXJyaW5nIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlclwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZGF0YS5yZWN1cnJpbmcgJiYgIWRhdGEuYWxsUmVjdXJyYW5jZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHN2Zy1pY29uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3JjXT1cImdldFN2Z1BhdGgoJ2luZmluaXR5SWNvbicpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3ZnU3R5bGVdPVwieyAnd2lkdGgucHgnOiAxOCwgJ2hlaWdodC5weCc6IDE4IH1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgPjwvc3ZnLWljb24+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJkYXRhLnJlY3VycmluZyAmJiBkYXRhLmFsbFJlY3VycmFuY2VcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyZWN1cnJpbmctY291bnQgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGRhdGEuY3VycmVudFJlY3VycmFuY2UgfX0ve3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS5hbGxSZWN1cnJhbmNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJ0aXRsZSA9PT0gJ0Z1ZWwnXCI+XG4gICAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJyZWN1cnJpbmcgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHt7IGRhdGEuZ2Fsb25zIH19XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgIGNsYXNzPVwibW9uZXkgZC1mbGV4IGp1c3RpZnktY29udGVudC1lbmQgYWxpZ24taXRlbXMtY2VudGVyIGNhLWZvbnQtcmVndWxhclwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge3sgKGRhdGEuc3VidG90YWwgfCBjdXJyZW5jeTogJ1VTRCcpID8/ICckMC4wMCcgfX1cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
138
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2EtcGVyaW9kLWNvbnRlbnQtcGF5bWVudC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jYS1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9jYS1wZXJpb2QtY29udGVudC9jb21wb25lbnRzL2NhLXBlcmlvZC1jb250ZW50LXBheW1lbnQvY2EtcGVyaW9kLWNvbnRlbnQtcGF5bWVudC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jYS1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9jYS1wZXJpb2QtY29udGVudC9jb21wb25lbnRzL2NhLXBlcmlvZC1jb250ZW50LXBheW1lbnQvY2EtcGVyaW9kLWNvbnRlbnQtcGF5bWVudC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBRXZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFDTixTQUFTLEdBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRS9DLGFBQWE7QUFDYixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUVoRSxVQUFVO0FBQ1YsT0FBTyxFQUVILGNBQWMsRUFDZCxlQUFlLEVBQ2YsaUJBQWlCLEdBQ3BCLE1BQU0sd0JBQXdCLENBQUM7QUFDaEMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFeEQsWUFBWTtBQUNaLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUV0RCxhQUFhO0FBQ2IsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFFL0YsVUFBVTtBQUNWLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFN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QkFHZ0IsdUJBQXVCLENBQUMsTUFBTTtzRkFNdEMsY0FBYztzQkFBdEIsS0FBSztnQkFFTyxRQUFRO3NCQUFwQixLQUFLO2dCQU1PLFFBQVE7c0JBQXBCLEtBQUs7Z0JBT0MsWUFBWTtzQkFEbEIsU0FBUzt1QkFBQyxjQUFjLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQU0vQixNQUFNO3NCQUFsQixLQUFLO2dCQVdHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUVJLHFCQUFxQjtzQkFBOUIsTUFBTTtnQkFDRyxpQkFBaUI7c0JBQTFCLE1BQU07Z0JBTUcsbUJBQW1CO3NCQUE1QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIElucHV0LFxuICAgIE9uSW5pdCxcbiAgICBPdXRwdXQsXG4gICAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbi8vIHN2ZyByb3V0ZXNcbmltcG9ydCB7IFBlcmlvZENvbnRlbnRTdmdSb3V0ZXMgfSBmcm9tICcuLi8uLi91dGlscy9zdmctcm91dGVzJztcblxuLy8gbW9kdWxlc1xuaW1wb3J0IHtcbiAgICBDZGtEcmFnRHJvcCxcbiAgICBEcmFnRHJvcE1vZHVsZSxcbiAgICBtb3ZlSXRlbUluQXJyYXksXG4gICAgdHJhbnNmZXJBcnJheUl0ZW0sXG59IGZyb20gJ0Bhbmd1bGFyL2Nkay9kcmFnLWRyb3AnO1xuaW1wb3J0IHsgQW5ndWxhclN2Z0ljb25Nb2R1bGUgfSBmcm9tICdhbmd1bGFyLXN2Zy1pY29uJztcblxuLy8gY29uc3RhbnRzXG5pbXBvcnQgeyB0aXRsZUNvbG9yTWFwIH0gZnJvbSAnLi4vLi4vdXRpbHMvY29uc3RhbnRzJztcblxuLy8gY29tcG9uZW50c1xuaW1wb3J0IHsgQ2FEcm9wZG93bk1lbnVDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9jYS1kcm9wZG93bi1tZW51L2NhLWRyb3Bkb3duLW1lbnUuY29tcG9uZW50JztcblxuLy8gaGVscGVyc1xuaW1wb3J0IHsgUGF5cm9sbFBlcmlvZENvbnRlbnRIZWxwZXIgfSBmcm9tICcuLi8uLi91dGlscy9oZWxwZXJzJztcbmltcG9ydCB7XG4gICAgRHJvcGRvd25NZW51Q29udGVudEhlbHBlcixcbiAgICBNZXRob2RzQ2FsY3VsYXRpb25zSGVscGVyLFxufSBmcm9tICcuLi8uLi8uLi8uLi91dGlscy9oZWxwZXJzJztcblxuLy8gbW9kZWxzXG5pbXBvcnQgeyBQYXlyb2xsUmVwb3J0VGFibGVSZXNwb25zZSB9IGZyb20gJy4uLy4uL21vZGVscy9wYXlyb2xsLXJlcG9ydC10YWJsZXMudHlwZSc7XG5pbXBvcnQge1xuICAgIElEcm9wZG93bk1lbnVJdGVtLFxuICAgIElEcm9wZG93bk1lbnVPcHRpb25FbWl0LFxufSBmcm9tICcuLi8uLi8uLi9jYS1kcm9wZG93bi1tZW51L2ludGVyZmFjZXMnO1xuXG4vLyBwaXBlc1xuaW1wb3J0IHsgSW5jbHVkZWRDb3VudFBpcGUgfSBmcm9tICcuLi8uLi9waXBlcy9pbmNsdWRlZF9jb3VudC5waXBlJztcbmltcG9ydCB7IEZvcm1hdEN1cnJlbmN5UGlwZSB9IGZyb20gJy4uLy4uLy4uLy4uL3BpcGVzL2Zvcm1hdC1jdXJyZW5jeS5waXBlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdhcHAtY2EtcGVyaW9kLWNvbnRlbnQtcGF5bWVudCcsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBwcm92aWRlcnM6IFtGb3JtYXRDdXJyZW5jeVBpcGVdLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgLy9Nb2R1bGVzXG4gICAgICAgIENvbW1vbk1vZHVsZSxcbiAgICAgICAgQW5ndWxhclN2Z0ljb25Nb2R1bGUsXG4gICAgICAgIERyYWdEcm9wTW9kdWxlLFxuXG4gICAgICAgIC8vQ29tcG9uZW50c1xuICAgICAgICBDYURyb3Bkb3duTWVudUNvbXBvbmVudCxcblxuICAgICAgICBJbmNsdWRlZENvdW50UGlwZSxcbiAgICBdLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9jYS1wZXJpb2QtY29udGVudC1wYXltZW50LmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9jYS1wZXJpb2QtY29udGVudC1wYXltZW50LmNvbXBvbmVudC5zY3NzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIENhUGVyaW9kQ29udGVudFBheW1lbnRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIHB1YmxpYyBfaW5jbHVkZWQ6IFBheXJvbGxSZXBvcnRUYWJsZVJlc3BvbnNlW10gPSBbXTtcbiAgICBwdWJsaWMgX2V4Y2x1ZGVkOiBQYXlyb2xsUmVwb3J0VGFibGVSZXNwb25zZVtdID0gW107XG5cbiAgICBASW5wdXQoKSBkaXNhYmxlUmVvcmRlcjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgQElucHV0KCkgc2V0IGluY2x1ZGVkKGluY2x1ZGVkOiBQYXlyb2xsUmVwb3J0VGFibGVSZXNwb25zZVtdIHwgdW5kZWZpbmVkKSB7XG4gICAgICAgIGlmIChpbmNsdWRlZCkge1xuICAgICAgICAgICAgdGhpcy5faW5jbHVkZWQgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGluY2x1ZGVkKSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgZXhjbHVkZWQoZXhjbHVkZWQ6IFBheXJvbGxSZXBvcnRUYWJsZVJlc3BvbnNlW10gfCB1bmRlZmluZWQpIHtcbiAgICAgICAgaWYgKGV4Y2x1ZGVkKSB7XG4gICAgICAgICAgICB0aGlzLl9leGNsdWRlZCA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoZXhjbHVkZWQpKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBWaWV3Q2hpbGQoJ2Ryb3Bkb3duTWVudScsIHsgc3RhdGljOiBmYWxzZSB9KVxuICAgIHB1YmxpYyBkcm9wZG93bk1lbnUhOiBDYURyb3Bkb3duTWVudUNvbXBvbmVudDtcblxuICAgIF9pc09wZW46IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBwdWJsaWMgZHJvcGRvd25PcHRpb25zOiBJRHJvcGRvd25NZW51SXRlbVtdID0gW107XG5cbiAgICBASW5wdXQoKSBzZXQgaXNPcGVuKG9wZW46IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5faXNPcGVuID0gb3BlbjtcblxuICAgICAgICB0aGlzLmRyb3Bkb3duT3B0aW9ucyA9XG4gICAgICAgICAgICBEcm9wZG93bk1lbnVDb250ZW50SGVscGVyLmdldFBheXJvbGxEcm9wZG93bkNvbnRlbnQodGhpcy5faXNPcGVuKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGlzT3BlbigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzT3BlbjtcbiAgICB9XG5cbiAgICBASW5wdXQoKSB0aXRsZSE6IHN0cmluZztcbiAgICBASW5wdXQoKSBoaWRlVG90YWw6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIEBPdXRwdXQoKSBvcGVuQWRkTmV3TW9kYWxFbWl0ZXIgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcbiAgICBAT3V0cHV0KCkgb3BlbkVkaXRFbnRyeUl0ZW0gPSBuZXcgRXZlbnRFbWl0dGVyPHtcbiAgICAgICAgJGV2ZW50OiBJRHJvcGRvd25NZW51T3B0aW9uRW1pdDtcbiAgICAgICAgZGF0YTogYW55O1xuICAgICAgICB0aXRsZTogc3RyaW5nO1xuICAgIH0+KCk7XG5cbiAgICBAT3V0cHV0KCkgcmVvcmRlcmVkRGF0YUVtaXRlciA9IG5ldyBFdmVudEVtaXR0ZXI8e1xuICAgICAgICBfaW5jbHVkZWQ6IFBheXJvbGxSZXBvcnRUYWJsZVJlc3BvbnNlW107XG4gICAgICAgIF90aXRsZTogc3RyaW5nO1xuICAgIH0+KCk7XG5cbiAgICAvLyBkcm9wZG93blxuICAgIHB1YmxpYyBkcm9wZG93bkhvdmVySW5kZXg6IG51bWJlciA9IC0xO1xuXG4gICAgLy8gaWNvbnNcbiAgICBwdWJsaWMgcGVyaW9kQ29udGVudFN2Z1JvdXRlczogUGVyaW9kQ29udGVudFN2Z1JvdXRlcyA9XG4gICAgICAgIFBlcmlvZENvbnRlbnRTdmdSb3V0ZXM7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHt9XG5cbiAgICBuZ09uSW5pdCgpIHt9XG5cbiAgICBwdWJsaWMgaGFuZGxlRHJvcGRvd25NZW51SG92ZXIoXG4gICAgICAgIGhvdmVySW5kZXg6IG51bWJlciA9IHRoaXMuZHJvcGRvd25Ib3ZlckluZGV4XG4gICAgKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZHJvcGRvd25Ib3ZlckluZGV4ID1cbiAgICAgICAgICAgIGhvdmVySW5kZXggIT09IHRoaXMuZHJvcGRvd25Ib3ZlckluZGV4IHx8XG4gICAgICAgICAgICB0aGlzLmRyb3Bkb3duTWVudT8uaXNEcm9wZG93bk1lbnVBY3RpdmVcbiAgICAgICAgICAgICAgICA/IGhvdmVySW5kZXhcbiAgICAgICAgICAgICAgICA6IHRoaXMuZHJvcGRvd25Ib3ZlckluZGV4O1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRDb2xvcih0aXRsZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRpdGxlQ29sb3JNYXBbdGl0bGUudG9Mb3dlckNhc2UoKV0gfHwgJyM0MjQyNDInO1xuICAgIH1cblxuICAgIHB1YmxpYyBvbkRyb3AoZXZlbnQ6IENka0RyYWdEcm9wPFBheXJvbGxSZXBvcnRUYWJsZVJlc3BvbnNlW10+KTogdm9pZCB7XG4gICAgICAgIGlmIChldmVudC5wcmV2aW91c0NvbnRhaW5lciA9PT0gZXZlbnQuY29udGFpbmVyKSB7XG4gICAgICAgICAgICBtb3ZlSXRlbUluQXJyYXkoXG4gICAgICAgICAgICAgICAgZXZlbnQuY29udGFpbmVyLmRhdGEhLFxuICAgICAgICAgICAgICAgIGV2ZW50LnByZXZpb3VzSW5kZXgsXG4gICAgICAgICAgICAgICAgZXZlbnQuY3VycmVudEluZGV4XG4gICAgICAgICAgICApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdHJhbnNmZXJBcnJheUl0ZW0oXG4gICAgICAgICAgICAgICAgZXZlbnQucHJldmlvdXNDb250YWluZXIuZGF0YSxcbiAgICAgICAgICAgICAgICBldmVudC5jb250YWluZXIuZGF0YSEsXG4gICAgICAgICAgICAgICAgZXZlbnQucHJldmlvdXNJbmRleCxcbiAgICAgICAgICAgICAgICBldmVudC5jdXJyZW50SW5kZXhcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG5cbiAgICAgICAgdGhpcy5yZW9yZGVyZWREYXRhRW1pdGVyLmVtaXQoe1xuICAgICAgICAgICAgX3RpdGxlOiB0aGlzLnRpdGxlLFxuICAgICAgICAgICAgX2luY2x1ZGVkOiB0aGlzLl9pbmNsdWRlZCxcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldFN2Z1BhdGgoXG4gICAgICAgIHByb3BlcnR5TmFtZToga2V5b2YgdHlwZW9mIFBlcmlvZENvbnRlbnRTdmdSb3V0ZXNcbiAgICApOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gUGF5cm9sbFBlcmlvZENvbnRlbnRIZWxwZXIuZ2V0U3ZnUGF0aChwcm9wZXJ0eU5hbWUpO1xuICAgIH1cblxuICAgIHB1YmxpYyBmb3JtYXREYXRlKGRhdGU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBNZXRob2RzQ2FsY3VsYXRpb25zSGVscGVyLmNvbnZlcnREYXRlRnJvbUJhY2tlbmQoZGF0ZSk7XG4gICAgfVxuXG4gICAgcHVibGljIGlkZW50aXR5KGluZGV4OiBudW1iZXIpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gaW5kZXg7XG4gICAgfVxuXG4gICAgcHVibGljIG9wZW5BZGROZXdNb2RhbCgpOiB2b2lkIHtcbiAgICAgICAgaWYoIXRoaXMuaXNPcGVuKSByZXR1cm47XG4gICAgICAgIHRoaXMub3BlbkFkZE5ld01vZGFsRW1pdGVyLmVtaXQodGhpcy50aXRsZSk7XG4gICAgfVxuXG4gICAgcHVibGljIGhhbmRsZU1lbnVPcGVuKGV2ZW50OiB7XG4gICAgICAgICRldmVudDogSURyb3Bkb3duTWVudU9wdGlvbkVtaXQ7XG4gICAgICAgIGRhdGE6IFBheXJvbGxSZXBvcnRUYWJsZVJlc3BvbnNlO1xuICAgICAgICB0aXRsZTogc3RyaW5nO1xuICAgIH0pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vcGVuRWRpdEVudHJ5SXRlbS5lbWl0KGV2ZW50KTtcbiAgICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwibWFpbi1jb250YWluZXJcIj5cbiAgICA8bmctY29udGFpbmVyPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cIndyYXBwZXIgZC1mbGV4IGZsZXgtY29sdW1uIGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtc3RhcnRcIlxuICAgICAgICA+XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ0aXRsZS1jb250YWluZXIgY29udGFpbmVyIGQtZmxleCBmbGV4LWNvbHVtbiBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidGV4dC12YWx1ZSBkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtY2VudGVyXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicGF5bWVudC1jb3VudCBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1zdGFydFwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dCBjYS1mb250LWV4dHJhLWJvbGRcIj57eyB0aXRsZSB9fTwvc3Bhbj5cblxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIl9pbmNsdWRlZD8ubGVuZ3RoXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJyb3VuZCBjYS1mb250LWJvbGQgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IF9pbmNsdWRlZC5sZW5ndGggfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInZhbHVlIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgYWRkX25ld19pdGVtXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvcGVuQWRkTmV3TW9kYWwoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MudmFsdWUtaG92ZXJdPVwiaXNPcGVuXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChpc09wZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnLWljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJkLWZsZXggaWNvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzcmNdPVwiZ2V0U3ZnUGF0aCgncGx1cycpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3N2Z1N0eWxlXT1cInsgJ3dpZHRoLnB4JzogMTgsICdoZWlnaHQucHgnOiAxOCB9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9zdmctaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5jbHVkZWRfZXhjbHVkZWRfaG9sZGVyXCI+XG4gICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICBjZGtEcm9wTGlzdFxuICAgICAgICAgICAgICAgICAgICAjaW5jbHVkZWRMaXN0PVwiY2RrRHJvcExpc3RcIlxuICAgICAgICAgICAgICAgICAgICBbY2RrRHJvcExpc3RDb25uZWN0ZWRUb109XCJbZXhjbHVkZWRMaXN0XVwiXG4gICAgICAgICAgICAgICAgICAgIFtjZGtEcm9wTGlzdERhdGFdPVwiX2luY2x1ZGVkXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjb21wb25lbnQtZGF0YS1jb250YWluZXIgZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgZmxleC1jb2x1bW5cIlxuICAgICAgICAgICAgICAgICAgICBbY2xhc3MuZW1wdHlfbGlzdF9leF9pbl09XCIhX2luY2x1ZGVkLmxlbmd0aFwiXG4gICAgICAgICAgICAgICAgICAgIChjZGtEcm9wTGlzdERyb3BwZWQpPVwib25Ecm9wKCRldmVudClcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRhdGEgb2YgX2luY2x1ZGVkO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBpID0gaW5kZXg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhY2tCeTogaWRlbnRpdHlcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZGtEcmFnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNka0RyYWdMb2NrQXhpcz1cInlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZGtEcmFnUHJldmlld0NvbnRhaW5lcj1cInBhcmVudFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjZGtEcmFnRGlzYWJsZWRdPVwiIWlzT3BlbiB8fCBkaXNhYmxlUmVvcmRlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpjZGtEcmFnUGxhY2Vob2xkZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZHJhZy1wbGFjZWhvbGRlclwiPjwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIGNka0RyYWdQcmV2aWV3IG1hdGNoU2l6ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjdXN0b20tZHJhZy1wcmV2aWV3XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF5bWVudExpc3RJdGVtO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpbXBsaWNpdDogZGF0YSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmRleDogaSArIDEsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNEcmFnUHJldmlldzogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXltZW50TGlzdEl0ZW07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaW1wbGljaXQ6IGRhdGEsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4OiBpICsgMSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFoaWRlVG90YWxcIj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJwYXltZW50TGlzdFRvdGFsXCJcbiAgICAgICAgICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgY2RrRHJvcExpc3RcbiAgICAgICAgICAgICAgICAgICAgW2Nka0Ryb3BMaXN0Q29ubmVjdGVkVG9dPVwiW2luY2x1ZGVkTGlzdF1cIlxuICAgICAgICAgICAgICAgICAgICBbY2RrRHJvcExpc3REYXRhXT1cIl9leGNsdWRlZFwiXG4gICAgICAgICAgICAgICAgICAgICNleGNsdWRlZExpc3Q9XCJjZGtEcm9wTGlzdFwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY29tcG9uZW50LWRhdGEtY29udGFpbmVyIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGZsZXgtY29sdW1uIGV4Y2x1ZGVfbGlzdFwiXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzcy5lbXB0eV9saXN0X2V4X2luXT1cIiFfZXhjbHVkZWQubGVuZ3RoXCJcbiAgICAgICAgICAgICAgICAgICAgKGNka0Ryb3BMaXN0RHJvcHBlZCk9XCJvbkRyb3AoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGF0YSBvZiBfZXhjbHVkZWQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGkgPSBpbmRleDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFja0J5OiBpZGVudGl0eVxuICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFkYXRhLnJlb3JkZXJJdGVtOyBlbHNlIGVsc2VUb3RhbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2RrRHJhZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZGtEcmFnTG9ja0F4aXM9XCJ5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2RrRHJhZ1ByZXZpZXdDb250YWluZXI9XCJwYXJlbnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2RrRHJhZ0Rpc2FibGVkXT1cIiFpc09wZW5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqY2RrRHJhZ1BsYWNlaG9sZGVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRyYWctcGxhY2Vob2xkZXJcIj48L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBjZGtEcmFnUHJldmlldyBtYXRjaFNpemU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3VzdG9tLWRyYWctcHJldmlld1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBheW1lbnRMaXN0SXRlbTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQ6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaW1wbGljaXQ6IGRhdGEsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXg6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGkgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfaW5jbHVkZWQubGVuZ3RoICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc0RyYWdQcmV2aWV3OiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBheW1lbnRMaXN0SXRlbTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpbXBsaWNpdDogZGF0YSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXg6IGkgKyBfaW5jbHVkZWQubGVuZ3RoICsgMSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNFeGNsdWRlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZWxzZVRvdGFsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJwYXltZW50TGlzdFRvdGFsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDxuZy10ZW1wbGF0ZSAjZW1wdHlDb21wb25lbnREYXRhPlxuICAgICAgICA8ZGl2IGNsYXNzPVwidGl0bGUtY29udGFpbmVyIGNvbnRhaW5lci1lbXB0eSBkLWZsZXggZmxleC1jb2x1bW5cIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LXZhbHVlIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlblwiPlxuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwYXltZW50LWNvdW50IGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LXN0YXJ0XCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInRleHQgY2EtZm9udC1leHRyYS1ib2xkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1N0eWxlXT1cInsgY29sb3I6IGlzT3BlbiA/ICcjNDI0MjQyJyA6ICcjYWFhYWFhJyB9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgID57eyB0aXRsZSB9fTwvc3BhblxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2YWx1ZSBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc09wZW47IGVsc2Ugbm90T3BlblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHN2Zy1pY29uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJkLWZsZXggaWNvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9wZW5BZGROZXdNb2RhbCgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3JjXT1cImdldFN2Z1BhdGgoJ3BsdXMnKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3N2Z1N0eWxlXT1cInsgJ3dpZHRoLnB4JzogMTgsICdoZWlnaHQucHgnOiAxOCB9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L3N2Zy1pY29uPlxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNub3RPcGVuPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0b3RhbC1tb25leS1jbG9zZWQgY2EtZm9udC1zZW1pLWJvbGRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID4kMC4wMDwvc3BhblxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L25nLXRlbXBsYXRlPlxuPC9kaXY+XG5cbjwhLS0gQ0EgUEVSSU9EIFRFTVBMQVRFUyAtLT5cblxuPG5nLXRlbXBsYXRlICNwYXltZW50TGlzdFRvdGFsPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJfaW5jbHVkZWQgfCBpbmNsdWRlZENvdW50OiBpc09wZW4gYXMgaW5jbHVkZWRfY291bnRcIj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3M9XCJ0b3RhbC1tb25leS10aXRsZSBkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtY2VudGVyXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImljb24tdG90YWwgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxuICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZG9sYXItaWNvbiBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAgW25nU3R5bGVdPVwieyBjb2xvcjogZ2V0Q29sb3IodGl0bGUpIH1cIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPHN2Zy1pY29uXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3NyY109XCJnZXRTdmdQYXRoKCdkb2xhclNpZ24nKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbc3ZnU3R5bGVdPVwieyAnd2lkdGgucHgnOiAxOCwgJ2hlaWdodC5weCc6IDE4IH1cIlxuICAgICAgICAgICAgICAgICAgICA+PC9zdmctaWNvbj5cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0b3RhbC10aXRsZSBjYS1mb250LWJvbGRcIj5Ub3RhbDwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICBjbGFzcz1cInRvdGFsLW1vbmV5IGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtZW5kIGFsaWduLWl0ZW1zLWNlbnRlciBjYS1mb250LXNlbWktYm9sZFwiXG4gICAgICAgICAgICAgICAgW25nU3R5bGVdPVwieyBjb2xvcjogZ2V0Q29sb3IodGl0bGUpIH1cIlxuICAgICAgICAgICAgICAgID57eyBpbmNsdWRlZF9jb3VudCB9fTwvc3BhblxuICAgICAgICAgICAgPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZVxuICAgICNwYXltZW50TGlzdEl0ZW1cbiAgICBsZXQtZGF0YVxuICAgIGxldC1pPVwiaW5kZXhcIlxuICAgIGxldC1pc0RyYWdQcmV2aWV3PVwiaXNEcmFnUHJldmlld1wiXG4gICAgbGV0LWlzRXhjbHVkZWQ9XCJpc0V4Y2x1ZGVkXCJcbj5cbiAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLWNlbnRlciBpbmZvcm1hdGlvblwiXG4gICAgICAgIFtjbGFzcy5leGNsdWRlZF09XCJpc0V4Y2x1ZGVkXCJcbiAgICA+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwibnVtYmVyLWRhdGUtbG9jYXRpb24taG9sZGVyIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlblwiXG4gICAgICAgICAgICAobW91c2VlbnRlcik9XCJoYW5kbGVEcm9wZG93bk1lbnVIb3ZlcihpKVwiXG4gICAgICAgICAgICAobW91c2VsZWF2ZSk9XCJoYW5kbGVEcm9wZG93bk1lbnVIb3ZlcigpXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzRHJhZ1ByZXZpZXdcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZHJhZy1wcmV2aWV3LWljb25cIj5cbiAgICAgICAgICAgICAgICAgICAgPHN2Zy1pY29uXG4gICAgICAgICAgICAgICAgICAgICAgICBbc3ZnU3R5bGVdPVwie1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICd3aWR0aC5weCc6IDE0LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICdoZWlnaHQucHgnOiAxNCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJyNEQURBREEnLFxuICAgICAgICAgICAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbc3JjXT1cImdldFN2Z1BhdGgoJ3ByZXZpZXdBcnJvd3MnKVwiXG4gICAgICAgICAgICAgICAgICAgID48L3N2Zy1pY29uPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhaXNEcmFnUHJldmlld1wiPlxuICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibnVtYmVyIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlciBjYS1mb250LW1lZGl1bVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICBAaWYgKGkgPT09IGRyb3Bkb3duSG92ZXJJbmRleCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgPGNhLWRyb3Bkb3duLW1lbnVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAjZHJvcGRvd25NZW51XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3R5cGVdPVwiJ2RvdHMtbWVudS10eXBlJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3BsYWNlbWVudF09XCInYm90dG9tLXJpZ2h0J1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW29wdGlvbnNdPVwiZHJvcGRvd25PcHRpb25zXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZHJvcGRvd25PcHRpb25FbWl0dGVyKT1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVNZW51T3Blbih7ICRldmVudCwgZGF0YSwgdGl0bGUgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9jYS1kcm9wZG93bi1tZW51PlxuICAgICAgICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IGkgfX1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgY2xhc3M9XCJkYXRlLWxvY2F0aW9uIGQtZmxleCBmbGV4LWNvbHVtbiBqdXN0aWZ5LWNvbnRlbnQtc3RhcnQgYWxpZ24taXRlbXMtc3RhcnRcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY2EtZm9udC1zZW1pLWJvbGQgbG9jYXRpb24gZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiXG4gICAgICAgICAgICAgICAgICAgID57eyBkYXRhLmRlc2NyaXB0aW9uIH19PC9zcGFuXG4gICAgICAgICAgICAgICAgPlxuXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJkYXRlIGNhLWZvbnQtbWVkaXVtIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj57e1xuICAgICAgICAgICAgICAgICAgICBmb3JtYXREYXRlKGRhdGEuZGF0ZSlcbiAgICAgICAgICAgICAgICB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgICAgICdqdXN0aWZ5LWNvbnRlbnQtYmV0d2Vlbic6XG4gICAgICAgICAgICAgICAgICAgIHRpdGxlID09PSAnRGVkdWN0aW9uJyB8fCB0aXRsZSA9PT0gJ0Z1ZWwnLFxuICAgICAgICAgICAgICAgICdqdXN0aWZ5LWNvbnRlbnQtZW5kJzpcbiAgICAgICAgICAgICAgICAgICAgdGl0bGUgIT09ICdEZWR1Y3Rpb24nICYmIHRpdGxlICE9PSAnRnVlbCcsXG4gICAgICAgICAgICB9XCJcbiAgICAgICAgICAgIGNsYXNzPVwiaWNvbi1tb25leS1ob2xkZXIgZC1mbGV4XCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInRpdGxlID09PSAnRGVkdWN0aW9uJ1wiPlxuICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicmVjdXJyaW5nIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlclwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZGF0YS5yZWN1cnJpbmcgJiYgIWRhdGEuYWxsUmVjdXJyYW5jZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHN2Zy1pY29uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3JjXT1cImdldFN2Z1BhdGgoJ2luZmluaXR5SWNvbicpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3ZnU3R5bGVdPVwieyAnd2lkdGgucHgnOiAxOCwgJ2hlaWdodC5weCc6IDE4IH1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgPjwvc3ZnLWljb24+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJkYXRhLnJlY3VycmluZyAmJiBkYXRhLmFsbFJlY3VycmFuY2VcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyZWN1cnJpbmctY291bnQgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGRhdGEuY3VycmVudFJlY3VycmFuY2UgfX0ve3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS5hbGxSZWN1cnJhbmNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJ0aXRsZSA9PT0gJ0Z1ZWwnXCI+XG4gICAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJyZWN1cnJpbmcgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHt7IGRhdGEuZ2Fsb25zIH19XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgIGNsYXNzPVwibW9uZXkgZC1mbGV4IGp1c3RpZnktY29udGVudC1lbmQgYWxpZ24taXRlbXMtY2VudGVyIGNhLWZvbnQtcmVndWxhclwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge3sgKGRhdGEuc3VidG90YWwgfCBjdXJyZW5jeTogJ1VTRCcpID8/ICckMC4wMCcgfX1cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19