tango-app-ui-manage-settings 3.0.24-dev → 3.0.26-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.
@@ -95,11 +95,11 @@ export class ProductConfirmationComponent {
95
95
  return products.join(',');
96
96
  }
97
97
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: ProductConfirmationComponent, deps: [{ token: i1.NgbModal }, { token: i1.NgbActiveModal }, { token: i2.ToastService }, { token: i3.PaymentSubscriptionService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
98
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.8", type: ProductConfirmationComponent, selector: "lib-product-confirmation", inputs: { productList: "productList", updatedProduct: "updatedProduct", type: "type", stores: "stores", clientId: "clientId", clientProduct: "clientProduct" }, ngImport: i0, template: "<div class=\"modal-content\">\r\n <div class=\"p-6\">\r\n <div><img src=\"./assets/tango/custompopup-Icons/settings-icon.svg\" alt=\"\"></div>\r\n <div class=\"heading mt-4 ms-1\">Confirmation</div>\r\n <div class=\"contenttext mt-4 ms-1\">\r\n Please update the status of below product\r\n </div>\r\n </div>\r\n <div class=\"modal-body\">\r\n <!--begin::Form-->\r\n <form id=\"kt_modal_new_card_form\" class=\"form fv-plugins-bootstrap5 fv-plugins-framework\" action=\"#\">\r\n \r\n <div class=\"fv-row fv-plugins-icon-container \">\r\n <div class=\"confirmationborder mb-3\" [ngClass]=\"i !== 0 ? 'mt-4' : ''\" *ngFor=\"let product of products;let i=index;\">\r\n <div class=\"d-flex justify-content-between\">\r\n <label for=\"TangoZone\" class=\" producttext mb-2\">{{convertUpper(product.name)}}</label>\r\n <span class=\"badge badge-light-primary ms-2\" *ngIf=\"product.new\">Subscribe\r\n <img class=\"ms-2\" src=\"./assets/tango/custompopup-Icons/primary-clock-icon.svg\" alt=\"\">\r\n </span>\r\n <span class=\"badge badge-light-warning ms-2\" *ngIf=\"!product.new\">Unsubscribe\r\n <img class=\"ms-2\" src=\"./assets/tango/custompopup-Icons/warning-clock-icon.svg\" alt=\"\">\r\n </span>\r\n </div>\r\n <div class=\"form-group pt-1\" *ngIf=\"product.new\">\r\n <div class=\"form-check form-check-inline ps-0\" >\r\n <input class=\" cursor-pointer radio-custom\" type=\"radio\" name=\"ontrailRadioOptions_{{i}}\"\r\n id=\"inlineRadio1\" value=\"trial\" (click)=\"updateType(i,'trial')\" checked>\r\n <label class=\"form-check-label radio-custom-label mx-3 producttext cursor-pointer\"\r\n for=\"inlineRadio1\">Start with trail</label>\r\n </div><br>\r\n <div class=\"form-check form-check-inline ps-0\" >\r\n <input class=\" cursor-pointer radio-custom\" type=\"radio\" name=\"ontrailRadioOptions_{{i}}\"\r\n id=\"inlineRadio1\" value=\"subscription\" (click)=\"updateType(i,'subscription')\">\r\n <label class=\"form-check-label producttext radio-custom-label mx-3 cursor-pointer\"\r\n for=\"inlineRadio1\">Add to Subscription</label>\r\n </div>\r\n \r\n </div>\r\n <div class=\"form-group pt-1\" *ngIf=\"!product.new\">\r\n <div class=\"form-check form-check-inline ps-0\" >\r\n <input class=\" cursor-pointer radio-custom\" type=\"radio\" name=\"TrailExpiredRadioOptions_{{i}}\" id=\"inlineRadio1\"\r\n value=\"unsubscribe\" (click)=\"updateType(i,'unsubscribe')\" checked>\r\n <label class=\"form-check-label radio-custom-label mx-3 producttext cursor-pointer\"\r\n for=\"inlineRadio1\">Unsubscribe</label>\r\n </div><br>\r\n <div class=\"form-check form-check-inline ps-0\" >\r\n <input class=\" cursor-pointer radio-custom\" type=\"radio\" name=\"TrailExpiredRadioOptions_{{i}}\" id=\"inlineRadio1\"\r\n value=\"cancel\" (click)=\"updateType(i,'cancel')\">\r\n <label class=\"form-check-label producttext radio-custom-label mx-3 cursor-pointer\"\r\n for=\"inlineRadio1\">Cancel</label>\r\n </div>\r\n \r\n </div>\r\n </div>\r\n\r\n <div class=\"d-flex mt-9 my-2\">\r\n <button type=\"submit\" class=\"btn-outline btn cancel me-4 w-50\" (click)=\"activeModal.close()\">Cancel</button>\r\n <button type=\"button\" tabindex=\"0\"\r\n class=\"btn btn-primary px-4 ng-star-inserted w-50\" style=\"white-space: nowrap;\" (click)=\"type === 'products' ? updateproduct() : updateStore()\"><span\r\n class=\"submit\">Submit</span></button>\r\n </div>\r\n </div>\r\n \r\n \r\n <!--end::Actions-->\r\n </form>\r\n <!--end::Form-->\r\n \r\n </div>\r\n</div>", styles: [".heading{color:var(--Gray-900, #101828);font-size:18px;font-weight:600;line-height:28px}.contenttext{color:var(--Gray-500, #667085);font-family:Inter;font-size:14px;font-style:normal;font-weight:400;line-height:20px}.radio-custom{width:20px;height:20px;background-color:#eaf8ff}.radio-custom,.radio-custom-label{display:inline-block;vertical-align:middle;margin:8px 0;cursor:pointer}.radio-custom-label{position:relative}.radio-custom:checked+.radio-custom-label:before{background:#00a3ff;box-shadow:inset 0 0 0 4.5px #eaf8ff;width:16px;height:16px}.producttext{color:var(--Gray-700, #344054);font-size:14px;font-weight:500;line-height:20px}.confirmationborder{border-radius:8px;border:1px solid var(--Gray-200, #EAECF0);background:var(--White, #FFF);padding:16px;flex-direction:column;align-items:flex-start;gap:18px;align-self:stretch}\n"], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i5.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }] });
98
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.8", type: ProductConfirmationComponent, selector: "lib-product-confirmation", inputs: { productList: "productList", updatedProduct: "updatedProduct", type: "type", stores: "stores", clientId: "clientId", clientProduct: "clientProduct" }, ngImport: i0, template: "<div class=\"modal-content\">\r\n <div class=\"p-6\">\r\n <div><img src=\"./assets/tango/custompopup-Icons/settings-icon.svg\" alt=\"\"></div>\r\n <div class=\"heading mt-4 ms-1\">Confirmation</div>\r\n <div class=\"contenttext mt-4 ms-1\">\r\n Please update the status of below product\r\n </div>\r\n </div>\r\n <div class=\"modal-body\">\r\n <!--begin::Form-->\r\n <form id=\"kt_modal_new_card_form\" class=\"form fv-plugins-bootstrap5 fv-plugins-framework\" action=\"#\">\r\n \r\n <div class=\"fv-row fv-plugins-icon-container \">\r\n <div class=\"confirmationborder mb-3\" [ngClass]=\"i !== 0 ? 'mt-4' : ''\" *ngFor=\"let product of products;let i=index;\">\r\n <div class=\"d-flex justify-content-between\">\r\n <label for=\"TangoZone\" class=\" producttext mb-2\">{{convertUpper(product.name)}}</label>\r\n <span class=\"badge badge-light-primary ms-2\" *ngIf=\"product.new\">Subscribe\r\n <img class=\"ms-2\" src=\"./assets/tango/custompopup-Icons/primary-clock-icon.svg\" alt=\"\">\r\n </span>\r\n <span class=\"badge badge-light-warning ms-2\" *ngIf=\"!product.new\">Unsubscribe\r\n <img class=\"ms-2\" src=\"./assets/tango/custompopup-Icons/warning-clock-icon.svg\" alt=\"\">\r\n </span>\r\n </div>\r\n <div class=\"form-group pt-1\" *ngIf=\"product.new\">\r\n <div class=\"form-check form-check-inline ps-0\" >\r\n <input class=\" cursor-pointer radio-custom\" type=\"radio\" name=\"ontrailRadioOptions_{{i}}\"\r\n id=\"inlineRadio1\" value=\"trial\" (click)=\"updateType(i,'trial')\" checked>\r\n <label class=\"form-check-label radio-custom-label mx-3 producttext cursor-pointer\"\r\n for=\"inlineRadio1\">Start with trial</label>\r\n </div><br>\r\n <div class=\"form-check form-check-inline ps-0\" >\r\n <input class=\" cursor-pointer radio-custom\" type=\"radio\" name=\"ontrailRadioOptions_{{i}}\"\r\n id=\"inlineRadio1\" value=\"subscription\" (click)=\"updateType(i,'subscription')\">\r\n <label class=\"form-check-label producttext radio-custom-label mx-3 cursor-pointer\"\r\n for=\"inlineRadio1\">Add to Subscription</label>\r\n </div>\r\n \r\n </div>\r\n <div class=\"form-group pt-1\" *ngIf=\"!product.new\">\r\n <div class=\"form-check form-check-inline ps-0\" >\r\n <input class=\" cursor-pointer radio-custom\" type=\"radio\" name=\"TrailExpiredRadioOptions_{{i}}\" id=\"inlineRadio1\"\r\n value=\"unsubscribe\" (click)=\"updateType(i,'unsubscribe')\" checked>\r\n <label class=\"form-check-label radio-custom-label mx-3 producttext cursor-pointer\"\r\n for=\"inlineRadio1\">Unsubscribe</label>\r\n </div><br>\r\n <div class=\"form-check form-check-inline ps-0\" >\r\n <input class=\" cursor-pointer radio-custom\" type=\"radio\" name=\"TrailExpiredRadioOptions_{{i}}\" id=\"inlineRadio1\"\r\n value=\"cancel\" (click)=\"updateType(i,'cancel')\">\r\n <label class=\"form-check-label producttext radio-custom-label mx-3 cursor-pointer\"\r\n for=\"inlineRadio1\">Cancel</label>\r\n </div>\r\n \r\n </div>\r\n </div>\r\n\r\n <div class=\"d-flex mt-9 my-2\">\r\n <button type=\"submit\" class=\"btn-outline btn cancel me-4 w-50\" (click)=\"activeModal.close()\">Cancel</button>\r\n <button type=\"button\" tabindex=\"0\"\r\n class=\"btn btn-primary px-4 ng-star-inserted w-50\" style=\"white-space: nowrap;\" (click)=\"type === 'products' ? updateproduct() : updateStore()\"><span\r\n class=\"submit\">Submit</span></button>\r\n </div>\r\n </div>\r\n \r\n \r\n <!--end::Actions-->\r\n </form>\r\n <!--end::Form-->\r\n \r\n </div>\r\n</div>", styles: [".heading{color:var(--Gray-900, #101828);font-size:18px;font-weight:600;line-height:28px}.contenttext{color:var(--Gray-500, #667085);font-family:Inter;font-size:14px;font-style:normal;font-weight:400;line-height:20px}.radio-custom{width:20px;height:20px;background-color:#eaf8ff}.radio-custom,.radio-custom-label{display:inline-block;vertical-align:middle;margin:8px 0;cursor:pointer}.radio-custom-label{position:relative}.radio-custom:checked+.radio-custom-label:before{background:#00a3ff;box-shadow:inset 0 0 0 4.5px #eaf8ff;width:16px;height:16px}.producttext{color:var(--Gray-700, #344054);font-size:14px;font-weight:500;line-height:20px}.confirmationborder{border-radius:8px;border:1px solid var(--Gray-200, #EAECF0);background:var(--White, #FFF);padding:16px;flex-direction:column;align-items:flex-start;gap:18px;align-self:stretch}\n"], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i5.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }] });
99
99
  }
100
100
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: ProductConfirmationComponent, decorators: [{
101
101
  type: Component,
102
- args: [{ selector: 'lib-product-confirmation', template: "<div class=\"modal-content\">\r\n <div class=\"p-6\">\r\n <div><img src=\"./assets/tango/custompopup-Icons/settings-icon.svg\" alt=\"\"></div>\r\n <div class=\"heading mt-4 ms-1\">Confirmation</div>\r\n <div class=\"contenttext mt-4 ms-1\">\r\n Please update the status of below product\r\n </div>\r\n </div>\r\n <div class=\"modal-body\">\r\n <!--begin::Form-->\r\n <form id=\"kt_modal_new_card_form\" class=\"form fv-plugins-bootstrap5 fv-plugins-framework\" action=\"#\">\r\n \r\n <div class=\"fv-row fv-plugins-icon-container \">\r\n <div class=\"confirmationborder mb-3\" [ngClass]=\"i !== 0 ? 'mt-4' : ''\" *ngFor=\"let product of products;let i=index;\">\r\n <div class=\"d-flex justify-content-between\">\r\n <label for=\"TangoZone\" class=\" producttext mb-2\">{{convertUpper(product.name)}}</label>\r\n <span class=\"badge badge-light-primary ms-2\" *ngIf=\"product.new\">Subscribe\r\n <img class=\"ms-2\" src=\"./assets/tango/custompopup-Icons/primary-clock-icon.svg\" alt=\"\">\r\n </span>\r\n <span class=\"badge badge-light-warning ms-2\" *ngIf=\"!product.new\">Unsubscribe\r\n <img class=\"ms-2\" src=\"./assets/tango/custompopup-Icons/warning-clock-icon.svg\" alt=\"\">\r\n </span>\r\n </div>\r\n <div class=\"form-group pt-1\" *ngIf=\"product.new\">\r\n <div class=\"form-check form-check-inline ps-0\" >\r\n <input class=\" cursor-pointer radio-custom\" type=\"radio\" name=\"ontrailRadioOptions_{{i}}\"\r\n id=\"inlineRadio1\" value=\"trial\" (click)=\"updateType(i,'trial')\" checked>\r\n <label class=\"form-check-label radio-custom-label mx-3 producttext cursor-pointer\"\r\n for=\"inlineRadio1\">Start with trail</label>\r\n </div><br>\r\n <div class=\"form-check form-check-inline ps-0\" >\r\n <input class=\" cursor-pointer radio-custom\" type=\"radio\" name=\"ontrailRadioOptions_{{i}}\"\r\n id=\"inlineRadio1\" value=\"subscription\" (click)=\"updateType(i,'subscription')\">\r\n <label class=\"form-check-label producttext radio-custom-label mx-3 cursor-pointer\"\r\n for=\"inlineRadio1\">Add to Subscription</label>\r\n </div>\r\n \r\n </div>\r\n <div class=\"form-group pt-1\" *ngIf=\"!product.new\">\r\n <div class=\"form-check form-check-inline ps-0\" >\r\n <input class=\" cursor-pointer radio-custom\" type=\"radio\" name=\"TrailExpiredRadioOptions_{{i}}\" id=\"inlineRadio1\"\r\n value=\"unsubscribe\" (click)=\"updateType(i,'unsubscribe')\" checked>\r\n <label class=\"form-check-label radio-custom-label mx-3 producttext cursor-pointer\"\r\n for=\"inlineRadio1\">Unsubscribe</label>\r\n </div><br>\r\n <div class=\"form-check form-check-inline ps-0\" >\r\n <input class=\" cursor-pointer radio-custom\" type=\"radio\" name=\"TrailExpiredRadioOptions_{{i}}\" id=\"inlineRadio1\"\r\n value=\"cancel\" (click)=\"updateType(i,'cancel')\">\r\n <label class=\"form-check-label producttext radio-custom-label mx-3 cursor-pointer\"\r\n for=\"inlineRadio1\">Cancel</label>\r\n </div>\r\n \r\n </div>\r\n </div>\r\n\r\n <div class=\"d-flex mt-9 my-2\">\r\n <button type=\"submit\" class=\"btn-outline btn cancel me-4 w-50\" (click)=\"activeModal.close()\">Cancel</button>\r\n <button type=\"button\" tabindex=\"0\"\r\n class=\"btn btn-primary px-4 ng-star-inserted w-50\" style=\"white-space: nowrap;\" (click)=\"type === 'products' ? updateproduct() : updateStore()\"><span\r\n class=\"submit\">Submit</span></button>\r\n </div>\r\n </div>\r\n \r\n \r\n <!--end::Actions-->\r\n </form>\r\n <!--end::Form-->\r\n \r\n </div>\r\n</div>", styles: [".heading{color:var(--Gray-900, #101828);font-size:18px;font-weight:600;line-height:28px}.contenttext{color:var(--Gray-500, #667085);font-family:Inter;font-size:14px;font-style:normal;font-weight:400;line-height:20px}.radio-custom{width:20px;height:20px;background-color:#eaf8ff}.radio-custom,.radio-custom-label{display:inline-block;vertical-align:middle;margin:8px 0;cursor:pointer}.radio-custom-label{position:relative}.radio-custom:checked+.radio-custom-label:before{background:#00a3ff;box-shadow:inset 0 0 0 4.5px #eaf8ff;width:16px;height:16px}.producttext{color:var(--Gray-700, #344054);font-size:14px;font-weight:500;line-height:20px}.confirmationborder{border-radius:8px;border:1px solid var(--Gray-200, #EAECF0);background:var(--White, #FFF);padding:16px;flex-direction:column;align-items:flex-start;gap:18px;align-self:stretch}\n"] }]
102
+ args: [{ selector: 'lib-product-confirmation', template: "<div class=\"modal-content\">\r\n <div class=\"p-6\">\r\n <div><img src=\"./assets/tango/custompopup-Icons/settings-icon.svg\" alt=\"\"></div>\r\n <div class=\"heading mt-4 ms-1\">Confirmation</div>\r\n <div class=\"contenttext mt-4 ms-1\">\r\n Please update the status of below product\r\n </div>\r\n </div>\r\n <div class=\"modal-body\">\r\n <!--begin::Form-->\r\n <form id=\"kt_modal_new_card_form\" class=\"form fv-plugins-bootstrap5 fv-plugins-framework\" action=\"#\">\r\n \r\n <div class=\"fv-row fv-plugins-icon-container \">\r\n <div class=\"confirmationborder mb-3\" [ngClass]=\"i !== 0 ? 'mt-4' : ''\" *ngFor=\"let product of products;let i=index;\">\r\n <div class=\"d-flex justify-content-between\">\r\n <label for=\"TangoZone\" class=\" producttext mb-2\">{{convertUpper(product.name)}}</label>\r\n <span class=\"badge badge-light-primary ms-2\" *ngIf=\"product.new\">Subscribe\r\n <img class=\"ms-2\" src=\"./assets/tango/custompopup-Icons/primary-clock-icon.svg\" alt=\"\">\r\n </span>\r\n <span class=\"badge badge-light-warning ms-2\" *ngIf=\"!product.new\">Unsubscribe\r\n <img class=\"ms-2\" src=\"./assets/tango/custompopup-Icons/warning-clock-icon.svg\" alt=\"\">\r\n </span>\r\n </div>\r\n <div class=\"form-group pt-1\" *ngIf=\"product.new\">\r\n <div class=\"form-check form-check-inline ps-0\" >\r\n <input class=\" cursor-pointer radio-custom\" type=\"radio\" name=\"ontrailRadioOptions_{{i}}\"\r\n id=\"inlineRadio1\" value=\"trial\" (click)=\"updateType(i,'trial')\" checked>\r\n <label class=\"form-check-label radio-custom-label mx-3 producttext cursor-pointer\"\r\n for=\"inlineRadio1\">Start with trial</label>\r\n </div><br>\r\n <div class=\"form-check form-check-inline ps-0\" >\r\n <input class=\" cursor-pointer radio-custom\" type=\"radio\" name=\"ontrailRadioOptions_{{i}}\"\r\n id=\"inlineRadio1\" value=\"subscription\" (click)=\"updateType(i,'subscription')\">\r\n <label class=\"form-check-label producttext radio-custom-label mx-3 cursor-pointer\"\r\n for=\"inlineRadio1\">Add to Subscription</label>\r\n </div>\r\n \r\n </div>\r\n <div class=\"form-group pt-1\" *ngIf=\"!product.new\">\r\n <div class=\"form-check form-check-inline ps-0\" >\r\n <input class=\" cursor-pointer radio-custom\" type=\"radio\" name=\"TrailExpiredRadioOptions_{{i}}\" id=\"inlineRadio1\"\r\n value=\"unsubscribe\" (click)=\"updateType(i,'unsubscribe')\" checked>\r\n <label class=\"form-check-label radio-custom-label mx-3 producttext cursor-pointer\"\r\n for=\"inlineRadio1\">Unsubscribe</label>\r\n </div><br>\r\n <div class=\"form-check form-check-inline ps-0\" >\r\n <input class=\" cursor-pointer radio-custom\" type=\"radio\" name=\"TrailExpiredRadioOptions_{{i}}\" id=\"inlineRadio1\"\r\n value=\"cancel\" (click)=\"updateType(i,'cancel')\">\r\n <label class=\"form-check-label producttext radio-custom-label mx-3 cursor-pointer\"\r\n for=\"inlineRadio1\">Cancel</label>\r\n </div>\r\n \r\n </div>\r\n </div>\r\n\r\n <div class=\"d-flex mt-9 my-2\">\r\n <button type=\"submit\" class=\"btn-outline btn cancel me-4 w-50\" (click)=\"activeModal.close()\">Cancel</button>\r\n <button type=\"button\" tabindex=\"0\"\r\n class=\"btn btn-primary px-4 ng-star-inserted w-50\" style=\"white-space: nowrap;\" (click)=\"type === 'products' ? updateproduct() : updateStore()\"><span\r\n class=\"submit\">Submit</span></button>\r\n </div>\r\n </div>\r\n \r\n \r\n <!--end::Actions-->\r\n </form>\r\n <!--end::Form-->\r\n \r\n </div>\r\n</div>", styles: [".heading{color:var(--Gray-900, #101828);font-size:18px;font-weight:600;line-height:28px}.contenttext{color:var(--Gray-500, #667085);font-family:Inter;font-size:14px;font-style:normal;font-weight:400;line-height:20px}.radio-custom{width:20px;height:20px;background-color:#eaf8ff}.radio-custom,.radio-custom-label{display:inline-block;vertical-align:middle;margin:8px 0;cursor:pointer}.radio-custom-label{position:relative}.radio-custom:checked+.radio-custom-label:before{background:#00a3ff;box-shadow:inset 0 0 0 4.5px #eaf8ff;width:16px;height:16px}.producttext{color:var(--Gray-700, #344054);font-size:14px;font-weight:500;line-height:20px}.confirmationborder{border-radius:8px;border:1px solid var(--Gray-200, #EAECF0);background:var(--White, #FFF);padding:16px;flex-direction:column;align-items:flex-start;gap:18px;align-self:stretch}\n"] }]
103
103
  }], ctorParameters: () => [{ type: i1.NgbModal }, { type: i1.NgbActiveModal }, { type: i2.ToastService }, { type: i3.PaymentSubscriptionService }, { type: i0.ChangeDetectorRef }], propDecorators: { productList: [{
104
104
  type: Input
105
105
  }], updatedProduct: [{
@@ -113,4 +113,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImpor
113
113
  }], clientProduct: [{
114
114
  type: Input
115
115
  }] } });
116
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1jb25maXJtYXRpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGFuZ28tbWFuYWdlLXNldHRpbmdzL3NyYy9saWIvY29tcG9uZW50cy9wYXltZW50cy1zdWJzY3JpcHRpb24vc3Vic2NyaXB0aW9uLXBvcHVwcy9wcm9kdWN0LWNvbmZpcm1hdGlvbi9wcm9kdWN0LWNvbmZpcm1hdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1tYW5hZ2Utc2V0dGluZ3Mvc3JjL2xpYi9jb21wb25lbnRzL3BheW1lbnRzLXN1YnNjcmlwdGlvbi9zdWJzY3JpcHRpb24tcG9wdXBzL3Byb2R1Y3QtY29uZmlybWF0aW9uL3Byb2R1Y3QtY29uZmlybWF0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUE2QixNQUFNLGVBQWUsQ0FBQzs7Ozs7OztBQVU1RSxNQUFNLE9BQU8sNEJBQTRCO0lBVW5CO0lBQStCO0lBQXFDO0lBQTZCO0lBQWdFO0lBVDVLLFdBQVcsQ0FBSztJQUNoQixjQUFjLENBQUs7SUFDbkIsSUFBSSxDQUFLO0lBQ1QsTUFBTSxDQUFLO0lBQ1gsUUFBUSxDQUFLO0lBQ2IsYUFBYSxDQUFLO0lBQzNCLFFBQVEsR0FBTyxFQUFFLENBQUM7SUFDbEIscUJBQXFCO0lBRXJCLFlBQW9CLFlBQXNCLEVBQVMsV0FBMkIsRUFBVSxLQUFtQixFQUFVLDBCQUFzRCxFQUFVLEVBQXFCO1FBQXRMLGlCQUFZLEdBQVosWUFBWSxDQUFVO1FBQVMsZ0JBQVcsR0FBWCxXQUFXLENBQWdCO1FBQVUsVUFBSyxHQUFMLEtBQUssQ0FBYztRQUFVLCtCQUEwQixHQUExQiwwQkFBMEIsQ0FBNEI7UUFBVSxPQUFFLEdBQUYsRUFBRSxDQUFtQjtJQUMx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QUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQsIENoYW5nZURldGVjdG9yUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE5nYkFjdGl2ZU1vZGFsLCBOZ2JNb2RhbCB9IGZyb20gJ0BuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwJztcclxuaW1wb3J0IHsgVG9hc3RTZXJ2aWNlIH0gZnJvbSAndGFuZ28tYXBwLXVpLXNoYXJlZCc7XHJcbmltcG9ydCB7IFBheW1lbnRTdWJzY3JpcHRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmljZXMvcGF5bWVudC1zdWJzY3JpcHRpb24uc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1wcm9kdWN0LWNvbmZpcm1hdGlvbicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3Byb2R1Y3QtY29uZmlybWF0aW9uLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vcHJvZHVjdC1jb25maXJtYXRpb24uY29tcG9uZW50LnNjc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBQcm9kdWN0Q29uZmlybWF0aW9uQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBASW5wdXQoKSBwcm9kdWN0TGlzdDphbnk7XHJcbiAgQElucHV0KCkgdXBkYXRlZFByb2R1Y3Q6YW55O1xyXG4gIEBJbnB1dCgpIHR5cGU6YW55O1xyXG4gIEBJbnB1dCgpIHN0b3Jlczphbnk7XHJcbiAgQElucHV0KCkgY2xpZW50SWQ6YW55O1xyXG4gIEBJbnB1dCgpIGNsaWVudFByb2R1Y3Q6YW55O1xyXG4gIHByb2R1Y3RzOmFueSA9IFtdO1xyXG4gIC8vIGNsaWVudFByb2R1Y3Q6YW55O1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIG1vZGFsU2VydmljZTogTmdiTW9kYWwsIHB1YmxpYyBhY3RpdmVNb2RhbDogTmdiQWN0aXZlTW9kYWwsIHByaXZhdGUgdG9hc3Q6IFRvYXN0U2VydmljZSwgcHJpdmF0ZSBQYXltZW50U3Vic2NyaXB0aW9uU2VydmljZTogUGF5bWVudFN1YnNjcmlwdGlvblNlcnZpY2UsIHByaXZhdGUgY2Q6IENoYW5nZURldGVjdG9yUmVmKXtcclxuICB9XHJcbiAgbmdPbkluaXQoKTp2b2lkIHtcclxuICAgIC8vIGxldCBkYXRhID0gdGhpcy5jbGllbnRJZDtcclxuICAgIC8vIHRoaXMuUGF5bWVudFN1YnNjcmlwdGlvblNlcnZpY2UuZ2V0UHJvZHVjdExpc3QoZGF0YSkuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAvLyBpZiAocmVzICYmIHJlcy5jb2RlID09IDIwMCkge1xyXG4gICAgICAgIC8vIHRoaXMuY2xpZW50UHJvZHVjdCA9IHJlcy5kYXRhO1xyXG4gICAgICAgIGxldCBjbGllbnRQcm9kdWN0TGlzdCA9IHRoaXMuY2xpZW50UHJvZHVjdC5tYXAoKGl0ZW06YW55KSA9PiBpdGVtLnByb2R1Y3QpO1xyXG4gICAgICAgIGxldCB1bnN1YlNjcmliZWRQcm9kdWN0ID0gdGhpcy5wcm9kdWN0TGlzdC5maWx0ZXIoKGl0ZW06IGFueSkgPT4gIXRoaXMudXBkYXRlZFByb2R1Y3QuaW5jbHVkZXMoaXRlbSkpO1xyXG4gICAgICAgIGxldCBuZXdQcm9kdWN0ID0gdGhpcy51cGRhdGVkUHJvZHVjdC5maWx0ZXIoKGl0ZW06IGFueSkgPT4gIXRoaXMucHJvZHVjdExpc3QuaW5jbHVkZXMoaXRlbSkpO1xyXG4gICAgICAgIFxyXG4gICAgICAgIGlmICh0aGlzLnN0b3Jlcy5sZW5ndGggPiAxICkge1xyXG4gICAgICAgICAgbmV3UHJvZHVjdCA9IHRoaXMudXBkYXRlZFByb2R1Y3QuZmlsdGVyKChpdGVtOiBhbnkpID0+ICF1bnN1YlNjcmliZWRQcm9kdWN0LmluY2x1ZGVzKGl0ZW0pICYmICFjbGllbnRQcm9kdWN0TGlzdC5pbmNsdWRlcyhpdGVtKSlcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKG5ld1Byb2R1Y3QubGVuZ3RoKSB7XHJcbiAgICAgICAgICBuZXdQcm9kdWN0ID0gbmV3UHJvZHVjdC5qb2luKCcsJyk7XHJcbiAgICAgICAgICB0aGlzLnByb2R1Y3RzLnB1c2goe1xyXG4gICAgICAgICAgICBuYW1lOiBuZXdQcm9kdWN0LFxyXG4gICAgICAgICAgICBuZXc6IHRydWUsXHJcbiAgICAgICAgICAgIHR5cGU6ICd0cmlhbCdcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICh1bnN1YlNjcmliZWRQcm9kdWN0Lmxlbmd0aCkge1xyXG4gICAgICAgICAgdW5zdWJTY3JpYmVkUHJvZHVjdCA9IHVuc3ViU2NyaWJlZFByb2R1Y3Quam9pbignLCcpO1xyXG4gICAgICAgICAgdGhpcy5wcm9kdWN0cy5wdXNoKHtcclxuICAgICAgICAgICAgbmFtZTogdW5zdWJTY3JpYmVkUHJvZHVjdCxcclxuICAgICAgICAgICAgbmV3OiBmYWxzZSxcclxuICAgICAgICAgICAgdHlwZTogJ3Vuc3Vic2NyaWJlJ1xyXG4gICAgICAgICAgfSlcclxuICAgICAgICB9XHJcbiAgICAgICAgXHJcbiAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgIC8vIH1cclxuICAgIC8vIH0pXHJcbiAgfVxyXG4gIHVwZGF0ZXByb2R1Y3QoKSB7XHJcbiAgICBsZXQgcGFyYW1zID0ge1xyXG4gICAgICBjbGllbnRJZDp0aGlzLmNsaWVudElkLFxyXG4gICAgICBwcm9kdWN0OnRoaXMucHJvZHVjdHNcclxuICAgIH1cclxuICAgIHRoaXMuUGF5bWVudFN1YnNjcmlwdGlvblNlcnZpY2UudXBkYXRlUHJvZHVjdChwYXJhbXMpLnN1YnNjcmliZSgocmVzOmFueSkgPT57XHJcbiAgICAgIGlmKHJlcyAmJiByZXMuY29kZSA9PSAyMDApIHtcclxuICAgICAgICB0aGlzLmFjdGl2ZU1vZGFsLmNsb3NlKCdwcm9kdWN0Jyk7XHJcbiAgICAgIHRoaXMudG9hc3QuZ2V0U3VjY2Vzc1RvYXN0KCdQcm9kdWN0IFVwZGF0ZWQgU3VjY2Vzc2Z1bGx5JylcclxuICAgICAgICBcclxuICAgICAgfVxyXG4gICAgfSlcclxuXHJcbiAgfVxyXG5cclxuICB1cGRhdGVUeXBlKGluZGV4OmFueSx0eXBlOmFueSkge1xyXG4gICAgdGhpcy5wcm9kdWN0c1tpbmRleF0udHlwZSA9IHR5cGU7XHJcbiAgfVxyXG5cclxuICB1cGRhdGVTdG9yZSgpIHtcclxuICAgIGxldCBwYXJhbXMgPSB7XHJcbiAgICAgIGNsaWVudElkOiB0aGlzLmNsaWVudElkLFxyXG4gICAgICBwcm9kdWN0OiB0aGlzLnByb2R1Y3RzLFxyXG4gICAgICBzdG9yZTogdGhpcy5zdG9yZXNcclxuICAgIH1cclxuICAgIHRoaXMuUGF5bWVudFN1YnNjcmlwdGlvblNlcnZpY2UudXBkYXRlU3RvcmUocGFyYW1zKS5zdWJzY3JpYmUoKHJlczogYW55KSA9PiB7XHJcbiAgICAgIGlmIChyZXMgJiYgcmVzLmNvZGUgPT0gMjAwKSB7XHJcbiAgICAgICAgdGhpcy5hY3RpdmVNb2RhbC5jbG9zZSgnc3RvcmUnKTtcclxuICAgICAgdGhpcy50b2FzdC5nZXRTdWNjZXNzVG9hc3QoJ1Byb2R1Y3QgVXBkYXRlZCBTdWNjZXNzZnVsbHknKVxyXG5cclxuICAgICAgfVxyXG4gICAgfSlcclxuICAgIFxyXG4gIH1cclxuICBjb252ZXJ0VXBwZXIoZGF0YTphbnkpIHtcclxuICAgIGxldCBwcm9kdWN0cyA9IGRhdGEuc3BsaXQoJywnKTtcclxuICAgIHByb2R1Y3RzLmZvckVhY2goKGl0ZW06YW55LGluZGV4Om51bWJlcikgPT4ge1xyXG4gICAgICBsZXQgW2ZpcnN0V29yZCwgc2Vjb25kV29yZF0gPSBpdGVtLnJlcGxhY2UoLyhbYS16XSkoW0EtWl0pL2csICckMSAkMicpLnNwbGl0KCcgJyk7XHJcbiAgICAgIGZpcnN0V29yZCA9IGZpcnN0V29yZC5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIGZpcnN0V29yZC5zbGljZSgxKTtcclxuICAgICAgcHJvZHVjdHNbaW5kZXhdID0gZmlyc3RXb3JkICsgJyAnICsgc2Vjb25kV29yZDtcclxuICAgIH0pXHJcbiAgICByZXR1cm4gcHJvZHVjdHMuam9pbignLCcpO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwibW9kYWwtY29udGVudFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cInAtNlwiPlxyXG4gICAgICAgIDxkaXY+PGltZyBzcmM9XCIuL2Fzc2V0cy90YW5nby9jdXN0b21wb3B1cC1JY29ucy9zZXR0aW5ncy1pY29uLnN2Z1wiIGFsdD1cIlwiPjwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJoZWFkaW5nIG10LTQgbXMtMVwiPkNvbmZpcm1hdGlvbjwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb250ZW50dGV4dCBtdC00IG1zLTFcIj5cclxuICAgICAgICAgICAgUGxlYXNlIHVwZGF0ZSB0aGUgc3RhdHVzIG9mIGJlbG93IHByb2R1Y3RcclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cIm1vZGFsLWJvZHlcIj5cclxuICAgICAgICAgICAgPCEtLWJlZ2luOjpGb3JtLS0+XHJcbiAgICAgICAgICAgIDxmb3JtIGlkPVwia3RfbW9kYWxfbmV3X2NhcmRfZm9ybVwiIGNsYXNzPVwiZm9ybSBmdi1wbHVnaW5zLWJvb3RzdHJhcDUgZnYtcGx1Z2lucy1mcmFtZXdvcmtcIiBhY3Rpb249XCIjXCI+XHJcbiAgICBcclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmdi1yb3cgZnYtcGx1Z2lucy1pY29uLWNvbnRhaW5lciBcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29uZmlybWF0aW9uYm9yZGVyIG1iLTNcIiBbbmdDbGFzc109XCJpICE9PSAwID8gJ210LTQnIDogJydcIiAqbmdGb3I9XCJsZXQgcHJvZHVjdCBvZiBwcm9kdWN0cztsZXQgaT1pbmRleDtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cIlRhbmdvWm9uZVwiIGNsYXNzPVwiIHByb2R1Y3R0ZXh0IG1iLTJcIj57e2NvbnZlcnRVcHBlcihwcm9kdWN0Lm5hbWUpfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJiYWRnZSBiYWRnZS1saWdodC1wcmltYXJ5IG1zLTJcIiAqbmdJZj1cInByb2R1Y3QubmV3XCI+U3Vic2NyaWJlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBjbGFzcz1cIm1zLTJcIiBzcmM9XCIuL2Fzc2V0cy90YW5nby9jdXN0b21wb3B1cC1JY29ucy9wcmltYXJ5LWNsb2NrLWljb24uc3ZnXCIgYWx0PVwiXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImJhZGdlIGJhZGdlLWxpZ2h0LXdhcm5pbmcgbXMtMlwiICpuZ0lmPVwiIXByb2R1Y3QubmV3XCI+VW5zdWJzY3JpYmVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwibXMtMlwiIHNyYz1cIi4vYXNzZXRzL3RhbmdvL2N1c3RvbXBvcHVwLUljb25zL3dhcm5pbmctY2xvY2staWNvbi5zdmdcIiBhbHQ9XCJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwIHB0LTFcIiAqbmdJZj1cInByb2R1Y3QubmV3XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVjayBmb3JtLWNoZWNrLWlubGluZSBwcy0wXCIgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cIiBjdXJzb3ItcG9pbnRlciByYWRpby1jdXN0b21cIiB0eXBlPVwicmFkaW9cIiBuYW1lPVwib250cmFpbFJhZGlvT3B0aW9uc197e2l9fVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiaW5saW5lUmFkaW8xXCIgdmFsdWU9XCJ0cmlhbFwiIChjbGljayk9XCJ1cGRhdGVUeXBlKGksJ3RyaWFsJylcIiBjaGVja2VkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWwgcmFkaW8tY3VzdG9tLWxhYmVsIG14LTMgcHJvZHVjdHRleHQgY3Vyc29yLXBvaW50ZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3I9XCJpbmxpbmVSYWRpbzFcIj5TdGFydCB3aXRoIHRyYWlsPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2Pjxicj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrIGZvcm0tY2hlY2staW5saW5lIHBzLTBcIiA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiIGN1cnNvci1wb2ludGVyIHJhZGlvLWN1c3RvbVwiIHR5cGU9XCJyYWRpb1wiIG5hbWU9XCJvbnRyYWlsUmFkaW9PcHRpb25zX3t7aX19XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJpbmxpbmVSYWRpbzFcIiB2YWx1ZT1cInN1YnNjcmlwdGlvblwiIChjbGljayk9XCJ1cGRhdGVUeXBlKGksJ3N1YnNjcmlwdGlvbicpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbCBwcm9kdWN0dGV4dCByYWRpby1jdXN0b20tbGFiZWwgbXgtMyBjdXJzb3ItcG9pbnRlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcj1cImlubGluZVJhZGlvMVwiPkFkZCB0byBTdWJzY3JpcHRpb248L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwIHB0LTFcIiAqbmdJZj1cIiFwcm9kdWN0Lm5ld1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2sgZm9ybS1jaGVjay1pbmxpbmUgcHMtMFwiID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCIgY3Vyc29yLXBvaW50ZXIgcmFkaW8tY3VzdG9tXCIgdHlwZT1cInJhZGlvXCIgbmFtZT1cIlRyYWlsRXhwaXJlZFJhZGlvT3B0aW9uc197e2l9fVwiIGlkPVwiaW5saW5lUmFkaW8xXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9XCJ1bnN1YnNjcmliZVwiIChjbGljayk9XCJ1cGRhdGVUeXBlKGksJ3Vuc3Vic2NyaWJlJylcIiBjaGVja2VkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWwgcmFkaW8tY3VzdG9tLWxhYmVsIG14LTMgcHJvZHVjdHRleHQgY3Vyc29yLXBvaW50ZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3I9XCJpbmxpbmVSYWRpbzFcIj5VbnN1YnNjcmliZTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj48YnI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVjayBmb3JtLWNoZWNrLWlubGluZSBwcy0wXCIgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cIiBjdXJzb3ItcG9pbnRlciByYWRpby1jdXN0b21cIiB0eXBlPVwicmFkaW9cIiBuYW1lPVwiVHJhaWxFeHBpcmVkUmFkaW9PcHRpb25zX3t7aX19XCIgaWQ9XCJpbmxpbmVSYWRpbzFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT1cImNhbmNlbFwiIChjbGljayk9XCJ1cGRhdGVUeXBlKGksJ2NhbmNlbCcpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbCBwcm9kdWN0dGV4dCByYWRpby1jdXN0b20tbGFiZWwgbXgtMyBjdXJzb3ItcG9pbnRlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcj1cImlubGluZVJhZGlvMVwiPkNhbmNlbDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IG10LTkgbXktMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJzdWJtaXRcIiBjbGFzcz1cImJ0bi1vdXRsaW5lIGJ0biBjYW5jZWwgbWUtNCB3LTUwXCIgKGNsaWNrKT1cImFjdGl2ZU1vZGFsLmNsb3NlKClcIj5DYW5jZWw8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgIHRhYmluZGV4PVwiMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBweC00IG5nLXN0YXItaW5zZXJ0ZWQgdy01MFwiIHN0eWxlPVwid2hpdGUtc3BhY2U6IG5vd3JhcDtcIiAoY2xpY2spPVwidHlwZSA9PT0gJ3Byb2R1Y3RzJyA/IHVwZGF0ZXByb2R1Y3QoKSA6IHVwZGF0ZVN0b3JlKClcIj48c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic3VibWl0XCI+U3VibWl0PC9zcGFuPjwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICBcclxuICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgPCEtLWVuZDo6QWN0aW9ucy0tPlxyXG4gICAgICAgICAgICA8L2Zvcm0+XHJcbiAgICAgICAgICAgIDwhLS1lbmQ6OkZvcm0tLT5cclxuICAgICAgXHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+Il19
116
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1jb25maXJtYXRpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGFuZ28tbWFuYWdlLXNldHRpbmdzL3NyYy9saWIvY29tcG9uZW50cy9wYXltZW50cy1zdWJzY3JpcHRpb24vc3Vic2NyaXB0aW9uLXBvcHVwcy9wcm9kdWN0LWNvbmZpcm1hdGlvbi9wcm9kdWN0LWNvbmZpcm1hdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1tYW5hZ2Utc2V0dGluZ3Mvc3JjL2xpYi9jb21wb25lbnRzL3BheW1lbnRzLXN1YnNjcmlwdGlvbi9zdWJzY3JpcHRpb24tcG9wdXBzL3Byb2R1Y3QtY29uZmlybWF0aW9uL3Byb2R1Y3QtY29uZmlybWF0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUE2QixNQUFNLGVBQWUsQ0FBQzs7Ozs7OztBQVU1RSxNQUFNLE9BQU8sNEJBQTRCO0lBVW5CO0lBQStCO0lBQXFDO0lBQTZCO0lBQWdFO0lBVDVLLFdBQVcsQ0FBSztJQUNoQixjQUFjLENBQUs7SUFDbkIsSUFBSSxDQUFLO0lBQ1QsTUFBTSxDQUFLO0lBQ1gsUUFBUSxDQUFLO0lBQ2IsYUFBYSxDQUFLO0lBQzNCLFFBQVEsR0FBTyxFQUFFLENBQUM7SUFDbEIscUJBQXFCO0lBRXJCLFlBQW9CLFlBQXNCLEVBQVMsV0FBMkIsRUFBVSxLQUFtQixFQUFVLDBCQUFzRCxFQUFVLEVBQXFCO1FBQXRMLGlCQUFZLEdBQVosWUFBWSxDQUFVO1FBQVMsZ0JBQVcsR0FBWCxXQUFXLENBQWdCO1FBQVUsVUFBSyxHQUFMLEtBQUssQ0FBYztRQUFVLCtCQUEwQixHQUExQiwwQkFBMEIsQ0FBNEI7UUFBVSxPQUFFLEdBQUYsRUFBRSxDQUFtQjtJQUMx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QUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQsIENoYW5nZURldGVjdG9yUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE5nYkFjdGl2ZU1vZGFsLCBOZ2JNb2RhbCB9IGZyb20gJ0BuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwJztcclxuaW1wb3J0IHsgVG9hc3RTZXJ2aWNlIH0gZnJvbSAndGFuZ28tYXBwLXVpLXNoYXJlZCc7XHJcbmltcG9ydCB7IFBheW1lbnRTdWJzY3JpcHRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmljZXMvcGF5bWVudC1zdWJzY3JpcHRpb24uc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1wcm9kdWN0LWNvbmZpcm1hdGlvbicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3Byb2R1Y3QtY29uZmlybWF0aW9uLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vcHJvZHVjdC1jb25maXJtYXRpb24uY29tcG9uZW50LnNjc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBQcm9kdWN0Q29uZmlybWF0aW9uQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBASW5wdXQoKSBwcm9kdWN0TGlzdDphbnk7XHJcbiAgQElucHV0KCkgdXBkYXRlZFByb2R1Y3Q6YW55O1xyXG4gIEBJbnB1dCgpIHR5cGU6YW55O1xyXG4gIEBJbnB1dCgpIHN0b3Jlczphbnk7XHJcbiAgQElucHV0KCkgY2xpZW50SWQ6YW55O1xyXG4gIEBJbnB1dCgpIGNsaWVudFByb2R1Y3Q6YW55O1xyXG4gIHByb2R1Y3RzOmFueSA9IFtdO1xyXG4gIC8vIGNsaWVudFByb2R1Y3Q6YW55O1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIG1vZGFsU2VydmljZTogTmdiTW9kYWwsIHB1YmxpYyBhY3RpdmVNb2RhbDogTmdiQWN0aXZlTW9kYWwsIHByaXZhdGUgdG9hc3Q6IFRvYXN0U2VydmljZSwgcHJpdmF0ZSBQYXltZW50U3Vic2NyaXB0aW9uU2VydmljZTogUGF5bWVudFN1YnNjcmlwdGlvblNlcnZpY2UsIHByaXZhdGUgY2Q6IENoYW5nZURldGVjdG9yUmVmKXtcclxuICB9XHJcbiAgbmdPbkluaXQoKTp2b2lkIHtcclxuICAgIC8vIGxldCBkYXRhID0gdGhpcy5jbGllbnRJZDtcclxuICAgIC8vIHRoaXMuUGF5bWVudFN1YnNjcmlwdGlvblNlcnZpY2UuZ2V0UHJvZHVjdExpc3QoZGF0YSkuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAvLyBpZiAocmVzICYmIHJlcy5jb2RlID09IDIwMCkge1xyXG4gICAgICAgIC8vIHRoaXMuY2xpZW50UHJvZHVjdCA9IHJlcy5kYXRhO1xyXG4gICAgICAgIGxldCBjbGllbnRQcm9kdWN0TGlzdCA9IHRoaXMuY2xpZW50UHJvZHVjdC5tYXAoKGl0ZW06YW55KSA9PiBpdGVtLnByb2R1Y3QpO1xyXG4gICAgICAgIGxldCB1bnN1YlNjcmliZWRQcm9kdWN0ID0gdGhpcy5wcm9kdWN0TGlzdC5maWx0ZXIoKGl0ZW06IGFueSkgPT4gIXRoaXMudXBkYXRlZFByb2R1Y3QuaW5jbHVkZXMoaXRlbSkpO1xyXG4gICAgICAgIGxldCBuZXdQcm9kdWN0ID0gdGhpcy51cGRhdGVkUHJvZHVjdC5maWx0ZXIoKGl0ZW06IGFueSkgPT4gIXRoaXMucHJvZHVjdExpc3QuaW5jbHVkZXMoaXRlbSkpO1xyXG4gICAgICAgIFxyXG4gICAgICAgIGlmICh0aGlzLnN0b3Jlcy5sZW5ndGggPiAxICkge1xyXG4gICAgICAgICAgbmV3UHJvZHVjdCA9IHRoaXMudXBkYXRlZFByb2R1Y3QuZmlsdGVyKChpdGVtOiBhbnkpID0+ICF1bnN1YlNjcmliZWRQcm9kdWN0LmluY2x1ZGVzKGl0ZW0pICYmICFjbGllbnRQcm9kdWN0TGlzdC5pbmNsdWRlcyhpdGVtKSlcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKG5ld1Byb2R1Y3QubGVuZ3RoKSB7XHJcbiAgICAgICAgICBuZXdQcm9kdWN0ID0gbmV3UHJvZHVjdC5qb2luKCcsJyk7XHJcbiAgICAgICAgICB0aGlzLnByb2R1Y3RzLnB1c2goe1xyXG4gICAgICAgICAgICBuYW1lOiBuZXdQcm9kdWN0LFxyXG4gICAgICAgICAgICBuZXc6IHRydWUsXHJcbiAgICAgICAgICAgIHR5cGU6ICd0cmlhbCdcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICh1bnN1YlNjcmliZWRQcm9kdWN0Lmxlbmd0aCkge1xyXG4gICAgICAgICAgdW5zdWJTY3JpYmVkUHJvZHVjdCA9IHVuc3ViU2NyaWJlZFByb2R1Y3Quam9pbignLCcpO1xyXG4gICAgICAgICAgdGhpcy5wcm9kdWN0cy5wdXNoKHtcclxuICAgICAgICAgICAgbmFtZTogdW5zdWJTY3JpYmVkUHJvZHVjdCxcclxuICAgICAgICAgICAgbmV3OiBmYWxzZSxcclxuICAgICAgICAgICAgdHlwZTogJ3Vuc3Vic2NyaWJlJ1xyXG4gICAgICAgICAgfSlcclxuICAgICAgICB9XHJcbiAgICAgICAgXHJcbiAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgIC8vIH1cclxuICAgIC8vIH0pXHJcbiAgfVxyXG4gIHVwZGF0ZXByb2R1Y3QoKSB7XHJcbiAgICBsZXQgcGFyYW1zID0ge1xyXG4gICAgICBjbGllbnRJZDp0aGlzLmNsaWVudElkLFxyXG4gICAgICBwcm9kdWN0OnRoaXMucHJvZHVjdHNcclxuICAgIH1cclxuICAgIHRoaXMuUGF5bWVudFN1YnNjcmlwdGlvblNlcnZpY2UudXBkYXRlUHJvZHVjdChwYXJhbXMpLnN1YnNjcmliZSgocmVzOmFueSkgPT57XHJcbiAgICAgIGlmKHJlcyAmJiByZXMuY29kZSA9PSAyMDApIHtcclxuICAgICAgICB0aGlzLmFjdGl2ZU1vZGFsLmNsb3NlKCdwcm9kdWN0Jyk7XHJcbiAgICAgIHRoaXMudG9hc3QuZ2V0U3VjY2Vzc1RvYXN0KCdQcm9kdWN0IFVwZGF0ZWQgU3VjY2Vzc2Z1bGx5JylcclxuICAgICAgICBcclxuICAgICAgfVxyXG4gICAgfSlcclxuXHJcbiAgfVxyXG5cclxuICB1cGRhdGVUeXBlKGluZGV4OmFueSx0eXBlOmFueSkge1xyXG4gICAgdGhpcy5wcm9kdWN0c1tpbmRleF0udHlwZSA9IHR5cGU7XHJcbiAgfVxyXG5cclxuICB1cGRhdGVTdG9yZSgpIHtcclxuICAgIGxldCBwYXJhbXMgPSB7XHJcbiAgICAgIGNsaWVudElkOiB0aGlzLmNsaWVudElkLFxyXG4gICAgICBwcm9kdWN0OiB0aGlzLnByb2R1Y3RzLFxyXG4gICAgICBzdG9yZTogdGhpcy5zdG9yZXNcclxuICAgIH1cclxuICAgIHRoaXMuUGF5bWVudFN1YnNjcmlwdGlvblNlcnZpY2UudXBkYXRlU3RvcmUocGFyYW1zKS5zdWJzY3JpYmUoKHJlczogYW55KSA9PiB7XHJcbiAgICAgIGlmIChyZXMgJiYgcmVzLmNvZGUgPT0gMjAwKSB7XHJcbiAgICAgICAgdGhpcy5hY3RpdmVNb2RhbC5jbG9zZSgnc3RvcmUnKTtcclxuICAgICAgdGhpcy50b2FzdC5nZXRTdWNjZXNzVG9hc3QoJ1Byb2R1Y3QgVXBkYXRlZCBTdWNjZXNzZnVsbHknKVxyXG5cclxuICAgICAgfVxyXG4gICAgfSlcclxuICAgIFxyXG4gIH1cclxuICBjb252ZXJ0VXBwZXIoZGF0YTphbnkpIHtcclxuICAgIGxldCBwcm9kdWN0cyA9IGRhdGEuc3BsaXQoJywnKTtcclxuICAgIHByb2R1Y3RzLmZvckVhY2goKGl0ZW06YW55LGluZGV4Om51bWJlcikgPT4ge1xyXG4gICAgICBsZXQgW2ZpcnN0V29yZCwgc2Vjb25kV29yZF0gPSBpdGVtLnJlcGxhY2UoLyhbYS16XSkoW0EtWl0pL2csICckMSAkMicpLnNwbGl0KCcgJyk7XHJcbiAgICAgIGZpcnN0V29yZCA9IGZpcnN0V29yZC5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIGZpcnN0V29yZC5zbGljZSgxKTtcclxuICAgICAgcHJvZHVjdHNbaW5kZXhdID0gZmlyc3RXb3JkICsgJyAnICsgc2Vjb25kV29yZDtcclxuICAgIH0pXHJcbiAgICByZXR1cm4gcHJvZHVjdHMuam9pbignLCcpO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwibW9kYWwtY29udGVudFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cInAtNlwiPlxyXG4gICAgICAgIDxkaXY+PGltZyBzcmM9XCIuL2Fzc2V0cy90YW5nby9jdXN0b21wb3B1cC1JY29ucy9zZXR0aW5ncy1pY29uLnN2Z1wiIGFsdD1cIlwiPjwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJoZWFkaW5nIG10LTQgbXMtMVwiPkNvbmZpcm1hdGlvbjwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb250ZW50dGV4dCBtdC00IG1zLTFcIj5cclxuICAgICAgICAgICAgUGxlYXNlIHVwZGF0ZSB0aGUgc3RhdHVzIG9mIGJlbG93IHByb2R1Y3RcclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cIm1vZGFsLWJvZHlcIj5cclxuICAgICAgICAgICAgPCEtLWJlZ2luOjpGb3JtLS0+XHJcbiAgICAgICAgICAgIDxmb3JtIGlkPVwia3RfbW9kYWxfbmV3X2NhcmRfZm9ybVwiIGNsYXNzPVwiZm9ybSBmdi1wbHVnaW5zLWJvb3RzdHJhcDUgZnYtcGx1Z2lucy1mcmFtZXdvcmtcIiBhY3Rpb249XCIjXCI+XHJcbiAgICBcclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmdi1yb3cgZnYtcGx1Z2lucy1pY29uLWNvbnRhaW5lciBcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29uZmlybWF0aW9uYm9yZGVyIG1iLTNcIiBbbmdDbGFzc109XCJpICE9PSAwID8gJ210LTQnIDogJydcIiAqbmdGb3I9XCJsZXQgcHJvZHVjdCBvZiBwcm9kdWN0cztsZXQgaT1pbmRleDtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cIlRhbmdvWm9uZVwiIGNsYXNzPVwiIHByb2R1Y3R0ZXh0IG1iLTJcIj57e2NvbnZlcnRVcHBlcihwcm9kdWN0Lm5hbWUpfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJiYWRnZSBiYWRnZS1saWdodC1wcmltYXJ5IG1zLTJcIiAqbmdJZj1cInByb2R1Y3QubmV3XCI+U3Vic2NyaWJlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBjbGFzcz1cIm1zLTJcIiBzcmM9XCIuL2Fzc2V0cy90YW5nby9jdXN0b21wb3B1cC1JY29ucy9wcmltYXJ5LWNsb2NrLWljb24uc3ZnXCIgYWx0PVwiXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImJhZGdlIGJhZGdlLWxpZ2h0LXdhcm5pbmcgbXMtMlwiICpuZ0lmPVwiIXByb2R1Y3QubmV3XCI+VW5zdWJzY3JpYmVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwibXMtMlwiIHNyYz1cIi4vYXNzZXRzL3RhbmdvL2N1c3RvbXBvcHVwLUljb25zL3dhcm5pbmctY2xvY2staWNvbi5zdmdcIiBhbHQ9XCJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwIHB0LTFcIiAqbmdJZj1cInByb2R1Y3QubmV3XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVjayBmb3JtLWNoZWNrLWlubGluZSBwcy0wXCIgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cIiBjdXJzb3ItcG9pbnRlciByYWRpby1jdXN0b21cIiB0eXBlPVwicmFkaW9cIiBuYW1lPVwib250cmFpbFJhZGlvT3B0aW9uc197e2l9fVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiaW5saW5lUmFkaW8xXCIgdmFsdWU9XCJ0cmlhbFwiIChjbGljayk9XCJ1cGRhdGVUeXBlKGksJ3RyaWFsJylcIiBjaGVja2VkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWwgcmFkaW8tY3VzdG9tLWxhYmVsIG14LTMgcHJvZHVjdHRleHQgY3Vyc29yLXBvaW50ZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3I9XCJpbmxpbmVSYWRpbzFcIj5TdGFydCB3aXRoIHRyaWFsPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2Pjxicj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrIGZvcm0tY2hlY2staW5saW5lIHBzLTBcIiA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiIGN1cnNvci1wb2ludGVyIHJhZGlvLWN1c3RvbVwiIHR5cGU9XCJyYWRpb1wiIG5hbWU9XCJvbnRyYWlsUmFkaW9PcHRpb25zX3t7aX19XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJpbmxpbmVSYWRpbzFcIiB2YWx1ZT1cInN1YnNjcmlwdGlvblwiIChjbGljayk9XCJ1cGRhdGVUeXBlKGksJ3N1YnNjcmlwdGlvbicpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbCBwcm9kdWN0dGV4dCByYWRpby1jdXN0b20tbGFiZWwgbXgtMyBjdXJzb3ItcG9pbnRlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcj1cImlubGluZVJhZGlvMVwiPkFkZCB0byBTdWJzY3JpcHRpb248L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwIHB0LTFcIiAqbmdJZj1cIiFwcm9kdWN0Lm5ld1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2sgZm9ybS1jaGVjay1pbmxpbmUgcHMtMFwiID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCIgY3Vyc29yLXBvaW50ZXIgcmFkaW8tY3VzdG9tXCIgdHlwZT1cInJhZGlvXCIgbmFtZT1cIlRyYWlsRXhwaXJlZFJhZGlvT3B0aW9uc197e2l9fVwiIGlkPVwiaW5saW5lUmFkaW8xXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9XCJ1bnN1YnNjcmliZVwiIChjbGljayk9XCJ1cGRhdGVUeXBlKGksJ3Vuc3Vic2NyaWJlJylcIiBjaGVja2VkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWwgcmFkaW8tY3VzdG9tLWxhYmVsIG14LTMgcHJvZHVjdHRleHQgY3Vyc29yLXBvaW50ZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3I9XCJpbmxpbmVSYWRpbzFcIj5VbnN1YnNjcmliZTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj48YnI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVjayBmb3JtLWNoZWNrLWlubGluZSBwcy0wXCIgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cIiBjdXJzb3ItcG9pbnRlciByYWRpby1jdXN0b21cIiB0eXBlPVwicmFkaW9cIiBuYW1lPVwiVHJhaWxFeHBpcmVkUmFkaW9PcHRpb25zX3t7aX19XCIgaWQ9XCJpbmxpbmVSYWRpbzFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT1cImNhbmNlbFwiIChjbGljayk9XCJ1cGRhdGVUeXBlKGksJ2NhbmNlbCcpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbCBwcm9kdWN0dGV4dCByYWRpby1jdXN0b20tbGFiZWwgbXgtMyBjdXJzb3ItcG9pbnRlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcj1cImlubGluZVJhZGlvMVwiPkNhbmNlbDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IG10LTkgbXktMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJzdWJtaXRcIiBjbGFzcz1cImJ0bi1vdXRsaW5lIGJ0biBjYW5jZWwgbWUtNCB3LTUwXCIgKGNsaWNrKT1cImFjdGl2ZU1vZGFsLmNsb3NlKClcIj5DYW5jZWw8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgIHRhYmluZGV4PVwiMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBweC00IG5nLXN0YXItaW5zZXJ0ZWQgdy01MFwiIHN0eWxlPVwid2hpdGUtc3BhY2U6IG5vd3JhcDtcIiAoY2xpY2spPVwidHlwZSA9PT0gJ3Byb2R1Y3RzJyA/IHVwZGF0ZXByb2R1Y3QoKSA6IHVwZGF0ZVN0b3JlKClcIj48c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic3VibWl0XCI+U3VibWl0PC9zcGFuPjwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICBcclxuICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgPCEtLWVuZDo6QWN0aW9ucy0tPlxyXG4gICAgICAgICAgICA8L2Zvcm0+XHJcbiAgICAgICAgICAgIDwhLS1lbmQ6OkZvcm0tLT5cclxuICAgICAgXHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+Il19
@@ -16,9 +16,9 @@ export class SubscriptionApprovalComponent {
16
16
  products;
17
17
  clientInfo;
18
18
  productList = [];
19
- select = 'continuetrail';
19
+ select = 'continuetrial';
20
20
  trailselect = 'subscribenow';
21
- supportselect = 'daystrail';
21
+ supportselect = 'daystrial';
22
22
  gifVisible = false;
23
23
  destroy$ = new Subject();
24
24
  constructor(modalService, activeModel, toast, PaymentSubscriptionService) {
@@ -115,14 +115,14 @@ export class SubscriptionApprovalComponent {
115
115
  this.productList[index].type = type;
116
116
  }
117
117
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: SubscriptionApprovalComponent, deps: [{ token: i1.NgbModal }, { token: i1.NgbActiveModal }, { token: i2.ToastService }, { token: i3.PaymentSubscriptionService }], target: i0.ɵɵFactoryTarget.Component });
118
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.8", type: SubscriptionApprovalComponent, selector: "lib-subscription-approval", inputs: { products: "products", clientInfo: "clientInfo" }, ngImport: i0, template: "<div class=\"modal-content\">\r\n <div class=\"p-6\">\r\n <div><img src=\"./assets/tango/custompopup-Icons/settings-icon.svg\" alt=\"\"></div>\r\n <div class=\"heading mt-4 ms-1\">Confirmation</div>\r\n <div class=\"contenttext mt-4 ms-1\">\r\n Please update the status of below product\r\n </div>\r\n </div>\r\n <div class=\"modal-body\">\r\n <!--begin::Form-->\r\n <form id=\"kt_modal_new_card_form\" class=\"form fv-plugins-bootstrap5 fv-plugins-framework\" action=\"#\">\r\n \r\n <div class=\"fv-row fv-plugins-icon-container \">\r\n <div class=\"confirmationborder mb-3\" *ngFor=\"let product of productList;let i=index\">\r\n <div class=\"d-flex justify-content-between\">\r\n <label for=\"TangoZone\" class=\" producttext mb-2\">{{product.productName}}</label>\r\n <span class=\"badge badge-light-primary ms-2\" *ngIf=\"product.content === 'trial'\">On Trail\r\n <img class=\"ms-2\" src=\"./assets/tango/custompopup-Icons/primary-clock-icon.svg\" alt=\"\">\r\n </span>\r\n <span class=\"badge badge-light-warning ms-2\" *ngIf=\"product.content === 'trialExpired'\">Trail Expired\r\n <img class=\"ms-2\" src=\"./assets/tango/custompopup-Icons/warning-clock-icon.svg\" alt=\"\">\r\n </span>\r\n </div>\r\n <div class=\"form-group pt-1\" *ngIf=\"product.content === 'trial'\">\r\n <div class=\"form-check form-check-inline ps-0\" (click)=\"updateProduct(i,'trial')\">\r\n <input class=\" cursor-pointer radio-custom\" type=\"radio\" name=\"ontrailRadioOptions_{{i}}\"\r\n id=\"inlineRadio1\" value=\"continuetrail\" checked>\r\n <label class=\"form-check-label radio-custom-label mx-3 producttext cursor-pointer\"\r\n for=\"inlineRadio1\">Continue with Trail</label>\r\n </div><br>\r\n <div class=\"form-check form-check-inline ps-0\" (click)=\"updateProduct(i,'subscription')\">\r\n <input class=\" cursor-pointer radio-custom\" type=\"radio\" name=\"ontrailRadioOptions_{{i}}\"\r\n id=\"inlineRadio1\" value=\"addsubscription\">\r\n <label class=\"form-check-label producttext radio-custom-label mx-3 cursor-pointer\"\r\n for=\"inlineRadio1\">Add to Subscription</label>\r\n </div>\r\n \r\n </div>\r\n <div class=\"form-group pt-1\" *ngIf=\"product.content === 'trialExpired'\">\r\n <div class=\"form-check form-check-inline ps-0\" (click)=\"updateProduct(i,'subscription')\">\r\n <input class=\" cursor-pointer radio-custom\" type=\"radio\" name=\"TrailExpiredRadioOptions_{{i}}\" id=\"inlineRadio1\"\r\n value=\"subscribenow\" checked>\r\n <label class=\"form-check-label radio-custom-label mx-3 producttext cursor-pointer\" for=\"inlineRadio1\">Subscribe Now</label>\r\n </div><br>\r\n <div class=\"form-check form-check-inline ps-0\" (click)=\"updateProduct(i,'cancel')\">\r\n <input class=\" cursor-pointer radio-custom\" type=\"radio\" name=\"TrailExpiredRadioOptions_{{i}}\" id=\"inlineRadio1\"\r\n value=\"dolater\">\r\n <label class=\"form-check-label producttext radio-custom-label mx-3 cursor-pointer\" for=\"inlineRadio1\">I'll do it\r\n later</label>\r\n </div>\r\n \r\n </div>\r\n\r\n <div class=\"form-group pt-1\" *ngIf=\"product.content === 'new'\">\r\n <div class=\"form-check form-check-inline ps-0\" (click)=\"updateProduct(i,'trial')\">\r\n <input class=\" cursor-pointer radio-custom\" type=\"radio\" name=\"supportRadioOptions_{{i}}\" id=\"inlineRadio1\"\r\n value=\"daystrail\" checked>\r\n <label class=\"form-check-label radio-custom-label mx-3 producttext cursor-pointer\" for=\"inlineRadio1\">Start 14\r\n days Trial</label>\r\n </div><br>\r\n <div class=\"form-check form-check-inline ps-0\" (click)=\"updateProduct(i,'subscription')\">\r\n <input class=\" cursor-pointer radio-custom\" type=\"radio\" name=\"supportRadioOptions_{{i}}\" id=\"inlineRadio1\"\r\n value=\"subscribenow\">\r\n <label class=\"form-check-label producttext radio-custom-label mx-3 cursor-pointer\" for=\"inlineRadio1\">Subscribe\r\n Now</label>\r\n </div><br>\r\n <div class=\"form-check form-check-inline ps-0\" (click)=\"updateProduct(i,'cancel')\">\r\n <input class=\" cursor-pointer radio-custom\" type=\"radio\" name=\"supportRadioOptions_{{i}}\" id=\"inlineRadio1\"\r\n value=\"later\">\r\n <label class=\"form-check-label producttext radio-custom-label mx-3 cursor-pointer\" for=\"inlineRadio1\">I'll do it\r\n later</label>\r\n </div>\r\n \r\n </div>\r\n </div>\r\n <div class=\"d-flex mt-9 my-2\">\r\n <button type=\"submit\" class=\"btn-outline btn cancel me-4 w-50\" (click)=\"activeModel.close()\">Cancel</button>\r\n <button type=\"button\" (click)=\"suscribed()\" tabindex=\"0\"\r\n class=\"btn btn-primary px-4 ng-star-inserted w-50\" style=\"white-space: nowrap;\"><span\r\n class=\"submit\">Submit</span></button>\r\n </div>\r\n </div>\r\n \r\n \r\n <!--end::Actions-->\r\n </form>\r\n <!--end::Form-->\r\n \r\n </div>\r\n</div>", styles: [".heading{color:var(--Gray-900, #101828);font-size:18px;font-weight:600;line-height:28px}.contenttext{color:var(--Gray-500, #667085);font-family:Inter;font-size:14px;font-style:normal;font-weight:400;line-height:20px}.radio-custom{width:20px;height:20px;background-color:#eaf8ff}.radio-custom,.radio-custom-label{display:inline-block;vertical-align:middle;margin:8px 0;cursor:pointer}.radio-custom-label{position:relative}.radio-custom:checked+.radio-custom-label:before{background:#00a3ff;box-shadow:inset 0 0 0 4.5px #eaf8ff;width:16px;height:16px}.producttext{color:var(--Gray-700, #344054);font-size:14px;font-weight:500;line-height:20px}.confirmationborder{border-radius:8px;border:1px solid var(--Gray-200, #EAECF0);background:var(--White, #FFF);padding:16px;flex-direction:column;align-items:flex-start;gap:18px;align-self:stretch}\n"], dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i5.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }] });
118
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.8", type: SubscriptionApprovalComponent, selector: "lib-subscription-approval", inputs: { products: "products", clientInfo: "clientInfo" }, ngImport: i0, template: "<div class=\"modal-content\">\r\n <div class=\"p-6\">\r\n <div><img src=\"./assets/tango/custompopup-Icons/settings-icon.svg\" alt=\"\"></div>\r\n <div class=\"heading mt-4 ms-1\">Confirmation</div>\r\n <div class=\"contenttext mt-4 ms-1\">\r\n Please update the status of below product\r\n </div>\r\n </div>\r\n <div class=\"modal-body\">\r\n <!--begin::Form-->\r\n <form id=\"kt_modal_new_card_form\" class=\"form fv-plugins-bootstrap5 fv-plugins-framework\" action=\"#\">\r\n \r\n <div class=\"fv-row fv-plugins-icon-container \">\r\n <div class=\"confirmationborder mb-3\" *ngFor=\"let product of productList;let i=index\">\r\n <div class=\"d-flex justify-content-between\">\r\n <label for=\"TangoZone\" class=\" producttext mb-2\">{{product.productName}}</label>\r\n <span class=\"badge badge-light-primary ms-2\" *ngIf=\"product.content === 'trial'\">On Trial\r\n <img class=\"ms-2\" src=\"./assets/tango/custompopup-Icons/primary-clock-icon.svg\" alt=\"\">\r\n </span>\r\n <span class=\"badge badge-light-warning ms-2\" *ngIf=\"product.content === 'trialExpired'\">Trial Expired\r\n <img class=\"ms-2\" src=\"./assets/tango/custompopup-Icons/warning-clock-icon.svg\" alt=\"\">\r\n </span>\r\n </div>\r\n <div class=\"form-group pt-1\" *ngIf=\"product.content === 'trial'\">\r\n <div class=\"form-check form-check-inline ps-0\" (click)=\"updateProduct(i,'trial')\">\r\n <input class=\" cursor-pointer radio-custom\" type=\"radio\" name=\"ontrailRadioOptions_{{i}}\"\r\n id=\"inlineRadio1\" value=\"continuetrail\" checked>\r\n <label class=\"form-check-label radio-custom-label mx-3 producttext cursor-pointer\"\r\n for=\"inlineRadio1\">Continue with Trial</label>\r\n </div><br>\r\n <div class=\"form-check form-check-inline ps-0\" (click)=\"updateProduct(i,'subscription')\">\r\n <input class=\" cursor-pointer radio-custom\" type=\"radio\" name=\"ontrailRadioOptions_{{i}}\"\r\n id=\"inlineRadio1\" value=\"addsubscription\">\r\n <label class=\"form-check-label producttext radio-custom-label mx-3 cursor-pointer\"\r\n for=\"inlineRadio1\">Add to Subscription</label>\r\n </div>\r\n \r\n </div>\r\n <div class=\"form-group pt-1\" *ngIf=\"product.content === 'trialExpired'\">\r\n <div class=\"form-check form-check-inline ps-0\" (click)=\"updateProduct(i,'subscription')\">\r\n <input class=\" cursor-pointer radio-custom\" type=\"radio\" name=\"TrailExpiredRadioOptions_{{i}}\" id=\"inlineRadio1\"\r\n value=\"subscribenow\" checked>\r\n <label class=\"form-check-label radio-custom-label mx-3 producttext cursor-pointer\" for=\"inlineRadio1\">Subscribe Now</label>\r\n </div><br>\r\n <div class=\"form-check form-check-inline ps-0\" (click)=\"updateProduct(i,'cancel')\">\r\n <input class=\" cursor-pointer radio-custom\" type=\"radio\" name=\"TrailExpiredRadioOptions_{{i}}\" id=\"inlineRadio1\"\r\n value=\"dolater\">\r\n <label class=\"form-check-label producttext radio-custom-label mx-3 cursor-pointer\" for=\"inlineRadio1\">I'll do it\r\n later</label>\r\n </div>\r\n \r\n </div>\r\n\r\n <div class=\"form-group pt-1\" *ngIf=\"product.content === 'new'\">\r\n <div class=\"form-check form-check-inline ps-0\" (click)=\"updateProduct(i,'trial')\">\r\n <input class=\" cursor-pointer radio-custom\" type=\"radio\" name=\"supportRadioOptions_{{i}}\" id=\"inlineRadio1\"\r\n value=\"daystrail\" checked>\r\n <label class=\"form-check-label radio-custom-label mx-3 producttext cursor-pointer\" for=\"inlineRadio1\">Start 14\r\n days Trial</label>\r\n </div><br>\r\n <div class=\"form-check form-check-inline ps-0\" (click)=\"updateProduct(i,'subscription')\">\r\n <input class=\" cursor-pointer radio-custom\" type=\"radio\" name=\"supportRadioOptions_{{i}}\" id=\"inlineRadio1\"\r\n value=\"subscribenow\">\r\n <label class=\"form-check-label producttext radio-custom-label mx-3 cursor-pointer\" for=\"inlineRadio1\">Subscribe\r\n Now</label>\r\n </div><br>\r\n <div class=\"form-check form-check-inline ps-0\" (click)=\"updateProduct(i,'cancel')\">\r\n <input class=\" cursor-pointer radio-custom\" type=\"radio\" name=\"supportRadioOptions_{{i}}\" id=\"inlineRadio1\"\r\n value=\"later\">\r\n <label class=\"form-check-label producttext radio-custom-label mx-3 cursor-pointer\" for=\"inlineRadio1\">I'll do it\r\n later</label>\r\n </div>\r\n \r\n </div>\r\n </div>\r\n <div class=\"d-flex mt-9 my-2\">\r\n <button type=\"submit\" class=\"btn-outline btn cancel me-4 w-50\" (click)=\"activeModel.close()\">Cancel</button>\r\n <button type=\"button\" (click)=\"suscribed()\" tabindex=\"0\"\r\n class=\"btn btn-primary px-4 ng-star-inserted w-50\" style=\"white-space: nowrap;\"><span\r\n class=\"submit\">Submit</span></button>\r\n </div>\r\n </div>\r\n \r\n \r\n <!--end::Actions-->\r\n </form>\r\n <!--end::Form-->\r\n \r\n </div>\r\n</div>", styles: [".heading{color:var(--Gray-900, #101828);font-size:18px;font-weight:600;line-height:28px}.contenttext{color:var(--Gray-500, #667085);font-family:Inter;font-size:14px;font-style:normal;font-weight:400;line-height:20px}.radio-custom{width:20px;height:20px;background-color:#eaf8ff}.radio-custom,.radio-custom-label{display:inline-block;vertical-align:middle;margin:8px 0;cursor:pointer}.radio-custom-label{position:relative}.radio-custom:checked+.radio-custom-label:before{background:#00a3ff;box-shadow:inset 0 0 0 4.5px #eaf8ff;width:16px;height:16px}.producttext{color:var(--Gray-700, #344054);font-size:14px;font-weight:500;line-height:20px}.confirmationborder{border-radius:8px;border:1px solid var(--Gray-200, #EAECF0);background:var(--White, #FFF);padding:16px;flex-direction:column;align-items:flex-start;gap:18px;align-self:stretch}\n"], dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i5.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }] });
119
119
  }
120
120
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: SubscriptionApprovalComponent, decorators: [{
121
121
  type: Component,
122
- args: [{ selector: 'lib-subscription-approval', template: "<div class=\"modal-content\">\r\n <div class=\"p-6\">\r\n <div><img src=\"./assets/tango/custompopup-Icons/settings-icon.svg\" alt=\"\"></div>\r\n <div class=\"heading mt-4 ms-1\">Confirmation</div>\r\n <div class=\"contenttext mt-4 ms-1\">\r\n Please update the status of below product\r\n </div>\r\n </div>\r\n <div class=\"modal-body\">\r\n <!--begin::Form-->\r\n <form id=\"kt_modal_new_card_form\" class=\"form fv-plugins-bootstrap5 fv-plugins-framework\" action=\"#\">\r\n \r\n <div class=\"fv-row fv-plugins-icon-container \">\r\n <div class=\"confirmationborder mb-3\" *ngFor=\"let product of productList;let i=index\">\r\n <div class=\"d-flex justify-content-between\">\r\n <label for=\"TangoZone\" class=\" producttext mb-2\">{{product.productName}}</label>\r\n <span class=\"badge badge-light-primary ms-2\" *ngIf=\"product.content === 'trial'\">On Trail\r\n <img class=\"ms-2\" src=\"./assets/tango/custompopup-Icons/primary-clock-icon.svg\" alt=\"\">\r\n </span>\r\n <span class=\"badge badge-light-warning ms-2\" *ngIf=\"product.content === 'trialExpired'\">Trail Expired\r\n <img class=\"ms-2\" src=\"./assets/tango/custompopup-Icons/warning-clock-icon.svg\" alt=\"\">\r\n </span>\r\n </div>\r\n <div class=\"form-group pt-1\" *ngIf=\"product.content === 'trial'\">\r\n <div class=\"form-check form-check-inline ps-0\" (click)=\"updateProduct(i,'trial')\">\r\n <input class=\" cursor-pointer radio-custom\" type=\"radio\" name=\"ontrailRadioOptions_{{i}}\"\r\n id=\"inlineRadio1\" value=\"continuetrail\" checked>\r\n <label class=\"form-check-label radio-custom-label mx-3 producttext cursor-pointer\"\r\n for=\"inlineRadio1\">Continue with Trail</label>\r\n </div><br>\r\n <div class=\"form-check form-check-inline ps-0\" (click)=\"updateProduct(i,'subscription')\">\r\n <input class=\" cursor-pointer radio-custom\" type=\"radio\" name=\"ontrailRadioOptions_{{i}}\"\r\n id=\"inlineRadio1\" value=\"addsubscription\">\r\n <label class=\"form-check-label producttext radio-custom-label mx-3 cursor-pointer\"\r\n for=\"inlineRadio1\">Add to Subscription</label>\r\n </div>\r\n \r\n </div>\r\n <div class=\"form-group pt-1\" *ngIf=\"product.content === 'trialExpired'\">\r\n <div class=\"form-check form-check-inline ps-0\" (click)=\"updateProduct(i,'subscription')\">\r\n <input class=\" cursor-pointer radio-custom\" type=\"radio\" name=\"TrailExpiredRadioOptions_{{i}}\" id=\"inlineRadio1\"\r\n value=\"subscribenow\" checked>\r\n <label class=\"form-check-label radio-custom-label mx-3 producttext cursor-pointer\" for=\"inlineRadio1\">Subscribe Now</label>\r\n </div><br>\r\n <div class=\"form-check form-check-inline ps-0\" (click)=\"updateProduct(i,'cancel')\">\r\n <input class=\" cursor-pointer radio-custom\" type=\"radio\" name=\"TrailExpiredRadioOptions_{{i}}\" id=\"inlineRadio1\"\r\n value=\"dolater\">\r\n <label class=\"form-check-label producttext radio-custom-label mx-3 cursor-pointer\" for=\"inlineRadio1\">I'll do it\r\n later</label>\r\n </div>\r\n \r\n </div>\r\n\r\n <div class=\"form-group pt-1\" *ngIf=\"product.content === 'new'\">\r\n <div class=\"form-check form-check-inline ps-0\" (click)=\"updateProduct(i,'trial')\">\r\n <input class=\" cursor-pointer radio-custom\" type=\"radio\" name=\"supportRadioOptions_{{i}}\" id=\"inlineRadio1\"\r\n value=\"daystrail\" checked>\r\n <label class=\"form-check-label radio-custom-label mx-3 producttext cursor-pointer\" for=\"inlineRadio1\">Start 14\r\n days Trial</label>\r\n </div><br>\r\n <div class=\"form-check form-check-inline ps-0\" (click)=\"updateProduct(i,'subscription')\">\r\n <input class=\" cursor-pointer radio-custom\" type=\"radio\" name=\"supportRadioOptions_{{i}}\" id=\"inlineRadio1\"\r\n value=\"subscribenow\">\r\n <label class=\"form-check-label producttext radio-custom-label mx-3 cursor-pointer\" for=\"inlineRadio1\">Subscribe\r\n Now</label>\r\n </div><br>\r\n <div class=\"form-check form-check-inline ps-0\" (click)=\"updateProduct(i,'cancel')\">\r\n <input class=\" cursor-pointer radio-custom\" type=\"radio\" name=\"supportRadioOptions_{{i}}\" id=\"inlineRadio1\"\r\n value=\"later\">\r\n <label class=\"form-check-label producttext radio-custom-label mx-3 cursor-pointer\" for=\"inlineRadio1\">I'll do it\r\n later</label>\r\n </div>\r\n \r\n </div>\r\n </div>\r\n <div class=\"d-flex mt-9 my-2\">\r\n <button type=\"submit\" class=\"btn-outline btn cancel me-4 w-50\" (click)=\"activeModel.close()\">Cancel</button>\r\n <button type=\"button\" (click)=\"suscribed()\" tabindex=\"0\"\r\n class=\"btn btn-primary px-4 ng-star-inserted w-50\" style=\"white-space: nowrap;\"><span\r\n class=\"submit\">Submit</span></button>\r\n </div>\r\n </div>\r\n \r\n \r\n <!--end::Actions-->\r\n </form>\r\n <!--end::Form-->\r\n \r\n </div>\r\n</div>", styles: [".heading{color:var(--Gray-900, #101828);font-size:18px;font-weight:600;line-height:28px}.contenttext{color:var(--Gray-500, #667085);font-family:Inter;font-size:14px;font-style:normal;font-weight:400;line-height:20px}.radio-custom{width:20px;height:20px;background-color:#eaf8ff}.radio-custom,.radio-custom-label{display:inline-block;vertical-align:middle;margin:8px 0;cursor:pointer}.radio-custom-label{position:relative}.radio-custom:checked+.radio-custom-label:before{background:#00a3ff;box-shadow:inset 0 0 0 4.5px #eaf8ff;width:16px;height:16px}.producttext{color:var(--Gray-700, #344054);font-size:14px;font-weight:500;line-height:20px}.confirmationborder{border-radius:8px;border:1px solid var(--Gray-200, #EAECF0);background:var(--White, #FFF);padding:16px;flex-direction:column;align-items:flex-start;gap:18px;align-self:stretch}\n"] }]
122
+ args: [{ selector: 'lib-subscription-approval', template: "<div class=\"modal-content\">\r\n <div class=\"p-6\">\r\n <div><img src=\"./assets/tango/custompopup-Icons/settings-icon.svg\" alt=\"\"></div>\r\n <div class=\"heading mt-4 ms-1\">Confirmation</div>\r\n <div class=\"contenttext mt-4 ms-1\">\r\n Please update the status of below product\r\n </div>\r\n </div>\r\n <div class=\"modal-body\">\r\n <!--begin::Form-->\r\n <form id=\"kt_modal_new_card_form\" class=\"form fv-plugins-bootstrap5 fv-plugins-framework\" action=\"#\">\r\n \r\n <div class=\"fv-row fv-plugins-icon-container \">\r\n <div class=\"confirmationborder mb-3\" *ngFor=\"let product of productList;let i=index\">\r\n <div class=\"d-flex justify-content-between\">\r\n <label for=\"TangoZone\" class=\" producttext mb-2\">{{product.productName}}</label>\r\n <span class=\"badge badge-light-primary ms-2\" *ngIf=\"product.content === 'trial'\">On Trial\r\n <img class=\"ms-2\" src=\"./assets/tango/custompopup-Icons/primary-clock-icon.svg\" alt=\"\">\r\n </span>\r\n <span class=\"badge badge-light-warning ms-2\" *ngIf=\"product.content === 'trialExpired'\">Trial Expired\r\n <img class=\"ms-2\" src=\"./assets/tango/custompopup-Icons/warning-clock-icon.svg\" alt=\"\">\r\n </span>\r\n </div>\r\n <div class=\"form-group pt-1\" *ngIf=\"product.content === 'trial'\">\r\n <div class=\"form-check form-check-inline ps-0\" (click)=\"updateProduct(i,'trial')\">\r\n <input class=\" cursor-pointer radio-custom\" type=\"radio\" name=\"ontrailRadioOptions_{{i}}\"\r\n id=\"inlineRadio1\" value=\"continuetrail\" checked>\r\n <label class=\"form-check-label radio-custom-label mx-3 producttext cursor-pointer\"\r\n for=\"inlineRadio1\">Continue with Trial</label>\r\n </div><br>\r\n <div class=\"form-check form-check-inline ps-0\" (click)=\"updateProduct(i,'subscription')\">\r\n <input class=\" cursor-pointer radio-custom\" type=\"radio\" name=\"ontrailRadioOptions_{{i}}\"\r\n id=\"inlineRadio1\" value=\"addsubscription\">\r\n <label class=\"form-check-label producttext radio-custom-label mx-3 cursor-pointer\"\r\n for=\"inlineRadio1\">Add to Subscription</label>\r\n </div>\r\n \r\n </div>\r\n <div class=\"form-group pt-1\" *ngIf=\"product.content === 'trialExpired'\">\r\n <div class=\"form-check form-check-inline ps-0\" (click)=\"updateProduct(i,'subscription')\">\r\n <input class=\" cursor-pointer radio-custom\" type=\"radio\" name=\"TrailExpiredRadioOptions_{{i}}\" id=\"inlineRadio1\"\r\n value=\"subscribenow\" checked>\r\n <label class=\"form-check-label radio-custom-label mx-3 producttext cursor-pointer\" for=\"inlineRadio1\">Subscribe Now</label>\r\n </div><br>\r\n <div class=\"form-check form-check-inline ps-0\" (click)=\"updateProduct(i,'cancel')\">\r\n <input class=\" cursor-pointer radio-custom\" type=\"radio\" name=\"TrailExpiredRadioOptions_{{i}}\" id=\"inlineRadio1\"\r\n value=\"dolater\">\r\n <label class=\"form-check-label producttext radio-custom-label mx-3 cursor-pointer\" for=\"inlineRadio1\">I'll do it\r\n later</label>\r\n </div>\r\n \r\n </div>\r\n\r\n <div class=\"form-group pt-1\" *ngIf=\"product.content === 'new'\">\r\n <div class=\"form-check form-check-inline ps-0\" (click)=\"updateProduct(i,'trial')\">\r\n <input class=\" cursor-pointer radio-custom\" type=\"radio\" name=\"supportRadioOptions_{{i}}\" id=\"inlineRadio1\"\r\n value=\"daystrail\" checked>\r\n <label class=\"form-check-label radio-custom-label mx-3 producttext cursor-pointer\" for=\"inlineRadio1\">Start 14\r\n days Trial</label>\r\n </div><br>\r\n <div class=\"form-check form-check-inline ps-0\" (click)=\"updateProduct(i,'subscription')\">\r\n <input class=\" cursor-pointer radio-custom\" type=\"radio\" name=\"supportRadioOptions_{{i}}\" id=\"inlineRadio1\"\r\n value=\"subscribenow\">\r\n <label class=\"form-check-label producttext radio-custom-label mx-3 cursor-pointer\" for=\"inlineRadio1\">Subscribe\r\n Now</label>\r\n </div><br>\r\n <div class=\"form-check form-check-inline ps-0\" (click)=\"updateProduct(i,'cancel')\">\r\n <input class=\" cursor-pointer radio-custom\" type=\"radio\" name=\"supportRadioOptions_{{i}}\" id=\"inlineRadio1\"\r\n value=\"later\">\r\n <label class=\"form-check-label producttext radio-custom-label mx-3 cursor-pointer\" for=\"inlineRadio1\">I'll do it\r\n later</label>\r\n </div>\r\n \r\n </div>\r\n </div>\r\n <div class=\"d-flex mt-9 my-2\">\r\n <button type=\"submit\" class=\"btn-outline btn cancel me-4 w-50\" (click)=\"activeModel.close()\">Cancel</button>\r\n <button type=\"button\" (click)=\"suscribed()\" tabindex=\"0\"\r\n class=\"btn btn-primary px-4 ng-star-inserted w-50\" style=\"white-space: nowrap;\"><span\r\n class=\"submit\">Submit</span></button>\r\n </div>\r\n </div>\r\n \r\n \r\n <!--end::Actions-->\r\n </form>\r\n <!--end::Form-->\r\n \r\n </div>\r\n</div>", styles: [".heading{color:var(--Gray-900, #101828);font-size:18px;font-weight:600;line-height:28px}.contenttext{color:var(--Gray-500, #667085);font-family:Inter;font-size:14px;font-style:normal;font-weight:400;line-height:20px}.radio-custom{width:20px;height:20px;background-color:#eaf8ff}.radio-custom,.radio-custom-label{display:inline-block;vertical-align:middle;margin:8px 0;cursor:pointer}.radio-custom-label{position:relative}.radio-custom:checked+.radio-custom-label:before{background:#00a3ff;box-shadow:inset 0 0 0 4.5px #eaf8ff;width:16px;height:16px}.producttext{color:var(--Gray-700, #344054);font-size:14px;font-weight:500;line-height:20px}.confirmationborder{border-radius:8px;border:1px solid var(--Gray-200, #EAECF0);background:var(--White, #FFF);padding:16px;flex-direction:column;align-items:flex-start;gap:18px;align-self:stretch}\n"] }]
123
123
  }], ctorParameters: () => [{ type: i1.NgbModal }, { type: i1.NgbActiveModal }, { type: i2.ToastService }, { type: i3.PaymentSubscriptionService }], propDecorators: { products: [{
124
124
  type: Input
125
125
  }], clientInfo: [{
126
126
  type: Input
127
127
  }] } });
128
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Vic2NyaXB0aW9uLWFwcHJvdmFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLW1hbmFnZS1zZXR0aW5ncy9zcmMvbGliL2NvbXBvbmVudHMvcGF5bWVudHMtc3Vic2NyaXB0aW9uL3N1YnNjcmlwdGlvbi1wb3B1cHMvc3Vic2NyaXB0aW9uLWFwcHJvdmFsL3N1YnNjcmlwdGlvbi1hcHByb3ZhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1tYW5hZ2Utc2V0dGluZ3Mvc3JjL2xpYi9jb21wb25lbnRzL3BheW1lbnRzLXN1YnNjcmlwdGlvbi9zdWJzY3JpcHRpb24tcG9wdXBzL3N1YnNjcmlwdGlvbi1hcHByb3ZhbC9zdWJzY3JpcHRpb24tYXBwcm92YWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBR3BFLE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLGdFQUFnRSxDQUFDO0FBRWxILE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDOzs7Ozs7O0FBTzlFLE1BQU0sT0FBTyw2QkFBNkI7SUFVcEI7SUFBK0I7SUFBcUM7SUFBNkI7SUFUNUcsUUFBUSxDQUFNO0lBQ2QsVUFBVSxDQUFNO0lBQ3pCLFdBQVcsR0FBUSxFQUFFLENBQUM7SUFDdEIsTUFBTSxHQUFXLGVBQWUsQ0FBQztJQUNqQyxXQUFXLEdBQVcsY0FBYyxDQUFDO0lBQ3JDLGFBQWEsR0FBVyxXQUFXLENBQUM7SUFFcEMsVUFBVSxHQUFZLEtBQUssQ0FBQztJQUNYLFFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFD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QUMsSUFBSSxHQUFHLElBQUksQ0FBQztJQUN0QyxDQUFDO3VHQXRHVSw2QkFBNkI7MkZBQTdCLDZCQUE2Qiw2SENiMUMsOG9OQXlGTTs7MkZENUVPLDZCQUE2QjtrQkFMekMsU0FBUzsrQkFDRSwyQkFBMkI7OEtBSzVCLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE5nYkFjdGl2ZU1vZGFsLCBOZ2JNb2RhbCB9IGZyb20gJ0BuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwJztcclxuaW1wb3J0IHsgVG9hc3RTZXJ2aWNlIH0gZnJvbSAndGFuZ28tYXBwLXVpLXNoYXJlZCc7XHJcbmltcG9ydCB7IFN1Y2Nlc3NmdWxsU3Vic2NyaXB0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi4vc3VjY2Vzc2Z1bGwtc3Vic2NyaXB0aW9uL3N1Y2Nlc3NmdWxsLXN1YnNjcmlwdGlvbi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBQYXltZW50U3Vic2NyaXB0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uL3NlcnZpY2VzL3BheW1lbnQtc3Vic2NyaXB0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTdWJqZWN0LCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgVXBncmFkZVBsYW5Db21wb25lbnQgfSBmcm9tICcuLi91cGdyYWRlLXBsYW4vdXBncmFkZS1wbGFuLmNvbXBvbmVudCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1zdWJzY3JpcHRpb24tYXBwcm92YWwnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9zdWJzY3JpcHRpb24tYXBwcm92YWwuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9zdWJzY3JpcHRpb24tYXBwcm92YWwuY29tcG9uZW50LnNjc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTdWJzY3JpcHRpb25BcHByb3ZhbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICBASW5wdXQoKSBwcm9kdWN0czogYW55O1xyXG4gIEBJbnB1dCgpIGNsaWVudEluZm86IGFueTtcclxuICBwcm9kdWN0TGlzdDogYW55ID0gW107XHJcbiAgc2VsZWN0OiBzdHJpbmcgPSAnY29udGludWV0cmFpbCc7XHJcbiAgdHJhaWxzZWxlY3Q6IHN0cmluZyA9ICdzdWJzY3JpYmVub3cnO1xyXG4gIHN1cHBvcnRzZWxlY3Q6IHN0cmluZyA9ICdkYXlzdHJhaWwnO1xyXG5cclxuICBnaWZWaXNpYmxlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0KCk7XHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBtb2RhbFNlcnZpY2U6IE5nYk1vZGFsLCBwdWJsaWMgYWN0aXZlTW9kZWw6IE5nYkFjdGl2ZU1vZGFsLCBwcml2YXRlIHRvYXN0OiBUb2FzdFNlcnZpY2UsIHByaXZhdGUgUGF5bWVudFN1YnNjcmlwdGlvblNlcnZpY2U6IFBheW1lbnRTdWJzY3JpcHRpb25TZXJ2aWNlKSB7XHJcbiAgfVxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5wcm9kdWN0cy5mb3JFYWNoKChpdGVtOiBhbnkpID0+IHtcclxuICAgICAgaWYgKHR5cGVvZiBpdGVtLnRvb2xUaXAgIT0gJ3VuZGVmaW5lZCcgJiYgaXRlbT8udG9vbFRpcCA9PSAnT24gVHJpYWwnICYmIGl0ZW0uYWN0aXZlKSB7XHJcbiAgICAgICAgdGhpcy5wcm9kdWN0TGlzdC5wdXNoKHtcclxuICAgICAgICAgIG5hbWU6IGl0ZW0ucHJvZHVjdE5hbWUsXHJcbiAgICAgICAgICBwcm9kdWN0TmFtZTogaXRlbS5hbGlzZVByb2R1Y3ROYW1lLFxyXG4gICAgICAgICAgdHlwZTogJ3RyaWFsJyxcclxuICAgICAgICAgIGNvbnRlbnQ6ICd0cmlhbCdcclxuICAgICAgICB9KVxyXG4gICAgICB9XHJcbiAgICAgIGlmICh0eXBlb2YgaXRlbS50b29sVGlwICE9ICd1bmRlZmluZWQnICYmIGl0ZW0/LnRvb2xUaXAgPT0gJ1RyaWFsIEV4cGlyZWQnICYmIGl0ZW0uYWN0aXZlKSB7XHJcbiAgICAgICAgdGhpcy5wcm9kdWN0TGlzdC5wdXNoKHtcclxuICAgICAgICAgIG5hbWU6IGl0ZW0ucHJvZHVjdE5hbWUsXHJcbiAgICAgICAgICBwcm9kdWN0TmFtZTogaXRlbS5hbGlzZVByb2R1Y3ROYW1lLFxyXG4gICAgICAgICAgdHlwZTogJ3RyaWFsJyxcclxuICAgICAgICAgIGNvbnRlbnQ6ICd0cmlhbEV4cGlyZWQnXHJcbiAgICAgICAgfSlcclxuICAgICAgfVxyXG4gICAgICBpZiAoIWl0ZW0/LnRvb2xUaXAgJiYgaXRlbS5hY3RpdmUpIHtcclxuICAgICAgICB0aGlzLnByb2R1Y3RMaXN0LnB1c2goe1xyXG4gICAgICAgICAgbmFtZTogaXRlbS5wcm9kdWN0TmFtZSxcclxuICAgICAgICAgIHByb2R1Y3ROYW1lOiBpdGVtLmFsaXNlUHJvZHVjdE5hbWUsXHJcbiAgICAgICAgICB0eXBlOiAnc3RhcnRUcmlhbCcsXHJcbiAgICAgICAgICBjb250ZW50OiAnbmV3J1xyXG4gICAgICAgIH0pXHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KHRydWUpO1xyXG4gICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xyXG4gIH1cclxuICBzdXNjcmliZWRfb2xkKCkge1xyXG4gICAgbGV0IGRhdGEgPSB7XHJcbiAgICAgIGNsaWVudElkOiB0aGlzLmNsaWVudEluZm8uY2xpZW50SWQsXHJcbiAgICAgIHByaWNlOiB0aGlzLmNsaWVudEluZm8uY3VycmVudFBsYW5JbmZvLnByaWNlLFxyXG4gICAgICBwcmljZVR5cGU6IHRoaXMuY2xpZW50SW5mby5jdXJyZW50UGxhbkluZm8ucHJpY2VUeXBlLFxyXG4gICAgICBzdWJzY3JpcHRpb25UeXBlOiB0aGlzLmNsaWVudEluZm8uY3VycmVudFBsYW5JbmZvLnN1YnNjcmlwdGlvblR5cGUsXHJcbiAgICAgIHN1YnNjcmlwdGlvblBlcmlvZDogdGhpcy5jbGllbnRJbmZvLmN1cnJlbnRQbGFuSW5mby5zdWJzY3JpcHRpb25QZXJpb2QsXHJcbiAgICAgIHRvdGFsQ2FtZXJhOiB0aGlzLmNsaWVudEluZm8uY3VycmVudFBsYW5JbmZvLnRvdGFsQ2FtZXJhLFxyXG4gICAgICB0b3RhbFN0b3JlczogdGhpcy5jbGllbnRJbmZvLmN1cnJlbnRQbGFuSW5mby50b3RhbFN0b3JlcyxcclxuICAgICAgc3RvcmVTaXplOiB0aGlzLmNsaWVudEluZm8uY3VycmVudFBsYW5JbmZvLnN0b3JlU2l6ZSxcclxuICAgICAgcHJvZHVjdHM6IHRoaXMucHJvZHVjdExpc3RcclxuICAgIH1cclxuICAgIHRoaXMuUGF5bWVudFN1YnNjcmlwdGlvblNlcnZpY2UudXBkYXRlU3Vic2NyaXB0aW9uKGRhdGEpLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoKHJlczogYW55KSA9PiB7XHJcbiAgICAgIGlmIChyZXMgJiYgcmVzLmNvZGUgPT0gMjAwKSB7XHJcbiAgICAgICAgdGhpcy5hY3RpdmVNb2RlbC5jbG9zZSgpO1xyXG4gICAgICAgIGNvbnN0IG1vZGFsUmVmID0gdGhpcy5tb2RhbFNlcnZpY2Uub3BlbihTdWNjZXNzZnVsbFN1YnNjcmlwdGlvbkNvbXBvbmVudCwge1xyXG4gICAgICAgICAgY2VudGVyZWQ6IHRydWUsIHNpemU6ICdtZCdcclxuICAgICAgICB9KTtcclxuICAgICAgICBtb2RhbFJlZi5jb21wb25lbnRJbnN0YW5jZS5wcm9kdWN0cyA9IHRoaXMucHJvZHVjdExpc3QuZmlsdGVyKChpdGVtOiBhbnkpID0+IGl0ZW0udHlwZSAhPSAnY2FuY2VsJykubWFwKChpdGVtOiBhbnkpID0+IGl0ZW0ucHJvZHVjdE5hbWUpO1xyXG4gICAgICB9XHJcblxyXG4gICAgfSk7XHJcbiAgICB0aGlzLmdpZlZpc2libGUgPSB0cnVlO1xyXG4gIH1cclxuICBzdXNjcmliZWQoKSB7XHJcbiAgICBsZXQgZGF0YSA9IHtcclxuICAgICAgY2xpZW50SWQ6IHRoaXMuY2xpZW50SW5mby5jbGllbnRJZCxcclxuICAgICAgcHJpY2U6IHRoaXMuY2xpZW50SW5mby5jdXJyZW50UGxhbkluZm8ucHJpY2UsXHJcbiAgICAgIHByaWNlVHlwZTogdGhpcy5jbGllbnRJbmZvLmN1cnJlbnRQbGFuSW5mby5wcmljZVR5cGUsXHJcbiAgICAgIHN1YnNjcmlwdGlvblR5cGU6IHRoaXMuY2xpZW50SW5mby5jdXJyZW50UGxhbkluZm8uc3Vic2NyaXB0aW9uVHlwZSxcclxuICAgICAgc3Vic2NyaXB0aW9uUGVyaW9kOiB0aGlzLmNsaWVudEluZm8uY3VycmVudFBsYW5JbmZvLnN1YnNjcmlwdGlvblBlcmlvZCxcclxuICAgICAgdG90YWxDYW1lcmE6IHRoaXMuY2xpZW50SW5mby5jdXJyZW50UGxhbkluZm8udG90YWxDYW1lcmEsXHJcbiAgICAgIHRvdGFsU3RvcmVzOiB0aGlzLmNsaWVudEluZm8uY3VycmVudFBsYW5JbmZvLnRvdGFsU3RvcmVzLFxyXG4gICAgICBzdG9yZVNpemU6IHRoaXMuY2xpZW50SW5mby5jdXJyZW50UGxhbkluZm8uc3RvcmVTaXplLFxyXG4gICAgICBwcm9kdWN0czogdGhpcy5wcm9kdWN0TGlzdFxyXG4gICAgfVxyXG4gICAgdGhpcy5QYXltZW50U3Vic2NyaXB0aW9uU2VydmljZS51cGRhdGVTdWJzY3JpcHRpb24oZGF0YSkucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSgocmVzOiBhbnkpID0+IHtcclxuICAgICAgaWYgKHJlcyAmJiByZXMuY29kZSA9PSAyMDApIHtcclxuICAgICAgICB0aGlzLmFjdGl2ZU1vZGVsLmNsb3NlKCk7XHJcbiAgICAgICAgY29uc3QgbW9kYWxSZWYgPSB0aGlzLm1vZGFsU2VydmljZS5vcGVuKFVwZ3JhZGVQbGFuQ29tcG9uZW50LCB7XHJcbiAgICAgICAgICBjZW50ZXJlZDogdHJ1ZSwgc2l6ZTogJ21kJ1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIG1vZGFsUmVmLmNvbXBvbmVudEluc3RhbmNlLmNsaWVudElkID0gdGhpcy5jbGllbnRJbmZvLmNsaWVudElkO1xyXG4gICAgICAgIG1vZGFsUmVmLmNvbXBvbmVudEluc3RhbmNlLnN1YnNjcmlwdGlvbiA9IFwiY29uZmlybWF0aW9ubWVzc2FnZVwiO1xyXG4gICAgICAgIG1vZGFsUmVmLmNvbXBvbmVudEluc3RhbmNlLmNvbmZpcm1lZFByb2R1Y3RzID0gdGhpcy5wcm9kdWN0TGlzdC5maWx0ZXIoKGl0ZW06IGFueSkgPT4gaXRlbS50eXBlICE9ICdjYW5jZWwnKS5tYXAoKGl0ZW06IGFueSkgPT4gaXRlbS5wcm9kdWN0TmFtZSk7XHJcbiAgICAgICAgbW9kYWxSZWYucmVzdWx0LnRoZW4oKHJlc3VsdCkgPT4geyAgXHJcbiAgICAgICAgICBpZiAocmVzdWx0KSB7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICB9KTtcclxuICAgIHRoaXMuZ2lmVmlzaWJsZSA9IHRydWU7XHJcbiAgfVxyXG4gIHVwZGF0ZVByb2R1Y3QoaW5kZXg6IG51bWJlciwgdHlwZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLnByb2R1Y3RMaXN0W2luZGV4XS50eXBlID0gdHlwZTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cIm1vZGFsLWNvbnRlbnRcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJwLTZcIj5cclxuICAgICAgICA8ZGl2PjxpbWcgc3JjPVwiLi9hc3NldHMvdGFuZ28vY3VzdG9tcG9wdXAtSWNvbnMvc2V0dGluZ3MtaWNvbi5zdmdcIiBhbHQ9XCJcIj48L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGluZyBtdC00IG1zLTFcIj5Db25maXJtYXRpb248L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGVudHRleHQgbXQtNCBtcy0xXCI+XHJcbiAgICAgICAgICAgIFBsZWFzZSB1cGRhdGUgdGhlIHN0YXR1cyBvZiBiZWxvdyBwcm9kdWN0XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1ib2R5XCI+XHJcbiAgICAgICAgICAgIDwhLS1iZWdpbjo6Rm9ybS0tPlxyXG4gICAgICAgICAgICA8Zm9ybSBpZD1cImt0X21vZGFsX25ld19jYXJkX2Zvcm1cIiBjbGFzcz1cImZvcm0gZnYtcGx1Z2lucy1ib290c3RyYXA1IGZ2LXBsdWdpbnMtZnJhbWV3b3JrXCIgYWN0aW9uPVwiI1wiPlxyXG4gICAgXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZnYtcm93IGZ2LXBsdWdpbnMtaWNvbi1jb250YWluZXIgXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbmZpcm1hdGlvbmJvcmRlciBtYi0zXCIgKm5nRm9yPVwibGV0IHByb2R1Y3Qgb2YgcHJvZHVjdExpc3Q7bGV0IGk9aW5kZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cIlRhbmdvWm9uZVwiIGNsYXNzPVwiIHByb2R1Y3R0ZXh0IG1iLTJcIj57e3Byb2R1Y3QucHJvZHVjdE5hbWV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImJhZGdlIGJhZGdlLWxpZ2h0LXByaW1hcnkgbXMtMlwiICpuZ0lmPVwicHJvZHVjdC5jb250ZW50ID09PSAndHJpYWwnXCI+T24gVHJhaWxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwibXMtMlwiIHNyYz1cIi4vYXNzZXRzL3RhbmdvL2N1c3RvbXBvcHVwLUljb25zL3ByaW1hcnktY2xvY2staWNvbi5zdmdcIiBhbHQ9XCJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYmFkZ2UgYmFkZ2UtbGlnaHQtd2FybmluZyBtcy0yXCIgKm5nSWY9XCJwcm9kdWN0LmNvbnRlbnQgPT09ICd0cmlhbEV4cGlyZWQnXCI+VHJhaWwgRXhwaXJlZFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJtcy0yXCIgc3JjPVwiLi9hc3NldHMvdGFuZ28vY3VzdG9tcG9wdXAtSWNvbnMvd2FybmluZy1jbG9jay1pY29uLnN2Z1wiIGFsdD1cIlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXAgcHQtMVwiICpuZ0lmPVwicHJvZHVjdC5jb250ZW50ID09PSAndHJpYWwnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVjayBmb3JtLWNoZWNrLWlubGluZSBwcy0wXCIgKGNsaWNrKT1cInVwZGF0ZVByb2R1Y3QoaSwndHJpYWwnKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCAgY2xhc3M9XCIgY3Vyc29yLXBvaW50ZXIgcmFkaW8tY3VzdG9tXCIgdHlwZT1cInJhZGlvXCIgbmFtZT1cIm9udHJhaWxSYWRpb09wdGlvbnNfe3tpfX1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cImlubGluZVJhZGlvMVwiIHZhbHVlPVwiY29udGludWV0cmFpbFwiIGNoZWNrZWQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbCByYWRpby1jdXN0b20tbGFiZWwgbXgtMyBwcm9kdWN0dGV4dCBjdXJzb3ItcG9pbnRlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcj1cImlubGluZVJhZGlvMVwiPkNvbnRpbnVlIHdpdGggVHJhaWw8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+PGJyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2sgZm9ybS1jaGVjay1pbmxpbmUgcHMtMFwiIChjbGljayk9XCJ1cGRhdGVQcm9kdWN0KGksJ3N1YnNjcmlwdGlvbicpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiIGN1cnNvci1wb2ludGVyIHJhZGlvLWN1c3RvbVwiIHR5cGU9XCJyYWRpb1wiIG5hbWU9XCJvbnRyYWlsUmFkaW9PcHRpb25zX3t7aX19XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJpbmxpbmVSYWRpbzFcIiB2YWx1ZT1cImFkZHN1YnNjcmlwdGlvblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWwgcHJvZHVjdHRleHQgcmFkaW8tY3VzdG9tLWxhYmVsIG14LTMgY3Vyc29yLXBvaW50ZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3I9XCJpbmxpbmVSYWRpbzFcIj5BZGQgdG8gU3Vic2NyaXB0aW9uPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cCBwdC0xXCIgKm5nSWY9XCJwcm9kdWN0LmNvbnRlbnQgPT09ICd0cmlhbEV4cGlyZWQnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVjayBmb3JtLWNoZWNrLWlubGluZSBwcy0wXCIgKGNsaWNrKT1cInVwZGF0ZVByb2R1Y3QoaSwnc3Vic2NyaXB0aW9uJylcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCIgY3Vyc29yLXBvaW50ZXIgcmFkaW8tY3VzdG9tXCIgdHlwZT1cInJhZGlvXCIgbmFtZT1cIlRyYWlsRXhwaXJlZFJhZGlvT3B0aW9uc197e2l9fVwiIGlkPVwiaW5saW5lUmFkaW8xXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9XCJzdWJzY3JpYmVub3dcIiBjaGVja2VkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWwgcmFkaW8tY3VzdG9tLWxhYmVsIG14LTMgcHJvZHVjdHRleHQgY3Vyc29yLXBvaW50ZXJcIiBmb3I9XCJpbmxpbmVSYWRpbzFcIj5TdWJzY3JpYmUgTm93PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2Pjxicj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrIGZvcm0tY2hlY2staW5saW5lIHBzLTBcIiAoY2xpY2spPVwidXBkYXRlUHJvZHVjdChpLCdjYW5jZWwnKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cIiBjdXJzb3ItcG9pbnRlciByYWRpby1jdXN0b21cIiB0eXBlPVwicmFkaW9cIiBuYW1lPVwiVHJhaWxFeHBpcmVkUmFkaW9PcHRpb25zX3t7aX19XCIgaWQ9XCJpbmxpbmVSYWRpbzFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT1cImRvbGF0ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsIHByb2R1Y3R0ZXh0IHJhZGlvLWN1c3RvbS1sYWJlbCBteC0zIGN1cnNvci1wb2ludGVyXCIgZm9yPVwiaW5saW5lUmFkaW8xXCI+SSdsbCBkbyBpdFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhdGVyPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cCBwdC0xXCIgKm5nSWY9XCJwcm9kdWN0LmNvbnRlbnQgPT09ICduZXcnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVjayBmb3JtLWNoZWNrLWlubGluZSBwcy0wXCIgKGNsaWNrKT1cInVwZGF0ZVByb2R1Y3QoaSwndHJpYWwnKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cIiBjdXJzb3ItcG9pbnRlciByYWRpby1jdXN0b21cIiB0eXBlPVwicmFkaW9cIiBuYW1lPVwic3VwcG9ydFJhZGlvT3B0aW9uc197e2l9fVwiIGlkPVwiaW5saW5lUmFkaW8xXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9XCJkYXlzdHJhaWxcIiBjaGVja2VkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWwgcmFkaW8tY3VzdG9tLWxhYmVsIG14LTMgcHJvZHVjdHRleHQgY3Vyc29yLXBvaW50ZXJcIiBmb3I9XCJpbmxpbmVSYWRpbzFcIj5TdGFydCAxNFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXlzIFRyaWFsPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2Pjxicj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrIGZvcm0tY2hlY2staW5saW5lIHBzLTBcIiAoY2xpY2spPVwidXBkYXRlUHJvZHVjdChpLCdzdWJzY3JpcHRpb24nKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cIiBjdXJzb3ItcG9pbnRlciByYWRpby1jdXN0b21cIiB0eXBlPVwicmFkaW9cIiBuYW1lPVwic3VwcG9ydFJhZGlvT3B0aW9uc197e2l9fVwiIGlkPVwiaW5saW5lUmFkaW8xXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9XCJzdWJzY3JpYmVub3dcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsIHByb2R1Y3R0ZXh0IHJhZGlvLWN1c3RvbS1sYWJlbCBteC0zIGN1cnNvci1wb2ludGVyXCIgZm9yPVwiaW5saW5lUmFkaW8xXCI+U3Vic2NyaWJlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5vdzwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj48YnI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVjayBmb3JtLWNoZWNrLWlubGluZSBwcy0wXCIgKGNsaWNrKT1cInVwZGF0ZVByb2R1Y3QoaSwnY2FuY2VsJylcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCIgY3Vyc29yLXBvaW50ZXIgcmFkaW8tY3VzdG9tXCIgdHlwZT1cInJhZGlvXCIgbmFtZT1cInN1cHBvcnRSYWRpb09wdGlvbnNfe3tpfX1cIiBpZD1cImlubGluZVJhZGlvMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPVwibGF0ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsIHByb2R1Y3R0ZXh0IHJhZGlvLWN1c3RvbS1sYWJlbCBteC0zIGN1cnNvci1wb2ludGVyXCIgZm9yPVwiaW5saW5lUmFkaW8xXCI+SSdsbCBkbyBpdFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXRlcjwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggbXQtOSBteS0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cInN1Ym1pdFwiIGNsYXNzPVwiYnRuLW91dGxpbmUgYnRuIGNhbmNlbCBtZS00IHctNTBcIiAoY2xpY2spPVwiYWN0aXZlTW9kZWwuY2xvc2UoKVwiPkNhbmNlbDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwic3VzY3JpYmVkKClcIiB0YWJpbmRleD1cIjBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgcHgtNCBuZy1zdGFyLWluc2VydGVkIHctNTBcIiBzdHlsZT1cIndoaXRlLXNwYWNlOiBub3dyYXA7XCI+PHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInN1Ym1pdFwiPlN1Ym1pdDwvc3Bhbj48L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgXHJcbiAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgIDwhLS1lbmQ6OkFjdGlvbnMtLT5cclxuICAgICAgICAgICAgPC9mb3JtPlxyXG4gICAgICAgICAgICA8IS0tZW5kOjpGb3JtLS0+XHJcbiAgICAgIFxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PiJdfQ==
128
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Vic2NyaXB0aW9uLWFwcHJvdmFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLW1hbmFnZS1zZXR0aW5ncy9zcmMvbGliL2NvbXBvbmVudHMvcGF5bWVudHMtc3Vic2NyaXB0aW9uL3N1YnNjcmlwdGlvbi1wb3B1cHMvc3Vic2NyaXB0aW9uLWFwcHJvdmFsL3N1YnNjcmlwdGlvbi1hcHByb3ZhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1tYW5hZ2Utc2V0dGluZ3Mvc3JjL2xpYi9jb21wb25lbnRzL3BheW1lbnRzLXN1YnNjcmlwdGlvbi9zdWJzY3JpcHRpb24tcG9wdXBzL3N1YnNjcmlwdGlvbi1hcHByb3ZhbC9zdWJzY3JpcHRpb24tYXBwcm92YWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBR3BFLE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLGdFQUFnRSxDQUFDO0FBRWxILE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDOzs7Ozs7O0FBTzlFLE1BQU0sT0FBTyw2QkFBNkI7SUFVcEI7SUFBK0I7SUFBcUM7SUFBNkI7SUFUNUcsUUFBUSxDQUFNO0lBQ2QsVUFBVSxDQUFNO0lBQ3pCLFdBQVcsR0FBUSxFQUFFLENBQUM7SUFDdEIsTUFBTSxHQUFXLGVBQWUsQ0FBQztJQUNqQyxXQUFXLEdBQVcsY0FBYyxDQUFDO0lBQ3JDLGFBQWEsR0FBVyxXQUFXLENBQUM7SUFFcEMsVUFBVSxHQUFZLEtBQUssQ0FBQztJQUNYLFFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFD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QUMsSUFBSSxHQUFHLElBQUksQ0FBQztJQUN0QyxDQUFDO3VHQXRHVSw2QkFBNkI7MkZBQTdCLDZCQUE2Qiw2SENiMUMsOG9OQXlGTTs7MkZENUVPLDZCQUE2QjtrQkFMekMsU0FBUzsrQkFDRSwyQkFBMkI7OEtBSzVCLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE5nYkFjdGl2ZU1vZGFsLCBOZ2JNb2RhbCB9IGZyb20gJ0BuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwJztcclxuaW1wb3J0IHsgVG9hc3RTZXJ2aWNlIH0gZnJvbSAndGFuZ28tYXBwLXVpLXNoYXJlZCc7XHJcbmltcG9ydCB7IFN1Y2Nlc3NmdWxsU3Vic2NyaXB0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi4vc3VjY2Vzc2Z1bGwtc3Vic2NyaXB0aW9uL3N1Y2Nlc3NmdWxsLXN1YnNjcmlwdGlvbi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBQYXltZW50U3Vic2NyaXB0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uL3NlcnZpY2VzL3BheW1lbnQtc3Vic2NyaXB0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTdWJqZWN0LCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgVXBncmFkZVBsYW5Db21wb25lbnQgfSBmcm9tICcuLi91cGdyYWRlLXBsYW4vdXBncmFkZS1wbGFuLmNvbXBvbmVudCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1zdWJzY3JpcHRpb24tYXBwcm92YWwnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9zdWJzY3JpcHRpb24tYXBwcm92YWwuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9zdWJzY3JpcHRpb24tYXBwcm92YWwuY29tcG9uZW50LnNjc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTdWJzY3JpcHRpb25BcHByb3ZhbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICBASW5wdXQoKSBwcm9kdWN0czogYW55O1xyXG4gIEBJbnB1dCgpIGNsaWVudEluZm86IGFueTtcclxuICBwcm9kdWN0TGlzdDogYW55ID0gW107XHJcbiAgc2VsZWN0OiBzdHJpbmcgPSAnY29udGludWV0cmlhbCc7XHJcbiAgdHJhaWxzZWxlY3Q6IHN0cmluZyA9ICdzdWJzY3JpYmVub3cnO1xyXG4gIHN1cHBvcnRzZWxlY3Q6IHN0cmluZyA9ICdkYXlzdHJpYWwnO1xyXG5cclxuICBnaWZWaXNpYmxlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0KCk7XHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBtb2RhbFNlcnZpY2U6IE5nYk1vZGFsLCBwdWJsaWMgYWN0aXZlTW9kZWw6IE5nYkFjdGl2ZU1vZGFsLCBwcml2YXRlIHRvYXN0OiBUb2FzdFNlcnZpY2UsIHByaXZhdGUgUGF5bWVudFN1YnNjcmlwdGlvblNlcnZpY2U6IFBheW1lbnRTdWJzY3JpcHRpb25TZXJ2aWNlKSB7XHJcbiAgfVxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5wcm9kdWN0cy5mb3JFYWNoKChpdGVtOiBhbnkpID0+IHtcclxuICAgICAgaWYgKHR5cGVvZiBpdGVtLnRvb2xUaXAgIT0gJ3VuZGVmaW5lZCcgJiYgaXRlbT8udG9vbFRpcCA9PSAnT24gVHJpYWwnICYmIGl0ZW0uYWN0aXZlKSB7XHJcbiAgICAgICAgdGhpcy5wcm9kdWN0TGlzdC5wdXNoKHtcclxuICAgICAgICAgIG5hbWU6IGl0ZW0ucHJvZHVjdE5hbWUsXHJcbiAgICAgICAgICBwcm9kdWN0TmFtZTogaXRlbS5hbGlzZVByb2R1Y3ROYW1lLFxyXG4gICAgICAgICAgdHlwZTogJ3RyaWFsJyxcclxuICAgICAgICAgIGNvbnRlbnQ6ICd0cmlhbCdcclxuICAgICAgICB9KVxyXG4gICAgICB9XHJcbiAgICAgIGlmICh0eXBlb2YgaXRlbS50b29sVGlwICE9ICd1bmRlZmluZWQnICYmIGl0ZW0/LnRvb2xUaXAgPT0gJ1RyaWFsIEV4cGlyZWQnICYmIGl0ZW0uYWN0aXZlKSB7XHJcbiAgICAgICAgdGhpcy5wcm9kdWN0TGlzdC5wdXNoKHtcclxuICAgICAgICAgIG5hbWU6IGl0ZW0ucHJvZHVjdE5hbWUsXHJcbiAgICAgICAgICBwcm9kdWN0TmFtZTogaXRlbS5hbGlzZVByb2R1Y3ROYW1lLFxyXG4gICAgICAgICAgdHlwZTogJ3RyaWFsJyxcclxuICAgICAgICAgIGNvbnRlbnQ6ICd0cmlhbEV4cGlyZWQnXHJcbiAgICAgICAgfSlcclxuICAgICAgfVxyXG4gICAgICBpZiAoIWl0ZW0/LnRvb2xUaXAgJiYgaXRlbS5hY3RpdmUpIHtcclxuICAgICAgICB0aGlzLnByb2R1Y3RMaXN0LnB1c2goe1xyXG4gICAgICAgICAgbmFtZTogaXRlbS5wcm9kdWN0TmFtZSxcclxuICAgICAgICAgIHByb2R1Y3ROYW1lOiBpdGVtLmFsaXNlUHJvZHVjdE5hbWUsXHJcbiAgICAgICAgICB0eXBlOiAnc3RhcnRUcmlhbCcsXHJcbiAgICAgICAgICBjb250ZW50OiAnbmV3J1xyXG4gICAgICAgIH0pXHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KHRydWUpO1xyXG4gICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xyXG4gIH1cclxuICBzdXNjcmliZWRfb2xkKCkge1xyXG4gICAgbGV0IGRhdGEgPSB7XHJcbiAgICAgIGNsaWVudElkOiB0aGlzLmNsaWVudEluZm8uY2xpZW50SWQsXHJcbiAgICAgIHByaWNlOiB0aGlzLmNsaWVudEluZm8uY3VycmVudFBsYW5JbmZvLnByaWNlLFxyXG4gICAgICBwcmljZVR5cGU6IHRoaXMuY2xpZW50SW5mby5jdXJyZW50UGxhbkluZm8ucHJpY2VUeXBlLFxyXG4gICAgICBzdWJzY3JpcHRpb25UeXBlOiB0aGlzLmNsaWVudEluZm8uY3VycmVudFBsYW5JbmZvLnN1YnNjcmlwdGlvblR5cGUsXHJcbiAgICAgIHN1YnNjcmlwdGlvblBlcmlvZDogdGhpcy5jbGllbnRJbmZvLmN1cnJlbnRQbGFuSW5mby5zdWJzY3JpcHRpb25QZXJpb2QsXHJcbiAgICAgIHRvdGFsQ2FtZXJhOiB0aGlzLmNsaWVudEluZm8uY3VycmVudFBsYW5JbmZvLnRvdGFsQ2FtZXJhLFxyXG4gICAgICB0b3RhbFN0b3JlczogdGhpcy5jbGllbnRJbmZvLmN1cnJlbnRQbGFuSW5mby50b3RhbFN0b3JlcyxcclxuICAgICAgc3RvcmVTaXplOiB0aGlzLmNsaWVudEluZm8uY3VycmVudFBsYW5JbmZvLnN0b3JlU2l6ZSxcclxuICAgICAgcHJvZHVjdHM6IHRoaXMucHJvZHVjdExpc3RcclxuICAgIH1cclxuICAgIHRoaXMuUGF5bWVudFN1YnNjcmlwdGlvblNlcnZpY2UudXBkYXRlU3Vic2NyaXB0aW9uKGRhdGEpLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoKHJlczogYW55KSA9PiB7XHJcbiAgICAgIGlmIChyZXMgJiYgcmVzLmNvZGUgPT0gMjAwKSB7XHJcbiAgICAgICAgdGhpcy5hY3RpdmVNb2RlbC5jbG9zZSgpO1xyXG4gICAgICAgIGNvbnN0IG1vZGFsUmVmID0gdGhpcy5tb2RhbFNlcnZpY2Uub3BlbihTdWNjZXNzZnVsbFN1YnNjcmlwdGlvbkNvbXBvbmVudCwge1xyXG4gICAgICAgICAgY2VudGVyZWQ6IHRydWUsIHNpemU6ICdtZCdcclxuICAgICAgICB9KTtcclxuICAgICAgICBtb2RhbFJlZi5jb21wb25lbnRJbnN0YW5jZS5wcm9kdWN0cyA9IHRoaXMucHJvZHVjdExpc3QuZmlsdGVyKChpdGVtOiBhbnkpID0+IGl0ZW0udHlwZSAhPSAnY2FuY2VsJykubWFwKChpdGVtOiBhbnkpID0+IGl0ZW0ucHJvZHVjdE5hbWUpO1xyXG4gICAgICB9XHJcblxyXG4gICAgfSk7XHJcbiAgICB0aGlzLmdpZlZpc2libGUgPSB0cnVlO1xyXG4gIH1cclxuICBzdXNjcmliZWQoKSB7XHJcbiAgICBsZXQgZGF0YSA9IHtcclxuICAgICAgY2xpZW50SWQ6IHRoaXMuY2xpZW50SW5mby5jbGllbnRJZCxcclxuICAgICAgcHJpY2U6IHRoaXMuY2xpZW50SW5mby5jdXJyZW50UGxhbkluZm8ucHJpY2UsXHJcbiAgICAgIHByaWNlVHlwZTogdGhpcy5jbGllbnRJbmZvLmN1cnJlbnRQbGFuSW5mby5wcmljZVR5cGUsXHJcbiAgICAgIHN1YnNjcmlwdGlvblR5cGU6IHRoaXMuY2xpZW50SW5mby5jdXJyZW50UGxhbkluZm8uc3Vic2NyaXB0aW9uVHlwZSxcclxuICAgICAgc3Vic2NyaXB0aW9uUGVyaW9kOiB0aGlzLmNsaWVudEluZm8uY3VycmVudFBsYW5JbmZvLnN1YnNjcmlwdGlvblBlcmlvZCxcclxuICAgICAgdG90YWxDYW1lcmE6IHRoaXMuY2xpZW50SW5mby5jdXJyZW50UGxhbkluZm8udG90YWxDYW1lcmEsXHJcbiAgICAgIHRvdGFsU3RvcmVzOiB0aGlzLmNsaWVudEluZm8uY3VycmVudFBsYW5JbmZvLnRvdGFsU3RvcmVzLFxyXG4gICAgICBzdG9yZVNpemU6IHRoaXMuY2xpZW50SW5mby5jdXJyZW50UGxhbkluZm8uc3RvcmVTaXplLFxyXG4gICAgICBwcm9kdWN0czogdGhpcy5wcm9kdWN0TGlzdFxyXG4gICAgfVxyXG4gICAgdGhpcy5QYXltZW50U3Vic2NyaXB0aW9uU2VydmljZS51cGRhdGVTdWJzY3JpcHRpb24oZGF0YSkucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSgocmVzOiBhbnkpID0+IHtcclxuICAgICAgaWYgKHJlcyAmJiByZXMuY29kZSA9PSAyMDApIHtcclxuICAgICAgICB0aGlzLmFjdGl2ZU1vZGVsLmNsb3NlKCk7XHJcbiAgICAgICAgY29uc3QgbW9kYWxSZWYgPSB0aGlzLm1vZGFsU2VydmljZS5vcGVuKFVwZ3JhZGVQbGFuQ29tcG9uZW50LCB7XHJcbiAgICAgICAgICBjZW50ZXJlZDogdHJ1ZSwgc2l6ZTogJ21kJ1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIG1vZGFsUmVmLmNvbXBvbmVudEluc3RhbmNlLmNsaWVudElkID0gdGhpcy5jbGllbnRJbmZvLmNsaWVudElkO1xyXG4gICAgICAgIG1vZGFsUmVmLmNvbXBvbmVudEluc3RhbmNlLnN1YnNjcmlwdGlvbiA9IFwiY29uZmlybWF0aW9ubWVzc2FnZVwiO1xyXG4gICAgICAgIG1vZGFsUmVmLmNvbXBvbmVudEluc3RhbmNlLmNvbmZpcm1lZFByb2R1Y3RzID0gdGhpcy5wcm9kdWN0TGlzdC5maWx0ZXIoKGl0ZW06IGFueSkgPT4gaXRlbS50eXBlICE9ICdjYW5jZWwnKS5tYXAoKGl0ZW06IGFueSkgPT4gaXRlbS5wcm9kdWN0TmFtZSk7XHJcbiAgICAgICAgbW9kYWxSZWYucmVzdWx0LnRoZW4oKHJlc3VsdCkgPT4geyAgXHJcbiAgICAgICAgICBpZiAocmVzdWx0KSB7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICB9KTtcclxuICAgIHRoaXMuZ2lmVmlzaWJsZSA9IHRydWU7XHJcbiAgfVxyXG4gIHVwZGF0ZVByb2R1Y3QoaW5kZXg6IG51bWJlciwgdHlwZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLnByb2R1Y3RMaXN0W2luZGV4XS50eXBlID0gdHlwZTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cIm1vZGFsLWNvbnRlbnRcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJwLTZcIj5cclxuICAgICAgICA8ZGl2PjxpbWcgc3JjPVwiLi9hc3NldHMvdGFuZ28vY3VzdG9tcG9wdXAtSWNvbnMvc2V0dGluZ3MtaWNvbi5zdmdcIiBhbHQ9XCJcIj48L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGluZyBtdC00IG1zLTFcIj5Db25maXJtYXRpb248L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGVudHRleHQgbXQtNCBtcy0xXCI+XHJcbiAgICAgICAgICAgIFBsZWFzZSB1cGRhdGUgdGhlIHN0YXR1cyBvZiBiZWxvdyBwcm9kdWN0XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1ib2R5XCI+XHJcbiAgICAgICAgICAgIDwhLS1iZWdpbjo6Rm9ybS0tPlxyXG4gICAgICAgICAgICA8Zm9ybSBpZD1cImt0X21vZGFsX25ld19jYXJkX2Zvcm1cIiBjbGFzcz1cImZvcm0gZnYtcGx1Z2lucy1ib290c3RyYXA1IGZ2LXBsdWdpbnMtZnJhbWV3b3JrXCIgYWN0aW9uPVwiI1wiPlxyXG4gICAgXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZnYtcm93IGZ2LXBsdWdpbnMtaWNvbi1jb250YWluZXIgXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbmZpcm1hdGlvbmJvcmRlciBtYi0zXCIgKm5nRm9yPVwibGV0IHByb2R1Y3Qgb2YgcHJvZHVjdExpc3Q7bGV0IGk9aW5kZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cIlRhbmdvWm9uZVwiIGNsYXNzPVwiIHByb2R1Y3R0ZXh0IG1iLTJcIj57e3Byb2R1Y3QucHJvZHVjdE5hbWV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImJhZGdlIGJhZGdlLWxpZ2h0LXByaW1hcnkgbXMtMlwiICpuZ0lmPVwicHJvZHVjdC5jb250ZW50ID09PSAndHJpYWwnXCI+T24gVHJpYWxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwibXMtMlwiIHNyYz1cIi4vYXNzZXRzL3RhbmdvL2N1c3RvbXBvcHVwLUljb25zL3ByaW1hcnktY2xvY2staWNvbi5zdmdcIiBhbHQ9XCJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYmFkZ2UgYmFkZ2UtbGlnaHQtd2FybmluZyBtcy0yXCIgKm5nSWY9XCJwcm9kdWN0LmNvbnRlbnQgPT09ICd0cmlhbEV4cGlyZWQnXCI+VHJpYWwgRXhwaXJlZFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJtcy0yXCIgc3JjPVwiLi9hc3NldHMvdGFuZ28vY3VzdG9tcG9wdXAtSWNvbnMvd2FybmluZy1jbG9jay1pY29uLnN2Z1wiIGFsdD1cIlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXAgcHQtMVwiICpuZ0lmPVwicHJvZHVjdC5jb250ZW50ID09PSAndHJpYWwnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVjayBmb3JtLWNoZWNrLWlubGluZSBwcy0wXCIgKGNsaWNrKT1cInVwZGF0ZVByb2R1Y3QoaSwndHJpYWwnKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCAgY2xhc3M9XCIgY3Vyc29yLXBvaW50ZXIgcmFkaW8tY3VzdG9tXCIgdHlwZT1cInJhZGlvXCIgbmFtZT1cIm9udHJhaWxSYWRpb09wdGlvbnNfe3tpfX1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cImlubGluZVJhZGlvMVwiIHZhbHVlPVwiY29udGludWV0cmFpbFwiIGNoZWNrZWQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbCByYWRpby1jdXN0b20tbGFiZWwgbXgtMyBwcm9kdWN0dGV4dCBjdXJzb3ItcG9pbnRlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcj1cImlubGluZVJhZGlvMVwiPkNvbnRpbnVlIHdpdGggVHJpYWw8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+PGJyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2sgZm9ybS1jaGVjay1pbmxpbmUgcHMtMFwiIChjbGljayk9XCJ1cGRhdGVQcm9kdWN0KGksJ3N1YnNjcmlwdGlvbicpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiIGN1cnNvci1wb2ludGVyIHJhZGlvLWN1c3RvbVwiIHR5cGU9XCJyYWRpb1wiIG5hbWU9XCJvbnRyYWlsUmFkaW9PcHRpb25zX3t7aX19XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJpbmxpbmVSYWRpbzFcIiB2YWx1ZT1cImFkZHN1YnNjcmlwdGlvblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWwgcHJvZHVjdHRleHQgcmFkaW8tY3VzdG9tLWxhYmVsIG14LTMgY3Vyc29yLXBvaW50ZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3I9XCJpbmxpbmVSYWRpbzFcIj5BZGQgdG8gU3Vic2NyaXB0aW9uPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cCBwdC0xXCIgKm5nSWY9XCJwcm9kdWN0LmNvbnRlbnQgPT09ICd0cmlhbEV4cGlyZWQnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVjayBmb3JtLWNoZWNrLWlubGluZSBwcy0wXCIgKGNsaWNrKT1cInVwZGF0ZVByb2R1Y3QoaSwnc3Vic2NyaXB0aW9uJylcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCIgY3Vyc29yLXBvaW50ZXIgcmFkaW8tY3VzdG9tXCIgdHlwZT1cInJhZGlvXCIgbmFtZT1cIlRyYWlsRXhwaXJlZFJhZGlvT3B0aW9uc197e2l9fVwiIGlkPVwiaW5saW5lUmFkaW8xXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9XCJzdWJzY3JpYmVub3dcIiBjaGVja2VkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWwgcmFkaW8tY3VzdG9tLWxhYmVsIG14LTMgcHJvZHVjdHRleHQgY3Vyc29yLXBvaW50ZXJcIiBmb3I9XCJpbmxpbmVSYWRpbzFcIj5TdWJzY3JpYmUgTm93PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2Pjxicj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrIGZvcm0tY2hlY2staW5saW5lIHBzLTBcIiAoY2xpY2spPVwidXBkYXRlUHJvZHVjdChpLCdjYW5jZWwnKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cIiBjdXJzb3ItcG9pbnRlciByYWRpby1jdXN0b21cIiB0eXBlPVwicmFkaW9cIiBuYW1lPVwiVHJhaWxFeHBpcmVkUmFkaW9PcHRpb25zX3t7aX19XCIgaWQ9XCJpbmxpbmVSYWRpbzFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT1cImRvbGF0ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsIHByb2R1Y3R0ZXh0IHJhZGlvLWN1c3RvbS1sYWJlbCBteC0zIGN1cnNvci1wb2ludGVyXCIgZm9yPVwiaW5saW5lUmFkaW8xXCI+SSdsbCBkbyBpdFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhdGVyPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cCBwdC0xXCIgKm5nSWY9XCJwcm9kdWN0LmNvbnRlbnQgPT09ICduZXcnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVjayBmb3JtLWNoZWNrLWlubGluZSBwcy0wXCIgKGNsaWNrKT1cInVwZGF0ZVByb2R1Y3QoaSwndHJpYWwnKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cIiBjdXJzb3ItcG9pbnRlciByYWRpby1jdXN0b21cIiB0eXBlPVwicmFkaW9cIiBuYW1lPVwic3VwcG9ydFJhZGlvT3B0aW9uc197e2l9fVwiIGlkPVwiaW5saW5lUmFkaW8xXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9XCJkYXlzdHJhaWxcIiBjaGVja2VkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWwgcmFkaW8tY3VzdG9tLWxhYmVsIG14LTMgcHJvZHVjdHRleHQgY3Vyc29yLXBvaW50ZXJcIiBmb3I9XCJpbmxpbmVSYWRpbzFcIj5TdGFydCAxNFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXlzIFRyaWFsPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2Pjxicj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrIGZvcm0tY2hlY2staW5saW5lIHBzLTBcIiAoY2xpY2spPVwidXBkYXRlUHJvZHVjdChpLCdzdWJzY3JpcHRpb24nKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cIiBjdXJzb3ItcG9pbnRlciByYWRpby1jdXN0b21cIiB0eXBlPVwicmFkaW9cIiBuYW1lPVwic3VwcG9ydFJhZGlvT3B0aW9uc197e2l9fVwiIGlkPVwiaW5saW5lUmFkaW8xXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9XCJzdWJzY3JpYmVub3dcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsIHByb2R1Y3R0ZXh0IHJhZGlvLWN1c3RvbS1sYWJlbCBteC0zIGN1cnNvci1wb2ludGVyXCIgZm9yPVwiaW5saW5lUmFkaW8xXCI+U3Vic2NyaWJlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5vdzwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj48YnI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVjayBmb3JtLWNoZWNrLWlubGluZSBwcy0wXCIgKGNsaWNrKT1cInVwZGF0ZVByb2R1Y3QoaSwnY2FuY2VsJylcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCIgY3Vyc29yLXBvaW50ZXIgcmFkaW8tY3VzdG9tXCIgdHlwZT1cInJhZGlvXCIgbmFtZT1cInN1cHBvcnRSYWRpb09wdGlvbnNfe3tpfX1cIiBpZD1cImlubGluZVJhZGlvMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPVwibGF0ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsIHByb2R1Y3R0ZXh0IHJhZGlvLWN1c3RvbS1sYWJlbCBteC0zIGN1cnNvci1wb2ludGVyXCIgZm9yPVwiaW5saW5lUmFkaW8xXCI+SSdsbCBkbyBpdFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXRlcjwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggbXQtOSBteS0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cInN1Ym1pdFwiIGNsYXNzPVwiYnRuLW91dGxpbmUgYnRuIGNhbmNlbCBtZS00IHctNTBcIiAoY2xpY2spPVwiYWN0aXZlTW9kZWwuY2xvc2UoKVwiPkNhbmNlbDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwic3VzY3JpYmVkKClcIiB0YWJpbmRleD1cIjBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgcHgtNCBuZy1zdGFyLWluc2VydGVkIHctNTBcIiBzdHlsZT1cIndoaXRlLXNwYWNlOiBub3dyYXA7XCI+PHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInN1Ym1pdFwiPlN1Ym1pdDwvc3Bhbj48L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgXHJcbiAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgIDwhLS1lbmQ6OkFjdGlvbnMtLT5cclxuICAgICAgICAgICAgPC9mb3JtPlxyXG4gICAgICAgICAgICA8IS0tZW5kOjpGb3JtLS0+XHJcbiAgICAgIFxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PiJdfQ==
@@ -170,7 +170,7 @@ export class PaymentSubscriptionService {
170
170
  .put(`${this.paymentSubscriptionApiUrl}/update/subscription/${data.clientId}`, data, {});
171
171
  }
172
172
  invoiceDownload(data) {
173
- return this.http.post(`${this.paymentSubscriptionApiUrl}/invoiceDownload`, data, { responseType: 'arraybuffer' });
173
+ return this.http.post(`${this.paymentSubscriptionApiUrl}/invoiceDownload/${data._id}`, data, { responseType: 'arraybuffer' });
174
174
  }
175
175
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: PaymentSubscriptionService, deps: [{ token: i1.HttpClient }, { token: i2.GlobalStateService }], target: i0.ɵɵFactoryTarget.Injectable });
176
176
  static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: PaymentSubscriptionService, providedIn: 'root' });
@@ -181,4 +181,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImpor
181
181
  providedIn: 'root'
182
182
  }]
183
183
  }], ctorParameters: () => [{ type: i1.HttpClient }, { type: i2.GlobalStateService }] });
184
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF5bWVudC1zdWJzY3JpcHRpb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLW1hbmFnZS1zZXR0aW5ncy9zcmMvbGliL3NlcnZpY2VzL3BheW1lbnQtc3Vic2NyaXB0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFVBQVUsRUFBWSxNQUFNLGVBQWUsQ0FBQztBQUNyRCxPQUFPLEVBQUUsZUFBZSxFQUFjLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdkUsT0FBTyxLQUFLLFNBQVMsTUFBTSxZQUFZLENBQUM7QUFDeEMsT0FBTyxLQUFLLElBQUksTUFBTSxNQUFNLENBQUM7Ozs7QUFFN0IsTUFBTSxVQUFVLEdBQUcsaUZBQWlGLENBQUM7QUFDckcsTUFBTSxlQUFlLEdBQUcsT0FBTyxDQUFDO0FBTWhDLE1BQU0sT0FBTywwQkFBMEI7SUFRakI7SUFBMEI7SUFQOUMseUJBQXlCLENBQUs7SUFDdEIsaUJBQWlCLEdBQUcsSUFBSSxlQUFlLENBQVUsS0FBSyxDQUFDLENBQUM7SUFDaEUsV0FBVyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUVwRCw2Q0FBNkM7SUFDN0MsOENBQThDO0lBQzlDLHNCQUFzQixHQUFHLElBQUksZUFBZSxDQUFNLEVBQUMsS0FBSyxFQUFDLElBQUksRUFBRSxJQUFJLEVBQUMsSUFBSSxFQUFFLElBQUksRUFBQyxJQUFJLEVBQUMsQ0FBQyxDQUFBO0lBQ3JGLFlBQW9CLElBQWdCLEVBQVUsRUFBc0I7UUFBaEQsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUFVLE9BQUUsR0FBRixFQUFFLENBQW9CO1FBQ2xFLElBQUksQ0FBQyxFQUFFLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsU0FB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LElBQUksQ0FBTSxHQUFHLElBQUksQ0FBQyx5QkFBeUIsc0JBQXNCLEVBQUMsSUFBSSxFQUFFLEVBQ3hFLENBQUMsQ0FBQTtJQUNOLENBQUM7SUFFRCxXQUFXLENBQUMsSUFBUztRQUNuQixPQUFPLElBQUksQ0FBQyxJQUFJO2FBQ2IsSUFBSSxDQUFNLEdBQUcsSUFBSSxDQUFDLHlCQUF5QixjQUFjLEVBQUUsSUFBSSxFQUFFLEVBQ2pFLENBQUMsQ0FBQTtJQUNOLENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxJQUFTO1FBQzFCLE9BQU8sSUFBSSxDQUFDLElBQUk7YUFDYixHQUFHLENBQU0sR0FBRyxJQUFJLENBQUMseUJBQXlCLHdCQUF3QixJQUFJLENBQUMsUUFBUSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQ3pGLENBQUMsQ0FBQTtJQUNOLENBQUM7SUFFRCxlQUFlLENBQUMsSUFBUztRQUN2QixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLHlCQUF5QixrQkFBa0IsRUFBRSxJQUFJLEVBQUUsRUFBQyxZQUFZLEVBQUUsYUFBYSxFQUFDLENBQUMsQ0FBQTtJQUNqSCxDQUFDO3VHQXJNVSwwQkFBMEI7MkdBQTFCLDBCQUEwQixjQUZ6QixNQUFNOzsyRkFFUCwwQkFBMEI7a0JBSHRDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSxPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBTdWJqZWN0LCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0ICogYXMgRmlsZVNhdmVyIGZyb20gJ2ZpbGUtc2F2ZXInO1xyXG5pbXBvcnQgKiBhcyBYTFNYIGZyb20gJ3hsc3gnO1xyXG4gXHJcbmNvbnN0IEVYQ0VMX1RZUEUgPSAnYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuc2hlZXQ7Y2hhcnNldD1VVEYtOCc7XHJcbmNvbnN0IEVYQ0VMX0VYVEVOU0lPTiA9ICcueGxzeCc7XHJcbmltcG9ydCB7IEdsb2JhbFN0YXRlU2VydmljZSB9IGZyb20gJ3RhbmdvLWFwcC11aS1nbG9iYWwnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgUGF5bWVudFN1YnNjcmlwdGlvblNlcnZpY2UgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xyXG4gIHBheW1lbnRTdWJzY3JpcHRpb25BcGlVcmw6YW55O1xyXG4gIHByaXZhdGUgcmVsb2FkRGF0YVN1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcclxuICByZWxvYWREYXRhJCA9IHRoaXMucmVsb2FkRGF0YVN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XHJcblxyXG4gIC8vIGNsaWVudElkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+KCcnKVxyXG4gIC8vIGNsaWVudERhdGEgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGFueT4obnVsbClcclxuICBwYXltZW50aW52b2ljZUZvcm1EYXRhID0gbmV3IEJlaGF2aW9yU3ViamVjdDxhbnk+KHt2YWx1ZTpudWxsLCB0eXBlOm51bGwsIGZvcm06bnVsbH0pXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LCBwcml2YXRlIGdzOiBHbG9iYWxTdGF0ZVNlcnZpY2UpIHtcclxuICAgIHRoaXMuZ3MuZW52aXJvbm1lbnQucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSgoZW52KSA9PiB7XHJcbiAgICAgIGlmIChlbnYpIHtcclxuICAgICAgICB0aGlzLnBheW1lbnRTdWJzY3JpcHRpb25BcGlVcmwgPSBlbnYucGF5bWVudFN1YnNjcmlwdGlvbkFwaVVybDtcclxuICAgICAgICAvLyB0aGlzLmNsaWVudElkLm5leHQoJzExJylcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICAvLyB0aGlzLmdzLnNlbGVjdGVkQ2xpZW50LnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoKGU6YW55KT0+e1xyXG4gICAgLy8gICBpZihlKXtcclxuICAgIC8vICAgICBjb25zb2xlLmxvZyhlLCdlJyk7XHJcbiAgICAvLyAgIH1cclxuICAgIC8vIH0pXHJcbiAgfVxyXG4gIFxyXG4gIHRyaWdnZXJSZWxvYWQoKSB7XHJcbiAgICB0aGlzLnJlbG9hZERhdGFTdWJqZWN0Lm5leHQodHJ1ZSk7XHJcbiAgfVxyXG5cclxuIFxyXG4gIHB1YmxpYyBleHBvcnRBc0V4Y2VsRmlsZShqc29uOiBhbnlbXSwgZXhjZWxGaWxlTmFtZTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICAgIGNvbnN0IHdvcmtzaGVldDogWExTWC5Xb3JrU2hlZXQgPSBYTFNYLnV0aWxzLmpzb25fdG9fc2hlZXQoanNvbik7XHJcbiAgICAgIGNvbnN0IHdvcmtib29rOiBYTFNYLldvcmtCb29rID0geyBTaGVldHM6IHsgJ2RhdGEnOiB3b3Jrc2hlZXQgfSwgU2hlZXROYW1lczogWydkYXRhJ10gfTtcclxuICAgICAgY29uc3QgZXhjZWxCdWZmZXI6IGFueSA9IFhMU1gud3JpdGUod29ya2Jvb2ssIHsgYm9va1R5cGU6ICd4bHN4JywgdHlwZTogJ2FycmF5JyB9KTtcclxuICAgICAgdGhpcy5zYXZlQXNFeGNlbEZpbGUoZXhjZWxCdWZmZXIsIGV4Y2VsRmlsZU5hbWUpO1xyXG4gICAgfVxyXG4gICBcclxuICAgIHB1YmxpYyBzYXZlQXNFeGNlbEZpbGUoYnVmZmVyOiBhbnksIGZpbGVOYW1lOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgICAgY29uc3QgZGF0YTogQmxvYiA9IG5ldyBCbG9iKFtidWZmZXJdLCB7XHJcbiAgICAgICAgdHlwZTogRVhDRUxfVFlQRVxyXG4gICAgICB9KTtcclxuICAgICAgRmlsZVNhdmVyLnNhdmVBcyhkYXRhLCBmaWxlTmFtZSArICdsaXN0JysgRVhDRUxfRVhURU5TSU9OKTtcclxuICAgIH1cclxuICAgXHJcbiAgICBwdWJsaWMgc2F2ZUFzVGVtcGxhdGUoYnVmZmVyOiBhbnksIGZpbGVOYW1lOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgICAgY29uc3QgZGF0YTogQmxvYiA9IG5ldyBCbG9iKFtidWZmZXJdLCB7XHJcbiAgICAgICAgdHlwZTogRVhDRUxfVFlQRVxyXG4gICAgICB9KTtcclxuICAgICAgRmlsZVNhdmVyLnNhdmVBcyhkYXRhLCBmaWxlTmFtZSArIEVYQ0VMX0VYVEVOU0lPTik7XHJcbiAgICB9XHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3kkID0gbmV3IFN1YmplY3QoKTtcclxuIFxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KHRydWUpO1xyXG4gICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xyXG4gIH1cclxuIFxyXG5cclxuICBjbGllbnRCaWxsaW5nSW5mbyhwYXJhbXM/OiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAuZ2V0KGAke3RoaXMucGF5bWVudFN1YnNjcmlwdGlvbkFwaVVybH0vY2xpZW50QmlsbGluZ1N1YnNjcmlwdGlvbkluZm8vJHtwYXJhbXN9YClcclxuICB9XHJcbiBcclxuICB1cGRhdGVhZGRiaWxsaW5nKGJpbGxpbmdCb2R5UmVxOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAucG9zdDxhbnk+KGAke3RoaXMucGF5bWVudFN1YnNjcmlwdGlvbkFwaVVybH0vYWRkQmlsbGluZ2AsIGJpbGxpbmdCb2R5UmVxKVxyXG4gICAgICBcclxuICB9XHJcbiAgYWRkc3RlcHByaWNlKGJpbGxpbmdCb2R5UmVxOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAucG9zdDxhbnk+KGAke3RoaXMucGF5bWVudFN1YnNjcmlwdGlvbkFwaVVybH0vYWRkc3RlcHByaWNlYCwgYmlsbGluZ0JvZHlSZXEpICBcclxuICB9XHJcblxyXG4gIGdldHBheW1lbnRpbnZvaWNlKHBhcmFtcz86IGFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5nZXQoYCR7dGhpcy5wYXltZW50U3Vic2NyaXB0aW9uQXBpVXJsfS9JbnZvaWNlRGV0YWlscy8ke3BhcmFtc31gKVxyXG4gIH1cclxuICBpbnZvaWNlVGFibGVEYXRhKCBkYXRhOmFueSk6T2JzZXJ2YWJsZTxhbnk+e1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMucGF5bWVudFN1YnNjcmlwdGlvbkFwaVVybH0vaW52b2ljZUxpc3RgLCBkYXRhKVxyXG4gIH1cclxuICBpbnZvaWNlVGFibGVEYXRhRXhwb3J0KCBkYXRhOmFueSk6T2JzZXJ2YWJsZTxhbnk+e1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMucGF5bWVudFN1YnNjcmlwdGlvbkFwaVVybH0vaW52b2ljZUxpc3RgLCBkYXRhLCB7cmVzcG9uc2VUeXBlOiAnYXJyYXlidWZmZXInfSlcclxuICB9XHJcbiAgcGVuZGluZ2ludm9pY2VsaXN0KCBkYXRhOmFueSk6T2JzZXJ2YWJsZTxhbnk+e1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMucGF5bWVudFN1YnNjcmlwdGlvbkFwaVVybH0vaW52b2ljZUxpc3RgLCBkYXRhKVxyXG4gIH1cclxuICBnZXRpbnZvaWNlKGlkPzogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLmdldChgJHt0aGlzLnBheW1lbnRTdWJzY3JpcHRpb25BcGlVcmx9L2NyZWRpdE5vdGVzL2ludm9pY2VMaXN0LyR7aWR9YClcclxuICB9XHJcbiAgZ2V0ZXh0ZW5kdHJhaWwoY2xpZW50SWQ6c3RyaW5nKTpPYnNlcnZhYmxlPGFueT57IFxyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYCR7dGhpcy5wYXltZW50U3Vic2NyaXB0aW9uQXBpVXJsfS9nZXRUcmlhbFByb2R1Y3RzP2NsaWVudElkPSR7Y2xpZW50SWR9YCApXHJcbiAgfVxyXG4gIHRyYWlsYXBwcm92YWwoIGRhdGE6YW55KTpPYnNlcnZhYmxlPGFueT57XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5wYXltZW50U3Vic2NyaXB0aW9uQXBpVXJsfS90cmlhbEV4dGVuZFJlcXVlc3RgLCBkYXRhKVxyXG4gIH1cclxuICB1bnN1YnNjcmliZSggZGF0YTphbnkpOk9ic2VydmFibGU8YW55PntcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnBheW1lbnRTdWJzY3JpcHRpb25BcGlVcmx9L3Vuc3Vic2NyaWJlYCwgZGF0YSlcclxuICB9XHJcbiAgaW52b2ljZXVwZGF0ZSggZGF0YTphbnksaWQ6YW55KTpPYnNlcnZhYmxlPGFueT57XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dChgJHt0aGlzLnBheW1lbnRTdWJzY3JpcHRpb25BcGlVcmx9L3VwZGF0ZS9JbnZvaWNlRGV0YWlscy8ke2lkfWAsIGRhdGEpXHJcbiAgfVxyXG4gIGNyZWRpdG5vdGV1cGRhdGUoIGRhdGE6YW55KTpPYnNlcnZhYmxlPGFueT57XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5wYXltZW50U3Vic2NyaXB0aW9uQXBpVXJsfS9jcmVkaXROb3Rlc2AsIGRhdGEpXHJcbiAgfVxyXG5cclxuICBnZXRQcmljZURldGFpbHMoZGF0YTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLnBvc3Q8YW55PihgJHt0aGlzLnBheW1lbnRTdWJzY3JpcHRpb25BcGlVcmx9L2FkbWluL3ByaWNlTGlzdGAsIGRhdGEse1xyXG4gICAgICAgIGhlYWRlcnM6e1xyXG4gICAgICAgICAgQXV0aG9yaXphdGlvbjonQmVhcmVyIDMxYjkwZTVlLTQ1MWEtNGU0OC1hOWUwLThmNzM2YjViZTBjYSd9XHJcbiAgICAgIH0pXHJcbiAgfVxyXG5cclxuICB1cGRhdGVQcmljaW5nKGRhdGE6IGFueSk6T2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLnBvc3Q8YW55PihgJHt0aGlzLnBheW1lbnRTdWJzY3JpcHRpb25BcGlVcmx9L2FkbWluL3ByaWNpbmdgLCBkYXRhLCB7XHJcbiAgICAgICAgaGVhZGVyczoge1xyXG4gICAgICAgICAgQXV0aG9yaXphdGlvbjogJ0JlYXJlciAzMWI5MGU1ZS00NTFhLTRlNDgtYTllMC04ZjczNmI1YmUwY2EnXHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gIH1cclxuXHJcbiAgZ2V0UHJvZHVjdExpc3QoZGF0YTogYW55KTpPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAuZ2V0PGFueT4oYCR7dGhpcy5wYXltZW50U3Vic2NyaXB0aW9uQXBpVXJsfS9hZG1pbi9nZXRQcm9kdWN0Vmlld0xpc3Q/Y2xpZW50SWQ9JHtkYXRhLmlkfSZzb3J0Q29sdW1uPSR7ZGF0YS5zb3J0Q29sdW1ufSZzb3J0Qnk9JHtkYXRhLnNvcnRCeX1gLCB7XHJcbiAgICAgICAgaGVhZGVyczoge1xyXG4gICAgICAgICAgQXV0aG9yaXphdGlvbjogJ0JlYXJlciAzMWI5MGU1ZS00NTFhLTRlNDgtYTllMC04ZjczNmI1YmUwY2EnXHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gIH1cclxuXHJcbiAgZ2V0U3RvcmVMaXN0KGRhdGE6IGFueSk6T2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLnBvc3Q8YW55PihgJHt0aGlzLnBheW1lbnRTdWJzY3JpcHRpb25BcGlVcmx9L2FkbWluL2dldHN0b3JlVmlld0xpc3RgLGRhdGEsIHtcclxuICAgICAgfSlcclxuICB9XHJcblxyXG4gIGdldEZpbHRlckRldGFpbHMoZGF0YTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLmdldDxhbnk+KGAke3RoaXMucGF5bWVudFN1YnNjcmlwdGlvbkFwaVVybH0vYWRtaW4vZ2V0U3RvcmVMb2NhdGlvbkxpc3Q/Y2xpZW50SWQ9JHtkYXRhfWAsIHtcclxuICAgICAgfSlcclxuICB9IFxyXG5cclxuICB1cGRhdGVQcm9kdWN0KGRhdGE6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5wb3N0PGFueT4oYCR7dGhpcy5wYXltZW50U3Vic2NyaXB0aW9uQXBpVXJsfS9hZG1pbi9zdWJzY3JpYmVwcm9kdWN0YCxkYXRhLCB7XHJcbiAgICAgIH0pXHJcbiAgfVxyXG5cclxuICB1cGRhdGVTdG9yZShkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAucG9zdDxhbnk+KGAke3RoaXMucGF5bWVudFN1YnNjcmlwdGlvbkFwaVVybH0vYWRtaW4vYWRkU3RvcmVQcm9kdWN0YCxkYXRhLCB7XHJcbiAgICAgIH0pXHJcbiAgfVxyXG4gIFxyXG4gIHN0b3JlUHJvZHVjdChkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAucG9zdDxhbnk+KGAke3RoaXMucGF5bWVudFN1YnNjcmlwdGlvbkFwaVVybH0vYWRtaW4vZ2V0U3RvcmVQcm9kdWN0c2AsZGF0YSwge1xyXG4gICAgICB9KVxyXG4gIH1cclxuXHJcbiAgdW5zdWJzY3JpYmVBcHByb3ZhbChkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAucG9zdDxhbnk+KGAke3RoaXMucGF5bWVudFN1YnNjcmlwdGlvbkFwaVVybH0vYWRtaW4vdW5zdWJzY3JpYmVBcHByb3ZhbGAsZGF0YSwge1xyXG4gICAgICB9KVxyXG4gIH1cclxuXHJcbiAgZ2V0Tm90aWZpY2F0aW9uKGlkOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAuZ2V0PGFueT4oYCR7dGhpcy5wYXltZW50U3Vic2NyaXB0aW9uQXBpVXJsfS9hZG1pbi9ub3RpZmljYXRpb25MaXN0P2NsaWVudElkPSR7aWR9YCwge1xyXG4gICAgICB9KVxyXG4gIH1cclxuXHJcbiAgdHJpYWxFeHRlbnRBcHByb3ZhbChkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAucG9zdDxhbnk+KGAke3RoaXMucGF5bWVudFN1YnNjcmlwdGlvbkFwaVVybH0vYWRtaW4vdHJpYWxFeHRlbmRBcHByb3ZhbGAsZGF0YSwge1xyXG4gICAgICB9KVxyXG4gIH1cclxuXHJcbiAgYXBwcm92ZVRyaWFsKGRhdGE6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5wb3N0PGFueT4oYCR7dGhpcy5wYXltZW50U3Vic2NyaXB0aW9uQXBpVXJsfS9hZG1pbi90cmlhbEFwcHJvdmFsYCxkYXRhLCB7XHJcbiAgICAgIH0pXHJcbiAgfVxyXG5cclxuICBiYXNlUHJpY2luZyhkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAucG9zdDxhbnk+KGAke3RoaXMucGF5bWVudFN1YnNjcmlwdGlvbkFwaVVybH0vYmFzZVByaWNpbmdgLCBkYXRhLCB7XHJcbiAgICAgIH0pXHJcbiAgfVxyXG5cclxuICB1cGRhdGVTdWJzY3JpcHRpb24oZGF0YTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLnB1dDxhbnk+KGAke3RoaXMucGF5bWVudFN1YnNjcmlwdGlvbkFwaVVybH0vdXBkYXRlL3N1YnNjcmlwdGlvbi8ke2RhdGEuY2xpZW50SWR9YCwgZGF0YSwge1xyXG4gICAgICB9KVxyXG4gIH1cclxuXHJcbiAgaW52b2ljZURvd25sb2FkKGRhdGE6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5wYXltZW50U3Vic2NyaXB0aW9uQXBpVXJsfS9pbnZvaWNlRG93bmxvYWRgLCBkYXRhLCB7cmVzcG9uc2VUeXBlOiAnYXJyYXlidWZmZXInfSlcclxuICB9XHJcblxyXG5cclxuXHJcbn1cclxuXHJcbiJdfQ==
184
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF5bWVudC1zdWJzY3JpcHRpb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLW1hbmFnZS1zZXR0aW5ncy9zcmMvbGliL3NlcnZpY2VzL3BheW1lbnQtc3Vic2NyaXB0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFVBQVUsRUFBWSxNQUFNLGVBQWUsQ0FBQztBQUNyRCxPQUFPLEVBQUUsZUFBZSxFQUFjLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdkUsT0FBTyxLQUFLLFNBQVMsTUFBTSxZQUFZLENBQUM7QUFDeEMsT0FBTyxLQUFLLElBQUksTUFBTSxNQUFNLENBQUM7Ozs7QUFFN0IsTUFBTSxVQUFVLEdBQUcsaUZBQWlGLENBQUM7QUFDckcsTUFBTSxlQUFlLEdBQUcsT0FBTyxDQUFDO0FBTWhDLE1BQU0sT0FBTywwQkFBMEI7SUFRakI7SUFBMEI7SUFQOUMseUJBQXlCLENBQUs7SUFDdEIsaUJBQWlCLEdBQUcsSUFBSSxlQUFlLENBQVUsS0FBSyxDQUFDLENBQUM7SUFDaEUsV0FBVyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUVwRCw2Q0FBNkM7SUFDN0MsOENBQThDO0lBQzlDLHNCQUFzQixHQUFHLElBQUksZUFBZSxDQUFNLEVBQUMsS0FBSyxFQUFDLElBQUksRUFBRSxJQUFJLEVBQUMsSUFBSSxFQUFFLElBQUksRUFBQyxJQUFJLEVBQUMsQ0FBQyxDQUFBO0lBQ3JGLFlBQW9CLElBQWdCLEVBQVUsRUFBc0I7UUFBaEQsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUFVLE9BQUUsR0FBRixFQUFFLENBQW9CO1FBQ2xFLElBQUksQ0FBQyxFQUFFLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsU0FB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LElBQUksQ0FBTSxHQUFHLElBQUksQ0FBQyx5QkFBeUIsc0JBQXNCLEVBQUMsSUFBSSxFQUFFLEVBQ3hFLENBQUMsQ0FBQTtJQUNOLENBQUM7SUFFRCxXQUFXLENBQUMsSUFBUztRQUNuQixPQUFPLElBQUksQ0FBQyxJQUFJO2FBQ2IsSUFBSSxDQUFNLEdBQUcsSUFBSSxDQUFDLHlCQUF5QixjQUFjLEVBQUUsSUFBSSxFQUFFLEVBQ2pFLENBQUMsQ0FBQTtJQUNOLENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxJQUFTO1FBQzFCLE9BQU8sSUFBSSxDQUFDLElBQUk7YUFDYixHQUFHLENBQU0sR0FBRyxJQUFJLENBQUMseUJBQXlCLHdCQUF3QixJQUFJLENBQUMsUUFBUSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQ3pGLENBQUMsQ0FBQTtJQUNOLENBQUM7SUFFRCxlQUFlLENBQUMsSUFBUztRQUN2QixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLHlCQUF5QixvQkFBb0IsSUFBSSxDQUFDLEdBQUcsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFDLFlBQVksRUFBRSxhQUFhLEVBQUMsQ0FBQyxDQUFBO0lBQzdILENBQUM7dUdBck1VLDBCQUEwQjsyR0FBMUIsMEJBQTBCLGNBRnpCLE1BQU07OzJGQUVQLDBCQUEwQjtrQkFIdEMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlLE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgKiBhcyBGaWxlU2F2ZXIgZnJvbSAnZmlsZS1zYXZlcic7XHJcbmltcG9ydCAqIGFzIFhMU1ggZnJvbSAneGxzeCc7XHJcbiBcclxuY29uc3QgRVhDRUxfVFlQRSA9ICdhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5zaGVldDtjaGFyc2V0PVVURi04JztcclxuY29uc3QgRVhDRUxfRVhURU5TSU9OID0gJy54bHN4JztcclxuaW1wb3J0IHsgR2xvYmFsU3RhdGVTZXJ2aWNlIH0gZnJvbSAndGFuZ28tYXBwLXVpLWdsb2JhbCc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBQYXltZW50U3Vic2NyaXB0aW9uU2VydmljZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XHJcbiAgcGF5bWVudFN1YnNjcmlwdGlvbkFwaVVybDphbnk7XHJcbiAgcHJpdmF0ZSByZWxvYWREYXRhU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xyXG4gIHJlbG9hZERhdGEkID0gdGhpcy5yZWxvYWREYXRhU3ViamVjdC5hc09ic2VydmFibGUoKTtcclxuXHJcbiAgLy8gY2xpZW50SWQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4oJycpXHJcbiAgLy8gY2xpZW50RGF0YSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8YW55PihudWxsKVxyXG4gIHBheW1lbnRpbnZvaWNlRm9ybURhdGEgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGFueT4oe3ZhbHVlOm51bGwsIHR5cGU6bnVsbCwgZm9ybTpudWxsfSlcclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsIHByaXZhdGUgZ3M6IEdsb2JhbFN0YXRlU2VydmljZSkge1xyXG4gICAgdGhpcy5ncy5lbnZpcm9ubWVudC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKChlbnYpID0+IHtcclxuICAgICAgaWYgKGVudikge1xyXG4gICAgICAgIHRoaXMucGF5bWVudFN1YnNjcmlwdGlvbkFwaVVybCA9IGVudi5wYXltZW50U3Vic2NyaXB0aW9uQXBpVXJsO1xyXG4gICAgICAgIC8vIHRoaXMuY2xpZW50SWQubmV4dCgnMTEnKVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIC8vIHRoaXMuZ3Muc2VsZWN0ZWRDbGllbnQucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSgoZTphbnkpPT57XHJcbiAgICAvLyAgIGlmKGUpe1xyXG4gICAgLy8gICAgIGNvbnNvbGUubG9nKGUsJ2UnKTtcclxuICAgIC8vICAgfVxyXG4gICAgLy8gfSlcclxuICB9XHJcbiAgXHJcbiAgdHJpZ2dlclJlbG9hZCgpIHtcclxuICAgIHRoaXMucmVsb2FkRGF0YVN1YmplY3QubmV4dCh0cnVlKTtcclxuICB9XHJcblxyXG4gXHJcbiAgcHVibGljIGV4cG9ydEFzRXhjZWxGaWxlKGpzb246IGFueVtdLCBleGNlbEZpbGVOYW1lOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgICAgY29uc3Qgd29ya3NoZWV0OiBYTFNYLldvcmtTaGVldCA9IFhMU1gudXRpbHMuanNvbl90b19zaGVldChqc29uKTtcclxuICAgICAgY29uc3Qgd29ya2Jvb2s6IFhMU1guV29ya0Jvb2sgPSB7IFNoZWV0czogeyAnZGF0YSc6IHdvcmtzaGVldCB9LCBTaGVldE5hbWVzOiBbJ2RhdGEnXSB9O1xyXG4gICAgICBjb25zdCBleGNlbEJ1ZmZlcjogYW55ID0gWExTWC53cml0ZSh3b3JrYm9vaywgeyBib29rVHlwZTogJ3hsc3gnLCB0eXBlOiAnYXJyYXknIH0pO1xyXG4gICAgICB0aGlzLnNhdmVBc0V4Y2VsRmlsZShleGNlbEJ1ZmZlciwgZXhjZWxGaWxlTmFtZSk7XHJcbiAgICB9XHJcbiAgIFxyXG4gICAgcHVibGljIHNhdmVBc0V4Y2VsRmlsZShidWZmZXI6IGFueSwgZmlsZU5hbWU6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgICBjb25zdCBkYXRhOiBCbG9iID0gbmV3IEJsb2IoW2J1ZmZlcl0sIHtcclxuICAgICAgICB0eXBlOiBFWENFTF9UWVBFXHJcbiAgICAgIH0pO1xyXG4gICAgICBGaWxlU2F2ZXIuc2F2ZUFzKGRhdGEsIGZpbGVOYW1lICsgJ2xpc3QnKyBFWENFTF9FWFRFTlNJT04pO1xyXG4gICAgfVxyXG4gICBcclxuICAgIHB1YmxpYyBzYXZlQXNUZW1wbGF0ZShidWZmZXI6IGFueSwgZmlsZU5hbWU6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgICBjb25zdCBkYXRhOiBCbG9iID0gbmV3IEJsb2IoW2J1ZmZlcl0sIHtcclxuICAgICAgICB0eXBlOiBFWENFTF9UWVBFXHJcbiAgICAgIH0pO1xyXG4gICAgICBGaWxlU2F2ZXIuc2F2ZUFzKGRhdGEsIGZpbGVOYW1lICsgRVhDRUxfRVhURU5TSU9OKTtcclxuICAgIH1cclxuICAgIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveSQgPSBuZXcgU3ViamVjdCgpO1xyXG4gXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLmRlc3Ryb3kkLm5leHQodHJ1ZSk7XHJcbiAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XHJcbiAgfVxyXG4gXHJcblxyXG4gIGNsaWVudEJpbGxpbmdJbmZvKHBhcmFtcz86IGFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5nZXQoYCR7dGhpcy5wYXltZW50U3Vic2NyaXB0aW9uQXBpVXJsfS9jbGllbnRCaWxsaW5nU3Vic2NyaXB0aW9uSW5mby8ke3BhcmFtc31gKVxyXG4gIH1cclxuIFxyXG4gIHVwZGF0ZWFkZGJpbGxpbmcoYmlsbGluZ0JvZHlSZXE6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5wb3N0PGFueT4oYCR7dGhpcy5wYXltZW50U3Vic2NyaXB0aW9uQXBpVXJsfS9hZGRCaWxsaW5nYCwgYmlsbGluZ0JvZHlSZXEpXHJcbiAgICAgIFxyXG4gIH1cclxuICBhZGRzdGVwcHJpY2UoYmlsbGluZ0JvZHlSZXE6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5wb3N0PGFueT4oYCR7dGhpcy5wYXltZW50U3Vic2NyaXB0aW9uQXBpVXJsfS9hZGRzdGVwcHJpY2VgLCBiaWxsaW5nQm9keVJlcSkgIFxyXG4gIH1cclxuXHJcbiAgZ2V0cGF5bWVudGludm9pY2UocGFyYW1zPzogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLmdldChgJHt0aGlzLnBheW1lbnRTdWJzY3JpcHRpb25BcGlVcmx9L0ludm9pY2VEZXRhaWxzLyR7cGFyYW1zfWApXHJcbiAgfVxyXG4gIGludm9pY2VUYWJsZURhdGEoIGRhdGE6YW55KTpPYnNlcnZhYmxlPGFueT57XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5wYXltZW50U3Vic2NyaXB0aW9uQXBpVXJsfS9pbnZvaWNlTGlzdGAsIGRhdGEpXHJcbiAgfVxyXG4gIGludm9pY2VUYWJsZURhdGFFeHBvcnQoIGRhdGE6YW55KTpPYnNlcnZhYmxlPGFueT57XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5wYXltZW50U3Vic2NyaXB0aW9uQXBpVXJsfS9pbnZvaWNlTGlzdGAsIGRhdGEsIHtyZXNwb25zZVR5cGU6ICdhcnJheWJ1ZmZlcid9KVxyXG4gIH1cclxuICBwZW5kaW5naW52b2ljZWxpc3QoIGRhdGE6YW55KTpPYnNlcnZhYmxlPGFueT57XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5wYXltZW50U3Vic2NyaXB0aW9uQXBpVXJsfS9pbnZvaWNlTGlzdGAsIGRhdGEpXHJcbiAgfVxyXG4gIGdldGludm9pY2UoaWQ/OiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAuZ2V0KGAke3RoaXMucGF5bWVudFN1YnNjcmlwdGlvbkFwaVVybH0vY3JlZGl0Tm90ZXMvaW52b2ljZUxpc3QvJHtpZH1gKVxyXG4gIH1cclxuICBnZXRleHRlbmR0cmFpbChjbGllbnRJZDpzdHJpbmcpOk9ic2VydmFibGU8YW55PnsgXHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChgJHt0aGlzLnBheW1lbnRTdWJzY3JpcHRpb25BcGlVcmx9L2dldFRyaWFsUHJvZHVjdHM/Y2xpZW50SWQ9JHtjbGllbnRJZH1gIClcclxuICB9XHJcbiAgdHJhaWxhcHByb3ZhbCggZGF0YTphbnkpOk9ic2VydmFibGU8YW55PntcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnBheW1lbnRTdWJzY3JpcHRpb25BcGlVcmx9L3RyaWFsRXh0ZW5kUmVxdWVzdGAsIGRhdGEpXHJcbiAgfVxyXG4gIHVuc3Vic2NyaWJlKCBkYXRhOmFueSk6T2JzZXJ2YWJsZTxhbnk+e1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMucGF5bWVudFN1YnNjcmlwdGlvbkFwaVVybH0vdW5zdWJzY3JpYmVgLCBkYXRhKVxyXG4gIH1cclxuICBpbnZvaWNldXBkYXRlKCBkYXRhOmFueSxpZDphbnkpOk9ic2VydmFibGU8YW55PntcclxuICAgIHJldHVybiB0aGlzLmh0dHAucHV0KGAke3RoaXMucGF5bWVudFN1YnNjcmlwdGlvbkFwaVVybH0vdXBkYXRlL0ludm9pY2VEZXRhaWxzLyR7aWR9YCwgZGF0YSlcclxuICB9XHJcbiAgY3JlZGl0bm90ZXVwZGF0ZSggZGF0YTphbnkpOk9ic2VydmFibGU8YW55PntcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnBheW1lbnRTdWJzY3JpcHRpb25BcGlVcmx9L2NyZWRpdE5vdGVzYCwgZGF0YSlcclxuICB9XHJcblxyXG4gIGdldFByaWNlRGV0YWlscyhkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAucG9zdDxhbnk+KGAke3RoaXMucGF5bWVudFN1YnNjcmlwdGlvbkFwaVVybH0vYWRtaW4vcHJpY2VMaXN0YCwgZGF0YSx7XHJcbiAgICAgICAgaGVhZGVyczp7XHJcbiAgICAgICAgICBBdXRob3JpemF0aW9uOidCZWFyZXIgMzFiOTBlNWUtNDUxYS00ZTQ4LWE5ZTAtOGY3MzZiNWJlMGNhJ31cclxuICAgICAgfSlcclxuICB9XHJcblxyXG4gIHVwZGF0ZVByaWNpbmcoZGF0YTogYW55KTpPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAucG9zdDxhbnk+KGAke3RoaXMucGF5bWVudFN1YnNjcmlwdGlvbkFwaVVybH0vYWRtaW4vcHJpY2luZ2AsIGRhdGEsIHtcclxuICAgICAgICBoZWFkZXJzOiB7XHJcbiAgICAgICAgICBBdXRob3JpemF0aW9uOiAnQmVhcmVyIDMxYjkwZTVlLTQ1MWEtNGU0OC1hOWUwLThmNzM2YjViZTBjYSdcclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgfVxyXG5cclxuICBnZXRQcm9kdWN0TGlzdChkYXRhOiBhbnkpOk9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5nZXQ8YW55PihgJHt0aGlzLnBheW1lbnRTdWJzY3JpcHRpb25BcGlVcmx9L2FkbWluL2dldFByb2R1Y3RWaWV3TGlzdD9jbGllbnRJZD0ke2RhdGEuaWR9JnNvcnRDb2x1bW49JHtkYXRhLnNvcnRDb2x1bW59JnNvcnRCeT0ke2RhdGEuc29ydEJ5fWAsIHtcclxuICAgICAgICBoZWFkZXJzOiB7XHJcbiAgICAgICAgICBBdXRob3JpemF0aW9uOiAnQmVhcmVyIDMxYjkwZTVlLTQ1MWEtNGU0OC1hOWUwLThmNzM2YjViZTBjYSdcclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgfVxyXG5cclxuICBnZXRTdG9yZUxpc3QoZGF0YTogYW55KTpPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAucG9zdDxhbnk+KGAke3RoaXMucGF5bWVudFN1YnNjcmlwdGlvbkFwaVVybH0vYWRtaW4vZ2V0c3RvcmVWaWV3TGlzdGAsZGF0YSwge1xyXG4gICAgICB9KVxyXG4gIH1cclxuXHJcbiAgZ2V0RmlsdGVyRGV0YWlscyhkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAuZ2V0PGFueT4oYCR7dGhpcy5wYXltZW50U3Vic2NyaXB0aW9uQXBpVXJsfS9hZG1pbi9nZXRTdG9yZUxvY2F0aW9uTGlzdD9jbGllbnRJZD0ke2RhdGF9YCwge1xyXG4gICAgICB9KVxyXG4gIH0gXHJcblxyXG4gIHVwZGF0ZVByb2R1Y3QoZGF0YTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLnBvc3Q8YW55PihgJHt0aGlzLnBheW1lbnRTdWJzY3JpcHRpb25BcGlVcmx9L2FkbWluL3N1YnNjcmliZXByb2R1Y3RgLGRhdGEsIHtcclxuICAgICAgfSlcclxuICB9XHJcblxyXG4gIHVwZGF0ZVN0b3JlKGRhdGE6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5wb3N0PGFueT4oYCR7dGhpcy5wYXltZW50U3Vic2NyaXB0aW9uQXBpVXJsfS9hZG1pbi9hZGRTdG9yZVByb2R1Y3RgLGRhdGEsIHtcclxuICAgICAgfSlcclxuICB9XHJcbiAgXHJcbiAgc3RvcmVQcm9kdWN0KGRhdGE6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5wb3N0PGFueT4oYCR7dGhpcy5wYXltZW50U3Vic2NyaXB0aW9uQXBpVXJsfS9hZG1pbi9nZXRTdG9yZVByb2R1Y3RzYCxkYXRhLCB7XHJcbiAgICAgIH0pXHJcbiAgfVxyXG5cclxuICB1bnN1YnNjcmliZUFwcHJvdmFsKGRhdGE6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5wb3N0PGFueT4oYCR7dGhpcy5wYXltZW50U3Vic2NyaXB0aW9uQXBpVXJsfS9hZG1pbi91bnN1YnNjcmliZUFwcHJvdmFsYCxkYXRhLCB7XHJcbiAgICAgIH0pXHJcbiAgfVxyXG5cclxuICBnZXROb3RpZmljYXRpb24oaWQ6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5nZXQ8YW55PihgJHt0aGlzLnBheW1lbnRTdWJzY3JpcHRpb25BcGlVcmx9L2FkbWluL25vdGlmaWNhdGlvbkxpc3Q/Y2xpZW50SWQ9JHtpZH1gLCB7XHJcbiAgICAgIH0pXHJcbiAgfVxyXG5cclxuICB0cmlhbEV4dGVudEFwcHJvdmFsKGRhdGE6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5wb3N0PGFueT4oYCR7dGhpcy5wYXltZW50U3Vic2NyaXB0aW9uQXBpVXJsfS9hZG1pbi90cmlhbEV4dGVuZEFwcHJvdmFsYCxkYXRhLCB7XHJcbiAgICAgIH0pXHJcbiAgfVxyXG5cclxuICBhcHByb3ZlVHJpYWwoZGF0YTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLnBvc3Q8YW55PihgJHt0aGlzLnBheW1lbnRTdWJzY3JpcHRpb25BcGlVcmx9L2FkbWluL3RyaWFsQXBwcm92YWxgLGRhdGEsIHtcclxuICAgICAgfSlcclxuICB9XHJcblxyXG4gIGJhc2VQcmljaW5nKGRhdGE6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5wb3N0PGFueT4oYCR7dGhpcy5wYXltZW50U3Vic2NyaXB0aW9uQXBpVXJsfS9iYXNlUHJpY2luZ2AsIGRhdGEsIHtcclxuICAgICAgfSlcclxuICB9XHJcblxyXG4gIHVwZGF0ZVN1YnNjcmlwdGlvbihkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAucHV0PGFueT4oYCR7dGhpcy5wYXltZW50U3Vic2NyaXB0aW9uQXBpVXJsfS91cGRhdGUvc3Vic2NyaXB0aW9uLyR7ZGF0YS5jbGllbnRJZH1gLCBkYXRhLCB7XHJcbiAgICAgIH0pXHJcbiAgfVxyXG5cclxuICBpbnZvaWNlRG93bmxvYWQoZGF0YTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnBheW1lbnRTdWJzY3JpcHRpb25BcGlVcmx9L2ludm9pY2VEb3dubG9hZC8ke2RhdGEuX2lkfWAsIGRhdGEsIHtyZXNwb25zZVR5cGU6ICdhcnJheWJ1ZmZlcid9KVxyXG4gIH1cclxuXHJcblxyXG5cclxufVxyXG5cclxuIl19