valtech-components 4.0.568 → 4.0.570
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.
- package/esm2022/lib/components/atoms/qr-code/qr-code.component.mjs +26 -3
- package/esm2022/lib/components/atoms/qr-code/types.mjs +1 -1
- package/esm2022/lib/components/molecules/ticket-card/ticket-card.component.mjs +6 -12
- package/esm2022/lib/components/organisms/mini-games/chessimals-engine.mjs +45 -2
- package/esm2022/lib/components/organisms/mini-games/chessimals-game.component.mjs +162 -37
- package/esm2022/lib/components/organisms/mini-games/mini-games.i18n.mjs +21 -11
- package/esm2022/lib/components/organisms/mini-games/types.mjs +1 -1
- package/esm2022/lib/services/errors/valtech-error.service.mjs +3 -3
- package/esm2022/lib/services/ticket-card-image/ticket-card-image.service.mjs +32 -1
- package/esm2022/lib/services/ticket-card-image/types.mjs +1 -1
- package/esm2022/lib/version.mjs +2 -2
- package/fesm2022/valtech-components.mjs +289 -63
- package/fesm2022/valtech-components.mjs.map +1 -1
- package/lib/components/atoms/qr-code/qr-code.component.d.ts +1 -0
- package/lib/components/atoms/qr-code/types.d.ts +4 -0
- package/lib/components/organisms/mini-games/chessimals-game.component.d.ts +5 -1
- package/lib/components/organisms/mini-games/types.d.ts +2 -2
- package/lib/services/errors/valtech-error.service.d.ts +3 -3
- package/lib/services/ticket-card-image/ticket-card-image.service.d.ts +2 -0
- package/lib/services/ticket-card-image/types.d.ts +2 -0
- package/lib/version.d.ts +1 -1
- package/package.json +1 -1
- package/src/lib/assets/games/chessimals/challenge-avatars/nightmare-hunt.png +0 -0
- package/src/lib/assets/games/chessimals/challenge-avatars/nightmare-magnus.png +0 -0
- package/src/lib/assets/games/chessimals/challenge-avatars/nightmare-pride.png +0 -0
|
@@ -71,6 +71,11 @@ export class QrCodeComponent {
|
|
|
71
71
|
getQrBorderRadius() {
|
|
72
72
|
return this.props.qrBorderRadius ? `${this.props.qrBorderRadius}px` : '0';
|
|
73
73
|
}
|
|
74
|
+
getLogoSize() {
|
|
75
|
+
const size = this.props.displaySize || this.props.qr.config.width || 300;
|
|
76
|
+
const ratio = this.props.logoSizeRatio ?? 0.2;
|
|
77
|
+
return `${Math.round(size * ratio)}px`;
|
|
78
|
+
}
|
|
74
79
|
getContainerClasses() {
|
|
75
80
|
const classes = [];
|
|
76
81
|
if (this.props.cssClass)
|
|
@@ -239,6 +244,15 @@ export class QrCodeComponent {
|
|
|
239
244
|
(load)="onImageLoad()"
|
|
240
245
|
(error)="onImageError($event)"
|
|
241
246
|
/>
|
|
247
|
+
@if (props.logoUrl) {
|
|
248
|
+
<span
|
|
249
|
+
class="qr-logo"
|
|
250
|
+
[style.--logo-size]="getLogoSize()"
|
|
251
|
+
aria-hidden="true"
|
|
252
|
+
>
|
|
253
|
+
<img [src]="props.logoUrl" alt="" />
|
|
254
|
+
</span>
|
|
255
|
+
}
|
|
242
256
|
</div>
|
|
243
257
|
|
|
244
258
|
@if (props.label && props.label.position !== 'top') {
|
|
@@ -279,7 +293,7 @@ export class QrCodeComponent {
|
|
|
279
293
|
</div>
|
|
280
294
|
}
|
|
281
295
|
</div>
|
|
282
|
-
`, isInline: true, styles: ["@charset \"UTF-8\";:root{--val-container-sm: 540px;--val-container-md: 720px;--val-container-lg: 880px;--val-container-xl: 1100px;--val-container-padding: 16px;--ion-color-primary: #7026df;--ion-color-primary-rgb: 112, 38, 223;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #6321c4;--ion-color-primary-tint: #7e3ce2;--ion-color-secondary: #e2ccff;--ion-color-secondary-rgb: 226, 204, 255;--ion-color-secondary-contrast: #000000;--ion-color-secondary-contrast-rgb: 0, 0, 0;--ion-color-secondary-shade: #c7b4e0;--ion-color-secondary-tint: #e5d1ff;--ion-color-texti: #354c69;--ion-color-texti-rgb: 53, 76, 105;--ion-color-texti-contrast: #ffffff;--ion-color-texti-contrast-rgb: 255, 255, 255;--ion-color-texti-shade: #2f435c;--ion-color-texti-tint: #495e78;--ion-color-darki: #090f1b;--ion-color-darki-rgb: 9, 15, 27;--ion-color-darki-contrast: #ffffff;--ion-color-darki-contrast-rgb: 255, 255, 255;--ion-color-darki-shade: #080d18;--ion-color-darki-tint: #222732;--ion-color-medium: #9e9e9e;--ion-color-medium-rgb: 158, 158, 158;--ion-color-medium-contrast: #000000;--ion-color-medium-contrast-rgb: 0, 0, 0;--ion-color-medium-shade: #8b8b8b;--ion-color-medium-tint: #a8a8a8;--swiper-pagination-color: var(--ion-color-primary);--swiper-navigation-color: var(--ion-color-primary);--swiper-pagination-bullet-inactive-color: var(--ion-color-medium)}body.dark,html.ion-palette-dark,body[data-theme=dark]{--ion-color-texti: #8fc1ff;--ion-color-texti-rgb: 143, 193, 255;--ion-color-texti-contrast: #000000;--ion-color-texti-contrast-rgb: 0, 0, 0;--ion-color-texti-shade: #7eaae0;--ion-color-texti-tint: #9ac7ff;--ion-color-darki: #ffffff;--ion-color-darki-rgb: 255, 255, 255;--ion-color-darki-contrast: #000000;--ion-color-darki-contrast-rgb: 0, 0, 0;--ion-color-darki-shade: #e0e0e0;--ion-color-darki-tint: #ffffff;--ion-color-primary: #8f49f8;--ion-color-primary-rgb: 143, 73, 248;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #7e40da;--ion-color-primary-tint: #9a5bf9}.ion-color-texti{--ion-color-base: var(--ion-color-texti);--ion-color-base-rgb: var(--ion-color-texti-rgb);--ion-color-contrast: var(--ion-color-texti-contrast);--ion-color-contrast-rgb: var(--ion-color-texti-contrast-rgb);--ion-color-shade: var(--ion-color-texti-shade);--ion-color-tint: var(--ion-color-texti-tint)}.ion-color-darki{--ion-color-base: var(--ion-color-darki);--ion-color-base-rgb: var(--ion-color-darki-rgb);--ion-color-contrast: var(--ion-color-darki-contrast);--ion-color-contrast-rgb: var(--ion-color-darki-contrast-rgb);--ion-color-shade: var(--ion-color-darki-shade);--ion-color-tint: var(--ion-color-darki-tint)}:host{display:inline-block}.qr-code-container{display:inline-flex;flex-direction:column;align-items:center;gap:12px;padding:var(--padding);background:var(--container-bg);border-radius:var(--border-radius);box-shadow:var(--shadow);position:relative;transition:transform .2s ease,box-shadow .2s ease}.qr-code-container.with-border{border:1px solid var(--border-color)}.qr-code-container.loading .qr-image-wrapper{opacity:.5}.qr-code-container.scale-on-hover:hover{transform:scale(1.02)}.qr-code-container.pulse-on-hover:hover{animation:pulse 1.5s infinite}.qr-label{display:flex;align-items:center;gap:6px;color:var(--label-color);font-size:var(--label-size)}.qr-label ion-icon{font-size:1.1em}.qr-label .font-weight--normal{font-weight:400}.qr-label .font-weight--medium{font-weight:500}.qr-label .font-weight--semibold{font-weight:600}.qr-label .font-weight--bold{font-weight:700}.qr-label--top{margin-bottom:4px}.qr-label--bottom{margin-top:4px}.loading-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background-color:#ffffffb3;border-radius:var(--border-radius);z-index:1}.loading-overlay ion-spinner{width:32px;height:32px}.qr-image-wrapper{width:var(--size);height:var(--size);display:flex;align-items:center;justify-content:center;transition:opacity .2s}.qr-image{width:100%;height:100%;object-fit:contain;display:block;border-radius:var(--qr-border-radius)}.qr-actions{display:flex;align-items:center;justify-content:center;gap:4px}.qr-actions ion-button{--padding-start: 8px;--padding-end: 8px;--color: var(--ion-color-medium)}.qr-actions ion-button:hover{--color: var(--ion-color-primary)}.qr-actions ion-button ion-icon{font-size:1.25rem}.theme--minimal{background:transparent!important;padding:0!important;box-shadow:none!important;border:none!important}.theme--gradient-purple{background:linear-gradient(135deg,#667eea,#764ba2)!important;padding:20px!important;border-radius:16px!important}.theme--gradient-purple .qr-image{border-radius:8px}.theme--gradient-purple .qr-label{color:#fff}.theme--gradient-purple .qr-actions ion-button{--color: rgba(255, 255, 255, .8)}.theme--gradient-purple .qr-actions ion-button:hover{--color: white}.theme--gradient-blue{background:linear-gradient(135deg,#4facfe,#00f2fe)!important;padding:20px!important;border-radius:16px!important}.theme--gradient-blue .qr-image{border-radius:8px}.theme--gradient-blue .qr-label{color:#fff}.theme--gradient-blue .qr-actions ion-button{--color: rgba(255, 255, 255, .8)}.theme--gradient-blue .qr-actions ion-button:hover{--color: white}.theme--gradient-sunset{background:linear-gradient(135deg,#fa709a,#fee140)!important;padding:20px!important;border-radius:16px!important}.theme--gradient-sunset .qr-image{border-radius:8px}.theme--gradient-sunset .qr-label{color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.1)}.theme--gradient-sunset .qr-actions ion-button{--color: rgba(255, 255, 255, .9)}.theme--gradient-sunset .qr-actions ion-button:hover{--color: white}.theme--gradient-mint{background:linear-gradient(135deg,#11998e,#38ef7d)!important;padding:20px!important;border-radius:16px!important}.theme--gradient-mint .qr-image{border-radius:8px}.theme--gradient-mint .qr-label{color:#fff}.theme--gradient-mint .qr-actions ion-button{--color: rgba(255, 255, 255, .8)}.theme--gradient-mint .qr-actions ion-button:hover{--color: white}.theme--dark{background:linear-gradient(145deg,#1a1a2e,#16213e)!important;padding:20px!important;border-radius:16px!important;border:1px solid rgba(255,255,255,.1)!important}.theme--dark .qr-image{border-radius:8px;filter:invert(1)}.theme--dark .qr-label{color:#e0e0e0}.theme--dark .qr-actions ion-button{--color: rgba(255, 255, 255, .6)}.theme--dark .qr-actions ion-button:hover{--color: white}.theme--neon{background:#0a0a0a!important;padding:20px!important;border-radius:16px!important;border:2px solid var(--glow-color)!important;box-shadow:0 0 20px var(--glow-color),inset 0 0 20px #8b5cf61a!important}.theme--neon .qr-image{border-radius:8px;filter:drop-shadow(0 0 8px var(--glow-color))}.theme--neon .qr-label{color:var(--glow-color);text-shadow:0 0 10px var(--glow-color)}.theme--neon .qr-actions ion-button{--color: var(--glow-color)}.theme--neon .qr-actions ion-button:hover{--color: white}:host(.compact) .qr-actions{position:absolute;bottom:8px;left:50%;transform:translate(-50%);opacity:0;transition:opacity .2s;background-color:#ffffffe6;border-radius:8px;padding:4px}:host(.compact) .qr-code-container:hover .qr-actions{opacity:1}:host(.card) .qr-code-container{background-color:var(--ion-background-color, white);box-shadow:0 2px 8px #0000001a;padding:16px;border-radius:12px}@keyframes pulse{0%{box-shadow:var(--shadow),0 0 #6366f166}70%{box-shadow:var(--shadow),0 0 0 10px #6366f100}to{box-shadow:var(--shadow),0 0 #6366f100}}:host-context(body.dark) .loading-overlay,:host-context(.dark) .loading-overlay,:host-context(.ion-palette-dark) .loading-overlay,:host-context(html.ion-palette-dark) .loading-overlay,:host-context([data-theme=dark]) .loading-overlay{background-color:#000000b3}:host-context(body.dark).compact .qr-actions,:host-context(.dark).compact .qr-actions,:host-context(.ion-palette-dark).compact .qr-actions,:host-context(html.ion-palette-dark).compact .qr-actions,:host-context([data-theme=dark]).compact .qr-actions{background-color:#000000e6}:host-context(body.dark) .theme--default .qr-image,:host-context(.dark) .theme--default .qr-image,:host-context(.ion-palette-dark) .theme--default .qr-image,:host-context(html.ion-palette-dark) .theme--default .qr-image,:host-context([data-theme=dark]) .theme--default .qr-image{filter:invert(1)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { 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: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: IonSpinner, selector: "ion-spinner", inputs: ["color", "duration", "name", "paused"] }] }); }
|
|
296
|
+
`, isInline: true, styles: ["@charset \"UTF-8\";:root{--val-container-sm: 540px;--val-container-md: 720px;--val-container-lg: 880px;--val-container-xl: 1100px;--val-container-padding: 16px;--ion-color-primary: #7026df;--ion-color-primary-rgb: 112, 38, 223;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #6321c4;--ion-color-primary-tint: #7e3ce2;--ion-color-secondary: #e2ccff;--ion-color-secondary-rgb: 226, 204, 255;--ion-color-secondary-contrast: #000000;--ion-color-secondary-contrast-rgb: 0, 0, 0;--ion-color-secondary-shade: #c7b4e0;--ion-color-secondary-tint: #e5d1ff;--ion-color-texti: #354c69;--ion-color-texti-rgb: 53, 76, 105;--ion-color-texti-contrast: #ffffff;--ion-color-texti-contrast-rgb: 255, 255, 255;--ion-color-texti-shade: #2f435c;--ion-color-texti-tint: #495e78;--ion-color-darki: #090f1b;--ion-color-darki-rgb: 9, 15, 27;--ion-color-darki-contrast: #ffffff;--ion-color-darki-contrast-rgb: 255, 255, 255;--ion-color-darki-shade: #080d18;--ion-color-darki-tint: #222732;--ion-color-medium: #9e9e9e;--ion-color-medium-rgb: 158, 158, 158;--ion-color-medium-contrast: #000000;--ion-color-medium-contrast-rgb: 0, 0, 0;--ion-color-medium-shade: #8b8b8b;--ion-color-medium-tint: #a8a8a8;--swiper-pagination-color: var(--ion-color-primary);--swiper-navigation-color: var(--ion-color-primary);--swiper-pagination-bullet-inactive-color: var(--ion-color-medium)}body.dark,html.ion-palette-dark,body[data-theme=dark]{--ion-color-texti: #8fc1ff;--ion-color-texti-rgb: 143, 193, 255;--ion-color-texti-contrast: #000000;--ion-color-texti-contrast-rgb: 0, 0, 0;--ion-color-texti-shade: #7eaae0;--ion-color-texti-tint: #9ac7ff;--ion-color-darki: #ffffff;--ion-color-darki-rgb: 255, 255, 255;--ion-color-darki-contrast: #000000;--ion-color-darki-contrast-rgb: 0, 0, 0;--ion-color-darki-shade: #e0e0e0;--ion-color-darki-tint: #ffffff;--ion-color-primary: #8f49f8;--ion-color-primary-rgb: 143, 73, 248;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #7e40da;--ion-color-primary-tint: #9a5bf9}.ion-color-texti{--ion-color-base: var(--ion-color-texti);--ion-color-base-rgb: var(--ion-color-texti-rgb);--ion-color-contrast: var(--ion-color-texti-contrast);--ion-color-contrast-rgb: var(--ion-color-texti-contrast-rgb);--ion-color-shade: var(--ion-color-texti-shade);--ion-color-tint: var(--ion-color-texti-tint)}.ion-color-darki{--ion-color-base: var(--ion-color-darki);--ion-color-base-rgb: var(--ion-color-darki-rgb);--ion-color-contrast: var(--ion-color-darki-contrast);--ion-color-contrast-rgb: var(--ion-color-darki-contrast-rgb);--ion-color-shade: var(--ion-color-darki-shade);--ion-color-tint: var(--ion-color-darki-tint)}:host{display:inline-block}.qr-code-container{display:inline-flex;flex-direction:column;align-items:center;gap:12px;padding:var(--padding);background:var(--container-bg);border-radius:var(--border-radius);box-shadow:var(--shadow);position:relative;transition:transform .2s ease,box-shadow .2s ease}.qr-code-container.with-border{border:1px solid var(--border-color)}.qr-code-container.loading .qr-image-wrapper{opacity:.5}.qr-code-container.scale-on-hover:hover{transform:scale(1.02)}.qr-code-container.pulse-on-hover:hover{animation:pulse 1.5s infinite}.qr-label{display:flex;align-items:center;gap:6px;color:var(--label-color);font-size:var(--label-size)}.qr-label ion-icon{font-size:1.1em}.qr-label .font-weight--normal{font-weight:400}.qr-label .font-weight--medium{font-weight:500}.qr-label .font-weight--semibold{font-weight:600}.qr-label .font-weight--bold{font-weight:700}.qr-label--top{margin-bottom:4px}.qr-label--bottom{margin-top:4px}.loading-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background-color:#ffffffb3;border-radius:var(--border-radius);z-index:1}.loading-overlay ion-spinner{width:32px;height:32px}.qr-image-wrapper{width:var(--size);height:var(--size);display:flex;align-items:center;justify-content:center;position:relative;transition:opacity .2s}.qr-image{width:100%;height:100%;object-fit:contain;display:block;border-radius:var(--qr-border-radius)}.qr-logo{position:absolute;left:50%;top:50%;width:var(--logo-size);height:var(--logo-size);transform:translate(-50%,-50%);display:flex;align-items:center;justify-content:center;border-radius:50%;background:#fff;padding:max(4px,var(--logo-size) * .08);pointer-events:none}.qr-logo img{width:100%;height:100%;object-fit:contain;display:block}.qr-actions{display:flex;align-items:center;justify-content:center;gap:4px}.qr-actions ion-button{--padding-start: 8px;--padding-end: 8px;--color: var(--ion-color-medium)}.qr-actions ion-button:hover{--color: var(--ion-color-primary)}.qr-actions ion-button ion-icon{font-size:1.25rem}.theme--minimal{background:transparent!important;padding:0!important;box-shadow:none!important;border:none!important}.theme--gradient-purple{background:linear-gradient(135deg,#667eea,#764ba2)!important;padding:20px!important;border-radius:16px!important}.theme--gradient-purple .qr-image{border-radius:8px}.theme--gradient-purple .qr-label{color:#fff}.theme--gradient-purple .qr-actions ion-button{--color: rgba(255, 255, 255, .8)}.theme--gradient-purple .qr-actions ion-button:hover{--color: white}.theme--gradient-blue{background:linear-gradient(135deg,#4facfe,#00f2fe)!important;padding:20px!important;border-radius:16px!important}.theme--gradient-blue .qr-image{border-radius:8px}.theme--gradient-blue .qr-label{color:#fff}.theme--gradient-blue .qr-actions ion-button{--color: rgba(255, 255, 255, .8)}.theme--gradient-blue .qr-actions ion-button:hover{--color: white}.theme--gradient-sunset{background:linear-gradient(135deg,#fa709a,#fee140)!important;padding:20px!important;border-radius:16px!important}.theme--gradient-sunset .qr-image{border-radius:8px}.theme--gradient-sunset .qr-label{color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.1)}.theme--gradient-sunset .qr-actions ion-button{--color: rgba(255, 255, 255, .9)}.theme--gradient-sunset .qr-actions ion-button:hover{--color: white}.theme--gradient-mint{background:linear-gradient(135deg,#11998e,#38ef7d)!important;padding:20px!important;border-radius:16px!important}.theme--gradient-mint .qr-image{border-radius:8px}.theme--gradient-mint .qr-label{color:#fff}.theme--gradient-mint .qr-actions ion-button{--color: rgba(255, 255, 255, .8)}.theme--gradient-mint .qr-actions ion-button:hover{--color: white}.theme--dark{background:linear-gradient(145deg,#1a1a2e,#16213e)!important;padding:20px!important;border-radius:16px!important;border:1px solid rgba(255,255,255,.1)!important}.theme--dark .qr-image{border-radius:8px;filter:invert(1)}.theme--dark .qr-label{color:#e0e0e0}.theme--dark .qr-actions ion-button{--color: rgba(255, 255, 255, .6)}.theme--dark .qr-actions ion-button:hover{--color: white}.theme--neon{background:#0a0a0a!important;padding:20px!important;border-radius:16px!important;border:2px solid var(--glow-color)!important;box-shadow:0 0 20px var(--glow-color),inset 0 0 20px #8b5cf61a!important}.theme--neon .qr-image{border-radius:8px;filter:drop-shadow(0 0 8px var(--glow-color))}.theme--neon .qr-label{color:var(--glow-color);text-shadow:0 0 10px var(--glow-color)}.theme--neon .qr-actions ion-button{--color: var(--glow-color)}.theme--neon .qr-actions ion-button:hover{--color: white}:host(.compact) .qr-actions{position:absolute;bottom:8px;left:50%;transform:translate(-50%);opacity:0;transition:opacity .2s;background-color:#ffffffe6;border-radius:8px;padding:4px}:host(.compact) .qr-code-container:hover .qr-actions{opacity:1}:host(.card) .qr-code-container{background-color:var(--ion-background-color, white);box-shadow:0 2px 8px #0000001a;padding:16px;border-radius:12px}@keyframes pulse{0%{box-shadow:var(--shadow),0 0 #6366f166}70%{box-shadow:var(--shadow),0 0 0 10px #6366f100}to{box-shadow:var(--shadow),0 0 #6366f100}}:host-context(body.dark) .loading-overlay,:host-context(.dark) .loading-overlay,:host-context(.ion-palette-dark) .loading-overlay,:host-context(html.ion-palette-dark) .loading-overlay,:host-context([data-theme=dark]) .loading-overlay{background-color:#000000b3}:host-context(body.dark).compact .qr-actions,:host-context(.dark).compact .qr-actions,:host-context(.ion-palette-dark).compact .qr-actions,:host-context(html.ion-palette-dark).compact .qr-actions,:host-context([data-theme=dark]).compact .qr-actions{background-color:#000000e6}:host-context(body.dark) .theme--default .qr-image,:host-context(.dark) .theme--default .qr-image,:host-context(.ion-palette-dark) .theme--default .qr-image,:host-context(html.ion-palette-dark) .theme--default .qr-image,:host-context([data-theme=dark]) .theme--default .qr-image{filter:invert(1)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { 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: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: IonSpinner, selector: "ion-spinner", inputs: ["color", "duration", "name", "paused"] }] }); }
|
|
283
297
|
}
|
|
284
298
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: QrCodeComponent, decorators: [{
|
|
285
299
|
type: Component,
|
|
@@ -325,6 +339,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
325
339
|
(load)="onImageLoad()"
|
|
326
340
|
(error)="onImageError($event)"
|
|
327
341
|
/>
|
|
342
|
+
@if (props.logoUrl) {
|
|
343
|
+
<span
|
|
344
|
+
class="qr-logo"
|
|
345
|
+
[style.--logo-size]="getLogoSize()"
|
|
346
|
+
aria-hidden="true"
|
|
347
|
+
>
|
|
348
|
+
<img [src]="props.logoUrl" alt="" />
|
|
349
|
+
</span>
|
|
350
|
+
}
|
|
328
351
|
</div>
|
|
329
352
|
|
|
330
353
|
@if (props.label && props.label.position !== 'top') {
|
|
@@ -365,7 +388,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
365
388
|
</div>
|
|
366
389
|
}
|
|
367
390
|
</div>
|
|
368
|
-
`, styles: ["@charset \"UTF-8\";:root{--val-container-sm: 540px;--val-container-md: 720px;--val-container-lg: 880px;--val-container-xl: 1100px;--val-container-padding: 16px;--ion-color-primary: #7026df;--ion-color-primary-rgb: 112, 38, 223;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #6321c4;--ion-color-primary-tint: #7e3ce2;--ion-color-secondary: #e2ccff;--ion-color-secondary-rgb: 226, 204, 255;--ion-color-secondary-contrast: #000000;--ion-color-secondary-contrast-rgb: 0, 0, 0;--ion-color-secondary-shade: #c7b4e0;--ion-color-secondary-tint: #e5d1ff;--ion-color-texti: #354c69;--ion-color-texti-rgb: 53, 76, 105;--ion-color-texti-contrast: #ffffff;--ion-color-texti-contrast-rgb: 255, 255, 255;--ion-color-texti-shade: #2f435c;--ion-color-texti-tint: #495e78;--ion-color-darki: #090f1b;--ion-color-darki-rgb: 9, 15, 27;--ion-color-darki-contrast: #ffffff;--ion-color-darki-contrast-rgb: 255, 255, 255;--ion-color-darki-shade: #080d18;--ion-color-darki-tint: #222732;--ion-color-medium: #9e9e9e;--ion-color-medium-rgb: 158, 158, 158;--ion-color-medium-contrast: #000000;--ion-color-medium-contrast-rgb: 0, 0, 0;--ion-color-medium-shade: #8b8b8b;--ion-color-medium-tint: #a8a8a8;--swiper-pagination-color: var(--ion-color-primary);--swiper-navigation-color: var(--ion-color-primary);--swiper-pagination-bullet-inactive-color: var(--ion-color-medium)}body.dark,html.ion-palette-dark,body[data-theme=dark]{--ion-color-texti: #8fc1ff;--ion-color-texti-rgb: 143, 193, 255;--ion-color-texti-contrast: #000000;--ion-color-texti-contrast-rgb: 0, 0, 0;--ion-color-texti-shade: #7eaae0;--ion-color-texti-tint: #9ac7ff;--ion-color-darki: #ffffff;--ion-color-darki-rgb: 255, 255, 255;--ion-color-darki-contrast: #000000;--ion-color-darki-contrast-rgb: 0, 0, 0;--ion-color-darki-shade: #e0e0e0;--ion-color-darki-tint: #ffffff;--ion-color-primary: #8f49f8;--ion-color-primary-rgb: 143, 73, 248;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #7e40da;--ion-color-primary-tint: #9a5bf9}.ion-color-texti{--ion-color-base: var(--ion-color-texti);--ion-color-base-rgb: var(--ion-color-texti-rgb);--ion-color-contrast: var(--ion-color-texti-contrast);--ion-color-contrast-rgb: var(--ion-color-texti-contrast-rgb);--ion-color-shade: var(--ion-color-texti-shade);--ion-color-tint: var(--ion-color-texti-tint)}.ion-color-darki{--ion-color-base: var(--ion-color-darki);--ion-color-base-rgb: var(--ion-color-darki-rgb);--ion-color-contrast: var(--ion-color-darki-contrast);--ion-color-contrast-rgb: var(--ion-color-darki-contrast-rgb);--ion-color-shade: var(--ion-color-darki-shade);--ion-color-tint: var(--ion-color-darki-tint)}:host{display:inline-block}.qr-code-container{display:inline-flex;flex-direction:column;align-items:center;gap:12px;padding:var(--padding);background:var(--container-bg);border-radius:var(--border-radius);box-shadow:var(--shadow);position:relative;transition:transform .2s ease,box-shadow .2s ease}.qr-code-container.with-border{border:1px solid var(--border-color)}.qr-code-container.loading .qr-image-wrapper{opacity:.5}.qr-code-container.scale-on-hover:hover{transform:scale(1.02)}.qr-code-container.pulse-on-hover:hover{animation:pulse 1.5s infinite}.qr-label{display:flex;align-items:center;gap:6px;color:var(--label-color);font-size:var(--label-size)}.qr-label ion-icon{font-size:1.1em}.qr-label .font-weight--normal{font-weight:400}.qr-label .font-weight--medium{font-weight:500}.qr-label .font-weight--semibold{font-weight:600}.qr-label .font-weight--bold{font-weight:700}.qr-label--top{margin-bottom:4px}.qr-label--bottom{margin-top:4px}.loading-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background-color:#ffffffb3;border-radius:var(--border-radius);z-index:1}.loading-overlay ion-spinner{width:32px;height:32px}.qr-image-wrapper{width:var(--size);height:var(--size);display:flex;align-items:center;justify-content:center;transition:opacity .2s}.qr-image{width:100%;height:100%;object-fit:contain;display:block;border-radius:var(--qr-border-radius)}.qr-actions{display:flex;align-items:center;justify-content:center;gap:4px}.qr-actions ion-button{--padding-start: 8px;--padding-end: 8px;--color: var(--ion-color-medium)}.qr-actions ion-button:hover{--color: var(--ion-color-primary)}.qr-actions ion-button ion-icon{font-size:1.25rem}.theme--minimal{background:transparent!important;padding:0!important;box-shadow:none!important;border:none!important}.theme--gradient-purple{background:linear-gradient(135deg,#667eea,#764ba2)!important;padding:20px!important;border-radius:16px!important}.theme--gradient-purple .qr-image{border-radius:8px}.theme--gradient-purple .qr-label{color:#fff}.theme--gradient-purple .qr-actions ion-button{--color: rgba(255, 255, 255, .8)}.theme--gradient-purple .qr-actions ion-button:hover{--color: white}.theme--gradient-blue{background:linear-gradient(135deg,#4facfe,#00f2fe)!important;padding:20px!important;border-radius:16px!important}.theme--gradient-blue .qr-image{border-radius:8px}.theme--gradient-blue .qr-label{color:#fff}.theme--gradient-blue .qr-actions ion-button{--color: rgba(255, 255, 255, .8)}.theme--gradient-blue .qr-actions ion-button:hover{--color: white}.theme--gradient-sunset{background:linear-gradient(135deg,#fa709a,#fee140)!important;padding:20px!important;border-radius:16px!important}.theme--gradient-sunset .qr-image{border-radius:8px}.theme--gradient-sunset .qr-label{color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.1)}.theme--gradient-sunset .qr-actions ion-button{--color: rgba(255, 255, 255, .9)}.theme--gradient-sunset .qr-actions ion-button:hover{--color: white}.theme--gradient-mint{background:linear-gradient(135deg,#11998e,#38ef7d)!important;padding:20px!important;border-radius:16px!important}.theme--gradient-mint .qr-image{border-radius:8px}.theme--gradient-mint .qr-label{color:#fff}.theme--gradient-mint .qr-actions ion-button{--color: rgba(255, 255, 255, .8)}.theme--gradient-mint .qr-actions ion-button:hover{--color: white}.theme--dark{background:linear-gradient(145deg,#1a1a2e,#16213e)!important;padding:20px!important;border-radius:16px!important;border:1px solid rgba(255,255,255,.1)!important}.theme--dark .qr-image{border-radius:8px;filter:invert(1)}.theme--dark .qr-label{color:#e0e0e0}.theme--dark .qr-actions ion-button{--color: rgba(255, 255, 255, .6)}.theme--dark .qr-actions ion-button:hover{--color: white}.theme--neon{background:#0a0a0a!important;padding:20px!important;border-radius:16px!important;border:2px solid var(--glow-color)!important;box-shadow:0 0 20px var(--glow-color),inset 0 0 20px #8b5cf61a!important}.theme--neon .qr-image{border-radius:8px;filter:drop-shadow(0 0 8px var(--glow-color))}.theme--neon .qr-label{color:var(--glow-color);text-shadow:0 0 10px var(--glow-color)}.theme--neon .qr-actions ion-button{--color: var(--glow-color)}.theme--neon .qr-actions ion-button:hover{--color: white}:host(.compact) .qr-actions{position:absolute;bottom:8px;left:50%;transform:translate(-50%);opacity:0;transition:opacity .2s;background-color:#ffffffe6;border-radius:8px;padding:4px}:host(.compact) .qr-code-container:hover .qr-actions{opacity:1}:host(.card) .qr-code-container{background-color:var(--ion-background-color, white);box-shadow:0 2px 8px #0000001a;padding:16px;border-radius:12px}@keyframes pulse{0%{box-shadow:var(--shadow),0 0 #6366f166}70%{box-shadow:var(--shadow),0 0 0 10px #6366f100}to{box-shadow:var(--shadow),0 0 #6366f100}}:host-context(body.dark) .loading-overlay,:host-context(.dark) .loading-overlay,:host-context(.ion-palette-dark) .loading-overlay,:host-context(html.ion-palette-dark) .loading-overlay,:host-context([data-theme=dark]) .loading-overlay{background-color:#000000b3}:host-context(body.dark).compact .qr-actions,:host-context(.dark).compact .qr-actions,:host-context(.ion-palette-dark).compact .qr-actions,:host-context(html.ion-palette-dark).compact .qr-actions,:host-context([data-theme=dark]).compact .qr-actions{background-color:#000000e6}:host-context(body.dark) .theme--default .qr-image,:host-context(.dark) .theme--default .qr-image,:host-context(.ion-palette-dark) .theme--default .qr-image,:host-context(html.ion-palette-dark) .theme--default .qr-image,:host-context([data-theme=dark]) .theme--default .qr-image{filter:invert(1)}\n"] }]
|
|
391
|
+
`, styles: ["@charset \"UTF-8\";:root{--val-container-sm: 540px;--val-container-md: 720px;--val-container-lg: 880px;--val-container-xl: 1100px;--val-container-padding: 16px;--ion-color-primary: #7026df;--ion-color-primary-rgb: 112, 38, 223;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #6321c4;--ion-color-primary-tint: #7e3ce2;--ion-color-secondary: #e2ccff;--ion-color-secondary-rgb: 226, 204, 255;--ion-color-secondary-contrast: #000000;--ion-color-secondary-contrast-rgb: 0, 0, 0;--ion-color-secondary-shade: #c7b4e0;--ion-color-secondary-tint: #e5d1ff;--ion-color-texti: #354c69;--ion-color-texti-rgb: 53, 76, 105;--ion-color-texti-contrast: #ffffff;--ion-color-texti-contrast-rgb: 255, 255, 255;--ion-color-texti-shade: #2f435c;--ion-color-texti-tint: #495e78;--ion-color-darki: #090f1b;--ion-color-darki-rgb: 9, 15, 27;--ion-color-darki-contrast: #ffffff;--ion-color-darki-contrast-rgb: 255, 255, 255;--ion-color-darki-shade: #080d18;--ion-color-darki-tint: #222732;--ion-color-medium: #9e9e9e;--ion-color-medium-rgb: 158, 158, 158;--ion-color-medium-contrast: #000000;--ion-color-medium-contrast-rgb: 0, 0, 0;--ion-color-medium-shade: #8b8b8b;--ion-color-medium-tint: #a8a8a8;--swiper-pagination-color: var(--ion-color-primary);--swiper-navigation-color: var(--ion-color-primary);--swiper-pagination-bullet-inactive-color: var(--ion-color-medium)}body.dark,html.ion-palette-dark,body[data-theme=dark]{--ion-color-texti: #8fc1ff;--ion-color-texti-rgb: 143, 193, 255;--ion-color-texti-contrast: #000000;--ion-color-texti-contrast-rgb: 0, 0, 0;--ion-color-texti-shade: #7eaae0;--ion-color-texti-tint: #9ac7ff;--ion-color-darki: #ffffff;--ion-color-darki-rgb: 255, 255, 255;--ion-color-darki-contrast: #000000;--ion-color-darki-contrast-rgb: 0, 0, 0;--ion-color-darki-shade: #e0e0e0;--ion-color-darki-tint: #ffffff;--ion-color-primary: #8f49f8;--ion-color-primary-rgb: 143, 73, 248;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #7e40da;--ion-color-primary-tint: #9a5bf9}.ion-color-texti{--ion-color-base: var(--ion-color-texti);--ion-color-base-rgb: var(--ion-color-texti-rgb);--ion-color-contrast: var(--ion-color-texti-contrast);--ion-color-contrast-rgb: var(--ion-color-texti-contrast-rgb);--ion-color-shade: var(--ion-color-texti-shade);--ion-color-tint: var(--ion-color-texti-tint)}.ion-color-darki{--ion-color-base: var(--ion-color-darki);--ion-color-base-rgb: var(--ion-color-darki-rgb);--ion-color-contrast: var(--ion-color-darki-contrast);--ion-color-contrast-rgb: var(--ion-color-darki-contrast-rgb);--ion-color-shade: var(--ion-color-darki-shade);--ion-color-tint: var(--ion-color-darki-tint)}:host{display:inline-block}.qr-code-container{display:inline-flex;flex-direction:column;align-items:center;gap:12px;padding:var(--padding);background:var(--container-bg);border-radius:var(--border-radius);box-shadow:var(--shadow);position:relative;transition:transform .2s ease,box-shadow .2s ease}.qr-code-container.with-border{border:1px solid var(--border-color)}.qr-code-container.loading .qr-image-wrapper{opacity:.5}.qr-code-container.scale-on-hover:hover{transform:scale(1.02)}.qr-code-container.pulse-on-hover:hover{animation:pulse 1.5s infinite}.qr-label{display:flex;align-items:center;gap:6px;color:var(--label-color);font-size:var(--label-size)}.qr-label ion-icon{font-size:1.1em}.qr-label .font-weight--normal{font-weight:400}.qr-label .font-weight--medium{font-weight:500}.qr-label .font-weight--semibold{font-weight:600}.qr-label .font-weight--bold{font-weight:700}.qr-label--top{margin-bottom:4px}.qr-label--bottom{margin-top:4px}.loading-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background-color:#ffffffb3;border-radius:var(--border-radius);z-index:1}.loading-overlay ion-spinner{width:32px;height:32px}.qr-image-wrapper{width:var(--size);height:var(--size);display:flex;align-items:center;justify-content:center;position:relative;transition:opacity .2s}.qr-image{width:100%;height:100%;object-fit:contain;display:block;border-radius:var(--qr-border-radius)}.qr-logo{position:absolute;left:50%;top:50%;width:var(--logo-size);height:var(--logo-size);transform:translate(-50%,-50%);display:flex;align-items:center;justify-content:center;border-radius:50%;background:#fff;padding:max(4px,var(--logo-size) * .08);pointer-events:none}.qr-logo img{width:100%;height:100%;object-fit:contain;display:block}.qr-actions{display:flex;align-items:center;justify-content:center;gap:4px}.qr-actions ion-button{--padding-start: 8px;--padding-end: 8px;--color: var(--ion-color-medium)}.qr-actions ion-button:hover{--color: var(--ion-color-primary)}.qr-actions ion-button ion-icon{font-size:1.25rem}.theme--minimal{background:transparent!important;padding:0!important;box-shadow:none!important;border:none!important}.theme--gradient-purple{background:linear-gradient(135deg,#667eea,#764ba2)!important;padding:20px!important;border-radius:16px!important}.theme--gradient-purple .qr-image{border-radius:8px}.theme--gradient-purple .qr-label{color:#fff}.theme--gradient-purple .qr-actions ion-button{--color: rgba(255, 255, 255, .8)}.theme--gradient-purple .qr-actions ion-button:hover{--color: white}.theme--gradient-blue{background:linear-gradient(135deg,#4facfe,#00f2fe)!important;padding:20px!important;border-radius:16px!important}.theme--gradient-blue .qr-image{border-radius:8px}.theme--gradient-blue .qr-label{color:#fff}.theme--gradient-blue .qr-actions ion-button{--color: rgba(255, 255, 255, .8)}.theme--gradient-blue .qr-actions ion-button:hover{--color: white}.theme--gradient-sunset{background:linear-gradient(135deg,#fa709a,#fee140)!important;padding:20px!important;border-radius:16px!important}.theme--gradient-sunset .qr-image{border-radius:8px}.theme--gradient-sunset .qr-label{color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.1)}.theme--gradient-sunset .qr-actions ion-button{--color: rgba(255, 255, 255, .9)}.theme--gradient-sunset .qr-actions ion-button:hover{--color: white}.theme--gradient-mint{background:linear-gradient(135deg,#11998e,#38ef7d)!important;padding:20px!important;border-radius:16px!important}.theme--gradient-mint .qr-image{border-radius:8px}.theme--gradient-mint .qr-label{color:#fff}.theme--gradient-mint .qr-actions ion-button{--color: rgba(255, 255, 255, .8)}.theme--gradient-mint .qr-actions ion-button:hover{--color: white}.theme--dark{background:linear-gradient(145deg,#1a1a2e,#16213e)!important;padding:20px!important;border-radius:16px!important;border:1px solid rgba(255,255,255,.1)!important}.theme--dark .qr-image{border-radius:8px;filter:invert(1)}.theme--dark .qr-label{color:#e0e0e0}.theme--dark .qr-actions ion-button{--color: rgba(255, 255, 255, .6)}.theme--dark .qr-actions ion-button:hover{--color: white}.theme--neon{background:#0a0a0a!important;padding:20px!important;border-radius:16px!important;border:2px solid var(--glow-color)!important;box-shadow:0 0 20px var(--glow-color),inset 0 0 20px #8b5cf61a!important}.theme--neon .qr-image{border-radius:8px;filter:drop-shadow(0 0 8px var(--glow-color))}.theme--neon .qr-label{color:var(--glow-color);text-shadow:0 0 10px var(--glow-color)}.theme--neon .qr-actions ion-button{--color: var(--glow-color)}.theme--neon .qr-actions ion-button:hover{--color: white}:host(.compact) .qr-actions{position:absolute;bottom:8px;left:50%;transform:translate(-50%);opacity:0;transition:opacity .2s;background-color:#ffffffe6;border-radius:8px;padding:4px}:host(.compact) .qr-code-container:hover .qr-actions{opacity:1}:host(.card) .qr-code-container{background-color:var(--ion-background-color, white);box-shadow:0 2px 8px #0000001a;padding:16px;border-radius:12px}@keyframes pulse{0%{box-shadow:var(--shadow),0 0 #6366f166}70%{box-shadow:var(--shadow),0 0 0 10px #6366f100}to{box-shadow:var(--shadow),0 0 #6366f100}}:host-context(body.dark) .loading-overlay,:host-context(.dark) .loading-overlay,:host-context(.ion-palette-dark) .loading-overlay,:host-context(html.ion-palette-dark) .loading-overlay,:host-context([data-theme=dark]) .loading-overlay{background-color:#000000b3}:host-context(body.dark).compact .qr-actions,:host-context(.dark).compact .qr-actions,:host-context(.ion-palette-dark).compact .qr-actions,:host-context(html.ion-palette-dark).compact .qr-actions,:host-context([data-theme=dark]).compact .qr-actions{background-color:#000000e6}:host-context(body.dark) .theme--default .qr-image,:host-context(.dark) .theme--default .qr-image,:host-context(.ion-palette-dark) .theme--default .qr-image,:host-context(html.ion-palette-dark) .theme--default .qr-image,:host-context([data-theme=dark]) .theme--default .qr-image{filter:invert(1)}\n"] }]
|
|
369
392
|
}], propDecorators: { props: [{
|
|
370
393
|
type: Input
|
|
371
394
|
}], actionComplete: [{
|
|
@@ -375,4 +398,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
375
398
|
}], imageError: [{
|
|
376
399
|
type: Output
|
|
377
400
|
}] } });
|
|
378
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXItY29kZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvYXRvbXMvcXItY29kZS9xci1jb2RlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDM0UsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUNwQyxPQUFPLEVBQUUsZUFBZSxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUc1RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxxREFBcUQsQ0FBQztBQUN6RixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7O0FBRXJELFFBQVEsQ0FBQyxFQUFFLGVBQWUsRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLENBQUMsQ0FBQztBQTJGekQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FrQ0c7QUFDSCxNQUFNLE9BQU8sZUFBZTtJQTVINUI7UUErSFksbUJBQWMsR0FBRyxJQUFJLFlBQVksRUFBcUIsQ0FBQztRQUN2RCxjQUFTLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUNyQyxlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQVMsQ0FBQztRQUVqRCxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFFUixjQUFTLEdBQUcsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDdkMsU0FBSSxH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Z0JBQ0csVUFBVTtzQkFBbkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBPbkluaXQsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IElvbkJ1dHRvbiwgSW9uSWNvbiwgSW9uU3Bpbm5lciB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyL3N0YW5kYWxvbmUnO1xuaW1wb3J0IHsgYWRkSWNvbnMgfSBmcm9tICdpb25pY29ucyc7XG5pbXBvcnQgeyBkb3dubG9hZE91dGxpbmUsIGNvcHlPdXRsaW5lLCBzaGFyZU91dGxpbmUgfSBmcm9tICdpb25pY29ucy9pY29ucyc7XG5cbmltcG9ydCB7IFFyQ29kZU1ldGFkYXRhLCBRckNvZGVBY3Rpb25FdmVudCB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHsgUXJHZW5lcmF0b3JTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvcXItZ2VuZXJhdG9yL3FyLWdlbmVyYXRvci5zZXJ2aWNlJztcbmltcG9ydCB7IEkxOG5TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvaTE4bic7XG5cbmFkZEljb25zKHsgZG93bmxvYWRPdXRsaW5lLCBjb3B5T3V0bGluZSwgc2hhcmVPdXRsaW5lIH0pO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWwtcXItY29kZScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIElvbkJ1dHRvbiwgSW9uSWNvbiwgSW9uU3Bpbm5lcl0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJxci1jb2RlLWNvbnRhaW5lclwiXG4gICAgICBbY2xhc3NdPVwiZ2V0Q29udGFpbmVyQ2xhc3NlcygpXCJcbiAgICAgIFtzdHlsZS4tLWJvcmRlci1yYWRpdXNdPVwiZ2V0Qm9yZGVyUmFkaXVzKClcIlxuICAgICAgW3N0eWxlLi0tcGFkZGluZ109XCJnZXRQYWRkaW5nKClcIlxuICAgICAgW3N0eWxlLi0tY29udGFpbmVyLWJnXT1cImdldENvbnRhaW5lckJhY2tncm91bmQoKVwiXG4gICAgICBbc3R5bGUuLS1ib3JkZXItY29sb3JdPVwicHJvcHMuYm9yZGVyQ29sb3IgfHwgJ3ZhcigtLWlvbi1jb2xvci1saWdodC1zaGFkZSknXCJcbiAgICAgIFtzdHlsZS4tLXNoYWRvd109XCJnZXRTaGFkb3coKVwiXG4gICAgICBbc3R5bGUuLS1nbG93LWNvbG9yXT1cInByb3BzLmdsb3dDb2xvciB8fCAnIzhiNWNmNidcIlxuICAgICAgW3N0eWxlLi0tcXItYm9yZGVyLXJhZGl1c109XCJnZXRRckJvcmRlclJhZGl1cygpXCJcbiAgICA+XG4gICAgICBAaWYgKHByb3BzLmxvYWRpbmcpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cImxvYWRpbmctb3ZlcmxheVwiPlxuICAgICAgICAgIDxpb24tc3Bpbm5lciBuYW1lPVwiY2lyY3VsYXJcIj48L2lvbi1zcGlubmVyPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIH1cblxuICAgICAgQGlmIChwcm9wcy5sYWJlbCAmJiBwcm9wcy5sYWJlbC5wb3NpdGlvbiA9PT0gJ3RvcCcpIHtcbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzPVwicXItbGFiZWwgcXItbGFiZWwtLXRvcFwiXG4gICAgICAgICAgW3N0eWxlLi0tbGFiZWwtY29sb3JdPVwicHJvcHMubGFiZWwuY29sb3IgfHwgJ2luaGVyaXQnXCJcbiAgICAgICAgICBbc3R5bGUuLS1sYWJlbC1zaXplXT1cImdldExhYmVsRm9udFNpemUoKVwiXG4gICAgICAgID5cbiAgICAgICAgICBAaWYgKHByb3BzLmxhYmVsLmljb24gJiYgcHJvcHMubGFiZWwuaWNvblBvc2l0aW9uICE9PSAnZW5kJykge1xuICAgICAgICAgICAgPGlvbi1pY29uIFtuYW1lXT1cInByb3BzLmxhYmVsLmljb25cIj48L2lvbi1pY29uPlxuICAgICAgICAgIH1cbiAgICAgICAgICA8c3BhbiBbY2xhc3NdPVwiJ2ZvbnQtd2VpZ2h0LS0nICsgKHByb3BzLmxhYmVsLmZvbnRXZWlnaHQgfHwgJ21lZGl1bScpXCI+e3sgcHJvcHMubGFiZWwudGV4dCB9fTwvc3Bhbj5cbiAgICAgICAgICBAaWYgKHByb3BzLmxhYmVsLmljb24gJiYgcHJvcHMubGFiZWwuaWNvblBvc2l0aW9uID09PSAnZW5kJykge1xuICAgICAgICAgICAgPGlvbi1pY29uIFtuYW1lXT1cInByb3BzLmxhYmVsLmljb25cIj48L2lvbi1pY29uPlxuICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgICB9XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJxci1pbWFnZS13cmFwcGVyXCIgW3N0eWxlLi0tc2l6ZV09XCJnZXREaXNwbGF5U2l6ZSgpXCI+XG4gICAgICAgIDxpbWdcbiAgICAgICAgICBbc3JjXT1cInByb3BzLnFyLmRhdGFVcmxcIlxuICAgICAgICAgIFthbHRdPVwicHJvcHMuYWx0IHx8ICdRUiBDb2RlJ1wiXG4gICAgICAgICAgY2xhc3M9XCJxci1pbWFnZVwiXG4gICAgICAgICAgKGxvYWQpPVwib25JbWFnZUxvYWQoKVwiXG4gICAgICAgICAgKGVycm9yKT1cIm9uSW1hZ2VFcnJvcigkZXZlbnQpXCJcbiAgICAgICAgLz5cbiAgICAgIDwvZGl2PlxuXG4gICAgICBAaWYgKHByb3BzLmxhYmVsICYmIHByb3BzLmxhYmVsLnBvc2l0aW9uICE9PSAndG9wJykge1xuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3M9XCJxci1sYWJlbCBxci1sYWJlbC0tYm90dG9tXCJcbiAgICAgICAgICBbc3R5bGUuLS1sYWJlbC1jb2xvcl09XCJwcm9wcy5sYWJlbC5jb2xvciB8fCAnaW5oZXJpdCdcIlxuICAgICAgICAgIFtzdHlsZS4tLWxhYmVsLXNpemVdPVwiZ2V0TGFiZWxGb250U2l6ZSgpXCJcbiAgICAgICAgPlxuICAgICAgICAgIEBpZiAocHJvcHMubGFiZWwuaWNvbiAmJiBwcm9wcy5sYWJlbC5pY29uUG9zaXRpb24gIT09ICdlbmQnKSB7XG4gICAgICAgICAgICA8aW9uLWljb24gW25hbWVdPVwicHJvcHMubGFiZWwuaWNvblwiPjwvaW9uLWljb24+XG4gICAgICAgICAgfVxuICAgICAgICAgIDxzcGFuIFtjbGFzc109XCInZm9udC13ZWlnaHQtLScgKyAocHJvcHMubGFiZWwuZm9udFdlaWdodCB8fCAnbWVkaXVtJylcIj57eyBwcm9wcy5sYWJlbC50ZXh0IH19PC9zcGFuPlxuICAgICAgICAgIEBpZiAocHJvcHMubGFiZWwuaWNvbiAmJiBwcm9wcy5sYWJlbC5pY29uUG9zaXRpb24gPT09ICdlbmQnKSB7XG4gICAgICAgICAgICA8aW9uLWljb24gW25hbWVdPVwicHJvcHMubGFiZWwuaWNvblwiPjwvaW9uLWljb24+XG4gICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIH1cblxuICAgICAgQGlmIChoYXNBY3Rpb25zKCkpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cInFyLWFjdGlvbnNcIj5cbiAgICAgICAgICBAaWYgKHByb3BzLnNob3dEb3dubG9hZCkge1xuICAgICAgICAgICAgPGlvbi1idXR0b24gZmlsbD1cImNsZWFyXCIgc2l6ZT1cInNtYWxsXCIgKGNsaWNrKT1cIm9uRG93bmxvYWQoKVwiIFt0aXRsZV09XCJnZXREb3dubG9hZExhYmVsKClcIj5cbiAgICAgICAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJkb3dubG9hZC1vdXRsaW5lXCIgc2xvdD1cImljb24tb25seVwiPjwvaW9uLWljb24+XG4gICAgICAgICAgICA8L2lvbi1idXR0b24+XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgQGlmIChwcm9wcy5zaG93Q29weSAmJiBjYW5Db3B5KSB7XG4gICAgICAgICAgICA8aW9uLWJ1dHRvbiBmaWxsPVwiY2xlYXJcIiBzaXplPVwic21hbGxcIiAoY2xpY2spPVwib25Db3B5KClcIiBbdGl0bGVdPVwiZ2V0Q29weUxhYmVsKClcIj5cbiAgICAgICAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJjb3B5LW91dGxpbmVcIiBzbG90PVwiaWNvbi1vbmx5XCI+PC9pb24taWNvbj5cbiAgICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICAgICAgICB9XG5cbiAgICAgICAgICBAaWYgKHByb3BzLnNob3dTaGFyZSAmJiBjYW5TaGFyZSkge1xuICAgICAgICAgICAgPGlvbi1idXR0b24gZmlsbD1cImNsZWFyXCIgc2l6ZT1cInNtYWxsXCIgKGNsaWNrKT1cIm9uU2hhcmUoKVwiIFt0aXRsZV09XCJnZXRTaGFyZUxhYmVsKClcIj5cbiAgICAgICAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJzaGFyZS1vdXRsaW5lXCIgc2xvdD1cImljb24tb25seVwiPjwvaW9uLWljb24+XG4gICAgICAgICAgICA8L2lvbi1idXR0b24+XG4gICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiAgYCxcbiAgc3R5bGVVcmxzOiBbJy4vcXItY29kZS5jb21wb25lbnQuc2NzcyddLFxufSlcbi8qKlxuICogdmFsLXFyLWNvZGVcbiAqXG4gKiBBIGNvbXBvbmVudCB0byBkaXNwbGF5IFFSIGNvZGVzIGdlbmVyYXRlZCBieSBRckdlbmVyYXRvclNlcnZpY2UuXG4gKiBQcm92aWRlcyBvcHRpb25hbCBhY3Rpb24gYnV0dG9ucyBmb3IgZG93bmxvYWQsIGNvcHksIGFuZCBzaGFyZS5cbiAqXG4gKiBAZXhhbXBsZSBCYXNpYyB1c2FnZVxuICogYGBgdHlwZXNjcmlwdFxuICogcXIgPSBhd2FpdCB0aGlzLnFyU2VydmljZS5nZW5lcmF0ZSh7IGRhdGE6ICdodHRwczovL2V4YW1wbGUuY29tJyB9KTtcbiAqIGBgYFxuICogYGBgaHRtbFxuICogPHZhbC1xci1jb2RlIFtwcm9wc109XCJ7IHFyOiBxciB9XCI+PC92YWwtcXItY29kZT5cbiAqIGBgYFxuICpcbiAqIEBleGFtcGxlIFdpdGggYWN0aW9uc1xuICogYGBgaHRtbFxuICogPHZhbC1xci1jb2RlXG4gKiAgIFtwcm9wc109XCJ7XG4gKiAgICAgcXI6IHFyLFxuICogICAgIHNob3dEb3dubG9hZDogdHJ1ZSxcbiAqICAgICBzaG93Q29weTogdHJ1ZSxcbiAqICAgICBzaG93U2hhcmU6IHRydWUsXG4gKiAgICAgZGlzcGxheVNpemU6IDIwMCxcbiAqICAgICBzaG93Qm9yZGVyOiB0cnVlLFxuICogICAgIGJvcmRlclJhZGl1czogMTJcbiAqICAgfVwiXG4gKiAgIChhY3Rpb25Db21wbGV0ZSk9XCJvbkFjdGlvbigkZXZlbnQpXCJcbiAqID48L3ZhbC1xci1jb2RlPlxuICogYGBgXG4gKlxuICogQGlucHV0IHByb3BzOiBRckNvZGVNZXRhZGF0YSAtIENvbmZpZ3VyYXRpb24gZm9yIHRoZSBRUiBkaXNwbGF5XG4gKiBAb3V0cHV0IGFjdGlvbkNvbXBsZXRlIC0gRW1pdHMgd2hlbiBhbiBhY3Rpb24gKGRvd25sb2FkL2NvcHkvc2hhcmUpIGNvbXBsZXRlc1xuICogQG91dHB1dCBpbWFnZUxvYWQgLSBFbWl0cyB3aGVuIHRoZSBRUiBpbWFnZSBsb2Fkc1xuICogQG91dHB1dCBpbWFnZUVycm9yIC0gRW1pdHMgd2hlbiB0aGUgUVIgaW1hZ2UgZmFpbHMgdG8gbG9hZFxuICovXG5leHBvcnQgY2xhc3MgUXJDb2RlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgcHJvcHM6IFFyQ29kZU1ldGFkYXRhO1xuXG4gIEBPdXRwdXQoKSBhY3Rpb25Db21wbGV0ZSA9IG5ldyBFdmVudEVtaXR0ZXI8UXJDb2RlQWN0aW9uRXZlbnQ+KCk7XG4gIEBPdXRwdXQoKSBpbWFnZUxvYWQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gIEBPdXRwdXQoKSBpbWFnZUVycm9yID0gbmV3IEV2ZW50RW1pdHRlcjxFcnJvcj4oKTtcblxuICBjYW5TaGFyZSA9IGZhbHNlO1xuICBjYW5Db3B5ID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSBxclNlcnZpY2UgPSBpbmplY3QoUXJHZW5lcmF0b3JTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBpMThuID0gaW5qZWN0KEkxOG5TZXJ2aWNlKTtcblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmNhblNoYXJlID0gdGhpcy5xclNlcnZpY2UuY2FuU2hhcmUoKTtcbiAgICB0aGlzLmNhbkNvcHkgPSB0aGlzLnFyU2VydmljZS5jYW5Db3B5VG9DbGlwYm9hcmQoKTtcbiAgfVxuXG4gIGdldERpc3BsYXlTaXplKCk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMucHJvcHMuZGlzcGxheVNpemUpIHtcbiAgICAgIHJldHVybiBgJHt0aGlzLnByb3BzLmRpc3BsYXlTaXplfXB4YDtcbiAgICB9XG4gICAgcmV0dXJuIGAke3RoaXMucHJvcHMucXIuY29uZmlnLndpZHRoIHx8IDMwMH1weGA7XG4gIH1cblxuICBnZXRCb3JkZXJSYWRpdXMoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5wcm9wcy5ib3JkZXJSYWRpdXMgPyBgJHt0aGlzLnByb3BzLmJvcmRlclJhZGl1c31weGAgOiAnMCc7XG4gIH1cblxuICBnZXRQYWRkaW5nKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMucHJvcHMucGFkZGluZyA/IGAke3RoaXMucHJvcHMucGFkZGluZ31weGAgOiAnMCc7XG4gIH1cblxuICBnZXRRckJvcmRlclJhZGl1cygpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnByb3BzLnFyQm9yZGVyUmFkaXVzID8gYCR7dGhpcy5wcm9wcy5xckJvcmRlclJhZGl1c31weGAgOiAnMCc7XG4gIH1cblxuICBnZXRDb250YWluZXJDbGFzc2VzKCk6IHN0cmluZyB7XG4gICAgY29uc3QgY2xhc3Nlczogc3RyaW5nW10gPSBbXTtcblxuICAgIGlmICh0aGlzLnByb3BzLmNzc0NsYXNzKSBjbGFzc2VzLnB1c2godGhpcy5wcm9wcy5jc3NDbGFzcyk7XG4gICAgaWYgKHRoaXMucHJvcHMuc2hvd0JvcmRlcikgY2xhc3Nlcy5wdXNoKCd3aXRoLWJvcmRlcicpO1xuICAgIGlmICh0aGlzLnByb3BzLmxvYWRpbmcpIGNsYXNzZXMucHVzaCgnbG9hZGluZycpO1xuICAgIGlmICh0aGlzLnByb3BzLnRoZW1lKSBjbGFzc2VzLnB1c2goYHRoZW1lLS0ke3RoaXMucHJvcHMudGhlbWV9YCk7XG4gICAgaWYgKHRoaXMucHJvcHMucHVsc2VPbkhvdmVyKSBjbGFzc2VzLnB1c2goJ3B1bHNlLW9uLWhvdmVyJyk7XG4gICAgaWYgKHRoaXMucHJvcHMuc2NhbGVPbkhvdmVyKSBjbGFzc2VzLnB1c2goJ3NjYWxlLW9uLWhvdmVyJyk7XG4gICAgaWYgKHRoaXMucHJvcHMuZ3JhZGllbnQpIGNsYXNzZXMucHVzaCgnaGFzLWdyYWRpZW50Jyk7XG5cbiAgICByZXR1cm4gY2xhc3Nlcy5qb2luKCcgJyk7XG4gIH1cblxuICBnZXRDb250YWluZXJCYWNrZ3JvdW5kKCk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMucHJvcHMuZ3JhZGllbnQpIHtcbiAgICAgIGNvbnN0IHsgZnJvbSwgdG8sIHZpYSwgZGlyZWN0aW9uID0gJ3RvLWJvdHRvbScgfSA9IHRoaXMucHJvcHMuZ3JhZGllbnQ7XG4gICAgICBjb25zdCBjc3NEaXJlY3Rpb24gPSBkaXJlY3Rpb24ucmVwbGFjZSgvLS9nLCAnICcpO1xuICAgICAgaWYgKHZpYSkge1xuICAgICAgICByZXR1cm4gYGxpbmVhci1ncmFkaWVudCgke2Nzc0RpcmVjdGlvbn0sICR7ZnJvbX0sICR7dmlhfSwgJHt0b30pYDtcbiAgICAgIH1cbiAgICAgIHJldHVybiBgbGluZWFyLWdyYWRpZW50KCR7Y3NzRGlyZWN0aW9ufSwgJHtmcm9tfSwgJHt0b30pYDtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMucHJvcHMuY29udGFpbmVyQmFja2dyb3VuZCB8fCAndHJhbnNwYXJlbnQnO1xuICB9XG5cbiAgZ2V0U2hhZG93KCk6IHN0cmluZyB7XG4gICAgY29uc3Qgc2hhZG93TWFwOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICAgICAgbm9uZTogJ25vbmUnLFxuICAgICAgc206ICcwIDFweCAycHggMCByZ2JhKDAsIDAsIDAsIDAuMDUpJyxcbiAgICAgIG1kOiAnMCA0cHggNnB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjEpLCAwIDJweCA0cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMDYpJyxcbiAgICAgIGxnOiAnMCAxMHB4IDE1cHggLTNweCByZ2JhKDAsIDAsIDAsIDAuMSksIDAgNHB4IDZweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4wNSknLFxuICAgICAgeGw6ICcwIDIwcHggMjVweCAtNXB4IHJnYmEoMCwgMCwgMCwgMC4xKSwgMCAxMHB4IDEwcHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMDQpJyxcbiAgICB9O1xuXG4gICAgaWYgKCF0aGlzLnByb3BzLnNoYWRvdykgcmV0dXJuICdub25lJztcbiAgICByZXR1cm4gc2hhZG93TWFwW3RoaXMucHJvcHMuc2hhZG93XSB8fCB0aGlzLnByb3BzLnNoYWRvdztcbiAgfVxuXG4gIGdldExhYmVsRm9udFNpemUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5wcm9wcy5sYWJlbD8uZm9udFNpemUgPyBgJHt0aGlzLnByb3BzLmxhYmVsLmZvbnRTaXplfXB4YCA6ICcxNHB4JztcbiAgfVxuXG4gIGhhc0FjdGlvbnMoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhKHRoaXMucHJvcHMuc2hvd0Rvd25sb2FkIHx8IHRoaXMucHJvcHMuc2hvd0NvcHkgfHwgdGhpcy5wcm9wcy5zaG93U2hhcmUpO1xuICB9XG5cbiAgZ2V0RG93bmxvYWRMYWJlbCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnByb3BzLmRvd25sb2FkTGFiZWwgfHwgdGhpcy5pMThuLnQoJ2Rvd25sb2FkJyk7XG4gIH1cblxuICBnZXRDb3B5TGFiZWwoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5wcm9wcy5jb3B5TGFiZWwgfHwgdGhpcy5pMThuLnQoJ2NvcHknKTtcbiAgfVxuXG4gIGdldFNoYXJlTGFiZWwoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5wcm9wcy5zaGFyZUxhYmVsIHx8IHRoaXMuaTE4bi50KCdzaGFyZScpO1xuICB9XG5cbiAgYXN5bmMgb25Eb3dubG9hZCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMucHJvcHMuZG93bmxvYWRGaWxlbmFtZSA/IHsgZmlsZW5hbWU6IHRoaXMucHJvcHMuZG93bmxvYWRGaWxlbmFtZSB9IDogdW5kZWZpbmVkO1xuICAgICAgYXdhaXQgdGhpcy5xclNlcnZpY2UuZG93bmxvYWQodGhpcy5wcm9wcy5xciwgb3B0aW9ucyk7XG4gICAgICB0aGlzLmFjdGlvbkNvbXBsZXRlLmVtaXQoe1xuICAgICAgICBhY3Rpb246ICdkb3dubG9hZCcsXG4gICAgICAgIHN1Y2Nlc3M6IHRydWUsXG4gICAgICAgIHFyOiB0aGlzLnByb3BzLnFyLFxuICAgICAgfSk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHRoaXMuYWN0aW9uQ29tcGxldGUuZW1pdCh7XG4gICAgICAgIGFjdGlvbjogJ2Rvd25sb2FkJyxcbiAgICAgICAgc3VjY2VzczogZmFsc2UsXG4gICAgICAgIHFyOiB0aGlzLnByb3BzLnFyLFxuICAgICAgICBlcnJvcjogZXJyb3IgYXMgRXJyb3IsXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBhc3luYyBvbkNvcHkoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHN1Y2Nlc3MgPSBhd2FpdCB0aGlzLnFyU2VydmljZS5jb3B5VG9DbGlwYm9hcmQodGhpcy5wcm9wcy5xcik7XG4gICAgICB0aGlzLmFjdGlvbkNvbXBsZXRlLmVtaXQoe1xuICAgICAgICBhY3Rpb246ICdjb3B5JyxcbiAgICAgICAgc3VjY2VzcyxcbiAgICAgICAgcXI6IHRoaXMucHJvcHMucXIsXG4gICAgICB9KTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgdGhpcy5hY3Rpb25Db21wbGV0ZS5lbWl0KHtcbiAgICAgICAgYWN0aW9uOiAnY29weScsXG4gICAgICAgIHN1Y2Nlc3M6IGZhbHNlLFxuICAgICAgICBxcjogdGhpcy5wcm9wcy5xcixcbiAgICAgICAgZXJyb3I6IGVycm9yIGFzIEVycm9yLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgb25TaGFyZSgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3Qgb3B0aW9uczogeyB0aXRsZT86IHN0cmluZzsgdGV4dD86IHN0cmluZzsgZmlsZW5hbWU/OiBzdHJpbmcgfSA9IHt9O1xuICAgICAgaWYgKHRoaXMucHJvcHMuc2hhcmVUaXRsZSkgb3B0aW9ucy50aXRsZSA9IHRoaXMucHJvcHMuc2hhcmVUaXRsZTtcbiAgICAgIGlmICh0aGlzLnByb3BzLnNoYXJlVGV4dCkgb3B0aW9ucy50ZXh0ID0gdGhpcy5wcm9wcy5zaGFyZVRleHQ7XG4gICAgICBpZiAodGhpcy5wcm9wcy5zaGFyZUZpbGVuYW1lKSBvcHRpb25zLmZpbGVuYW1lID0gdGhpcy5wcm9wcy5zaGFyZUZpbGVuYW1lO1xuXG4gICAgICBjb25zdCBzdWNjZXNzID0gYXdhaXQgdGhpcy5xclNlcnZpY2Uuc2hhcmUodGhpcy5wcm9wcy5xciwgT2JqZWN0LmtleXMob3B0aW9ucykubGVuZ3RoID4gMCA/IG9wdGlvbnMgOiB1bmRlZmluZWQpO1xuICAgICAgdGhpcy5hY3Rpb25Db21wbGV0ZS5lbWl0KHtcbiAgICAgICAgYWN0aW9uOiAnc2hhcmUnLFxuICAgICAgICBzdWNjZXNzLFxuICAgICAgICBxcjogdGhpcy5wcm9wcy5xcixcbiAgICAgIH0pO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICB0aGlzLmFjdGlvbkNvbXBsZXRlLmVtaXQoe1xuICAgICAgICBhY3Rpb246ICdzaGFyZScsXG4gICAgICAgIHN1Y2Nlc3M6IGZhbHNlLFxuICAgICAgICBxcjogdGhpcy5wcm9wcy5xcixcbiAgICAgICAgZXJyb3I6IGVycm9yIGFzIEVycm9yLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgb25JbWFnZUxvYWQoKTogdm9pZCB7XG4gICAgdGhpcy5pbWFnZUxvYWQuZW1pdCgpO1xuICB9XG5cbiAgb25JbWFnZUVycm9yKF9ldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCBlcnJvciA9IG5ldyBFcnJvcignRmFpbGVkIHRvIGxvYWQgUVIgY29kZSBpbWFnZScpO1xuICAgIHRoaXMuaW1hZ2VFcnJvci5lbWl0KGVycm9yKTtcbiAgfVxufVxuIl19
|
|
401
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXItY29kZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvYXRvbXMvcXItY29kZS9xci1jb2RlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDM0UsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUNwQyxPQUFPLEVBQUUsZUFBZSxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUc1RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxxREFBcUQsQ0FBQztBQUN6RixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7O0FBRXJELFFBQVEsQ0FBQyxFQUFFLGVBQWUsRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLENBQUMsQ0FBQztBQW9HekQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FrQ0c7QUFDSCxNQUFNLE9BQU8sZUFBZTtJQXJJNUI7UUF3SVksbUJBQWMsR0FBRyxJQUFJLFlBQVksRUFBcUIsQ0FBQztRQUN2RCxjQUFTLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUNyQyxlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQVMsQ0FBQztRQUVqRCxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFFUixjQUFTLEdBQUcsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDdkMsU0FBSSxH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RSxVQUFVOzs0RkFrSTNDLGVBQWU7a0JBckkzQixTQUFTOytCQUNFLGFBQWEsY0FDWCxJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxVQUFVLENBQUMsWUFDN0M7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0EyRlQ7OEJBdUNRLEtBQUs7c0JBQWIsS0FBSztnQkFFSSxjQUFjO3NCQUF2QixNQUFNO2dCQUNHLFNBQVM7c0JBQWxCLE1BQU07Z0JBQ0csVUFBVTtzQkFBbkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBPbkluaXQsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IElvbkJ1dHRvbiwgSW9uSWNvbiwgSW9uU3Bpbm5lciB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyL3N0YW5kYWxvbmUnO1xuaW1wb3J0IHsgYWRkSWNvbnMgfSBmcm9tICdpb25pY29ucyc7XG5pbXBvcnQgeyBkb3dubG9hZE91dGxpbmUsIGNvcHlPdXRsaW5lLCBzaGFyZU91dGxpbmUgfSBmcm9tICdpb25pY29ucy9pY29ucyc7XG5cbmltcG9ydCB7IFFyQ29kZU1ldGFkYXRhLCBRckNvZGVBY3Rpb25FdmVudCB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHsgUXJHZW5lcmF0b3JTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvcXItZ2VuZXJhdG9yL3FyLWdlbmVyYXRvci5zZXJ2aWNlJztcbmltcG9ydCB7IEkxOG5TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvaTE4bic7XG5cbmFkZEljb25zKHsgZG93bmxvYWRPdXRsaW5lLCBjb3B5T3V0bGluZSwgc2hhcmVPdXRsaW5lIH0pO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWwtcXItY29kZScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIElvbkJ1dHRvbiwgSW9uSWNvbiwgSW9uU3Bpbm5lcl0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJxci1jb2RlLWNvbnRhaW5lclwiXG4gICAgICBbY2xhc3NdPVwiZ2V0Q29udGFpbmVyQ2xhc3NlcygpXCJcbiAgICAgIFtzdHlsZS4tLWJvcmRlci1yYWRpdXNdPVwiZ2V0Qm9yZGVyUmFkaXVzKClcIlxuICAgICAgW3N0eWxlLi0tcGFkZGluZ109XCJnZXRQYWRkaW5nKClcIlxuICAgICAgW3N0eWxlLi0tY29udGFpbmVyLWJnXT1cImdldENvbnRhaW5lckJhY2tncm91bmQoKVwiXG4gICAgICBbc3R5bGUuLS1ib3JkZXItY29sb3JdPVwicHJvcHMuYm9yZGVyQ29sb3IgfHwgJ3ZhcigtLWlvbi1jb2xvci1saWdodC1zaGFkZSknXCJcbiAgICAgIFtzdHlsZS4tLXNoYWRvd109XCJnZXRTaGFkb3coKVwiXG4gICAgICBbc3R5bGUuLS1nbG93LWNvbG9yXT1cInByb3BzLmdsb3dDb2xvciB8fCAnIzhiNWNmNidcIlxuICAgICAgW3N0eWxlLi0tcXItYm9yZGVyLXJhZGl1c109XCJnZXRRckJvcmRlclJhZGl1cygpXCJcbiAgICA+XG4gICAgICBAaWYgKHByb3BzLmxvYWRpbmcpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cImxvYWRpbmctb3ZlcmxheVwiPlxuICAgICAgICAgIDxpb24tc3Bpbm5lciBuYW1lPVwiY2lyY3VsYXJcIj48L2lvbi1zcGlubmVyPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIH1cblxuICAgICAgQGlmIChwcm9wcy5sYWJlbCAmJiBwcm9wcy5sYWJlbC5wb3NpdGlvbiA9PT0gJ3RvcCcpIHtcbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzPVwicXItbGFiZWwgcXItbGFiZWwtLXRvcFwiXG4gICAgICAgICAgW3N0eWxlLi0tbGFiZWwtY29sb3JdPVwicHJvcHMubGFiZWwuY29sb3IgfHwgJ2luaGVyaXQnXCJcbiAgICAgICAgICBbc3R5bGUuLS1sYWJlbC1zaXplXT1cImdldExhYmVsRm9udFNpemUoKVwiXG4gICAgICAgID5cbiAgICAgICAgICBAaWYgKHByb3BzLmxhYmVsLmljb24gJiYgcHJvcHMubGFiZWwuaWNvblBvc2l0aW9uICE9PSAnZW5kJykge1xuICAgICAgICAgICAgPGlvbi1pY29uIFtuYW1lXT1cInByb3BzLmxhYmVsLmljb25cIj48L2lvbi1pY29uPlxuICAgICAgICAgIH1cbiAgICAgICAgICA8c3BhbiBbY2xhc3NdPVwiJ2ZvbnQtd2VpZ2h0LS0nICsgKHByb3BzLmxhYmVsLmZvbnRXZWlnaHQgfHwgJ21lZGl1bScpXCI+e3sgcHJvcHMubGFiZWwudGV4dCB9fTwvc3Bhbj5cbiAgICAgICAgICBAaWYgKHByb3BzLmxhYmVsLmljb24gJiYgcHJvcHMubGFiZWwuaWNvblBvc2l0aW9uID09PSAnZW5kJykge1xuICAgICAgICAgICAgPGlvbi1pY29uIFtuYW1lXT1cInByb3BzLmxhYmVsLmljb25cIj48L2lvbi1pY29uPlxuICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgICB9XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJxci1pbWFnZS13cmFwcGVyXCIgW3N0eWxlLi0tc2l6ZV09XCJnZXREaXNwbGF5U2l6ZSgpXCI+XG4gICAgICAgIDxpbWdcbiAgICAgICAgICBbc3JjXT1cInByb3BzLnFyLmRhdGFVcmxcIlxuICAgICAgICAgIFthbHRdPVwicHJvcHMuYWx0IHx8ICdRUiBDb2RlJ1wiXG4gICAgICAgICAgY2xhc3M9XCJxci1pbWFnZVwiXG4gICAgICAgICAgKGxvYWQpPVwib25JbWFnZUxvYWQoKVwiXG4gICAgICAgICAgKGVycm9yKT1cIm9uSW1hZ2VFcnJvcigkZXZlbnQpXCJcbiAgICAgICAgLz5cbiAgICAgICAgQGlmIChwcm9wcy5sb2dvVXJsKSB7XG4gICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgIGNsYXNzPVwicXItbG9nb1wiXG4gICAgICAgICAgICBbc3R5bGUuLS1sb2dvLXNpemVdPVwiZ2V0TG9nb1NpemUoKVwiXG4gICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxpbWcgW3NyY109XCJwcm9wcy5sb2dvVXJsXCIgYWx0PVwiXCIgLz5cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIH1cbiAgICAgIDwvZGl2PlxuXG4gICAgICBAaWYgKHByb3BzLmxhYmVsICYmIHByb3BzLmxhYmVsLnBvc2l0aW9uICE9PSAndG9wJykge1xuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3M9XCJxci1sYWJlbCBxci1sYWJlbC0tYm90dG9tXCJcbiAgICAgICAgICBbc3R5bGUuLS1sYWJlbC1jb2xvcl09XCJwcm9wcy5sYWJlbC5jb2xvciB8fCAnaW5oZXJpdCdcIlxuICAgICAgICAgIFtzdHlsZS4tLWxhYmVsLXNpemVdPVwiZ2V0TGFiZWxGb250U2l6ZSgpXCJcbiAgICAgICAgPlxuICAgICAgICAgIEBpZiAocHJvcHMubGFiZWwuaWNvbiAmJiBwcm9wcy5sYWJlbC5pY29uUG9zaXRpb24gIT09ICdlbmQnKSB7XG4gICAgICAgICAgICA8aW9uLWljb24gW25hbWVdPVwicHJvcHMubGFiZWwuaWNvblwiPjwvaW9uLWljb24+XG4gICAgICAgICAgfVxuICAgICAgICAgIDxzcGFuIFtjbGFzc109XCInZm9udC13ZWlnaHQtLScgKyAocHJvcHMubGFiZWwuZm9udFdlaWdodCB8fCAnbWVkaXVtJylcIj57eyBwcm9wcy5sYWJlbC50ZXh0IH19PC9zcGFuPlxuICAgICAgICAgIEBpZiAocHJvcHMubGFiZWwuaWNvbiAmJiBwcm9wcy5sYWJlbC5pY29uUG9zaXRpb24gPT09ICdlbmQnKSB7XG4gICAgICAgICAgICA8aW9uLWljb24gW25hbWVdPVwicHJvcHMubGFiZWwuaWNvblwiPjwvaW9uLWljb24+XG4gICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIH1cblxuICAgICAgQGlmIChoYXNBY3Rpb25zKCkpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cInFyLWFjdGlvbnNcIj5cbiAgICAgICAgICBAaWYgKHByb3BzLnNob3dEb3dubG9hZCkge1xuICAgICAgICAgICAgPGlvbi1idXR0b24gZmlsbD1cImNsZWFyXCIgc2l6ZT1cInNtYWxsXCIgKGNsaWNrKT1cIm9uRG93bmxvYWQoKVwiIFt0aXRsZV09XCJnZXREb3dubG9hZExhYmVsKClcIj5cbiAgICAgICAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJkb3dubG9hZC1vdXRsaW5lXCIgc2xvdD1cImljb24tb25seVwiPjwvaW9uLWljb24+XG4gICAgICAgICAgICA8L2lvbi1idXR0b24+XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgQGlmIChwcm9wcy5zaG93Q29weSAmJiBjYW5Db3B5KSB7XG4gICAgICAgICAgICA8aW9uLWJ1dHRvbiBmaWxsPVwiY2xlYXJcIiBzaXplPVwic21hbGxcIiAoY2xpY2spPVwib25Db3B5KClcIiBbdGl0bGVdPVwiZ2V0Q29weUxhYmVsKClcIj5cbiAgICAgICAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJjb3B5LW91dGxpbmVcIiBzbG90PVwiaWNvbi1vbmx5XCI+PC9pb24taWNvbj5cbiAgICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICAgICAgICB9XG5cbiAgICAgICAgICBAaWYgKHByb3BzLnNob3dTaGFyZSAmJiBjYW5TaGFyZSkge1xuICAgICAgICAgICAgPGlvbi1idXR0b24gZmlsbD1cImNsZWFyXCIgc2l6ZT1cInNtYWxsXCIgKGNsaWNrKT1cIm9uU2hhcmUoKVwiIFt0aXRsZV09XCJnZXRTaGFyZUxhYmVsKClcIj5cbiAgICAgICAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJzaGFyZS1vdXRsaW5lXCIgc2xvdD1cImljb24tb25seVwiPjwvaW9uLWljb24+XG4gICAgICAgICAgICA8L2lvbi1idXR0b24+XG4gICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiAgYCxcbiAgc3R5bGVVcmxzOiBbJy4vcXItY29kZS5jb21wb25lbnQuc2NzcyddLFxufSlcbi8qKlxuICogdmFsLXFyLWNvZGVcbiAqXG4gKiBBIGNvbXBvbmVudCB0byBkaXNwbGF5IFFSIGNvZGVzIGdlbmVyYXRlZCBieSBRckdlbmVyYXRvclNlcnZpY2UuXG4gKiBQcm92aWRlcyBvcHRpb25hbCBhY3Rpb24gYnV0dG9ucyBmb3IgZG93bmxvYWQsIGNvcHksIGFuZCBzaGFyZS5cbiAqXG4gKiBAZXhhbXBsZSBCYXNpYyB1c2FnZVxuICogYGBgdHlwZXNjcmlwdFxuICogcXIgPSBhd2FpdCB0aGlzLnFyU2VydmljZS5nZW5lcmF0ZSh7IGRhdGE6ICdodHRwczovL2V4YW1wbGUuY29tJyB9KTtcbiAqIGBgYFxuICogYGBgaHRtbFxuICogPHZhbC1xci1jb2RlIFtwcm9wc109XCJ7IHFyOiBxciB9XCI+PC92YWwtcXItY29kZT5cbiAqIGBgYFxuICpcbiAqIEBleGFtcGxlIFdpdGggYWN0aW9uc1xuICogYGBgaHRtbFxuICogPHZhbC1xci1jb2RlXG4gKiAgIFtwcm9wc109XCJ7XG4gKiAgICAgcXI6IHFyLFxuICogICAgIHNob3dEb3dubG9hZDogdHJ1ZSxcbiAqICAgICBzaG93Q29weTogdHJ1ZSxcbiAqICAgICBzaG93U2hhcmU6IHRydWUsXG4gKiAgICAgZGlzcGxheVNpemU6IDIwMCxcbiAqICAgICBzaG93Qm9yZGVyOiB0cnVlLFxuICogICAgIGJvcmRlclJhZGl1czogMTJcbiAqICAgfVwiXG4gKiAgIChhY3Rpb25Db21wbGV0ZSk9XCJvbkFjdGlvbigkZXZlbnQpXCJcbiAqID48L3ZhbC1xci1jb2RlPlxuICogYGBgXG4gKlxuICogQGlucHV0IHByb3BzOiBRckNvZGVNZXRhZGF0YSAtIENvbmZpZ3VyYXRpb24gZm9yIHRoZSBRUiBkaXNwbGF5XG4gKiBAb3V0cHV0IGFjdGlvbkNvbXBsZXRlIC0gRW1pdHMgd2hlbiBhbiBhY3Rpb24gKGRvd25sb2FkL2NvcHkvc2hhcmUpIGNvbXBsZXRlc1xuICogQG91dHB1dCBpbWFnZUxvYWQgLSBFbWl0cyB3aGVuIHRoZSBRUiBpbWFnZSBsb2Fkc1xuICogQG91dHB1dCBpbWFnZUVycm9yIC0gRW1pdHMgd2hlbiB0aGUgUVIgaW1hZ2UgZmFpbHMgdG8gbG9hZFxuICovXG5leHBvcnQgY2xhc3MgUXJDb2RlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgcHJvcHM6IFFyQ29kZU1ldGFkYXRhO1xuXG4gIEBPdXRwdXQoKSBhY3Rpb25Db21wbGV0ZSA9IG5ldyBFdmVudEVtaXR0ZXI8UXJDb2RlQWN0aW9uRXZlbnQ+KCk7XG4gIEBPdXRwdXQoKSBpbWFnZUxvYWQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gIEBPdXRwdXQoKSBpbWFnZUVycm9yID0gbmV3IEV2ZW50RW1pdHRlcjxFcnJvcj4oKTtcblxuICBjYW5TaGFyZSA9IGZhbHNlO1xuICBjYW5Db3B5ID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSBxclNlcnZpY2UgPSBpbmplY3QoUXJHZW5lcmF0b3JTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBpMThuID0gaW5qZWN0KEkxOG5TZXJ2aWNlKTtcblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmNhblNoYXJlID0gdGhpcy5xclNlcnZpY2UuY2FuU2hhcmUoKTtcbiAgICB0aGlzLmNhbkNvcHkgPSB0aGlzLnFyU2VydmljZS5jYW5Db3B5VG9DbGlwYm9hcmQoKTtcbiAgfVxuXG4gIGdldERpc3BsYXlTaXplKCk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMucHJvcHMuZGlzcGxheVNpemUpIHtcbiAgICAgIHJldHVybiBgJHt0aGlzLnByb3BzLmRpc3BsYXlTaXplfXB4YDtcbiAgICB9XG4gICAgcmV0dXJuIGAke3RoaXMucHJvcHMucXIuY29uZmlnLndpZHRoIHx8IDMwMH1weGA7XG4gIH1cblxuICBnZXRCb3JkZXJSYWRpdXMoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5wcm9wcy5ib3JkZXJSYWRpdXMgPyBgJHt0aGlzLnByb3BzLmJvcmRlclJhZGl1c31weGAgOiAnMCc7XG4gIH1cblxuICBnZXRQYWRkaW5nKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMucHJvcHMucGFkZGluZyA/IGAke3RoaXMucHJvcHMucGFkZGluZ31weGAgOiAnMCc7XG4gIH1cblxuICBnZXRRckJvcmRlclJhZGl1cygpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnByb3BzLnFyQm9yZGVyUmFkaXVzID8gYCR7dGhpcy5wcm9wcy5xckJvcmRlclJhZGl1c31weGAgOiAnMCc7XG4gIH1cblxuICBnZXRMb2dvU2l6ZSgpOiBzdHJpbmcge1xuICAgIGNvbnN0IHNpemUgPSB0aGlzLnByb3BzLmRpc3BsYXlTaXplIHx8IHRoaXMucHJvcHMucXIuY29uZmlnLndpZHRoIHx8IDMwMDtcbiAgICBjb25zdCByYXRpbyA9IHRoaXMucHJvcHMubG9nb1NpemVSYXRpbyA/PyAwLjI7XG4gICAgcmV0dXJuIGAke01hdGgucm91bmQoc2l6ZSAqIHJhdGlvKX1weGA7XG4gIH1cblxuICBnZXRDb250YWluZXJDbGFzc2VzKCk6IHN0cmluZyB7XG4gICAgY29uc3QgY2xhc3Nlczogc3RyaW5nW10gPSBbXTtcblxuICAgIGlmICh0aGlzLnByb3BzLmNzc0NsYXNzKSBjbGFzc2VzLnB1c2godGhpcy5wcm9wcy5jc3NDbGFzcyk7XG4gICAgaWYgKHRoaXMucHJvcHMuc2hvd0JvcmRlcikgY2xhc3Nlcy5wdXNoKCd3aXRoLWJvcmRlcicpO1xuICAgIGlmICh0aGlzLnByb3BzLmxvYWRpbmcpIGNsYXNzZXMucHVzaCgnbG9hZGluZycpO1xuICAgIGlmICh0aGlzLnByb3BzLnRoZW1lKSBjbGFzc2VzLnB1c2goYHRoZW1lLS0ke3RoaXMucHJvcHMudGhlbWV9YCk7XG4gICAgaWYgKHRoaXMucHJvcHMucHVsc2VPbkhvdmVyKSBjbGFzc2VzLnB1c2goJ3B1bHNlLW9uLWhvdmVyJyk7XG4gICAgaWYgKHRoaXMucHJvcHMuc2NhbGVPbkhvdmVyKSBjbGFzc2VzLnB1c2goJ3NjYWxlLW9uLWhvdmVyJyk7XG4gICAgaWYgKHRoaXMucHJvcHMuZ3JhZGllbnQpIGNsYXNzZXMucHVzaCgnaGFzLWdyYWRpZW50Jyk7XG5cbiAgICByZXR1cm4gY2xhc3Nlcy5qb2luKCcgJyk7XG4gIH1cblxuICBnZXRDb250YWluZXJCYWNrZ3JvdW5kKCk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMucHJvcHMuZ3JhZGllbnQpIHtcbiAgICAgIGNvbnN0IHsgZnJvbSwgdG8sIHZpYSwgZGlyZWN0aW9uID0gJ3RvLWJvdHRvbScgfSA9IHRoaXMucHJvcHMuZ3JhZGllbnQ7XG4gICAgICBjb25zdCBjc3NEaXJlY3Rpb24gPSBkaXJlY3Rpb24ucmVwbGFjZSgvLS9nLCAnICcpO1xuICAgICAgaWYgKHZpYSkge1xuICAgICAgICByZXR1cm4gYGxpbmVhci1ncmFkaWVudCgke2Nzc0RpcmVjdGlvbn0sICR7ZnJvbX0sICR7dmlhfSwgJHt0b30pYDtcbiAgICAgIH1cbiAgICAgIHJldHVybiBgbGluZWFyLWdyYWRpZW50KCR7Y3NzRGlyZWN0aW9ufSwgJHtmcm9tfSwgJHt0b30pYDtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMucHJvcHMuY29udGFpbmVyQmFja2dyb3VuZCB8fCAndHJhbnNwYXJlbnQnO1xuICB9XG5cbiAgZ2V0U2hhZG93KCk6IHN0cmluZyB7XG4gICAgY29uc3Qgc2hhZG93TWFwOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICAgICAgbm9uZTogJ25vbmUnLFxuICAgICAgc206ICcwIDFweCAycHggMCByZ2JhKDAsIDAsIDAsIDAuMDUpJyxcbiAgICAgIG1kOiAnMCA0cHggNnB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjEpLCAwIDJweCA0cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMDYpJyxcbiAgICAgIGxnOiAnMCAxMHB4IDE1cHggLTNweCByZ2JhKDAsIDAsIDAsIDAuMSksIDAgNHB4IDZweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4wNSknLFxuICAgICAgeGw6ICcwIDIwcHggMjVweCAtNXB4IHJnYmEoMCwgMCwgMCwgMC4xKSwgMCAxMHB4IDEwcHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMDQpJyxcbiAgICB9O1xuXG4gICAgaWYgKCF0aGlzLnByb3BzLnNoYWRvdykgcmV0dXJuICdub25lJztcbiAgICByZXR1cm4gc2hhZG93TWFwW3RoaXMucHJvcHMuc2hhZG93XSB8fCB0aGlzLnByb3BzLnNoYWRvdztcbiAgfVxuXG4gIGdldExhYmVsRm9udFNpemUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5wcm9wcy5sYWJlbD8uZm9udFNpemUgPyBgJHt0aGlzLnByb3BzLmxhYmVsLmZvbnRTaXplfXB4YCA6ICcxNHB4JztcbiAgfVxuXG4gIGhhc0FjdGlvbnMoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhKHRoaXMucHJvcHMuc2hvd0Rvd25sb2FkIHx8IHRoaXMucHJvcHMuc2hvd0NvcHkgfHwgdGhpcy5wcm9wcy5zaG93U2hhcmUpO1xuICB9XG5cbiAgZ2V0RG93bmxvYWRMYWJlbCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnByb3BzLmRvd25sb2FkTGFiZWwgfHwgdGhpcy5pMThuLnQoJ2Rvd25sb2FkJyk7XG4gIH1cblxuICBnZXRDb3B5TGFiZWwoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5wcm9wcy5jb3B5TGFiZWwgfHwgdGhpcy5pMThuLnQoJ2NvcHknKTtcbiAgfVxuXG4gIGdldFNoYXJlTGFiZWwoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5wcm9wcy5zaGFyZUxhYmVsIHx8IHRoaXMuaTE4bi50KCdzaGFyZScpO1xuICB9XG5cbiAgYXN5bmMgb25Eb3dubG9hZCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMucHJvcHMuZG93bmxvYWRGaWxlbmFtZSA/IHsgZmlsZW5hbWU6IHRoaXMucHJvcHMuZG93bmxvYWRGaWxlbmFtZSB9IDogdW5kZWZpbmVkO1xuICAgICAgYXdhaXQgdGhpcy5xclNlcnZpY2UuZG93bmxvYWQodGhpcy5wcm9wcy5xciwgb3B0aW9ucyk7XG4gICAgICB0aGlzLmFjdGlvbkNvbXBsZXRlLmVtaXQoe1xuICAgICAgICBhY3Rpb246ICdkb3dubG9hZCcsXG4gICAgICAgIHN1Y2Nlc3M6IHRydWUsXG4gICAgICAgIHFyOiB0aGlzLnByb3BzLnFyLFxuICAgICAgfSk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHRoaXMuYWN0aW9uQ29tcGxldGUuZW1pdCh7XG4gICAgICAgIGFjdGlvbjogJ2Rvd25sb2FkJyxcbiAgICAgICAgc3VjY2VzczogZmFsc2UsXG4gICAgICAgIHFyOiB0aGlzLnByb3BzLnFyLFxuICAgICAgICBlcnJvcjogZXJyb3IgYXMgRXJyb3IsXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBhc3luYyBvbkNvcHkoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHN1Y2Nlc3MgPSBhd2FpdCB0aGlzLnFyU2VydmljZS5jb3B5VG9DbGlwYm9hcmQodGhpcy5wcm9wcy5xcik7XG4gICAgICB0aGlzLmFjdGlvbkNvbXBsZXRlLmVtaXQoe1xuICAgICAgICBhY3Rpb246ICdjb3B5JyxcbiAgICAgICAgc3VjY2VzcyxcbiAgICAgICAgcXI6IHRoaXMucHJvcHMucXIsXG4gICAgICB9KTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgdGhpcy5hY3Rpb25Db21wbGV0ZS5lbWl0KHtcbiAgICAgICAgYWN0aW9uOiAnY29weScsXG4gICAgICAgIHN1Y2Nlc3M6IGZhbHNlLFxuICAgICAgICBxcjogdGhpcy5wcm9wcy5xcixcbiAgICAgICAgZXJyb3I6IGVycm9yIGFzIEVycm9yLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgb25TaGFyZSgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3Qgb3B0aW9uczogeyB0aXRsZT86IHN0cmluZzsgdGV4dD86IHN0cmluZzsgZmlsZW5hbWU/OiBzdHJpbmcgfSA9IHt9O1xuICAgICAgaWYgKHRoaXMucHJvcHMuc2hhcmVUaXRsZSkgb3B0aW9ucy50aXRsZSA9IHRoaXMucHJvcHMuc2hhcmVUaXRsZTtcbiAgICAgIGlmICh0aGlzLnByb3BzLnNoYXJlVGV4dCkgb3B0aW9ucy50ZXh0ID0gdGhpcy5wcm9wcy5zaGFyZVRleHQ7XG4gICAgICBpZiAodGhpcy5wcm9wcy5zaGFyZUZpbGVuYW1lKSBvcHRpb25zLmZpbGVuYW1lID0gdGhpcy5wcm9wcy5zaGFyZUZpbGVuYW1lO1xuXG4gICAgICBjb25zdCBzdWNjZXNzID0gYXdhaXQgdGhpcy5xclNlcnZpY2Uuc2hhcmUodGhpcy5wcm9wcy5xciwgT2JqZWN0LmtleXMob3B0aW9ucykubGVuZ3RoID4gMCA/IG9wdGlvbnMgOiB1bmRlZmluZWQpO1xuICAgICAgdGhpcy5hY3Rpb25Db21wbGV0ZS5lbWl0KHtcbiAgICAgICAgYWN0aW9uOiAnc2hhcmUnLFxuICAgICAgICBzdWNjZXNzLFxuICAgICAgICBxcjogdGhpcy5wcm9wcy5xcixcbiAgICAgIH0pO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICB0aGlzLmFjdGlvbkNvbXBsZXRlLmVtaXQoe1xuICAgICAgICBhY3Rpb246ICdzaGFyZScsXG4gICAgICAgIHN1Y2Nlc3M6IGZhbHNlLFxuICAgICAgICBxcjogdGhpcy5wcm9wcy5xcixcbiAgICAgICAgZXJyb3I6IGVycm9yIGFzIEVycm9yLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgb25JbWFnZUxvYWQoKTogdm9pZCB7XG4gICAgdGhpcy5pbWFnZUxvYWQuZW1pdCgpO1xuICB9XG5cbiAgb25JbWFnZUVycm9yKF9ldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCBlcnJvciA9IG5ldyBFcnJvcignRmFpbGVkIHRvIGxvYWQgUVIgY29kZSBpbWFnZScpO1xuICAgIHRoaXMuaW1hZ2VFcnJvci5lbWl0KGVycm9yKTtcbiAgfVxufVxuIl19
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvYXRvbXMvcXItY29kZS90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUXJSZXN1bHQgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9xci1nZW5lcmF0b3IvdHlwZXMnO1xuXG4vKipcbiAqIFRoZW1lIHByZXNldHMgZm9yIHF1aWNrIHN0eWxpbmcuXG4gKi9cbmV4cG9ydCB0eXBlIFFyRGlzcGxheVRoZW1lID1cbiAgfCAnZGVmYXVsdCdcbiAgfCAnbWluaW1hbCdcbiAgfCAnZ3JhZGllbnQtcHVycGxlJ1xuICB8ICdncmFkaWVudC1ibHVlJ1xuICB8ICdncmFkaWVudC1zdW5zZXQnXG4gIHwgJ2dyYWRpZW50LW1pbnQnXG4gIHwgJ2RhcmsnXG4gIHwgJ25lb24nO1xuXG4vKipcbiAqIExhYmVsIHBvc2l0aW9uIG9wdGlvbnMuXG4gKi9cbmV4cG9ydCB0eXBlIFFyTGFiZWxQb3NpdGlvbiA9ICd0b3AnIHwgJ2JvdHRvbSc7XG5cbi8qKlxuICogR3JhZGllbnQgZGlyZWN0aW9uIG9wdGlvbnMuXG4gKi9cbmV4cG9ydCB0eXBlIFFyR3JhZGllbnREaXJlY3Rpb24gPVxuICB8ICd0by1yaWdodCdcbiAgfCAndG8tbGVmdCdcbiAgfCAndG8tYm90dG9tJ1xuICB8ICd0by10b3AnXG4gIHwgJ3RvLWJvdHRvbS1yaWdodCdcbiAgfCAndG8tYm90dG9tLWxlZnQnXG4gIHwgJ3RvLXRvcC1yaWdodCdcbiAgfCAndG8tdG9wLWxlZnQnO1xuXG4vKipcbiAqIEdyYWRpZW50IGNvbmZpZ3VyYXRpb24gZm9yIGJhY2tncm91bmRzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFFyRGlzcGxheUdyYWRpZW50IHtcbiAgLyoqIFN0YXJ0IGNvbG9yICovXG4gIGZyb206IHN0cmluZztcbiAgLyoqIEVuZCBjb2xvciAqL1xuICB0bzogc3RyaW5nO1xuICAvKiogT3B0aW9uYWwgbWlkZGxlIGNvbG9yICovXG4gIHZpYT86IHN0cmluZztcbiAgLyoqIEdyYWRpZW50IGRpcmVjdGlvbiAqL1xuICBkaXJlY3Rpb24/OiBRckdyYWRpZW50RGlyZWN0aW9uO1xufVxuXG4vKipcbiAqIExhYmVsIGNvbmZpZ3VyYXRpb24gZm9yIFFSIGRpc3BsYXkuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUXJMYWJlbENvbmZpZyB7XG4gIC8qKiBMYWJlbCB0ZXh0ICovXG4gIHRleHQ6IHN0cmluZztcbiAgLyoqIFBvc2l0aW9uICh0b3Agb3IgYm90dG9tKSAqL1xuICBwb3NpdGlvbj86IFFyTGFiZWxQb3NpdGlvbjtcbiAgLyoqIFRleHQgY29sb3IgKi9cbiAgY29sb3I/OiBzdHJpbmc7XG4gIC8qKiBGb250IHNpemUgaW4gcGl4ZWxzICovXG4gIGZvbnRTaXplPzogbnVtYmVyO1xuICAvKiogRm9udCB3ZWlnaHQgKi9cbiAgZm9udFdlaWdodD86ICdub3JtYWwnIHwgJ21lZGl1bScgfCAnc2VtaWJvbGQnIHwgJ2JvbGQnO1xuICAvKiogSWNvbiBuYW1lIChpb25pY29uKSB0byBzaG93IHdpdGggbGFiZWwgKi9cbiAgaWNvbj86IHN0cmluZztcbiAgLyoqIEljb24gcG9zaXRpb24gKi9cbiAgaWNvblBvc2l0aW9uPzogJ3N0YXJ0JyB8ICdlbmQnO1xufVxuXG4vKipcbiAqIE1ldGFkYXRhIGZvciB0aGUgUVIgY29kZSBkaXNwbGF5IGNvbXBvbmVudC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBRckNvZGVNZXRhZGF0YSB7XG4gIC8qKiBRUiByZXN1bHQgZnJvbSBRckdlbmVyYXRvclNlcnZpY2UgKi9cbiAgcXI6IFFyUmVzdWx0O1xuXG4gIC8qKiBBbHQgdGV4dCBmb3IgYWNjZXNzaWJpbGl0eSAqL1xuICBhbHQ/OiBzdHJpbmc7XG5cbiAgLyoqIFdoZXRoZXIgdG8gc2hvdyBkb3dubG9hZCBidXR0b24gKi9cbiAgc2hvd0Rvd25sb2FkPzogYm9vbGVhbjtcbiAgLyoqIERvd25sb2FkIGJ1dHRvbiBsYWJlbCAqL1xuICBkb3dubG9hZExhYmVsPzogc3RyaW5nO1xuXG4gIC8qKiBXaGV0aGVyIHRvIHNob3cgY29weSBidXR0b24gKi9cbiAgc2hvd0NvcHk/
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvYXRvbXMvcXItY29kZS90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUXJSZXN1bHQgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9xci1nZW5lcmF0b3IvdHlwZXMnO1xuXG4vKipcbiAqIFRoZW1lIHByZXNldHMgZm9yIHF1aWNrIHN0eWxpbmcuXG4gKi9cbmV4cG9ydCB0eXBlIFFyRGlzcGxheVRoZW1lID1cbiAgfCAnZGVmYXVsdCdcbiAgfCAnbWluaW1hbCdcbiAgfCAnZ3JhZGllbnQtcHVycGxlJ1xuICB8ICdncmFkaWVudC1ibHVlJ1xuICB8ICdncmFkaWVudC1zdW5zZXQnXG4gIHwgJ2dyYWRpZW50LW1pbnQnXG4gIHwgJ2RhcmsnXG4gIHwgJ25lb24nO1xuXG4vKipcbiAqIExhYmVsIHBvc2l0aW9uIG9wdGlvbnMuXG4gKi9cbmV4cG9ydCB0eXBlIFFyTGFiZWxQb3NpdGlvbiA9ICd0b3AnIHwgJ2JvdHRvbSc7XG5cbi8qKlxuICogR3JhZGllbnQgZGlyZWN0aW9uIG9wdGlvbnMuXG4gKi9cbmV4cG9ydCB0eXBlIFFyR3JhZGllbnREaXJlY3Rpb24gPVxuICB8ICd0by1yaWdodCdcbiAgfCAndG8tbGVmdCdcbiAgfCAndG8tYm90dG9tJ1xuICB8ICd0by10b3AnXG4gIHwgJ3RvLWJvdHRvbS1yaWdodCdcbiAgfCAndG8tYm90dG9tLWxlZnQnXG4gIHwgJ3RvLXRvcC1yaWdodCdcbiAgfCAndG8tdG9wLWxlZnQnO1xuXG4vKipcbiAqIEdyYWRpZW50IGNvbmZpZ3VyYXRpb24gZm9yIGJhY2tncm91bmRzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFFyRGlzcGxheUdyYWRpZW50IHtcbiAgLyoqIFN0YXJ0IGNvbG9yICovXG4gIGZyb206IHN0cmluZztcbiAgLyoqIEVuZCBjb2xvciAqL1xuICB0bzogc3RyaW5nO1xuICAvKiogT3B0aW9uYWwgbWlkZGxlIGNvbG9yICovXG4gIHZpYT86IHN0cmluZztcbiAgLyoqIEdyYWRpZW50IGRpcmVjdGlvbiAqL1xuICBkaXJlY3Rpb24/OiBRckdyYWRpZW50RGlyZWN0aW9uO1xufVxuXG4vKipcbiAqIExhYmVsIGNvbmZpZ3VyYXRpb24gZm9yIFFSIGRpc3BsYXkuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUXJMYWJlbENvbmZpZyB7XG4gIC8qKiBMYWJlbCB0ZXh0ICovXG4gIHRleHQ6IHN0cmluZztcbiAgLyoqIFBvc2l0aW9uICh0b3Agb3IgYm90dG9tKSAqL1xuICBwb3NpdGlvbj86IFFyTGFiZWxQb3NpdGlvbjtcbiAgLyoqIFRleHQgY29sb3IgKi9cbiAgY29sb3I/OiBzdHJpbmc7XG4gIC8qKiBGb250IHNpemUgaW4gcGl4ZWxzICovXG4gIGZvbnRTaXplPzogbnVtYmVyO1xuICAvKiogRm9udCB3ZWlnaHQgKi9cbiAgZm9udFdlaWdodD86ICdub3JtYWwnIHwgJ21lZGl1bScgfCAnc2VtaWJvbGQnIHwgJ2JvbGQnO1xuICAvKiogSWNvbiBuYW1lIChpb25pY29uKSB0byBzaG93IHdpdGggbGFiZWwgKi9cbiAgaWNvbj86IHN0cmluZztcbiAgLyoqIEljb24gcG9zaXRpb24gKi9cbiAgaWNvblBvc2l0aW9uPzogJ3N0YXJ0JyB8ICdlbmQnO1xufVxuXG4vKipcbiAqIE1ldGFkYXRhIGZvciB0aGUgUVIgY29kZSBkaXNwbGF5IGNvbXBvbmVudC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBRckNvZGVNZXRhZGF0YSB7XG4gIC8qKiBRUiByZXN1bHQgZnJvbSBRckdlbmVyYXRvclNlcnZpY2UgKi9cbiAgcXI6IFFyUmVzdWx0O1xuXG4gIC8qKiBBbHQgdGV4dCBmb3IgYWNjZXNzaWJpbGl0eSAqL1xuICBhbHQ/OiBzdHJpbmc7XG5cbiAgLyoqIFdoZXRoZXIgdG8gc2hvdyBkb3dubG9hZCBidXR0b24gKi9cbiAgc2hvd0Rvd25sb2FkPzogYm9vbGVhbjtcbiAgLyoqIERvd25sb2FkIGJ1dHRvbiBsYWJlbCAqL1xuICBkb3dubG9hZExhYmVsPzogc3RyaW5nO1xuXG4gIC8qKiBXaGV0aGVyIHRvIHNob3cgY29weSBidXR0b24gKi9cbiAgc2hvd0NvcHk/OiBib29sZWFuO1xuICAvKiogQ29weSBidXR0b24gbGFiZWwgKi9cbiAgY29weUxhYmVsPzogc3RyaW5nO1xuXG4gIC8qKiBXaGV0aGVyIHRvIHNob3cgc2hhcmUgYnV0dG9uICovXG4gIHNob3dTaGFyZT86IGJvb2xlYW47XG4gIC8qKiBTaGFyZSBidXR0b24gbGFiZWwgKi9cbiAgc2hhcmVMYWJlbD86IHN0cmluZztcblxuICAvKiogQ3VzdG9tIENTUyBjbGFzcyAqL1xuICBjc3NDbGFzcz86IHN0cmluZztcblxuICAvKiogU2l6ZSBvdmVycmlkZSAod2lsbCBzY2FsZSB0aGUgaW1hZ2UpICovXG4gIGRpc3BsYXlTaXplPzogbnVtYmVyO1xuXG4gIC8qKiBMb2dvIHJlbmRlcmVkIG92ZXIgdGhlIFFSIHdoZW4gdGhlIGdlbmVyYXRlZCBiaXRtYXAgY2Fubm90IGVtYmVkIGl0IHJlbGlhYmx5ICovXG4gIGxvZ29Vcmw/OiBzdHJpbmc7XG5cbiAgLyoqIExvZ28gc2l6ZSBhcyBhIGZyYWN0aW9uIG9mIHRoZSBkaXNwbGF5ZWQgUVIgc2l6ZS4gRGVmYXVsdDogMC4yICovXG4gIGxvZ29TaXplUmF0aW8/OiBudW1iZXI7XG5cbiAgLyoqIEJvcmRlciByYWRpdXMgZm9yIHRoZSBjb250YWluZXIgKi9cbiAgYm9yZGVyUmFkaXVzPzogbnVtYmVyO1xuXG4gIC8qKiBTaG93IGJvcmRlciBhcm91bmQgUVIgKi9cbiAgc2hvd0JvcmRlcj86IGJvb2xlYW47XG4gIC8qKiBCb3JkZXIgY29sb3IgKi9cbiAgYm9yZGVyQ29sb3I/OiBzdHJpbmc7XG5cbiAgLyoqIFBhZGRpbmcgYXJvdW5kIHRoZSBRUiBjb2RlICovXG4gIHBhZGRpbmc/OiBudW1iZXI7XG5cbiAgLyoqIEJhY2tncm91bmQgY29sb3IgZm9yIGNvbnRhaW5lciAqL1xuICBjb250YWluZXJCYWNrZ3JvdW5kPzogc3RyaW5nO1xuXG4gIC8qKiBMb2FkaW5nIHN0YXRlICovXG4gIGxvYWRpbmc/OiBib29sZWFuO1xuXG4gIC8qKiBDdXN0b20gZmlsZW5hbWUgZm9yIGRvd25sb2FkICh3aXRob3V0IGV4dGVuc2lvbikgKi9cbiAgZG93bmxvYWRGaWxlbmFtZT86IHN0cmluZztcblxuICAvKiogU2hhcmUgdGl0bGUgKi9cbiAgc2hhcmVUaXRsZT86IHN0cmluZztcblxuICAvKiogU2hhcmUgdGV4dC9kZXNjcmlwdGlvbiAqL1xuICBzaGFyZVRleHQ/OiBzdHJpbmc7XG5cbiAgLyoqIEN1c3RvbSBmaWxlbmFtZSBmb3Igc2hhcmUgKi9cbiAgc2hhcmVGaWxlbmFtZT86IHN0cmluZztcblxuICAvLyA9PT0gVmlzdWFsIEN1c3RvbWl6YXRpb24gPT09XG5cbiAgLyoqIFRoZW1lIHByZXNldCBmb3IgcXVpY2sgc3R5bGluZyAqL1xuICB0aGVtZT86IFFyRGlzcGxheVRoZW1lO1xuXG4gIC8qKiBMYWJlbC9jYXB0aW9uIGNvbmZpZ3VyYXRpb24gKi9cbiAgbGFiZWw/OiBRckxhYmVsQ29uZmlnO1xuXG4gIC8qKiBHcmFkaWVudCBiYWNrZ3JvdW5kIChvdmVycmlkZXMgY29udGFpbmVyQmFja2dyb3VuZCkgKi9cbiAgZ3JhZGllbnQ/OiBRckRpc3BsYXlHcmFkaWVudDtcblxuICAvKiogQm94IHNoYWRvdyAoZS5nLiwgJ3NtJywgJ21kJywgJ2xnJywgJ3hsJywgb3IgY3VzdG9tIENTUykgKi9cbiAgc2hhZG93PzogJ25vbmUnIHwgJ3NtJyB8ICdtZCcgfCAnbGcnIHwgJ3hsJyB8IHN0cmluZztcblxuICAvKiogR2xvdyBlZmZlY3QgY29sb3IgKGZvciBuZW9uIHRoZW1lKSAqL1xuICBnbG93Q29sb3I/OiBzdHJpbmc7XG5cbiAgLyoqIEVuYWJsZSBwdWxzZSBhbmltYXRpb24gb24gaG92ZXIgKi9cbiAgcHVsc2VPbkhvdmVyPzogYm9vbGVhbjtcblxuICAvKiogRW5hYmxlIHNjYWxlIGFuaW1hdGlvbiBvbiBob3ZlciAqL1xuICBzY2FsZU9uSG92ZXI/OiBib29sZWFuO1xuXG4gIC8qKiBRUiBpbWFnZSBib3JkZXIgcmFkaXVzICh0byByb3VuZCB0aGUgUVIgaXRzZWxmKSAqL1xuICBxckJvcmRlclJhZGl1cz86IG51bWJlcjtcblxuICAvKiogUmVhY3RpdmUgY29udGVudCBrZXlzICovXG4gIGRvd25sb2FkTGFiZWxDb250ZW50S2V5Pzogc3RyaW5nO1xuICBjb3B5TGFiZWxDb250ZW50S2V5Pzogc3RyaW5nO1xuICBzaGFyZUxhYmVsQ29udGVudEtleT86IHN0cmluZztcbiAgY29udGVudENsYXNzPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIEV2ZW50IGVtaXR0ZWQgYWZ0ZXIgUVIgY29kZSBhY3Rpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUXJDb2RlQWN0aW9uRXZlbnQge1xuICAvKiogQWN0aW9uIHR5cGUgKi9cbiAgYWN0aW9uOiAnZG93bmxvYWQnIHwgJ2NvcHknIHwgJ3NoYXJlJztcbiAgLyoqIFdoZXRoZXIgYWN0aW9uIHdhcyBzdWNjZXNzZnVsICovXG4gIHN1Y2Nlc3M6IGJvb2xlYW47XG4gIC8qKiBRUiByZXN1bHQgKi9cbiAgcXI6IFFyUmVzdWx0O1xuICAvKiogRXJyb3IgaWYgYWN0aW9uIGZhaWxlZCAqL1xuICBlcnJvcj86IEVycm9yO1xufVxuIl19
|
|
@@ -80,10 +80,10 @@ export class TicketCardComponent {
|
|
|
80
80
|
this.failed.set(false);
|
|
81
81
|
return;
|
|
82
82
|
}
|
|
83
|
-
void this.generate(token, size
|
|
83
|
+
void this.generate(token, size);
|
|
84
84
|
}, { allowSignalWrites: true });
|
|
85
85
|
}
|
|
86
|
-
async generate(data, size
|
|
86
|
+
async generate(data, size) {
|
|
87
87
|
this.failed.set(false);
|
|
88
88
|
try {
|
|
89
89
|
const friendlyConfig = {
|
|
@@ -93,15 +93,6 @@ export class TicketCardComponent {
|
|
|
93
93
|
height: size,
|
|
94
94
|
format: 'png',
|
|
95
95
|
};
|
|
96
|
-
if (logoUrl) {
|
|
97
|
-
friendlyConfig.logo = {
|
|
98
|
-
src: logoUrl,
|
|
99
|
-
width: Math.round(size * 0.2),
|
|
100
|
-
height: Math.round(size * 0.2),
|
|
101
|
-
margin: Math.max(5, Math.round(size * 0.025)),
|
|
102
|
-
hideBackgroundDots: true,
|
|
103
|
-
};
|
|
104
|
-
}
|
|
105
96
|
const result = await this.qrService.generate(friendlyConfig);
|
|
106
97
|
this.qr.set(result);
|
|
107
98
|
}
|
|
@@ -158,6 +149,7 @@ export class TicketCardComponent {
|
|
|
158
149
|
eventDate: p.shareEventDate,
|
|
159
150
|
eventLocation: p.shareEventLocation,
|
|
160
151
|
scanHint: p.shareScanHint,
|
|
152
|
+
qrLogoUrl: p.qrLogoUrl,
|
|
161
153
|
};
|
|
162
154
|
}
|
|
163
155
|
async copyToClipboard(config, p) {
|
|
@@ -208,6 +200,8 @@ export class TicketCardComponent {
|
|
|
208
200
|
qrBorderRadius: 18,
|
|
209
201
|
padding: 12,
|
|
210
202
|
containerBackground: '#ffffff',
|
|
203
|
+
logoUrl: p.qrLogoUrl,
|
|
204
|
+
logoSizeRatio: 0.2,
|
|
211
205
|
alt: this.folioText() || 'QR',
|
|
212
206
|
downloadLabel: p.downloadLabel ?? this.t('download'),
|
|
213
207
|
shareLabel: this.t('share'),
|
|
@@ -339,4 +333,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
339
333
|
</div>
|
|
340
334
|
`, styles: [":host{display:block}.ticket-card{--ticket-accent: var(--ion-color-primary, #ff00b2);--ticket-accent-2: #7026df;display:flex;flex-direction:column;width:min(100%,380px);margin:0 auto;overflow:hidden;border:1px solid var(--ion-color-light-shade, #d8d8dd);border-radius:22px;background:var(--ion-card-background, #ffffff);box-shadow:0 18px 50px #1f192d1f}.ticket-card__header{padding:22px 22px 20px;text-align:center;color:#fff;background:linear-gradient(135deg,var(--ticket-accent) 0%,var(--ticket-accent-2) 100%)}.ticket-card__eyebrow{margin-bottom:6px;font-size:.6875rem;font-weight:800;letter-spacing:.14em;line-height:1.2;text-transform:uppercase;opacity:.78}.ticket-card__title{font-size:1.25rem;font-weight:800;line-height:1.18}.ticket-card__body{position:relative;display:flex;flex-direction:column;align-items:stretch;background:radial-gradient(circle at 50% 0,rgba(255,0,178,.08),transparent 36%),var(--ion-card-background, #ffffff)}.ticket-card__qr{display:flex;align-items:center;justify-content:center;min-height:232px;padding:22px 22px 18px}.ticket-card__qr val-qr-code{display:block;padding:10px;border:1px solid rgba(31,25,45,.08);border-radius:18px;background:#fff;box-shadow:0 10px 30px #1f192d14}.ticket-card__qr-loading{display:flex;align-items:center;justify-content:center;width:220px;height:220px;border-radius:18px;background:#fff}.ticket-card__qr-fallback{padding:18px;border-radius:14px;background:#6b667514;color:var(--ion-color-medium, #6b6675);font-family:monospace;font-size:.75rem;line-height:1.5;text-align:center;word-break:break-all}.ticket-card__perf{position:relative;margin:0 22px;border-top:2px dashed rgba(107,102,117,.28)}.ticket-card__notch{position:absolute;top:-14px;width:26px;height:26px;border-radius:50%;background:var(--ion-background-color, #f8f8f8);box-shadow:inset 0 0 0 1px #1f192d14}.ticket-card__notch--left{left:-36px}.ticket-card__notch--right{right:-36px}.ticket-card__stub{display:flex;flex-direction:column;gap:18px;padding:18px 22px 22px}.ticket-card__meta{display:flex;flex-direction:column;align-items:center;gap:6px;min-width:0;text-align:center}.ticket-card__folio{color:var(--ion-color-dark, #2f2b38);font-size:1.45rem;font-weight:850;line-height:1.15}.ticket-card__buyer{max-width:100%;overflow:hidden;color:var(--ion-color-medium, #6b6675);font-size:.9375rem;line-height:1.35;text-overflow:ellipsis;white-space:nowrap}.ticket-card__badge{display:inline-flex;align-items:center;min-height:30px;margin-top:2px;padding:5px 14px;border-radius:999px;background:var(--ion-color-medium, #6b6675);color:var(--ion-color-medium-contrast, #ffffff);font-size:.8125rem;font-weight:800;line-height:1;white-space:nowrap}.ticket-card__badge[data-status=sold]{background:var(--ion-color-success, #16a34a);color:var(--ion-color-success-contrast, #ffffff)}.ticket-card__badge[data-status=checkedIn]{background:var(--ion-color-medium, #6b6675);color:var(--ion-color-medium-contrast, #ffffff)}.ticket-card__actions{display:grid;gap:10px;width:100%}.ticket-card__actions ion-button{min-height:48px;margin:0;font-weight:800;--border-radius: 14px;--border-width: 1.5px}@media (max-width: 420px){.ticket-card{width:100%;border-radius:20px}.ticket-card__qr{min-height:216px;padding-inline:16px}.ticket-card__stub{padding-inline:16px}}\n"] }]
|
|
341
335
|
}], ctorParameters: () => [] });
|
|
342
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlja2V0LWNhcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy90aWNrZXQtY2FyZC90aWNrZXQtY2FyZC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25GLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFL0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBRXhFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBQ3pGLE9BQU8sRUFBc0IsVUFBVSxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDdEYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUMvRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwrREFBK0QsQ0FBQztBQUV2RyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7QUFFdEQ7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBaUJHO0FBbUVILE1BQU0sT0FBTyxtQkFBbUI7SUFrQjlCO1FBakJBLHlDQUF5QztRQUNoQyxVQUFLLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBc0IsQ0FBQztR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QyxVQUFVLENBQUM7WUFDcEQsVUFBVSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDO1lBQzNCLFVBQVUsRUFBRSxDQUFDLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxJQUFJO1NBQ2hELENBQUM7SUFDSixDQUFDOytHQXhNVSxtQkFBbUI7bUdBQW5CLG1CQUFtQiw4TUE5RHBCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTJEVCxteEdBNURTLFlBQVksK0JBQUUsU0FBUyxvUEFBRSxPQUFPLDJKQUFFLFVBQVUseUdBQUUsZUFBZTs7NEZBK0Q1RCxtQkFBbUI7a0JBbEUvQixTQUFTOytCQUNFLGlCQUFpQixjQUNmLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxlQUFlLENBQUMsWUFDOUQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBMkRUIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBjb21wdXRlZCwgZWZmZWN0LCBpbmplY3QsIGlucHV0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBJb25CdXR0b24sIElvbkljb24sIElvblNwaW5uZXIgfSBmcm9tICdAaW9uaWMvYW5ndWxhci9zdGFuZGFsb25lJztcbmltcG9ydCB7IGFkZEljb25zIH0gZnJvbSAnaW9uaWNvbnMnO1xuaW1wb3J0IHsgZG93bmxvYWRPdXRsaW5lLCBzaGFyZU91dGxpbmUgfSBmcm9tICdpb25pY29ucy9pY29ucyc7XG5cbmltcG9ydCB7IFFyQ29kZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2F0b21zL3FyLWNvZGUvcXItY29kZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgUXJDb2RlTWV0YWRhdGEgfSBmcm9tICcuLi8uLi9hdG9tcy9xci1jb2RlL3R5cGVzJztcbmltcG9ydCB7IFFyR2VuZXJhdG9yU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3FyLWdlbmVyYXRvci9xci1nZW5lcmF0b3Iuc2VydmljZSc7XG5pbXBvcnQgeyBRckNvbmZpZywgUXJSZXN1bHQsIFFSX1BSRVNFVFMgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9xci1nZW5lcmF0b3IvdHlwZXMnO1xuaW1wb3J0IHsgSTE4blNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9pMThuJztcbmltcG9ydCB7IFRvYXN0U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3RvYXN0LnNlcnZpY2UnO1xuaW1wb3J0IHsgVGlja2V0Q2FyZEltYWdlU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3RpY2tldC1jYXJkLWltYWdlL3RpY2tldC1jYXJkLWltYWdlLnNlcnZpY2UnO1xuaW1wb3J0IHsgVGlja2V0Q2FyZE1ldGFkYXRhLCBUaWNrZXRDYXJkU3RhdHVzIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBUSUNLRVRfQ0FSRF9JMThOIH0gZnJvbSAnLi90aWNrZXQtY2FyZC5pMThuJztcblxuLyoqXG4gKiB2YWwtdGlja2V0LWNhcmRcbiAqXG4gKiBUYXJqZXRhIHByZXNlbnRhY2lvbmFsIGRlIHVuYSBlbnRyYWRhIGRlIGJpbmdvOiBtdWVzdHJhIGVsIFFSIGVzY2FuZWFibGVcbiAqIChnZW5lcmFkbyBkZWwgYHFyVG9rZW5gIG9wYWNvIGZpcm1hZG8gdsOtYSBgUXJHZW5lcmF0b3JTZXJ2aWNlYCksIGVsIGZvbGlvLCBlbFxuICogbm9tYnJlIGRlbCBjb21wcmFkb3IgKHNpIGhheSkgeSB1biBiYWRnZSBkZSBlc3RhZG8gKHZlbmRpZGEgLyBjYW5qZWFkYSkuXG4gKlxuICogRXMgbGEgcGllemEgcXVlIGVsIHZlbmRlZG9yIGxlIGVudHJlZ2EgYWwgY29tcHJhZG9yIHRyYXMgbGEgdmVudGEgeSBxdWUgbGFcbiAqIHRhcXVpbGxhIGVzY2FuZWEgcGFyYSBjYW5qZWFyLiBPYmplY3QtZmlyc3QgKGBpbnB1dCgpYCBzaWduYWwpLCBpMThuXG4gKiBhdXRvLXJlZ2lzdHJhZG8gKG5hbWVzcGFjZSBgVGlja2V0Q2FyZGApLiBFc3RhZG9zIG5lZ2F0aXZvcy9uZXV0cm9zIGVuIGdyaXNcbiAqIG11dGVkIChjb252ZW5jacOzbiBkZWwgZmFjdG9yeSDigJQgc2luIHJvam8gZGUgYWxhcm1hKS5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgaHRtbFxuICogPHZhbC10aWNrZXQtY2FyZCBbcHJvcHNdPVwieyBxclRva2VuOiB0aWNrZXQucXJUb2tlbiwgZm9saW86IHRpY2tldC5mb2xpbyxcbiAqICAgYnV5ZXJOYW1lOiB0aWNrZXQuY29tcHJhZG9yTm9tYnJlLCBzdGF0dXM6ICdzb2xkJywgc2hvd1NoYXJlOiB0cnVlIH1cIiAvPlxuICogYGBgXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbC10aWNrZXQtY2FyZCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIElvbkJ1dHRvbiwgSW9uSWNvbiwgSW9uU3Bpbm5lciwgUXJDb2RlQ29tcG9uZW50XSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2IGNsYXNzPVwidGlja2V0LWNhcmRcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJ0aWNrZXQtY2FyZF9faGVhZGVyXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0aWNrZXQtY2FyZF9fZXllYnJvd1wiPnt7IHQoJ2NhcmRMYWJlbCcpIH19PC9kaXY+XG4gICAgICAgIEBpZiAocHJvcHMoKS50aXRsZSkge1xuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0aWNrZXQtY2FyZF9fdGl0bGVcIj57eyBwcm9wcygpLnRpdGxlIH19PC9kaXY+XG4gICAgICAgIH1cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IGNsYXNzPVwidGlja2V0LWNhcmRfX2JvZHlcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInRpY2tldC1jYXJkX19xclwiPlxuICAgICAgICAgIEBpZiAocXIoKTsgYXMgcSkge1xuICAgICAgICAgICAgPHZhbC1xci1jb2RlIFtwcm9wc109XCJxclByb3BzKHEpXCIgLz5cbiAgICAgICAgICB9IEBlbHNlIGlmIChmYWlsZWQoKSkge1xuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRpY2tldC1jYXJkX19xci1mYWxsYmFja1wiPnt7IHRva2VuU2hvcnQoKSB9fTwvZGl2PlxuICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRpY2tldC1jYXJkX19xci1sb2FkaW5nXCI+XG4gICAgICAgICAgICAgIDxpb24tc3Bpbm5lciBuYW1lPVwiY3Jlc2NlbnRcIiBhcmlhLWxhYmVsPVwiR2VuZXJhbmRvIFFSXCIgLz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cInRpY2tldC1jYXJkX19wZXJmXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0aWNrZXQtY2FyZF9fbm90Y2ggdGlja2V0LWNhcmRfX25vdGNoLS1sZWZ0XCI+PC9zcGFuPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGlja2V0LWNhcmRfX25vdGNoIHRpY2tldC1jYXJkX19ub3RjaC0tcmlnaHRcIj48L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0aWNrZXQtY2FyZF9fc3R1YlwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0aWNrZXQtY2FyZF9fbWV0YVwiPlxuICAgICAgICAgICAgQGlmIChmb2xpb1RleHQoKTsgYXMgZikge1xuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGlja2V0LWNhcmRfX2ZvbGlvXCI+e3sgZiB9fTwvZGl2PlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGlmIChwcm9wcygpLmJ1eWVyTmFtZSkge1xuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGlja2V0LWNhcmRfX2J1eWVyXCI+e3sgcHJvcHMoKS5idXllck5hbWUgfX08L2Rpdj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBpZiAoc3RhdHVzTGFiZWwoKTsgYXMgcykge1xuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRpY2tldC1jYXJkX19iYWRnZVwiIFthdHRyLmRhdGEtc3RhdHVzXT1cInN0YXR1cygpXCI+e3sgcyB9fTwvc3Bhbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgIEBpZiAoKHByb3BzKCkuc2hvd0Rvd25sb2FkIHx8IHByb3BzKCkuc2hvd1NoYXJlKSAmJiBxcigpKSB7XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGlja2V0LWNhcmRfX2FjdGlvbnNcIj5cbiAgICAgICAgICAgICAgQGlmIChwcm9wcygpLnNob3dEb3dubG9hZCkge1xuICAgICAgICAgICAgICAgIDxpb24tYnV0dG9uIGZpbGw9XCJvdXRsaW5lXCIgZXhwYW5kPVwiYmxvY2tcIiBbZGlzYWJsZWRdPVwiZG93bmxvYWRpbmcoKVwiIChjbGljayk9XCJkb3dubG9hZENhcmQoKVwiPlxuICAgICAgICAgICAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJkb3dubG9hZC1vdXRsaW5lXCIgc2xvdD1cInN0YXJ0XCIgLz5cbiAgICAgICAgICAgICAgICAgIHt7IHByb3BzKCkuZG93bmxvYWRMYWJlbCB8fCB0KCdkb3dubG9hZCcpIH19XG4gICAgICAgICAgICAgICAgPC9pb24tYnV0dG9uPlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIEBpZiAocHJvcHMoKS5zaG93U2hhcmUpIHtcbiAgICAgICAgICAgICAgICA8aW9uLWJ1dHRvbiBmaWxsPVwib3V0bGluZVwiIGV4cGFuZD1cImJsb2NrXCIgW2Rpc2FibGVkXT1cInNoYXJpbmcoKVwiIChjbGljayk9XCJzaGFyZUNhcmQoKVwiPlxuICAgICAgICAgICAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJzaGFyZS1vdXRsaW5lXCIgc2xvdD1cInN0YXJ0XCIgLz5cbiAgICAgICAgICAgICAgICAgIHt7IHByb3BzKCkuc2hhcmVMYWJlbCB8fCB0KCdzaGFyZScpIH19XG4gICAgICAgICAgICAgICAgPC9pb24tYnV0dG9uPlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIGAsXG4gIHN0eWxlVXJsczogWycuL3RpY2tldC1jYXJkLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFRpY2tldENhcmRDb21wb25lbnQge1xuICAvKiogUHJvcHMgb2JqZWN0LWZpcnN0IGRlbCBjb21wb25lbnRlLiAqL1xuICByZWFkb25seSBwcm9wcyA9IGlucHV0LnJlcXVpcmVkPFRpY2tldENhcmRNZXRhZGF0YT4oKTtcblxuICBwcml2YXRlIHFyU2VydmljZSA9IGluamVjdChRckdlbmVyYXRvclNlcnZpY2UpO1xuICBwcml2YXRlIHRpY2tldENhcmRJbWFnZVNlcnZpY2UgPSBpbmplY3QoVGlja2V0Q2FyZEltYWdlU2VydmljZSk7XG4gIHByaXZhdGUgaTE4biA9IGluamVjdChJMThuU2VydmljZSk7XG4gIHByaXZhdGUgdG9hc3QgPSBpbmplY3QoVG9hc3RTZXJ2aWNlKTtcblxuICAvKiogUVIgZ2VuZXJhZG8gKG51bGwgbWllbnRyYXMgY2FyZ2EgbyBzaSBmYWxsw7MpLiAqL1xuICByZWFkb25seSBxciA9IHNpZ25hbDxRclJlc3VsdCB8IG51bGw+KG51bGwpO1xuICAvKiogRmFsbMOzIGxhIGdlbmVyYWNpw7NuIGRlbCBRUiDihpIgZmFsbGJhY2sgYWwgdG9rZW4gY29ydG8uICovXG4gIHJlYWRvbmx5IGZhaWxlZCA9IHNpZ25hbChmYWxzZSk7XG4gIC8qKiBUcnVlIG1pZW50cmFzIHNlIGdlbmVyYSB5IGNvbXBhcnRlIGxhIHRhcmpldGEgYnJhbmRlZC4gKi9cbiAgcmVhZG9ubHkgc2hhcmluZyA9IHNpZ25hbChmYWxzZSk7XG4gIC8qKiBUcnVlIG1pZW50cmFzIHNlIGdlbmVyYSB5IGRlc2NhcmdhIGxhIHRhcmpldGEgYnJhbmRlZC4gKi9cbiAgcmVhZG9ubHkgZG93bmxvYWRpbmcgPSBzaWduYWwoZmFsc2UpO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIGFkZEljb25zKHsgc2hhcmVPdXRsaW5lLCBkb3dubG9hZE91dGxpbmUgfSk7XG4gICAgdGhpcy5pMThuLnJlZ2lzdGVyRGVmYXVsdHMoJ1RpY2tldENhcmQnLCBUSUNLRVRfQ0FSRF9JMThOKTtcblxuICAgIC8vIFJlZ2VuZXJhIGVsIFFSIGN1YW5kbyBjYW1iaWEgZWwgdG9rZW4gbyBlbCB0YW1hw7FvLlxuICAgIGVmZmVjdChcbiAgICAgICgpID0+IHtcbiAgICAgICAgY29uc3QgdG9rZW4gPSB0aGlzLnByb3BzKCkucXJUb2tlbjtcbiAgICAgICAgY29uc3Qgc2l6ZSA9IHRoaXMucHJvcHMoKS5xclNpemUgPz8gMjAwO1xuICAgICAgICBpZiAoIXRva2VuKSB7XG4gICAgICAgICAgdGhpcy5xci5zZXQobnVsbCk7XG4gICAgICAgICAgdGhpcy5mYWlsZWQuc2V0KGZhbHNlKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdm9pZCB0aGlzLmdlbmVyYXRlKHRva2VuLCBzaXplLCB0aGlzLnByb3BzKCkucXJMb2dvVXJsKTtcbiAgICAgIH0sXG4gICAgICB7IGFsbG93U2lnbmFsV3JpdGVzOiB0cnVlIH1cbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBnZW5lcmF0ZShkYXRhOiBzdHJpbmcsIHNpemU6IG51bWJlciwgbG9nb1VybD86IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRoaXMuZmFpbGVkLnNldChmYWxzZSk7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGZyaWVuZGx5Q29uZmlnOiBRckNvbmZpZyA9IHtcbiAgICAgICAgLi4uUVJfUFJFU0VUU1sndGlja2V0LWZyaWVuZGx5J10sXG4gICAgICAgIGRhdGEsXG4gICAgICAgIHdpZHRoOiBzaXplLFxuICAgICAgICBoZWlnaHQ6IHNpemUsXG4gICAgICAgIGZvcm1hdDogJ3BuZycsXG4gICAgICB9O1xuICAgICAgaWYgKGxvZ29VcmwpIHtcbiAgICAgICAgZnJpZW5kbHlDb25maWcubG9nbyA9IHtcbiAgICAgICAgICBzcmM6IGxvZ29VcmwsXG4gICAgICAgICAgd2lkdGg6IE1hdGgucm91bmQoc2l6ZSAqIDAuMiksXG4gICAgICAgICAgaGVpZ2h0OiBNYXRoLnJvdW5kKHNpemUgKiAwLjIpLFxuICAgICAgICAgIG1hcmdpbjogTWF0aC5tYXgoNSwgTWF0aC5yb3VuZChzaXplICogMC4wMjUpKSxcbiAgICAgICAgICBoaWRlQmFja2dyb3VuZERvdHM6IHRydWUsXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLnFyU2VydmljZS5nZW5lcmF0ZShmcmllbmRseUNvbmZpZyk7XG4gICAgICB0aGlzLnFyLnNldChyZXN1bHQpO1xuICAgIH0gY2F0Y2gge1xuICAgICAgLy8gU2luIHRvYXN0L3Rocm93IOKAlCBlbCBmYWxsYmFjayBtdWVzdHJhIGVsIHRva2VuIGNvcnRvLiBFbCBjb25zdW1lclxuICAgICAgLy8gc2lndWUgcHVkaWVuZG8gY2FuamVhciB0aXBlYW5kby9lc2NhbmVhbmRvIHNpIGhhY2UgZmFsdGEuXG4gICAgICB0aGlzLnFyLnNldChudWxsKTtcbiAgICAgIHRoaXMuZmFpbGVkLnNldCh0cnVlKTtcbiAgICB9XG4gIH1cblxuICB0KGtleTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5pMThuLnQoa2V5LCAnVGlja2V0Q2FyZCcpO1xuICB9XG5cbiAgcmVhZG9ubHkgc3RhdHVzID0gY29tcHV0ZWQ8VGlja2V0Q2FyZFN0YXR1cz4oKCkgPT4gdGhpcy5wcm9wcygpLnN0YXR1cyA/PyAnbmV1dHJhbCcpO1xuXG4gIHJlYWRvbmx5IHRva2VuU2hvcnQgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgdGsgPSB0aGlzLnByb3BzKCkucXJUb2tlbiA/PyAnJztcbiAgICByZXR1cm4gdGsubGVuZ3RoID4gMTYgPyBgJHt0ay5zbGljZSgwLCAxNil94oCmYCA6IHRrO1xuICB9KTtcblxuICByZWFkb25seSBmb2xpb1RleHQgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgdGhpcy5pMThuLmxhbmcoKTtcbiAgICBjb25zdCBmb2xpbyA9IHRoaXMucHJvcHMoKS5mb2xpbztcbiAgICBpZiAoZm9saW8gPT09IHVuZGVmaW5lZCB8fCBmb2xpbyA9PT0gbnVsbCB8fCBmb2xpbyA9PT0gJycpIHJldHVybiAnJztcbiAgICBjb25zdCBsYWJlbCA9IHRoaXMucHJvcHMoKS5mb2xpb0xhYmVsID8/IHRoaXMudCgnZm9saW8nKTtcbiAgICByZXR1cm4gYCR7bGFiZWx9ICMke2ZvbGlvfWA7XG4gIH0pO1xuXG4gIHJlYWRvbmx5IHN0YXR1c0xhYmVsID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIHRoaXMuaTE4bi5sYW5nKCk7XG4gICAgY29uc3Qgc3RhdHVzID0gdGhpcy5zdGF0dXMoKTtcbiAgICBpZiAoc3RhdHVzID09PSAnc29sZCcpIHtcbiAgICAgIHJldHVybiB0aGlzLnByb3BzKCkuc3RhdHVzU29sZExhYmVsID8/IHRoaXMudCgnc3RhdHVzU29sZCcpO1xuICAgIH1cbiAgICBpZiAoc3RhdHVzID09PSAnY2hlY2tlZEluJykge1xuICAgICAgcmV0dXJuIHRoaXMucHJvcHMoKS5zdGF0dXNDaGVja2VkSW5MYWJlbCA/PyB0aGlzLnQoJ3N0YXR1c0NoZWNrZWRJbicpO1xuICAgIH1cbiAgICByZXR1cm4gJyc7XG4gIH0pO1xuXG4gIGFzeW5jIHNoYXJlQ2FyZCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBxID0gdGhpcy5xcigpO1xuICAgIGlmICghcSkgcmV0dXJuO1xuICAgIGNvbnN0IHAgPSB0aGlzLnByb3BzKCk7XG4gICAgdGhpcy5zaGFyaW5nLnNldCh0cnVlKTtcbiAgICB0cnkge1xuICAgICAgY29uc3QgY29uZmlnID0gdGhpcy5idWlsZEltYWdlQ29uZmlnKHEsIHApO1xuICAgICAgY29uc3Qgc2hhcmVkID0gYXdhaXQgdGhpcy50aWNrZXRDYXJkSW1hZ2VTZXJ2aWNlLnNoYXJlKGNvbmZpZywgcC50aXRsZSB8fCBwLnNoYXJlQnJhbmROYW1lKTtcbiAgICAgIGlmICghc2hhcmVkKSB7XG4gICAgICAgIGF3YWl0IHRoaXMuY29weVRvQ2xpcGJvYXJkKGNvbmZpZywgcCk7XG4gICAgICB9XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIHRoaXMuc2hhcmluZy5zZXQoZmFsc2UpO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGRvd25sb2FkQ2FyZCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBxID0gdGhpcy5xcigpO1xuICAgIGlmICghcSkgcmV0dXJuO1xuICAgIGNvbnN0IHAgPSB0aGlzLnByb3BzKCk7XG4gICAgdGhpcy5kb3dubG9hZGluZy5zZXQodHJ1ZSk7XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHRoaXMudHJpZ2dlckRvd25sb2FkKHRoaXMuYnVpbGRJbWFnZUNvbmZpZyhxLCBwKSwgcCk7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIHRoaXMuZG93bmxvYWRpbmcuc2V0KGZhbHNlKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGJ1aWxkSW1hZ2VDb25maWcocTogUXJSZXN1bHQsIHA6IFRpY2tldENhcmRNZXRhZGF0YSkge1xuICAgIHJldHVybiB7XG4gICAgICBxckRhdGFVcmw6IHEuZGF0YVVybCxcbiAgICAgIGxvZ29Vcmw6IHAuc2hhcmVMb2dvVXJsLFxuICAgICAgYnJhbmRDb2xvcjogcC5zaGFyZUJyYW5kQ29sb3IsXG4gICAgICBicmFuZENvbG9yVG86IHAuc2hhcmVCcmFuZENvbG9yVG8sXG4gICAgICBicmFuZE5hbWU6IHAuc2hhcmVCcmFuZE5hbWUsXG4gICAgICBmb2xpbzogcC5mb2xpbyxcbiAgICAgIGZvbGlvTGFiZWw6IHAuc2hhcmVGb2xpb0xhYmVsLFxuICAgICAgYnV5ZXJOYW1lOiBwLmJ1eWVyTmFtZSxcbiAgICAgIGV2ZW50RGF0ZTogcC5zaGFyZUV2ZW50RGF0ZSxcbiAgICAgIGV2ZW50TG9jYXRpb246IHAuc2hhcmVFdmVudExvY2F0aW9uLFxuICAgICAgc2NhbkhpbnQ6IHAuc2hhcmVTY2FuSGludCxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBjb3B5VG9DbGlwYm9hcmQoXG4gICAgY29uZmlnOiBQYXJhbWV0ZXJzPHR5cGVvZiB0aGlzLnRpY2tldENhcmRJbWFnZVNlcnZpY2UuZ2VuZXJhdGU+WzBdLFxuICAgIHA6IFRpY2tldENhcmRNZXRhZGF0YVxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAvLyBJbnRlbnRhIGNvcGlhciBsYSBpbWFnZW4gYnJhbmRlZCBhbCBjbGlwYm9hcmQgKENocm9tZS9FZGdlL1NhZmFyaSBkZXNrdG9wKS5cbiAgICBpZiAodHlwZW9mIENsaXBib2FyZEl0ZW0gIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCBibG9iID0gYXdhaXQgdGhpcy50aWNrZXRDYXJkSW1hZ2VTZXJ2aWNlLmdlbmVyYXRlKGNvbmZpZyk7XG4gICAgICAgIGF3YWl0IG5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGUoW25ldyBDbGlwYm9hcmRJdGVtKHsgJ2ltYWdlL3BuZyc6IGJsb2IgfSldKTtcbiAgICAgICAgdGhpcy50b2FzdC5zaG93KHsgbWVzc2FnZTogdGhpcy50KCdjb3BpZWQnKSwgZHVyYXRpb246IDIwMDAgfSk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH0gY2F0Y2gge1xuICAgICAgICAvLyBDbGlwYm9hcmRJdGVtIG5vIHNvcG9ydGFkbyBvIHBlcm1pc28gZGVuZWdhZG8g4oaSIGNhZXIgYSB0ZXh0b1xuICAgICAgfVxuICAgIH1cbiAgICAvLyBGYWxsYmFjazogY29waWEgVVJMIG8gdGV4dG8gZm9saW9cbiAgICBjb25zdCB0ZXh0ID0gKChwLnNoYXJlVXJsID8/IHRoaXMuZm9saW9UZXh0KCkpIHx8IHAuc2hhcmVCcmFuZE5hbWUpID8/ICcnO1xuICAgIGlmICghdGV4dCkgcmV0dXJuO1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCBuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dCh0ZXh0KTtcbiAgICAgIHRoaXMudG9hc3Quc2hvdyh7IG1lc3NhZ2U6IHRoaXMudChwLnNoYXJlVXJsID8gJ2NvcGllZFVybCcgOiAnY29waWVkJyksIGR1cmF0aW9uOiAyMDAwIH0pO1xuICAgIH0gY2F0Y2gge1xuICAgICAgLy8gY2xpcGJvYXJkIG5vIGRpc3BvbmlibGUg4oCUIHNpbGVuY2lvc29cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHRyaWdnZXJEb3dubG9hZChcbiAgICBjb25maWc6IFBhcmFtZXRlcnM8dHlwZW9mIHRoaXMudGlja2V0Q2FyZEltYWdlU2VydmljZS5nZW5lcmF0ZT5bMF0sXG4gICAgcDogVGlja2V0Q2FyZE1ldGFkYXRhXG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGJsb2IgPSBhd2FpdCB0aGlzLnRpY2tldENhcmRJbWFnZVNlcnZpY2UuZ2VuZXJhdGUoY29uZmlnKTtcbiAgICBjb25zdCB1cmwgPSBVUkwuY3JlYXRlT2JqZWN0VVJMKGJsb2IpO1xuICAgIGNvbnN0IGEgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJyk7XG4gICAgYS5ocmVmID0gdXJsO1xuICAgIGEuZG93bmxvYWQgPSBgY2FydG9uLSR7cC5mb2xpbyA/PyAnYmluZ28nfS5wbmdgO1xuICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoYSk7XG4gICAgYS5jbGljaygpO1xuICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoYSk7XG4gICAgVVJMLnJldm9rZU9iamVjdFVSTCh1cmwpO1xuICB9XG5cbiAgcXJQcm9wcyhxOiBRclJlc3VsdCk6IFFyQ29kZU1ldGFkYXRhIHtcbiAgICBjb25zdCBwID0gdGhpcy5wcm9wcygpO1xuICAgIHJldHVybiB7XG4gICAgICBxcjogcSxcbiAgICAgIGRpc3BsYXlTaXplOiBwLnFyU2l6ZSA/PyAyMDAsXG4gICAgICBzaG93RG93bmxvYWQ6IGZhbHNlLFxuICAgICAgc2hvd1NoYXJlOiBmYWxzZSxcbiAgICAgIHNob3dCb3JkZXI6IGZhbHNlLFxuICAgICAgYm9yZGVyUmFkaXVzOiAyNixcbiAgICAgIHFyQm9yZGVyUmFkaXVzOiAxOCxcbiAgICAgIHBhZGRpbmc6IDEyLFxuICAgICAgY29udGFpbmVyQmFja2dyb3VuZDogJyNmZmZmZmYnLFxuICAgICAgYWx0OiB0aGlzLmZvbGlvVGV4dCgpIHx8ICdRUicsXG4gICAgICBkb3dubG9hZExhYmVsOiBwLmRvd25sb2FkTGFiZWwgPz8gdGhpcy50KCdkb3dubG9hZCcpLFxuICAgICAgc2hhcmVMYWJlbDogdGhpcy50KCdzaGFyZScpLFxuICAgICAgc2hhcmVUaXRsZTogcC50aXRsZSB8fCB0aGlzLmZvbGlvVGV4dCgpIHx8ICdRUicsXG4gICAgfTtcbiAgfVxufVxuIl19
|
|
336
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlja2V0LWNhcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy90aWNrZXQtY2FyZC90aWNrZXQtY2FyZC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25GLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFL0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBRXhFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBQ3pGLE9BQU8sRUFBc0IsVUFBVSxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDdEYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUMvRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwrREFBK0QsQ0FBQztBQUV2RyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7QUFFdEQ7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBaUJHO0FBbUVILE1BQU0sT0FBTyxtQkFBbUI7SUFrQjlCO1FBakJBLHlDQUF5QztRQUNoQyxVQUFLLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBc0IsQ0FBQztR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QUFVLHlHQUFFLGVBQWU7OzRGQStENUQsbUJBQW1CO2tCQWxFL0IsU0FBUzsrQkFDRSxpQkFBaUIsY0FDZixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsZUFBZSxDQUFDLFlBQzlEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTJEVCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgY29tcHV0ZWQsIGVmZmVjdCwgaW5qZWN0LCBpbnB1dCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgSW9uQnV0dG9uLCBJb25JY29uLCBJb25TcGlubmVyIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXIvc3RhbmRhbG9uZSc7XG5pbXBvcnQgeyBhZGRJY29ucyB9IGZyb20gJ2lvbmljb25zJztcbmltcG9ydCB7IGRvd25sb2FkT3V0bGluZSwgc2hhcmVPdXRsaW5lIH0gZnJvbSAnaW9uaWNvbnMvaWNvbnMnO1xuXG5pbXBvcnQgeyBRckNvZGVDb21wb25lbnQgfSBmcm9tICcuLi8uLi9hdG9tcy9xci1jb2RlL3FyLWNvZGUuY29tcG9uZW50JztcbmltcG9ydCB7IFFyQ29kZU1ldGFkYXRhIH0gZnJvbSAnLi4vLi4vYXRvbXMvcXItY29kZS90eXBlcyc7XG5pbXBvcnQgeyBRckdlbmVyYXRvclNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9xci1nZW5lcmF0b3IvcXItZ2VuZXJhdG9yLnNlcnZpY2UnO1xuaW1wb3J0IHsgUXJDb25maWcsIFFyUmVzdWx0LCBRUl9QUkVTRVRTIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvcXItZ2VuZXJhdG9yL3R5cGVzJztcbmltcG9ydCB7IEkxOG5TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvaTE4bic7XG5pbXBvcnQgeyBUb2FzdFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy90b2FzdC5zZXJ2aWNlJztcbmltcG9ydCB7IFRpY2tldENhcmRJbWFnZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy90aWNrZXQtY2FyZC1pbWFnZS90aWNrZXQtY2FyZC1pbWFnZS5zZXJ2aWNlJztcbmltcG9ydCB7IFRpY2tldENhcmRNZXRhZGF0YSwgVGlja2V0Q2FyZFN0YXR1cyB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHsgVElDS0VUX0NBUkRfSTE4TiB9IGZyb20gJy4vdGlja2V0LWNhcmQuaTE4bic7XG5cbi8qKlxuICogdmFsLXRpY2tldC1jYXJkXG4gKlxuICogVGFyamV0YSBwcmVzZW50YWNpb25hbCBkZSB1bmEgZW50cmFkYSBkZSBiaW5nbzogbXVlc3RyYSBlbCBRUiBlc2NhbmVhYmxlXG4gKiAoZ2VuZXJhZG8gZGVsIGBxclRva2VuYCBvcGFjbyBmaXJtYWRvIHbDrWEgYFFyR2VuZXJhdG9yU2VydmljZWApLCBlbCBmb2xpbywgZWxcbiAqIG5vbWJyZSBkZWwgY29tcHJhZG9yIChzaSBoYXkpIHkgdW4gYmFkZ2UgZGUgZXN0YWRvICh2ZW5kaWRhIC8gY2FuamVhZGEpLlxuICpcbiAqIEVzIGxhIHBpZXphIHF1ZSBlbCB2ZW5kZWRvciBsZSBlbnRyZWdhIGFsIGNvbXByYWRvciB0cmFzIGxhIHZlbnRhIHkgcXVlIGxhXG4gKiB0YXF1aWxsYSBlc2NhbmVhIHBhcmEgY2FuamVhci4gT2JqZWN0LWZpcnN0IChgaW5wdXQoKWAgc2lnbmFsKSwgaTE4blxuICogYXV0by1yZWdpc3RyYWRvIChuYW1lc3BhY2UgYFRpY2tldENhcmRgKS4gRXN0YWRvcyBuZWdhdGl2b3MvbmV1dHJvcyBlbiBncmlzXG4gKiBtdXRlZCAoY29udmVuY2nDs24gZGVsIGZhY3Rvcnkg4oCUIHNpbiByb2pvIGRlIGFsYXJtYSkuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYGh0bWxcbiAqIDx2YWwtdGlja2V0LWNhcmQgW3Byb3BzXT1cInsgcXJUb2tlbjogdGlja2V0LnFyVG9rZW4sIGZvbGlvOiB0aWNrZXQuZm9saW8sXG4gKiAgIGJ1eWVyTmFtZTogdGlja2V0LmNvbXByYWRvck5vbWJyZSwgc3RhdHVzOiAnc29sZCcsIHNob3dTaGFyZTogdHJ1ZSB9XCIgLz5cbiAqIGBgYFxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWwtdGlja2V0LWNhcmQnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBJb25CdXR0b24sIElvbkljb24sIElvblNwaW5uZXIsIFFyQ29kZUNvbXBvbmVudF0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiBjbGFzcz1cInRpY2tldC1jYXJkXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwidGlja2V0LWNhcmRfX2hlYWRlclwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwidGlja2V0LWNhcmRfX2V5ZWJyb3dcIj57eyB0KCdjYXJkTGFiZWwnKSB9fTwvZGl2PlxuICAgICAgICBAaWYgKHByb3BzKCkudGl0bGUpIHtcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidGlja2V0LWNhcmRfX3RpdGxlXCI+e3sgcHJvcHMoKS50aXRsZSB9fTwvZGl2PlxuICAgICAgICB9XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiBjbGFzcz1cInRpY2tldC1jYXJkX19ib2R5XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0aWNrZXQtY2FyZF9fcXJcIj5cbiAgICAgICAgICBAaWYgKHFyKCk7IGFzIHEpIHtcbiAgICAgICAgICAgIDx2YWwtcXItY29kZSBbcHJvcHNdPVwicXJQcm9wcyhxKVwiIC8+XG4gICAgICAgICAgfSBAZWxzZSBpZiAoZmFpbGVkKCkpIHtcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0aWNrZXQtY2FyZF9fcXItZmFsbGJhY2tcIj57eyB0b2tlblNob3J0KCkgfX08L2Rpdj5cbiAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0aWNrZXQtY2FyZF9fcXItbG9hZGluZ1wiPlxuICAgICAgICAgICAgICA8aW9uLXNwaW5uZXIgbmFtZT1cImNyZXNjZW50XCIgYXJpYS1sYWJlbD1cIkdlbmVyYW5kbyBRUlwiIC8+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0aWNrZXQtY2FyZF9fcGVyZlwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGlja2V0LWNhcmRfX25vdGNoIHRpY2tldC1jYXJkX19ub3RjaC0tbGVmdFwiPjwvc3Bhbj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInRpY2tldC1jYXJkX19ub3RjaCB0aWNrZXQtY2FyZF9fbm90Y2gtLXJpZ2h0XCI+PC9zcGFuPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwidGlja2V0LWNhcmRfX3N0dWJcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidGlja2V0LWNhcmRfX21ldGFcIj5cbiAgICAgICAgICAgIEBpZiAoZm9saW9UZXh0KCk7IGFzIGYpIHtcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRpY2tldC1jYXJkX19mb2xpb1wiPnt7IGYgfX08L2Rpdj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBpZiAocHJvcHMoKS5idXllck5hbWUpIHtcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRpY2tldC1jYXJkX19idXllclwiPnt7IHByb3BzKCkuYnV5ZXJOYW1lIH19PC9kaXY+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAaWYgKHN0YXR1c0xhYmVsKCk7IGFzIHMpIHtcbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0aWNrZXQtY2FyZF9fYmFkZ2VcIiBbYXR0ci5kYXRhLXN0YXR1c109XCJzdGF0dXMoKVwiPnt7IHMgfX08L3NwYW4+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICBAaWYgKChwcm9wcygpLnNob3dEb3dubG9hZCB8fCBwcm9wcygpLnNob3dTaGFyZSkgJiYgcXIoKSkge1xuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRpY2tldC1jYXJkX19hY3Rpb25zXCI+XG4gICAgICAgICAgICAgIEBpZiAocHJvcHMoKS5zaG93RG93bmxvYWQpIHtcbiAgICAgICAgICAgICAgICA8aW9uLWJ1dHRvbiBmaWxsPVwib3V0bGluZVwiIGV4cGFuZD1cImJsb2NrXCIgW2Rpc2FibGVkXT1cImRvd25sb2FkaW5nKClcIiAoY2xpY2spPVwiZG93bmxvYWRDYXJkKClcIj5cbiAgICAgICAgICAgICAgICAgIDxpb24taWNvbiBuYW1lPVwiZG93bmxvYWQtb3V0bGluZVwiIHNsb3Q9XCJzdGFydFwiIC8+XG4gICAgICAgICAgICAgICAgICB7eyBwcm9wcygpLmRvd25sb2FkTGFiZWwgfHwgdCgnZG93bmxvYWQnKSB9fVxuICAgICAgICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBAaWYgKHByb3BzKCkuc2hvd1NoYXJlKSB7XG4gICAgICAgICAgICAgICAgPGlvbi1idXR0b24gZmlsbD1cIm91dGxpbmVcIiBleHBhbmQ9XCJibG9ja1wiIFtkaXNhYmxlZF09XCJzaGFyaW5nKClcIiAoY2xpY2spPVwic2hhcmVDYXJkKClcIj5cbiAgICAgICAgICAgICAgICAgIDxpb24taWNvbiBuYW1lPVwic2hhcmUtb3V0bGluZVwiIHNsb3Q9XCJzdGFydFwiIC8+XG4gICAgICAgICAgICAgICAgICB7eyBwcm9wcygpLnNoYXJlTGFiZWwgfHwgdCgnc2hhcmUnKSB9fVxuICAgICAgICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICBgLFxuICBzdHlsZVVybHM6IFsnLi90aWNrZXQtY2FyZC5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBUaWNrZXRDYXJkQ29tcG9uZW50IHtcbiAgLyoqIFByb3BzIG9iamVjdC1maXJzdCBkZWwgY29tcG9uZW50ZS4gKi9cbiAgcmVhZG9ubHkgcHJvcHMgPSBpbnB1dC5yZXF1aXJlZDxUaWNrZXRDYXJkTWV0YWRhdGE+KCk7XG5cbiAgcHJpdmF0ZSBxclNlcnZpY2UgPSBpbmplY3QoUXJHZW5lcmF0b3JTZXJ2aWNlKTtcbiAgcHJpdmF0ZSB0aWNrZXRDYXJkSW1hZ2VTZXJ2aWNlID0gaW5qZWN0KFRpY2tldENhcmRJbWFnZVNlcnZpY2UpO1xuICBwcml2YXRlIGkxOG4gPSBpbmplY3QoSTE4blNlcnZpY2UpO1xuICBwcml2YXRlIHRvYXN0ID0gaW5qZWN0KFRvYXN0U2VydmljZSk7XG5cbiAgLyoqIFFSIGdlbmVyYWRvIChudWxsIG1pZW50cmFzIGNhcmdhIG8gc2kgZmFsbMOzKS4gKi9cbiAgcmVhZG9ubHkgcXIgPSBzaWduYWw8UXJSZXN1bHQgfCBudWxsPihudWxsKTtcbiAgLyoqIEZhbGzDsyBsYSBnZW5lcmFjacOzbiBkZWwgUVIg4oaSIGZhbGxiYWNrIGFsIHRva2VuIGNvcnRvLiAqL1xuICByZWFkb25seSBmYWlsZWQgPSBzaWduYWwoZmFsc2UpO1xuICAvKiogVHJ1ZSBtaWVudHJhcyBzZSBnZW5lcmEgeSBjb21wYXJ0ZSBsYSB0YXJqZXRhIGJyYW5kZWQuICovXG4gIHJlYWRvbmx5IHNoYXJpbmcgPSBzaWduYWwoZmFsc2UpO1xuICAvKiogVHJ1ZSBtaWVudHJhcyBzZSBnZW5lcmEgeSBkZXNjYXJnYSBsYSB0YXJqZXRhIGJyYW5kZWQuICovXG4gIHJlYWRvbmx5IGRvd25sb2FkaW5nID0gc2lnbmFsKGZhbHNlKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBhZGRJY29ucyh7IHNoYXJlT3V0bGluZSwgZG93bmxvYWRPdXRsaW5lIH0pO1xuICAgIHRoaXMuaTE4bi5yZWdpc3RlckRlZmF1bHRzKCdUaWNrZXRDYXJkJywgVElDS0VUX0NBUkRfSTE4Tik7XG5cbiAgICAvLyBSZWdlbmVyYSBlbCBRUiBjdWFuZG8gY2FtYmlhIGVsIHRva2VuIG8gZWwgdGFtYcOxby5cbiAgICBlZmZlY3QoXG4gICAgICAoKSA9PiB7XG4gICAgICAgIGNvbnN0IHRva2VuID0gdGhpcy5wcm9wcygpLnFyVG9rZW47XG4gICAgICAgIGNvbnN0IHNpemUgPSB0aGlzLnByb3BzKCkucXJTaXplID8/IDIwMDtcbiAgICAgICAgaWYgKCF0b2tlbikge1xuICAgICAgICAgIHRoaXMucXIuc2V0KG51bGwpO1xuICAgICAgICAgIHRoaXMuZmFpbGVkLnNldChmYWxzZSk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHZvaWQgdGhpcy5nZW5lcmF0ZSh0b2tlbiwgc2l6ZSk7XG4gICAgICB9LFxuICAgICAgeyBhbGxvd1NpZ25hbFdyaXRlczogdHJ1ZSB9XG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZ2VuZXJhdGUoZGF0YTogc3RyaW5nLCBzaXplOiBudW1iZXIpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aGlzLmZhaWxlZC5zZXQoZmFsc2UpO1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBmcmllbmRseUNvbmZpZzogUXJDb25maWcgPSB7XG4gICAgICAgIC4uLlFSX1BSRVNFVFNbJ3RpY2tldC1mcmllbmRseSddLFxuICAgICAgICBkYXRhLFxuICAgICAgICB3aWR0aDogc2l6ZSxcbiAgICAgICAgaGVpZ2h0OiBzaXplLFxuICAgICAgICBmb3JtYXQ6ICdwbmcnLFxuICAgICAgfTtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMucXJTZXJ2aWNlLmdlbmVyYXRlKGZyaWVuZGx5Q29uZmlnKTtcbiAgICAgIHRoaXMucXIuc2V0KHJlc3VsdCk7XG4gICAgfSBjYXRjaCB7XG4gICAgICAvLyBTaW4gdG9hc3QvdGhyb3cg4oCUIGVsIGZhbGxiYWNrIG11ZXN0cmEgZWwgdG9rZW4gY29ydG8uIEVsIGNvbnN1bWVyXG4gICAgICAvLyBzaWd1ZSBwdWRpZW5kbyBjYW5qZWFyIHRpcGVhbmRvL2VzY2FuZWFuZG8gc2kgaGFjZSBmYWx0YS5cbiAgICAgIHRoaXMucXIuc2V0KG51bGwpO1xuICAgICAgdGhpcy5mYWlsZWQuc2V0KHRydWUpO1xuICAgIH1cbiAgfVxuXG4gIHQoa2V5OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmkxOG4udChrZXksICdUaWNrZXRDYXJkJyk7XG4gIH1cblxuICByZWFkb25seSBzdGF0dXMgPSBjb21wdXRlZDxUaWNrZXRDYXJkU3RhdHVzPigoKSA9PiB0aGlzLnByb3BzKCkuc3RhdHVzID8/ICduZXV0cmFsJyk7XG5cbiAgcmVhZG9ubHkgdG9rZW5TaG9ydCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCB0ayA9IHRoaXMucHJvcHMoKS5xclRva2VuID8/ICcnO1xuICAgIHJldHVybiB0ay5sZW5ndGggPiAxNiA/IGAke3RrLnNsaWNlKDAsIDE2KX3igKZgIDogdGs7XG4gIH0pO1xuXG4gIHJlYWRvbmx5IGZvbGlvVGV4dCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICB0aGlzLmkxOG4ubGFuZygpO1xuICAgIGNvbnN0IGZvbGlvID0gdGhpcy5wcm9wcygpLmZvbGlvO1xuICAgIGlmIChmb2xpbyA9PT0gdW5kZWZpbmVkIHx8IGZvbGlvID09PSBudWxsIHx8IGZvbGlvID09PSAnJykgcmV0dXJuICcnO1xuICAgIGNvbnN0IGxhYmVsID0gdGhpcy5wcm9wcygpLmZvbGlvTGFiZWwgPz8gdGhpcy50KCdmb2xpbycpO1xuICAgIHJldHVybiBgJHtsYWJlbH0gIyR7Zm9saW99YDtcbiAgfSk7XG5cbiAgcmVhZG9ubHkgc3RhdHVzTGFiZWwgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgdGhpcy5pMThuLmxhbmcoKTtcbiAgICBjb25zdCBzdGF0dXMgPSB0aGlzLnN0YXR1cygpO1xuICAgIGlmIChzdGF0dXMgPT09ICdzb2xkJykge1xuICAgICAgcmV0dXJuIHRoaXMucHJvcHMoKS5zdGF0dXNTb2xkTGFiZWwgPz8gdGhpcy50KCdzdGF0dXNTb2xkJyk7XG4gICAgfVxuICAgIGlmIChzdGF0dXMgPT09ICdjaGVja2VkSW4nKSB7XG4gICAgICByZXR1cm4gdGhpcy5wcm9wcygpLnN0YXR1c0NoZWNrZWRJbkxhYmVsID8/IHRoaXMudCgnc3RhdHVzQ2hlY2tlZEluJyk7XG4gICAgfVxuICAgIHJldHVybiAnJztcbiAgfSk7XG5cbiAgYXN5bmMgc2hhcmVDYXJkKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHEgPSB0aGlzLnFyKCk7XG4gICAgaWYgKCFxKSByZXR1cm47XG4gICAgY29uc3QgcCA9IHRoaXMucHJvcHMoKTtcbiAgICB0aGlzLnNoYXJpbmcuc2V0KHRydWUpO1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBjb25maWcgPSB0aGlzLmJ1aWxkSW1hZ2VDb25maWcocSwgcCk7XG4gICAgICBjb25zdCBzaGFyZWQgPSBhd2FpdCB0aGlzLnRpY2tldENhcmRJbWFnZVNlcnZpY2Uuc2hhcmUoY29uZmlnLCBwLnRpdGxlIHx8IHAuc2hhcmVCcmFuZE5hbWUpO1xuICAgICAgaWYgKCFzaGFyZWQpIHtcbiAgICAgICAgYXdhaXQgdGhpcy5jb3B5VG9DbGlwYm9hcmQoY29uZmlnLCBwKTtcbiAgICAgIH1cbiAgICB9IGZpbmFsbHkge1xuICAgICAgdGhpcy5zaGFyaW5nLnNldChmYWxzZSk7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgZG93bmxvYWRDYXJkKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHEgPSB0aGlzLnFyKCk7XG4gICAgaWYgKCFxKSByZXR1cm47XG4gICAgY29uc3QgcCA9IHRoaXMucHJvcHMoKTtcbiAgICB0aGlzLmRvd25sb2FkaW5nLnNldCh0cnVlKTtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgdGhpcy50cmlnZ2VyRG93bmxvYWQodGhpcy5idWlsZEltYWdlQ29uZmlnKHEsIHApLCBwKTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgdGhpcy5kb3dubG9hZGluZy5zZXQoZmFsc2UpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYnVpbGRJbWFnZUNvbmZpZyhxOiBRclJlc3VsdCwgcDogVGlja2V0Q2FyZE1ldGFkYXRhKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHFyRGF0YVVybDogcS5kYXRhVXJsLFxuICAgICAgbG9nb1VybDogcC5zaGFyZUxvZ29VcmwsXG4gICAgICBicmFuZENvbG9yOiBwLnNoYXJlQnJhbmRDb2xvcixcbiAgICAgIGJyYW5kQ29sb3JUbzogcC5zaGFyZUJyYW5kQ29sb3JUbyxcbiAgICAgIGJyYW5kTmFtZTogcC5zaGFyZUJyYW5kTmFtZSxcbiAgICAgIGZvbGlvOiBwLmZvbGlvLFxuICAgICAgZm9saW9MYWJlbDogcC5zaGFyZUZvbGlvTGFiZWwsXG4gICAgICBidXllck5hbWU6IHAuYnV5ZXJOYW1lLFxuICAgICAgZXZlbnREYXRlOiBwLnNoYXJlRXZlbnREYXRlLFxuICAgICAgZXZlbnRMb2NhdGlvbjogcC5zaGFyZUV2ZW50TG9jYXRpb24sXG4gICAgICBzY2FuSGludDogcC5zaGFyZVNjYW5IaW50LFxuICAgICAgcXJMb2dvVXJsOiBwLnFyTG9nb1VybCxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBjb3B5VG9DbGlwYm9hcmQoXG4gICAgY29uZmlnOiBQYXJhbWV0ZXJzPHR5cGVvZiB0aGlzLnRpY2tldENhcmRJbWFnZVNlcnZpY2UuZ2VuZXJhdGU+WzBdLFxuICAgIHA6IFRpY2tldENhcmRNZXRhZGF0YVxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAvLyBJbnRlbnRhIGNvcGlhciBsYSBpbWFnZW4gYnJhbmRlZCBhbCBjbGlwYm9hcmQgKENocm9tZS9FZGdlL1NhZmFyaSBkZXNrdG9wKS5cbiAgICBpZiAodHlwZW9mIENsaXBib2FyZEl0ZW0gIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCBibG9iID0gYXdhaXQgdGhpcy50aWNrZXRDYXJkSW1hZ2VTZXJ2aWNlLmdlbmVyYXRlKGNvbmZpZyk7XG4gICAgICAgIGF3YWl0IG5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGUoW25ldyBDbGlwYm9hcmRJdGVtKHsgJ2ltYWdlL3BuZyc6IGJsb2IgfSldKTtcbiAgICAgICAgdGhpcy50b2FzdC5zaG93KHsgbWVzc2FnZTogdGhpcy50KCdjb3BpZWQnKSwgZHVyYXRpb246IDIwMDAgfSk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH0gY2F0Y2gge1xuICAgICAgICAvLyBDbGlwYm9hcmRJdGVtIG5vIHNvcG9ydGFkbyBvIHBlcm1pc28gZGVuZWdhZG8g4oaSIGNhZXIgYSB0ZXh0b1xuICAgICAgfVxuICAgIH1cbiAgICAvLyBGYWxsYmFjazogY29waWEgVVJMIG8gdGV4dG8gZm9saW9cbiAgICBjb25zdCB0ZXh0ID0gKChwLnNoYXJlVXJsID8/IHRoaXMuZm9saW9UZXh0KCkpIHx8IHAuc2hhcmVCcmFuZE5hbWUpID8/ICcnO1xuICAgIGlmICghdGV4dCkgcmV0dXJuO1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCBuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dCh0ZXh0KTtcbiAgICAgIHRoaXMudG9hc3Quc2hvdyh7IG1lc3NhZ2U6IHRoaXMudChwLnNoYXJlVXJsID8gJ2NvcGllZFVybCcgOiAnY29waWVkJyksIGR1cmF0aW9uOiAyMDAwIH0pO1xuICAgIH0gY2F0Y2gge1xuICAgICAgLy8gY2xpcGJvYXJkIG5vIGRpc3BvbmlibGUg4oCUIHNpbGVuY2lvc29cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHRyaWdnZXJEb3dubG9hZChcbiAgICBjb25maWc6IFBhcmFtZXRlcnM8dHlwZW9mIHRoaXMudGlja2V0Q2FyZEltYWdlU2VydmljZS5nZW5lcmF0ZT5bMF0sXG4gICAgcDogVGlja2V0Q2FyZE1ldGFkYXRhXG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGJsb2IgPSBhd2FpdCB0aGlzLnRpY2tldENhcmRJbWFnZVNlcnZpY2UuZ2VuZXJhdGUoY29uZmlnKTtcbiAgICBjb25zdCB1cmwgPSBVUkwuY3JlYXRlT2JqZWN0VVJMKGJsb2IpO1xuICAgIGNvbnN0IGEgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJyk7XG4gICAgYS5ocmVmID0gdXJsO1xuICAgIGEuZG93bmxvYWQgPSBgY2FydG9uLSR7cC5mb2xpbyA/PyAnYmluZ28nfS5wbmdgO1xuICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoYSk7XG4gICAgYS5jbGljaygpO1xuICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoYSk7XG4gICAgVVJMLnJldm9rZU9iamVjdFVSTCh1cmwpO1xuICB9XG5cbiAgcXJQcm9wcyhxOiBRclJlc3VsdCk6IFFyQ29kZU1ldGFkYXRhIHtcbiAgICBjb25zdCBwID0gdGhpcy5wcm9wcygpO1xuICAgIHJldHVybiB7XG4gICAgICBxcjogcSxcbiAgICAgIGRpc3BsYXlTaXplOiBwLnFyU2l6ZSA/PyAyMDAsXG4gICAgICBzaG93RG93bmxvYWQ6IGZhbHNlLFxuICAgICAgc2hvd1NoYXJlOiBmYWxzZSxcbiAgICAgIHNob3dCb3JkZXI6IGZhbHNlLFxuICAgICAgYm9yZGVyUmFkaXVzOiAyNixcbiAgICAgIHFyQm9yZGVyUmFkaXVzOiAxOCxcbiAgICAgIHBhZGRpbmc6IDEyLFxuICAgICAgY29udGFpbmVyQmFja2dyb3VuZDogJyNmZmZmZmYnLFxuICAgICAgbG9nb1VybDogcC5xckxvZ29VcmwsXG4gICAgICBsb2dvU2l6ZVJhdGlvOiAwLjIsXG4gICAgICBhbHQ6IHRoaXMuZm9saW9UZXh0KCkgfHwgJ1FSJyxcbiAgICAgIGRvd25sb2FkTGFiZWw6IHAuZG93bmxvYWRMYWJlbCA/PyB0aGlzLnQoJ2Rvd25sb2FkJyksXG4gICAgICBzaGFyZUxhYmVsOiB0aGlzLnQoJ3NoYXJlJyksXG4gICAgICBzaGFyZVRpdGxlOiBwLnRpdGxlIHx8IHRoaXMuZm9saW9UZXh0KCkgfHwgJ1FSJyxcbiAgICB9O1xuICB9XG59XG4iXX0=
|