valtech-components 2.0.592 → 2.0.594
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.
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import { Component, Input, signal } from '@angular/core';
|
|
1
|
+
import { Component, computed, inject, Input, signal } from '@angular/core';
|
|
2
2
|
import { CommonModule } from '@angular/common';
|
|
3
3
|
import { RouterLink } from '@angular/router';
|
|
4
4
|
import { IonButton } from '@ionic/angular/standalone';
|
|
5
|
+
import { I18nService } from '../../../services/i18n';
|
|
5
6
|
import * as i0 from "@angular/core";
|
|
6
7
|
import * as i1 from "@angular/common";
|
|
7
8
|
/**
|
|
@@ -28,14 +29,30 @@ import * as i1 from "@angular/common";
|
|
|
28
29
|
export class Terminal404Component {
|
|
29
30
|
constructor() {
|
|
30
31
|
this.props = {};
|
|
32
|
+
this.i18n = inject(I18nService);
|
|
31
33
|
this.requestedPath = signal('page-not-found');
|
|
34
|
+
// i18n texts
|
|
35
|
+
this.directoryNotFound = computed(() => this.i18n.t('terminal404.directoryNotFound', 'No such file or directory'));
|
|
36
|
+
this.searching = computed(() => this.i18n.t('terminal404.searching', 'Searching...'));
|
|
37
|
+
this.noResults = computed(() => this.i18n.t('terminal404.noResults', 'No results found.'));
|
|
38
|
+
this.searchTerm = computed(() => this.i18n.t('terminal404.searchTerm', 'page'));
|
|
32
39
|
}
|
|
33
|
-
get
|
|
40
|
+
get containerStyles() {
|
|
41
|
+
const styles = {};
|
|
42
|
+
// Background gradient
|
|
34
43
|
const bg = this.props.backgroundColor;
|
|
35
44
|
if (bg) {
|
|
36
|
-
|
|
45
|
+
styles['background'] = `linear-gradient(135deg, ${bg.start} 0%, ${bg.middle} 50%, ${bg.end} 100%)`;
|
|
37
46
|
}
|
|
38
|
-
|
|
47
|
+
else {
|
|
48
|
+
styles['background'] = 'linear-gradient(135deg, #ede9fe 0%, #ddd6fe 50%, #c4b5fd 100%)';
|
|
49
|
+
}
|
|
50
|
+
// Override primary color if provided
|
|
51
|
+
if (this.props.primaryColor) {
|
|
52
|
+
styles['--terminal-primary'] = this.props.primaryColor;
|
|
53
|
+
styles['--terminal-primary-light'] = this.lightenColor(this.props.primaryColor);
|
|
54
|
+
}
|
|
55
|
+
return styles;
|
|
39
56
|
}
|
|
40
57
|
ngOnInit() {
|
|
41
58
|
if (typeof window !== 'undefined') {
|
|
@@ -58,19 +75,9 @@ export class Terminal404Component {
|
|
|
58
75
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: Terminal404Component, isStandalone: true, selector: "val-terminal-404", inputs: { props: "props" }, ngImport: i0, template: `
|
|
59
76
|
<div
|
|
60
77
|
class="terminal-container"
|
|
61
|
-
[ngStyle]="
|
|
62
|
-
background: backgroundGradient
|
|
63
|
-
}"
|
|
78
|
+
[ngStyle]="containerStyles"
|
|
64
79
|
>
|
|
65
|
-
<div
|
|
66
|
-
class="error-code"
|
|
67
|
-
[ngStyle]="{
|
|
68
|
-
color: props.primaryColor || '#4a1d96',
|
|
69
|
-
textShadow: '0 0 40px ' + (props.primaryColor || '#4a1d96') + '4d'
|
|
70
|
-
}"
|
|
71
|
-
>
|
|
72
|
-
404
|
|
73
|
-
</div>
|
|
80
|
+
<div class="error-code">404</div>
|
|
74
81
|
|
|
75
82
|
<div
|
|
76
83
|
class="terminal"
|
|
@@ -92,24 +99,24 @@ export class Terminal404Component {
|
|
|
92
99
|
|
|
93
100
|
<div class="line">
|
|
94
101
|
<span class="error"
|
|
95
|
-
>bash: cd: /{{ requestedPath() }}:
|
|
102
|
+
>bash: cd: /{{ requestedPath() }}: {{ directoryNotFound() }}</span
|
|
96
103
|
>
|
|
97
104
|
</div>
|
|
98
105
|
|
|
99
106
|
<div class="line">
|
|
100
107
|
<span class="prompt">user@app</span>
|
|
101
108
|
<span class="command">:~$ </span>
|
|
102
|
-
<span class="command">sudo find / -name "
|
|
109
|
+
<span class="command">sudo find / -name "{{ searchTerm() }}"</span>
|
|
103
110
|
</div>
|
|
104
111
|
|
|
105
112
|
<div class="line">
|
|
106
113
|
<span class="info"
|
|
107
|
-
><span class="search-icon">🔍</span>
|
|
114
|
+
><span class="search-icon">🔍</span> {{ searching() }}</span
|
|
108
115
|
>
|
|
109
116
|
</div>
|
|
110
117
|
|
|
111
118
|
<div class="line">
|
|
112
|
-
<span class="warning">find:
|
|
119
|
+
<span class="warning">find: {{ noResults() }}</span>
|
|
113
120
|
</div>
|
|
114
121
|
|
|
115
122
|
<div class="line">
|
|
@@ -125,35 +132,21 @@ export class Terminal404Component {
|
|
|
125
132
|
class="home-button"
|
|
126
133
|
[routerLink]="props.homeRoute || '/'"
|
|
127
134
|
expand="block"
|
|
128
|
-
[ngStyle]="{
|
|
129
|
-
'--background': props.primaryColor || '#4a1d96',
|
|
130
|
-
'--background-hover': lightenColor(props.primaryColor || '#4a1d96')
|
|
131
|
-
}"
|
|
132
135
|
>
|
|
133
136
|
{{ props.homeButtonText || 'cd /home' }}
|
|
134
137
|
</ion-button>
|
|
135
138
|
</div>
|
|
136
139
|
</div>
|
|
137
|
-
`, isInline: true, styles: [":host{display:block;width:100
|
|
140
|
+
`, isInline: true, styles: [":host{display:block;width:100%;--terminal-primary: var(--ion-color-primary, #4a1d96);--terminal-primary-light: var(--ion-color-primary-tint, #5b21b6)}.terminal-container{min-height:70vh;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:2rem;border-radius:16px}.terminal{border-radius:12px;padding:0;max-width:600px;width:100%;box-shadow:0 20px 60px #0000004d;overflow:hidden}.terminal-header{background:#161b22;padding:12px 16px;display:flex;align-items:center;gap:8px}.terminal-dot{width:12px;height:12px;border-radius:50%}.dot-red{background:#ff5f56}.dot-yellow{background:#ffbd2e}.dot-green{background:#27ca40}.terminal-title{flex:1;text-align:center;color:#8b949e;font-size:.85rem;font-family:monospace}.terminal-body{padding:24px;font-family:Fira Code,Monaco,Consolas,monospace;font-size:.95rem;line-height:1.8}.line{margin-bottom:8px;opacity:0;animation:fadeIn .3s ease forwards}.line:nth-child(1){animation-delay:.2s}.line:nth-child(2){animation-delay:.8s}.line:nth-child(3){animation-delay:1.4s}.line:nth-child(4){animation-delay:2s}.line:nth-child(5){animation-delay:2.6s}.line:nth-child(6){animation-delay:3.2s}@keyframes fadeIn{to{opacity:1}}.prompt{color:#7ee787}.command{color:#c9d1d9}.error{color:#f85149}.info{color:#58a6ff}.warning{color:#d29922}.cursor{display:inline-block;width:10px;height:18px;background:#7ee787;margin-left:4px;animation:blink 1s step-end infinite;vertical-align:text-bottom}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}.error-code{font-size:6rem;font-weight:900;text-align:center;margin:.5rem 0 1rem;font-family:monospace}.action-container{margin-top:2rem;text-align:center;opacity:0;animation:fadeIn .5s ease forwards;animation-delay:3.8s}.home-button{--border-radius: 8px;--background: var(--terminal-primary);--background-hover: var(--terminal-primary-light);font-family:monospace}.error-code{color:var(--terminal-primary);text-shadow:0 0 40px color-mix(in srgb,var(--terminal-primary) 30%,transparent)}.search-icon{animation:searching 2s ease-in-out infinite;display:inline-block}@keyframes searching{0%,to{transform:translate(0)}25%{transform:translate(5px)}75%{transform:translate(-5px)}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }] }); }
|
|
138
141
|
}
|
|
139
142
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: Terminal404Component, decorators: [{
|
|
140
143
|
type: Component,
|
|
141
144
|
args: [{ selector: 'val-terminal-404', standalone: true, imports: [CommonModule, IonButton, RouterLink], template: `
|
|
142
145
|
<div
|
|
143
146
|
class="terminal-container"
|
|
144
|
-
[ngStyle]="
|
|
145
|
-
background: backgroundGradient
|
|
146
|
-
}"
|
|
147
|
+
[ngStyle]="containerStyles"
|
|
147
148
|
>
|
|
148
|
-
<div
|
|
149
|
-
class="error-code"
|
|
150
|
-
[ngStyle]="{
|
|
151
|
-
color: props.primaryColor || '#4a1d96',
|
|
152
|
-
textShadow: '0 0 40px ' + (props.primaryColor || '#4a1d96') + '4d'
|
|
153
|
-
}"
|
|
154
|
-
>
|
|
155
|
-
404
|
|
156
|
-
</div>
|
|
149
|
+
<div class="error-code">404</div>
|
|
157
150
|
|
|
158
151
|
<div
|
|
159
152
|
class="terminal"
|
|
@@ -175,24 +168,24 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
175
168
|
|
|
176
169
|
<div class="line">
|
|
177
170
|
<span class="error"
|
|
178
|
-
>bash: cd: /{{ requestedPath() }}:
|
|
171
|
+
>bash: cd: /{{ requestedPath() }}: {{ directoryNotFound() }}</span
|
|
179
172
|
>
|
|
180
173
|
</div>
|
|
181
174
|
|
|
182
175
|
<div class="line">
|
|
183
176
|
<span class="prompt">user@app</span>
|
|
184
177
|
<span class="command">:~$ </span>
|
|
185
|
-
<span class="command">sudo find / -name "
|
|
178
|
+
<span class="command">sudo find / -name "{{ searchTerm() }}"</span>
|
|
186
179
|
</div>
|
|
187
180
|
|
|
188
181
|
<div class="line">
|
|
189
182
|
<span class="info"
|
|
190
|
-
><span class="search-icon">🔍</span>
|
|
183
|
+
><span class="search-icon">🔍</span> {{ searching() }}</span
|
|
191
184
|
>
|
|
192
185
|
</div>
|
|
193
186
|
|
|
194
187
|
<div class="line">
|
|
195
|
-
<span class="warning">find:
|
|
188
|
+
<span class="warning">find: {{ noResults() }}</span>
|
|
196
189
|
</div>
|
|
197
190
|
|
|
198
191
|
<div class="line">
|
|
@@ -208,17 +201,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
208
201
|
class="home-button"
|
|
209
202
|
[routerLink]="props.homeRoute || '/'"
|
|
210
203
|
expand="block"
|
|
211
|
-
[ngStyle]="{
|
|
212
|
-
'--background': props.primaryColor || '#4a1d96',
|
|
213
|
-
'--background-hover': lightenColor(props.primaryColor || '#4a1d96')
|
|
214
|
-
}"
|
|
215
204
|
>
|
|
216
205
|
{{ props.homeButtonText || 'cd /home' }}
|
|
217
206
|
</ion-button>
|
|
218
207
|
</div>
|
|
219
208
|
</div>
|
|
220
|
-
`, styles: [":host{display:block;width:100
|
|
209
|
+
`, styles: [":host{display:block;width:100%;--terminal-primary: var(--ion-color-primary, #4a1d96);--terminal-primary-light: var(--ion-color-primary-tint, #5b21b6)}.terminal-container{min-height:70vh;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:2rem;border-radius:16px}.terminal{border-radius:12px;padding:0;max-width:600px;width:100%;box-shadow:0 20px 60px #0000004d;overflow:hidden}.terminal-header{background:#161b22;padding:12px 16px;display:flex;align-items:center;gap:8px}.terminal-dot{width:12px;height:12px;border-radius:50%}.dot-red{background:#ff5f56}.dot-yellow{background:#ffbd2e}.dot-green{background:#27ca40}.terminal-title{flex:1;text-align:center;color:#8b949e;font-size:.85rem;font-family:monospace}.terminal-body{padding:24px;font-family:Fira Code,Monaco,Consolas,monospace;font-size:.95rem;line-height:1.8}.line{margin-bottom:8px;opacity:0;animation:fadeIn .3s ease forwards}.line:nth-child(1){animation-delay:.2s}.line:nth-child(2){animation-delay:.8s}.line:nth-child(3){animation-delay:1.4s}.line:nth-child(4){animation-delay:2s}.line:nth-child(5){animation-delay:2.6s}.line:nth-child(6){animation-delay:3.2s}@keyframes fadeIn{to{opacity:1}}.prompt{color:#7ee787}.command{color:#c9d1d9}.error{color:#f85149}.info{color:#58a6ff}.warning{color:#d29922}.cursor{display:inline-block;width:10px;height:18px;background:#7ee787;margin-left:4px;animation:blink 1s step-end infinite;vertical-align:text-bottom}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}.error-code{font-size:6rem;font-weight:900;text-align:center;margin:.5rem 0 1rem;font-family:monospace}.action-container{margin-top:2rem;text-align:center;opacity:0;animation:fadeIn .5s ease forwards;animation-delay:3.8s}.home-button{--border-radius: 8px;--background: var(--terminal-primary);--background-hover: var(--terminal-primary-light);font-family:monospace}.error-code{color:var(--terminal-primary);text-shadow:0 0 40px color-mix(in srgb,var(--terminal-primary) 30%,transparent)}.search-icon{animation:searching 2s ease-in-out infinite;display:inline-block}@keyframes searching{0%,to{transform:translate(0)}25%{transform:translate(5px)}75%{transform:translate(-5px)}}\n"] }]
|
|
221
210
|
}], propDecorators: { props: [{
|
|
222
211
|
type: Input
|
|
223
212
|
}] } });
|
|
224
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVybWluYWwtNDA0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9vcmdhbmlzbXMvdGVybWluYWwtNDA0L3Rlcm1pbmFsLTQwNC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDJCQUEyQixDQUFDOzs7QUFHdEQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBb0JHO0FBc1FILE1BQU0sT0FBTyxvQkFBb0I7SUFyUWpDO1FBc1FXLFVBQUssR0FBd0IsRUFBRSxDQUFDO1FBRXpDLGtCQUFhLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7S0E0QjFDO0lBMUJDLElBQUksa0JBQWtCO1FBQ3BCLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUFDO1FBQ3RDLElBQUksRUFBRSxFQUFFLENBQUM7WUFDUCxPQUFPLDJCQUEyQixFQUFFLENBQUMsS0FBSyxRQUFRLEVBQUUsQ0FBQyxNQUFNLFNBQVMsRUFBRSxDQUFDLEdBQUcsUUFBUSxDQUFDO1FBQ3JGLENBQUM7UUFDRCxPQUFPLGdFQUFnRSxDQUFDO0lBQzFFLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxPQUFPLE1BQU0sS0FBSyxXQUFXLEVBQUUsQ0FBQztZQUNsQyxNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksU0FBUyxDQUFDO1lBQzVELElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQy9CLENBQUM7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxZQUFZLENBQUMsR0FBVztRQUN0Qix5Q0FBeUM7UUFDekMsTUFBTSxHQUFHLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQy9DLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxJQUFJLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBQzFDLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFDcEQsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFDL0MsT0FBTyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQztJQUN4RSxDQUFDOytHQTlCVSxvQkFBb0I7bUdBQXBCLG9CQUFvQix3R0FqRnJCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBK0VULDYzREFoUVMsWUFBWSxvSEFBRSxTQUFTLG9QQUFFLFVBQVU7OzRGQWtRbEMsb0JBQW9CO2tCQXJRaEMsU0FBUzsrQkFDRSxrQkFBa0IsY0FDaEIsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLFNBQVMsRUFBRSxVQUFVLENBQUMsWUFpTHBDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBK0VUOzhCQUdRLEtBQUs7c0JBQWIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgUm91dGVyTGluayB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBJb25CdXR0b24gfSBmcm9tICdAaW9uaWMvYW5ndWxhci9zdGFuZGFsb25lJztcbmltcG9ydCB7IFRlcm1pbmFsNDA0TWV0YWRhdGEgfSBmcm9tICcuL3R5cGVzJztcblxuLyoqXG4gKiB2YWwtdGVybWluYWwtNDA0XG4gKlxuICogQSBmdW4sIHRlcm1pbmFsLXN0eWxlZCA0MDQgcGFnZSBjb21wb25lbnQgd2l0aCB0eXBpbmcgYW5pbWF0aW9ucy5cbiAqXG4gKiBGZWF0dXJlczpcbiAqIC0gVGVybWluYWwgd2luZG93IGFlc3RoZXRpYyB3aXRoIGNvbG9yZWQgZG90c1xuICogLSBUeXBpbmcgYW5pbWF0aW9uIGVmZmVjdCB3aXRoIHNlcXVlbnRpYWwgbGluZSByZXZlYWxzXG4gKiAtIEJsaW5raW5nIGN1cnNvclxuICogLSBDdXN0b21pemFibGUgY29sb3JzIHRvIG1hdGNoIGJyYW5kXG4gKiAtIFNob3dzIHRoZSBhdHRlbXB0ZWQgcGF0aFxuICpcbiAqIEBleGFtcGxlXG4gKiA8dmFsLXRlcm1pbmFsLTQwNFxuICogICBbcHJvcHNdPVwie1xuICogICAgIHByaW1hcnlDb2xvcjogJyM0YTFkOTYnLFxuICogICAgIGhvbWVSb3V0ZTogJy8nLFxuICogICAgIGhvbWVCdXR0b25UZXh0OiAnY2QgL2hvbWUnXG4gKiAgIH1cIlxuICogPjwvdmFsLXRlcm1pbmFsLTQwND5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsLXRlcm1pbmFsLTQwNCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIElvbkJ1dHRvbiwgUm91dGVyTGlua10sXG4gIHN0eWxlczogW1xuICAgIGBcbiAgICAgIDpob3N0IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgfVxuXG4gICAgICAudGVybWluYWwtY29udGFpbmVyIHtcbiAgICAgICAgbWluLWhlaWdodDogNzB2aDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHBhZGRpbmc6IDJyZW07XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDE2cHg7XG4gICAgICB9XG5cbiAgICAgIC50ZXJtaW5hbCB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1heC13aWR0aDogNjAwcHg7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBib3gtc2hhZG93OiAwIDIwcHggNjBweCByZ2JhKDAsIDAsIDAsIDAuMyk7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICB9XG5cbiAgICAgIC50ZXJtaW5hbC1oZWFkZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiAjMTYxYjIyO1xuICAgICAgICBwYWRkaW5nOiAxMnB4IDE2cHg7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGdhcDogOHB4O1xuICAgICAgfVxuXG4gICAgICAudGVybWluYWwtZG90IHtcbiAgICAgICAgd2lkdGg6IDEycHg7XG4gICAgICAgIGhlaWdodDogMTJweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgfVxuXG4gICAgICAuZG90LXJlZCB7XG4gICAgICAgIGJhY2tncm91bmQ6ICNmZjVmNTY7XG4gICAgICB9XG4gICAgICAuZG90LXllbGxvdyB7XG4gICAgICAgIGJhY2tncm91bmQ6ICNmZmJkMmU7XG4gICAgICB9XG4gICAgICAuZG90LWdyZWVuIHtcbiAgICAgICAgYmFja2dyb3VuZDogIzI3Y2E0MDtcbiAgICAgIH1cblxuICAgICAgLnRlcm1pbmFsLXRpdGxlIHtcbiAgICAgICAgZmxleDogMTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjb2xvcjogIzhiOTQ5ZTtcbiAgICAgICAgZm9udC1zaXplOiAwLjg1cmVtO1xuICAgICAgICBmb250LWZhbWlseTogbW9ub3NwYWNlO1xuICAgICAgfVxuXG4gICAgICAudGVybWluYWwtYm9keSB7XG4gICAgICAgIHBhZGRpbmc6IDI0cHg7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAnRmlyYSBDb2RlJywgJ01vbmFjbycsICdDb25zb2xhcycsIG1vbm9zcGFjZTtcbiAgICAgICAgZm9udC1zaXplOiAwLjk1cmVtO1xuICAgICAgICBsaW5lLWhlaWdodDogMS44O1xuICAgICAgfVxuXG4gICAgICAubGluZSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDhweDtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgYW5pbWF0aW9uOiBmYWRlSW4gMC4zcyBlYXNlIGZvcndhcmRzO1xuICAgICAgfVxuXG4gICAgICAubGluZTpudGgtY2hpbGQoMSkge1xuICAgICAgICBhbmltYXRpb24tZGVsYXk6IDAuMnM7XG4gICAgICB9XG4gICAgICAubGluZTpudGgtY2hpbGQoMikge1xuICAgICAgICBhbmltYXRpb24tZGVsYXk6IDAuOHM7XG4gICAgICB9XG4gICAgICAubGluZTpudGgtY2hpbGQoMykge1xuICAgICAgICBhbmltYXRpb24tZGVsYXk6IDEuNHM7XG4gICAgICB9XG4gICAgICAubGluZTpudGgtY2hpbGQoNCkge1xuICAgICAgICBhbmltYXRpb24tZGVsYXk6IDJzO1xuICAgICAgfVxuICAgICAgLmxpbmU6bnRoLWNoaWxkKDUpIHtcbiAgICAgICAgYW5pbWF0aW9uLWRlbGF5OiAyLjZzO1xuICAgICAgfVxuICAgICAgLmxpbmU6bnRoLWNoaWxkKDYpIHtcbiAgICAgICAgYW5pbWF0aW9uLWRlbGF5OiAzLjJzO1xuICAgICAgfVxuXG4gICAgICBAa2V5ZnJhbWVzIGZhZGVJbiB7XG4gICAgICAgIHRvIHtcbiAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC5wcm9tcHQge1xuICAgICAgICBjb2xvcjogIzdlZTc4NztcbiAgICAgIH1cblxuICAgICAgLmNvbW1hbmQge1xuICAgICAgICBjb2xvcjogI2M5ZDFkOTtcbiAgICAgIH1cblxuICAgICAgLmVycm9yIHtcbiAgICAgICAgY29sb3I6ICNmODUxNDk7XG4gICAgICB9XG5cbiAgICAgIC5pbmZvIHtcbiAgICAgICAgY29sb3I6ICM1OGE2ZmY7XG4gICAgICB9XG5cbiAgICAgIC53YXJuaW5nIHtcbiAgICAgICAgY29sb3I6ICNkMjk5MjI7XG4gICAgICB9XG5cbiAgICAgIC5jdXJzb3Ige1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHdpZHRoOiAxMHB4O1xuICAgICAgICBoZWlnaHQ6IDE4cHg7XG4gICAgICAgIGJhY2tncm91bmQ6ICM3ZWU3ODc7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiA0cHg7XG4gICAgICAgIGFuaW1hdGlvbjogYmxpbmsgMXMgc3RlcC1lbmQgaW5maW5pdGU7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiB0ZXh0LWJvdHRvbTtcbiAgICAgIH1cblxuICAgICAgQGtleWZyYW1lcyBibGluayB7XG4gICAgICAgIDAlLFxuICAgICAgICAxMDAlIHtcbiAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB9XG4gICAgICAgIDUwJSB7XG4gICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAuZXJyb3ItY29kZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogNnJlbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDkwMDtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBtYXJnaW46IDAuNXJlbSAwIDFyZW07XG4gICAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7XG4gICAgICB9XG5cbiAgICAgIC5hY3Rpb24tY29udGFpbmVyIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMnJlbTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICBhbmltYXRpb246IGZhZGVJbiAwLjVzIGVhc2UgZm9yd2FyZHM7XG4gICAgICAgIGFuaW1hdGlvbi1kZWxheTogMy44cztcbiAgICAgIH1cblxuICAgICAgLmhvbWUtYnV0dG9uIHtcbiAgICAgICAgLS1ib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7XG4gICAgICB9XG5cbiAgICAgIC5zZWFyY2gtaWNvbiB7XG4gICAgICAgIGFuaW1hdGlvbjogc2VhcmNoaW5nIDJzIGVhc2UtaW4tb3V0IGluZmluaXRlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICB9XG5cbiAgICAgIEBrZXlmcmFtZXMgc2VhcmNoaW5nIHtcbiAgICAgICAgMCUsXG4gICAgICAgIDEwMCUge1xuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcbiAgICAgICAgfVxuICAgICAgICAyNSUge1xuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCg1cHgpO1xuICAgICAgICB9XG4gICAgICAgIDc1JSB7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01cHgpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgYCxcbiAgXSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cInRlcm1pbmFsLWNvbnRhaW5lclwiXG4gICAgICBbbmdTdHlsZV09XCJ7XG4gICAgICAgIGJhY2tncm91bmQ6IGJhY2tncm91bmRHcmFkaWVudFxuICAgICAgfVwiXG4gICAgPlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cImVycm9yLWNvZGVcIlxuICAgICAgICBbbmdTdHlsZV09XCJ7XG4gICAgICAgICAgY29sb3I6IHByb3BzLnByaW1hcnlDb2xvciB8fCAnIzRhMWQ5NicsXG4gICAgICAgICAgdGV4dFNoYWRvdzogJzAgMCA0MHB4ICcgKyAocHJvcHMucHJpbWFyeUNvbG9yIHx8ICcjNGExZDk2JykgKyAnNGQnXG4gICAgICAgIH1cIlxuICAgICAgPlxuICAgICAgICA0MDRcbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwidGVybWluYWxcIlxuICAgICAgICBbbmdTdHlsZV09XCJ7IGJhY2tncm91bmQ6IHByb3BzLnRlcm1pbmFsQmFja2dyb3VuZCB8fCAnIzBkMTExNycgfVwiXG4gICAgICA+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXJtaW5hbC1oZWFkZXJcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidGVybWluYWwtZG90IGRvdC1yZWRcIj48L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidGVybWluYWwtZG90IGRvdC15ZWxsb3dcIj48L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidGVybWluYWwtZG90IGRvdC1ncmVlblwiPjwvZGl2PlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGVybWluYWwtdGl0bGVcIj5iYXNoIC0gNDA0PC9zcGFuPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwidGVybWluYWwtYm9keVwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJsaW5lXCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInByb21wdFwiPnVzZXImIzY0O2FwcDwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY29tbWFuZFwiPjp+JCA8L3NwYW4+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNvbW1hbmRcIj5jZCAve3sgcmVxdWVzdGVkUGF0aCgpIH19PC9zcGFuPlxuICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImxpbmVcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZXJyb3JcIlxuICAgICAgICAgICAgICA+YmFzaDogY2Q6IC97eyByZXF1ZXN0ZWRQYXRoKCkgfX06IE5vIGV4aXN0ZSBlbCBkaXJlY3RvcmlvPC9zcGFuXG4gICAgICAgICAgICA+XG4gICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibGluZVwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJwcm9tcHRcIj51c2VyJiM2NDthcHA8L3NwYW4+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNvbW1hbmRcIj46fiQgPC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjb21tYW5kXCI+c3VkbyBmaW5kIC8gLW5hbWUgXCJwYWdpbmFcIjwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJsaW5lXCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImluZm9cIlxuICAgICAgICAgICAgICA+PHNwYW4gY2xhc3M9XCJzZWFyY2gtaWNvblwiPvCflI08L3NwYW4+IEJ1c2NhbmRvLi4uPC9zcGFuXG4gICAgICAgICAgICA+XG4gICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibGluZVwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ3YXJuaW5nXCI+ZmluZDogTm8gc2UgZW5jb250cmFyb24gcmVzdWx0YWRvcy48L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibGluZVwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJwcm9tcHRcIj51c2VyJiM2NDthcHA8L3NwYW4+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNvbW1hbmRcIj46fiQgPC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjdXJzb3JcIj48L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJhY3Rpb24tY29udGFpbmVyXCI+XG4gICAgICAgIDxpb24tYnV0dG9uXG4gICAgICAgICAgY2xhc3M9XCJob21lLWJ1dHRvblwiXG4gICAgICAgICAgW3JvdXRlckxpbmtdPVwicHJvcHMuaG9tZVJvdXRlIHx8ICcvJ1wiXG4gICAgICAgICAgZXhwYW5kPVwiYmxvY2tcIlxuICAgICAgICAgIFtuZ1N0eWxlXT1cIntcbiAgICAgICAgICAgICctLWJhY2tncm91bmQnOiBwcm9wcy5wcmltYXJ5Q29sb3IgfHwgJyM0YTFkOTYnLFxuICAgICAgICAgICAgJy0tYmFja2dyb3VuZC1ob3Zlcic6IGxpZ2h0ZW5Db2xvcihwcm9wcy5wcmltYXJ5Q29sb3IgfHwgJyM0YTFkOTYnKVxuICAgICAgICAgIH1cIlxuICAgICAgICA+XG4gICAgICAgICAge3sgcHJvcHMuaG9tZUJ1dHRvblRleHQgfHwgJ2NkIC9ob21lJyB9fVxuICAgICAgICA8L2lvbi1idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgYCxcbn0pXG5leHBvcnQgY2xhc3MgVGVybWluYWw0MDRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSBwcm9wczogVGVybWluYWw0MDRNZXRhZGF0YSA9IHt9O1xuXG4gIHJlcXVlc3RlZFBhdGggPSBzaWduYWwoJ3BhZ2Utbm90LWZvdW5kJyk7XG5cbiAgZ2V0IGJhY2tncm91bmRHcmFkaWVudCgpOiBzdHJpbmcge1xuICAgIGNvbnN0IGJnID0gdGhpcy5wcm9wcy5iYWNrZ3JvdW5kQ29sb3I7XG4gICAgaWYgKGJnKSB7XG4gICAgICByZXR1cm4gYGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICR7Ymcuc3RhcnR9IDAlLCAke2JnLm1pZGRsZX0gNTAlLCAke2JnLmVuZH0gMTAwJSlgO1xuICAgIH1cbiAgICByZXR1cm4gJ2xpbmVhci1ncmFkaWVudCgxMzVkZWcsICNlZGU5ZmUgMCUsICNkZGQ2ZmUgNTAlLCAjYzRiNWZkIDEwMCUpJztcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGlmICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgY29uc3QgcGF0aCA9IHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZS5zbGljZSgxKSB8fCAndW5rbm93bic7XG4gICAgICB0aGlzLnJlcXVlc3RlZFBhdGguc2V0KHBhdGgpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBMaWdodGVuIGEgaGV4IGNvbG9yIGZvciBob3ZlciBzdGF0ZXNcbiAgICovXG4gIGxpZ2h0ZW5Db2xvcihoZXg6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgLy8gU2ltcGxlIGxpZ2h0ZW4gYnkgYWRkaW5nIHRvIFJHQiB2YWx1ZXNcbiAgICBjb25zdCBudW0gPSBwYXJzZUludChoZXgucmVwbGFjZSgnIycsICcnKSwgMTYpO1xuICAgIGNvbnN0IHIgPSBNYXRoLm1pbigyNTUsIChudW0gPj4gMTYpICsgMjApO1xuICAgIGNvbnN0IGcgPSBNYXRoLm1pbigyNTUsICgobnVtID4+IDgpICYgMHgwMGZmKSArIDIwKTtcbiAgICBjb25zdCBiID0gTWF0aC5taW4oMjU1LCAobnVtICYgMHgwMDAwZmYpICsgMjApO1xuICAgIHJldHVybiBgIyR7KChyIDw8IDE2KSB8IChnIDw8IDgpIHwgYikudG9TdHJpbmcoMTYpLnBhZFN0YXJ0KDYsICcwJyl9YDtcbiAgfVxufVxuIl19
|
|
213
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVybWluYWwtNDA0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9vcmdhbmlzbXMvdGVybWluYWwtNDA0L3Rlcm1pbmFsLTQwNC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFdEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7QUFFckQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBb0JHO0FBaVFILE1BQU0sT0FBTyxvQkFBb0I7SUFoUWpDO1FBaVFXLFVBQUssR0FBd0IsRUFBRSxDQUFDO1FBRWpDLFNBQUksR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7UUFFbkMsa0JBQWEsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUV6QyxhQUFhO1FBQ2Isc0JBQWlCLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUNoQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQywrQkFBK0IsRUFBRSwyQkFBMkIsQ0FBQyxDQUMxRSxDQUFDO1FBQ0YsY0FBUyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FDeEIsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsdUJBQXVCLEVBQUUsY0FBYyxDQUFDLENBQ3JELENBQUM7UUFDRixjQUFTLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUN4QixJQUFJLENBQUMsSUFBSSxDQUFD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Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBaUVUOzhCQUdRLEtBQUs7c0JBQWIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgY29tcHV0ZWQsIGluamVjdCwgSW5wdXQsIE9uSW5pdCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgUm91dGVyTGluayB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBJb25CdXR0b24gfSBmcm9tICdAaW9uaWMvYW5ndWxhci9zdGFuZGFsb25lJztcbmltcG9ydCB7IFRlcm1pbmFsNDA0TWV0YWRhdGEgfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IEkxOG5TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvaTE4bic7XG5cbi8qKlxuICogdmFsLXRlcm1pbmFsLTQwNFxuICpcbiAqIEEgZnVuLCB0ZXJtaW5hbC1zdHlsZWQgNDA0IHBhZ2UgY29tcG9uZW50IHdpdGggdHlwaW5nIGFuaW1hdGlvbnMuXG4gKlxuICogRmVhdHVyZXM6XG4gKiAtIFRlcm1pbmFsIHdpbmRvdyBhZXN0aGV0aWMgd2l0aCBjb2xvcmVkIGRvdHNcbiAqIC0gVHlwaW5nIGFuaW1hdGlvbiBlZmZlY3Qgd2l0aCBzZXF1ZW50aWFsIGxpbmUgcmV2ZWFsc1xuICogLSBCbGlua2luZyBjdXJzb3JcbiAqIC0gQ3VzdG9taXphYmxlIGNvbG9ycyB0byBtYXRjaCBicmFuZFxuICogLSBTaG93cyB0aGUgYXR0ZW1wdGVkIHBhdGhcbiAqXG4gKiBAZXhhbXBsZVxuICogPHZhbC10ZXJtaW5hbC00MDRcbiAqICAgW3Byb3BzXT1cIntcbiAqICAgICBwcmltYXJ5Q29sb3I6ICcjNGExZDk2JyxcbiAqICAgICBob21lUm91dGU6ICcvJyxcbiAqICAgICBob21lQnV0dG9uVGV4dDogJ2NkIC9ob21lJ1xuICogICB9XCJcbiAqID48L3ZhbC10ZXJtaW5hbC00MDQ+XG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbC10ZXJtaW5hbC00MDQnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBJb25CdXR0b24sIFJvdXRlckxpbmtdLFxuICBzdHlsZXM6IFtcbiAgICBgXG4gICAgICA6aG9zdCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgLS10ZXJtaW5hbC1wcmltYXJ5OiB2YXIoLS1pb24tY29sb3ItcHJpbWFyeSwgIzRhMWQ5Nik7XG4gICAgICAgIC0tdGVybWluYWwtcHJpbWFyeS1saWdodDogdmFyKC0taW9uLWNvbG9yLXByaW1hcnktdGludCwgIzViMjFiNik7XG4gICAgICB9XG5cbiAgICAgIC50ZXJtaW5hbC1jb250YWluZXIge1xuICAgICAgICBtaW4taGVpZ2h0OiA3MHZoO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgcGFkZGluZzogMnJlbTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMTZweDtcbiAgICAgIH1cblxuICAgICAgLnRlcm1pbmFsIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWF4LXdpZHRoOiA2MDBweDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMjBweCA2MHB4IHJnYmEoMCwgMCwgMCwgMC4zKTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgIH1cblxuICAgICAgLnRlcm1pbmFsLWhlYWRlciB7XG4gICAgICAgIGJhY2tncm91bmQ6ICMxNjFiMjI7XG4gICAgICAgIHBhZGRpbmc6IDEycHggMTZweDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiA4cHg7XG4gICAgICB9XG5cbiAgICAgIC50ZXJtaW5hbC1kb3Qge1xuICAgICAgICB3aWR0aDogMTJweDtcbiAgICAgICAgaGVpZ2h0OiAxMnB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICB9XG5cbiAgICAgIC5kb3QtcmVkIHtcbiAgICAgICAgYmFja2dyb3VuZDogI2ZmNWY1NjtcbiAgICAgIH1cbiAgICAgIC5kb3QteWVsbG93IHtcbiAgICAgICAgYmFja2dyb3VuZDogI2ZmYmQyZTtcbiAgICAgIH1cbiAgICAgIC5kb3QtZ3JlZW4ge1xuICAgICAgICBiYWNrZ3JvdW5kOiAjMjdjYTQwO1xuICAgICAgfVxuXG4gICAgICAudGVybWluYWwtdGl0bGUge1xuICAgICAgICBmbGV4OiAxO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGNvbG9yOiAjOGI5NDllO1xuICAgICAgICBmb250LXNpemU6IDAuODVyZW07XG4gICAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7XG4gICAgICB9XG5cbiAgICAgIC50ZXJtaW5hbC1ib2R5IHtcbiAgICAgICAgcGFkZGluZzogMjRweDtcbiAgICAgICAgZm9udC1mYW1pbHk6ICdGaXJhIENvZGUnLCAnTW9uYWNvJywgJ0NvbnNvbGFzJywgbW9ub3NwYWNlO1xuICAgICAgICBmb250LXNpemU6IDAuOTVyZW07XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjg7XG4gICAgICB9XG5cbiAgICAgIC5saW5lIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4O1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICBhbmltYXRpb246IGZhZGVJbiAwLjNzIGVhc2UgZm9yd2FyZHM7XG4gICAgICB9XG5cbiAgICAgIC5saW5lOm50aC1jaGlsZCgxKSB7XG4gICAgICAgIGFuaW1hdGlvbi1kZWxheTogMC4ycztcbiAgICAgIH1cbiAgICAgIC5saW5lOm50aC1jaGlsZCgyKSB7XG4gICAgICAgIGFuaW1hdGlvbi1kZWxheTogMC44cztcbiAgICAgIH1cbiAgICAgIC5saW5lOm50aC1jaGlsZCgzKSB7XG4gICAgICAgIGFuaW1hdGlvbi1kZWxheTogMS40cztcbiAgICAgIH1cbiAgICAgIC5saW5lOm50aC1jaGlsZCg0KSB7XG4gICAgICAgIGFuaW1hdGlvbi1kZWxheTogMnM7XG4gICAgICB9XG4gICAgICAubGluZTpudGgtY2hpbGQoNSkge1xuICAgICAgICBhbmltYXRpb24tZGVsYXk6IDIuNnM7XG4gICAgICB9XG4gICAgICAubGluZTpudGgtY2hpbGQoNikge1xuICAgICAgICBhbmltYXRpb24tZGVsYXk6IDMuMnM7XG4gICAgICB9XG5cbiAgICAgIEBrZXlmcmFtZXMgZmFkZUluIHtcbiAgICAgICAgdG8ge1xuICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLnByb21wdCB7XG4gICAgICAgIGNvbG9yOiAjN2VlNzg3O1xuICAgICAgfVxuXG4gICAgICAuY29tbWFuZCB7XG4gICAgICAgIGNvbG9yOiAjYzlkMWQ5O1xuICAgICAgfVxuXG4gICAgICAuZXJyb3Ige1xuICAgICAgICBjb2xvcjogI2Y4NTE0OTtcbiAgICAgIH1cblxuICAgICAgLmluZm8ge1xuICAgICAgICBjb2xvcjogIzU4YTZmZjtcbiAgICAgIH1cblxuICAgICAgLndhcm5pbmcge1xuICAgICAgICBjb2xvcjogI2QyOTkyMjtcbiAgICAgIH1cblxuICAgICAgLmN1cnNvciB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgd2lkdGg6IDEwcHg7XG4gICAgICAgIGhlaWdodDogMThweDtcbiAgICAgICAgYmFja2dyb3VuZDogIzdlZTc4NztcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDRweDtcbiAgICAgICAgYW5pbWF0aW9uOiBibGluayAxcyBzdGVwLWVuZCBpbmZpbml0ZTtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IHRleHQtYm90dG9tO1xuICAgICAgfVxuXG4gICAgICBAa2V5ZnJhbWVzIGJsaW5rIHtcbiAgICAgICAgMCUsXG4gICAgICAgIDEwMCUge1xuICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIH1cbiAgICAgICAgNTAlIHtcbiAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC5lcnJvci1jb2RlIHtcbiAgICAgICAgZm9udC1zaXplOiA2cmVtO1xuICAgICAgICBmb250LXdlaWdodDogOTAwO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbjogMC41cmVtIDAgMXJlbTtcbiAgICAgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTtcbiAgICAgIH1cblxuICAgICAgLmFjdGlvbi1jb250YWluZXIge1xuICAgICAgICBtYXJnaW4tdG9wOiAycmVtO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIGFuaW1hdGlvbjogZmFkZUluIDAuNXMgZWFzZSBmb3J3YXJkcztcbiAgICAgICAgYW5pbWF0aW9uLWRlbGF5OiAzLjhzO1xuICAgICAgfVxuXG4gICAgICAuaG9tZS1idXR0b24ge1xuICAgICAgICAtLWJvcmRlci1yYWRpdXM6IDhweDtcbiAgICAgICAgLS1iYWNrZ3JvdW5kOiB2YXIoLS10ZXJtaW5hbC1wcmltYXJ5KTtcbiAgICAgICAgLS1iYWNrZ3JvdW5kLWhvdmVyOiB2YXIoLS10ZXJtaW5hbC1wcmltYXJ5LWxpZ2h0KTtcbiAgICAgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTtcbiAgICAgIH1cblxuICAgICAgLmVycm9yLWNvZGUge1xuICAgICAgICBjb2xvcjogdmFyKC0tdGVybWluYWwtcHJpbWFyeSk7XG4gICAgICAgIHRleHQtc2hhZG93OiAwIDAgNDBweCBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tdGVybWluYWwtcHJpbWFyeSkgMzAlLCB0cmFuc3BhcmVudCk7XG4gICAgICB9XG5cbiAgICAgIC5zZWFyY2gtaWNvbiB7XG4gICAgICAgIGFuaW1hdGlvbjogc2VhcmNoaW5nIDJzIGVhc2UtaW4tb3V0IGluZmluaXRlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICB9XG5cbiAgICAgIEBrZXlmcmFtZXMgc2VhcmNoaW5nIHtcbiAgICAgICAgMCUsXG4gICAgICAgIDEwMCUge1xuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcbiAgICAgICAgfVxuICAgICAgICAyNSUge1xuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCg1cHgpO1xuICAgICAgICB9XG4gICAgICAgIDc1JSB7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01cHgpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgYCxcbiAgXSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cInRlcm1pbmFsLWNvbnRhaW5lclwiXG4gICAgICBbbmdTdHlsZV09XCJjb250YWluZXJTdHlsZXNcIlxuICAgID5cbiAgICAgIDxkaXYgY2xhc3M9XCJlcnJvci1jb2RlXCI+NDA0PC9kaXY+XG5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJ0ZXJtaW5hbFwiXG4gICAgICAgIFtuZ1N0eWxlXT1cInsgYmFja2dyb3VuZDogcHJvcHMudGVybWluYWxCYWNrZ3JvdW5kIHx8ICcjMGQxMTE3JyB9XCJcbiAgICAgID5cbiAgICAgICAgPGRpdiBjbGFzcz1cInRlcm1pbmFsLWhlYWRlclwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXJtaW5hbC1kb3QgZG90LXJlZFwiPjwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXJtaW5hbC1kb3QgZG90LXllbGxvd1wiPjwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXJtaW5hbC1kb3QgZG90LWdyZWVuXCI+PC9kaXY+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXJtaW5hbC10aXRsZVwiPmJhc2ggLSA0MDQ8L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXJtaW5hbC1ib2R5XCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImxpbmVcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicHJvbXB0XCI+dXNlciYjNjQ7YXBwPC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjb21tYW5kXCI+On4kIDwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY29tbWFuZFwiPmNkIC97eyByZXF1ZXN0ZWRQYXRoKCkgfX08L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibGluZVwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJlcnJvclwiXG4gICAgICAgICAgICAgID5iYXNoOiBjZDogL3t7IHJlcXVlc3RlZFBhdGgoKSB9fToge3sgZGlyZWN0b3J5Tm90Rm91bmQoKSB9fTwvc3BhblxuICAgICAgICAgICAgPlxuICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImxpbmVcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicHJvbXB0XCI+dXNlciYjNjQ7YXBwPC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjb21tYW5kXCI+On4kIDwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY29tbWFuZFwiPnN1ZG8gZmluZCAvIC1uYW1lIFwie3sgc2VhcmNoVGVybSgpIH19XCI8L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibGluZVwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJpbmZvXCJcbiAgICAgICAgICAgICAgPjxzcGFuIGNsYXNzPVwic2VhcmNoLWljb25cIj7wn5SNPC9zcGFuPiB7eyBzZWFyY2hpbmcoKSB9fTwvc3BhblxuICAgICAgICAgICAgPlxuICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImxpbmVcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwid2FybmluZ1wiPmZpbmQ6IHt7IG5vUmVzdWx0cygpIH19PC9zcGFuPlxuICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImxpbmVcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicHJvbXB0XCI+dXNlciYjNjQ7YXBwPC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjb21tYW5kXCI+On4kIDwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY3Vyc29yXCI+PC9zcGFuPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IGNsYXNzPVwiYWN0aW9uLWNvbnRhaW5lclwiPlxuICAgICAgICA8aW9uLWJ1dHRvblxuICAgICAgICAgIGNsYXNzPVwiaG9tZS1idXR0b25cIlxuICAgICAgICAgIFtyb3V0ZXJMaW5rXT1cInByb3BzLmhvbWVSb3V0ZSB8fCAnLydcIlxuICAgICAgICAgIGV4cGFuZD1cImJsb2NrXCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7IHByb3BzLmhvbWVCdXR0b25UZXh0IHx8ICdjZCAvaG9tZScgfX1cbiAgICAgICAgPC9pb24tYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIGAsXG59KVxuZXhwb3J0IGNsYXNzIFRlcm1pbmFsNDA0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgcHJvcHM6IFRlcm1pbmFsNDA0TWV0YWRhdGEgPSB7fTtcblxuICBwcml2YXRlIGkxOG4gPSBpbmplY3QoSTE4blNlcnZpY2UpO1xuXG4gIHJlcXVlc3RlZFBhdGggPSBzaWduYWwoJ3BhZ2Utbm90LWZvdW5kJyk7XG5cbiAgLy8gaTE4biB0ZXh0c1xuICBkaXJlY3RvcnlOb3RGb3VuZCA9IGNvbXB1dGVkKCgpID0+XG4gICAgdGhpcy5pMThuLnQoJ3Rlcm1pbmFsNDA0LmRpcmVjdG9yeU5vdEZvdW5kJywgJ05vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnknKVxuICApO1xuICBzZWFyY2hpbmcgPSBjb21wdXRlZCgoKSA9PlxuICAgIHRoaXMuaTE4bi50KCd0ZXJtaW5hbDQwNC5zZWFyY2hpbmcnLCAnU2VhcmNoaW5nLi4uJylcbiAgKTtcbiAgbm9SZXN1bHRzID0gY29tcHV0ZWQoKCkgPT5cbiAgICB0aGlzLmkxOG4udCgndGVybWluYWw0MDQubm9SZXN1bHRzJywgJ05vIHJlc3VsdHMgZm91bmQuJylcbiAgKTtcbiAgc2VhcmNoVGVybSA9IGNvbXB1dGVkKCgpID0+XG4gICAgdGhpcy5pMThuLnQoJ3Rlcm1pbmFsNDA0LnNlYXJjaFRlcm0nLCAncGFnZScpXG4gICk7XG5cbiAgZ2V0IGNvbnRhaW5lclN0eWxlcygpOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+IHtcbiAgICBjb25zdCBzdHlsZXM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7fTtcblxuICAgIC8vIEJhY2tncm91bmQgZ3JhZGllbnRcbiAgICBjb25zdCBiZyA9IHRoaXMucHJvcHMuYmFja2dyb3VuZENvbG9yO1xuICAgIGlmIChiZykge1xuICAgICAgc3R5bGVzWydiYWNrZ3JvdW5kJ10gPSBgbGluZWFyLWdyYWRpZW50KDEzNWRlZywgJHtiZy5zdGFydH0gMCUsICR7YmcubWlkZGxlfSA1MCUsICR7YmcuZW5kfSAxMDAlKWA7XG4gICAgfSBlbHNlIHtcbiAgICAgIHN0eWxlc1snYmFja2dyb3VuZCddID0gJ2xpbmVhci1ncmFkaWVudCgxMzVkZWcsICNlZGU5ZmUgMCUsICNkZGQ2ZmUgNTAlLCAjYzRiNWZkIDEwMCUpJztcbiAgICB9XG5cbiAgICAvLyBPdmVycmlkZSBwcmltYXJ5IGNvbG9yIGlmIHByb3ZpZGVkXG4gICAgaWYgKHRoaXMucHJvcHMucHJpbWFyeUNvbG9yKSB7XG4gICAgICBzdHlsZXNbJy0tdGVybWluYWwtcHJpbWFyeSddID0gdGhpcy5wcm9wcy5wcmltYXJ5Q29sb3I7XG4gICAgICBzdHlsZXNbJy0tdGVybWluYWwtcHJpbWFyeS1saWdodCddID0gdGhpcy5saWdodGVuQ29sb3IodGhpcy5wcm9wcy5wcmltYXJ5Q29sb3IpO1xuICAgIH1cblxuICAgIHJldHVybiBzdHlsZXM7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIGNvbnN0IHBhdGggPSB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUuc2xpY2UoMSkgfHwgJ3Vua25vd24nO1xuICAgICAgdGhpcy5yZXF1ZXN0ZWRQYXRoLnNldChwYXRoKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogTGlnaHRlbiBhIGhleCBjb2xvciBmb3IgaG92ZXIgc3RhdGVzXG4gICAqL1xuICBsaWdodGVuQ29sb3IoaGV4OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIC8vIFNpbXBsZSBsaWdodGVuIGJ5IGFkZGluZyB0byBSR0IgdmFsdWVzXG4gICAgY29uc3QgbnVtID0gcGFyc2VJbnQoaGV4LnJlcGxhY2UoJyMnLCAnJyksIDE2KTtcbiAgICBjb25zdCByID0gTWF0aC5taW4oMjU1LCAobnVtID4+IDE2KSArIDIwKTtcbiAgICBjb25zdCBnID0gTWF0aC5taW4oMjU1LCAoKG51bSA+PiA4KSAmIDB4MDBmZikgKyAyMCk7XG4gICAgY29uc3QgYiA9IE1hdGgubWluKDI1NSwgKG51bSAmIDB4MDAwMGZmKSArIDIwKTtcbiAgICByZXR1cm4gYCMkeygociA8PCAxNikgfCAoZyA8PCA4KSB8IGIpLnRvU3RyaW5nKDE2KS5wYWRTdGFydCg2LCAnMCcpfWA7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -31147,14 +31147,30 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
31147
31147
|
class Terminal404Component {
|
|
31148
31148
|
constructor() {
|
|
31149
31149
|
this.props = {};
|
|
31150
|
+
this.i18n = inject(I18nService);
|
|
31150
31151
|
this.requestedPath = signal('page-not-found');
|
|
31152
|
+
// i18n texts
|
|
31153
|
+
this.directoryNotFound = computed(() => this.i18n.t('terminal404.directoryNotFound', 'No such file or directory'));
|
|
31154
|
+
this.searching = computed(() => this.i18n.t('terminal404.searching', 'Searching...'));
|
|
31155
|
+
this.noResults = computed(() => this.i18n.t('terminal404.noResults', 'No results found.'));
|
|
31156
|
+
this.searchTerm = computed(() => this.i18n.t('terminal404.searchTerm', 'page'));
|
|
31151
31157
|
}
|
|
31152
|
-
get
|
|
31158
|
+
get containerStyles() {
|
|
31159
|
+
const styles = {};
|
|
31160
|
+
// Background gradient
|
|
31153
31161
|
const bg = this.props.backgroundColor;
|
|
31154
31162
|
if (bg) {
|
|
31155
|
-
|
|
31163
|
+
styles['background'] = `linear-gradient(135deg, ${bg.start} 0%, ${bg.middle} 50%, ${bg.end} 100%)`;
|
|
31164
|
+
}
|
|
31165
|
+
else {
|
|
31166
|
+
styles['background'] = 'linear-gradient(135deg, #ede9fe 0%, #ddd6fe 50%, #c4b5fd 100%)';
|
|
31167
|
+
}
|
|
31168
|
+
// Override primary color if provided
|
|
31169
|
+
if (this.props.primaryColor) {
|
|
31170
|
+
styles['--terminal-primary'] = this.props.primaryColor;
|
|
31171
|
+
styles['--terminal-primary-light'] = this.lightenColor(this.props.primaryColor);
|
|
31156
31172
|
}
|
|
31157
|
-
return
|
|
31173
|
+
return styles;
|
|
31158
31174
|
}
|
|
31159
31175
|
ngOnInit() {
|
|
31160
31176
|
if (typeof window !== 'undefined') {
|
|
@@ -31177,19 +31193,9 @@ class Terminal404Component {
|
|
|
31177
31193
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: Terminal404Component, isStandalone: true, selector: "val-terminal-404", inputs: { props: "props" }, ngImport: i0, template: `
|
|
31178
31194
|
<div
|
|
31179
31195
|
class="terminal-container"
|
|
31180
|
-
[ngStyle]="
|
|
31181
|
-
background: backgroundGradient
|
|
31182
|
-
}"
|
|
31196
|
+
[ngStyle]="containerStyles"
|
|
31183
31197
|
>
|
|
31184
|
-
<div
|
|
31185
|
-
class="error-code"
|
|
31186
|
-
[ngStyle]="{
|
|
31187
|
-
color: props.primaryColor || '#4a1d96',
|
|
31188
|
-
textShadow: '0 0 40px ' + (props.primaryColor || '#4a1d96') + '4d'
|
|
31189
|
-
}"
|
|
31190
|
-
>
|
|
31191
|
-
404
|
|
31192
|
-
</div>
|
|
31198
|
+
<div class="error-code">404</div>
|
|
31193
31199
|
|
|
31194
31200
|
<div
|
|
31195
31201
|
class="terminal"
|
|
@@ -31211,24 +31217,24 @@ class Terminal404Component {
|
|
|
31211
31217
|
|
|
31212
31218
|
<div class="line">
|
|
31213
31219
|
<span class="error"
|
|
31214
|
-
>bash: cd: /{{ requestedPath() }}:
|
|
31220
|
+
>bash: cd: /{{ requestedPath() }}: {{ directoryNotFound() }}</span
|
|
31215
31221
|
>
|
|
31216
31222
|
</div>
|
|
31217
31223
|
|
|
31218
31224
|
<div class="line">
|
|
31219
31225
|
<span class="prompt">user@app</span>
|
|
31220
31226
|
<span class="command">:~$ </span>
|
|
31221
|
-
<span class="command">sudo find / -name "
|
|
31227
|
+
<span class="command">sudo find / -name "{{ searchTerm() }}"</span>
|
|
31222
31228
|
</div>
|
|
31223
31229
|
|
|
31224
31230
|
<div class="line">
|
|
31225
31231
|
<span class="info"
|
|
31226
|
-
><span class="search-icon">🔍</span>
|
|
31232
|
+
><span class="search-icon">🔍</span> {{ searching() }}</span
|
|
31227
31233
|
>
|
|
31228
31234
|
</div>
|
|
31229
31235
|
|
|
31230
31236
|
<div class="line">
|
|
31231
|
-
<span class="warning">find:
|
|
31237
|
+
<span class="warning">find: {{ noResults() }}</span>
|
|
31232
31238
|
</div>
|
|
31233
31239
|
|
|
31234
31240
|
<div class="line">
|
|
@@ -31244,35 +31250,21 @@ class Terminal404Component {
|
|
|
31244
31250
|
class="home-button"
|
|
31245
31251
|
[routerLink]="props.homeRoute || '/'"
|
|
31246
31252
|
expand="block"
|
|
31247
|
-
[ngStyle]="{
|
|
31248
|
-
'--background': props.primaryColor || '#4a1d96',
|
|
31249
|
-
'--background-hover': lightenColor(props.primaryColor || '#4a1d96')
|
|
31250
|
-
}"
|
|
31251
31253
|
>
|
|
31252
31254
|
{{ props.homeButtonText || 'cd /home' }}
|
|
31253
31255
|
</ion-button>
|
|
31254
31256
|
</div>
|
|
31255
31257
|
</div>
|
|
31256
|
-
`, isInline: true, styles: [":host{display:block;width:100
|
|
31258
|
+
`, isInline: true, styles: [":host{display:block;width:100%;--terminal-primary: var(--ion-color-primary, #4a1d96);--terminal-primary-light: var(--ion-color-primary-tint, #5b21b6)}.terminal-container{min-height:70vh;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:2rem;border-radius:16px}.terminal{border-radius:12px;padding:0;max-width:600px;width:100%;box-shadow:0 20px 60px #0000004d;overflow:hidden}.terminal-header{background:#161b22;padding:12px 16px;display:flex;align-items:center;gap:8px}.terminal-dot{width:12px;height:12px;border-radius:50%}.dot-red{background:#ff5f56}.dot-yellow{background:#ffbd2e}.dot-green{background:#27ca40}.terminal-title{flex:1;text-align:center;color:#8b949e;font-size:.85rem;font-family:monospace}.terminal-body{padding:24px;font-family:Fira Code,Monaco,Consolas,monospace;font-size:.95rem;line-height:1.8}.line{margin-bottom:8px;opacity:0;animation:fadeIn .3s ease forwards}.line:nth-child(1){animation-delay:.2s}.line:nth-child(2){animation-delay:.8s}.line:nth-child(3){animation-delay:1.4s}.line:nth-child(4){animation-delay:2s}.line:nth-child(5){animation-delay:2.6s}.line:nth-child(6){animation-delay:3.2s}@keyframes fadeIn{to{opacity:1}}.prompt{color:#7ee787}.command{color:#c9d1d9}.error{color:#f85149}.info{color:#58a6ff}.warning{color:#d29922}.cursor{display:inline-block;width:10px;height:18px;background:#7ee787;margin-left:4px;animation:blink 1s step-end infinite;vertical-align:text-bottom}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}.error-code{font-size:6rem;font-weight:900;text-align:center;margin:.5rem 0 1rem;font-family:monospace}.action-container{margin-top:2rem;text-align:center;opacity:0;animation:fadeIn .5s ease forwards;animation-delay:3.8s}.home-button{--border-radius: 8px;--background: var(--terminal-primary);--background-hover: var(--terminal-primary-light);font-family:monospace}.error-code{color:var(--terminal-primary);text-shadow:0 0 40px color-mix(in srgb,var(--terminal-primary) 30%,transparent)}.search-icon{animation:searching 2s ease-in-out infinite;display:inline-block}@keyframes searching{0%,to{transform:translate(0)}25%{transform:translate(5px)}75%{transform:translate(-5px)}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }] }); }
|
|
31257
31259
|
}
|
|
31258
31260
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: Terminal404Component, decorators: [{
|
|
31259
31261
|
type: Component,
|
|
31260
31262
|
args: [{ selector: 'val-terminal-404', standalone: true, imports: [CommonModule, IonButton, RouterLink], template: `
|
|
31261
31263
|
<div
|
|
31262
31264
|
class="terminal-container"
|
|
31263
|
-
[ngStyle]="
|
|
31264
|
-
background: backgroundGradient
|
|
31265
|
-
}"
|
|
31265
|
+
[ngStyle]="containerStyles"
|
|
31266
31266
|
>
|
|
31267
|
-
<div
|
|
31268
|
-
class="error-code"
|
|
31269
|
-
[ngStyle]="{
|
|
31270
|
-
color: props.primaryColor || '#4a1d96',
|
|
31271
|
-
textShadow: '0 0 40px ' + (props.primaryColor || '#4a1d96') + '4d'
|
|
31272
|
-
}"
|
|
31273
|
-
>
|
|
31274
|
-
404
|
|
31275
|
-
</div>
|
|
31267
|
+
<div class="error-code">404</div>
|
|
31276
31268
|
|
|
31277
31269
|
<div
|
|
31278
31270
|
class="terminal"
|
|
@@ -31294,24 +31286,24 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
31294
31286
|
|
|
31295
31287
|
<div class="line">
|
|
31296
31288
|
<span class="error"
|
|
31297
|
-
>bash: cd: /{{ requestedPath() }}:
|
|
31289
|
+
>bash: cd: /{{ requestedPath() }}: {{ directoryNotFound() }}</span
|
|
31298
31290
|
>
|
|
31299
31291
|
</div>
|
|
31300
31292
|
|
|
31301
31293
|
<div class="line">
|
|
31302
31294
|
<span class="prompt">user@app</span>
|
|
31303
31295
|
<span class="command">:~$ </span>
|
|
31304
|
-
<span class="command">sudo find / -name "
|
|
31296
|
+
<span class="command">sudo find / -name "{{ searchTerm() }}"</span>
|
|
31305
31297
|
</div>
|
|
31306
31298
|
|
|
31307
31299
|
<div class="line">
|
|
31308
31300
|
<span class="info"
|
|
31309
|
-
><span class="search-icon">🔍</span>
|
|
31301
|
+
><span class="search-icon">🔍</span> {{ searching() }}</span
|
|
31310
31302
|
>
|
|
31311
31303
|
</div>
|
|
31312
31304
|
|
|
31313
31305
|
<div class="line">
|
|
31314
|
-
<span class="warning">find:
|
|
31306
|
+
<span class="warning">find: {{ noResults() }}</span>
|
|
31315
31307
|
</div>
|
|
31316
31308
|
|
|
31317
31309
|
<div class="line">
|
|
@@ -31327,16 +31319,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
31327
31319
|
class="home-button"
|
|
31328
31320
|
[routerLink]="props.homeRoute || '/'"
|
|
31329
31321
|
expand="block"
|
|
31330
|
-
[ngStyle]="{
|
|
31331
|
-
'--background': props.primaryColor || '#4a1d96',
|
|
31332
|
-
'--background-hover': lightenColor(props.primaryColor || '#4a1d96')
|
|
31333
|
-
}"
|
|
31334
31322
|
>
|
|
31335
31323
|
{{ props.homeButtonText || 'cd /home' }}
|
|
31336
31324
|
</ion-button>
|
|
31337
31325
|
</div>
|
|
31338
31326
|
</div>
|
|
31339
|
-
`, styles: [":host{display:block;width:100
|
|
31327
|
+
`, styles: [":host{display:block;width:100%;--terminal-primary: var(--ion-color-primary, #4a1d96);--terminal-primary-light: var(--ion-color-primary-tint, #5b21b6)}.terminal-container{min-height:70vh;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:2rem;border-radius:16px}.terminal{border-radius:12px;padding:0;max-width:600px;width:100%;box-shadow:0 20px 60px #0000004d;overflow:hidden}.terminal-header{background:#161b22;padding:12px 16px;display:flex;align-items:center;gap:8px}.terminal-dot{width:12px;height:12px;border-radius:50%}.dot-red{background:#ff5f56}.dot-yellow{background:#ffbd2e}.dot-green{background:#27ca40}.terminal-title{flex:1;text-align:center;color:#8b949e;font-size:.85rem;font-family:monospace}.terminal-body{padding:24px;font-family:Fira Code,Monaco,Consolas,monospace;font-size:.95rem;line-height:1.8}.line{margin-bottom:8px;opacity:0;animation:fadeIn .3s ease forwards}.line:nth-child(1){animation-delay:.2s}.line:nth-child(2){animation-delay:.8s}.line:nth-child(3){animation-delay:1.4s}.line:nth-child(4){animation-delay:2s}.line:nth-child(5){animation-delay:2.6s}.line:nth-child(6){animation-delay:3.2s}@keyframes fadeIn{to{opacity:1}}.prompt{color:#7ee787}.command{color:#c9d1d9}.error{color:#f85149}.info{color:#58a6ff}.warning{color:#d29922}.cursor{display:inline-block;width:10px;height:18px;background:#7ee787;margin-left:4px;animation:blink 1s step-end infinite;vertical-align:text-bottom}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}.error-code{font-size:6rem;font-weight:900;text-align:center;margin:.5rem 0 1rem;font-family:monospace}.action-container{margin-top:2rem;text-align:center;opacity:0;animation:fadeIn .5s ease forwards;animation-delay:3.8s}.home-button{--border-radius: 8px;--background: var(--terminal-primary);--background-hover: var(--terminal-primary-light);font-family:monospace}.error-code{color:var(--terminal-primary);text-shadow:0 0 40px color-mix(in srgb,var(--terminal-primary) 30%,transparent)}.search-icon{animation:searching 2s ease-in-out infinite;display:inline-block}@keyframes searching{0%,to{transform:translate(0)}25%{transform:translate(5px)}75%{transform:translate(-5px)}}\n"] }]
|
|
31340
31328
|
}], propDecorators: { props: [{
|
|
31341
31329
|
type: Input
|
|
31342
31330
|
}] } });
|