@csmart/ngc-smart-victim 0.1.3 → 0.1.7

Sign up to get free protection for your applications and to get access to all the features.
@@ -5,10 +5,11 @@
5
5
  */
6
6
  import { Component } from '@angular/core';
7
7
  import { NgcSmartVictimService } from '../smart-victim.service';
8
- import { FormControl, FormGroup } from '@angular/forms';
8
+ import { FormControl, FormGroup, Validators } from '@angular/forms';
9
9
  import { MatSnackBar } from '@angular/material';
10
10
  import { Router, ActivatedRoute } from '@angular/router';
11
11
  import { SmartAuthService } from '@csmart/ngc-smart-core';
12
+ import { dateValidator } from '../shared/validators';
12
13
  export class ContactComponent {
13
14
  /**
14
15
  * @param {?} _victimServicesComponent
@@ -26,7 +27,10 @@ export class ContactComponent {
26
27
  this.editContact = (/** @type {?} */ ({}));
27
28
  this.staff = {};
28
29
  this.contactForm = new FormGroup({
29
- contactDate: new FormControl(),
30
+ //contactDate: new FormControl(),
31
+ contactDate: new FormControl('', Validators.compose([
32
+ dateValidator()
33
+ ])),
30
34
  contactMethod: new FormControl(),
31
35
  contactBy: new FormControl(),
32
36
  comment: new FormControl(),
@@ -156,7 +160,7 @@ export class ContactComponent {
156
160
  }
157
161
  ContactComponent.decorators = [
158
162
  { type: Component, args: [{
159
- template: "\r\n <mat-card>\r\n <mat-card-header>\r\n\r\n </mat-card-header>\r\n <mat-card-content>\r\n \r\n <mat-toolbar color=\"primary\">\r\n <h4 class=\"card-header\" >Contact detail</h4>\r\n </mat-toolbar>\r\n <br>\r\n \r\n\r\n \r\n <mat-card >\r\n <div class='container'> \r\n <form [formGroup]=\"contactForm\" #caseNoteDetailForm=\"ngForm\" >\r\n \r\n \r\n\r\n <div> \r\n <mat-form-field>\r\n <mat-label>Contact Date:</mat-label>\r\n <input matInput formControlName=\"contactDate\" \r\n (click)=\"contactDate.open()\" \r\n [matDatepicker]=\"contactDate\" \r\n placeholder=\"Choose a contact date\" \r\n [(ngModel)]=\"editContact.contactDate\" required>\r\n <mat-datepicker-toggle matSuffix [for]=\"contactDate\"></mat-datepicker-toggle>\r\n <mat-datepicker #contactDate></mat-datepicker>\r\n </mat-form-field>\r\n </div> \r\n \r\n \r\n\r\n <div>\r\n <mat-form-field>\r\n <mat-label>Contact Method:</mat-label>\r\n <mat-select placeholder=\"contactMethod\" formControlName=\"contactMethod\" required [(ngModel)]=\"editContact.victimContactMethodId\">\r\n <mat-option *ngFor=\" let contactMethod of contactMethods\" [value]=\"contactMethod.victimContactMethodId\" >{{contactMethod.name}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n \r\n <div> \r\n <mat-form-field class=\"mat-select-content\">\r\n <mat-label>Contact By:</mat-label>\r\n <mat-select formControlName=\"contactBy\" required [(ngModel)]=\"editContact.contactedBy\" class=\"mat-select-inner\">\r\n <mat-option *ngFor=\" let item of staff\" [value]=\"item.staffId\" >{{ item.fullName}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div> \r\n \r\n <div>\r\n\r\n <mat-form-field>\r\n <mat-label>Comments </mat-label>\r\n <textarea \r\n matInput \r\n placeholder=\"\" \r\n required formControlName=\"comment\" \r\n [(ngModel)]=\"editContact.comment\"\r\n cdkTextareaAutosize\r\n #autosize=\"cdkTextareaAutosize\"\r\n cdkAutosizeMinRows=\"1\"\r\n cdkAutosizeMaxRows=\"5\">\r\n </textarea> \r\n </mat-form-field>\r\n </div>\r\n\r\n <div> \r\n <mat-form-field>\r\n <mat-label>Next Contact Date: </mat-label>\r\n <input matInput formControlName=\"nextContactDate\" \r\n (click)=\"nextContactDate.open()\" \r\n [matDatepicker]=\"nextContactDate\" \r\n placeholder=\"Choose a next contact date\" \r\n [(ngModel)]=\"editContact.nextContactDate\" required>\r\n <mat-datepicker-toggle matSuffix [for]=\"nextContactDate\"></mat-datepicker-toggle>\r\n <mat-datepicker #nextContactDate></mat-datepicker>\r\n </mat-form-field>\r\n </div> \r\n \r\n <div>\r\n <!-- <button mat-raised-button color=\"primary\" (click)=\"saveContact()\" [disabled]=\"!contactForm.form.valid\" >Save</button> -->\r\n <button mat-raised-button color=\"primary\" (click)=\"saveContact()\" >Save</button>\r\n &nbsp;&nbsp;<button mat-raised-button color=\"primary\" >Cancel</button>\r\n &nbsp;&nbsp;<button mat-raised-button color=\"primary\" (click)=\"back()\" >Back</button>\r\n </div>\r\n\r\n </form>\r\n </div>\r\n </mat-card>\r\n \r\n \r\n <br>\r\n \r\n\r\n\r\n\r\n</mat-card-content>\r\n</mat-card>",
163
+ template: "\r\n <mat-card>\r\n <mat-card-header>\r\n\r\n </mat-card-header>\r\n <mat-card-content>\r\n \r\n <mat-toolbar color=\"primary\">\r\n <h4 class=\"card-header\" >Contact detail</h4>\r\n </mat-toolbar>\r\n <br>\r\n \r\n\r\n \r\n <mat-card >\r\n <div class='container'> \r\n <form [formGroup]=\"contactForm\" #contactDetailForm=\"ngForm\" >\r\n \r\n \r\n\r\n <div> \r\n <mat-form-field>\r\n <mat-label>Contact Date:</mat-label>\r\n <input matInput formControlName=\"contactDate\" \r\n (click)=\"contactDate.open()\" \r\n [matDatepicker]=\"contactDate\" \r\n placeholder=\"Choose a contact date\" \r\n [(ngModel)]=\"editContact.contactDate\" required>\r\n <mat-datepicker-toggle matSuffix [for]=\"contactDate\"></mat-datepicker-toggle>\r\n <mat-datepicker #contactDate></mat-datepicker>\r\n </mat-form-field>\r\n\r\n <div class=\"validation-errors\">\r\n <div\r\n class=\"help-block\"\r\n *ngIf=\"\r\n contactForm\r\n .get('contactDate')\r\n .hasError('required') &&\r\n (contactForm.get('contactDate').dirty ||\r\n contactForm.get('contactDate').touched)\">\r\n <mat-error>Contact date is\r\n <strong>required</strong></mat-error>\r\n </div>\r\n <div\r\n class=\"help-block\"\r\n *ngIf=\"\r\n contactForm.get('contactDate').hasError('date') &&\r\n (contactForm.get('contactDate').dirty ||\r\n contactForm.get('contactDate').touched)\">\r\n <mat-error >future Date is <strong>not allowed</strong> for contact date</mat-error>\r\n </div>\r\n </div>\r\n </div> \r\n \r\n \r\n\r\n <div>\r\n <mat-form-field>\r\n <mat-label>Contact Method:</mat-label>\r\n <mat-select placeholder=\"contactMethod\" formControlName=\"contactMethod\" required [(ngModel)]=\"editContact.victimContactMethodId\">\r\n <mat-option *ngFor=\" let contactMethod of contactMethods\" [value]=\"contactMethod.victimContactMethodId\" >{{contactMethod.name}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n \r\n <div> \r\n <mat-form-field class=\"mat-select-content\">\r\n <mat-label>Contact By:</mat-label>\r\n <mat-select formControlName=\"contactBy\" required [(ngModel)]=\"editContact.contactedBy\" class=\"mat-select-inner\">\r\n <mat-option *ngFor=\" let item of staff\" [value]=\"item.staffId\" >{{ item.fullName}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div> \r\n \r\n <div>\r\n\r\n <mat-form-field>\r\n <mat-label>Comments </mat-label>\r\n <textarea \r\n matInput \r\n placeholder=\"\" \r\n required formControlName=\"comment\" \r\n [(ngModel)]=\"editContact.comment\"\r\n cdkTextareaAutosize\r\n #autosize=\"cdkTextareaAutosize\"\r\n cdkAutosizeMinRows=\"1\"\r\n cdkAutosizeMaxRows=\"5\">\r\n </textarea> \r\n </mat-form-field>\r\n </div>\r\n\r\n <div> \r\n <mat-form-field>\r\n <mat-label>Next Contact Date: </mat-label>\r\n <input matInput formControlName=\"nextContactDate\" \r\n (click)=\"nextContactDate.open()\" \r\n [matDatepicker]=\"nextContactDate\" \r\n placeholder=\"Choose a next contact date\" \r\n [(ngModel)]=\"editContact.nextContactDate\" required>\r\n <mat-datepicker-toggle matSuffix [for]=\"nextContactDate\"></mat-datepicker-toggle>\r\n <mat-datepicker #nextContactDate></mat-datepicker>\r\n </mat-form-field>\r\n </div> \r\n \r\n <div>\r\n <!-- <button mat-raised-button color=\"primary\" (click)=\"saveContact()\" [disabled]=\"!contactForm.form.valid\" >Save</button> -->\r\n <button mat-raised-button color=\"primary\" (click)=\"saveContact()\" [disabled]=\"!contactForm.valid\" >Save</button>\r\n &nbsp;&nbsp;<button mat-raised-button color=\"primary\" >Cancel</button>\r\n &nbsp;&nbsp;<button mat-raised-button color=\"primary\" (click)=\"back()\" >Back</button>\r\n </div>\r\n\r\n </form>\r\n </div>\r\n </mat-card>\r\n \r\n \r\n <br>\r\n \r\n\r\n\r\n\r\n</mat-card-content>\r\n</mat-card>",
160
164
  styles: ["mat-form-field{width:50%}.container{margin:16px;display:-ms-grid;display:grid;-ms-grid-columns:(1fr)[1];grid-template-columns:repeat(1,1fr);grid-gap:10px;grid-auto-rows:minmax(50px,auto);justify-items:stretch}.mat-select-content{width:300px}.mat-select-inner{width:290px}"]
161
165
  }] }
162
166
  ];
@@ -225,4 +229,4 @@ if (false) {
225
229
  */
226
230
  ContactComponent.prototype.smartAuthService;
227
231
  }
228
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGFjdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AY3NtYXJ0L25nYy1zbWFydC12aWN0aW0vIiwic291cmNlcyI6WyJsaWIvY29udGFjdC9jb250YWN0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQXVFLE1BQU0sZUFBZSxDQUFDO0FBQy9HLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFlLE1BQU0sZ0JBQWdCLENBQUM7QUFFckUsT0FBTyxFQUEyQyxXQUFXLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQUV4RixPQUFPLEVBQUUsTUFBTSxFQUFFLGNBQWMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRXpELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBTTFELE1BQU0sT0FBTyxnQkFBZ0I7Ozs7Ozs7O0lBa0IzQixZQUVVLHdCQUErQyxFQUVoRCxRQUFxQixFQUNwQixLQUFxQixFQUNyQixNQUFjLEVBQ2QsZ0JBQWtDO1FBTGxDLDZCQUF3QixHQUF4Qix3QkFBd0IsQ0FBdUI7UUFFaEQsYUFBUSxHQUFSLFFBQVEsQ0FBYTtRQUNwQixVQUFLLEdBQUwsS0FBSyxDQUFnQjtRQUNyQixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQXBCNUMsZ0JBQVcsR0FBWSxtQkFBUyxFQUFFLEVBQUEsQ0FBQztRQVduQyxVQUFLLEdBQVEsRUFBRSxDQUFDO1FBWWQsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLFNBQVMsQ0FBQztZQUMvQixXQUFXLEVBQUUsSUFBSSxXQUFXLEVBQUU7WUFDOUIsYUFBYSxFQUFFLElBQUksV0FBVyxFQUFFO1lBQ2hDLFNBQVMsRUFBRSxJQUFJLFdBQVcsRUFBRTtZQUM1QixPQUFPLEVBQUUsSUFB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QVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTOzs7O1FBQ3pELE1BQU0sQ0FBQyxFQUFFO1lBQ1AsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLEVBQUUsRUFBRSxFQUFFO2dCQUM3QyxRQUFRLEVBQUUsSUFBSTthQUNqQixDQUFDLENBQUM7WUFFSCxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFFLENBQUMsQ0FBQztRQUN2RCxDQUFDLEVBQ0YsQ0FBQztJQUNGLENBQUM7OztZQTlKSixTQUFTLFNBQUM7Z0JBQ1QsODdPQUF1Qzs7YUFFeEM7Ozs7WUFaUSxxQkFBcUI7WUFHb0IsV0FBVztZQUU1QyxjQUFjO1lBQXRCLE1BQU07WUFFTixnQkFBZ0I7Ozs7SUFRdkIsc0NBQW1COztJQUNuQixzQ0FBdUI7O0lBQ3ZCLG1DQUFpQjs7SUFDakIsdUNBQW1DOztJQUNuQyx3Q0FBcUI7O0lBQ3JCLDBDQUFzQjs7SUFDdEIscUNBQWlCOztJQUNqQixrQ0FBWTs7SUFDWixzQ0FBbUI7O0lBQ25CLG1DQUFnQjs7SUFDaEIsb0NBQWlCOztJQUNqQiw0Q0FBMEI7O0lBQzFCLHVDQUF1Qjs7Ozs7SUFDdkIsK0JBQWlCOztJQUNqQixpQ0FBZ0I7Ozs7O0lBSWQsb0RBQXVEOztJQUV2RCxvQ0FBNEI7Ozs7O0lBQzVCLGlDQUE2Qjs7Ozs7SUFDN0Isa0NBQXNCOzs7OztJQUN0Qiw0Q0FBMEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCxJbmplY3QsT25DaGFuZ2VzLCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsQWZ0ZXJWaWV3SW5pdCAgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTmdjU21hcnRWaWN0aW1TZXJ2aWNlIH0gZnJvbSAnLi4vc21hcnQtdmljdGltLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBGb3JtQnVpbGRlciB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgQ29tbW9uRGlhbG9nU2VydmljZX0gZnJvbSAnLi4vLi9jb21tb24tZGlhbG9nL2NvbW1vbi1kaWFsb2cuc2VydmljZSc7XHJcbmltcG9ydCB7IE1hdERpYWxvZywgTWF0RGlhbG9nUmVmLCBNQVRfRElBTE9HX0RBVEEsTWF0U25hY2tCYXJ9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsJztcclxuaW1wb3J0IHsgU2VsZWN0ZWRPZmZlbmRlciwgTG9naW5TdGFmZiB9IGZyb20gJ0Bjc21hcnQvbmdjLXNtYXJ0LWNvcmUnO1xyXG5pbXBvcnQgeyBSb3V0ZXIsIEFjdGl2YXRlZFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgQ29udGFjdH0gZnJvbSAnLi4vc21hcnQtdmljdGltLm1vZGVsJztcclxuaW1wb3J0IHsgU21hcnRBdXRoU2VydmljZSB9IGZyb20gJ0Bjc21hcnQvbmdjLXNtYXJ0LWNvcmUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgdGVtcGxhdGVVcmw6ICcuL2NvbnRhY3QuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2NvbnRhY3QuY29tcG9uZW50LmNzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ29udGFjdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCxBZnRlclZpZXdJbml0ICB7XHJcblxyXG4gIG9mZmVuZGVySWQ6IG51bWJlcjtcclxuICBsb2dpblN0YWZmOiBMb2dpblN0YWZmO1xyXG4gIGNvbnRhY3Q6IENvbnRhY3Q7XHJcbiAgZWRpdENvbnRhY3Q6IENvbnRhY3QgPSA8Q29udGFjdD57fTtcclxuICBlcnJvck1lc3NhZ2U6IHN0cmluZztcclxuICBjb250YWN0TWV0aG9kczogYW55W107XHJcbiAgY29udGFjdEJ5OiBhbnlbXTtcclxuICByZXN1bHQ6IGFueTtcclxuICB2aWN0aW1OYW1lOiBzdHJpbmc7XHJcbiAgc3RhZmZJZDogbnVtYmVyO1xyXG4gIHZpY3RpbUlkOiBudW1iZXI7XHJcbiAgaGlkZGVuQWRkTmV3RmxhZzogYm9vbGVhbjtcclxuICBjb250YWN0Rm9ybTogRm9ybUdyb3VwO1xyXG4gIHByaXZhdGUgc3ViOiBhbnk7XHJcbiAgc3RhZmY6IGFueSA9IHt9O1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuXHJcbiAgICBwcml2YXRlIF92aWN0aW1TZXJ2aWNlc0NvbXBvbmVudDogTmdjU21hcnRWaWN0aW1TZXJ2aWNlLFxyXG4gICAgLy9wcml2YXRlIGNvbW1vbkRpYWxvZ1NlcnZpY2U6IENvbW1vbkRpYWxvZ1NlcnZpY2UsXHJcbiAgICBwdWJsaWMgc25hY2tCYXI6IE1hdFNuYWNrQmFyLFxyXG4gICAgcHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXHJcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxyXG4gICAgcHJpdmF0ZSBzbWFydEF1dGhTZXJ2aWNlOiBTbWFydEF1dGhTZXJ2aWNlLFxyXG4gICAgIFxyXG4gICkge1xyXG4gICAgdGhpcy5jb250YWN0Rm9ybSA9IG5ldyBGb3JtR3JvdXAoe1xyXG4gICAgICBjb250YWN0RGF0ZTogbmV3IEZvcm1Db250cm9sKCksXHJcbiAgICAgIGNvbnRhY3RNZXRob2Q6IG5ldyBGb3JtQ29udHJvbCgpLFxyXG4gICAgICBjb250YWN0Qnk6IG5ldyBGb3JtQ29udHJvbCgpLFxyXG4gICAgICBjb21tZW50OiBuZXcgRm9ybUNvbnRyb2woKSxcclxuICAgICAgbmV4dENvbnRhY3REYXRlOiBuZXcgRm9ybUNvbnRyb2woKVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgdGhpcy5zbWFydEF1dGhTZXJ2aWNlLnNldFBlcm1pc3Npb24oJ1ZpY3RpbScsIHRoaXMucm91dGUuc25hcHNob3QpO1xyXG4gIH1cclxuIFxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdmFyIGRhdGEgPSB0aGlzLnJvdXRlLnNuYXBzaG90LmRhdGE7XHJcbiAgICB0aGlzLmxvZ2luU3RhZmYgPSBkYXRhLmxvZ2luU3RhZmY7XHJcbiAgICB0aGlzLnN0YWZmSWQgPSAgdGhpcy5sb2dpblN0YWZmLnN0YWZmSWQ7XHJcbiAgIFxyXG4gICAgdGhpcy5zdGFmZiA9IFtcclxuICAgICAge1xyXG4gICAgICAgIHN0YWZmSWQ6IHRoaXMubG9naW5TdGFmZi5zdGFmZklkLFxyXG4gICAgICAgIGZ1bGxOYW1lOiB0aGlzLmxvZ2luU3RhZmYuZmlyc3ROYW1lICsgJyAnICsgdGhpcy5sb2dpblN0YWZmLmxhc3ROYW1lLFxyXG4gICAgICB9LFxyXG4gICAgXTtcclxuXHJcblxyXG4gICAgdGhpcy5zdWIgPSB0aGlzLnJvdXRlLnBhcmFtcy5zdWJzY3JpYmUocGFyYW1zID0+IHtcclxuICAgICAgdGhpcy52aWN0aW1JZCA9IHBhcmFtc1sndmljdGltSWQnXTtcclxuICAgICAgY29uc29sZS5sb2coJ215IHRoaXMudmljdGltSWQnKTtcclxuICAgICAgY29uc29sZS5sb2codGhpcy52aWN0aW1JZCk7XHJcbiBcclxuICAgIH0pO1xyXG5cclxuXHJcbiAgICB0aGlzLl92aWN0aW1TZXJ2aWNlc0NvbXBvbmVudC5nZXRDb250YWN0TWV0aG9kcygpLnN1YnNjcmliZShcclxuICAgICAgKGl0ZW1zOiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLmNvbnRhY3RNZXRob2RzID0gaXRlbXM7XHJcbiAgICAgICAgY29uc29sZS5sb2coJ3RoaXMuY29udGFjdE1ldGhvZHMnKTtcclxuICAgICAgICBjb25zb2xlLmxvZyh0aGlzLmNvbnRhY3RNZXRob2RzKTtcclxuICAgICAgfVxyXG4gICAgKTtcclxuXHJcbiAgICAvLyB0aGlzLl92aWN0aW1TZXJ2aWNlc0NvbXBvbmVudC5nZXRDb250YWN0QnlzKCkuc3Vic2NyaWJlKFxyXG4gICAgLy8gICAoaXRlbXM6IGFueSkgPT4ge1xyXG4gICAgLy8gICAgIHRoaXMuY29udGFjdEJ5PSBpdGVtcztcclxuICAgIC8vICAgfVxyXG4gICAgLy8gKTtcclxuXHJcbiAgICBcclxuICAgIC8vIHRoaXMuX3ZpY3RpbVNlcnZpY2VzQ29tcG9uZW50LmdldENvbnRhY3RzKHRoaXMudmljdGltSWQpLnN1YnNjcmliZShcclxuICAgIC8vICAgY2FzZU5vdGVMaXN0ID0+IHtcclxuICAgICBcclxuICAgIC8vICAgICB0aGlzLmNhc2VOb3RlTGlzdCA9IGNhc2VOb3RlTGlzdDsgXHJcbiAgICAgIFxyXG4gICAgLy8gICB9XHJcbiAgICAvLyApO1xyXG4gXHJcbiAgfVxyXG4gIG9uRWRpdENvbnRhY3QodmljdGltQ29udGFjdElkOiBudW1iZXIpe1xyXG4gIFxyXG4gICAgLy8gdGhpcy5oaWRkZW5EZXRhaWxGbGFnID1mYWxzZTtcclxuICAgIC8vIHRoaXMuaGlkZGVuQWRkTmV3RmxhZyA9IHRydWU7XHJcblxyXG4gICAgLy8gdGhpcy5hZGREaXNhYmxlRmxhZyA9IHRydWU7XHJcbiAgICAvLyB0aGlzLmVkaXRDYXNlTm90ZSA9IHRoaXMuY2FzZU5vdGVMaXN0LmZpbmQoeCA9PiB4LnZpY3RpbUNhc2VOb3RlSWQgPT09IHZpY3RpbUNhc2VOb3RlSWQpO1xyXG5cclxuICB9XHJcbiBcclxuICAvLyBvbkRlbGV0ZUNhc2VOb3RlKHZpY3RpbUNhc2VOb3RlSWQ6IG51bWJlcil7XHJcbiAgLy8gICAgdGhpcy5jb21tb25EaWFsb2dTZXJ2aWNlXHJcbiAgLy8gICAuY29uZmlybSgnJywgJ0RvIHlvdSB3YW50IHRvIGRlbGV0ZSB0aGlzIGNhc2Ugbm90ZT8nLCAnWWVzJywgJ05vJylcclxuICAvLyAgIC5zdWJzY3JpYmUocmVzID0+IHt0aGlzLnJlc3VsdCA9ICByZXM7XHJcbiAgLy8gICAgICAgaWYgKHRoaXMucmVzdWx0KSB7XHJcbiAgLy8gICAgICAgICAgIHRoaXMuX3ZpY3RpbVNlcnZpY2VzQ29tcG9uZW50LmRlbGV0ZUNhc2VOb3RlKHZpY3RpbUNhc2VOb3RlSWQsIHRoaXMuc3RhZmZJZClcclxuICAvLyAgICAgICAgICAgIC5zdWJzY3JpYmUocmVzdWx0ID0+IHtcclxuICAvLyAgICAgICAgICAgICAgIHRoaXMuc25hY2tCYXIub3BlbignZGVsZXRlIFN1Y2Nlc3NmdWxseSAhJywgJycsIHsgZHVyYXRpb246IDMwMDAsfSk7XHJcblxyXG4gIC8vICAgICAgICAgICB0aGlzLl92aWN0aW1TZXJ2aWNlc0NvbXBvbmVudC5nZXRDYXNldE5vdGVzKHRoaXMudmljdGltSWQpLnN1YnNjcmliZShcclxuICAvLyAgICAgICAgICAgICBjYXNlTm90ZUxpc3QgPT4ge1xyXG4gIC8vICAgICAgICAgICAgICAgdGhpcy5jYXNlTm90ZUxpc3QgPSBjYXNlTm90ZUxpc3Q7IFxyXG4gICAgICAgICAgICAgIFxyXG4gIC8vICAgICAgICAgICAgIH1cclxuICAvLyAgICAgICAgICAgKTtcclxuICAvLyAgICAgICAgICAgICAgfVxyXG4gIC8vICAgICAgICAgICAgKTtcclxuICAvLyAgICAgICB9XHJcblxyXG4gIC8vICAgIH0pO1xyXG4gIC8vIH1cclxuICBvbkFkZE5ldygpe1xyXG4gICBcclxuICAgIC8vIHRoaXMuZWRpdENhcy5jYXNlTm90ZURhdGUgPSBudWxsO1xyXG4gICAgLy8gdGhpcy5lZGl0Q2FzZU5vdGUuY29udGFjdFR5cGVJZCA9IG51bGw7XHJcbiAgICAvLyB0aGlzLmVkaXRDYXNlTm90ZS52aWN0aW1Db250YWN0UHVycG9zZUlkID0gbnVsbDtcclxuICAgIC8vIHRoaXMuZWRpdENhc2VOb3RlLmNvbW1lbnQgPSBudWxsO1xyXG4gIH1cclxuICBiYWNrKCl7XHJcblxyXG4gXHJcbiAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJ3ZpY3RpbURldGFpbCcsIHRoaXMudmljdGltSWQgXSk7IFxyXG4gIH1cclxuIFxyXG4gIHNhdmVDb250YWN0KCl7XHJcblxyXG4gICAgICAgIGNvbnN0IGNvbnRhY3Q6IENvbnRhY3QgPSB7XHJcbiAgICAgICAgdmljdGltSWQ6dGhpcy52aWN0aW1JZCxcclxuICAgICAgICB2aWN0aW1Db250YWN0SWQ6IDAsXHJcbiAgICAgICAgY29udGFjdERhdGU6IHRoaXMuZWRpdENvbnRhY3QuY29udGFjdERhdGUsXHJcbiAgICAgICAgdmljdGltQ29udGFjdE1ldGhvZElkOiB0aGlzLmVkaXRDb250YWN0LnZpY3RpbUNvbnRhY3RNZXRob2RJZCxcclxuICAgICAgICBjb250YWN0TWV0aG9kOiBudWxsLFxyXG4gICAgICAgIGNvbnRhY3RlZEJ5TmFtZTogbnVsbCxcclxuICAgICAgICBjb250YWN0ZWRCeTogdGhpcy5lZGl0Q29udGFjdC5jb250YWN0ZWRCeSxcclxuICAgICAgICBjb21tZW50OiB0aGlzLmVkaXRDb250YWN0LmNvbW1lbnQsXHJcbiAgICAgICAgbmV4dENvbnRhY3REYXRlOiB0aGlzLmVkaXRDb250YWN0Lm5leHRDb250YWN0RGF0ZSxcclxuICAgICAgICBtb2RpZmllZEJ5OiB0aGlzLnN0YWZmSWQsXHJcbiAgICBcclxuICAgIH07XHJcbiAgICB0aGlzLl92aWN0aW1TZXJ2aWNlc0NvbXBvbmVudC5hZGRDb250YWN0KGNvbnRhY3QpLnN1YnNjcmliZShcclxuICAgICAgcmVzdWx0ID0+IHtcclxuICAgICAgICB0aGlzLnNuYWNrQmFyLm9wZW4oJ1NhdmVkIFN1Y2Nlc3NmdWxseSAhJywgJycsIHtcclxuICAgICAgICAgIGR1cmF0aW9uOiAzMDAwLFxyXG4gICAgICB9KTtcclxuXHJcbiAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsndmljdGltRGV0YWlsJywgdGhpcy52aWN0aW1JZCBdKTsgXHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgICB9XHJcblxyXG59XHJcbiJdfQ==
232
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGFjdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AY3NtYXJ0L25nYy1zbWFydC12aWN0aW0vIiwic291cmNlcyI6WyJsaWIvY29udGFjdC9jb250YWN0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQXVFLE1BQU0sZUFBZSxDQUFDO0FBQy9HLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFjLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWhGLE9BQU8sRUFBMkMsV0FBVyxFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFFeEYsT0FBTyxFQUFFLE1BQU0sRUFBRSxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUV6RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUMxRCxPQUFPLEVBQUUsYUFBYSxFQUFpQyxNQUFNLHNCQUFzQixDQUFDO0FBTXBGLE1BQU0sT0FBTyxnQkFBZ0I7Ozs7Ozs7O0lBa0IzQixZQUVVLHdCQUErQyxFQUVoRCxRQUFxQixFQUNwQixLQUFxQixFQUNyQixNQUFjLEVBQ2QsZ0JBQWtDO1FBTGxDLDZCQUF3QixHQUF4Qix3QkFBd0IsQ0FBdUI7UUFFaEQsYUFBUSxHQUFSLFFBQVEsQ0FBYTtRQUNwQixVQUFLLEdBQUwsS0FBSyxDQUFnQjtRQUNyQixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQXBCNUMsZ0JBQVcsR0FBWSxtQkFBUyxFQUFFLEVBQUEsQ0FBQztRQVduQyxVQUFLLEdBQVEsRUFBRSxDQUFDO1FBWWQsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLFNBQVMsQ0FBQzs7WUFFL0IsV0FBVyxFQUFDLElBQUksV0FBVyxDQUFDLEVBQUUsRUFBRSxVQUFVLENBQUMsT0FBTyxD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Q0FBQyxPQUFPO1lBQ2pDLGVBQWUsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLGVBQWU7WUFDakQsVUFBVSxFQUFFLElBQUksQ0FBQyxPQUFPO1NBRTNCO1FBQ0QsSUFBSSxDQUFDLHdCQUF3QixDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTOzs7O1FBQ3pELE1BQU0sQ0FBQyxFQUFFO1lBQ1AsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLEVBQUUsRUFBRSxFQUFFO2dCQUM3QyxRQUFRLEVBQUUsSUFBSTthQUNqQixDQUFDLENBQUM7WUFFSCxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFFLENBQUMsQ0FBQztRQUN2RCxDQUFDLEVBQ0YsQ0FBQztJQUNGLENBQUM7OztZQWpLSixTQUFTLFNBQUM7Z0JBQ1QsODZTQUF1Qzs7YUFFeEM7Ozs7WUFiUSxxQkFBcUI7WUFHb0IsV0FBVztZQUU1QyxjQUFjO1lBQXRCLE1BQU07WUFFTixnQkFBZ0I7Ozs7SUFTdkIsc0NBQW1COztJQUNuQixzQ0FBdUI7O0lBQ3ZCLG1DQUFpQjs7SUFDakIsdUNBQW1DOztJQUNuQyx3Q0FBcUI7O0lBQ3JCLDBDQUFzQjs7SUFDdEIscUNBQWlCOztJQUNqQixrQ0FBWTs7SUFDWixzQ0FBbUI7O0lBQ25CLG1DQUFnQjs7SUFDaEIsb0NBQWlCOztJQUNqQiw0Q0FBMEI7O0lBQzFCLHVDQUF1Qjs7Ozs7SUFDdkIsK0JBQWlCOztJQUNqQixpQ0FBZ0I7Ozs7O0lBSWQsb0RBQXVEOztJQUV2RCxvQ0FBNEI7Ozs7O0lBQzVCLGlDQUE2Qjs7Ozs7SUFDN0Isa0NBQXNCOzs7OztJQUN0Qiw0Q0FBMEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCxJbmplY3QsT25DaGFuZ2VzLCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsQWZ0ZXJWaWV3SW5pdCAgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTmdjU21hcnRWaWN0aW1TZXJ2aWNlIH0gZnJvbSAnLi4vc21hcnQtdmljdGltLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBGb3JtQnVpbGRlcixWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBDb21tb25EaWFsb2dTZXJ2aWNlfSBmcm9tICcuLi8uL2NvbW1vbi1kaWFsb2cvY29tbW9uLWRpYWxvZy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTWF0RGlhbG9nLCBNYXREaWFsb2dSZWYsIE1BVF9ESUFMT0dfREFUQSxNYXRTbmFja0Jhcn0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwnO1xyXG5pbXBvcnQgeyBTZWxlY3RlZE9mZmVuZGVyLCBMb2dpblN0YWZmIH0gZnJvbSAnQGNzbWFydC9uZ2Mtc21hcnQtY29yZSc7XHJcbmltcG9ydCB7IFJvdXRlciwgQWN0aXZhdGVkUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBDb250YWN0fSBmcm9tICcuLi9zbWFydC12aWN0aW0ubW9kZWwnO1xyXG5pbXBvcnQgeyBTbWFydEF1dGhTZXJ2aWNlIH0gZnJvbSAnQGNzbWFydC9uZ2Mtc21hcnQtY29yZSc7XHJcbmltcG9ydCB7IGRhdGVWYWxpZGF0b3IscGFzc0RhdGVWYWxpZGF0b3IsZGF0ZUxlc3NUaGFuIH0gZnJvbSAnLi4vc2hhcmVkL3ZhbGlkYXRvcnMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgdGVtcGxhdGVVcmw6ICcuL2NvbnRhY3QuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2NvbnRhY3QuY29tcG9uZW50LmNzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ29udGFjdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCxBZnRlclZpZXdJbml0ICB7XHJcblxyXG4gIG9mZmVuZGVySWQ6IG51bWJlcjtcclxuICBsb2dpblN0YWZmOiBMb2dpblN0YWZmO1xyXG4gIGNvbnRhY3Q6IENvbnRhY3Q7XHJcbiAgZWRpdENvbnRhY3Q6IENvbnRhY3QgPSA8Q29udGFjdD57fTtcclxuICBlcnJvck1lc3NhZ2U6IHN0cmluZztcclxuICBjb250YWN0TWV0aG9kczogYW55W107XHJcbiAgY29udGFjdEJ5OiBhbnlbXTtcclxuICByZXN1bHQ6IGFueTtcclxuICB2aWN0aW1OYW1lOiBzdHJpbmc7XHJcbiAgc3RhZmZJZDogbnVtYmVyO1xyXG4gIHZpY3RpbUlkOiBudW1iZXI7XHJcbiAgaGlkZGVuQWRkTmV3RmxhZzogYm9vbGVhbjtcclxuICBjb250YWN0Rm9ybTogRm9ybUdyb3VwO1xyXG4gIHByaXZhdGUgc3ViOiBhbnk7XHJcbiAgc3RhZmY6IGFueSA9IHt9O1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuXHJcbiAgICBwcml2YXRlIF92aWN0aW1TZXJ2aWNlc0NvbXBvbmVudDogTmdjU21hcnRWaWN0aW1TZXJ2aWNlLFxyXG4gICAgLy9wcml2YXRlIGNvbW1vbkRpYWxvZ1NlcnZpY2U6IENvbW1vbkRpYWxvZ1NlcnZpY2UsXHJcbiAgICBwdWJsaWMgc25hY2tCYXI6IE1hdFNuYWNrQmFyLFxyXG4gICAgcHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXHJcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxyXG4gICAgcHJpdmF0ZSBzbWFydEF1dGhTZXJ2aWNlOiBTbWFydEF1dGhTZXJ2aWNlLFxyXG4gICAgIFxyXG4gICkge1xyXG4gICAgdGhpcy5jb250YWN0Rm9ybSA9IG5ldyBGb3JtR3JvdXAoe1xyXG4gICAgICAvL2NvbnRhY3REYXRlOiBuZXcgRm9ybUNvbnRyb2woKSxcclxuICAgICAgY29udGFjdERhdGU6bmV3IEZvcm1Db250cm9sKCcnLCBWYWxpZGF0b3JzLmNvbXBvc2UoW1xyXG4gICAgICAgIGRhdGVWYWxpZGF0b3IoKVx0ICBdKSksXHJcblxyXG4gICAgICBjb250YWN0TWV0aG9kOiBuZXcgRm9ybUNvbnRyb2woKSxcclxuICAgICAgY29udGFjdEJ5OiBuZXcgRm9ybUNvbnRyb2woKSxcclxuICAgICAgY29tbWVudDogbmV3IEZvcm1Db250cm9sKCksXHJcbiAgICAgIG5leHRDb250YWN0RGF0ZTogbmV3IEZvcm1Db250cm9sKClcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgIHRoaXMuc21hcnRBdXRoU2VydmljZS5zZXRQZXJtaXNzaW9uKCdWaWN0aW0nLCB0aGlzLnJvdXRlLnNuYXBzaG90KTtcclxuICB9XHJcbiBcclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHZhciBkYXRhID0gdGhpcy5yb3V0ZS5zbmFwc2hvdC5kYXRhO1xyXG4gICAgdGhpcy5sb2dpblN0YWZmID0gZGF0YS5sb2dpblN0YWZmO1xyXG4gICAgdGhpcy5zdGFmZklkID0gIHRoaXMubG9naW5TdGFmZi5zdGFmZklkO1xyXG4gICBcclxuICAgIHRoaXMuc3RhZmYgPSBbXHJcbiAgICAgIHtcclxuICAgICAgICBzdGFmZklkOiB0aGlzLmxvZ2luU3RhZmYuc3RhZmZJZCxcclxuICAgICAgICBmdWxsTmFtZTogdGhpcy5sb2dpblN0YWZmLmZpcnN0TmFtZSArICcgJyArIHRoaXMubG9naW5TdGFmZi5sYXN0TmFtZSxcclxuICAgICAgfSxcclxuICAgIF07XHJcblxyXG5cclxuICAgIHRoaXMuc3ViID0gdGhpcy5yb3V0ZS5wYXJhbXMuc3Vic2NyaWJlKHBhcmFtcyA9PiB7XHJcbiAgICAgIHRoaXMudmljdGltSWQgPSBwYXJhbXNbJ3ZpY3RpbUlkJ107XHJcbiAgICAgIGNvbnNvbGUubG9nKCdteSB0aGlzLnZpY3RpbUlkJyk7XHJcbiAgICAgIGNvbnNvbGUubG9nKHRoaXMudmljdGltSWQpO1xyXG4gXHJcbiAgICB9KTtcclxuXHJcblxyXG4gICAgdGhpcy5fdmljdGltU2VydmljZXNDb21wb25lbnQuZ2V0Q29udGFjdE1ldGhvZHMoKS5zdWJzY3JpYmUoXHJcbiAgICAgIChpdGVtczogYW55KSA9PiB7XHJcbiAgICAgICAgdGhpcy5jb250YWN0TWV0aG9kcyA9IGl0ZW1zO1xyXG4gICAgICAgIGNvbnNvbGUubG9nKCd0aGlzLmNvbnRhY3RNZXRob2RzJyk7XHJcbiAgICAgICAgY29uc29sZS5sb2codGhpcy5jb250YWN0TWV0aG9kcyk7XHJcbiAgICAgIH1cclxuICAgICk7XHJcblxyXG4gICAgLy8gdGhpcy5fdmljdGltU2VydmljZXNDb21wb25lbnQuZ2V0Q29udGFjdEJ5cygpLnN1YnNjcmliZShcclxuICAgIC8vICAgKGl0ZW1zOiBhbnkpID0+IHtcclxuICAgIC8vICAgICB0aGlzLmNvbnRhY3RCeT0gaXRlbXM7XHJcbiAgICAvLyAgIH1cclxuICAgIC8vICk7XHJcblxyXG4gICAgXHJcbiAgICAvLyB0aGlzLl92aWN0aW1TZXJ2aWNlc0NvbXBvbmVudC5nZXRDb250YWN0cyh0aGlzLnZpY3RpbUlkKS5zdWJzY3JpYmUoXHJcbiAgICAvLyAgIGNhc2VOb3RlTGlzdCA9PiB7XHJcbiAgICAgXHJcbiAgICAvLyAgICAgdGhpcy5jYXNlTm90ZUxpc3QgPSBjYXNlTm90ZUxpc3Q7IFxyXG4gICAgICBcclxuICAgIC8vICAgfVxyXG4gICAgLy8gKTtcclxuIFxyXG4gIH1cclxuICBvbkVkaXRDb250YWN0KHZpY3RpbUNvbnRhY3RJZDogbnVtYmVyKXtcclxuICBcclxuICAgIC8vIHRoaXMuaGlkZGVuRGV0YWlsRmxhZyA9ZmFsc2U7XHJcbiAgICAvLyB0aGlzLmhpZGRlbkFkZE5ld0ZsYWcgPSB0cnVlO1xyXG5cclxuICAgIC8vIHRoaXMuYWRkRGlzYWJsZUZsYWcgPSB0cnVlO1xyXG4gICAgLy8gdGhpcy5lZGl0Q2FzZU5vdGUgPSB0aGlzLmNhc2VOb3RlTGlzdC5maW5kKHggPT4geC52aWN0aW1DYXNlTm90ZUlkID09PSB2aWN0aW1DYXNlTm90ZUlkKTtcclxuXHJcbiAgfVxyXG4gXHJcbiAgLy8gb25EZWxldGVDYXNlTm90ZSh2aWN0aW1DYXNlTm90ZUlkOiBudW1iZXIpe1xyXG4gIC8vICAgIHRoaXMuY29tbW9uRGlhbG9nU2VydmljZVxyXG4gIC8vICAgLmNvbmZpcm0oJycsICdEbyB5b3Ugd2FudCB0byBkZWxldGUgdGhpcyBjYXNlIG5vdGU/JywgJ1llcycsICdObycpXHJcbiAgLy8gICAuc3Vic2NyaWJlKHJlcyA9PiB7dGhpcy5yZXN1bHQgPSAgcmVzO1xyXG4gIC8vICAgICAgIGlmICh0aGlzLnJlc3VsdCkge1xyXG4gIC8vICAgICAgICAgICB0aGlzLl92aWN0aW1TZXJ2aWNlc0NvbXBvbmVudC5kZWxldGVDYXNlTm90ZSh2aWN0aW1DYXNlTm90ZUlkLCB0aGlzLnN0YWZmSWQpXHJcbiAgLy8gICAgICAgICAgICAuc3Vic2NyaWJlKHJlc3VsdCA9PiB7XHJcbiAgLy8gICAgICAgICAgICAgICB0aGlzLnNuYWNrQmFyLm9wZW4oJ2RlbGV0ZSBTdWNjZXNzZnVsbHkgIScsICcnLCB7IGR1cmF0aW9uOiAzMDAwLH0pO1xyXG5cclxuICAvLyAgICAgICAgICAgdGhpcy5fdmljdGltU2VydmljZXNDb21wb25lbnQuZ2V0Q2FzZXROb3Rlcyh0aGlzLnZpY3RpbUlkKS5zdWJzY3JpYmUoXHJcbiAgLy8gICAgICAgICAgICAgY2FzZU5vdGVMaXN0ID0+IHtcclxuICAvLyAgICAgICAgICAgICAgIHRoaXMuY2FzZU5vdGVMaXN0ID0gY2FzZU5vdGVMaXN0OyBcclxuICAgICAgICAgICAgICBcclxuICAvLyAgICAgICAgICAgICB9XHJcbiAgLy8gICAgICAgICAgICk7XHJcbiAgLy8gICAgICAgICAgICAgIH1cclxuICAvLyAgICAgICAgICAgICk7XHJcbiAgLy8gICAgICAgfVxyXG5cclxuICAvLyAgICB9KTtcclxuICAvLyB9XHJcbiAgb25BZGROZXcoKXtcclxuICAgXHJcbiAgICAvLyB0aGlzLmVkaXRDYXMuY2FzZU5vdGVEYXRlID0gbnVsbDtcclxuICAgIC8vIHRoaXMuZWRpdENhc2VOb3RlLmNvbnRhY3RUeXBlSWQgPSBudWxsO1xyXG4gICAgLy8gdGhpcy5lZGl0Q2FzZU5vdGUudmljdGltQ29udGFjdFB1cnBvc2VJZCA9IG51bGw7XHJcbiAgICAvLyB0aGlzLmVkaXRDYXNlTm90ZS5jb21tZW50ID0gbnVsbDtcclxuICB9XHJcbiAgYmFjaygpe1xyXG5cclxuIFxyXG4gICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWyd2aWN0aW1EZXRhaWwnLCB0aGlzLnZpY3RpbUlkIF0pOyBcclxuICB9XHJcbiBcclxuICBzYXZlQ29udGFjdCgpe1xyXG5cclxuICAgICAgICBjb25zdCBjb250YWN0OiBDb250YWN0ID0ge1xyXG4gICAgICAgIHZpY3RpbUlkOnRoaXMudmljdGltSWQsXHJcbiAgICAgICAgdmljdGltQ29udGFjdElkOiAwLFxyXG4gICAgICAgIGNvbnRhY3REYXRlOiB0aGlzLmVkaXRDb250YWN0LmNvbnRhY3REYXRlLFxyXG4gICAgICAgIHZpY3RpbUNvbnRhY3RNZXRob2RJZDogdGhpcy5lZGl0Q29udGFjdC52aWN0aW1Db250YWN0TWV0aG9kSWQsXHJcbiAgICAgICAgY29udGFjdE1ldGhvZDogbnVsbCxcclxuICAgICAgICBjb250YWN0ZWRCeU5hbWU6IG51bGwsXHJcbiAgICAgICAgY29udGFjdGVkQnk6IHRoaXMuZWRpdENvbnRhY3QuY29udGFjdGVkQnksXHJcbiAgICAgICAgY29tbWVudDogdGhpcy5lZGl0Q29udGFjdC5jb21tZW50LFxyXG4gICAgICAgIG5leHRDb250YWN0RGF0ZTogdGhpcy5lZGl0Q29udGFjdC5uZXh0Q29udGFjdERhdGUsXHJcbiAgICAgICAgbW9kaWZpZWRCeTogdGhpcy5zdGFmZklkLFxyXG4gICAgXHJcbiAgICB9O1xyXG4gICAgdGhpcy5fdmljdGltU2VydmljZXNDb21wb25lbnQuYWRkQ29udGFjdChjb250YWN0KS5zdWJzY3JpYmUoXHJcbiAgICAgIHJlc3VsdCA9PiB7XHJcbiAgICAgICAgdGhpcy5zbmFja0Jhci5vcGVuKCdTYXZlZCBTdWNjZXNzZnVsbHkgIScsICcnLCB7XHJcbiAgICAgICAgICBkdXJhdGlvbjogMzAwMCxcclxuICAgICAgfSk7XHJcblxyXG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJ3ZpY3RpbURldGFpbCcsIHRoaXMudmljdGltSWQgXSk7IFxyXG4gICAgICB9XHJcbiAgICApO1xyXG4gICAgfVxyXG5cclxufVxyXG4iXX0=