tango-app-ui-manage-settings 3.0.19-dev → 3.0.20-dev

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.
@@ -44,13 +44,13 @@ export class CreditNoteComponent {
44
44
  if (e) {
45
45
  this.totalAmount = this.creditnoteform.get('totalAmount')?.value;
46
46
  this.discount = ((this.totalAmount - e) / this.totalAmount * 100).toFixed(2);
47
- if (this.discount > 10 || isNaN(e)) {
47
+ this.revisedAmount = e;
48
+ if (this.discount > 10 || isNaN(e) || this.discount < 0 || e < 0) {
48
49
  this.moreThanTenPercent = true;
49
50
  }
50
51
  else {
51
52
  this.moreThanTenPercent = false;
52
53
  }
53
- this.revisedAmount = e;
54
54
  this.creditnoteform.get('discount')?.setValue(this.discount, {
55
55
  emitEvent: false
56
56
  });
@@ -69,7 +69,7 @@ export class CreditNoteComponent {
69
69
  this.revisedAmount = this.totalAmount * (1 - e / 100);
70
70
  this.revisedAmount = parseInt(this.revisedAmount.toFixed());
71
71
  this.discount = e;
72
- if (this.discount > 10 || isNaN(e)) {
72
+ if (this.discount > 10 || isNaN(e) || e < 0 || this.revisedAmount < 0) {
73
73
  this.moreThanTenPercent = true;
74
74
  }
75
75
  else {
@@ -144,11 +144,11 @@ export class CreditNoteComponent {
144
144
  this.invoicetypedropDown = false;
145
145
  }
146
146
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: CreditNoteComponent, deps: [{ token: i1.NgbActiveModal }, { token: i2.PaymentSubscriptionService }, { token: i0.ChangeDetectorRef }, { token: i3.FormBuilder }, { token: i4.ToastService }], target: i0.ɵɵFactoryTarget.Component });
147
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.8", type: CreditNoteComponent, selector: "lib-credit-note", inputs: { clientId: "clientId" }, outputs: { passEntry: "passEntry" }, host: { listeners: { "document:click": "onDocumentClick($event)" } }, ngImport: i0, template: "<div class=\"modal-content\">\r\n <div class=\"p-5 px-6\">\r\n <div><img src=\"./assets/tango/custompopup-Icons/plus-icon.svg\" alt=\"\"></div>\r\n <div class=\"heading mt-4 ms-1\">Add Credit Note</div>\r\n <div class=\"contenttext mt-4\">\r\n You have the flexibility to select a month in which the brand can make credit payments.\r\n </div>\r\n </div>\r\n\r\n <div class=\"modal-body mb-8\">\r\n <!--begin::Form-->\r\n <form [formGroup]=\"creditnoteform\" class=\"form fv-plugins-bootstrap5 fv-plugins-framework\" action=\"#\">\r\n\r\n <div class=\"d-flex flex-column fv-row fv-plugins-icon-container\">\r\n <div class=\"form-group py-2\">\r\n <label for=\"invoicetype\" class=\"headingtext mb-2\">Invoice ID</label>\r\n <div class=\"position-relative\">\r\n <div class=\"form-select dropselect\" id=\"invoicetype\"\r\n (click)=\"invoicetypeDropdown($event)\"\r\n aria-label=\"Default select example\">{{invoiceIssue}}</div>\r\n <div *ngIf=\"invoicetypedropDown\"\r\n class=\"card py-2 w-100 invoiceidselect position-absolute end-0 z-1\">\r\n <ul *ngFor=\"let item of invoiceitem\"\r\n class=\"list-unstyled mb-2\">\r\n <li [ngClass]=\"this.invoiceIssue === item?.invoice ? 'active' : ''\"\r\n class=\"producttext px-5 items cursor-pointer py-4\"\r\n (click)=\"invoiceItem(item)\">\r\n {{item?.invoice}}\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n <div for=\"totalAmount\" class=\"form-group py-2\">\r\n <label class=\" headingtext mb-2 \">Total Amount</label>\r\n <div class=\"input-group\">\r\n <span class=\"dollar-sign totalamount\">\u20B9</span><input formControlName=\"totalAmount\" type=\"text\" readonly class=\"ng-pristine ng-invalid ng-touched totalamount\"\r\n style=\"text-transform: capitalize;\"></div>\r\n\r\n </div>\r\n <div for=\"revisedAmount\" class=\"form-group mt-2\">\r\n <div class=\"py-2\">\r\n <label class=\" headingtext mb-2\"> Revised Amount</label>\r\n <div class=\"input-group dropselect\">\r\n <span class=\"dollar-sign\">\u20B9</span><input type=\"text\" formControlName=\"revisedAmount\" [ngClass]=\"moreThanTenPercent ? 'errorinput' : ''\"\r\n style=\"text-transform: capitalize;\">\r\n <span class=\"icon\" *ngIf=\"moreThanTenPercent\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_7513_36689)\">\r\n <path d=\"M7.99967 5.33301V7.99967M7.99967 10.6663H8.00634M14.6663 7.99967C14.6663 11.6816 11.6816 14.6663 7.99967 14.6663C4.31778 14.6663 1.33301 11.6816 1.33301 7.99967C1.33301 4.31778 4.31778 1.33301 7.99967 1.33301C11.6816 1.33301 14.6663 4.31778 14.6663 7.99967Z\" stroke=\"#F04438\" stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_7513_36689\">\r\n <rect width=\"16\" height=\"16\" fill=\"white\"/>\r\n </clipPath>\r\n </defs>\r\n </svg></span></div>\r\n </div>\r\n <span *ngIf=\"!moreThanTenPercent\" class=\"headingtext contenttext\">More than 10% can\u2019t be revised from total amount</span>\r\n <span *ngIf=\"moreThanTenPercent\" class=\"text-danger contenttext\">More than 10% can\u2019t be revised from total amount</span>\r\n </div>\r\n <div for=\"discount\" class=\"form-group mt-2\">\r\n <div class=\"py-2\">\r\n <label class=\" headingtext mb-2\"> Discount</label>\r\n <div class=\"input-group\"> <input type=\"text\" formControlName=\"discount\" class=\"totalamount\" [ngClass]=\"moreThanTenPercent ? 'errorinput' : ''\" >\r\n <span class=\"icon\" *ngIf=\"!moreThanTenPercent\" >\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path d=\"M12.667 3.33366L3.33366 12.667M6.00033 4.33366C6.00033 5.25413 5.25413 6.00033 4.33366 6.00033C3.41318 6.00033 2.66699 5.25413 2.66699 4.33366C2.66699 3.41318 3.41318 2.66699 4.33366 2.66699C5.25413 2.66699 6.00033 3.41318 6.00033 4.33366ZM13.3337 11.667C13.3337 12.5875 12.5875 13.3337 11.667 13.3337C10.7465 13.3337 10.0003 12.5875 10.0003 11.667C10.0003 10.7465 10.7465 10.0003 11.667 10.0003C12.5875 10.0003 13.3337 10.7465 13.3337 11.667Z\" stroke=\"#98A2B3\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg></span>\r\n <span class=\"icon\" *ngIf=\"moreThanTenPercent\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path d=\"M12.667 3.33366L3.33366 12.667M6.00033 4.33366C6.00033 5.25413 5.25413 6.00033 4.33366 6.00033C3.41318 6.00033 2.66699 5.25413 2.66699 4.33366C2.66699 3.41318 3.41318 2.66699 4.33366 2.66699C5.25413 2.66699 6.00033 3.41318 6.00033 4.33366ZM13.3337 11.667C13.3337 12.5875 12.5875 13.3337 11.667 13.3337C10.7465 13.3337 10.0003 12.5875 10.0003 11.667C10.0003 10.7465 10.7465 10.0003 11.667 10.0003C12.5875 10.0003 13.3337 10.7465 13.3337 11.667Z\" stroke=\"#F04438\" stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg></span>\r\n \r\n </div>\r\n </div>\r\n <span *ngIf=\"!moreThanTenPercent\" class=\"headingtext contenttext\">In percentage</span>\r\n <span *ngIf=\"moreThanTenPercent\" class=\"text-danger contenttext\">In percentage</span>\r\n </div>\r\n </div>\r\n <div class=\"d-flex mt-5\">\r\n <button type=\"submit\" (click)=\"activeModal.dismiss()\"\r\n class=\"btn-outline btn cancel me-4 w-50\">Cancel</button>\r\n <button [disabled]=\"moreThanTenPercent\" type=\"button\" (click)=\"successcredit()\" tabindex=\"0\" \r\n class=\"btn btn-primary px-4 ng-star-inserted w-50\" style=\"white-space: nowrap;\"><span\r\n class=\"submit\">Apply </span></button>\r\n </div>\r\n </form>\r\n </div>\r\n</div>", styles: [".heading{color:var(--Gray-900, #101828);font-family:Inter;font-size:18px;font-style:normal;font-weight:600;line-height:28px}input{color:#101828;border:1px solid #D0D5DD!important;box-shadow:0 1px 2px #1018280d;border-radius:8px;font-size:16px;width:100%;padding:10px 14px;font-family:Inter;font-weight:400;line-height:24px}input:active,input:focus,input:focus-visible{border-radius:8px;border:1px solid var(--Gray-300, #D0D5DD)!important;box-shadow:0 1px 2px #1018280d;outline:none!important;background:var(--Gray-50, #F9FAFB)}.cancel{color:var(--Gray-700, #344054);font-family:Inter;font-size:16px;font-style:normal;font-weight:600;line-height:24px;text-transform:capitalize;border-radius:8px;border:1px solid var(--Gray-300, #D0D5DD);background:var(--White, #FFF)}.contenttext{color:var(--Gray-500, #667085);font-family:Inter;font-size:14px;font-style:normal;font-weight:400;line-height:20px}.items:hover,.tems.focus,.items.active,.camera.focus-visible{background:var(--Gray-50, #F9FAFB)}.dropselect{color:var(--Gray-900, #101828)!important;font-family:Inter;font-size:16px!important;font-weight:400!important;line-height:24px;height:45px!important}.totalamount{color:var(--Gray-500, #667085)!important;font-family:Inter;font-size:16px!important;font-weight:400;line-height:24px}.producttext{color:var(--Gray-700, #344054);font-size:14px;font-weight:500;line-height:20px}.errorinput{border-radius:8px;border:1px solid var(--Error-300, #FDA29B)!important;background:var(--White, #FFF);box-shadow:0 1px 2px #1018280d}.errorinput:focus{border:1px solid var(--Error-300, #FDA29B)!important}.input-group .dollar-sign{position:absolute;left:10px;top:50%;transform:translateY(-50%);color:var(--Gray-900, #101828);font-family:Inter;font-size:16px;font-weight:400!important;line-height:24px}.input-group input[type=text]{padding-left:30px}.input-group>:not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback){border-radius:8px!important}.text-danger{color:var(--Error-500, #F04438)!important;font-family:Inter;font-size:14px!important;font-weight:400;line-height:20px}.input-group{position:relative}.input-group>.icon{position:absolute;top:43%;right:16px;transform:translateY(-50%);color:silver}.input-group>input{padding-left:calc(1em + 18px)}.spritesheet{display:none}.icon{display:inline-block;width:16px!important;height:16px!important}.input-group:not(.has-validation)>:not(:last-child):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating){border-radius:8px!important}\n"], dependencies: [{ kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }] });
147
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.8", type: CreditNoteComponent, selector: "lib-credit-note", inputs: { clientId: "clientId" }, outputs: { passEntry: "passEntry" }, host: { listeners: { "document:click": "onDocumentClick($event)" } }, ngImport: i0, template: "<div class=\"modal-content\">\r\n <div class=\"p-5 px-6\">\r\n <div><img src=\"./assets/tango/custompopup-Icons/plus-icon.svg\" alt=\"\"></div>\r\n <div class=\"heading mt-4 ms-1\">Add Credit Note</div>\r\n <div class=\"contenttext mt-4\">\r\n You have the flexibility to select a month in which the brand can make credit payments.\r\n </div>\r\n </div>\r\n\r\n <div class=\"modal-body mb-8\">\r\n <!--begin::Form-->\r\n <form [formGroup]=\"creditnoteform\" class=\"form fv-plugins-bootstrap5 fv-plugins-framework\" action=\"#\">\r\n\r\n <div class=\"d-flex flex-column fv-row fv-plugins-icon-container\">\r\n <div class=\"form-group py-2\">\r\n <label for=\"invoicetype\" class=\"headingtext mb-2\">Invoice ID</label>\r\n <div class=\"position-relative\">\r\n <div class=\"form-select dropselect\" id=\"invoicetype\"\r\n (click)=\"invoicetypeDropdown($event)\"\r\n aria-label=\"Default select example\">{{invoiceIssue}}</div>\r\n <div *ngIf=\"invoicetypedropDown\"\r\n class=\"card py-2 w-100 invoiceidselect position-absolute end-0 z-1 invoiceDropDown\">\r\n <ul *ngFor=\"let item of invoiceitem\"\r\n class=\"list-unstyled mb-2\">\r\n <li [ngClass]=\"this.invoiceIssue === item?.invoice ? 'active' : ''\"\r\n class=\"producttext px-5 items cursor-pointer py-4\"\r\n (click)=\"invoiceItem(item)\">\r\n {{item?.invoice}}\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n <div for=\"totalAmount\" class=\"form-group py-2\">\r\n <label class=\" headingtext mb-2 \">Total Amount</label>\r\n <div class=\"input-group\">\r\n <span class=\"dollar-sign totalamount\">\u20B9</span><input formControlName=\"totalAmount\" type=\"text\" readonly class=\"ng-pristine ng-invalid ng-touched totalamount\"\r\n style=\"text-transform: capitalize;\"></div>\r\n\r\n </div>\r\n <div for=\"revisedAmount\" class=\"form-group mt-2\">\r\n <div class=\"py-2\">\r\n <label class=\" headingtext mb-2\"> Revised Amount</label>\r\n <div class=\"input-group dropselect\">\r\n <span class=\"dollar-sign\">\u20B9</span><input type=\"text\" formControlName=\"revisedAmount\" [ngClass]=\"moreThanTenPercent ? 'errorinput' : ''\"\r\n style=\"text-transform: capitalize;\">\r\n <span class=\"icon\" *ngIf=\"moreThanTenPercent\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_7513_36689)\">\r\n <path d=\"M7.99967 5.33301V7.99967M7.99967 10.6663H8.00634M14.6663 7.99967C14.6663 11.6816 11.6816 14.6663 7.99967 14.6663C4.31778 14.6663 1.33301 11.6816 1.33301 7.99967C1.33301 4.31778 4.31778 1.33301 7.99967 1.33301C11.6816 1.33301 14.6663 4.31778 14.6663 7.99967Z\" stroke=\"#F04438\" stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_7513_36689\">\r\n <rect width=\"16\" height=\"16\" fill=\"white\"/>\r\n </clipPath>\r\n </defs>\r\n </svg></span></div>\r\n </div>\r\n <span *ngIf=\"!moreThanTenPercent\" class=\"headingtext contenttext\">More than 10% can\u2019t be revised from total amount</span>\r\n <span *ngIf=\"moreThanTenPercent\" class=\"text-danger contenttext\">More than 10% can\u2019t be revised from total amount</span>\r\n </div>\r\n <div for=\"discount\" class=\"form-group mt-2\">\r\n <div class=\"py-2\">\r\n <label class=\" headingtext mb-2\"> Discount</label>\r\n <div class=\"input-group\"> <input type=\"text\" formControlName=\"discount\" class=\"totalamount\" [ngClass]=\"moreThanTenPercent ? 'errorinput' : ''\" >\r\n <span class=\"icon\" *ngIf=\"!moreThanTenPercent\" >\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path d=\"M12.667 3.33366L3.33366 12.667M6.00033 4.33366C6.00033 5.25413 5.25413 6.00033 4.33366 6.00033C3.41318 6.00033 2.66699 5.25413 2.66699 4.33366C2.66699 3.41318 3.41318 2.66699 4.33366 2.66699C5.25413 2.66699 6.00033 3.41318 6.00033 4.33366ZM13.3337 11.667C13.3337 12.5875 12.5875 13.3337 11.667 13.3337C10.7465 13.3337 10.0003 12.5875 10.0003 11.667C10.0003 10.7465 10.7465 10.0003 11.667 10.0003C12.5875 10.0003 13.3337 10.7465 13.3337 11.667Z\" stroke=\"#98A2B3\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg></span>\r\n <span class=\"icon\" *ngIf=\"moreThanTenPercent\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path d=\"M12.667 3.33366L3.33366 12.667M6.00033 4.33366C6.00033 5.25413 5.25413 6.00033 4.33366 6.00033C3.41318 6.00033 2.66699 5.25413 2.66699 4.33366C2.66699 3.41318 3.41318 2.66699 4.33366 2.66699C5.25413 2.66699 6.00033 3.41318 6.00033 4.33366ZM13.3337 11.667C13.3337 12.5875 12.5875 13.3337 11.667 13.3337C10.7465 13.3337 10.0003 12.5875 10.0003 11.667C10.0003 10.7465 10.7465 10.0003 11.667 10.0003C12.5875 10.0003 13.3337 10.7465 13.3337 11.667Z\" stroke=\"#F04438\" stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg></span>\r\n \r\n </div>\r\n </div>\r\n <span *ngIf=\"!moreThanTenPercent\" class=\"headingtext contenttext\">In percentage</span>\r\n <span *ngIf=\"moreThanTenPercent\" class=\"text-danger contenttext\">In percentage</span>\r\n </div>\r\n </div>\r\n <div class=\"d-flex mt-5\">\r\n <button type=\"submit\" (click)=\"activeModal.dismiss()\"\r\n class=\"btn-outline btn cancel me-4 w-50\">Cancel</button>\r\n <button [disabled]=\"moreThanTenPercent\" type=\"button\" (click)=\"successcredit()\" tabindex=\"0\" \r\n class=\"btn btn-primary px-4 ng-star-inserted w-50\" style=\"white-space: nowrap;\"><span\r\n class=\"submit\">Apply </span></button>\r\n </div>\r\n </form>\r\n </div>\r\n</div>", styles: [".heading{color:var(--Gray-900, #101828);font-family:Inter;font-size:18px;font-style:normal;font-weight:600;line-height:28px}input{color:#101828;border:1px solid #D0D5DD!important;box-shadow:0 1px 2px #1018280d;border-radius:8px;font-size:16px;width:100%;padding:10px 14px;font-family:Inter;font-weight:400;line-height:24px}input:active,input:focus,input:focus-visible{border-radius:8px;border:1px solid var(--Gray-300, #D0D5DD)!important;box-shadow:0 1px 2px #1018280d;outline:none!important;background:var(--Gray-50, #F9FAFB)}.cancel{color:var(--Gray-700, #344054);font-family:Inter;font-size:16px;font-style:normal;font-weight:600;line-height:24px;text-transform:capitalize;border-radius:8px;border:1px solid var(--Gray-300, #D0D5DD);background:var(--White, #FFF)}.contenttext{color:var(--Gray-500, #667085);font-family:Inter;font-size:14px;font-style:normal;font-weight:400;line-height:20px}.items:hover,.tems.focus,.items.active,.camera.focus-visible{background:var(--Gray-50, #F9FAFB)}.dropselect{color:var(--Gray-900, #101828)!important;font-family:Inter;font-size:16px!important;font-weight:400!important;line-height:24px;height:45px!important}.totalamount{color:var(--Gray-500, #667085)!important;font-family:Inter;font-size:16px!important;font-weight:400;line-height:24px}.producttext{color:var(--Gray-700, #344054);font-size:14px;font-weight:500;line-height:20px}.errorinput{border-radius:8px;border:1px solid var(--Error-300, #FDA29B)!important;background:var(--White, #FFF);box-shadow:0 1px 2px #1018280d}.errorinput:focus{border:1px solid var(--Error-300, #FDA29B)!important}.input-group .dollar-sign{position:absolute;left:10px;top:50%;transform:translateY(-50%);color:var(--Gray-900, #101828);font-family:Inter;font-size:16px;font-weight:400!important;line-height:24px}.input-group input[type=text]{padding-left:30px}.input-group>:not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback){border-radius:8px!important}.text-danger{color:var(--Error-500, #F04438)!important;font-family:Inter;font-size:14px!important;font-weight:400;line-height:20px}.input-group{position:relative}.input-group>.icon{position:absolute;top:43%;right:16px;transform:translateY(-50%);color:silver}.input-group>input{padding-left:calc(1em + 18px)}.spritesheet{display:none}.icon{display:inline-block;width:16px!important;height:16px!important}.input-group:not(.has-validation)>:not(:last-child):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating){border-radius:8px!important}.invoiceDropDown{height:200px;overflow:auto}\n"], dependencies: [{ kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }] });
148
148
  }
149
149
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: CreditNoteComponent, decorators: [{
150
150
  type: Component,
151
- args: [{ selector: 'lib-credit-note', template: "<div class=\"modal-content\">\r\n <div class=\"p-5 px-6\">\r\n <div><img src=\"./assets/tango/custompopup-Icons/plus-icon.svg\" alt=\"\"></div>\r\n <div class=\"heading mt-4 ms-1\">Add Credit Note</div>\r\n <div class=\"contenttext mt-4\">\r\n You have the flexibility to select a month in which the brand can make credit payments.\r\n </div>\r\n </div>\r\n\r\n <div class=\"modal-body mb-8\">\r\n <!--begin::Form-->\r\n <form [formGroup]=\"creditnoteform\" class=\"form fv-plugins-bootstrap5 fv-plugins-framework\" action=\"#\">\r\n\r\n <div class=\"d-flex flex-column fv-row fv-plugins-icon-container\">\r\n <div class=\"form-group py-2\">\r\n <label for=\"invoicetype\" class=\"headingtext mb-2\">Invoice ID</label>\r\n <div class=\"position-relative\">\r\n <div class=\"form-select dropselect\" id=\"invoicetype\"\r\n (click)=\"invoicetypeDropdown($event)\"\r\n aria-label=\"Default select example\">{{invoiceIssue}}</div>\r\n <div *ngIf=\"invoicetypedropDown\"\r\n class=\"card py-2 w-100 invoiceidselect position-absolute end-0 z-1\">\r\n <ul *ngFor=\"let item of invoiceitem\"\r\n class=\"list-unstyled mb-2\">\r\n <li [ngClass]=\"this.invoiceIssue === item?.invoice ? 'active' : ''\"\r\n class=\"producttext px-5 items cursor-pointer py-4\"\r\n (click)=\"invoiceItem(item)\">\r\n {{item?.invoice}}\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n <div for=\"totalAmount\" class=\"form-group py-2\">\r\n <label class=\" headingtext mb-2 \">Total Amount</label>\r\n <div class=\"input-group\">\r\n <span class=\"dollar-sign totalamount\">\u20B9</span><input formControlName=\"totalAmount\" type=\"text\" readonly class=\"ng-pristine ng-invalid ng-touched totalamount\"\r\n style=\"text-transform: capitalize;\"></div>\r\n\r\n </div>\r\n <div for=\"revisedAmount\" class=\"form-group mt-2\">\r\n <div class=\"py-2\">\r\n <label class=\" headingtext mb-2\"> Revised Amount</label>\r\n <div class=\"input-group dropselect\">\r\n <span class=\"dollar-sign\">\u20B9</span><input type=\"text\" formControlName=\"revisedAmount\" [ngClass]=\"moreThanTenPercent ? 'errorinput' : ''\"\r\n style=\"text-transform: capitalize;\">\r\n <span class=\"icon\" *ngIf=\"moreThanTenPercent\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_7513_36689)\">\r\n <path d=\"M7.99967 5.33301V7.99967M7.99967 10.6663H8.00634M14.6663 7.99967C14.6663 11.6816 11.6816 14.6663 7.99967 14.6663C4.31778 14.6663 1.33301 11.6816 1.33301 7.99967C1.33301 4.31778 4.31778 1.33301 7.99967 1.33301C11.6816 1.33301 14.6663 4.31778 14.6663 7.99967Z\" stroke=\"#F04438\" stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_7513_36689\">\r\n <rect width=\"16\" height=\"16\" fill=\"white\"/>\r\n </clipPath>\r\n </defs>\r\n </svg></span></div>\r\n </div>\r\n <span *ngIf=\"!moreThanTenPercent\" class=\"headingtext contenttext\">More than 10% can\u2019t be revised from total amount</span>\r\n <span *ngIf=\"moreThanTenPercent\" class=\"text-danger contenttext\">More than 10% can\u2019t be revised from total amount</span>\r\n </div>\r\n <div for=\"discount\" class=\"form-group mt-2\">\r\n <div class=\"py-2\">\r\n <label class=\" headingtext mb-2\"> Discount</label>\r\n <div class=\"input-group\"> <input type=\"text\" formControlName=\"discount\" class=\"totalamount\" [ngClass]=\"moreThanTenPercent ? 'errorinput' : ''\" >\r\n <span class=\"icon\" *ngIf=\"!moreThanTenPercent\" >\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path d=\"M12.667 3.33366L3.33366 12.667M6.00033 4.33366C6.00033 5.25413 5.25413 6.00033 4.33366 6.00033C3.41318 6.00033 2.66699 5.25413 2.66699 4.33366C2.66699 3.41318 3.41318 2.66699 4.33366 2.66699C5.25413 2.66699 6.00033 3.41318 6.00033 4.33366ZM13.3337 11.667C13.3337 12.5875 12.5875 13.3337 11.667 13.3337C10.7465 13.3337 10.0003 12.5875 10.0003 11.667C10.0003 10.7465 10.7465 10.0003 11.667 10.0003C12.5875 10.0003 13.3337 10.7465 13.3337 11.667Z\" stroke=\"#98A2B3\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg></span>\r\n <span class=\"icon\" *ngIf=\"moreThanTenPercent\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path d=\"M12.667 3.33366L3.33366 12.667M6.00033 4.33366C6.00033 5.25413 5.25413 6.00033 4.33366 6.00033C3.41318 6.00033 2.66699 5.25413 2.66699 4.33366C2.66699 3.41318 3.41318 2.66699 4.33366 2.66699C5.25413 2.66699 6.00033 3.41318 6.00033 4.33366ZM13.3337 11.667C13.3337 12.5875 12.5875 13.3337 11.667 13.3337C10.7465 13.3337 10.0003 12.5875 10.0003 11.667C10.0003 10.7465 10.7465 10.0003 11.667 10.0003C12.5875 10.0003 13.3337 10.7465 13.3337 11.667Z\" stroke=\"#F04438\" stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg></span>\r\n \r\n </div>\r\n </div>\r\n <span *ngIf=\"!moreThanTenPercent\" class=\"headingtext contenttext\">In percentage</span>\r\n <span *ngIf=\"moreThanTenPercent\" class=\"text-danger contenttext\">In percentage</span>\r\n </div>\r\n </div>\r\n <div class=\"d-flex mt-5\">\r\n <button type=\"submit\" (click)=\"activeModal.dismiss()\"\r\n class=\"btn-outline btn cancel me-4 w-50\">Cancel</button>\r\n <button [disabled]=\"moreThanTenPercent\" type=\"button\" (click)=\"successcredit()\" tabindex=\"0\" \r\n class=\"btn btn-primary px-4 ng-star-inserted w-50\" style=\"white-space: nowrap;\"><span\r\n class=\"submit\">Apply </span></button>\r\n </div>\r\n </form>\r\n </div>\r\n</div>", styles: [".heading{color:var(--Gray-900, #101828);font-family:Inter;font-size:18px;font-style:normal;font-weight:600;line-height:28px}input{color:#101828;border:1px solid #D0D5DD!important;box-shadow:0 1px 2px #1018280d;border-radius:8px;font-size:16px;width:100%;padding:10px 14px;font-family:Inter;font-weight:400;line-height:24px}input:active,input:focus,input:focus-visible{border-radius:8px;border:1px solid var(--Gray-300, #D0D5DD)!important;box-shadow:0 1px 2px #1018280d;outline:none!important;background:var(--Gray-50, #F9FAFB)}.cancel{color:var(--Gray-700, #344054);font-family:Inter;font-size:16px;font-style:normal;font-weight:600;line-height:24px;text-transform:capitalize;border-radius:8px;border:1px solid var(--Gray-300, #D0D5DD);background:var(--White, #FFF)}.contenttext{color:var(--Gray-500, #667085);font-family:Inter;font-size:14px;font-style:normal;font-weight:400;line-height:20px}.items:hover,.tems.focus,.items.active,.camera.focus-visible{background:var(--Gray-50, #F9FAFB)}.dropselect{color:var(--Gray-900, #101828)!important;font-family:Inter;font-size:16px!important;font-weight:400!important;line-height:24px;height:45px!important}.totalamount{color:var(--Gray-500, #667085)!important;font-family:Inter;font-size:16px!important;font-weight:400;line-height:24px}.producttext{color:var(--Gray-700, #344054);font-size:14px;font-weight:500;line-height:20px}.errorinput{border-radius:8px;border:1px solid var(--Error-300, #FDA29B)!important;background:var(--White, #FFF);box-shadow:0 1px 2px #1018280d}.errorinput:focus{border:1px solid var(--Error-300, #FDA29B)!important}.input-group .dollar-sign{position:absolute;left:10px;top:50%;transform:translateY(-50%);color:var(--Gray-900, #101828);font-family:Inter;font-size:16px;font-weight:400!important;line-height:24px}.input-group input[type=text]{padding-left:30px}.input-group>:not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback){border-radius:8px!important}.text-danger{color:var(--Error-500, #F04438)!important;font-family:Inter;font-size:14px!important;font-weight:400;line-height:20px}.input-group{position:relative}.input-group>.icon{position:absolute;top:43%;right:16px;transform:translateY(-50%);color:silver}.input-group>input{padding-left:calc(1em + 18px)}.spritesheet{display:none}.icon{display:inline-block;width:16px!important;height:16px!important}.input-group:not(.has-validation)>:not(:last-child):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating){border-radius:8px!important}\n"] }]
151
+ args: [{ selector: 'lib-credit-note', template: "<div class=\"modal-content\">\r\n <div class=\"p-5 px-6\">\r\n <div><img src=\"./assets/tango/custompopup-Icons/plus-icon.svg\" alt=\"\"></div>\r\n <div class=\"heading mt-4 ms-1\">Add Credit Note</div>\r\n <div class=\"contenttext mt-4\">\r\n You have the flexibility to select a month in which the brand can make credit payments.\r\n </div>\r\n </div>\r\n\r\n <div class=\"modal-body mb-8\">\r\n <!--begin::Form-->\r\n <form [formGroup]=\"creditnoteform\" class=\"form fv-plugins-bootstrap5 fv-plugins-framework\" action=\"#\">\r\n\r\n <div class=\"d-flex flex-column fv-row fv-plugins-icon-container\">\r\n <div class=\"form-group py-2\">\r\n <label for=\"invoicetype\" class=\"headingtext mb-2\">Invoice ID</label>\r\n <div class=\"position-relative\">\r\n <div class=\"form-select dropselect\" id=\"invoicetype\"\r\n (click)=\"invoicetypeDropdown($event)\"\r\n aria-label=\"Default select example\">{{invoiceIssue}}</div>\r\n <div *ngIf=\"invoicetypedropDown\"\r\n class=\"card py-2 w-100 invoiceidselect position-absolute end-0 z-1 invoiceDropDown\">\r\n <ul *ngFor=\"let item of invoiceitem\"\r\n class=\"list-unstyled mb-2\">\r\n <li [ngClass]=\"this.invoiceIssue === item?.invoice ? 'active' : ''\"\r\n class=\"producttext px-5 items cursor-pointer py-4\"\r\n (click)=\"invoiceItem(item)\">\r\n {{item?.invoice}}\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n <div for=\"totalAmount\" class=\"form-group py-2\">\r\n <label class=\" headingtext mb-2 \">Total Amount</label>\r\n <div class=\"input-group\">\r\n <span class=\"dollar-sign totalamount\">\u20B9</span><input formControlName=\"totalAmount\" type=\"text\" readonly class=\"ng-pristine ng-invalid ng-touched totalamount\"\r\n style=\"text-transform: capitalize;\"></div>\r\n\r\n </div>\r\n <div for=\"revisedAmount\" class=\"form-group mt-2\">\r\n <div class=\"py-2\">\r\n <label class=\" headingtext mb-2\"> Revised Amount</label>\r\n <div class=\"input-group dropselect\">\r\n <span class=\"dollar-sign\">\u20B9</span><input type=\"text\" formControlName=\"revisedAmount\" [ngClass]=\"moreThanTenPercent ? 'errorinput' : ''\"\r\n style=\"text-transform: capitalize;\">\r\n <span class=\"icon\" *ngIf=\"moreThanTenPercent\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_7513_36689)\">\r\n <path d=\"M7.99967 5.33301V7.99967M7.99967 10.6663H8.00634M14.6663 7.99967C14.6663 11.6816 11.6816 14.6663 7.99967 14.6663C4.31778 14.6663 1.33301 11.6816 1.33301 7.99967C1.33301 4.31778 4.31778 1.33301 7.99967 1.33301C11.6816 1.33301 14.6663 4.31778 14.6663 7.99967Z\" stroke=\"#F04438\" stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_7513_36689\">\r\n <rect width=\"16\" height=\"16\" fill=\"white\"/>\r\n </clipPath>\r\n </defs>\r\n </svg></span></div>\r\n </div>\r\n <span *ngIf=\"!moreThanTenPercent\" class=\"headingtext contenttext\">More than 10% can\u2019t be revised from total amount</span>\r\n <span *ngIf=\"moreThanTenPercent\" class=\"text-danger contenttext\">More than 10% can\u2019t be revised from total amount</span>\r\n </div>\r\n <div for=\"discount\" class=\"form-group mt-2\">\r\n <div class=\"py-2\">\r\n <label class=\" headingtext mb-2\"> Discount</label>\r\n <div class=\"input-group\"> <input type=\"text\" formControlName=\"discount\" class=\"totalamount\" [ngClass]=\"moreThanTenPercent ? 'errorinput' : ''\" >\r\n <span class=\"icon\" *ngIf=\"!moreThanTenPercent\" >\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path d=\"M12.667 3.33366L3.33366 12.667M6.00033 4.33366C6.00033 5.25413 5.25413 6.00033 4.33366 6.00033C3.41318 6.00033 2.66699 5.25413 2.66699 4.33366C2.66699 3.41318 3.41318 2.66699 4.33366 2.66699C5.25413 2.66699 6.00033 3.41318 6.00033 4.33366ZM13.3337 11.667C13.3337 12.5875 12.5875 13.3337 11.667 13.3337C10.7465 13.3337 10.0003 12.5875 10.0003 11.667C10.0003 10.7465 10.7465 10.0003 11.667 10.0003C12.5875 10.0003 13.3337 10.7465 13.3337 11.667Z\" stroke=\"#98A2B3\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg></span>\r\n <span class=\"icon\" *ngIf=\"moreThanTenPercent\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path d=\"M12.667 3.33366L3.33366 12.667M6.00033 4.33366C6.00033 5.25413 5.25413 6.00033 4.33366 6.00033C3.41318 6.00033 2.66699 5.25413 2.66699 4.33366C2.66699 3.41318 3.41318 2.66699 4.33366 2.66699C5.25413 2.66699 6.00033 3.41318 6.00033 4.33366ZM13.3337 11.667C13.3337 12.5875 12.5875 13.3337 11.667 13.3337C10.7465 13.3337 10.0003 12.5875 10.0003 11.667C10.0003 10.7465 10.7465 10.0003 11.667 10.0003C12.5875 10.0003 13.3337 10.7465 13.3337 11.667Z\" stroke=\"#F04438\" stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg></span>\r\n \r\n </div>\r\n </div>\r\n <span *ngIf=\"!moreThanTenPercent\" class=\"headingtext contenttext\">In percentage</span>\r\n <span *ngIf=\"moreThanTenPercent\" class=\"text-danger contenttext\">In percentage</span>\r\n </div>\r\n </div>\r\n <div class=\"d-flex mt-5\">\r\n <button type=\"submit\" (click)=\"activeModal.dismiss()\"\r\n class=\"btn-outline btn cancel me-4 w-50\">Cancel</button>\r\n <button [disabled]=\"moreThanTenPercent\" type=\"button\" (click)=\"successcredit()\" tabindex=\"0\" \r\n class=\"btn btn-primary px-4 ng-star-inserted w-50\" style=\"white-space: nowrap;\"><span\r\n class=\"submit\">Apply </span></button>\r\n </div>\r\n </form>\r\n </div>\r\n</div>", styles: [".heading{color:var(--Gray-900, #101828);font-family:Inter;font-size:18px;font-style:normal;font-weight:600;line-height:28px}input{color:#101828;border:1px solid #D0D5DD!important;box-shadow:0 1px 2px #1018280d;border-radius:8px;font-size:16px;width:100%;padding:10px 14px;font-family:Inter;font-weight:400;line-height:24px}input:active,input:focus,input:focus-visible{border-radius:8px;border:1px solid var(--Gray-300, #D0D5DD)!important;box-shadow:0 1px 2px #1018280d;outline:none!important;background:var(--Gray-50, #F9FAFB)}.cancel{color:var(--Gray-700, #344054);font-family:Inter;font-size:16px;font-style:normal;font-weight:600;line-height:24px;text-transform:capitalize;border-radius:8px;border:1px solid var(--Gray-300, #D0D5DD);background:var(--White, #FFF)}.contenttext{color:var(--Gray-500, #667085);font-family:Inter;font-size:14px;font-style:normal;font-weight:400;line-height:20px}.items:hover,.tems.focus,.items.active,.camera.focus-visible{background:var(--Gray-50, #F9FAFB)}.dropselect{color:var(--Gray-900, #101828)!important;font-family:Inter;font-size:16px!important;font-weight:400!important;line-height:24px;height:45px!important}.totalamount{color:var(--Gray-500, #667085)!important;font-family:Inter;font-size:16px!important;font-weight:400;line-height:24px}.producttext{color:var(--Gray-700, #344054);font-size:14px;font-weight:500;line-height:20px}.errorinput{border-radius:8px;border:1px solid var(--Error-300, #FDA29B)!important;background:var(--White, #FFF);box-shadow:0 1px 2px #1018280d}.errorinput:focus{border:1px solid var(--Error-300, #FDA29B)!important}.input-group .dollar-sign{position:absolute;left:10px;top:50%;transform:translateY(-50%);color:var(--Gray-900, #101828);font-family:Inter;font-size:16px;font-weight:400!important;line-height:24px}.input-group input[type=text]{padding-left:30px}.input-group>:not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback){border-radius:8px!important}.text-danger{color:var(--Error-500, #F04438)!important;font-family:Inter;font-size:14px!important;font-weight:400;line-height:20px}.input-group{position:relative}.input-group>.icon{position:absolute;top:43%;right:16px;transform:translateY(-50%);color:silver}.input-group>input{padding-left:calc(1em + 18px)}.spritesheet{display:none}.icon{display:inline-block;width:16px!important;height:16px!important}.input-group:not(.has-validation)>:not(:last-child):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating){border-radius:8px!important}.invoiceDropDown{height:200px;overflow:auto}\n"] }]
152
152
  }], ctorParameters: () => [{ type: i1.NgbActiveModal }, { type: i2.PaymentSubscriptionService }, { type: i0.ChangeDetectorRef }, { type: i3.FormBuilder }, { type: i4.ToastService }], propDecorators: { clientId: [{
153
153
  type: Input
154
154
  }], passEntry: [{
@@ -157,4 +157,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImpor
157
157
  type: HostListener,
158
158
  args: ['document:click', ['$event']]
159
159
  }] } });
160
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlZGl0LW5vdGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGFuZ28tbWFuYWdlLXNldHRpbmdzL3NyYy9saWIvY29tcG9uZW50cy9wYXltZW50cy1zdWJzY3JpcHRpb24vc3Vic2NyaXB0aW9uLXBvcHVwcy9jcmVkaXQtbm90ZS9jcmVkaXQtbm90ZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1tYW5hZ2Utc2V0dGluZ3Mvc3JjL2xpYi9jb21wb25lbnRzL3BheW1lbnRzLXN1YnNjcmlwdGlvbi9zdWJzY3JpcHRpb24tcG9wdXBzL2NyZWRpdC1ub3RlL2NyZWRpdC1ub3RlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVcsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQWdDLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUk1SCxPQUFPLEVBQTBCLFVBQVUsRUFBZSxNQUFNLGdCQUFnQixDQUFDO0FBR2pGLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7O0FBTzFDLE1BQU0sT0FBTyxtQkFBbUI7SUFpQnJCO0lBQW9DO0lBQWdFO0lBQTBDO0lBQXdCO0lBaEJ0SyxRQUFRLENBQUs7SUFDdEIsWUFBWSxDQUFNO0lBQ2xCLFdBQVcsR0FBc0MsRUFBRSxDQUFDO0lBQ3BELG1CQUFtQixHQUFXLEtBQUssQ0FBQztJQUNwQyxjQUFjLENBQVk7SUFDMUIsV0FBVyxHQUFXLENBQUMsQ0FBQztJQUN4QixRQUFRLENBQU07SUFDZCxhQUFhLEdBQVcsQ0FBQyxDQUFBO0lBQ3pCLGtCQUFrQixHQUFXLEtBQUssQ0FBQTtJQUV4QixTQUFTLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7SUFDNUQsV0FBVyxDQUFNO0lB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Q3BDO1FBQUEsQ0FBQyxFQUNGLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDUixPQUFPLENBQUMsS0FBSyxDQUFDLDBCQUEwQixFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ25ELENBQUMsQ0FBQyxDQUFBO0lBQ04sQ0FBQztJQUdELGVBQWUsQ0FBQyxLQUFpQjtRQUNoQyxJQUFJLENBQUMsbUJBQW1CLEdBQUcsS0FBSyxDQUFDO0lBQ2xDLENBQUM7dUdBNUlVLG1CQUFtQjsyRkFBbkIsbUJBQW1CLG9NQ2RoQyx3cU9BeUZNOzsyRkQzRU8sbUJBQW1CO2tCQUwvQixTQUFTOytCQUNFLGlCQUFpQjtpTkFLbEIsUUFBUTtzQkFBaEIsS0FBSztnQkFVSSxTQUFTO3NCQUFsQixNQUFNO2dCQStIUCxlQUFlO3NCQURkLFlBQVk7dUJBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsICBPbkluaXQsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgQ2hhbmdlRGV0ZWN0b3JSZWYsIE9uRGVzdHJveSwgSG9zdExpc3RlbmVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE5nYkFjdGl2ZU1vZGFsIH0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnO1xyXG5pbXBvcnQgU3dhbCBmcm9tICdzd2VldGFsZXJ0Mic7XHJcbmltcG9ydCB7IFBheW1lbnRTdWJzY3JpcHRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmljZXMvcGF5bWVudC1zdWJzY3JpcHRpb24uc2VydmljZSc7XHJcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMsIEZvcm1Db250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBUb2FzdFNlcnZpY2UgfSBmcm9tICd0YW5nby1hcHAtdWktc2hhcmVkJztcclxuaW1wb3J0IHsgbGVmdCB9IGZyb20gJ0Bwb3BwZXJqcy9jb3JlJztcclxuaW1wb3J0IHsgU3ViamVjdCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1jcmVkaXQtbm90ZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2NyZWRpdC1ub3RlLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vY3JlZGl0LW5vdGUuY29tcG9uZW50LnNjc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDcmVkaXROb3RlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LE9uRGVzdHJveSB7XHJcbiAgQElucHV0KCkgY2xpZW50SWQ6YW55O1xyXG4gIGludm9pY2VJc3N1ZTogYW55O1xyXG4gIGludm9pY2V0eXBlOiB7IG5hbWU6IHN0cmluZywgdmFsdWU6IHN0cmluZyB9W10gPSBbXTsgXHJcbiAgaW52b2ljZXR5cGVkcm9wRG93bjpib29sZWFuID0gZmFsc2U7XHJcbiAgY3JlZGl0bm90ZWZvcm06IEZvcm1Hcm91cDtcclxuICB0b3RhbEFtb3VudDogbnVtYmVyID0gMDtcclxuICBkaXNjb3VudDogYW55O1xyXG4gIHJldmlzZWRBbW91bnQ6IG51bWJlciA9IDBcclxuICBtb3JlVGhhblRlblBlcmNlbnQ6Ym9vbGVhbiA9IGZhbHNlXHJcblxyXG4gIEBPdXRwdXQoKSBwYXNzRW50cnk6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIGludm9pY2VpdGVtOiBhbnk7XHJcblxyXG4gIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveSQgPSBuZXcgU3ViamVjdCgpO1xyXG4gXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgYWN0aXZlTW9kYWw6IE5nYkFjdGl2ZU1vZGFsLHByaXZhdGUgUGF5bWVudFN1YnNjcmlwdGlvblNlcnZpY2U6IFBheW1lbnRTdWJzY3JpcHRpb25TZXJ2aWNlLCBwcml2YXRlIGNoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZixwcml2YXRlIGZiOiBGb3JtQnVpbGRlcixwcml2YXRlIHRvYXN0OlRvYXN0U2VydmljZVxyXG4gICkgeyBcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5jcmVkaXRub3RlKCk7XHJcbiAgICB0aGlzLmNyZWRpdG5vdGVmb3JtID0gdGhpcy5mYi5ncm91cCh7XHJcbiAgICAgIGludm9pY2V0eXBlOiBbJycsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxyXG4gICAgICB0b3RhbEFtb3VudDogWycnLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSwgXHJcbiAgICAgIHJldmlzZWRBbW91bnQ6WycnLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSAsXHJcbiAgICAgIGRpc2NvdW50OiBbJycsWyBWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLm1heCgxMCldXSxcclxuICAgIH0pO1xyXG4gICAgdGhpcy5jcmVkaXRub3RlZm9ybS5nZXQoJ3JldmlzZWRBbW91bnQnKT8udmFsdWVDaGFuZ2VzLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoKGUpID0+IHtcclxuICAgICAgaWYoZSkgeyBcclxuICAgICAgICB0aGlzLnRvdGFsQW1vdW50ID0gdGhpcy5jcmVkaXRub3RlZm9ybS5nZXQoJ3RvdGFsQW1vdW50Jyk/LnZhbHVlO1xyXG4gICAgICAgIHRoaXMuZGlzY291bnQgPSAoKHRoaXMudG90YWxBbW91bnQgLSBlKSAvIHRoaXMudG90YWxBbW91bnQgKiAxMDApLnRvRml4ZWQoMik7XHJcbiAgICAgICAgaWYodGhpcy5kaXNjb3VudD4xMCB8fCBpc05hTihlKSl7XHJcbiAgICAgICAgICB0aGlzLm1vcmVUaGFuVGVuUGVyY2VudCA9IHRydWU7IFxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgIHRoaXMubW9yZVRoYW5UZW5QZXJjZW50ID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMucmV2aXNlZEFtb3VudD1lO1xyXG4gICAgICAgIHRoaXMuY3JlZGl0bm90ZWZvcm0uZ2V0KCdkaXNjb3VudCcpPy5zZXRWYWx1ZSh0aGlzLmRpc2NvdW50LCB7XHJcbiAgICAgICAgICBlbWl0RXZlbnRcclxuICAgICAgICAgICAgOiBmYWxzZSB9KTtcclxuICAgICAgfWVsc2V7XHJcbiAgICAgICAgbGV0IGVtcHRkaXNjb3VudCA9ICcnXHJcbiAgICAgICAgdGhpcy5jcmVkaXRub3RlZm9ybS5nZXQoJ2Rpc2NvdW50Jyk/LnNldFZhbHVlKGVtcHRkaXNjb3VudCwge1xyXG4gICAgICAgICAgZW1pdEV2ZW50XHJcbiAgICAgICAgICAgIDogZmFsc2UgfSk7XHJcbiAgICAgICAgICB0aGlzLm1vcmVUaGFuVGVuUGVyY2VudCA9IGZhbHNlOyBcclxuICAgICAgfSBcclxuICAgIH0pXHJcbiAgICBcclxuICAgIHRoaXMuY3JlZGl0bm90ZWZvcm0uZ2V0KCdkaXNjb3VudCcpPy52YWx1ZUNoYW5nZXMucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSgoZSkgPT4ge1xyXG4gICAgICBpZihlKSB7XHJcbiAgICAgICAgdGhpcy50b3RhbEFtb3VudCA9IHRoaXMuY3JlZGl0bm90ZWZvcm0uZ2V0KCd0b3RhbEFtb3VudCcpPy52YWx1ZTtcclxuICAgICAgICB0aGlzLnJldmlzZWRBbW91bnQgPSB0aGlzLnRvdGFsQW1vdW50ICogKDEgLSBlIC8gMTAwKTtcclxuICAgICAgICB0aGlzLnJldmlzZWRBbW91bnQgPSBwYXJzZUludCh0aGlzLnJldmlzZWRBbW91bnQudG9GaXhlZCgpKVxyXG4gICAgICAgIHRoaXMuZGlzY291bnQ9ZTtcclxuICAgICAgICBpZiAodGhpcy5kaXNjb3VudD4xMCB8fCBpc05hTihlKSl7XHJcbiAgICAgICAgICB0aGlzLm1vcmVUaGFuVGVuUGVyY2VudCA9IHRydWU7IFxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgIHRoaXMubW9yZVRoYW5UZW5QZXJjZW50ID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuY3JlZGl0bm90ZWZvcm0uZ2V0KCdyZXZpc2VkQW1vdW50Jyk/LnNldFZhbHVlKHRoaXMucmV2aXNlZEFtb3VudCwge1xyXG4gICAgICAgICAgZW1pdEV2ZW50XHJcbiAgICAgICAgICA6IGZhbHNlIH0pO1xyXG4gICAgICB9ZWxzZXtcclxuICAgICAgICBsZXQgZW1wdGRpc2NvdW50ID0gJydcclxuICAgICAgICB0aGlzLmNyZWRpdG5vdGVmb3JtLmdldCgncmV2aXNlZEFtb3VudCcpPy5zZXRWYWx1ZShlbXB0ZGlzY291bnQsIHtcclxuICAgICAgICAgIGVtaXRFdmVudFxyXG4gICAgICAgICAgICA6IGZhbHNlIH0pO1xyXG4gICAgICAgIHRoaXMubW9yZVRoYW5UZW5QZXJjZW50ID0gZmFsc2U7IFxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xyXG5cclxuICAgIH0pXHJcbiAgfVxyXG4gIGdldCByZXZpc2VkYW1vdW50KCkgeyByZXR1cm4gdGhpcy5jcmVkaXRub3RlZm9ybS5nZXQoJ3JldmlzZWRBbW91bnQnKTsgfVxyXG4gIGdldCBkaXNjb3VudHMoKSB7IHJldHVybiB0aGlzLmNyZWRpdG5vdGVmb3JtLmdldCgnZGlzY291bnQnKTsgfVxyXG4gIFxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KHRydWUpO1xyXG4gICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xyXG4gIH1cclxuXHJcbiAgXHJcbiAgY3JlZGl0bm90ZSgpe1xyXG4gICAgXHJcbiAgdGhpcy5QYXltZW50U3Vic2NyaXB0aW9uU2VydmljZS5nZXRpbnZvaWNlKHRoaXMuY2xpZW50SWQpLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoKHJlczogYW55KSA9PiB7XHJcbiAgICAgIGlmIChyZXMgJiYgcmVzLmNvZGUgPT0gMjAwKSB7XHJcbiAgICAgICAgdGhpcy5pbnZvaWNlaXRlbSA9IHJlcz8uZGF0YTtcclxuICAgICAgICB0aGlzLmludm9pY2VJc3N1ZSA9IHRoaXMuaW52b2ljZWl0ZW1bMF0/Lmludm9pY2U7XHJcbiAgICAgICAgY29uc3QgdG90YWxBbW91bnQgPSB0aGlzLmludm9pY2VpdGVtWzBdPy5hbW91bnQgfHwgXCJcIjtcclxuICAgICAgICB0aGlzLmNyZWRpdG5vdGVmb3JtLnBhdGNoVmFsdWUoe1xyXG4gICAgICAgICAgdG90YWxBbW91bnQ6IHRvdGFsQW1vdW50LFxyXG4gICAgICAgICAgZGlzY291bnQ6dGhpcy5pbnZvaWNlaXRlbVswXT8uZGlzY291bnRcclxuICAgICAgICB9KTtcclxuICAgICAgXHJcbiAgICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgfVxyXG4gIH0pO1xyXG4gIH1cclxuXHJcbiAgaW52b2ljZUl0ZW0oaW52b2ljZXZhbHVlOmFueSl7XHJcbiAgICB0aGlzLmNyZWRpdG5vdGVmb3JtLnBhdGNoVmFsdWUoe1xyXG4gICAgICB0b3RhbEFtb3VudDogaW52b2ljZXZhbHVlLmFtb3VudCxcclxuICAgICAgLi4uKGludm9pY2V2YWx1ZT8uZGlzY291bnQgPyB7ZGlzY291bnQ6aW52b2ljZXZhbHVlPy5kaXNjb3VudH0gOiB7ZGlzY291bnQ6Jyd9KSxcclxuICAgICAgLi4uKGludm9pY2V2YWx1ZT8ucmV2aXNlZEFtb3VudCA/IHtyZXZpc2VkQW1vdW50Omludm9pY2V2YWx1ZT8ucmV2aXNlZEFtb3VudH0gOiB7cmV2aXNlZEFtb3VudDonJ30pXHJcbiAgICB9KTtcclxuICAgIHRoaXMuaW52b2ljZUlzc3VlID0gaW52b2ljZXZhbHVlLmludm9pY2U7XHJcbiAgICB0aGlzLmNyZWRpdG5vdGVmb3JtLmdldCgnaW52b2ljZXR5cGUnKT8uc2V0VmFsdWUodGhpcy5pbnZvaWNlSXNzdWUpXHJcbiAgICB0aGlzLmludm9pY2V0eXBlZHJvcERvd24gPSBmYWxzZTtcclxuICB9XHJcbiAgaW52b2ljZXR5cGVEcm9wZG93bihldmVudDpNb3VzZUV2ZW50KXtcclxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgdGhpcy5pbnZvaWNldHlwZWRyb3BEb3duID0gIXRoaXMuaW52b2ljZXR5cGVkcm9wRG93bjtcclxuICAgIHRoaXMucmV2aXNlZEFtb3VudCAgIFxyXG4gIH1cclxuICBzdWNjZXNzY3JlZGl0KCkge1xyXG4gICAgY29uc3QgcmVxdWVzdERhdGEgPSB7XHJcbiAgICAgIGludm9pY2U6dGhpcy5pbnZvaWNlSXNzdWUsXHJcbiAgICAgIHJldmlzZWRBbW91bnQ6dGhpcy5yZXZpc2VkQW1vdW50LFxyXG4gICAgICBkaXNjb3VudDp0aGlzLmRpc2NvdW50XHJcbiAgICB9O1xyXG4gICAgdGhpcy5QYXltZW50U3Vic2NyaXB0aW9uU2VydmljZS5jcmVkaXRub3RldXBkYXRlKHJlcXVlc3REYXRhKS5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlICgocmVzOiBhbnkpID0+IHtcclxuICAgICAgaWYgKHJlcyAmJiByZXMuY29kZSA9PSAyMDApIHtcclxuICAgICAgICB0aGlzLmFjdGl2ZU1vZGFsLmNsb3NlKCdzdWNjZXNzY3JlZGl0Jyk7XHJcbiAgICAgICAgLy8gdGhpcy50b2FzdC5nZXRQcmltYXJ5VG9hc3QocmVzLm1lc3NhZ2UpO1xyXG4gICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpXHJcbiAgICAgIH19LFxyXG4gICAgICAoZXJyb3IpID0+IHtcclxuICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBzdWJtaXR0aW5nIHVwZGF0ZTonLCBlcnJvcik7XHJcbiAgICAgIH0pXHJcbiAgfVxyXG4gIFxyXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmNsaWNrJywgWyckZXZlbnQnXSlcclxuICBvbkRvY3VtZW50Q2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpIHtcclxuICAgdGhpcy5pbnZvaWNldHlwZWRyb3BEb3duID0gZmFsc2U7XHJcbiAgfVxyXG59XHJcblxyXG4iLCI8ZGl2IGNsYXNzPVwibW9kYWwtY29udGVudFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cInAtNSBweC02XCI+XHJcbiAgICAgICAgPGRpdj48aW1nIHNyYz1cIi4vYXNzZXRzL3RhbmdvL2N1c3RvbXBvcHVwLUljb25zL3BsdXMtaWNvbi5zdmdcIiBhbHQ9XCJcIj48L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGluZyBtdC00IG1zLTFcIj5BZGQgQ3JlZGl0IE5vdGU8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGVudHRleHQgbXQtNFwiPlxyXG4gICAgICAgICAgICBZb3UgaGF2ZSB0aGUgZmxleGliaWxpdHkgdG8gc2VsZWN0IGEgbW9udGggaW4gd2hpY2ggdGhlIGJyYW5kIGNhbiBtYWtlIGNyZWRpdCBwYXltZW50cy5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1ib2R5IG1iLThcIj5cclxuICAgICAgICA8IS0tYmVnaW46OkZvcm0tLT5cclxuICAgICAgICA8Zm9ybSBbZm9ybUdyb3VwXT1cImNyZWRpdG5vdGVmb3JtXCIgY2xhc3M9XCJmb3JtIGZ2LXBsdWdpbnMtYm9vdHN0cmFwNSBmdi1wbHVnaW5zLWZyYW1ld29ya1wiIGFjdGlvbj1cIiNcIj5cclxuXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZmxleC1jb2x1bW4gZnYtcm93IGZ2LXBsdWdpbnMtaWNvbi1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwIHB5LTJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiaW52b2ljZXR5cGVcIiBjbGFzcz1cImhlYWRpbmd0ZXh0IG1iLTJcIj5JbnZvaWNlIElEPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicG9zaXRpb24tcmVsYXRpdmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tc2VsZWN0IGRyb3BzZWxlY3RcIiBpZD1cImludm9pY2V0eXBlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJpbnZvaWNldHlwZURyb3Bkb3duKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD1cIkRlZmF1bHQgc2VsZWN0IGV4YW1wbGVcIj57e2ludm9pY2VJc3N1ZX19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJpbnZvaWNldHlwZWRyb3BEb3duXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY2FyZCBweS0yIHctMTAwIGludm9pY2VpZHNlbGVjdCBwb3NpdGlvbi1hYnNvbHV0ZSBlbmQtMCB6LTFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bCAqbmdGb3I9XCJsZXQgaXRlbSBvZiBpbnZvaWNlaXRlbVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJsaXN0LXVuc3R5bGVkIG1iLTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgW25nQ2xhc3NdPVwidGhpcy5pbnZvaWNlSXNzdWUgPT09IGl0ZW0/Lmludm9pY2UgPyAnYWN0aXZlJyA6ICcnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwcm9kdWN0dGV4dCBweC01IGl0ZW1zIGN1cnNvci1wb2ludGVyIHB5LTRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiaW52b2ljZUl0ZW0oaXRlbSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tpdGVtPy5pbnZvaWNlfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgZm9yPVwidG90YWxBbW91bnRcIiBjbGFzcz1cImZvcm0tZ3JvdXAgcHktMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cIiBoZWFkaW5ndGV4dCBtYi0yIFwiPlRvdGFsIEFtb3VudDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZG9sbGFyLXNpZ24gdG90YWxhbW91bnRcIj7igrk8L3NwYW4+PGlucHV0IGZvcm1Db250cm9sTmFtZT1cInRvdGFsQW1vdW50XCIgdHlwZT1cInRleHRcIiByZWFkb25seSBjbGFzcz1cIm5nLXByaXN0aW5lIG5nLWludmFsaWQgbmctdG91Y2hlZCB0b3RhbGFtb3VudFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPVwidGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7XCI+PC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGZvcj1cInJldmlzZWRBbW91bnRcIiBjbGFzcz1cImZvcm0tZ3JvdXAgbXQtMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJweS0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cIiBoZWFkaW5ndGV4dCBtYi0yXCI+IFJldmlzZWQgQW1vdW50PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwIGRyb3BzZWxlY3RcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZG9sbGFyLXNpZ25cIj7igrk8L3NwYW4+PGlucHV0IHR5cGU9XCJ0ZXh0XCIgZm9ybUNvbnRyb2xOYW1lPVwicmV2aXNlZEFtb3VudFwiICBbbmdDbGFzc109XCJtb3JlVGhhblRlblBlcmNlbnQgPyAnZXJyb3JpbnB1dCcgOiAnJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT1cInRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplO1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJpY29uXCIgKm5nSWY9XCJtb3JlVGhhblRlblBlcmNlbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZyBjbGlwLXBhdGg9XCJ1cmwoI2NsaXAwXzc1MTNfMzY2ODkpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk03Ljk5OTY3IDUuMzMzMDFWNy45OTk2N003Ljk5OTY3IDEwLjY2NjNIOC4wMDYzNE0xNC42NjYzIDcuOTk5NjdDMTQuNjY2MyAxMS42ODE2IDExLjY4MTYgMTQuNjY2MyA3Ljk5OTY3IDE0LjY2NjNDNC4zMTc3OCAxNC42NjYzIDEuMzMzMDEgMTEuNjgxNiAxLjMzMzAxIDcuOTk5NjdDMS4zMzMwMSA0LjMxNzc4IDQuMzE3NzggMS4zMzMwMSA3Ljk5OTY3IDEuMzMzMDFDMTEuNjgxNiAxLjMzMzAxIDE0LjY2NjMgNC4zMTc3OCAxNC42NjYzIDcuOTk5NjdaXCIgc3Ryb2tlPVwiI0YwNDQzOFwiIHN0cm9rZS13aWR0aD1cIjEuMzMzMzNcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjbGlwUGF0aCBpZD1cImNsaXAwXzc1MTNfMzY2ODlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiBmaWxsPVwid2hpdGVcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9jbGlwUGF0aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+PC9zcGFuPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiIW1vcmVUaGFuVGVuUGVyY2VudFwiICBjbGFzcz1cImhlYWRpbmd0ZXh0IGNvbnRlbnR0ZXh0XCI+TW9yZSB0aGFuIDEwJSBjYW7igJl0IGJlIHJldmlzZWQgZnJvbSB0b3RhbCBhbW91bnQ8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJtb3JlVGhhblRlblBlcmNlbnRcIiBjbGFzcz1cInRleHQtZGFuZ2VyIGNvbnRlbnR0ZXh0XCI+TW9yZSB0aGFuIDEwJSBjYW7igJl0IGJlIHJldmlzZWQgZnJvbSB0b3RhbCBhbW91bnQ8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgZm9yPVwiZGlzY291bnRcIiBjbGFzcz1cImZvcm0tZ3JvdXAgbXQtMlwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInB5LTJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCIgaGVhZGluZ3RleHQgbWItMlwiPiBEaXNjb3VudDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwXCI+ICA8aW5wdXQgdHlwZT1cInRleHRcIiBmb3JtQ29udHJvbE5hbWU9XCJkaXNjb3VudFwiIGNsYXNzPVwidG90YWxhbW91bnRcIiBbbmdDbGFzc109XCJtb3JlVGhhblRlblBlcmNlbnQgPyAnZXJyb3JpbnB1dCcgOiAnJ1wiID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJpY29uXCIgKm5nSWY9XCIhbW9yZVRoYW5UZW5QZXJjZW50XCIgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0xMi42NjcgMy4zMzM2NkwzLjMzMzY2IDEyLjY2N002LjAwMDMzIDQuMzMzNjZDNi4wMDAzMyA1LjI1NDEzIDUuMjU0MTMgNi4wMDAzMyA0LjMzMzY2IDYuMDAwMzNDMy40MTMxOCA2LjAwMDMzIDIuNjY2OTkgNS4yNTQxMyAyLjY2Njk5IDQuMzMzNjZDMi42NjY5OSAzLjQxMzE4IDMuNDEzMTggMi42NjY5OSA0LjMzMzY2IDIuNjY2OTlDNS4yNTQxMyAyLjY2Njk5IDYuMDAwMzMgMy40MTMxOCA2LjAwMDMzIDQuMzMzNjZaTTEzLjMzMzcgMTEuNjY3QzEzLjMzMzcgMTIuNTg3NSAxMi41ODc1IDEzLjMzMzcgMTEuNjY3IDEzLjMzMzdDMTAuNzQ2NSAxMy4zMzM3IDEwLjAwMDMgMTIuNTg3NSAxMC4wMDAzIDExLjY2N0MxMC4wMDAzIDEwLjc0NjUgMTAuNzQ2NSAxMC4wMDAzIDExLjY2NyAxMC4wMDAzQzEyLjU4NzUgMTAuMDAwMyAxMy4zMzM3IDEwLjc0NjUgMTMuMzMzNyAxMS42NjdaXCIgc3Ryb2tlPVwiIzk4QTJCM1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJpY29uXCIgKm5nSWY9XCJtb3JlVGhhblRlblBlcmNlbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTEyLjY2NyAzLjMzMzY2TDMuMzMzNjYgMTIuNjY3TTYuMDAwMzMgNC4zMzM2NkM2LjAwMDMzIDUuMjU0MTMgNS4yNTQxMyA2LjAwMDMzIDQuMzMzNjYgNi4wMDAzM0MzLjQxMzE4IDYuMDAwMzMgMi42NjY5OSA1LjI1NDEzIDIuNjY2OTkgNC4zMzM2NkMyLjY2Njk5IDMuNDEzMTggMy40MTMxOCAyLjY2Njk5IDQuMzMzNjYgMi42NjY5OUM1LjI1NDEzIDIuNjY2OTkgNi4wMDAzMyAzLjQxMzE4IDYuMDAwMzMgNC4zMzM2NlpNMTMuMzMzNyAxMS42NjdDMTMuMzMzNyAxMi41ODc1IDEyLjU4NzUgMTMuMzMzNyAxMS42NjcgMTMuMzMzN0MxMC43NDY1IDEzLjMzMzcgMTAuMDAwMyAxMi41ODc1IDEwLjAwMDMgMTEuNjY3QzEwLjAwMDMgMTAuNzQ2NSAxMC43NDY1IDEwLjAwMDMgMTEuNjY3IDEwLjAwMDNDMTIuNTg3NSAxMC4wMDAzIDEzLjMzMzcgMTAuNzQ2NSAxMy4zMzM3IDExLjY2N1pcIiBzdHJva2U9XCIjRjA0NDM4XCIgc3Ryb2tlLXdpZHRoPVwiMS4zMzMzM1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCIhbW9yZVRoYW5UZW5QZXJjZW50XCIgIGNsYXNzPVwiaGVhZGluZ3RleHQgY29udGVudHRleHRcIj5JbiBwZXJjZW50YWdlPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJtb3JlVGhhblRlblBlcmNlbnRcIiBjbGFzcz1cInRleHQtZGFuZ2VyIGNvbnRlbnR0ZXh0XCI+SW4gcGVyY2VudGFnZTwvc3Bhbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggbXQtNVwiPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwic3VibWl0XCIgKGNsaWNrKT1cImFjdGl2ZU1vZGFsLmRpc21pc3MoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG4tb3V0bGluZSBidG4gY2FuY2VsIG1lLTQgdy01MFwiPkNhbmNlbDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBbZGlzYWJsZWRdPVwibW9yZVRoYW5UZW5QZXJjZW50XCIgdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJzdWNjZXNzY3JlZGl0KClcIiB0YWJpbmRleD1cIjBcIiBcclxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBweC00IG5nLXN0YXItaW5zZXJ0ZWQgdy01MFwiIHN0eWxlPVwid2hpdGUtc3BhY2U6IG5vd3JhcDtcIj48c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInN1Ym1pdFwiPkFwcGx5IDwvc3Bhbj48L2J1dHRvbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9mb3JtPlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PiJdfQ==
160
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlZGl0LW5vdGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGFuZ28tbWFuYWdlLXNldHRpbmdzL3NyYy9saWIvY29tcG9uZW50cy9wYXltZW50cy1zdWJzY3JpcHRpb24vc3Vic2NyaXB0aW9uLXBvcHVwcy9jcmVkaXQtbm90ZS9jcmVkaXQtbm90ZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1tYW5hZ2Utc2V0dGluZ3Mvc3JjL2xpYi9jb21wb25lbnRzL3BheW1lbnRzLXN1YnNjcmlwdGlvbi9zdWJzY3JpcHRpb24tcG9wdXBzL2NyZWRpdC1ub3RlL2NyZWRpdC1ub3RlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVcsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQWdDLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUk1SCxPQUFPLEVBQTBCLFVBQVUsRUFBZSxNQUFNLGdCQUFnQixDQUFDO0FBR2pGLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7O0FBTzFDLE1BQU0sT0FBTyxtQkFBbUI7SUFpQnJCO0lBQW9DO0lBQWdFO0lBQTBDO0lBQXdCO0lBaEJ0SyxRQUFRLENBQUs7SUFDdEIsWUFBWSxDQUFNO0lBQ2xCLFdBQVcsR0FBc0MsRUFBRSxDQUFDO0lBQ3BELG1CQUFtQixHQUFXLEtBQUssQ0FBQztJQUNwQyxjQUFjLENBQVk7SUFDMUIsV0FBVyxHQUFXLENBQUMsQ0FBQztJQUN4QixRQUFRLENBQU07SUFDZCxhQUFhLEdBQVcsQ0FBQyxDQUFBO0lBQ3pCLGtCQUFrQixHQUFXLEtBQUssQ0FBQTtJQUV4QixTQUFTLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7SUFDNUQsV0FBVyxDQUFNO0lB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SSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUFDLENBQUM7Z0JBQ3hDLDJDQUEyQztnQkFDM0MsSUFBSSxDQUFDLGNBQWMsQ0FBQyxhQUFhLEVBQUUsQ0FBQTthQUNwQztRQUFBLENBQUMsRUFDRixDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ1IsT0FBTyxDQUFDLEtBQUssQ0FBQywwQkFBMEIsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNuRCxDQUFDLENBQUMsQ0FBQTtJQUNOLENBQUM7SUFHRCxlQUFlLENBQUMsS0FBaUI7UUFDaEMsSUFBSSxDQUFDLG1CQUFtQixHQUFHLEtBQUssQ0FBQztJQUNsQyxDQUFDO3VHQTVJVSxtQkFBbUI7MkZBQW5CLG1CQUFtQixvTUNkaEMsd3JPQXlGTTs7MkZEM0VPLG1CQUFtQjtrQkFML0IsU0FBUzsrQkFDRSxpQkFBaUI7aU5BS2xCLFFBQVE7c0JBQWhCLEtBQUs7Z0JBVUksU0FBUztzQkFBbEIsTUFBTTtnQkErSFAsZUFBZTtzQkFEZCxZQUFZO3VCQUFDLGdCQUFnQixFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCAgT25Jbml0LCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIENoYW5nZURldGVjdG9yUmVmLCBPbkRlc3Ryb3ksIEhvc3RMaXN0ZW5lciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBOZ2JBY3RpdmVNb2RhbCB9IGZyb20gJ0BuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwJztcclxuaW1wb3J0IFN3YWwgZnJvbSAnc3dlZXRhbGVydDInO1xyXG5pbXBvcnQgeyBQYXltZW50U3Vic2NyaXB0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uL3NlcnZpY2VzL3BheW1lbnQtc3Vic2NyaXB0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzLCBGb3JtQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgVG9hc3RTZXJ2aWNlIH0gZnJvbSAndGFuZ28tYXBwLXVpLXNoYXJlZCc7XHJcbmltcG9ydCB7IGxlZnQgfSBmcm9tICdAcG9wcGVyanMvY29yZSc7XHJcbmltcG9ydCB7IFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItY3JlZGl0LW5vdGUnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jcmVkaXQtbm90ZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL2NyZWRpdC1ub3RlLmNvbXBvbmVudC5zY3NzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQ3JlZGl0Tm90ZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCxPbkRlc3Ryb3kge1xyXG4gIEBJbnB1dCgpIGNsaWVudElkOmFueTtcclxuICBpbnZvaWNlSXNzdWU6IGFueTtcclxuICBpbnZvaWNldHlwZTogeyBuYW1lOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcgfVtdID0gW107IFxyXG4gIGludm9pY2V0eXBlZHJvcERvd246Ym9vbGVhbiA9IGZhbHNlO1xyXG4gIGNyZWRpdG5vdGVmb3JtOiBGb3JtR3JvdXA7XHJcbiAgdG90YWxBbW91bnQ6IG51bWJlciA9IDA7XHJcbiAgZGlzY291bnQ6IGFueTtcclxuICByZXZpc2VkQW1vdW50OiBudW1iZXIgPSAwXHJcbiAgbW9yZVRoYW5UZW5QZXJjZW50OmJvb2xlYW4gPSBmYWxzZVxyXG5cclxuICBAT3V0cHV0KCkgcGFzc0VudHJ5OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBpbnZvaWNlaXRlbTogYW55O1xyXG5cclxuICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3kkID0gbmV3IFN1YmplY3QoKTtcclxuIFxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIGFjdGl2ZU1vZGFsOiBOZ2JBY3RpdmVNb2RhbCxwcml2YXRlIFBheW1lbnRTdWJzY3JpcHRpb25TZXJ2aWNlOiBQYXltZW50U3Vic2NyaXB0aW9uU2VydmljZSwgcHJpdmF0ZSBjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYscHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIscHJpdmF0ZSB0b2FzdDpUb2FzdFNlcnZpY2VcclxuICApIHsgXHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuY3JlZGl0bm90ZSgpO1xyXG4gICAgdGhpcy5jcmVkaXRub3RlZm9ybSA9IHRoaXMuZmIuZ3JvdXAoe1xyXG4gICAgICBpbnZvaWNldHlwZTogWycnLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcclxuICAgICAgdG90YWxBbW91bnQ6IFsnJywgVmFsaWRhdG9ycy5yZXF1aXJlZF0sIFxyXG4gICAgICByZXZpc2VkQW1vdW50OlsnJywgVmFsaWRhdG9ycy5yZXF1aXJlZF0gLFxyXG4gICAgICBkaXNjb3VudDogWycnLFsgVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5tYXgoMTApXV0sXHJcbiAgICB9KTtcclxuICAgIHRoaXMuY3JlZGl0bm90ZWZvcm0uZ2V0KCdyZXZpc2VkQW1vdW50Jyk/LnZhbHVlQ2hhbmdlcy5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKChlKSA9PiB7XHJcbiAgICAgIGlmKGUpIHsgXHJcbiAgICAgICAgdGhpcy50b3RhbEFtb3VudCA9IHRoaXMuY3JlZGl0bm90ZWZvcm0uZ2V0KCd0b3RhbEFtb3VudCcpPy52YWx1ZTtcclxuICAgICAgICB0aGlzLmRpc2NvdW50ID0gKCh0aGlzLnRvdGFsQW1vdW50IC0gZSkgLyB0aGlzLnRvdGFsQW1vdW50ICogMTAwKS50b0ZpeGVkKDIpO1xyXG4gICAgICAgIHRoaXMucmV2aXNlZEFtb3VudD1lO1xyXG4gICAgICAgIGlmKHRoaXMuZGlzY291bnQ+MTAgfHwgaXNOYU4oZSkgfHwgdGhpcy5kaXNjb3VudCA8IDAgfHwgZSA8IDApe1xyXG4gICAgICAgICAgdGhpcy5tb3JlVGhhblRlblBlcmNlbnQgPSB0cnVlOyBcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLm1vcmVUaGFuVGVuUGVyY2VudCA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmNyZWRpdG5vdGVmb3JtLmdldCgnZGlzY291bnQnKT8uc2V0VmFsdWUodGhpcy5kaXNjb3VudCwge1xyXG4gICAgICAgICAgZW1pdEV2ZW50XHJcbiAgICAgICAgICAgIDogZmFsc2UgfSk7XHJcbiAgICAgIH1lbHNle1xyXG4gICAgICAgIGxldCBlbXB0ZGlzY291bnQgPSAnJ1xyXG4gICAgICAgIHRoaXMuY3JlZGl0bm90ZWZvcm0uZ2V0KCdkaXNjb3VudCcpPy5zZXRWYWx1ZShlbXB0ZGlzY291bnQsIHtcclxuICAgICAgICAgIGVtaXRFdmVudFxyXG4gICAgICAgICAgICA6IGZhbHNlIH0pO1xyXG4gICAgICAgICAgdGhpcy5tb3JlVGhhblRlblBlcmNlbnQgPSBmYWxzZTsgXHJcbiAgICAgIH0gXHJcbiAgICB9KVxyXG4gICAgXHJcbiAgICB0aGlzLmNyZWRpdG5vdGVmb3JtLmdldCgnZGlzY291bnQnKT8udmFsdWVDaGFuZ2VzLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoKGUpID0+IHtcclxuICAgICAgaWYoZSkge1xyXG4gICAgICAgIHRoaXMudG90YWxBbW91bnQgPSB0aGlzLmNyZWRpdG5vdGVmb3JtLmdldCgndG90YWxBbW91bnQnKT8udmFsdWU7XHJcbiAgICAgICAgdGhpcy5yZXZpc2VkQW1vdW50ID0gdGhpcy50b3RhbEFtb3VudCAqICgxIC0gZSAvIDEwMCk7XHJcbiAgICAgICAgdGhpcy5yZXZpc2VkQW1vdW50ID0gcGFyc2VJbnQodGhpcy5yZXZpc2VkQW1vdW50LnRvRml4ZWQoKSlcclxuICAgICAgICB0aGlzLmRpc2NvdW50PWU7XHJcbiAgICAgICAgaWYgKHRoaXMuZGlzY291bnQ+MTAgfHwgaXNOYU4oZSkgfHwgZSA8IDAgfHwgdGhpcy5yZXZpc2VkQW1vdW50IDwgMCl7XHJcbiAgICAgICAgICB0aGlzLm1vcmVUaGFuVGVuUGVyY2VudCA9IHRydWU7IFxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgIHRoaXMubW9yZVRoYW5UZW5QZXJjZW50ID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuY3JlZGl0bm90ZWZvcm0uZ2V0KCdyZXZpc2VkQW1vdW50Jyk/LnNldFZhbHVlKHRoaXMucmV2aXNlZEFtb3VudCwge1xyXG4gICAgICAgICAgZW1pdEV2ZW50XHJcbiAgICAgICAgICA6IGZhbHNlIH0pO1xyXG4gICAgICB9ZWxzZXtcclxuICAgICAgICBsZXQgZW1wdGRpc2NvdW50ID0gJydcclxuICAgICAgICB0aGlzLmNyZWRpdG5vdGVmb3JtLmdldCgncmV2aXNlZEFtb3VudCcpPy5zZXRWYWx1ZShlbXB0ZGlzY291bnQsIHtcclxuICAgICAgICAgIGVtaXRFdmVudFxyXG4gICAgICAgICAgICA6IGZhbHNlIH0pO1xyXG4gICAgICAgIHRoaXMubW9yZVRoYW5UZW5QZXJjZW50ID0gZmFsc2U7IFxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xyXG5cclxuICAgIH0pXHJcbiAgfVxyXG4gIGdldCByZXZpc2VkYW1vdW50KCkgeyByZXR1cm4gdGhpcy5jcmVkaXRub3RlZm9ybS5nZXQoJ3JldmlzZWRBbW91bnQnKTsgfVxyXG4gIGdldCBkaXNjb3VudHMoKSB7IHJldHVybiB0aGlzLmNyZWRpdG5vdGVmb3JtLmdldCgnZGlzY291bnQnKTsgfVxyXG4gIFxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KHRydWUpO1xyXG4gICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xyXG4gIH1cclxuXHJcbiAgXHJcbiAgY3JlZGl0bm90ZSgpe1xyXG4gICAgXHJcbiAgdGhpcy5QYXltZW50U3Vic2NyaXB0aW9uU2VydmljZS5nZXRpbnZvaWNlKHRoaXMuY2xpZW50SWQpLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoKHJlczogYW55KSA9PiB7XHJcbiAgICAgIGlmIChyZXMgJiYgcmVzLmNvZGUgPT0gMjAwKSB7XHJcbiAgICAgICAgdGhpcy5pbnZvaWNlaXRlbSA9IHJlcz8uZGF0YTtcclxuICAgICAgICB0aGlzLmludm9pY2VJc3N1ZSA9IHRoaXMuaW52b2ljZWl0ZW1bMF0/Lmludm9pY2U7XHJcbiAgICAgICAgY29uc3QgdG90YWxBbW91bnQgPSB0aGlzLmludm9pY2VpdGVtWzBdPy5hbW91bnQgfHwgXCJcIjtcclxuICAgICAgICB0aGlzLmNyZWRpdG5vdGVmb3JtLnBhdGNoVmFsdWUoe1xyXG4gICAgICAgICAgdG90YWxBbW91bnQ6IHRvdGFsQW1vdW50LFxyXG4gICAgICAgICAgZGlzY291bnQ6dGhpcy5pbnZvaWNlaXRlbVswXT8uZGlzY291bnRcclxuICAgICAgICB9KTtcclxuICAgICAgXHJcbiAgICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgfVxyXG4gIH0pO1xyXG4gIH1cclxuXHJcbiAgaW52b2ljZUl0ZW0oaW52b2ljZXZhbHVlOmFueSl7XHJcbiAgICB0aGlzLmNyZWRpdG5vdGVmb3JtLnBhdGNoVmFsdWUoe1xyXG4gICAgICB0b3RhbEFtb3VudDogaW52b2ljZXZhbHVlLmFtb3VudCxcclxuICAgICAgLi4uKGludm9pY2V2YWx1ZT8uZGlzY291bnQgPyB7ZGlzY291bnQ6aW52b2ljZXZhbHVlPy5kaXNjb3VudH0gOiB7ZGlzY291bnQ6Jyd9KSxcclxuICAgICAgLi4uKGludm9pY2V2YWx1ZT8ucmV2aXNlZEFtb3VudCA/IHtyZXZpc2VkQW1vdW50Omludm9pY2V2YWx1ZT8ucmV2aXNlZEFtb3VudH0gOiB7cmV2aXNlZEFtb3VudDonJ30pXHJcbiAgICB9KTtcclxuICAgIHRoaXMuaW52b2ljZUlzc3VlID0gaW52b2ljZXZhbHVlLmludm9pY2U7XHJcbiAgICB0aGlzLmNyZWRpdG5vdGVmb3JtLmdldCgnaW52b2ljZXR5cGUnKT8uc2V0VmFsdWUodGhpcy5pbnZvaWNlSXNzdWUpXHJcbiAgICB0aGlzLmludm9pY2V0eXBlZHJvcERvd24gPSBmYWxzZTtcclxuICB9XHJcbiAgaW52b2ljZXR5cGVEcm9wZG93bihldmVudDpNb3VzZUV2ZW50KXtcclxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgdGhpcy5pbnZvaWNldHlwZWRyb3BEb3duID0gIXRoaXMuaW52b2ljZXR5cGVkcm9wRG93bjtcclxuICAgIHRoaXMucmV2aXNlZEFtb3VudCAgIFxyXG4gIH1cclxuICBzdWNjZXNzY3JlZGl0KCkge1xyXG4gICAgY29uc3QgcmVxdWVzdERhdGEgPSB7XHJcbiAgICAgIGludm9pY2U6dGhpcy5pbnZvaWNlSXNzdWUsXHJcbiAgICAgIHJldmlzZWRBbW91bnQ6dGhpcy5yZXZpc2VkQW1vdW50LFxyXG4gICAgICBkaXNjb3VudDp0aGlzLmRpc2NvdW50XHJcbiAgICB9O1xyXG4gICAgdGhpcy5QYXltZW50U3Vic2NyaXB0aW9uU2VydmljZS5jcmVkaXRub3RldXBkYXRlKHJlcXVlc3REYXRhKS5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlICgocmVzOiBhbnkpID0+IHtcclxuICAgICAgaWYgKHJlcyAmJiByZXMuY29kZSA9PSAyMDApIHtcclxuICAgICAgICB0aGlzLmFjdGl2ZU1vZGFsLmNsb3NlKCdzdWNjZXNzY3JlZGl0Jyk7XHJcbiAgICAgICAgLy8gdGhpcy50b2FzdC5nZXRQcmltYXJ5VG9hc3QocmVzLm1lc3NhZ2UpO1xyXG4gICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpXHJcbiAgICAgIH19LFxyXG4gICAgICAoZXJyb3IpID0+IHtcclxuICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBzdWJtaXR0aW5nIHVwZGF0ZTonLCBlcnJvcik7XHJcbiAgICAgIH0pXHJcbiAgfVxyXG4gIFxyXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmNsaWNrJywgWyckZXZlbnQnXSlcclxuICBvbkRvY3VtZW50Q2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpIHtcclxuICAgdGhpcy5pbnZvaWNldHlwZWRyb3BEb3duID0gZmFsc2U7XHJcbiAgfVxyXG59XHJcblxyXG4iLCI8ZGl2IGNsYXNzPVwibW9kYWwtY29udGVudFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cInAtNSBweC02XCI+XHJcbiAgICAgICAgPGRpdj48aW1nIHNyYz1cIi4vYXNzZXRzL3RhbmdvL2N1c3RvbXBvcHVwLUljb25zL3BsdXMtaWNvbi5zdmdcIiBhbHQ9XCJcIj48L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGluZyBtdC00IG1zLTFcIj5BZGQgQ3JlZGl0IE5vdGU8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGVudHRleHQgbXQtNFwiPlxyXG4gICAgICAgICAgICBZb3UgaGF2ZSB0aGUgZmxleGliaWxpdHkgdG8gc2VsZWN0IGEgbW9udGggaW4gd2hpY2ggdGhlIGJyYW5kIGNhbiBtYWtlIGNyZWRpdCBwYXltZW50cy5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1ib2R5IG1iLThcIj5cclxuICAgICAgICA8IS0tYmVnaW46OkZvcm0tLT5cclxuICAgICAgICA8Zm9ybSBbZm9ybUdyb3VwXT1cImNyZWRpdG5vdGVmb3JtXCIgY2xhc3M9XCJmb3JtIGZ2LXBsdWdpbnMtYm9vdHN0cmFwNSBmdi1wbHVnaW5zLWZyYW1ld29ya1wiIGFjdGlvbj1cIiNcIj5cclxuXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZmxleC1jb2x1bW4gZnYtcm93IGZ2LXBsdWdpbnMtaWNvbi1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwIHB5LTJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiaW52b2ljZXR5cGVcIiBjbGFzcz1cImhlYWRpbmd0ZXh0IG1iLTJcIj5JbnZvaWNlIElEPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicG9zaXRpb24tcmVsYXRpdmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tc2VsZWN0IGRyb3BzZWxlY3RcIiBpZD1cImludm9pY2V0eXBlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJpbnZvaWNldHlwZURyb3Bkb3duKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD1cIkRlZmF1bHQgc2VsZWN0IGV4YW1wbGVcIj57e2ludm9pY2VJc3N1ZX19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJpbnZvaWNldHlwZWRyb3BEb3duXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY2FyZCBweS0yIHctMTAwIGludm9pY2VpZHNlbGVjdCBwb3NpdGlvbi1hYnNvbHV0ZSBlbmQtMCB6LTEgaW52b2ljZURyb3BEb3duXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWwgKm5nRm9yPVwibGV0IGl0ZW0gb2YgaW52b2ljZWl0ZW1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibGlzdC11bnN0eWxlZCBtYi0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIFtuZ0NsYXNzXT1cInRoaXMuaW52b2ljZUlzc3VlID09PSBpdGVtPy5pbnZvaWNlID8gJ2FjdGl2ZScgOiAnJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicHJvZHVjdHRleHQgcHgtNSBpdGVtcyBjdXJzb3ItcG9pbnRlciBweS00XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImludm9pY2VJdGVtKGl0ZW0pXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7aXRlbT8uaW52b2ljZX19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGZvcj1cInRvdGFsQW1vdW50XCIgY2xhc3M9XCJmb3JtLWdyb3VwIHB5LTJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCIgaGVhZGluZ3RleHQgbWItMiBcIj5Ub3RhbCBBbW91bnQ8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImRvbGxhci1zaWduIHRvdGFsYW1vdW50XCI+4oK5PC9zcGFuPjxpbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJ0b3RhbEFtb3VudFwiIHR5cGU9XCJ0ZXh0XCIgcmVhZG9ubHkgY2xhc3M9XCJuZy1wcmlzdGluZSBuZy1pbnZhbGlkIG5nLXRvdWNoZWQgdG90YWxhbW91bnRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT1cInRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplO1wiPjwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBmb3I9XCJyZXZpc2VkQW1vdW50XCIgY2xhc3M9XCJmb3JtLWdyb3VwIG10LTJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHktMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCIgaGVhZGluZ3RleHQgbWItMlwiPiBSZXZpc2VkIEFtb3VudDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cCBkcm9wc2VsZWN0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImRvbGxhci1zaWduXCI+4oK5PC9zcGFuPjxpbnB1dCB0eXBlPVwidGV4dFwiIGZvcm1Db250cm9sTmFtZT1cInJldmlzZWRBbW91bnRcIiAgW25nQ2xhc3NdPVwibW9yZVRoYW5UZW5QZXJjZW50ID8gJ2Vycm9yaW5wdXQnIDogJydcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCJ0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaWNvblwiICpuZ0lmPVwibW9yZVRoYW5UZW5QZXJjZW50XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGcgY2xpcC1wYXRoPVwidXJsKCNjbGlwMF83NTEzXzM2Njg5KVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNNy45OTk2NyA1LjMzMzAxVjcuOTk5NjdNNy45OTk2NyAxMC42NjYzSDguMDA2MzRNMTQuNjY2MyA3Ljk5OTY3QzE0LjY2NjMgMTEuNjgxNiAxMS42ODE2IDE0LjY2NjMgNy45OTk2NyAxNC42NjYzQzQuMzE3NzggMTQuNjY2MyAxLjMzMzAxIDExLjY4MTYgMS4zMzMwMSA3Ljk5OTY3QzEuMzMzMDEgNC4zMTc3OCA0LjMxNzc4IDEuMzMzMDEgNy45OTk2NyAxLjMzMzAxQzExLjY4MTYgMS4zMzMwMSAxNC42NjYzIDQuMzE3NzggMTQuNjY2MyA3Ljk5OTY3WlwiIHN0cm9rZT1cIiNGMDQ0MzhcIiBzdHJva2Utd2lkdGg9XCIxLjMzMzMzXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y2xpcFBhdGggaWQ9XCJjbGlwMF83NTEzXzM2Njg5XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3Qgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCIgZmlsbD1cIndoaXRlXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvY2xpcFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPjwvc3Bhbj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cIiFtb3JlVGhhblRlblBlcmNlbnRcIiAgY2xhc3M9XCJoZWFkaW5ndGV4dCBjb250ZW50dGV4dFwiPk1vcmUgdGhhbiAxMCUgY2Fu4oCZdCBiZSByZXZpc2VkIGZyb20gdG90YWwgYW1vdW50PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwibW9yZVRoYW5UZW5QZXJjZW50XCIgY2xhc3M9XCJ0ZXh0LWRhbmdlciBjb250ZW50dGV4dFwiPk1vcmUgdGhhbiAxMCUgY2Fu4oCZdCBiZSByZXZpc2VkIGZyb20gdG90YWwgYW1vdW50PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGZvcj1cImRpc2NvdW50XCIgY2xhc3M9XCJmb3JtLWdyb3VwIG10LTJcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJweS0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiIGhlYWRpbmd0ZXh0IG1iLTJcIj4gRGlzY291bnQ8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cFwiPiAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgZm9ybUNvbnRyb2xOYW1lPVwiZGlzY291bnRcIiBjbGFzcz1cInRvdGFsYW1vdW50XCIgW25nQ2xhc3NdPVwibW9yZVRoYW5UZW5QZXJjZW50ID8gJ2Vycm9yaW5wdXQnIDogJydcIiA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaWNvblwiICpuZ0lmPVwiIW1vcmVUaGFuVGVuUGVyY2VudFwiID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTIuNjY3IDMuMzMzNjZMMy4zMzM2NiAxMi42NjdNNi4wMDAzMyA0LjMzMzY2QzYuMDAwMzMgNS4yNTQxMyA1LjI1NDEzIDYuMDAwMzMgNC4zMzM2NiA2LjAwMDMzQzMuNDEzMTggNi4wMDAzMyAyLjY2Njk5IDUuMjU0MTMgMi42NjY5OSA0LjMzMzY2QzIuNjY2OTkgMy40MTMxOCAzLjQxMzE4IDIuNjY2OTkgNC4zMzM2NiAyLjY2Njk5QzUuMjU0MTMgMi42NjY5OSA2LjAwMDMzIDMuNDEzMTggNi4wMDAzMyA0LjMzMzY2Wk0xMy4zMzM3IDExLjY2N0MxMy4zMzM3IDEyLjU4NzUgMTIuNTg3NSAxMy4zMzM3IDExLjY2NyAxMy4zMzM3QzEwLjc0NjUgMTMuMzMzNyAxMC4wMDAzIDEyLjU4NzUgMTAuMDAwMyAxMS42NjdDMTAuMDAwMyAxMC43NDY1IDEwLjc0NjUgMTAuMDAwMyAxMS42NjcgMTAuMDAwM0MxMi41ODc1IDEwLjAwMDMgMTMuMzMzNyAxMC43NDY1IDEzLjMzMzcgMTEuNjY3WlwiIHN0cm9rZT1cIiM5OEEyQjNcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaWNvblwiICpuZ0lmPVwibW9yZVRoYW5UZW5QZXJjZW50XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0xMi42NjcgMy4zMzM2NkwzLjMzMzY2IDEyLjY2N002LjAwMDMzIDQuMzMzNjZDNi4wMDAzMyA1LjI1NDEzIDUuMjU0MTMgNi4wMDAzMyA0LjMzMzY2IDYuMDAwMzNDMy40MTMxOCA2LjAwMDMzIDIuNjY2OTkgNS4yNTQxMyAyLjY2Njk5IDQuMzMzNjZDMi42NjY5OSAzLjQxMzE4IDMuNDEzMTggMi42NjY5OSA0LjMzMzY2IDIuNjY2OTlDNS4yNTQxMyAyLjY2Njk5IDYuMDAwMzMgMy40MTMxOCA2LjAwMDMzIDQuMzMzNjZaTTEzLjMzMzcgMTEuNjY3QzEzLjMzMzcgMTIuNTg3NSAxMi41ODc1IDEzLjMzMzcgMTEuNjY3IDEzLjMzMzdDMTAuNzQ2NSAxMy4zMzM3IDEwLjAwMDMgMTIuNTg3NSAxMC4wMDAzIDExLjY2N0MxMC4wMDAzIDEwLjc0NjUgMTAuNzQ2NSAxMC4wMDAzIDExLjY2NyAxMC4wMDAzQzEyLjU4NzUgMTAuMDAwMyAxMy4zMzM3IDEwLjc0NjUgMTMuMzMzNyAxMS42NjdaXCIgc3Ryb2tlPVwiI0YwNDQzOFwiIHN0cm9rZS13aWR0aD1cIjEuMzMzMzNcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiIW1vcmVUaGFuVGVuUGVyY2VudFwiICBjbGFzcz1cImhlYWRpbmd0ZXh0IGNvbnRlbnR0ZXh0XCI+SW4gcGVyY2VudGFnZTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwibW9yZVRoYW5UZW5QZXJjZW50XCIgY2xhc3M9XCJ0ZXh0LWRhbmdlciBjb250ZW50dGV4dFwiPkluIHBlcmNlbnRhZ2U8L3NwYW4+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IG10LTVcIj5cclxuICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cInN1Ym1pdFwiIChjbGljayk9XCJhY3RpdmVNb2RhbC5kaXNtaXNzKClcIlxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuLW91dGxpbmUgYnRuIGNhbmNlbCBtZS00IHctNTBcIj5DYW5jZWw8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDxidXR0b24gW2Rpc2FibGVkXT1cIm1vcmVUaGFuVGVuUGVyY2VudFwiIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwic3VjY2Vzc2NyZWRpdCgpXCIgdGFiaW5kZXg9XCIwXCIgXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgcHgtNCBuZy1zdGFyLWluc2VydGVkIHctNTBcIiBzdHlsZT1cIndoaXRlLXNwYWNlOiBub3dyYXA7XCI+PHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzdWJtaXRcIj5BcHBseSA8L3NwYW4+PC9idXR0b24+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZm9ybT5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj4iXX0=