@agorapulse/ui-components 15.1.32 → 15.1.34

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (27) hide show
  1. package/agorapulse-ui-components-15.1.34.tgz +0 -0
  2. package/avatar/avatar.component.d.ts +1 -1
  3. package/esm2020/avatar/avatar.component.mjs +9 -14
  4. package/esm2020/datepicker/datepicker.component.mjs +4 -4
  5. package/esm2020/media-display-overlay/media-display-overlay-dialog.component.mjs +43 -17
  6. package/esm2020/social-button/social-button.component.mjs +13 -8
  7. package/fesm2015/agorapulse-ui-components-avatar.mjs +7 -12
  8. package/fesm2015/agorapulse-ui-components-avatar.mjs.map +1 -1
  9. package/fesm2015/agorapulse-ui-components-datepicker.mjs +3 -3
  10. package/fesm2015/agorapulse-ui-components-datepicker.mjs.map +1 -1
  11. package/fesm2015/agorapulse-ui-components-media-display-overlay.mjs +43 -16
  12. package/fesm2015/agorapulse-ui-components-media-display-overlay.mjs.map +1 -1
  13. package/fesm2015/agorapulse-ui-components-social-button.mjs +12 -7
  14. package/fesm2015/agorapulse-ui-components-social-button.mjs.map +1 -1
  15. package/fesm2020/agorapulse-ui-components-avatar.mjs +7 -12
  16. package/fesm2020/agorapulse-ui-components-avatar.mjs.map +1 -1
  17. package/fesm2020/agorapulse-ui-components-datepicker.mjs +3 -3
  18. package/fesm2020/agorapulse-ui-components-datepicker.mjs.map +1 -1
  19. package/fesm2020/agorapulse-ui-components-media-display-overlay.mjs +42 -16
  20. package/fesm2020/agorapulse-ui-components-media-display-overlay.mjs.map +1 -1
  21. package/fesm2020/agorapulse-ui-components-social-button.mjs +12 -7
  22. package/fesm2020/agorapulse-ui-components-social-button.mjs.map +1 -1
  23. package/media-display-overlay/media-display-overlay-dialog.component.d.ts +13 -5
  24. package/package.json +1 -1
  25. package/snackbars-thread/component/snackbars-thread.component.d.ts +1 -1
  26. package/social-button/social-button.component.d.ts +1 -1
  27. package/agorapulse-ui-components-15.1.32.tgz +0 -0
@@ -3,7 +3,7 @@ import { ElementRef, OnInit } from '@angular/core';
3
3
  import { BehaviorSubject, Observable } from 'rxjs';
4
4
  import * as i0 from "@angular/core";
5
5
  export type AvatarSize = 56 | 48 | 40 | 36 | 32 | 24 | 16;
6
- export type AvatarNetwork = 'facebook' | 'instagram' | 'twitter' | 'linkedin' | 'tiktok' | 'youtube' | 'pinterest' | 'googleMyBusiness' | 'google';
6
+ export type AvatarNetwork = 'facebook' | 'instagram' | 'twitter' | 'linkedin' | 'tiktok' | 'youtube' | 'pinterest' | 'googleMyBusiness' | 'google' | 'X';
7
7
  export declare class AvatarComponent implements OnInit {
8
8
  private symbolRegistry;
9
9
  private elementRef;
@@ -1,6 +1,6 @@
1
- import { apFacebookOfficial, apGoogleMyBusinessOfficial, apLinkedinOfficial, apShowTheaterMaskHappy, apSingleNeutral, apTiktokOfficial, apTwitterOfficial, apYoutubeOfficial, apPinterestOfficial, SymbolComponent, } from '@agorapulse/ui-symbol';
1
+ import { apFacebookOfficial, apGoogleMyBusinessOfficial, apLinkedinOfficial, apShowTheaterMaskHappy, apSingleNeutral, apTiktokOfficial, apYoutubeOfficial, apPinterestOfficial, SymbolComponent, } from '@agorapulse/ui-symbol';
2
2
  import { NgForOf, NgIf, NgOptimizedImage } from '@angular/common';
3
- import { ChangeDetectionStrategy, Component, HostBinding, Input, ViewEncapsulation, } from '@angular/core';
3
+ import { ChangeDetectionStrategy, Component, HostBinding, Input, ViewEncapsulation } from '@angular/core';
4
4
  import { BehaviorSubject, combineLatest, map, Observable, of } from 'rxjs';
5
5
  import { LetModule } from '@ngrx/component';
6
6
  import * as i0 from "@angular/core";
@@ -82,7 +82,8 @@ export class AvatarComponent {
82
82
  this.networkSymbolByNetwork = {
83
83
  facebook: 'facebook-official',
84
84
  instagram: 'instagram-official',
85
- twitter: 'twitter-official',
85
+ X: 'x-official',
86
+ twitter: 'x-official',
86
87
  linkedin: 'linkedin-official',
87
88
  tiktok: 'tiktok-official',
88
89
  youtube: 'youtube-official',
@@ -113,7 +114,6 @@ export class AvatarComponent {
113
114
  apSingleNeutral,
114
115
  apShowTheaterMaskHappy,
115
116
  apFacebookOfficial,
116
- apTwitterOfficial,
117
117
  apLinkedinOfficial,
118
118
  apYoutubeOfficial,
119
119
  apTiktokOfficial,
@@ -127,12 +127,7 @@ export class AvatarComponent {
127
127
  this.initialsAvailable$ = this.username$.pipe(map(username => {
128
128
  return !!username;
129
129
  }));
130
- this.displayProfilePicture$ = combineLatest([
131
- this.profilePicture$,
132
- this.anonymous$,
133
- this.imageError$,
134
- this.showInitials$,
135
- ]).pipe(map(([profilePicture, anonymous, imageError]) => {
130
+ this.displayProfilePicture$ = combineLatest([this.profilePicture$, this.anonymous$, this.imageError$, this.showInitials$]).pipe(map(([profilePicture, anonymous, imageError]) => {
136
131
  return !!profilePicture && !anonymous && !imageError;
137
132
  }));
138
133
  this.displayInitials$ = combineLatest([
@@ -151,7 +146,7 @@ export class AvatarComponent {
151
146
  this.anonymous$,
152
147
  this.displayInitials$,
153
148
  this.displayProfilePicture$,
154
- ]).pipe(map(([profilePicture, imageError, initialsAvailable, showInitials, anonymous, displayInitials, displayProfilePicture,]) => {
149
+ ]).pipe(map(([profilePicture, imageError, initialsAvailable, showInitials, anonymous, displayInitials, displayProfilePicture]) => {
155
150
  return ((!profilePicture || imageError || !initialsAvailable || (initialsAvailable && !showInitials)) &&
156
151
  !anonymous &&
157
152
  !displayInitials &&
@@ -180,10 +175,10 @@ export class AvatarComponent {
180
175
  }
181
176
  }
182
177
  AvatarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: AvatarComponent, deps: [{ token: i1.SymbolRegistry }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
183
- AvatarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.2", type: AvatarComponent, isStandalone: true, selector: "ap-avatar", inputs: { alternativeText: "alternativeText", anonymous: "anonymous", username: "username", network: "network", online: "online", profilePicture: "profilePicture", showInitials: "showInitials", alt: "alt", rounded: "rounded", size: "size" }, host: { properties: { "class.rounded-avatar": "this.roundedAvatar" } }, ngImport: i0, template: "<ng-container\n *ngrxLet=\"{\n displayProfilePicture: displayProfilePicture$,\n displaySingleNeutralSvg: displaySingleNeutralSvg$,\n displayInitials: displayInitials$,\n displayAnonymous: displayAnonymous$,\n displayOnline: displayOnline$,\n displayNetwork: displayNetwork$,\n initials: initials$,\n profilePicture: profilePicture$,\n size: size$,\n network: network$\n } as avatarViewModel\">\n <img\n *ngIf=\"avatarViewModel.displayProfilePicture\"\n [src]=\"avatarViewModel.profilePicture\"\n [width]=\"avatarViewModel.size\"\n [height]=\"avatarViewModel.size\"\n [alt]=\"alt\"\n (error)=\"onImageError()\" />\n <div *ngIf=\"avatarViewModel.displaySingleNeutralSvg\" class=\"no-profile-picture\">\n <ap-symbol symbolId=\"single-neutral\"></ap-symbol>\n </div>\n\n <div *ngIf=\"avatarViewModel.displayAnonymous\" class=\"anonymous\">\n <ap-symbol symbolId=\"show-theater-mask-happy\"></ap-symbol>\n </div>\n <div *ngIf=\"avatarViewModel.displayOnline\" class=\"online\"></div>\n <div\n *ngIf=\"avatarViewModel.displayNetwork\"\n class=\"network\"\n [class.facebook]=\"avatarViewModel.network === 'facebook'\"\n [class.linkedin]=\"avatarViewModel.network === 'linkedin'\"\n [class.twitter]=\"avatarViewModel.network === 'twitter'\"\n [class.youtube]=\"avatarViewModel.network === 'youtube'\"\n [class.googleMyBusiness]=\"\n avatarViewModel.network === 'googleMyBusiness' || avatarViewModel.network === 'google'\n \"\n [class.instagram]=\"avatarViewModel.network === 'instagram'\"\n [class.tiktok]=\"avatarViewModel.network === 'tiktok'\">\n <ap-symbol [symbolId]=\"networkSymbolByNetwork[avatarViewModel.network]\"></ap-symbol>\n </div>\n\n <div *ngIf=\"avatarViewModel.displayInitials\" class=\"initials\">\n {{ avatarViewModel.initials }}\n </div>\n</ng-container>\n", styles: ["ap-avatar{display:flex;justify-content:center;align-items:center;height:var(--ap-avatar-size);min-height:var(--ap-avatar-size);max-height:var(--ap-avatar-size);width:var(--ap-avatar-size);min-width:var(--ap-avatar-size);max-width:var(--ap-avatar-size);border-radius:var(--sys-border-radius-sm);background:var(--ref-color-grey-40);box-sizing:border-box;position:relative;box-shadow:0 0 0 1px var(--ref-color-grey-10)}ap-avatar.rounded-avatar{border-radius:100%}ap-avatar.rounded-avatar img,ap-avatar.rounded-avatar .no-profile-picture,ap-avatar.rounded-avatar .anonymous{border-radius:100%}ap-avatar img{overflow:hidden;border-radius:var(--sys-border-radius-sm);box-sizing:border-box}ap-avatar .no-profile-picture,ap-avatar .anonymous{display:flex;justify-content:center;align-items:center;background:var(--ref-color-grey-40);border-radius:var(--sys-border-radius-sm)}ap-avatar .no-profile-picture ap-symbol,ap-avatar .anonymous ap-symbol{color:var(--ref-color-white);width:var(--ap-avatar-symbol-size);min-width:var(--ap-avatar-symbol-size);max-width:var(--ap-avatar-symbol-size);height:var(--ap-avatar-symbol-size);min-height:var(--ap-avatar-symbol-size);max-height:var(--ap-avatar-symbol-size)}ap-avatar .anonymous{margin-top:7%}ap-avatar .online{position:absolute;height:var(--ap-avatar-online-icon-size);min-height:var(--ap-avatar-online-icon-size);max-height:var(--ap-avatar-online-icon-size);width:var(--ap-avatar-online-icon-size);min-width:var(--ap-avatar-online-icon-size);max-width:var(--ap-avatar-online-icon-size);border-radius:100%;overflow:hidden;background:var(--ref-color-grey-40);box-sizing:border-box;border:1px solid var(--ref-color-white);bottom:0;right:0;background:var(--ref-color-green-100)}ap-avatar .initials{font-weight:var(--ref-font-weight-bold);font-size:var(--ap-avatar-initials-size);line-height:var(--ref-font-line-height-xl);font-family:Averta;color:var(--ref-color-white)}ap-avatar .network{position:absolute;height:var(--ap-avatar-online-icon-size);min-height:var(--ap-avatar-network-size);max-height:var(--ap-avatar-network-size);width:var(--ap-avatar-network-size);min-width:var(--ap-avatar-network-size);max-width:var(--ap-avatar-network-size);overflow:hidden;box-sizing:border-box;bottom:0;right:0;box-shadow:0 0 0 1px var(--ref-color-grey-10)}ap-avatar .network.facebook,ap-avatar .network.twitter,ap-avatar .network.youtube,ap-avatar .network.tiktok,ap-avatar .network,ap-avatar .network pinterest{border-radius:100%}ap-avatar .network.instagram{border-radius:28%}ap-avatar .network.linkedin{border-radius:6%}ap-avatar .network.googleMyBusiness,ap-avatar .network.google{box-shadow:none;border-radius:unset}ap-avatar .network ap-symbol img{border-radius:0;border:none}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: SymbolComponent, selector: "ap-symbol[symbolId]", inputs: ["color", "symbolId", "size", "state"] }, { kind: "ngmodule", type: LetModule }, { kind: "directive", type: i2.LetDirective, selector: "[ngrxLet]", inputs: ["ngrxLet", "ngrxLetSuspenseTpl"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
178
+ AvatarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.2", type: AvatarComponent, isStandalone: true, selector: "ap-avatar", inputs: { alternativeText: "alternativeText", anonymous: "anonymous", username: "username", network: "network", online: "online", profilePicture: "profilePicture", showInitials: "showInitials", alt: "alt", rounded: "rounded", size: "size" }, host: { properties: { "class.rounded-avatar": "this.roundedAvatar" } }, ngImport: i0, template: "<ng-container\n *ngrxLet=\"{\n displayProfilePicture: displayProfilePicture$,\n displaySingleNeutralSvg: displaySingleNeutralSvg$,\n displayInitials: displayInitials$,\n displayAnonymous: displayAnonymous$,\n displayOnline: displayOnline$,\n displayNetwork: displayNetwork$,\n initials: initials$,\n profilePicture: profilePicture$,\n size: size$,\n network: network$\n } as avatarViewModel\">\n <img\n *ngIf=\"avatarViewModel.displayProfilePicture\"\n [src]=\"avatarViewModel.profilePicture\"\n [width]=\"avatarViewModel.size\"\n [height]=\"avatarViewModel.size\"\n [alt]=\"alt\"\n (error)=\"onImageError()\" />\n <div\n *ngIf=\"avatarViewModel.displaySingleNeutralSvg\"\n class=\"no-profile-picture\">\n <ap-symbol symbolId=\"single-neutral\"></ap-symbol>\n </div>\n\n <div\n *ngIf=\"avatarViewModel.displayAnonymous\"\n class=\"anonymous\">\n <ap-symbol symbolId=\"show-theater-mask-happy\"></ap-symbol>\n </div>\n <div\n *ngIf=\"avatarViewModel.displayOnline\"\n class=\"online\"></div>\n <div\n *ngIf=\"avatarViewModel.displayNetwork\"\n class=\"network\"\n [class.facebook]=\"avatarViewModel.network === 'facebook'\"\n [class.linkedin]=\"avatarViewModel.network === 'linkedin'\"\n [class.twitter]=\"avatarViewModel.network === 'twitter'\"\n [class.x]=\"avatarViewModel.network === 'X'\"\n [class.youtube]=\"avatarViewModel.network === 'youtube'\"\n [class.googleMyBusiness]=\"avatarViewModel.network === 'googleMyBusiness' || avatarViewModel.network === 'google'\"\n [class.instagram]=\"avatarViewModel.network === 'instagram'\"\n [class.tiktok]=\"avatarViewModel.network === 'tiktok'\">\n <ap-symbol [symbolId]=\"networkSymbolByNetwork[avatarViewModel.network]\"></ap-symbol>\n </div>\n\n <div\n *ngIf=\"avatarViewModel.displayInitials\"\n class=\"initials\">\n {{ avatarViewModel.initials }}\n </div>\n</ng-container>\n", styles: ["ap-avatar{display:flex;justify-content:center;align-items:center;height:var(--ap-avatar-size);min-height:var(--ap-avatar-size);max-height:var(--ap-avatar-size);width:var(--ap-avatar-size);min-width:var(--ap-avatar-size);max-width:var(--ap-avatar-size);border-radius:var(--sys-border-radius-sm);background:var(--ref-color-grey-40);box-sizing:border-box;position:relative;box-shadow:0 0 0 1px var(--ref-color-grey-10)}ap-avatar.rounded-avatar{border-radius:100%}ap-avatar.rounded-avatar img,ap-avatar.rounded-avatar .no-profile-picture,ap-avatar.rounded-avatar .anonymous{border-radius:100%}ap-avatar img{overflow:hidden;border-radius:var(--sys-border-radius-sm);box-sizing:border-box}ap-avatar .no-profile-picture,ap-avatar .anonymous{display:flex;justify-content:center;align-items:center;background:var(--ref-color-grey-40);border-radius:var(--sys-border-radius-sm)}ap-avatar .no-profile-picture ap-symbol,ap-avatar .anonymous ap-symbol{color:var(--ref-color-white);width:var(--ap-avatar-symbol-size);min-width:var(--ap-avatar-symbol-size);max-width:var(--ap-avatar-symbol-size);height:var(--ap-avatar-symbol-size);min-height:var(--ap-avatar-symbol-size);max-height:var(--ap-avatar-symbol-size)}ap-avatar .anonymous{margin-top:7%}ap-avatar .online{position:absolute;height:var(--ap-avatar-online-icon-size);min-height:var(--ap-avatar-online-icon-size);max-height:var(--ap-avatar-online-icon-size);width:var(--ap-avatar-online-icon-size);min-width:var(--ap-avatar-online-icon-size);max-width:var(--ap-avatar-online-icon-size);border-radius:100%;overflow:hidden;background:var(--ref-color-grey-40);box-sizing:border-box;border:1px solid var(--ref-color-white);bottom:0;right:0;background:var(--ref-color-green-100)}ap-avatar .initials{font-weight:var(--ref-font-weight-bold);font-size:var(--ap-avatar-initials-size);line-height:var(--ref-font-line-height-xl);font-family:Averta;color:var(--ref-color-white)}ap-avatar .network{position:absolute;height:var(--ap-avatar-online-icon-size);min-height:var(--ap-avatar-network-size);max-height:var(--ap-avatar-network-size);width:var(--ap-avatar-network-size);min-width:var(--ap-avatar-network-size);max-width:var(--ap-avatar-network-size);overflow:hidden;box-sizing:border-box;bottom:0;right:0;box-shadow:0 0 0 1px var(--ref-color-grey-10)}ap-avatar .network.facebook,ap-avatar .network.twitter,ap-avatar .network.youtube,ap-avatar .network.tiktok,ap-avatar .network.x,ap-avatar .network.pinterest{border-radius:100%}ap-avatar .network.instagram{border-radius:28%}ap-avatar .network.linkedin{border-radius:6%}ap-avatar .network.googleMyBusiness,ap-avatar .network.google{box-shadow:none;border-radius:unset}ap-avatar .network ap-symbol img{border-radius:0;border:none}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: SymbolComponent, selector: "ap-symbol[symbolId]", inputs: ["color", "symbolId", "size", "state"] }, { kind: "ngmodule", type: LetModule }, { kind: "directive", type: i2.LetDirective, selector: "[ngrxLet]", inputs: ["ngrxLet", "ngrxLetSuspenseTpl"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
184
179
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: AvatarComponent, decorators: [{
185
180
  type: Component,
186
- args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'ap-avatar', standalone: true, imports: [NgIf, NgForOf, NgOptimizedImage, SymbolComponent, LetModule], encapsulation: ViewEncapsulation.None, template: "<ng-container\n *ngrxLet=\"{\n displayProfilePicture: displayProfilePicture$,\n displaySingleNeutralSvg: displaySingleNeutralSvg$,\n displayInitials: displayInitials$,\n displayAnonymous: displayAnonymous$,\n displayOnline: displayOnline$,\n displayNetwork: displayNetwork$,\n initials: initials$,\n profilePicture: profilePicture$,\n size: size$,\n network: network$\n } as avatarViewModel\">\n <img\n *ngIf=\"avatarViewModel.displayProfilePicture\"\n [src]=\"avatarViewModel.profilePicture\"\n [width]=\"avatarViewModel.size\"\n [height]=\"avatarViewModel.size\"\n [alt]=\"alt\"\n (error)=\"onImageError()\" />\n <div *ngIf=\"avatarViewModel.displaySingleNeutralSvg\" class=\"no-profile-picture\">\n <ap-symbol symbolId=\"single-neutral\"></ap-symbol>\n </div>\n\n <div *ngIf=\"avatarViewModel.displayAnonymous\" class=\"anonymous\">\n <ap-symbol symbolId=\"show-theater-mask-happy\"></ap-symbol>\n </div>\n <div *ngIf=\"avatarViewModel.displayOnline\" class=\"online\"></div>\n <div\n *ngIf=\"avatarViewModel.displayNetwork\"\n class=\"network\"\n [class.facebook]=\"avatarViewModel.network === 'facebook'\"\n [class.linkedin]=\"avatarViewModel.network === 'linkedin'\"\n [class.twitter]=\"avatarViewModel.network === 'twitter'\"\n [class.youtube]=\"avatarViewModel.network === 'youtube'\"\n [class.googleMyBusiness]=\"\n avatarViewModel.network === 'googleMyBusiness' || avatarViewModel.network === 'google'\n \"\n [class.instagram]=\"avatarViewModel.network === 'instagram'\"\n [class.tiktok]=\"avatarViewModel.network === 'tiktok'\">\n <ap-symbol [symbolId]=\"networkSymbolByNetwork[avatarViewModel.network]\"></ap-symbol>\n </div>\n\n <div *ngIf=\"avatarViewModel.displayInitials\" class=\"initials\">\n {{ avatarViewModel.initials }}\n </div>\n</ng-container>\n", styles: ["ap-avatar{display:flex;justify-content:center;align-items:center;height:var(--ap-avatar-size);min-height:var(--ap-avatar-size);max-height:var(--ap-avatar-size);width:var(--ap-avatar-size);min-width:var(--ap-avatar-size);max-width:var(--ap-avatar-size);border-radius:var(--sys-border-radius-sm);background:var(--ref-color-grey-40);box-sizing:border-box;position:relative;box-shadow:0 0 0 1px var(--ref-color-grey-10)}ap-avatar.rounded-avatar{border-radius:100%}ap-avatar.rounded-avatar img,ap-avatar.rounded-avatar .no-profile-picture,ap-avatar.rounded-avatar .anonymous{border-radius:100%}ap-avatar img{overflow:hidden;border-radius:var(--sys-border-radius-sm);box-sizing:border-box}ap-avatar .no-profile-picture,ap-avatar .anonymous{display:flex;justify-content:center;align-items:center;background:var(--ref-color-grey-40);border-radius:var(--sys-border-radius-sm)}ap-avatar .no-profile-picture ap-symbol,ap-avatar .anonymous ap-symbol{color:var(--ref-color-white);width:var(--ap-avatar-symbol-size);min-width:var(--ap-avatar-symbol-size);max-width:var(--ap-avatar-symbol-size);height:var(--ap-avatar-symbol-size);min-height:var(--ap-avatar-symbol-size);max-height:var(--ap-avatar-symbol-size)}ap-avatar .anonymous{margin-top:7%}ap-avatar .online{position:absolute;height:var(--ap-avatar-online-icon-size);min-height:var(--ap-avatar-online-icon-size);max-height:var(--ap-avatar-online-icon-size);width:var(--ap-avatar-online-icon-size);min-width:var(--ap-avatar-online-icon-size);max-width:var(--ap-avatar-online-icon-size);border-radius:100%;overflow:hidden;background:var(--ref-color-grey-40);box-sizing:border-box;border:1px solid var(--ref-color-white);bottom:0;right:0;background:var(--ref-color-green-100)}ap-avatar .initials{font-weight:var(--ref-font-weight-bold);font-size:var(--ap-avatar-initials-size);line-height:var(--ref-font-line-height-xl);font-family:Averta;color:var(--ref-color-white)}ap-avatar .network{position:absolute;height:var(--ap-avatar-online-icon-size);min-height:var(--ap-avatar-network-size);max-height:var(--ap-avatar-network-size);width:var(--ap-avatar-network-size);min-width:var(--ap-avatar-network-size);max-width:var(--ap-avatar-network-size);overflow:hidden;box-sizing:border-box;bottom:0;right:0;box-shadow:0 0 0 1px var(--ref-color-grey-10)}ap-avatar .network.facebook,ap-avatar .network.twitter,ap-avatar .network.youtube,ap-avatar .network.tiktok,ap-avatar .network,ap-avatar .network pinterest{border-radius:100%}ap-avatar .network.instagram{border-radius:28%}ap-avatar .network.linkedin{border-radius:6%}ap-avatar .network.googleMyBusiness,ap-avatar .network.google{box-shadow:none;border-radius:unset}ap-avatar .network ap-symbol img{border-radius:0;border:none}\n"] }]
181
+ args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'ap-avatar', standalone: true, imports: [NgIf, NgForOf, NgOptimizedImage, SymbolComponent, LetModule], encapsulation: ViewEncapsulation.None, template: "<ng-container\n *ngrxLet=\"{\n displayProfilePicture: displayProfilePicture$,\n displaySingleNeutralSvg: displaySingleNeutralSvg$,\n displayInitials: displayInitials$,\n displayAnonymous: displayAnonymous$,\n displayOnline: displayOnline$,\n displayNetwork: displayNetwork$,\n initials: initials$,\n profilePicture: profilePicture$,\n size: size$,\n network: network$\n } as avatarViewModel\">\n <img\n *ngIf=\"avatarViewModel.displayProfilePicture\"\n [src]=\"avatarViewModel.profilePicture\"\n [width]=\"avatarViewModel.size\"\n [height]=\"avatarViewModel.size\"\n [alt]=\"alt\"\n (error)=\"onImageError()\" />\n <div\n *ngIf=\"avatarViewModel.displaySingleNeutralSvg\"\n class=\"no-profile-picture\">\n <ap-symbol symbolId=\"single-neutral\"></ap-symbol>\n </div>\n\n <div\n *ngIf=\"avatarViewModel.displayAnonymous\"\n class=\"anonymous\">\n <ap-symbol symbolId=\"show-theater-mask-happy\"></ap-symbol>\n </div>\n <div\n *ngIf=\"avatarViewModel.displayOnline\"\n class=\"online\"></div>\n <div\n *ngIf=\"avatarViewModel.displayNetwork\"\n class=\"network\"\n [class.facebook]=\"avatarViewModel.network === 'facebook'\"\n [class.linkedin]=\"avatarViewModel.network === 'linkedin'\"\n [class.twitter]=\"avatarViewModel.network === 'twitter'\"\n [class.x]=\"avatarViewModel.network === 'X'\"\n [class.youtube]=\"avatarViewModel.network === 'youtube'\"\n [class.googleMyBusiness]=\"avatarViewModel.network === 'googleMyBusiness' || avatarViewModel.network === 'google'\"\n [class.instagram]=\"avatarViewModel.network === 'instagram'\"\n [class.tiktok]=\"avatarViewModel.network === 'tiktok'\">\n <ap-symbol [symbolId]=\"networkSymbolByNetwork[avatarViewModel.network]\"></ap-symbol>\n </div>\n\n <div\n *ngIf=\"avatarViewModel.displayInitials\"\n class=\"initials\">\n {{ avatarViewModel.initials }}\n </div>\n</ng-container>\n", styles: ["ap-avatar{display:flex;justify-content:center;align-items:center;height:var(--ap-avatar-size);min-height:var(--ap-avatar-size);max-height:var(--ap-avatar-size);width:var(--ap-avatar-size);min-width:var(--ap-avatar-size);max-width:var(--ap-avatar-size);border-radius:var(--sys-border-radius-sm);background:var(--ref-color-grey-40);box-sizing:border-box;position:relative;box-shadow:0 0 0 1px var(--ref-color-grey-10)}ap-avatar.rounded-avatar{border-radius:100%}ap-avatar.rounded-avatar img,ap-avatar.rounded-avatar .no-profile-picture,ap-avatar.rounded-avatar .anonymous{border-radius:100%}ap-avatar img{overflow:hidden;border-radius:var(--sys-border-radius-sm);box-sizing:border-box}ap-avatar .no-profile-picture,ap-avatar .anonymous{display:flex;justify-content:center;align-items:center;background:var(--ref-color-grey-40);border-radius:var(--sys-border-radius-sm)}ap-avatar .no-profile-picture ap-symbol,ap-avatar .anonymous ap-symbol{color:var(--ref-color-white);width:var(--ap-avatar-symbol-size);min-width:var(--ap-avatar-symbol-size);max-width:var(--ap-avatar-symbol-size);height:var(--ap-avatar-symbol-size);min-height:var(--ap-avatar-symbol-size);max-height:var(--ap-avatar-symbol-size)}ap-avatar .anonymous{margin-top:7%}ap-avatar .online{position:absolute;height:var(--ap-avatar-online-icon-size);min-height:var(--ap-avatar-online-icon-size);max-height:var(--ap-avatar-online-icon-size);width:var(--ap-avatar-online-icon-size);min-width:var(--ap-avatar-online-icon-size);max-width:var(--ap-avatar-online-icon-size);border-radius:100%;overflow:hidden;background:var(--ref-color-grey-40);box-sizing:border-box;border:1px solid var(--ref-color-white);bottom:0;right:0;background:var(--ref-color-green-100)}ap-avatar .initials{font-weight:var(--ref-font-weight-bold);font-size:var(--ap-avatar-initials-size);line-height:var(--ref-font-line-height-xl);font-family:Averta;color:var(--ref-color-white)}ap-avatar .network{position:absolute;height:var(--ap-avatar-online-icon-size);min-height:var(--ap-avatar-network-size);max-height:var(--ap-avatar-network-size);width:var(--ap-avatar-network-size);min-width:var(--ap-avatar-network-size);max-width:var(--ap-avatar-network-size);overflow:hidden;box-sizing:border-box;bottom:0;right:0;box-shadow:0 0 0 1px var(--ref-color-grey-10)}ap-avatar .network.facebook,ap-avatar .network.twitter,ap-avatar .network.youtube,ap-avatar .network.tiktok,ap-avatar .network.x,ap-avatar .network.pinterest{border-radius:100%}ap-avatar .network.instagram{border-radius:28%}ap-avatar .network.linkedin{border-radius:6%}ap-avatar .network.googleMyBusiness,ap-avatar .network.google{box-shadow:none;border-radius:unset}ap-avatar .network ap-symbol img{border-radius:0;border:none}\n"] }]
187
182
  }], ctorParameters: function () { return [{ type: i1.SymbolRegistry }, { type: i0.ElementRef }]; }, propDecorators: { alternativeText: [{
188
183
  type: Input
189
184
  }], anonymous: [{
@@ -208,4 +203,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.2", ngImpor
208
203
  }], size: [{
209
204
  type: Input
210
205
  }] } });
211
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXZhdGFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYnMvdWktY29tcG9uZW50cy9hdmF0YXIvc3JjL2F2YXRhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9saWJzL3VpLWNvbXBvbmVudHMvYXZhdGFyL3NyYy9hdmF0YXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILGtCQUFrQixFQUNsQiwwQkFBMEIsRUFDMUIsa0JBQWtCLEVBQ2xCLHNCQUFzQixFQUN0QixlQUFlLEVBQ2YsZ0JBQWdCLEVBQ2hCLGlCQUFpQixFQUNqQixpQkFBaUIsRUFDakIsbUJBQW1CLEVBQ25CLGVBQWUsR0FFbEIsTUFBTSx1QkFBdUIsQ0FBQztBQUMvQixPQUFPLEVBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ2hFLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUVULFdBQVcsRUFDWCxLQUFLLEVBRUwsaUJBQWlCLEdBQ3BCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxlQUFlLEVBQUUsYUFBYSxFQUFFLEdBQUcsRUFBRSxVQUFVLEVBQUUsRUFBRSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ3pFLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQzs7OztBQWMxQyxNQUFNLDBCQUEwQixHQUErQjtJQUMzRCxFQUFFLEVBQUUsRUFBRTtJQUNOLEVBQUUsRUFBRSxFQUFFO0lBQ04sRUFBRSxFQUFFLEVBQUU7SUFDTixFQUFFLEVBQUUsQ0FBQztJQUNMLEVBQUUsRUFBRSxDQUFDO0lBQ0wsRUFBRSxFQUFFLENBQUM7SUFDTCxFQUFFLEVBQUUsQ0FBQztDQUNSLENBQUM7QUFFRixNQUFNLHNCQUFzQixHQUErQjtJQUN2RCxFQUFFLEVBQUUsRUFBRTtJQUNOLEVBQUUsRUFBRSxFQUFFO0lB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QkFBc0I7Z0JBSS9CLE9BQU87c0JBRFYsS0FBSztnQkFNTyxJQUFJO3NCQUFoQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBhcEZhY2Vib29rT2ZmaWNpYWwsXG4gICAgYXBHb29nbGVNeUJ1c2luZXNzT2ZmaWNpYWwsXG4gICAgYXBMaW5rZWRpbk9mZmljaWFsLFxuICAgIGFwU2hvd1RoZWF0ZXJNYXNrSGFwcHksXG4gICAgYXBTaW5nbGVOZXV0cmFsLFxuICAgIGFwVGlrdG9rT2ZmaWNpYWwsXG4gICAgYXBUd2l0dGVyT2ZmaWNpYWwsXG4gICAgYXBZb3V0dWJlT2ZmaWNpYWwsXG4gICAgYXBQaW50ZXJlc3RPZmZpY2lhbCxcbiAgICBTeW1ib2xDb21wb25lbnQsXG4gICAgU3ltYm9sUmVnaXN0cnksXG59IGZyb20gJ0BhZ29yYXB1bHNlL3VpLXN5bWJvbCc7XG5pbXBvcnQge05nRm9yT2YsIE5nSWYsIE5nT3B0aW1pemVkSW1hZ2V9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBFbGVtZW50UmVmLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIElucHV0LFxuICAgIE9uSW5pdCxcbiAgICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgbWFwLCBPYnNlcnZhYmxlLCBvZn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge0xldE1vZHVsZX0gZnJvbSAnQG5ncngvY29tcG9uZW50JztcblxuZXhwb3J0IHR5cGUgQXZhdGFyU2l6ZSA9IDU2IHwgNDggfCA0MCB8IDM2IHwgMzIgfCAyNCB8IDE2O1xuZXhwb3J0IHR5cGUgQXZhdGFyTmV0d29yayA9XG4gICAgfCAnZmFjZWJvb2snXG4gICAgfCAnaW5zdGFncmFtJ1xuICAgIHwgJ3R3aXR0ZXInXG4gICAgfCAnbGlua2VkaW4nXG4gICAgfCAndGlrdG9rJ1xuICAgIHwgJ3lvdXR1YmUnXG4gICAgfCAncGludGVyZXN0J1xuICAgIHwgJ2dvb2dsZU15QnVzaW5lc3MnXG4gICAgfCAnZ29vZ2xlJztcblxuY29uc3Qgb25saW5lSWNvblNpemVCeUF2YXRhclNpemU6IFJlY29yZDxBdmF0YXJTaXplLCBudW1iZXI+ID0ge1xuICAgIDU2OiAxNixcbiAgICA0ODogMTIsXG4gICAgNDA6IDEyLFxuICAgIDM2OiA4LFxuICAgIDMyOiA4LFxuICAgIDI0OiA2LFxuICAgIDE2OiA2LFxufTtcblxuY29uc3Qgc3ltYm9sU2l6ZUJ5QXZhdGFyU2l6ZTogUmVjb3JkPEF2YXRhclNpemUsIG51bWJlcj4gPSB7XG4gICAgNTY6IDI4LFxuICAgIDQ4OiAyNCxcbiAgICA0MDogMjAsXG4gICAgMzY6IDE4LFxuICAgIDMyOiAxNixcbiAgICAyNDogMTIsXG4gICAgMTY6IDgsXG59O1xuXG5jb25zdCBuZXR3b3JrU2l6ZUJ5QXZhdGFyU2l6ZTogUmVjb3JkPEF2YXRhclNpemUsIG51bWJlcj4gPSB7XG4gICAgNTY6IDE2LFxuICAgIDQ4OiAxNixcbiAgICA0MDogMTYsXG4gICAgMzY6IDE2LFxuICAgIDMyOiAxMixcbiAgICAyNDogMTIsXG4gICAgMTY6IDgsXG59O1xuXG5jb25zdCBpbml0aWFsU2l6ZUJ5QXZhdGFyU2l6ZTogUmVjb3JkPEF2YXRhclNpemUsIG51bWJlcj4gPSB7XG4gICAgNTY6IDI4LFxuICAgIDQ4OiAyNCxcbiAgICA0MDogMjIsXG4gICAgMzY6IDE4LFxuICAgIDMyOiAxOCxcbiAgICAyNDogMTQsXG4gICAgMTY6IDEwLFxufTtcblxuQENvbXBvbmVudCh7XG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgc2VsZWN0b3I6ICdhcC1hdmF0YXInLFxuICAgIHN0eWxlVXJsczogWycuL2F2YXRhci5jb21wb25lbnQuc2NzcyddLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW05nSWYsIE5nRm9yT2YsIE5nT3B0aW1pemVkSW1hZ2UsIFN5bWJvbENvbXBvbmVudCwgTGV0TW9kdWxlXSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vYXZhdGFyLmNvbXBvbmVudC5odG1sJyxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxufSlcbmV4cG9ydCBjbGFzcyBBdmF0YXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIHJlYWRvbmx5IG5ldHdvcmtTeW1ib2xCeU5ldHdvcms6IFJlY29yZDxBdmF0YXJOZXR3b3JrLCBzdHJpbmc+ID0ge1xuICAgICAgICBmYWNlYm9vazogJ2ZhY2Vib29rLW9mZmljaWFsJyxcbiAgICAgICAgaW5zdGFncmFtOiAnaW5zdGFncmFtLW9mZmljaWFsJyxcbiAgICAgICAgdHdpdHRlcjogJ3R3aXR0ZXItb2ZmaWNpYWwnLFxuICAgICAgICBsaW5rZWRpbjogJ2xpbmtlZGluLW9mZmljaWFsJyxcbiAgICAgICAgdGlrdG9rOiAndGlrdG9rLW9mZmljaWFsJyxcbiAgICAgICAgeW91dHViZTogJ3lvdXR1YmUtb2ZmaWNpYWwnLFxuICAgICAgICBwaW50ZXJlc3Q6ICdwaW50ZXJlc3Qtb2ZmaWNpYWwnLFxuICAgICAgICBnb29nbGVNeUJ1c2luZXNzOiAnZ29vZ2xlLW15LWJ1c2luZXNzLW9mZmljaWFsJyxcbiAgICAgICAgZ29vZ2xlOiAnZ29vZ2xlLW15LWJ1c2luZXNzLW9mZmljaWFsJyxcbiAgICB9O1xuXG4gICAgc2l6ZSQ6IEJlaGF2aW9yU3ViamVjdDxBdmF0YXJTaXplPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QXZhdGFyU2l6ZT4oNDApO1xuICAgIHByb2ZpbGVQaWN0dXJlJDogQmVoYXZpb3JTdWJqZWN0PHN0cmluZyB8IHVuZGVmaW5lZD4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4oJycpO1xuICAgIG5ldHdvcmskOiBCZWhhdmlvclN1YmplY3Q8QXZhdGFyTmV0d29yayB8IHVuZGVmaW5lZD4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEF2YXRhck5ldHdvcms+KHVuZGVmaW5lZCk7XG5cbiAgICBwcml2YXRlIGFsdGVybmF0aXZlVGV4dCQ6IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+KCcnKTtcbiAgICBwcml2YXRlIGFub255bW91cyQ6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICAgIHByaXZhdGUgdXNlcm5hbWUkOiBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPignJyk7XG4gICAgcHJpdmF0ZSBvbmxpbmUkOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgICBwcml2YXRlIHNob3dJbml0aWFscyQ6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICAgIHByaXZhdGUgcm91bmRlZCQ6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4odHJ1ZSk7XG5cbiAgICBASW5wdXQoKSBzZXQgYWx0ZXJuYXRpdmVUZXh0KGFsdGVybmF0aXZlVGV4dDogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuYWx0ZXJuYXRpdmVUZXh0JC5uZXh0KGFsdGVybmF0aXZlVGV4dCk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IGFub255bW91cyhhbm9ueW1vdXM6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5hbm9ueW1vdXMkLm5leHQoYW5vbnltb3VzKTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgdXNlcm5hbWUodXNlcm5hbWU6IHN0cmluZykge1xuICAgICAgICB0aGlzLnVzZXJuYW1lJC5uZXh0KHVzZXJuYW1lKTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgbmV0d29yayhuZXR3b3JrOiBBdmF0YXJOZXR3b3JrIHwgdW5kZWZpbmVkKSB7XG4gICAgICAgIHRoaXMubmV0d29yayQubmV4dChuZXR3b3JrKTtcbiAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoXG4gICAgICAgICAgICAnLS1hcC1hdmF0YXItbmV0d29yay1zaXplJyxcbiAgICAgICAgICAgIGAke25ldHdvcmtTaXplQnlBdmF0YXJTaXplW3RoaXMuc2l6ZSQudmFsdWVdfXB4YFxuICAgICAgICApO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCBvbmxpbmUob25saW5lOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMub25saW5lJC5uZXh0KG9ubGluZSk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IHByb2ZpbGVQaWN0dXJlKHByb2ZpbGVQaWN0dXJlOiBzdHJpbmcgfCB1bmRlZmluZWQpIHtcbiAgICAgICAgdGhpcy5wcm9maWxlUGljdHVyZSQubmV4dChwcm9maWxlUGljdHVyZSk7XG4gICAgICAgIHRoaXMuaW1hZ2VFcnJvciQubmV4dChmYWxzZSk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IHNob3dJbml0aWFscyhzaG93SW5pdGlhbHM6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5zaG93SW5pdGlhbHMkLm5leHQoc2hvd0luaXRpYWxzKTtcbiAgICB9XG4gICAgQElucHV0KCkgYWx0OiBzdHJpbmc7XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLnJvdW5kZWQtYXZhdGFyJylcbiAgICByb3VuZGVkQXZhdGFyOiBib29sZWFuID0gdHJ1ZTtcblxuICAgIEBJbnB1dCgpXG4gICAgc2V0IHJvdW5kZWQocm91bmRlZDogYm9vbGVhbikge1xuICAgICAgICB0aGlzLnJvdW5kZWRBdmF0YXIgPSByb3VuZGVkO1xuICAgICAgICB0aGlzLnJvdW5kZWQkLm5leHQocm91bmRlZCk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IHNpemUoc2l6ZTogQXZhdGFyU2l6ZSkge1xuICAgICAgICB0aGlzLnNpemUkLm5leHQoc2l6ZSk7XG4gICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLWFwLWF2YXRhci1zaXplJywgYCR7c2l6ZX1weGApO1xuICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1hcC1hdmF0YXItc3ltYm9sLXNpemUnLCBgJHtzeW1ib2xTaXplQnlBdmF0YXJTaXplW3NpemVdfXB4YCk7XG4gICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KFxuICAgICAgICAgICAgJy0tYXAtYXZhdGFyLW9ubGluZS1pY29uLXNpemUnLFxuICAgICAgICAgICAgYCR7b25saW5lSWNvblNpemVCeUF2YXRhclNpemVbc2l6ZV19cHhgXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgZGlzcGxheVByb2ZpbGVQaWN0dXJlJDogT2JzZXJ2YWJsZTxib29sZWFuPiA9IG5ldyBPYnNlcnZhYmxlPGJvb2xlYW4+KCk7XG4gICAgZGlzcGxheVNpbmdsZU5ldXRyYWxTdmckOiBPYnNlcnZhYmxlPGJvb2xlYW4+ID0gbmV3IE9ic2VydmFibGU8Ym9vbGVhbj4oKTtcbiAgICBkaXNwbGF5SW5pdGlhbHMkOiBPYnNlcnZhYmxlPGJvb2xlYW4+ID0gbmV3IE9ic2VydmFibGU8Ym9vbGVhbj4oKTtcbiAgICBkaXNwbGF5QW5vbnltb3VzJDogT2JzZXJ2YWJsZTxib29sZWFuPiA9IG5ldyBPYnNlcnZhYmxlPGJvb2xlYW4+KCk7XG4gICAgZGlzcGxheU5ldHdvcmskOiBPYnNlcnZhYmxlPGJvb2xlYW4+ID0gbmV3IE9ic2VydmFibGU8Ym9vbGVhbj4oKTtcbiAgICBkaXNwbGF5T25saW5lJDogT2JzZXJ2YWJsZTxib29sZWFuPiA9IG5ldyBPYnNlcnZhYmxlPGJvb2xlYW4+KCk7XG4gICAgaW1hZ2VFcnJvciQ6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICAgIGluaXRpYWxzJDogT2JzZXJ2YWJsZTxzdHJpbmc+ID0gbmV3IE9ic2VydmFibGU8c3RyaW5nPigpO1xuICAgIGluaXRpYWxzQXZhaWxhYmxlJDogT2JzZXJ2YWJsZTxib29sZWFuPiA9IG9mKGZhbHNlKTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgc3ltYm9sUmVnaXN0cnk6IFN5bWJvbFJlZ2lzdHJ5LCBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYpIHtcbiAgICAgICAgdGhpcy5zeW1ib2xSZWdpc3RyeS5yZWdpc3RlclN5bWJvbHMoW1xuICAgICAgICAgICAgYXBTaW5nbGVOZXV0cmFsLFxuICAgICAgICAgICAgYXBTaG93VGhlYXRlck1hc2tIYXBweSxcbiAgICAgICAgICAgIGFwRmFjZWJvb2tPZmZpY2lhbCxcbiAgICAgICAgICAgIGFwVHdpdHRlck9mZmljaWFsLFxuICAgICAgICAgICAgYXBMaW5rZWRpbk9mZmljaWFsLFxuICAgICAgICAgICAgYXBZb3V0dWJlT2ZmaWNpYWwsXG4gICAgICAgICAgICBhcFRpa3Rva09mZmljaWFsLFxuICAgICAgICAgICAgYXBHb29nbGVNeUJ1c2luZXNzT2ZmaWNpYWwsXG4gICAgICAgICAgICBhcFBpbnRlcmVzdE9mZmljaWFsLFxuICAgICAgICBdKTtcbiAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tYXAtYXZhdGFyLXNpemUnLCBgNDBweGApO1xuICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eShcbiAgICAgICAgICAgICctLWFwLWF2YXRhci1zeW1ib2wtc2l6ZScsXG4gICAgICAgICAgICBgJHtzeW1ib2xTaXplQnlBdmF0YXJTaXplW3RoaXMuc2l6ZSQudmFsdWVdfXB4YFxuICAgICAgICApO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmluaXRpYWxzQXZhaWxhYmxlJCA9IHRoaXMudXNlcm5hbWUkLnBpcGUoXG4gICAgICAgICAgICBtYXAodXNlcm5hbWUgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiAhIXVzZXJuYW1lO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLmRpc3BsYXlQcm9maWxlUGljdHVyZSQgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICAgICAgICAgIHRoaXMucHJvZmlsZVBpY3R1cmUkLFxuICAgICAgICAgICAgdGhpcy5hbm9ueW1vdXMkLFxuICAgICAgICAgICAgdGhpcy5pbWFnZUVycm9yJCxcbiAgICAgICAgICAgIHRoaXMuc2hvd0luaXRpYWxzJCxcbiAgICAgICAgXSkucGlwZShcbiAgICAgICAgICAgIG1hcCgoW3Byb2ZpbGVQaWN0dXJlLCBhbm9ueW1vdXMsIGltYWdlRXJyb3JdKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICEhcHJvZmlsZVBpY3R1cmUgJiYgIWFub255bW91cyAmJiAhaW1hZ2VFcnJvcjtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5kaXNwbGF5SW5pdGlhbHMkID0gY29tYmluZUxhdGVzdChbXG4gICAgICAgICAgICB0aGlzLnNob3dJbml0aWFscyQsXG4gICAgICAgICAgICB0aGlzLmFub255bW91cyQsXG4gICAgICAgICAgICB0aGlzLmluaXRpYWxzQXZhaWxhYmxlJCxcbiAgICAgICAgICAgIHRoaXMuZGlzcGxheVByb2ZpbGVQaWN0dXJlJCxcbiAgICAgICAgXSkucGlwZShcbiAgICAgICAgICAgIG1hcCgoW3Nob3dJbml0aWFscywgYW5vbnltb3VzLCBpbml0aWFsc0F2YWlsYWJsZSwgZGlzcGxheVByb2ZpbGVQaWN0dXJlXSkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiBzaG93SW5pdGlhbHMgJiYgIWFub255bW91cyAmJiBpbml0aWFsc0F2YWlsYWJsZSAmJiAhZGlzcGxheVByb2ZpbGVQaWN0dXJlO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLmRpc3BsYXlTaW5nbGVOZXV0cmFsU3ZnJCA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgICAgICAgdGhpcy5wcm9maWxlUGljdHVyZSQsXG4gICAgICAgICAgICB0aGlzLmltYWdlRXJyb3IkLFxuICAgICAgICAgICAgdGhpcy5pbml0aWFsc0F2YWlsYWJsZSQsXG4gICAgICAgICAgICB0aGlzLnNob3dJbml0aWFscyQsXG4gICAgICAgICAgICB0aGlzLmFub255bW91cyQsXG4gICAgICAgICAgICB0aGlzLmRpc3BsYXlJbml0aWFscyQsXG4gICAgICAgICAgICB0aGlzLmRpc3BsYXlQcm9maWxlUGljdHVyZSQsXG4gICAgICAgIF0pLnBpcGUoXG4gICAgICAgICAgICBtYXAoXG4gICAgICAgICAgICAgICAgKFtcbiAgICAgICAgICAgICAgICAgICAgcHJvZmlsZVBpY3R1cmUsXG4gICAgICAgICAgICAgICAgICAgIGltYWdlRXJyb3IsXG4gICAgICAgICAgICAgICAgICAgIGluaXRpYWxzQXZhaWxhYmxlLFxuICAgICAgICAgICAgICAgICAgICBzaG93SW5pdGlhbHMsXG4gICAgICAgICAgICAgICAgICAgIGFub255bW91cyxcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheUluaXRpYWxzLFxuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5UHJvZmlsZVBpY3R1cmUsXG4gICAgICAgICAgICAgICAgXSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgKCFwcm9maWxlUGljdHVyZSB8fCBpbWFnZUVycm9yIHx8ICFpbml0aWFsc0F2YWlsYWJsZSB8fCAoaW5pdGlhbHNBdmFpbGFibGUgJiYgIXNob3dJbml0aWFscykpICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAhYW5vbnltb3VzICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAhZGlzcGxheUluaXRpYWxzICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAhZGlzcGxheVByb2ZpbGVQaWN0dXJlXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgKVxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMuZGlzcGxheUFub255bW91cyQgPSBjb21iaW5lTGF0ZXN0KFt0aGlzLmFub255bW91cyQsIHRoaXMucm91bmRlZCRdKS5waXBlKFxuICAgICAgICAgICAgbWFwKChbYW5vbnltb3VzLCByb3VuZGVkXSkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiBhbm9ueW1vdXMgJiYgcm91bmRlZDtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5kaXNwbGF5T25saW5lJCA9IGNvbWJpbmVMYXRlc3QoW3RoaXMub25saW5lJCwgdGhpcy5yb3VuZGVkJF0pLnBpcGUoXG4gICAgICAgICAgICBtYXAoKFtvbmxpbmUsIHJvdW5kZWRdKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG9ubGluZSAmJiByb3VuZGVkO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLmRpc3BsYXlOZXR3b3JrJCA9IGNvbWJpbmVMYXRlc3QoW3RoaXMubmV0d29yayQsIHRoaXMucm91bmRlZCRdKS5waXBlKFxuICAgICAgICAgICAgbWFwKChbbmV0d29yaywgcm91bmRlZF0pID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gISFuZXR3b3JrICYmIHJvdW5kZWQ7XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMuaW5pdGlhbHMkID0gY29tYmluZUxhdGVzdChbdGhpcy5kaXNwbGF5SW5pdGlhbHMkLCB0aGlzLnVzZXJuYW1lJF0pLnBpcGUoXG4gICAgICAgICAgICBtYXAoKFtkaXNwbGF5SW5pdGlhbHMsIHVzZXJuYW1lXSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmICgoZGlzcGxheUluaXRpYWxzICYmICF1c2VybmFtZSkgfHwgIWRpc3BsYXlJbml0aWFscykge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gJyc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KFxuICAgICAgICAgICAgICAgICAgICAnLS1hcC1hdmF0YXItaW5pdGlhbHMtc2l6ZScsXG4gICAgICAgICAgICAgICAgICAgIGAke2luaXRpYWxTaXplQnlBdmF0YXJTaXplW3RoaXMuc2l6ZSQudmFsdWVdfXB4YFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgY29uc3QgbmFtZXMgPSB1c2VybmFtZT8uc3BsaXQoJyAnKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gYCR7bmFtZXNbMF0uY2hhckF0KDApLnRvVXBwZXJDYXNlKCl9YDtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgb25JbWFnZUVycm9yKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmltYWdlRXJyb3IkLm5leHQodHJ1ZSk7XG4gICAgfVxufVxuIiwiPG5nLWNvbnRhaW5lclxuICAgICpuZ3J4TGV0PVwie1xuICAgICAgICBkaXNwbGF5UHJvZmlsZVBpY3R1cmU6IGRpc3BsYXlQcm9maWxlUGljdHVyZSQsXG4gICAgICAgIGRpc3BsYXlTaW5nbGVOZXV0cmFsU3ZnOiBkaXNwbGF5U2luZ2xlTmV1dHJhbFN2ZyQsXG4gICAgICAgIGRpc3BsYXlJbml0aWFsczogZGlzcGxheUluaXRpYWxzJCxcbiAgICAgICAgZGlzcGxheUFub255bW91czogZGlzcGxheUFub255bW91cyQsXG4gICAgICAgIGRpc3BsYXlPbmxpbmU6IGRpc3BsYXlPbmxpbmUkLFxuICAgICAgICBkaXNwbGF5TmV0d29yazogZGlzcGxheU5ldHdvcmskLFxuICAgICAgICBpbml0aWFsczogaW5pdGlhbHMkLFxuICAgICAgICBwcm9maWxlUGljdHVyZTogcHJvZmlsZVBpY3R1cmUkLFxuICAgICAgICBzaXplOiBzaXplJCxcbiAgICAgICAgbmV0d29yazogbmV0d29yayRcbiAgICB9IGFzIGF2YXRhclZpZXdNb2RlbFwiPlxuICAgIDxpbWdcbiAgICAgICAgKm5nSWY9XCJhdmF0YXJWaWV3TW9kZWwuZGlzcGxheVByb2ZpbGVQaWN0dXJlXCJcbiAgICAgICAgW3NyY109XCJhdmF0YXJWaWV3TW9kZWwucHJvZmlsZVBpY3R1cmVcIlxuICAgICAgICBbd2lkdGhdPVwiYXZhdGFyVmlld01vZGVsLnNpemVcIlxuICAgICAgICBbaGVpZ2h0XT1cImF2YXRhclZpZXdNb2RlbC5zaXplXCJcbiAgICAgICAgW2FsdF09XCJhbHRcIlxuICAgICAgICAoZXJyb3IpPVwib25JbWFnZUVycm9yKClcIiAvPlxuICAgIDxkaXYgKm5nSWY9XCJhdmF0YXJWaWV3TW9kZWwuZGlzcGxheVNpbmdsZU5ldXRyYWxTdmdcIiBjbGFzcz1cIm5vLXByb2ZpbGUtcGljdHVyZVwiPlxuICAgICAgICA8YXAtc3ltYm9sIHN5bWJvbElkPVwic2luZ2xlLW5ldXRyYWxcIj48L2FwLXN5bWJvbD5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgKm5nSWY9XCJhdmF0YXJWaWV3TW9kZWwuZGlzcGxheUFub255bW91c1wiIGNsYXNzPVwiYW5vbnltb3VzXCI+XG4gICAgICAgIDxhcC1zeW1ib2wgc3ltYm9sSWQ9XCJzaG93LXRoZWF0ZXItbWFzay1oYXBweVwiPjwvYXAtc3ltYm9sPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgKm5nSWY9XCJhdmF0YXJWaWV3TW9kZWwuZGlzcGxheU9ubGluZVwiIGNsYXNzPVwib25saW5lXCI+PC9kaXY+XG4gICAgPGRpdlxuICAgICAgICAqbmdJZj1cImF2YXRhclZpZXdNb2RlbC5kaXNwbGF5TmV0d29ya1wiXG4gICAgICAgIGNsYXNzPVwibmV0d29ya1wiXG4gICAgICAgIFtjbGFzcy5mYWNlYm9va109XCJhdmF0YXJWaWV3TW9kZWwubmV0d29yayA9PT0gJ2ZhY2Vib29rJ1wiXG4gICAgICAgIFtjbGFzcy5saW5rZWRpbl09XCJhdmF0YXJWaWV3TW9kZWwubmV0d29yayA9PT0gJ2xpbmtlZGluJ1wiXG4gICAgICAgIFtjbGFzcy50d2l0dGVyXT1cImF2YXRhclZpZXdNb2RlbC5uZXR3b3JrID09PSAndHdpdHRlcidcIlxuICAgICAgICBbY2xhc3MueW91dHViZV09XCJhdmF0YXJWaWV3TW9kZWwubmV0d29yayA9PT0gJ3lvdXR1YmUnXCJcbiAgICAgICAgW2NsYXNzLmdvb2dsZU15QnVzaW5lc3NdPVwiXG4gICAgICAgICAgICBhdmF0YXJWaWV3TW9kZWwubmV0d29yayA9PT0gJ2dvb2dsZU15QnVzaW5lc3MnIHx8IGF2YXRhclZpZXdNb2RlbC5uZXR3b3JrID09PSAnZ29vZ2xlJ1xuICAgICAgICBcIlxuICAgICAgICBbY2xhc3MuaW5zdGFncmFtXT1cImF2YXRhclZpZXdNb2RlbC5uZXR3b3JrID09PSAnaW5zdGFncmFtJ1wiXG4gICAgICAgIFtjbGFzcy50aWt0b2tdPVwiYXZhdGFyVmlld01vZGVsLm5ldHdvcmsgPT09ICd0aWt0b2snXCI+XG4gICAgICAgIDxhcC1zeW1ib2wgW3N5bWJvbElkXT1cIm5ldHdvcmtTeW1ib2xCeU5ldHdvcmtbYXZhdGFyVmlld01vZGVsLm5ldHdvcmtdXCI+PC9hcC1zeW1ib2w+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2ICpuZ0lmPVwiYXZhdGFyVmlld01vZGVsLmRpc3BsYXlJbml0aWFsc1wiIGNsYXNzPVwiaW5pdGlhbHNcIj5cbiAgICAgICAge3sgYXZhdGFyVmlld01vZGVsLmluaXRpYWxzIH19XG4gICAgPC9kaXY+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
206
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXZhdGFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYnMvdWktY29tcG9uZW50cy9hdmF0YXIvc3JjL2F2YXRhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9saWJzL3VpLWNvbXBvbmVudHMvYXZhdGFyL3NyYy9hdmF0YXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILGtCQUFrQixFQUNsQiwwQkFBMEIsRUFDMUIsa0JBQWtCLEVBQ2xCLHNCQUFzQixFQUN0QixlQUFlLEVBQ2YsZ0JBQWdCLEVBQ2hCLGlCQUFpQixFQUNqQixtQkFBbUIsRUFDbkIsZUFBZSxHQUVsQixNQUFNLHVCQUF1QixDQUFDO0FBQy9CLE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbEUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBYyxXQUFXLEVBQUUsS0FBSyxFQUFVLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlILE9BQU8sRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLEdBQUcsRUFBRSxVQUFVLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7OztBQWU1QyxNQUFNLDBCQUEwQixHQUErQjtJQUMzRCxFQUFFLEVBQUUsRUFBRTtJQUNOLEVBQUUsRUFBRSxFQUFFO0lBQ04sRUFBRSxFQUFFLEVBQUU7SUFDTixFQUFFLEVBQUUsQ0FBQztJQUNMLEVBQUUsRUFBRSxDQUFDO0lBQ0wsRUFBRSxFQUFFLENBQUM7SUFDTCxFQUFFLEVBQUUsQ0FBQztDQUNSLENBQUM7QUFFRixNQUFNLHNCQUFzQixHQUErQjtJQUN2RCxFQUFFLEVBQUUsRUFBRTtJQUNOLEVBQUUsRUFBRSxFQUFFO0lBQ04sRUFBRSxFQUFFLEVB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RFYsS0FBSztnQkFNTyxJQUFJO3NCQUFoQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBhcEZhY2Vib29rT2ZmaWNpYWwsXG4gICAgYXBHb29nbGVNeUJ1c2luZXNzT2ZmaWNpYWwsXG4gICAgYXBMaW5rZWRpbk9mZmljaWFsLFxuICAgIGFwU2hvd1RoZWF0ZXJNYXNrSGFwcHksXG4gICAgYXBTaW5nbGVOZXV0cmFsLFxuICAgIGFwVGlrdG9rT2ZmaWNpYWwsXG4gICAgYXBZb3V0dWJlT2ZmaWNpYWwsXG4gICAgYXBQaW50ZXJlc3RPZmZpY2lhbCxcbiAgICBTeW1ib2xDb21wb25lbnQsXG4gICAgU3ltYm9sUmVnaXN0cnksXG59IGZyb20gJ0BhZ29yYXB1bHNlL3VpLXN5bWJvbCc7XG5pbXBvcnQgeyBOZ0Zvck9mLCBOZ0lmLCBOZ09wdGltaXplZEltYWdlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEhvc3RCaW5kaW5nLCBJbnB1dCwgT25Jbml0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBtYXAsIE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBMZXRNb2R1bGUgfSBmcm9tICdAbmdyeC9jb21wb25lbnQnO1xuXG5leHBvcnQgdHlwZSBBdmF0YXJTaXplID0gNTYgfCA0OCB8IDQwIHwgMzYgfCAzMiB8IDI0IHwgMTY7XG5leHBvcnQgdHlwZSBBdmF0YXJOZXR3b3JrID1cbiAgICB8ICdmYWNlYm9vaydcbiAgICB8ICdpbnN0YWdyYW0nXG4gICAgfCAndHdpdHRlcidcbiAgICB8ICdsaW5rZWRpbidcbiAgICB8ICd0aWt0b2snXG4gICAgfCAneW91dHViZSdcbiAgICB8ICdwaW50ZXJlc3QnXG4gICAgfCAnZ29vZ2xlTXlCdXNpbmVzcydcbiAgICB8ICdnb29nbGUnXG4gICAgfCAnWCc7XG5cbmNvbnN0IG9ubGluZUljb25TaXplQnlBdmF0YXJTaXplOiBSZWNvcmQ8QXZhdGFyU2l6ZSwgbnVtYmVyPiA9IHtcbiAgICA1NjogMTYsXG4gICAgNDg6IDEyLFxuICAgIDQwOiAxMixcbiAgICAzNjogOCxcbiAgICAzMjogOCxcbiAgICAyNDogNixcbiAgICAxNjogNixcbn07XG5cbmNvbnN0IHN5bWJvbFNpemVCeUF2YXRhclNpemU6IFJlY29yZDxBdmF0YXJTaXplLCBudW1iZXI+ID0ge1xuICAgIDU2OiAyOCxcbiAgICA0ODogMjQsXG4gICAgNDA6IDIwLFxuICAgIDM2OiAxOCxcbiAgICAzMjogMTYsXG4gICAgMjQ6IDEyLFxuICAgIDE2OiA4LFxufTtcblxuY29uc3QgbmV0d29ya1NpemVCeUF2YXRhclNpemU6IFJlY29yZDxBdmF0YXJTaXplLCBudW1iZXI+ID0ge1xuICAgIDU2OiAxNixcbiAgICA0ODogMTYsXG4gICAgNDA6IDE2LFxuICAgIDM2OiAxNixcbiAgICAzMjogMTIsXG4gICAgMjQ6IDEyLFxuICAgIDE2OiA4LFxufTtcblxuY29uc3QgaW5pdGlhbFNpemVCeUF2YXRhclNpemU6IFJlY29yZDxBdmF0YXJTaXplLCBudW1iZXI+ID0ge1xuICAgIDU2OiAyOCxcbiAgICA0ODogMjQsXG4gICAgNDA6IDIyLFxuICAgIDM2OiAxOCxcbiAgICAzMjogMTgsXG4gICAgMjQ6IDE0LFxuICAgIDE2OiAxMCxcbn07XG5cbkBDb21wb25lbnQoe1xuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHNlbGVjdG9yOiAnYXAtYXZhdGFyJyxcbiAgICBzdHlsZVVybHM6IFsnLi9hdmF0YXIuY29tcG9uZW50LnNjc3MnXSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtOZ0lmLCBOZ0Zvck9mLCBOZ09wdGltaXplZEltYWdlLCBTeW1ib2xDb21wb25lbnQsIExldE1vZHVsZV0sXG4gICAgdGVtcGxhdGVVcmw6ICcuL2F2YXRhci5jb21wb25lbnQuaHRtbCcsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbn0pXG5leHBvcnQgY2xhc3MgQXZhdGFyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICByZWFkb25seSBuZXR3b3JrU3ltYm9sQnlOZXR3b3JrOiBSZWNvcmQ8QXZhdGFyTmV0d29yaywgc3RyaW5nPiA9IHtcbiAgICAgICAgZmFjZWJvb2s6ICdmYWNlYm9vay1vZmZpY2lhbCcsXG4gICAgICAgIGluc3RhZ3JhbTogJ2luc3RhZ3JhbS1vZmZpY2lhbCcsXG4gICAgICAgIFg6ICd4LW9mZmljaWFsJyxcbiAgICAgICAgdHdpdHRlcjogJ3gtb2ZmaWNpYWwnLFxuICAgICAgICBsaW5rZWRpbjogJ2xpbmtlZGluLW9mZmljaWFsJyxcbiAgICAgICAgdGlrdG9rOiAndGlrdG9rLW9mZmljaWFsJyxcbiAgICAgICAgeW91dHViZTogJ3lvdXR1YmUtb2ZmaWNpYWwnLFxuICAgICAgICBwaW50ZXJlc3Q6ICdwaW50ZXJlc3Qtb2ZmaWNpYWwnLFxuICAgICAgICBnb29nbGVNeUJ1c2luZXNzOiAnZ29vZ2xlLW15LWJ1c2luZXNzLW9mZmljaWFsJyxcbiAgICAgICAgZ29vZ2xlOiAnZ29vZ2xlLW15LWJ1c2luZXNzLW9mZmljaWFsJyxcbiAgICB9O1xuXG4gICAgc2l6ZSQ6IEJlaGF2aW9yU3ViamVjdDxBdmF0YXJTaXplPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QXZhdGFyU2l6ZT4oNDApO1xuICAgIHByb2ZpbGVQaWN0dXJlJDogQmVoYXZpb3JTdWJqZWN0PHN0cmluZyB8IHVuZGVmaW5lZD4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4oJycpO1xuICAgIG5ldHdvcmskOiBCZWhhdmlvclN1YmplY3Q8QXZhdGFyTmV0d29yayB8IHVuZGVmaW5lZD4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEF2YXRhck5ldHdvcms+KHVuZGVmaW5lZCk7XG5cbiAgICBwcml2YXRlIGFsdGVybmF0aXZlVGV4dCQ6IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+KCcnKTtcbiAgICBwcml2YXRlIGFub255bW91cyQ6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICAgIHByaXZhdGUgdXNlcm5hbWUkOiBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPignJyk7XG4gICAgcHJpdmF0ZSBvbmxpbmUkOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgICBwcml2YXRlIHNob3dJbml0aWFscyQ6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICAgIHByaXZhdGUgcm91bmRlZCQ6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4odHJ1ZSk7XG5cbiAgICBASW5wdXQoKSBzZXQgYWx0ZXJuYXRpdmVUZXh0KGFsdGVybmF0aXZlVGV4dDogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuYWx0ZXJuYXRpdmVUZXh0JC5uZXh0KGFsdGVybmF0aXZlVGV4dCk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IGFub255bW91cyhhbm9ueW1vdXM6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5hbm9ueW1vdXMkLm5leHQoYW5vbnltb3VzKTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgdXNlcm5hbWUodXNlcm5hbWU6IHN0cmluZykge1xuICAgICAgICB0aGlzLnVzZXJuYW1lJC5uZXh0KHVzZXJuYW1lKTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgbmV0d29yayhuZXR3b3JrOiBBdmF0YXJOZXR3b3JrIHwgdW5kZWZpbmVkKSB7XG4gICAgICAgIHRoaXMubmV0d29yayQubmV4dChuZXR3b3JrKTtcbiAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tYXAtYXZhdGFyLW5ldHdvcmstc2l6ZScsIGAke25ldHdvcmtTaXplQnlBdmF0YXJTaXplW3RoaXMuc2l6ZSQudmFsdWVdfXB4YCk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IG9ubGluZShvbmxpbmU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5vbmxpbmUkLm5leHQob25saW5lKTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgcHJvZmlsZVBpY3R1cmUocHJvZmlsZVBpY3R1cmU6IHN0cmluZyB8IHVuZGVmaW5lZCkge1xuICAgICAgICB0aGlzLnByb2ZpbGVQaWN0dXJlJC5uZXh0KHByb2ZpbGVQaWN0dXJlKTtcbiAgICAgICAgdGhpcy5pbWFnZUVycm9yJC5uZXh0KGZhbHNlKTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgc2hvd0luaXRpYWxzKHNob3dJbml0aWFsczogYm9vbGVhbikge1xuICAgICAgICB0aGlzLnNob3dJbml0aWFscyQubmV4dChzaG93SW5pdGlhbHMpO1xuICAgIH1cbiAgICBASW5wdXQoKSBhbHQ6IHN0cmluZztcblxuICAgIEBIb3N0QmluZGluZygnY2xhc3Mucm91bmRlZC1hdmF0YXInKVxuICAgIHJvdW5kZWRBdmF0YXI6IGJvb2xlYW4gPSB0cnVlO1xuXG4gICAgQElucHV0KClcbiAgICBzZXQgcm91bmRlZChyb3VuZGVkOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMucm91bmRlZEF2YXRhciA9IHJvdW5kZWQ7XG4gICAgICAgIHRoaXMucm91bmRlZCQubmV4dChyb3VuZGVkKTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgc2l6ZShzaXplOiBBdmF0YXJTaXplKSB7XG4gICAgICAgIHRoaXMuc2l6ZSQubmV4dChzaXplKTtcbiAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tYXAtYXZhdGFyLXNpemUnLCBgJHtzaXplfXB4YCk7XG4gICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLWFwLWF2YXRhci1zeW1ib2wtc2l6ZScsIGAke3N5bWJvbFNpemVCeUF2YXRhclNpemVbc2l6ZV19cHhgKTtcbiAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tYXAtYXZhdGFyLW9ubGluZS1pY29uLXNpemUnLCBgJHtvbmxpbmVJY29uU2l6ZUJ5QXZhdGFyU2l6ZVtzaXplXX1weGApO1xuICAgIH1cblxuICAgIGRpc3BsYXlQcm9maWxlUGljdHVyZSQ6IE9ic2VydmFibGU8Ym9vbGVhbj4gPSBuZXcgT2JzZXJ2YWJsZTxib29sZWFuPigpO1xuICAgIGRpc3BsYXlTaW5nbGVOZXV0cmFsU3ZnJDogT2JzZXJ2YWJsZTxib29sZWFuPiA9IG5ldyBPYnNlcnZhYmxlPGJvb2xlYW4+KCk7XG4gICAgZGlzcGxheUluaXRpYWxzJDogT2JzZXJ2YWJsZTxib29sZWFuPiA9IG5ldyBPYnNlcnZhYmxlPGJvb2xlYW4+KCk7XG4gICAgZGlzcGxheUFub255bW91cyQ6IE9ic2VydmFibGU8Ym9vbGVhbj4gPSBuZXcgT2JzZXJ2YWJsZTxib29sZWFuPigpO1xuICAgIGRpc3BsYXlOZXR3b3JrJDogT2JzZXJ2YWJsZTxib29sZWFuPiA9IG5ldyBPYnNlcnZhYmxlPGJvb2xlYW4+KCk7XG4gICAgZGlzcGxheU9ubGluZSQ6IE9ic2VydmFibGU8Ym9vbGVhbj4gPSBuZXcgT2JzZXJ2YWJsZTxib29sZWFuPigpO1xuICAgIGltYWdlRXJyb3IkOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgICBpbml0aWFscyQ6IE9ic2VydmFibGU8c3RyaW5nPiA9IG5ldyBPYnNlcnZhYmxlPHN0cmluZz4oKTtcbiAgICBpbml0aWFsc0F2YWlsYWJsZSQ6IE9ic2VydmFibGU8Ym9vbGVhbj4gPSBvZihmYWxzZSk7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHN5bWJvbFJlZ2lzdHJ5OiBTeW1ib2xSZWdpc3RyeSwgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmKSB7XG4gICAgICAgIHRoaXMuc3ltYm9sUmVnaXN0cnkucmVnaXN0ZXJTeW1ib2xzKFtcbiAgICAgICAgICAgIGFwU2luZ2xlTmV1dHJhbCxcbiAgICAgICAgICAgIGFwU2hvd1RoZWF0ZXJNYXNrSGFwcHksXG4gICAgICAgICAgICBhcEZhY2Vib29rT2ZmaWNpYWwsXG4gICAgICAgICAgICBhcExpbmtlZGluT2ZmaWNpYWwsXG4gICAgICAgICAgICBhcFlvdXR1YmVPZmZpY2lhbCxcbiAgICAgICAgICAgIGFwVGlrdG9rT2ZmaWNpYWwsXG4gICAgICAgICAgICBhcEdvb2dsZU15QnVzaW5lc3NPZmZpY2lhbCxcbiAgICAgICAgICAgIGFwUGludGVyZXN0T2ZmaWNpYWwsXG4gICAgICAgIF0pO1xuICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1hcC1hdmF0YXItc2l6ZScsIGA0MHB4YCk7XG4gICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLWFwLWF2YXRhci1zeW1ib2wtc2l6ZScsIGAke3N5bWJvbFNpemVCeUF2YXRhclNpemVbdGhpcy5zaXplJC52YWx1ZV19cHhgKTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pbml0aWFsc0F2YWlsYWJsZSQgPSB0aGlzLnVzZXJuYW1lJC5waXBlKFxuICAgICAgICAgICAgbWFwKHVzZXJuYW1lID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gISF1c2VybmFtZTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5kaXNwbGF5UHJvZmlsZVBpY3R1cmUkID0gY29tYmluZUxhdGVzdChbdGhpcy5wcm9maWxlUGljdHVyZSQsIHRoaXMuYW5vbnltb3VzJCwgdGhpcy5pbWFnZUVycm9yJCwgdGhpcy5zaG93SW5pdGlhbHMkXSkucGlwZShcbiAgICAgICAgICAgIG1hcCgoW3Byb2ZpbGVQaWN0dXJlLCBhbm9ueW1vdXMsIGltYWdlRXJyb3JdKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICEhcHJvZmlsZVBpY3R1cmUgJiYgIWFub255bW91cyAmJiAhaW1hZ2VFcnJvcjtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5kaXNwbGF5SW5pdGlhbHMkID0gY29tYmluZUxhdGVzdChbXG4gICAgICAgICAgICB0aGlzLnNob3dJbml0aWFscyQsXG4gICAgICAgICAgICB0aGlzLmFub255bW91cyQsXG4gICAgICAgICAgICB0aGlzLmluaXRpYWxzQXZhaWxhYmxlJCxcbiAgICAgICAgICAgIHRoaXMuZGlzcGxheVByb2ZpbGVQaWN0dXJlJCxcbiAgICAgICAgXSkucGlwZShcbiAgICAgICAgICAgIG1hcCgoW3Nob3dJbml0aWFscywgYW5vbnltb3VzLCBpbml0aWFsc0F2YWlsYWJsZSwgZGlzcGxheVByb2ZpbGVQaWN0dXJlXSkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiBzaG93SW5pdGlhbHMgJiYgIWFub255bW91cyAmJiBpbml0aWFsc0F2YWlsYWJsZSAmJiAhZGlzcGxheVByb2ZpbGVQaWN0dXJlO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLmRpc3BsYXlTaW5nbGVOZXV0cmFsU3ZnJCA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgICAgICAgdGhpcy5wcm9maWxlUGljdHVyZSQsXG4gICAgICAgICAgICB0aGlzLmltYWdlRXJyb3IkLFxuICAgICAgICAgICAgdGhpcy5pbml0aWFsc0F2YWlsYWJsZSQsXG4gICAgICAgICAgICB0aGlzLnNob3dJbml0aWFscyQsXG4gICAgICAgICAgICB0aGlzLmFub255bW91cyQsXG4gICAgICAgICAgICB0aGlzLmRpc3BsYXlJbml0aWFscyQsXG4gICAgICAgICAgICB0aGlzLmRpc3BsYXlQcm9maWxlUGljdHVyZSQsXG4gICAgICAgIF0pLnBpcGUoXG4gICAgICAgICAgICBtYXAoKFtwcm9maWxlUGljdHVyZSwgaW1hZ2VFcnJvciwgaW5pdGlhbHNBdmFpbGFibGUsIHNob3dJbml0aWFscywgYW5vbnltb3VzLCBkaXNwbGF5SW5pdGlhbHMsIGRpc3BsYXlQcm9maWxlUGljdHVyZV0pID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAoIXByb2ZpbGVQaWN0dXJlIHx8IGltYWdlRXJyb3IgfHwgIWluaXRpYWxzQXZhaWxhYmxlIHx8IChpbml0aWFsc0F2YWlsYWJsZSAmJiAhc2hvd0luaXRpYWxzKSkgJiZcbiAgICAgICAgICAgICAgICAgICAgIWFub255bW91cyAmJlxuICAgICAgICAgICAgICAgICAgICAhZGlzcGxheUluaXRpYWxzICYmXG4gICAgICAgICAgICAgICAgICAgICFkaXNwbGF5UHJvZmlsZVBpY3R1cmVcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLmRpc3BsYXlBbm9ueW1vdXMkID0gY29tYmluZUxhdGVzdChbdGhpcy5hbm9ueW1vdXMkLCB0aGlzLnJvdW5kZWQkXSkucGlwZShcbiAgICAgICAgICAgIG1hcCgoW2Fub255bW91cywgcm91bmRlZF0pID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gYW5vbnltb3VzICYmIHJvdW5kZWQ7XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMuZGlzcGxheU9ubGluZSQgPSBjb21iaW5lTGF0ZXN0KFt0aGlzLm9ubGluZSQsIHRoaXMucm91bmRlZCRdKS5waXBlKFxuICAgICAgICAgICAgbWFwKChbb25saW5lLCByb3VuZGVkXSkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiBvbmxpbmUgJiYgcm91bmRlZDtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5kaXNwbGF5TmV0d29yayQgPSBjb21iaW5lTGF0ZXN0KFt0aGlzLm5ldHdvcmskLCB0aGlzLnJvdW5kZWQkXSkucGlwZShcbiAgICAgICAgICAgIG1hcCgoW25ldHdvcmssIHJvdW5kZWRdKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICEhbmV0d29yayAmJiByb3VuZGVkO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLmluaXRpYWxzJCA9IGNvbWJpbmVMYXRlc3QoW3RoaXMuZGlzcGxheUluaXRpYWxzJCwgdGhpcy51c2VybmFtZSRdKS5waXBlKFxuICAgICAgICAgICAgbWFwKChbZGlzcGxheUluaXRpYWxzLCB1c2VybmFtZV0pID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoKGRpc3BsYXlJbml0aWFscyAmJiAhdXNlcm5hbWUpIHx8ICFkaXNwbGF5SW5pdGlhbHMpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICcnO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eShcbiAgICAgICAgICAgICAgICAgICAgJy0tYXAtYXZhdGFyLWluaXRpYWxzLXNpemUnLFxuICAgICAgICAgICAgICAgICAgICBgJHtpbml0aWFsU2l6ZUJ5QXZhdGFyU2l6ZVt0aGlzLnNpemUkLnZhbHVlXX1weGBcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIGNvbnN0IG5hbWVzID0gdXNlcm5hbWU/LnNwbGl0KCcgJyk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGAke25hbWVzWzBdLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpfWA7XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIG9uSW1hZ2VFcnJvcigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pbWFnZUVycm9yJC5uZXh0KHRydWUpO1xuICAgIH1cbn1cbiIsIjxuZy1jb250YWluZXJcbiAgICAqbmdyeExldD1cIntcbiAgICAgICAgZGlzcGxheVByb2ZpbGVQaWN0dXJlOiBkaXNwbGF5UHJvZmlsZVBpY3R1cmUkLFxuICAgICAgICBkaXNwbGF5U2luZ2xlTmV1dHJhbFN2ZzogZGlzcGxheVNpbmdsZU5ldXRyYWxTdmckLFxuICAgICAgICBkaXNwbGF5SW5pdGlhbHM6IGRpc3BsYXlJbml0aWFscyQsXG4gICAgICAgIGRpc3BsYXlBbm9ueW1vdXM6IGRpc3BsYXlBbm9ueW1vdXMkLFxuICAgICAgICBkaXNwbGF5T25saW5lOiBkaXNwbGF5T25saW5lJCxcbiAgICAgICAgZGlzcGxheU5ldHdvcms6IGRpc3BsYXlOZXR3b3JrJCxcbiAgICAgICAgaW5pdGlhbHM6IGluaXRpYWxzJCxcbiAgICAgICAgcHJvZmlsZVBpY3R1cmU6IHByb2ZpbGVQaWN0dXJlJCxcbiAgICAgICAgc2l6ZTogc2l6ZSQsXG4gICAgICAgIG5ldHdvcms6IG5ldHdvcmskXG4gICAgfSBhcyBhdmF0YXJWaWV3TW9kZWxcIj5cbiAgICA8aW1nXG4gICAgICAgICpuZ0lmPVwiYXZhdGFyVmlld01vZGVsLmRpc3BsYXlQcm9maWxlUGljdHVyZVwiXG4gICAgICAgIFtzcmNdPVwiYXZhdGFyVmlld01vZGVsLnByb2ZpbGVQaWN0dXJlXCJcbiAgICAgICAgW3dpZHRoXT1cImF2YXRhclZpZXdNb2RlbC5zaXplXCJcbiAgICAgICAgW2hlaWdodF09XCJhdmF0YXJWaWV3TW9kZWwuc2l6ZVwiXG4gICAgICAgIFthbHRdPVwiYWx0XCJcbiAgICAgICAgKGVycm9yKT1cIm9uSW1hZ2VFcnJvcigpXCIgLz5cbiAgICA8ZGl2XG4gICAgICAgICpuZ0lmPVwiYXZhdGFyVmlld01vZGVsLmRpc3BsYXlTaW5nbGVOZXV0cmFsU3ZnXCJcbiAgICAgICAgY2xhc3M9XCJuby1wcm9maWxlLXBpY3R1cmVcIj5cbiAgICAgICAgPGFwLXN5bWJvbCBzeW1ib2xJZD1cInNpbmdsZS1uZXV0cmFsXCI+PC9hcC1zeW1ib2w+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2XG4gICAgICAgICpuZ0lmPVwiYXZhdGFyVmlld01vZGVsLmRpc3BsYXlBbm9ueW1vdXNcIlxuICAgICAgICBjbGFzcz1cImFub255bW91c1wiPlxuICAgICAgICA8YXAtc3ltYm9sIHN5bWJvbElkPVwic2hvdy10aGVhdGVyLW1hc2staGFwcHlcIj48L2FwLXN5bWJvbD5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2XG4gICAgICAgICpuZ0lmPVwiYXZhdGFyVmlld01vZGVsLmRpc3BsYXlPbmxpbmVcIlxuICAgICAgICBjbGFzcz1cIm9ubGluZVwiPjwvZGl2PlxuICAgIDxkaXZcbiAgICAgICAgKm5nSWY9XCJhdmF0YXJWaWV3TW9kZWwuZGlzcGxheU5ldHdvcmtcIlxuICAgICAgICBjbGFzcz1cIm5ldHdvcmtcIlxuICAgICAgICBbY2xhc3MuZmFjZWJvb2tdPVwiYXZhdGFyVmlld01vZGVsLm5ldHdvcmsgPT09ICdmYWNlYm9vaydcIlxuICAgICAgICBbY2xhc3MubGlua2VkaW5dPVwiYXZhdGFyVmlld01vZGVsLm5ldHdvcmsgPT09ICdsaW5rZWRpbidcIlxuICAgICAgICBbY2xhc3MudHdpdHRlcl09XCJhdmF0YXJWaWV3TW9kZWwubmV0d29yayA9PT0gJ3R3aXR0ZXInXCJcbiAgICAgICAgW2NsYXNzLnhdPVwiYXZhdGFyVmlld01vZGVsLm5ldHdvcmsgPT09ICdYJ1wiXG4gICAgICAgIFtjbGFzcy55b3V0dWJlXT1cImF2YXRhclZpZXdNb2RlbC5uZXR3b3JrID09PSAneW91dHViZSdcIlxuICAgICAgICBbY2xhc3MuZ29vZ2xlTXlCdXNpbmVzc109XCJhdmF0YXJWaWV3TW9kZWwubmV0d29yayA9PT0gJ2dvb2dsZU15QnVzaW5lc3MnIHx8IGF2YXRhclZpZXdNb2RlbC5uZXR3b3JrID09PSAnZ29vZ2xlJ1wiXG4gICAgICAgIFtjbGFzcy5pbnN0YWdyYW1dPVwiYXZhdGFyVmlld01vZGVsLm5ldHdvcmsgPT09ICdpbnN0YWdyYW0nXCJcbiAgICAgICAgW2NsYXNzLnRpa3Rva109XCJhdmF0YXJWaWV3TW9kZWwubmV0d29yayA9PT0gJ3Rpa3RvaydcIj5cbiAgICAgICAgPGFwLXN5bWJvbCBbc3ltYm9sSWRdPVwibmV0d29ya1N5bWJvbEJ5TmV0d29ya1thdmF0YXJWaWV3TW9kZWwubmV0d29ya11cIj48L2FwLXN5bWJvbD5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXZcbiAgICAgICAgKm5nSWY9XCJhdmF0YXJWaWV3TW9kZWwuZGlzcGxheUluaXRpYWxzXCJcbiAgICAgICAgY2xhc3M9XCJpbml0aWFsc1wiPlxuICAgICAgICB7eyBhdmF0YXJWaWV3TW9kZWwuaW5pdGlhbHMgfX1cbiAgICA8L2Rpdj5cbjwvbmctY29udGFpbmVyPlxuIl19
@@ -154,7 +154,7 @@ export class DatepickerComponent {
154
154
  }
155
155
  onStartDateChanged(event) {
156
156
  const date = event.startDate.toDate();
157
- const dateLocalTime = new Date(date.getTime() + date.getTimezoneOffset() * 60000);
157
+ const dateLocalTime = new Date(date.getTime());
158
158
  const dayJsDate = dayjs(dateLocalTime);
159
159
  if (this.mode !== DatepickerMode.Range) {
160
160
  this.selectedDate = dayJsDate;
@@ -176,9 +176,9 @@ export class DatepickerComponent {
176
176
  onDatesUpdated(event) {
177
177
  if (this.mode === DatepickerMode.Range) {
178
178
  const startDate = event.startDate?.toDate();
179
- const startDateLocalTime = new Date(startDate.getTime() + startDate.getTimezoneOffset() * 60000);
179
+ const startDateLocalTime = new Date(startDate.getTime());
180
180
  const endDate = event.endDate?.toDate();
181
- const endDateLocalTime = new Date(endDate.getTime() + endDate.getTimezoneOffset() * 60000);
181
+ const endDateLocalTime = new Date(endDate.getTime());
182
182
  this.periodSelected.emit({
183
183
  startDate: dayjs(startDateLocalTime).startOf('day'),
184
184
  endDate: dayjs(endDateLocalTime).endOf('day'),
@@ -256,4 +256,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.2", ngImpor
256
256
  }], periodSelected: [{
257
257
  type: Output
258
258
  }] } });
259
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXBpY2tlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzL3VpLWNvbXBvbmVudHMvZGF0ZXBpY2tlci9zcmMvZGF0ZXBpY2tlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9saWJzL3VpLWNvbXBvbmVudHMvZGF0ZXBpY2tlci9zcmMvZGF0ZXBpY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsd0JBQXdCLEVBQUUsWUFBWSxFQUFFLGFBQWEsRUFBaUIsTUFBTSx1QkFBdUIsQ0FBQztBQUM1RyxPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDckMsT0FBTyxFQUVILHVCQUF1QixFQUV2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEVBQ04sU0FBUyxHQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBMkIsb0JBQW9CLEVBQUMsTUFBTSwwQ0FBMEMsQ0FBQztBQUN4RyxPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDMUIsT0FBTyxpQkFBaUIsQ0FBQztBQUN6QixPQUFPLGlCQUFpQixDQUFDO0FBQ3pCLE9BQU8saUJBQWlCLENBQUM7QUFDekIsT0FBTyxpQkFBaUIsQ0FBQztBQUN6QixPQUFPLGlCQUFpQixDQUFDO0FBQ3pCLE9BQU8sVUFBVSxNQUFNLHlCQUF5QixDQUFDOzs7O0FBRWpELE1BQU0sQ0FBTixJQUFZLGNBSVg7QUFKRCxXQUFZLGNBQWM7SUFDdEIsbUNBQWlCLENBQUE7SUFDakIsdUNBQXFCLENBQUE7SUFDckIsaUNBQWUsQ0FBQTtBQUNuQixDQUFDLEVBSlcsY0FBYyxLQUFkLGNBQWMsUUFJekI7QUFxQkQsSUFBSyxRQUdKO0FBSEQsV0FBSyxRQUFRO0lBQ1QseUJBQWEsQ0FBQTtJQUNiLDJCQUFlLENBQUE7QUFDbkIsQ0FBQyxFQUhJLFFBQVEsS0FBUixRQUFRLFFB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QkFBaUIsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUMzQyxDQUFDO0lBRUQsUUFBUTtRQUNKLElBQUksQ0FBQyxLQUFLO1lBQ04sSUFBSSxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLGNBQWMsQ0FBQyxLQUFLO2dCQUNqRCxDQUFDLENBQUMsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQyxnQkFBZ0I7Z0JBQ2xELENBQUMsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUM7SUFDdkMsQ0FBQzs7Z0hBMU5RLG1CQUFtQjtvR0FBbkIsbUJBQW1CLHloQkM5RGhDLHMzREE0Q0Esb3RZRGVjLHdCQUF3QixpS0FBRSxJQUFJLDRGQUFFLG9CQUFvQjsyRkFHckQsbUJBQW1CO2tCQVIvQixTQUFTO3NDQUNXLHVCQUF1QixDQUFDLE1BQU0sWUFDckMsZUFBZSxjQUViLElBQUksV0FDUCxDQUFDLHdCQUF3QixFQUFFLElBQUksRUFBRSxvQkFBb0IsQ0FBQztxSUFJbkMsYUFBYTtzQkFBeEMsU0FBUzt1QkFBQyxlQUFlO2dCQUVqQixjQUFjO3NCQUF0QixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFTRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ08sT0FBTztzQkFBbkIsS0FBSztnQkFPTyxPQUFPO3NCQUFuQixLQUFLO2dCQU9HLElBQUk7c0JBQVosS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUVJLFlBQVk7c0JBQXJCLE1BQU07Z0JBQ0csY0FBYztzQkFBdkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QWdvcmFwdWxzZVVpU3ltYm9sTW9kdWxlLCBhcEFycm93TGVmdDEsIGFwQXJyb3dSaWdodDEsIFN5bWJvbFJlZ2lzdHJ5fSBmcm9tICdAYWdvcmFwdWxzZS91aS1zeW1ib2wnO1xuaW1wb3J0IHtOZ0lmfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSW5wdXQsXG4gICAgT25DaGFuZ2VzLFxuICAgIE9uSW5pdCxcbiAgICBPdXRwdXQsXG4gICAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7RGF0ZXJhbmdlcGlja2VyQ29tcG9uZW50LCBOZ3hEYXRlcmFuZ2VwaWNrZXJNZH0gZnJvbSAnQGFnb3JhcHVsc2Uvbmd4LWRhdGVyYW5nZXBpY2tlci1tYXRlcmlhbCc7XG5pbXBvcnQgZGF5anMgZnJvbSAnZGF5anMnO1xuaW1wb3J0ICdkYXlqcy9sb2NhbGUvZGUnO1xuaW1wb3J0ICdkYXlqcy9sb2NhbGUvZW4nO1xuaW1wb3J0ICdkYXlqcy9sb2NhbGUvZXMnO1xuaW1wb3J0ICdkYXlqcy9sb2NhbGUvZnInO1xuaW1wb3J0ICdkYXlqcy9sb2NhbGUvcHQnO1xuaW1wb3J0IGxvY2FsZURhdGEgZnJvbSAnZGF5anMvcGx1Z2luL2xvY2FsZURhdGEnO1xuXG5leHBvcnQgZW51bSBEYXRlcGlja2VyTW9kZSB7XG4gICAgU2luZ2xlID0gJ1NpbmdsZScsXG4gICAgTXVsdGlwbGUgPSAnTXVsdGlwbGUnLFxuICAgIFJhbmdlID0gJ1JhbmdlJyxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQZXJpb2Qge1xuICAgIHN0YXJ0RGF0ZT86IGRheWpzLkRheWpzO1xuICAgIGVuZERhdGU/OiBkYXlqcy5EYXlqcztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTdGFydERhdGUge1xuICAgIHN0YXJ0RGF0ZTogZGF5anMuRGF5anM7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSTE4bkRhdGVQaWNrZXIge1xuICAgIHJhbmdlczoge1xuICAgICAgICB5ZXN0ZXJkYXk6IHN0cmluZztcbiAgICAgICAgbGFzdFdlZWs6IHN0cmluZztcbiAgICAgICAgbGFzdDMwRGF5czogc3RyaW5nO1xuICAgICAgICBsYXN0TW9udGg6IHN0cmluZztcbiAgICAgICAgdGhpc01vbnRoOiBzdHJpbmc7XG4gICAgfVxufVxuXG5lbnVtIFNpZGVFbnVtIHtcbiAgICBsZWZ0ID0gXCJsZWZ0XCIsXG4gICAgcmlnaHQgPSBcInJpZ2h0XCJcbn1cblxuLy8gVE9ETyBmaXggY3NzIGZvciByYW5nZSBtb2RlIChtb3JlIGxhdGVyYWwgcGFkZGluZylcbkBDb21wb25lbnQoe1xuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHNlbGVjdG9yOiAnYXAtZGF0ZXBpY2tlcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2RhdGVwaWNrZXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW0Fnb3JhcHVsc2VVaVN5bWJvbE1vZHVsZSwgTmdJZiwgTmd4RGF0ZXJhbmdlcGlja2VyTWRdLFxuICAgIHN0eWxlVXJsczogWycuL2RhdGVwaWNrZXIuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgRGF0ZXBpY2tlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBBZnRlclZpZXdJbml0IHtcbiAgICBAVmlld0NoaWxkKCdkYXRlcGlja2VyUmVmJykgZGF0ZXBpY2tlclJlZjogRGF0ZXJhbmdlcGlja2VyQ29tcG9uZW50O1xuXG4gICAgQElucHV0KCkgZmlyc3REYXlPZldlZWs6IHN0cmluZztcbiAgICBASW5wdXQoKSBpMThuOiBJMThuRGF0ZVBpY2tlciA9IHtcbiAgICAgICAgcmFuZ2VzOiB7XG4gICAgICAgICAgICB5ZXN0ZXJkYXk6ICdZZXN0ZXJkYXknLFxuICAgICAgICAgICAgbGFzdFdlZWs6ICdMYXN0IFdlZWsnLFxuICAgICAgICAgICAgbGFzdDMwRGF5czogJ0xhc3QgMzAgZGF5cycsXG4gICAgICAgICAgICBsYXN0TW9udGg6ICdQcmV2aW91cyBtb250aCcsXG4gICAgICAgICAgICB0aGlzTW9udGg6ICdUaGlzIE1vbnRoJyxcbiAgICAgICAgfSxcbiAgICB9O1xuICAgIEBJbnB1dCgpIGxvY2FsZTtcbiAgICBASW5wdXQoKSBzZXQgbWF4RGF0ZShtYXhEYXRlOiBkYXlqcy5EYXlqcykge1xuICAgICAgICBpZiAobWF4RGF0ZSkge1xuICAgICAgICAgICAgdGhpcy5tYXhEYXRlU3RyID0gbWF4RGF0ZS50b0lTT1N0cmluZygpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5tYXhEYXRlU3RyID0gbnVsbDtcbiAgICAgICAgfSAgICAgICAgIFxuICAgIH1cbiAgICBASW5wdXQoKSBzZXQgbWluRGF0ZShtaW5EYXRlOiBkYXlqcy5EYXlqcykge1xuICAgICAgICBpZiAobWluRGF0ZSkge1xuICAgICAgICAgICAgdGhpcy5taW5EYXRlU3RyID0gbWluRGF0ZS50b0lTT1N0cmluZygpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5taW5EYXRlU3RyID0gbnVsbDtcbiAgICAgICAgfSAgICAgICAgIFxuICAgIH1cbiAgICBASW5wdXQoKSBtb2RlOiBEYXRlcGlja2VyTW9kZTtcbiAgICBASW5wdXQoKSBzZWxlY3RlZERhdGU6IGRheWpzLkRheWpzO1xuICAgIEBJbnB1dCgpIHNlbGVjdGVkRGF0ZXM6IGRheWpzLkRheWpzW10gPSBbXTtcbiAgICBASW5wdXQoKSBzZWxlY3RlZFBlcmlvZDogUGVyaW9kID0ge3N0YXJ0RGF0ZTogbnVsbCwgZW5kRGF0ZTogbnVsbH07XG4gICAgQElucHV0KCkgc2hvd1JhbmdlczogYm9vbGVhbjtcblxuICAgIEBPdXRwdXQoKSBkYXRlU2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgICBAT3V0cHV0KCkgcGVyaW9kU2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPFBlcmlvZD4oKTtcblxuICAgIERhdGVwaWNrZXJNb2RlID0gRGF0ZXBpY2tlck1vZGU7XG4gICAgZG91YmxlQ2FsZW5kYXJXaWR0aCA9IDUyODsgLy8gMjMxcHggY2FsZW5kYXIgdGFibGUgKiAyID0gNDYyICgrIDE2cHggeC1wYWRkaW5nICogNCA9IDY0KVxuICAgIGxvY2FsZUNvbmZpZzoge1xuICAgICAgICBjdXN0b21SYW5nZUxhYmVsOiBzdHJpbmc7XG4gICAgICAgIGRheXNPZldlZWs6IHN0cmluZ1tdO1xuICAgICAgICBtb250aE5hbWVzOiBzdHJpbmdbXTtcbiAgICAgICAgZmlyc3REYXk6IG51bWJlcjtcbiAgICB9O1xuICAgIHJhbmdlczoge1twZXJpb2Q6IHN0cmluZ106IFtkYXlqcy5EYXlqcywgZGF5anMuRGF5anNdfSA9IHt9O1xuICAgIHJhbmdlUGlja2VyV2lkdGggPSAxNTA7XG4gICAgd2lkdGg6IG51bWJlcjtcbiAgICBwYWdlU2V0ID0gZmFsc2U7XG4gICAgbWF4RGF0ZVN0cjogc3RyaW5nO1xuICAgIG1pbkRhdGVTdHI6IHN0cmluZztcbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICAgICAgICAgIHB1YmxpYyBzeW1ib2xSZWdpc3RyeTogU3ltYm9sUmVnaXN0cnkpIHtcbiAgICAgICAgdGhpcy5zeW1ib2xSZWdpc3RyeS5yZWdpc3RlclN5bWJvbHMoW1xuICAgICAgICAgICAgYXBBcnJvd0xlZnQxLFxuICAgICAgICAgICAgYXBBcnJvd1JpZ2h0MVxuICAgICAgICBdKTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgZGF5anMuZXh0ZW5kKGxvY2FsZURhdGEpO1xuICAgICAgICB0aGlzLmluaXRSYW5nZXMoKTtcbiAgICAgICAgdGhpcy5pbml0RGF0ZVBpY2tlckxvY2FsZSgpO1xuICAgIH1cblxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXMpIHtcbiAgICAgICAgdGhpcy5zZXRXaWR0aCgpO1xuICAgICAgICBpZiAodGhpcy5kYXRlcGlja2VyUmVmKSB7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmRhdGVwaWNrZXJSZWYudXBkYXRlQ2FsZW5kYXJzKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgICB9LCAxMDApO1xuICAgICAgICB9XG4gICAgICAgIGlmIChjaGFuZ2VzLnNlbGVjdGVkUGVyaW9kPy5jdXJyZW50VmFsdWUgJiYgdGhpcy5kYXRlcGlja2VyUmVmKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5zZWxlY3RlZFBlcmlvZC5zdGFydERhdGUgPT09IG51bGwgJiYgdGhpcy5zZWxlY3RlZFBlcmlvZC5lbmREYXRlID09PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5kYXRlcGlja2VyUmVmLmNsZWFyKCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuZGF0ZXBpY2tlclJlZi5zZXRTdGFydERhdGUodGhpcy5zZWxlY3RlZFBlcmlvZC5zdGFydERhdGUpO1xuICAgICAgICAgICAgICAgIHRoaXMuZGF0ZXBpY2tlclJlZi5zZXRFbmREYXRlKHRoaXMuc2VsZWN0ZWRQZXJpb2QuZW5kRGF0ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNoYW5nZXMubW9kZT8uY3VycmVudFZhbHVlID09PSBEYXRlcGlja2VyTW9kZS5TaW5nbGUgJiYgdGhpcy5kYXRlcGlja2VyUmVmKSB7XG4gICAgICAgICAgICB0aGlzLnNldENhbGVuZGFyQ3VycmVudFBhZ2UoKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmRhdGVwaWNrZXJSZWYpIHtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuZGF0ZXBpY2tlclJlZi51cGRhdGVDYWxlbmRhcnMoKTtcbiAgICAgICAgICAgICAgICB0aGlzLnNldENhbGVuZGFyQ3VycmVudFBhZ2UoKTtcbiAgICAgICAgICAgIH0sIDEwMCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBpbml0RGF0ZVBpY2tlckxvY2FsZSgpIHtcbiAgICAgICAgaWYgKHRoaXMubG9jYWxlKSB7XG4gICAgICAgICAgICBkYXlqcy5sb2NhbGUodGhpcy5sb2NhbGUpO1xuICAgICAgICB9XG4gICAgICAgIGxldCBmaXJzdERheU9mV2Vla0luZGV4OiBudW1iZXI7XG4gICAgICAgIGlmICh0aGlzLmZpcnN0RGF5T2ZXZWVrID09PSAnc3VuZGF5Jykge1xuICAgICAgICAgICAgZmlyc3REYXlPZldlZWtJbmRleCA9IDA7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5maXJzdERheU9mV2VlayA9PT0gJ21vbmRheScpIHtcbiAgICAgICAgICAgIGZpcnN0RGF5T2ZXZWVrSW5kZXggPSAxO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZmlyc3REYXlPZldlZWtJbmRleCA9IGRheWpzLmxvY2FsZURhdGEoKS5maXJzdERheU9mV2VlaygpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMubG9jYWxlQ29uZmlnID0ge1xuICAgICAgICAgICAgY3VzdG9tUmFuZ2VMYWJlbDogJ2N1c3RvbScsXG4gICAgICAgICAgICBkYXlzT2ZXZWVrOiBkYXlqcy53ZWVrZGF5c01pbigpLFxuICAgICAgICAgICAgbW9udGhOYW1lczogZGF5anMubW9udGhzKCksXG4gICAgICAgICAgICBmaXJzdERheTogZmlyc3REYXlPZldlZWtJbmRleCxcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBpbml0UmFuZ2VzKCkge1xuICAgICAgICB0aGlzLnJhbmdlc1t0aGlzLmkxOG4ucmFuZ2VzLnllc3RlcmRheV0gPSBbZGF5anMoKS5zdWJ0cmFjdCgxLCAnZGF5cycpLCBkYXlqcygpLnN1YnRyYWN0KDEsICdkYXlzJyldO1xuICAgICAgICB0aGlzLnJhbmdlc1t0aGlzLmkxOG4ucmFuZ2VzLmxhc3RXZWVrXSA9IFtkYXlqcygpLnN1YnRyYWN0KDcsICdkYXlzJyksIGRheWpzKCkuc3VidHJhY3QoMSwgJ2RheXMnKV07XG4gICAgICAgIHRoaXMucmFuZ2VzW3RoaXMuaTE4bi5yYW5nZXMubGFzdDMwRGF5c10gPSBbZGF5anMoKS5zdWJ0cmFjdCgzMCwgJ2RheXMnKSwgZGF5anMoKS5zdWJ0cmFjdCgxLCAnZGF5cycpXTtcbiAgICAgICAgdGhpcy5yYW5nZXNbdGhpcy5pMThuLnJhbmdlcy5sYXN0TW9udGhdID0gW1xuICAgICAgICAgICAgZGF5anMoKS5zdWJ0cmFjdCgxLCAnbW9udGgnKS5zdGFydE9mKCdtb250aCcpLFxuICAgICAgICAgICAgZGF5anMoKS5zdWJ0cmFjdCgxLCAnbW9udGgnKS5lbmRPZignbW9udGgnKSxcbiAgICAgICAgXTtcbiAgICAgICAgdGhpcy5yYW5nZXNbdGhpcy5pMThuLnJhbmdlcy50aGlzTW9udGhdID0gW2RheWpzKCkuc3RhcnRPZignbW9udGgnKSwgZGF5anMoKS5lbmRPZignbW9udGgnKV07XG4gICAgfVxuXG4gICAgaXNDdXN0b21EYXRlID0gKGRhdGU6IGFueSkgPT4ge1xuICAgICAgICBjb25zdCBjbGFzc2VzOiBzdHJpbmdbXSA9IFtdO1xuICAgICAgICBpZiAodGhpcy5tb2RlID09PSBEYXRlcGlja2VyTW9kZS5NdWx0aXBsZSkge1xuICAgICAgICAgICAgY2xhc3Nlcy5wdXNoKHRoaXMuaXNTZWxlY3RlZChkYXRlKSA/ICdhY3RpdmUnIDogJ2ZvcmNlLWluYWN0aXZlJyk7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5tb2RlID09PSBEYXRlcGlja2VyTW9kZS5TaW5nbGUpIHtcbiAgICAgICAgICAgIGNsYXNzZXMucHVzaCh0aGlzLnNlbGVjdGVkRGF0ZSAmJiB0aGlzLnNlbGVjdGVkRGF0ZS5pc1NhbWUoZGF0ZSwgJ2RheScpID8gJ2FjdGl2ZScgOiAnZm9yY2UtaW5hY3RpdmUnKTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLm1vZGUgPT09IERhdGVwaWNrZXJNb2RlLlJhbmdlKSB7XG4gICAgICAgICAgICBjbGFzc2VzLnB1c2goJ3JhbmdlLXBpY2tlci1tb2RlJyk7XG4gICAgICAgICAgICAvLyBXb3JrYXJvdW5kIHRvIGZpeCB0aGUgYXV0by1hY3RpdmUgdG9kYXkgZGF0ZSB3aGVuIG5vIGRhdGUgaXMgc2VsZWN0ZWRcbiAgICAgICAgICAgIGlmIChkYXlqcygpLmlzU2FtZShkYXRlLCAnZGF5JykgJiYgIXRoaXMuc2VsZWN0ZWRQZXJpb2Q/LnN0YXJ0RGF0ZSAmJiAhdGhpcy5zZWxlY3RlZFBlcmlvZD8uZW5kRGF0ZSkge1xuICAgICAgICAgICAgICAgIGNsYXNzZXMucHVzaCgnZm9yY2UtaW5hY3RpdmUnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gY2xhc3NlcztcbiAgICB9O1xuXG4gICAgcHJpdmF0ZSBpc1NlbGVjdGVkKGRhdGU6IGFueSkge1xuICAgICAgICByZXR1cm4gdGhpcy5zZWxlY3RlZERhdGVzICYmIHRoaXMuc2VsZWN0ZWREYXRlcy5zb21lKHNlbGVjdGVkRGF0ZSA9PiBzZWxlY3RlZERhdGUuaXNTYW1lKGRhdGUsICdkYXknKSk7XG4gICAgfVxuXG4gICAgb25TdGFydERhdGVDaGFuZ2VkKGV2ZW50OiBTdGFydERhdGUpIHtcbiAgICAgICAgY29uc3QgZGF0ZSA9IGV2ZW50LnN0YXJ0RGF0ZS50b0RhdGUoKTtcbiAgICAgICAgY29uc3QgZGF0ZUxvY2FsVGltZSA9IG5ldyBEYXRlKGRhdGUuZ2V0VGltZSgpICsgZGF0ZS5nZXRUaW1lem9uZU9mZnNldCgpICogNjAwMDApO1xuICAgICAgICBjb25zdCBkYXlKc0RhdGUgPSBkYXlqcyhkYXRlTG9jYWxUaW1lKTtcbiAgICAgICAgaWYgKHRoaXMubW9kZSAhPT0gRGF0ZXBpY2tlck1vZGUuUmFuZ2UpIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWREYXRlID0gZGF5SnNEYXRlO1xuICAgICAgICAgICAgdGhpcy5kYXRlcGlja2VyUmVmLnNldEVuZERhdGUoZGF5SnNEYXRlKTtcbiAgICAgICAgICAgIGlmICh0aGlzLnBhZ2VTZXQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnBhZ2VTZXQgPSBmYWxzZTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5kYXRlU2VsZWN0ZWQuZW1pdChkYXlKc0RhdGUuY2xvbmUoKSk7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMubW9kZSA9PT0gRGF0ZXBpY2tlck1vZGUuTXVsdGlwbGUpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZERhdGVzLnB1c2goZGF5SnNEYXRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodGhpcy5kYXRlcGlja2VyUmVmKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5kYXRlcGlja2VyUmVmLnVwZGF0ZUNhbGVuZGFycygpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25EYXRlc1VwZGF0ZWQoZXZlbnQ6IFBlcmlvZCkge1xuICAgICAgICBpZiAodGhpcy5tb2RlID09PSBEYXRlcGlja2VyTW9kZS5SYW5nZSkge1xuICAgICAgICAgICAgY29uc3Qgc3RhcnREYXRlID0gZXZlbnQuc3RhcnREYXRlPy50b0RhdGUoKTtcbiAgICAgICAgICAgIGNvbnN0IHN0YXJ0RGF0ZUxvY2FsVGltZSA9IG5ldyBEYXRlKHN0YXJ0RGF0ZS5nZXRUaW1lKCkgKyBzdGFydERhdGUuZ2V0VGltZXpvbmVPZmZzZXQoKSAqIDYwMDAwKTtcbiAgICAgICAgICAgIGNvbnN0IGVuZERhdGUgPSBldmVudC5lbmREYXRlPy50b0RhdGUoKTtcbiAgICAgICAgICAgIGNvbnN0IGVuZERhdGVMb2NhbFRpbWUgPSBuZXcgRGF0ZShlbmREYXRlLmdldFRpbWUoKSArIGVuZERhdGUuZ2V0VGltZXpvbmVPZmZzZXQoKSAqIDYwMDAwKTtcbiAgICAgICAgICAgIHRoaXMucGVyaW9kU2VsZWN0ZWQuZW1pdCh7XG4gICAgICAgICAgICAgICAgc3RhcnREYXRlOiBkYXlqcyhzdGFydERhdGVMb2NhbFRpbWUpLnN0YXJ0T2YoJ2RheScpLFxuICAgICAgICAgICAgICAgIGVuZERhdGU6IGRheWpzKGVuZERhdGVMb2NhbFRpbWUpLmVuZE9mKCdkYXknKSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmRhdGVwaWNrZXJSZWYpIHtcbiAgICAgICAgICAgIHRoaXMuZGF0ZXBpY2tlclJlZi51cGRhdGVDYWxlbmRhcnMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uTmV4dE1vbnRoKCkge1xuICAgICAgICB0aGlzLmRhdGVwaWNrZXJSZWYubGVmdENhbGVuZGFyLm1vbnRoID0gdGhpcy5kYXRlcGlja2VyUmVmLmxlZnRDYWxlbmRhci5tb250aC5hZGQoMSwgJ21vbnRocycpLmNsb25lKCk7XG4gICAgICAgIHRoaXMuZGF0ZXBpY2tlclJlZi5yaWdodENhbGVuZGFyLm1vbnRoID0gdGhpcy5kYXRlcGlja2VyUmVmLnJpZ2h0Q2FsZW5kYXIubW9udGguYWRkKDEsICdtb250aHMnKS5jbG9uZSgpO1xuICAgICAgICB0aGlzLmRhdGVwaWNrZXJSZWYuY2xpY2tOZXh0KFNpZGVFbnVtLmxlZnQpO1xuICAgICAgICB0aGlzLmRhdGVwaWNrZXJSZWYuY2xpY2tOZXh0KFNpZGVFbnVtLnJpZ2h0KTtcbiAgICB9XG5cbiAgICBvblByZXZpb3VzTW9udGgoKSB7XG4gICAgICAgIHRoaXMuZGF0ZXBpY2tlclJlZi5sZWZ0Q2FsZW5kYXIubW9udGggPSB0aGlzLmRhdGVwaWNrZXJSZWYubGVmdENhbGVuZGFyLm1vbnRoLnN1YnRyYWN0KDEsICdtb250aHMnKS5jbG9uZSgpO1xuICAgICAgICB0aGlzLmRhdGVwaWNrZXJSZWYucmlnaHRDYWxlbmRhci5tb250aCA9IHRoaXMuZGF0ZXBpY2tlclJlZi5yaWdodENhbGVuZGFyLm1vbnRoLnN1YnRyYWN0KDEsICdtb250aHMnKS5jbG9uZSgpO1xuICAgICAgICB0aGlzLmRhdGVwaWNrZXJSZWYuY2xpY2tQcmV2KFNpZGVFbnVtLmxlZnQpO1xuICAgICAgICB0aGlzLmRhdGVwaWNrZXJSZWYuY2xpY2tQcmV2KFNpZGVFbnVtLnJpZ2h0KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBVZ2x5IGhhY2sgdXNlZCBoZXJlIHRvIG9wZW4gdGhlIGNhbGVuZGFyIG9uIHRoZSByaWdodCBkYXkgaWYgdGhleSBhcmUgc2VsZWN0ZWQgZGF0ZXNcbiAgICAgKiAgICAgICogaHR0cHM6Ly9naXRodWIuY29tL2ZldHJhcmlqL25neC1kYXRlcmFuZ2VwaWNrZXItbWF0ZXJpYWwvaXNzdWVzLzEzOVxuICAgICAqL1xuICAgIHNldENhbGVuZGFyQ3VycmVudFBhZ2UoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHNlbGVjdGVkRmlyc3REYXRlID0gdGhpcy5zZWxlY3RlZERhdGVzLmxlbmd0aCA+IDAgPyB0aGlzLnNlbGVjdGVkRGF0ZXNbMF0gOiB0aGlzLnNlbGVjdGVkRGF0ZTtcbiAgICAgICAgaWYgKHNlbGVjdGVkRmlyc3REYXRlICYmIHNlbGVjdGVkRmlyc3REYXRlLmlzVmFsaWQoKSAmJiB0aGlzLm1vZGUgIT09IERhdGVwaWNrZXJNb2RlLlJhbmdlKSB7XG4gICAgICAgICAgICBjb25zdCBlbmREYXRlID0gc2VsZWN0ZWRGaXJzdERhdGUuY2xvbmUoKTtcbiAgICAgICAgICAgIGVuZERhdGUuYWRkKDEsICdtb250aCcpO1xuICAgICAgICAgICAgdGhpcy5wYWdlU2V0ID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMuZGF0ZXBpY2tlclJlZi5zZXRTdGFydERhdGUoc2VsZWN0ZWRGaXJzdERhdGUpO1xuICAgICAgICAgICAgdGhpcy5kYXRlcGlja2VyUmVmLnNldEVuZERhdGUoZW5kRGF0ZSk7XG4gICAgICAgICAgICB0aGlzLmRhdGVwaWNrZXJSZWYudXBkYXRlVmlldygpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cblxuICAgIHNldFdpZHRoKCkge1xuICAgICAgICB0aGlzLndpZHRoID1cbiAgICAgICAgICAgIHRoaXMuc2hvd1JhbmdlcyAmJiB0aGlzLm1vZGUgPT09IERhdGVwaWNrZXJNb2RlLlJhbmdlXG4gICAgICAgICAgICAgICAgPyB0aGlzLmRvdWJsZUNhbGVuZGFyV2lkdGggKyB0aGlzLnJhbmdlUGlja2VyV2lkdGhcbiAgICAgICAgICAgICAgICA6IHRoaXMuZG91YmxlQ2FsZW5kYXJXaWR0aDtcbiAgICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiY3VzdG9tLWNhbGVuZGFyXCIgW3N0eWxlLndpZHRoXT1cIndpZHRoICsgJ3B4J1wiPlxuICAgIDxkaXYgY2xhc3M9XCJjdXN0b20taGVhZGVyXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtb250aC1oZWFkZXJcIlxuICAgICAgICAgICAgICpuZ0lmPVwidGhpcy5kYXRlcGlja2VyUmVmLmxlZnRDYWxlbmRhci5tb250aFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1vbnRoLWFycm93LWJ1dHRvblwiIChjbGljayk9XCJvblByZXZpb3VzTW9udGgoKVwiPlxuICAgICAgICAgICAgICAgIDxhcC1zeW1ib2xcbiAgICAgICAgICAgICAgICAgICAgW3N5bWJvbElkXT1cIidhcnJvdy1sZWZ0LTEnXCJcbiAgICAgICAgICAgICAgICAgICAgW2NvbG9yXT1cIicjODU4RkExJ1wiXG4gICAgICAgICAgICAgICAgICAgIFtzaXplXT1cIicxNCdcIj48L2FwLXN5bWJvbD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1vbnRoLWxhYmVsXCI+XG4gICAgICAgICAgICAgICAge3sgdGhpcy5kYXRlcGlja2VyUmVmLmxlZnRDYWxlbmRhci5tb250aC5sb2NhbGUobG9jYWxlKS5mb3JtYXQoJ01NTU0gWVlZWScpIH19XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtb250aC1oZWFkZXJcIlxuICAgICAgICAgICAgICpuZ0lmPVwidGhpcy5kYXRlcGlja2VyUmVmLnJpZ2h0Q2FsZW5kYXIubW9udGhcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtb250aC1sYWJlbFwiPlxuICAgICAgICAgICAgICAgIHt7IHRoaXMuZGF0ZXBpY2tlclJlZi5yaWdodENhbGVuZGFyLm1vbnRoLmxvY2FsZShsb2NhbGUpLmZvcm1hdCgnTU1NTSBZWVlZJykgfX1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1vbnRoLWFycm93LWJ1dHRvblwiIChjbGljayk9XCJvbk5leHRNb250aCgpXCI+XG4gICAgICAgICAgICAgICAgPGFwLXN5bWJvbFxuICAgICAgICAgICAgICAgICAgICBbc3ltYm9sSWRdPVwiJ2Fycm93LXJpZ2h0LTEnXCJcbiAgICAgICAgICAgICAgICAgICAgW2NvbG9yXT1cIicjODU4RkExJ1wiXG4gICAgICAgICAgICAgICAgICAgIFtzaXplXT1cIicxNCdcIj48L2FwLXN5bWJvbD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRlci1maWxsZXJcIiAqbmdJZj1cInNob3dSYW5nZXMgJiYgbW9kZSA9PT0gRGF0ZXBpY2tlck1vZGUuUmFuZ2VcIj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPG5neC1kYXRlcmFuZ2VwaWNrZXItbWF0ZXJpYWxcbiAgICAgICAgI2RhdGVwaWNrZXJSZWZcbiAgICAgICAgW2NsYXNzLmhpZGUtcmFuZ2VzXT1cIiFzaG93UmFuZ2VzXCJcbiAgICAgICAgW2Fsd2F5c1Nob3dDYWxlbmRhcnNdPVwidHJ1ZVwiXG4gICAgICAgIFthdXRvQXBwbHldPVwidHJ1ZVwiXG4gICAgICAgIFtjdXN0b21SYW5nZURpcmVjdGlvbl09XCJ0cnVlXCJcbiAgICAgICAgW2lzQ3VzdG9tRGF0ZV09XCIkYW55KGlzQ3VzdG9tRGF0ZSlcIlxuICAgICAgICBbbG9jYWxlXT1cImxvY2FsZUNvbmZpZ1wiXG4gICAgICAgIFttYXhEYXRlXT1cIm1heERhdGVTdHJcIlxuICAgICAgICBbbWluRGF0ZV09XCJtaW5EYXRlU3RyXCJcbiAgICAgICAgW3Jhbmdlc109XCJzaG93UmFuZ2VzICYmIG1vZGUgPT09IERhdGVwaWNrZXJNb2RlLlJhbmdlID8gcmFuZ2VzIDogbnVsbFwiXG4gICAgICAgIChkYXRlc1VwZGF0ZWQpPVwib25EYXRlc1VwZGF0ZWQoJGV2ZW50KVwiXG4gICAgICAgIChzdGFydERhdGVDaGFuZ2VkKT1cIm9uU3RhcnREYXRlQ2hhbmdlZCgkZXZlbnQpXCI+XG4gICAgPC9uZ3gtZGF0ZXJhbmdlcGlja2VyLW1hdGVyaWFsPlxuPC9kaXY+XG4iXX0=
259
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXBpY2tlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzL3VpLWNvbXBvbmVudHMvZGF0ZXBpY2tlci9zcmMvZGF0ZXBpY2tlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9saWJzL3VpLWNvbXBvbmVudHMvZGF0ZXBpY2tlci9zcmMvZGF0ZXBpY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsd0JBQXdCLEVBQUUsWUFBWSxFQUFFLGFBQWEsRUFBaUIsTUFBTSx1QkFBdUIsQ0FBQztBQUM1RyxPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDckMsT0FBTyxFQUVILHVCQUF1QixFQUV2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEVBQ04sU0FBUyxHQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBMkIsb0JBQW9CLEVBQUMsTUFBTSwwQ0FBMEMsQ0FBQztBQUN4RyxPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDMUIsT0FBTyxpQkFBaUIsQ0FBQztBQUN6QixPQUFPLGlCQUFpQixDQUFDO0FBQ3pCLE9BQU8saUJBQWlCLENBQUM7QUFDekIsT0FBTyxpQkFBaUIsQ0FBQztBQUN6QixPQUFPLGlCQUFpQixDQUFDO0FBQ3pCLE9BQU8sVUFBVSxNQUFNLHlCQUF5QixDQUFDOzs7O0FBRWpELE1BQU0sQ0FBTixJQUFZLGNBSVg7QUFKRCxXQUFZLGNBQWM7SUFDdEIsbUNBQWlCLENBQUE7SUFDakIsdUNBQXFCLENBQUE7SUFDckIsaUNBQWUsQ0FBQTtBQUNuQixDQUFDLEVBSlcsY0FBYyxLQUFkLGNBQWMsUUFJekI7QUFxQkQsSUFBSyxRQUdKO0FBSEQsV0FBSyxRQUFRO0lBQ1QseUJBQWEsQ0FBQTtJQUNiLDJCQUFlLENBQUE7QUFDbkIsQ0FBQyxFQUhJLFFBQVEsS0FBUixRQUFRLFFB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LGNBQWMsQ0FBQyxLQUFLO2dCQUNqRCxDQUFDLENBQUMsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQyxnQkFBZ0I7Z0JBQ2xELENBQUMsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUM7SUFDdkMsQ0FBQzs7Z0hBMU5RLG1CQUFtQjtvR0FBbkIsbUJBQW1CLHloQkM5RGhDLHMzREE0Q0Esb3RZRGVjLHdCQUF3QixpS0FBRSxJQUFJLDRGQUFFLG9CQUFvQjsyRkFHckQsbUJBQW1CO2tCQVIvQixTQUFTO3NDQUNXLHVCQUF1QixDQUFDLE1BQU0sWUFDckMsZUFBZSxjQUViLElBQUksV0FDUCxDQUFDLHdCQUF3QixFQUFFLElBQUksRUFBRSxvQkFBb0IsQ0FBQztxSUFJbkMsYUFBYTtzQkFBeEMsU0FBUzt1QkFBQyxlQUFlO2dCQUVqQixjQUFjO3NCQUF0QixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFTRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ08sT0FBTztzQkFBbkIsS0FBSztnQkFPTyxPQUFPO3NCQUFuQixLQUFLO2dCQU9HLElBQUk7c0JBQVosS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUVJLFlBQVk7c0JBQXJCLE1BQU07Z0JBQ0csY0FBYztzQkFBdkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QWdvcmFwdWxzZVVpU3ltYm9sTW9kdWxlLCBhcEFycm93TGVmdDEsIGFwQXJyb3dSaWdodDEsIFN5bWJvbFJlZ2lzdHJ5fSBmcm9tICdAYWdvcmFwdWxzZS91aS1zeW1ib2wnO1xuaW1wb3J0IHtOZ0lmfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSW5wdXQsXG4gICAgT25DaGFuZ2VzLFxuICAgIE9uSW5pdCxcbiAgICBPdXRwdXQsXG4gICAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7RGF0ZXJhbmdlcGlja2VyQ29tcG9uZW50LCBOZ3hEYXRlcmFuZ2VwaWNrZXJNZH0gZnJvbSAnQGFnb3JhcHVsc2Uvbmd4LWRhdGVyYW5nZXBpY2tlci1tYXRlcmlhbCc7XG5pbXBvcnQgZGF5anMgZnJvbSAnZGF5anMnO1xuaW1wb3J0ICdkYXlqcy9sb2NhbGUvZGUnO1xuaW1wb3J0ICdkYXlqcy9sb2NhbGUvZW4nO1xuaW1wb3J0ICdkYXlqcy9sb2NhbGUvZXMnO1xuaW1wb3J0ICdkYXlqcy9sb2NhbGUvZnInO1xuaW1wb3J0ICdkYXlqcy9sb2NhbGUvcHQnO1xuaW1wb3J0IGxvY2FsZURhdGEgZnJvbSAnZGF5anMvcGx1Z2luL2xvY2FsZURhdGEnO1xuXG5leHBvcnQgZW51bSBEYXRlcGlja2VyTW9kZSB7XG4gICAgU2luZ2xlID0gJ1NpbmdsZScsXG4gICAgTXVsdGlwbGUgPSAnTXVsdGlwbGUnLFxuICAgIFJhbmdlID0gJ1JhbmdlJyxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQZXJpb2Qge1xuICAgIHN0YXJ0RGF0ZT86IGRheWpzLkRheWpzO1xuICAgIGVuZERhdGU/OiBkYXlqcy5EYXlqcztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTdGFydERhdGUge1xuICAgIHN0YXJ0RGF0ZTogZGF5anMuRGF5anM7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSTE4bkRhdGVQaWNrZXIge1xuICAgIHJhbmdlczoge1xuICAgICAgICB5ZXN0ZXJkYXk6IHN0cmluZztcbiAgICAgICAgbGFzdFdlZWs6IHN0cmluZztcbiAgICAgICAgbGFzdDMwRGF5czogc3RyaW5nO1xuICAgICAgICBsYXN0TW9udGg6IHN0cmluZztcbiAgICAgICAgdGhpc01vbnRoOiBzdHJpbmc7XG4gICAgfVxufVxuXG5lbnVtIFNpZGVFbnVtIHtcbiAgICBsZWZ0ID0gXCJsZWZ0XCIsXG4gICAgcmlnaHQgPSBcInJpZ2h0XCJcbn1cblxuLy8gVE9ETyBmaXggY3NzIGZvciByYW5nZSBtb2RlIChtb3JlIGxhdGVyYWwgcGFkZGluZylcbkBDb21wb25lbnQoe1xuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHNlbGVjdG9yOiAnYXAtZGF0ZXBpY2tlcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2RhdGVwaWNrZXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW0Fnb3JhcHVsc2VVaVN5bWJvbE1vZHVsZSwgTmdJZiwgTmd4RGF0ZXJhbmdlcGlja2VyTWRdLFxuICAgIHN0eWxlVXJsczogWycuL2RhdGVwaWNrZXIuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgRGF0ZXBpY2tlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBBZnRlclZpZXdJbml0IHtcbiAgICBAVmlld0NoaWxkKCdkYXRlcGlja2VyUmVmJykgZGF0ZXBpY2tlclJlZjogRGF0ZXJhbmdlcGlja2VyQ29tcG9uZW50O1xuXG4gICAgQElucHV0KCkgZmlyc3REYXlPZldlZWs6IHN0cmluZztcbiAgICBASW5wdXQoKSBpMThuOiBJMThuRGF0ZVBpY2tlciA9IHtcbiAgICAgICAgcmFuZ2VzOiB7XG4gICAgICAgICAgICB5ZXN0ZXJkYXk6ICdZZXN0ZXJkYXknLFxuICAgICAgICAgICAgbGFzdFdlZWs6ICdMYXN0IFdlZWsnLFxuICAgICAgICAgICAgbGFzdDMwRGF5czogJ0xhc3QgMzAgZGF5cycsXG4gICAgICAgICAgICBsYXN0TW9udGg6ICdQcmV2aW91cyBtb250aCcsXG4gICAgICAgICAgICB0aGlzTW9udGg6ICdUaGlzIE1vbnRoJyxcbiAgICAgICAgfSxcbiAgICB9O1xuICAgIEBJbnB1dCgpIGxvY2FsZTtcbiAgICBASW5wdXQoKSBzZXQgbWF4RGF0ZShtYXhEYXRlOiBkYXlqcy5EYXlqcykge1xuICAgICAgICBpZiAobWF4RGF0ZSkge1xuICAgICAgICAgICAgdGhpcy5tYXhEYXRlU3RyID0gbWF4RGF0ZS50b0lTT1N0cmluZygpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5tYXhEYXRlU3RyID0gbnVsbDtcbiAgICAgICAgfSAgICAgICAgIFxuICAgIH1cbiAgICBASW5wdXQoKSBzZXQgbWluRGF0ZShtaW5EYXRlOiBkYXlqcy5EYXlqcykge1xuICAgICAgICBpZiAobWluRGF0ZSkge1xuICAgICAgICAgICAgdGhpcy5taW5EYXRlU3RyID0gbWluRGF0ZS50b0lTT1N0cmluZygpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5taW5EYXRlU3RyID0gbnVsbDtcbiAgICAgICAgfSAgICAgICAgIFxuICAgIH1cbiAgICBASW5wdXQoKSBtb2RlOiBEYXRlcGlja2VyTW9kZTtcbiAgICBASW5wdXQoKSBzZWxlY3RlZERhdGU6IGRheWpzLkRheWpzO1xuICAgIEBJbnB1dCgpIHNlbGVjdGVkRGF0ZXM6IGRheWpzLkRheWpzW10gPSBbXTtcbiAgICBASW5wdXQoKSBzZWxlY3RlZFBlcmlvZDogUGVyaW9kID0ge3N0YXJ0RGF0ZTogbnVsbCwgZW5kRGF0ZTogbnVsbH07XG4gICAgQElucHV0KCkgc2hvd1JhbmdlczogYm9vbGVhbjtcblxuICAgIEBPdXRwdXQoKSBkYXRlU2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgICBAT3V0cHV0KCkgcGVyaW9kU2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPFBlcmlvZD4oKTtcblxuICAgIERhdGVwaWNrZXJNb2RlID0gRGF0ZXBpY2tlck1vZGU7XG4gICAgZG91YmxlQ2FsZW5kYXJXaWR0aCA9IDUyODsgLy8gMjMxcHggY2FsZW5kYXIgdGFibGUgKiAyID0gNDYyICgrIDE2cHggeC1wYWRkaW5nICogNCA9IDY0KVxuICAgIGxvY2FsZUNvbmZpZzoge1xuICAgICAgICBjdXN0b21SYW5nZUxhYmVsOiBzdHJpbmc7XG4gICAgICAgIGRheXNPZldlZWs6IHN0cmluZ1tdO1xuICAgICAgICBtb250aE5hbWVzOiBzdHJpbmdbXTtcbiAgICAgICAgZmlyc3REYXk6IG51bWJlcjtcbiAgICB9O1xuICAgIHJhbmdlczoge1twZXJpb2Q6IHN0cmluZ106IFtkYXlqcy5EYXlqcywgZGF5anMuRGF5anNdfSA9IHt9O1xuICAgIHJhbmdlUGlja2VyV2lkdGggPSAxNTA7XG4gICAgd2lkdGg6IG51bWJlcjtcbiAgICBwYWdlU2V0ID0gZmFsc2U7XG4gICAgbWF4RGF0ZVN0cjogc3RyaW5nO1xuICAgIG1pbkRhdGVTdHI6IHN0cmluZztcbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICAgICAgICAgIHB1YmxpYyBzeW1ib2xSZWdpc3RyeTogU3ltYm9sUmVnaXN0cnkpIHtcbiAgICAgICAgdGhpcy5zeW1ib2xSZWdpc3RyeS5yZWdpc3RlclN5bWJvbHMoW1xuICAgICAgICAgICAgYXBBcnJvd0xlZnQxLFxuICAgICAgICAgICAgYXBBcnJvd1JpZ2h0MVxuICAgICAgICBdKTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgZGF5anMuZXh0ZW5kKGxvY2FsZURhdGEpO1xuICAgICAgICB0aGlzLmluaXRSYW5nZXMoKTtcbiAgICAgICAgdGhpcy5pbml0RGF0ZVBpY2tlckxvY2FsZSgpO1xuICAgIH1cblxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXMpIHtcbiAgICAgICAgdGhpcy5zZXRXaWR0aCgpO1xuICAgICAgICBpZiAodGhpcy5kYXRlcGlja2VyUmVmKSB7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmRhdGVwaWNrZXJSZWYudXBkYXRlQ2FsZW5kYXJzKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgICB9LCAxMDApO1xuICAgICAgICB9XG4gICAgICAgIGlmIChjaGFuZ2VzLnNlbGVjdGVkUGVyaW9kPy5jdXJyZW50VmFsdWUgJiYgdGhpcy5kYXRlcGlja2VyUmVmKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5zZWxlY3RlZFBlcmlvZC5zdGFydERhdGUgPT09IG51bGwgJiYgdGhpcy5zZWxlY3RlZFBlcmlvZC5lbmREYXRlID09PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5kYXRlcGlja2VyUmVmLmNsZWFyKCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuZGF0ZXBpY2tlclJlZi5zZXRTdGFydERhdGUodGhpcy5zZWxlY3RlZFBlcmlvZC5zdGFydERhdGUpO1xuICAgICAgICAgICAgICAgIHRoaXMuZGF0ZXBpY2tlclJlZi5zZXRFbmREYXRlKHRoaXMuc2VsZWN0ZWRQZXJpb2QuZW5kRGF0ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNoYW5nZXMubW9kZT8uY3VycmVudFZhbHVlID09PSBEYXRlcGlja2VyTW9kZS5TaW5nbGUgJiYgdGhpcy5kYXRlcGlja2VyUmVmKSB7XG4gICAgICAgICAgICB0aGlzLnNldENhbGVuZGFyQ3VycmVudFBhZ2UoKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmRhdGVwaWNrZXJSZWYpIHtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuZGF0ZXBpY2tlclJlZi51cGRhdGVDYWxlbmRhcnMoKTtcbiAgICAgICAgICAgICAgICB0aGlzLnNldENhbGVuZGFyQ3VycmVudFBhZ2UoKTtcbiAgICAgICAgICAgIH0sIDEwMCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBpbml0RGF0ZVBpY2tlckxvY2FsZSgpIHtcbiAgICAgICAgaWYgKHRoaXMubG9jYWxlKSB7XG4gICAgICAgICAgICBkYXlqcy5sb2NhbGUodGhpcy5sb2NhbGUpO1xuICAgICAgICB9XG4gICAgICAgIGxldCBmaXJzdERheU9mV2Vla0luZGV4OiBudW1iZXI7XG4gICAgICAgIGlmICh0aGlzLmZpcnN0RGF5T2ZXZWVrID09PSAnc3VuZGF5Jykge1xuICAgICAgICAgICAgZmlyc3REYXlPZldlZWtJbmRleCA9IDA7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5maXJzdERheU9mV2VlayA9PT0gJ21vbmRheScpIHtcbiAgICAgICAgICAgIGZpcnN0RGF5T2ZXZWVrSW5kZXggPSAxO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZmlyc3REYXlPZldlZWtJbmRleCA9IGRheWpzLmxvY2FsZURhdGEoKS5maXJzdERheU9mV2VlaygpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMubG9jYWxlQ29uZmlnID0ge1xuICAgICAgICAgICAgY3VzdG9tUmFuZ2VMYWJlbDogJ2N1c3RvbScsXG4gICAgICAgICAgICBkYXlzT2ZXZWVrOiBkYXlqcy53ZWVrZGF5c01pbigpLFxuICAgICAgICAgICAgbW9udGhOYW1lczogZGF5anMubW9udGhzKCksXG4gICAgICAgICAgICBmaXJzdERheTogZmlyc3REYXlPZldlZWtJbmRleCxcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBpbml0UmFuZ2VzKCkge1xuICAgICAgICB0aGlzLnJhbmdlc1t0aGlzLmkxOG4ucmFuZ2VzLnllc3RlcmRheV0gPSBbZGF5anMoKS5zdWJ0cmFjdCgxLCAnZGF5cycpLCBkYXlqcygpLnN1YnRyYWN0KDEsICdkYXlzJyldO1xuICAgICAgICB0aGlzLnJhbmdlc1t0aGlzLmkxOG4ucmFuZ2VzLmxhc3RXZWVrXSA9IFtkYXlqcygpLnN1YnRyYWN0KDcsICdkYXlzJyksIGRheWpzKCkuc3VidHJhY3QoMSwgJ2RheXMnKV07XG4gICAgICAgIHRoaXMucmFuZ2VzW3RoaXMuaTE4bi5yYW5nZXMubGFzdDMwRGF5c10gPSBbZGF5anMoKS5zdWJ0cmFjdCgzMCwgJ2RheXMnKSwgZGF5anMoKS5zdWJ0cmFjdCgxLCAnZGF5cycpXTtcbiAgICAgICAgdGhpcy5yYW5nZXNbdGhpcy5pMThuLnJhbmdlcy5sYXN0TW9udGhdID0gW1xuICAgICAgICAgICAgZGF5anMoKS5zdWJ0cmFjdCgxLCAnbW9udGgnKS5zdGFydE9mKCdtb250aCcpLFxuICAgICAgICAgICAgZGF5anMoKS5zdWJ0cmFjdCgxLCAnbW9udGgnKS5lbmRPZignbW9udGgnKSxcbiAgICAgICAgXTtcbiAgICAgICAgdGhpcy5yYW5nZXNbdGhpcy5pMThuLnJhbmdlcy50aGlzTW9udGhdID0gW2RheWpzKCkuc3RhcnRPZignbW9udGgnKSwgZGF5anMoKS5lbmRPZignbW9udGgnKV07XG4gICAgfVxuXG4gICAgaXNDdXN0b21EYXRlID0gKGRhdGU6IGFueSkgPT4ge1xuICAgICAgICBjb25zdCBjbGFzc2VzOiBzdHJpbmdbXSA9IFtdO1xuICAgICAgICBpZiAodGhpcy5tb2RlID09PSBEYXRlcGlja2VyTW9kZS5NdWx0aXBsZSkge1xuICAgICAgICAgICAgY2xhc3Nlcy5wdXNoKHRoaXMuaXNTZWxlY3RlZChkYXRlKSA/ICdhY3RpdmUnIDogJ2ZvcmNlLWluYWN0aXZlJyk7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5tb2RlID09PSBEYXRlcGlja2VyTW9kZS5TaW5nbGUpIHtcbiAgICAgICAgICAgIGNsYXNzZXMucHVzaCh0aGlzLnNlbGVjdGVkRGF0ZSAmJiB0aGlzLnNlbGVjdGVkRGF0ZS5pc1NhbWUoZGF0ZSwgJ2RheScpID8gJ2FjdGl2ZScgOiAnZm9yY2UtaW5hY3RpdmUnKTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLm1vZGUgPT09IERhdGVwaWNrZXJNb2RlLlJhbmdlKSB7XG4gICAgICAgICAgICBjbGFzc2VzLnB1c2goJ3JhbmdlLXBpY2tlci1tb2RlJyk7XG4gICAgICAgICAgICAvLyBXb3JrYXJvdW5kIHRvIGZpeCB0aGUgYXV0by1hY3RpdmUgdG9kYXkgZGF0ZSB3aGVuIG5vIGRhdGUgaXMgc2VsZWN0ZWRcbiAgICAgICAgICAgIGlmIChkYXlqcygpLmlzU2FtZShkYXRlLCAnZGF5JykgJiYgIXRoaXMuc2VsZWN0ZWRQZXJpb2Q/LnN0YXJ0RGF0ZSAmJiAhdGhpcy5zZWxlY3RlZFBlcmlvZD8uZW5kRGF0ZSkge1xuICAgICAgICAgICAgICAgIGNsYXNzZXMucHVzaCgnZm9yY2UtaW5hY3RpdmUnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gY2xhc3NlcztcbiAgICB9O1xuXG4gICAgcHJpdmF0ZSBpc1NlbGVjdGVkKGRhdGU6IGFueSkge1xuICAgICAgICByZXR1cm4gdGhpcy5zZWxlY3RlZERhdGVzICYmIHRoaXMuc2VsZWN0ZWREYXRlcy5zb21lKHNlbGVjdGVkRGF0ZSA9PiBzZWxlY3RlZERhdGUuaXNTYW1lKGRhdGUsICdkYXknKSk7XG4gICAgfVxuXG4gICAgb25TdGFydERhdGVDaGFuZ2VkKGV2ZW50OiBTdGFydERhdGUpIHtcbiAgICAgICAgY29uc3QgZGF0ZSA9IGV2ZW50LnN0YXJ0RGF0ZS50b0RhdGUoKTtcbiAgICAgICAgY29uc3QgZGF0ZUxvY2FsVGltZSA9IG5ldyBEYXRlKGRhdGUuZ2V0VGltZSgpKTtcbiAgICAgICAgY29uc3QgZGF5SnNEYXRlID0gZGF5anMoZGF0ZUxvY2FsVGltZSk7XG4gICAgICAgIGlmICh0aGlzLm1vZGUgIT09IERhdGVwaWNrZXJNb2RlLlJhbmdlKSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkRGF0ZSA9IGRheUpzRGF0ZTtcbiAgICAgICAgICAgIHRoaXMuZGF0ZXBpY2tlclJlZi5zZXRFbmREYXRlKGRheUpzRGF0ZSk7XG4gICAgICAgICAgICBpZiAodGhpcy5wYWdlU2V0KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5wYWdlU2V0ID0gZmFsc2U7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuZGF0ZVNlbGVjdGVkLmVtaXQoZGF5SnNEYXRlLmNsb25lKCkpO1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLm1vZGUgPT09IERhdGVwaWNrZXJNb2RlLk11bHRpcGxlKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWREYXRlcy5wdXNoKGRheUpzRGF0ZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHRoaXMuZGF0ZXBpY2tlclJlZikge1xuICAgICAgICAgICAgICAgIHRoaXMuZGF0ZXBpY2tlclJlZi51cGRhdGVDYWxlbmRhcnMoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uRGF0ZXNVcGRhdGVkKGV2ZW50OiBQZXJpb2QpIHtcbiAgICAgICAgaWYgKHRoaXMubW9kZSA9PT0gRGF0ZXBpY2tlck1vZGUuUmFuZ2UpIHtcbiAgICAgICAgICAgIGNvbnN0IHN0YXJ0RGF0ZSA9IGV2ZW50LnN0YXJ0RGF0ZT8udG9EYXRlKCk7XG4gICAgICAgICAgICBjb25zdCBzdGFydERhdGVMb2NhbFRpbWUgPSBuZXcgRGF0ZShzdGFydERhdGUuZ2V0VGltZSgpKTtcbiAgICAgICAgICAgIGNvbnN0IGVuZERhdGUgPSBldmVudC5lbmREYXRlPy50b0RhdGUoKTtcbiAgICAgICAgICAgIGNvbnN0IGVuZERhdGVMb2NhbFRpbWUgPSBuZXcgRGF0ZShlbmREYXRlLmdldFRpbWUoKSk7XG4gICAgICAgICAgICB0aGlzLnBlcmlvZFNlbGVjdGVkLmVtaXQoe1xuICAgICAgICAgICAgICAgIHN0YXJ0RGF0ZTogZGF5anMoc3RhcnREYXRlTG9jYWxUaW1lKS5zdGFydE9mKCdkYXknKSxcbiAgICAgICAgICAgICAgICBlbmREYXRlOiBkYXlqcyhlbmREYXRlTG9jYWxUaW1lKS5lbmRPZignZGF5JyksXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5kYXRlcGlja2VyUmVmKSB7XG4gICAgICAgICAgICB0aGlzLmRhdGVwaWNrZXJSZWYudXBkYXRlQ2FsZW5kYXJzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbk5leHRNb250aCgpIHtcbiAgICAgICAgdGhpcy5kYXRlcGlja2VyUmVmLmxlZnRDYWxlbmRhci5tb250aCA9IHRoaXMuZGF0ZXBpY2tlclJlZi5sZWZ0Q2FsZW5kYXIubW9udGguYWRkKDEsICdtb250aHMnKS5jbG9uZSgpO1xuICAgICAgICB0aGlzLmRhdGVwaWNrZXJSZWYucmlnaHRDYWxlbmRhci5tb250aCA9IHRoaXMuZGF0ZXBpY2tlclJlZi5yaWdodENhbGVuZGFyLm1vbnRoLmFkZCgxLCAnbW9udGhzJykuY2xvbmUoKTtcbiAgICAgICAgdGhpcy5kYXRlcGlja2VyUmVmLmNsaWNrTmV4dChTaWRlRW51bS5sZWZ0KTtcbiAgICAgICAgdGhpcy5kYXRlcGlja2VyUmVmLmNsaWNrTmV4dChTaWRlRW51bS5yaWdodCk7XG4gICAgfVxuXG4gICAgb25QcmV2aW91c01vbnRoKCkge1xuICAgICAgICB0aGlzLmRhdGVwaWNrZXJSZWYubGVmdENhbGVuZGFyLm1vbnRoID0gdGhpcy5kYXRlcGlja2VyUmVmLmxlZnRDYWxlbmRhci5tb250aC5zdWJ0cmFjdCgxLCAnbW9udGhzJykuY2xvbmUoKTtcbiAgICAgICAgdGhpcy5kYXRlcGlja2VyUmVmLnJpZ2h0Q2FsZW5kYXIubW9udGggPSB0aGlzLmRhdGVwaWNrZXJSZWYucmlnaHRDYWxlbmRhci5tb250aC5zdWJ0cmFjdCgxLCAnbW9udGhzJykuY2xvbmUoKTtcbiAgICAgICAgdGhpcy5kYXRlcGlja2VyUmVmLmNsaWNrUHJldihTaWRlRW51bS5sZWZ0KTtcbiAgICAgICAgdGhpcy5kYXRlcGlja2VyUmVmLmNsaWNrUHJldihTaWRlRW51bS5yaWdodCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVWdseSBoYWNrIHVzZWQgaGVyZSB0byBvcGVuIHRoZSBjYWxlbmRhciBvbiB0aGUgcmlnaHQgZGF5IGlmIHRoZXkgYXJlIHNlbGVjdGVkIGRhdGVzXG4gICAgICogICAgICAqIGh0dHBzOi8vZ2l0aHViLmNvbS9mZXRyYXJpai9uZ3gtZGF0ZXJhbmdlcGlja2VyLW1hdGVyaWFsL2lzc3Vlcy8xMzlcbiAgICAgKi9cbiAgICBzZXRDYWxlbmRhckN1cnJlbnRQYWdlKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBzZWxlY3RlZEZpcnN0RGF0ZSA9IHRoaXMuc2VsZWN0ZWREYXRlcy5sZW5ndGggPiAwID8gdGhpcy5zZWxlY3RlZERhdGVzWzBdIDogdGhpcy5zZWxlY3RlZERhdGU7XG4gICAgICAgIGlmIChzZWxlY3RlZEZpcnN0RGF0ZSAmJiBzZWxlY3RlZEZpcnN0RGF0ZS5pc1ZhbGlkKCkgJiYgdGhpcy5tb2RlICE9PSBEYXRlcGlja2VyTW9kZS5SYW5nZSkge1xuICAgICAgICAgICAgY29uc3QgZW5kRGF0ZSA9IHNlbGVjdGVkRmlyc3REYXRlLmNsb25lKCk7XG4gICAgICAgICAgICBlbmREYXRlLmFkZCgxLCAnbW9udGgnKTtcbiAgICAgICAgICAgIHRoaXMucGFnZVNldCA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLmRhdGVwaWNrZXJSZWYuc2V0U3RhcnREYXRlKHNlbGVjdGVkRmlyc3REYXRlKTtcbiAgICAgICAgICAgIHRoaXMuZGF0ZXBpY2tlclJlZi5zZXRFbmREYXRlKGVuZERhdGUpO1xuICAgICAgICAgICAgdGhpcy5kYXRlcGlja2VyUmVmLnVwZGF0ZVZpZXcoKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG5cbiAgICBzZXRXaWR0aCgpIHtcbiAgICAgICAgdGhpcy53aWR0aCA9XG4gICAgICAgICAgICB0aGlzLnNob3dSYW5nZXMgJiYgdGhpcy5tb2RlID09PSBEYXRlcGlja2VyTW9kZS5SYW5nZVxuICAgICAgICAgICAgICAgID8gdGhpcy5kb3VibGVDYWxlbmRhcldpZHRoICsgdGhpcy5yYW5nZVBpY2tlcldpZHRoXG4gICAgICAgICAgICAgICAgOiB0aGlzLmRvdWJsZUNhbGVuZGFyV2lkdGg7XG4gICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImN1c3RvbS1jYWxlbmRhclwiIFtzdHlsZS53aWR0aF09XCJ3aWR0aCArICdweCdcIj5cbiAgICA8ZGl2IGNsYXNzPVwiY3VzdG9tLWhlYWRlclwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibW9udGgtaGVhZGVyXCJcbiAgICAgICAgICAgICAqbmdJZj1cInRoaXMuZGF0ZXBpY2tlclJlZi5sZWZ0Q2FsZW5kYXIubW9udGhcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtb250aC1hcnJvdy1idXR0b25cIiAoY2xpY2spPVwib25QcmV2aW91c01vbnRoKClcIj5cbiAgICAgICAgICAgICAgICA8YXAtc3ltYm9sXG4gICAgICAgICAgICAgICAgICAgIFtzeW1ib2xJZF09XCInYXJyb3ctbGVmdC0xJ1wiXG4gICAgICAgICAgICAgICAgICAgIFtjb2xvcl09XCInIzg1OEZBMSdcIlxuICAgICAgICAgICAgICAgICAgICBbc2l6ZV09XCInMTQnXCI+PC9hcC1zeW1ib2w+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtb250aC1sYWJlbFwiPlxuICAgICAgICAgICAgICAgIHt7IHRoaXMuZGF0ZXBpY2tlclJlZi5sZWZ0Q2FsZW5kYXIubW9udGgubG9jYWxlKGxvY2FsZSkuZm9ybWF0KCdNTU1NIFlZWVknKSB9fVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwibW9udGgtaGVhZGVyXCJcbiAgICAgICAgICAgICAqbmdJZj1cInRoaXMuZGF0ZXBpY2tlclJlZi5yaWdodENhbGVuZGFyLm1vbnRoXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibW9udGgtbGFiZWxcIj5cbiAgICAgICAgICAgICAgICB7eyB0aGlzLmRhdGVwaWNrZXJSZWYucmlnaHRDYWxlbmRhci5tb250aC5sb2NhbGUobG9jYWxlKS5mb3JtYXQoJ01NTU0gWVlZWScpIH19XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtb250aC1hcnJvdy1idXR0b25cIiAoY2xpY2spPVwib25OZXh0TW9udGgoKVwiPlxuICAgICAgICAgICAgICAgIDxhcC1zeW1ib2xcbiAgICAgICAgICAgICAgICAgICAgW3N5bWJvbElkXT1cIidhcnJvdy1yaWdodC0xJ1wiXG4gICAgICAgICAgICAgICAgICAgIFtjb2xvcl09XCInIzg1OEZBMSdcIlxuICAgICAgICAgICAgICAgICAgICBbc2l6ZV09XCInMTQnXCI+PC9hcC1zeW1ib2w+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJoZWFkZXItZmlsbGVyXCIgKm5nSWY9XCJzaG93UmFuZ2VzICYmIG1vZGUgPT09IERhdGVwaWNrZXJNb2RlLlJhbmdlXCI+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxuZ3gtZGF0ZXJhbmdlcGlja2VyLW1hdGVyaWFsXG4gICAgICAgICNkYXRlcGlja2VyUmVmXG4gICAgICAgIFtjbGFzcy5oaWRlLXJhbmdlc109XCIhc2hvd1Jhbmdlc1wiXG4gICAgICAgIFthbHdheXNTaG93Q2FsZW5kYXJzXT1cInRydWVcIlxuICAgICAgICBbYXV0b0FwcGx5XT1cInRydWVcIlxuICAgICAgICBbY3VzdG9tUmFuZ2VEaXJlY3Rpb25dPVwidHJ1ZVwiXG4gICAgICAgIFtpc0N1c3RvbURhdGVdPVwiJGFueShpc0N1c3RvbURhdGUpXCJcbiAgICAgICAgW2xvY2FsZV09XCJsb2NhbGVDb25maWdcIlxuICAgICAgICBbbWF4RGF0ZV09XCJtYXhEYXRlU3RyXCJcbiAgICAgICAgW21pbkRhdGVdPVwibWluRGF0ZVN0clwiXG4gICAgICAgIFtyYW5nZXNdPVwic2hvd1JhbmdlcyAmJiBtb2RlID09PSBEYXRlcGlja2VyTW9kZS5SYW5nZSA/IHJhbmdlcyA6IG51bGxcIlxuICAgICAgICAoZGF0ZXNVcGRhdGVkKT1cIm9uRGF0ZXNVcGRhdGVkKCRldmVudClcIlxuICAgICAgICAoc3RhcnREYXRlQ2hhbmdlZCk9XCJvblN0YXJ0RGF0ZUNoYW5nZWQoJGV2ZW50KVwiPlxuICAgIDwvbmd4LWRhdGVyYW5nZXBpY2tlci1tYXRlcmlhbD5cbjwvZGl2PlxuIl19