ngx-tethys 17.0.5 → 17.0.7

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 (48) hide show
  1. package/CHANGELOG.md +27 -1
  2. package/date-picker/abstract-picker.component.d.ts +8 -1
  3. package/date-picker/date-picker.config.d.ts +1 -0
  4. package/date-picker/lib/popups/date-popup.component.d.ts +2 -1
  5. package/date-picker/picker.util.d.ts +2 -0
  6. package/esm2022/cascader/cascader.component.mjs +3 -3
  7. package/esm2022/date-picker/abstract-picker.component.mjs +20 -10
  8. package/esm2022/date-picker/date-picker.component.mjs +3 -3
  9. package/esm2022/date-picker/date-picker.config.mjs +2 -1
  10. package/esm2022/date-picker/lib/popups/date-popup.component.mjs +7 -4
  11. package/esm2022/date-picker/month-picker.component.mjs +3 -3
  12. package/esm2022/date-picker/picker.util.mjs +14 -2
  13. package/esm2022/date-picker/quarter-picker.component.mjs +3 -3
  14. package/esm2022/date-picker/range-picker.component.mjs +3 -3
  15. package/esm2022/date-picker/week-picker.component.mjs +3 -3
  16. package/esm2022/date-picker/year-picker.component.mjs +3 -3
  17. package/esm2022/pagination/pagination.class.mjs +1 -1
  18. package/esm2022/pagination/pagination.component.mjs +15 -3
  19. package/esm2022/pagination/pagination.config.mjs +3 -2
  20. package/esm2022/segment/segment.component.mjs +28 -16
  21. package/esm2022/table/table-skeleton.component.mjs +4 -4
  22. package/esm2022/table/table.component.mjs +6 -4
  23. package/esm2022/util/helpers/helpers.mjs +2 -2
  24. package/esm2022/version.mjs +2 -2
  25. package/fesm2022/ngx-tethys-cascader.mjs +2 -2
  26. package/fesm2022/ngx-tethys-cascader.mjs.map +1 -1
  27. package/fesm2022/ngx-tethys-date-picker.mjs +49 -24
  28. package/fesm2022/ngx-tethys-date-picker.mjs.map +1 -1
  29. package/fesm2022/ngx-tethys-pagination.mjs +16 -3
  30. package/fesm2022/ngx-tethys-pagination.mjs.map +1 -1
  31. package/fesm2022/ngx-tethys-segment.mjs +26 -14
  32. package/fesm2022/ngx-tethys-segment.mjs.map +1 -1
  33. package/fesm2022/ngx-tethys-table.mjs +8 -6
  34. package/fesm2022/ngx-tethys-table.mjs.map +1 -1
  35. package/fesm2022/ngx-tethys-util.mjs +1 -1
  36. package/fesm2022/ngx-tethys-util.mjs.map +1 -1
  37. package/fesm2022/ngx-tethys.mjs +1 -1
  38. package/fesm2022/ngx-tethys.mjs.map +1 -1
  39. package/package.json +1 -1
  40. package/pagination/pagination.class.d.ts +4 -0
  41. package/pagination/pagination.component.d.ts +6 -1
  42. package/schematics/version.d.ts +1 -1
  43. package/schematics/version.js +1 -1
  44. package/segment/segment.component.d.ts +4 -2
  45. package/segment/styles/segment.scss +10 -0
  46. package/styles/variables.scss +3 -0
  47. package/table/table.component.d.ts +3 -1
  48. package/util/helpers/helpers.d.ts +1 -1
@@ -18,7 +18,8 @@ export const PaginationDefaultConfig = {
18
18
  nextIcon: 'angle-right',
19
19
  totalPagesFormat: '共{total}页',
20
20
  showSizeChanger: false,
21
- pageSizeOptions: [10, 20, 50, 100]
21
+ pageSizeOptions: [10, 20, 50, 100],
22
+ unit: '条'
22
23
  };
23
24
  export const THY_PAGINATION_CONFIG = new InjectionToken('THY_PAGINATION_CONFIG', {
24
25
  providedIn: 'root',
@@ -26,4 +27,4 @@ export const THY_PAGINATION_CONFIG = new InjectionToken('THY_PAGINATION_CONFIG',
26
27
  return {};
27
28
  }
28
29
  });
29
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi5jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvcGFnaW5hdGlvbi9wYWdpbmF0aW9uLmNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRy9DLE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLENBQUMsQ0FBQztBQUVyQyxNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBNkI7SUFDN0QsYUFBYSxFQUFFLEtBQUs7SUFDcEIsY0FBYyxFQUFFLElBQUk7SUFDcEIsUUFBUSxFQUFFLEVBQUU7SUFDWixRQUFRLEVBQUUsQ0FBQztJQUNYLFVBQVUsRUFBRSxtQkFBbUI7SUFDL0IsZUFBZSxFQUFFLElBQUk7SUFDckIsa0JBQWtCLEVBQUUsSUFBSTtJQUN4QixTQUFTLEVBQUUsS0FBSztJQUNoQixRQUFRLEVBQUUsTUFBTTtJQUNoQixZQUFZLEVBQUUsRUFBRTtJQUNoQixRQUFRLEVBQUUsRUFBRTtJQUNaLFNBQVMsRUFBRSxFQUFFO0lBQ2IsUUFBUSxFQUFFLEVBQUU7SUFDWixZQUFZLEVBQUUsWUFBWTtJQUMxQixRQUFRLEVBQUUsYUFBYTtJQUN2QixnQkFBZ0IsRUFBRSxXQUFXO0lBQzdCLGVBQWUsRUFBRSxLQUFLO0lBQ3RCLGVBQWUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQztDQUNyQyxDQUFDO0FBS0YsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsSUFBSSxjQUFjLENBQXNCLHVCQUF1QixFQUFFO0lBQ2xHLFVBQVUsRUFBRSxNQUFNO0lBQ2xCLE9BQU8sRUFBRSxHQUFHLEVBQUU7UUFDVixPQUFPLEVBQUUsQ0FBQztJQUNkLENBQUM7Q0FDSixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVGh5UGFnaW5hdGlvbkNvbmZpZ01vZGVsIH0gZnJvbSAnLi9wYWdpbmF0aW9uLmNsYXNzJztcblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfUkFOR0VfQ09VTlQgPSA1O1xuXG5leHBvcnQgY29uc3QgUGFnaW5hdGlvbkRlZmF1bHRDb25maWc6IFRoeVBhZ2luYXRpb25Db25maWdNb2RlbCA9IHtcbiAgICBib3VuZGFyeUxpbmtzOiBmYWxzZSxcbiAgICBkaXJlY3Rpb25MaW5rczogdHJ1ZSxcbiAgICBwYWdlU2l6ZTogMjAsXG4gICAgbWF4Q291bnQ6IDcsXG4gICAgcmFuZ2VDb3VudDogREVGQVVMVF9SQU5HRV9DT1VOVCxcbiAgICBzaG93UXVpY2tKdW1wZXI6IHRydWUsXG4gICAgc2hvd1RvdGFsUGFnZUNvdW50OiB0cnVlLFxuICAgIGZpcnN0VGV4dDogJ+esrOS4gOmhtScsXG4gICAgbGFzdFRleHQ6ICfmnIDlkI7kuIDpobUnLFxuICAgIHByZXZpb3VzVGV4dDogJycsXG4gICAgbmV4dFRleHQ6ICcnLFxuICAgIGZpcnN0SWNvbjogJycsXG4gICAgbGFzdEljb246ICcnLFxuICAgIHByZXZpb3VzSWNvbjogJ2FuZ2xlLWxlZnQnLFxuICAgIG5leHRJY29uOiAnYW5nbGUtcmlnaHQnLFxuICAgIHRvdGFsUGFnZXNGb3JtYXQ6ICflhbF7dG90YWx96aG1JyxcbiAgICBzaG93U2l6ZUNoYW5nZXI6IGZhbHNlLFxuICAgIHBhZ2VTaXplT3B0aW9uczogWzEwLCAyMCwgNTAsIDEwMF1cbn07XG5leHBvcnQgaW50ZXJmYWNlIFRoeVBhZ2luYXRpb25Db25maWcge1xuICAgIG1haW4/OiBUaHlQYWdpbmF0aW9uQ29uZmlnTW9kZWw7XG59XG5cbmV4cG9ydCBjb25zdCBUSFlfUEFHSU5BVElPTl9DT05GSUcgPSBuZXcgSW5qZWN0aW9uVG9rZW48VGh5UGFnaW5hdGlvbkNvbmZpZz4oJ1RIWV9QQUdJTkFUSU9OX0NPTkZJRycsIHtcbiAgICBwcm92aWRlZEluOiAncm9vdCcsXG4gICAgZmFjdG9yeTogKCkgPT4ge1xuICAgICAgICByZXR1cm4ge307XG4gICAgfVxufSk7XG4iXX0=
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi5jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvcGFnaW5hdGlvbi9wYWdpbmF0aW9uLmNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRy9DLE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLENBQUMsQ0FBQztBQUVyQyxNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBNkI7SUFDN0QsYUFBYSxFQUFFLEtBQUs7SUFDcEIsY0FBYyxFQUFFLElBQUk7SUFDcEIsUUFBUSxFQUFFLEVBQUU7SUFDWixRQUFRLEVBQUUsQ0FBQztJQUNYLFVBQVUsRUFBRSxtQkFBbUI7SUFDL0IsZUFBZSxFQUFFLElBQUk7SUFDckIsa0JBQWtCLEVBQUUsSUFBSTtJQUN4QixTQUFTLEVBQUUsS0FBSztJQUNoQixRQUFRLEVBQUUsTUFBTTtJQUNoQixZQUFZLEVBQUUsRUFBRTtJQUNoQixRQUFRLEVBQUUsRUFBRTtJQUNaLFNBQVMsRUFBRSxFQUFFO0lBQ2IsUUFBUSxFQUFFLEVBQUU7SUFDWixZQUFZLEVBQUUsWUFBWTtJQUMxQixRQUFRLEVBQUUsYUFBYTtJQUN2QixnQkFBZ0IsRUFBRSxXQUFXO0lBQzdCLGVBQWUsRUFBRSxLQUFLO0lBQ3RCLGVBQWUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQztJQUNsQyxJQUFJLEVBQUUsR0FBRztDQUNaLENBQUM7QUFLRixNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxJQUFJLGNBQWMsQ0FBc0IsdUJBQXVCLEVBQUU7SUFDbEcsVUFBVSxFQUFFLE1BQU07SUFDbEIsT0FBTyxFQUFFLEdBQUcsRUFBRTtRQUNWLE9BQU8sRUFBRSxDQUFDO0lBQ2QsQ0FBQztDQUNKLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUaHlQYWdpbmF0aW9uQ29uZmlnTW9kZWwgfSBmcm9tICcuL3BhZ2luYXRpb24uY2xhc3MnO1xuXG5leHBvcnQgY29uc3QgREVGQVVMVF9SQU5HRV9DT1VOVCA9IDU7XG5cbmV4cG9ydCBjb25zdCBQYWdpbmF0aW9uRGVmYXVsdENvbmZpZzogVGh5UGFnaW5hdGlvbkNvbmZpZ01vZGVsID0ge1xuICAgIGJvdW5kYXJ5TGlua3M6IGZhbHNlLFxuICAgIGRpcmVjdGlvbkxpbmtzOiB0cnVlLFxuICAgIHBhZ2VTaXplOiAyMCxcbiAgICBtYXhDb3VudDogNyxcbiAgICByYW5nZUNvdW50OiBERUZBVUxUX1JBTkdFX0NPVU5ULFxuICAgIHNob3dRdWlja0p1bXBlcjogdHJ1ZSxcbiAgICBzaG93VG90YWxQYWdlQ291bnQ6IHRydWUsXG4gICAgZmlyc3RUZXh0OiAn56ys5LiA6aG1JyxcbiAgICBsYXN0VGV4dDogJ+acgOWQjuS4gOmhtScsXG4gICAgcHJldmlvdXNUZXh0OiAnJyxcbiAgICBuZXh0VGV4dDogJycsXG4gICAgZmlyc3RJY29uOiAnJyxcbiAgICBsYXN0SWNvbjogJycsXG4gICAgcHJldmlvdXNJY29uOiAnYW5nbGUtbGVmdCcsXG4gICAgbmV4dEljb246ICdhbmdsZS1yaWdodCcsXG4gICAgdG90YWxQYWdlc0Zvcm1hdDogJ+WFsXt0b3RhbH3pobUnLFxuICAgIHNob3dTaXplQ2hhbmdlcjogZmFsc2UsXG4gICAgcGFnZVNpemVPcHRpb25zOiBbMTAsIDIwLCA1MCwgMTAwXSxcbiAgICB1bml0OiAn5p2hJ1xufTtcbmV4cG9ydCBpbnRlcmZhY2UgVGh5UGFnaW5hdGlvbkNvbmZpZyB7XG4gICAgbWFpbj86IFRoeVBhZ2luYXRpb25Db25maWdNb2RlbDtcbn1cblxuZXhwb3J0IGNvbnN0IFRIWV9QQUdJTkFUSU9OX0NPTkZJRyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxUaHlQYWdpbmF0aW9uQ29uZmlnPignVEhZX1BBR0lOQVRJT05fQ09ORklHJywge1xuICAgIHByb3ZpZGVkSW46ICdyb290JyxcbiAgICBmYWN0b3J5OiAoKSA9PiB7XG4gICAgICAgIHJldHVybiB7fTtcbiAgICB9XG59KTtcbiJdfQ==
@@ -1,8 +1,9 @@
1
- import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChildren, EventEmitter, HostBinding, Input, Output, QueryList, ViewEncapsulation, booleanAttribute, numberAttribute } from '@angular/core';
1
+ import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChildren, DestroyRef, EventEmitter, HostBinding, Input, Output, QueryList, ViewEncapsulation, booleanAttribute, numberAttribute } from '@angular/core';
2
2
  import { thumbMotion } from 'ngx-tethys/core';
3
3
  import { ThySegmentItem } from './segment-item.component';
4
4
  import { THY_SEGMENTED_COMPONENT } from './segment.token';
5
5
  import { NgIf } from '@angular/common';
6
+ import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
6
7
  import * as i0 from "@angular/core";
7
8
  /**
8
9
  * 分段控制器组件
@@ -13,20 +14,24 @@ export class ThySegment {
13
14
  * 选中选项的索引
14
15
  */
15
16
  set thyActiveIndex(value) {
17
+ this.newActiveIndex = value;
16
18
  if (value < 0 || value === this.activeIndex) {
17
19
  return;
18
20
  }
19
- const selectedItem = this.options?.get(this.activeIndex);
20
- if (selectedItem) {
21
- selectedItem.unselect();
22
- this.changeSelectedItem(this.options.get(value));
23
- }
24
- else {
25
- this.activeIndex = value;
26
- }
21
+ setTimeout(() => {
22
+ const selectedItem = this.options?.get(this.activeIndex);
23
+ if (selectedItem) {
24
+ selectedItem.unselect();
25
+ this.changeSelectedItem(this.options.get(value));
26
+ }
27
+ else {
28
+ this.activeIndex = value;
29
+ }
30
+ });
27
31
  }
28
- constructor(cdr) {
32
+ constructor(cdr, destroyRef) {
29
33
  this.cdr = cdr;
34
+ this.destroyRef = destroyRef;
30
35
  /**
31
36
  * 大小
32
37
  * @type xs | sm | md | default
@@ -45,18 +50,25 @@ export class ThySegment {
45
50
  * 选项被选中的回调事件
46
51
  */
47
52
  this.thySelectChange = new EventEmitter();
48
- this.activeIndex = 0;
49
53
  this.animationState = null;
50
54
  this.transitionedTo = null;
51
55
  }
52
56
  ngAfterContentInit() {
53
- this.selectedItem = this.options.get(this.activeIndex) || this.options.get(0);
57
+ this.selectedItem = this.options.get(this.newActiveIndex) || this.options.get(0);
54
58
  this.selectedItem?.select();
59
+ this.options.changes.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => {
60
+ this.options.forEach(item => {
61
+ item.unselect();
62
+ });
63
+ this.selectedItem = this.options.get(this.newActiveIndex) || this.options.get(0);
64
+ this.selectedItem?.select();
65
+ this.cdr.detectChanges();
66
+ });
55
67
  }
56
68
  changeSelectedItem(item, event) {
57
69
  this.animationState = {
58
70
  value: 'from',
59
- params: getThumbAnimationProps(this.options?.get(this.activeIndex)?.elementRef.nativeElement)
71
+ params: getThumbAnimationProps(this.options?.get(this.activeIndex || 0)?.elementRef.nativeElement)
60
72
  };
61
73
  this.selectedItem = null;
62
74
  this.cdr.detectChanges();
@@ -80,7 +92,7 @@ export class ThySegment {
80
92
  this.cdr.detectChanges();
81
93
  }
82
94
  }
83
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: ThySegment, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
95
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: ThySegment, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.DestroyRef }], target: i0.ɵɵFactoryTarget.Component }); }
84
96
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "17.2.3", type: ThySegment, isStandalone: true, selector: "thy-segment", inputs: { thySize: "thySize", thyMode: "thyMode", thyDisabled: ["thyDisabled", "thyDisabled", booleanAttribute], thyActiveIndex: ["thyActiveIndex", "thyActiveIndex", numberAttribute] }, outputs: { thySelectChange: "thySelectChange" }, host: { properties: { "class.thy-segment-xs": "thySize === 'xs'", "class.thy-segment-sm": "thySize === 'sm'", "class.thy-segment-md": "thySize === 'md'", "class.thy-segment-default": "!thySize || thySize === 'default'", "class.thy-segment-block": "thyMode === 'block'", "class.disabled": "this.thyDisabled" }, classAttribute: "thy-segment" }, providers: [
85
97
  {
86
98
  provide: THY_SEGMENTED_COMPONENT,
@@ -103,7 +115,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
103
115
  '[class.thy-segment-default]': `!thySize || thySize === 'default'`,
104
116
  '[class.thy-segment-block]': `thyMode === 'block'`
105
117
  }, standalone: true, imports: [NgIf], template: "<div class=\"thy-segment-group\">\n <div\n *ngIf=\"animationState\"\n class=\"thy-segment-thumb thy-segment-thumb-motion\"\n [@thumbMotion]=\"animationState\"\n (@thumbMotion.done)=\"handleThumbAnimationDone($event)\"\n ></div>\n\n <ng-content></ng-content>\n</div>\n" }]
106
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { options: [{
118
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.DestroyRef }], propDecorators: { options: [{
107
119
  type: ContentChildren,
108
120
  args: [ThySegmentItem]
109
121
  }], thySize: [{
@@ -128,4 +140,4 @@ function getThumbAnimationProps(element) {
128
140
  width: element.clientWidth
129
141
  };
130
142
  }
131
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VnbWVudC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvc2VnbWVudC9zZWdtZW50LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy9zZWdtZW50L3NlZ21lbnQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULGVBQWUsRUFDZixZQUFZLEVBQ1osV0FBVyxFQUNYLEtBQUssRUFDTCxNQUFNLEVBQ04sU0FBUyxFQUNULGlCQUFpQixFQUNqQixnQkFBZ0IsRUFDaEIsZUFBZSxFQUNsQixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDOUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzFELE9BQU8sRUFBd0IsdUJBQXVCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUdoRixPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBTXZDOzs7R0FHRztBQXlCSCxNQUFNLE9BQU8sVUFBVTtJQXlCbkI7O09BRUc7SUFDSCxJQUNJLGNBQWMsQ0FBQyxLQUFhO1FBQzVCLElBQUksS0FBSyxHQUFHLENBQUMsSUFBSSxLQUFLLEtBQUssSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQzFDLE9BQU87UUFDWCxDQUFDO1FBQ0QsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3pELElBQUksWUFBWSxFQUFFLENBQUM7WUFDZixZQUFZLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDeEIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFD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b0JoQixVQUFVO2tCQXhCdEIsU0FBUzsrQkFDSSxhQUFhLFlBRWIsWUFBWSxjQUNWLENBQUMsV0FBVyxDQUFDLGlCQUNWLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU0sYUFDcEM7d0JBQ1A7NEJBQ0ksT0FBTyxFQUFFLHVCQUF1Qjs0QkFDaEMsV0FBVyxZQUFZO3lCQUMxQjtxQkFDSixRQUNLO3dCQUNGLEtBQUssRUFBRSxhQUFhO3dCQUNwQix3QkFBd0IsRUFBRSxrQkFBa0I7d0JBQzVDLHdCQUF3QixFQUFFLGtCQUFrQjt3QkFDNUMsd0JBQXdCLEVBQUUsa0JBQWtCO3dCQUM1Qyw2QkFBNkIsRUFBRSxtQ0FBbUM7d0JBQ2xFLDJCQUEyQixFQUFFLHFCQUFxQjtxQkFDckQsY0FDVyxJQUFJLFdBQ1AsQ0FBQyxJQUFJLENBQUM7c0ZBTWtCLE9BQU87c0JBQXZDLGVBQWU7dUJBQUMsY0FBYztnQkFNdEIsT0FBTztzQkFBZixLQUFLO2dCQU1HLE9BQU87c0JBQWYsS0FBSztnQkFPTixXQUFXO3NCQUZWLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7O3NCQUNyQyxXQUFXO3VCQUFDLGdCQUFnQjtnQkFPekIsY0FBYztzQkFEakIsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUU7Z0JBaUJsQixlQUFlO3NCQUFqQyxNQUFNOztBQWdEWCxTQUFTLHNCQUFzQixDQUFDLE9BQW9CO0lBQ2hELE9BQU87UUFDSCxTQUFTLEVBQUUsT0FBTyxDQUFDLFVBQVU7UUFDN0IsS0FBSyxFQUFFLE9BQU8sQ0FBQyxXQUFXO0tBQzdCLENBQUM7QUFDTixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBBZnRlckNvbnRlbnRJbml0LFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBDb250ZW50Q2hpbGRyZW4sXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIElucHV0LFxuICAgIE91dHB1dCxcbiAgICBRdWVyeUxpc3QsXG4gICAgVmlld0VuY2Fwc3VsYXRpb24sXG4gICAgYm9vbGVhbkF0dHJpYnV0ZSxcbiAgICBudW1iZXJBdHRyaWJ1dGVcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUaHVtYkFuaW1hdGlvblByb3BzIH0gZnJvbSAnbmd4LXRldGh5cy9jb3JlJztcbmltcG9ydCB7IHRodW1iTW90aW9uIH0gZnJvbSAnbmd4LXRldGh5cy9jb3JlJztcbmltcG9ydCB7IFRoeVNlZ21lbnRJdGVtIH0gZnJvbSAnLi9zZWdtZW50LWl0ZW0uY29tcG9uZW50JztcbmltcG9ydCB7IElUaHlTZWdtZW50Q29tcG9uZW50LCBUSFlfU0VHTUVOVEVEX0NPTVBPTkVOVCB9IGZyb20gJy4vc2VnbWVudC50b2tlbic7XG5pbXBvcnQgeyBUaHlTZWdtZW50RXZlbnQgfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IEFuaW1hdGlvbkV2ZW50IH0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XG5pbXBvcnQgeyBOZ0lmIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuZXhwb3J0IHR5cGUgVGh5U2VnbWVudFNpemUgPSAneHMnIHwgJ3NtJyB8ICdtZCcgfCAnZGVmYXVsdCc7XG5cbmV4cG9ydCB0eXBlIFRoeVNlZ21lbnRNb2RlID0gJ2Jsb2NrJyB8ICdpbmxpbmUnO1xuXG4vKipcbiAqIOWIhuauteaOp+WItuWZqOe7hOS7tlxuICogQG5hbWUgdGh5LXNlZ21lbnRcbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd0aHktc2VnbWVudCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NlZ21lbnQuY29tcG9uZW50Lmh0bWwnLFxuICAgIGV4cG9ydEFzOiAndGh5U2VnbWVudCcsXG4gICAgYW5pbWF0aW9uczogW3RodW1iTW90aW9uXSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBUSFlfU0VHTUVOVEVEX0NPTVBPTkVOVCxcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBUaHlTZWdtZW50XG4gICAgICAgIH1cbiAgICBdLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgY2xhc3M6ICd0aHktc2VnbWVudCcsXG4gICAgICAgICdbY2xhc3MudGh5LXNlZ21lbnQteHNdJzogYHRoeVNpemUgPT09ICd4cydgLFxuICAgICAgICAnW2NsYXNzLnRoeS1zZWdtZW50LXNtXSc6IGB0aHlTaXplID09PSAnc20nYCxcbiAgICAgICAgJ1tjbGFzcy50aHktc2VnbWVudC1tZF0nOiBgdGh5U2l6ZSA9PT0gJ21kJ2AsXG4gICAgICAgICdbY2xhc3MudGh5LXNlZ21lbnQtZGVmYXVsdF0nOiBgIXRoeVNpemUgfHwgdGh5U2l6ZSA9PT0gJ2RlZmF1bHQnYCxcbiAgICAgICAgJ1tjbGFzcy50aHktc2VnbWVudC1ibG9ja10nOiBgdGh5TW9kZSA9PT0gJ2Jsb2NrJ2BcbiAgICB9LFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW05nSWZdXG59KVxuZXhwb3J0IGNsYXNzIFRoeVNlZ21lbnQgaW1wbGVtZW50cyBJVGh5U2VnbWVudENvbXBvbmVudCwgQWZ0ZXJDb250ZW50SW5pdCB7XG4gICAgLyoqXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgQENvbnRlbnRDaGlsZHJlbihUaHlTZWdtZW50SXRlbSkgb3B0aW9ucyE6IFF1ZXJ5TGlzdDxUaHlTZWdtZW50SXRlbT47XG5cbiAgICAvKipcbiAgICAgKiDlpKflsI9cbiAgICAgKiBAdHlwZSB4cyB8IHNtIHwgbWQgfCBkZWZhdWx0XG4gICAgICovXG4gICAgQElucHV0KCkgdGh5U2l6ZTogVGh5U2VnbWVudFNpemUgPSAnZGVmYXVsdCc7XG5cbiAgICAvKipcbiAgICAgKiDmqKHlvI9cbiAgICAgKiBAdHlwZSBibG9jayB8IGlubGluZVxuICAgICAqL1xuICAgIEBJbnB1dCgpIHRoeU1vZGU6IFRoeVNlZ21lbnRNb2RlID0gJ2Jsb2NrJztcblxuICAgIC8qKlxuICAgICAqIOaYr+WQpuemgeeUqOWIhuauteaOp+WItuWZqFxuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KVxuICAgIEBIb3N0QmluZGluZyhgY2xhc3MuZGlzYWJsZWRgKVxuICAgIHRoeURpc2FibGVkID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiDpgInkuK3pgInpobnnmoTntKLlvJVcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSB9KVxuICAgIHNldCB0aHlBY3RpdmVJbmRleCh2YWx1ZTogbnVtYmVyKSB7XG4gICAgICAgIGlmICh2YWx1ZSA8IDAgfHwgdmFsdWUgPT09IHRoaXMuYWN0aXZlSW5kZXgpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBzZWxlY3RlZEl0ZW0gPSB0aGlzLm9wdGlvbnM/LmdldCh0aGlzLmFjdGl2ZUluZGV4KTtcbiAgICAgICAgaWYgKHNlbGVjdGVkSXRlbSkge1xuICAgICAgICAgICAgc2VsZWN0ZWRJdGVtLnVuc2VsZWN0KCk7XG4gICAgICAgICAgICB0aGlzLmNoYW5nZVNlbGVjdGVkSXRlbSh0aGlzLm9wdGlvbnMuZ2V0KHZhbHVlKSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmFjdGl2ZUluZGV4ID0gdmFsdWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDpgInpobnooqvpgInkuK3nmoTlm57osIPkuovku7ZcbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgcmVhZG9ubHkgdGh5U2VsZWN0Q2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxUaHlTZWdtZW50RXZlbnQ+KCk7XG5cbiAgICBwdWJsaWMgc2VsZWN0ZWRJdGVtOiBUaHlTZWdtZW50SXRlbTtcblxuICAgIHByaXZhdGUgYWN0aXZlSW5kZXggPSAwO1xuXG4gICAgcHVibGljIGFuaW1hdGlvblN0YXRlOiBudWxsIHwgeyB2YWx1ZTogc3RyaW5nOyBwYXJhbXM6IFRodW1iQW5pbWF0aW9uUHJvcHMgfSA9IG51bGw7XG5cbiAgICBwdWJsaWMgdHJhbnNpdGlvbmVkVG86IGFueSA9IG51bGw7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHt9XG5cbiAgICBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtID0gdGhpcy5vcHRpb25zLmdldCh0aGlzLmFjdGl2ZUluZGV4KSB8fCB0aGlzLm9wdGlvbnMuZ2V0KDApO1xuICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbT8uc2VsZWN0KCk7XG4gICAgfVxuXG4gICAgcHVibGljIGNoYW5nZVNlbGVjdGVkSXRlbShpdGVtOiBUaHlTZWdtZW50SXRlbSwgZXZlbnQ/OiBFdmVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLmFuaW1hdGlvblN0YXRlID0ge1xuICAgICAgICAgICAgdmFsdWU6ICdmcm9tJyxcbiAgICAgICAgICAgIHBhcmFtczogZ2V0VGh1bWJBbmltYXRpb25Qcm9wcyh0aGlzLm9wdGlvbnM/LmdldCh0aGlzLmFjdGl2ZUluZGV4KT8uZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50ISlcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW0gPSBudWxsO1xuICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG5cbiAgICAgICAgdGhpcy5hbmltYXRpb25TdGF0ZSA9IHtcbiAgICAgICAgICAgIHZhbHVlOiAndG8nLFxuICAgICAgICAgICAgcGFyYW1zOiBnZXRUaHVtYkFuaW1hdGlvblByb3BzKGl0ZW0uZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50ISlcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy50cmFuc2l0aW9uZWRUbyA9IGl0ZW07XG4gICAgICAgIHRoaXMuYWN0aXZlSW5kZXggPSB0aGlzLm9wdGlvbnM/LnRvQXJyYXkoKS5maW5kSW5kZXgob3B0aW9uID0+IHtcbiAgICAgICAgICAgIHJldHVybiBvcHRpb24udGh5VmFsdWUgPT09IGl0ZW0/LnRoeVZhbHVlO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy50aHlTZWxlY3RDaGFuZ2UuZW1pdCh7IGV2ZW50OiBldmVudCwgdmFsdWU6IGl0ZW0udGh5VmFsdWUsIGFjdGl2ZUluZGV4OiB0aGlzLmFjdGl2ZUluZGV4IH0pO1xuICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGhhbmRsZVRodW1iQW5pbWF0aW9uRG9uZShldmVudDogQW5pbWF0aW9uRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKGV2ZW50LmZyb21TdGF0ZSA9PT0gJ2Zyb20nKSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbSA9IHRoaXMudHJhbnNpdGlvbmVkVG87XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbT8uc2VsZWN0KCk7XG4gICAgICAgICAgICB0aGlzLnRyYW5zaXRpb25lZFRvID0gbnVsbDtcbiAgICAgICAgICAgIHRoaXMuYW5pbWF0aW9uU3RhdGUgPSBudWxsO1xuICAgICAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5mdW5jdGlvbiBnZXRUaHVtYkFuaW1hdGlvblByb3BzKGVsZW1lbnQ6IEhUTUxFbGVtZW50KTogVGh1bWJBbmltYXRpb25Qcm9wcyB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgdHJhbnNmb3JtOiBlbGVtZW50Lm9mZnNldExlZnQsXG4gICAgICAgIHdpZHRoOiBlbGVtZW50LmNsaWVudFdpZHRoXG4gICAgfTtcbn1cbiIsIjxkaXYgY2xhc3M9XCJ0aHktc2VnbWVudC1ncm91cFwiPlxuICA8ZGl2XG4gICAgKm5nSWY9XCJhbmltYXRpb25TdGF0ZVwiXG4gICAgY2xhc3M9XCJ0aHktc2VnbWVudC10aHVtYiB0aHktc2VnbWVudC10aHVtYi1tb3Rpb25cIlxuICAgIFtAdGh1bWJNb3Rpb25dPVwiYW5pbWF0aW9uU3RhdGVcIlxuICAgIChAdGh1bWJNb3Rpb24uZG9uZSk9XCJoYW5kbGVUaHVtYkFuaW1hdGlvbkRvbmUoJGV2ZW50KVwiXG4gID48L2Rpdj5cblxuICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG48L2Rpdj5cbiJdfQ==
143
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VnbWVudC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvc2VnbWVudC9zZWdtZW50LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy9zZWdtZW50L3NlZ21lbnQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULGVBQWUsRUFDZixVQUFVLEVBQ1YsWUFBWSxFQUNaLFdBQVcsRUFDWCxLQUFLLEVBQ0wsTUFBTSxFQUNOLFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsZ0JBQWdCLEVBQ2hCLGVBQWUsRUFDbEIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMxRCxPQUFPLEVBQXdCLHVCQUF1QixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFHaEYsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDOztBQU1oRTs7O0dBR0c7QUF5QkgsTUFBTSxPQUFPLFVBQVU7SUF5Qm5COztPQUVHO0lBQ0gsSUFDSSxjQUFjLENBQUMsS0FBYTtRQUM1QixJQUFJLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQztRQUM1QixJQUFJLEtBQUssR0FBRyxDQUFDLElBQUksS0FBSyxLQUFLLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUMxQyxPQUFPO1FBQ1gsQ0FBQztRQUNELFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDWixNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDekQsSUFBSSxZQUFZLEVBQUUs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Q0FBbUM7d0JBQ2xFLDJCQUEyQixFQUFFLHFCQUFxQjtxQkFDckQsY0FDVyxJQUFJLFdBQ1AsQ0FBQyxJQUFJLENBQUM7K0dBTWtCLE9BQU87c0JBQXZDLGVBQWU7dUJBQUMsY0FBYztnQkFNdEIsT0FBTztzQkFBZixLQUFLO2dCQU1HLE9BQU87c0JBQWYsS0FBSztnQkFPTixXQUFXO3NCQUZWLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7O3NCQUNyQyxXQUFXO3VCQUFDLGdCQUFnQjtnQkFPekIsY0FBYztzQkFEakIsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUU7Z0JBb0JsQixlQUFlO3NCQUFqQyxNQUFNOztBQTJEWCxTQUFTLHNCQUFzQixDQUFDLE9BQW9CO0lBQ2hELE9BQU87UUFDSCxTQUFTLEVBQUUsT0FBTyxDQUFDLFVBQVU7UUFDN0IsS0FBSyxFQUFFLE9BQU8sQ0FBQyxXQUFXO0tBQzdCLENBQUM7QUFDTixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBBZnRlckNvbnRlbnRJbml0LFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBDb250ZW50Q2hpbGRyZW4sXG4gICAgRGVzdHJveVJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSW5wdXQsXG4gICAgT3V0cHV0LFxuICAgIFF1ZXJ5TGlzdCxcbiAgICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgICBib29sZWFuQXR0cmlidXRlLFxuICAgIG51bWJlckF0dHJpYnV0ZVxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRodW1iQW5pbWF0aW9uUHJvcHMgfSBmcm9tICduZ3gtdGV0aHlzL2NvcmUnO1xuaW1wb3J0IHsgdGh1bWJNb3Rpb24gfSBmcm9tICduZ3gtdGV0aHlzL2NvcmUnO1xuaW1wb3J0IHsgVGh5U2VnbWVudEl0ZW0gfSBmcm9tICcuL3NlZ21lbnQtaXRlbS5jb21wb25lbnQnO1xuaW1wb3J0IHsgSVRoeVNlZ21lbnRDb21wb25lbnQsIFRIWV9TRUdNRU5URURfQ09NUE9ORU5UIH0gZnJvbSAnLi9zZWdtZW50LnRva2VuJztcbmltcG9ydCB7IFRoeVNlZ21lbnRFdmVudCB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHsgQW5pbWF0aW9uRXZlbnQgfSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcbmltcG9ydCB7IE5nSWYgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuXG5leHBvcnQgdHlwZSBUaHlTZWdtZW50U2l6ZSA9ICd4cycgfCAnc20nIHwgJ21kJyB8ICdkZWZhdWx0JztcblxuZXhwb3J0IHR5cGUgVGh5U2VnbWVudE1vZGUgPSAnYmxvY2snIHwgJ2lubGluZSc7XG5cbi8qKlxuICog5YiG5q615o6n5Yi25Zmo57uE5Lu2XG4gKiBAbmFtZSB0aHktc2VnbWVudFxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3RoeS1zZWdtZW50JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vc2VnbWVudC5jb21wb25lbnQuaHRtbCcsXG4gICAgZXhwb3J0QXM6ICd0aHlTZWdtZW50JyxcbiAgICBhbmltYXRpb25zOiBbdGh1bWJNb3Rpb25dLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IFRIWV9TRUdNRU5URURfQ09NUE9ORU5ULFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IFRoeVNlZ21lbnRcbiAgICAgICAgfVxuICAgIF0sXG4gICAgaG9zdDoge1xuICAgICAgICBjbGFzczogJ3RoeS1zZWdtZW50JyxcbiAgICAgICAgJ1tjbGFzcy50aHktc2VnbWVudC14c10nOiBgdGh5U2l6ZSA9PT0gJ3hzJ2AsXG4gICAgICAgICdbY2xhc3MudGh5LXNlZ21lbnQtc21dJzogYHRoeVNpemUgPT09ICdzbSdgLFxuICAgICAgICAnW2NsYXNzLnRoeS1zZWdtZW50LW1kXSc6IGB0aHlTaXplID09PSAnbWQnYCxcbiAgICAgICAgJ1tjbGFzcy50aHktc2VnbWVudC1kZWZhdWx0XSc6IGAhdGh5U2l6ZSB8fCB0aHlTaXplID09PSAnZGVmYXVsdCdgLFxuICAgICAgICAnW2NsYXNzLnRoeS1zZWdtZW50LWJsb2NrXSc6IGB0aHlNb2RlID09PSAnYmxvY2snYFxuICAgIH0sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbTmdJZl1cbn0pXG5leHBvcnQgY2xhc3MgVGh5U2VnbWVudCBpbXBsZW1lbnRzIElUaHlTZWdtZW50Q29tcG9uZW50LCBBZnRlckNvbnRlbnRJbml0IHtcbiAgICAvKipcbiAgICAgKiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBAQ29udGVudENoaWxkcmVuKFRoeVNlZ21lbnRJdGVtKSBvcHRpb25zITogUXVlcnlMaXN0PFRoeVNlZ21lbnRJdGVtPjtcblxuICAgIC8qKlxuICAgICAqIOWkp+Wwj1xuICAgICAqIEB0eXBlIHhzIHwgc20gfCBtZCB8IGRlZmF1bHRcbiAgICAgKi9cbiAgICBASW5wdXQoKSB0aHlTaXplOiBUaHlTZWdtZW50U2l6ZSA9ICdkZWZhdWx0JztcblxuICAgIC8qKlxuICAgICAqIOaooeW8j1xuICAgICAqIEB0eXBlIGJsb2NrIHwgaW5saW5lXG4gICAgICovXG4gICAgQElucHV0KCkgdGh5TW9kZTogVGh5U2VnbWVudE1vZGUgPSAnYmxvY2snO1xuXG4gICAgLyoqXG4gICAgICog5piv5ZCm56aB55So5YiG5q615o6n5Yi25ZmoXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pXG4gICAgQEhvc3RCaW5kaW5nKGBjbGFzcy5kaXNhYmxlZGApXG4gICAgdGh5RGlzYWJsZWQgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIOmAieS4remAiemhueeahOe0ouW8lVxuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pXG4gICAgc2V0IHRoeUFjdGl2ZUluZGV4KHZhbHVlOiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5uZXdBY3RpdmVJbmRleCA9IHZhbHVlO1xuICAgICAgICBpZiAodmFsdWUgPCAwIHx8IHZhbHVlID09PSB0aGlzLmFjdGl2ZUluZGV4KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBzZWxlY3RlZEl0ZW0gPSB0aGlzLm9wdGlvbnM/LmdldCh0aGlzLmFjdGl2ZUluZGV4KTtcbiAgICAgICAgICAgIGlmIChzZWxlY3RlZEl0ZW0pIHtcbiAgICAgICAgICAgICAgICBzZWxlY3RlZEl0ZW0udW5zZWxlY3QoKTtcbiAgICAgICAgICAgICAgICB0aGlzLmNoYW5nZVNlbGVjdGVkSXRlbSh0aGlzLm9wdGlvbnMuZ2V0KHZhbHVlKSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuYWN0aXZlSW5kZXggPSB2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog6YCJ6aG56KKr6YCJ5Lit55qE5Zue6LCD5LqL5Lu2XG4gICAgICovXG4gICAgQE91dHB1dCgpIHJlYWRvbmx5IHRoeVNlbGVjdENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8VGh5U2VnbWVudEV2ZW50PigpO1xuXG4gICAgcHVibGljIHNlbGVjdGVkSXRlbTogVGh5U2VnbWVudEl0ZW07XG5cbiAgICBwcml2YXRlIG5ld0FjdGl2ZUluZGV4OiBudW1iZXI7XG5cbiAgICBwcml2YXRlIGFjdGl2ZUluZGV4OiBudW1iZXI7XG5cbiAgICBwdWJsaWMgYW5pbWF0aW9uU3RhdGU6IG51bGwgfCB7IHZhbHVlOiBzdHJpbmc7IHBhcmFtczogVGh1bWJBbmltYXRpb25Qcm9wcyB9ID0gbnVsbDtcblxuICAgIHB1YmxpYyB0cmFuc2l0aW9uZWRUbzogYW55ID0gbnVsbDtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZiwgcHJpdmF0ZSBkZXN0cm95UmVmOiBEZXN0cm95UmVmKSB7fVxuXG4gICAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbSA9IHRoaXMub3B0aW9ucy5nZXQodGhpcy5uZXdBY3RpdmVJbmRleCkgfHwgdGhpcy5vcHRpb25zLmdldCgwKTtcbiAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW0/LnNlbGVjdCgpO1xuXG4gICAgICAgIHRoaXMub3B0aW9ucy5jaGFuZ2VzLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZikpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLm9wdGlvbnMuZm9yRWFjaChpdGVtID0+IHtcbiAgICAgICAgICAgICAgICBpdGVtLnVuc2VsZWN0KCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtID0gdGhpcy5vcHRpb25zLmdldCh0aGlzLm5ld0FjdGl2ZUluZGV4KSB8fCB0aGlzLm9wdGlvbnMuZ2V0KDApO1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW0/LnNlbGVjdCgpO1xuICAgICAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY2hhbmdlU2VsZWN0ZWRJdGVtKGl0ZW06IFRoeVNlZ21lbnRJdGVtLCBldmVudD86IEV2ZW50KTogdm9pZCB7XG4gICAgICAgIHRoaXMuYW5pbWF0aW9uU3RhdGUgPSB7XG4gICAgICAgICAgICB2YWx1ZTogJ2Zyb20nLFxuICAgICAgICAgICAgcGFyYW1zOiBnZXRUaHVtYkFuaW1hdGlvblByb3BzKHRoaXMub3B0aW9ucz8uZ2V0KHRoaXMuYWN0aXZlSW5kZXggfHwgMCk/LmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCEpXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtID0gbnVsbDtcbiAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuXG4gICAgICAgIHRoaXMuYW5pbWF0aW9uU3RhdGUgPSB7XG4gICAgICAgICAgICB2YWx1ZTogJ3RvJyxcbiAgICAgICAgICAgIHBhcmFtczogZ2V0VGh1bWJBbmltYXRpb25Qcm9wcyhpdGVtLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCEpXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMudHJhbnNpdGlvbmVkVG8gPSBpdGVtO1xuICAgICAgICB0aGlzLmFjdGl2ZUluZGV4ID0gdGhpcy5vcHRpb25zPy50b0FycmF5KCkuZmluZEluZGV4KG9wdGlvbiA9PiB7XG4gICAgICAgICAgICByZXR1cm4gb3B0aW9uLnRoeVZhbHVlID09PSBpdGVtPy50aHlWYWx1ZTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMudGh5U2VsZWN0Q2hhbmdlLmVtaXQoeyBldmVudDogZXZlbnQsIHZhbHVlOiBpdGVtLnRoeVZhbHVlLCBhY3RpdmVJbmRleDogdGhpcy5hY3RpdmVJbmRleCB9KTtcbiAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cblxuICAgIHB1YmxpYyBoYW5kbGVUaHVtYkFuaW1hdGlvbkRvbmUoZXZlbnQ6IEFuaW1hdGlvbkV2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmIChldmVudC5mcm9tU3RhdGUgPT09ICdmcm9tJykge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW0gPSB0aGlzLnRyYW5zaXRpb25lZFRvO1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW0/LnNlbGVjdCgpO1xuICAgICAgICAgICAgdGhpcy50cmFuc2l0aW9uZWRUbyA9IG51bGw7XG4gICAgICAgICAgICB0aGlzLmFuaW1hdGlvblN0YXRlID0gbnVsbDtcbiAgICAgICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZnVuY3Rpb24gZ2V0VGh1bWJBbmltYXRpb25Qcm9wcyhlbGVtZW50OiBIVE1MRWxlbWVudCk6IFRodW1iQW5pbWF0aW9uUHJvcHMge1xuICAgIHJldHVybiB7XG4gICAgICAgIHRyYW5zZm9ybTogZWxlbWVudC5vZmZzZXRMZWZ0LFxuICAgICAgICB3aWR0aDogZWxlbWVudC5jbGllbnRXaWR0aFxuICAgIH07XG59XG4iLCI8ZGl2IGNsYXNzPVwidGh5LXNlZ21lbnQtZ3JvdXBcIj5cbiAgPGRpdlxuICAgICpuZ0lmPVwiYW5pbWF0aW9uU3RhdGVcIlxuICAgIGNsYXNzPVwidGh5LXNlZ21lbnQtdGh1bWIgdGh5LXNlZ21lbnQtdGh1bWItbW90aW9uXCJcbiAgICBbQHRodW1iTW90aW9uXT1cImFuaW1hdGlvblN0YXRlXCJcbiAgICAoQHRodW1iTW90aW9uLmRvbmUpPVwiaGFuZGxlVGh1bWJBbmltYXRpb25Eb25lKCRldmVudClcIlxuICA+PC9kaXY+XG5cbiAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuPC9kaXY+XG4iXX0=
@@ -1,5 +1,5 @@
1
1
  import { __decorate, __metadata } from "tslib";
2
- import { NgClass, NgFor, NgIf, NgTemplateOutlet } from '@angular/common';
2
+ import { NgClass, NgFor, NgIf, NgStyle, NgTemplateOutlet } from '@angular/common';
3
3
  import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, Input, ViewChild, ViewEncapsulation, booleanAttribute } from '@angular/core';
4
4
  import { InputCssPixel } from 'ngx-tethys/core';
5
5
  import { ThySkeletonCircle, ThySkeletonRectangle } from 'ngx-tethys/skeleton';
@@ -106,7 +106,7 @@ export class ThyTableSkeleton {
106
106
  this.cdr.detectChanges();
107
107
  }
108
108
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: ThyTableSkeleton, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
109
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "17.2.3", type: ThyTableSkeleton, isStandalone: true, selector: "thy-table-skeleton", inputs: { thyBorderRadius: "thyBorderRadius", thyRowHeight: "thyRowHeight", thyAnimated: ["thyAnimated", "thyAnimated", booleanAttribute], thyAnimatedInterval: "thyAnimatedInterval", thyPrimaryColor: "thyPrimaryColor", thySecondaryColor: "thySecondaryColor", thyRowCount: "thyRowCount", thyHeadless: ["thyHeadless", "thyHeadless", booleanAttribute], thyTheme: "thyTheme", thySize: "thySize", thyMinWidth: "thyMinWidth", thyColumns: "thyColumns" }, host: { classAttribute: "thy-table-skeleton" }, viewQueries: [{ propertyName: "titleTemplate", first: true, predicate: ["titleTemplate"], descendants: true }, { propertyName: "memberTemplate", first: true, predicate: ["memberTemplate"], descendants: true }, { propertyName: "defaultTemplate", first: true, predicate: ["defaultTemplate"], descendants: true }, { propertyName: "checkboxTemplate", first: true, predicate: ["checkboxTemplate"], descendants: true }], ngImport: i0, template: "<table [ngClass]=\"tableClassMap\" [style.min-width]=\"thyMinWidth\">\n <colgroup>\n <col *ngFor=\"let column of columns; trackBy: trackByFn\" [width]=\"column.width\" />\n </colgroup>\n <ng-container *ngIf=\"!thyHeadless\">\n <thead>\n <tr>\n <th *ngFor=\"let column of columns; trackBy: trackByFn\">\n <thy-skeleton-rectangle\n [thyRowWidth]=\"column?.type === columnType.checkbox ? checkboxWidth : titleWidth\"\n [thyRowHeight]=\"titleHeight\"\n [thyBorderRadius]=\"thyBorderRadius\"\n [thyAnimated]=\"thyAnimated\"\n [thyAnimatedInterval]=\"thyAnimatedInterval\"\n [thyPrimaryColor]=\"thyTheme === 'bordered' || thyTheme === 'boxed' ? '#eee' : thyPrimaryColor\"\n [thySecondaryColor]=\"thySecondaryColor\"></thy-skeleton-rectangle>\n </th>\n </tr>\n </thead>\n </ng-container>\n <tbody>\n <ng-container *ngFor=\"let item of rowCount; let i = index\">\n <tr>\n <ng-container *ngFor=\"let column of columns; trackBy: trackByFn\">\n <td>\n <ng-container\n *thyViewOutlet=\"\n skeletonColumnsMap[column.type] || defaultTemplate\n context:{\n trIndex: i,\n }\n \">\n </ng-container>\n </td>\n </ng-container>\n </tr>\n </ng-container>\n </tbody>\n</table>\n\n<ng-template #titleTemplate let-trIndex=\"trIndex\">\n <div class=\"d-flex align-items-center\">\n <thy-skeleton-rectangle\n class=\"mr-2 flex-shrink-0\"\n [thyRowWidth]=\"checkboxWidth\"\n [thyRowHeight]=\"thyRowHeight\"\n [thyBorderRadius]=\"thyBorderRadius\"\n [thyAnimated]=\"thyAnimated\"\n [thyAnimatedInterval]=\"thyAnimatedInterval\"\n [thyPrimaryColor]=\"thyPrimaryColor\"\n [thySecondaryColor]=\"thySecondaryColor\"></thy-skeleton-rectangle>\n\n <ng-container\n *thyViewOutlet=\"defaultTemplate;\n context:{\n rowWidth: trIndex % 3 === 0 ? '75%' : trIndex % 3 === 1 ? '100%' : trIndex % 3 === 2 ? '65%' : '',\n }\"></ng-container>\n </div>\n</ng-template>\n\n<ng-template #checkboxTemplate>\n <thy-skeleton-rectangle\n [thyRowWidth]=\"checkboxWidth\"\n [thyRowHeight]=\"thyRowHeight\"\n [thyBorderRadius]=\"thyBorderRadius\"\n [thyAnimated]=\"thyAnimated\"\n [thyAnimatedInterval]=\"thyAnimatedInterval\"\n [thyPrimaryColor]=\"thyPrimaryColor\"\n [thySecondaryColor]=\"thySecondaryColor\"></thy-skeleton-rectangle>\n</ng-template>\n\n<ng-template #memberTemplate>\n <div class=\"d-flex align-items-center\">\n <thy-skeleton-circle\n class=\"mr-2 flex-shrink-0\"\n [thySize]=\"avatarSize\"\n [thyAnimated]=\"thyAnimated\"\n [thyAnimatedInterval]=\"thyAnimatedInterval\"\n [thyPrimaryColor]=\"thyPrimaryColor\"\n [thySecondaryColor]=\"thySecondaryColor\"></thy-skeleton-circle>\n\n <ng-container *thyViewOutlet=\"defaultTemplate\"></ng-container>\n </div>\n</ng-template>\n\n<ng-template #defaultTemplate let-rowWidth=\"rowWidth\">\n <thy-skeleton-rectangle\n [thyRowWidth]=\"rowWidth\"\n [thyRowHeight]=\"thyRowHeight\"\n [thyBorderRadius]=\"thyBorderRadius\"\n [thyAnimated]=\"thyAnimated\"\n [thyAnimatedInterval]=\"thyAnimatedInterval\"\n [thyPrimaryColor]=\"thyPrimaryColor\"\n [thySecondaryColor]=\"thySecondaryColor\"></thy-skeleton-rectangle>\n</ng-template>\n", dependencies: [{ kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: ThyViewOutletDirective, selector: "[thyViewOutlet]", inputs: ["thyViewOutlet", "thyViewOutletContext"] }, { kind: "component", type: ThySkeletonRectangle, selector: "thy-skeleton-rectangle", inputs: ["thyAnimated", "thyAnimatedInterval", "thyBorderRadius", "thyRowWidth", "thyRowHeight", "thyPrimaryColor", "thySecondaryColor"] }, { kind: "component", type: ThySkeletonCircle, selector: "thy-skeleton-circle", inputs: ["thyAnimatedInterval", "thySize", "thyPrimaryColor", "thySecondaryColor", "thyAnimated"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
109
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "17.2.3", type: ThyTableSkeleton, isStandalone: true, selector: "thy-table-skeleton", inputs: { thyBorderRadius: "thyBorderRadius", thyRowHeight: "thyRowHeight", thyAnimated: ["thyAnimated", "thyAnimated", booleanAttribute], thyAnimatedInterval: "thyAnimatedInterval", thyPrimaryColor: "thyPrimaryColor", thySecondaryColor: "thySecondaryColor", thyRowCount: "thyRowCount", thyHeadless: ["thyHeadless", "thyHeadless", booleanAttribute], thyTheme: "thyTheme", thySize: "thySize", thyMinWidth: "thyMinWidth", thyColumns: "thyColumns" }, host: { classAttribute: "thy-table-skeleton" }, viewQueries: [{ propertyName: "titleTemplate", first: true, predicate: ["titleTemplate"], descendants: true }, { propertyName: "memberTemplate", first: true, predicate: ["memberTemplate"], descendants: true }, { propertyName: "defaultTemplate", first: true, predicate: ["defaultTemplate"], descendants: true }, { propertyName: "checkboxTemplate", first: true, predicate: ["checkboxTemplate"], descendants: true }], ngImport: i0, template: "<table [ngClass]=\"tableClassMap\" [ngStyle]=\"{ 'min-width': thyMinWidth }\">\n <colgroup>\n <col *ngFor=\"let column of columns; trackBy: trackByFn\" [width]=\"column.width\" />\n </colgroup>\n <ng-container *ngIf=\"!thyHeadless\">\n <thead>\n <tr>\n <th *ngFor=\"let column of columns; trackBy: trackByFn\">\n <thy-skeleton-rectangle\n [thyRowWidth]=\"column?.type === columnType.checkbox ? checkboxWidth : titleWidth\"\n [thyRowHeight]=\"titleHeight\"\n [thyBorderRadius]=\"thyBorderRadius\"\n [thyAnimated]=\"thyAnimated\"\n [thyAnimatedInterval]=\"thyAnimatedInterval\"\n [thyPrimaryColor]=\"thyTheme === 'bordered' || thyTheme === 'boxed' ? '#eee' : thyPrimaryColor\"\n [thySecondaryColor]=\"thySecondaryColor\"></thy-skeleton-rectangle>\n </th>\n </tr>\n </thead>\n </ng-container>\n <tbody>\n <ng-container *ngFor=\"let item of rowCount; let i = index\">\n <tr>\n <ng-container *ngFor=\"let column of columns; trackBy: trackByFn\">\n <td>\n <ng-container\n *thyViewOutlet=\"\n skeletonColumnsMap[column.type] || defaultTemplate\n context:{\n trIndex: i,\n }\n \">\n </ng-container>\n </td>\n </ng-container>\n </tr>\n </ng-container>\n </tbody>\n</table>\n\n<ng-template #titleTemplate let-trIndex=\"trIndex\">\n <div class=\"d-flex align-items-center\">\n <thy-skeleton-rectangle\n class=\"mr-2 flex-shrink-0\"\n [thyRowWidth]=\"checkboxWidth\"\n [thyRowHeight]=\"thyRowHeight\"\n [thyBorderRadius]=\"thyBorderRadius\"\n [thyAnimated]=\"thyAnimated\"\n [thyAnimatedInterval]=\"thyAnimatedInterval\"\n [thyPrimaryColor]=\"thyPrimaryColor\"\n [thySecondaryColor]=\"thySecondaryColor\"></thy-skeleton-rectangle>\n\n <ng-container\n *thyViewOutlet=\"defaultTemplate;\n context:{\n rowWidth: trIndex % 3 === 0 ? '75%' : trIndex % 3 === 1 ? '100%' : trIndex % 3 === 2 ? '65%' : '',\n }\"></ng-container>\n </div>\n</ng-template>\n\n<ng-template #checkboxTemplate>\n <thy-skeleton-rectangle\n [thyRowWidth]=\"checkboxWidth\"\n [thyRowHeight]=\"thyRowHeight\"\n [thyBorderRadius]=\"thyBorderRadius\"\n [thyAnimated]=\"thyAnimated\"\n [thyAnimatedInterval]=\"thyAnimatedInterval\"\n [thyPrimaryColor]=\"thyPrimaryColor\"\n [thySecondaryColor]=\"thySecondaryColor\"></thy-skeleton-rectangle>\n</ng-template>\n\n<ng-template #memberTemplate>\n <div class=\"d-flex align-items-center\">\n <thy-skeleton-circle\n class=\"mr-2 flex-shrink-0\"\n [thySize]=\"avatarSize\"\n [thyAnimated]=\"thyAnimated\"\n [thyAnimatedInterval]=\"thyAnimatedInterval\"\n [thyPrimaryColor]=\"thyPrimaryColor\"\n [thySecondaryColor]=\"thySecondaryColor\"></thy-skeleton-circle>\n\n <ng-container *thyViewOutlet=\"defaultTemplate\"></ng-container>\n </div>\n</ng-template>\n\n<ng-template #defaultTemplate let-rowWidth=\"rowWidth\">\n <thy-skeleton-rectangle\n [thyRowWidth]=\"rowWidth\"\n [thyRowHeight]=\"thyRowHeight\"\n [thyBorderRadius]=\"thyBorderRadius\"\n [thyAnimated]=\"thyAnimated\"\n [thyAnimatedInterval]=\"thyAnimatedInterval\"\n [thyPrimaryColor]=\"thyPrimaryColor\"\n [thySecondaryColor]=\"thySecondaryColor\"></thy-skeleton-rectangle>\n</ng-template>\n", dependencies: [{ kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: ThyViewOutletDirective, selector: "[thyViewOutlet]", inputs: ["thyViewOutlet", "thyViewOutletContext"] }, { kind: "component", type: ThySkeletonRectangle, selector: "thy-skeleton-rectangle", inputs: ["thyAnimated", "thyAnimatedInterval", "thyBorderRadius", "thyRowWidth", "thyRowHeight", "thyPrimaryColor", "thySecondaryColor"] }, { kind: "component", type: ThySkeletonCircle, selector: "thy-skeleton-circle", inputs: ["thyAnimatedInterval", "thySize", "thyPrimaryColor", "thySecondaryColor", "thyAnimated"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
110
110
  }
111
111
  __decorate([
112
112
  InputCssPixel(),
@@ -124,7 +124,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
124
124
  type: Component,
125
125
  args: [{ selector: 'thy-table-skeleton', host: {
126
126
  class: 'thy-table-skeleton'
127
- }, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, standalone: true, imports: [NgFor, NgClass, NgIf, NgTemplateOutlet, ThyViewOutletDirective, ThySkeletonRectangle, ThySkeletonCircle], template: "<table [ngClass]=\"tableClassMap\" [style.min-width]=\"thyMinWidth\">\n <colgroup>\n <col *ngFor=\"let column of columns; trackBy: trackByFn\" [width]=\"column.width\" />\n </colgroup>\n <ng-container *ngIf=\"!thyHeadless\">\n <thead>\n <tr>\n <th *ngFor=\"let column of columns; trackBy: trackByFn\">\n <thy-skeleton-rectangle\n [thyRowWidth]=\"column?.type === columnType.checkbox ? checkboxWidth : titleWidth\"\n [thyRowHeight]=\"titleHeight\"\n [thyBorderRadius]=\"thyBorderRadius\"\n [thyAnimated]=\"thyAnimated\"\n [thyAnimatedInterval]=\"thyAnimatedInterval\"\n [thyPrimaryColor]=\"thyTheme === 'bordered' || thyTheme === 'boxed' ? '#eee' : thyPrimaryColor\"\n [thySecondaryColor]=\"thySecondaryColor\"></thy-skeleton-rectangle>\n </th>\n </tr>\n </thead>\n </ng-container>\n <tbody>\n <ng-container *ngFor=\"let item of rowCount; let i = index\">\n <tr>\n <ng-container *ngFor=\"let column of columns; trackBy: trackByFn\">\n <td>\n <ng-container\n *thyViewOutlet=\"\n skeletonColumnsMap[column.type] || defaultTemplate\n context:{\n trIndex: i,\n }\n \">\n </ng-container>\n </td>\n </ng-container>\n </tr>\n </ng-container>\n </tbody>\n</table>\n\n<ng-template #titleTemplate let-trIndex=\"trIndex\">\n <div class=\"d-flex align-items-center\">\n <thy-skeleton-rectangle\n class=\"mr-2 flex-shrink-0\"\n [thyRowWidth]=\"checkboxWidth\"\n [thyRowHeight]=\"thyRowHeight\"\n [thyBorderRadius]=\"thyBorderRadius\"\n [thyAnimated]=\"thyAnimated\"\n [thyAnimatedInterval]=\"thyAnimatedInterval\"\n [thyPrimaryColor]=\"thyPrimaryColor\"\n [thySecondaryColor]=\"thySecondaryColor\"></thy-skeleton-rectangle>\n\n <ng-container\n *thyViewOutlet=\"defaultTemplate;\n context:{\n rowWidth: trIndex % 3 === 0 ? '75%' : trIndex % 3 === 1 ? '100%' : trIndex % 3 === 2 ? '65%' : '',\n }\"></ng-container>\n </div>\n</ng-template>\n\n<ng-template #checkboxTemplate>\n <thy-skeleton-rectangle\n [thyRowWidth]=\"checkboxWidth\"\n [thyRowHeight]=\"thyRowHeight\"\n [thyBorderRadius]=\"thyBorderRadius\"\n [thyAnimated]=\"thyAnimated\"\n [thyAnimatedInterval]=\"thyAnimatedInterval\"\n [thyPrimaryColor]=\"thyPrimaryColor\"\n [thySecondaryColor]=\"thySecondaryColor\"></thy-skeleton-rectangle>\n</ng-template>\n\n<ng-template #memberTemplate>\n <div class=\"d-flex align-items-center\">\n <thy-skeleton-circle\n class=\"mr-2 flex-shrink-0\"\n [thySize]=\"avatarSize\"\n [thyAnimated]=\"thyAnimated\"\n [thyAnimatedInterval]=\"thyAnimatedInterval\"\n [thyPrimaryColor]=\"thyPrimaryColor\"\n [thySecondaryColor]=\"thySecondaryColor\"></thy-skeleton-circle>\n\n <ng-container *thyViewOutlet=\"defaultTemplate\"></ng-container>\n </div>\n</ng-template>\n\n<ng-template #defaultTemplate let-rowWidth=\"rowWidth\">\n <thy-skeleton-rectangle\n [thyRowWidth]=\"rowWidth\"\n [thyRowHeight]=\"thyRowHeight\"\n [thyBorderRadius]=\"thyBorderRadius\"\n [thyAnimated]=\"thyAnimated\"\n [thyAnimatedInterval]=\"thyAnimatedInterval\"\n [thyPrimaryColor]=\"thyPrimaryColor\"\n [thySecondaryColor]=\"thySecondaryColor\"></thy-skeleton-rectangle>\n</ng-template>\n" }]
127
+ }, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, standalone: true, imports: [NgFor, NgClass, NgIf, NgStyle, NgTemplateOutlet, ThyViewOutletDirective, ThySkeletonRectangle, ThySkeletonCircle], template: "<table [ngClass]=\"tableClassMap\" [ngStyle]=\"{ 'min-width': thyMinWidth }\">\n <colgroup>\n <col *ngFor=\"let column of columns; trackBy: trackByFn\" [width]=\"column.width\" />\n </colgroup>\n <ng-container *ngIf=\"!thyHeadless\">\n <thead>\n <tr>\n <th *ngFor=\"let column of columns; trackBy: trackByFn\">\n <thy-skeleton-rectangle\n [thyRowWidth]=\"column?.type === columnType.checkbox ? checkboxWidth : titleWidth\"\n [thyRowHeight]=\"titleHeight\"\n [thyBorderRadius]=\"thyBorderRadius\"\n [thyAnimated]=\"thyAnimated\"\n [thyAnimatedInterval]=\"thyAnimatedInterval\"\n [thyPrimaryColor]=\"thyTheme === 'bordered' || thyTheme === 'boxed' ? '#eee' : thyPrimaryColor\"\n [thySecondaryColor]=\"thySecondaryColor\"></thy-skeleton-rectangle>\n </th>\n </tr>\n </thead>\n </ng-container>\n <tbody>\n <ng-container *ngFor=\"let item of rowCount; let i = index\">\n <tr>\n <ng-container *ngFor=\"let column of columns; trackBy: trackByFn\">\n <td>\n <ng-container\n *thyViewOutlet=\"\n skeletonColumnsMap[column.type] || defaultTemplate\n context:{\n trIndex: i,\n }\n \">\n </ng-container>\n </td>\n </ng-container>\n </tr>\n </ng-container>\n </tbody>\n</table>\n\n<ng-template #titleTemplate let-trIndex=\"trIndex\">\n <div class=\"d-flex align-items-center\">\n <thy-skeleton-rectangle\n class=\"mr-2 flex-shrink-0\"\n [thyRowWidth]=\"checkboxWidth\"\n [thyRowHeight]=\"thyRowHeight\"\n [thyBorderRadius]=\"thyBorderRadius\"\n [thyAnimated]=\"thyAnimated\"\n [thyAnimatedInterval]=\"thyAnimatedInterval\"\n [thyPrimaryColor]=\"thyPrimaryColor\"\n [thySecondaryColor]=\"thySecondaryColor\"></thy-skeleton-rectangle>\n\n <ng-container\n *thyViewOutlet=\"defaultTemplate;\n context:{\n rowWidth: trIndex % 3 === 0 ? '75%' : trIndex % 3 === 1 ? '100%' : trIndex % 3 === 2 ? '65%' : '',\n }\"></ng-container>\n </div>\n</ng-template>\n\n<ng-template #checkboxTemplate>\n <thy-skeleton-rectangle\n [thyRowWidth]=\"checkboxWidth\"\n [thyRowHeight]=\"thyRowHeight\"\n [thyBorderRadius]=\"thyBorderRadius\"\n [thyAnimated]=\"thyAnimated\"\n [thyAnimatedInterval]=\"thyAnimatedInterval\"\n [thyPrimaryColor]=\"thyPrimaryColor\"\n [thySecondaryColor]=\"thySecondaryColor\"></thy-skeleton-rectangle>\n</ng-template>\n\n<ng-template #memberTemplate>\n <div class=\"d-flex align-items-center\">\n <thy-skeleton-circle\n class=\"mr-2 flex-shrink-0\"\n [thySize]=\"avatarSize\"\n [thyAnimated]=\"thyAnimated\"\n [thyAnimatedInterval]=\"thyAnimatedInterval\"\n [thyPrimaryColor]=\"thyPrimaryColor\"\n [thySecondaryColor]=\"thySecondaryColor\"></thy-skeleton-circle>\n\n <ng-container *thyViewOutlet=\"defaultTemplate\"></ng-container>\n </div>\n</ng-template>\n\n<ng-template #defaultTemplate let-rowWidth=\"rowWidth\">\n <thy-skeleton-rectangle\n [thyRowWidth]=\"rowWidth\"\n [thyRowHeight]=\"thyRowHeight\"\n [thyBorderRadius]=\"thyBorderRadius\"\n [thyAnimated]=\"thyAnimated\"\n [thyAnimatedInterval]=\"thyAnimatedInterval\"\n [thyPrimaryColor]=\"thyPrimaryColor\"\n [thySecondaryColor]=\"thySecondaryColor\"></thy-skeleton-rectangle>\n</ng-template>\n" }]
128
128
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { titleTemplate: [{
129
129
  type: ViewChild,
130
130
  args: ['titleTemplate']
@@ -164,4 +164,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
164
164
  }], thyColumns: [{
165
165
  type: Input
166
166
  }] } });
167
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtc2tlbGV0b24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3RhYmxlL3RhYmxlLXNrZWxldG9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy90YWJsZS90YWJsZS1za2VsZXRvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekUsT0FBTyxFQUVILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixLQUFLLEVBQ0wsU0FBUyxFQUNULGlCQUFpQixFQUNqQixnQkFBZ0IsRUFDbkIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRTlFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzNELE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLFNBQVMsQ0FBQzs7QUFHckQsTUFBTSxZQUFZLEdBQUcsQ0FBQyxDQUFDO0FBRXZCOzs7R0FHRztBQVlILE1BQU0sT0FBTyxnQkFBZ0I7SUErQ3pCOztPQUVHO0lBQ0gsSUFDSSxXQUFXLENBQUMsS0FBc0I7UUFDbEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBNEJEOzs7T0FHRztJQUNILElBQWEsVUFBVSxDQUFDLE9BQWlDO1FBQ3JELElBQUksT0FBTyxJQUFJLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUM1QixJQUFJLENBQUMsT0FB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Q2lCO0FBT2pDO0lBREMsYUFBYSxFQUFFOztzREFDdUI7QUEwRHZDO0lBREMsYUFBYSxFQUFFOztxREFDYTsyRkEvRXBCLGdCQUFnQjtrQkFYNUIsU0FBUzsrQkFDSSxvQkFBb0IsUUFFeEI7d0JBQ0YsS0FBSyxFQUFFLG9CQUFvQjtxQkFDOUIsbUJBQ2dCLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLElBQUksY0FDekIsSUFBSSxXQUNQLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsc0JBQXNCLEVBQUUsb0JBQW9CLEVBQUUsaUJBQWlCLENBQUM7c0ZBR3RGLGFBQWE7c0JBQXhDLFNBQVM7dUJBQUMsZUFBZTtnQkFFRyxjQUFjO3NCQUExQyxTQUFTO3VCQUFDLGdCQUFnQjtnQkFFRyxlQUFlO3NCQUE1QyxTQUFTO3VCQUFDLGlCQUFpQjtnQkFFRyxnQkFBZ0I7c0JBQTlDLFNBQVM7dUJBQUMsa0JBQWtCO2dCQU83QixlQUFlO3NCQUZkLEtBQUs7Z0JBU04sWUFBWTtzQkFGWCxLQUFLO2dCQVNOLFdBQVc7c0JBRFYsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFNN0IsbUJBQW1CO3NCQUEzQixLQUFLO2dCQUtHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBS0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQVFGLFdBQVc7c0JBRGQsS0FBSztnQkFTa0MsV0FBVztzQkFBbEQsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFNN0IsUUFBUTtzQkFBaEIsS0FBSztnQkFPRyxPQUFPO3NCQUFmLEtBQUs7Z0JBT04sV0FBVztzQkFGVixLQUFLO2dCQVFPLFVBQVU7c0JBQXRCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ0NsYXNzLCBOZ0ZvciwgTmdJZiwgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICAgIEFmdGVyVmlld0luaXQsXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgSW5wdXQsXG4gICAgVmlld0NoaWxkLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uLFxuICAgIGJvb2xlYW5BdHRyaWJ1dGVcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJbnB1dENzc1BpeGVsIH0gZnJvbSAnbmd4LXRldGh5cy9jb3JlJztcbmltcG9ydCB7IFRoeVNrZWxldG9uQ2lyY2xlLCBUaHlTa2VsZXRvblJlY3RhbmdsZSB9IGZyb20gJ25neC10ZXRoeXMvc2tlbGV0b24nO1xuaW1wb3J0IHsgVGh5VGFibGVTa2VsZXRvbkNvbHVtbiB9IGZyb20gJy4vdGFibGUuaW50ZXJmYWNlJztcbmltcG9ydCB7IFRoeVZpZXdPdXRsZXREaXJlY3RpdmUgfSBmcm9tICduZ3gtdGV0aHlzL3NoYXJlZCc7XG5pbXBvcnQgeyBUaHlUYWJsZUNvbHVtblNrZWxldG9uVHlwZSB9IGZyb20gJy4vZW51bXMnO1xuaW1wb3J0IHsgVGh5VGFibGVTaXplLCBUaHlUYWJsZVRoZW1lIH0gZnJvbSAnLi90YWJsZS5jb21wb25lbnQnO1xuXG5jb25zdCBDT0xVTU5fQ09VTlQgPSA1O1xuXG4vKipcbiAqIOihqOagvOeahOmqqOaetuWxj+e7hOS7tlxuICogQG5hbWUgdGh5LXRhYmxlLXNrZWxldG9uXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndGh5LXRhYmxlLXNrZWxldG9uJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vdGFibGUtc2tlbGV0b24uY29tcG9uZW50Lmh0bWwnLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgY2xhc3M6ICd0aHktdGFibGUtc2tlbGV0b24nXG4gICAgfSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW05nRm9yLCBOZ0NsYXNzLCBOZ0lmLCBOZ1RlbXBsYXRlT3V0bGV0LCBUaHlWaWV3T3V0bGV0RGlyZWN0aXZlLCBUaHlTa2VsZXRvblJlY3RhbmdsZSwgVGh5U2tlbGV0b25DaXJjbGVdXG59KVxuZXhwb3J0IGNsYXNzIFRoeVRhYmxlU2tlbGV0b24gaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcbiAgICBAVmlld0NoaWxkKCd0aXRsZVRlbXBsYXRlJykgdGl0bGVUZW1wbGF0ZTogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG5cbiAgICBAVmlld0NoaWxkKCdtZW1iZXJUZW1wbGF0ZScpIG1lbWJlclRlbXBsYXRlOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcblxuICAgIEBWaWV3Q2hpbGQoJ2RlZmF1bHRUZW1wbGF0ZScpIGRlZmF1bHRUZW1wbGF0ZTogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG5cbiAgICBAVmlld0NoaWxkKCdjaGVja2JveFRlbXBsYXRlJykgY2hlY2tib3hUZW1wbGF0ZTogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG5cbiAgICAvKipcbiAgICAgKiDpqqjmnrbovrnmoYblnIbop5JcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIEBJbnB1dENzc1BpeGVsKClcbiAgICB0aHlCb3JkZXJSYWRpdXM6IHN0cmluZyB8IG51bWJlcjtcblxuICAgIC8qKlxuICAgICAqIOihqOagvOWGheWuuemqqOaetumrmOW6plxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgQElucHV0Q3NzUGl4ZWwoKVxuICAgIHRoeVJvd0hlaWdodDogc3RyaW5nIHwgbnVtYmVyID0gJzIwcHgnO1xuXG4gICAgLyoqXG4gICAgICog5piv5ZCm5byA5ZCv5Yqo55S7XG4gICAgICogQGRlZmF1bHQgdHJ1ZVxuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KVxuICAgIHRoeUFuaW1hdGVkOiBib29sZWFuID0gdHJ1ZTtcblxuICAgIC8qKlxuICAgICAqIOWKqOeUu+mAn+W6plxuICAgICAqL1xuICAgIEBJbnB1dCgpIHRoeUFuaW1hdGVkSW50ZXJ2YWw6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIOmqqOaetuS4u+iJslxuICAgICAqL1xuICAgIEBJbnB1dCgpIHRoeVByaW1hcnlDb2xvcjogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICog6aqo5p625qyh6ImyXG4gICAgICovXG4gICAgQElucHV0KCkgdGh5U2Vjb25kYXJ5Q29sb3I6IHN0cmluZztcblxuICAgIHJvd0NvdW50OiBudW1iZXJbXSA9IFtdO1xuXG4gICAgLyoqXG4gICAgICog6KGM5pWwXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzZXQgdGh5Um93Q291bnQodmFsdWU6IG51bWJlciB8IHN0cmluZykge1xuICAgICAgICB0aGlzLnJvd0NvdW50ID0gQXJyYXkuZnJvbSh7IGxlbmd0aDogK3ZhbHVlIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOaYr+WQpuWxleekuumqqOaetuWktFxuICAgICAqIEBkZWZhdWx0IGZhbHNlXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIHRoeUhlYWRsZXNzID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiDpqqjmnrblsY/nmoTpo47moLxcbiAgICAgKiBAdHlwZSBkZWZhdWx0IHwgYm9yZGVyZWQgfCBib3hlZFxuICAgICAqL1xuICAgIEBJbnB1dCgpIHRoeVRoZW1lOiBUaHlUYWJsZVRoZW1lID0gJ2RlZmF1bHQnO1xuXG4gICAgLyoqXG4gICAgICog6aqo5p625bGP55qE5aSn5bCPXG4gICAgICogQHR5cGUgeHMgfCBzbSB8IG1kIHwgbGcgfCB4bGcgfCBkZWZhdWx0XG4gICAgICogQGRlZmF1bHQgbWRcbiAgICAgKi9cbiAgICBASW5wdXQoKSB0aHlTaXplOiBUaHlUYWJsZVNpemUgPSAnbWQnO1xuXG4gICAgLyoqXG4gICAgICog6K6+572u6KGo5qC85pyA5bCP5a695bqmXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBASW5wdXRDc3NQaXhlbCgpXG4gICAgdGh5TWluV2lkdGg6IHN0cmluZyB8IG51bWJlcjtcblxuICAgIC8qKlxuICAgICAqIOihqOagvOWIl+mqqOaetueahOmFjee9rumhue+8jOaUr+aMgemFjee9ruWIl+WuveOAgemqqOaetuexu+Wei1xuICAgICAqIEB0eXBlIFRoeVRhYmxlU2tlbGV0b25Db2x1bW5bXVxuICAgICAqL1xuICAgIEBJbnB1dCgpIHNldCB0aHlDb2x1bW5zKGNvbHVtbnM6IFRoeVRhYmxlU2tlbGV0b25Db2x1bW5bXSkge1xuICAgICAgICBpZiAoY29sdW1ucyAmJiBjb2x1bW5zLmxlbmd0aCkge1xuICAgICAgICAgICAgdGhpcy5jb2x1bW5zID0gY29sdW1ucztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuY29sdW1ucyA9IFsuLi50aGlzLmRlZmF1bHRDb2x1bW5zXTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyB0aXRsZUhlaWdodCA9ICcyMHB4JztcblxuICAgIHB1YmxpYyB0aXRsZVdpZHRoID0gJzUwcHgnO1xuXG4gICAgcHVibGljIGNoZWNrYm94V2lkdGggPSAnMjBweCc7XG5cbiAgICBwdWJsaWMgYXZhdGFyU2l6ZSA9ICcyNHB4JztcblxuICAgIHB1YmxpYyBjb2x1bW5UeXBlID0gVGh5VGFibGVDb2x1bW5Ta2VsZXRvblR5cGU7XG5cbiAgICBwdWJsaWMgc2tlbGV0b25Db2x1bW5zTWFwOiB7XG4gICAgICAgIFtrZXk6IHN0cmluZ106IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuICAgIH0gPSB7fTtcblxuICAgIGdldCB0YWJsZUNsYXNzTWFwKCkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdGFibGU6IHRydWUsXG4gICAgICAgICAgICAndGFibGUtYm9yZGVyZWQnOiB0aGlzLnRoeVRoZW1lID09PSAnYm9yZGVyZWQnLFxuICAgICAgICAgICAgJ3RhYmxlLWJveGVkJzogdGhpcy50aHlUaGVtZSA9PT0gJ2JveGVkJyxcbiAgICAgICAgICAgIFtgdGFibGUtJHt0aGlzLnRoeVNpemV9YF06ICEhdGhpcy50aHlTaXplXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBkZWZhdWx0Q29sdW1ucyA9IEFycmF5LmZyb20oeyBsZW5ndGg6IENPTFVNTl9DT1VOVCB9KS5tYXAoKGl0ZW0sIGluZGV4OiBudW1iZXIpID0+IHtcbiAgICAgICAgaWYgKGluZGV4ID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAnNDAlJyxcbiAgICAgICAgICAgICAgICB0eXBlOiBUaHlUYWJsZUNvbHVtblNrZWxldG9uVHlwZS50aXRsZVxuICAgICAgICAgICAgfTtcbiAgICAgICAgfSBlbHNlIGlmIChpbmRleCA9PT0gMSkge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogJzE3JScsXG4gICAgICAgICAgICAgICAgdHlwZTogVGh5VGFibGVDb2x1bW5Ta2VsZXRvblR5cGUubWVtYmVyXG4gICAgICAgICAgICB9O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogJ2F1dG8nLFxuICAgICAgICAgICAgICAgIHR5cGU6IFRoeVRhYmxlQ29sdW1uU2tlbGV0b25UeXBlLmRlZmF1bHRcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICB9KTtcblxuICAgIHB1YmxpYyBjb2x1bW5zOiBUaHlUYWJsZVNrZWxldG9uQ29sdW1uW10gPSBbLi4udGhpcy5kZWZhdWx0Q29sdW1uc107XG5cbiAgICBwdWJsaWMgdHJhY2tCeUZuKGluZGV4OiBudW1iZXIpIHtcbiAgICAgICAgcmV0dXJuIGluZGV4O1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZikge31cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5za2VsZXRvbkNvbHVtbnNNYXAgPSB7XG4gICAgICAgICAgICBbVGh5VGFibGVDb2x1bW5Ta2VsZXRvblR5cGUudGl0bGVdOiB0aGlzLnRpdGxlVGVtcGxhdGUsXG4gICAgICAgICAgICBbVGh5VGFibGVDb2x1bW5Ta2VsZXRvblR5cGUubWVtYmVyXTogdGhpcy5tZW1iZXJUZW1wbGF0ZSxcbiAgICAgICAgICAgIFtUaHlUYWJsZUNvbHVtblNrZWxldG9uVHlwZS5jaGVja2JveF06IHRoaXMuY2hlY2tib3hUZW1wbGF0ZVxuICAgICAgICB9O1xuICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxufVxuIiwiPHRhYmxlIFtuZ0NsYXNzXT1cInRhYmxlQ2xhc3NNYXBcIiBbc3R5bGUubWluLXdpZHRoXT1cInRoeU1pbldpZHRoXCI+XG4gIDxjb2xncm91cD5cbiAgICA8Y29sICpuZ0Zvcj1cImxldCBjb2x1bW4gb2YgY29sdW1uczsgdHJhY2tCeTogdHJhY2tCeUZuXCIgW3dpZHRoXT1cImNvbHVtbi53aWR0aFwiIC8+XG4gIDwvY29sZ3JvdXA+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCIhdGh5SGVhZGxlc3NcIj5cbiAgICA8dGhlYWQ+XG4gICAgICA8dHI+XG4gICAgICAgIDx0aCAqbmdGb3I9XCJsZXQgY29sdW1uIG9mIGNvbHVtbnM7IHRyYWNrQnk6IHRyYWNrQnlGblwiPlxuICAgICAgICAgIDx0aHktc2tlbGV0b24tcmVjdGFuZ2xlXG4gICAgICAgICAgICBbdGh5Um93V2lkdGhdPVwiY29sdW1uPy50eXBlID09PSBjb2x1bW5UeXBlLmNoZWNrYm94ID8gY2hlY2tib3hXaWR0aCA6IHRpdGxlV2lkdGhcIlxuICAgICAgICAgICAgW3RoeVJvd0hlaWdodF09XCJ0aXRsZUhlaWdodFwiXG4gICAgICAgICAgICBbdGh5Qm9yZGVyUmFkaXVzXT1cInRoeUJvcmRlclJhZGl1c1wiXG4gICAgICAgICAgICBbdGh5QW5pbWF0ZWRdPVwidGh5QW5pbWF0ZWRcIlxuICAgICAgICAgICAgW3RoeUFuaW1hdGVkSW50ZXJ2YWxdPVwidGh5QW5pbWF0ZWRJbnRlcnZhbFwiXG4gICAgICAgICAgICBbdGh5UHJpbWFyeUNvbG9yXT1cInRoeVRoZW1lID09PSAnYm9yZGVyZWQnIHx8IHRoeVRoZW1lID09PSAnYm94ZWQnID8gJyNlZWUnIDogdGh5UHJpbWFyeUNvbG9yXCJcbiAgICAgICAgICAgIFt0aHlTZWNvbmRhcnlDb2xvcl09XCJ0aHlTZWNvbmRhcnlDb2xvclwiPjwvdGh5LXNrZWxldG9uLXJlY3RhbmdsZT5cbiAgICAgICAgPC90aD5cbiAgICAgIDwvdHI+XG4gICAgPC90aGVhZD5cbiAgPC9uZy1jb250YWluZXI+XG4gIDx0Ym9keT5cbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIHJvd0NvdW50OyBsZXQgaSA9IGluZGV4XCI+XG4gICAgICA8dHI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGNvbHVtbiBvZiBjb2x1bW5zOyB0cmFja0J5OiB0cmFja0J5Rm5cIj5cbiAgICAgICAgICA8dGQ+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICp0aHlWaWV3T3V0bGV0PVwiXG4gICAgICAgICAgICAgIHNrZWxldG9uQ29sdW1uc01hcFtjb2x1bW4udHlwZV0gfHwgZGVmYXVsdFRlbXBsYXRlXG4gICAgICAgICAgICAgIGNvbnRleHQ6e1xuICAgICAgICAgICAgICAgICAgdHJJbmRleDogaSxcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgXCI+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L3RkPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvdHI+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvdGJvZHk+XG48L3RhYmxlPlxuXG48bmctdGVtcGxhdGUgI3RpdGxlVGVtcGxhdGUgbGV0LXRySW5kZXg9XCJ0ckluZGV4XCI+XG4gIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCI+XG4gICAgPHRoeS1za2VsZXRvbi1yZWN0YW5nbGVcbiAgICAgIGNsYXNzPVwibXItMiBmbGV4LXNocmluay0wXCJcbiAgICAgIFt0aHlSb3dXaWR0aF09XCJjaGVja2JveFdpZHRoXCJcbiAgICAgIFt0aHlSb3dIZWlnaHRdPVwidGh5Um93SGVpZ2h0XCJcbiAgICAgIFt0aHlCb3JkZXJSYWRpdXNdPVwidGh5Qm9yZGVyUmFkaXVzXCJcbiAgICAgIFt0aHlBbmltYXRlZF09XCJ0aHlBbmltYXRlZFwiXG4gICAgICBbdGh5QW5pbWF0ZWRJbnRlcnZhbF09XCJ0aHlBbmltYXRlZEludGVydmFsXCJcbiAgICAgIFt0aHlQcmltYXJ5Q29sb3JdPVwidGh5UHJpbWFyeUNvbG9yXCJcbiAgICAgIFt0aHlTZWNvbmRhcnlDb2xvcl09XCJ0aHlTZWNvbmRhcnlDb2xvclwiPjwvdGh5LXNrZWxldG9uLXJlY3RhbmdsZT5cblxuICAgIDxuZy1jb250YWluZXJcbiAgICAgICp0aHlWaWV3T3V0bGV0PVwiZGVmYXVsdFRlbXBsYXRlO1xuICAgICAgY29udGV4dDp7XG4gICAgICAgIHJvd1dpZHRoOiB0ckluZGV4ICUgMyA9PT0gMCA/ICc3NSUnIDogdHJJbmRleCAlIDMgPT09IDEgPyAnMTAwJScgOiB0ckluZGV4ICUgMyA9PT0gMiA/ICc2NSUnIDogJycsXG4gICAgICB9XCI+PC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNjaGVja2JveFRlbXBsYXRlPlxuICA8dGh5LXNrZWxldG9uLXJlY3RhbmdsZVxuICAgIFt0aHlSb3dXaWR0aF09XCJjaGVja2JveFdpZHRoXCJcbiAgICBbdGh5Um93SGVpZ2h0XT1cInRoeVJvd0hlaWdodFwiXG4gICAgW3RoeUJvcmRlclJhZGl1c109XCJ0aHlCb3JkZXJSYWRpdXNcIlxuICAgIFt0aHlBbmltYXRlZF09XCJ0aHlBbmltYXRlZFwiXG4gICAgW3RoeUFuaW1hdGVkSW50ZXJ2YWxdPVwidGh5QW5pbWF0ZWRJbnRlcnZhbFwiXG4gICAgW3RoeVByaW1hcnlDb2xvcl09XCJ0aHlQcmltYXJ5Q29sb3JcIlxuICAgIFt0aHlTZWNvbmRhcnlDb2xvcl09XCJ0aHlTZWNvbmRhcnlDb2xvclwiPjwvdGh5LXNrZWxldG9uLXJlY3RhbmdsZT5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjbWVtYmVyVGVtcGxhdGU+XG4gIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCI+XG4gICAgPHRoeS1za2VsZXRvbi1jaXJjbGVcbiAgICAgIGNsYXNzPVwibXItMiBmbGV4LXNocmluay0wXCJcbiAgICAgIFt0aHlTaXplXT1cImF2YXRhclNpemVcIlxuICAgICAgW3RoeUFuaW1hdGVkXT1cInRoeUFuaW1hdGVkXCJcbiAgICAgIFt0aHlBbmltYXRlZEludGVydmFsXT1cInRoeUFuaW1hdGVkSW50ZXJ2YWxcIlxuICAgICAgW3RoeVByaW1hcnlDb2xvcl09XCJ0aHlQcmltYXJ5Q29sb3JcIlxuICAgICAgW3RoeVNlY29uZGFyeUNvbG9yXT1cInRoeVNlY29uZGFyeUNvbG9yXCI+PC90aHktc2tlbGV0b24tY2lyY2xlPlxuXG4gICAgPG5nLWNvbnRhaW5lciAqdGh5Vmlld091dGxldD1cImRlZmF1bHRUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjZGVmYXVsdFRlbXBsYXRlIGxldC1yb3dXaWR0aD1cInJvd1dpZHRoXCI+XG4gIDx0aHktc2tlbGV0b24tcmVjdGFuZ2xlXG4gICAgW3RoeVJvd1dpZHRoXT1cInJvd1dpZHRoXCJcbiAgICBbdGh5Um93SGVpZ2h0XT1cInRoeVJvd0hlaWdodFwiXG4gICAgW3RoeUJvcmRlclJhZGl1c109XCJ0aHlCb3JkZXJSYWRpdXNcIlxuICAgIFt0aHlBbmltYXRlZF09XCJ0aHlBbmltYXRlZFwiXG4gICAgW3RoeUFuaW1hdGVkSW50ZXJ2YWxdPVwidGh5QW5pbWF0ZWRJbnRlcnZhbFwiXG4gICAgW3RoeVByaW1hcnlDb2xvcl09XCJ0aHlQcmltYXJ5Q29sb3JcIlxuICAgIFt0aHlTZWNvbmRhcnlDb2xvcl09XCJ0aHlTZWNvbmRhcnlDb2xvclwiPjwvdGh5LXNrZWxldG9uLXJlY3RhbmdsZT5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
167
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtc2tlbGV0b24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3RhYmxlL3RhYmxlLXNrZWxldG9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy90YWJsZS90YWJsZS1za2VsZXRvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2xGLE9BQU8sRUFFSCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsS0FBSyxFQUNMLFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsZ0JBQWdCLEVBQ25CLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUU5RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxTQUFTLENBQUM7O0FBR3JELE1BQU0sWUFBWSxHQUFHLENBQUMsQ0FBQztBQUV2Qjs7O0dBR0c7QUFZSCxNQUFNLE9BQU8sZ0JBQWdCO0lBK0N6Qjs7T0FFRztJQUNILElBQ0ksV0FBVyxDQUFDLEtBQXNCO1FBQ2xDLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQTRCRDs7O09BR0c7SUFDSCxJQUFhLFVBQVUsQ0FBQyxPQUFpQztRQUNyRCxJQUFJLE9BQU8sSUFBSSxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDNUIsSUFB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SDtJQURDLGFBQWEsRUFBRTs7eURBQ2lCO0FBT2pDO0lBREMsYUFBYSxFQUFFOztzREFDdUI7QUEwRHZDO0lBREMsYUFBYSxFQUFFOztxREFDYTsyRkEvRXBCLGdCQUFnQjtrQkFYNUIsU0FBUzsrQkFDSSxvQkFBb0IsUUFFeEI7d0JBQ0YsS0FBSyxFQUFFLG9CQUFvQjtxQkFDOUIsbUJBQ2dCLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLElBQUksY0FDekIsSUFBSSxXQUNQLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLHNCQUFzQixFQUFFLG9CQUFvQixFQUFFLGlCQUFpQixDQUFDO3NGQUcvRixhQUFhO3NCQUF4QyxTQUFTO3VCQUFDLGVBQWU7Z0JBRUcsY0FBYztzQkFBMUMsU0FBUzt1QkFBQyxnQkFBZ0I7Z0JBRUcsZUFBZTtzQkFBNUMsU0FBUzt1QkFBQyxpQkFBaUI7Z0JBRUcsZ0JBQWdCO3NCQUE5QyxTQUFTO3VCQUFDLGtCQUFrQjtnQkFPN0IsZUFBZTtzQkFGZCxLQUFLO2dCQVNOLFlBQVk7c0JBRlgsS0FBSztnQkFTTixXQUFXO3NCQURWLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBTTdCLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFLRyxlQUFlO3NCQUF2QixLQUFLO2dCQUtHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFRRixXQUFXO3NCQURkLEtBQUs7Z0JBU2tDLFdBQVc7c0JBQWxELEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBTTdCLFFBQVE7c0JBQWhCLEtBQUs7Z0JBT0csT0FBTztzQkFBZixLQUFLO2dCQU9OLFdBQVc7c0JBRlYsS0FBSztnQkFRTyxVQUFVO3NCQUF0QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdDbGFzcywgTmdGb3IsIE5nSWYsIE5nU3R5bGUsIE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBFbGVtZW50UmVmLFxuICAgIElucHV0LFxuICAgIFZpZXdDaGlsZCxcbiAgICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgICBib29sZWFuQXR0cmlidXRlXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSW5wdXRDc3NQaXhlbCB9IGZyb20gJ25neC10ZXRoeXMvY29yZSc7XG5pbXBvcnQgeyBUaHlTa2VsZXRvbkNpcmNsZSwgVGh5U2tlbGV0b25SZWN0YW5nbGUgfSBmcm9tICduZ3gtdGV0aHlzL3NrZWxldG9uJztcbmltcG9ydCB7IFRoeVRhYmxlU2tlbGV0b25Db2x1bW4gfSBmcm9tICcuL3RhYmxlLmludGVyZmFjZSc7XG5pbXBvcnQgeyBUaHlWaWV3T3V0bGV0RGlyZWN0aXZlIH0gZnJvbSAnbmd4LXRldGh5cy9zaGFyZWQnO1xuaW1wb3J0IHsgVGh5VGFibGVDb2x1bW5Ta2VsZXRvblR5cGUgfSBmcm9tICcuL2VudW1zJztcbmltcG9ydCB7IFRoeVRhYmxlU2l6ZSwgVGh5VGFibGVUaGVtZSB9IGZyb20gJy4vdGFibGUuY29tcG9uZW50JztcblxuY29uc3QgQ09MVU1OX0NPVU5UID0gNTtcblxuLyoqXG4gKiDooajmoLznmoTpqqjmnrblsY/nu4Tku7ZcbiAqIEBuYW1lIHRoeS10YWJsZS1za2VsZXRvblxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3RoeS10YWJsZS1za2VsZXRvbicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3RhYmxlLXNrZWxldG9uLmNvbXBvbmVudC5odG1sJyxcbiAgICBob3N0OiB7XG4gICAgICAgIGNsYXNzOiAndGh5LXRhYmxlLXNrZWxldG9uJ1xuICAgIH0sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtOZ0ZvciwgTmdDbGFzcywgTmdJZiwgTmdTdHlsZSwgTmdUZW1wbGF0ZU91dGxldCwgVGh5Vmlld091dGxldERpcmVjdGl2ZSwgVGh5U2tlbGV0b25SZWN0YW5nbGUsIFRoeVNrZWxldG9uQ2lyY2xlXVxufSlcbmV4cG9ydCBjbGFzcyBUaHlUYWJsZVNrZWxldG9uIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG4gICAgQFZpZXdDaGlsZCgndGl0bGVUZW1wbGF0ZScpIHRpdGxlVGVtcGxhdGU6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gICAgQFZpZXdDaGlsZCgnbWVtYmVyVGVtcGxhdGUnKSBtZW1iZXJUZW1wbGF0ZTogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG5cbiAgICBAVmlld0NoaWxkKCdkZWZhdWx0VGVtcGxhdGUnKSBkZWZhdWx0VGVtcGxhdGU6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gICAgQFZpZXdDaGlsZCgnY2hlY2tib3hUZW1wbGF0ZScpIGNoZWNrYm94VGVtcGxhdGU6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gICAgLyoqXG4gICAgICog6aqo5p626L655qGG5ZyG6KeSXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBASW5wdXRDc3NQaXhlbCgpXG4gICAgdGh5Qm9yZGVyUmFkaXVzOiBzdHJpbmcgfCBudW1iZXI7XG5cbiAgICAvKipcbiAgICAgKiDooajmoLzlhoXlrrnpqqjmnrbpq5jluqZcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIEBJbnB1dENzc1BpeGVsKClcbiAgICB0aHlSb3dIZWlnaHQ6IHN0cmluZyB8IG51bWJlciA9ICcyMHB4JztcblxuICAgIC8qKlxuICAgICAqIOaYr+WQpuW8gOWQr+WKqOeUu1xuICAgICAqIEBkZWZhdWx0IHRydWVcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSlcbiAgICB0aHlBbmltYXRlZDogYm9vbGVhbiA9IHRydWU7XG5cbiAgICAvKipcbiAgICAgKiDliqjnlLvpgJ/luqZcbiAgICAgKi9cbiAgICBASW5wdXQoKSB0aHlBbmltYXRlZEludGVydmFsOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiDpqqjmnrbkuLvoibJcbiAgICAgKi9cbiAgICBASW5wdXQoKSB0aHlQcmltYXJ5Q29sb3I6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIOmqqOaetuasoeiJslxuICAgICAqL1xuICAgIEBJbnB1dCgpIHRoeVNlY29uZGFyeUNvbG9yOiBzdHJpbmc7XG5cbiAgICByb3dDb3VudDogbnVtYmVyW10gPSBbXTtcblxuICAgIC8qKlxuICAgICAqIOihjOaVsFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IHRoeVJvd0NvdW50KHZhbHVlOiBudW1iZXIgfCBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5yb3dDb3VudCA9IEFycmF5LmZyb20oeyBsZW5ndGg6ICt2YWx1ZSB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDmmK/lkKblsZXnpLrpqqjmnrblpLRcbiAgICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSB0aHlIZWFkbGVzcyA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICog6aqo5p625bGP55qE6aOO5qC8XG4gICAgICogQHR5cGUgZGVmYXVsdCB8IGJvcmRlcmVkIHwgYm94ZWRcbiAgICAgKi9cbiAgICBASW5wdXQoKSB0aHlUaGVtZTogVGh5VGFibGVUaGVtZSA9ICdkZWZhdWx0JztcblxuICAgIC8qKlxuICAgICAqIOmqqOaetuWxj+eahOWkp+Wwj1xuICAgICAqIEB0eXBlIHhzIHwgc20gfCBtZCB8IGxnIHwgeGxnIHwgZGVmYXVsdFxuICAgICAqIEBkZWZhdWx0IG1kXG4gICAgICovXG4gICAgQElucHV0KCkgdGh5U2l6ZTogVGh5VGFibGVTaXplID0gJ21kJztcblxuICAgIC8qKlxuICAgICAqIOiuvue9ruihqOagvOacgOWwj+WuveW6plxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgQElucHV0Q3NzUGl4ZWwoKVxuICAgIHRoeU1pbldpZHRoOiBzdHJpbmcgfCBudW1iZXI7XG5cbiAgICAvKipcbiAgICAgKiDooajmoLzliJfpqqjmnrbnmoTphY3nva7pobnvvIzmlK/mjIHphY3nva7liJflrr3jgIHpqqjmnrbnsbvlnotcbiAgICAgKiBAdHlwZSBUaHlUYWJsZVNrZWxldG9uQ29sdW1uW11cbiAgICAgKi9cbiAgICBASW5wdXQoKSBzZXQgdGh5Q29sdW1ucyhjb2x1bW5zOiBUaHlUYWJsZVNrZWxldG9uQ29sdW1uW10pIHtcbiAgICAgICAgaWYgKGNvbHVtbnMgJiYgY29sdW1ucy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMuY29sdW1ucyA9IGNvbHVtbnM7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmNvbHVtbnMgPSBbLi4udGhpcy5kZWZhdWx0Q29sdW1uc107XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgdGl0bGVIZWlnaHQgPSAnMjBweCc7XG5cbiAgICBwdWJsaWMgdGl0bGVXaWR0aCA9ICc1MHB4JztcblxuICAgIHB1YmxpYyBjaGVja2JveFdpZHRoID0gJzIwcHgnO1xuXG4gICAgcHVibGljIGF2YXRhclNpemUgPSAnMjRweCc7XG5cbiAgICBwdWJsaWMgY29sdW1uVHlwZSA9IFRoeVRhYmxlQ29sdW1uU2tlbGV0b25UeXBlO1xuXG4gICAgcHVibGljIHNrZWxldG9uQ29sdW1uc01hcDoge1xuICAgICAgICBba2V5OiBzdHJpbmddOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcbiAgICB9ID0ge307XG5cbiAgICBnZXQgdGFibGVDbGFzc01hcCgpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHRhYmxlOiB0cnVlLFxuICAgICAgICAgICAgJ3RhYmxlLWJvcmRlcmVkJzogdGhpcy50aHlUaGVtZSA9PT0gJ2JvcmRlcmVkJyxcbiAgICAgICAgICAgICd0YWJsZS1ib3hlZCc6IHRoaXMudGh5VGhlbWUgPT09ICdib3hlZCcsXG4gICAgICAgICAgICBbYHRhYmxlLSR7dGhpcy50aHlTaXplfWBdOiAhIXRoaXMudGh5U2l6ZVxuICAgICAgICB9O1xuICAgIH1cblxuICAgIHByaXZhdGUgZGVmYXVsdENvbHVtbnMgPSBBcnJheS5mcm9tKHsgbGVuZ3RoOiBDT0xVTU5fQ09VTlQgfSkubWFwKChpdGVtLCBpbmRleDogbnVtYmVyKSA9PiB7XG4gICAgICAgIGlmIChpbmRleCA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogJzQwJScsXG4gICAgICAgICAgICAgICAgdHlwZTogVGh5VGFibGVDb2x1bW5Ta2VsZXRvblR5cGUudGl0bGVcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0gZWxzZSBpZiAoaW5kZXggPT09IDEpIHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgd2lkdGg6ICcxNyUnLFxuICAgICAgICAgICAgICAgIHR5cGU6IFRoeVRhYmxlQ29sdW1uU2tlbGV0b25UeXBlLm1lbWJlclxuICAgICAgICAgICAgfTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgd2lkdGg6ICdhdXRvJyxcbiAgICAgICAgICAgICAgICB0eXBlOiBUaHlUYWJsZUNvbHVtblNrZWxldG9uVHlwZS5kZWZhdWx0XG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgfSk7XG5cbiAgICBwdWJsaWMgY29sdW1uczogVGh5VGFibGVTa2VsZXRvbkNvbHVtbltdID0gWy4uLnRoaXMuZGVmYXVsdENvbHVtbnNdO1xuXG4gICAgcHVibGljIHRyYWNrQnlGbihpbmRleDogbnVtYmVyKSB7XG4gICAgICAgIHJldHVybiBpbmRleDtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHt9XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2tlbGV0b25Db2x1bW5zTWFwID0ge1xuICAgICAgICAgICAgW1RoeVRhYmxlQ29sdW1uU2tlbGV0b25UeXBlLnRpdGxlXTogdGhpcy50aXRsZVRlbXBsYXRlLFxuICAgICAgICAgICAgW1RoeVRhYmxlQ29sdW1uU2tlbGV0b25UeXBlLm1lbWJlcl06IHRoaXMubWVtYmVyVGVtcGxhdGUsXG4gICAgICAgICAgICBbVGh5VGFibGVDb2x1bW5Ta2VsZXRvblR5cGUuY2hlY2tib3hdOiB0aGlzLmNoZWNrYm94VGVtcGxhdGVcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cbn1cbiIsIjx0YWJsZSBbbmdDbGFzc109XCJ0YWJsZUNsYXNzTWFwXCIgW25nU3R5bGVdPVwieyAnbWluLXdpZHRoJzogdGh5TWluV2lkdGggfVwiPlxuICA8Y29sZ3JvdXA+XG4gICAgPGNvbCAqbmdGb3I9XCJsZXQgY29sdW1uIG9mIGNvbHVtbnM7IHRyYWNrQnk6IHRyYWNrQnlGblwiIFt3aWR0aF09XCJjb2x1bW4ud2lkdGhcIiAvPlxuICA8L2NvbGdyb3VwPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiIXRoeUhlYWRsZXNzXCI+XG4gICAgPHRoZWFkPlxuICAgICAgPHRyPlxuICAgICAgICA8dGggKm5nRm9yPVwibGV0IGNvbHVtbiBvZiBjb2x1bW5zOyB0cmFja0J5OiB0cmFja0J5Rm5cIj5cbiAgICAgICAgICA8dGh5LXNrZWxldG9uLXJlY3RhbmdsZVxuICAgICAgICAgICAgW3RoeVJvd1dpZHRoXT1cImNvbHVtbj8udHlwZSA9PT0gY29sdW1uVHlwZS5jaGVja2JveCA/IGNoZWNrYm94V2lkdGggOiB0aXRsZVdpZHRoXCJcbiAgICAgICAgICAgIFt0aHlSb3dIZWlnaHRdPVwidGl0bGVIZWlnaHRcIlxuICAgICAgICAgICAgW3RoeUJvcmRlclJhZGl1c109XCJ0aHlCb3JkZXJSYWRpdXNcIlxuICAgICAgICAgICAgW3RoeUFuaW1hdGVkXT1cInRoeUFuaW1hdGVkXCJcbiAgICAgICAgICAgIFt0aHlBbmltYXRlZEludGVydmFsXT1cInRoeUFuaW1hdGVkSW50ZXJ2YWxcIlxuICAgICAgICAgICAgW3RoeVByaW1hcnlDb2xvcl09XCJ0aHlUaGVtZSA9PT0gJ2JvcmRlcmVkJyB8fCB0aHlUaGVtZSA9PT0gJ2JveGVkJyA/ICcjZWVlJyA6IHRoeVByaW1hcnlDb2xvclwiXG4gICAgICAgICAgICBbdGh5U2Vjb25kYXJ5Q29sb3JdPVwidGh5U2Vjb25kYXJ5Q29sb3JcIj48L3RoeS1za2VsZXRvbi1yZWN0YW5nbGU+XG4gICAgICAgIDwvdGg+XG4gICAgICA8L3RyPlxuICAgIDwvdGhlYWQ+XG4gIDwvbmctY29udGFpbmVyPlxuICA8dGJvZHk+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiByb3dDb3VudDsgbGV0IGkgPSBpbmRleFwiPlxuICAgICAgPHRyPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBjb2x1bW4gb2YgY29sdW1uczsgdHJhY2tCeTogdHJhY2tCeUZuXCI+XG4gICAgICAgICAgPHRkPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAqdGh5Vmlld091dGxldD1cIlxuICAgICAgICAgICAgICBza2VsZXRvbkNvbHVtbnNNYXBbY29sdW1uLnR5cGVdIHx8IGRlZmF1bHRUZW1wbGF0ZVxuICAgICAgICAgICAgICBjb250ZXh0OntcbiAgICAgICAgICAgICAgICAgIHRySW5kZXg6IGksXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIFwiPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPC90ZD5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8L3RyPlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L3Rib2R5PlxuPC90YWJsZT5cblxuPG5nLXRlbXBsYXRlICN0aXRsZVRlbXBsYXRlIGxldC10ckluZGV4PVwidHJJbmRleFwiPlxuICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxuICAgIDx0aHktc2tlbGV0b24tcmVjdGFuZ2xlXG4gICAgICBjbGFzcz1cIm1yLTIgZmxleC1zaHJpbmstMFwiXG4gICAgICBbdGh5Um93V2lkdGhdPVwiY2hlY2tib3hXaWR0aFwiXG4gICAgICBbdGh5Um93SGVpZ2h0XT1cInRoeVJvd0hlaWdodFwiXG4gICAgICBbdGh5Qm9yZGVyUmFkaXVzXT1cInRoeUJvcmRlclJhZGl1c1wiXG4gICAgICBbdGh5QW5pbWF0ZWRdPVwidGh5QW5pbWF0ZWRcIlxuICAgICAgW3RoeUFuaW1hdGVkSW50ZXJ2YWxdPVwidGh5QW5pbWF0ZWRJbnRlcnZhbFwiXG4gICAgICBbdGh5UHJpbWFyeUNvbG9yXT1cInRoeVByaW1hcnlDb2xvclwiXG4gICAgICBbdGh5U2Vjb25kYXJ5Q29sb3JdPVwidGh5U2Vjb25kYXJ5Q29sb3JcIj48L3RoeS1za2VsZXRvbi1yZWN0YW5nbGU+XG5cbiAgICA8bmctY29udGFpbmVyXG4gICAgICAqdGh5Vmlld091dGxldD1cImRlZmF1bHRUZW1wbGF0ZTtcbiAgICAgIGNvbnRleHQ6e1xuICAgICAgICByb3dXaWR0aDogdHJJbmRleCAlIDMgPT09IDAgPyAnNzUlJyA6IHRySW5kZXggJSAzID09PSAxID8gJzEwMCUnIDogdHJJbmRleCAlIDMgPT09IDIgPyAnNjUlJyA6ICcnLFxuICAgICAgfVwiPjwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjY2hlY2tib3hUZW1wbGF0ZT5cbiAgPHRoeS1za2VsZXRvbi1yZWN0YW5nbGVcbiAgICBbdGh5Um93V2lkdGhdPVwiY2hlY2tib3hXaWR0aFwiXG4gICAgW3RoeVJvd0hlaWdodF09XCJ0aHlSb3dIZWlnaHRcIlxuICAgIFt0aHlCb3JkZXJSYWRpdXNdPVwidGh5Qm9yZGVyUmFkaXVzXCJcbiAgICBbdGh5QW5pbWF0ZWRdPVwidGh5QW5pbWF0ZWRcIlxuICAgIFt0aHlBbmltYXRlZEludGVydmFsXT1cInRoeUFuaW1hdGVkSW50ZXJ2YWxcIlxuICAgIFt0aHlQcmltYXJ5Q29sb3JdPVwidGh5UHJpbWFyeUNvbG9yXCJcbiAgICBbdGh5U2Vjb25kYXJ5Q29sb3JdPVwidGh5U2Vjb25kYXJ5Q29sb3JcIj48L3RoeS1za2VsZXRvbi1yZWN0YW5nbGU+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI21lbWJlclRlbXBsYXRlPlxuICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxuICAgIDx0aHktc2tlbGV0b24tY2lyY2xlXG4gICAgICBjbGFzcz1cIm1yLTIgZmxleC1zaHJpbmstMFwiXG4gICAgICBbdGh5U2l6ZV09XCJhdmF0YXJTaXplXCJcbiAgICAgIFt0aHlBbmltYXRlZF09XCJ0aHlBbmltYXRlZFwiXG4gICAgICBbdGh5QW5pbWF0ZWRJbnRlcnZhbF09XCJ0aHlBbmltYXRlZEludGVydmFsXCJcbiAgICAgIFt0aHlQcmltYXJ5Q29sb3JdPVwidGh5UHJpbWFyeUNvbG9yXCJcbiAgICAgIFt0aHlTZWNvbmRhcnlDb2xvcl09XCJ0aHlTZWNvbmRhcnlDb2xvclwiPjwvdGh5LXNrZWxldG9uLWNpcmNsZT5cblxuICAgIDxuZy1jb250YWluZXIgKnRoeVZpZXdPdXRsZXQ9XCJkZWZhdWx0VGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2RlZmF1bHRUZW1wbGF0ZSBsZXQtcm93V2lkdGg9XCJyb3dXaWR0aFwiPlxuICA8dGh5LXNrZWxldG9uLXJlY3RhbmdsZVxuICAgIFt0aHlSb3dXaWR0aF09XCJyb3dXaWR0aFwiXG4gICAgW3RoeVJvd0hlaWdodF09XCJ0aHlSb3dIZWlnaHRcIlxuICAgIFt0aHlCb3JkZXJSYWRpdXNdPVwidGh5Qm9yZGVyUmFkaXVzXCJcbiAgICBbdGh5QW5pbWF0ZWRdPVwidGh5QW5pbWF0ZWRcIlxuICAgIFt0aHlBbmltYXRlZEludGVydmFsXT1cInRoeUFuaW1hdGVkSW50ZXJ2YWxcIlxuICAgIFt0aHlQcmltYXJ5Q29sb3JdPVwidGh5UHJpbWFyeUNvbG9yXCJcbiAgICBbdGh5U2Vjb25kYXJ5Q29sb3JdPVwidGh5U2Vjb25kYXJ5Q29sb3JcIj48L3RoeS1za2VsZXRvbi1yZWN0YW5nbGU+XG48L25nLXRlbXBsYXRlPlxuIl19