tango-app-ui-manage-settings 3.0.41-dev → 3.0.43-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.
Files changed (46) hide show
  1. package/esm2022/lib/components/activity-logs/activity-logs.component.mjs +4 -4
  2. package/esm2022/lib/components/brand-details/billing-details/billing-details.component.mjs +4 -4
  3. package/esm2022/lib/components/brand-details/brand-details.component.mjs +4 -4
  4. package/esm2022/lib/components/brand-details/brand-info/brand-info.component.mjs +4 -4
  5. package/esm2022/lib/components/brand-details/signatory-details/signatory-details.component.mjs +4 -4
  6. package/esm2022/lib/components/configurations/audit-configuration/audit-configuration.component.mjs +4 -4
  7. package/esm2022/lib/components/configurations/configurations.component.mjs +4 -4
  8. package/esm2022/lib/components/configurations/domain-details/domain-details.component.mjs +4 -4
  9. package/esm2022/lib/components/configurations/email-configuration/email-configuration.component.mjs +4 -4
  10. package/esm2022/lib/components/configurations/employee-training/employee-training.component.mjs +4 -4
  11. package/esm2022/lib/components/configurations/feature-configuration/feature-configuration.component.mjs +4 -4
  12. package/esm2022/lib/components/configurations/report-configuration/add-report/add-report.component.mjs +4 -4
  13. package/esm2022/lib/components/configurations/report-configuration/report-configuration.component.mjs +4 -4
  14. package/esm2022/lib/components/configurations/ticket-configuration/ticket-configuration.component.mjs +4 -4
  15. package/esm2022/lib/components/configurations/user-configuration/user-configuration.component.mjs +4 -4
  16. package/esm2022/lib/components/contact-directory/contact-directory.component.mjs +4 -4
  17. package/esm2022/lib/components/contact-directory/detele-spoc/detele-spoc.component.mjs +4 -4
  18. package/esm2022/lib/components/contact-directory/edit-spoc/edit-spoc.component.mjs +4 -4
  19. package/esm2022/lib/components/documents/documents.component.mjs +4 -4
  20. package/esm2022/lib/components/payments-subscription/payments-subscription.component.mjs +4 -4
  21. package/esm2022/lib/components/payments-subscription/subscription-popups/add-stepprice/add-stepprice.component.mjs +4 -4
  22. package/esm2022/lib/components/payments-subscription/subscription-popups/credit-note/credit-note.component.mjs +4 -4
  23. package/esm2022/lib/components/payments-subscription/subscription-popups/model-content/model-content.component.mjs +4 -4
  24. package/esm2022/lib/components/payments-subscription/subscription-popups/multidropdown/multidropdown.component.mjs +4 -4
  25. package/esm2022/lib/components/payments-subscription/subscription-popups/need-help/need-help.component.mjs +4 -4
  26. package/esm2022/lib/components/payments-subscription/subscription-popups/pricing-revised/pricing-revised.component.mjs +4 -4
  27. package/esm2022/lib/components/payments-subscription/subscription-popups/product-confirmation/product-confirmation.component.mjs +4 -4
  28. package/esm2022/lib/components/payments-subscription/subscription-popups/skip-trail/skip-trail.component.mjs +4 -4
  29. package/esm2022/lib/components/payments-subscription/subscription-popups/subscription-approval/subscription-approval.component.mjs +4 -4
  30. package/esm2022/lib/components/payments-subscription/subscription-popups/successfull-subscription/successfull-subscription.component.mjs +4 -4
  31. package/esm2022/lib/components/payments-subscription/subscription-popups/suspended/suspended.component.mjs +4 -4
  32. package/esm2022/lib/components/payments-subscription/subscription-popups/trail-expired/trail-expired.component.mjs +4 -4
  33. package/esm2022/lib/components/payments-subscription/subscription-popups/trail-settings/trail-settings.component.mjs +4 -4
  34. package/esm2022/lib/components/payments-subscription/subscription-popups/unsubscribe-request/unsubscribe-request.component.mjs +4 -4
  35. package/esm2022/lib/components/payments-subscription/subscription-popups/update/update.component.mjs +4 -4
  36. package/esm2022/lib/components/payments-subscription/subscription-popups/upgrade-plan/upgrade-plan.component.mjs +4 -4
  37. package/esm2022/lib/components/reactive-select/reactive-select.component.mjs +4 -4
  38. package/esm2022/lib/components/tango-manage-settings/tango-manage-settings.component.mjs +4 -4
  39. package/esm2022/lib/directives/dnd.directive.mjs +4 -4
  40. package/esm2022/lib/services/client-api.service.mjs +4 -4
  41. package/esm2022/lib/services/payment-subscription.service.mjs +4 -4
  42. package/esm2022/lib/tango-manage-settings-routing.module.mjs +5 -5
  43. package/esm2022/lib/tango-manage-settings.module.mjs +5 -5
  44. package/fesm2022/tango-app-ui-manage-settings.mjs +131 -131
  45. package/fesm2022/tango-app-ui-manage-settings.mjs.map +1 -1
  46. package/package.json +1 -1
@@ -159,10 +159,10 @@ export class DocumentsComponent {
159
159
  }
160
160
  return formData;
161
161
  }
162
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: DocumentsComponent, deps: [{ token: i1.FormBuilder }, { token: i2.ClientApiService }, { token: i0.ChangeDetectorRef }, { token: i3.ToastService }, { token: i4.GlobalStateService }], target: i0.ɵɵFactoryTarget.Component });
163
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.8", type: DocumentsComponent, selector: "lib-documents", viewQueries: [{ propertyName: "gstFormInput", first: true, predicate: ["gstFormInput"], descendants: true }, { propertyName: "addressProofFormInput", first: true, predicate: ["addressProofFormInput"], descendants: true }, { propertyName: "panFormInput", first: true, predicate: ["panFormInput"], descendants: true }, { propertyName: "cinFormInput", first: true, predicate: ["cinFormInput"], descendants: true }], ngImport: i0, template: "<div class=\"settings-accordian-card\">\r\n <form [formGroup]=\"documentsForm\">\r\n <div class=\"row\">\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.settings_documents_isEdit \">\r\n <div class=\"col-12 mb-5\">\r\n <div class=\" d-flex justify-content-between\">\r\n <div class=\"header\">Upload Your Documents</div>\r\n <button *ngIf=\"documentsForm.disabled\"\r\n (click)=\"documentsForm.disabled ? documentsForm.enable() : documentsForm.disable()\"\r\n type=\"button\" class=\"btn btn-outline align-items-end\"><span class=\"me-2\"><svg\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\"\r\n fill=\"none\">\r\n <g clip-path=\"url(#clip0_2579_25125)\">\r\n <path\r\n d=\"M14.167 2.49993C14.3859 2.28106 14.6457 2.10744 14.9317 1.98899C15.2176 1.87054 15.5241 1.80957 15.8337 1.80957C16.1432 1.80957 16.4497 1.87054 16.7357 1.98899C17.0216 2.10744 17.2815 2.28106 17.5003 2.49993C17.7192 2.7188 17.8928 2.97863 18.0113 3.2646C18.1297 3.55057 18.1907 3.85706 18.1907 4.16659C18.1907 4.47612 18.1297 4.78262 18.0113 5.06859C17.8928 5.35455 17.7192 5.61439 17.5003 5.83326L6.25033 17.0833L1.66699 18.3333L2.91699 13.7499L14.167 2.49993Z\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2579_25125\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg></span>Edit Details</button>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <div class=\"col-md-12 col-lg-6 col-xl-6 col-xxl-6 mb-5\">\r\n <label for=\"gstNumber\" class=\"form-label\">Address Proof <span class=\"alert-required\"></span></label>\r\n <div class=\"input-group \">\r\n <input readonly type=\"text\" class=\"form-control\" placeholder=\"\"\r\n aria-label=\"Example text with button addon\" aria-describedby=\"button-addon1\" id=\"gstNumber\">\r\n <button (click)=\"triggerGstInput('address')\" [disabled]=\"documentsForm.disabled\"\r\n class=\"btn btn-outline upload-btn\" type=\"button\" id=\"button-addon1\">\r\n <span class=\"me-2\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\"\r\n viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M17.5 12.5V15.8333C17.5 16.2754 17.3244 16.6993 17.0118 17.0118C16.6993 17.3244 16.2754 17.5 15.8333 17.5H4.16667C3.72464 17.5 3.30072 17.3244 2.98816 17.0118C2.67559 16.6993 2.5 16.2754 2.5 15.8333V12.5M14.1667 6.66667L10 2.5M10 2.5L5.83333 6.66667M10 2.5V12.5\"\r\n stroke=\"#667085\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></span>\r\n Upload</button>\r\n </div>\r\n <input (change)=\"onFileSelect($event, 'address')\" accept=\".pdf\" class=\"d-none\" #addressProofFormInput type=\"file\">\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.settings_documents_isDownload \">\r\n <a *ngIf=\"clientData?.document?.addressProof?.path && !addressFile\"\r\n [href]=\"clientData?.document?.addressProof?.path\" target=\"_blank\" class=\"mt-3\">\r\n <span class=\"uploaded-doc-text me-2\">Incorporate Certificate</span>\r\n </a>\r\n </ng-container>\r\n <span *ngIf=\"addressFile\" class=\"mt-3 d-flex align-items-center\">\r\n <span class=\"uploaded-doc-text me-2\">{{addressFile.name ? addressFile.name : ''}}</span>\r\n <svg class=\"cursor-pointer\" (click)=\"addressFile = null\" xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path d=\"M12.5003 7.50001L7.50033 12.5M7.50033 7.50001L12.5003 12.5M18.3337 10C18.3337 14.6024 14.6027 18.3333 10.0003 18.3333C5.39795 18.3333 1.66699 14.6024 1.66699 10C1.66699 5.39763 5.39795 1.66667 10.0003 1.66667C14.6027 1.66667 18.3337 5.39763 18.3337 10Z\" stroke=\"#009BF3\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n </span>\r\n\r\n </div>\r\n <div class=\"col-md-12 col-lg-6 col-xl-6 col-xxl-6 mb-5\">\r\n <label for=\"gstNumber\" class=\"form-label\">GST Number <span class=\"alert-required\"></span></label>\r\n <div class=\"input-group \">\r\n <input formControlName=\"gstNumber\" type=\"text\" class=\"form-control\" placeholder=\"\"\r\n aria-label=\"Example text with button addon\" aria-describedby=\"button-addon1\" id=\"gstNumber\">\r\n <button (click)=\"triggerGstInput('gst')\" [disabled]=\"documentsForm.disabled\"\r\n class=\"btn btn-outline upload-btn\" type=\"button\" id=\"button-addon1\">\r\n <span class=\"me-2\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\"\r\n viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M17.5 12.5V15.8333C17.5 16.2754 17.3244 16.6993 17.0118 17.0118C16.6993 17.3244 16.2754 17.5 15.8333 17.5H4.16667C3.72464 17.5 3.30072 17.3244 2.98816 17.0118C2.67559 16.6993 2.5 16.2754 2.5 15.8333V12.5M14.1667 6.66667L10 2.5M10 2.5L5.83333 6.66667M10 2.5V12.5\"\r\n stroke=\"#667085\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></span>\r\n Upload</button>\r\n </div>\r\n <input (change)=\"onFileSelect($event, 'gst')\" accept=\".pdf\" class=\"d-none\" #gstFormInput type=\"file\">\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.settings_documents_isDownload \" >\r\n <a *ngIf=\"clientData?.document?.gst?.path && !gstFile\" [href]=\"clientData?.document?.gst?.path\" target=\"_blank\"\r\n class=\"mt-3\">\r\n <span class=\"uploaded-doc-text me-2\">GST Certificate</span>\r\n </a> \r\n </ng-container>\r\n <span *ngIf=\"gstFile\" class=\"mt-3 d-flex align-items-center\">\r\n <span class=\"uploaded-doc-text me-2\">{{gstFile.name ? gstFile.name : ''}}</span>\r\n <svg class=\"cursor-pointer\" (click)=\"gstFile = null\" xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path d=\"M12.5003 7.50001L7.50033 12.5M7.50033 7.50001L12.5003 12.5M18.3337 10C18.3337 14.6024 14.6027 18.3333 10.0003 18.3333C5.39795 18.3333 1.66699 14.6024 1.66699 10C1.66699 5.39763 5.39795 1.66667 10.0003 1.66667C14.6027 1.66667 18.3337 5.39763 18.3337 10Z\" stroke=\"#009BF3\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n </span>\r\n \r\n </div>\r\n <div class=\"col-md-12 col-lg-6 col-xl-6 col-xxl-6 mb-5\">\r\n <label for=\"gstNumber\" class=\"form-label\">Pan Number <span class=\"alert-required\"></span></label>\r\n <div class=\"input-group \">\r\n <input formControlName=\"panNumber\" type=\"text\" class=\"form-control\" placeholder=\"\"\r\n aria-label=\"Example text with button addon\" aria-describedby=\"button-addon1\" id=\"gstNumber\">\r\n <button (click)=\"triggerGstInput('pan')\" [disabled]=\"documentsForm.disabled\"\r\n class=\"btn btn-outline upload-btn\" type=\"button\" id=\"button-addon1\">\r\n <span class=\"me-2\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\"\r\n viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M17.5 12.5V15.8333C17.5 16.2754 17.3244 16.6993 17.0118 17.0118C16.6993 17.3244 16.2754 17.5 15.8333 17.5H4.16667C3.72464 17.5 3.30072 17.3244 2.98816 17.0118C2.67559 16.6993 2.5 16.2754 2.5 15.8333V12.5M14.1667 6.66667L10 2.5M10 2.5L5.83333 6.66667M10 2.5V12.5\"\r\n stroke=\"#667085\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></span>\r\n Upload</button>\r\n </div>\r\n <input (change)=\"onFileSelect($event, 'pan')\" accept=\".pdf\" class=\"d-none\" #panFormInput type=\"file\">\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.settings_documents_isDownload \" >\r\n <a *ngIf=\"clientData?.document?.pan?.path && !panFile\" [href]=\"clientData?.document?.pan?.path\" target=\"_blank\"\r\n class=\"mt-3\">\r\n <span class=\"uploaded-doc-text me-2\">PAN Certificate</span>\r\n </a> \r\n </ng-container>\r\n <span *ngIf=\"panFile\" class=\"mt-3 d-flex align-items-center\">\r\n <span class=\"uploaded-doc-text me-2\">{{panFile.name ? panFile.name : ''}}</span>\r\n <svg class=\"cursor-pointer\" (click)=\"panFile = null\" xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path d=\"M12.5003 7.50001L7.50033 12.5M7.50033 7.50001L12.5003 12.5M18.3337 10C18.3337 14.6024 14.6027 18.3333 10.0003 18.3333C5.39795 18.3333 1.66699 14.6024 1.66699 10C1.66699 5.39763 5.39795 1.66667 10.0003 1.66667C14.6027 1.66667 18.3337 5.39763 18.3337 10Z\" stroke=\"#009BF3\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n </span>\r\n \r\n </div>\r\n <div class=\"col-md-12 col-lg-6 col-xl-6 col-xxl-6 mb-5\">\r\n <label for=\"gstNumber\" class=\"form-label\">CIN Number <span class=\"alert-required\"></span></label>\r\n <div class=\"input-group \">\r\n <input formControlName=\"cinNumber\" type=\"text\" class=\"form-control\" placeholder=\"\"\r\n aria-label=\"Example text with button addon\" aria-describedby=\"button-addon1\" id=\"gstNumber\">\r\n <button (click)=\"triggerGstInput('cin')\" [disabled]=\"documentsForm.disabled\"\r\n class=\"btn btn-outline upload-btn\" type=\"button\" id=\"button-addon1\">\r\n <span class=\"me-2\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\"\r\n viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M17.5 12.5V15.8333C17.5 16.2754 17.3244 16.6993 17.0118 17.0118C16.6993 17.3244 16.2754 17.5 15.8333 17.5H4.16667C3.72464 17.5 3.30072 17.3244 2.98816 17.0118C2.67559 16.6993 2.5 16.2754 2.5 15.8333V12.5M14.1667 6.66667L10 2.5M10 2.5L5.83333 6.66667M10 2.5V12.5\"\r\n stroke=\"#667085\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></span>\r\n Upload</button>\r\n </div>\r\n <input (change)=\"onFileSelect($event, 'cin')\" accept=\".pdf\" class=\"d-none\" #cinFormInput type=\"file\">\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.settings_documents_isDownload \" >\r\n <a *ngIf=\"clientData?.document?.cin?.path && !cinFile\" [href]=\"clientData?.document?.cin?.path\" target=\"_blank\"\r\n class=\"mt-3\">\r\n <span class=\"uploaded-doc-text me-2\">CIN Certificate</span>\r\n </a> \r\n </ng-container>\r\n <span *ngIf=\"cinFile\" class=\"mt-3 d-flex align-items-center\">\r\n <span class=\"uploaded-doc-text me-2\">{{cinFile.name ? cinFile.name : ''}}</span>\r\n <svg class=\"cursor-pointer\" (click)=\"cinFile = null\" xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path d=\"M12.5003 7.50001L7.50033 12.5M7.50033 7.50001L12.5003 12.5M18.3337 10C18.3337 14.6024 14.6027 18.3333 10.0003 18.3333C5.39795 18.3333 1.66699 14.6024 1.66699 10C1.66699 5.39763 5.39795 1.66667 10.0003 1.66667C14.6027 1.66667 18.3337 5.39763 18.3337 10Z\" stroke=\"#009BF3\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n </span>\r\n \r\n </div>\r\n <div class=\"col-md-12 col-lg-6 col-xl-6 col-xxl-6 mb-5\">\r\n <label for=\"invoiceAuthorityName\" class=\"form-label\">Contract Agreement <span\r\n class=\"alert-required\"></span></label>\r\n\r\n\r\n <div class=\"file-open-input\">\r\n <svg class=\"l-icon\" xmlns=\"http://www.w3.org/2000/svg\" width=\"26\" height=\"26\" viewBox=\"0 0 26 26\"\r\n fill=\"none\">\r\n <path\r\n d=\"M3.24998 0H17.0568L24.3749 7.28977V24.375C24.3749 25.2728 23.647 26 22.75 26H3.24998C2.35296 26 1.625 25.2728 1.625 24.375V1.62498C1.625 0.727203 2.35304 0 3.24998 0Z\"\r\n fill=\"#E2574C\" />\r\n <path\r\n d=\"M24.3514 7.31187H18.6875C17.7905 7.31187 17.0625 6.58391 17.0625 5.68689V0.015625L24.3514 7.31187Z\"\r\n fill=\"#B53629\" />\r\n <path\r\n d=\"M18.2793 12.318C18.5515 12.318 18.6848 12.0808 18.6848 11.8508C18.6848 11.6127 18.5458 11.3828 18.2793 11.3828H16.7291C16.426 11.3828 16.257 11.6338 16.257 11.9109V15.7207C16.257 16.0604 16.4504 16.2489 16.712 16.2489C16.972 16.2489 17.1662 16.0604 17.1662 15.7207V14.6751H18.1039C18.3947 14.6751 18.5402 14.437 18.5402 14.2006C18.5402 13.9691 18.3947 13.739 18.1039 13.739H17.1662V12.318H18.2793ZM13.0395 11.3828H11.9052C11.5973 11.3828 11.3787 11.5941 11.3787 11.9077V15.724C11.3787 16.1132 11.6931 16.2351 11.9182 16.2351H13.1085C14.5174 16.2351 15.4477 15.308 15.4477 13.8772C15.4469 12.3643 14.5711 11.3828 13.0395 11.3828ZM13.094 15.2942H12.4025V12.3237H13.0257C13.9691 12.3237 14.3793 12.9567 14.3793 13.8301C14.3793 14.6475 13.9763 15.2942 13.094 15.2942ZM8.93882 11.3828H7.81515C7.49745 11.3828 7.32031 11.5924 7.32031 11.9109V15.7207C7.32031 16.0604 7.52342 16.2489 7.7964 16.2489C8.06937 16.2489 8.27249 16.0604 8.27249 15.7207V14.6084H8.97691C9.84627 14.6084 10.5637 13.9925 10.5637 13.0021C10.5638 12.0328 9.87158 11.3828 8.93882 11.3828ZM8.92016 13.7147H8.27257V12.2774H8.92016C9.31991 12.2774 9.57422 12.5894 9.57422 12.9964C9.57338 13.4028 9.31991 13.7147 8.92016 13.7147Z\"\r\n fill=\"white\" />\r\n </svg>\r\n <input type=\"type\" value=\"Contract Agreement.pdf\" readonly class=\"form-control\"\r\n id=\"invoiceAuthorityName\" autocomplete=\"off\">\r\n <a target=\"_blank\" class=\"r-icon\" [href]=\"clientData?.document?.contract\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M0.833984 10C0.833984 10 4.16732 3.33337 10.0007 3.33337C15.834 3.33337 19.1673 10 19.1673 10C19.1673 10 15.834 16.6667 10.0007 16.6667C4.16732 16.6667 0.833984 10 0.833984 10Z\"\r\n stroke=\"#344054\" stroke-width=\"1.4\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n <path\r\n d=\"M10.0007 12.5C11.3814 12.5 12.5006 11.3808 12.5006 10C12.5006 8.61933 11.3814 7.50004 10.0007 7.50004C8.61994 7.50004 7.50065 8.61933 7.50065 10C7.50065 11.3808 8.61994 12.5 10.0007 12.5Z\"\r\n stroke=\"#344054\" stroke-width=\"1.4\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </a>\r\n\r\n </div>\r\n\r\n\r\n </div>\r\n <div class=\"col-md-12 col-lg-6 col-xl-6 col-xxl-6 mb-5\">\r\n <label for=\"invoiceAuthorityName\" class=\"form-label\">T&C Agreement <span\r\n class=\"alert-required\"></span></label>\r\n <div class=\"file-open-input\">\r\n <svg class=\"l-icon\" xmlns=\"http://www.w3.org/2000/svg\" width=\"26\" height=\"26\" viewBox=\"0 0 26 26\"\r\n fill=\"none\">\r\n <path\r\n d=\"M3.24998 0H17.0568L24.3749 7.28977V24.375C24.3749 25.2728 23.647 26 22.75 26H3.24998C2.35296 26 1.625 25.2728 1.625 24.375V1.62498C1.625 0.727203 2.35304 0 3.24998 0Z\"\r\n fill=\"#E2574C\" />\r\n <path\r\n d=\"M24.3514 7.31187H18.6875C17.7905 7.31187 17.0625 6.58391 17.0625 5.68689V0.015625L24.3514 7.31187Z\"\r\n fill=\"#B53629\" />\r\n <path\r\n d=\"M18.2793 12.318C18.5515 12.318 18.6848 12.0808 18.6848 11.8508C18.6848 11.6127 18.5458 11.3828 18.2793 11.3828H16.7291C16.426 11.3828 16.257 11.6338 16.257 11.9109V15.7207C16.257 16.0604 16.4504 16.2489 16.712 16.2489C16.972 16.2489 17.1662 16.0604 17.1662 15.7207V14.6751H18.1039C18.3947 14.6751 18.5402 14.437 18.5402 14.2006C18.5402 13.9691 18.3947 13.739 18.1039 13.739H17.1662V12.318H18.2793ZM13.0395 11.3828H11.9052C11.5973 11.3828 11.3787 11.5941 11.3787 11.9077V15.724C11.3787 16.1132 11.6931 16.2351 11.9182 16.2351H13.1085C14.5174 16.2351 15.4477 15.308 15.4477 13.8772C15.4469 12.3643 14.5711 11.3828 13.0395 11.3828ZM13.094 15.2942H12.4025V12.3237H13.0257C13.9691 12.3237 14.3793 12.9567 14.3793 13.8301C14.3793 14.6475 13.9763 15.2942 13.094 15.2942ZM8.93882 11.3828H7.81515C7.49745 11.3828 7.32031 11.5924 7.32031 11.9109V15.7207C7.32031 16.0604 7.52342 16.2489 7.7964 16.2489C8.06937 16.2489 8.27249 16.0604 8.27249 15.7207V14.6084H8.97691C9.84627 14.6084 10.5637 13.9925 10.5637 13.0021C10.5638 12.0328 9.87158 11.3828 8.93882 11.3828ZM8.92016 13.7147H8.27257V12.2774H8.92016C9.31991 12.2774 9.57422 12.5894 9.57422 12.9964C9.57338 13.4028 9.31991 13.7147 8.92016 13.7147Z\"\r\n fill=\"white\" />\r\n </svg>\r\n <input type=\"type\" value=\"T & C Agreement.pdf\" readonly class=\"form-control\"\r\n id=\"invoiceAuthorityName\" autocomplete=\"off\">\r\n <a target=\"_blank\" class=\"r-icon\" [href]=\"clientData?.document?.termsAndconditions\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M0.833984 10C0.833984 10 4.16732 3.33337 10.0007 3.33337C15.834 3.33337 19.1673 10 19.1673 10C19.1673 10 15.834 16.6667 10.0007 16.6667C4.16732 16.6667 0.833984 10 0.833984 10Z\"\r\n stroke=\"#344054\" stroke-width=\"1.4\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n <path\r\n d=\"M10.0007 12.5C11.3814 12.5 12.5006 11.3808 12.5006 10C12.5006 8.61933 11.3814 7.50004 10.0007 7.50004C8.61994 7.50004 7.50065 8.61933 7.50065 10C7.50065 11.3808 8.61994 12.5 10.0007 12.5Z\"\r\n stroke=\"#344054\" stroke-width=\"1.4\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </a>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"documentsForm.enabled\">\r\n <div class=\"mb-5 w-100 footer-seperator\"></div>\r\n <div class=\"d-flex justify-content-end\">\r\n <a type=\"button\" class=\"btn btn-outline me-4\" (click)=\"onCancel()\">Cancel</a>\r\n <a type=\"submit\" class=\"btn btn-primary px-4 \" (click)=\"onSubmit()\"><span>Save Changes</span></a>\r\n </div>\r\n </div>\r\n\r\n </form>\r\n\r\n</div>", styles: [".settings-accordian-card{border-radius:10px;background:#fff;overflow:hidden;padding:16px}.form-control{display:block;height:45px;padding:.5rem 1rem;font-size:1.1rem;font-weight:400;color:var(--Gray-500, #667085);-webkit-appearance:none;appearance:none;border:1px solid var(--Gray-300, #D0D5DD)!important;background:var(--White, #FFF)!important;box-shadow:0 1px 2px #1018280d!important;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}.form-label{color:var(--Gray-700, #344054);font-size:14px;font-style:normal;font-weight:500;line-height:20px}.is-invalid{border-radius:8px!important;border:1px solid var(--Error-300, #FDA29B)!important;background:var(--White, #FFF)!important;box-shadow:0 1px 2px #1018280d!important;padding-right:calc(1.5em + .75rem)!important;background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwXzIyMDFfMjA5NTApIj4KPHBhdGggZD0iTTcuOTk5NjcgNS4zMzM5OFY4LjAwMDY1TTcuOTk5NjcgMTAuNjY3M0g4LjAwNjM0TTE0LjY2NjMgOC4wMDA2NUMxNC42NjYzIDExLjY4MjYgMTEuNjgxNiAxNC42NjczIDcuOTk5NjcgMTQuNjY3M0M0LjMxNzc4IDE0LjY2NzMgMS4zMzMwMSAxMS42ODI2IDEuMzMzMDEgOC4wMDA2NUMxLjMzMzAxIDQuMzE4NzUgNC4zMTc3OCAxLjMzMzk4IDcuOTk5NjcgMS4zMzM5OEMxMS42ODE2IDEuMzMzOTggMTQuNjY2MyA0LjMxODc1IDE0LjY2NjMgOC4wMDA2NVoiIHN0cm9rZT0iI0YwNDQzOCIgc3Ryb2tlLXdpZHRoPSIxLjMzMzMzIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KPC9nPgo8ZGVmcz4KPGNsaXBQYXRoIGlkPSJjbGlwMF8yMjAxXzIwOTUwIj4KPHJlY3Qgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiBmaWxsPSJ3aGl0ZSIvPgo8L2NsaXBQYXRoPgo8L2RlZnM+Cjwvc3ZnPgo=)!important;background-repeat:no-repeat!important;background-position:right calc(.375em + .1875rem) center!important;background-size:calc(.75em + .375rem) calc(.75em + .375rem)!important}small{color:var(--Error-500, #F04438)!important;font-size:14px!important;font-weight:400!important;line-height:20px;display:block;margin-top:6px}.cancel{border-radius:8px;border:1px solid #D0D5DD;background:#fff;color:#344054;font-family:Inter;font-size:14px;font-weight:600;line-height:20px;text-transform:capitalize}.apply{color:#fff;font-family:Inter;font-size:14px;font-style:normal;font-weight:600;line-height:20px;text-transform:capitalize}input[disabled],input[readonly],select[disabled],textarea[disabled],select[readonly],textarea[readonly]{background-color:#f9fafb!important}.footer-seperator{border-top:1px solid #EAECF0}.upload-btn{box-shadow:0 1px 2px #1018280d!important;color:var(--Gray-500, #667085);font-size:16px;font-weight:600}.uploaded-doc-text{color:var(--Primary-700, #009BF3);font-family:Inter;font-size:14px;font-weight:600;text-transform:capitalize;cursor:pointer}.header{color:var(--Gray-700, #344054);font-family:Inter;font-size:18px;font-weight:600;line-height:28px}.file-open-input{position:relative}.file-open-input input{padding-left:50px}.file-open-input input[readonly]{background-color:#fff!important}.file-open-input .l-icon{position:absolute;left:10px;top:10px}.file-open-input .r-icon{position:absolute;right:10px;top:12px}.input-group input[readonly]{background-color:#fff!important}\n"], dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }] });
162
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: DocumentsComponent, deps: [{ token: i1.FormBuilder }, { token: i2.ClientApiService }, { token: i0.ChangeDetectorRef }, { token: i3.ToastService }, { token: i4.GlobalStateService }], target: i0.ɵɵFactoryTarget.Component });
163
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.10", type: DocumentsComponent, selector: "lib-documents", viewQueries: [{ propertyName: "gstFormInput", first: true, predicate: ["gstFormInput"], descendants: true }, { propertyName: "addressProofFormInput", first: true, predicate: ["addressProofFormInput"], descendants: true }, { propertyName: "panFormInput", first: true, predicate: ["panFormInput"], descendants: true }, { propertyName: "cinFormInput", first: true, predicate: ["cinFormInput"], descendants: true }], ngImport: i0, template: "<div class=\"settings-accordian-card\">\r\n <form [formGroup]=\"documentsForm\">\r\n <div class=\"row\">\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.settings_documents_isEdit \">\r\n <div class=\"col-12 mb-5\">\r\n <div class=\" d-flex justify-content-between\">\r\n <div class=\"header\">Upload Your Documents</div>\r\n <button *ngIf=\"documentsForm.disabled\"\r\n (click)=\"documentsForm.disabled ? documentsForm.enable() : documentsForm.disable()\"\r\n type=\"button\" class=\"btn btn-outline align-items-end\"><span class=\"me-2\"><svg\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\"\r\n fill=\"none\">\r\n <g clip-path=\"url(#clip0_2579_25125)\">\r\n <path\r\n d=\"M14.167 2.49993C14.3859 2.28106 14.6457 2.10744 14.9317 1.98899C15.2176 1.87054 15.5241 1.80957 15.8337 1.80957C16.1432 1.80957 16.4497 1.87054 16.7357 1.98899C17.0216 2.10744 17.2815 2.28106 17.5003 2.49993C17.7192 2.7188 17.8928 2.97863 18.0113 3.2646C18.1297 3.55057 18.1907 3.85706 18.1907 4.16659C18.1907 4.47612 18.1297 4.78262 18.0113 5.06859C17.8928 5.35455 17.7192 5.61439 17.5003 5.83326L6.25033 17.0833L1.66699 18.3333L2.91699 13.7499L14.167 2.49993Z\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2579_25125\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg></span>Edit Details</button>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <div class=\"col-md-12 col-lg-6 col-xl-6 col-xxl-6 mb-5\">\r\n <label for=\"gstNumber\" class=\"form-label\">Address Proof <span class=\"alert-required\"></span></label>\r\n <div class=\"input-group \">\r\n <input readonly type=\"text\" class=\"form-control\" placeholder=\"\"\r\n aria-label=\"Example text with button addon\" aria-describedby=\"button-addon1\" id=\"gstNumber\">\r\n <button (click)=\"triggerGstInput('address')\" [disabled]=\"documentsForm.disabled\"\r\n class=\"btn btn-outline upload-btn\" type=\"button\" id=\"button-addon1\">\r\n <span class=\"me-2\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\"\r\n viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M17.5 12.5V15.8333C17.5 16.2754 17.3244 16.6993 17.0118 17.0118C16.6993 17.3244 16.2754 17.5 15.8333 17.5H4.16667C3.72464 17.5 3.30072 17.3244 2.98816 17.0118C2.67559 16.6993 2.5 16.2754 2.5 15.8333V12.5M14.1667 6.66667L10 2.5M10 2.5L5.83333 6.66667M10 2.5V12.5\"\r\n stroke=\"#667085\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></span>\r\n Upload</button>\r\n </div>\r\n <input (change)=\"onFileSelect($event, 'address')\" accept=\".pdf\" class=\"d-none\" #addressProofFormInput type=\"file\">\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.settings_documents_isDownload \">\r\n <a *ngIf=\"clientData?.document?.addressProof?.path && !addressFile\"\r\n [href]=\"clientData?.document?.addressProof?.path\" target=\"_blank\" class=\"mt-3\">\r\n <span class=\"uploaded-doc-text me-2\">Incorporate Certificate</span>\r\n </a>\r\n </ng-container>\r\n <span *ngIf=\"addressFile\" class=\"mt-3 d-flex align-items-center\">\r\n <span class=\"uploaded-doc-text me-2\">{{addressFile.name ? addressFile.name : ''}}</span>\r\n <svg class=\"cursor-pointer\" (click)=\"addressFile = null\" xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path d=\"M12.5003 7.50001L7.50033 12.5M7.50033 7.50001L12.5003 12.5M18.3337 10C18.3337 14.6024 14.6027 18.3333 10.0003 18.3333C5.39795 18.3333 1.66699 14.6024 1.66699 10C1.66699 5.39763 5.39795 1.66667 10.0003 1.66667C14.6027 1.66667 18.3337 5.39763 18.3337 10Z\" stroke=\"#009BF3\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n </span>\r\n\r\n </div>\r\n <div class=\"col-md-12 col-lg-6 col-xl-6 col-xxl-6 mb-5\">\r\n <label for=\"gstNumber\" class=\"form-label\">GST Number <span class=\"alert-required\"></span></label>\r\n <div class=\"input-group \">\r\n <input formControlName=\"gstNumber\" type=\"text\" class=\"form-control\" placeholder=\"\"\r\n aria-label=\"Example text with button addon\" aria-describedby=\"button-addon1\" id=\"gstNumber\">\r\n <button (click)=\"triggerGstInput('gst')\" [disabled]=\"documentsForm.disabled\"\r\n class=\"btn btn-outline upload-btn\" type=\"button\" id=\"button-addon1\">\r\n <span class=\"me-2\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\"\r\n viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M17.5 12.5V15.8333C17.5 16.2754 17.3244 16.6993 17.0118 17.0118C16.6993 17.3244 16.2754 17.5 15.8333 17.5H4.16667C3.72464 17.5 3.30072 17.3244 2.98816 17.0118C2.67559 16.6993 2.5 16.2754 2.5 15.8333V12.5M14.1667 6.66667L10 2.5M10 2.5L5.83333 6.66667M10 2.5V12.5\"\r\n stroke=\"#667085\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></span>\r\n Upload</button>\r\n </div>\r\n <input (change)=\"onFileSelect($event, 'gst')\" accept=\".pdf\" class=\"d-none\" #gstFormInput type=\"file\">\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.settings_documents_isDownload \" >\r\n <a *ngIf=\"clientData?.document?.gst?.path && !gstFile\" [href]=\"clientData?.document?.gst?.path\" target=\"_blank\"\r\n class=\"mt-3\">\r\n <span class=\"uploaded-doc-text me-2\">GST Certificate</span>\r\n </a> \r\n </ng-container>\r\n <span *ngIf=\"gstFile\" class=\"mt-3 d-flex align-items-center\">\r\n <span class=\"uploaded-doc-text me-2\">{{gstFile.name ? gstFile.name : ''}}</span>\r\n <svg class=\"cursor-pointer\" (click)=\"gstFile = null\" xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path d=\"M12.5003 7.50001L7.50033 12.5M7.50033 7.50001L12.5003 12.5M18.3337 10C18.3337 14.6024 14.6027 18.3333 10.0003 18.3333C5.39795 18.3333 1.66699 14.6024 1.66699 10C1.66699 5.39763 5.39795 1.66667 10.0003 1.66667C14.6027 1.66667 18.3337 5.39763 18.3337 10Z\" stroke=\"#009BF3\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n </span>\r\n \r\n </div>\r\n <div class=\"col-md-12 col-lg-6 col-xl-6 col-xxl-6 mb-5\">\r\n <label for=\"gstNumber\" class=\"form-label\">Pan Number <span class=\"alert-required\"></span></label>\r\n <div class=\"input-group \">\r\n <input formControlName=\"panNumber\" type=\"text\" class=\"form-control\" placeholder=\"\"\r\n aria-label=\"Example text with button addon\" aria-describedby=\"button-addon1\" id=\"gstNumber\">\r\n <button (click)=\"triggerGstInput('pan')\" [disabled]=\"documentsForm.disabled\"\r\n class=\"btn btn-outline upload-btn\" type=\"button\" id=\"button-addon1\">\r\n <span class=\"me-2\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\"\r\n viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M17.5 12.5V15.8333C17.5 16.2754 17.3244 16.6993 17.0118 17.0118C16.6993 17.3244 16.2754 17.5 15.8333 17.5H4.16667C3.72464 17.5 3.30072 17.3244 2.98816 17.0118C2.67559 16.6993 2.5 16.2754 2.5 15.8333V12.5M14.1667 6.66667L10 2.5M10 2.5L5.83333 6.66667M10 2.5V12.5\"\r\n stroke=\"#667085\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></span>\r\n Upload</button>\r\n </div>\r\n <input (change)=\"onFileSelect($event, 'pan')\" accept=\".pdf\" class=\"d-none\" #panFormInput type=\"file\">\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.settings_documents_isDownload \" >\r\n <a *ngIf=\"clientData?.document?.pan?.path && !panFile\" [href]=\"clientData?.document?.pan?.path\" target=\"_blank\"\r\n class=\"mt-3\">\r\n <span class=\"uploaded-doc-text me-2\">PAN Certificate</span>\r\n </a> \r\n </ng-container>\r\n <span *ngIf=\"panFile\" class=\"mt-3 d-flex align-items-center\">\r\n <span class=\"uploaded-doc-text me-2\">{{panFile.name ? panFile.name : ''}}</span>\r\n <svg class=\"cursor-pointer\" (click)=\"panFile = null\" xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path d=\"M12.5003 7.50001L7.50033 12.5M7.50033 7.50001L12.5003 12.5M18.3337 10C18.3337 14.6024 14.6027 18.3333 10.0003 18.3333C5.39795 18.3333 1.66699 14.6024 1.66699 10C1.66699 5.39763 5.39795 1.66667 10.0003 1.66667C14.6027 1.66667 18.3337 5.39763 18.3337 10Z\" stroke=\"#009BF3\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n </span>\r\n \r\n </div>\r\n <div class=\"col-md-12 col-lg-6 col-xl-6 col-xxl-6 mb-5\">\r\n <label for=\"gstNumber\" class=\"form-label\">CIN Number <span class=\"alert-required\"></span></label>\r\n <div class=\"input-group \">\r\n <input formControlName=\"cinNumber\" type=\"text\" class=\"form-control\" placeholder=\"\"\r\n aria-label=\"Example text with button addon\" aria-describedby=\"button-addon1\" id=\"gstNumber\">\r\n <button (click)=\"triggerGstInput('cin')\" [disabled]=\"documentsForm.disabled\"\r\n class=\"btn btn-outline upload-btn\" type=\"button\" id=\"button-addon1\">\r\n <span class=\"me-2\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\"\r\n viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M17.5 12.5V15.8333C17.5 16.2754 17.3244 16.6993 17.0118 17.0118C16.6993 17.3244 16.2754 17.5 15.8333 17.5H4.16667C3.72464 17.5 3.30072 17.3244 2.98816 17.0118C2.67559 16.6993 2.5 16.2754 2.5 15.8333V12.5M14.1667 6.66667L10 2.5M10 2.5L5.83333 6.66667M10 2.5V12.5\"\r\n stroke=\"#667085\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></span>\r\n Upload</button>\r\n </div>\r\n <input (change)=\"onFileSelect($event, 'cin')\" accept=\".pdf\" class=\"d-none\" #cinFormInput type=\"file\">\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.settings_documents_isDownload \" >\r\n <a *ngIf=\"clientData?.document?.cin?.path && !cinFile\" [href]=\"clientData?.document?.cin?.path\" target=\"_blank\"\r\n class=\"mt-3\">\r\n <span class=\"uploaded-doc-text me-2\">CIN Certificate</span>\r\n </a> \r\n </ng-container>\r\n <span *ngIf=\"cinFile\" class=\"mt-3 d-flex align-items-center\">\r\n <span class=\"uploaded-doc-text me-2\">{{cinFile.name ? cinFile.name : ''}}</span>\r\n <svg class=\"cursor-pointer\" (click)=\"cinFile = null\" xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path d=\"M12.5003 7.50001L7.50033 12.5M7.50033 7.50001L12.5003 12.5M18.3337 10C18.3337 14.6024 14.6027 18.3333 10.0003 18.3333C5.39795 18.3333 1.66699 14.6024 1.66699 10C1.66699 5.39763 5.39795 1.66667 10.0003 1.66667C14.6027 1.66667 18.3337 5.39763 18.3337 10Z\" stroke=\"#009BF3\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n </span>\r\n \r\n </div>\r\n <div class=\"col-md-12 col-lg-6 col-xl-6 col-xxl-6 mb-5\">\r\n <label for=\"invoiceAuthorityName\" class=\"form-label\">Contract Agreement <span\r\n class=\"alert-required\"></span></label>\r\n\r\n\r\n <div class=\"file-open-input\">\r\n <svg class=\"l-icon\" xmlns=\"http://www.w3.org/2000/svg\" width=\"26\" height=\"26\" viewBox=\"0 0 26 26\"\r\n fill=\"none\">\r\n <path\r\n d=\"M3.24998 0H17.0568L24.3749 7.28977V24.375C24.3749 25.2728 23.647 26 22.75 26H3.24998C2.35296 26 1.625 25.2728 1.625 24.375V1.62498C1.625 0.727203 2.35304 0 3.24998 0Z\"\r\n fill=\"#E2574C\" />\r\n <path\r\n d=\"M24.3514 7.31187H18.6875C17.7905 7.31187 17.0625 6.58391 17.0625 5.68689V0.015625L24.3514 7.31187Z\"\r\n fill=\"#B53629\" />\r\n <path\r\n d=\"M18.2793 12.318C18.5515 12.318 18.6848 12.0808 18.6848 11.8508C18.6848 11.6127 18.5458 11.3828 18.2793 11.3828H16.7291C16.426 11.3828 16.257 11.6338 16.257 11.9109V15.7207C16.257 16.0604 16.4504 16.2489 16.712 16.2489C16.972 16.2489 17.1662 16.0604 17.1662 15.7207V14.6751H18.1039C18.3947 14.6751 18.5402 14.437 18.5402 14.2006C18.5402 13.9691 18.3947 13.739 18.1039 13.739H17.1662V12.318H18.2793ZM13.0395 11.3828H11.9052C11.5973 11.3828 11.3787 11.5941 11.3787 11.9077V15.724C11.3787 16.1132 11.6931 16.2351 11.9182 16.2351H13.1085C14.5174 16.2351 15.4477 15.308 15.4477 13.8772C15.4469 12.3643 14.5711 11.3828 13.0395 11.3828ZM13.094 15.2942H12.4025V12.3237H13.0257C13.9691 12.3237 14.3793 12.9567 14.3793 13.8301C14.3793 14.6475 13.9763 15.2942 13.094 15.2942ZM8.93882 11.3828H7.81515C7.49745 11.3828 7.32031 11.5924 7.32031 11.9109V15.7207C7.32031 16.0604 7.52342 16.2489 7.7964 16.2489C8.06937 16.2489 8.27249 16.0604 8.27249 15.7207V14.6084H8.97691C9.84627 14.6084 10.5637 13.9925 10.5637 13.0021C10.5638 12.0328 9.87158 11.3828 8.93882 11.3828ZM8.92016 13.7147H8.27257V12.2774H8.92016C9.31991 12.2774 9.57422 12.5894 9.57422 12.9964C9.57338 13.4028 9.31991 13.7147 8.92016 13.7147Z\"\r\n fill=\"white\" />\r\n </svg>\r\n <input type=\"type\" value=\"Contract Agreement.pdf\" readonly class=\"form-control\"\r\n id=\"invoiceAuthorityName\" autocomplete=\"off\">\r\n <a target=\"_blank\" class=\"r-icon\" [href]=\"clientData?.document?.contract\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M0.833984 10C0.833984 10 4.16732 3.33337 10.0007 3.33337C15.834 3.33337 19.1673 10 19.1673 10C19.1673 10 15.834 16.6667 10.0007 16.6667C4.16732 16.6667 0.833984 10 0.833984 10Z\"\r\n stroke=\"#344054\" stroke-width=\"1.4\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n <path\r\n d=\"M10.0007 12.5C11.3814 12.5 12.5006 11.3808 12.5006 10C12.5006 8.61933 11.3814 7.50004 10.0007 7.50004C8.61994 7.50004 7.50065 8.61933 7.50065 10C7.50065 11.3808 8.61994 12.5 10.0007 12.5Z\"\r\n stroke=\"#344054\" stroke-width=\"1.4\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </a>\r\n\r\n </div>\r\n\r\n\r\n </div>\r\n <div class=\"col-md-12 col-lg-6 col-xl-6 col-xxl-6 mb-5\">\r\n <label for=\"invoiceAuthorityName\" class=\"form-label\">T&C Agreement <span\r\n class=\"alert-required\"></span></label>\r\n <div class=\"file-open-input\">\r\n <svg class=\"l-icon\" xmlns=\"http://www.w3.org/2000/svg\" width=\"26\" height=\"26\" viewBox=\"0 0 26 26\"\r\n fill=\"none\">\r\n <path\r\n d=\"M3.24998 0H17.0568L24.3749 7.28977V24.375C24.3749 25.2728 23.647 26 22.75 26H3.24998C2.35296 26 1.625 25.2728 1.625 24.375V1.62498C1.625 0.727203 2.35304 0 3.24998 0Z\"\r\n fill=\"#E2574C\" />\r\n <path\r\n d=\"M24.3514 7.31187H18.6875C17.7905 7.31187 17.0625 6.58391 17.0625 5.68689V0.015625L24.3514 7.31187Z\"\r\n fill=\"#B53629\" />\r\n <path\r\n d=\"M18.2793 12.318C18.5515 12.318 18.6848 12.0808 18.6848 11.8508C18.6848 11.6127 18.5458 11.3828 18.2793 11.3828H16.7291C16.426 11.3828 16.257 11.6338 16.257 11.9109V15.7207C16.257 16.0604 16.4504 16.2489 16.712 16.2489C16.972 16.2489 17.1662 16.0604 17.1662 15.7207V14.6751H18.1039C18.3947 14.6751 18.5402 14.437 18.5402 14.2006C18.5402 13.9691 18.3947 13.739 18.1039 13.739H17.1662V12.318H18.2793ZM13.0395 11.3828H11.9052C11.5973 11.3828 11.3787 11.5941 11.3787 11.9077V15.724C11.3787 16.1132 11.6931 16.2351 11.9182 16.2351H13.1085C14.5174 16.2351 15.4477 15.308 15.4477 13.8772C15.4469 12.3643 14.5711 11.3828 13.0395 11.3828ZM13.094 15.2942H12.4025V12.3237H13.0257C13.9691 12.3237 14.3793 12.9567 14.3793 13.8301C14.3793 14.6475 13.9763 15.2942 13.094 15.2942ZM8.93882 11.3828H7.81515C7.49745 11.3828 7.32031 11.5924 7.32031 11.9109V15.7207C7.32031 16.0604 7.52342 16.2489 7.7964 16.2489C8.06937 16.2489 8.27249 16.0604 8.27249 15.7207V14.6084H8.97691C9.84627 14.6084 10.5637 13.9925 10.5637 13.0021C10.5638 12.0328 9.87158 11.3828 8.93882 11.3828ZM8.92016 13.7147H8.27257V12.2774H8.92016C9.31991 12.2774 9.57422 12.5894 9.57422 12.9964C9.57338 13.4028 9.31991 13.7147 8.92016 13.7147Z\"\r\n fill=\"white\" />\r\n </svg>\r\n <input type=\"type\" value=\"T & C Agreement.pdf\" readonly class=\"form-control\"\r\n id=\"invoiceAuthorityName\" autocomplete=\"off\">\r\n <a target=\"_blank\" class=\"r-icon\" [href]=\"clientData?.document?.termsAndconditions\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M0.833984 10C0.833984 10 4.16732 3.33337 10.0007 3.33337C15.834 3.33337 19.1673 10 19.1673 10C19.1673 10 15.834 16.6667 10.0007 16.6667C4.16732 16.6667 0.833984 10 0.833984 10Z\"\r\n stroke=\"#344054\" stroke-width=\"1.4\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n <path\r\n d=\"M10.0007 12.5C11.3814 12.5 12.5006 11.3808 12.5006 10C12.5006 8.61933 11.3814 7.50004 10.0007 7.50004C8.61994 7.50004 7.50065 8.61933 7.50065 10C7.50065 11.3808 8.61994 12.5 10.0007 12.5Z\"\r\n stroke=\"#344054\" stroke-width=\"1.4\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </a>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"documentsForm.enabled\">\r\n <div class=\"mb-5 w-100 footer-seperator\"></div>\r\n <div class=\"d-flex justify-content-end\">\r\n <a type=\"button\" class=\"btn btn-outline me-4\" (click)=\"onCancel()\">Cancel</a>\r\n <a type=\"submit\" class=\"btn btn-primary px-4 \" (click)=\"onSubmit()\"><span>Save Changes</span></a>\r\n </div>\r\n </div>\r\n\r\n </form>\r\n\r\n</div>", styles: [".settings-accordian-card{border-radius:10px;background:#fff;overflow:hidden;padding:16px}.form-control{display:block;height:45px;padding:.5rem 1rem;font-size:1.1rem;font-weight:400;color:var(--Gray-500, #667085);-webkit-appearance:none;appearance:none;border:1px solid var(--Gray-300, #D0D5DD)!important;background:var(--White, #FFF)!important;box-shadow:0 1px 2px #1018280d!important;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}.form-label{color:var(--Gray-700, #344054);font-size:14px;font-style:normal;font-weight:500;line-height:20px}.is-invalid{border-radius:8px!important;border:1px solid var(--Error-300, #FDA29B)!important;background:var(--White, #FFF)!important;box-shadow:0 1px 2px #1018280d!important;padding-right:calc(1.5em + .75rem)!important;background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwXzIyMDFfMjA5NTApIj4KPHBhdGggZD0iTTcuOTk5NjcgNS4zMzM5OFY4LjAwMDY1TTcuOTk5NjcgMTAuNjY3M0g4LjAwNjM0TTE0LjY2NjMgOC4wMDA2NUMxNC42NjYzIDExLjY4MjYgMTEuNjgxNiAxNC42NjczIDcuOTk5NjcgMTQuNjY3M0M0LjMxNzc4IDE0LjY2NzMgMS4zMzMwMSAxMS42ODI2IDEuMzMzMDEgOC4wMDA2NUMxLjMzMzAxIDQuMzE4NzUgNC4zMTc3OCAxLjMzMzk4IDcuOTk5NjcgMS4zMzM5OEMxMS42ODE2IDEuMzMzOTggMTQuNjY2MyA0LjMxODc1IDE0LjY2NjMgOC4wMDA2NVoiIHN0cm9rZT0iI0YwNDQzOCIgc3Ryb2tlLXdpZHRoPSIxLjMzMzMzIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KPC9nPgo8ZGVmcz4KPGNsaXBQYXRoIGlkPSJjbGlwMF8yMjAxXzIwOTUwIj4KPHJlY3Qgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiBmaWxsPSJ3aGl0ZSIvPgo8L2NsaXBQYXRoPgo8L2RlZnM+Cjwvc3ZnPgo=)!important;background-repeat:no-repeat!important;background-position:right calc(.375em + .1875rem) center!important;background-size:calc(.75em + .375rem) calc(.75em + .375rem)!important}small{color:var(--Error-500, #F04438)!important;font-size:14px!important;font-weight:400!important;line-height:20px;display:block;margin-top:6px}.cancel{border-radius:8px;border:1px solid #D0D5DD;background:#fff;color:#344054;font-family:Inter;font-size:14px;font-weight:600;line-height:20px;text-transform:capitalize}.apply{color:#fff;font-family:Inter;font-size:14px;font-style:normal;font-weight:600;line-height:20px;text-transform:capitalize}input[disabled],input[readonly],select[disabled],textarea[disabled],select[readonly],textarea[readonly]{background-color:#f9fafb!important}.footer-seperator{border-top:1px solid #EAECF0}.upload-btn{box-shadow:0 1px 2px #1018280d!important;color:var(--Gray-500, #667085);font-size:16px;font-weight:600}.uploaded-doc-text{color:var(--Primary-700, #009BF3);font-family:Inter;font-size:14px;font-weight:600;text-transform:capitalize;cursor:pointer}.header{color:var(--Gray-700, #344054);font-family:Inter;font-size:18px;font-weight:600;line-height:28px}.file-open-input{position:relative}.file-open-input input{padding-left:50px}.file-open-input input[readonly]{background-color:#fff!important}.file-open-input .l-icon{position:absolute;left:10px;top:10px}.file-open-input .r-icon{position:absolute;right:10px;top:12px}.input-group input[readonly]{background-color:#fff!important}\n"], dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }] });
164
164
  }
165
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: DocumentsComponent, decorators: [{
165
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: DocumentsComponent, decorators: [{
166
166
  type: Component,
167
167
  args: [{ selector: 'lib-documents', template: "<div class=\"settings-accordian-card\">\r\n <form [formGroup]=\"documentsForm\">\r\n <div class=\"row\">\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.settings_documents_isEdit \">\r\n <div class=\"col-12 mb-5\">\r\n <div class=\" d-flex justify-content-between\">\r\n <div class=\"header\">Upload Your Documents</div>\r\n <button *ngIf=\"documentsForm.disabled\"\r\n (click)=\"documentsForm.disabled ? documentsForm.enable() : documentsForm.disable()\"\r\n type=\"button\" class=\"btn btn-outline align-items-end\"><span class=\"me-2\"><svg\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\"\r\n fill=\"none\">\r\n <g clip-path=\"url(#clip0_2579_25125)\">\r\n <path\r\n d=\"M14.167 2.49993C14.3859 2.28106 14.6457 2.10744 14.9317 1.98899C15.2176 1.87054 15.5241 1.80957 15.8337 1.80957C16.1432 1.80957 16.4497 1.87054 16.7357 1.98899C17.0216 2.10744 17.2815 2.28106 17.5003 2.49993C17.7192 2.7188 17.8928 2.97863 18.0113 3.2646C18.1297 3.55057 18.1907 3.85706 18.1907 4.16659C18.1907 4.47612 18.1297 4.78262 18.0113 5.06859C17.8928 5.35455 17.7192 5.61439 17.5003 5.83326L6.25033 17.0833L1.66699 18.3333L2.91699 13.7499L14.167 2.49993Z\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2579_25125\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg></span>Edit Details</button>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <div class=\"col-md-12 col-lg-6 col-xl-6 col-xxl-6 mb-5\">\r\n <label for=\"gstNumber\" class=\"form-label\">Address Proof <span class=\"alert-required\"></span></label>\r\n <div class=\"input-group \">\r\n <input readonly type=\"text\" class=\"form-control\" placeholder=\"\"\r\n aria-label=\"Example text with button addon\" aria-describedby=\"button-addon1\" id=\"gstNumber\">\r\n <button (click)=\"triggerGstInput('address')\" [disabled]=\"documentsForm.disabled\"\r\n class=\"btn btn-outline upload-btn\" type=\"button\" id=\"button-addon1\">\r\n <span class=\"me-2\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\"\r\n viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M17.5 12.5V15.8333C17.5 16.2754 17.3244 16.6993 17.0118 17.0118C16.6993 17.3244 16.2754 17.5 15.8333 17.5H4.16667C3.72464 17.5 3.30072 17.3244 2.98816 17.0118C2.67559 16.6993 2.5 16.2754 2.5 15.8333V12.5M14.1667 6.66667L10 2.5M10 2.5L5.83333 6.66667M10 2.5V12.5\"\r\n stroke=\"#667085\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></span>\r\n Upload</button>\r\n </div>\r\n <input (change)=\"onFileSelect($event, 'address')\" accept=\".pdf\" class=\"d-none\" #addressProofFormInput type=\"file\">\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.settings_documents_isDownload \">\r\n <a *ngIf=\"clientData?.document?.addressProof?.path && !addressFile\"\r\n [href]=\"clientData?.document?.addressProof?.path\" target=\"_blank\" class=\"mt-3\">\r\n <span class=\"uploaded-doc-text me-2\">Incorporate Certificate</span>\r\n </a>\r\n </ng-container>\r\n <span *ngIf=\"addressFile\" class=\"mt-3 d-flex align-items-center\">\r\n <span class=\"uploaded-doc-text me-2\">{{addressFile.name ? addressFile.name : ''}}</span>\r\n <svg class=\"cursor-pointer\" (click)=\"addressFile = null\" xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path d=\"M12.5003 7.50001L7.50033 12.5M7.50033 7.50001L12.5003 12.5M18.3337 10C18.3337 14.6024 14.6027 18.3333 10.0003 18.3333C5.39795 18.3333 1.66699 14.6024 1.66699 10C1.66699 5.39763 5.39795 1.66667 10.0003 1.66667C14.6027 1.66667 18.3337 5.39763 18.3337 10Z\" stroke=\"#009BF3\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n </span>\r\n\r\n </div>\r\n <div class=\"col-md-12 col-lg-6 col-xl-6 col-xxl-6 mb-5\">\r\n <label for=\"gstNumber\" class=\"form-label\">GST Number <span class=\"alert-required\"></span></label>\r\n <div class=\"input-group \">\r\n <input formControlName=\"gstNumber\" type=\"text\" class=\"form-control\" placeholder=\"\"\r\n aria-label=\"Example text with button addon\" aria-describedby=\"button-addon1\" id=\"gstNumber\">\r\n <button (click)=\"triggerGstInput('gst')\" [disabled]=\"documentsForm.disabled\"\r\n class=\"btn btn-outline upload-btn\" type=\"button\" id=\"button-addon1\">\r\n <span class=\"me-2\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\"\r\n viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M17.5 12.5V15.8333C17.5 16.2754 17.3244 16.6993 17.0118 17.0118C16.6993 17.3244 16.2754 17.5 15.8333 17.5H4.16667C3.72464 17.5 3.30072 17.3244 2.98816 17.0118C2.67559 16.6993 2.5 16.2754 2.5 15.8333V12.5M14.1667 6.66667L10 2.5M10 2.5L5.83333 6.66667M10 2.5V12.5\"\r\n stroke=\"#667085\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></span>\r\n Upload</button>\r\n </div>\r\n <input (change)=\"onFileSelect($event, 'gst')\" accept=\".pdf\" class=\"d-none\" #gstFormInput type=\"file\">\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.settings_documents_isDownload \" >\r\n <a *ngIf=\"clientData?.document?.gst?.path && !gstFile\" [href]=\"clientData?.document?.gst?.path\" target=\"_blank\"\r\n class=\"mt-3\">\r\n <span class=\"uploaded-doc-text me-2\">GST Certificate</span>\r\n </a> \r\n </ng-container>\r\n <span *ngIf=\"gstFile\" class=\"mt-3 d-flex align-items-center\">\r\n <span class=\"uploaded-doc-text me-2\">{{gstFile.name ? gstFile.name : ''}}</span>\r\n <svg class=\"cursor-pointer\" (click)=\"gstFile = null\" xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path d=\"M12.5003 7.50001L7.50033 12.5M7.50033 7.50001L12.5003 12.5M18.3337 10C18.3337 14.6024 14.6027 18.3333 10.0003 18.3333C5.39795 18.3333 1.66699 14.6024 1.66699 10C1.66699 5.39763 5.39795 1.66667 10.0003 1.66667C14.6027 1.66667 18.3337 5.39763 18.3337 10Z\" stroke=\"#009BF3\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n </span>\r\n \r\n </div>\r\n <div class=\"col-md-12 col-lg-6 col-xl-6 col-xxl-6 mb-5\">\r\n <label for=\"gstNumber\" class=\"form-label\">Pan Number <span class=\"alert-required\"></span></label>\r\n <div class=\"input-group \">\r\n <input formControlName=\"panNumber\" type=\"text\" class=\"form-control\" placeholder=\"\"\r\n aria-label=\"Example text with button addon\" aria-describedby=\"button-addon1\" id=\"gstNumber\">\r\n <button (click)=\"triggerGstInput('pan')\" [disabled]=\"documentsForm.disabled\"\r\n class=\"btn btn-outline upload-btn\" type=\"button\" id=\"button-addon1\">\r\n <span class=\"me-2\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\"\r\n viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M17.5 12.5V15.8333C17.5 16.2754 17.3244 16.6993 17.0118 17.0118C16.6993 17.3244 16.2754 17.5 15.8333 17.5H4.16667C3.72464 17.5 3.30072 17.3244 2.98816 17.0118C2.67559 16.6993 2.5 16.2754 2.5 15.8333V12.5M14.1667 6.66667L10 2.5M10 2.5L5.83333 6.66667M10 2.5V12.5\"\r\n stroke=\"#667085\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></span>\r\n Upload</button>\r\n </div>\r\n <input (change)=\"onFileSelect($event, 'pan')\" accept=\".pdf\" class=\"d-none\" #panFormInput type=\"file\">\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.settings_documents_isDownload \" >\r\n <a *ngIf=\"clientData?.document?.pan?.path && !panFile\" [href]=\"clientData?.document?.pan?.path\" target=\"_blank\"\r\n class=\"mt-3\">\r\n <span class=\"uploaded-doc-text me-2\">PAN Certificate</span>\r\n </a> \r\n </ng-container>\r\n <span *ngIf=\"panFile\" class=\"mt-3 d-flex align-items-center\">\r\n <span class=\"uploaded-doc-text me-2\">{{panFile.name ? panFile.name : ''}}</span>\r\n <svg class=\"cursor-pointer\" (click)=\"panFile = null\" xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path d=\"M12.5003 7.50001L7.50033 12.5M7.50033 7.50001L12.5003 12.5M18.3337 10C18.3337 14.6024 14.6027 18.3333 10.0003 18.3333C5.39795 18.3333 1.66699 14.6024 1.66699 10C1.66699 5.39763 5.39795 1.66667 10.0003 1.66667C14.6027 1.66667 18.3337 5.39763 18.3337 10Z\" stroke=\"#009BF3\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n </span>\r\n \r\n </div>\r\n <div class=\"col-md-12 col-lg-6 col-xl-6 col-xxl-6 mb-5\">\r\n <label for=\"gstNumber\" class=\"form-label\">CIN Number <span class=\"alert-required\"></span></label>\r\n <div class=\"input-group \">\r\n <input formControlName=\"cinNumber\" type=\"text\" class=\"form-control\" placeholder=\"\"\r\n aria-label=\"Example text with button addon\" aria-describedby=\"button-addon1\" id=\"gstNumber\">\r\n <button (click)=\"triggerGstInput('cin')\" [disabled]=\"documentsForm.disabled\"\r\n class=\"btn btn-outline upload-btn\" type=\"button\" id=\"button-addon1\">\r\n <span class=\"me-2\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\"\r\n viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M17.5 12.5V15.8333C17.5 16.2754 17.3244 16.6993 17.0118 17.0118C16.6993 17.3244 16.2754 17.5 15.8333 17.5H4.16667C3.72464 17.5 3.30072 17.3244 2.98816 17.0118C2.67559 16.6993 2.5 16.2754 2.5 15.8333V12.5M14.1667 6.66667L10 2.5M10 2.5L5.83333 6.66667M10 2.5V12.5\"\r\n stroke=\"#667085\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></span>\r\n Upload</button>\r\n </div>\r\n <input (change)=\"onFileSelect($event, 'cin')\" accept=\".pdf\" class=\"d-none\" #cinFormInput type=\"file\">\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.settings_documents_isDownload \" >\r\n <a *ngIf=\"clientData?.document?.cin?.path && !cinFile\" [href]=\"clientData?.document?.cin?.path\" target=\"_blank\"\r\n class=\"mt-3\">\r\n <span class=\"uploaded-doc-text me-2\">CIN Certificate</span>\r\n </a> \r\n </ng-container>\r\n <span *ngIf=\"cinFile\" class=\"mt-3 d-flex align-items-center\">\r\n <span class=\"uploaded-doc-text me-2\">{{cinFile.name ? cinFile.name : ''}}</span>\r\n <svg class=\"cursor-pointer\" (click)=\"cinFile = null\" xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path d=\"M12.5003 7.50001L7.50033 12.5M7.50033 7.50001L12.5003 12.5M18.3337 10C18.3337 14.6024 14.6027 18.3333 10.0003 18.3333C5.39795 18.3333 1.66699 14.6024 1.66699 10C1.66699 5.39763 5.39795 1.66667 10.0003 1.66667C14.6027 1.66667 18.3337 5.39763 18.3337 10Z\" stroke=\"#009BF3\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n </span>\r\n \r\n </div>\r\n <div class=\"col-md-12 col-lg-6 col-xl-6 col-xxl-6 mb-5\">\r\n <label for=\"invoiceAuthorityName\" class=\"form-label\">Contract Agreement <span\r\n class=\"alert-required\"></span></label>\r\n\r\n\r\n <div class=\"file-open-input\">\r\n <svg class=\"l-icon\" xmlns=\"http://www.w3.org/2000/svg\" width=\"26\" height=\"26\" viewBox=\"0 0 26 26\"\r\n fill=\"none\">\r\n <path\r\n d=\"M3.24998 0H17.0568L24.3749 7.28977V24.375C24.3749 25.2728 23.647 26 22.75 26H3.24998C2.35296 26 1.625 25.2728 1.625 24.375V1.62498C1.625 0.727203 2.35304 0 3.24998 0Z\"\r\n fill=\"#E2574C\" />\r\n <path\r\n d=\"M24.3514 7.31187H18.6875C17.7905 7.31187 17.0625 6.58391 17.0625 5.68689V0.015625L24.3514 7.31187Z\"\r\n fill=\"#B53629\" />\r\n <path\r\n d=\"M18.2793 12.318C18.5515 12.318 18.6848 12.0808 18.6848 11.8508C18.6848 11.6127 18.5458 11.3828 18.2793 11.3828H16.7291C16.426 11.3828 16.257 11.6338 16.257 11.9109V15.7207C16.257 16.0604 16.4504 16.2489 16.712 16.2489C16.972 16.2489 17.1662 16.0604 17.1662 15.7207V14.6751H18.1039C18.3947 14.6751 18.5402 14.437 18.5402 14.2006C18.5402 13.9691 18.3947 13.739 18.1039 13.739H17.1662V12.318H18.2793ZM13.0395 11.3828H11.9052C11.5973 11.3828 11.3787 11.5941 11.3787 11.9077V15.724C11.3787 16.1132 11.6931 16.2351 11.9182 16.2351H13.1085C14.5174 16.2351 15.4477 15.308 15.4477 13.8772C15.4469 12.3643 14.5711 11.3828 13.0395 11.3828ZM13.094 15.2942H12.4025V12.3237H13.0257C13.9691 12.3237 14.3793 12.9567 14.3793 13.8301C14.3793 14.6475 13.9763 15.2942 13.094 15.2942ZM8.93882 11.3828H7.81515C7.49745 11.3828 7.32031 11.5924 7.32031 11.9109V15.7207C7.32031 16.0604 7.52342 16.2489 7.7964 16.2489C8.06937 16.2489 8.27249 16.0604 8.27249 15.7207V14.6084H8.97691C9.84627 14.6084 10.5637 13.9925 10.5637 13.0021C10.5638 12.0328 9.87158 11.3828 8.93882 11.3828ZM8.92016 13.7147H8.27257V12.2774H8.92016C9.31991 12.2774 9.57422 12.5894 9.57422 12.9964C9.57338 13.4028 9.31991 13.7147 8.92016 13.7147Z\"\r\n fill=\"white\" />\r\n </svg>\r\n <input type=\"type\" value=\"Contract Agreement.pdf\" readonly class=\"form-control\"\r\n id=\"invoiceAuthorityName\" autocomplete=\"off\">\r\n <a target=\"_blank\" class=\"r-icon\" [href]=\"clientData?.document?.contract\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M0.833984 10C0.833984 10 4.16732 3.33337 10.0007 3.33337C15.834 3.33337 19.1673 10 19.1673 10C19.1673 10 15.834 16.6667 10.0007 16.6667C4.16732 16.6667 0.833984 10 0.833984 10Z\"\r\n stroke=\"#344054\" stroke-width=\"1.4\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n <path\r\n d=\"M10.0007 12.5C11.3814 12.5 12.5006 11.3808 12.5006 10C12.5006 8.61933 11.3814 7.50004 10.0007 7.50004C8.61994 7.50004 7.50065 8.61933 7.50065 10C7.50065 11.3808 8.61994 12.5 10.0007 12.5Z\"\r\n stroke=\"#344054\" stroke-width=\"1.4\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </a>\r\n\r\n </div>\r\n\r\n\r\n </div>\r\n <div class=\"col-md-12 col-lg-6 col-xl-6 col-xxl-6 mb-5\">\r\n <label for=\"invoiceAuthorityName\" class=\"form-label\">T&C Agreement <span\r\n class=\"alert-required\"></span></label>\r\n <div class=\"file-open-input\">\r\n <svg class=\"l-icon\" xmlns=\"http://www.w3.org/2000/svg\" width=\"26\" height=\"26\" viewBox=\"0 0 26 26\"\r\n fill=\"none\">\r\n <path\r\n d=\"M3.24998 0H17.0568L24.3749 7.28977V24.375C24.3749 25.2728 23.647 26 22.75 26H3.24998C2.35296 26 1.625 25.2728 1.625 24.375V1.62498C1.625 0.727203 2.35304 0 3.24998 0Z\"\r\n fill=\"#E2574C\" />\r\n <path\r\n d=\"M24.3514 7.31187H18.6875C17.7905 7.31187 17.0625 6.58391 17.0625 5.68689V0.015625L24.3514 7.31187Z\"\r\n fill=\"#B53629\" />\r\n <path\r\n d=\"M18.2793 12.318C18.5515 12.318 18.6848 12.0808 18.6848 11.8508C18.6848 11.6127 18.5458 11.3828 18.2793 11.3828H16.7291C16.426 11.3828 16.257 11.6338 16.257 11.9109V15.7207C16.257 16.0604 16.4504 16.2489 16.712 16.2489C16.972 16.2489 17.1662 16.0604 17.1662 15.7207V14.6751H18.1039C18.3947 14.6751 18.5402 14.437 18.5402 14.2006C18.5402 13.9691 18.3947 13.739 18.1039 13.739H17.1662V12.318H18.2793ZM13.0395 11.3828H11.9052C11.5973 11.3828 11.3787 11.5941 11.3787 11.9077V15.724C11.3787 16.1132 11.6931 16.2351 11.9182 16.2351H13.1085C14.5174 16.2351 15.4477 15.308 15.4477 13.8772C15.4469 12.3643 14.5711 11.3828 13.0395 11.3828ZM13.094 15.2942H12.4025V12.3237H13.0257C13.9691 12.3237 14.3793 12.9567 14.3793 13.8301C14.3793 14.6475 13.9763 15.2942 13.094 15.2942ZM8.93882 11.3828H7.81515C7.49745 11.3828 7.32031 11.5924 7.32031 11.9109V15.7207C7.32031 16.0604 7.52342 16.2489 7.7964 16.2489C8.06937 16.2489 8.27249 16.0604 8.27249 15.7207V14.6084H8.97691C9.84627 14.6084 10.5637 13.9925 10.5637 13.0021C10.5638 12.0328 9.87158 11.3828 8.93882 11.3828ZM8.92016 13.7147H8.27257V12.2774H8.92016C9.31991 12.2774 9.57422 12.5894 9.57422 12.9964C9.57338 13.4028 9.31991 13.7147 8.92016 13.7147Z\"\r\n fill=\"white\" />\r\n </svg>\r\n <input type=\"type\" value=\"T & C Agreement.pdf\" readonly class=\"form-control\"\r\n id=\"invoiceAuthorityName\" autocomplete=\"off\">\r\n <a target=\"_blank\" class=\"r-icon\" [href]=\"clientData?.document?.termsAndconditions\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M0.833984 10C0.833984 10 4.16732 3.33337 10.0007 3.33337C15.834 3.33337 19.1673 10 19.1673 10C19.1673 10 15.834 16.6667 10.0007 16.6667C4.16732 16.6667 0.833984 10 0.833984 10Z\"\r\n stroke=\"#344054\" stroke-width=\"1.4\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n <path\r\n d=\"M10.0007 12.5C11.3814 12.5 12.5006 11.3808 12.5006 10C12.5006 8.61933 11.3814 7.50004 10.0007 7.50004C8.61994 7.50004 7.50065 8.61933 7.50065 10C7.50065 11.3808 8.61994 12.5 10.0007 12.5Z\"\r\n stroke=\"#344054\" stroke-width=\"1.4\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </a>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"documentsForm.enabled\">\r\n <div class=\"mb-5 w-100 footer-seperator\"></div>\r\n <div class=\"d-flex justify-content-end\">\r\n <a type=\"button\" class=\"btn btn-outline me-4\" (click)=\"onCancel()\">Cancel</a>\r\n <a type=\"submit\" class=\"btn btn-primary px-4 \" (click)=\"onSubmit()\"><span>Save Changes</span></a>\r\n </div>\r\n </div>\r\n\r\n </form>\r\n\r\n</div>", styles: [".settings-accordian-card{border-radius:10px;background:#fff;overflow:hidden;padding:16px}.form-control{display:block;height:45px;padding:.5rem 1rem;font-size:1.1rem;font-weight:400;color:var(--Gray-500, #667085);-webkit-appearance:none;appearance:none;border:1px solid var(--Gray-300, #D0D5DD)!important;background:var(--White, #FFF)!important;box-shadow:0 1px 2px #1018280d!important;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}.form-label{color:var(--Gray-700, #344054);font-size:14px;font-style:normal;font-weight:500;line-height:20px}.is-invalid{border-radius:8px!important;border:1px solid var(--Error-300, #FDA29B)!important;background:var(--White, #FFF)!important;box-shadow:0 1px 2px #1018280d!important;padding-right:calc(1.5em + .75rem)!important;background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwXzIyMDFfMjA5NTApIj4KPHBhdGggZD0iTTcuOTk5NjcgNS4zMzM5OFY4LjAwMDY1TTcuOTk5NjcgMTAuNjY3M0g4LjAwNjM0TTE0LjY2NjMgOC4wMDA2NUMxNC42NjYzIDExLjY4MjYgMTEuNjgxNiAxNC42NjczIDcuOTk5NjcgMTQuNjY3M0M0LjMxNzc4IDE0LjY2NzMgMS4zMzMwMSAxMS42ODI2IDEuMzMzMDEgOC4wMDA2NUMxLjMzMzAxIDQuMzE4NzUgNC4zMTc3OCAxLjMzMzk4IDcuOTk5NjcgMS4zMzM5OEMxMS42ODE2IDEuMzMzOTggMTQuNjY2MyA0LjMxODc1IDE0LjY2NjMgOC4wMDA2NVoiIHN0cm9rZT0iI0YwNDQzOCIgc3Ryb2tlLXdpZHRoPSIxLjMzMzMzIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KPC9nPgo8ZGVmcz4KPGNsaXBQYXRoIGlkPSJjbGlwMF8yMjAxXzIwOTUwIj4KPHJlY3Qgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiBmaWxsPSJ3aGl0ZSIvPgo8L2NsaXBQYXRoPgo8L2RlZnM+Cjwvc3ZnPgo=)!important;background-repeat:no-repeat!important;background-position:right calc(.375em + .1875rem) center!important;background-size:calc(.75em + .375rem) calc(.75em + .375rem)!important}small{color:var(--Error-500, #F04438)!important;font-size:14px!important;font-weight:400!important;line-height:20px;display:block;margin-top:6px}.cancel{border-radius:8px;border:1px solid #D0D5DD;background:#fff;color:#344054;font-family:Inter;font-size:14px;font-weight:600;line-height:20px;text-transform:capitalize}.apply{color:#fff;font-family:Inter;font-size:14px;font-style:normal;font-weight:600;line-height:20px;text-transform:capitalize}input[disabled],input[readonly],select[disabled],textarea[disabled],select[readonly],textarea[readonly]{background-color:#f9fafb!important}.footer-seperator{border-top:1px solid #EAECF0}.upload-btn{box-shadow:0 1px 2px #1018280d!important;color:var(--Gray-500, #667085);font-size:16px;font-weight:600}.uploaded-doc-text{color:var(--Primary-700, #009BF3);font-family:Inter;font-size:14px;font-weight:600;text-transform:capitalize;cursor:pointer}.header{color:var(--Gray-700, #344054);font-family:Inter;font-size:18px;font-weight:600;line-height:28px}.file-open-input{position:relative}.file-open-input input{padding-left:50px}.file-open-input input[readonly]{background-color:#fff!important}.file-open-input .l-icon{position:absolute;left:10px;top:10px}.file-open-input .r-icon{position:absolute;right:10px;top:12px}.input-group input[readonly]{background-color:#fff!important}\n"] }]
168
168
  }], ctorParameters: () => [{ type: i1.FormBuilder }, { type: i2.ClientApiService }, { type: i0.ChangeDetectorRef }, { type: i3.ToastService }, { type: i4.GlobalStateService }], propDecorators: { gstFormInput: [{
@@ -178,4 +178,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImpor
178
178
  type: ViewChild,
179
179
  args: ['cinFormInput']
180
180
  }] } });
181
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnRzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLW1hbmFnZS1zZXR0aW5ncy9zcmMvbGliL2NvbXBvbmVudHMvZG9jdW1lbnRzL2RvY3VtZW50cy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1tYW5hZ2Utc2V0dGluZ3Mvc3JjL2xpYi9jb21wb25lbnRzL2RvY3VtZW50cy9kb2N1bWVudHMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFxQixTQUFTLEVBQXlCLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUvRixPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7OztBQVUxQyxNQUFNLE9BQU8sa0JBQWtCO0lBa0JUO0lBQXlCO0lBQXNDO0lBQStCO0lBQThCO0lBaEJoSixhQUFhLENBQVc7SUFDeEIsVUFBVSxDQUFNO0lBQ1csWUFBWSxDQUEwQjtJQUM3QixxQkFBcUIsQ0FBMEI7SUFDeEQsWUFBWSxDQUEwQjtJQUN0QyxZQUFZLENBQTBCO0lBRWhELFFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO0lBQzFDLE9BQU8sQ0FBYztJQUNyQixXQUFXLENBQWM7SUFDekIsT0FBTyxDQUFjO0lBQ3JCLE9BQU8sQ0FBYztJQUNyQixhQUFhLENBQU07SUFJbkIsWUFBb0IsRUFBZSxFQUFVLFVBQTRCLEVBQVUsRUFBcUIsRUFBVSxPQUFxQixFQUFTLEVBQXNCO1FBQWxKLE9BQUUsR0FBRixFQUFFLENBQWE7UUFBVSxlQUFVLEdBQVYsVUFBVSxDQUFrQjtRQUFVLE9BQUUsR0FBRixFQUFFLENBQW1CO1FBQVUsWUFBTyxHQUFQLE9BQU8sQ0FBYztRQUFTLE9BQUUsR0FBRixFQUFFLENBQW9CO1FBQ3BLLElBQUksQ0FBQyxRQUFRLEVBQUUs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Wi9CLDZ3cUJBc09NOzsyRkQxTk8sa0JBQWtCO2tCQUw5QixTQUFTOytCQUNFLGVBQWU7Mk1BUUUsWUFBWTtzQkFBdEMsU0FBUzt1QkFBQyxjQUFjO2dCQUNXLHFCQUFxQjtzQkFBeEQsU0FBUzt1QkFBQyx1QkFBdUI7Z0JBQ1AsWUFBWTtzQkFBdEMsU0FBUzt1QkFBQyxjQUFjO2dCQUNFLFlBQVk7c0JBQXRDLFNBQVM7dUJBQUMsY0FBYyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIE9uRGVzdHJveSwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1Hcm91cCwgRm9ybUJ1aWxkZXIgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBDbGllbnRBcGlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvY2xpZW50LWFwaS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVG9hc3RTZXJ2aWNlIH0gZnJvbSAndGFuZ28tYXBwLXVpLXNoYXJlZCc7XHJcbmltcG9ydCB7IEdsb2JhbFN0YXRlU2VydmljZSB9IGZyb20gJ3RhbmdvLWFwcC11aS1nbG9iYWwnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItZG9jdW1lbnRzJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZG9jdW1lbnRzLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vZG9jdW1lbnRzLmNvbXBvbmVudC5zY3NzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgRG9jdW1lbnRzQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcclxuXHJcbiAgZG9jdW1lbnRzRm9ybTogRm9ybUdyb3VwXHJcbiAgY2xpZW50RGF0YTogYW55O1xyXG4gIEBWaWV3Q2hpbGQoJ2dzdEZvcm1JbnB1dCcpIGdzdEZvcm1JbnB1dDogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XHJcbiAgQFZpZXdDaGlsZCgnYWRkcmVzc1Byb29mRm9ybUlucHV0JykgYWRkcmVzc1Byb29mRm9ybUlucHV0OiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcclxuICBAVmlld0NoaWxkKCdwYW5Gb3JtSW5wdXQnKSBwYW5Gb3JtSW5wdXQ6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xyXG4gIEBWaWV3Q2hpbGQoJ2NpbkZvcm1JbnB1dCcpIGNpbkZvcm1JbnB1dDogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XHJcblxyXG4gIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveSQgPSBuZXcgU3ViamVjdCgpO1xyXG4gIGdzdEZpbGU6IEZpbGUgfCBudWxsO1xyXG4gIGFkZHJlc3NGaWxlOiBGaWxlIHwgbnVsbDtcclxuICBwYW5GaWxlOiBGaWxlIHwgbnVsbDtcclxuICBjaW5GaWxlOiBGaWxlIHwgbnVsbDtcclxuICBkb2NQcmV2VmFsdWVzOiBhbnk7XHJcblxyXG5cclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIsIHByaXZhdGUgYXBpU2VydmljZTogQ2xpZW50QXBpU2VydmljZSwgcHJpdmF0ZSBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYsIHByaXZhdGUgdG9hc3RlcjogVG9hc3RTZXJ2aWNlLCBwdWJsaWMgZ3M6IEdsb2JhbFN0YXRlU2VydmljZSkge1xyXG4gICAgdGhpcy5pbml0Rm9ybSgpXHJcbiAgICB0aGlzLmFwaVNlcnZpY2UuY2xpZW50RGF0YS5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKChlKSA9PiB7XHJcbiAgICAgIGlmIChlKSB7XHJcbiAgICAgICAgdGhpcy5jbGllbnREYXRhID0gZVxyXG4gICAgICAgIHRoaXMucGF0Y2hGb3JtKGUpXHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuZGVzdHJveSQubmV4dCh0cnVlKTtcclxuICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcclxuICB9XHJcblxyXG5cclxuXHJcbiAgaW5pdEZvcm0oKSB7XHJcbiAgICB0aGlzLmRvY3VtZW50c0Zvcm0gPSB0aGlzLmZiLmdyb3VwKHtcclxuICAgICAgYWRkcmVzc0RvYzogWycnXSxcclxuICAgICAgZ3N0TnVtYmVyOiBbJyddLFxyXG4gICAgICBnc3REb2M6IFsnJ10sXHJcbiAgICAgIHBhbk51bWJlcjogWycnXSxcclxuICAgICAgcGFuRG9jOiBbJyddLFxyXG4gICAgICBjaW5OdW1iZXI6IFsnJ10sXHJcbiAgICAgIGNpbkRvYzogWycnXSxcclxuICAgIH0pO1xyXG4gICAgdGhpcy5kb2N1bWVudHNGb3JtLmRpc2FibGUoKVxyXG4gIH1cclxuXHJcbiAgcGF0Y2hGb3JtKGRhdGE6IGFueSkge1xyXG4gICAgdGhpcy5kb2N1bWVudHNGb3JtLnBhdGNoVmFsdWUoXHJcbiAgICAgIHtcclxuICAgICAgICBnc3ROdW1iZXI6IGRhdGE/LmRvY3VtZW50Py5nc3Q/Lm51bWJlcixcclxuICAgICAgICBwYW5OdW1iZXI6IGRhdGE/LmRvY3VtZW50Py5wYW4/Lm51bWJlcixcclxuICAgICAgICBjaW5OdW1iZXI6IGRhdGE/LmRvY3VtZW50Py5jaW4/Lm51bWJlcixcclxuICAgICAgfVxyXG4gICAgKVxyXG5cclxuICAgIHRoaXMuZG9jUHJldlZhbHVlcyA9IHtcclxuICAgICAgZ3N0TnVtYmVyOiBkYXRhPy5kb2N1bWVudD8uZ3N0Py5udW1iZXIsXHJcbiAgICAgIHBhbk51bWJlcjogZGF0YT8uZG9jdW1lbnQ/LnBhbj8ubnVtYmVyLFxyXG4gICAgICBjaW5OdW1iZXI6IGRhdGE/LmRvY3VtZW50Py5jaW4/Lm51bWJlcixcclxuICAgICAgYWRkcmVzc0RvYzogZGF0YT8uZG9jdW1lbnQ/LmNvbnRhY3QsXHJcbiAgICAgIGdzdERvYzogZGF0YT8uZG9jdW1lbnQ/LmNpbj8ucGF0aCxcclxuICAgICAgcGFuRG9jOiBkYXRhPy5kb2N1bWVudD8uY2luPy5wYXRoLFxyXG4gICAgICBjaW5Eb2M6IGRhdGE/LmRvY3VtZW50Py5jaW4/LnBhdGgsXHJcbiAgICB9XHJcbiAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKVxyXG4gIH1cclxuXHJcbiAgdHJpZ2dlckdzdElucHV0KHR5cGU6IHN0cmluZykge1xyXG4gICAgaWYgKHR5cGUgPT09ICdnc3QnKSB7XHJcbiAgICAgIHRoaXMuZ3N0Rm9ybUlucHV0Lm5hdGl2ZUVsZW1lbnQuY2xpY2soKVxyXG4gICAgfSBlbHNlXHJcbiAgICAgIGlmICh0eXBlID09PSAnYWRkcmVzcycpIHtcclxuICAgICAgICB0aGlzLmFkZHJlc3NQcm9vZkZvcm1JbnB1dC5uYXRpdmVFbGVtZW50LmNsaWNrKClcclxuICAgICAgfSBlbHNlXHJcbiAgICAgICAgaWYgKHR5cGUgPT09ICdwYW4nKSB7XHJcbiAgICAgICAgICB0aGlzLnBhbkZvcm1JbnB1dC5uYXRpdmVFbGVtZW50LmNsaWNrKClcclxuICAgICAgICB9IGVsc2VcclxuICAgICAgICAgIGlmICh0eXBlID09PSAnY2luJykge1xyXG4gICAgICAgICAgICB0aGlzLmNpbkZvcm1JbnB1dC5uYXRpdmVFbGVtZW50LmNsaWNrKClcclxuICAgICAgICAgIH1cclxuXHJcbiAgfVxyXG5cclxuXHJcblxyXG4gIG9uRmlsZVNlbGVjdChldmVudDogYW55LCB0eXBlOiBzdHJpbmcpIHtcclxuICAgIGlmICghZXZlbnQudGFyZ2V0LmZpbGVzIHx8ICFldmVudC50YXJnZXQuZmlsZXNbMF0pIHtcclxuICAgICAgcmV0dXJuXHJcbiAgICB9XHJcbiAgICBpZiAodHlwZSA9PT0gJ2dzdCcpIHtcclxuICAgICAgY29uc3QgZmlsZTogRmlsZSA9IGV2ZW50LnRhcmdldC5maWxlc1swXTtcclxuICAgICAgdGhpcy5nc3RGaWxlID0gZmlsZVxyXG4gICAgfSBlbHNlXHJcbiAgICAgIGlmICh0eXBlID09PSAnYWRkcmVzcycpIHtcclxuICAgICAgICBjb25zdCBmaWxlOiBGaWxlID0gZXZlbnQudGFyZ2V0LmZpbGVzWzBdO1xyXG4gICAgICAgIHRoaXMuYWRkcmVzc0ZpbGUgPSBmaWxlXHJcbiAgICAgIH0gZWxzZVxyXG4gICAgICAgIGlmICh0eXBlID09PSAncGFuJykge1xyXG4gICAgICAgICAgY29uc3QgZmlsZTogRmlsZSA9IGV2ZW50LnRhcmdldC5maWxlc1swXTtcclxuICAgICAgICAgIHRoaXMucGFuRmlsZSA9IGZpbGVcclxuICAgICAgICB9IGVsc2VcclxuICAgICAgICAgIGlmICh0eXBlID09PSAnY2luJykge1xyXG4gICAgICAgICAgICBjb25zdCBmaWxlOiBGaWxlID0gZXZlbnQudGFyZ2V0LmZpbGVzWzBdO1xyXG4gICAgICAgICAgICB0aGlzLmNpbkZpbGUgPSBmaWxlXHJcbiAgICAgICAgICB9XHJcblxyXG4gIH1cclxuXHJcblxyXG4gIG9uQ2FuY2VsKCkge1xyXG4gICAgdGhpcy5nc3RGaWxlID0gbnVsbDtcclxuICAgIHRoaXMuYWRkcmVzc0ZpbGUgPSBudWxsO1xyXG4gICAgdGhpcy5wYW5GaWxlID0gbnVsbDtcclxuICAgIHRoaXMuY2luRmlsZSA9IG51bGw7XHJcbiAgICB0aGlzLmRvY3VtZW50c0Zvcm0uZGlzYWJsZSgpXHJcbiAgICB0aGlzLnBhdGNoRm9ybSh0aGlzLmNsaWVudERhdGEpXHJcbiAgfVxyXG5cclxuICBvblN1Ym1pdCgpIHtcclxuICAgIGlmICh0aGlzLmdzdEZpbGUpIHtcclxuICAgICAgdGhpcy5kb2N1bWVudHNGb3JtLnZhbHVlLmdzdERvYyA9IHRoaXMuZ3N0RmlsZVxyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuYWRkcmVzc0ZpbGUpIHtcclxuICAgICAgdGhpcy5kb2N1bWVudHNGb3JtLnZhbHVlLmFkZHJlc3NEb2MgPSB0aGlzLmFkZHJlc3NGaWxlXHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5wYW5GaWxlKSB7XHJcbiAgICAgIHRoaXMuZG9jdW1lbnRzRm9ybS52YWx1ZS5wYW5Eb2MgPSB0aGlzLnBhbkZpbGVcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmNpbkZpbGUpIHtcclxuICAgICAgdGhpcy5kb2N1bWVudHNGb3JtLnZhbHVlLmNpbkRvYyA9IHRoaXMuY2luRmlsZVxyXG4gICAgfVxyXG4gICAgY29uc3QgZGF0YSA9IHRoaXMuZ2V0RGlmZmVyZW50RW50cmllcyh0aGlzLmRvY1ByZXZWYWx1ZXMsIHRoaXMuZG9jdW1lbnRzRm9ybS52YWx1ZSlcclxuICAgIFxyXG4gICAgY29uc3QgZm9ybURhdGEgPSB0aGlzLmpzb25Ub0Zvcm1EYXRhKGRhdGEpXHJcblxyXG4gICAgdGhpcy5hcGlTZXJ2aWNlLnVwZGF0ZURvY3VtZW50cyh0aGlzLmNsaWVudERhdGEuY2xpZW50SWQsIGZvcm1EYXRhKS5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKGUpID0+IHtcclxuICAgICAgICB0aGlzLnRvYXN0ZXIuZ2V0U3VjY2Vzc1RvYXN0KGUuZGF0YT8ucmVzdWx0KVxyXG4gICAgICAgIHRoaXMuYXBpU2VydmljZS5jbGllbnRGb3JtRGF0YS5uZXh0KHsgdmFsdWU6IG51bGwsIHR5cGU6ICdzdWJtaXR0ZWQnLCBmb3JtOiAnbnVsbCcgfSlcclxuICAgICAgfSxcclxuICAgICAgZXJyb3I6IChlKSA9PiB7XHJcbiAgICAgICAgdGhpcy50b2FzdGVyLmdldEVycm9yVG9hc3QoZS5lcnJvcj8uZXJyb3IpXHJcbiAgICAgICAgdGhpcy5wYXRjaEZvcm0odGhpcy5jbGllbnREYXRhKVxyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgZ2V0RGlmZmVyZW50RW50cmllcyhvYmoxOiBSZWNvcmQ8c3RyaW5nLCBhbnk+LCBvYmoyOiBSZWNvcmQ8c3RyaW5nLCBhbnk+KTogUmVjb3JkPHN0cmluZywgYW55PiB7XHJcbiAgICBjb25zdCBkaWZmZXJlbnRFbnRyaWVzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0ge307XHJcbiAgICBmb3IgKGNvbnN0IGtleSBpbiBvYmoyKSB7XHJcbiAgICAgIGlmIChvYmoxLmhhc093blByb3BlcnR5KGtleSkgJiYgb2JqMVtrZXldICE9PSBvYmoyW2tleV0gJiYgb2JqMltrZXldKSB7XHJcbiAgICAgICAgZGlmZmVyZW50RW50cmllc1trZXldID0gb2JqMltrZXldO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZGlmZmVyZW50RW50cmllcztcclxuICB9XHJcblxyXG4gIGpzb25Ub0Zvcm1EYXRhKGpzb25EYXRhOiBSZWNvcmQ8c3RyaW5nLCBhbnk+KTogRm9ybURhdGEge1xyXG5cclxuICAgIGNvbnN0IGZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCk7XHJcbiAgICBmb3IgKGNvbnN0IGtleSBpbiBqc29uRGF0YSkge1xyXG4gICAgICBpZiAoanNvbkRhdGEuaGFzT3duUHJvcGVydHkoa2V5KSkge1xyXG4gICAgICAgIGNvbnN0IHZhbHVlID0ganNvbkRhdGFba2V5XTtcclxuICAgICAgICBmb3JtRGF0YS5hcHBlbmQoa2V5LCB2YWx1ZSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZm9ybURhdGE7XHJcbiAgfVxyXG5cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwic2V0dGluZ3MtYWNjb3JkaWFuLWNhcmRcIj5cclxuICAgIDxmb3JtIFtmb3JtR3JvdXBdPVwiZG9jdW1lbnRzRm9ybVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIihncy51c2VyQWNjZXNzIHwgYXN5bmMpPy5zZXR0aW5nc19kb2N1bWVudHNfaXNFZGl0IFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBtYi01XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIiBkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW5cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRlclwiPlVwbG9hZCBZb3VyIERvY3VtZW50czwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uICpuZ0lmPVwiZG9jdW1lbnRzRm9ybS5kaXNhYmxlZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiZG9jdW1lbnRzRm9ybS5kaXNhYmxlZCA/IGRvY3VtZW50c0Zvcm0uZW5hYmxlKCkgOiBkb2N1bWVudHNGb3JtLmRpc2FibGUoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLW91dGxpbmUgYWxpZ24taXRlbXMtZW5kXCI+PHNwYW4gY2xhc3M9XCJtZS0yXCI+PHN2Z1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxnIGNsaXAtcGF0aD1cInVybCgjY2xpcDBfMjU3OV8yNTEyNSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xNC4xNjcgMi40OTk5M0MxNC4zODU5IDIuMjgxMDYgMTQuNjQ1NyAyLjEwNzQ0IDE0LjkzMTcgMS45ODg5OUMxNS4yMTc2IDEuODcwNTQgMTUuNTI0MSAxLjgwOTU3IDE1LjgzMzcgMS44MDk1N0MxNi4xNDMyIDEuODA5NTcgMTYuNDQ5NyAxLjg3MDU0IDE2LjczNTcgMS45ODg5OUMxNy4wMjE2IDIuMTA3NDQgMTcuMjgxNSAyLjI4MTA2IDE3LjUwMDMgMi40OTk5M0MxNy43MTkyIDIuNzE4OCAxNy44OTI4IDIuOTc4NjMgMTguMDExMyAzLjI2NDZDMTguMTI5NyAzLjU1MDU3IDE4LjE5MDcgMy44NTcwNiAxOC4xOTA3IDQuMTY2NTlDMTguMTkwNyA0LjQ3NjEyIDE4LjEyOTcgNC43ODI2MiAxOC4wMTEzIDUuMDY4NTlDMTcuODkyOCA1LjM1NDU1IDE3LjcxOTIgNS42MTQzOSAxNy41MDAzIDUuODMzMjZMNi4yNTAzMyAxNy4wODMzTDEuNjY2OTkgMTguMzMzM0wyLjkxNjk5IDEzLjc0OTlMMTQuMTY3IDIuNDk5OTNaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjMzQ0MDU0XCIgc3Ryb2tlLXdpZHRoPVwiMS42N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjbGlwUGF0aCBpZD1cImNsaXAwXzI1NzlfMjUxMjVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiBmaWxsPVwid2hpdGVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9jbGlwUGF0aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPjwvc3Bhbj5FZGl0IERldGFpbHM8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTIgY29sLWxnLTYgY29sLXhsLTYgY29sLXh4bC02IG1iLTVcIj5cclxuICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJnc3ROdW1iZXJcIiBjbGFzcz1cImZvcm0tbGFiZWxcIj5BZGRyZXNzIFByb29mIDxzcGFuIGNsYXNzPVwiYWxlcnQtcmVxdWlyZWRcIj48L3NwYW4+PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cCBcIj5cclxuICAgICAgICAgICAgICAgICAgICA8aW5wdXQgcmVhZG9ubHkgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIHBsYWNlaG9sZGVyPVwiXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD1cIkV4YW1wbGUgdGV4dCB3aXRoIGJ1dHRvbiBhZGRvblwiIGFyaWEtZGVzY3JpYmVkYnk9XCJidXR0b24tYWRkb24xXCIgaWQ9XCJnc3ROdW1iZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIChjbGljayk9XCJ0cmlnZ2VyR3N0SW5wdXQoJ2FkZHJlc3MnKVwiIFtkaXNhYmxlZF09XCJkb2N1bWVudHNGb3JtLmRpc2FibGVkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLW91dGxpbmUgdXBsb2FkLWJ0blwiIHR5cGU9XCJidXR0b25cIiBpZD1cImJ1dHRvbi1hZGRvbjFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtZS0yXCI+PHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTE3LjUgMTIuNVYxNS44MzMzQzE3LjUgMTYuMjc1NCAxNy4zMjQ0IDE2LjY5OTMgMTcuMDExOCAxNy4wMTE4QzE2LjY5OTMgMTcuMzI0NCAxNi4yNzU0IDE3LjUgMTUuODMzMyAxNy41SDQuMTY2NjdDMy43MjQ2NCAxNy41IDMuMzAwNzIgMTcuMzI0NCAyLjk4ODE2IDE3LjAxMThDMi42NzU1OSAxNi42OTkzIDIuNSAxNi4yNzU0IDIuNSAxNS44MzMzVjEyLjVNMTQuMTY2NyA2LjY2NjY3TDEwIDIuNU0xMCAyLjVMNS44MzMzMyA2LjY2NjY3TTEwIDIuNVYxMi41XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjEuNjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBVcGxvYWQ8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGlucHV0IChjaGFuZ2UpPVwib25GaWxlU2VsZWN0KCRldmVudCwgJ2FkZHJlc3MnKVwiIGFjY2VwdD1cIi5wZGZcIiBjbGFzcz1cImQtbm9uZVwiICNhZGRyZXNzUHJvb2ZGb3JtSW5wdXQgdHlwZT1cImZpbGVcIj5cclxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIoZ3MudXNlckFjY2VzcyB8IGFzeW5jKT8uc2V0dGluZ3NfZG9jdW1lbnRzX2lzRG93bmxvYWQgXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGEgKm5nSWY9XCJjbGllbnREYXRhPy5kb2N1bWVudD8uYWRkcmVzc1Byb29mPy5wYXRoICYmICFhZGRyZXNzRmlsZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtocmVmXT1cImNsaWVudERhdGE/LmRvY3VtZW50Py5hZGRyZXNzUHJvb2Y/LnBhdGhcIiB0YXJnZXQ9XCJfYmxhbmtcIiBjbGFzcz1cIm10LTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ1cGxvYWRlZC1kb2MtdGV4dCBtZS0yXCI+SW5jb3Jwb3JhdGUgQ2VydGlmaWNhdGU8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cImFkZHJlc3NGaWxlXCIgY2xhc3M9XCJtdC0zIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInVwbG9hZGVkLWRvYy10ZXh0IG1lLTJcIj57e2FkZHJlc3NGaWxlLm5hbWUgPyBhZGRyZXNzRmlsZS5uYW1lIDogJyd9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3ZnIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwiYWRkcmVzc0ZpbGUgPSBudWxsXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTEyLjUwMDMgNy41MDAwMUw3LjUwMDMzIDEyLjVNNy41MDAzMyA3LjUwMDAxTDEyLjUwMDMgMTIuNU0xOC4zMzM3IDEwQzE4LjMzMzcgMTQuNjAyNCAxNC42MDI3IDE4LjMzMzMgMTAuMDAwMyAxOC4zMzMzQzUuMzk3OTUgMTguMzMzMyAxLjY2Njk5IDE0LjYwMjQgMS42NjY5OSAxMEMxLjY2Njk5IDUuMzk3NjMgNS4zOTc5NSAxLjY2NjY3IDEwLjAwMDMgMS42NjY2N0MxNC42MDI3IDEuNjY2NjcgMTguMzMzNyA1LjM5NzYzIDE4LjMzMzcgMTBaXCIgc3Ryb2tlPVwiIzAwOUJGM1wiIHN0cm9rZS13aWR0aD1cIjEuNjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxyXG5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTIgY29sLWxnLTYgY29sLXhsLTYgY29sLXh4bC02IG1iLTVcIj5cclxuICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJnc3ROdW1iZXJcIiBjbGFzcz1cImZvcm0tbGFiZWxcIj5HU1QgTnVtYmVyIDxzcGFuIGNsYXNzPVwiYWxlcnQtcmVxdWlyZWRcIj48L3NwYW4+PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cCBcIj5cclxuICAgICAgICAgICAgICAgICAgICA8aW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwiZ3N0TnVtYmVyXCIgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIHBsYWNlaG9sZGVyPVwiXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD1cIkV4YW1wbGUgdGV4dCB3aXRoIGJ1dHRvbiBhZGRvblwiIGFyaWEtZGVzY3JpYmVkYnk9XCJidXR0b24tYWRkb24xXCIgaWQ9XCJnc3ROdW1iZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIChjbGljayk9XCJ0cmlnZ2VyR3N0SW5wdXQoJ2dzdCcpXCIgW2Rpc2FibGVkXT1cImRvY3VtZW50c0Zvcm0uZGlzYWJsZWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tb3V0bGluZSB1cGxvYWQtYnRuXCIgdHlwZT1cImJ1dHRvblwiIGlkPVwiYnV0dG9uLWFkZG9uMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1lLTJcIj48c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTcuNSAxMi41VjE1LjgzMzNDMTcuNSAxNi4yNzU0IDE3LjMyNDQgMTYuNjk5MyAxNy4wMTE4IDE3LjAxMThDMTYuNjk5MyAxNy4zMjQ0IDE2LjI3NTQgMTcuNSAxNS44MzMzIDE3LjVINC4xNjY2N0MzLjcyNDY0IDE3LjUgMy4zMDA3MiAxNy4zMjQ0IDIuOTg4MTYgMTcuMDExOEMyLjY3NTU5IDE2LjY5OTMgMi41IDE2LjI3NTQgMi41IDE1LjgzMzNWMTIuNU0xNC4xNjY3IDYuNjY2NjdMMTAgMi41TTEwIDIuNUw1LjgzMzMzIDYuNjY2NjdNMTAgMi41VjEyLjVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMS42N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFVwbG9hZDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8aW5wdXQgKGNoYW5nZSk9XCJvbkZpbGVTZWxlY3QoJGV2ZW50LCAnZ3N0JylcIiBhY2NlcHQ9XCIucGRmXCIgY2xhc3M9XCJkLW5vbmVcIiAjZ3N0Rm9ybUlucHV0IHR5cGU9XCJmaWxlXCI+XHJcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiKGdzLnVzZXJBY2Nlc3MgfCBhc3luYyk/LnNldHRpbmdzX2RvY3VtZW50c19pc0Rvd25sb2FkIFwiID5cclxuICAgICAgICAgICAgICAgIDxhICpuZ0lmPVwiY2xpZW50RGF0YT8uZG9jdW1lbnQ/LmdzdD8ucGF0aCAmJiAhZ3N0RmlsZVwiIFtocmVmXT1cImNsaWVudERhdGE/LmRvY3VtZW50Py5nc3Q/LnBhdGhcIiB0YXJnZXQ9XCJfYmxhbmtcIlxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibXQtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidXBsb2FkZWQtZG9jLXRleHQgbWUtMlwiPkdTVCBDZXJ0aWZpY2F0ZTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvYT4gICAgXHJcbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiZ3N0RmlsZVwiIGNsYXNzPVwibXQtMyBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ1cGxvYWRlZC1kb2MtdGV4dCBtZS0yXCI+e3tnc3RGaWxlLm5hbWUgPyBnc3RGaWxlLm5hbWUgOiAnJ319PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzdmcgY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiIChjbGljayk9XCJnc3RGaWxlID0gbnVsbFwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0xMi41MDAzIDcuNTAwMDFMNy41MDAzMyAxMi41TTcuNTAwMzMgNy41MDAwMUwxMi41MDAzIDEyLjVNMTguMzMzNyAxMEMxOC4zMzM3IDE0LjYwMjQgMTQuNjAyNyAxOC4zMzMzIDEwLjAwMDMgMTguMzMzM0M1LjM5Nzk1IDE4LjMzMzMgMS42NjY5OSAxNC42MDI0IDEuNjY2OTkgMTBDMS42NjY5OSA1LjM5NzYzIDUuMzk3OTUgMS42NjY2NyAxMC4wMDAzIDEuNjY2NjdDMTQuNjAyNyAxLjY2NjY3IDE4LjMzMzcgNS4zOTc2MyAxOC4zMzM3IDEwWlwiIHN0cm9rZT1cIiMwMDlCRjNcIiBzdHJva2Utd2lkdGg9XCIxLjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMiBjb2wtbGctNiBjb2wteGwtNiBjb2wteHhsLTYgbWItNVwiPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImdzdE51bWJlclwiIGNsYXNzPVwiZm9ybS1sYWJlbFwiPlBhbiBOdW1iZXIgPHNwYW4gY2xhc3M9XCJhbGVydC1yZXF1aXJlZFwiPjwvc3Bhbj48L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwIFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJwYW5OdW1iZXJcIiB0eXBlPVwidGV4dFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgcGxhY2Vob2xkZXI9XCJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiRXhhbXBsZSB0ZXh0IHdpdGggYnV0dG9uIGFkZG9uXCIgYXJpYS1kZXNjcmliZWRieT1cImJ1dHRvbi1hZGRvbjFcIiBpZD1cImdzdE51bWJlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cInRyaWdnZXJHc3RJbnB1dCgncGFuJylcIiBbZGlzYWJsZWRdPVwiZG9jdW1lbnRzRm9ybS5kaXNhYmxlZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lIHVwbG9hZC1idG5cIiB0eXBlPVwiYnV0dG9uXCIgaWQ9XCJidXR0b24tYWRkb24xXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWUtMlwiPjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xNy41IDEyLjVWMTUuODMzM0MxNy41IDE2LjI3NTQgMTcuMzI0NCAxNi42OTkzIDE3LjAxMTggMTcuMDExOEMxNi42OTkzIDE3LjMyNDQgMTYuMjc1NCAxNy41IDE1LjgzMzMgMTcuNUg0LjE2NjY3QzMuNzI0NjQgMTcuNSAzLjMwMDcyIDE3LjMyNDQgMi45ODgxNiAxNy4wMTE4QzIuNjc1NTkgMTYuNjk5MyAyLjUgMTYuMjc1NCAyLjUgMTUuODMzM1YxMi41TTE0LjE2NjcgNi42NjY2N0wxMCAyLjVNMTAgMi41TDUuODMzMzMgNi42NjY2N00xMCAyLjVWMTIuNVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIxLjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgVXBsb2FkPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxpbnB1dCAoY2hhbmdlKT1cIm9uRmlsZVNlbGVjdCgkZXZlbnQsICdwYW4nKVwiIGFjY2VwdD1cIi5wZGZcIiBjbGFzcz1cImQtbm9uZVwiICNwYW5Gb3JtSW5wdXQgdHlwZT1cImZpbGVcIj5cclxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIoZ3MudXNlckFjY2VzcyB8IGFzeW5jKT8uc2V0dGluZ3NfZG9jdW1lbnRzX2lzRG93bmxvYWQgXCIgPlxyXG4gICAgICAgICAgICAgICAgPGEgKm5nSWY9XCJjbGllbnREYXRhPy5kb2N1bWVudD8ucGFuPy5wYXRoICYmICFwYW5GaWxlXCIgW2hyZWZdPVwiY2xpZW50RGF0YT8uZG9jdW1lbnQ/LnBhbj8ucGF0aFwiIHRhcmdldD1cIl9ibGFua1wiXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtdC0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ1cGxvYWRlZC1kb2MtdGV4dCBtZS0yXCI+UEFOIENlcnRpZmljYXRlPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9hPiAgICBcclxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJwYW5GaWxlXCIgY2xhc3M9XCJtdC0zIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInVwbG9hZGVkLWRvYy10ZXh0IG1lLTJcIj57e3BhbkZpbGUubmFtZSA/IHBhbkZpbGUubmFtZSA6ICcnfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHN2ZyBjbGFzcz1cImN1cnNvci1wb2ludGVyXCIgKGNsaWNrKT1cInBhbkZpbGUgPSBudWxsXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTEyLjUwMDMgNy41MDAwMUw3LjUwMDMzIDEyLjVNNy41MDAzMyA3LjUwMDAxTDEyLjUwMDMgMTIuNU0xOC4zMzM3IDEwQzE4LjMzMzcgMTQuNjAyNCAxNC42MDI3IDE4LjMzMzMgMTAuMDAwMyAxOC4zMzMzQzUuMzk3OTUgMTguMzMzMyAxLjY2Njk5IDE0LjYwMjQgMS42NjY5OSAxMEMxLjY2Njk5IDUuMzk3NjMgNS4zOTc5NSAxLjY2NjY3IDEwLjAwMDMgMS42NjY2N0MxNC42MDI3IDEuNjY2NjcgMTguMzMzNyA1LjM5NzYzIDE4LjMzMzcgMTBaXCIgc3Ryb2tlPVwiIzAwOUJGM1wiIHN0cm9rZS13aWR0aD1cIjEuNjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyIGNvbC1sZy02IGNvbC14bC02IGNvbC14eGwtNiBtYi01XCI+XHJcbiAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiZ3N0TnVtYmVyXCIgY2xhc3M9XCJmb3JtLWxhYmVsXCI+Q0lOIE51bWJlciA8c3BhbiBjbGFzcz1cImFsZXJ0LXJlcXVpcmVkXCI+PC9zcGFuPjwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtZ3JvdXAgXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGlucHV0IGZvcm1Db250cm9sTmFtZT1cImNpbk51bWJlclwiIHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBwbGFjZWhvbGRlcj1cIlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJFeGFtcGxlIHRleHQgd2l0aCBidXR0b24gYWRkb25cIiBhcmlhLWRlc2NyaWJlZGJ5PVwiYnV0dG9uLWFkZG9uMVwiIGlkPVwiZ3N0TnVtYmVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwidHJpZ2dlckdzdElucHV0KCdjaW4nKVwiIFtkaXNhYmxlZF09XCJkb2N1bWVudHNGb3JtLmRpc2FibGVkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLW91dGxpbmUgdXBsb2FkLWJ0blwiIHR5cGU9XCJidXR0b25cIiBpZD1cImJ1dHRvbi1hZGRvbjFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtZS0yXCI+PHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTE3LjUgMTIuNVYxNS44MzMzQzE3LjUgMTYuMjc1NCAxNy4zMjQ0IDE2LjY5OTMgMTcuMDExOCAxNy4wMTE4QzE2LjY5OTMgMTcuMzI0NCAxNi4yNzU0IDE3LjUgMTUuODMzMyAxNy41SDQuMTY2NjdDMy43MjQ2NCAxNy41IDMuMzAwNzIgMTcuMzI0NCAyLjk4ODE2IDE3LjAxMThDMi42NzU1OSAxNi42OTkzIDIuNSAxNi4yNzU0IDIuNSAxNS44MzMzVjEyLjVNMTQuMTY2NyA2LjY2NjY3TDEwIDIuNU0xMCAyLjVMNS44MzMzMyA2LjY2NjY3TTEwIDIuNVYxMi41XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjEuNjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBVcGxvYWQ8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGlucHV0IChjaGFuZ2UpPVwib25GaWxlU2VsZWN0KCRldmVudCwgJ2NpbicpXCIgYWNjZXB0PVwiLnBkZlwiIGNsYXNzPVwiZC1ub25lXCIgI2NpbkZvcm1JbnB1dCB0eXBlPVwiZmlsZVwiPlxyXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIihncy51c2VyQWNjZXNzIHwgYXN5bmMpPy5zZXR0aW5nc19kb2N1bWVudHNfaXNEb3dubG9hZCBcIiA+XHJcbiAgICAgICAgICAgICAgICA8YSAqbmdJZj1cImNsaWVudERhdGE/LmRvY3VtZW50Py5jaW4/LnBhdGggJiYgIWNpbkZpbGVcIiBbaHJlZl09XCJjbGllbnREYXRhPy5kb2N1bWVudD8uY2luPy5wYXRoXCIgdGFyZ2V0PVwiX2JsYW5rXCJcclxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm10LTNcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInVwbG9hZGVkLWRvYy10ZXh0IG1lLTJcIj5DSU4gQ2VydGlmaWNhdGU8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8L2E+ICAgIFxyXG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cImNpbkZpbGVcIiBjbGFzcz1cIm10LTMgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidXBsb2FkZWQtZG9jLXRleHQgbWUtMlwiPnt7Y2luRmlsZS5uYW1lID8gY2luRmlsZS5uYW1lIDogJyd9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3ZnIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwiY2luRmlsZSA9IG51bGxcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTIuNTAwMyA3LjUwMDAxTDcuNTAwMzMgMTIuNU03LjUwMDMzIDcuNTAwMDFMMTIuNTAwMyAxMi41TTE4LjMzMzcgMTBDMTguMzMzNyAxNC42MDI0IDE0LjYwMjcgMTguMzMzMyAxMC4wMDAzIDE4LjMzMzNDNS4zOTc5NSAxOC4zMzMzIDEuNjY2OTkgMTQuNjAyNCAxLjY2Njk5IDEwQzEuNjY2OTkgNS4zOTc2MyA1LjM5Nzk1IDEuNjY2NjcgMTAuMDAwMyAxLjY2NjY3QzE0LjYwMjcgMS42NjY2NyAxOC4zMzM3IDUuMzk3NjMgMTguMzMzNyAxMFpcIiBzdHJva2U9XCIjMDA5QkYzXCIgc3Ryb2tlLXdpZHRoPVwiMS42N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTIgY29sLWxnLTYgY29sLXhsLTYgY29sLXh4bC02IG1iLTVcIj5cclxuICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJpbnZvaWNlQXV0aG9yaXR5TmFtZVwiIGNsYXNzPVwiZm9ybS1sYWJlbFwiPkNvbnRyYWN0IEFncmVlbWVudCA8c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImFsZXJ0LXJlcXVpcmVkXCI+PC9zcGFuPjwvbGFiZWw+XHJcblxyXG5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWxlLW9wZW4taW5wdXRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3ZnIGNsYXNzPVwibC1pY29uXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjZcIiBoZWlnaHQ9XCIyNlwiIHZpZXdCb3g9XCIwIDAgMjYgMjZcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0zLjI0OTk4IDBIMTcuMDU2OEwyNC4zNzQ5IDcuMjg5NzdWMjQuMzc1QzI0LjM3NDkgMjUuMjcyOCAyMy42NDcgMjYgMjIuNzUgMjZIMy4yNDk5OEMyLjM1Mjk2IDI2IDEuNjI1IDI1LjI3MjggMS42MjUgMjQuMzc1VjEuNjI0OThDMS42MjUgMC43MjcyMDMgMi4zNTMwNCAwIDMuMjQ5OTggMFpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIiNFMjU3NENcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0yNC4zNTE0IDcuMzExODdIMTguNjg3NUMxNy43OTA1IDcuMzExODcgMTcuMDYyNSA2LjU4MzkxIDE3LjA2MjUgNS42ODY4OVYwLjAxNTYyNUwyNC4zNTE0IDcuMzExODdaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCIjQjUzNjI5XCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTguMjc5MyAxMi4zMThDMTguNTUxNSAxMi4zMTggMTguNjg0OCAxMi4wODA4IDE4LjY4NDggMTEuODUwOEMxOC42ODQ4IDExLjYxMjcgMTguNTQ1OCAxMS4zODI4IDE4LjI3OTMgMTEuMzgyOEgxNi43MjkxQzE2LjQyNiAxMS4zODI4IDE2LjI1NyAxMS42MzM4IDE2LjI1NyAxMS45MTA5VjE1LjcyMDdDMTYuMjU3IDE2LjA2MDQgMTYuNDUwNCAxNi4yNDg5IDE2LjcxMiAxNi4yNDg5QzE2Ljk3MiAxNi4yNDg5IDE3LjE2NjIgMTYuMDYwNCAxNy4xNjYyIDE1LjcyMDdWMTQuNjc1MUgxOC4xMDM5QzE4LjM5NDcgMTQuNjc1MSAxOC41NDAyIDE0LjQzNyAxOC41NDAyIDE0LjIwMDZDMTguNTQwMiAxMy45NjkxIDE4LjM5NDcgMTMuNzM5IDE4LjEwMzkgMTMuNzM5SDE3LjE2NjJWMTIuMzE4SDE4LjI3OTNaTTEzLjAzOTUgMTEuMzgyOEgxMS45MDUyQzExLjU5NzMgMTEuMzgyOCAxMS4zNzg3IDExLjU5NDEgMTEuMzc4NyAxMS45MDc3VjE1LjcyNEMxMS4zNzg3IDE2LjExMzIgMTEuNjkzMSAxNi4yMzUxIDExLjkxODIgMTYuMjM1MUgxMy4xMDg1QzE0LjUxNzQgMTYuMjM1MSAxNS40NDc3IDE1LjMwOCAxNS40NDc3IDEzLjg3NzJDMTUuNDQ2OSAxMi4zNjQzIDE0LjU3MTEgMTEuMzgyOCAxMy4wMzk1IDExLjM4MjhaTTEzLjA5NCAxNS4yOTQySDEyLjQwMjVWMTIuMzIzN0gxMy4wMjU3QzEzLjk2OTEgMTIuMzIzNyAxNC4zNzkzIDEyLjk1NjcgMTQuMzc5MyAxMy44MzAxQzE0LjM3OTMgMTQuNjQ3NSAxMy45NzYzIDE1LjI5NDIgMTMuMDk0IDE1LjI5NDJaTTguOTM4ODIgMTEuMzgyOEg3LjgxNTE1QzcuNDk3NDUgMTEuMzgyOCA3LjMyMDMxIDExLjU5MjQgNy4zMjAzMSAxMS45MTA5VjE1LjcyMDdDNy4zMjAzMSAxNi4wNjA0IDcuNTIzNDIgMTYuMjQ4OSA3Ljc5NjQgMTYuMjQ4OUM4LjA2OTM3IDE2LjI0ODkgOC4yNzI0OSAxNi4wNjA0IDguMjcyNDkgMTUuNzIwN1YxNC42MDg0SDguOTc2OTFDOS44NDYyNyAxNC42MDg0IDEwLjU2MzcgMTMuOTkyNSAxMC41NjM3IDEzLjAwMjFDMTAuNTYzOCAxMi4wMzI4IDkuODcxNTggMTEuMzgyOCA4LjkzODgyIDExLjM4MjhaTTguOTIwMTYgMTMuNzE0N0g4LjI3MjU3VjEyLjI3NzRIOC45MjAxNkM5LjMxOTkxIDEyLjI3NzQgOS41NzQyMiAxMi41ODk0IDkuNTc0MjIgMTIuOTk2NEM5LjU3MzM4IDEzLjQwMjggOS4zMTk5MSAxMy43MTQ3IDguOTIwMTYgMTMuNzE0N1pcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIndoaXRlXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInR5cGVcIiB2YWx1ZT1cIkNvbnRyYWN0IEFncmVlbWVudC5wZGZcIiByZWFkb25seSBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiaW52b2ljZUF1dGhvcml0eU5hbWVcIiBhdXRvY29tcGxldGU9XCJvZmZcIj5cclxuICAgICAgICAgICAgICAgICAgICA8YSB0YXJnZXQ9XCJfYmxhbmtcIiBjbGFzcz1cInItaWNvblwiIFtocmVmXT1cImNsaWVudERhdGE/LmRvY3VtZW50Py5jb250cmFjdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0wLjgzMzk4NCAxMEMwLjgzMzk4NCAxMCA0LjE2NzMyIDMuMzMzMzcgMTAuMDAwNyAzLjMzMzM3QzE1LjgzNCAzLjMzMzM3IDE5LjE2NzMgMTAgMTkuMTY3MyAxMEMxOS4xNjczIDEwIDE1LjgzNCAxNi42NjY3IDEwLjAwMDcgMTYuNjY2N0M0LjE2NzMyIDE2LjY2NjcgMC44MzM5ODQgMTAgMC44MzM5ODQgMTBaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjMzQ0MDU0XCIgc3Ryb2tlLXdpZHRoPVwiMS40XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xMC4wMDA3IDEyLjVDMTEuMzgxNCAxMi41IDEyLjUwMDYgMTEuMzgwOCAxMi41MDA2IDEwQzEyLjUwMDYgOC42MTkzMyAxMS4zODE0IDcuNTAwMDQgMTAuMDAwNyA3LjUwMDA0QzguNjE5OTQgNy41MDAwNCA3LjUwMDY1IDguNjE5MzMgNy41MDA2NSAxMEM3LjUwMDY1IDExLjM4MDggOC42MTk5NCAxMi41IDEwLjAwMDcgMTIuNVpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiMzNDQwNTRcIiBzdHJva2Utd2lkdGg9XCIxLjRcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICA8L2E+XHJcblxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTIgY29sLWxnLTYgY29sLXhsLTYgY29sLXh4bC02IG1iLTVcIj5cclxuICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJpbnZvaWNlQXV0aG9yaXR5TmFtZVwiIGNsYXNzPVwiZm9ybS1sYWJlbFwiPlQmQyBBZ3JlZW1lbnQgPHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJhbGVydC1yZXF1aXJlZFwiPjwvc3Bhbj48L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpbGUtb3Blbi1pbnB1dFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzdmcgY2xhc3M9XCJsLWljb25cIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyNlwiIGhlaWdodD1cIjI2XCIgdmlld0JveD1cIjAgMCAyNiAyNlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTMuMjQ5OTggMEgxNy4wNTY4TDI0LjM3NDkgNy4yODk3N1YyNC4zNzVDMjQuMzc0OSAyNS4yNzI4IDIzLjY0NyAyNiAyMi43NSAyNkgzLjI0OTk4QzIuMzUyOTYgMjYgMS42MjUgMjUuMjcyOCAxLjYyNSAyNC4zNzVWMS42MjQ5OEMxLjYyNSAwLjcyNzIwMyAyLjM1MzA0IDAgMy4yNDk5OCAwWlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwiI0UyNTc0Q1wiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTI0LjM1MTQgNy4zMTE4N0gxOC42ODc1QzE3Ljc5MDUgNy4zMTE4NyAxNy4wNjI1IDYuNTgzOTEgMTcuMDYyNSA1LjY4Njg5VjAuMDE1NjI1TDI0LjM1MTQgNy4zMTE4N1pcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIiNCNTM2MjlcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xOC4yNzkzIDEyLjMxOEMxOC41NTE1IDEyLjMxOCAxOC42ODQ4IDEyLjA4MDggMTguNjg0OCAxMS44NTA4QzE4LjY4NDggMTEuNjEyNyAxOC41NDU4IDExLjM4MjggMTguMjc5MyAxMS4zODI4SDE2LjcyOTFDMTYuNDI2IDExLjM4MjggMTYuMjU3IDExLjYzMzggMTYuMjU3IDExLjkxMDlWMTUuNzIwN0MxNi4yNTcgMTYuMDYwNCAxNi40NTA0IDE2LjI0ODkgMTYuNzEyIDE2LjI0ODlDMTYuOTcyIDE2LjI0ODkgMTcuMTY2MiAxNi4wNjA0IDE3LjE2NjIgMTUuNzIwN1YxNC42NzUxSDE4LjEwMzlDMTguMzk0NyAxNC42NzUxIDE4LjU0MDIgMTQuNDM3IDE4LjU0MDIgMTQuMjAwNkMxOC41NDAyIDEzLjk2OTEgMTguMzk0NyAxMy43MzkgMTguMTAzOSAxMy43MzlIMTcuMTY2MlYxMi4zMThIMTguMjc5M1pNMTMuMDM5NSAxMS4zODI4SDExLjkwNTJDMTEuNTk3MyAxMS4zODI4IDExLjM3ODcgMTEuNTk0MSAxMS4zNzg3IDExLjkwNzdWMTUuNzI0QzExLjM3ODcgMTYuMTEzMiAxMS42OTMxIDE2LjIzNTEgMTEuOTE4MiAxNi4yMzUxSDEzLjEwODVDMTQuNTE3NCAxNi4yMzUxIDE1LjQ0NzcgMTUuMzA4IDE1LjQ0NzcgMTMuODc3MkMxNS40NDY5IDEyLjM2NDMgMTQuNTcxMSAxMS4zODI4IDEzLjAzOTUgMTEuMzgyOFpNMTMuMDk0IDE1LjI5NDJIMTIuNDAyNVYxMi4zMjM3SDEzLjAyNTdDMTMuOTY5MSAxMi4zMjM3IDE0LjM3OTMgMTIuOTU2NyAxNC4zNzkzIDEzLjgzMDFDMTQuMzc5MyAxNC42NDc1IDEzLjk3NjMgMTUuMjk0MiAxMy4wOTQgMTUuMjk0MlpNOC45Mzg4MiAxMS4zODI4SDcuODE1MTVDNy40OTc0NSAxMS4zODI4IDcuMzIwMzEgMTEuNTkyNCA3LjMyMDMxIDExLjkxMDlWMTUuNzIwN0M3LjMyMDMxIDE2LjA2MDQgNy41MjM0MiAxNi4yNDg5IDcuNzk2NCAxNi4yNDg5QzguMDY5MzcgMTYuMjQ4OSA4LjI3MjQ5IDE2LjA2MDQgOC4yNzI0OSAxNS43MjA3VjE0LjYwODRIOC45NzY5MUM5Ljg0NjI3IDE0LjYwODQgMTAuNTYzNyAxMy45OTI1IDEwLjU2MzcgMTMuMDAyMUMxMC41NjM4IDEyLjAzMjggOS44NzE1OCAxMS4zODI4IDguOTM4ODIgMTEuMzgyOFpNOC45MjAxNiAxMy43MTQ3SDguMjcyNTdWMTIuMjc3NEg4LjkyMDE2QzkuMzE5OTEgMTIuMjc3NCA5LjU3NDIyIDEyLjU4OTQgOS41NzQyMiAxMi45OTY0QzkuNTczMzggMTMuNDAyOCA5LjMxOTkxIDEzLjcxNDcgOC45MjAxNiAxMy43MTQ3WlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwid2hpdGVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidHlwZVwiIHZhbHVlPVwiVCAmIEMgQWdyZWVtZW50LnBkZlwiIHJlYWRvbmx5IGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJpbnZvaWNlQXV0aG9yaXR5TmFtZVwiIGF1dG9jb21wbGV0ZT1cIm9mZlwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxhIHRhcmdldD1cIl9ibGFua1wiIGNsYXNzPVwici1pY29uXCIgW2hyZWZdPVwiY2xpZW50RGF0YT8uZG9jdW1lbnQ/LnRlcm1zQW5kY29uZGl0aW9uc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0wLjgzMzk4NCAxMEMwLjgzMzk4NCAxMCA0LjE2NzMyIDMuMzMzMzcgMTAuMDAwNyAzLjMzMzM3QzE1LjgzNCAzLjMzMzM3IDE5LjE2NzMgMTAgMTkuMTY3MyAxMEMxOS4xNjczIDEwIDE1LjgzNCAxNi42NjY3IDEwLjAwMDcgMTYuNjY2N0M0LjE2NzMyIDE2LjY2NjcgMC44MzM5ODQgMTAgMC44MzM5ODQgMTBaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjMzQ0MDU0XCIgc3Ryb2tlLXdpZHRoPVwiMS40XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xMC4wMDA3IDEyLjVDMTEuMzgxNCAxMi41IDEyLjUwMDYgMTEuMzgwOCAxMi41MDA2IDEwQzEyLjUwMDYgOC42MTkzMyAxMS4zODE0IDcuNTAwMDQgMTAuMDAwNyA3LjUwMDA0QzguNjE5OTQgNy41MDAwNCA3LjUwMDY1IDguNjE5MzMgNy41MDA2NSAxMEM3LjUwMDY1IDExLjM4MDggOC42MTk5NCAxMi41IDEwLjAwMDcgMTIuNVpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiMzNDQwNTRcIiBzdHJva2Utd2lkdGg9XCIxLjRcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICA8L2E+XHJcblxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2ICpuZ0lmPVwiZG9jdW1lbnRzRm9ybS5lbmFibGVkXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi01IHctMTAwIGZvb3Rlci1zZXBlcmF0b3JcIj48L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtZW5kXCI+XHJcbiAgICAgICAgICAgICAgICA8YSB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLW91dGxpbmUgbWUtNFwiIChjbGljayk9XCJvbkNhbmNlbCgpXCI+Q2FuY2VsPC9hPlxyXG4gICAgICAgICAgICAgICAgPGEgdHlwZT1cInN1Ym1pdFwiIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IHB4LTQgXCIgKGNsaWNrKT1cIm9uU3VibWl0KClcIj48c3Bhbj5TYXZlIENoYW5nZXM8L3NwYW4+PC9hPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICA8L2Zvcm0+XHJcblxyXG48L2Rpdj4iXX0=
181
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnRzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLW1hbmFnZS1zZXR0aW5ncy9zcmMvbGliL2NvbXBvbmVudHMvZG9jdW1lbnRzL2RvY3VtZW50cy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1tYW5hZ2Utc2V0dGluZ3Mvc3JjL2xpYi9jb21wb25lbnRzL2RvY3VtZW50cy9kb2N1bWVudHMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFxQixTQUFTLEVBQXlCLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUvRixPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7OztBQVUxQyxNQUFNLE9BQU8sa0JBQWtCO0lBa0JUO0lBQXlCO0lBQXNDO0lBQStCO0lBQThCO0lBaEJoSixhQUFhLENBQVc7SUFDeEIsVUFBVSxDQUFNO0lBQ1csWUFBWSxDQUEwQjtJQUM3QixxQkFBcUIsQ0FBMEI7SUFDeEQsWUFBWSxDQUEwQjtJQUN0QyxZQUFZLENBQTBCO0lBRWhELFFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO0lBQzFDLE9BQU8sQ0FBYztJQUNyQixXQUFXLENBQWM7SUFDekIsT0FBTyxDQUFjO0lBQ3JCLE9BQU8sQ0FBYztJQUNyQixhQUFhLENBQU07SUFJbkIsWUFBb0IsRUFBZSxFQUFVLFVBQTRCLEVBQVUsRUFBcUIsRUFBVSxPQUFxQixFQUFTLEVBQXNCO1FBQWxKLE9BQUUsR0FBRixFQUFFLENBQWE7UUFBVSxlQUFVLEdBQVYsVUFBVSxDQUFrQjtRQUFVLE9BQUUsR0FBRixFQUFFLENBQW1CO1FBQVUsWUFBTyxHQUFQLE9BQU8sQ0FBYztRQUFTLE9BQUUsR0FBRixFQUFFLENBQW9CO1FBQ3BLLElBQUksQ0FBQyxRQUFRLEVBQUUs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Wi9CLDZ3cUJBc09NOzs0RkQxTk8sa0JBQWtCO2tCQUw5QixTQUFTOytCQUNFLGVBQWU7Mk1BUUUsWUFBWTtzQkFBdEMsU0FBUzt1QkFBQyxjQUFjO2dCQUNXLHFCQUFxQjtzQkFBeEQsU0FBUzt1QkFBQyx1QkFBdUI7Z0JBQ1AsWUFBWTtzQkFBdEMsU0FBUzt1QkFBQyxjQUFjO2dCQUNFLFlBQVk7c0JBQXRDLFNBQVM7dUJBQUMsY0FBYyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIE9uRGVzdHJveSwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1Hcm91cCwgRm9ybUJ1aWxkZXIgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBDbGllbnRBcGlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvY2xpZW50LWFwaS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVG9hc3RTZXJ2aWNlIH0gZnJvbSAndGFuZ28tYXBwLXVpLXNoYXJlZCc7XHJcbmltcG9ydCB7IEdsb2JhbFN0YXRlU2VydmljZSB9IGZyb20gJ3RhbmdvLWFwcC11aS1nbG9iYWwnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItZG9jdW1lbnRzJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZG9jdW1lbnRzLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vZG9jdW1lbnRzLmNvbXBvbmVudC5zY3NzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgRG9jdW1lbnRzQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcclxuXHJcbiAgZG9jdW1lbnRzRm9ybTogRm9ybUdyb3VwXHJcbiAgY2xpZW50RGF0YTogYW55O1xyXG4gIEBWaWV3Q2hpbGQoJ2dzdEZvcm1JbnB1dCcpIGdzdEZvcm1JbnB1dDogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XHJcbiAgQFZpZXdDaGlsZCgnYWRkcmVzc1Byb29mRm9ybUlucHV0JykgYWRkcmVzc1Byb29mRm9ybUlucHV0OiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcclxuICBAVmlld0NoaWxkKCdwYW5Gb3JtSW5wdXQnKSBwYW5Gb3JtSW5wdXQ6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xyXG4gIEBWaWV3Q2hpbGQoJ2NpbkZvcm1JbnB1dCcpIGNpbkZvcm1JbnB1dDogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XHJcblxyXG4gIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveSQgPSBuZXcgU3ViamVjdCgpO1xyXG4gIGdzdEZpbGU6IEZpbGUgfCBudWxsO1xyXG4gIGFkZHJlc3NGaWxlOiBGaWxlIHwgbnVsbDtcclxuICBwYW5GaWxlOiBGaWxlIHwgbnVsbDtcclxuICBjaW5GaWxlOiBGaWxlIHwgbnVsbDtcclxuICBkb2NQcmV2VmFsdWVzOiBhbnk7XHJcblxyXG5cclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIsIHByaXZhdGUgYXBpU2VydmljZTogQ2xpZW50QXBpU2VydmljZSwgcHJpdmF0ZSBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYsIHByaXZhdGUgdG9hc3RlcjogVG9hc3RTZXJ2aWNlLCBwdWJsaWMgZ3M6IEdsb2JhbFN0YXRlU2VydmljZSkge1xyXG4gICAgdGhpcy5pbml0Rm9ybSgpXHJcbiAgICB0aGlzLmFwaVNlcnZpY2UuY2xpZW50RGF0YS5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKChlKSA9PiB7XHJcbiAgICAgIGlmIChlKSB7XHJcbiAgICAgICAgdGhpcy5jbGllbnREYXRhID0gZVxyXG4gICAgICAgIHRoaXMucGF0Y2hGb3JtKGUpXHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuZGVzdHJveSQubmV4dCh0cnVlKTtcclxuICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcclxuICB9XHJcblxyXG5cclxuXHJcbiAgaW5pdEZvcm0oKSB7XHJcbiAgICB0aGlzLmRvY3VtZW50c0Zvcm0gPSB0aGlzLmZiLmdyb3VwKHtcclxuICAgICAgYWRkcmVzc0RvYzogWycnXSxcclxuICAgICAgZ3N0TnVtYmVyOiBbJyddLFxyXG4gICAgICBnc3REb2M6IFsnJ10sXHJcbiAgICAgIHBhbk51bWJlcjogWycnXSxcclxuICAgICAgcGFuRG9jOiBbJyddLFxyXG4gICAgICBjaW5OdW1iZXI6IFsnJ10sXHJcbiAgICAgIGNpbkRvYzogWycnXSxcclxuICAgIH0pO1xyXG4gICAgdGhpcy5kb2N1bWVudHNGb3JtLmRpc2FibGUoKVxyXG4gIH1cclxuXHJcbiAgcGF0Y2hGb3JtKGRhdGE6IGFueSkge1xyXG4gICAgdGhpcy5kb2N1bWVudHNGb3JtLnBhdGNoVmFsdWUoXHJcbiAgICAgIHtcclxuICAgICAgICBnc3ROdW1iZXI6IGRhdGE/LmRvY3VtZW50Py5nc3Q/Lm51bWJlcixcclxuICAgICAgICBwYW5OdW1iZXI6IGRhdGE/LmRvY3VtZW50Py5wYW4/Lm51bWJlcixcclxuICAgICAgICBjaW5OdW1iZXI6IGRhdGE/LmRvY3VtZW50Py5jaW4/Lm51bWJlcixcclxuICAgICAgfVxyXG4gICAgKVxyXG5cclxuICAgIHRoaXMuZG9jUHJldlZhbHVlcyA9IHtcclxuICAgICAgZ3N0TnVtYmVyOiBkYXRhPy5kb2N1bWVudD8uZ3N0Py5udW1iZXIsXHJcbiAgICAgIHBhbk51bWJlcjogZGF0YT8uZG9jdW1lbnQ/LnBhbj8ubnVtYmVyLFxyXG4gICAgICBjaW5OdW1iZXI6IGRhdGE/LmRvY3VtZW50Py5jaW4/Lm51bWJlcixcclxuICAgICAgYWRkcmVzc0RvYzogZGF0YT8uZG9jdW1lbnQ/LmNvbnRhY3QsXHJcbiAgICAgIGdzdERvYzogZGF0YT8uZG9jdW1lbnQ/LmNpbj8ucGF0aCxcclxuICAgICAgcGFuRG9jOiBkYXRhPy5kb2N1bWVudD8uY2luPy5wYXRoLFxyXG4gICAgICBjaW5Eb2M6IGRhdGE/LmRvY3VtZW50Py5jaW4/LnBhdGgsXHJcbiAgICB9XHJcbiAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKVxyXG4gIH1cclxuXHJcbiAgdHJpZ2dlckdzdElucHV0KHR5cGU6IHN0cmluZykge1xyXG4gICAgaWYgKHR5cGUgPT09ICdnc3QnKSB7XHJcbiAgICAgIHRoaXMuZ3N0Rm9ybUlucHV0Lm5hdGl2ZUVsZW1lbnQuY2xpY2soKVxyXG4gICAgfSBlbHNlXHJcbiAgICAgIGlmICh0eXBlID09PSAnYWRkcmVzcycpIHtcclxuICAgICAgICB0aGlzLmFkZHJlc3NQcm9vZkZvcm1JbnB1dC5uYXRpdmVFbGVtZW50LmNsaWNrKClcclxuICAgICAgfSBlbHNlXHJcbiAgICAgICAgaWYgKHR5cGUgPT09ICdwYW4nKSB7XHJcbiAgICAgICAgICB0aGlzLnBhbkZvcm1JbnB1dC5uYXRpdmVFbGVtZW50LmNsaWNrKClcclxuICAgICAgICB9IGVsc2VcclxuICAgICAgICAgIGlmICh0eXBlID09PSAnY2luJykge1xyXG4gICAgICAgICAgICB0aGlzLmNpbkZvcm1JbnB1dC5uYXRpdmVFbGVtZW50LmNsaWNrKClcclxuICAgICAgICAgIH1cclxuXHJcbiAgfVxyXG5cclxuXHJcblxyXG4gIG9uRmlsZVNlbGVjdChldmVudDogYW55LCB0eXBlOiBzdHJpbmcpIHtcclxuICAgIGlmICghZXZlbnQudGFyZ2V0LmZpbGVzIHx8ICFldmVudC50YXJnZXQuZmlsZXNbMF0pIHtcclxuICAgICAgcmV0dXJuXHJcbiAgICB9XHJcbiAgICBpZiAodHlwZSA9PT0gJ2dzdCcpIHtcclxuICAgICAgY29uc3QgZmlsZTogRmlsZSA9IGV2ZW50LnRhcmdldC5maWxlc1swXTtcclxuICAgICAgdGhpcy5nc3RGaWxlID0gZmlsZVxyXG4gICAgfSBlbHNlXHJcbiAgICAgIGlmICh0eXBlID09PSAnYWRkcmVzcycpIHtcclxuICAgICAgICBjb25zdCBmaWxlOiBGaWxlID0gZXZlbnQudGFyZ2V0LmZpbGVzWzBdO1xyXG4gICAgICAgIHRoaXMuYWRkcmVzc0ZpbGUgPSBmaWxlXHJcbiAgICAgIH0gZWxzZVxyXG4gICAgICAgIGlmICh0eXBlID09PSAncGFuJykge1xyXG4gICAgICAgICAgY29uc3QgZmlsZTogRmlsZSA9IGV2ZW50LnRhcmdldC5maWxlc1swXTtcclxuICAgICAgICAgIHRoaXMucGFuRmlsZSA9IGZpbGVcclxuICAgICAgICB9IGVsc2VcclxuICAgICAgICAgIGlmICh0eXBlID09PSAnY2luJykge1xyXG4gICAgICAgICAgICBjb25zdCBmaWxlOiBGaWxlID0gZXZlbnQudGFyZ2V0LmZpbGVzWzBdO1xyXG4gICAgICAgICAgICB0aGlzLmNpbkZpbGUgPSBmaWxlXHJcbiAgICAgICAgICB9XHJcblxyXG4gIH1cclxuXHJcblxyXG4gIG9uQ2FuY2VsKCkge1xyXG4gICAgdGhpcy5nc3RGaWxlID0gbnVsbDtcclxuICAgIHRoaXMuYWRkcmVzc0ZpbGUgPSBudWxsO1xyXG4gICAgdGhpcy5wYW5GaWxlID0gbnVsbDtcclxuICAgIHRoaXMuY2luRmlsZSA9IG51bGw7XHJcbiAgICB0aGlzLmRvY3VtZW50c0Zvcm0uZGlzYWJsZSgpXHJcbiAgICB0aGlzLnBhdGNoRm9ybSh0aGlzLmNsaWVudERhdGEpXHJcbiAgfVxyXG5cclxuICBvblN1Ym1pdCgpIHtcclxuICAgIGlmICh0aGlzLmdzdEZpbGUpIHtcclxuICAgICAgdGhpcy5kb2N1bWVudHNGb3JtLnZhbHVlLmdzdERvYyA9IHRoaXMuZ3N0RmlsZVxyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuYWRkcmVzc0ZpbGUpIHtcclxuICAgICAgdGhpcy5kb2N1bWVudHNGb3JtLnZhbHVlLmFkZHJlc3NEb2MgPSB0aGlzLmFkZHJlc3NGaWxlXHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5wYW5GaWxlKSB7XHJcbiAgICAgIHRoaXMuZG9jdW1lbnRzRm9ybS52YWx1ZS5wYW5Eb2MgPSB0aGlzLnBhbkZpbGVcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmNpbkZpbGUpIHtcclxuICAgICAgdGhpcy5kb2N1bWVudHNGb3JtLnZhbHVlLmNpbkRvYyA9IHRoaXMuY2luRmlsZVxyXG4gICAgfVxyXG4gICAgY29uc3QgZGF0YSA9IHRoaXMuZ2V0RGlmZmVyZW50RW50cmllcyh0aGlzLmRvY1ByZXZWYWx1ZXMsIHRoaXMuZG9jdW1lbnRzRm9ybS52YWx1ZSlcclxuICAgIFxyXG4gICAgY29uc3QgZm9ybURhdGEgPSB0aGlzLmpzb25Ub0Zvcm1EYXRhKGRhdGEpXHJcblxyXG4gICAgdGhpcy5hcGlTZXJ2aWNlLnVwZGF0ZURvY3VtZW50cyh0aGlzLmNsaWVudERhdGEuY2xpZW50SWQsIGZvcm1EYXRhKS5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKGUpID0+IHtcclxuICAgICAgICB0aGlzLnRvYXN0ZXIuZ2V0U3VjY2Vzc1RvYXN0KGUuZGF0YT8ucmVzdWx0KVxyXG4gICAgICAgIHRoaXMuYXBpU2VydmljZS5jbGllbnRGb3JtRGF0YS5uZXh0KHsgdmFsdWU6IG51bGwsIHR5cGU6ICdzdWJtaXR0ZWQnLCBmb3JtOiAnbnVsbCcgfSlcclxuICAgICAgfSxcclxuICAgICAgZXJyb3I6IChlKSA9PiB7XHJcbiAgICAgICAgdGhpcy50b2FzdGVyLmdldEVycm9yVG9hc3QoZS5lcnJvcj8uZXJyb3IpXHJcbiAgICAgICAgdGhpcy5wYXRjaEZvcm0odGhpcy5jbGllbnREYXRhKVxyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgZ2V0RGlmZmVyZW50RW50cmllcyhvYmoxOiBSZWNvcmQ8c3RyaW5nLCBhbnk+LCBvYmoyOiBSZWNvcmQ8c3RyaW5nLCBhbnk+KTogUmVjb3JkPHN0cmluZywgYW55PiB7XHJcbiAgICBjb25zdCBkaWZmZXJlbnRFbnRyaWVzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0ge307XHJcbiAgICBmb3IgKGNvbnN0IGtleSBpbiBvYmoyKSB7XHJcbiAgICAgIGlmIChvYmoxLmhhc093blByb3BlcnR5KGtleSkgJiYgb2JqMVtrZXldICE9PSBvYmoyW2tleV0gJiYgb2JqMltrZXldKSB7XHJcbiAgICAgICAgZGlmZmVyZW50RW50cmllc1trZXldID0gb2JqMltrZXldO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZGlmZmVyZW50RW50cmllcztcclxuICB9XHJcblxyXG4gIGpzb25Ub0Zvcm1EYXRhKGpzb25EYXRhOiBSZWNvcmQ8c3RyaW5nLCBhbnk+KTogRm9ybURhdGEge1xyXG5cclxuICAgIGNvbnN0IGZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCk7XHJcbiAgICBmb3IgKGNvbnN0IGtleSBpbiBqc29uRGF0YSkge1xyXG4gICAgICBpZiAoanNvbkRhdGEuaGFzT3duUHJvcGVydHkoa2V5KSkge1xyXG4gICAgICAgIGNvbnN0IHZhbHVlID0ganNvbkRhdGFba2V5XTtcclxuICAgICAgICBmb3JtRGF0YS5hcHBlbmQoa2V5LCB2YWx1ZSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZm9ybURhdGE7XHJcbiAgfVxyXG5cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwic2V0dGluZ3MtYWNjb3JkaWFuLWNhcmRcIj5cclxuICAgIDxmb3JtIFtmb3JtR3JvdXBdPVwiZG9jdW1lbnRzRm9ybVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIihncy51c2VyQWNjZXNzIHwgYXN5bmMpPy5zZXR0aW5nc19kb2N1bWVudHNfaXNFZGl0IFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBtYi01XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIiBkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW5cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRlclwiPlVwbG9hZCBZb3VyIERvY3VtZW50czwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uICpuZ0lmPVwiZG9jdW1lbnRzRm9ybS5kaXNhYmxlZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiZG9jdW1lbnRzRm9ybS5kaXNhYmxlZCA/IGRvY3VtZW50c0Zvcm0uZW5hYmxlKCkgOiBkb2N1bWVudHNGb3JtLmRpc2FibGUoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLW91dGxpbmUgYWxpZ24taXRlbXMtZW5kXCI+PHNwYW4gY2xhc3M9XCJtZS0yXCI+PHN2Z1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxnIGNsaXAtcGF0aD1cInVybCgjY2xpcDBfMjU3OV8yNTEyNSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xNC4xNjcgMi40OTk5M0MxNC4zODU5IDIuMjgxMDYgMTQuNjQ1NyAyLjEwNzQ0IDE0LjkzMTcgMS45ODg5OUMxNS4yMTc2IDEuODcwNTQgMTUuNTI0MSAxLjgwOTU3IDE1LjgzMzcgMS44MDk1N0MxNi4xNDMyIDEuODA5NTcgMTYuNDQ5NyAxLjg3MDU0IDE2LjczNTcgMS45ODg5OUMxNy4wMjE2IDIuMTA3NDQgMTcuMjgxNSAyLjI4MTA2IDE3LjUwMDMgMi40OTk5M0MxNy43MTkyIDIuNzE4OCAxNy44OTI4IDIuOTc4NjMgMTguMDExMyAzLjI2NDZDMTguMTI5NyAzLjU1MDU3IDE4LjE5MDcgMy44NTcwNiAxOC4xOTA3IDQuMTY2NTlDMTguMTkwNyA0LjQ3NjEyIDE4LjEyOTcgNC43ODI2MiAxOC4wMTEzIDUuMDY4NTlDMTcuODkyOCA1LjM1NDU1IDE3LjcxOTIgNS42MTQzOSAxNy41MDAzIDUuODMzMjZMNi4yNTAzMyAxNy4wODMzTDEuNjY2OTkgMTguMzMzM0wyLjkxNjk5IDEzLjc0OTlMMTQuMTY3IDIuNDk5OTNaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjMzQ0MDU0XCIgc3Ryb2tlLXdpZHRoPVwiMS42N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjbGlwUGF0aCBpZD1cImNsaXAwXzI1NzlfMjUxMjVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiBmaWxsPVwid2hpdGVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9jbGlwUGF0aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPjwvc3Bhbj5FZGl0IERldGFpbHM8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTIgY29sLWxnLTYgY29sLXhsLTYgY29sLXh4bC02IG1iLTVcIj5cclxuICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJnc3ROdW1iZXJcIiBjbGFzcz1cImZvcm0tbGFiZWxcIj5BZGRyZXNzIFByb29mIDxzcGFuIGNsYXNzPVwiYWxlcnQtcmVxdWlyZWRcIj48L3NwYW4+PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cCBcIj5cclxuICAgICAgICAgICAgICAgICAgICA8aW5wdXQgcmVhZG9ubHkgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIHBsYWNlaG9sZGVyPVwiXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD1cIkV4YW1wbGUgdGV4dCB3aXRoIGJ1dHRvbiBhZGRvblwiIGFyaWEtZGVzY3JpYmVkYnk9XCJidXR0b24tYWRkb24xXCIgaWQ9XCJnc3ROdW1iZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIChjbGljayk9XCJ0cmlnZ2VyR3N0SW5wdXQoJ2FkZHJlc3MnKVwiIFtkaXNhYmxlZF09XCJkb2N1bWVudHNGb3JtLmRpc2FibGVkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLW91dGxpbmUgdXBsb2FkLWJ0blwiIHR5cGU9XCJidXR0b25cIiBpZD1cImJ1dHRvbi1hZGRvbjFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtZS0yXCI+PHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTE3LjUgMTIuNVYxNS44MzMzQzE3LjUgMTYuMjc1NCAxNy4zMjQ0IDE2LjY5OTMgMTcuMDExOCAxNy4wMTE4QzE2LjY5OTMgMTcuMzI0NCAxNi4yNzU0IDE3LjUgMTUuODMzMyAxNy41SDQuMTY2NjdDMy43MjQ2NCAxNy41IDMuMzAwNzIgMTcuMzI0NCAyLjk4ODE2IDE3LjAxMThDMi42NzU1OSAxNi42OTkzIDIuNSAxNi4yNzU0IDIuNSAxNS44MzMzVjEyLjVNMTQuMTY2NyA2LjY2NjY3TDEwIDIuNU0xMCAyLjVMNS44MzMzMyA2LjY2NjY3TTEwIDIuNVYxMi41XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjEuNjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBVcGxvYWQ8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGlucHV0IChjaGFuZ2UpPVwib25GaWxlU2VsZWN0KCRldmVudCwgJ2FkZHJlc3MnKVwiIGFjY2VwdD1cIi5wZGZcIiBjbGFzcz1cImQtbm9uZVwiICNhZGRyZXNzUHJvb2ZGb3JtSW5wdXQgdHlwZT1cImZpbGVcIj5cclxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIoZ3MudXNlckFjY2VzcyB8IGFzeW5jKT8uc2V0dGluZ3NfZG9jdW1lbnRzX2lzRG93bmxvYWQgXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGEgKm5nSWY9XCJjbGllbnREYXRhPy5kb2N1bWVudD8uYWRkcmVzc1Byb29mPy5wYXRoICYmICFhZGRyZXNzRmlsZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtocmVmXT1cImNsaWVudERhdGE/LmRvY3VtZW50Py5hZGRyZXNzUHJvb2Y/LnBhdGhcIiB0YXJnZXQ9XCJfYmxhbmtcIiBjbGFzcz1cIm10LTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ1cGxvYWRlZC1kb2MtdGV4dCBtZS0yXCI+SW5jb3Jwb3JhdGUgQ2VydGlmaWNhdGU8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cImFkZHJlc3NGaWxlXCIgY2xhc3M9XCJtdC0zIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInVwbG9hZGVkLWRvYy10ZXh0IG1lLTJcIj57e2FkZHJlc3NGaWxlLm5hbWUgPyBhZGRyZXNzRmlsZS5uYW1lIDogJyd9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3ZnIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwiYWRkcmVzc0ZpbGUgPSBudWxsXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTEyLjUwMDMgNy41MDAwMUw3LjUwMDMzIDEyLjVNNy41MDAzMyA3LjUwMDAxTDEyLjUwMDMgMTIuNU0xOC4zMzM3IDEwQzE4LjMzMzcgMTQuNjAyNCAxNC42MDI3IDE4LjMzMzMgMTAuMDAwMyAxOC4zMzMzQzUuMzk3OTUgMTguMzMzMyAxLjY2Njk5IDE0LjYwMjQgMS42NjY5OSAxMEMxLjY2Njk5IDUuMzk3NjMgNS4zOTc5NSAxLjY2NjY3IDEwLjAwMDMgMS42NjY2N0MxNC42MDI3IDEuNjY2NjcgMTguMzMzNyA1LjM5NzYzIDE4LjMzMzcgMTBaXCIgc3Ryb2tlPVwiIzAwOUJGM1wiIHN0cm9rZS13aWR0aD1cIjEuNjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxyXG5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTIgY29sLWxnLTYgY29sLXhsLTYgY29sLXh4bC02IG1iLTVcIj5cclxuICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJnc3ROdW1iZXJcIiBjbGFzcz1cImZvcm0tbGFiZWxcIj5HU1QgTnVtYmVyIDxzcGFuIGNsYXNzPVwiYWxlcnQtcmVxdWlyZWRcIj48L3NwYW4+PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cCBcIj5cclxuICAgICAgICAgICAgICAgICAgICA8aW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwiZ3N0TnVtYmVyXCIgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIHBsYWNlaG9sZGVyPVwiXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD1cIkV4YW1wbGUgdGV4dCB3aXRoIGJ1dHRvbiBhZGRvblwiIGFyaWEtZGVzY3JpYmVkYnk9XCJidXR0b24tYWRkb24xXCIgaWQ9XCJnc3ROdW1iZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIChjbGljayk9XCJ0cmlnZ2VyR3N0SW5wdXQoJ2dzdCcpXCIgW2Rpc2FibGVkXT1cImRvY3VtZW50c0Zvcm0uZGlzYWJsZWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tb3V0bGluZSB1cGxvYWQtYnRuXCIgdHlwZT1cImJ1dHRvblwiIGlkPVwiYnV0dG9uLWFkZG9uMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1lLTJcIj48c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTcuNSAxMi41VjE1LjgzMzNDMTcuNSAxNi4yNzU0IDE3LjMyNDQgMTYuNjk5MyAxNy4wMTE4IDE3LjAxMThDMTYuNjk5MyAxNy4zMjQ0IDE2LjI3NTQgMTcuNSAxNS44MzMzIDE3LjVINC4xNjY2N0MzLjcyNDY0IDE3LjUgMy4zMDA3MiAxNy4zMjQ0IDIuOTg4MTYgMTcuMDExOEMyLjY3NTU5IDE2LjY5OTMgMi41IDE2LjI3NTQgMi41IDE1LjgzMzNWMTIuNU0xNC4xNjY3IDYuNjY2NjdMMTAgMi41TTEwIDIuNUw1LjgzMzMzIDYuNjY2NjdNMTAgMi41VjEyLjVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMS42N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFVwbG9hZDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8aW5wdXQgKGNoYW5nZSk9XCJvbkZpbGVTZWxlY3QoJGV2ZW50LCAnZ3N0JylcIiBhY2NlcHQ9XCIucGRmXCIgY2xhc3M9XCJkLW5vbmVcIiAjZ3N0Rm9ybUlucHV0IHR5cGU9XCJmaWxlXCI+XHJcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiKGdzLnVzZXJBY2Nlc3MgfCBhc3luYyk/LnNldHRpbmdzX2RvY3VtZW50c19pc0Rvd25sb2FkIFwiID5cclxuICAgICAgICAgICAgICAgIDxhICpuZ0lmPVwiY2xpZW50RGF0YT8uZG9jdW1lbnQ/LmdzdD8ucGF0aCAmJiAhZ3N0RmlsZVwiIFtocmVmXT1cImNsaWVudERhdGE/LmRvY3VtZW50Py5nc3Q/LnBhdGhcIiB0YXJnZXQ9XCJfYmxhbmtcIlxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibXQtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidXBsb2FkZWQtZG9jLXRleHQgbWUtMlwiPkdTVCBDZXJ0aWZpY2F0ZTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvYT4gICAgXHJcbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiZ3N0RmlsZVwiIGNsYXNzPVwibXQtMyBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ1cGxvYWRlZC1kb2MtdGV4dCBtZS0yXCI+e3tnc3RGaWxlLm5hbWUgPyBnc3RGaWxlLm5hbWUgOiAnJ319PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzdmcgY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiIChjbGljayk9XCJnc3RGaWxlID0gbnVsbFwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0xMi41MDAzIDcuNTAwMDFMNy41MDAzMyAxMi41TTcuNTAwMzMgNy41MDAwMUwxMi41MDAzIDEyLjVNMTguMzMzNyAxMEMxOC4zMzM3IDE0LjYwMjQgMTQuNjAyNyAxOC4zMzMzIDEwLjAwMDMgMTguMzMzM0M1LjM5Nzk1IDE4LjMzMzMgMS42NjY5OSAxNC42MDI0IDEuNjY2OTkgMTBDMS42NjY5OSA1LjM5NzYzIDUuMzk3OTUgMS42NjY2NyAxMC4wMDAzIDEuNjY2NjdDMTQuNjAyNyAxLjY2NjY3IDE4LjMzMzcgNS4zOTc2MyAxOC4zMzM3IDEwWlwiIHN0cm9rZT1cIiMwMDlCRjNcIiBzdHJva2Utd2lkdGg9XCIxLjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMiBjb2wtbGctNiBjb2wteGwtNiBjb2wteHhsLTYgbWItNVwiPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImdzdE51bWJlclwiIGNsYXNzPVwiZm9ybS1sYWJlbFwiPlBhbiBOdW1iZXIgPHNwYW4gY2xhc3M9XCJhbGVydC1yZXF1aXJlZFwiPjwvc3Bhbj48L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwIFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJwYW5OdW1iZXJcIiB0eXBlPVwidGV4dFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgcGxhY2Vob2xkZXI9XCJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiRXhhbXBsZSB0ZXh0IHdpdGggYnV0dG9uIGFkZG9uXCIgYXJpYS1kZXNjcmliZWRieT1cImJ1dHRvbi1hZGRvbjFcIiBpZD1cImdzdE51bWJlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cInRyaWdnZXJHc3RJbnB1dCgncGFuJylcIiBbZGlzYWJsZWRdPVwiZG9jdW1lbnRzRm9ybS5kaXNhYmxlZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lIHVwbG9hZC1idG5cIiB0eXBlPVwiYnV0dG9uXCIgaWQ9XCJidXR0b24tYWRkb24xXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWUtMlwiPjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xNy41IDEyLjVWMTUuODMzM0MxNy41IDE2LjI3NTQgMTcuMzI0NCAxNi42OTkzIDE3LjAxMTggMTcuMDExOEMxNi42OTkzIDE3LjMyNDQgMTYuMjc1NCAxNy41IDE1LjgzMzMgMTcuNUg0LjE2NjY3QzMuNzI0NjQgMTcuNSAzLjMwMDcyIDE3LjMyNDQgMi45ODgxNiAxNy4wMTE4QzIuNjc1NTkgMTYuNjk5MyAyLjUgMTYuMjc1NCAyLjUgMTUuODMzM1YxMi41TTE0LjE2NjcgNi42NjY2N0wxMCAyLjVNMTAgMi41TDUuODMzMzMgNi42NjY2N00xMCAyLjVWMTIuNVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIxLjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgVXBsb2FkPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxpbnB1dCAoY2hhbmdlKT1cIm9uRmlsZVNlbGVjdCgkZXZlbnQsICdwYW4nKVwiIGFjY2VwdD1cIi5wZGZcIiBjbGFzcz1cImQtbm9uZVwiICNwYW5Gb3JtSW5wdXQgdHlwZT1cImZpbGVcIj5cclxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIoZ3MudXNlckFjY2VzcyB8IGFzeW5jKT8uc2V0dGluZ3NfZG9jdW1lbnRzX2lzRG93bmxvYWQgXCIgPlxyXG4gICAgICAgICAgICAgICAgPGEgKm5nSWY9XCJjbGllbnREYXRhPy5kb2N1bWVudD8ucGFuPy5wYXRoICYmICFwYW5GaWxlXCIgW2hyZWZdPVwiY2xpZW50RGF0YT8uZG9jdW1lbnQ/LnBhbj8ucGF0aFwiIHRhcmdldD1cIl9ibGFua1wiXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtdC0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ1cGxvYWRlZC1kb2MtdGV4dCBtZS0yXCI+UEFOIENlcnRpZmljYXRlPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9hPiAgICBcclxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJwYW5GaWxlXCIgY2xhc3M9XCJtdC0zIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInVwbG9hZGVkLWRvYy10ZXh0IG1lLTJcIj57e3BhbkZpbGUubmFtZSA/IHBhbkZpbGUubmFtZSA6ICcnfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHN2ZyBjbGFzcz1cImN1cnNvci1wb2ludGVyXCIgKGNsaWNrKT1cInBhbkZpbGUgPSBudWxsXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTEyLjUwMDMgNy41MDAwMUw3LjUwMDMzIDEyLjVNNy41MDAzMyA3LjUwMDAxTDEyLjUwMDMgMTIuNU0xOC4zMzM3IDEwQzE4LjMzMzcgMTQuNjAyNCAxNC42MDI3IDE4LjMzMzMgMTAuMDAwMyAxOC4zMzMzQzUuMzk3OTUgMTguMzMzMyAxLjY2Njk5IDE0LjYwMjQgMS42NjY5OSAxMEMxLjY2Njk5IDUuMzk3NjMgNS4zOTc5NSAxLjY2NjY3IDEwLjAwMDMgMS42NjY2N0MxNC42MDI3IDEuNjY2NjcgMTguMzMzNyA1LjM5NzYzIDE4LjMzMzcgMTBaXCIgc3Ryb2tlPVwiIzAwOUJGM1wiIHN0cm9rZS13aWR0aD1cIjEuNjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyIGNvbC1sZy02IGNvbC14bC02IGNvbC14eGwtNiBtYi01XCI+XHJcbiAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiZ3N0TnVtYmVyXCIgY2xhc3M9XCJmb3JtLWxhYmVsXCI+Q0lOIE51bWJlciA8c3BhbiBjbGFzcz1cImFsZXJ0LXJlcXVpcmVkXCI+PC9zcGFuPjwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtZ3JvdXAgXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGlucHV0IGZvcm1Db250cm9sTmFtZT1cImNpbk51bWJlclwiIHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBwbGFjZWhvbGRlcj1cIlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJFeGFtcGxlIHRleHQgd2l0aCBidXR0b24gYWRkb25cIiBhcmlhLWRlc2NyaWJlZGJ5PVwiYnV0dG9uLWFkZG9uMVwiIGlkPVwiZ3N0TnVtYmVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwidHJpZ2dlckdzdElucHV0KCdjaW4nKVwiIFtkaXNhYmxlZF09XCJkb2N1bWVudHNGb3JtLmRpc2FibGVkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLW91dGxpbmUgdXBsb2FkLWJ0blwiIHR5cGU9XCJidXR0b25cIiBpZD1cImJ1dHRvbi1hZGRvbjFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtZS0yXCI+PHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTE3LjUgMTIuNVYxNS44MzMzQzE3LjUgMTYuMjc1NCAxNy4zMjQ0IDE2LjY5OTMgMTcuMDExOCAxNy4wMTE4QzE2LjY5OTMgMTcuMzI0NCAxNi4yNzU0IDE3LjUgMTUuODMzMyAxNy41SDQuMTY2NjdDMy43MjQ2NCAxNy41IDMuMzAwNzIgMTcuMzI0NCAyLjk4ODE2IDE3LjAxMThDMi42NzU1OSAxNi42OTkzIDIuNSAxNi4yNzU0IDIuNSAxNS44MzMzVjEyLjVNMTQuMTY2NyA2LjY2NjY3TDEwIDIuNU0xMCAyLjVMNS44MzMzMyA2LjY2NjY3TTEwIDIuNVYxMi41XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjEuNjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBVcGxvYWQ8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGlucHV0IChjaGFuZ2UpPVwib25GaWxlU2VsZWN0KCRldmVudCwgJ2NpbicpXCIgYWNjZXB0PVwiLnBkZlwiIGNsYXNzPVwiZC1ub25lXCIgI2NpbkZvcm1JbnB1dCB0eXBlPVwiZmlsZVwiPlxyXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIihncy51c2VyQWNjZXNzIHwgYXN5bmMpPy5zZXR0aW5nc19kb2N1bWVudHNfaXNEb3dubG9hZCBcIiA+XHJcbiAgICAgICAgICAgICAgICA8YSAqbmdJZj1cImNsaWVudERhdGE/LmRvY3VtZW50Py5jaW4/LnBhdGggJiYgIWNpbkZpbGVcIiBbaHJlZl09XCJjbGllbnREYXRhPy5kb2N1bWVudD8uY2luPy5wYXRoXCIgdGFyZ2V0PVwiX2JsYW5rXCJcclxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm10LTNcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInVwbG9hZGVkLWRvYy10ZXh0IG1lLTJcIj5DSU4gQ2VydGlmaWNhdGU8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8L2E+ICAgIFxyXG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cImNpbkZpbGVcIiBjbGFzcz1cIm10LTMgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidXBsb2FkZWQtZG9jLXRleHQgbWUtMlwiPnt7Y2luRmlsZS5uYW1lID8gY2luRmlsZS5uYW1lIDogJyd9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3ZnIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwiY2luRmlsZSA9IG51bGxcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTIuNTAwMyA3LjUwMDAxTDcuNTAwMzMgMTIuNU03LjUwMDMzIDcuNTAwMDFMMTIuNTAwMyAxMi41TTE4LjMzMzcgMTBDMTguMzMzNyAxNC42MDI0IDE0LjYwMjcgMTguMzMzMyAxMC4wMDAzIDE4LjMzMzNDNS4zOTc5NSAxOC4zMzMzIDEuNjY2OTkgMTQuNjAyNCAxLjY2Njk5IDEwQzEuNjY2OTkgNS4zOTc2MyA1LjM5Nzk1IDEuNjY2NjcgMTAuMDAwMyAxLjY2NjY3QzE0LjYwMjcgMS42NjY2NyAxOC4zMzM3IDUuMzk3NjMgMTguMzMzNyAxMFpcIiBzdHJva2U9XCIjMDA5QkYzXCIgc3Ryb2tlLXdpZHRoPVwiMS42N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTIgY29sLWxnLTYgY29sLXhsLTYgY29sLXh4bC02IG1iLTVcIj5cclxuICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJpbnZvaWNlQXV0aG9yaXR5TmFtZVwiIGNsYXNzPVwiZm9ybS1sYWJlbFwiPkNvbnRyYWN0IEFncmVlbWVudCA8c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImFsZXJ0LXJlcXVpcmVkXCI+PC9zcGFuPjwvbGFiZWw+XHJcblxyXG5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWxlLW9wZW4taW5wdXRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3ZnIGNsYXNzPVwibC1pY29uXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjZcIiBoZWlnaHQ9XCIyNlwiIHZpZXdCb3g9XCIwIDAgMjYgMjZcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0zLjI0OTk4IDBIMTcuMDU2OEwyNC4zNzQ5IDcuMjg5NzdWMjQuMzc1QzI0LjM3NDkgMjUuMjcyOCAyMy42NDcgMjYgMjIuNzUgMjZIMy4yNDk5OEMyLjM1Mjk2IDI2IDEuNjI1IDI1LjI3MjggMS42MjUgMjQuMzc1VjEuNjI0OThDMS42MjUgMC43MjcyMDMgMi4zNTMwNCAwIDMuMjQ5OTggMFpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIiNFMjU3NENcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0yNC4zNTE0IDcuMzExODdIMTguNjg3NUMxNy43OTA1IDcuMzExODcgMTcuMDYyNSA2LjU4MzkxIDE3LjA2MjUgNS42ODY4OVYwLjAxNTYyNUwyNC4zNTE0IDcuMzExODdaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCIjQjUzNjI5XCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTguMjc5MyAxMi4zMThDMTguNTUxNSAxMi4zMTggMTguNjg0OCAxMi4wODA4IDE4LjY4NDggMTEuODUwOEMxOC42ODQ4IDExLjYxMjcgMTguNTQ1OCAxMS4zODI4IDE4LjI3OTMgMTEuMzgyOEgxNi43MjkxQzE2LjQyNiAxMS4zODI4IDE2LjI1NyAxMS42MzM4IDE2LjI1NyAxMS45MTA5VjE1LjcyMDdDMTYuMjU3IDE2LjA2MDQgMTYuNDUwNCAxNi4yNDg5IDE2LjcxMiAxNi4yNDg5QzE2Ljk3MiAxNi4yNDg5IDE3LjE2NjIgMTYuMDYwNCAxNy4xNjYyIDE1LjcyMDdWMTQuNjc1MUgxOC4xMDM5QzE4LjM5NDcgMTQuNjc1MSAxOC41NDAyIDE0LjQzNyAxOC41NDAyIDE0LjIwMDZDMTguNTQwMiAxMy45NjkxIDE4LjM5NDcgMTMuNzM5IDE4LjEwMzkgMTMuNzM5SDE3LjE2NjJWMTIuMzE4SDE4LjI3OTNaTTEzLjAzOTUgMTEuMzgyOEgxMS45MDUyQzExLjU5NzMgMTEuMzgyOCAxMS4zNzg3IDExLjU5NDEgMTEuMzc4NyAxMS45MDc3VjE1LjcyNEMxMS4zNzg3IDE2LjExMzIgMTEuNjkzMSAxNi4yMzUxIDExLjkxODIgMTYuMjM1MUgxMy4xMDg1QzE0LjUxNzQgMTYuMjM1MSAxNS40NDc3IDE1LjMwOCAxNS40NDc3IDEzLjg3NzJDMTUuNDQ2OSAxMi4zNjQzIDE0LjU3MTEgMTEuMzgyOCAxMy4wMzk1IDExLjM4MjhaTTEzLjA5NCAxNS4yOTQySDEyLjQwMjVWMTIuMzIzN0gxMy4wMjU3QzEzLjk2OTEgMTIuMzIzNyAxNC4zNzkzIDEyLjk1NjcgMTQuMzc5MyAxMy44MzAxQzE0LjM3OTMgMTQuNjQ3NSAxMy45NzYzIDE1LjI5NDIgMTMuMDk0IDE1LjI5NDJaTTguOTM4ODIgMTEuMzgyOEg3LjgxNTE1QzcuNDk3NDUgMTEuMzgyOCA3LjMyMDMxIDExLjU5MjQgNy4zMjAzMSAxMS45MTA5VjE1LjcyMDdDNy4zMjAzMSAxNi4wNjA0IDcuNTIzNDIgMTYuMjQ4OSA3Ljc5NjQgMTYuMjQ4OUM4LjA2OTM3IDE2LjI0ODkgOC4yNzI0OSAxNi4wNjA0IDguMjcyNDkgMTUuNzIwN1YxNC42MDg0SDguOTc2OTFDOS44NDYyNyAxNC42MDg0IDEwLjU2MzcgMTMuOTkyNSAxMC41NjM3IDEzLjAwMjFDMTAuNTYzOCAxMi4wMzI4IDkuODcxNTggMTEuMzgyOCA4LjkzODgyIDExLjM4MjhaTTguOTIwMTYgMTMuNzE0N0g4LjI3MjU3VjEyLjI3NzRIOC45MjAxNkM5LjMxOTkxIDEyLjI3NzQgOS41NzQyMiAxMi41ODk0IDkuNTc0MjIgMTIuOTk2NEM5LjU3MzM4IDEzLjQwMjggOS4zMTk5MSAxMy43MTQ3IDguOTIwMTYgMTMuNzE0N1pcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIndoaXRlXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInR5cGVcIiB2YWx1ZT1cIkNvbnRyYWN0IEFncmVlbWVudC5wZGZcIiByZWFkb25seSBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiaW52b2ljZUF1dGhvcml0eU5hbWVcIiBhdXRvY29tcGxldGU9XCJvZmZcIj5cclxuICAgICAgICAgICAgICAgICAgICA8YSB0YXJnZXQ9XCJfYmxhbmtcIiBjbGFzcz1cInItaWNvblwiIFtocmVmXT1cImNsaWVudERhdGE/LmRvY3VtZW50Py5jb250cmFjdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0wLjgzMzk4NCAxMEMwLjgzMzk4NCAxMCA0LjE2NzMyIDMuMzMzMzcgMTAuMDAwNyAzLjMzMzM3QzE1LjgzNCAzLjMzMzM3IDE5LjE2NzMgMTAgMTkuMTY3MyAxMEMxOS4xNjczIDEwIDE1LjgzNCAxNi42NjY3IDEwLjAwMDcgMTYuNjY2N0M0LjE2NzMyIDE2LjY2NjcgMC44MzM5ODQgMTAgMC44MzM5ODQgMTBaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjMzQ0MDU0XCIgc3Ryb2tlLXdpZHRoPVwiMS40XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xMC4wMDA3IDEyLjVDMTEuMzgxNCAxMi41IDEyLjUwMDYgMTEuMzgwOCAxMi41MDA2IDEwQzEyLjUwMDYgOC42MTkzMyAxMS4zODE0IDcuNTAwMDQgMTAuMDAwNyA3LjUwMDA0QzguNjE5OTQgNy41MDAwNCA3LjUwMDY1IDguNjE5MzMgNy41MDA2NSAxMEM3LjUwMDY1IDExLjM4MDggOC42MTk5NCAxMi41IDEwLjAwMDcgMTIuNVpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiMzNDQwNTRcIiBzdHJva2Utd2lkdGg9XCIxLjRcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICA8L2E+XHJcblxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTIgY29sLWxnLTYgY29sLXhsLTYgY29sLXh4bC02IG1iLTVcIj5cclxuICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJpbnZvaWNlQXV0aG9yaXR5TmFtZVwiIGNsYXNzPVwiZm9ybS1sYWJlbFwiPlQmQyBBZ3JlZW1lbnQgPHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJhbGVydC1yZXF1aXJlZFwiPjwvc3Bhbj48L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpbGUtb3Blbi1pbnB1dFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzdmcgY2xhc3M9XCJsLWljb25cIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyNlwiIGhlaWdodD1cIjI2XCIgdmlld0JveD1cIjAgMCAyNiAyNlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTMuMjQ5OTggMEgxNy4wNTY4TDI0LjM3NDkgNy4yODk3N1YyNC4zNzVDMjQuMzc0OSAyNS4yNzI4IDIzLjY0NyAyNiAyMi43NSAyNkgzLjI0OTk4QzIuMzUyOTYgMjYgMS42MjUgMjUuMjcyOCAxLjYyNSAyNC4zNzVWMS42MjQ5OEMxLjYyNSAwLjcyNzIwMyAyLjM1MzA0IDAgMy4yNDk5OCAwWlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwiI0UyNTc0Q1wiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTI0LjM1MTQgNy4zMTE4N0gxOC42ODc1QzE3Ljc5MDUgNy4zMTE4NyAxNy4wNjI1IDYuNTgzOTEgMTcuMDYyNSA1LjY4Njg5VjAuMDE1NjI1TDI0LjM1MTQgNy4zMTE4N1pcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIiNCNTM2MjlcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xOC4yNzkzIDEyLjMxOEMxOC41NTE1IDEyLjMxOCAxOC42ODQ4IDEyLjA4MDggMTguNjg0OCAxMS44NTA4QzE4LjY4NDggMTEuNjEyNyAxOC41NDU4IDExLjM4MjggMTguMjc5MyAxMS4zODI4SDE2LjcyOTFDMTYuNDI2IDExLjM4MjggMTYuMjU3IDExLjYzMzggMTYuMjU3IDExLjkxMDlWMTUuNzIwN0MxNi4yNTcgMTYuMDYwNCAxNi40NTA0IDE2LjI0ODkgMTYuNzEyIDE2LjI0ODlDMTYuOTcyIDE2LjI0ODkgMTcuMTY2MiAxNi4wNjA0IDE3LjE2NjIgMTUuNzIwN1YxNC42NzUxSDE4LjEwMzlDMTguMzk0NyAxNC42NzUxIDE4LjU0MDIgMTQuNDM3IDE4LjU0MDIgMTQuMjAwNkMxOC41NDAyIDEzLjk2OTEgMTguMzk0NyAxMy43MzkgMTguMTAzOSAxMy43MzlIMTcuMTY2MlYxMi4zMThIMTguMjc5M1pNMTMuMDM5NSAxMS4zODI4SDExLjkwNTJDMTEuNTk3MyAxMS4zODI4IDExLjM3ODcgMTEuNTk0MSAxMS4zNzg3IDExLjkwNzdWMTUuNzI0QzExLjM3ODcgMTYuMTEzMiAxMS42OTMxIDE2LjIzNTEgMTEuOTE4MiAxNi4yMzUxSDEzLjEwODVDMTQuNTE3NCAxNi4yMzUxIDE1LjQ0NzcgMTUuMzA4IDE1LjQ0NzcgMTMuODc3MkMxNS40NDY5IDEyLjM2NDMgMTQuNTcxMSAxMS4zODI4IDEzLjAzOTUgMTEuMzgyOFpNMTMuMDk0IDE1LjI5NDJIMTIuNDAyNVYxMi4zMjM3SDEzLjAyNTdDMTMuOTY5MSAxMi4zMjM3IDE0LjM3OTMgMTIuOTU2NyAxNC4zNzkzIDEzLjgzMDFDMTQuMzc5MyAxNC42NDc1IDEzLjk3NjMgMTUuMjk0MiAxMy4wOTQgMTUuMjk0MlpNOC45Mzg4MiAxMS4zODI4SDcuODE1MTVDNy40OTc0NSAxMS4zODI4IDcuMzIwMzEgMTEuNTkyNCA3LjMyMDMxIDExLjkxMDlWMTUuNzIwN0M3LjMyMDMxIDE2LjA2MDQgNy41MjM0MiAxNi4yNDg5IDcuNzk2NCAxNi4yNDg5QzguMDY5MzcgMTYuMjQ4OSA4LjI3MjQ5IDE2LjA2MDQgOC4yNzI0OSAxNS43MjA3VjE0LjYwODRIOC45NzY5MUM5Ljg0NjI3IDE0LjYwODQgMTAuNTYzNyAxMy45OTI1IDEwLjU2MzcgMTMuMDAyMUMxMC41NjM4IDEyLjAzMjggOS44NzE1OCAxMS4zODI4IDguOTM4ODIgMTEuMzgyOFpNOC45MjAxNiAxMy43MTQ3SDguMjcyNTdWMTIuMjc3NEg4LjkyMDE2QzkuMzE5OTEgMTIuMjc3NCA5LjU3NDIyIDEyLjU4OTQgOS41NzQyMiAxMi45OTY0QzkuNTczMzggMTMuNDAyOCA5LjMxOTkxIDEzLjcxNDcgOC45MjAxNiAxMy43MTQ3WlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwid2hpdGVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidHlwZVwiIHZhbHVlPVwiVCAmIEMgQWdyZWVtZW50LnBkZlwiIHJlYWRvbmx5IGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJpbnZvaWNlQXV0aG9yaXR5TmFtZVwiIGF1dG9jb21wbGV0ZT1cIm9mZlwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxhIHRhcmdldD1cIl9ibGFua1wiIGNsYXNzPVwici1pY29uXCIgW2hyZWZdPVwiY2xpZW50RGF0YT8uZG9jdW1lbnQ/LnRlcm1zQW5kY29uZGl0aW9uc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0wLjgzMzk4NCAxMEMwLjgzMzk4NCAxMCA0LjE2NzMyIDMuMzMzMzcgMTAuMDAwNyAzLjMzMzM3QzE1LjgzNCAzLjMzMzM3IDE5LjE2NzMgMTAgMTkuMTY3MyAxMEMxOS4xNjczIDEwIDE1LjgzNCAxNi42NjY3IDEwLjAwMDcgMTYuNjY2N0M0LjE2NzMyIDE2LjY2NjcgMC44MzM5ODQgMTAgMC44MzM5ODQgMTBaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjMzQ0MDU0XCIgc3Ryb2tlLXdpZHRoPVwiMS40XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xMC4wMDA3IDEyLjVDMTEuMzgxNCAxMi41IDEyLjUwMDYgMTEuMzgwOCAxMi41MDA2IDEwQzEyLjUwMDYgOC42MTkzMyAxMS4zODE0IDcuNTAwMDQgMTAuMDAwNyA3LjUwMDA0QzguNjE5OTQgNy41MDAwNCA3LjUwMDY1IDguNjE5MzMgNy41MDA2NSAxMEM3LjUwMDY1IDExLjM4MDggOC42MTk5NCAxMi41IDEwLjAwMDcgMTIuNVpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiMzNDQwNTRcIiBzdHJva2Utd2lkdGg9XCIxLjRcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICA8L2E+XHJcblxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2ICpuZ0lmPVwiZG9jdW1lbnRzRm9ybS5lbmFibGVkXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi01IHctMTAwIGZvb3Rlci1zZXBlcmF0b3JcIj48L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtZW5kXCI+XHJcbiAgICAgICAgICAgICAgICA8YSB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLW91dGxpbmUgbWUtNFwiIChjbGljayk9XCJvbkNhbmNlbCgpXCI+Q2FuY2VsPC9hPlxyXG4gICAgICAgICAgICAgICAgPGEgdHlwZT1cInN1Ym1pdFwiIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IHB4LTQgXCIgKGNsaWNrKT1cIm9uU3VibWl0KClcIj48c3Bhbj5TYXZlIENoYW5nZXM8L3NwYW4+PC9hPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICA8L2Zvcm0+XHJcblxyXG48L2Rpdj4iXX0=