pdm-ui-kit 0.1.19 → 0.1.21

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.
@@ -30,23 +30,40 @@ export class PdmButtonComponent {
30
30
  get isDisabled() {
31
31
  return this.disabled || this.loading || this.variant === 'loading';
32
32
  }
33
+ get resolvedVariant() {
34
+ return this.isValidVariant(this.variant) ? this.variant : 'default';
35
+ }
36
+ get resolvedState() {
37
+ return this.state === 'hover' ? 'hover' : 'default';
38
+ }
39
+ get resolvedSize() {
40
+ if (this.size === 'small' || this.size === 'large') {
41
+ return this.size;
42
+ }
43
+ return 'default';
44
+ }
45
+ get showsIconSlot() {
46
+ const variant = this.resolvedVariant;
47
+ return variant === 'with-icon' || variant === 'icon' || variant === 'icon-circle' || variant === 'rounded';
48
+ }
33
49
  get rootClasses() {
34
- const currentState = this.state === 'hover' ? 'hover' : 'default';
35
- const toneClass = this.toneClassMap[this.variant][currentState];
50
+ const currentState = this.resolvedState;
51
+ const variant = this.resolvedVariant;
52
+ const toneClass = this.toneClassMap[variant][currentState];
36
53
  return [
37
54
  'inline-flex items-center justify-center gap-2 rounded-md border text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 bg-clip-padding',
38
- this.variant === 'link' ? 'px-4 py-2 h-9' : '',
39
- this.variant === 'icon' ? 'h-9 w-9 p-0' : '',
40
- this.variant === 'icon-circle' ? 'h-10 w-10 rounded-full p-0' : '',
41
- this.variant === 'rounded' ? 'h-9 w-9 rounded-full p-0' : '',
42
- this.variant !== 'icon' && this.variant !== 'icon-circle' && this.variant !== 'rounded'
43
- ? this.size === 'small'
55
+ variant === 'link' ? 'px-4 py-2 h-9' : '',
56
+ variant === 'icon' ? 'h-9 w-9 p-0' : '',
57
+ variant === 'icon-circle' ? 'h-10 w-10 rounded-full p-0' : '',
58
+ variant === 'rounded' ? 'h-9 w-9 rounded-full p-0' : '',
59
+ variant !== 'icon' && variant !== 'icon-circle' && variant !== 'rounded'
60
+ ? this.resolvedSize === 'small'
44
61
  ? 'h-8 px-3 text-xs'
45
- : this.size === 'large'
62
+ : this.resolvedSize === 'large'
46
63
  ? 'h-10 px-8'
47
64
  : 'h-9 px-4'
48
65
  : '',
49
- this.variant === 'link' && this.state === 'hover' ? 'underline underline-offset-4' : '',
66
+ variant === 'link' && currentState === 'hover' ? 'underline underline-offset-4' : '',
50
67
  toneClass,
51
68
  this.className
52
69
  ];
@@ -56,12 +73,27 @@ export class PdmButtonComponent {
56
73
  this.pressed.emit(event);
57
74
  }
58
75
  }
76
+ isValidVariant(value) {
77
+ return (value === 'default' ||
78
+ value === 'primary' ||
79
+ value === 'destructive' ||
80
+ value === 'outline' ||
81
+ value === 'subtle' ||
82
+ value === 'secondary' ||
83
+ value === 'ghost' ||
84
+ value === 'link' ||
85
+ value === 'with-icon' ||
86
+ value === 'icon' ||
87
+ value === 'icon-circle' ||
88
+ value === 'rounded' ||
89
+ value === 'loading');
90
+ }
59
91
  }
60
92
  PdmButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
61
- PdmButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmButtonComponent, selector: "pdm-button", inputs: { type: "type", variant: "variant", state: "state", size: "size", disabled: "disabled", loading: "loading", className: "className" }, outputs: { pressed: "pressed" }, ngImport: i0, template: "<button\n [type]=\"type\"\n [disabled]=\"isDisabled\"\n [attr.aria-busy]=\"loading\"\n [ngClass]=\"rootClasses\"\n (click)=\"onClick($event)\"\n>\n <span\n *ngIf=\"loading\"\n class=\"inline-block h-4 w-4 animate-spin rounded-full border-2 border-current border-r-transparent\"\n aria-hidden=\"true\"\n ></span>\n <ng-content select=\"[pdmButtonIcon]\" *ngIf=\"variant === 'with-icon' || variant === 'icon' || variant === 'icon-circle' || variant === 'rounded'\"></ng-content>\n <ng-content></ng-content>\n</button>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
93
+ PdmButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmButtonComponent, selector: "pdm-button", inputs: { type: "type", variant: "variant", state: "state", size: "size", disabled: "disabled", loading: "loading", className: "className" }, outputs: { pressed: "pressed" }, ngImport: i0, template: "<button\n [type]=\"type\"\n [disabled]=\"isDisabled\"\n [attr.aria-busy]=\"loading\"\n [ngClass]=\"rootClasses\"\n (click)=\"onClick($event)\"\n>\n <span\n *ngIf=\"loading\"\n class=\"inline-block h-4 w-4 animate-spin rounded-full border-2 border-current border-r-transparent\"\n aria-hidden=\"true\"\n ></span>\n <ng-content select=\"[pdmButtonIcon]\" *ngIf=\"showsIconSlot\"></ng-content>\n <ng-content></ng-content>\n</button>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
62
94
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmButtonComponent, decorators: [{
63
95
  type: Component,
64
- args: [{ selector: 'pdm-button', changeDetection: ChangeDetectionStrategy.OnPush, template: "<button\n [type]=\"type\"\n [disabled]=\"isDisabled\"\n [attr.aria-busy]=\"loading\"\n [ngClass]=\"rootClasses\"\n (click)=\"onClick($event)\"\n>\n <span\n *ngIf=\"loading\"\n class=\"inline-block h-4 w-4 animate-spin rounded-full border-2 border-current border-r-transparent\"\n aria-hidden=\"true\"\n ></span>\n <ng-content select=\"[pdmButtonIcon]\" *ngIf=\"variant === 'with-icon' || variant === 'icon' || variant === 'icon-circle' || variant === 'rounded'\"></ng-content>\n <ng-content></ng-content>\n</button>\n" }]
96
+ args: [{ selector: 'pdm-button', changeDetection: ChangeDetectionStrategy.OnPush, template: "<button\n [type]=\"type\"\n [disabled]=\"isDisabled\"\n [attr.aria-busy]=\"loading\"\n [ngClass]=\"rootClasses\"\n (click)=\"onClick($event)\"\n>\n <span\n *ngIf=\"loading\"\n class=\"inline-block h-4 w-4 animate-spin rounded-full border-2 border-current border-r-transparent\"\n aria-hidden=\"true\"\n ></span>\n <ng-content select=\"[pdmButtonIcon]\" *ngIf=\"showsIconSlot\"></ng-content>\n <ng-content></ng-content>\n</button>\n" }]
65
97
  }], propDecorators: { type: [{
66
98
  type: Input
67
99
  }], variant: [{
@@ -79,4 +111,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
79
111
  }], pressed: [{
80
112
  type: Output
81
113
  }] } });
82
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9idXR0b24vYnV0dG9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9idXR0b24vYnV0dG9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQXdCaEcsTUFBTSxPQUFPLGtCQUFrQjtJQUwvQjtRQU1XLFNBQUksR0FBa0MsUUFBUSxDQUFDO1FBQy9DLFlBQU8sR0FBcUIsU0FBUyxDQUFDO1FBQ3RDLFVBQUssR0FBbUIsU0FBUyxDQUFDO1FBQ2xDLFNBQUksR0FBa0IsU0FBUyxDQUFDO1FBQ2hDLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFDakIsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUNoQixjQUFTLEdBQUcsRUFBRSxDQUFDO1FBRWQsWUFBTyxHQUFHLElBQUksWUFBWSxFQUFjLENBQUM7UUFFMUMsaUJBQVksR0FBaUU7WUFDcEYsT0FBTyxFQUFFLEVBQUUsT0FBTyxFQUFFLG1EQUFtRCxFQUFFLEtBQUssRUFBRSw4REFBOEQsRUFBRTtZQUNoSixPQUFPLEVBQUUsRUFBRSxPQUFPLEVBQUUsbURBQW1ELEVBQUUsS0FBSyxFQUFFLDhEQUE4RCxFQUFFO1lBQ2hKLFdBQVcsRUFBRSxFQUFFLE9BQU8sRUFBRSwwREFBMEQsRUFBRSxLQUFLLEVBQUUscUVBQXFFLEVBQUU7WUFDbEssT0FBTyxFQUFFLEVBQUUsT0FBTyxFQUFFLDZDQUE2QyxFQUFFLEtBQUssRUFBRSx3Q0FBd0MsRUFBRTtZQUNwSCxNQUFNLEVBQUUsRUFBRSxPQUFPLEVBQUUseURBQXlELEVBQUUsS0FBSyxFQUFFLGdEQUFnRCxF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O3NCQUFaLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFFSSxPQUFPO3NCQUFoQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCB0eXBlIFBkbUJ1dHRvblZhcmlhbnQgPVxuICB8ICdkZWZhdWx0J1xuICB8ICdwcmltYXJ5J1xuICB8ICdkZXN0cnVjdGl2ZSdcbiAgfCAnb3V0bGluZSdcbiAgfCAnc3VidGxlJ1xuICB8ICdzZWNvbmRhcnknXG4gIHwgJ2dob3N0J1xuICB8ICdsaW5rJ1xuICB8ICd3aXRoLWljb24nXG4gIHwgJ2ljb24nXG4gIHwgJ2ljb24tY2lyY2xlJ1xuICB8ICdyb3VuZGVkJ1xuICB8ICdsb2FkaW5nJztcbmV4cG9ydCB0eXBlIFBkbUJ1dHRvblN0YXRlID0gJ2RlZmF1bHQnIHwgJ2hvdmVyJztcbmV4cG9ydCB0eXBlIFBkbUJ1dHRvblNpemUgPSAnc21hbGwnIHwgJ2RlZmF1bHQnIHwgJ2xhcmdlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncGRtLWJ1dHRvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9idXR0b24uY29tcG9uZW50Lmh0bWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBQZG1CdXR0b25Db21wb25lbnQge1xuICBASW5wdXQoKSB0eXBlOiAnYnV0dG9uJyB8ICdzdWJtaXQnIHwgJ3Jlc2V0JyA9ICdidXR0b24nO1xuICBASW5wdXQoKSB2YXJpYW50OiBQZG1CdXR0b25WYXJpYW50ID0gJ2RlZmF1bHQnO1xuICBASW5wdXQoKSBzdGF0ZTogUGRtQnV0dG9uU3RhdGUgPSAnZGVmYXVsdCc7XG4gIEBJbnB1dCgpIHNpemU6IFBkbUJ1dHRvblNpemUgPSAnZGVmYXVsdCc7XG4gIEBJbnB1dCgpIGRpc2FibGVkID0gZmFsc2U7XG4gIEBJbnB1dCgpIGxvYWRpbmcgPSBmYWxzZTtcbiAgQElucHV0KCkgY2xhc3NOYW1lID0gJyc7XG5cbiAgQE91dHB1dCgpIHByZXNzZWQgPSBuZXcgRXZlbnRFbWl0dGVyPE1vdXNlRXZlbnQ+KCk7XG5cbiAgcmVhZG9ubHkgdG9uZUNsYXNzTWFwOiBSZWNvcmQ8UGRtQnV0dG9uVmFyaWFudCwgeyBkZWZhdWx0OiBzdHJpbmc7IGhvdmVyOiBzdHJpbmcgfT4gPSB7XG4gICAgZGVmYXVsdDogeyBkZWZhdWx0OiAnYm9yZGVyLXByaW1hcnkgYmctcHJpbWFyeSB0ZXh0LXByaW1hcnktZm9yZWdyb3VuZCcsIGhvdmVyOiAnYm9yZGVyLXByaW1hcnkgYmctcHJpbWFyeSB0ZXh0LXByaW1hcnktZm9yZWdyb3VuZCBvcGFjaXR5LTkwJyB9LFxuICAgIHByaW1hcnk6IHsgZGVmYXVsdDogJ2JvcmRlci1wcmltYXJ5IGJnLXByaW1hcnkgdGV4dC1wcmltYXJ5LWZvcmVncm91bmQnLCBob3ZlcjogJ2JvcmRlci1wcmltYXJ5IGJnLXByaW1hcnkgdGV4dC1wcmltYXJ5LWZvcmVncm91bmQgb3BhY2l0eS05MCcgfSxcbiAgICBkZXN0cnVjdGl2ZTogeyBkZWZhdWx0OiAnYm9yZGVyLWJvcmRlciBiZy1kZXN0cnVjdGl2ZSB0ZXh0LWRlc3RydWN0aXZlLWZvcmVncm91bmQnLCBob3ZlcjogJ2JvcmRlci1ib3JkZXIgYmctZGVzdHJ1Y3RpdmUgdGV4dC1kZXN0cnVjdGl2ZS1mb3JlZ3JvdW5kIG9wYWNpdHktOTAnIH0sXG4gICAgb3V0bGluZTogeyBkZWZhdWx0OiAnYm9yZGVyLWJvcmRlciBiZy1iYWNrZ3JvdW5kIHRleHQtZm9yZWdyb3VuZCcsIGhvdmVyOiAnYm9yZGVyLWJvcmRlciBiZy1tdXRlZCB0ZXh0LWZvcmVncm91bmQnIH0sXG4gICAgc3VidGxlOiB7IGRlZmF1bHQ6ICdib3JkZXItc2Vjb25kYXJ5IGJnLXNlY29uZGFyeSB0ZXh0LXNlY29uZGFyeS1mb3JlZ3JvdW5kJywgaG92ZXI6ICdib3JkZXItYWNjZW50IGJnLWFjY2VudCB0ZXh0LWFjY2VudC1mb3JlZ3JvdW5kJyB9LFxuICAgIHNlY29uZGFyeTogeyBkZWZhdWx0OiAnYm9yZGVyLXNlY29uZGFyeSBiZy1zZWNvbmRhcnkgdGV4dC1zZWNvbmRhcnktZm9yZWdyb3VuZCcsIGhvdmVyOiAnYm9yZGVyLWFjY2VudCBiZy1hY2NlbnQgdGV4dC1hY2NlbnQtZm9yZWdyb3VuZCcgfSxcbiAgICBnaG9zdDogeyBkZWZhdWx0OiAnYm9yZGVyLWJvcmRlciBiZy10cmFuc3BhcmVudCB0ZXh0LWZvcmVncm91bmQnLCBob3ZlcjogJ2JvcmRlci1ib3JkZXIgYmctYWNjZW50IHRleHQtYWNjZW50LWZvcmVncm91bmQnIH0sXG4gICAgbGluazogeyBkZWZhdWx0OiAnYm9yZGVyLWJvcmRlciBiZy10cmFuc3BhcmVudCB0ZXh0LXByaW1hcnknLCBob3ZlcjogJ2JvcmRlci1ib3JkZXIgYmctdHJhbnNwYXJlbnQgdGV4dC1wcmltYXJ5IHVuZGVybGluZSB1bmRlcmxpbmUtb2Zmc2V0LTQnIH0sXG4gICAgJ3dpdGgtaWNvbic6IHsgZGVmYXVsdDogJ2JvcmRlci1wcmltYXJ5IGJnLXByaW1hcnkgdGV4dC1wcmltYXJ5LWZvcmVncm91bmQnLCBob3ZlcjogJ2JvcmRlci1wcmltYXJ5IGJnLXByaW1hcnkgdGV4dC1wcmltYXJ5LWZvcmVncm91bmQgb3BhY2l0eS05MCcgfSxcbiAgICBpY29uOiB7IGRlZmF1bHQ6ICdib3JkZXItYm9yZGVyIGJnLWJhY2tncm91bmQgdGV4dC1mb3JlZ3JvdW5kJywgaG92ZXI6ICdib3JkZXItYm9yZGVyIGJnLWFjY2VudCB0ZXh0LWFjY2VudC1mb3JlZ3JvdW5kJyB9LFxuICAgICdpY29uLWNpcmNsZSc6IHsgZGVmYXVsdDogJ2JvcmRlci1ib3JkZXIgYmctYmFja2dyb3VuZCB0ZXh0LWZvcmVncm91bmQnLCBob3ZlcjogJ2JvcmRlci1ib3JkZXIgYmctYWNjZW50IHRleHQtYWNjZW50LWZvcmVncm91bmQnIH0sXG4gICAgcm91bmRlZDogeyBkZWZhdWx0OiAnYm9yZGVyLWJvcmRlciBiZy1iYWNrZ3JvdW5kIHRleHQtZm9yZWdyb3VuZCcsIGhvdmVyOiAnYm9yZGVyLWJvcmRlciBiZy1hY2NlbnQgdGV4dC1hY2NlbnQtZm9yZWdyb3VuZCcgfSxcbiAgICBsb2FkaW5nOiB7IGRlZmF1bHQ6ICdib3JkZXItcHJpbWFyeSBiZy1wcmltYXJ5IHRleHQtcHJpbWFyeS1mb3JlZ3JvdW5kIG9wYWNpdHktNzAnLCBob3ZlcjogJ2JvcmRlci1wcmltYXJ5IGJnLXByaW1hcnkgdGV4dC1wcmltYXJ5LWZvcmVncm91bmQgb3BhY2l0eS03MCcgfVxuICB9O1xuXG4gIGdldCBpc0Rpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmRpc2FibGVkIHx8IHRoaXMubG9hZGluZyB8fCB0aGlzLnZhcmlhbnQgPT09ICdsb2FkaW5nJztcbiAgfVxuXG4gIGdldCByb290Q2xhc3NlcygpOiBzdHJpbmdbXSB7XG4gICAgY29uc3QgY3VycmVudFN0YXRlID0gdGhpcy5zdGF0ZSA9PT0gJ2hvdmVyJyA/ICdob3ZlcicgOiAnZGVmYXVsdCc7XG4gICAgY29uc3QgdG9uZUNsYXNzID0gdGhpcy50b25lQ2xhc3NNYXBbdGhpcy52YXJpYW50XVtjdXJyZW50U3RhdGVdO1xuXG4gICAgcmV0dXJuIFtcbiAgICAgICdpbmxpbmUtZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgZ2FwLTIgcm91bmRlZC1tZCBib3JkZXIgdGV4dC1zbSBmb250LW1lZGl1bSByaW5nLW9mZnNldC1iYWNrZ3JvdW5kIHRyYW5zaXRpb24tY29sb3JzIGZvY3VzLXZpc2libGU6b3V0bGluZS1ub25lIGZvY3VzLXZpc2libGU6cmluZy1bM3B4XSBmb2N1cy12aXNpYmxlOnJpbmctcmluZy81MCBmb2N1cy12aXNpYmxlOnJpbmctb2Zmc2V0LTIgZGlzYWJsZWQ6cG9pbnRlci1ldmVudHMtbm9uZSBkaXNhYmxlZDpvcGFjaXR5LTUwIGJnLWNsaXAtcGFkZGluZycsXG4gICAgICB0aGlzLnZhcmlhbnQgPT09ICdsaW5rJyA/ICdweC00IHB5LTIgaC05JyA6ICcnLFxuICAgICAgdGhpcy52YXJpYW50ID09PSAnaWNvbicgPyAnaC05IHctOSBwLTAnIDogJycsXG4gICAgICB0aGlzLnZhcmlhbnQgPT09ICdpY29uLWNpcmNsZScgPyAnaC0xMCB3LTEwIHJvdW5kZWQtZnVsbCBwLTAnIDogJycsXG4gICAgICB0aGlzLnZhcmlhbnQgPT09ICdyb3VuZGVkJyA/ICdoLTkgdy05IHJvdW5kZWQtZnVsbCBwLTAnIDogJycsXG4gICAgICB0aGlzLnZhcmlhbnQgIT09ICdpY29uJyAmJiB0aGlzLnZhcmlhbnQgIT09ICdpY29uLWNpcmNsZScgJiYgdGhpcy52YXJpYW50ICE9PSAncm91bmRlZCdcbiAgICAgICAgPyB0aGlzLnNpemUgPT09ICdzbWFsbCdcbiAgICAgICAgICA/ICdoLTggcHgtMyB0ZXh0LXhzJ1xuICAgICAgICAgIDogdGhpcy5zaXplID09PSAnbGFyZ2UnXG4gICAgICAgICAgICA/ICdoLTEwIHB4LTgnXG4gICAgICAgICAgICA6ICdoLTkgcHgtNCdcbiAgICAgICAgOiAnJyxcbiAgICAgIHRoaXMudmFyaWFudCA9PT0gJ2xpbmsnICYmIHRoaXMuc3RhdGUgPT09ICdob3ZlcicgPyAndW5kZXJsaW5lIHVuZGVybGluZS1vZmZzZXQtNCcgOiAnJyxcbiAgICAgIHRvbmVDbGFzcyxcbiAgICAgIHRoaXMuY2xhc3NOYW1lXG4gICAgXTtcbiAgfVxuXG4gIG9uQ2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuaXNEaXNhYmxlZCkge1xuICAgICAgdGhpcy5wcmVzc2VkLmVtaXQoZXZlbnQpO1xuICAgIH1cbiAgfVxufVxuIiwiPGJ1dHRvblxuICBbdHlwZV09XCJ0eXBlXCJcbiAgW2Rpc2FibGVkXT1cImlzRGlzYWJsZWRcIlxuICBbYXR0ci5hcmlhLWJ1c3ldPVwibG9hZGluZ1wiXG4gIFtuZ0NsYXNzXT1cInJvb3RDbGFzc2VzXCJcbiAgKGNsaWNrKT1cIm9uQ2xpY2soJGV2ZW50KVwiXG4+XG4gIDxzcGFuXG4gICAgKm5nSWY9XCJsb2FkaW5nXCJcbiAgICBjbGFzcz1cImlubGluZS1ibG9jayBoLTQgdy00IGFuaW1hdGUtc3BpbiByb3VuZGVkLWZ1bGwgYm9yZGVyLTIgYm9yZGVyLWN1cnJlbnQgYm9yZGVyLXItdHJhbnNwYXJlbnRcIlxuICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gID48L3NwYW4+XG4gIDxuZy1jb250ZW50IHNlbGVjdD1cIltwZG1CdXR0b25JY29uXVwiICpuZ0lmPVwidmFyaWFudCA9PT0gJ3dpdGgtaWNvbicgfHwgdmFyaWFudCA9PT0gJ2ljb24nIHx8IHZhcmlhbnQgPT09ICdpY29uLWNpcmNsZScgfHwgdmFyaWFudCA9PT0gJ3JvdW5kZWQnXCI+PC9uZy1jb250ZW50PlxuICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG48L2J1dHRvbj5cbiJdfQ==
114
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9idXR0b24vYnV0dG9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9idXR0b24vYnV0dG9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQXdCaEcsTUFBTSxPQUFPLGtCQUFrQjtJQUwvQjtRQU1XLFNBQUksR0FBa0MsUUFBUSxDQUFDO1FBQy9DLFlBQU8sR0FBOEIsU0FBUyxDQUFDO1FBQy9DLFVBQUssR0FBNEIsU0FBUyxDQUFDO1FBQzNDLFNBQUksR0FBMkIsU0FBUyxDQUFDO1FBQ3pDLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFDakIsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUNoQixjQUFTLEdBQUcsRUFBRSxDQUFDO1FBRWQsWUFBTyxHQUFHLElBQUksWUFBWSxFQUFjLENBQUM7UUFFMUMsaUJBQVksR0FBaUU7WUFDcEYsT0FBTyxFQUFFLEVBQUUsT0FBTyxFQUFFLG1EQUFtRCxFQUFFLEtBQUssRUFBRSw4REFBOEQsRUFBRTtZQUNoSixPQUFPLEVBQUUsRUFBRSxPQUFPLEVBQUUsbURBQW1ELEVBQUUsS0FBSyxFQUFFLDhEQUE4RCxFQUFFO1lBQ2hKLFdBQVcsRUFBRSxFQUFFLE9BQU8sRUFBRSwwREFBMEQsRUFBRSxLQUFLLEVBQUUscUVBQXFFLEVBQUU7WUFDbEssT0FBTyxFQUFFLEVBQUUsT0FBTyxFQUFFLDZDQUE2QyxFQUFFLEtBQUssRUFBRSx3Q0FBd0MsRUFBRTtZQUNwSCxNQUFNLEVBQUUsRUFBRSxPQUFPLEVBQUUseURBQXlELEVBQUUsS0FBSyxFQUFFLGdEQUFnRCxF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akIsS0FBSztnQkFFSSxPQUFPO3NCQUFoQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCB0eXBlIFBkbUJ1dHRvblZhcmlhbnQgPVxuICB8ICdkZWZhdWx0J1xuICB8ICdwcmltYXJ5J1xuICB8ICdkZXN0cnVjdGl2ZSdcbiAgfCAnb3V0bGluZSdcbiAgfCAnc3VidGxlJ1xuICB8ICdzZWNvbmRhcnknXG4gIHwgJ2dob3N0J1xuICB8ICdsaW5rJ1xuICB8ICd3aXRoLWljb24nXG4gIHwgJ2ljb24nXG4gIHwgJ2ljb24tY2lyY2xlJ1xuICB8ICdyb3VuZGVkJ1xuICB8ICdsb2FkaW5nJztcbmV4cG9ydCB0eXBlIFBkbUJ1dHRvblN0YXRlID0gJ2RlZmF1bHQnIHwgJ2hvdmVyJztcbmV4cG9ydCB0eXBlIFBkbUJ1dHRvblNpemUgPSAnc21hbGwnIHwgJ2RlZmF1bHQnIHwgJ2xhcmdlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncGRtLWJ1dHRvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9idXR0b24uY29tcG9uZW50Lmh0bWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBQZG1CdXR0b25Db21wb25lbnQge1xuICBASW5wdXQoKSB0eXBlOiAnYnV0dG9uJyB8ICdzdWJtaXQnIHwgJ3Jlc2V0JyA9ICdidXR0b24nO1xuICBASW5wdXQoKSB2YXJpYW50OiBQZG1CdXR0b25WYXJpYW50IHwgc3RyaW5nID0gJ2RlZmF1bHQnO1xuICBASW5wdXQoKSBzdGF0ZTogUGRtQnV0dG9uU3RhdGUgfCBzdHJpbmcgPSAnZGVmYXVsdCc7XG4gIEBJbnB1dCgpIHNpemU6IFBkbUJ1dHRvblNpemUgfCBzdHJpbmcgPSAnZGVmYXVsdCc7XG4gIEBJbnB1dCgpIGRpc2FibGVkID0gZmFsc2U7XG4gIEBJbnB1dCgpIGxvYWRpbmcgPSBmYWxzZTtcbiAgQElucHV0KCkgY2xhc3NOYW1lID0gJyc7XG5cbiAgQE91dHB1dCgpIHByZXNzZWQgPSBuZXcgRXZlbnRFbWl0dGVyPE1vdXNlRXZlbnQ+KCk7XG5cbiAgcmVhZG9ubHkgdG9uZUNsYXNzTWFwOiBSZWNvcmQ8UGRtQnV0dG9uVmFyaWFudCwgeyBkZWZhdWx0OiBzdHJpbmc7IGhvdmVyOiBzdHJpbmcgfT4gPSB7XG4gICAgZGVmYXVsdDogeyBkZWZhdWx0OiAnYm9yZGVyLXByaW1hcnkgYmctcHJpbWFyeSB0ZXh0LXByaW1hcnktZm9yZWdyb3VuZCcsIGhvdmVyOiAnYm9yZGVyLXByaW1hcnkgYmctcHJpbWFyeSB0ZXh0LXByaW1hcnktZm9yZWdyb3VuZCBvcGFjaXR5LTkwJyB9LFxuICAgIHByaW1hcnk6IHsgZGVmYXVsdDogJ2JvcmRlci1wcmltYXJ5IGJnLXByaW1hcnkgdGV4dC1wcmltYXJ5LWZvcmVncm91bmQnLCBob3ZlcjogJ2JvcmRlci1wcmltYXJ5IGJnLXByaW1hcnkgdGV4dC1wcmltYXJ5LWZvcmVncm91bmQgb3BhY2l0eS05MCcgfSxcbiAgICBkZXN0cnVjdGl2ZTogeyBkZWZhdWx0OiAnYm9yZGVyLWJvcmRlciBiZy1kZXN0cnVjdGl2ZSB0ZXh0LWRlc3RydWN0aXZlLWZvcmVncm91bmQnLCBob3ZlcjogJ2JvcmRlci1ib3JkZXIgYmctZGVzdHJ1Y3RpdmUgdGV4dC1kZXN0cnVjdGl2ZS1mb3JlZ3JvdW5kIG9wYWNpdHktOTAnIH0sXG4gICAgb3V0bGluZTogeyBkZWZhdWx0OiAnYm9yZGVyLWJvcmRlciBiZy1iYWNrZ3JvdW5kIHRleHQtZm9yZWdyb3VuZCcsIGhvdmVyOiAnYm9yZGVyLWJvcmRlciBiZy1tdXRlZCB0ZXh0LWZvcmVncm91bmQnIH0sXG4gICAgc3VidGxlOiB7IGRlZmF1bHQ6ICdib3JkZXItc2Vjb25kYXJ5IGJnLXNlY29uZGFyeSB0ZXh0LXNlY29uZGFyeS1mb3JlZ3JvdW5kJywgaG92ZXI6ICdib3JkZXItYWNjZW50IGJnLWFjY2VudCB0ZXh0LWFjY2VudC1mb3JlZ3JvdW5kJyB9LFxuICAgIHNlY29uZGFyeTogeyBkZWZhdWx0OiAnYm9yZGVyLXNlY29uZGFyeSBiZy1zZWNvbmRhcnkgdGV4dC1zZWNvbmRhcnktZm9yZWdyb3VuZCcsIGhvdmVyOiAnYm9yZGVyLWFjY2VudCBiZy1hY2NlbnQgdGV4dC1hY2NlbnQtZm9yZWdyb3VuZCcgfSxcbiAgICBnaG9zdDogeyBkZWZhdWx0OiAnYm9yZGVyLWJvcmRlciBiZy10cmFuc3BhcmVudCB0ZXh0LWZvcmVncm91bmQnLCBob3ZlcjogJ2JvcmRlci1ib3JkZXIgYmctYWNjZW50IHRleHQtYWNjZW50LWZvcmVncm91bmQnIH0sXG4gICAgbGluazogeyBkZWZhdWx0OiAnYm9yZGVyLWJvcmRlciBiZy10cmFuc3BhcmVudCB0ZXh0LXByaW1hcnknLCBob3ZlcjogJ2JvcmRlci1ib3JkZXIgYmctdHJhbnNwYXJlbnQgdGV4dC1wcmltYXJ5IHVuZGVybGluZSB1bmRlcmxpbmUtb2Zmc2V0LTQnIH0sXG4gICAgJ3dpdGgtaWNvbic6IHsgZGVmYXVsdDogJ2JvcmRlci1wcmltYXJ5IGJnLXByaW1hcnkgdGV4dC1wcmltYXJ5LWZvcmVncm91bmQnLCBob3ZlcjogJ2JvcmRlci1wcmltYXJ5IGJnLXByaW1hcnkgdGV4dC1wcmltYXJ5LWZvcmVncm91bmQgb3BhY2l0eS05MCcgfSxcbiAgICBpY29uOiB7IGRlZmF1bHQ6ICdib3JkZXItYm9yZGVyIGJnLWJhY2tncm91bmQgdGV4dC1mb3JlZ3JvdW5kJywgaG92ZXI6ICdib3JkZXItYm9yZGVyIGJnLWFjY2VudCB0ZXh0LWFjY2VudC1mb3JlZ3JvdW5kJyB9LFxuICAgICdpY29uLWNpcmNsZSc6IHsgZGVmYXVsdDogJ2JvcmRlci1ib3JkZXIgYmctYmFja2dyb3VuZCB0ZXh0LWZvcmVncm91bmQnLCBob3ZlcjogJ2JvcmRlci1ib3JkZXIgYmctYWNjZW50IHRleHQtYWNjZW50LWZvcmVncm91bmQnIH0sXG4gICAgcm91bmRlZDogeyBkZWZhdWx0OiAnYm9yZGVyLWJvcmRlciBiZy1iYWNrZ3JvdW5kIHRleHQtZm9yZWdyb3VuZCcsIGhvdmVyOiAnYm9yZGVyLWJvcmRlciBiZy1hY2NlbnQgdGV4dC1hY2NlbnQtZm9yZWdyb3VuZCcgfSxcbiAgICBsb2FkaW5nOiB7IGRlZmF1bHQ6ICdib3JkZXItcHJpbWFyeSBiZy1wcmltYXJ5IHRleHQtcHJpbWFyeS1mb3JlZ3JvdW5kIG9wYWNpdHktNzAnLCBob3ZlcjogJ2JvcmRlci1wcmltYXJ5IGJnLXByaW1hcnkgdGV4dC1wcmltYXJ5LWZvcmVncm91bmQgb3BhY2l0eS03MCcgfVxuICB9O1xuXG4gIGdldCBpc0Rpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmRpc2FibGVkIHx8IHRoaXMubG9hZGluZyB8fCB0aGlzLnZhcmlhbnQgPT09ICdsb2FkaW5nJztcbiAgfVxuXG4gIGdldCByZXNvbHZlZFZhcmlhbnQoKTogUGRtQnV0dG9uVmFyaWFudCB7XG4gICAgcmV0dXJuIHRoaXMuaXNWYWxpZFZhcmlhbnQodGhpcy52YXJpYW50KSA/IHRoaXMudmFyaWFudCA6ICdkZWZhdWx0JztcbiAgfVxuXG4gIGdldCByZXNvbHZlZFN0YXRlKCk6IFBkbUJ1dHRvblN0YXRlIHtcbiAgICByZXR1cm4gdGhpcy5zdGF0ZSA9PT0gJ2hvdmVyJyA/ICdob3ZlcicgOiAnZGVmYXVsdCc7XG4gIH1cblxuICBnZXQgcmVzb2x2ZWRTaXplKCk6IFBkbUJ1dHRvblNpemUge1xuICAgIGlmICh0aGlzLnNpemUgPT09ICdzbWFsbCcgfHwgdGhpcy5zaXplID09PSAnbGFyZ2UnKSB7XG4gICAgICByZXR1cm4gdGhpcy5zaXplO1xuICAgIH1cblxuICAgIHJldHVybiAnZGVmYXVsdCc7XG4gIH1cblxuICBnZXQgc2hvd3NJY29uU2xvdCgpOiBib29sZWFuIHtcbiAgICBjb25zdCB2YXJpYW50ID0gdGhpcy5yZXNvbHZlZFZhcmlhbnQ7XG4gICAgcmV0dXJuIHZhcmlhbnQgPT09ICd3aXRoLWljb24nIHx8IHZhcmlhbnQgPT09ICdpY29uJyB8fCB2YXJpYW50ID09PSAnaWNvbi1jaXJjbGUnIHx8IHZhcmlhbnQgPT09ICdyb3VuZGVkJztcbiAgfVxuXG4gIGdldCByb290Q2xhc3NlcygpOiBzdHJpbmdbXSB7XG4gICAgY29uc3QgY3VycmVudFN0YXRlID0gdGhpcy5yZXNvbHZlZFN0YXRlO1xuICAgIGNvbnN0IHZhcmlhbnQgPSB0aGlzLnJlc29sdmVkVmFyaWFudDtcbiAgICBjb25zdCB0b25lQ2xhc3MgPSB0aGlzLnRvbmVDbGFzc01hcFt2YXJpYW50XVtjdXJyZW50U3RhdGVdO1xuXG4gICAgcmV0dXJuIFtcbiAgICAgICdpbmxpbmUtZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgZ2FwLTIgcm91bmRlZC1tZCBib3JkZXIgdGV4dC1zbSBmb250LW1lZGl1bSByaW5nLW9mZnNldC1iYWNrZ3JvdW5kIHRyYW5zaXRpb24tY29sb3JzIGZvY3VzLXZpc2libGU6b3V0bGluZS1ub25lIGZvY3VzLXZpc2libGU6cmluZy1bM3B4XSBmb2N1cy12aXNpYmxlOnJpbmctcmluZy81MCBmb2N1cy12aXNpYmxlOnJpbmctb2Zmc2V0LTIgZGlzYWJsZWQ6cG9pbnRlci1ldmVudHMtbm9uZSBkaXNhYmxlZDpvcGFjaXR5LTUwIGJnLWNsaXAtcGFkZGluZycsXG4gICAgICB2YXJpYW50ID09PSAnbGluaycgPyAncHgtNCBweS0yIGgtOScgOiAnJyxcbiAgICAgIHZhcmlhbnQgPT09ICdpY29uJyA/ICdoLTkgdy05IHAtMCcgOiAnJyxcbiAgICAgIHZhcmlhbnQgPT09ICdpY29uLWNpcmNsZScgPyAnaC0xMCB3LTEwIHJvdW5kZWQtZnVsbCBwLTAnIDogJycsXG4gICAgICB2YXJpYW50ID09PSAncm91bmRlZCcgPyAnaC05IHctOSByb3VuZGVkLWZ1bGwgcC0wJyA6ICcnLFxuICAgICAgdmFyaWFudCAhPT0gJ2ljb24nICYmIHZhcmlhbnQgIT09ICdpY29uLWNpcmNsZScgJiYgdmFyaWFudCAhPT0gJ3JvdW5kZWQnXG4gICAgICAgID8gdGhpcy5yZXNvbHZlZFNpemUgPT09ICdzbWFsbCdcbiAgICAgICAgICA/ICdoLTggcHgtMyB0ZXh0LXhzJ1xuICAgICAgICAgIDogdGhpcy5yZXNvbHZlZFNpemUgPT09ICdsYXJnZSdcbiAgICAgICAgICAgID8gJ2gtMTAgcHgtOCdcbiAgICAgICAgICAgIDogJ2gtOSBweC00J1xuICAgICAgICA6ICcnLFxuICAgICAgdmFyaWFudCA9PT0gJ2xpbmsnICYmIGN1cnJlbnRTdGF0ZSA9PT0gJ2hvdmVyJyA/ICd1bmRlcmxpbmUgdW5kZXJsaW5lLW9mZnNldC00JyA6ICcnLFxuICAgICAgdG9uZUNsYXNzLFxuICAgICAgdGhpcy5jbGFzc05hbWVcbiAgICBdO1xuICB9XG5cbiAgb25DbGljayhldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5pc0Rpc2FibGVkKSB7XG4gICAgICB0aGlzLnByZXNzZWQuZW1pdChldmVudCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBpc1ZhbGlkVmFyaWFudCh2YWx1ZTogdW5rbm93bik6IHZhbHVlIGlzIFBkbUJ1dHRvblZhcmlhbnQge1xuICAgIHJldHVybiAoXG4gICAgICB2YWx1ZSA9PT0gJ2RlZmF1bHQnIHx8XG4gICAgICB2YWx1ZSA9PT0gJ3ByaW1hcnknIHx8XG4gICAgICB2YWx1ZSA9PT0gJ2Rlc3RydWN0aXZlJyB8fFxuICAgICAgdmFsdWUgPT09ICdvdXRsaW5lJyB8fFxuICAgICAgdmFsdWUgPT09ICdzdWJ0bGUnIHx8XG4gICAgICB2YWx1ZSA9PT0gJ3NlY29uZGFyeScgfHxcbiAgICAgIHZhbHVlID09PSAnZ2hvc3QnIHx8XG4gICAgICB2YWx1ZSA9PT0gJ2xpbmsnIHx8XG4gICAgICB2YWx1ZSA9PT0gJ3dpdGgtaWNvbicgfHxcbiAgICAgIHZhbHVlID09PSAnaWNvbicgfHxcbiAgICAgIHZhbHVlID09PSAnaWNvbi1jaXJjbGUnIHx8XG4gICAgICB2YWx1ZSA9PT0gJ3JvdW5kZWQnIHx8XG4gICAgICB2YWx1ZSA9PT0gJ2xvYWRpbmcnXG4gICAgKTtcbiAgfVxufVxuIiwiPGJ1dHRvblxuICBbdHlwZV09XCJ0eXBlXCJcbiAgW2Rpc2FibGVkXT1cImlzRGlzYWJsZWRcIlxuICBbYXR0ci5hcmlhLWJ1c3ldPVwibG9hZGluZ1wiXG4gIFtuZ0NsYXNzXT1cInJvb3RDbGFzc2VzXCJcbiAgKGNsaWNrKT1cIm9uQ2xpY2soJGV2ZW50KVwiXG4+XG4gIDxzcGFuXG4gICAgKm5nSWY9XCJsb2FkaW5nXCJcbiAgICBjbGFzcz1cImlubGluZS1ibG9jayBoLTQgdy00IGFuaW1hdGUtc3BpbiByb3VuZGVkLWZ1bGwgYm9yZGVyLTIgYm9yZGVyLWN1cnJlbnQgYm9yZGVyLXItdHJhbnNwYXJlbnRcIlxuICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gID48L3NwYW4+XG4gIDxuZy1jb250ZW50IHNlbGVjdD1cIltwZG1CdXR0b25JY29uXVwiICpuZ0lmPVwic2hvd3NJY29uU2xvdFwiPjwvbmctY29udGVudD5cbiAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuPC9idXR0b24+XG4iXX0=
@@ -1,8 +1,12 @@
1
1
  import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
2
+ import { icons } from 'lucide';
2
3
  import * as i0 from "@angular/core";
3
- import * as i1 from "@angular/common";
4
+ import * as i1 from "@angular/platform-browser";
5
+ import * as i2 from "@angular/common";
6
+ const FALLBACK_NODE = [['circle', { cx: '12', cy: '12', r: '9' }]];
4
7
  export class PdmIconComponent {
5
- constructor() {
8
+ constructor(sanitizer) {
9
+ this.sanitizer = sanitizer;
6
10
  this.name = 'check';
7
11
  this.library = 'lucide';
8
12
  this.assetUrl = null;
@@ -11,34 +15,39 @@ export class PdmIconComponent {
11
15
  this.className = '';
12
16
  this.ariaLabel = null;
13
17
  this.decorative = false;
18
+ this.lucideIndex = this.buildLucideIndex();
14
19
  this.aliasMapByLibrary = {
15
- lucide: {},
20
+ lucide: {
21
+ 'check-circle': 'circle-check',
22
+ 'alert-circle': 'circle-alert',
23
+ info: 'circle-info',
24
+ 'sort-asc': 'arrow-up-a-z',
25
+ 'sort-desc': 'arrow-down-z-a'
26
+ },
16
27
  tabler: {
17
- 'alert-triangle': 'alert-circle',
18
- 'chevron-down': 'chevron-down',
19
- 'chevron-right': 'chevron-right',
20
- 'user-circle': 'user',
21
- 'settings-2': 'settings',
28
+ 'alert-triangle': 'triangle-alert',
29
+ 'user-circle': 'circle-user',
30
+ 'settings-2': 'settings-2',
22
31
  'external-link': 'external-link'
23
32
  },
24
33
  hugeicons: {
25
- 'alert-02': 'alert-circle',
26
- 'user-circle': 'user',
34
+ 'alert-02': 'circle-alert',
35
+ 'user-circle': 'circle-user',
27
36
  'search-01': 'search',
28
37
  'settings-01': 'settings',
29
38
  'arrow-right-01': 'chevron-right',
30
39
  'arrow-down-01': 'chevron-down'
31
40
  },
32
41
  phosphor: {
33
- 'warning-circle': 'alert-circle',
42
+ 'warning-circle': 'circle-alert',
34
43
  'caret-down': 'chevron-down',
35
44
  'caret-right': 'chevron-right',
36
- 'user-circle': 'user',
45
+ 'user-circle': 'circle-user',
37
46
  gear: 'settings',
38
47
  'arrow-square-out': 'external-link'
39
48
  },
40
49
  remix: {
41
- 'alert-line': 'alert-circle',
50
+ 'alert-line': 'circle-alert',
42
51
  'arrow-right-line': 'chevron-right',
43
52
  'arrow-down-s-line': 'chevron-down',
44
53
  'external-link-line': 'external-link',
@@ -48,8 +57,9 @@ export class PdmIconComponent {
48
57
  };
49
58
  }
50
59
  get resolvedStrokeWidth() {
51
- if (this.strokeWidth) {
52
- return this.strokeWidth;
60
+ const value = Number(this.strokeWidth);
61
+ if (Number.isFinite(value) && value > 0) {
62
+ return value;
53
63
  }
54
64
  if (this.library === 'phosphor') {
55
65
  return 1.6;
@@ -59,6 +69,10 @@ export class PdmIconComponent {
59
69
  }
60
70
  return 1.5;
61
71
  }
72
+ get resolvedSize() {
73
+ const value = Number(this.size);
74
+ return Number.isFinite(value) && value > 0 ? value : 16;
75
+ }
62
76
  get iconKey() {
63
77
  const raw = `${this.name || ''}`.trim();
64
78
  if (!raw) {
@@ -68,13 +82,49 @@ export class PdmIconComponent {
68
82
  const aliases = this.aliasMapByLibrary[this.library] ?? {};
69
83
  return aliases[trimmed] ?? trimmed;
70
84
  }
85
+ get svgMarkup() {
86
+ const node = this.resolveIconNode(this.iconKey) ?? FALLBACK_NODE;
87
+ const strokeWidth = this.escapeAttr(this.resolvedStrokeWidth);
88
+ const size = this.escapeAttr(this.resolvedSize);
89
+ const body = node
90
+ .map(([tag, attrs]) => {
91
+ const serializedAttrs = Object.entries(attrs)
92
+ .map(([key, value]) => `${key}="${this.escapeAttr(value)}"`)
93
+ .join(' ');
94
+ return serializedAttrs ? `<${tag} ${serializedAttrs}></${tag}>` : `<${tag}></${tag}>`;
95
+ })
96
+ .join('');
97
+ const svg = `<svg xmlns="http://www.w3.org/2000/svg" width="${size}" height="${size}" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="${strokeWidth}" stroke-linecap="round" stroke-linejoin="round">${body}</svg>`;
98
+ return this.sanitizer.bypassSecurityTrustHtml(svg);
99
+ }
100
+ resolveIconNode(iconName) {
101
+ const normalized = this.normalizeIconName(iconName);
102
+ return this.lucideIndex.get(normalized) ?? null;
103
+ }
104
+ normalizeIconName(name) {
105
+ return `${name || ''}`.toLowerCase().replace(/[^a-z0-9]/g, '');
106
+ }
107
+ buildLucideIndex() {
108
+ const map = new Map();
109
+ Object.entries(icons).forEach(([iconName, iconNode]) => {
110
+ map.set(this.normalizeIconName(iconName), iconNode);
111
+ });
112
+ return map;
113
+ }
114
+ escapeAttr(value) {
115
+ return `${value ?? ''}`
116
+ .replace(/&/g, '&amp;')
117
+ .replace(/"/g, '&quot;')
118
+ .replace(/</g, '&lt;')
119
+ .replace(/>/g, '&gt;');
120
+ }
71
121
  }
72
- PdmIconComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
73
- PdmIconComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmIconComponent, selector: "pdm-icon", inputs: { name: "name", library: "library", assetUrl: "assetUrl", size: "size", strokeWidth: "strokeWidth", className: "className", ariaLabel: "ariaLabel", decorative: "decorative" }, ngImport: i0, template: "<ng-container *ngIf=\"assetUrl; else inlineIcon\">\n <img\n [src]=\"assetUrl\"\n [style.width.px]=\"size\"\n [style.height.px]=\"size\"\n [ngClass]=\"className\"\n [attr.role]=\"decorative ? null : 'img'\"\n [attr.aria-hidden]=\"decorative ? 'true' : null\"\n [attr.aria-label]=\"!decorative ? ariaLabel || name : null\"\n alt=\"\"\n />\n</ng-container>\n\n<ng-template #inlineIcon>\n <svg\n [attr.width]=\"size\"\n [attr.height]=\"size\"\n [ngClass]=\"className\"\n [attr.role]=\"decorative ? null : 'img'\"\n [attr.aria-hidden]=\"decorative ? 'true' : null\"\n [attr.aria-label]=\"!decorative ? ariaLabel || name : null\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <ng-container [ngSwitch]=\"iconKey\">\n <g *ngSwitchCase=\"'command'\">\n <path d=\"M9 9V15\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <path d=\"M15 9V15\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <path d=\"M9 9H15\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <path d=\"M9 15H15\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <path d=\"M9 9H7.5C6.12 9 5 7.88 5 6.5C5 5.12 6.12 4 7.5 4C8.88 4 10 5.12 10 6.5V8\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <path d=\"M15 9H16.5C17.88 9 19 7.88 19 6.5C19 5.12 17.88 4 16.5 4C15.12 4 14 5.12 14 6.5V8\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <path d=\"M9 15H7.5C6.12 15 5 16.12 5 17.5C5 18.88 6.12 20 7.5 20C8.88 20 10 18.88 10 17.5V16\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <path d=\"M15 15H16.5C17.88 15 19 16.12 19 17.5C19 18.88 17.88 20 16.5 20C15.12 20 14 18.88 14 17.5V16\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'check'\">\n <path d=\"M5 12.5L9.2 16.7L19 7\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'check-circle'\">\n <circle cx=\"12\" cy=\"12\" r=\"9\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\"></circle>\n <path d=\"M8.5 12.2L11 14.7L15.8 9.9\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'circle'\">\n <circle cx=\"12\" cy=\"12\" r=\"9\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\"></circle>\n </g>\n\n <g *ngSwitchCase=\"'dot'\">\n <circle cx=\"12\" cy=\"12\" r=\"2.5\" fill=\"currentColor\"></circle>\n </g>\n\n <g *ngSwitchCase=\"'x'\">\n <path d=\"M6 6L18 18M18 6L6 18\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'alert-circle'\">\n <circle cx=\"12\" cy=\"12\" r=\"9\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\"></circle>\n <path d=\"M12 8V12\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <circle cx=\"12\" cy=\"16\" r=\"1\" fill=\"currentColor\"></circle>\n </g>\n\n <g *ngSwitchCase=\"'info'\">\n <circle cx=\"12\" cy=\"12\" r=\"9\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\"></circle>\n <path d=\"M12 11V16\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <circle cx=\"12\" cy=\"8\" r=\"1\" fill=\"currentColor\"></circle>\n </g>\n\n <g *ngSwitchCase=\"'loader-2'\">\n <path d=\"M12 3A9 9 0 1 0 21 12\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'menu'\">\n <path d=\"M4 7H20M4 12H20M4 17H20\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'search'\">\n <circle cx=\"11\" cy=\"11\" r=\"7\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\"></circle>\n <path d=\"M20 20L16.6 16.6\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'calendar'\">\n <path d=\"M8 3V6M16 3V6M4 10H20\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <rect x=\"4\" y=\"6\" width=\"16\" height=\"14\" rx=\"2\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\"></rect>\n </g>\n\n <g *ngSwitchCase=\"'panel-left'\">\n <rect x=\"3\" y=\"4\" width=\"18\" height=\"16\" rx=\"2\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\"></rect>\n <path d=\"M9 4V20\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\"></path>\n </g>\n\n <g *ngSwitchCase=\"'monitor'\">\n <rect x=\"3\" y=\"4\" width=\"18\" height=\"13\" rx=\"2\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\"></rect>\n <path d=\"M8 20H16\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <path d=\"M12 17V20\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'laptop'\">\n <rect x=\"5\" y=\"5\" width=\"14\" height=\"10\" rx=\"1.5\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\"></rect>\n <path d=\"M3 18H21\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'sun'\">\n <circle cx=\"12\" cy=\"12\" r=\"4\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\"></circle>\n <path d=\"M12 2V4M12 20V22M4 12H2M22 12H20M19.07 4.93L17.66 6.34M6.34 17.66L4.93 19.07M19.07 19.07L17.66 17.66M6.34 6.34L4.93 4.93\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'moon'\">\n <path d=\"M20 14.5C19.1 17.9 16 20.5 12.3 20.5C7.9 20.5 4.3 16.9 4.3 12.5C4.3 8.8 6.8 5.8 10.2 4.8C9.6 5.8 9.3 7 9.3 8.2C9.3 11.8 12.2 14.7 15.8 14.7C17 14.7 18.1 14.4 19.1 13.8C19.4 13.6 20.1 14 20 14.5Z\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'chevron-down'\">\n <path d=\"M7 10L12 15L17 10\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'chevron-up'\">\n <path d=\"M17 14L12 9L7 14\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'chevron-left'\">\n <path d=\"M15 18L9 12L15 6\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'chevron-right'\">\n <path d=\"M9 18L15 12L9 6\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'chevrons-left'\">\n <path d=\"M14 18L8 12L14 6\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n <path d=\"M20 18L14 12L20 6\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'chevrons-right'\">\n <path d=\"M10 18L16 12L10 6\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n <path d=\"M4 18L10 12L4 6\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'chevrons-up-down'\">\n <path d=\"M7 15L12 20L17 15\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n <path d=\"M17 9L12 4L7 9\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'arrow-up-down'\">\n <path d=\"M12 4V20\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <path d=\"M8 8L12 4L16 8\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n <path d=\"M8 16L12 20L16 16\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'ellipsis'\">\n <circle cx=\"6\" cy=\"12\" r=\"1.5\" fill=\"currentColor\"></circle>\n <circle cx=\"12\" cy=\"12\" r=\"1.5\" fill=\"currentColor\"></circle>\n <circle cx=\"18\" cy=\"12\" r=\"1.5\" fill=\"currentColor\"></circle>\n </g>\n\n <g *ngSwitchCase=\"'filter'\">\n <path d=\"M4 6H20\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <path d=\"M7 12H17\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <path d=\"M10 18H14\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'sort-asc'\">\n <path d=\"M7 18V6\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <path d=\"M4 9L7 6L10 9\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n <path d=\"M14 8H20M14 12H18M14 16H16\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'sort-desc'\">\n <path d=\"M7 6V18\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <path d=\"M4 15L7 18L10 15\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n <path d=\"M14 8H16M14 12H18M14 16H20\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'plus'\">\n <path d=\"M12 5V19M5 12H19\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'minus'\">\n <path d=\"M5 12H19\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'copy'\">\n <rect x=\"9\" y=\"9\" width=\"11\" height=\"11\" rx=\"2\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\"></rect>\n <rect x=\"4\" y=\"4\" width=\"11\" height=\"11\" rx=\"2\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\"></rect>\n </g>\n\n <g *ngSwitchCase=\"'pencil'\">\n <path d=\"M12 20H21\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <path d=\"M16.5 4.5C17.1 3.9 18 3.9 18.6 4.5L19.5 5.4C20.1 6 20.1 6.9 19.5 7.5L9 18L4 19L5 14L16.5 4.5Z\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linejoin=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'trash-2'\">\n <path d=\"M4 7H20\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <path d=\"M9 7V5C9 4.4 9.4 4 10 4H14C14.6 4 15 4.4 15 5V7\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <path d=\"M7 7L8 19C8 19.6 8.4 20 9 20H15C15.6 20 16 19.6 16 19L17 7\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n <path d=\"M10 11V17M14 11V17\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'download'\">\n <path d=\"M12 4V14\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <path d=\"M8 10L12 14L16 10\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n <path d=\"M5 19H19\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'upload'\">\n <path d=\"M12 20V10\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <path d=\"M8 14L12 10L16 14\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n <path d=\"M5 5H19\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'home'\">\n <path d=\"M4 10.5L12 4L20 10.5\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n <path d=\"M6 9.5V20H18V9.5\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'mail'\">\n <rect x=\"3\" y=\"5\" width=\"18\" height=\"14\" rx=\"2\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\"></rect>\n <path d=\"M4 7L12 13L20 7\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'phone'\">\n <path d=\"M8.8 4.6C9.2 3.8 10.2 3.5 11 4L13.3 5.2C14.1 5.6 14.4 6.6 14 7.4L13 9.2C12.8 9.6 12.9 10.1 13.2 10.4L14.9 12.1C15.2 12.4 15.7 12.5 16.1 12.3L17.9 11.3C18.7 10.9 19.7 11.2 20.1 12L21.3 14.3C21.8 15.1 21.5 16.1 20.7 16.5L18.8 17.5C16.9 18.5 14.5 18.1 12.9 16.5L7.5 11.1C5.9 9.5 5.5 7.1 6.5 5.2L8.8 4.6Z\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linejoin=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'log-in'\">\n <path d=\"M15 3H18C19.1 3 20 3.9 20 5V19C20 20.1 19.1 21 18 21H15\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <path d=\"M10 17L14 13L10 9\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n <path d=\"M14 13H4\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'log-out'\">\n <path d=\"M9 3H6C4.9 3 4 3.9 4 5V19C4 20.1 4.9 21 6 21H9\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <path d=\"M14 17L10 13L14 9\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n <path d=\"M10 13H20\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'user'\">\n <circle cx=\"12\" cy=\"8\" r=\"3\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\"></circle>\n <path d=\"M6 19C6.8 16.7 8.9 15.5 12 15.5C15.1 15.5 17.2 16.7 18 19\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'settings'\">\n <circle cx=\"12\" cy=\"12\" r=\"3\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\"></circle>\n <path d=\"M19 12A7 7 0 1 0 12 19\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'credit-card'\">\n <rect x=\"3\" y=\"6\" width=\"18\" height=\"12\" rx=\"2\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\"></rect>\n <path d=\"M3 10H21\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\"></path>\n </g>\n\n <g *ngSwitchCase=\"'smile'\">\n <circle cx=\"12\" cy=\"12\" r=\"9\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\"></circle>\n <path d=\"M9 15C9.7 16 10.7 16.5 12 16.5C13.3 16.5 14.3 16 15 15\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <circle cx=\"9\" cy=\"10\" r=\"1\" fill=\"currentColor\"></circle>\n <circle cx=\"15\" cy=\"10\" r=\"1\" fill=\"currentColor\"></circle>\n </g>\n\n <g *ngSwitchCase=\"'calculator'\">\n <rect x=\"6\" y=\"3\" width=\"12\" height=\"18\" rx=\"2\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\"></rect>\n <path d=\"M9 7H15\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <path d=\"M9 12H10M14 12H15M9 16H10M14 16H15\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'external-link'\">\n <path d=\"M14 5H19V10\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n <path d=\"M10 14L19 5\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <path d=\"M19 14V19H5V5H10\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'folder'\">\n <path d=\"M3 7C3 5.9 3.9 5 5 5H9L11 7H19C20.1 7 21 7.9 21 9V17C21 18.1 20.1 19 19 19H5C3.9 19 3 18.1 3 17V7Z\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linejoin=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'arrow-up-right'\">\n <path d=\"M7 17L17 7\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <path d=\"M9 7H17V15\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </g>\n\n <g *ngSwitchDefault>\n <circle cx=\"12\" cy=\"12\" r=\"9\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\"></circle>\n </g>\n </ng-container>\n </svg>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { 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]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
122
+ PdmIconComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmIconComponent, deps: [{ token: i1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component });
123
+ PdmIconComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmIconComponent, selector: "pdm-icon", inputs: { name: "name", library: "library", assetUrl: "assetUrl", size: "size", strokeWidth: "strokeWidth", className: "className", ariaLabel: "ariaLabel", decorative: "decorative" }, ngImport: i0, template: "<ng-container *ngIf=\"assetUrl; else inlineIcon\">\n <img\n [src]=\"assetUrl\"\n [style.width.px]=\"resolvedSize\"\n [style.height.px]=\"resolvedSize\"\n [ngClass]=\"className\"\n [attr.role]=\"decorative ? null : 'img'\"\n [attr.aria-hidden]=\"decorative ? 'true' : null\"\n [attr.aria-label]=\"!decorative ? ariaLabel || name : null\"\n alt=\"\"\n />\n</ng-container>\n\n<ng-template #inlineIcon>\n <span\n [ngClass]=\"className\"\n [style.display]=\"'inline-flex'\"\n [style.align-items]=\"'center'\"\n [style.justify-content]=\"'center'\"\n [style.line-height]=\"0\"\n [style.width.px]=\"resolvedSize\"\n [style.height.px]=\"resolvedSize\"\n [attr.role]=\"decorative ? null : 'img'\"\n [attr.aria-hidden]=\"decorative ? 'true' : null\"\n [attr.aria-label]=\"!decorative ? ariaLabel || name : null\"\n [innerHTML]=\"svgMarkup\"\n ></span>\n</ng-template>\n", styles: [":host{display:inline-flex;align-items:center;justify-content:center;line-height:0;flex-shrink:0}:host svg{display:block}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
74
124
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmIconComponent, decorators: [{
75
125
  type: Component,
76
- args: [{ selector: 'pdm-icon', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngIf=\"assetUrl; else inlineIcon\">\n <img\n [src]=\"assetUrl\"\n [style.width.px]=\"size\"\n [style.height.px]=\"size\"\n [ngClass]=\"className\"\n [attr.role]=\"decorative ? null : 'img'\"\n [attr.aria-hidden]=\"decorative ? 'true' : null\"\n [attr.aria-label]=\"!decorative ? ariaLabel || name : null\"\n alt=\"\"\n />\n</ng-container>\n\n<ng-template #inlineIcon>\n <svg\n [attr.width]=\"size\"\n [attr.height]=\"size\"\n [ngClass]=\"className\"\n [attr.role]=\"decorative ? null : 'img'\"\n [attr.aria-hidden]=\"decorative ? 'true' : null\"\n [attr.aria-label]=\"!decorative ? ariaLabel || name : null\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <ng-container [ngSwitch]=\"iconKey\">\n <g *ngSwitchCase=\"'command'\">\n <path d=\"M9 9V15\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <path d=\"M15 9V15\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <path d=\"M9 9H15\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <path d=\"M9 15H15\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <path d=\"M9 9H7.5C6.12 9 5 7.88 5 6.5C5 5.12 6.12 4 7.5 4C8.88 4 10 5.12 10 6.5V8\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <path d=\"M15 9H16.5C17.88 9 19 7.88 19 6.5C19 5.12 17.88 4 16.5 4C15.12 4 14 5.12 14 6.5V8\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <path d=\"M9 15H7.5C6.12 15 5 16.12 5 17.5C5 18.88 6.12 20 7.5 20C8.88 20 10 18.88 10 17.5V16\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <path d=\"M15 15H16.5C17.88 15 19 16.12 19 17.5C19 18.88 17.88 20 16.5 20C15.12 20 14 18.88 14 17.5V16\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'check'\">\n <path d=\"M5 12.5L9.2 16.7L19 7\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'check-circle'\">\n <circle cx=\"12\" cy=\"12\" r=\"9\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\"></circle>\n <path d=\"M8.5 12.2L11 14.7L15.8 9.9\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'circle'\">\n <circle cx=\"12\" cy=\"12\" r=\"9\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\"></circle>\n </g>\n\n <g *ngSwitchCase=\"'dot'\">\n <circle cx=\"12\" cy=\"12\" r=\"2.5\" fill=\"currentColor\"></circle>\n </g>\n\n <g *ngSwitchCase=\"'x'\">\n <path d=\"M6 6L18 18M18 6L6 18\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'alert-circle'\">\n <circle cx=\"12\" cy=\"12\" r=\"9\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\"></circle>\n <path d=\"M12 8V12\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <circle cx=\"12\" cy=\"16\" r=\"1\" fill=\"currentColor\"></circle>\n </g>\n\n <g *ngSwitchCase=\"'info'\">\n <circle cx=\"12\" cy=\"12\" r=\"9\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\"></circle>\n <path d=\"M12 11V16\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <circle cx=\"12\" cy=\"8\" r=\"1\" fill=\"currentColor\"></circle>\n </g>\n\n <g *ngSwitchCase=\"'loader-2'\">\n <path d=\"M12 3A9 9 0 1 0 21 12\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'menu'\">\n <path d=\"M4 7H20M4 12H20M4 17H20\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'search'\">\n <circle cx=\"11\" cy=\"11\" r=\"7\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\"></circle>\n <path d=\"M20 20L16.6 16.6\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'calendar'\">\n <path d=\"M8 3V6M16 3V6M4 10H20\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <rect x=\"4\" y=\"6\" width=\"16\" height=\"14\" rx=\"2\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\"></rect>\n </g>\n\n <g *ngSwitchCase=\"'panel-left'\">\n <rect x=\"3\" y=\"4\" width=\"18\" height=\"16\" rx=\"2\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\"></rect>\n <path d=\"M9 4V20\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\"></path>\n </g>\n\n <g *ngSwitchCase=\"'monitor'\">\n <rect x=\"3\" y=\"4\" width=\"18\" height=\"13\" rx=\"2\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\"></rect>\n <path d=\"M8 20H16\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <path d=\"M12 17V20\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'laptop'\">\n <rect x=\"5\" y=\"5\" width=\"14\" height=\"10\" rx=\"1.5\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\"></rect>\n <path d=\"M3 18H21\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'sun'\">\n <circle cx=\"12\" cy=\"12\" r=\"4\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\"></circle>\n <path d=\"M12 2V4M12 20V22M4 12H2M22 12H20M19.07 4.93L17.66 6.34M6.34 17.66L4.93 19.07M19.07 19.07L17.66 17.66M6.34 6.34L4.93 4.93\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'moon'\">\n <path d=\"M20 14.5C19.1 17.9 16 20.5 12.3 20.5C7.9 20.5 4.3 16.9 4.3 12.5C4.3 8.8 6.8 5.8 10.2 4.8C9.6 5.8 9.3 7 9.3 8.2C9.3 11.8 12.2 14.7 15.8 14.7C17 14.7 18.1 14.4 19.1 13.8C19.4 13.6 20.1 14 20 14.5Z\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'chevron-down'\">\n <path d=\"M7 10L12 15L17 10\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'chevron-up'\">\n <path d=\"M17 14L12 9L7 14\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'chevron-left'\">\n <path d=\"M15 18L9 12L15 6\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'chevron-right'\">\n <path d=\"M9 18L15 12L9 6\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'chevrons-left'\">\n <path d=\"M14 18L8 12L14 6\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n <path d=\"M20 18L14 12L20 6\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'chevrons-right'\">\n <path d=\"M10 18L16 12L10 6\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n <path d=\"M4 18L10 12L4 6\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'chevrons-up-down'\">\n <path d=\"M7 15L12 20L17 15\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n <path d=\"M17 9L12 4L7 9\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'arrow-up-down'\">\n <path d=\"M12 4V20\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <path d=\"M8 8L12 4L16 8\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n <path d=\"M8 16L12 20L16 16\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'ellipsis'\">\n <circle cx=\"6\" cy=\"12\" r=\"1.5\" fill=\"currentColor\"></circle>\n <circle cx=\"12\" cy=\"12\" r=\"1.5\" fill=\"currentColor\"></circle>\n <circle cx=\"18\" cy=\"12\" r=\"1.5\" fill=\"currentColor\"></circle>\n </g>\n\n <g *ngSwitchCase=\"'filter'\">\n <path d=\"M4 6H20\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <path d=\"M7 12H17\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <path d=\"M10 18H14\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'sort-asc'\">\n <path d=\"M7 18V6\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <path d=\"M4 9L7 6L10 9\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n <path d=\"M14 8H20M14 12H18M14 16H16\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'sort-desc'\">\n <path d=\"M7 6V18\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <path d=\"M4 15L7 18L10 15\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n <path d=\"M14 8H16M14 12H18M14 16H20\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'plus'\">\n <path d=\"M12 5V19M5 12H19\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'minus'\">\n <path d=\"M5 12H19\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'copy'\">\n <rect x=\"9\" y=\"9\" width=\"11\" height=\"11\" rx=\"2\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\"></rect>\n <rect x=\"4\" y=\"4\" width=\"11\" height=\"11\" rx=\"2\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\"></rect>\n </g>\n\n <g *ngSwitchCase=\"'pencil'\">\n <path d=\"M12 20H21\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <path d=\"M16.5 4.5C17.1 3.9 18 3.9 18.6 4.5L19.5 5.4C20.1 6 20.1 6.9 19.5 7.5L9 18L4 19L5 14L16.5 4.5Z\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linejoin=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'trash-2'\">\n <path d=\"M4 7H20\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <path d=\"M9 7V5C9 4.4 9.4 4 10 4H14C14.6 4 15 4.4 15 5V7\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <path d=\"M7 7L8 19C8 19.6 8.4 20 9 20H15C15.6 20 16 19.6 16 19L17 7\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n <path d=\"M10 11V17M14 11V17\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'download'\">\n <path d=\"M12 4V14\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <path d=\"M8 10L12 14L16 10\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n <path d=\"M5 19H19\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'upload'\">\n <path d=\"M12 20V10\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <path d=\"M8 14L12 10L16 14\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n <path d=\"M5 5H19\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'home'\">\n <path d=\"M4 10.5L12 4L20 10.5\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n <path d=\"M6 9.5V20H18V9.5\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'mail'\">\n <rect x=\"3\" y=\"5\" width=\"18\" height=\"14\" rx=\"2\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\"></rect>\n <path d=\"M4 7L12 13L20 7\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'phone'\">\n <path d=\"M8.8 4.6C9.2 3.8 10.2 3.5 11 4L13.3 5.2C14.1 5.6 14.4 6.6 14 7.4L13 9.2C12.8 9.6 12.9 10.1 13.2 10.4L14.9 12.1C15.2 12.4 15.7 12.5 16.1 12.3L17.9 11.3C18.7 10.9 19.7 11.2 20.1 12L21.3 14.3C21.8 15.1 21.5 16.1 20.7 16.5L18.8 17.5C16.9 18.5 14.5 18.1 12.9 16.5L7.5 11.1C5.9 9.5 5.5 7.1 6.5 5.2L8.8 4.6Z\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linejoin=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'log-in'\">\n <path d=\"M15 3H18C19.1 3 20 3.9 20 5V19C20 20.1 19.1 21 18 21H15\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <path d=\"M10 17L14 13L10 9\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n <path d=\"M14 13H4\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'log-out'\">\n <path d=\"M9 3H6C4.9 3 4 3.9 4 5V19C4 20.1 4.9 21 6 21H9\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <path d=\"M14 17L10 13L14 9\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n <path d=\"M10 13H20\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'user'\">\n <circle cx=\"12\" cy=\"8\" r=\"3\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\"></circle>\n <path d=\"M6 19C6.8 16.7 8.9 15.5 12 15.5C15.1 15.5 17.2 16.7 18 19\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'settings'\">\n <circle cx=\"12\" cy=\"12\" r=\"3\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\"></circle>\n <path d=\"M19 12A7 7 0 1 0 12 19\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'credit-card'\">\n <rect x=\"3\" y=\"6\" width=\"18\" height=\"12\" rx=\"2\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\"></rect>\n <path d=\"M3 10H21\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\"></path>\n </g>\n\n <g *ngSwitchCase=\"'smile'\">\n <circle cx=\"12\" cy=\"12\" r=\"9\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\"></circle>\n <path d=\"M9 15C9.7 16 10.7 16.5 12 16.5C13.3 16.5 14.3 16 15 15\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <circle cx=\"9\" cy=\"10\" r=\"1\" fill=\"currentColor\"></circle>\n <circle cx=\"15\" cy=\"10\" r=\"1\" fill=\"currentColor\"></circle>\n </g>\n\n <g *ngSwitchCase=\"'calculator'\">\n <rect x=\"6\" y=\"3\" width=\"12\" height=\"18\" rx=\"2\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\"></rect>\n <path d=\"M9 7H15\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <path d=\"M9 12H10M14 12H15M9 16H10M14 16H15\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'external-link'\">\n <path d=\"M14 5H19V10\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n <path d=\"M10 14L19 5\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <path d=\"M19 14V19H5V5H10\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'folder'\">\n <path d=\"M3 7C3 5.9 3.9 5 5 5H9L11 7H19C20.1 7 21 7.9 21 9V17C21 18.1 20.1 19 19 19H5C3.9 19 3 18.1 3 17V7Z\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linejoin=\"round\"></path>\n </g>\n\n <g *ngSwitchCase=\"'arrow-up-right'\">\n <path d=\"M7 17L17 7\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\"></path>\n <path d=\"M9 7H17V15\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </g>\n\n <g *ngSwitchDefault>\n <circle cx=\"12\" cy=\"12\" r=\"9\" stroke=\"currentColor\" [attr.stroke-width]=\"resolvedStrokeWidth\"></circle>\n </g>\n </ng-container>\n </svg>\n</ng-template>\n" }]
77
- }], propDecorators: { name: [{
126
+ args: [{ selector: 'pdm-icon', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngIf=\"assetUrl; else inlineIcon\">\n <img\n [src]=\"assetUrl\"\n [style.width.px]=\"resolvedSize\"\n [style.height.px]=\"resolvedSize\"\n [ngClass]=\"className\"\n [attr.role]=\"decorative ? null : 'img'\"\n [attr.aria-hidden]=\"decorative ? 'true' : null\"\n [attr.aria-label]=\"!decorative ? ariaLabel || name : null\"\n alt=\"\"\n />\n</ng-container>\n\n<ng-template #inlineIcon>\n <span\n [ngClass]=\"className\"\n [style.display]=\"'inline-flex'\"\n [style.align-items]=\"'center'\"\n [style.justify-content]=\"'center'\"\n [style.line-height]=\"0\"\n [style.width.px]=\"resolvedSize\"\n [style.height.px]=\"resolvedSize\"\n [attr.role]=\"decorative ? null : 'img'\"\n [attr.aria-hidden]=\"decorative ? 'true' : null\"\n [attr.aria-label]=\"!decorative ? ariaLabel || name : null\"\n [innerHTML]=\"svgMarkup\"\n ></span>\n</ng-template>\n", styles: [":host{display:inline-flex;align-items:center;justify-content:center;line-height:0;flex-shrink:0}:host svg{display:block}\n"] }]
127
+ }], ctorParameters: function () { return [{ type: i1.DomSanitizer }]; }, propDecorators: { name: [{
78
128
  type: Input
79
129
  }], library: [{
80
130
  type: Input
@@ -91,4 +141,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
91
141
  }], decorative: [{
92
142
  type: Input
93
143
  }] } });
94
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvaWNvbi9pY29uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9pY29uL2ljb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQTREMUUsTUFBTSxPQUFPLGdCQUFnQjtJQUw3QjtRQU1XLFNBQUksR0FBeUIsT0FBTyxDQUFDO1FBQ3JDLFlBQU8sR0FBbUIsUUFBUSxDQUFDO1FBQ25DLGFBQVEsR0FBa0IsSUFBSSxDQUFDO1FBQy9CLFNBQUksR0FBRyxFQUFFLENBQUM7UUFDVixnQkFBVyxHQUFHLEdBQUcsQ0FBQztRQUNsQixjQUFTLEdBQUcsRUFBRSxDQUFDO1FBQ2YsY0FBUyxHQUFrQixJQUFJLENBQUM7UUFDaEMsZUFBVSxHQUFHLEtBQUssQ0FBQztRQTZCWCxzQkFBaUIsR0FBbUQ7WUFDbkYsTUFBTSxFQUFFLEVBQUU7WUFDVixNQUFNLEVBQUU7Z0JBQ04sZ0JBQWdCLEVBQUUsY0FBYztnQkFDaEMsY0FBYyxFQUFFLGNBQWM7Z0JBQzlCLGVBQWUsRUFBRSxlQUFlO2dCQUNoQyxhQUFhLEVBQUUsTUFBTTtnQkFDckIsWUFBWSxFQUFFLFVBQVU7Z0JBQ3hCLGVBQWUsRUFBRSxlQUFlO2FBQ2pDO1lBQ0QsU0FBUyxFQUFFO2dCQUNULFVBQVUsRUFBRSxjQUFjO2dCQUMxQixhQUFhLEVBQUUsTUFBTTtnQkFDckIsV0FBVyxFQUFFLFFBQVE7Z0JBQ3JCLGFBQWEsRUFBRSxVQUFVO2dCQUN6QixnQkFBZ0IsRUFBRSxlQUFlO2dCQUNqQyxlQUFlLEVBQUUsY0FBYzthQUNoQztZQUNELFFBQVEsRUFBRTtnQkFDUixnQkFBZ0IsRUFBRSxjQUFjO2dCQUNoQyxZQUFZLEVBQUUsY0FBYztnQkFDNUIsYUFBYSxFQUFFLGVBQWU7Z0JBQzlCLGFBQWEsRUFBRSxNQUFNO2dCQUNyQixJQUFJLEVBQUUsVUFBVTtnQkFDaEIsa0JBQWtCLEVBQUUsZUFBZTthQUNwQztZQUNELEtBQUssRUFBRTtnQkFDTCxZQUFZLEVBQUUsY0FBYztnQkFDNUIsa0JBQWtCLEVBQUUsZUFBZTtnQkFDbkMsbUJBQW1CLEVBQUUsY0FBYztnQkFDbkMsb0JBQW9CLEVBQUUsZUFBZTtnQkFDckMsV0FBVyxFQUFFLE1BQU07Z0JBQ25CLGlCQUFpQixFQUFFLFVBQVU7YUFDOUI7U0FDRixDQUFDO0tBQ0g7SUE5REMsSUFBSSxtQkFBbUI7UUFDckIsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ3BCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztTQUN6QjtRQUVELElBQUksSUFBSSxDQUFDLE9BQU8sS0FBSyxVQUFVLEVBQUU7WUFDL0IsT0FBTyxHQUFHLENBQUM7U0FDWjtRQUVELElBQUksSUFBSSxDQUFDLE9BQU8sS0FBSyxRQUFRLEVBQUU7WUFDN0IsT0FBTyxHQUFHLENBQUM7U0FDWjtRQUVELE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUVELElBQUksT0FBTztRQUNULE1BQU0sR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLElBQUksSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN4QyxJQUFJLENBQUMsR0FBRyxFQUFFO1lBQ1IsT0FBTyxRQUFRLENBQUM7U0FDakI7UUFFRCxNQUFNLE9BQU8sR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDLDZDQUE2QyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQy9FLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzNELE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLE9BQU8sQ0FBQztJQUNyQyxDQUFDOzs2R0FuQ1UsZ0JBQWdCO2lHQUFoQixnQkFBZ0Isd09DNUQ3QiwyeWxCQThSQTsyRkRsT2EsZ0JBQWdCO2tCQUw1QixTQUFTOytCQUNFLFVBQVUsbUJBRUgsdUJBQXVCLENBQUMsTUFBTTs4QkFHdEMsSUFBSTtzQkFBWixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IHR5cGUgUGRtSWNvbkxpYnJhcnkgPSAnbHVjaWRlJyB8ICd0YWJsZXInIHwgJ2h1Z2VpY29ucycgfCAncGhvc3Bob3InIHwgJ3JlbWl4JztcblxuZXhwb3J0IHR5cGUgUGRtSWNvbk5hbWUgPVxuICB8ICdjb21tYW5kJ1xuICB8ICdjaGVjaydcbiAgfCAnY2hlY2stY2lyY2xlJ1xuICB8ICdjaXJjbGUnXG4gIHwgJ2RvdCdcbiAgfCAneCdcbiAgfCAnYWxlcnQtY2lyY2xlJ1xuICB8ICdpbmZvJ1xuICB8ICdsb2FkZXItMidcbiAgfCAnbWVudSdcbiAgfCAnc2VhcmNoJ1xuICB8ICdjYWxlbmRhcidcbiAgfCAncGFuZWwtbGVmdCdcbiAgfCAnbW9uaXRvcidcbiAgfCAnbGFwdG9wJ1xuICB8ICdzdW4nXG4gIHwgJ21vb24nXG4gIHwgJ2NoZXZyb24tZG93bidcbiAgfCAnY2hldnJvbi11cCdcbiAgfCAnY2hldnJvbi1sZWZ0J1xuICB8ICdjaGV2cm9uLXJpZ2h0J1xuICB8ICdjaGV2cm9ucy1sZWZ0J1xuICB8ICdjaGV2cm9ucy1yaWdodCdcbiAgfCAnY2hldnJvbnMtdXAtZG93bidcbiAgfCAnYXJyb3ctdXAtZG93bidcbiAgfCAnZWxsaXBzaXMnXG4gIHwgJ2ZpbHRlcidcbiAgfCAnc29ydC1hc2MnXG4gIHwgJ3NvcnQtZGVzYydcbiAgfCAncGx1cydcbiAgfCAnbWludXMnXG4gIHwgJ2NvcHknXG4gIHwgJ3BlbmNpbCdcbiAgfCAndHJhc2gtMidcbiAgfCAnZG93bmxvYWQnXG4gIHwgJ3VwbG9hZCdcbiAgfCAnaG9tZSdcbiAgfCAnbWFpbCdcbiAgfCAncGhvbmUnXG4gIHwgJ2xvZy1pbidcbiAgfCAnbG9nLW91dCdcbiAgfCAndXNlcidcbiAgfCAnc2V0dGluZ3MnXG4gIHwgJ2NyZWRpdC1jYXJkJ1xuICB8ICdzbWlsZSdcbiAgfCAnY2FsY3VsYXRvcidcbiAgfCAnZXh0ZXJuYWwtbGluaydcbiAgfCAnZm9sZGVyJ1xuICB8ICdhcnJvdy11cC1yaWdodCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3BkbS1pY29uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2ljb24uY29tcG9uZW50Lmh0bWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBQZG1JY29uQ29tcG9uZW50IHtcbiAgQElucHV0KCkgbmFtZTogUGRtSWNvbk5hbWUgfCBzdHJpbmcgPSAnY2hlY2snO1xuICBASW5wdXQoKSBsaWJyYXJ5OiBQZG1JY29uTGlicmFyeSA9ICdsdWNpZGUnO1xuICBASW5wdXQoKSBhc3NldFVybDogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gIEBJbnB1dCgpIHNpemUgPSAxNjtcbiAgQElucHV0KCkgc3Ryb2tlV2lkdGggPSAxLjU7XG4gIEBJbnB1dCgpIGNsYXNzTmFtZSA9ICcnO1xuICBASW5wdXQoKSBhcmlhTGFiZWw6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICBASW5wdXQoKSBkZWNvcmF0aXZlID0gZmFsc2U7XG5cbiAgZ2V0IHJlc29sdmVkU3Ryb2tlV2lkdGgoKTogbnVtYmVyIHtcbiAgICBpZiAodGhpcy5zdHJva2VXaWR0aCkge1xuICAgICAgcmV0dXJuIHRoaXMuc3Ryb2tlV2lkdGg7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMubGlicmFyeSA9PT0gJ3Bob3NwaG9yJykge1xuICAgICAgcmV0dXJuIDEuNjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5saWJyYXJ5ID09PSAndGFibGVyJykge1xuICAgICAgcmV0dXJuIDEuODtcbiAgICB9XG5cbiAgICByZXR1cm4gMS41O1xuICB9XG5cbiAgZ2V0IGljb25LZXkoKTogc3RyaW5nIHtcbiAgICBjb25zdCByYXcgPSBgJHt0aGlzLm5hbWUgfHwgJyd9YC50cmltKCk7XG4gICAgaWYgKCFyYXcpIHtcbiAgICAgIHJldHVybiAnY2lyY2xlJztcbiAgICB9XG5cbiAgICBjb25zdCB0cmltbWVkID0gcmF3LnJlcGxhY2UoL14obHVjaWRlfHRhYmxlcnxodWdlaWNvbnN8cGhvc3Bob3J8cmVtaXgpXFwvLywgJycpO1xuICAgIGNvbnN0IGFsaWFzZXMgPSB0aGlzLmFsaWFzTWFwQnlMaWJyYXJ5W3RoaXMubGlicmFyeV0gPz8ge307XG4gICAgcmV0dXJuIGFsaWFzZXNbdHJpbW1lZF0gPz8gdHJpbW1lZDtcbiAgfVxuXG4gIHByaXZhdGUgcmVhZG9ubHkgYWxpYXNNYXBCeUxpYnJhcnk6IFJlY29yZDxQZG1JY29uTGlicmFyeSwgUmVjb3JkPHN0cmluZywgc3RyaW5nPj4gPSB7XG4gICAgbHVjaWRlOiB7fSxcbiAgICB0YWJsZXI6IHtcbiAgICAgICdhbGVydC10cmlhbmdsZSc6ICdhbGVydC1jaXJjbGUnLFxuICAgICAgJ2NoZXZyb24tZG93bic6ICdjaGV2cm9uLWRvd24nLFxuICAgICAgJ2NoZXZyb24tcmlnaHQnOiAnY2hldnJvbi1yaWdodCcsXG4gICAgICAndXNlci1jaXJjbGUnOiAndXNlcicsXG4gICAgICAnc2V0dGluZ3MtMic6ICdzZXR0aW5ncycsXG4gICAgICAnZXh0ZXJuYWwtbGluayc6ICdleHRlcm5hbC1saW5rJ1xuICAgIH0sXG4gICAgaHVnZWljb25zOiB7XG4gICAgICAnYWxlcnQtMDInOiAnYWxlcnQtY2lyY2xlJyxcbiAgICAgICd1c2VyLWNpcmNsZSc6ICd1c2VyJyxcbiAgICAgICdzZWFyY2gtMDEnOiAnc2VhcmNoJyxcbiAgICAgICdzZXR0aW5ncy0wMSc6ICdzZXR0aW5ncycsXG4gICAgICAnYXJyb3ctcmlnaHQtMDEnOiAnY2hldnJvbi1yaWdodCcsXG4gICAgICAnYXJyb3ctZG93bi0wMSc6ICdjaGV2cm9uLWRvd24nXG4gICAgfSxcbiAgICBwaG9zcGhvcjoge1xuICAgICAgJ3dhcm5pbmctY2lyY2xlJzogJ2FsZXJ0LWNpcmNsZScsXG4gICAgICAnY2FyZXQtZG93bic6ICdjaGV2cm9uLWRvd24nLFxuICAgICAgJ2NhcmV0LXJpZ2h0JzogJ2NoZXZyb24tcmlnaHQnLFxuICAgICAgJ3VzZXItY2lyY2xlJzogJ3VzZXInLFxuICAgICAgZ2VhcjogJ3NldHRpbmdzJyxcbiAgICAgICdhcnJvdy1zcXVhcmUtb3V0JzogJ2V4dGVybmFsLWxpbmsnXG4gICAgfSxcbiAgICByZW1peDoge1xuICAgICAgJ2FsZXJ0LWxpbmUnOiAnYWxlcnQtY2lyY2xlJyxcbiAgICAgICdhcnJvdy1yaWdodC1saW5lJzogJ2NoZXZyb24tcmlnaHQnLFxuICAgICAgJ2Fycm93LWRvd24tcy1saW5lJzogJ2NoZXZyb24tZG93bicsXG4gICAgICAnZXh0ZXJuYWwtbGluay1saW5lJzogJ2V4dGVybmFsLWxpbmsnLFxuICAgICAgJ3VzZXItbGluZSc6ICd1c2VyJyxcbiAgICAgICdzZXR0aW5ncy0zLWxpbmUnOiAnc2V0dGluZ3MnXG4gICAgfVxuICB9O1xufVxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cImFzc2V0VXJsOyBlbHNlIGlubGluZUljb25cIj5cbiAgPGltZ1xuICAgIFtzcmNdPVwiYXNzZXRVcmxcIlxuICAgIFtzdHlsZS53aWR0aC5weF09XCJzaXplXCJcbiAgICBbc3R5bGUuaGVpZ2h0LnB4XT1cInNpemVcIlxuICAgIFtuZ0NsYXNzXT1cImNsYXNzTmFtZVwiXG4gICAgW2F0dHIucm9sZV09XCJkZWNvcmF0aXZlID8gbnVsbCA6ICdpbWcnXCJcbiAgICBbYXR0ci5hcmlhLWhpZGRlbl09XCJkZWNvcmF0aXZlID8gJ3RydWUnIDogbnVsbFwiXG4gICAgW2F0dHIuYXJpYS1sYWJlbF09XCIhZGVjb3JhdGl2ZSA/IGFyaWFMYWJlbCB8fCBuYW1lIDogbnVsbFwiXG4gICAgYWx0PVwiXCJcbiAgLz5cbjwvbmctY29udGFpbmVyPlxuXG48bmctdGVtcGxhdGUgI2lubGluZUljb24+XG4gIDxzdmdcbiAgICBbYXR0ci53aWR0aF09XCJzaXplXCJcbiAgICBbYXR0ci5oZWlnaHRdPVwic2l6ZVwiXG4gICAgW25nQ2xhc3NdPVwiY2xhc3NOYW1lXCJcbiAgICBbYXR0ci5yb2xlXT1cImRlY29yYXRpdmUgPyBudWxsIDogJ2ltZydcIlxuICAgIFthdHRyLmFyaWEtaGlkZGVuXT1cImRlY29yYXRpdmUgPyAndHJ1ZScgOiBudWxsXCJcbiAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIiFkZWNvcmF0aXZlID8gYXJpYUxhYmVsIHx8IG5hbWUgOiBudWxsXCJcbiAgICB2aWV3Qm94PVwiMCAwIDI0IDI0XCJcbiAgICBmaWxsPVwibm9uZVwiXG4gICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gID5cbiAgICA8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJpY29uS2V5XCI+XG4gICAgPGcgKm5nU3dpdGNoQ2FzZT1cIidjb21tYW5kJ1wiPlxuICAgICAgPHBhdGggZD1cIk05IDlWMTVcIiBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBbYXR0ci5zdHJva2Utd2lkdGhdPVwicmVzb2x2ZWRTdHJva2VXaWR0aFwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIj48L3BhdGg+XG4gICAgICA8cGF0aCBkPVwiTTE1IDlWMTVcIiBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBbYXR0ci5zdHJva2Utd2lkdGhdPVwicmVzb2x2ZWRTdHJva2VXaWR0aFwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIj48L3BhdGg+XG4gICAgICA8cGF0aCBkPVwiTTkgOUgxNVwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIFthdHRyLnN0cm9rZS13aWR0aF09XCJyZXNvbHZlZFN0cm9rZVdpZHRoXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiPjwvcGF0aD5cbiAgICAgIDxwYXRoIGQ9XCJNOSAxNUgxNVwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIFthdHRyLnN0cm9rZS13aWR0aF09XCJyZXNvbHZlZFN0cm9rZVdpZHRoXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiPjwvcGF0aD5cbiAgICAgIDxwYXRoIGQ9XCJNOSA5SDcuNUM2LjEyIDkgNSA3Ljg4IDUgNi41QzUgNS4xMiA2LjEyIDQgNy41IDRDOC44OCA0IDEwIDUuMTIgMTAgNi41VjhcIiBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBbYXR0ci5zdHJva2Utd2lkdGhdPVwicmVzb2x2ZWRTdHJva2VXaWR0aFwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIj48L3BhdGg+XG4gICAgICA8cGF0aCBkPVwiTTE1IDlIMTYuNUMxNy44OCA5IDE5IDcuODggMTkgNi41QzE5IDUuMTIgMTcuODggNCAxNi41IDRDMTUuMTIgNCAxNCA1LjEyIDE0IDYuNVY4XCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgW2F0dHIuc3Ryb2tlLXdpZHRoXT1cInJlc29sdmVkU3Ryb2tlV2lkdGhcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCI+PC9wYXRoPlxuICAgICAgPHBhdGggZD1cIk05IDE1SDcuNUM2LjEyIDE1IDUgMTYuMTIgNSAxNy41QzUgMTguODggNi4xMiAyMCA3LjUgMjBDOC44OCAyMCAxMCAxOC44OCAxMCAxNy41VjE2XCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgW2F0dHIuc3Ryb2tlLXdpZHRoXT1cInJlc29sdmVkU3Ryb2tlV2lkdGhcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCI+PC9wYXRoPlxuICAgICAgPHBhdGggZD1cIk0xNSAxNUgxNi41QzE3Ljg4IDE1IDE5IDE2LjEyIDE5IDE3LjVDMTkgMTguODggMTcuODggMjAgMTYuNSAyMEMxNS4xMiAyMCAxNCAxOC44OCAxNCAxNy41VjE2XCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgW2F0dHIuc3Ryb2tlLXdpZHRoXT1cInJlc29sdmVkU3Ryb2tlV2lkdGhcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCI+PC9wYXRoPlxuICAgIDwvZz5cblxuICAgIDxnICpuZ1N3aXRjaENhc2U9XCInY2hlY2snXCI+XG4gICAgICA8cGF0aCBkPVwiTTUgMTIuNUw5LjIgMTYuN0wxOSA3XCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgW2F0dHIuc3Ryb2tlLXdpZHRoXT1cInJlc29sdmVkU3Ryb2tlV2lkdGhcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIj48L3BhdGg+XG4gICAgPC9nPlxuXG4gICAgPGcgKm5nU3dpdGNoQ2FzZT1cIidjaGVjay1jaXJjbGUnXCI+XG4gICAgICA8Y2lyY2xlIGN4PVwiMTJcIiBjeT1cIjEyXCIgcj1cIjlcIiBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBbYXR0ci5zdHJva2Utd2lkdGhdPVwicmVzb2x2ZWRTdHJva2VXaWR0aFwiPjwvY2lyY2xlPlxuICAgICAgPHBhdGggZD1cIk04LjUgMTIuMkwxMSAxNC43TDE1LjggOS45XCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgW2F0dHIuc3Ryb2tlLXdpZHRoXT1cInJlc29sdmVkU3Ryb2tlV2lkdGhcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIj48L3BhdGg+XG4gICAgPC9nPlxuXG4gICAgPGcgKm5nU3dpdGNoQ2FzZT1cIidjaXJjbGUnXCI+XG4gICAgICA8Y2lyY2xlIGN4PVwiMTJcIiBjeT1cIjEyXCIgcj1cIjlcIiBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBbYXR0ci5zdHJva2Utd2lkdGhdPVwicmVzb2x2ZWRTdHJva2VXaWR0aFwiPjwvY2lyY2xlPlxuICAgIDwvZz5cblxuICAgIDxnICpuZ1N3aXRjaENhc2U9XCInZG90J1wiPlxuICAgICAgPGNpcmNsZSBjeD1cIjEyXCIgY3k9XCIxMlwiIHI9XCIyLjVcIiBmaWxsPVwiY3VycmVudENvbG9yXCI+PC9jaXJjbGU+XG4gICAgPC9nPlxuXG4gICAgPGcgKm5nU3dpdGNoQ2FzZT1cIid4J1wiPlxuICAgICAgPHBhdGggZD1cIk02IDZMMTggMThNMTggNkw2IDE4XCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgW2F0dHIuc3Ryb2tlLXdpZHRoXT1cInJlc29sdmVkU3Ryb2tlV2lkdGhcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCI+PC9wYXRoPlxuICAgIDwvZz5cblxuICAgIDxnICpuZ1N3aXRjaENhc2U9XCInYWxlcnQtY2lyY2xlJ1wiPlxuICAgICAgPGNpcmNsZSBjeD1cIjEyXCIgY3k9XCIxMlwiIHI9XCI5XCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgW2F0dHIuc3Ryb2tlLXdpZHRoXT1cInJlc29sdmVkU3Ryb2tlV2lkdGhcIj48L2NpcmNsZT5cbiAgICAgIDxwYXRoIGQ9XCJNMTIgOFYxMlwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIFthdHRyLnN0cm9rZS13aWR0aF09XCJyZXNvbHZlZFN0cm9rZVdpZHRoXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiPjwvcGF0aD5cbiAgICAgIDxjaXJjbGUgY3g9XCIxMlwiIGN5PVwiMTZcIiByPVwiMVwiIGZpbGw9XCJjdXJyZW50Q29sb3JcIj48L2NpcmNsZT5cbiAgICA8L2c+XG5cbiAgICA8ZyAqbmdTd2l0Y2hDYXNlPVwiJ2luZm8nXCI+XG4gICAgICA8Y2lyY2xlIGN4PVwiMTJcIiBjeT1cIjEyXCIgcj1cIjlcIiBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBbYXR0ci5zdHJva2Utd2lkdGhdPVwicmVzb2x2ZWRTdHJva2VXaWR0aFwiPjwvY2lyY2xlPlxuICAgICAgPHBhdGggZD1cIk0xMiAxMVYxNlwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIFthdHRyLnN0cm9rZS13aWR0aF09XCJyZXNvbHZlZFN0cm9rZVdpZHRoXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiPjwvcGF0aD5cbiAgICAgIDxjaXJjbGUgY3g9XCIxMlwiIGN5PVwiOFwiIHI9XCIxXCIgZmlsbD1cImN1cnJlbnRDb2xvclwiPjwvY2lyY2xlPlxuICAgIDwvZz5cblxuICAgIDxnICpuZ1N3aXRjaENhc2U9XCInbG9hZGVyLTInXCI+XG4gICAgICA8cGF0aCBkPVwiTTEyIDNBOSA5IDAgMSAwIDIxIDEyXCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgW2F0dHIuc3Ryb2tlLXdpZHRoXT1cInJlc29sdmVkU3Ryb2tlV2lkdGhcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCI+PC9wYXRoPlxuICAgIDwvZz5cblxuICAgIDxnICpuZ1N3aXRjaENhc2U9XCInbWVudSdcIj5cbiAgICAgIDxwYXRoIGQ9XCJNNCA3SDIwTTQgMTJIMjBNNCAxN0gyMFwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIFthdHRyLnN0cm9rZS13aWR0aF09XCJyZXNvbHZlZFN0cm9rZVdpZHRoXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiPjwvcGF0aD5cbiAgICA8L2c+XG5cbiAgICA8ZyAqbmdTd2l0Y2hDYXNlPVwiJ3NlYXJjaCdcIj5cbiAgICAgIDxjaXJjbGUgY3g9XCIxMVwiIGN5PVwiMTFcIiByPVwiN1wiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIFthdHRyLnN0cm9rZS13aWR0aF09XCJyZXNvbHZlZFN0cm9rZVdpZHRoXCI+PC9jaXJjbGU+XG4gICAgICA8cGF0aCBkPVwiTTIwIDIwTDE2LjYgMTYuNlwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIFthdHRyLnN0cm9rZS13aWR0aF09XCJyZXNvbHZlZFN0cm9rZVdpZHRoXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiPjwvcGF0aD5cbiAgICA8L2c+XG5cbiAgICA8ZyAqbmdTd2l0Y2hDYXNlPVwiJ2NhbGVuZGFyJ1wiPlxuICAgICAgPHBhdGggZD1cIk04IDNWNk0xNiAzVjZNNCAxMEgyMFwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIFthdHRyLnN0cm9rZS13aWR0aF09XCJyZXNvbHZlZFN0cm9rZVdpZHRoXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiPjwvcGF0aD5cbiAgICAgIDxyZWN0IHg9XCI0XCIgeT1cIjZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTRcIiByeD1cIjJcIiBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBbYXR0ci5zdHJva2Utd2lkdGhdPVwicmVzb2x2ZWRTdHJva2VXaWR0aFwiPjwvcmVjdD5cbiAgICA8L2c+XG5cbiAgICA8ZyAqbmdTd2l0Y2hDYXNlPVwiJ3BhbmVsLWxlZnQnXCI+XG4gICAgICA8cmVjdCB4PVwiM1wiIHk9XCI0XCIgd2lkdGg9XCIxOFwiIGhlaWdodD1cIjE2XCIgcng9XCIyXCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgW2F0dHIuc3Ryb2tlLXdpZHRoXT1cInJlc29sdmVkU3Ryb2tlV2lkdGhcIj48L3JlY3Q+XG4gICAgICA8cGF0aCBkPVwiTTkgNFYyMFwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIFthdHRyLnN0cm9rZS13aWR0aF09XCJyZXNvbHZlZFN0cm9rZVdpZHRoXCI+PC9wYXRoPlxuICAgIDwvZz5cblxuICAgIDxnICpuZ1N3aXRjaENhc2U9XCInbW9uaXRvcidcIj5cbiAgICAgIDxyZWN0IHg9XCIzXCIgeT1cIjRcIiB3aWR0aD1cIjE4XCIgaGVpZ2h0PVwiMTNcIiByeD1cIjJcIiBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBbYXR0ci5zdHJva2Utd2lkdGhdPVwicmVzb2x2ZWRTdHJva2VXaWR0aFwiPjwvcmVjdD5cbiAgICAgIDxwYXRoIGQ9XCJNOCAyMEgxNlwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIFthdHRyLnN0cm9rZS13aWR0aF09XCJyZXNvbHZlZFN0cm9rZVdpZHRoXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiPjwvcGF0aD5cbiAgICAgIDxwYXRoIGQ9XCJNMTIgMTdWMjBcIiBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBbYXR0ci5zdHJva2Utd2lkdGhdPVwicmVzb2x2ZWRTdHJva2VXaWR0aFwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIj48L3BhdGg+XG4gICAgPC9nPlxuXG4gICAgPGcgKm5nU3dpdGNoQ2FzZT1cIidsYXB0b3AnXCI+XG4gICAgICA8cmVjdCB4PVwiNVwiIHk9XCI1XCIgd2lkdGg9XCIxNFwiIGhlaWdodD1cIjEwXCIgcng9XCIxLjVcIiBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBbYXR0ci5zdHJva2Utd2lkdGhdPVwicmVzb2x2ZWRTdHJva2VXaWR0aFwiPjwvcmVjdD5cbiAgICAgIDxwYXRoIGQ9XCJNMyAxOEgyMVwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIFthdHRyLnN0cm9rZS13aWR0aF09XCJyZXNvbHZlZFN0cm9rZVdpZHRoXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiPjwvcGF0aD5cbiAgICA8L2c+XG5cbiAgICA8ZyAqbmdTd2l0Y2hDYXNlPVwiJ3N1bidcIj5cbiAgICAgIDxjaXJjbGUgY3g9XCIxMlwiIGN5PVwiMTJcIiByPVwiNFwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIFthdHRyLnN0cm9rZS13aWR0aF09XCJyZXNvbHZlZFN0cm9rZVdpZHRoXCI+PC9jaXJjbGU+XG4gICAgICA8cGF0aCBkPVwiTTEyIDJWNE0xMiAyMFYyMk00IDEySDJNMjIgMTJIMjBNMTkuMDcgNC45M0wxNy42NiA2LjM0TTYuMzQgMTcuNjZMNC45MyAxOS4wN00xOS4wNyAxOS4wN0wxNy42NiAxNy42Nk02LjM0IDYuMzRMNC45MyA0LjkzXCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgW2F0dHIuc3Ryb2tlLXdpZHRoXT1cInJlc29sdmVkU3Ryb2tlV2lkdGhcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCI+PC9wYXRoPlxuICAgIDwvZz5cblxuICAgIDxnICpuZ1N3aXRjaENhc2U9XCInbW9vbidcIj5cbiAgICAgIDxwYXRoIGQ9XCJNMjAgMTQuNUMxOS4xIDE3LjkgMTYgMjAuNSAxMi4zIDIwLjVDNy45IDIwLjUgNC4zIDE2LjkgNC4zIDEyLjVDNC4zIDguOCA2LjggNS44IDEwLjIgNC44QzkuNiA1LjggOS4zIDcgOS4zIDguMkM5LjMgMTEuOCAxMi4yIDE0LjcgMTUuOCAxNC43QzE3IDE0LjcgMTguMSAxNC40IDE5LjEgMTMuOEMxOS40IDEzLjYgMjAuMSAxNCAyMCAxNC41WlwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIFthdHRyLnN0cm9rZS13aWR0aF09XCJyZXNvbHZlZFN0cm9rZVdpZHRoXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCI+PC9wYXRoPlxuICAgIDwvZz5cblxuICAgIDxnICpuZ1N3aXRjaENhc2U9XCInY2hldnJvbi1kb3duJ1wiPlxuICAgICAgPHBhdGggZD1cIk03IDEwTDEyIDE1TDE3IDEwXCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgW2F0dHIuc3Ryb2tlLXdpZHRoXT1cInJlc29sdmVkU3Ryb2tlV2lkdGhcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIj48L3BhdGg+XG4gICAgPC9nPlxuXG4gICAgPGcgKm5nU3dpdGNoQ2FzZT1cIidjaGV2cm9uLXVwJ1wiPlxuICAgICAgPHBhdGggZD1cIk0xNyAxNEwxMiA5TDcgMTRcIiBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBbYXR0ci5zdHJva2Utd2lkdGhdPVwicmVzb2x2ZWRTdHJva2VXaWR0aFwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiPjwvcGF0aD5cbiAgICA8L2c+XG5cbiAgICA8ZyAqbmdTd2l0Y2hDYXNlPVwiJ2NoZXZyb24tbGVmdCdcIj5cbiAgICAgIDxwYXRoIGQ9XCJNMTUgMThMOSAxMkwxNSA2XCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgW2F0dHIuc3Ryb2tlLXdpZHRoXT1cInJlc29sdmVkU3Ryb2tlV2lkdGhcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIj48L3BhdGg+XG4gICAgPC9nPlxuXG4gICAgPGcgKm5nU3dpdGNoQ2FzZT1cIidjaGV2cm9uLXJpZ2h0J1wiPlxuICAgICAgPHBhdGggZD1cIk05IDE4TDE1IDEyTDkgNlwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIFthdHRyLnN0cm9rZS13aWR0aF09XCJyZXNvbHZlZFN0cm9rZVdpZHRoXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCI+PC9wYXRoPlxuICAgIDwvZz5cblxuICAgIDxnICpuZ1N3aXRjaENhc2U9XCInY2hldnJvbnMtbGVmdCdcIj5cbiAgICAgIDxwYXRoIGQ9XCJNMTQgMThMOCAxMkwxNCA2XCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgW2F0dHIuc3Ryb2tlLXdpZHRoXT1cInJlc29sdmVkU3Ryb2tlV2lkdGhcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIj48L3BhdGg+XG4gICAgICA8cGF0aCBkPVwiTTIwIDE4TDE0IDEyTDIwIDZcIiBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBbYXR0ci5zdHJva2Utd2lkdGhdPVwicmVzb2x2ZWRTdHJva2VXaWR0aFwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiPjwvcGF0aD5cbiAgICA8L2c+XG5cbiAgICA8ZyAqbmdTd2l0Y2hDYXNlPVwiJ2NoZXZyb25zLXJpZ2h0J1wiPlxuICAgICAgPHBhdGggZD1cIk0xMCAxOEwxNiAxMkwxMCA2XCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgW2F0dHIuc3Ryb2tlLXdpZHRoXT1cInJlc29sdmVkU3Ryb2tlV2lkdGhcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIj48L3BhdGg+XG4gICAgICA8cGF0aCBkPVwiTTQgMThMMTAgMTJMNCA2XCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgW2F0dHIuc3Ryb2tlLXdpZHRoXT1cInJlc29sdmVkU3Ryb2tlV2lkdGhcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIj48L3BhdGg+XG4gICAgPC9nPlxuXG4gICAgPGcgKm5nU3dpdGNoQ2FzZT1cIidjaGV2cm9ucy11cC1kb3duJ1wiPlxuICAgICAgPHBhdGggZD1cIk03IDE1TDEyIDIwTDE3IDE1XCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgW2F0dHIuc3Ryb2tlLXdpZHRoXT1cInJlc29sdmVkU3Ryb2tlV2lkdGhcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIj48L3BhdGg+XG4gICAgICA8cGF0aCBkPVwiTTE3IDlMMTIgNEw3IDlcIiBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBbYXR0ci5zdHJva2Utd2lkdGhdPVwicmVzb2x2ZWRTdHJva2VXaWR0aFwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiPjwvcGF0aD5cbiAgICA8L2c+XG5cbiAgICA8ZyAqbmdTd2l0Y2hDYXNlPVwiJ2Fycm93LXVwLWRvd24nXCI+XG4gICAgICA8cGF0aCBkPVwiTTEyIDRWMjBcIiBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBbYXR0ci5zdHJva2Utd2lkdGhdPVwicmVzb2x2ZWRTdHJva2VXaWR0aFwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIj48L3BhdGg+XG4gICAgICA8cGF0aCBkPVwiTTggOEwxMiA0TDE2IDhcIiBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBbYXR0ci5zdHJva2Utd2lkdGhdPVwicmVzb2x2ZWRTdHJva2VXaWR0aFwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiPjwvcGF0aD5cbiAgICAgIDxwYXRoIGQ9XCJNOCAxNkwxMiAyMEwxNiAxNlwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIFthdHRyLnN0cm9rZS13aWR0aF09XCJyZXNvbHZlZFN0cm9rZVdpZHRoXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCI+PC9wYXRoPlxuICAgIDwvZz5cblxuICAgIDxnICpuZ1N3aXRjaENhc2U9XCInZWxsaXBzaXMnXCI+XG4gICAgICA8Y2lyY2xlIGN4PVwiNlwiIGN5PVwiMTJcIiByPVwiMS41XCIgZmlsbD1cImN1cnJlbnRDb2xvclwiPjwvY2lyY2xlPlxuICAgICAgPGNpcmNsZSBjeD1cIjEyXCIgY3k9XCIxMlwiIHI9XCIxLjVcIiBmaWxsPVwiY3VycmVudENvbG9yXCI+PC9jaXJjbGU+XG4gICAgICA8Y2lyY2xlIGN4PVwiMThcIiBjeT1cIjEyXCIgcj1cIjEuNVwiIGZpbGw9XCJjdXJyZW50Q29sb3JcIj48L2NpcmNsZT5cbiAgICA8L2c+XG5cbiAgICA8ZyAqbmdTd2l0Y2hDYXNlPVwiJ2ZpbHRlcidcIj5cbiAgICAgIDxwYXRoIGQ9XCJNNCA2SDIwXCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgW2F0dHIuc3Ryb2tlLXdpZHRoXT1cInJlc29sdmVkU3Ryb2tlV2lkdGhcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCI+PC9wYXRoPlxuICAgICAgPHBhdGggZD1cIk03IDEySDE3XCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgW2F0dHIuc3Ryb2tlLXdpZHRoXT1cInJlc29sdmVkU3Ryb2tlV2lkdGhcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCI+PC9wYXRoPlxuICAgICAgPHBhdGggZD1cIk0xMCAxOEgxNFwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIFthdHRyLnN0cm9rZS13aWR0aF09XCJyZXNvbHZlZFN0cm9rZVdpZHRoXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiPjwvcGF0aD5cbiAgICA8L2c+XG5cbiAgICA8ZyAqbmdTd2l0Y2hDYXNlPVwiJ3NvcnQtYXNjJ1wiPlxuICAgICAgPHBhdGggZD1cIk03IDE4VjZcIiBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBbYXR0ci5zdHJva2Utd2lkdGhdPVwicmVzb2x2ZWRTdHJva2VXaWR0aFwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIj48L3BhdGg+XG4gICAgICA8cGF0aCBkPVwiTTQgOUw3IDZMMTAgOVwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIFthdHRyLnN0cm9rZS13aWR0aF09XCJyZXNvbHZlZFN0cm9rZVdpZHRoXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCI+PC9wYXRoPlxuICAgICAgPHBhdGggZD1cIk0xNCA4SDIwTTE0IDEySDE4TTE0IDE2SDE2XCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgW2F0dHIuc3Ryb2tlLXdpZHRoXT1cInJlc29sdmVkU3Ryb2tlV2lkdGhcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCI+PC9wYXRoPlxuICAgIDwvZz5cblxuICAgIDxnICpuZ1N3aXRjaENhc2U9XCInc29ydC1kZXNjJ1wiPlxuICAgICAgPHBhdGggZD1cIk03IDZWMThcIiBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBbYXR0ci5zdHJva2Utd2lkdGhdPVwicmVzb2x2ZWRTdHJva2VXaWR0aFwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIj48L3BhdGg+XG4gICAgICA8cGF0aCBkPVwiTTQgMTVMNyAxOEwxMCAxNVwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIFthdHRyLnN0cm9rZS13aWR0aF09XCJyZXNvbHZlZFN0cm9rZVdpZHRoXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCI+PC9wYXRoPlxuICAgICAgPHBhdGggZD1cIk0xNCA4SDE2TTE0IDEySDE4TTE0IDE2SDIwXCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgW2F0dHIuc3Ryb2tlLXdpZHRoXT1cInJlc29sdmVkU3Ryb2tlV2lkdGhcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCI+PC9wYXRoPlxuICAgIDwvZz5cblxuICAgIDxnICpuZ1N3aXRjaENhc2U9XCIncGx1cydcIj5cbiAgICAgIDxwYXRoIGQ9XCJNMTIgNVYxOU01IDEySDE5XCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgW2F0dHIuc3Ryb2tlLXdpZHRoXT1cInJlc29sdmVkU3Ryb2tlV2lkdGhcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCI+PC9wYXRoPlxuICAgIDwvZz5cblxuICAgIDxnICpuZ1N3aXRjaENhc2U9XCInbWludXMnXCI+XG4gICAgICA8cGF0aCBkPVwiTTUgMTJIMTlcIiBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBbYXR0ci5zdHJva2Utd2lkdGhdPVwicmVzb2x2ZWRTdHJva2VXaWR0aFwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIj48L3BhdGg+XG4gICAgPC9nPlxuXG4gICAgPGcgKm5nU3dpdGNoQ2FzZT1cIidjb3B5J1wiPlxuICAgICAgPHJlY3QgeD1cIjlcIiB5PVwiOVwiIHdpZHRoPVwiMTFcIiBoZWlnaHQ9XCIxMVwiIHJ4PVwiMlwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIFthdHRyLnN0cm9rZS13aWR0aF09XCJyZXNvbHZlZFN0cm9rZVdpZHRoXCI+PC9yZWN0PlxuICAgICAgPHJlY3QgeD1cIjRcIiB5PVwiNFwiIHdpZHRoPVwiMTFcIiBoZWlnaHQ9XCIxMVwiIHJ4PVwiMlwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIFthdHRyLnN0cm9rZS13aWR0aF09XCJyZXNvbHZlZFN0cm9rZVdpZHRoXCI+PC9yZWN0PlxuICAgIDwvZz5cblxuICAgIDxnICpuZ1N3aXRjaENhc2U9XCIncGVuY2lsJ1wiPlxuICAgICAgPHBhdGggZD1cIk0xMiAyMEgyMVwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIFthdHRyLnN0cm9rZS13aWR0aF09XCJyZXNvbHZlZFN0cm9rZVdpZHRoXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiPjwvcGF0aD5cbiAgICAgIDxwYXRoIGQ9XCJNMTYuNSA0LjVDMTcuMSAzLjkgMTggMy45IDE4LjYgNC41TDE5LjUgNS40QzIwLjEgNiAyMC4xIDYuOSAxOS41IDcuNUw5IDE4TDQgMTlMNSAxNEwxNi41IDQuNVpcIiBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBbYXR0ci5zdHJva2Utd2lkdGhdPVwicmVzb2x2ZWRTdHJva2VXaWR0aFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCI+PC9wYXRoPlxuICAgIDwvZz5cblxuICAgIDxnICpuZ1N3aXRjaENhc2U9XCIndHJhc2gtMidcIj5cbiAgICAgIDxwYXRoIGQ9XCJNNCA3SDIwXCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgW2F0dHIuc3Ryb2tlLXdpZHRoXT1cInJlc29sdmVkU3Ryb2tlV2lkdGhcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCI+PC9wYXRoPlxuICAgICAgPHBhdGggZD1cIk05IDdWNUM5IDQuNCA5LjQgNCAxMCA0SDE0QzE0LjYgNCAxNSA0LjQgMTUgNVY3XCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgW2F0dHIuc3Ryb2tlLXdpZHRoXT1cInJlc29sdmVkU3Ryb2tlV2lkdGhcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCI+PC9wYXRoPlxuICAgICAgPHBhdGggZD1cIk03IDdMOCAxOUM4IDE5LjYgOC40IDIwIDkgMjBIMTVDMTUuNiAyMCAxNiAxOS42IDE2IDE5TDE3IDdcIiBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBbYXR0ci5zdHJva2Utd2lkdGhdPVwicmVzb2x2ZWRTdHJva2VXaWR0aFwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiPjwvcGF0aD5cbiAgICAgIDxwYXRoIGQ9XCJNMTAgMTFWMTdNMTQgMTFWMTdcIiBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBbYXR0ci5zdHJva2Utd2lkdGhdPVwicmVzb2x2ZWRTdHJva2VXaWR0aFwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIj48L3BhdGg+XG4gICAgPC9nPlxuXG4gICAgPGcgKm5nU3dpdGNoQ2FzZT1cIidkb3dubG9hZCdcIj5cbiAgICAgIDxwYXRoIGQ9XCJNMTIgNFYxNFwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIFthdHRyLnN0cm9rZS13aWR0aF09XCJyZXNvbHZlZFN0cm9rZVdpZHRoXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiPjwvcGF0aD5cbiAgICAgIDxwYXRoIGQ9XCJNOCAxMEwxMiAxNEwxNiAxMFwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIFthdHRyLnN0cm9rZS13aWR0aF09XCJyZXNvbHZlZFN0cm9rZVdpZHRoXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCI+PC9wYXRoPlxuICAgICAgPHBhdGggZD1cIk01IDE5SDE5XCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgW2F0dHIuc3Ryb2tlLXdpZHRoXT1cInJlc29sdmVkU3Ryb2tlV2lkdGhcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCI+PC9wYXRoPlxuICAgIDwvZz5cblxuICAgIDxnICpuZ1N3aXRjaENhc2U9XCIndXBsb2FkJ1wiPlxuICAgICAgPHBhdGggZD1cIk0xMiAyMFYxMFwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIFthdHRyLnN0cm9rZS13aWR0aF09XCJyZXNvbHZlZFN0cm9rZVdpZHRoXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiPjwvcGF0aD5cbiAgICAgIDxwYXRoIGQ9XCJNOCAxNEwxMiAxMEwxNiAxNFwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIFthdHRyLnN0cm9rZS13aWR0aF09XCJyZXNvbHZlZFN0cm9rZVdpZHRoXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCI+PC9wYXRoPlxuICAgICAgPHBhdGggZD1cIk01IDVIMTlcIiBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBbYXR0ci5zdHJva2Utd2lkdGhdPVwicmVzb2x2ZWRTdHJva2VXaWR0aFwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIj48L3BhdGg+XG4gICAgPC9nPlxuXG4gICAgPGcgKm5nU3dpdGNoQ2FzZT1cIidob21lJ1wiPlxuICAgICAgPHBhdGggZD1cIk00IDEwLjVMMTIgNEwyMCAxMC41XCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgW2F0dHIuc3Ryb2tlLXdpZHRoXT1cInJlc29sdmVkU3Ryb2tlV2lkdGhcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIj48L3BhdGg+XG4gICAgICA8cGF0aCBkPVwiTTYgOS41VjIwSDE4VjkuNVwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIFthdHRyLnN0cm9rZS13aWR0aF09XCJyZXNvbHZlZFN0cm9rZVdpZHRoXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCI+PC9wYXRoPlxuICAgIDwvZz5cblxuICAgIDxnICpuZ1N3aXRjaENhc2U9XCInbWFpbCdcIj5cbiAgICAgIDxyZWN0IHg9XCIzXCIgeT1cIjVcIiB3aWR0aD1cIjE4XCIgaGVpZ2h0PVwiMTRcIiByeD1cIjJcIiBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBbYXR0ci5zdHJva2Utd2lkdGhdPVwicmVzb2x2ZWRTdHJva2VXaWR0aFwiPjwvcmVjdD5cbiAgICAgIDxwYXRoIGQ9XCJNNCA3TDEyIDEzTDIwIDdcIiBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBbYXR0ci5zdHJva2Utd2lkdGhdPVwicmVzb2x2ZWRTdHJva2VXaWR0aFwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiPjwvcGF0aD5cbiAgICA8L2c+XG5cbiAgICA8ZyAqbmdTd2l0Y2hDYXNlPVwiJ3Bob25lJ1wiPlxuICAgICAgPHBhdGggZD1cIk04LjggNC42QzkuMiAzLjggMTAuMiAzLjUgMTEgNEwxMy4zIDUuMkMxNC4xIDUuNiAxNC40IDYuNiAxNCA3LjRMMTMgOS4yQzEyLjggOS42IDEyLjkgMTAuMSAxMy4yIDEwLjRMMTQuOSAxMi4xQzE1LjIgMTIuNCAxNS43IDEyLjUgMTYuMSAxMi4zTDE3LjkgMTEuM0MxOC43IDEwLjkgMTkuNyAxMS4yIDIwLjEgMTJMMjEuMyAxNC4zQzIxLjggMTUuMSAyMS41IDE2LjEgMjAuNyAxNi41TDE4LjggMTcuNUMxNi45IDE4LjUgMTQuNSAxOC4xIDEyLjkgMTYuNUw3LjUgMTEuMUM1LjkgOS41IDUuNSA3LjEgNi41IDUuMkw4LjggNC42WlwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIFthdHRyLnN0cm9rZS13aWR0aF09XCJyZXNvbHZlZFN0cm9rZVdpZHRoXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIj48L3BhdGg+XG4gICAgPC9nPlxuXG4gICAgPGcgKm5nU3dpdGNoQ2FzZT1cIidsb2ctaW4nXCI+XG4gICAgICA8cGF0aCBkPVwiTTE1IDNIMThDMTkuMSAzIDIwIDMuOSAyMCA1VjE5QzIwIDIwLjEgMTkuMSAyMSAxOCAyMUgxNVwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIFthdHRyLnN0cm9rZS13aWR0aF09XCJyZXNvbHZlZFN0cm9rZVdpZHRoXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiPjwvcGF0aD5cbiAgICAgIDxwYXRoIGQ9XCJNMTAgMTdMMTQgMTNMMTAgOVwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIFthdHRyLnN0cm9rZS13aWR0aF09XCJyZXNvbHZlZFN0cm9rZVdpZHRoXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCI+PC9wYXRoPlxuICAgICAgPHBhdGggZD1cIk0xNCAxM0g0XCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgW2F0dHIuc3Ryb2tlLXdpZHRoXT1cInJlc29sdmVkU3Ryb2tlV2lkdGhcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCI+PC9wYXRoPlxuICAgIDwvZz5cblxuICAgIDxnICpuZ1N3aXRjaENhc2U9XCInbG9nLW91dCdcIj5cbiAgICAgIDxwYXRoIGQ9XCJNOSAzSDZDNC45IDMgNCAzLjkgNCA1VjE5QzQgMjAuMSA0LjkgMjEgNiAyMUg5XCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgW2F0dHIuc3Ryb2tlLXdpZHRoXT1cInJlc29sdmVkU3Ryb2tlV2lkdGhcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCI+PC9wYXRoPlxuICAgICAgPHBhdGggZD1cIk0xNCAxN0wxMCAxM0wxNCA5XCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgW2F0dHIuc3Ryb2tlLXdpZHRoXT1cInJlc29sdmVkU3Ryb2tlV2lkdGhcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIj48L3BhdGg+XG4gICAgICA8cGF0aCBkPVwiTTEwIDEzSDIwXCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgW2F0dHIuc3Ryb2tlLXdpZHRoXT1cInJlc29sdmVkU3Ryb2tlV2lkdGhcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCI+PC9wYXRoPlxuICAgIDwvZz5cblxuICAgIDxnICpuZ1N3aXRjaENhc2U9XCIndXNlcidcIj5cbiAgICAgIDxjaXJjbGUgY3g9XCIxMlwiIGN5PVwiOFwiIHI9XCIzXCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgW2F0dHIuc3Ryb2tlLXdpZHRoXT1cInJlc29sdmVkU3Ryb2tlV2lkdGhcIj48L2NpcmNsZT5cbiAgICAgIDxwYXRoIGQ9XCJNNiAxOUM2LjggMTYuNyA4LjkgMTUuNSAxMiAxNS41QzE1LjEgMTUuNSAxNy4yIDE2LjcgMTggMTlcIiBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBbYXR0ci5zdHJva2Utd2lkdGhdPVwicmVzb2x2ZWRTdHJva2VXaWR0aFwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIj48L3BhdGg+XG4gICAgPC9nPlxuXG4gICAgPGcgKm5nU3dpdGNoQ2FzZT1cIidzZXR0aW5ncydcIj5cbiAgICAgIDxjaXJjbGUgY3g9XCIxMlwiIGN5PVwiMTJcIiByPVwiM1wiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIFthdHRyLnN0cm9rZS13aWR0aF09XCJyZXNvbHZlZFN0cm9rZVdpZHRoXCI+PC9jaXJjbGU+XG4gICAgICA8cGF0aCBkPVwiTTE5IDEyQTcgNyAwIDEgMCAxMiAxOVwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIFthdHRyLnN0cm9rZS13aWR0aF09XCJyZXNvbHZlZFN0cm9rZVdpZHRoXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiPjwvcGF0aD5cbiAgICA8L2c+XG5cbiAgICA8ZyAqbmdTd2l0Y2hDYXNlPVwiJ2NyZWRpdC1jYXJkJ1wiPlxuICAgICAgPHJlY3QgeD1cIjNcIiB5PVwiNlwiIHdpZHRoPVwiMThcIiBoZWlnaHQ9XCIxMlwiIHJ4PVwiMlwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIFthdHRyLnN0cm9rZS13aWR0aF09XCJyZXNvbHZlZFN0cm9rZVdpZHRoXCI+PC9yZWN0PlxuICAgICAgPHBhdGggZD1cIk0zIDEwSDIxXCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgW2F0dHIuc3Ryb2tlLXdpZHRoXT1cInJlc29sdmVkU3Ryb2tlV2lkdGhcIj48L3BhdGg+XG4gICAgPC9nPlxuXG4gICAgPGcgKm5nU3dpdGNoQ2FzZT1cIidzbWlsZSdcIj5cbiAgICAgIDxjaXJjbGUgY3g9XCIxMlwiIGN5PVwiMTJcIiByPVwiOVwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIFthdHRyLnN0cm9rZS13aWR0aF09XCJyZXNvbHZlZFN0cm9rZVdpZHRoXCI+PC9jaXJjbGU+XG4gICAgICA8cGF0aCBkPVwiTTkgMTVDOS43IDE2IDEwLjcgMTYuNSAxMiAxNi41QzEzLjMgMTYuNSAxNC4zIDE2IDE1IDE1XCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgW2F0dHIuc3Ryb2tlLXdpZHRoXT1cInJlc29sdmVkU3Ryb2tlV2lkdGhcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCI+PC9wYXRoPlxuICAgICAgPGNpcmNsZSBjeD1cIjlcIiBjeT1cIjEwXCIgcj1cIjFcIiBmaWxsPVwiY3VycmVudENvbG9yXCI+PC9jaXJjbGU+XG4gICAgICA8Y2lyY2xlIGN4PVwiMTVcIiBjeT1cIjEwXCIgcj1cIjFcIiBmaWxsPVwiY3VycmVudENvbG9yXCI+PC9jaXJjbGU+XG4gICAgPC9nPlxuXG4gICAgPGcgKm5nU3dpdGNoQ2FzZT1cIidjYWxjdWxhdG9yJ1wiPlxuICAgICAgPHJlY3QgeD1cIjZcIiB5PVwiM1wiIHdpZHRoPVwiMTJcIiBoZWlnaHQ9XCIxOFwiIHJ4PVwiMlwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIFthdHRyLnN0cm9rZS13aWR0aF09XCJyZXNvbHZlZFN0cm9rZVdpZHRoXCI+PC9yZWN0PlxuICAgICAgPHBhdGggZD1cIk05IDdIMTVcIiBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBbYXR0ci5zdHJva2Utd2lkdGhdPVwicmVzb2x2ZWRTdHJva2VXaWR0aFwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIj48L3BhdGg+XG4gICAgICA8cGF0aCBkPVwiTTkgMTJIMTBNMTQgMTJIMTVNOSAxNkgxME0xNCAxNkgxNVwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIFthdHRyLnN0cm9rZS13aWR0aF09XCJyZXNvbHZlZFN0cm9rZVdpZHRoXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiPjwvcGF0aD5cbiAgICA8L2c+XG5cbiAgICA8ZyAqbmdTd2l0Y2hDYXNlPVwiJ2V4dGVybmFsLWxpbmsnXCI+XG4gICAgICA8cGF0aCBkPVwiTTE0IDVIMTlWMTBcIiBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBbYXR0ci5zdHJva2Utd2lkdGhdPVwicmVzb2x2ZWRTdHJva2VXaWR0aFwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiPjwvcGF0aD5cbiAgICAgIDxwYXRoIGQ9XCJNMTAgMTRMMTkgNVwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIFthdHRyLnN0cm9rZS13aWR0aF09XCJyZXNvbHZlZFN0cm9rZVdpZHRoXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiPjwvcGF0aD5cbiAgICAgIDxwYXRoIGQ9XCJNMTkgMTRWMTlINVY1SDEwXCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgW2F0dHIuc3Ryb2tlLXdpZHRoXT1cInJlc29sdmVkU3Ryb2tlV2lkdGhcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIj48L3BhdGg+XG4gICAgPC9nPlxuXG4gICAgPGcgKm5nU3dpdGNoQ2FzZT1cIidmb2xkZXInXCI+XG4gICAgICA8cGF0aCBkPVwiTTMgN0MzIDUuOSAzLjkgNSA1IDVIOUwxMSA3SDE5QzIwLjEgNyAyMSA3LjkgMjEgOVYxN0MyMSAxOC4xIDIwLjEgMTkgMTkgMTlINUMzLjkgMTkgMyAxOC4xIDMgMTdWN1pcIiBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBbYXR0ci5zdHJva2Utd2lkdGhdPVwicmVzb2x2ZWRTdHJva2VXaWR0aFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCI+PC9wYXRoPlxuICAgIDwvZz5cblxuICAgIDxnICpuZ1N3aXRjaENhc2U9XCInYXJyb3ctdXAtcmlnaHQnXCI+XG4gICAgICA8cGF0aCBkPVwiTTcgMTdMMTcgN1wiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIFthdHRyLnN0cm9rZS13aWR0aF09XCJyZXNvbHZlZFN0cm9rZVdpZHRoXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiPjwvcGF0aD5cbiAgICAgIDxwYXRoIGQ9XCJNOSA3SDE3VjE1XCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgW2F0dHIuc3Ryb2tlLXdpZHRoXT1cInJlc29sdmVkU3Ryb2tlV2lkdGhcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIj48L3BhdGg+XG4gICAgPC9nPlxuXG4gICAgPGcgKm5nU3dpdGNoRGVmYXVsdD5cbiAgICAgIDxjaXJjbGUgY3g9XCIxMlwiIGN5PVwiMTJcIiByPVwiOVwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIFthdHRyLnN0cm9rZS13aWR0aF09XCJyZXNvbHZlZFN0cm9rZVdpZHRoXCI+PC9jaXJjbGU+XG4gICAgPC9nPlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L3N2Zz5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
144
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvaWNvbi9pY29uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9pY29uL2ljb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFMUUsT0FBTyxFQUFFLEtBQUssRUFBaUIsTUFBTSxRQUFRLENBQUM7Ozs7QUF1RDlDLE1BQU0sYUFBYSxHQUFhLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQztBQXNCN0UsTUFBTSxPQUFPLGdCQUFnQjtJQW9EM0IsWUFBNkIsU0FBdUI7UUFBdkIsY0FBUyxHQUFULFNBQVMsQ0FBYztRQW5EM0MsU0FBSSxHQUF5QixPQUFPLENBQUM7UUFDckMsWUFBTyxHQUFtQixRQUFRLENBQUM7UUFDbkMsYUFBUSxHQUFrQixJQUFJLENBQUM7UUFDL0IsU0FBSSxHQUFHLEVBQUUsQ0FBQztRQUNWLGdCQUFXLEdBQUcsR0FBRyxDQUFDO1FBQ2xCLGNBQVMsR0FBRyxFQUFFLENBQUM7UUFDZixjQUFTLEdBQWtCLElBQUksQ0FBQztRQUNoQyxlQUFVLEdBQUcsS0FBSyxDQUFDO1FBRVgsZ0JBQVcsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUV0QyxzQkFBaUIsR0FBbUQ7WUFDbkYsTUFBTSxFQUFFO2dCQUNOLGNBQWMsRUFBRSxjQUFjO2dCQUM5QixjQUFjLEVBQUUsY0FBYztnQkFDOUIsSUFBSSxFQUFFLGFBQWE7Z0JBQ25CLFVBQVUsRUFBRSxjQUFjO2dCQUMxQixX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Q0FBQyxFQUFFLEVBQUU7WUFDckQsR0FBRyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsUUFBUSxDQUFDLEVBQUUsUUFBb0IsQ0FBQyxDQUFDO1FBQ2xFLENBQUMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBRU8sVUFBVSxDQUFDLEtBQWM7UUFDL0IsT0FBTyxHQUFHLEtBQUssSUFBSSxFQUFFLEVBQUU7YUFDcEIsT0FBTyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUM7YUFDdEIsT0FBTyxDQUFDLElBQUksRUFBRSxRQUFRLENBQUM7YUFDdkIsT0FBTyxDQUFDLElBQUksRUFBRSxNQUFNLENBQUM7YUFDckIsT0FBTyxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztJQUMzQixDQUFDOzs2R0FwSVUsZ0JBQWdCO2lHQUFoQixnQkFBZ0Isd09DL0U3QiwwNUJBNEJBOzJGRG1EYSxnQkFBZ0I7a0JBcEI1QixTQUFTOytCQUNFLFVBQVUsbUJBaUJILHVCQUF1QixDQUFDLE1BQU07bUdBR3RDLElBQUk7c0JBQVosS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIsIFNhZmVIdG1sIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5pbXBvcnQgeyBpY29ucywgdHlwZSBJY29uTm9kZSB9IGZyb20gJ2x1Y2lkZSc7XG5cbmV4cG9ydCB0eXBlIFBkbUljb25MaWJyYXJ5ID0gJ2x1Y2lkZScgfCAndGFibGVyJyB8ICdodWdlaWNvbnMnIHwgJ3Bob3NwaG9yJyB8ICdyZW1peCc7XG5cbmV4cG9ydCB0eXBlIFBkbUljb25OYW1lID1cbiAgfCAnY29tbWFuZCdcbiAgfCAnY2hlY2snXG4gIHwgJ2NoZWNrLWNpcmNsZSdcbiAgfCAnY2lyY2xlJ1xuICB8ICdkb3QnXG4gIHwgJ3gnXG4gIHwgJ2FsZXJ0LWNpcmNsZSdcbiAgfCAnaW5mbydcbiAgfCAnbG9hZGVyLTInXG4gIHwgJ21lbnUnXG4gIHwgJ3NlYXJjaCdcbiAgfCAnY2FsZW5kYXInXG4gIHwgJ3BhbmVsLWxlZnQnXG4gIHwgJ21vbml0b3InXG4gIHwgJ2xhcHRvcCdcbiAgfCAnc3VuJ1xuICB8ICdtb29uJ1xuICB8ICdjaGV2cm9uLWRvd24nXG4gIHwgJ2NoZXZyb24tdXAnXG4gIHwgJ2NoZXZyb24tbGVmdCdcbiAgfCAnY2hldnJvbi1yaWdodCdcbiAgfCAnY2hldnJvbnMtbGVmdCdcbiAgfCAnY2hldnJvbnMtcmlnaHQnXG4gIHwgJ2NoZXZyb25zLXVwLWRvd24nXG4gIHwgJ2Fycm93LXVwLWRvd24nXG4gIHwgJ2VsbGlwc2lzJ1xuICB8ICdmaWx0ZXInXG4gIHwgJ3NvcnQtYXNjJ1xuICB8ICdzb3J0LWRlc2MnXG4gIHwgJ3BsdXMnXG4gIHwgJ21pbnVzJ1xuICB8ICdjb3B5J1xuICB8ICdwZW5jaWwnXG4gIHwgJ3RyYXNoLTInXG4gIHwgJ2Rvd25sb2FkJ1xuICB8ICd1cGxvYWQnXG4gIHwgJ2hvbWUnXG4gIHwgJ21haWwnXG4gIHwgJ3Bob25lJ1xuICB8ICdsb2ctaW4nXG4gIHwgJ2xvZy1vdXQnXG4gIHwgJ3VzZXInXG4gIHwgJ3NldHRpbmdzJ1xuICB8ICdjcmVkaXQtY2FyZCdcbiAgfCAnc21pbGUnXG4gIHwgJ2NhbGN1bGF0b3InXG4gIHwgJ2V4dGVybmFsLWxpbmsnXG4gIHwgJ2ZvbGRlcidcbiAgfCAnYXJyb3ctdXAtcmlnaHQnO1xuXG5jb25zdCBGQUxMQkFDS19OT0RFOiBJY29uTm9kZSA9IFtbJ2NpcmNsZScsIHsgY3g6ICcxMicsIGN5OiAnMTInLCByOiAnOScgfV1dO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwZG0taWNvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9pY29uLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVzOiBbXG4gICAgYFxuICAgICAgOmhvc3Qge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgIH1cblxuICAgICAgOmhvc3Qgc3ZnIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB9XG4gICAgYFxuICBdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBQZG1JY29uQ29tcG9uZW50IHtcbiAgQElucHV0KCkgbmFtZTogUGRtSWNvbk5hbWUgfCBzdHJpbmcgPSAnY2hlY2snO1xuICBASW5wdXQoKSBsaWJyYXJ5OiBQZG1JY29uTGlicmFyeSA9ICdsdWNpZGUnO1xuICBASW5wdXQoKSBhc3NldFVybDogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gIEBJbnB1dCgpIHNpemUgPSAxNjtcbiAgQElucHV0KCkgc3Ryb2tlV2lkdGggPSAxLjU7XG4gIEBJbnB1dCgpIGNsYXNzTmFtZSA9ICcnO1xuICBASW5wdXQoKSBhcmlhTGFiZWw6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICBASW5wdXQoKSBkZWNvcmF0aXZlID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBsdWNpZGVJbmRleCA9IHRoaXMuYnVpbGRMdWNpZGVJbmRleCgpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgYWxpYXNNYXBCeUxpYnJhcnk6IFJlY29yZDxQZG1JY29uTGlicmFyeSwgUmVjb3JkPHN0cmluZywgc3RyaW5nPj4gPSB7XG4gICAgbHVjaWRlOiB7XG4gICAgICAnY2hlY2stY2lyY2xlJzogJ2NpcmNsZS1jaGVjaycsXG4gICAgICAnYWxlcnQtY2lyY2xlJzogJ2NpcmNsZS1hbGVydCcsXG4gICAgICBpbmZvOiAnY2lyY2xlLWluZm8nLFxuICAgICAgJ3NvcnQtYXNjJzogJ2Fycm93LXVwLWEteicsXG4gICAgICAnc29ydC1kZXNjJzogJ2Fycm93LWRvd24tei1hJ1xuICAgIH0sXG4gICAgdGFibGVyOiB7XG4gICAgICAnYWxlcnQtdHJpYW5nbGUnOiAndHJpYW5nbGUtYWxlcnQnLFxuICAgICAgJ3VzZXItY2lyY2xlJzogJ2NpcmNsZS11c2VyJyxcbiAgICAgICdzZXR0aW5ncy0yJzogJ3NldHRpbmdzLTInLFxuICAgICAgJ2V4dGVybmFsLWxpbmsnOiAnZXh0ZXJuYWwtbGluaydcbiAgICB9LFxuICAgIGh1Z2VpY29uczoge1xuICAgICAgJ2FsZXJ0LTAyJzogJ2NpcmNsZS1hbGVydCcsXG4gICAgICAndXNlci1jaXJjbGUnOiAnY2lyY2xlLXVzZXInLFxuICAgICAgJ3NlYXJjaC0wMSc6ICdzZWFyY2gnLFxuICAgICAgJ3NldHRpbmdzLTAxJzogJ3NldHRpbmdzJyxcbiAgICAgICdhcnJvdy1yaWdodC0wMSc6ICdjaGV2cm9uLXJpZ2h0JyxcbiAgICAgICdhcnJvdy1kb3duLTAxJzogJ2NoZXZyb24tZG93bidcbiAgICB9LFxuICAgIHBob3NwaG9yOiB7XG4gICAgICAnd2FybmluZy1jaXJjbGUnOiAnY2lyY2xlLWFsZXJ0JyxcbiAgICAgICdjYXJldC1kb3duJzogJ2NoZXZyb24tZG93bicsXG4gICAgICAnY2FyZXQtcmlnaHQnOiAnY2hldnJvbi1yaWdodCcsXG4gICAgICAndXNlci1jaXJjbGUnOiAnY2lyY2xlLXVzZXInLFxuICAgICAgZ2VhcjogJ3NldHRpbmdzJyxcbiAgICAgICdhcnJvdy1zcXVhcmUtb3V0JzogJ2V4dGVybmFsLWxpbmsnXG4gICAgfSxcbiAgICByZW1peDoge1xuICAgICAgJ2FsZXJ0LWxpbmUnOiAnY2lyY2xlLWFsZXJ0JyxcbiAgICAgICdhcnJvdy1yaWdodC1saW5lJzogJ2NoZXZyb24tcmlnaHQnLFxuICAgICAgJ2Fycm93LWRvd24tcy1saW5lJzogJ2NoZXZyb24tZG93bicsXG4gICAgICAnZXh0ZXJuYWwtbGluay1saW5lJzogJ2V4dGVybmFsLWxpbmsnLFxuICAgICAgJ3VzZXItbGluZSc6ICd1c2VyJyxcbiAgICAgICdzZXR0aW5ncy0zLWxpbmUnOiAnc2V0dGluZ3MnXG4gICAgfVxuICB9O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgc2FuaXRpemVyOiBEb21TYW5pdGl6ZXIpIHt9XG5cbiAgZ2V0IHJlc29sdmVkU3Ryb2tlV2lkdGgoKTogbnVtYmVyIHtcbiAgICBjb25zdCB2YWx1ZSA9IE51bWJlcih0aGlzLnN0cm9rZVdpZHRoKTtcbiAgICBpZiAoTnVtYmVyLmlzRmluaXRlKHZhbHVlKSAmJiB2YWx1ZSA+IDApIHtcbiAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5saWJyYXJ5ID09PSAncGhvc3Bob3InKSB7XG4gICAgICByZXR1cm4gMS42O1xuICAgIH1cblxuICAgIGlmICh0aGlzLmxpYnJhcnkgPT09ICd0YWJsZXInKSB7XG4gICAgICByZXR1cm4gMS44O1xuICAgIH1cblxuICAgIHJldHVybiAxLjU7XG4gIH1cblxuICBnZXQgcmVzb2x2ZWRTaXplKCk6IG51bWJlciB7XG4gICAgY29uc3QgdmFsdWUgPSBOdW1iZXIodGhpcy5zaXplKTtcbiAgICByZXR1cm4gTnVtYmVyLmlzRmluaXRlKHZhbHVlKSAmJiB2YWx1ZSA+IDAgPyB2YWx1ZSA6IDE2O1xuICB9XG5cbiAgZ2V0IGljb25LZXkoKTogc3RyaW5nIHtcbiAgICBjb25zdCByYXcgPSBgJHt0aGlzLm5hbWUgfHwgJyd9YC50cmltKCk7XG4gICAgaWYgKCFyYXcpIHtcbiAgICAgIHJldHVybiAnY2lyY2xlJztcbiAgICB9XG5cbiAgICBjb25zdCB0cmltbWVkID0gcmF3LnJlcGxhY2UoL14obHVjaWRlfHRhYmxlcnxodWdlaWNvbnN8cGhvc3Bob3J8cmVtaXgpXFwvLywgJycpO1xuICAgIGNvbnN0IGFsaWFzZXMgPSB0aGlzLmFsaWFzTWFwQnlMaWJyYXJ5W3RoaXMubGlicmFyeV0gPz8ge307XG4gICAgcmV0dXJuIGFsaWFzZXNbdHJpbW1lZF0gPz8gdHJpbW1lZDtcbiAgfVxuXG4gIGdldCBzdmdNYXJrdXAoKTogU2FmZUh0bWwge1xuICAgIGNvbnN0IG5vZGUgPSB0aGlzLnJlc29sdmVJY29uTm9kZSh0aGlzLmljb25LZXkpID8/IEZBTExCQUNLX05PREU7XG4gICAgY29uc3Qgc3Ryb2tlV2lkdGggPSB0aGlzLmVzY2FwZUF0dHIodGhpcy5yZXNvbHZlZFN0cm9rZVdpZHRoKTtcbiAgICBjb25zdCBzaXplID0gdGhpcy5lc2NhcGVBdHRyKHRoaXMucmVzb2x2ZWRTaXplKTtcblxuICAgIGNvbnN0IGJvZHkgPSBub2RlXG4gICAgICAubWFwKChbdGFnLCBhdHRyc10pID0+IHtcbiAgICAgICAgY29uc3Qgc2VyaWFsaXplZEF0dHJzID0gT2JqZWN0LmVudHJpZXMoYXR0cnMpXG4gICAgICAgICAgLm1hcCgoW2tleSwgdmFsdWVdKSA9PiBgJHtrZXl9PVwiJHt0aGlzLmVzY2FwZUF0dHIodmFsdWUpfVwiYClcbiAgICAgICAgICAuam9pbignICcpO1xuXG4gICAgICAgIHJldHVybiBzZXJpYWxpemVkQXR0cnMgPyBgPCR7dGFnfSAke3NlcmlhbGl6ZWRBdHRyc30+PC8ke3RhZ30+YCA6IGA8JHt0YWd9PjwvJHt0YWd9PmA7XG4gICAgICB9KVxuICAgICAgLmpvaW4oJycpO1xuXG4gICAgY29uc3Qgc3ZnID0gYDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiJHtzaXplfVwiIGhlaWdodD1cIiR7c2l6ZX1cIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgZmlsbD1cIm5vbmVcIiBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBzdHJva2Utd2lkdGg9XCIke3N0cm9rZVdpZHRofVwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiPiR7Ym9keX08L3N2Zz5gO1xuXG4gICAgcmV0dXJuIHRoaXMuc2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKHN2Zyk7XG4gIH1cblxuICBwcml2YXRlIHJlc29sdmVJY29uTm9kZShpY29uTmFtZTogc3RyaW5nKTogSWNvbk5vZGUgfCBudWxsIHtcbiAgICBjb25zdCBub3JtYWxpemVkID0gdGhpcy5ub3JtYWxpemVJY29uTmFtZShpY29uTmFtZSk7XG4gICAgcmV0dXJuIHRoaXMubHVjaWRlSW5kZXguZ2V0KG5vcm1hbGl6ZWQpID8/IG51bGw7XG4gIH1cblxuICBwcml2YXRlIG5vcm1hbGl6ZUljb25OYW1lKG5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGAke25hbWUgfHwgJyd9YC50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoL1teYS16MC05XS9nLCAnJyk7XG4gIH1cblxuICBwcml2YXRlIGJ1aWxkTHVjaWRlSW5kZXgoKTogTWFwPHN0cmluZywgSWNvbk5vZGU+IHtcbiAgICBjb25zdCBtYXAgPSBuZXcgTWFwPHN0cmluZywgSWNvbk5vZGU+KCk7XG5cbiAgICBPYmplY3QuZW50cmllcyhpY29ucykuZm9yRWFjaCgoW2ljb25OYW1lLCBpY29uTm9kZV0pID0+IHtcbiAgICAgIG1hcC5zZXQodGhpcy5ub3JtYWxpemVJY29uTmFtZShpY29uTmFtZSksIGljb25Ob2RlIGFzIEljb25Ob2RlKTtcbiAgICB9KTtcblxuICAgIHJldHVybiBtYXA7XG4gIH1cblxuICBwcml2YXRlIGVzY2FwZUF0dHIodmFsdWU6IHVua25vd24pOiBzdHJpbmcge1xuICAgIHJldHVybiBgJHt2YWx1ZSA/PyAnJ31gXG4gICAgICAucmVwbGFjZSgvJi9nLCAnJmFtcDsnKVxuICAgICAgLnJlcGxhY2UoL1wiL2csICcmcXVvdDsnKVxuICAgICAgLnJlcGxhY2UoLzwvZywgJyZsdDsnKVxuICAgICAgLnJlcGxhY2UoLz4vZywgJyZndDsnKTtcbiAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cImFzc2V0VXJsOyBlbHNlIGlubGluZUljb25cIj5cbiAgPGltZ1xuICAgIFtzcmNdPVwiYXNzZXRVcmxcIlxuICAgIFtzdHlsZS53aWR0aC5weF09XCJyZXNvbHZlZFNpemVcIlxuICAgIFtzdHlsZS5oZWlnaHQucHhdPVwicmVzb2x2ZWRTaXplXCJcbiAgICBbbmdDbGFzc109XCJjbGFzc05hbWVcIlxuICAgIFthdHRyLnJvbGVdPVwiZGVjb3JhdGl2ZSA/IG51bGwgOiAnaW1nJ1wiXG4gICAgW2F0dHIuYXJpYS1oaWRkZW5dPVwiZGVjb3JhdGl2ZSA/ICd0cnVlJyA6IG51bGxcIlxuICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiIWRlY29yYXRpdmUgPyBhcmlhTGFiZWwgfHwgbmFtZSA6IG51bGxcIlxuICAgIGFsdD1cIlwiXG4gIC8+XG48L25nLWNvbnRhaW5lcj5cblxuPG5nLXRlbXBsYXRlICNpbmxpbmVJY29uPlxuICA8c3BhblxuICAgIFtuZ0NsYXNzXT1cImNsYXNzTmFtZVwiXG4gICAgW3N0eWxlLmRpc3BsYXldPVwiJ2lubGluZS1mbGV4J1wiXG4gICAgW3N0eWxlLmFsaWduLWl0ZW1zXT1cIidjZW50ZXInXCJcbiAgICBbc3R5bGUuanVzdGlmeS1jb250ZW50XT1cIidjZW50ZXInXCJcbiAgICBbc3R5bGUubGluZS1oZWlnaHRdPVwiMFwiXG4gICAgW3N0eWxlLndpZHRoLnB4XT1cInJlc29sdmVkU2l6ZVwiXG4gICAgW3N0eWxlLmhlaWdodC5weF09XCJyZXNvbHZlZFNpemVcIlxuICAgIFthdHRyLnJvbGVdPVwiZGVjb3JhdGl2ZSA/IG51bGwgOiAnaW1nJ1wiXG4gICAgW2F0dHIuYXJpYS1oaWRkZW5dPVwiZGVjb3JhdGl2ZSA/ICd0cnVlJyA6IG51bGxcIlxuICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiIWRlY29yYXRpdmUgPyBhcmlhTGFiZWwgfHwgbmFtZSA6IG51bGxcIlxuICAgIFtpbm5lckhUTUxdPVwic3ZnTWFya3VwXCJcbiAgPjwvc3Bhbj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=