@reusa/ngx-reusa-app-lib 0.0.1325 → 0.0.1329
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/components/claim-info/claim-info.component.mjs +2 -2
- package/esm2022/lib/components/weekly-cert-employer/weekly-cert-employer.component.mjs +22 -23
- package/esm2022/lib/components/weekly-work-search-employer-ms/work-search-employer-ms.component.mjs +35 -36
- package/esm2022/lib/services/claims/claims.service.mjs +4 -1
- package/fesm2022/reusa-ngx-reusa-app-lib.mjs +63 -62
- package/fesm2022/reusa-ngx-reusa-app-lib.mjs.map +1 -1
- package/lib/services/claims/claims.service.d.ts +1 -0
- package/lib/services/claims/claims.service.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -326,7 +326,7 @@ export class ClaimInfoComponent {
|
|
|
326
326
|
/*for local testing, set ssn in context service */
|
|
327
327
|
//this.claimantContextService.setSsn('766010020');
|
|
328
328
|
//this.claimantContextService.setClaimantId('1760136');
|
|
329
|
-
this.cs.
|
|
329
|
+
this.cs.determineInitialClaimEligibilityForCsr().subscribe(res => {
|
|
330
330
|
this.logger.debug("res value from determine eligibility for CSR = ", res);
|
|
331
331
|
if (this.ls.checkFunctions(this.backdateFunction)) {
|
|
332
332
|
this.logger.debug("CSR has function for backdating");
|
|
@@ -405,4 +405,4 @@ export class ClaimInfoComponent {
|
|
|
405
405
|
args: [{ selector: 'app-claim-info', template: " <div *ngIf=\"!isLoading && errorMsg\" class=\"ion-text-center ion-padding-top\" style=\"padding-top: 50px;\">\r\n <ion-icon name=\"alert-circle-outline\" style=\"font-size: 60px; color: var(--ion-color-danger);\"></ion-icon>\r\n <div [innerHTML]=\"sanitizer.bypassSecurityTrustHtml(errorMsg)\" style=\"color: var(--ion-color-danger); font-size: larger;\" class=\"ion-text-center ion-padding\"></div>\r\n </div>\r\n \r\n \r\n <div class=\"ion-padding\" *ngIf=\"!isLoading && !errorMsg\">\r\n <h1 class=\"mainHeader\">{{'induction.mainheader'| translate}}</h1>\r\n <form [formGroup]=\"claimantInduction\" (ngSubmit)=\"onSubmit()\">\r\n <ion-grid>\r\n <ion-row>\r\n <ion-col size=\"12\" sizeSm=\"12\" sizeXs=\"12\" sizeMd=\"12\" sizeLg=\"6\" sizeXl=\"5\" offsetXl=\"1\">\r\n <h3 class=\"lighter\">{{\"induction.firstquestion.heading\"| translate}}</h3>\r\n <ion-row>\r\n <ion-col size=\"9\">\r\n <p>{{ \"induction.citizenship.question\"| translate}}</p>\r\n </ion-col>\r\n <ion-col>\r\n <p-selectButton [options]=\"citizenshipStatus\" optionLabel=\"label\" optionValue=\"value\"\r\n formControlName=\"citizenship\" [class.has-error]=\"citizenship.dirty && citizenship.invalid\">\r\n </p-selectButton>\r\n <span class=\"help-block\" *ngIf=\"citizenship.dirty && citizenship.invalid\">{{\"induction.required\"| translate}}</span>\r\n </ion-col>\r\n </ion-row>\r\n <ion-row>\r\n <ion-col size=\"9\">\r\n <p>{{\"induction.militarydeparture.question\" | translate}}</p>\r\n </ion-col>\r\n <ion-col>\r\n <p-selectButton [options]=\"militaryEmployer\" optionLabel=\"label\" optionValue=\"value\"\r\n formControlName=\"militaryEmp\" [class.has-error]=\"militaryEmp.dirty && militaryEmp.invalid\">\r\n </p-selectButton>\r\n <span class=\"help-block\" *ngIf=\"militaryEmp.dirty && militaryEmp.invalid\">{{\"induction.required\"| translate}}</span>\r\n </ion-col>\r\n </ion-row>\r\n <ion-row>\r\n <ion-col size=\"9\">\r\n <p>{{\"induction.federaldeparture.question\" | translate}}</p>\r\n </ion-col>\r\n <ion-col>\r\n <p-selectButton [options]=\"federalEmployer\" optionLabel=\"label\" optionValue=\"value\"\r\n formControlName=\"federalEmp\" [class.has-error]=\"federalEmp.dirty && federalEmp.invalid\">\r\n </p-selectButton>\r\n <span class=\"help-block\" *ngIf=\"federalEmp.invalid && federalEmp.dirty\">{{\"induction.required\"| translate}}</span>\r\n </ion-col>\r\n </ion-row>\r\n <!-- <div *ngIf=\"displayDisasterQue\">\r\n <ion-row>\r\n <ion-col size=\"9\">\r\n <p>{{\"induction.unemployed.disaster\"| translate}} {{disasterResult}}</p>\r\n </ion-col>\r\n <ion-col>\r\n <p-selectButton [options]=\"unemployedDisaster\" optionLabel=\"label\" optionValue=\"value\"\r\n formControlName=\"unemployedDis\" required [class.has-error]=\"unemployedDis.dirty && unemployedDis.invalid\">\r\n </p-selectButton>\r\n <span class=\"help-block\" *ngIf=\"unemployedDis.invalid && unemployedDis.dirty\">{{\"induction.required\"| translate}}</span>\r\n </ion-col>\r\n </ion-row>\r\n </div> -->\r\n <ion-row>\r\n <ion-col size=\"9\">\r\n <br/><br/>\r\n </ion-col>\r\n </ion-row>\r\n <ion-row>\r\n <ion-col size=\"9\">\r\n <div>\r\n <h2>{{\"induction.disclaimer.header\"| translate}}</h2>\r\n <p class=\"disclaimer\">{{\"induction.disclaimer.info\"| translate}}</p>\r\n </div>\r\n <div>\r\n <h2 id=\"spacer\">{{\"induction.information.header\"| translate}}</h2>\r\n <p class=\"disclaimer\">{{ \"induction.information.info\"|translate}}</p>\r\n </div>\r\n </ion-col>\r\n </ion-row>\r\n </ion-col>\r\n <ion-col size=\"12\" sizeSm=\"12\" sizeXs=\"12\" sizeMd=\"12\"sizeMd offset=\"none\" sizeLg=\"6\" size-lg offset=\"1\" sizeXl=\"5\" class=\"colHolder\">\r\n <h3 class=\"lighter\">{{\"induction.documents.heading\"| translate}}</h3>\r\n <ul class=\"points\">\r\n <div *ngIf=\"currentState==='MS'\"><li>{{\"induction.license.type\"| translate}}</li></div>\r\n <li>{{\"induction.social.type\"| translate}}</li>\r\n <li>{{\"induction.employer.type\"| translate}} {{bpStartDate}}\r\n <ul class=\"dash\">\r\n <li>{{\"induction.identity.criterion\"| translate}}</li>\r\n <li>{{\"induction.workdate.criterion\"| translate}}</li>\r\n <div *ngIf=\"currentState==='MS'\"><li>{{\"induction.workpay.criterion\"| translate}}</li></div>\r\n </ul>\r\n </li>\r\n <li *ngIf=\"citizenship.value == 'N'\">{{\"induction.citizenship.true\"| translate}}</li>\r\n <li *ngIf=\"militaryEmp.value == 'Y'\">{{\"induction.military.true\"| translate}}</li>\r\n <li *ngIf=\"federalEmp.value == 'Y'\">{{\"induction.federal.true\"| translate}}</li>\r\n </ul>\r\n </ion-col>\r\n </ion-row>\r\n </ion-grid>\r\n <ion-footer>\r\n <ion-row>\r\n <ion-col size=\"1\" sizeSm=\"3\" sizeXs=\"3\" class=\"ion-text-left ion-padding\">\r\n <ion-button shape=\"round\" fill=\"outline\" (click)=\"cancelPage()\">{{\"induction.button.cancel\"|translate}}</ion-button>\r\n </ion-col>\r\n <ion-col class=\"pos\">\r\n <div class=\"start\">{{\"induction.footer.question\"| translate}}</div>\r\n </ion-col>\r\n <ion-col size=\"1\" sizeSm=\"1\" sizeXs=\"1\" class=\"ion-text-right ion-padding\"> \r\n <ion-button shape=\"round\" fill=\"solid\" type=\"submit\" class=\"begin\">{{\"induction.button.start\"|translate}}</ion-button>\r\n </ion-col>\r\n </ion-row>\r\n </ion-footer>\r\n </form>\r\n </div> ", styles: ["ion-footer{position:fixed;bottom:0;height:75px;background-color:#fff;left:0;z-index:100;padding-right:40px}ion-col{--ion-grid-column-padding: 1px}ion-col ul{margin-top:15px}ion-col ul li{font-size:18px;margin-bottom:20px}ul.dash{list-style-type:none}ul.dash>li:before{content:\"- \"}p{line-height:18px;font-size:18px}h1{font-family:var(--app-font-light)}.mainHeader{font-size:36px}h2{font-size:16px}.disclaimer{font-size:13px}.colHolder{height:auto;display:block}.lighter{font-family:var(--app-font-light);margin-bottom:20px;font-size:24px}.start{padding-top:19px;font-size:24px;font-family:var(--app-font-light);float:right}ion-button::part(native){padding:12px;height:auto;text-transform:none}.help-block{color:red}:is() p-selectbutton.ng-dirty.ng-invalid>.p-selectbutton>.p-button{border:1px solid red!important;color:red!important}:is() .p-component{display:flex!important}@media only screen and (max-width: 1024px){:is() ion-col.colHolder{margin-left:0!important}}\n"] }]
|
|
406
406
|
}], () => [{ type: i1.UntypedFormBuilder }, { type: i2.Router }, { type: i3.LoginService }, { type: i4.LoggerService }, { type: i5.ClaimService }, { type: i6.UtilService }, { type: i7.DomSanitizer }, { type: i8.Storage }, { type: i9.ClaimantContextService }], null); })();
|
|
407
407
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ClaimInfoComponent, { className: "ClaimInfoComponent", filePath: "lib\\components\\claim-info\\claim-info.component.ts", lineNumber: 17 }); })();
|
|
408
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhaW0taW5mby5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcmV1c2EtYXBwLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvY2xhaW0taW5mby9jbGFpbS1pbmZvLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZXVzYS1hcHAtbGliL3NyYy9saWIvY29tcG9uZW50cy9jbGFpbS1pbmZvL2NsYWltLWluZm8uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUNsRCxPQUFPLEVBQXNCLGdCQUFnQixFQUFFLGtCQUFrQixFQUFjLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7SUNEaEcsOEJBQXVHO0lBQ3JHLDhCQUEwRyxhQUFBO0lBRTVHLGlCQUFNOzs7SUFEQyxlQUF5RDtJQUF6RCx3R0FBeUQ7OztJQW1CbEQsZ0NBQTBFO0lBQUEsWUFBbUM7O0lBQUEsaUJBQU87O0lBQTFDLGVBQW1DO0lBQW5DLGdFQUFtQzs7O0lBVzdHLGdDQUEwRTtJQUFBLFlBQW1DOztJQUFBLGlCQUFPOztJQUExQyxlQUFtQztJQUFuQyxnRUFBbUM7OztJQVc3RyxnQ0FBd0U7SUFBQSxZQUFtQzs7SUFBQSxpQkFBTzs7SUFBMUMsZUFBbUM7SUFBbkMsZ0VBQW1DOzs7SUFxQzdHLDJCQUFpQyxTQUFBO0lBQUksWUFBdUM7O0lBQUEsaUJBQUssRUFBQTs7SUFBNUMsZUFBdUM7SUFBdkMsb0VBQXVDOzs7SUFNeEUsMkJBQWlDLFNBQUE7SUFBSSxZQUE0Qzs7SUFBQSxpQkFBSyxFQUFBOztJQUFqRCxlQUE0QztJQUE1Qyx5RUFBNEM7OztJQUdyRiwwQkFBcUM7SUFBQSxZQUEyQzs7SUFBQSxpQkFBSzs7SUFBaEQsZUFBMkM7SUFBM0Msd0VBQTJDOzs7SUFDaEYsMEJB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aUJBQU0sSUFBSSxPQUFPLFlBQVksZ0JBQWdCLEVBQUU7Z0JBQzlDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxPQUFPLENBQUMsQ0FBQzthQUNyQztRQUNILENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUVELElBQUksV0FBVztRQUNiLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUN4RCxDQUFDO0lBRUQsSUFBSSxXQUFXO1FBQ2IsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFFRCxJQUFJLFVBQVU7UUFDWixPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVELElBQUksYUFBYTtRQUNmLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUMxRCxDQUFDO21GQTVKVSxrQkFBa0I7b0VBQWxCLGtCQUFrQjtZQ2hCekIsbUVBR00sd0RBQUE7O1lBSEEscURBQTRCO1lBTVIsZUFBNkI7WUFBN0Isc0RBQTZCOzs7aUZEVWhELGtCQUFrQjtjQUw5QixTQUFTOzJCQUNFLGdCQUFnQjs7a0ZBSWYsa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgVW50eXBlZEZvcm1CdWlsZGVyLCBVbnR5cGVkRm9ybUdyb3VwLCBVbnR5cGVkRm9ybUNvbnRyb2wsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IERvbVNhbml0aXplciB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xyXG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBLZXlWYWx1ZU1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3F1ZXN0aW9ubmFpcmUvS2V5VmFsdWVNb2RlbCc7XHJcbmltcG9ydCB7IENsYWltYW50Q29udGV4dFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9jbGFpbWFudC1jb250ZXh0L2NsYWltYW50LWNvbnRleHQuc2VydmljZSc7XHJcbmltcG9ydCB7IENsYWltU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2NsYWltcy9jbGFpbXMuc2VydmljZSc7XHJcbmltcG9ydCB7IExvZ2dlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9sb2dnZXIvbG9nZ2VyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBMb2dpblNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9sb2dpbi9sb2dpbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVXRpbFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy91dGlsL3V0aWwuc2VydmljZSc7XHJcbmltcG9ydCB7IFN0b3JhZ2UgfSBmcm9tICdAaW9uaWMvc3RvcmFnZS1hbmd1bGFyJztcclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtY2xhaW0taW5mbycsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2NsYWltLWluZm8uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9jbGFpbS1pbmZvLmNvbXBvbmVudC5jc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDbGFpbUluZm9Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIHB1YmxpYyBoZWFkaW5nID0gJ0NsYWltIEZpbGluZyBOb3RpZmljYXRpb24nO1xyXG4gIHB1YmxpYyBjbGFpbWFudEluZHVjdGlvbjogVW50eXBlZEZvcm1Hcm91cDtcclxuICBwdWJsaWMgZXJyb3JNc2c6IHN0cmluZztcclxuICBwdWJsaWMgaXNMb2FkaW5nOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIGRpc3BsYXlEaXNhc3RlclF1ZTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBwdWJsaWMgZGlzYXN0ZXJSZXN1bHQgPSBcIlwiO1xyXG5cclxuICBjaXRpemVuc2hpcFN0YXR1czogYW55W107XHJcbiAgbWlsaXRhcnlFbXBsb3llcjogYW55W107XHJcbiAgZmVkZXJhbEVtcGxveWVyOiBhbnlbXTtcclxuICBicFN0YXJ0RGF0ZTogc3RyaW5nO1xyXG4gIHVuZW1wbG95ZWREaXNhc3RlcjogYW55W107XHJcbiAgbGlzdE9mRGlzYXN0ZXJzOiBLZXlWYWx1ZU1vZGVsW107XHJcbiAgcHVibGljIGJhY2tkYXRlRnVuY3Rpb246IGFueVtdID0gW107IFxyXG4gIHB1YmxpYyBjdXJyZW50U3RhdGU6IHN0cmluZztcclxuXHJcbiAgY29uc3RydWN0b3IocHVibGljIGZiOiBVbnR5cGVkRm9ybUJ1aWxkZXIsIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsIHB1YmxpYyBsczogTG9naW5TZXJ2aWNlLFxyXG4gICAgcHVibGljIGxvZ2dlcjogTG9nZ2VyU2VydmljZSwgcHVibGljIGNzOiBDbGFpbVNlcnZpY2UsIHB1YmxpYyB1dGlsOiBVdGlsU2VydmljZSxcclxuICAgIHB1YmxpYyBzYW5pdGl6ZXI6IERvbVNhbml0aXplciwgcHJpdmF0ZSBzdG9yYWdlOiBTdG9yYWdlLHB1YmxpYyBjbGFpbWFudENvbnRleHRTZXJ2aWNlOiBDbGFpbWFudENvbnRleHRTZXJ2aWNlKSB7XHJcblxyXG4gICAgaWYgKCEodGhpcy5scy5pc0xvZ2dlZEluKCkgJiYgdGhpcy5scy5pc0NzcigpKSkgXHJcbiAgICAgIHRoaXMuc3RvcmFnZS5jcmVhdGUoKS50aGVuKCgpID0+IHtcclxuICAgICAgdGhpcy5sb2dnZXIuZGVidWcoXCJTdG9yYWdlIERCIGNyZWF0ZWQgc3VjY2Vzc2Z1bGx5LlwiKTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5jaXRpemVuc2hpcFN0YXR1cyA9IFt7IGxhYmVsOiAnWWVzJywgdmFsdWU6ICdZJyB9LCB7IGxhYmVsOiAnTm8nLCB2YWx1ZTogJ04nIH1dO1xyXG4gICAgdGhpcy5taWxpdGFyeUVtcGxveWVyID0gW3sgbGFiZWw6ICdZZXMnLCB2YWx1ZTogJ1knIH0sIHsgbGFiZWw6ICdObycsIHZhbHVlOiAnTicgfV07XHJcbiAgICB0aGlzLmZlZGVyYWxFbXBsb3llciA9IFt7IGxhYmVsOiAnWWVzJywgdmFsdWU6ICdZJyB9LCB7IGxhYmVsOiAnTm8nLCB2YWx1ZTogJ04nIH1dO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLmJhY2tkYXRlRnVuY3Rpb24ucHVzaChcImNoZ2NsYWltZWZmZGF0ZVwiKTtcclxuICAgIHRoaXMuY2xhaW1hbnRJbmR1Y3Rpb24gPVxyXG4gICAgICB0aGlzLmZiLmdyb3VwKHtcclxuICAgICAgICBjaXRpemVuc2hpcDogW251bGwsIG51bGxdLFxyXG4gICAgICAgIG1pbGl0YXJ5RW1wOiBbbnVsbCwgbnVsbF0sXHJcbiAgICAgICAgZmVkZXJhbEVtcDogW251bGwsIG51bGxdXHJcbiAgICAgIH0pO1xyXG5cclxuICAgIHRoaXMuY3MuZmV0Y2hCYXNlUGVyaW9kKCkuc3Vic2NyaWJlKFxyXG4gICAgICByZXMgPT4ge1xyXG4gICAgICAgIHZhciBwYXJzZWQgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHJlcykpO1xyXG4gICAgICAgIHRoaXMuYnBTdGFydERhdGUgPSBwYXJzZWRbXCJicFN0YXJ0RGF0ZVwiXTtcclxuICAgICAgfSk7XHJcbiAgICB0aGlzLmN1cnJlbnRTdGF0ZSA9IHRoaXMudXRpbC5nZXRTdGF0ZSgpO1xyXG5cclxuICAgIHRoaXMuY3MuZmV0Y2hMaXN0T2ZEaXNhdGVycygpLnN1YnNjcmliZShcclxuICAgICAgcmVzID0+IHtcclxuICAgICAgICB0aGlzLmxpc3RPZkRpc2FzdGVycyA9IHJlcztcclxuICAgICAgICBpZiAodGhpcy5saXN0T2ZEaXNhc3RlcnMgIT0gbnVsbCAmJiB0aGlzLmxpc3RPZkRpc2FzdGVycy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICB0aGlzLmRpc3BsYXlEaXNhc3RlclF1ZSA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICApXHJcbiAgfVxyXG5cclxuICBvblN1Ym1pdCgpIHtcclxuICAgIGlmICghdGhpcy5jbGFpbWFudEluZHVjdGlvbi52YWxpZCkge1xyXG4gICAgICB0aGlzLmNsYWltYW50SW5kdWN0aW9uLm1hcmtBc0RpcnR5KClcclxuICAgICAgdGhpcy52YWxpZGF0ZUFsbEZvcm1GaWVsZHModGhpcy5jbGFpbWFudEluZHVjdGlvbik7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmxzLmlzTG9nZ2VkSW4oKSAmJiB0aGlzLmxzLmlzQ2xhaW1hbnQoKSkge1xyXG4gICAgICB0aGlzLmxvZ2dlci5kZWJ1ZygndW5kZXIgY2xhaW1hbnQgZmxvdycpO1xyXG4gICAgICB0aGlzLmNzLmRldGVybWluZU5ld0NsYWltRWxpZ2liaWxpdHkoKS5zdWJzY3JpYmUoXHJcbiAgICAgICAgcmVzID0+IHtcclxuICAgICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKFwicmVzIHZhbHVlIGZyb20gZGV0ZXJtaW5lIGVsaWdpYmlsaXR5ID0gXCIsIHJlcyk7XHJcbiAgICAgICAgICBpZiAodGhpcy5kaXNwbGF5RGlzYXN0ZXJRdWUgPT0gdHJ1ZSkge1xyXG4gICAgICAgICAgICAvL3JlZGlyZWN0IHRvIGR1YSBwYWdlXHJcbiAgICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL2R1YS1yZXF1ZXN0J10se3F1ZXJ5UGFyYW1zOntiYWNrQnV0dG9uUGFnZTonY2xhaW1hbnQtaW5kdWN0aW9uJ319KTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIC8vbmF2aWdhdGUgdG8gYWJvdXQgeW91cnNlbGZcclxuICAgICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvc2ZiL2NsbXQtY2xhaW0nXSwgeyBxdWVyeVBhcmFtczogeyBjaXRpemVuRmxhZzogdGhpcy5jaXRpemVuc2hpcC52YWx1ZSB9IH0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIGVyciA9PiB7XHJcbiAgICAgICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5lcnJvck1zZyA9IGVycltcIm1zZ1wiXTtcclxuICAgICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKHRoaXMuZXJyb3JNc2cpO1xyXG4gICAgICAgIH1cclxuICAgICAgKVxyXG4gICAgfSBlbHNlIGlmKHRoaXMubHMuaXNMb2dnZWRJbigpICYmIHRoaXMubHMuaXNDc3IoKSl7XHJcbiAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKCd1bmRlciBDU1IgZmxvdycpO1xyXG4gICAgICAvKmZvciBsb2NhbCB0ZXN0aW5nLCBzZXQgc3NuIGluIGNvbnRleHQgc2VydmljZSAqL1xyXG4gICAgICAvL3RoaXMuY2xhaW1hbnRDb250ZXh0U2VydmljZS5zZXRTc24oJzc2NjAxMDAyMCcpO1xyXG4gICAgICAvL3RoaXMuY2xhaW1hbnRDb250ZXh0U2VydmljZS5zZXRDbGFpbWFudElkKCcxNzYwMTM2Jyk7XHJcblxyXG4gICAgICB0aGlzLmNzLmRldGVybWluZU5ld0NsYWltRWxpZ2liaWxpdHlGb3JDc3IoKS5zdWJzY3JpYmUoXHJcbiAgICAgICAgcmVzID0+IHtcclxuICAgICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKFwicmVzIHZhbHVlIGZyb20gZGV0ZXJtaW5lIGVsaWdpYmlsaXR5IGZvciBDU1IgPSBcIiwgcmVzKTtcclxuICAgICAgICAgIGlmKHRoaXMubHMuY2hlY2tGdW5jdGlvbnModGhpcy5iYWNrZGF0ZUZ1bmN0aW9uKSl7XHJcbiAgICAgICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKFwiQ1NSIGhhcyBmdW5jdGlvbiBmb3IgYmFja2RhdGluZ1wiKTtcclxuICAgICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvYmFja2RhdGUtcmVxdWVzdCddLHtxdWVyeVBhcmFtczp7YmFja0J1dHRvblBhZ2U6J2NsYWltYW50LWluZHVjdGlvbid9fSk7XHJcbiAgICAgICAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICB9IGVsc2UgIGlmICh0aGlzLmRpc3BsYXlEaXNhc3RlclF1ZSA9PSB0cnVlKSB7XHJcbiAgICAgICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKFwiRGlzYXN0ZXIgaXMgZGVjbGFyZWQgYW5kIGNsYWltIGNhbiBiZSBmaWxlZCB3aXRoIGRpc2FzdGVyXCIpO1xyXG4gICAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy9kdWEtcmVxdWVzdCddLHtxdWVyeVBhcmFtczp7YmFja0J1dHRvblBhZ2U6J2NsYWltYW50LWluZHVjdGlvbid9fSk7XHJcbiAgICAgICAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhcIk5vIGJhY2tkYXRpbmcgY2xhaW0gIGFuZCBubyBhY3RpdmUgZGlzYXN0ZXJcIik7XHJcbiAgICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL3NmYi9jc3ItY2xhaW0nXSwge3F1ZXJ5UGFyYW1zOntjaXRpemVuRmxhZzp0aGlzLmNpdGl6ZW5zaGlwLnZhbHVlfX0pO1xyXG4gICAgICAgICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZXJyID0+IHtcclxuICAgICAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLmVycm9yTXNnID0gZXJyW1wibXNnXCJdO1xyXG4gICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1Zyh0aGlzLmVycm9yTXNnKTtcclxuICAgICAgICB9XHJcbiAgICAgIClcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIC8vbm90IGxvZ2dlZCBpbiB1c2VyLCBkdWEgd2lsbCBhcHBlYXIgYXMgYSBwb3B1cCBiZWZvcmUgc2l0dWF0aW9uIHBhZ2VcclxuICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvZmIvYWJvdXQteW91cnNlbGYnXSwgeyBxdWVyeVBhcmFtczogeyBjaXRpemVuRmxhZzogdGhpcy5jaXRpemVuc2hpcC52YWx1ZSB9IH0pO1xyXG4gICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY2FuY2VsUGFnZSgpe1xyXG4gICAgaWYodGhpcy5scy5pc0xvZ2dlZEluKCkgJiYgdGhpcy5scy5pc0NzcigpKXtcclxuICAgICAgLyogZm9yIGxvY2FsIHRlc3RpbmcsIHNlZSBiZWxvdyAgKi9cclxuICAgICAgLy93aW5kb3cub3BlbignaHR0cDovL2xvY2FsaG9zdDo4MTAxL3NzL3NlYXJjaC1zc24nICwgJ19zZWxmJyk7XHJcbiAgICAgIHdpbmRvdy5vcGVuKGxvY2F0aW9uLm9yaWdpbiArICcvc3Mvc2VhcmNoLXNzbicgLCAnX3NlbGYnKTtcclxuICAgIH0gZWxzZSBpZih0aGlzLmxzLmlzTG9nZ2VkSW4oKSAmJiB0aGlzLmxzLmlzQ2xhaW1hbnQoKSl7XHJcbiAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL3dlbGNvbWUnXSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy93ZWxjb21lLXNwbGFzaCddKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHZhbGlkYXRlQWxsRm9ybUZpZWxkcyhmb3JtR3JvdXA6IFVudHlwZWRGb3JtR3JvdXApIHtcclxuICAgIE9iamVjdC5rZXlzKGZvcm1Hcm91cC5jb250cm9scykuZm9yRWFjaChmaWVsZCA9PiB7XHJcbiAgICAgIGNvbnN0IGNvbnRyb2wgPSBmb3JtR3JvdXAuZ2V0KGZpZWxkKTtcclxuICAgICAgaWYgKGNvbnRyb2wgaW5zdGFuY2VvZiBVbnR5cGVkRm9ybUNvbnRyb2wpIHtcclxuICAgICAgICBjb250cm9sLm1hcmtBc0RpcnR5KHsgb25seVNlbGY6IHRydWUgfSk7XHJcbiAgICAgIH0gZWxzZSBpZiAoY29udHJvbCBpbnN0YW5jZW9mIFVudHlwZWRGb3JtR3JvdXApIHtcclxuICAgICAgICB0aGlzLnZhbGlkYXRlQWxsRm9ybUZpZWxkcyhjb250cm9sKTtcclxuICAgICAgfVxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIGdldCBjaXRpemVuc2hpcCgpIHtcclxuICAgIHJldHVybiB0aGlzLmNsYWltYW50SW5kdWN0aW9uLmNvbnRyb2xzWydjaXRpemVuc2hpcCddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IG1pbGl0YXJ5RW1wKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuY2xhaW1hbnRJbmR1Y3Rpb24uY29udHJvbHNbJ21pbGl0YXJ5RW1wJ107XHJcbiAgfVxyXG5cclxuICBnZXQgZmVkZXJhbEVtcCgpIHtcclxuICAgIHJldHVybiB0aGlzLmNsYWltYW50SW5kdWN0aW9uLmNvbnRyb2xzWydmZWRlcmFsRW1wJ107XHJcbiAgfVxyXG5cclxuICBnZXQgdW5lbXBsb3llZERpcygpIHtcclxuICAgIHJldHVybiB0aGlzLmNsYWltYW50SW5kdWN0aW9uLmNvbnRyb2xzWyd1bmVtcGxveWVkRGlzJ107XHJcbiAgfVxyXG5cclxufVxyXG4iLCIgICAgICA8ZGl2ICpuZ0lmPVwiIWlzTG9hZGluZyAmJiBlcnJvck1zZ1wiIGNsYXNzPVwiaW9uLXRleHQtY2VudGVyIGlvbi1wYWRkaW5nLXRvcFwiIHN0eWxlPVwicGFkZGluZy10b3A6IDUwcHg7XCI+XHJcbiAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJhbGVydC1jaXJjbGUtb3V0bGluZVwiIHN0eWxlPVwiZm9udC1zaXplOiA2MHB4OyBjb2xvcjogdmFyKC0taW9uLWNvbG9yLWRhbmdlcik7XCI+PC9pb24taWNvbj5cclxuICAgICAgICA8ZGl2IFtpbm5lckhUTUxdPVwic2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKGVycm9yTXNnKVwiIHN0eWxlPVwiY29sb3I6IHZhcigtLWlvbi1jb2xvci1kYW5nZXIpOyBmb250LXNpemU6IGxhcmdlcjtcIiBjbGFzcz1cImlvbi10ZXh0LWNlbnRlciBpb24tcGFkZGluZ1wiPjwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICBcclxuICBcclxuICAgICAgPGRpdiBjbGFzcz1cImlvbi1wYWRkaW5nXCIgKm5nSWY9XCIhaXNMb2FkaW5nICYmICFlcnJvck1zZ1wiPlxyXG4gICAgICAgIDxoMSBjbGFzcz1cIm1haW5IZWFkZXJcIj57eydpbmR1Y3Rpb24ubWFpbmhlYWRlcid8IHRyYW5zbGF0ZX19PC9oMT5cclxuICAgICAgICA8Zm9ybSBbZm9ybUdyb3VwXT1cImNsYWltYW50SW5kdWN0aW9uXCIgKG5nU3VibWl0KT1cIm9uU3VibWl0KClcIj5cclxuICAgICAgICAgIDxpb24tZ3JpZD5cclxuICAgICAgICAgICAgPGlvbi1yb3c+XHJcbiAgICAgICAgICAgICAgPGlvbi1jb2wgc2l6ZT1cIjEyXCIgc2l6ZVNtPVwiMTJcIiBzaXplWHM9XCIxMlwiIHNpemVNZD1cIjEyXCIgc2l6ZUxnPVwiNlwiIHNpemVYbD1cIjVcIiBvZmZzZXRYbD1cIjFcIj5cclxuICAgICAgICAgICAgICAgIDxoMyBjbGFzcz1cImxpZ2h0ZXJcIj57e1wiaW5kdWN0aW9uLmZpcnN0cXVlc3Rpb24uaGVhZGluZ1wifCB0cmFuc2xhdGV9fTwvaDM+XHJcbiAgICAgICAgICAgICAgICA8aW9uLXJvdz5cclxuICAgICAgICAgICAgICAgICAgPGlvbi1jb2wgc2l6ZT1cIjlcIj5cclxuICAgICAgICAgICAgICAgICAgICA8cD57eyBcImluZHVjdGlvbi5jaXRpemVuc2hpcC5xdWVzdGlvblwifCB0cmFuc2xhdGV9fTwvcD5cclxuICAgICAgICAgICAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICAgICAgICAgICAgICA8aW9uLWNvbD5cclxuICAgICAgICAgICAgICAgICAgICA8cC1zZWxlY3RCdXR0b24gW29wdGlvbnNdPVwiY2l0aXplbnNoaXBTdGF0dXNcIiBvcHRpb25MYWJlbD1cImxhYmVsXCIgb3B0aW9uVmFsdWU9XCJ2YWx1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJjaXRpemVuc2hpcFwiIFtjbGFzcy5oYXMtZXJyb3JdPVwiY2l0aXplbnNoaXAuZGlydHkgJiYgY2l0aXplbnNoaXAuaW52YWxpZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvcC1zZWxlY3RCdXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJoZWxwLWJsb2NrXCIgKm5nSWY9XCJjaXRpemVuc2hpcC5kaXJ0eSAmJiBjaXRpemVuc2hpcC5pbnZhbGlkXCI+e3tcImluZHVjdGlvbi5yZXF1aXJlZFwifCB0cmFuc2xhdGV9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICAgICAgICAgICAgPC9pb24tcm93PlxyXG4gICAgICAgICAgICAgICAgPGlvbi1yb3c+XHJcbiAgICAgICAgICAgICAgICAgIDxpb24tY29sIHNpemU9XCI5XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHA+e3tcImluZHVjdGlvbi5taWxpdGFyeWRlcGFydHVyZS5xdWVzdGlvblwiIHwgdHJhbnNsYXRlfX08L3A+XHJcbiAgICAgICAgICAgICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgICAgICAgICAgICAgPGlvbi1jb2w+XHJcbiAgICAgICAgICAgICAgICAgICAgPHAtc2VsZWN0QnV0dG9uIFtvcHRpb25zXT1cIm1pbGl0YXJ5RW1wbG95ZXJcIiBvcHRpb25MYWJlbD1cImxhYmVsXCIgb3B0aW9uVmFsdWU9XCJ2YWx1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJtaWxpdGFyeUVtcFwiIFtjbGFzcy5oYXMtZXJyb3JdPVwibWlsaXRhcnlFbXAuZGlydHkgJiYgbWlsaXRhcnlFbXAuaW52YWxpZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvcC1zZWxlY3RCdXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJoZWxwLWJsb2NrXCIgKm5nSWY9XCJtaWxpdGFyeUVtcC5kaXJ0eSAmJiBtaWxpdGFyeUVtcC5pbnZhbGlkXCI+e3tcImluZHVjdGlvbi5yZXF1aXJlZFwifCB0cmFuc2xhdGV9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICAgICAgICAgICAgPC9pb24tcm93PlxyXG4gICAgICAgICAgICAgICAgPGlvbi1yb3c+XHJcbiAgICAgICAgICAgICAgICAgIDxpb24tY29sIHNpemU9XCI5XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHA+e3tcImluZHVjdGlvbi5mZWRlcmFsZGVwYXJ0dXJlLnF1ZXN0aW9uXCIgfCB0cmFuc2xhdGV9fTwvcD5cclxuICAgICAgICAgICAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICAgICAgICAgICAgICA8aW9uLWNvbD5cclxuICAgICAgICAgICAgICAgICAgICA8cC1zZWxlY3RCdXR0b24gW29wdGlvbnNdPVwiZmVkZXJhbEVtcGxveWVyXCIgb3B0aW9uTGFiZWw9XCJsYWJlbFwiIG9wdGlvblZhbHVlPVwidmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiZmVkZXJhbEVtcFwiIFtjbGFzcy5oYXMtZXJyb3JdPVwiZmVkZXJhbEVtcC5kaXJ0eSAmJiBmZWRlcmFsRW1wLmludmFsaWRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8L3Atc2VsZWN0QnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaGVscC1ibG9ja1wiICpuZ0lmPVwiZmVkZXJhbEVtcC5pbnZhbGlkICYmIGZlZGVyYWxFbXAuZGlydHlcIj57e1wiaW5kdWN0aW9uLnJlcXVpcmVkXCJ8IHRyYW5zbGF0ZX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgICAgICAgICAgICA8L2lvbi1yb3c+XHJcbiAgICAgICAgICAgICAgICA8IS0tIDxkaXYgKm5nSWY9XCJkaXNwbGF5RGlzYXN0ZXJRdWVcIj5cclxuICAgICAgICAgICAgICAgIDxpb24tcm93PlxyXG4gICAgICAgICAgICAgICAgICA8aW9uLWNvbCBzaXplPVwiOVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxwPnt7XCJpbmR1Y3Rpb24udW5lbXBsb3llZC5kaXNhc3RlclwifCB0cmFuc2xhdGV9fSB7e2Rpc2FzdGVyUmVzdWx0fX08L3A+XHJcbiAgICAgICAgICAgICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgICAgICAgICAgICAgPGlvbi1jb2w+XHJcbiAgICAgICAgICAgICAgICAgICAgPHAtc2VsZWN0QnV0dG9uIFtvcHRpb25zXT1cInVuZW1wbG95ZWREaXNhc3RlclwiIG9wdGlvbkxhYmVsPVwibGFiZWxcIiBvcHRpb25WYWx1ZT1cInZhbHVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInVuZW1wbG95ZWREaXNcIiByZXF1aXJlZCBbY2xhc3MuaGFzLWVycm9yXT1cInVuZW1wbG95ZWREaXMuZGlydHkgJiYgdW5lbXBsb3llZERpcy5pbnZhbGlkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9wLXNlbGVjdEJ1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImhlbHAtYmxvY2tcIiAqbmdJZj1cInVuZW1wbG95ZWREaXMuaW52YWxpZCAmJiB1bmVtcGxveWVkRGlzLmRpcnR5XCI+e3tcImluZHVjdGlvbi5yZXF1aXJlZFwifCB0cmFuc2xhdGV9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICAgICAgICAgICAgPC9pb24tcm93PlxyXG4gICAgICAgICAgICAgIDwvZGl2PiAtLT5cclxuICAgICAgICAgICAgICAgIDxpb24tcm93PlxyXG4gICAgICAgICAgICAgICAgICA8aW9uLWNvbCBzaXplPVwiOVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxici8+PGJyLz5cclxuICAgICAgICAgICAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICAgICAgICAgICAgPC9pb24tcm93PlxyXG4gICAgICAgICAgICAgICAgPGlvbi1yb3c+XHJcbiAgICAgICAgICAgICAgICAgIDxpb24tY29sIHNpemU9XCI5XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aDI+e3tcImluZHVjdGlvbi5kaXNjbGFpbWVyLmhlYWRlclwifCB0cmFuc2xhdGV9fTwvaDI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwiZGlzY2xhaW1lclwiPnt7XCJpbmR1Y3Rpb24uZGlzY2xhaW1lci5pbmZvXCJ8IHRyYW5zbGF0ZX19PC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aDIgaWQ9XCJzcGFjZXJcIj57e1wiaW5kdWN0aW9uLmluZm9ybWF0aW9uLmhlYWRlclwifCB0cmFuc2xhdGV9fTwvaDI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwiZGlzY2xhaW1lclwiPnt7IFwiaW5kdWN0aW9uLmluZm9ybWF0aW9uLmluZm9cInx0cmFuc2xhdGV9fTwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgICAgICAgICAgICA8L2lvbi1yb3c+XHJcbiAgICAgICAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICAgICAgICAgIDxpb24tY29sIHNpemU9XCIxMlwiIHNpemVTbT1cIjEyXCIgc2l6ZVhzPVwiMTJcIiBzaXplTWQ9XCIxMlwic2l6ZU1kIG9mZnNldD1cIm5vbmVcIiBzaXplTGc9XCI2XCIgc2l6ZS1sZyBvZmZzZXQ9XCIxXCIgc2l6ZVhsPVwiNVwiIGNsYXNzPVwiY29sSG9sZGVyXCI+XHJcbiAgICAgICAgICAgICAgICA8aDMgY2xhc3M9XCJsaWdodGVyXCI+e3tcImluZHVjdGlvbi5kb2N1bWVudHMuaGVhZGluZ1wifCB0cmFuc2xhdGV9fTwvaDM+XHJcbiAgICAgICAgICAgICAgICA8dWwgY2xhc3M9XCJwb2ludHNcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImN1cnJlbnRTdGF0ZT09PSdNUydcIj48bGk+e3tcImluZHVjdGlvbi5saWNlbnNlLnR5cGVcInwgdHJhbnNsYXRlfX08L2xpPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8bGk+e3tcImluZHVjdGlvbi5zb2NpYWwudHlwZVwifCB0cmFuc2xhdGV9fTwvbGk+XHJcbiAgICAgICAgICAgICAgICAgIDxsaT57e1wiaW5kdWN0aW9uLmVtcGxveWVyLnR5cGVcInwgdHJhbnNsYXRlfX0ge3ticFN0YXJ0RGF0ZX19XHJcbiAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPVwiZGFzaFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGxpPnt7XCJpbmR1Y3Rpb24uaWRlbnRpdHkuY3JpdGVyaW9uXCJ8IHRyYW5zbGF0ZX19PC9saT5cclxuICAgICAgICAgICAgICAgICAgICAgIDxsaT57e1wiaW5kdWN0aW9uLndvcmtkYXRlLmNyaXRlcmlvblwifCB0cmFuc2xhdGV9fTwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiY3VycmVudFN0YXRlPT09J01TJ1wiPjxsaT57e1wiaW5kdWN0aW9uLndvcmtwYXkuY3JpdGVyaW9uXCJ8IHRyYW5zbGF0ZX19PC9saT48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L3VsPlxyXG4gICAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICAgICAgICA8bGkgKm5nSWY9XCJjaXRpemVuc2hpcC52YWx1ZSA9PSAnTidcIj57e1wiaW5kdWN0aW9uLmNpdGl6ZW5zaGlwLnRydWVcInwgdHJhbnNsYXRlfX08L2xpPlxyXG4gICAgICAgICAgICAgICAgICA8bGkgKm5nSWY9XCJtaWxpdGFyeUVtcC52YWx1ZSA9PSAnWSdcIj57e1wiaW5kdWN0aW9uLm1pbGl0YXJ5LnRydWVcInwgdHJhbnNsYXRlfX08L2xpPlxyXG4gICAgICAgICAgICAgICAgICA8bGkgKm5nSWY9XCJmZWRlcmFsRW1wLnZhbHVlID09ICdZJ1wiPnt7XCJpbmR1Y3Rpb24uZmVkZXJhbC50cnVlXCJ8IHRyYW5zbGF0ZX19PC9saT5cclxuICAgICAgICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICAgICAgICA8L2lvbi1yb3c+XHJcbiAgICAgICAgICA8L2lvbi1ncmlkPlxyXG4gICAgICAgICAgPGlvbi1mb290ZXI+XHJcbiAgICAgICAgICAgIDxpb24tcm93PlxyXG4gICAgICAgICAgICAgIDxpb24tY29sIHNpemU9XCIxXCIgc2l6ZVNtPVwiM1wiIHNpemVYcz1cIjNcIiBjbGFzcz1cImlvbi10ZXh0LWxlZnQgaW9uLXBhZGRpbmdcIj5cclxuICAgICAgICAgICAgICAgIDxpb24tYnV0dG9uIHNoYXBlPVwicm91bmRcIiBmaWxsPVwib3V0bGluZVwiIChjbGljayk9XCJjYW5jZWxQYWdlKClcIj57e1wiaW5kdWN0aW9uLmJ1dHRvbi5jYW5jZWxcInx0cmFuc2xhdGV9fTwvaW9uLWJ1dHRvbj5cclxuICAgICAgICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgICAgICAgICAgPGlvbi1jb2wgY2xhc3M9XCJwb3NcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdGFydFwiPnt7XCJpbmR1Y3Rpb24uZm9vdGVyLnF1ZXN0aW9uXCJ8IHRyYW5zbGF0ZX19PC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICAgICAgICAgIDxpb24tY29sIHNpemU9XCIxXCIgc2l6ZVNtPVwiMVwiIHNpemVYcz1cIjFcIiBjbGFzcz1cImlvbi10ZXh0LXJpZ2h0IGlvbi1wYWRkaW5nXCI+ICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgPGlvbi1idXR0b24gc2hhcGU9XCJyb3VuZFwiIGZpbGw9XCJzb2xpZFwiIHR5cGU9XCJzdWJtaXRcIiBjbGFzcz1cImJlZ2luXCI+e3tcImluZHVjdGlvbi5idXR0b24uc3RhcnRcInx0cmFuc2xhdGV9fTwvaW9uLWJ1dHRvbj5cclxuICAgICAgICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgICAgICAgIDwvaW9uLXJvdz5cclxuICAgICAgICAgIDwvaW9uLWZvb3Rlcj5cclxuICAgICAgICA8L2Zvcm0+XHJcbiAgICAgIDwvZGl2PiAiXX0=
|
|
408
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhaW0taW5mby5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcmV1c2EtYXBwLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvY2xhaW0taW5mby9jbGFpbS1pbmZvLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZXVzYS1hcHAtbGliL3NyYy9saWIvY29tcG9uZW50cy9jbGFpbS1pbmZvL2NsYWltLWluZm8uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUNsRCxPQUFPLEVBQXNCLGdCQUFnQixFQUFFLGtCQUFrQixFQUFjLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7SUNEaEcsOEJBQXVHO0lBQ3JHLDhCQUEwRyxhQUFBO0lBRTVHLGlCQUFNOzs7SUFEQyxlQUF5RDtJQUF6RCx3R0FBeUQ7OztJQW1CbEQsZ0NBQTBFO0lBQUEsWUFBbUM7O0lBQUEsaUJBQU87O0lBQTFDLGVBQW1DO0lBQW5DLGdFQUFtQzs7O0lBVzdHLGdDQUEwRTtJQUFBLFlBQW1DOztJQUFBLGlCQUFPOztJQUExQyxlQUFtQztJQUFuQyxnRUFBbUM7OztJQVc3RyxnQ0FBd0U7SUFBQSxZQUFtQzs7SUFBQSxpQkFBTzs7SUFBMUMsZUFBbUM7SUFBbkMsZ0VBQW1DOzs7SUFxQzdHLDJCQUFpQyxTQUFBO0lBQUksWUFBdUM7O0lBQUEsaUJBQUssRUFBQTs7SUFBNUMsZUFBdUM7SUFBdkMsb0VBQXVDOzs7SUFNeEUsMkJBQWlDLFNBQUE7SUFBSSxZQUE0Qzs7SUFBQSxpQkFBSyxFQUFBOztJQUFqRCxlQUE0QztJQUE1Qyx5RUFBNEM7OztJQUdyRiwwQkFBcUM7SUFBQSxZQUEyQzs7SUFBQSxpQkFBSzs7SUFBaEQsZUFBMkM7SUFBM0Msd0VBQTJDOzs7SUFDaEYsMEJBQXFDO0lBQUEsWUFBd0M7O0lBQUEsaUJBQUs7O0lBQTdDLGVBQXdDO0lBQXhDLHFFQUF3Qzs7O0lBQzdFLDBCQUFvQztJQUFBLFlBQXVDOztJQUFBLGlCQUFLOztJQUE1QyxlQUF1QztJQUF2QyxvRUFBdUM7Ozs7SUFyRnZGLDhCQUF5RCxZQUFBO0lBQ2hDLFlBQXFDOztJQUFBLGlCQUFLO0lBQ2pFLCtCQUE4RDtJQUF4QixxS0FBWSxlQUFBLGtCQUFVLENBQUEsSUFBQztJQUMzRCxnQ0FBVSxjQUFBLGlCQUFBLFlBQUE7SUFHZ0IsWUFBZ0Q7O0lBQUEsaUJBQUs7SUFDekUsZ0NBQVMsbUJBQUEsU0FBQTtJQUVGLGFBQWdEOztJQUFBLGlCQUFJLEVBQUE7SUFFekQsZ0NBQVM7SUFDUCxzQ0FFaUI7SUFDakIsOEVBQW9IO0lBQ3RILGlCQUFVLEVBQUE7SUFFWixnQ0FBUyxtQkFBQSxTQUFBO0lBRUYsYUFBc0Q7O0lBQUEsaUJBQUksRUFBQTtJQUUvRCxnQ0FBUztJQUNQLHNDQUVpQjtJQUNqQiw4RUFBb0g7SUFDdEgsaUJBQVUsRUFBQTtJQUVaLGdDQUFTLG1CQUFBLFNBQUE7SUFFRixhQUFxRDs7SUFBQSxpQkFBSSxFQUFBO0lBRTlELGdDQUFTO0lBQ1Asc0NBRWlCO0lBQ2pCLDhFQUFrSDtJQUNwSCxpQkFBVSxFQUFBO0lBZVosZ0NBQVMsbUJBQUE7SUFFTCxzQkFBSyxVQUFBO0lBQ1AsaUJBQVUsRUFBQTtJQUVaLGdDQUFTLG1CQUFBLFdBQUEsVUFBQTtJQUdHLGFBQTRDOztJQUFBLGlCQUFLO0lBQ3JELDhCQUFzQjtJQUFBLGFBQTBDOztJQUFBLGlCQUFJLEVBQUE7SUFFdEUsNEJBQUssY0FBQTtJQUNhLGFBQTZDOztJQUFBLGlCQUFLO0lBQ2xFLDhCQUFzQjtJQUFBLGFBQTJDOztJQUFBLGlCQUFJLEVBQUEsRUFBQSxFQUFBLEVBQUE7SUFLL0Usb0NBQXNJLGFBQUE7SUFDaEgsYUFBNEM7O0lBQUEsaUJBQUs7SUFDckUsK0JBQW1CO0lBQ2pCLDRFQUF1RjtJQUN2RiwyQkFBSTtJQUFBLGFBQXNDOztJQUFBLGlCQUFLO0lBQy9DLDJCQUFJO0lBQUEsYUFDRjs7SUFBQSwrQkFBaUIsVUFBQTtJQUNYLGFBQTZDOztJQUFBLGlCQUFLO0lBQ3RELDJCQUFJO0lBQUEsYUFBNkM7O0lBQUEsaUJBQUs7SUFDdEQsNEVBQTRGO0lBQzlGLGlCQUFLLEVBQUE7SUFFUCwwRUFBcUYsNkRBQUEsNkRBQUE7SUFHdkYsaUJBQUssRUFBQSxFQUFBLEVBQUE7SUFJWCxtQ0FBWSxlQUFBLG1CQUFBLHNCQUFBO0lBR21DLHNLQUFTLGVBQUEsb0JBQVksQ0FBQSxJQUFDO0lBQUMsYUFBdUM7O0lBQUEsaUJBQWEsRUFBQTtJQUV0SCxvQ0FBcUIsZUFBQTtJQUNBLGFBQTBDOztJQUFBLGlCQUFNLEVBQUE7SUFFckUsb0NBQTJFLHNCQUFBO0lBQ04sYUFBc0M7O0lBQUEsaUJBQWEsRUFBQSxFQUFBLEVBQUEsRUFBQSxFQUFBOzs7SUFsR3ZHLGVBQXFDO0lBQXJDLG1FQUFxQztJQUN0RCxlQUErQjtJQUEvQixvREFBK0I7SUFJVCxlQUFnRDtJQUFoRCwrRUFBZ0Q7SUFHN0QsZUFBZ0Q7SUFBaEQsOEVBQWdEO0lBSW5CLGVBQTREO0lBQTVELG1GQUE0RDtJQUQ1RSxrREFBNkI7SUFHbkIsZUFBOEM7SUFBOUMsNkVBQThDO0lBS3JFLGVBQXNEO0lBQXRELG9GQUFzRDtJQUl6QixlQUE0RDtJQUE1RCxtRkFBNEQ7SUFENUUsaURBQTRCO0lBR2xCLGVBQThDO0lBQTlDLDZFQUE4QztJQUtyRSxlQUFxRDtJQUFyRCxtRkFBcUQ7SUFJekIsZUFBMEQ7SUFBMUQsaUZBQTBEO0lBRHpFLGdEQUEyQjtJQUdqQixlQUE0QztJQUE1QywyRUFBNEM7SUF3QjlELGVBQTRDO0lBQTVDLDJFQUE0QztJQUMxQixlQUEwQztJQUExQyx5RUFBMEM7SUFHaEQsZUFBNkM7SUFBN0MsNEVBQTZDO0lBQ3ZDLGVBQTJDO0lBQTNDLDBFQUEyQztJQU1yRCxlQUE0QztJQUE1QywyRUFBNEM7SUFFeEQsZUFBeUI7SUFBekIsbURBQXlCO0lBQzNCLGVBQXNDO0lBQXRDLHFFQUFzQztJQUN0QyxlQUNGO0lBREUsMEdBQ0Y7SUFDTSxlQUE2QztJQUE3Qyw0RUFBNkM7SUFDN0MsZUFBNkM7SUFBN0MsNEVBQTZDO0lBQzNDLGVBQXlCO0lBQXpCLG1EQUF5QjtJQUc5QixlQUE4QjtJQUE5QixzREFBOEI7SUFDOUIsZUFBOEI7SUFBOUIsc0RBQThCO0lBQzlCLGVBQTZCO0lBQTdCLHFEQUE2QjtJQVE0QixlQUF1QztJQUF2Qyx1RUFBdUM7SUFHcEYsZUFBMEM7SUFBMUMseUVBQTBDO0lBR00sZUFBc0M7SUFBdEMsc0VBQXNDOztBRHpGekgsTUFBTSxPQUFPLGtCQUFrQjtJQWtCN0IsWUFBbUIsRUFBc0IsRUFBVSxNQUFjLEVBQVMsRUFBZ0IsRUFDakYsTUFBcUIsRUFBUyxFQUFnQixFQUFTLElBQWlCLEVBQ3hFLFNBQXVCLEVBQVUsT0FBZ0IsRUFBUSxzQkFBOEM7UUFGN0YsT0FBRSxHQUFGLEVBQUUsQ0FBb0I7UUFBVSxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQVMsT0FBRSxHQUFGLEVBQUUsQ0FBYztRQUNqRixXQUFNLEdBQU4sTUFBTSxDQUFlO1FBQVMsT0FBRSxHQUFGLEVBQUUsQ0FBYztRQUFTLFNBQUksR0FBSixJQUFJLENBQWE7UUFDeEUsY0FBUyxHQUFULFNBQVMsQ0FBYztRQUFVLFlBQU8sR0FBUCxPQUFPLENBQVM7UUFBUSwyQkFBc0IsR0FBdEIsc0JBQXNCLENBQXdCO1FBbkJ6RyxZQUFPLEdBQUcsMkJBQTJCLENBQUM7UUFHdEMsY0FBUyxHQUFZLEtBQUssQ0FBQztRQUMzQix1QkFBa0IsR0FBWSxLQUFLLENBQUM7UUFFcEMsbUJBQWMsR0FBRyxFQUFFLENBQUM7UUFRcEIscUJBQWdCLEdBQVUsRUFBRSxDQUFDO1FBT2xDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsVUFBVSxFQUFFLElBQUksSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUM1QyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUU7Z0JBQ2hDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLGtDQUFrQyxDQUFDLENBQUM7WUFDeEQsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsQ0FBQyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQztRQUNyRixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsQ0FBQyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQztRQUNwRixJQUFJLENBQUMsZUFBZSxHQUFHLENBQUMsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7SUFDckYsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDOUMsSUFBSSxDQUFDLGlCQUFpQjtZQUNwQixJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQztnQkFDWixXQUFXLEVBQUUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDO2dCQUN6QixXQUFXLEVBQUUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDO2dCQUN6QixVQUFVLEVBQUUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDO2FBQ3pCLENBQUMsQ0FBQztRQUVMLElBQUksQ0FBQyxFQUFFLENBQUMsZUFBZSxFQUFFLENBQUMsU0FBUyxDQUNqQyxHQUFHLENBQUMsRUFBRTtZQUNKLElBQUksTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQzdDLElBQUksQ0FBQyxXQUFXLEdBQUcsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQzNDLENBQUMsQ0FBQyxDQUFDO1FBQ0wsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBRXpDLElBQUksQ0FBQyxFQUFFLENBQUMsbUJBQW1CLEVBQUUsQ0FBQyxTQUFTLENBQ3JDLEdBQUcsQ0FBQyxFQUFFO1lBQ0osSUFBSSxDQUFDLGVBQWUsR0FBRyxHQUFHLENBQUM7WUFDM0IsSUFBSSxJQUFJLENBQUMsZUFBZSxJQUFJLElBQUksSUFBSSxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7Z0JBQ25FLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUM7YUFDaEM7UUFDSCxDQUFDLENBQ0YsQ0FBQTtJQUNILENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLEVBQUU7WUFDakMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFdBQVcsRUFBRSxDQUFBO1lBQ3BDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztZQUNuRCxPQUFPO1NBQ1I7UUFDRCxJQUFJLElBQUksQ0FBQyxFQUFFLENBQUMsVUFBVSxFQUFFLElBQUksSUFBSSxDQUFDLEVBQUUsQ0FBQyxVQUFVLEVBQUUsRUFBRTtZQUNoRCxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1lBQ3pDLElBQUksQ0FBQyxFQUFFLENBQUMsNEJBQTRCLEVBQUUsQ0FBQyxTQUFTLENBQzlDLEdBQUcsQ0FBQyxFQUFFO2dCQUNKLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLHlDQUF5QyxFQUFFLEdBQUcsQ0FBQyxDQUFDO2dCQUNsRSxJQUFJLElBQUksQ0FBQyxrQkFBa0IsSUFBSSxJQUFJLEVBQUU7b0JBQ25DLHNCQUFzQjtvQkFDdEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxjQUFjLENBQUMsRUFBQyxFQUFDLFdBQVcsRUFBQyxFQUFDLGNBQWMsRUFBQyxvQkFBb0IsRUFBQyxFQUFDLENBQUMsQ0FBQztpQkFDNUY7cUJBQU07b0JBQ0wsNEJBQTRCO29CQUM1QixJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLEVBQUUsRUFBRSxXQUFXLEVBQUUsRUFBRSxXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7aUJBQ3JHO2dCQUNELElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1lBQ3pCLENBQUMsRUFDRCxHQUFHLENBQUMsRUFBRTtnQkFDSixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztnQkFDdkIsSUFBSSxDQUFDLFFBQVEsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQzNCLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNuQyxDQUFDLENBQ0YsQ0FBQTtTQUNGO2FBQU0sSUFBRyxJQUFJLENBQUMsRUFBRSxDQUFDLFVBQVUsRUFBRSxJQUFJLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUM7WUFDaEQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztZQUNwQyxrREFBa0Q7WUFDbEQsa0RBQWtEO1lBQ2xELHVEQUF1RDtZQUV2RCxJQUFJLENBQUMsRUFBRSxDQUFDLHNDQUFzQyxFQUFFLENBQUMsU0FBUyxDQUN4RCxHQUFHLENBQUMsRUFBRTtnQkFDSixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxpREFBaUQsRUFBRSxHQUFHLENBQUMsQ0FBQztnQkFDMUUsSUFBRyxJQUFJLENBQUMsRUFBRSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsRUFBQztvQkFDL0MsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsaUNBQWlDLENBQUMsQ0FBQztvQkFDckQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxtQkFBbUIsQ0FBQyxFQUFDLEVBQUMsV0FBVyxFQUFDLEVBQUMsY0FBYyxFQUFDLG9CQUFvQixFQUFDLEVBQUMsQ0FBQyxDQUFDO29CQUNoRyxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztpQkFDeEI7cUJBQU8sSUFBSSxJQUFJLENBQUMsa0JBQWtCLElBQUksSUFBSSxFQUFFO29CQUMzQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQywyREFBMkQsQ0FBQyxDQUFDO29CQUMvRSxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxFQUFDLEVBQUMsV0FBVyxFQUFDLEVBQUMsY0FBYyxFQUFDLG9CQUFvQixFQUFDLEVBQUMsQ0FBQyxDQUFDO29CQUMzRixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztpQkFDeEI7cUJBQU07b0JBQ0wsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsNkNBQTZDLENBQUMsQ0FBQztvQkFDakUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLEVBQUMsV0FBVyxFQUFDLEVBQUMsV0FBVyxFQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFDLEVBQUMsQ0FBQyxDQUFDO29CQUM3RixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztpQkFDeEI7WUFDSCxDQUFDLEVBQ0QsR0FBRyxDQUFDLEVBQUU7Z0JBQ0osSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7Z0JBQ3ZCLElBQUksQ0FBQyxRQUFRLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUM1QixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDbEMsQ0FBQyxDQUNGLENBQUE7U0FDRjthQUFNO1lBQ0wsc0VBQXNFO1lBQ3RFLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsb0JBQW9CLENBQUMsRUFBRSxFQUFFLFdBQVcsRUFBRSxFQUFFLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztZQUN2RyxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztTQUN4QjtJQUNILENBQUM7SUFFRCxVQUFVO1FBQ1IsSUFBRyxJQUFJLENBQUMsRUFBRSxDQUFDLFVBQVUsRUFBRSxJQUFJLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUM7WUFDekMsbUNBQW1DO1lBQ25DLCtEQUErRDtZQUMvRCxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsZ0JBQWdCLEVBQUcsT0FBTyxDQUFDLENBQUM7U0FDM0Q7YUFBTSxJQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsVUFBVSxFQUFFLElBQUksSUFBSSxDQUFDLEVBQUUsQ0FBQyxVQUFVLEVBQUUsRUFBQztZQUNyRCxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7U0FDcEM7YUFBTTtZQUNMLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDO1NBQzNDO0lBQ0gsQ0FBQztJQUVELHFCQUFxQixDQUFDLFNBQTJCO1FBQy9DLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUM5QyxNQUFNLE9BQU8sR0FBRyxTQUFTLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3JDLElBQUksT0FBTyxZQUFZLGtCQUFrQixFQUFFO2dCQUN6QyxPQUFPLENBQUMsV0FBVyxDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7YUFDekM7aUJBQU0sSUFBSSxPQUFPLFlBQVksZ0JBQWdCLEVBQUU7Z0JBQzlDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxPQUFPLENBQUMsQ0FBQzthQUNyQztRQUNILENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUVELElBQUksV0FBVztRQUNiLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUN4RCxDQUFDO0lBRUQsSUFBSSxXQUFXO1FBQ2IsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFFRCxJQUFJLFVBQVU7UUFDWixPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVELElBQUksYUFBYTtRQUNmLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUMxRCxDQUFDO21GQTVKVSxrQkFBa0I7b0VBQWxCLGtCQUFrQjtZQ2hCekIsbUVBR00sd0RBQUE7O1lBSEEscURBQTRCO1lBTVIsZUFBNkI7WUFBN0Isc0RBQTZCOzs7aUZEVWhELGtCQUFrQjtjQUw5QixTQUFTOzJCQUNFLGdCQUFnQjs7a0ZBSWYsa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgVW50eXBlZEZvcm1CdWlsZGVyLCBVbnR5cGVkRm9ybUdyb3VwLCBVbnR5cGVkRm9ybUNvbnRyb2wsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IERvbVNhbml0aXplciB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xyXG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBLZXlWYWx1ZU1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3F1ZXN0aW9ubmFpcmUvS2V5VmFsdWVNb2RlbCc7XHJcbmltcG9ydCB7IENsYWltYW50Q29udGV4dFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9jbGFpbWFudC1jb250ZXh0L2NsYWltYW50LWNvbnRleHQuc2VydmljZSc7XHJcbmltcG9ydCB7IENsYWltU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2NsYWltcy9jbGFpbXMuc2VydmljZSc7XHJcbmltcG9ydCB7IExvZ2dlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9sb2dnZXIvbG9nZ2VyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBMb2dpblNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9sb2dpbi9sb2dpbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVXRpbFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy91dGlsL3V0aWwuc2VydmljZSc7XHJcbmltcG9ydCB7IFN0b3JhZ2UgfSBmcm9tICdAaW9uaWMvc3RvcmFnZS1hbmd1bGFyJztcclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtY2xhaW0taW5mbycsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2NsYWltLWluZm8uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9jbGFpbS1pbmZvLmNvbXBvbmVudC5jc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDbGFpbUluZm9Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIHB1YmxpYyBoZWFkaW5nID0gJ0NsYWltIEZpbGluZyBOb3RpZmljYXRpb24nO1xyXG4gIHB1YmxpYyBjbGFpbWFudEluZHVjdGlvbjogVW50eXBlZEZvcm1Hcm91cDtcclxuICBwdWJsaWMgZXJyb3JNc2c6IHN0cmluZztcclxuICBwdWJsaWMgaXNMb2FkaW5nOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIGRpc3BsYXlEaXNhc3RlclF1ZTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBwdWJsaWMgZGlzYXN0ZXJSZXN1bHQgPSBcIlwiO1xyXG5cclxuICBjaXRpemVuc2hpcFN0YXR1czogYW55W107XHJcbiAgbWlsaXRhcnlFbXBsb3llcjogYW55W107XHJcbiAgZmVkZXJhbEVtcGxveWVyOiBhbnlbXTtcclxuICBicFN0YXJ0RGF0ZTogc3RyaW5nO1xyXG4gIHVuZW1wbG95ZWREaXNhc3RlcjogYW55W107XHJcbiAgbGlzdE9mRGlzYXN0ZXJzOiBLZXlWYWx1ZU1vZGVsW107XHJcbiAgcHVibGljIGJhY2tkYXRlRnVuY3Rpb246IGFueVtdID0gW107IFxyXG4gIHB1YmxpYyBjdXJyZW50U3RhdGU6IHN0cmluZztcclxuXHJcbiAgY29uc3RydWN0b3IocHVibGljIGZiOiBVbnR5cGVkRm9ybUJ1aWxkZXIsIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsIHB1YmxpYyBsczogTG9naW5TZXJ2aWNlLFxyXG4gICAgcHVibGljIGxvZ2dlcjogTG9nZ2VyU2VydmljZSwgcHVibGljIGNzOiBDbGFpbVNlcnZpY2UsIHB1YmxpYyB1dGlsOiBVdGlsU2VydmljZSxcclxuICAgIHB1YmxpYyBzYW5pdGl6ZXI6IERvbVNhbml0aXplciwgcHJpdmF0ZSBzdG9yYWdlOiBTdG9yYWdlLHB1YmxpYyBjbGFpbWFudENvbnRleHRTZXJ2aWNlOiBDbGFpbWFudENvbnRleHRTZXJ2aWNlKSB7XHJcblxyXG4gICAgaWYgKCEodGhpcy5scy5pc0xvZ2dlZEluKCkgJiYgdGhpcy5scy5pc0NzcigpKSkgXHJcbiAgICAgIHRoaXMuc3RvcmFnZS5jcmVhdGUoKS50aGVuKCgpID0+IHtcclxuICAgICAgdGhpcy5sb2dnZXIuZGVidWcoXCJTdG9yYWdlIERCIGNyZWF0ZWQgc3VjY2Vzc2Z1bGx5LlwiKTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5jaXRpemVuc2hpcFN0YXR1cyA9IFt7IGxhYmVsOiAnWWVzJywgdmFsdWU6ICdZJyB9LCB7IGxhYmVsOiAnTm8nLCB2YWx1ZTogJ04nIH1dO1xyXG4gICAgdGhpcy5taWxpdGFyeUVtcGxveWVyID0gW3sgbGFiZWw6ICdZZXMnLCB2YWx1ZTogJ1knIH0sIHsgbGFiZWw6ICdObycsIHZhbHVlOiAnTicgfV07XHJcbiAgICB0aGlzLmZlZGVyYWxFbXBsb3llciA9IFt7IGxhYmVsOiAnWWVzJywgdmFsdWU6ICdZJyB9LCB7IGxhYmVsOiAnTm8nLCB2YWx1ZTogJ04nIH1dO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLmJhY2tkYXRlRnVuY3Rpb24ucHVzaChcImNoZ2NsYWltZWZmZGF0ZVwiKTtcclxuICAgIHRoaXMuY2xhaW1hbnRJbmR1Y3Rpb24gPVxyXG4gICAgICB0aGlzLmZiLmdyb3VwKHtcclxuICAgICAgICBjaXRpemVuc2hpcDogW251bGwsIG51bGxdLFxyXG4gICAgICAgIG1pbGl0YXJ5RW1wOiBbbnVsbCwgbnVsbF0sXHJcbiAgICAgICAgZmVkZXJhbEVtcDogW251bGwsIG51bGxdXHJcbiAgICAgIH0pO1xyXG5cclxuICAgIHRoaXMuY3MuZmV0Y2hCYXNlUGVyaW9kKCkuc3Vic2NyaWJlKFxyXG4gICAgICByZXMgPT4ge1xyXG4gICAgICAgIHZhciBwYXJzZWQgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHJlcykpO1xyXG4gICAgICAgIHRoaXMuYnBTdGFydERhdGUgPSBwYXJzZWRbXCJicFN0YXJ0RGF0ZVwiXTtcclxuICAgICAgfSk7XHJcbiAgICB0aGlzLmN1cnJlbnRTdGF0ZSA9IHRoaXMudXRpbC5nZXRTdGF0ZSgpO1xyXG5cclxuICAgIHRoaXMuY3MuZmV0Y2hMaXN0T2ZEaXNhdGVycygpLnN1YnNjcmliZShcclxuICAgICAgcmVzID0+IHtcclxuICAgICAgICB0aGlzLmxpc3RPZkRpc2FzdGVycyA9IHJlcztcclxuICAgICAgICBpZiAodGhpcy5saXN0T2ZEaXNhc3RlcnMgIT0gbnVsbCAmJiB0aGlzLmxpc3RPZkRpc2FzdGVycy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICB0aGlzLmRpc3BsYXlEaXNhc3RlclF1ZSA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICApXHJcbiAgfVxyXG5cclxuICBvblN1Ym1pdCgpIHtcclxuICAgIGlmICghdGhpcy5jbGFpbWFudEluZHVjdGlvbi52YWxpZCkge1xyXG4gICAgICB0aGlzLmNsYWltYW50SW5kdWN0aW9uLm1hcmtBc0RpcnR5KClcclxuICAgICAgdGhpcy52YWxpZGF0ZUFsbEZvcm1GaWVsZHModGhpcy5jbGFpbWFudEluZHVjdGlvbik7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmxzLmlzTG9nZ2VkSW4oKSAmJiB0aGlzLmxzLmlzQ2xhaW1hbnQoKSkge1xyXG4gICAgICB0aGlzLmxvZ2dlci5kZWJ1ZygndW5kZXIgY2xhaW1hbnQgZmxvdycpO1xyXG4gICAgICB0aGlzLmNzLmRldGVybWluZU5ld0NsYWltRWxpZ2liaWxpdHkoKS5zdWJzY3JpYmUoXHJcbiAgICAgICAgcmVzID0+IHtcclxuICAgICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKFwicmVzIHZhbHVlIGZyb20gZGV0ZXJtaW5lIGVsaWdpYmlsaXR5ID0gXCIsIHJlcyk7XHJcbiAgICAgICAgICBpZiAodGhpcy5kaXNwbGF5RGlzYXN0ZXJRdWUgPT0gdHJ1ZSkge1xyXG4gICAgICAgICAgICAvL3JlZGlyZWN0IHRvIGR1YSBwYWdlXHJcbiAgICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL2R1YS1yZXF1ZXN0J10se3F1ZXJ5UGFyYW1zOntiYWNrQnV0dG9uUGFnZTonY2xhaW1hbnQtaW5kdWN0aW9uJ319KTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIC8vbmF2aWdhdGUgdG8gYWJvdXQgeW91cnNlbGZcclxuICAgICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvc2ZiL2NsbXQtY2xhaW0nXSwgeyBxdWVyeVBhcmFtczogeyBjaXRpemVuRmxhZzogdGhpcy5jaXRpemVuc2hpcC52YWx1ZSB9IH0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIGVyciA9PiB7XHJcbiAgICAgICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5lcnJvck1zZyA9IGVycltcIm1zZ1wiXTtcclxuICAgICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKHRoaXMuZXJyb3JNc2cpO1xyXG4gICAgICAgIH1cclxuICAgICAgKVxyXG4gICAgfSBlbHNlIGlmKHRoaXMubHMuaXNMb2dnZWRJbigpICYmIHRoaXMubHMuaXNDc3IoKSl7XHJcbiAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKCd1bmRlciBDU1IgZmxvdycpO1xyXG4gICAgICAvKmZvciBsb2NhbCB0ZXN0aW5nLCBzZXQgc3NuIGluIGNvbnRleHQgc2VydmljZSAqL1xyXG4gICAgICAvL3RoaXMuY2xhaW1hbnRDb250ZXh0U2VydmljZS5zZXRTc24oJzc2NjAxMDAyMCcpO1xyXG4gICAgICAvL3RoaXMuY2xhaW1hbnRDb250ZXh0U2VydmljZS5zZXRDbGFpbWFudElkKCcxNzYwMTM2Jyk7XHJcblxyXG4gICAgICB0aGlzLmNzLmRldGVybWluZUluaXRpYWxDbGFpbUVsaWdpYmlsaXR5Rm9yQ3NyKCkuc3Vic2NyaWJlKFxyXG4gICAgICAgIHJlcyA9PiB7XHJcbiAgICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhcInJlcyB2YWx1ZSBmcm9tIGRldGVybWluZSBlbGlnaWJpbGl0eSBmb3IgQ1NSID0gXCIsIHJlcyk7XHJcbiAgICAgICAgICBpZih0aGlzLmxzLmNoZWNrRnVuY3Rpb25zKHRoaXMuYmFja2RhdGVGdW5jdGlvbikpe1xyXG4gICAgICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhcIkNTUiBoYXMgZnVuY3Rpb24gZm9yIGJhY2tkYXRpbmdcIik7XHJcbiAgICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL2JhY2tkYXRlLXJlcXVlc3QnXSx7cXVlcnlQYXJhbXM6e2JhY2tCdXR0b25QYWdlOidjbGFpbWFudC1pbmR1Y3Rpb24nfX0pO1xyXG4gICAgICAgICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgfSBlbHNlICBpZiAodGhpcy5kaXNwbGF5RGlzYXN0ZXJRdWUgPT0gdHJ1ZSkge1xyXG4gICAgICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhcIkRpc2FzdGVyIGlzIGRlY2xhcmVkIGFuZCBjbGFpbSBjYW4gYmUgZmlsZWQgd2l0aCBkaXNhc3RlclwiKTtcclxuICAgICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvZHVhLXJlcXVlc3QnXSx7cXVlcnlQYXJhbXM6e2JhY2tCdXR0b25QYWdlOidjbGFpbWFudC1pbmR1Y3Rpb24nfX0pO1xyXG4gICAgICAgICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoXCJObyBiYWNrZGF0aW5nIGNsYWltICBhbmQgbm8gYWN0aXZlIGRpc2FzdGVyXCIpO1xyXG4gICAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy9zZmIvY3NyLWNsYWltJ10sIHtxdWVyeVBhcmFtczp7Y2l0aXplbkZsYWc6dGhpcy5jaXRpemVuc2hpcC52YWx1ZX19KTtcclxuICAgICAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIGVyciA9PiB7XHJcbiAgICAgICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5lcnJvck1zZyA9IGVycltcIm1zZ1wiXTtcclxuICAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcodGhpcy5lcnJvck1zZyk7XHJcbiAgICAgICAgfVxyXG4gICAgICApXHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICAvL25vdCBsb2dnZWQgaW4gdXNlciwgZHVhIHdpbGwgYXBwZWFyIGFzIGEgcG9wdXAgYmVmb3JlIHNpdHVhdGlvbiBwYWdlXHJcbiAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL2ZiL2Fib3V0LXlvdXJzZWxmJ10sIHsgcXVlcnlQYXJhbXM6IHsgY2l0aXplbkZsYWc6IHRoaXMuY2l0aXplbnNoaXAudmFsdWUgfSB9KTtcclxuICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNhbmNlbFBhZ2UoKXtcclxuICAgIGlmKHRoaXMubHMuaXNMb2dnZWRJbigpICYmIHRoaXMubHMuaXNDc3IoKSl7XHJcbiAgICAgIC8qIGZvciBsb2NhbCB0ZXN0aW5nLCBzZWUgYmVsb3cgICovXHJcbiAgICAgIC8vd2luZG93Lm9wZW4oJ2h0dHA6Ly9sb2NhbGhvc3Q6ODEwMS9zcy9zZWFyY2gtc3NuJyAsICdfc2VsZicpO1xyXG4gICAgICB3aW5kb3cub3Blbihsb2NhdGlvbi5vcmlnaW4gKyAnL3NzL3NlYXJjaC1zc24nICwgJ19zZWxmJyk7XHJcbiAgICB9IGVsc2UgaWYodGhpcy5scy5pc0xvZ2dlZEluKCkgJiYgdGhpcy5scy5pc0NsYWltYW50KCkpe1xyXG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy93ZWxjb21lJ10pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvd2VsY29tZS1zcGxhc2gnXSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICB2YWxpZGF0ZUFsbEZvcm1GaWVsZHMoZm9ybUdyb3VwOiBVbnR5cGVkRm9ybUdyb3VwKSB7XHJcbiAgICBPYmplY3Qua2V5cyhmb3JtR3JvdXAuY29udHJvbHMpLmZvckVhY2goZmllbGQgPT4ge1xyXG4gICAgICBjb25zdCBjb250cm9sID0gZm9ybUdyb3VwLmdldChmaWVsZCk7XHJcbiAgICAgIGlmIChjb250cm9sIGluc3RhbmNlb2YgVW50eXBlZEZvcm1Db250cm9sKSB7XHJcbiAgICAgICAgY29udHJvbC5tYXJrQXNEaXJ0eSh7IG9ubHlTZWxmOiB0cnVlIH0pO1xyXG4gICAgICB9IGVsc2UgaWYgKGNvbnRyb2wgaW5zdGFuY2VvZiBVbnR5cGVkRm9ybUdyb3VwKSB7XHJcbiAgICAgICAgdGhpcy52YWxpZGF0ZUFsbEZvcm1GaWVsZHMoY29udHJvbCk7XHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBnZXQgY2l0aXplbnNoaXAoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5jbGFpbWFudEluZHVjdGlvbi5jb250cm9sc1snY2l0aXplbnNoaXAnXTtcclxuICB9XHJcblxyXG4gIGdldCBtaWxpdGFyeUVtcCgpIHtcclxuICAgIHJldHVybiB0aGlzLmNsYWltYW50SW5kdWN0aW9uLmNvbnRyb2xzWydtaWxpdGFyeUVtcCddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGZlZGVyYWxFbXAoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5jbGFpbWFudEluZHVjdGlvbi5jb250cm9sc1snZmVkZXJhbEVtcCddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHVuZW1wbG95ZWREaXMoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5jbGFpbWFudEluZHVjdGlvbi5jb250cm9sc1sndW5lbXBsb3llZERpcyddO1xyXG4gIH1cclxuXHJcbn1cclxuIiwiICAgICAgPGRpdiAqbmdJZj1cIiFpc0xvYWRpbmcgJiYgZXJyb3JNc2dcIiBjbGFzcz1cImlvbi10ZXh0LWNlbnRlciBpb24tcGFkZGluZy10b3BcIiBzdHlsZT1cInBhZGRpbmctdG9wOiA1MHB4O1wiPlxyXG4gICAgICAgIDxpb24taWNvbiBuYW1lPVwiYWxlcnQtY2lyY2xlLW91dGxpbmVcIiBzdHlsZT1cImZvbnQtc2l6ZTogNjBweDsgY29sb3I6IHZhcigtLWlvbi1jb2xvci1kYW5nZXIpO1wiPjwvaW9uLWljb24+XHJcbiAgICAgICAgPGRpdiBbaW5uZXJIVE1MXT1cInNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0SHRtbChlcnJvck1zZylcIiBzdHlsZT1cImNvbG9yOiB2YXIoLS1pb24tY29sb3ItZGFuZ2VyKTsgZm9udC1zaXplOiBsYXJnZXI7XCIgY2xhc3M9XCJpb24tdGV4dC1jZW50ZXIgaW9uLXBhZGRpbmdcIj48L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgXHJcbiAgXHJcbiAgICAgIDxkaXYgY2xhc3M9XCJpb24tcGFkZGluZ1wiICpuZ0lmPVwiIWlzTG9hZGluZyAmJiAhZXJyb3JNc2dcIj5cclxuICAgICAgICA8aDEgY2xhc3M9XCJtYWluSGVhZGVyXCI+e3snaW5kdWN0aW9uLm1haW5oZWFkZXInfCB0cmFuc2xhdGV9fTwvaDE+XHJcbiAgICAgICAgPGZvcm0gW2Zvcm1Hcm91cF09XCJjbGFpbWFudEluZHVjdGlvblwiIChuZ1N1Ym1pdCk9XCJvblN1Ym1pdCgpXCI+XHJcbiAgICAgICAgICA8aW9uLWdyaWQ+XHJcbiAgICAgICAgICAgIDxpb24tcm93PlxyXG4gICAgICAgICAgICAgIDxpb24tY29sIHNpemU9XCIxMlwiIHNpemVTbT1cIjEyXCIgc2l6ZVhzPVwiMTJcIiBzaXplTWQ9XCIxMlwiIHNpemVMZz1cIjZcIiBzaXplWGw9XCI1XCIgb2Zmc2V0WGw9XCIxXCI+XHJcbiAgICAgICAgICAgICAgICA8aDMgY2xhc3M9XCJsaWdodGVyXCI+e3tcImluZHVjdGlvbi5maXJzdHF1ZXN0aW9uLmhlYWRpbmdcInwgdHJhbnNsYXRlfX08L2gzPlxyXG4gICAgICAgICAgICAgICAgPGlvbi1yb3c+XHJcbiAgICAgICAgICAgICAgICAgIDxpb24tY29sIHNpemU9XCI5XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHA+e3sgXCJpbmR1Y3Rpb24uY2l0aXplbnNoaXAucXVlc3Rpb25cInwgdHJhbnNsYXRlfX08L3A+XHJcbiAgICAgICAgICAgICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgICAgICAgICAgICAgPGlvbi1jb2w+XHJcbiAgICAgICAgICAgICAgICAgICAgPHAtc2VsZWN0QnV0dG9uIFtvcHRpb25zXT1cImNpdGl6ZW5zaGlwU3RhdHVzXCIgb3B0aW9uTGFiZWw9XCJsYWJlbFwiIG9wdGlvblZhbHVlPVwidmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiY2l0aXplbnNoaXBcIiBbY2xhc3MuaGFzLWVycm9yXT1cImNpdGl6ZW5zaGlwLmRpcnR5ICYmIGNpdGl6ZW5zaGlwLmludmFsaWRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8L3Atc2VsZWN0QnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaGVscC1ibG9ja1wiICpuZ0lmPVwiY2l0aXplbnNoaXAuZGlydHkgJiYgY2l0aXplbnNoaXAuaW52YWxpZFwiPnt7XCJpbmR1Y3Rpb24ucmVxdWlyZWRcInwgdHJhbnNsYXRlfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgICAgICAgICAgIDwvaW9uLXJvdz5cclxuICAgICAgICAgICAgICAgIDxpb24tcm93PlxyXG4gICAgICAgICAgICAgICAgICA8aW9uLWNvbCBzaXplPVwiOVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxwPnt7XCJpbmR1Y3Rpb24ubWlsaXRhcnlkZXBhcnR1cmUucXVlc3Rpb25cIiB8IHRyYW5zbGF0ZX19PC9wPlxyXG4gICAgICAgICAgICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgICAgICAgICAgICAgIDxpb24tY29sPlxyXG4gICAgICAgICAgICAgICAgICAgIDxwLXNlbGVjdEJ1dHRvbiBbb3B0aW9uc109XCJtaWxpdGFyeUVtcGxveWVyXCIgb3B0aW9uTGFiZWw9XCJsYWJlbFwiIG9wdGlvblZhbHVlPVwidmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwibWlsaXRhcnlFbXBcIiBbY2xhc3MuaGFzLWVycm9yXT1cIm1pbGl0YXJ5RW1wLmRpcnR5ICYmIG1pbGl0YXJ5RW1wLmludmFsaWRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8L3Atc2VsZWN0QnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaGVscC1ibG9ja1wiICpuZ0lmPVwibWlsaXRhcnlFbXAuZGlydHkgJiYgbWlsaXRhcnlFbXAuaW52YWxpZFwiPnt7XCJpbmR1Y3Rpb24ucmVxdWlyZWRcInwgdHJhbnNsYXRlfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgICAgICAgICAgIDwvaW9uLXJvdz5cclxuICAgICAgICAgICAgICAgIDxpb24tcm93PlxyXG4gICAgICAgICAgICAgICAgICA8aW9uLWNvbCBzaXplPVwiOVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxwPnt7XCJpbmR1Y3Rpb24uZmVkZXJhbGRlcGFydHVyZS5xdWVzdGlvblwiIHwgdHJhbnNsYXRlfX08L3A+XHJcbiAgICAgICAgICAgICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgICAgICAgICAgICAgPGlvbi1jb2w+XHJcbiAgICAgICAgICAgICAgICAgICAgPHAtc2VsZWN0QnV0dG9uIFtvcHRpb25zXT1cImZlZGVyYWxFbXBsb3llclwiIG9wdGlvbkxhYmVsPVwibGFiZWxcIiBvcHRpb25WYWx1ZT1cInZhbHVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImZlZGVyYWxFbXBcIiBbY2xhc3MuaGFzLWVycm9yXT1cImZlZGVyYWxFbXAuZGlydHkgJiYgZmVkZXJhbEVtcC5pbnZhbGlkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9wLXNlbGVjdEJ1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImhlbHAtYmxvY2tcIiAqbmdJZj1cImZlZGVyYWxFbXAuaW52YWxpZCAmJiBmZWRlcmFsRW1wLmRpcnR5XCI+e3tcImluZHVjdGlvbi5yZXF1aXJlZFwifCB0cmFuc2xhdGV9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICAgICAgICAgICAgPC9pb24tcm93PlxyXG4gICAgICAgICAgICAgICAgPCEtLSA8ZGl2ICpuZ0lmPVwiZGlzcGxheURpc2FzdGVyUXVlXCI+XHJcbiAgICAgICAgICAgICAgICA8aW9uLXJvdz5cclxuICAgICAgICAgICAgICAgICAgPGlvbi1jb2wgc2l6ZT1cIjlcIj5cclxuICAgICAgICAgICAgICAgICAgICA8cD57e1wiaW5kdWN0aW9uLnVuZW1wbG95ZWQuZGlzYXN0ZXJcInwgdHJhbnNsYXRlfX0ge3tkaXNhc3RlclJlc3VsdH19PC9wPlxyXG4gICAgICAgICAgICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgICAgICAgICAgICAgIDxpb24tY29sPlxyXG4gICAgICAgICAgICAgICAgICAgIDxwLXNlbGVjdEJ1dHRvbiBbb3B0aW9uc109XCJ1bmVtcGxveWVkRGlzYXN0ZXJcIiBvcHRpb25MYWJlbD1cImxhYmVsXCIgb3B0aW9uVmFsdWU9XCJ2YWx1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJ1bmVtcGxveWVkRGlzXCIgcmVxdWlyZWQgW2NsYXNzLmhhcy1lcnJvcl09XCJ1bmVtcGxveWVkRGlzLmRpcnR5ICYmIHVuZW1wbG95ZWREaXMuaW52YWxpZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvcC1zZWxlY3RCdXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJoZWxwLWJsb2NrXCIgKm5nSWY9XCJ1bmVtcGxveWVkRGlzLmludmFsaWQgJiYgdW5lbXBsb3llZERpcy5kaXJ0eVwiPnt7XCJpbmR1Y3Rpb24ucmVxdWlyZWRcInwgdHJhbnNsYXRlfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgICAgICAgICAgIDwvaW9uLXJvdz5cclxuICAgICAgICAgICAgICA8L2Rpdj4gLS0+XHJcbiAgICAgICAgICAgICAgICA8aW9uLXJvdz5cclxuICAgICAgICAgICAgICAgICAgPGlvbi1jb2wgc2l6ZT1cIjlcIj5cclxuICAgICAgICAgICAgICAgICAgICA8YnIvPjxici8+XHJcbiAgICAgICAgICAgICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgICAgICAgICAgIDwvaW9uLXJvdz5cclxuICAgICAgICAgICAgICAgIDxpb24tcm93PlxyXG4gICAgICAgICAgICAgICAgICA8aW9uLWNvbCBzaXplPVwiOVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGgyPnt7XCJpbmR1Y3Rpb24uZGlzY2xhaW1lci5oZWFkZXJcInwgdHJhbnNsYXRlfX08L2gyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cImRpc2NsYWltZXJcIj57e1wiaW5kdWN0aW9uLmRpc2NsYWltZXIuaW5mb1wifCB0cmFuc2xhdGV9fTwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGgyIGlkPVwic3BhY2VyXCI+e3tcImluZHVjdGlvbi5pbmZvcm1hdGlvbi5oZWFkZXJcInwgdHJhbnNsYXRlfX08L2gyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cImRpc2NsYWltZXJcIj57eyBcImluZHVjdGlvbi5pbmZvcm1hdGlvbi5pbmZvXCJ8dHJhbnNsYXRlfX08L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICAgICAgICAgICAgPC9pb24tcm93PlxyXG4gICAgICAgICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgICAgICAgICA8aW9uLWNvbCBzaXplPVwiMTJcIiBzaXplU209XCIxMlwiIHNpemVYcz1cIjEyXCIgc2l6ZU1kPVwiMTJcInNpemVNZCBvZmZzZXQ9XCJub25lXCIgc2l6ZUxnPVwiNlwiIHNpemUtbGcgb2Zmc2V0PVwiMVwiIHNpemVYbD1cIjVcIiBjbGFzcz1cImNvbEhvbGRlclwiPlxyXG4gICAgICAgICAgICAgICAgPGgzIGNsYXNzPVwibGlnaHRlclwiPnt7XCJpbmR1Y3Rpb24uZG9jdW1lbnRzLmhlYWRpbmdcInwgdHJhbnNsYXRlfX08L2gzPlxyXG4gICAgICAgICAgICAgICAgPHVsIGNsYXNzPVwicG9pbnRzXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJjdXJyZW50U3RhdGU9PT0nTVMnXCI+PGxpPnt7XCJpbmR1Y3Rpb24ubGljZW5zZS50eXBlXCJ8IHRyYW5zbGF0ZX19PC9saT48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPGxpPnt7XCJpbmR1Y3Rpb24uc29jaWFsLnR5cGVcInwgdHJhbnNsYXRlfX08L2xpPlxyXG4gICAgICAgICAgICAgICAgICA8bGk+e3tcImluZHVjdGlvbi5lbXBsb3llci50eXBlXCJ8IHRyYW5zbGF0ZX19IHt7YnBTdGFydERhdGV9fVxyXG4gICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz1cImRhc2hcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxsaT57e1wiaW5kdWN0aW9uLmlkZW50aXR5LmNyaXRlcmlvblwifCB0cmFuc2xhdGV9fTwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8bGk+e3tcImluZHVjdGlvbi53b3JrZGF0ZS5jcml0ZXJpb25cInwgdHJhbnNsYXRlfX08L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImN1cnJlbnRTdGF0ZT09PSdNUydcIj48bGk+e3tcImluZHVjdGlvbi53b3JrcGF5LmNyaXRlcmlvblwifCB0cmFuc2xhdGV9fTwvbGk+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC91bD5cclxuICAgICAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgICAgICAgPGxpICpuZ0lmPVwiY2l0aXplbnNoaXAudmFsdWUgPT0gJ04nXCI+e3tcImluZHVjdGlvbi5jaXRpemVuc2hpcC50cnVlXCJ8IHRyYW5zbGF0ZX19PC9saT5cclxuICAgICAgICAgICAgICAgICAgPGxpICpuZ0lmPVwibWlsaXRhcnlFbXAudmFsdWUgPT0gJ1knXCI+e3tcImluZHVjdGlvbi5taWxpdGFyeS50cnVlXCJ8IHRyYW5zbGF0ZX19PC9saT5cclxuICAgICAgICAgICAgICAgICAgPGxpICpuZ0lmPVwiZmVkZXJhbEVtcC52YWx1ZSA9PSAnWSdcIj57e1wiaW5kdWN0aW9uLmZlZGVyYWwudHJ1ZVwifCB0cmFuc2xhdGV9fTwvbGk+XHJcbiAgICAgICAgICAgICAgICA8L3VsPlxyXG4gICAgICAgICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgICAgICAgPC9pb24tcm93PlxyXG4gICAgICAgICAgPC9pb24tZ3JpZD5cclxuICAgICAgICAgIDxpb24tZm9vdGVyPlxyXG4gICAgICAgICAgICA8aW9uLXJvdz5cclxuICAgICAgICAgICAgICA8aW9uLWNvbCBzaXplPVwiMVwiIHNpemVTbT1cIjNcIiBzaXplWHM9XCIzXCIgY2xhc3M9XCJpb24tdGV4dC1sZWZ0IGlvbi1wYWRkaW5nXCI+XHJcbiAgICAgICAgICAgICAgICA8aW9uLWJ1dHRvbiBzaGFwZT1cInJvdW5kXCIgZmlsbD1cIm91dGxpbmVcIiAoY2xpY2spPVwiY2FuY2VsUGFnZSgpXCI+e3tcImluZHVjdGlvbi5idXR0b24uY2FuY2VsXCJ8dHJhbnNsYXRlfX08L2lvbi1idXR0b24+XHJcbiAgICAgICAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICAgICAgICAgIDxpb24tY29sIGNsYXNzPVwicG9zXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3RhcnRcIj57e1wiaW5kdWN0aW9uLmZvb3Rlci5xdWVzdGlvblwifCB0cmFuc2xhdGV9fTwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgICAgICAgICA8aW9uLWNvbCBzaXplPVwiMVwiIHNpemVTbT1cIjFcIiBzaXplWHM9XCIxXCIgY2xhc3M9XCJpb24tdGV4dC1yaWdodCBpb24tcGFkZGluZ1wiPiAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgIDxpb24tYnV0dG9uIHNoYXBlPVwicm91bmRcIiBmaWxsPVwic29saWRcIiB0eXBlPVwic3VibWl0XCIgY2xhc3M9XCJiZWdpblwiPnt7XCJpbmR1Y3Rpb24uYnV0dG9uLnN0YXJ0XCJ8dHJhbnNsYXRlfX08L2lvbi1idXR0b24+XHJcbiAgICAgICAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICAgICAgICA8L2lvbi1yb3c+XHJcbiAgICAgICAgICA8L2lvbi1mb290ZXI+XHJcbiAgICAgICAgPC9mb3JtPlxyXG4gICAgICA8L2Rpdj4gIl19
|