tango-app-ui-manage-settings 3.0.65-dev → 3.3.0-alpha.1

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 (77) 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 -6
  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 +5 -7
  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/billing/billing-group-form/billing-group-form.component.mjs +448 -0
  21. package/esm2022/lib/components/payments-subscription/billing/billing-group-view/billing-group-view.component.mjs +20 -0
  22. package/esm2022/lib/components/payments-subscription/billing/billing.component.mjs +200 -0
  23. package/esm2022/lib/components/payments-subscription/billing/request-confirmation/request-confirmation.component.mjs +22 -0
  24. package/esm2022/lib/components/payments-subscription/invoice-credits/invoice-credits.component.mjs +340 -0
  25. package/esm2022/lib/components/payments-subscription/invoice-credits/paynow/paynow.component.mjs +127 -0
  26. package/esm2022/lib/components/payments-subscription/payments-subscription.component.mjs +63 -16
  27. package/esm2022/lib/components/payments-subscription/request-popups/starttrailrequest/starttrailrequest.component.mjs +25 -0
  28. package/esm2022/lib/components/payments-subscription/request-popups/subscribe-request/subscribe-request.component.mjs +25 -0
  29. package/esm2022/lib/components/payments-subscription/subscription-popups/add-stepprice/add-stepprice.component.mjs +4 -4
  30. package/esm2022/lib/components/payments-subscription/subscription-popups/credit-note/credit-note.component.mjs +11 -5
  31. package/esm2022/lib/components/payments-subscription/subscription-popups/model-content/model-content.component.mjs +4 -4
  32. package/esm2022/lib/components/payments-subscription/subscription-popups/multidropdown/multidropdown.component.mjs +8 -8
  33. package/esm2022/lib/components/payments-subscription/subscription-popups/need-help/need-help.component.mjs +4 -4
  34. package/esm2022/lib/components/payments-subscription/subscription-popups/needhelp/needhelp.component.mjs +23 -0
  35. package/esm2022/lib/components/payments-subscription/subscription-popups/pricing-revised/pricing-revised.component.mjs +4 -4
  36. package/esm2022/lib/components/payments-subscription/subscription-popups/product-confirmation/product-confirmation.component.mjs +4 -4
  37. package/esm2022/lib/components/payments-subscription/subscription-popups/skip-trail/skip-trail.component.mjs +4 -4
  38. package/esm2022/lib/components/payments-subscription/subscription-popups/subscription-approval/subscription-approval.component.mjs +4 -4
  39. package/esm2022/lib/components/payments-subscription/subscription-popups/successfull-subscription/successfull-subscription.component.mjs +4 -4
  40. package/esm2022/lib/components/payments-subscription/subscription-popups/suspended/suspended.component.mjs +4 -4
  41. package/esm2022/lib/components/payments-subscription/subscription-popups/trail-expired/trail-expired.component.mjs +4 -4
  42. package/esm2022/lib/components/payments-subscription/subscription-popups/trail-settings/trail-settings.component.mjs +4 -4
  43. package/esm2022/lib/components/payments-subscription/subscription-popups/unsubscribe-request/unsubscribe-request.component.mjs +10 -7
  44. package/esm2022/lib/components/payments-subscription/subscription-popups/unsubscribeproduct/unsubscribeproduct.component.mjs +22 -0
  45. package/esm2022/lib/components/payments-subscription/subscription-popups/update/update.component.mjs +4 -4
  46. package/esm2022/lib/components/payments-subscription/subscription-popups/upgrade-plan/upgrade-plan.component.mjs +336 -9
  47. package/esm2022/lib/components/payments-subscription/subscription-popups/viewstores/viewstores.component.mjs +299 -0
  48. package/esm2022/lib/components/reactive-select/reactive-select.component.mjs +4 -4
  49. package/esm2022/lib/components/tango-manage-settings/tango-manage-settings.component.mjs +315 -12
  50. package/esm2022/lib/directives/dnd.directive.mjs +4 -4
  51. package/esm2022/lib/services/client-api.service.mjs +4 -4
  52. package/esm2022/lib/services/payment-subscription.service.mjs +67 -6
  53. package/esm2022/lib/services/util.mjs +46 -0
  54. package/esm2022/lib/tango-manage-settings-routing.module.mjs +5 -5
  55. package/esm2022/lib/tango-manage-settings.module.mjs +52 -7
  56. package/fesm2022/tango-app-ui-manage-settings.mjs +4127 -1843
  57. package/fesm2022/tango-app-ui-manage-settings.mjs.map +1 -1
  58. package/lib/components/payments-subscription/billing/billing-group-form/billing-group-form.component.d.ts +65 -0
  59. package/lib/components/payments-subscription/billing/billing-group-view/billing-group-view.component.d.ts +9 -0
  60. package/lib/components/payments-subscription/billing/billing.component.d.ts +42 -0
  61. package/lib/components/payments-subscription/billing/request-confirmation/request-confirmation.component.d.ts +10 -0
  62. package/lib/components/payments-subscription/invoice-credits/invoice-credits.component.d.ts +80 -0
  63. package/lib/components/payments-subscription/invoice-credits/paynow/paynow.component.d.ts +29 -0
  64. package/lib/components/payments-subscription/payments-subscription.component.d.ts +8 -0
  65. package/lib/components/payments-subscription/request-popups/starttrailrequest/starttrailrequest.component.d.ts +11 -0
  66. package/lib/components/payments-subscription/request-popups/subscribe-request/subscribe-request.component.d.ts +11 -0
  67. package/lib/components/payments-subscription/subscription-popups/credit-note/credit-note.component.d.ts +3 -1
  68. package/lib/components/payments-subscription/subscription-popups/needhelp/needhelp.component.d.ts +10 -0
  69. package/lib/components/payments-subscription/subscription-popups/unsubscribe-request/unsubscribe-request.component.d.ts +3 -2
  70. package/lib/components/payments-subscription/subscription-popups/unsubscribeproduct/unsubscribeproduct.component.d.ts +10 -0
  71. package/lib/components/payments-subscription/subscription-popups/upgrade-plan/upgrade-plan.component.d.ts +43 -1
  72. package/lib/components/payments-subscription/subscription-popups/viewstores/viewstores.component.d.ts +44 -0
  73. package/lib/components/tango-manage-settings/tango-manage-settings.component.d.ts +34 -3
  74. package/lib/services/payment-subscription.service.d.ts +21 -0
  75. package/lib/services/util.d.ts +14 -0
  76. package/lib/tango-manage-settings.module.d.ts +23 -12
  77. package/package.json +1 -1
@@ -199,10 +199,10 @@ export class EmailConfigurationComponent {
199
199
  },
200
200
  });
201
201
  }
202
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: EmailConfigurationComponent, deps: [{ token: i1.NgbModal }, { token: i2.ToastService }, { token: i0.ChangeDetectorRef }, { token: i3.ClientApiService }], target: i0.ɵɵFactoryTarget.Component });
203
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: EmailConfigurationComponent, selector: "lib-email-configuration", host: { listeners: { "document:click": "onClick($event)" } }, viewQueries: [{ propertyName: "confirmationModal", first: true, predicate: ["confirmationModal"], descendants: true }], ngImport: i0, template: "\r\n<div class=\"mb-5 py-3 px-5\">\r\n <ul class=\"nav nav-stretch nav-line-tabs1 nav-line-tabs border-transparent flex-nowrap mb-10\">\r\n <li class=\"nav-item\" (click)=\"Selectedtabs('Infra Report')\">\r\n <a \r\n [ngClass]=\"SelectedTab === 'Infra Report' ? 'active' : ''\" class=\"nav-link cursor-pointer no-border me-3\">\r\n Infra Report\r\n </a>\r\n </li>\r\n <!-- <li class=\"nav-item disabled-list \" (click)=\"Selectedtabs('Data Report')\">\r\n <a \r\n [ngClass]=\"SelectedTab === 'Data Report' ? 'active' : ''\" class=\"nav-link cursor-pointer no-border me-3\">\r\n Data Report\r\n </a>\r\n </li> \r\n <li class=\"nav-item disabled-list \" (click)=\"Selectedtabs('Insight Report')\">\r\n <a [ngClass]=\"SelectedTab ==='Insight Report' ? 'active' :''\" class=\"nav-link cursor-pointer me-3\">Insight Report</a>\r\n </li>\r\n <li class=\"nav-item disabled-list \" (click)=\"Selectedtabs('All')\"><a [ngClass]=\"SelectedTab ==='All' ? 'active' :''\"\r\n class=\"nav-link cursor-pointer no-border me-3\">All</a>\r\n </li> -->\r\n </ul>\r\n\r\n <div class=\"w-100 d-flex align-items-center\">\r\n <span class=\"timingtext fw-bold\">Send Daily Report at</span> <span> <input type=\"time\" [(ngModel)]=\"startTime\" class=\"form-control w-auto mx-5\"></span><span class=\"timingtext fw-bold\">and</span><span><input type=\"time\" [(ngModel)]=\"endTime\" class=\"form-control w-auto mx-5\"></span>\r\n </div>\r\n</div>\r\n<div class=\"card\">\r\n <div class=\"card-header border-0\">\r\n <div class=\"card-title d-grid\">\r\n <div class=\"title fw-bold\">Users List</div>\r\n <div class=\"sub-title\">Select your required email & schedule the mail timing accordingly</div>\r\n </div>\r\n <div class=\"card-toolbar\"> \r\n <input type=\"text\" class=\"form-control w-auto ps-3 me-2\" placeholder=\"Search\"\r\n autocomplete=\"off\" [(ngModel)]=\"searchInstallation\"\r\n (change)=\"searchInstallationTable()\" />\r\n <div class=\"position-relative w-150px mt-5 mb-5 ms-2\">\r\n <button type=\"button\" (click)=\"openDropdown($event)\"\r\n class=\"btn btn-default w-100 btn-outline btn-outline-default rounded-3 text-nowrap border-val d-flex justify-content-between\">\r\n {{selectedRole ? selectedRole : dropdownItems[0]}}\r\n <span><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\"\r\n viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path d=\"M5 7.5L10 12.5L15 7.5\" stroke=\"#667085\" stroke-width=\"1.66667\"\r\n stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </button>\r\n <div *ngIf=\"dropDown\" class=\"card py-1 w-100 position-absolute z-1 top-50px end-0\">\r\n <ul *ngFor=\"let item of dropdownItems\" class=\"list-unstyled\">\r\n <li [ngClass]=\"selectedRole === item ? 'active' : ''\"\r\n class=\"camera px-5 items fw-semibold cursor-pointer py-2\"\r\n (click)=\"selectItem(item)\">{{item}}\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"card-body\">\r\n <div *ngIf=\"!loading && !noData \">\r\n <div class=\"table-responsive\">\r\n <table class=\"table bottom-border text-nowrap\">\r\n <thead>\r\n <tr>\r\n <th>\r\n <div class=\"d-flex align-items-center\">\r\n <input type=\"checkbox\" id=\"selectAllCheckbox\" (change)=\"selectAll($event)\">\r\n <div class=\"d-flex align-items-center cursor-pointer\" (click)=\"sortData('userName')\">\r\n <span class=\"ms-2 me-1\">User</span>\r\n <span *ngIf=\"sortColumName === 'userName' && sortBy !== 1 || sortColumName !== 'userName' \">\r\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path d=\"M6.00016 1.33337V10.6667M6.00016 10.6667L10.6668 6.00004M6.00016 10.6667L1.3335 6.00004\"\r\n stroke=\"#667085\" stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <span *ngIf=\"sortColumName === 'userName' && sortBy !== -1\">\r\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path d=\"M6.00016 10.6667L6.00016 1.33337M6.00016 1.33337L1.3335 6.00004M6.00016 1.33337L10.6668 6.00004\"\r\n stroke=\"#667085\" stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n </div>\r\n </div>\r\n </th>\r\n <th><div class=\"cursor-pointer\" (click)=\"sortData('email')\">Email\r\n <span *ngIf=\"sortColumName === 'email' && sortBy !== 1 || sortColumName !== 'email' \">\r\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path d=\"M6.00016 1.33337V10.6667M6.00016 10.6667L10.6668 6.00004M6.00016 10.6667L1.3335 6.00004\"\r\n stroke=\"#667085\" stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <span *ngIf=\"sortColumName === 'email' && sortBy !== -1\">\r\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path d=\"M6.00016 10.6667L6.00016 1.33337M6.00016 1.33337L1.3335 6.00004M6.00016 1.33337L10.6668 6.00004\"\r\n stroke=\"#667085\" stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n </div></th>\r\n <th><div class=\"cursor-pointer\" (click)=\"sortData('assigned')\">Store Count\r\n <span *ngIf=\"sortColumName === 'assigned' && sortBy !== 1 || sortColumName !== 'assigned' \">\r\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path d=\"M6.00016 1.33337V10.6667M6.00016 10.6667L10.6668 6.00004M6.00016 10.6667L1.3335 6.00004\"\r\n stroke=\"#667085\" stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <span *ngIf=\"sortColumName === 'assigned' && sortBy !== -1\">\r\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path d=\"M6.00016 10.6667L6.00016 1.33337M6.00016 1.33337L1.3335 6.00004M6.00016 1.33337L10.6668 6.00004\"\r\n stroke=\"#667085\" stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n </div></th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let item of emailuserList?.result\">\r\n <td>\r\n <div class=\"d-flex align-items-center\">\r\n <input type=\"checkbox\" class=\"me-5\" [(ngModel)]=\"item.infraAlert\" (change)=\"selectItems($event, item)\">\r\n <div>\r\n {{ item?.userName ? item?.userName : 'NA' }}\r\n </div>\r\n </div>\r\n </td>\r\n <td>\r\n <div>{{ item?.email ? item?.email :'NA' }}</div>\r\n </td>\r\n <td>\r\n <div class=\"text-title text-primary cursor-pointer text-decoration-underline mb-1\" (click)=\"storeDetails(item?.assignedValue,item?.userName,item?.email)\">{{ item?.assigned }}</div></td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </div>\r\n <lib-pagination [itemsPerPage]=\"limit\" [currentPage]=\"offset\"\r\n [totalItems]=\"emailuserList?.count\" [paginationSizes]=\"[10,20,30]\" [pageSize]=\"limit\"\r\n (pageChange)=\"onPageChange($event)\" (pageSizeChange)=\"onPageSizeChange($event)\"></lib-pagination>\r\n <div>\r\n\r\n <div class=\"mt-10 d-flex justify-content-end\">\r\n <button class=\"btn btn-outline btn-default me-3\" (click)=\"cancelSelectedItems()\">\r\n Cancel\r\n </button>\r\n <button class=\"btn btn-primary btn-default\" (click)=\"updateSelectedItems()\">\r\n Save Chages\r\n </button>\r\n </div> \r\n </div>\r\n </div>\r\n <ng-container *ngIf=\"loading\">\r\n <div class=\"row loader d-flex justify-content-center align-items-center\">\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div> \r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"noData\">\r\n <div class=\"row\">\r\n <div class=\"col-lg-12 mb-3\">\r\n <div class=\"card-body d-flex justify-content-center align-items-center flex-column\">\r\n <img class=\"img-src w-25\" src=\"./assets/tango/Icons/Nodata.svg\" alt=\"\">\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n</div>\r\n\r\n<ng-template #confirmationModal let-modal>\r\n <div class=\"p-8 card-title\">\r\n <div class=\"title\">\r\n Stores List of the user\r\n </div>\r\n <div class=\"d-flex align-items-center mt-10 mb-10\">\r\n <div class=\"rounded-5 profile d-flex align-items-center justify-content-center fw-semibold\">{{Email.slice(0,2) | uppercase}}</div>\r\n <div class=\"ms-3\">\r\n <div class=\"title1 mb-1 fw-bold\">{{userName}}</div>\r\n <div class=\"text-sub\">{{Email}}</div>\r\n </div>\r\n </div>\r\n <div class=\"mt-5 border border-gray border-1 rounded-3 p-5\">\r\n <span *ngFor=\"let list of storeList\" class=\"badge badge-light-default me-3\">{{list?.storeName}}</span>\r\n </div>\r\n <div class=\"d-flex justify-content-between mt-10\">\r\n <button type=\"button\" class=\"btn btn-default btn-outline w-100\" (click)=\"modal.dismiss()\">Close</button>\r\n </div>\r\n </div>\r\n </ng-template>", styles: [".nav-item .nav-link.active{border:none;border-radius:6px;background:var(--Primary-50, #EAF8FF);padding:8px 12px}.nav-item .nav-link:hover{border:none}.items{color:var(--Gray-700, #344054);font-size:16px;line-height:24px}.items:hover,.tems.focus,.items.active,.camera.focus-visible{background:var(--Gray-50, #F9FAFB)}.loader .title{width:65%}.loader .link{width:85%}.loader .description{width:95%}.loader .shimmer{padding:15px;width:95%;height:120px;margin:10px auto;background:#fff}.loader .shimmer .image-card{height:90px;width:90px;float:right;border-radius:8px}.loader .stroke{height:15px;background:#777;margin-top:20px}.loader .wrapper{width:0px;animation:fullView .5s forwards linear}@keyframes fullView{to{width:100%}}.loader .animate{animation:shimmer 3s;animation-iteration-count:infinite;background:linear-gradient(to right,#e6e6e6 5%,#ccc 25%,#e6e6e6 35%);background-size:1000px 100%}@keyframes shimmer{0%{background-position:-1000px 0}to{background-position:1000px 0}}.img-src{width:25%!important}tr{vertical-align:middle!important}.card-title .title{color:var(--Gray-900, #101828);font-size:18px;font-weight:600;line-height:28px}.card-title .sub-title{color:var(--Gray-500, #667085);font-size:12px;font-weight:400;line-height:18px}input[type=checkbox]{width:16px!important;height:16px!important;margin:5px;border-radius:4px!important;-webkit-appearance:none;-moz-appearance:none;-o-appearance:none;appearance:none;outline:1px solid var(--gray-600, #D0D5DD)!important;box-shadow:none;font-size:.5em;text-align:center;line-height:1em;background:#fff}input[type=checkbox]:checked{outline:1px solid var(--primary-600, #00A3FF)!important;background-color:var(--primary-50, #EAF8FF)}input[type=checkbox]:checked:after{content:\"\";transform:rotate(45deg);border-bottom:2px solid #00A3FF;border-right:2px solid #00A3FF;display:inline-block;width:.5em;padding-left:3px;padding-top:10px;padding-right:0}.timingtext{color:var(--Gray-700, #344054);font-size:16px;line-height:24px}.disabled-list{pointer-events:none;opacity:.5}.profile{color:var(--Primary-600, #00A3FF);background-color:var(--primary-50, #EAF8FF);font-size:14px;line-height:20px;width:40px;height:40px}.title1{color:var(--Gray-700, #344054);font-size:14px!important;line-height:20px}.text-sub{color:var(--Gray-500, #667085);line-height:20px;font-weight:400}table tr{vertical-align:middle!important;padding-top:16px;padding-bottom:16px}table td .text-sub{color:var(--Gray-500, #667085);font-size:14px;font-weight:400;line-height:20px}\n"], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.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: i5.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i2.PaginationComponent, selector: "lib-pagination", inputs: ["collection", "itemsPerPage", "currentPage", "totalItems", "directionLinks", "pageSize", "paginationSizes"], outputs: ["pageChange", "pageSizeChange"] }, { kind: "pipe", type: i4.UpperCasePipe, name: "uppercase" }] });
202
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: EmailConfigurationComponent, deps: [{ token: i1.NgbModal }, { token: i2.ToastService }, { token: i0.ChangeDetectorRef }, { token: i3.ClientApiService }], target: i0.ɵɵFactoryTarget.Component });
203
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.3", type: EmailConfigurationComponent, selector: "lib-email-configuration", host: { listeners: { "document:click": "onClick($event)" } }, viewQueries: [{ propertyName: "confirmationModal", first: true, predicate: ["confirmationModal"], descendants: true }], ngImport: i0, template: "\r\n<div class=\"mb-5 py-3 px-5\">\r\n <ul class=\"nav nav-stretch nav-line-tabs1 nav-line-tabs border-transparent flex-nowrap mb-10\">\r\n <li class=\"nav-item\" (click)=\"Selectedtabs('Infra Report')\">\r\n <a \r\n [ngClass]=\"SelectedTab === 'Infra Report' ? 'active' : ''\" class=\"nav-link cursor-pointer no-border me-3\">\r\n Infra Report\r\n </a>\r\n </li>\r\n <!-- <li class=\"nav-item disabled-list \" (click)=\"Selectedtabs('Data Report')\">\r\n <a \r\n [ngClass]=\"SelectedTab === 'Data Report' ? 'active' : ''\" class=\"nav-link cursor-pointer no-border me-3\">\r\n Data Report\r\n </a>\r\n </li> \r\n <li class=\"nav-item disabled-list \" (click)=\"Selectedtabs('Insight Report')\">\r\n <a [ngClass]=\"SelectedTab ==='Insight Report' ? 'active' :''\" class=\"nav-link cursor-pointer me-3\">Insight Report</a>\r\n </li>\r\n <li class=\"nav-item disabled-list \" (click)=\"Selectedtabs('All')\"><a [ngClass]=\"SelectedTab ==='All' ? 'active' :''\"\r\n class=\"nav-link cursor-pointer no-border me-3\">All</a>\r\n </li> -->\r\n </ul>\r\n\r\n <div class=\"w-100 d-flex align-items-center\">\r\n <span class=\"timingtext fw-bold\">Send Daily Report at</span> <span> <input type=\"time\" [(ngModel)]=\"startTime\" class=\"form-control w-auto mx-5\"></span><span class=\"timingtext fw-bold\">and</span><span><input type=\"time\" [(ngModel)]=\"endTime\" class=\"form-control w-auto mx-5\"></span>\r\n </div>\r\n</div>\r\n<div class=\"card\">\r\n <div class=\"card-header border-0\">\r\n <div class=\"card-title d-grid\">\r\n <div class=\"title fw-bold\">Users List</div>\r\n <div class=\"sub-title\">Select your required email & schedule the mail timing accordingly</div>\r\n </div>\r\n <div class=\"card-toolbar\"> \r\n <input type=\"text\" class=\"form-control w-auto ps-3 me-2\" placeholder=\"Search\"\r\n autocomplete=\"off\" [(ngModel)]=\"searchInstallation\"\r\n (change)=\"searchInstallationTable()\" />\r\n <div class=\"position-relative w-150px mt-5 mb-5 ms-2\">\r\n <button type=\"button\" (click)=\"openDropdown($event)\"\r\n class=\"btn btn-default w-100 btn-outline btn-outline-default rounded-3 text-nowrap border-val d-flex justify-content-between\">\r\n {{selectedRole ? selectedRole : dropdownItems[0]}}\r\n <span><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\"\r\n viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path d=\"M5 7.5L10 12.5L15 7.5\" stroke=\"#667085\" stroke-width=\"1.66667\"\r\n stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </button>\r\n <div *ngIf=\"dropDown\" class=\"card py-1 w-100 position-absolute z-1 top-50px end-0\">\r\n <ul *ngFor=\"let item of dropdownItems\" class=\"list-unstyled\">\r\n <li [ngClass]=\"selectedRole === item ? 'active' : ''\"\r\n class=\"camera px-5 items fw-semibold cursor-pointer py-2\"\r\n (click)=\"selectItem(item)\">{{item}}\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"card-body\">\r\n <div *ngIf=\"!loading && !noData \">\r\n <div class=\"table-responsive\">\r\n <table class=\"table bottom-border text-nowrap\">\r\n <thead>\r\n <tr>\r\n <th>\r\n <div class=\"d-flex align-items-center\">\r\n <input type=\"checkbox\" id=\"selectAllCheckbox\" (change)=\"selectAll($event)\">\r\n <div class=\"d-flex align-items-center cursor-pointer\" (click)=\"sortData('userName')\">\r\n <span class=\"ms-2 me-1\">User</span>\r\n <span *ngIf=\"sortColumName === 'userName' && sortBy !== 1 || sortColumName !== 'userName' \">\r\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path d=\"M6.00016 1.33337V10.6667M6.00016 10.6667L10.6668 6.00004M6.00016 10.6667L1.3335 6.00004\"\r\n stroke=\"#667085\" stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <span *ngIf=\"sortColumName === 'userName' && sortBy !== -1\">\r\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path d=\"M6.00016 10.6667L6.00016 1.33337M6.00016 1.33337L1.3335 6.00004M6.00016 1.33337L10.6668 6.00004\"\r\n stroke=\"#667085\" stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n </div>\r\n </div>\r\n </th>\r\n <th><div class=\"cursor-pointer\" (click)=\"sortData('email')\">Email\r\n <span *ngIf=\"sortColumName === 'email' && sortBy !== 1 || sortColumName !== 'email' \">\r\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path d=\"M6.00016 1.33337V10.6667M6.00016 10.6667L10.6668 6.00004M6.00016 10.6667L1.3335 6.00004\"\r\n stroke=\"#667085\" stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <span *ngIf=\"sortColumName === 'email' && sortBy !== -1\">\r\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path d=\"M6.00016 10.6667L6.00016 1.33337M6.00016 1.33337L1.3335 6.00004M6.00016 1.33337L10.6668 6.00004\"\r\n stroke=\"#667085\" stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n </div></th>\r\n <th><div class=\"cursor-pointer\" (click)=\"sortData('assigned')\">Store Count\r\n <span *ngIf=\"sortColumName === 'assigned' && sortBy !== 1 || sortColumName !== 'assigned' \">\r\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path d=\"M6.00016 1.33337V10.6667M6.00016 10.6667L10.6668 6.00004M6.00016 10.6667L1.3335 6.00004\"\r\n stroke=\"#667085\" stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <span *ngIf=\"sortColumName === 'assigned' && sortBy !== -1\">\r\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path d=\"M6.00016 10.6667L6.00016 1.33337M6.00016 1.33337L1.3335 6.00004M6.00016 1.33337L10.6668 6.00004\"\r\n stroke=\"#667085\" stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n </div></th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let item of emailuserList?.result\">\r\n <td>\r\n <div class=\"d-flex align-items-center\">\r\n <input type=\"checkbox\" class=\"me-5\" [(ngModel)]=\"item.infraAlert\" (change)=\"selectItems($event, item)\">\r\n <div>\r\n {{ item?.userName ? item?.userName : 'NA' }}\r\n </div>\r\n </div>\r\n </td>\r\n <td>\r\n <div>{{ item?.email ? item?.email :'NA' }}</div>\r\n </td>\r\n <td>\r\n <div class=\"text-title text-primary cursor-pointer text-decoration-underline mb-1\" (click)=\"storeDetails(item?.assignedValue,item?.userName,item?.email)\">{{ item?.assigned }}</div></td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </div>\r\n <lib-pagination [itemsPerPage]=\"limit\" [currentPage]=\"offset\"\r\n [totalItems]=\"emailuserList?.count\" [paginationSizes]=\"[10,20,30]\" [pageSize]=\"limit\"\r\n (pageChange)=\"onPageChange($event)\" (pageSizeChange)=\"onPageSizeChange($event)\"></lib-pagination>\r\n <div>\r\n\r\n <div class=\"mt-10 d-flex justify-content-end\">\r\n <button class=\"btn btn-outline btn-default me-3\" (click)=\"cancelSelectedItems()\">\r\n Cancel\r\n </button>\r\n <button class=\"btn btn-primary btn-default\" (click)=\"updateSelectedItems()\">\r\n Save Chages\r\n </button>\r\n </div> \r\n </div>\r\n </div>\r\n <ng-container *ngIf=\"loading\">\r\n <div class=\"row loader d-flex justify-content-center align-items-center\">\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div> \r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"noData\">\r\n <div class=\"row\">\r\n <div class=\"col-lg-12 mb-3\">\r\n <div class=\"card-body d-flex justify-content-center align-items-center flex-column\">\r\n <img class=\"img-src w-25\" src=\"./assets/tango/Icons/Nodata.svg\" alt=\"\">\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n</div>\r\n\r\n<ng-template #confirmationModal let-modal>\r\n <div class=\"p-8 card-title\">\r\n <div class=\"title\">\r\n Stores List of the user\r\n </div>\r\n <div class=\"d-flex align-items-center mt-10 mb-10\">\r\n <div class=\"rounded-5 profile d-flex align-items-center justify-content-center fw-semibold\">{{Email.slice(0,2) | uppercase}}</div>\r\n <div class=\"ms-3\">\r\n <div class=\"title1 mb-1 fw-bold\">{{userName}}</div>\r\n <div class=\"text-sub\">{{Email}}</div>\r\n </div>\r\n </div>\r\n <div class=\"mt-5 border border-gray border-1 rounded-3 p-5\">\r\n <span *ngFor=\"let list of storeList\" class=\"badge badge-light-default me-3\">{{list?.storeName}}</span>\r\n </div>\r\n <div class=\"d-flex justify-content-between mt-10\">\r\n <button type=\"button\" class=\"btn btn-default btn-outline w-100\" (click)=\"modal.dismiss()\">Close</button>\r\n </div>\r\n </div>\r\n </ng-template>", styles: [".nav-item .nav-link.active{border:none;border-radius:6px;background:var(--Primary-50, #EAF8FF);padding:8px 12px}.nav-item .nav-link:hover{border:none}.items{color:var(--Gray-700, #344054);font-size:16px;line-height:24px}.items:hover,.tems.focus,.items.active,.camera.focus-visible{background:var(--Gray-50, #F9FAFB)}.loader .title{width:65%}.loader .link{width:85%}.loader .description{width:95%}.loader .shimmer{padding:15px;width:95%;height:120px;margin:10px auto;background:#fff}.loader .shimmer .image-card{height:90px;width:90px;float:right;border-radius:8px}.loader .stroke{height:15px;background:#777;margin-top:20px}.loader .wrapper{width:0px;animation:fullView .5s forwards linear}@keyframes fullView{to{width:100%}}.loader .animate{animation:shimmer 3s;animation-iteration-count:infinite;background:linear-gradient(to right,#e6e6e6 5%,#ccc 25%,#e6e6e6 35%);background-size:1000px 100%}@keyframes shimmer{0%{background-position:-1000px 0}to{background-position:1000px 0}}.img-src{width:25%!important}tr{vertical-align:middle!important}.card-title .title{color:var(--Gray-900, #101828);font-size:18px;font-weight:600;line-height:28px}.card-title .sub-title{color:var(--Gray-500, #667085);font-size:12px;font-weight:400;line-height:18px}input[type=checkbox]{width:16px!important;height:16px!important;margin:5px;border-radius:4px!important;-webkit-appearance:none;-moz-appearance:none;-o-appearance:none;appearance:none;outline:1px solid var(--gray-600, #D0D5DD)!important;box-shadow:none;font-size:.5em;text-align:center;line-height:1em;background:#fff}input[type=checkbox]:checked{outline:1px solid var(--primary-600, #00A3FF)!important;background-color:var(--primary-50, #EAF8FF)}input[type=checkbox]:checked:after{content:\"\";transform:rotate(45deg);border-bottom:2px solid #00A3FF;border-right:2px solid #00A3FF;display:inline-block;width:.5em;padding-left:3px;padding-top:10px;padding-right:0}.timingtext{color:var(--Gray-700, #344054);font-size:16px;line-height:24px}.disabled-list{pointer-events:none;opacity:.5}.profile{color:var(--Primary-600, #00A3FF);background-color:var(--primary-50, #EAF8FF);font-size:14px;line-height:20px;width:40px;height:40px}.title1{color:var(--Gray-700, #344054);font-size:14px!important;line-height:20px}.text-sub{color:var(--Gray-500, #667085);line-height:20px;font-weight:400}table tr{vertical-align:middle!important;padding-top:16px;padding-bottom:16px}table td .text-sub{color:var(--Gray-500, #667085);font-size:14px;font-weight:400;line-height:20px}\n"], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.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: i5.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i2.PaginationComponent, selector: "lib-pagination", inputs: ["collection", "itemsPerPage", "currentPage", "totalItems", "directionLinks", "pageSize", "paginationSizes"], outputs: ["pageChange", "pageSizeChange"] }, { kind: "pipe", type: i4.UpperCasePipe, name: "uppercase" }] });
204
204
  }
205
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: EmailConfigurationComponent, decorators: [{
205
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: EmailConfigurationComponent, decorators: [{
206
206
  type: Component,
207
207
  args: [{ selector: 'lib-email-configuration', template: "\r\n<div class=\"mb-5 py-3 px-5\">\r\n <ul class=\"nav nav-stretch nav-line-tabs1 nav-line-tabs border-transparent flex-nowrap mb-10\">\r\n <li class=\"nav-item\" (click)=\"Selectedtabs('Infra Report')\">\r\n <a \r\n [ngClass]=\"SelectedTab === 'Infra Report' ? 'active' : ''\" class=\"nav-link cursor-pointer no-border me-3\">\r\n Infra Report\r\n </a>\r\n </li>\r\n <!-- <li class=\"nav-item disabled-list \" (click)=\"Selectedtabs('Data Report')\">\r\n <a \r\n [ngClass]=\"SelectedTab === 'Data Report' ? 'active' : ''\" class=\"nav-link cursor-pointer no-border me-3\">\r\n Data Report\r\n </a>\r\n </li> \r\n <li class=\"nav-item disabled-list \" (click)=\"Selectedtabs('Insight Report')\">\r\n <a [ngClass]=\"SelectedTab ==='Insight Report' ? 'active' :''\" class=\"nav-link cursor-pointer me-3\">Insight Report</a>\r\n </li>\r\n <li class=\"nav-item disabled-list \" (click)=\"Selectedtabs('All')\"><a [ngClass]=\"SelectedTab ==='All' ? 'active' :''\"\r\n class=\"nav-link cursor-pointer no-border me-3\">All</a>\r\n </li> -->\r\n </ul>\r\n\r\n <div class=\"w-100 d-flex align-items-center\">\r\n <span class=\"timingtext fw-bold\">Send Daily Report at</span> <span> <input type=\"time\" [(ngModel)]=\"startTime\" class=\"form-control w-auto mx-5\"></span><span class=\"timingtext fw-bold\">and</span><span><input type=\"time\" [(ngModel)]=\"endTime\" class=\"form-control w-auto mx-5\"></span>\r\n </div>\r\n</div>\r\n<div class=\"card\">\r\n <div class=\"card-header border-0\">\r\n <div class=\"card-title d-grid\">\r\n <div class=\"title fw-bold\">Users List</div>\r\n <div class=\"sub-title\">Select your required email & schedule the mail timing accordingly</div>\r\n </div>\r\n <div class=\"card-toolbar\"> \r\n <input type=\"text\" class=\"form-control w-auto ps-3 me-2\" placeholder=\"Search\"\r\n autocomplete=\"off\" [(ngModel)]=\"searchInstallation\"\r\n (change)=\"searchInstallationTable()\" />\r\n <div class=\"position-relative w-150px mt-5 mb-5 ms-2\">\r\n <button type=\"button\" (click)=\"openDropdown($event)\"\r\n class=\"btn btn-default w-100 btn-outline btn-outline-default rounded-3 text-nowrap border-val d-flex justify-content-between\">\r\n {{selectedRole ? selectedRole : dropdownItems[0]}}\r\n <span><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\"\r\n viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path d=\"M5 7.5L10 12.5L15 7.5\" stroke=\"#667085\" stroke-width=\"1.66667\"\r\n stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </button>\r\n <div *ngIf=\"dropDown\" class=\"card py-1 w-100 position-absolute z-1 top-50px end-0\">\r\n <ul *ngFor=\"let item of dropdownItems\" class=\"list-unstyled\">\r\n <li [ngClass]=\"selectedRole === item ? 'active' : ''\"\r\n class=\"camera px-5 items fw-semibold cursor-pointer py-2\"\r\n (click)=\"selectItem(item)\">{{item}}\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"card-body\">\r\n <div *ngIf=\"!loading && !noData \">\r\n <div class=\"table-responsive\">\r\n <table class=\"table bottom-border text-nowrap\">\r\n <thead>\r\n <tr>\r\n <th>\r\n <div class=\"d-flex align-items-center\">\r\n <input type=\"checkbox\" id=\"selectAllCheckbox\" (change)=\"selectAll($event)\">\r\n <div class=\"d-flex align-items-center cursor-pointer\" (click)=\"sortData('userName')\">\r\n <span class=\"ms-2 me-1\">User</span>\r\n <span *ngIf=\"sortColumName === 'userName' && sortBy !== 1 || sortColumName !== 'userName' \">\r\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path d=\"M6.00016 1.33337V10.6667M6.00016 10.6667L10.6668 6.00004M6.00016 10.6667L1.3335 6.00004\"\r\n stroke=\"#667085\" stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <span *ngIf=\"sortColumName === 'userName' && sortBy !== -1\">\r\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path d=\"M6.00016 10.6667L6.00016 1.33337M6.00016 1.33337L1.3335 6.00004M6.00016 1.33337L10.6668 6.00004\"\r\n stroke=\"#667085\" stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n </div>\r\n </div>\r\n </th>\r\n <th><div class=\"cursor-pointer\" (click)=\"sortData('email')\">Email\r\n <span *ngIf=\"sortColumName === 'email' && sortBy !== 1 || sortColumName !== 'email' \">\r\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path d=\"M6.00016 1.33337V10.6667M6.00016 10.6667L10.6668 6.00004M6.00016 10.6667L1.3335 6.00004\"\r\n stroke=\"#667085\" stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <span *ngIf=\"sortColumName === 'email' && sortBy !== -1\">\r\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path d=\"M6.00016 10.6667L6.00016 1.33337M6.00016 1.33337L1.3335 6.00004M6.00016 1.33337L10.6668 6.00004\"\r\n stroke=\"#667085\" stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n </div></th>\r\n <th><div class=\"cursor-pointer\" (click)=\"sortData('assigned')\">Store Count\r\n <span *ngIf=\"sortColumName === 'assigned' && sortBy !== 1 || sortColumName !== 'assigned' \">\r\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path d=\"M6.00016 1.33337V10.6667M6.00016 10.6667L10.6668 6.00004M6.00016 10.6667L1.3335 6.00004\"\r\n stroke=\"#667085\" stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <span *ngIf=\"sortColumName === 'assigned' && sortBy !== -1\">\r\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path d=\"M6.00016 10.6667L6.00016 1.33337M6.00016 1.33337L1.3335 6.00004M6.00016 1.33337L10.6668 6.00004\"\r\n stroke=\"#667085\" stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n </div></th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let item of emailuserList?.result\">\r\n <td>\r\n <div class=\"d-flex align-items-center\">\r\n <input type=\"checkbox\" class=\"me-5\" [(ngModel)]=\"item.infraAlert\" (change)=\"selectItems($event, item)\">\r\n <div>\r\n {{ item?.userName ? item?.userName : 'NA' }}\r\n </div>\r\n </div>\r\n </td>\r\n <td>\r\n <div>{{ item?.email ? item?.email :'NA' }}</div>\r\n </td>\r\n <td>\r\n <div class=\"text-title text-primary cursor-pointer text-decoration-underline mb-1\" (click)=\"storeDetails(item?.assignedValue,item?.userName,item?.email)\">{{ item?.assigned }}</div></td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </div>\r\n <lib-pagination [itemsPerPage]=\"limit\" [currentPage]=\"offset\"\r\n [totalItems]=\"emailuserList?.count\" [paginationSizes]=\"[10,20,30]\" [pageSize]=\"limit\"\r\n (pageChange)=\"onPageChange($event)\" (pageSizeChange)=\"onPageSizeChange($event)\"></lib-pagination>\r\n <div>\r\n\r\n <div class=\"mt-10 d-flex justify-content-end\">\r\n <button class=\"btn btn-outline btn-default me-3\" (click)=\"cancelSelectedItems()\">\r\n Cancel\r\n </button>\r\n <button class=\"btn btn-primary btn-default\" (click)=\"updateSelectedItems()\">\r\n Save Chages\r\n </button>\r\n </div> \r\n </div>\r\n </div>\r\n <ng-container *ngIf=\"loading\">\r\n <div class=\"row loader d-flex justify-content-center align-items-center\">\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div> \r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"noData\">\r\n <div class=\"row\">\r\n <div class=\"col-lg-12 mb-3\">\r\n <div class=\"card-body d-flex justify-content-center align-items-center flex-column\">\r\n <img class=\"img-src w-25\" src=\"./assets/tango/Icons/Nodata.svg\" alt=\"\">\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n</div>\r\n\r\n<ng-template #confirmationModal let-modal>\r\n <div class=\"p-8 card-title\">\r\n <div class=\"title\">\r\n Stores List of the user\r\n </div>\r\n <div class=\"d-flex align-items-center mt-10 mb-10\">\r\n <div class=\"rounded-5 profile d-flex align-items-center justify-content-center fw-semibold\">{{Email.slice(0,2) | uppercase}}</div>\r\n <div class=\"ms-3\">\r\n <div class=\"title1 mb-1 fw-bold\">{{userName}}</div>\r\n <div class=\"text-sub\">{{Email}}</div>\r\n </div>\r\n </div>\r\n <div class=\"mt-5 border border-gray border-1 rounded-3 p-5\">\r\n <span *ngFor=\"let list of storeList\" class=\"badge badge-light-default me-3\">{{list?.storeName}}</span>\r\n </div>\r\n <div class=\"d-flex justify-content-between mt-10\">\r\n <button type=\"button\" class=\"btn btn-default btn-outline w-100\" (click)=\"modal.dismiss()\">Close</button>\r\n </div>\r\n </div>\r\n </ng-template>", styles: [".nav-item .nav-link.active{border:none;border-radius:6px;background:var(--Primary-50, #EAF8FF);padding:8px 12px}.nav-item .nav-link:hover{border:none}.items{color:var(--Gray-700, #344054);font-size:16px;line-height:24px}.items:hover,.tems.focus,.items.active,.camera.focus-visible{background:var(--Gray-50, #F9FAFB)}.loader .title{width:65%}.loader .link{width:85%}.loader .description{width:95%}.loader .shimmer{padding:15px;width:95%;height:120px;margin:10px auto;background:#fff}.loader .shimmer .image-card{height:90px;width:90px;float:right;border-radius:8px}.loader .stroke{height:15px;background:#777;margin-top:20px}.loader .wrapper{width:0px;animation:fullView .5s forwards linear}@keyframes fullView{to{width:100%}}.loader .animate{animation:shimmer 3s;animation-iteration-count:infinite;background:linear-gradient(to right,#e6e6e6 5%,#ccc 25%,#e6e6e6 35%);background-size:1000px 100%}@keyframes shimmer{0%{background-position:-1000px 0}to{background-position:1000px 0}}.img-src{width:25%!important}tr{vertical-align:middle!important}.card-title .title{color:var(--Gray-900, #101828);font-size:18px;font-weight:600;line-height:28px}.card-title .sub-title{color:var(--Gray-500, #667085);font-size:12px;font-weight:400;line-height:18px}input[type=checkbox]{width:16px!important;height:16px!important;margin:5px;border-radius:4px!important;-webkit-appearance:none;-moz-appearance:none;-o-appearance:none;appearance:none;outline:1px solid var(--gray-600, #D0D5DD)!important;box-shadow:none;font-size:.5em;text-align:center;line-height:1em;background:#fff}input[type=checkbox]:checked{outline:1px solid var(--primary-600, #00A3FF)!important;background-color:var(--primary-50, #EAF8FF)}input[type=checkbox]:checked:after{content:\"\";transform:rotate(45deg);border-bottom:2px solid #00A3FF;border-right:2px solid #00A3FF;display:inline-block;width:.5em;padding-left:3px;padding-top:10px;padding-right:0}.timingtext{color:var(--Gray-700, #344054);font-size:16px;line-height:24px}.disabled-list{pointer-events:none;opacity:.5}.profile{color:var(--Primary-600, #00A3FF);background-color:var(--primary-50, #EAF8FF);font-size:14px;line-height:20px;width:40px;height:40px}.title1{color:var(--Gray-700, #344054);font-size:14px!important;line-height:20px}.text-sub{color:var(--Gray-500, #667085);line-height:20px;font-weight:400}table tr{vertical-align:middle!important;padding-top:16px;padding-bottom:16px}table td .text-sub{color:var(--Gray-500, #667085);font-size:14px;font-weight:400;line-height:20px}\n"] }]
208
208
  }], ctorParameters: () => [{ type: i1.NgbModal }, { type: i2.ToastService }, { type: i0.ChangeDetectorRef }, { type: i3.ClientApiService }], propDecorators: { confirmationModal: [{
@@ -212,4 +212,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
212
212
  type: HostListener,
213
213
  args: ['document:click', ['$event']]
214
214
  }] } });
215
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1haWwtY29uZmlndXJhdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1tYW5hZ2Utc2V0dGluZ3Mvc3JjL2xpYi9jb21wb25lbnRzL2NvbmZpZ3VyYXRpb25zL2VtYWlsLWNvbmZpZ3VyYXRpb24vZW1haWwtY29uZmlndXJhdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1tYW5hZ2Utc2V0dGluZ3Mvc3JjL2xpYi9jb21wb25lbnRzL2NvbmZpZ3VyYXRpb25zL2VtYWlsLWNvbmZpZ3VyYXRpb24vZW1haWwtY29uZmlndXJhdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFTLFlBQVksRUFBQyxTQUFTLEVBQThCLE1BQU0sZUFBZSxDQUFDO0FBR3JHLE9BQU8sRUFBRSxPQUFPLEVBQU8sU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7O0FBUS9DLE1BQU0sT0FBTywyQkFBMkI7SUFvQ2xCO0lBQStCO0lBQzVDO0lBQTZCO0lBbkNKLGlCQUFpQixDQUFNO0lBQ3ZELFFBQVEsQ0FBMEI7SUFDbEMsV0FBVyxHQUFLLGNBQWMsQ0FBQTtJQUM5QixTQUFTLENBQUs7SUFDZCxPQUFPLENBQUs7SUFDWixRQUFRLEdBQVksS0FBSyxDQUFDO0lBQzFCLGFBQWEsR0FBUyxDQUFDLE9BQU8sRUFBQyxNQUFNLEVBQUMsYUFBYSxDQUFDLENBQUE7SUFDcEQsWUFBWSxHQUFPLGFBQWEsQ0FBRTtJQUNsQyxNQUFNLEdBQU8sQ0FBQyxDQUFDO0lBQ2YsS0FBSyxHQUFPLEVBQUUsQ0FBQztJQUNmLE1BQU0sR0FBTyxDQUFDLENBQUMsQ0FBQztJQUNoQixhQUFhLENBQUs7SUFDbEIsVUFBVSxDQUFLO0lBQ2Ysa0JBQWtCLENBQU07SUFDeEIsTUFBTSxDQUFN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bUJBQW1CO2dCQTBCOUIsT0FBTztzQkFETixZQUFZO3VCQUFDLGdCQUFnQixFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsSG9zdExpc3RlbmVyLFZpZXdDaGlsZCxDaGFuZ2VEZXRlY3RvclJlZixPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTmdiTW9kYWwsTmdiTW9kYWxSZWYgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XHJcbmltcG9ydCB7IENsaWVudEFwaVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9jbGllbnQtYXBpLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTdWJqZWN0LCBtYXAsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBUb2FzdFNlcnZpY2UgfSBmcm9tICd0YW5nby1hcHAtdWktc2hhcmVkJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLWVtYWlsLWNvbmZpZ3VyYXRpb24nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9lbWFpbC1jb25maWd1cmF0aW9uLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vZW1haWwtY29uZmlndXJhdGlvbi5jb21wb25lbnQuc2NzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIEVtYWlsQ29uZmlndXJhdGlvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCxPbkRlc3Ryb3kge1xyXG5cclxuICBAVmlld0NoaWxkKCdjb25maXJtYXRpb25Nb2RhbCcpIGNvbmZpcm1hdGlvbk1vZGFsOiBhbnk7XHJcbiAgbW9kYWxSZWY6IE5nYk1vZGFsUmVmIHwgdW5kZWZpbmVkO1xyXG4gIFNlbGVjdGVkVGFiOmFueT0nSW5mcmEgUmVwb3J0J1xyXG4gIHN0YXJ0VGltZTphbnk7XHJcbiAgZW5kVGltZTphbnk7XHJcbiAgZHJvcERvd246IGJvb2xlYW4gPSBmYWxzZTtcclxuICBkcm9wZG93bkl0ZW1zOmFueVtdID0gWydBZG1pbicsJ1VzZXInLCdTdXBlciBBZG1pbiddXHJcbiAgc2VsZWN0ZWRSb2xlOmFueSA9ICdTdXBlciBBZG1pbicgO1xyXG4gIG9mZnNldDphbnkgPSAxO1xyXG4gIGxpbWl0OmFueSA9IDEwO1xyXG4gIHNvcnRCeTphbnkgPSAtMTtcclxuICBzb3J0Q29sdW1OYW1lOmFueTtcclxuICB0b3RhbENvdW50OmFueTtcclxuICBzZWFyY2hJbnN0YWxsYXRpb246IGFueTtcclxuICBub0RhdGE6IGFueTtcclxuICBsb2FkaW5nOiBhbnk7XHJcbiAgc2VsZWN0ZWRJdGVtczogYW55O1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveSQgPSBuZXcgU3ViamVjdCgpO1xyXG4gIGVtYWlsdXNlckxpc3Q6IGFueTtcclxuICBkdW1teUVtYWlsTGlzdDphbnk7XHJcbiAgY2xpZW50SWQ6IGFueTtcclxuICBzdG9yZUxpc3Q6IGFueTtcclxuICBFbWFpbDogYW55O1xyXG4gIHVzZXJOYW1lOiBhbnk7XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmNsaWNrJywgWyckZXZlbnQnXSlcclxuICBvbkNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KSB7XHJcbiAgICBjb25zdFxyXG4gICAgICB0YXJnZXQgPSBldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQ7XHJcbiAgICBpZiAoIXRhcmdldC5jbG9zZXN0KCcuZHJvcGRvd24nKSkge1xyXG4gICAgICB0aGlzLmRyb3BEb3duID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIG1vZGFsU2VydmljZTogTmdiTW9kYWwscHJpdmF0ZSB0b2FzdDpUb2FzdFNlcnZpY2UsXHJcbiBwcml2YXRlIGNkOkNoYW5nZURldGVjdG9yUmVmLHByaXZhdGUgc2VydmljZTogQ2xpZW50QXBpU2VydmljZSl7XHJcbiAgdGhpcy5zZXJ2aWNlLmNsaWVudERhdGEucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSgoZSkgPT4ge1xyXG4gICAgaWYgKGUpIHtcclxuICAgICAgdGhpcy5jbGllbnRJZCA9IGUuY2xpZW50SWRcclxuICAgIH1cclxuICB9KVxyXG4gICAgfVxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgICAgICAgdGhpcy5TZWxlY3RlZHRhYnModGhpcy5TZWxlY3RlZFRhYik7IFxyXG4gICAgICAgICAgdGhpcy5nZXRCcmFuZERldGFpbHMoKTtcclxuICAgICAgICAgIHRoaXMudXNlckxpc3QoKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KHRydWUpO1xyXG4gICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xyXG4gIH1cclxuXHJcbiAgc2VsZWN0QWxsKGV2ZW50OiBhbnkpIHtcclxuICAgIGNvbnN0IGNoZWNrZWQgPSBldmVudC50YXJnZXQuY2hlY2tlZDtcclxuICAgIHRoaXMuZW1haWx1c2VyTGlzdD8ucmVzdWx0LmZvckVhY2goKGl0ZW06YW55KSA9PiB7XHJcbiAgICAgICAgaWYoY2hlY2tlZCl7XHJcbiAgICAgICAgICBpdGVtLmluZnJhQWxlcnQgPSBjaGVja2VkO1xyXG4gICAgICAgIC8vICB0aGlzLnVwZGF0ZVNlbGVjdGVkSXRlbXMoKTtcclxuICAgICAgICB9ZWxzZSB7aXRlbS5pbmZyYUFsZXJ0ID0gZmFsc2V9XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgc2VsZWN0SXRlbXMoZXZlbnQ6IGFueSwgaXRlbTogYW55KSB7XHJcbiAgICBpdGVtLmluZnJhQWxlcnQgPSBldmVudC50YXJnZXQuY2hlY2tlZDtcclxuICAgIHRoaXMuY2hlY2tTZWxlY3RBbGwoKTtcclxuICAgIC8vIHRoaXMudXBkYXRlU2VsZWN0ZWRJdGVtcygpO1xyXG4gIH1cclxuXHJcbiAgY2hlY2tTZWxlY3RBbGwoKSB7XHJcbiAgICBjb25zdCBhbGxTZWxlY3RlZCA9IHRoaXMuZW1haWx1c2VyTGlzdD8ucmVzdWx0LmV2ZXJ5KChpdGVtOmFueSkgPT4gaXRlbS5pbmZyYUFsZXJ0KTtcclxuICAgIGNvbnN0IHNlbGVjdEFsbENoZWNrYm94ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3NlbGVjdEFsbENoZWNrYm94JykgYXMgSFRNTElucHV0RWxlbWVudDtcclxuICAgIGlmIChzZWxlY3RBbGxDaGVja2JveCkge1xyXG4gICAgICBzZWxlY3RBbGxDaGVja2JveC5jaGVja2VkID0gYWxsU2VsZWN0ZWQ7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICB1cGRhdGVTZWxlY3RlZEl0ZW1zKCkge1xyXG4gICAgaWYodGhpcy5lbmRUaW1lID4gdGhpcy5zdGFydFRpbWUpe1xyXG4gICAgICB0aGlzLnNlbGVjdGVkSXRlbXMgPSB0aGlzLmVtYWlsdXNlckxpc3Q/LnJlc3VsdC5tYXAoKGl0ZW06YW55LGluZGV4OmFueSk9PntcclxuICAgICAgICByZXR1cm4ge2VtYWlsOml0ZW0uZW1haWwsaW5mcmFBbGVydDppdGVtLmluZnJhQWxlcnR9O1xyXG4gICAgICB9KTtcclxuICAgICAgdGhpcy51cGRhdGVVc2VyTGlzdCgpO1xyXG4gICAgfWVsc2V7XHJcbiAgICAgIHRoaXMudG9hc3QuZ2V0RXJyb3JUb2FzdCgnSW52YWxpZCBUaW1lIFRha2VuJylcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNhbmNlbFNlbGVjdGVkSXRlbXMoKXtcclxuICAgIHRoaXMuZW1haWx1c2VyTGlzdCA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhpcy5kdW1teUVtYWlsTGlzdCkpO1xyXG4gICAgdGhpcy5jaGVja1NlbGVjdEFsbCgpO1xyXG4gIH1cclxuXHJcbiAgU2VsZWN0ZWR0YWJzKHZhbHVlOmFueSl7XHJcbiAgICB0aGlzLlNlbGVjdGVkVGFiID0gdmFsdWU7XHJcbiAgfVxyXG5cclxuICBzZWxlY3RJdGVtKHZhbHVlOiBhbnkpIHtcclxuICAgIHRoaXMuc2VsZWN0ZWRSb2xlID0gdmFsdWU7XHJcbiAgICB0aGlzLmRyb3BEb3duID0gZmFsc2U7XHJcbiAgICB0aGlzLnVzZXJMaXN0KCk7XHJcbiAgICAvLyB0aGlzLnRhYmxlRGF0YS5maWx0ZXIgPSB0aGlzLnNlbGVjdGVkSXRlbSA9PT0gXCJBbGxcIiA/IFtdIDogdmFsdWVcclxuICB9XHJcblxyXG4gIG9wZW5Ecm9wZG93bihldmVudDogTW91c2VFdmVudCkge1xyXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICB0aGlzLmRyb3BEb3duID0gIXRoaXMuZHJvcERvd247XHJcbiAgfVxyXG4gIHNlYXJjaEluc3RhbGxhdGlvblRhYmxlKCkge1xyXG4gICAgICAgdGhpcy51c2VyTGlzdCgpXHJcbiAgfVxyXG5cclxuICBvblBhZ2VDaGFuZ2UocGFnZU9mZnNldDogYW55KSB7XHJcbiAgICB0aGlzLm9mZnNldCA9IHBhZ2VPZmZzZXQ7XHJcbiAgICB0aGlzLnVzZXJMaXN0KCk7XHJcbiAgXHJcbiAgfVxyXG4gIFxyXG4gIG9uUGFnZVNpemVDaGFuZ2UocGFnZVNpemU6IGFueSkge1xyXG4gICAgdGhpcy5saW1pdCA9IHBhZ2VTaXplO1xyXG4gICB0aGlzLnVzZXJMaXN0KCk7XHJcbiAgXHJcbiAgfVxyXG4gIHNvcnREYXRhKHZhbHVlOmFueSl7XHJcbiAgICB0aGlzLnNvcnRDb2x1bU5hbWUgPSB2YWx1ZTtcclxuICAgIHRoaXMuc29ydEJ5ICo9IC0xO1xyXG4gICAgdGhpcy51c2VyTGlzdCgpO1xyXG4gIH1cclxuXHJcbiAgc3RvcmVEZXRhaWxzKG9iajphbnksZW1haWw6YW55LHVzZXJOYW1lOmFueSl7XHJcbiAgICB0aGlzLnN0b3JlTGlzdCA9IG9iajtcclxuICAgIHRoaXMuRW1haWwgPSBlbWFpbDtcclxuICAgIHRoaXMudXNlck5hbWUgPSB1c2VyTmFtZTtcclxuICAgIGNvbnN0IG1vZGFsUmVmID0gdGhpcy5tb2RhbFNlcnZpY2Uub3Blbih0aGlzLmNvbmZpcm1hdGlvbk1vZGFsLCB7IGNlbnRlcmVkOiB0cnVlIH0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0QnJhbmREZXRhaWxzKCl7XHJcbiAgICAgdGhpcy5zZXJ2aWNlLmdldEJyYW5kRGV0YWlscyh0aGlzLmNsaWVudElkKS5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OihyZXM6YW55KT0+e1xyXG4gICAgICAgIGlmKHJlcyYmcmVzLmNvZGU9PScyMDAnKXtcclxuICAgICAgICAgIGNvbnN0IHJlc3BvbnNlRGF0YSA9IHJlcz8uZGF0YT8udGlja2V0Q29uZmlncztcclxuICAgICAgICAgIHRoaXMuc3RhcnRUaW1lID0gcmVzcG9uc2VEYXRhPy5pbmZyYVJlcG9ydD8uc3RhcnQ7XHJcbiAgICAgICAgICB0aGlzLmVuZFRpbWUgPSByZXNwb25zZURhdGE/LmluZnJhUmVwb3J0Py5lbmQ7XHJcbiAgICAgICAgfWVsc2V7XHJcblxyXG4gICAgICAgIH1cclxuICAgICAgIH0sXHJcbiAgICAgICAgZXJyb3I6KGVycik9PntcclxuICAgICAgICAgICAgXHJcbiAgICAgICAgfSxcclxuICAgICB9KVxyXG4gIH1cclxuXHJcbiAgdXNlckxpc3QoKXtcclxuICAgICBsZXQgZGF0YSA9e1xyXG4gICAgICBcImNsaWVudElkXCI6dGhpcy5jbGllbnRJZCxcclxuICAgICAgXCJyb2xlXCI6dGhpcy5zZWxlY3RlZFJvbGUucmVwbGFjZSgnICcsJycpLnRvTG93ZXJDYXNlKCksXHJcbiAgICAgIFwic2VhcmNoVmFsdWVcIjp0aGlzLnNlYXJjaEluc3RhbGxhdGlvbixcclxuICAgICAgXCJzb3J0Q29sdW1OYW1lXCI6dGhpcy5zb3J0Q29sdW1OYW1lLFxyXG4gICAgICBcInNvcnRCeVwiOnRoaXMuc29ydEJ5LFxyXG4gICAgICBcIm9mZnNldFwiOnRoaXMub2Zmc2V0LFxyXG4gICAgICBcImxpbWl0XCI6dGhpcy5saW1pdFxyXG4gICAgIH1cclxuICAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xyXG4gICAgIHRoaXMubm9EYXRhID0gZmFsc2U7XHJcbiAgICAgdGhpcy5zZXJ2aWNlLmVtYWlsVXNlckxpc3QoZGF0YSkucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6KHJlczphbnkpPT57XHJcbiAgICAgIGlmKHJlcyAmJiByZXMuY29kZT09JzIwMCcgJiYgcmVzPy5kYXRhPy5yZXN1bHQ/Lmxlbmd0aCl7XHJcbiAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5ub0RhdGEgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmVtYWlsdXNlckxpc3QgPSByZXMuZGF0YTtcclxuICAgICAgICB0aGlzLmR1bW15RW1haWxMaXN0ID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLmVtYWlsdXNlckxpc3QpKVxyXG4gICAgICAgIFxyXG4gICAgICB9ZWxzZXtcclxuICAgICAgICAgdGhpcy5ub0RhdGEgPSB0cnVlO1xyXG4gICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgIH0sXHJcbiAgICAgIGVycm9yOihlcnIpPT57XHJcbiAgICAgICAgdGhpcy5ub0RhdGEgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICB9LFxyXG4gICB9KVxyXG5cclxuICB9XHJcblxyXG4gIHVwZGF0ZVVzZXJMaXN0KCl7XHJcbiAgICBsZXQgZGF0YSA9IHtcclxuICAgICAgY2xpZW50SWQ6dGhpcy5jbGllbnRJZCxcclxuICAgICAgc3RhcnQ6IHRoaXMuc3RhcnRUaW1lLFxyXG4gICAgICBlbmQ6IHRoaXMuZW5kVGltZSxcclxuICAgICAgXCJ1c2VyTGlzdFwiOiB0aGlzLnNlbGVjdGVkSXRlbXMsXHJcbiAgfVxyXG4gIHRoaXMuc2VydmljZS5zYXZlSW5mcmFFbWFpbENvbmZpZyhkYXRhKS5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKHtcclxuICAgIG5leHQ6KHJlczphbnkpPT57XHJcbiAgICBpZihyZXMgJiYgcmVzLmNvZGU9PScyMDAnKXtcclxuICAgICAgdGhpcy50b2FzdC5nZXRTdWNjZXNzVG9hc3QocmVzPy5tZXNzYWdlKTtcclxuICAgIH1cclxuICAgfSxcclxuICAgIGVycm9yOihlcnIpPT57XHJcbiAgICAgIHRoaXMudG9hc3QuZ2V0RXJyb3JUb2FzdChlcnI/LmVycm9yKVxyXG4gICAgfSxcclxuIH0pXHJcblxyXG59XHJcblxyXG59XHJcblxyXG4iLCJcclxuPGRpdiBjbGFzcz1cIm1iLTUgcHktMyBweC01XCI+XHJcbiAgICA8dWwgY2xhc3M9XCJuYXYgbmF2LXN0cmV0Y2ggbmF2LWxpbmUtdGFiczEgbmF2LWxpbmUtdGFicyBib3JkZXItdHJhbnNwYXJlbnQgZmxleC1ub3dyYXAgbWItMTBcIj5cclxuICAgICAgICA8bGkgY2xhc3M9XCJuYXYtaXRlbVwiIChjbGljayk9XCJTZWxlY3RlZHRhYnMoJ0luZnJhIFJlcG9ydCcpXCI+XHJcbiAgICAgICAgICAgIDxhIFxyXG4gICAgICAgICAgICAgICBbbmdDbGFzc109XCJTZWxlY3RlZFRhYiA9PT0gJ0luZnJhIFJlcG9ydCcgPyAnYWN0aXZlJyA6ICcnXCIgY2xhc3M9XCJuYXYtbGluayBjdXJzb3ItcG9pbnRlciBuby1ib3JkZXIgbWUtM1wiPlxyXG4gICAgICAgICAgICAgICAgSW5mcmEgUmVwb3J0XHJcbiAgICAgICAgICAgIDwvYT5cclxuICAgICAgICA8L2xpPlxyXG4gICAgICAgIDwhLS0gPGxpIGNsYXNzPVwibmF2LWl0ZW0gZGlzYWJsZWQtbGlzdCBcIiAoY2xpY2spPVwiU2VsZWN0ZWR0YWJzKCdEYXRhIFJlcG9ydCcpXCI+XHJcbiAgICAgICAgICAgIDxhIFxyXG4gICAgICAgICAgICAgICBbbmdDbGFzc109XCJTZWxlY3RlZFRhYiA9PT0gJ0RhdGEgUmVwb3J0JyA/ICdhY3RpdmUnIDogJydcIiBjbGFzcz1cIm5hdi1saW5rIGN1cnNvci1wb2ludGVyIG5vLWJvcmRlciBtZS0zXCI+XHJcbiAgICAgICAgICAgICAgICBEYXRhIFJlcG9ydFxyXG4gICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgPC9saT4gICAgXHJcbiAgICAgICAgPGxpIGNsYXNzPVwibmF2LWl0ZW0gZGlzYWJsZWQtbGlzdCBcIiAoY2xpY2spPVwiU2VsZWN0ZWR0YWJzKCdJbnNpZ2h0IFJlcG9ydCcpXCI+XHJcbiAgICAgICAgICAgIDxhIFtuZ0NsYXNzXT1cIlNlbGVjdGVkVGFiID09PSdJbnNpZ2h0IFJlcG9ydCcgPyAnYWN0aXZlJyA6JydcIiBjbGFzcz1cIm5hdi1saW5rIGN1cnNvci1wb2ludGVyIG1lLTNcIj5JbnNpZ2h0IFJlcG9ydDwvYT5cclxuICAgICAgICA8L2xpPlxyXG4gICAgICAgIDxsaSBjbGFzcz1cIm5hdi1pdGVtIGRpc2FibGVkLWxpc3QgXCIgKGNsaWNrKT1cIlNlbGVjdGVkdGFicygnQWxsJylcIj48YSBbbmdDbGFzc109XCJTZWxlY3RlZFRhYiA9PT0nQWxsJyA/ICdhY3RpdmUnIDonJ1wiXHJcbiAgICAgICAgICAgIGNsYXNzPVwibmF2LWxpbmsgY3Vyc29yLXBvaW50ZXIgbm8tYm9yZGVyIG1lLTNcIj5BbGw8L2E+XHJcbiAgICAgICAgPC9saT4gLS0+XHJcbiAgICA8L3VsPlxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJ3LTEwMCBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJ0aW1pbmd0ZXh0IGZ3LWJvbGRcIj5TZW5kIERhaWx5IFJlcG9ydCBhdDwvc3Bhbj4gPHNwYW4+IDxpbnB1dCB0eXBlPVwidGltZVwiIFsobmdNb2RlbCldPVwic3RhcnRUaW1lXCIgY2xhc3M9XCJmb3JtLWNvbnRyb2wgdy1hdXRvIG14LTVcIj48L3NwYW4+PHNwYW4gY2xhc3M9XCJ0aW1pbmd0ZXh0IGZ3LWJvbGRcIj5hbmQ8L3NwYW4+PHNwYW4+PGlucHV0IHR5cGU9XCJ0aW1lXCIgWyhuZ01vZGVsKV09XCJlbmRUaW1lXCIgY2xhc3M9XCJmb3JtLWNvbnRyb2wgdy1hdXRvIG14LTVcIj48L3NwYW4+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+XHJcbjxkaXYgY2xhc3M9XCJjYXJkXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY2FyZC1oZWFkZXIgYm9yZGVyLTBcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC10aXRsZSBkLWdyaWRcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRpdGxlIGZ3LWJvbGRcIj5Vc2VycyBMaXN0PC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdWItdGl0bGVcIj5TZWxlY3QgeW91ciByZXF1aXJlZCBlbWFpbCAmIHNjaGVkdWxlIHRoZSBtYWlsIHRpbWluZyBhY2NvcmRpbmdseTwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLXRvb2xiYXJcIj4gICBcclxuICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2wgdy1hdXRvIHBzLTMgbWUtMlwiIHBsYWNlaG9sZGVyPVwiU2VhcmNoXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0b2NvbXBsZXRlPVwib2ZmXCIgWyhuZ01vZGVsKV09XCJzZWFyY2hJbnN0YWxsYXRpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cInNlYXJjaEluc3RhbGxhdGlvblRhYmxlKClcIiAvPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicG9zaXRpb24tcmVsYXRpdmUgdy0xNTBweCBtdC01IG1iLTUgbXMtMlwiPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cIm9wZW5Ecm9wZG93bigkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tZGVmYXVsdCB3LTEwMCBidG4tb3V0bGluZSBidG4tb3V0bGluZS1kZWZhdWx0IHJvdW5kZWQtMyB0ZXh0LW5vd3JhcCBib3JkZXItdmFsIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlblwiPlxyXG4gICAgICAgICAgICAgICAgICAgIHt7c2VsZWN0ZWRSb2xlID8gc2VsZWN0ZWRSb2xlIDogZHJvcGRvd25JdGVtc1swXX19XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4+PHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk01IDcuNUwxMCAxMi41TDE1IDcuNVwiIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIxLjY2NjY3XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJkcm9wRG93blwiIGNsYXNzPVwiY2FyZCBweS0xIHctMTAwIHBvc2l0aW9uLWFic29sdXRlIHotMSB0b3AtNTBweCBlbmQtMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDx1bCAqbmdGb3I9XCJsZXQgaXRlbSBvZiBkcm9wZG93bkl0ZW1zXCIgY2xhc3M9XCJsaXN0LXVuc3R5bGVkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBbbmdDbGFzc109XCJzZWxlY3RlZFJvbGUgPT09IGl0ZW0gPyAnYWN0aXZlJyA6ICcnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY2FtZXJhIHB4LTUgaXRlbXMgZnctc2VtaWJvbGQgY3Vyc29yLXBvaW50ZXIgcHktMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2VsZWN0SXRlbShpdGVtKVwiPnt7aXRlbX19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgPC91bD5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keVwiPlxyXG4gICAgICAgIDxkaXYgKm5nSWY9XCIhbG9hZGluZyAmJiAhbm9EYXRhIFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFibGUtcmVzcG9uc2l2ZVwiPlxyXG4gICAgICAgICAgICAgICAgPHRhYmxlIGNsYXNzPVwidGFibGUgYm90dG9tLWJvcmRlciB0ZXh0LW5vd3JhcFwiPlxyXG4gICAgICAgICAgICAgICAgICA8dGhlYWQ+XHJcbiAgICAgICAgICAgICAgICAgICAgPHRyPlxyXG4gICAgICAgICAgICAgICAgICAgIDx0aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJjaGVja2JveFwiIGlkPVwic2VsZWN0QWxsQ2hlY2tib3hcIiAoY2hhbmdlKT1cInNlbGVjdEFsbCgkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBjdXJzb3ItcG9pbnRlclwiIChjbGljayk9XCJzb3J0RGF0YSgndXNlck5hbWUnKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXMtMiBtZS0xXCI+VXNlcjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cInNvcnRDb2x1bU5hbWUgPT09ICd1c2VyTmFtZScgJiYgc29ydEJ5ICE9PSAxIHx8IHNvcnRDb2x1bU5hbWUgIT09ICd1c2VyTmFtZScgXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB3aWR0aD1cIjEyXCIgaGVpZ2h0PVwiMTJcIiB2aWV3Qm94PVwiMCAwIDEyIDEyXCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNNi4wMDAxNiAxLjMzMzM3VjEwLjY2NjdNNi4wMDAxNiAxMC42NjY3TDEwLjY2NjggNi4wMDAwNE02LjAwMDE2IDEwLjY2NjdMMS4zMzM1IDYuMDAwMDRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjEuMzMzMzNcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJzb3J0Q29sdW1OYW1lID09PSAndXNlck5hbWUnICYmIHNvcnRCeSAhPT0gLTFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHdpZHRoPVwiMTJcIiBoZWlnaHQ9XCIxMlwiIHZpZXdCb3g9XCIwIDAgMTIgMTJcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk02LjAwMDE2IDEwLjY2NjdMNi4wMDAxNiAxLjMzMzM3TTYuMDAwMTYgMS4zMzMzN0wxLjMzMzUgNi4wMDAwNE02LjAwMDE2IDEuMzMzMzdMMTAuNjY2OCA2LjAwMDA0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIxLjMzMzMzXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dGg+PGRpdiBjbGFzcz1cImN1cnNvci1wb2ludGVyXCIgKGNsaWNrKT1cInNvcnREYXRhKCdlbWFpbCcpXCI+RW1haWxcclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJzb3J0Q29sdW1OYW1lID09PSAnZW1haWwnICYmIHNvcnRCeSAhPT0gMSB8fCBzb3J0Q29sdW1OYW1lICE9PSAnZW1haWwnIFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgd2lkdGg9XCIxMlwiIGhlaWdodD1cIjEyXCIgdmlld0JveD1cIjAgMCAxMiAxMlwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTYuMDAwMTYgMS4zMzMzN1YxMC42NjY3TTYuMDAwMTYgMTAuNjY2N0wxMC42NjY4IDYuMDAwMDRNNi4wMDAxNiAxMC42NjY3TDEuMzMzNSA2LjAwMDA0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIxLjMzMzMzXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwic29ydENvbHVtTmFtZSA9PT0gJ2VtYWlsJyAmJiBzb3J0QnkgIT09IC0xXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB3aWR0aD1cIjEyXCIgaGVpZ2h0PVwiMTJcIiB2aWV3Qm94PVwiMCAwIDEyIDEyXCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNNi4wMDAxNiAxMC42NjY3TDYuMDAwMTYgMS4zMzMzN002LjAwMDE2IDEuMzMzMzdMMS4zMzM1IDYuMDAwMDRNNi4wMDAxNiAxLjMzMzM3TDEwLjY2NjggNi4wMDAwNFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMS4zMzMzM1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj48L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHRoPjxkaXYgY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiIChjbGljayk9XCJzb3J0RGF0YSgnYXNzaWduZWQnKVwiPlN0b3JlIENvdW50XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwic29ydENvbHVtTmFtZSA9PT0gJ2Fzc2lnbmVkJyAmJiBzb3J0QnkgIT09IDEgfHwgc29ydENvbHVtTmFtZSAhPT0gJ2Fzc2lnbmVkJyBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHdpZHRoPVwiMTJcIiBoZWlnaHQ9XCIxMlwiIHZpZXdCb3g9XCIwIDAgMTIgMTJcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk02LjAwMDE2IDEuMzMzMzdWMTAuNjY2N002LjAwMDE2IDEwLjY2NjdMMTAuNjY2OCA2LjAwMDA0TTYuMDAwMTYgMTAuNjY2N0wxLjMzMzUgNi4wMDAwNFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMS4zMzMzM1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cInNvcnRDb2x1bU5hbWUgPT09ICdhc3NpZ25lZCcgJiYgc29ydEJ5ICE9PSAtMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgd2lkdGg9XCIxMlwiIGhlaWdodD1cIjEyXCIgdmlld0JveD1cIjAgMCAxMiAxMlwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTYuMDAwMTYgMTAuNjY2N0w2LjAwMDE2IDEuMzMzMzdNNi4wMDAxNiAxLjMzMzM3TDEuMzMzNSA2LjAwMDA0TTYuMDAwMTYgMS4zMzMzN0wxMC42NjY4IDYuMDAwMDRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjEuMzMzMzNcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+PC90aD5cclxuICAgICAgICAgICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgICAgICAgICA8L3RoZWFkPlxyXG4gICAgICAgICAgICAgICAgICA8dGJvZHk+XHJcbiAgICAgICAgICAgICAgICAgICAgPHRyICpuZ0Zvcj1cImxldCBpdGVtIG9mIGVtYWlsdXNlckxpc3Q/LnJlc3VsdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDx0ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIiBjbGFzcz1cIm1lLTVcIiBbKG5nTW9kZWwpXT1cIml0ZW0uaW5mcmFBbGVydFwiIChjaGFuZ2UpPVwic2VsZWN0SXRlbXMoJGV2ZW50LCBpdGVtKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgaXRlbT8udXNlck5hbWUgPyBpdGVtPy51c2VyTmFtZSA6ICdOQScgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+e3sgaXRlbT8uZW1haWwgPyBpdGVtPy5lbWFpbCA6J05BJyB9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgIDx0ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtdGl0bGUgdGV4dC1wcmltYXJ5IGN1cnNvci1wb2ludGVyIHRleHQtZGVjb3JhdGlvbi11bmRlcmxpbmUgbWItMVwiIChjbGljayk9XCJzdG9yZURldGFpbHMoaXRlbT8uYXNzaWduZWRWYWx1ZSxpdGVtPy51c2VyTmFtZSxpdGVtPy5lbWFpbClcIj57eyBpdGVtPy5hc3NpZ25lZCB9fTwvZGl2PjwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgICAgICAgPC90Ym9keT5cclxuICAgICAgICAgICAgICAgIDwvdGFibGU+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8bGliLXBhZ2luYXRpb24gW2l0ZW1zUGVyUGFnZV09XCJsaW1pdFwiIFtjdXJyZW50UGFnZV09XCJvZmZzZXRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbdG90YWxJdGVtc109XCJlbWFpbHVzZXJMaXN0Py5jb3VudFwiIFtwYWdpbmF0aW9uU2l6ZXNdPVwiWzEwLDIwLDMwXVwiIFtwYWdlU2l6ZV09XCJsaW1pdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChwYWdlQ2hhbmdlKT1cIm9uUGFnZUNoYW5nZSgkZXZlbnQpXCIgKHBhZ2VTaXplQ2hhbmdlKT1cIm9uUGFnZVNpemVDaGFuZ2UoJGV2ZW50KVwiPjwvbGliLXBhZ2luYXRpb24+XHJcbiAgICAgICAgICAgIDxkaXY+XHJcblxyXG4gICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm10LTEwIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtZW5kXCI+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lIGJ0bi1kZWZhdWx0IG1lLTNcIiAoY2xpY2spPVwiY2FuY2VsU2VsZWN0ZWRJdGVtcygpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgQ2FuY2VsXHJcbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgYnRuLWRlZmF1bHRcIiAoY2xpY2spPVwidXBkYXRlU2VsZWN0ZWRJdGVtcygpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgU2F2ZSBDaGFnZXNcclxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgPC9kaXY+ICAgXHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibG9hZGluZ1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBsb2FkZXIgIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzaGltbWVyXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIHRpdGxlXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIGxpbmtcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgZGVzY3JpcHRpb25cIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzaGltbWVyXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIHRpdGxlXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIGxpbmtcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgZGVzY3JpcHRpb25cIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj4gICAgICAgICAgICAgICBcclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIm5vRGF0YVwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctMTIgbWItM1wiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5IGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlciBmbGV4LWNvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGltZyBjbGFzcz1cImltZy1zcmMgdy0yNVwiIHNyYz1cIi4vYXNzZXRzL3RhbmdvL0ljb25zL05vZGF0YS5zdmdcIiBhbHQ9XCJcIj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+XHJcblxyXG48bmctdGVtcGxhdGUgI2NvbmZpcm1hdGlvbk1vZGFsIGxldC1tb2RhbD5cclxuICAgIDxkaXYgY2xhc3M9XCJwLTggY2FyZC10aXRsZVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0aXRsZVwiPlxyXG4gICAgICAgICAgICBTdG9yZXMgTGlzdCBvZiB0aGUgdXNlclxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIG10LTEwIG1iLTEwXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3VuZGVkLTUgcHJvZmlsZSBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXIgZnctc2VtaWJvbGRcIj57e0VtYWlsLnNsaWNlKDAsMikgfCB1cHBlcmNhc2V9fTwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXMtM1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRpdGxlMSBtYi0xIGZ3LWJvbGRcIj57e3VzZXJOYW1lfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LXN1YlwiPnt7RW1haWx9fTwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibXQtNSBib3JkZXIgYm9yZGVyLWdyYXkgYm9yZGVyLTEgcm91bmRlZC0zIHAtNVwiPlxyXG4gICAgICAgICAgICA8c3BhbiAqbmdGb3I9XCJsZXQgbGlzdCBvZiBzdG9yZUxpc3RcIiBjbGFzcz1cImJhZGdlIGJhZGdlLWxpZ2h0LWRlZmF1bHQgbWUtM1wiPnt7bGlzdD8uc3RvcmVOYW1lfX08L3NwYW4+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBtdC0xMFwiPlxyXG4gICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLWRlZmF1bHQgYnRuLW91dGxpbmUgdy0xMDBcIiAoY2xpY2spPVwibW9kYWwuZGlzbWlzcygpXCI+Q2xvc2U8L2J1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvbmctdGVtcGxhdGU+Il19
215
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1haWwtY29uZmlndXJhdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1tYW5hZ2Utc2V0dGluZ3Mvc3JjL2xpYi9jb21wb25lbnRzL2NvbmZpZ3VyYXRpb25zL2VtYWlsLWNvbmZpZ3VyYXRpb24vZW1haWwtY29uZmlndXJhdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1tYW5hZ2Utc2V0dGluZ3Mvc3JjL2xpYi9jb21wb25lbnRzL2NvbmZpZ3VyYXRpb25zL2VtYWlsLWNvbmZpZ3VyYXRpb24vZW1haWwtY29uZmlndXJhdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFTLFlBQVksRUFBQyxTQUFTLEVBQThCLE1BQU0sZUFBZSxDQUFDO0FBR3JHLE9BQU8sRUFBRSxPQUFPLEVBQU8sU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7O0FBUS9DLE1BQU0sT0FBTywyQkFBMkI7SUFvQ2xCO0lBQStCO0lBQzVDO0lBQTZCO0lBbkNKLGlCQUFpQixDQUFNO0lBQ3ZELFFBQVEsQ0FBMEI7SUFDbEMsV0FBVyxHQUFLLGNBQWMsQ0FBQTtJQUM5QixTQUFTLENBQUs7SUFDZCxPQUFPLENBQUs7SUFDWixRQUFRLEdBQVksS0FBSyxDQUFDO0lBQzFCLGFBQWEsR0FBUyxDQUFDLE9BQU8sRUFBQyxNQUFNLEVBQUMsYUFBYSxDQUFDLENBQUE7SUFDcEQsWUFBWSxHQUFPLGFBQWEsQ0FBRTtJQUNsQyxNQUFNLEdBQU8sQ0FBQyxDQUFDO0lBQ2YsS0FBSyxHQUFPLEVBQUUsQ0FBQztJQUNmLE1BQU0sR0FBTyxDQUFDLENBQUMsQ0FBQztJQUNoQixhQUFhLENBQUs7SUFDbEIsVUFBVSxDQUFLO0lBQ2Ysa0JBQWtCLENBQU07SUFDeEIsTUFBTSxDQUFN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bUJBQW1CO2dCQTBCOUIsT0FBTztzQkFETixZQUFZO3VCQUFDLGdCQUFnQixFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsSG9zdExpc3RlbmVyLFZpZXdDaGlsZCxDaGFuZ2VEZXRlY3RvclJlZixPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTmdiTW9kYWwsTmdiTW9kYWxSZWYgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XHJcbmltcG9ydCB7IENsaWVudEFwaVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9jbGllbnQtYXBpLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTdWJqZWN0LCBtYXAsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBUb2FzdFNlcnZpY2UgfSBmcm9tICd0YW5nby1hcHAtdWktc2hhcmVkJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLWVtYWlsLWNvbmZpZ3VyYXRpb24nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9lbWFpbC1jb25maWd1cmF0aW9uLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vZW1haWwtY29uZmlndXJhdGlvbi5jb21wb25lbnQuc2NzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIEVtYWlsQ29uZmlndXJhdGlvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCxPbkRlc3Ryb3kge1xyXG5cclxuICBAVmlld0NoaWxkKCdjb25maXJtYXRpb25Nb2RhbCcpIGNvbmZpcm1hdGlvbk1vZGFsOiBhbnk7XHJcbiAgbW9kYWxSZWY6IE5nYk1vZGFsUmVmIHwgdW5kZWZpbmVkO1xyXG4gIFNlbGVjdGVkVGFiOmFueT0nSW5mcmEgUmVwb3J0J1xyXG4gIHN0YXJ0VGltZTphbnk7XHJcbiAgZW5kVGltZTphbnk7XHJcbiAgZHJvcERvd246IGJvb2xlYW4gPSBmYWxzZTtcclxuICBkcm9wZG93bkl0ZW1zOmFueVtdID0gWydBZG1pbicsJ1VzZXInLCdTdXBlciBBZG1pbiddXHJcbiAgc2VsZWN0ZWRSb2xlOmFueSA9ICdTdXBlciBBZG1pbicgO1xyXG4gIG9mZnNldDphbnkgPSAxO1xyXG4gIGxpbWl0OmFueSA9IDEwO1xyXG4gIHNvcnRCeTphbnkgPSAtMTtcclxuICBzb3J0Q29sdW1OYW1lOmFueTtcclxuICB0b3RhbENvdW50OmFueTtcclxuICBzZWFyY2hJbnN0YWxsYXRpb246IGFueTtcclxuICBub0RhdGE6IGFueTtcclxuICBsb2FkaW5nOiBhbnk7XHJcbiAgc2VsZWN0ZWRJdGVtczogYW55O1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveSQgPSBuZXcgU3ViamVjdCgpO1xyXG4gIGVtYWlsdXNlckxpc3Q6IGFueTtcclxuICBkdW1teUVtYWlsTGlzdDphbnk7XHJcbiAgY2xpZW50SWQ6IGFueTtcclxuICBzdG9yZUxpc3Q6IGFueTtcclxuICBFbWFpbDogYW55O1xyXG4gIHVzZXJOYW1lOiBhbnk7XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmNsaWNrJywgWyckZXZlbnQnXSlcclxuICBvbkNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KSB7XHJcbiAgICBjb25zdFxyXG4gICAgICB0YXJnZXQgPSBldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQ7XHJcbiAgICBpZiAoIXRhcmdldC5jbG9zZXN0KCcuZHJvcGRvd24nKSkge1xyXG4gICAgICB0aGlzLmRyb3BEb3duID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIG1vZGFsU2VydmljZTogTmdiTW9kYWwscHJpdmF0ZSB0b2FzdDpUb2FzdFNlcnZpY2UsXHJcbiBwcml2YXRlIGNkOkNoYW5nZURldGVjdG9yUmVmLHByaXZhdGUgc2VydmljZTogQ2xpZW50QXBpU2VydmljZSl7XHJcbiAgdGhpcy5zZXJ2aWNlLmNsaWVudERhdGEucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSgoZSkgPT4ge1xyXG4gICAgaWYgKGUpIHtcclxuICAgICAgdGhpcy5jbGllbnRJZCA9IGUuY2xpZW50SWRcclxuICAgIH1cclxuICB9KVxyXG4gICAgfVxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgICAgICAgdGhpcy5TZWxlY3RlZHRhYnModGhpcy5TZWxlY3RlZFRhYik7IFxyXG4gICAgICAgICAgdGhpcy5nZXRCcmFuZERldGFpbHMoKTtcclxuICAgICAgICAgIHRoaXMudXNlckxpc3QoKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KHRydWUpO1xyXG4gICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xyXG4gIH1cclxuXHJcbiAgc2VsZWN0QWxsKGV2ZW50OiBhbnkpIHtcclxuICAgIGNvbnN0IGNoZWNrZWQgPSBldmVudC50YXJnZXQuY2hlY2tlZDtcclxuICAgIHRoaXMuZW1haWx1c2VyTGlzdD8ucmVzdWx0LmZvckVhY2goKGl0ZW06YW55KSA9PiB7XHJcbiAgICAgICAgaWYoY2hlY2tlZCl7XHJcbiAgICAgICAgICBpdGVtLmluZnJhQWxlcnQgPSBjaGVja2VkO1xyXG4gICAgICAgIC8vICB0aGlzLnVwZGF0ZVNlbGVjdGVkSXRlbXMoKTtcclxuICAgICAgICB9ZWxzZSB7aXRlbS5pbmZyYUFsZXJ0ID0gZmFsc2V9XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgc2VsZWN0SXRlbXMoZXZlbnQ6IGFueSwgaXRlbTogYW55KSB7XHJcbiAgICBpdGVtLmluZnJhQWxlcnQgPSBldmVudC50YXJnZXQuY2hlY2tlZDtcclxuICAgIHRoaXMuY2hlY2tTZWxlY3RBbGwoKTtcclxuICAgIC8vIHRoaXMudXBkYXRlU2VsZWN0ZWRJdGVtcygpO1xyXG4gIH1cclxuXHJcbiAgY2hlY2tTZWxlY3RBbGwoKSB7XHJcbiAgICBjb25zdCBhbGxTZWxlY3RlZCA9IHRoaXMuZW1haWx1c2VyTGlzdD8ucmVzdWx0LmV2ZXJ5KChpdGVtOmFueSkgPT4gaXRlbS5pbmZyYUFsZXJ0KTtcclxuICAgIGNvbnN0IHNlbGVjdEFsbENoZWNrYm94ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3NlbGVjdEFsbENoZWNrYm94JykgYXMgSFRNTElucHV0RWxlbWVudDtcclxuICAgIGlmIChzZWxlY3RBbGxDaGVja2JveCkge1xyXG4gICAgICBzZWxlY3RBbGxDaGVja2JveC5jaGVja2VkID0gYWxsU2VsZWN0ZWQ7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICB1cGRhdGVTZWxlY3RlZEl0ZW1zKCkge1xyXG4gICAgaWYodGhpcy5lbmRUaW1lID4gdGhpcy5zdGFydFRpbWUpe1xyXG4gICAgICB0aGlzLnNlbGVjdGVkSXRlbXMgPSB0aGlzLmVtYWlsdXNlckxpc3Q/LnJlc3VsdC5tYXAoKGl0ZW06YW55LGluZGV4OmFueSk9PntcclxuICAgICAgICByZXR1cm4ge2VtYWlsOml0ZW0uZW1haWwsaW5mcmFBbGVydDppdGVtLmluZnJhQWxlcnR9O1xyXG4gICAgICB9KTtcclxuICAgICAgdGhpcy51cGRhdGVVc2VyTGlzdCgpO1xyXG4gICAgfWVsc2V7XHJcbiAgICAgIHRoaXMudG9hc3QuZ2V0RXJyb3JUb2FzdCgnSW52YWxpZCBUaW1lIFRha2VuJylcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNhbmNlbFNlbGVjdGVkSXRlbXMoKXtcclxuICAgIHRoaXMuZW1haWx1c2VyTGlzdCA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhpcy5kdW1teUVtYWlsTGlzdCkpO1xyXG4gICAgdGhpcy5jaGVja1NlbGVjdEFsbCgpO1xyXG4gIH1cclxuXHJcbiAgU2VsZWN0ZWR0YWJzKHZhbHVlOmFueSl7XHJcbiAgICB0aGlzLlNlbGVjdGVkVGFiID0gdmFsdWU7XHJcbiAgfVxyXG5cclxuICBzZWxlY3RJdGVtKHZhbHVlOiBhbnkpIHtcclxuICAgIHRoaXMuc2VsZWN0ZWRSb2xlID0gdmFsdWU7XHJcbiAgICB0aGlzLmRyb3BEb3duID0gZmFsc2U7XHJcbiAgICB0aGlzLnVzZXJMaXN0KCk7XHJcbiAgICAvLyB0aGlzLnRhYmxlRGF0YS5maWx0ZXIgPSB0aGlzLnNlbGVjdGVkSXRlbSA9PT0gXCJBbGxcIiA/IFtdIDogdmFsdWVcclxuICB9XHJcblxyXG4gIG9wZW5Ecm9wZG93bihldmVudDogTW91c2VFdmVudCkge1xyXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICB0aGlzLmRyb3BEb3duID0gIXRoaXMuZHJvcERvd247XHJcbiAgfVxyXG4gIHNlYXJjaEluc3RhbGxhdGlvblRhYmxlKCkge1xyXG4gICAgICAgdGhpcy51c2VyTGlzdCgpXHJcbiAgfVxyXG5cclxuICBvblBhZ2VDaGFuZ2UocGFnZU9mZnNldDogYW55KSB7XHJcbiAgICB0aGlzLm9mZnNldCA9IHBhZ2VPZmZzZXQ7XHJcbiAgICB0aGlzLnVzZXJMaXN0KCk7XHJcbiAgXHJcbiAgfVxyXG4gIFxyXG4gIG9uUGFnZVNpemVDaGFuZ2UocGFnZVNpemU6IGFueSkge1xyXG4gICAgdGhpcy5saW1pdCA9IHBhZ2VTaXplO1xyXG4gICB0aGlzLnVzZXJMaXN0KCk7XHJcbiAgXHJcbiAgfVxyXG4gIHNvcnREYXRhKHZhbHVlOmFueSl7XHJcbiAgICB0aGlzLnNvcnRDb2x1bU5hbWUgPSB2YWx1ZTtcclxuICAgIHRoaXMuc29ydEJ5ICo9IC0xO1xyXG4gICAgdGhpcy51c2VyTGlzdCgpO1xyXG4gIH1cclxuXHJcbiAgc3RvcmVEZXRhaWxzKG9iajphbnksZW1haWw6YW55LHVzZXJOYW1lOmFueSl7XHJcbiAgICB0aGlzLnN0b3JlTGlzdCA9IG9iajtcclxuICAgIHRoaXMuRW1haWwgPSBlbWFpbDtcclxuICAgIHRoaXMudXNlck5hbWUgPSB1c2VyTmFtZTtcclxuICAgIGNvbnN0IG1vZGFsUmVmID0gdGhpcy5tb2RhbFNlcnZpY2Uub3Blbih0aGlzLmNvbmZpcm1hdGlvbk1vZGFsLCB7IGNlbnRlcmVkOiB0cnVlIH0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0QnJhbmREZXRhaWxzKCl7XHJcbiAgICAgdGhpcy5zZXJ2aWNlLmdldEJyYW5kRGV0YWlscyh0aGlzLmNsaWVudElkKS5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OihyZXM6YW55KT0+e1xyXG4gICAgICAgIGlmKHJlcyYmcmVzLmNvZGU9PScyMDAnKXtcclxuICAgICAgICAgIGNvbnN0IHJlc3BvbnNlRGF0YSA9IHJlcz8uZGF0YT8udGlja2V0Q29uZmlncztcclxuICAgICAgICAgIHRoaXMuc3RhcnRUaW1lID0gcmVzcG9uc2VEYXRhPy5pbmZyYVJlcG9ydD8uc3RhcnQ7XHJcbiAgICAgICAgICB0aGlzLmVuZFRpbWUgPSByZXNwb25zZURhdGE/LmluZnJhUmVwb3J0Py5lbmQ7XHJcbiAgICAgICAgfWVsc2V7XHJcblxyXG4gICAgICAgIH1cclxuICAgICAgIH0sXHJcbiAgICAgICAgZXJyb3I6KGVycik9PntcclxuICAgICAgICAgICAgXHJcbiAgICAgICAgfSxcclxuICAgICB9KVxyXG4gIH1cclxuXHJcbiAgdXNlckxpc3QoKXtcclxuICAgICBsZXQgZGF0YSA9e1xyXG4gICAgICBcImNsaWVudElkXCI6dGhpcy5jbGllbnRJZCxcclxuICAgICAgXCJyb2xlXCI6dGhpcy5zZWxlY3RlZFJvbGUucmVwbGFjZSgnICcsJycpLnRvTG93ZXJDYXNlKCksXHJcbiAgICAgIFwic2VhcmNoVmFsdWVcIjp0aGlzLnNlYXJjaEluc3RhbGxhdGlvbixcclxuICAgICAgXCJzb3J0Q29sdW1OYW1lXCI6dGhpcy5zb3J0Q29sdW1OYW1lLFxyXG4gICAgICBcInNvcnRCeVwiOnRoaXMuc29ydEJ5LFxyXG4gICAgICBcIm9mZnNldFwiOnRoaXMub2Zmc2V0LFxyXG4gICAgICBcImxpbWl0XCI6dGhpcy5saW1pdFxyXG4gICAgIH1cclxuICAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xyXG4gICAgIHRoaXMubm9EYXRhID0gZmFsc2U7XHJcbiAgICAgdGhpcy5zZXJ2aWNlLmVtYWlsVXNlckxpc3QoZGF0YSkucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6KHJlczphbnkpPT57XHJcbiAgICAgIGlmKHJlcyAmJiByZXMuY29kZT09JzIwMCcgJiYgcmVzPy5kYXRhPy5yZXN1bHQ/Lmxlbmd0aCl7XHJcbiAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5ub0RhdGEgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmVtYWlsdXNlckxpc3QgPSByZXMuZGF0YTtcclxuICAgICAgICB0aGlzLmR1bW15RW1haWxMaXN0ID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLmVtYWlsdXNlckxpc3QpKVxyXG4gICAgICAgIFxyXG4gICAgICB9ZWxzZXtcclxuICAgICAgICAgdGhpcy5ub0RhdGEgPSB0cnVlO1xyXG4gICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgIH0sXHJcbiAgICAgIGVycm9yOihlcnIpPT57XHJcbiAgICAgICAgdGhpcy5ub0RhdGEgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICB9LFxyXG4gICB9KVxyXG5cclxuICB9XHJcblxyXG4gIHVwZGF0ZVVzZXJMaXN0KCl7XHJcbiAgICBsZXQgZGF0YSA9IHtcclxuICAgICAgY2xpZW50SWQ6dGhpcy5jbGllbnRJZCxcclxuICAgICAgc3RhcnQ6IHRoaXMuc3RhcnRUaW1lLFxyXG4gICAgICBlbmQ6IHRoaXMuZW5kVGltZSxcclxuICAgICAgXCJ1c2VyTGlzdFwiOiB0aGlzLnNlbGVjdGVkSXRlbXMsXHJcbiAgfVxyXG4gIHRoaXMuc2VydmljZS5zYXZlSW5mcmFFbWFpbENvbmZpZyhkYXRhKS5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKHtcclxuICAgIG5leHQ6KHJlczphbnkpPT57XHJcbiAgICBpZihyZXMgJiYgcmVzLmNvZGU9PScyMDAnKXtcclxuICAgICAgdGhpcy50b2FzdC5nZXRTdWNjZXNzVG9hc3QocmVzPy5tZXNzYWdlKTtcclxuICAgIH1cclxuICAgfSxcclxuICAgIGVycm9yOihlcnIpPT57XHJcbiAgICAgIHRoaXMudG9hc3QuZ2V0RXJyb3JUb2FzdChlcnI/LmVycm9yKVxyXG4gICAgfSxcclxuIH0pXHJcblxyXG59XHJcblxyXG59XHJcblxyXG4iLCJcclxuPGRpdiBjbGFzcz1cIm1iLTUgcHktMyBweC01XCI+XHJcbiAgICA8dWwgY2xhc3M9XCJuYXYgbmF2LXN0cmV0Y2ggbmF2LWxpbmUtdGFiczEgbmF2LWxpbmUtdGFicyBib3JkZXItdHJhbnNwYXJlbnQgZmxleC1ub3dyYXAgbWItMTBcIj5cclxuICAgICAgICA8bGkgY2xhc3M9XCJuYXYtaXRlbVwiIChjbGljayk9XCJTZWxlY3RlZHRhYnMoJ0luZnJhIFJlcG9ydCcpXCI+XHJcbiAgICAgICAgICAgIDxhIFxyXG4gICAgICAgICAgICAgICBbbmdDbGFzc109XCJTZWxlY3RlZFRhYiA9PT0gJ0luZnJhIFJlcG9ydCcgPyAnYWN0aXZlJyA6ICcnXCIgY2xhc3M9XCJuYXYtbGluayBjdXJzb3ItcG9pbnRlciBuby1ib3JkZXIgbWUtM1wiPlxyXG4gICAgICAgICAgICAgICAgSW5mcmEgUmVwb3J0XHJcbiAgICAgICAgICAgIDwvYT5cclxuICAgICAgICA8L2xpPlxyXG4gICAgICAgIDwhLS0gPGxpIGNsYXNzPVwibmF2LWl0ZW0gZGlzYWJsZWQtbGlzdCBcIiAoY2xpY2spPVwiU2VsZWN0ZWR0YWJzKCdEYXRhIFJlcG9ydCcpXCI+XHJcbiAgICAgICAgICAgIDxhIFxyXG4gICAgICAgICAgICAgICBbbmdDbGFzc109XCJTZWxlY3RlZFRhYiA9PT0gJ0RhdGEgUmVwb3J0JyA/ICdhY3RpdmUnIDogJydcIiBjbGFzcz1cIm5hdi1saW5rIGN1cnNvci1wb2ludGVyIG5vLWJvcmRlciBtZS0zXCI+XHJcbiAgICAgICAgICAgICAgICBEYXRhIFJlcG9ydFxyXG4gICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgPC9saT4gICAgXHJcbiAgICAgICAgPGxpIGNsYXNzPVwibmF2LWl0ZW0gZGlzYWJsZWQtbGlzdCBcIiAoY2xpY2spPVwiU2VsZWN0ZWR0YWJzKCdJbnNpZ2h0IFJlcG9ydCcpXCI+XHJcbiAgICAgICAgICAgIDxhIFtuZ0NsYXNzXT1cIlNlbGVjdGVkVGFiID09PSdJbnNpZ2h0IFJlcG9ydCcgPyAnYWN0aXZlJyA6JydcIiBjbGFzcz1cIm5hdi1saW5rIGN1cnNvci1wb2ludGVyIG1lLTNcIj5JbnNpZ2h0IFJlcG9ydDwvYT5cclxuICAgICAgICA8L2xpPlxyXG4gICAgICAgIDxsaSBjbGFzcz1cIm5hdi1pdGVtIGRpc2FibGVkLWxpc3QgXCIgKGNsaWNrKT1cIlNlbGVjdGVkdGFicygnQWxsJylcIj48YSBbbmdDbGFzc109XCJTZWxlY3RlZFRhYiA9PT0nQWxsJyA/ICdhY3RpdmUnIDonJ1wiXHJcbiAgICAgICAgICAgIGNsYXNzPVwibmF2LWxpbmsgY3Vyc29yLXBvaW50ZXIgbm8tYm9yZGVyIG1lLTNcIj5BbGw8L2E+XHJcbiAgICAgICAgPC9saT4gLS0+XHJcbiAgICA8L3VsPlxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJ3LTEwMCBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJ0aW1pbmd0ZXh0IGZ3LWJvbGRcIj5TZW5kIERhaWx5IFJlcG9ydCBhdDwvc3Bhbj4gPHNwYW4+IDxpbnB1dCB0eXBlPVwidGltZVwiIFsobmdNb2RlbCldPVwic3RhcnRUaW1lXCIgY2xhc3M9XCJmb3JtLWNvbnRyb2wgdy1hdXRvIG14LTVcIj48L3NwYW4+PHNwYW4gY2xhc3M9XCJ0aW1pbmd0ZXh0IGZ3LWJvbGRcIj5hbmQ8L3NwYW4+PHNwYW4+PGlucHV0IHR5cGU9XCJ0aW1lXCIgWyhuZ01vZGVsKV09XCJlbmRUaW1lXCIgY2xhc3M9XCJmb3JtLWNvbnRyb2wgdy1hdXRvIG14LTVcIj48L3NwYW4+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+XHJcbjxkaXYgY2xhc3M9XCJjYXJkXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY2FyZC1oZWFkZXIgYm9yZGVyLTBcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC10aXRsZSBkLWdyaWRcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRpdGxlIGZ3LWJvbGRcIj5Vc2VycyBMaXN0PC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdWItdGl0bGVcIj5TZWxlY3QgeW91ciByZXF1aXJlZCBlbWFpbCAmIHNjaGVkdWxlIHRoZSBtYWlsIHRpbWluZyBhY2NvcmRpbmdseTwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLXRvb2xiYXJcIj4gICBcclxuICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2wgdy1hdXRvIHBzLTMgbWUtMlwiIHBsYWNlaG9sZGVyPVwiU2VhcmNoXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0b2NvbXBsZXRlPVwib2ZmXCIgWyhuZ01vZGVsKV09XCJzZWFyY2hJbnN0YWxsYXRpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cInNlYXJjaEluc3RhbGxhdGlvblRhYmxlKClcIiAvPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicG9zaXRpb24tcmVsYXRpdmUgdy0xNTBweCBtdC01IG1iLTUgbXMtMlwiPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cIm9wZW5Ecm9wZG93bigkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tZGVmYXVsdCB3LTEwMCBidG4tb3V0bGluZSBidG4tb3V0bGluZS1kZWZhdWx0IHJvdW5kZWQtMyB0ZXh0LW5vd3JhcCBib3JkZXItdmFsIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlblwiPlxyXG4gICAgICAgICAgICAgICAgICAgIHt7c2VsZWN0ZWRSb2xlID8gc2VsZWN0ZWRSb2xlIDogZHJvcGRvd25JdGVtc1swXX19XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4+PHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk01IDcuNUwxMCAxMi41TDE1IDcuNVwiIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIxLjY2NjY3XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJkcm9wRG93blwiIGNsYXNzPVwiY2FyZCBweS0xIHctMTAwIHBvc2l0aW9uLWFic29sdXRlIHotMSB0b3AtNTBweCBlbmQtMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDx1bCAqbmdGb3I9XCJsZXQgaXRlbSBvZiBkcm9wZG93bkl0ZW1zXCIgY2xhc3M9XCJsaXN0LXVuc3R5bGVkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBbbmdDbGFzc109XCJzZWxlY3RlZFJvbGUgPT09IGl0ZW0gPyAnYWN0aXZlJyA6ICcnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY2FtZXJhIHB4LTUgaXRlbXMgZnctc2VtaWJvbGQgY3Vyc29yLXBvaW50ZXIgcHktMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2VsZWN0SXRlbShpdGVtKVwiPnt7aXRlbX19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgPC91bD5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keVwiPlxyXG4gICAgICAgIDxkaXYgKm5nSWY9XCIhbG9hZGluZyAmJiAhbm9EYXRhIFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFibGUtcmVzcG9uc2l2ZVwiPlxyXG4gICAgICAgICAgICAgICAgPHRhYmxlIGNsYXNzPVwidGFibGUgYm90dG9tLWJvcmRlciB0ZXh0LW5vd3JhcFwiPlxyXG4gICAgICAgICAgICAgICAgICA8dGhlYWQ+XHJcbiAgICAgICAgICAgICAgICAgICAgPHRyPlxyXG4gICAgICAgICAgICAgICAgICAgIDx0aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJjaGVja2JveFwiIGlkPVwic2VsZWN0QWxsQ2hlY2tib3hcIiAoY2hhbmdlKT1cInNlbGVjdEFsbCgkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBjdXJzb3ItcG9pbnRlclwiIChjbGljayk9XCJzb3J0RGF0YSgndXNlck5hbWUnKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXMtMiBtZS0xXCI+VXNlcjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cInNvcnRDb2x1bU5hbWUgPT09ICd1c2VyTmFtZScgJiYgc29ydEJ5ICE9PSAxIHx8IHNvcnRDb2x1bU5hbWUgIT09ICd1c2VyTmFtZScgXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB3aWR0aD1cIjEyXCIgaGVpZ2h0PVwiMTJcIiB2aWV3Qm94PVwiMCAwIDEyIDEyXCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNNi4wMDAxNiAxLjMzMzM3VjEwLjY2NjdNNi4wMDAxNiAxMC42NjY3TDEwLjY2NjggNi4wMDAwNE02LjAwMDE2IDEwLjY2NjdMMS4zMzM1IDYuMDAwMDRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjEuMzMzMzNcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJzb3J0Q29sdW1OYW1lID09PSAndXNlck5hbWUnICYmIHNvcnRCeSAhPT0gLTFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHdpZHRoPVwiMTJcIiBoZWlnaHQ9XCIxMlwiIHZpZXdCb3g9XCIwIDAgMTIgMTJcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk02LjAwMDE2IDEwLjY2NjdMNi4wMDAxNiAxLjMzMzM3TTYuMDAwMTYgMS4zMzMzN0wxLjMzMzUgNi4wMDAwNE02LjAwMDE2IDEuMzMzMzdMMTAuNjY2OCA2LjAwMDA0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIxLjMzMzMzXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dGg+PGRpdiBjbGFzcz1cImN1cnNvci1wb2ludGVyXCIgKGNsaWNrKT1cInNvcnREYXRhKCdlbWFpbCcpXCI+RW1haWxcclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJzb3J0Q29sdW1OYW1lID09PSAnZW1haWwnICYmIHNvcnRCeSAhPT0gMSB8fCBzb3J0Q29sdW1OYW1lICE9PSAnZW1haWwnIFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgd2lkdGg9XCIxMlwiIGhlaWdodD1cIjEyXCIgdmlld0JveD1cIjAgMCAxMiAxMlwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTYuMDAwMTYgMS4zMzMzN1YxMC42NjY3TTYuMDAwMTYgMTAuNjY2N0wxMC42NjY4IDYuMDAwMDRNNi4wMDAxNiAxMC42NjY3TDEuMzMzNSA2LjAwMDA0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIxLjMzMzMzXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwic29ydENvbHVtTmFtZSA9PT0gJ2VtYWlsJyAmJiBzb3J0QnkgIT09IC0xXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB3aWR0aD1cIjEyXCIgaGVpZ2h0PVwiMTJcIiB2aWV3Qm94PVwiMCAwIDEyIDEyXCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNNi4wMDAxNiAxMC42NjY3TDYuMDAwMTYgMS4zMzMzN002LjAwMDE2IDEuMzMzMzdMMS4zMzM1IDYuMDAwMDRNNi4wMDAxNiAxLjMzMzM3TDEwLjY2NjggNi4wMDAwNFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMS4zMzMzM1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj48L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHRoPjxkaXYgY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiIChjbGljayk9XCJzb3J0RGF0YSgnYXNzaWduZWQnKVwiPlN0b3JlIENvdW50XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwic29ydENvbHVtTmFtZSA9PT0gJ2Fzc2lnbmVkJyAmJiBzb3J0QnkgIT09IDEgfHwgc29ydENvbHVtTmFtZSAhPT0gJ2Fzc2lnbmVkJyBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHdpZHRoPVwiMTJcIiBoZWlnaHQ9XCIxMlwiIHZpZXdCb3g9XCIwIDAgMTIgMTJcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk02LjAwMDE2IDEuMzMzMzdWMTAuNjY2N002LjAwMDE2IDEwLjY2NjdMMTAuNjY2OCA2LjAwMDA0TTYuMDAwMTYgMTAuNjY2N0wxLjMzMzUgNi4wMDAwNFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMS4zMzMzM1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cInNvcnRDb2x1bU5hbWUgPT09ICdhc3NpZ25lZCcgJiYgc29ydEJ5ICE9PSAtMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgd2lkdGg9XCIxMlwiIGhlaWdodD1cIjEyXCIgdmlld0JveD1cIjAgMCAxMiAxMlwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTYuMDAwMTYgMTAuNjY2N0w2LjAwMDE2IDEuMzMzMzdNNi4wMDAxNiAxLjMzMzM3TDEuMzMzNSA2LjAwMDA0TTYuMDAwMTYgMS4zMzMzN0wxMC42NjY4IDYuMDAwMDRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjEuMzMzMzNcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+PC90aD5cclxuICAgICAgICAgICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgICAgICAgICA8L3RoZWFkPlxyXG4gICAgICAgICAgICAgICAgICA8dGJvZHk+XHJcbiAgICAgICAgICAgICAgICAgICAgPHRyICpuZ0Zvcj1cImxldCBpdGVtIG9mIGVtYWlsdXNlckxpc3Q/LnJlc3VsdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDx0ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIiBjbGFzcz1cIm1lLTVcIiBbKG5nTW9kZWwpXT1cIml0ZW0uaW5mcmFBbGVydFwiIChjaGFuZ2UpPVwic2VsZWN0SXRlbXMoJGV2ZW50LCBpdGVtKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgaXRlbT8udXNlck5hbWUgPyBpdGVtPy51c2VyTmFtZSA6ICdOQScgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+e3sgaXRlbT8uZW1haWwgPyBpdGVtPy5lbWFpbCA6J05BJyB9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgIDx0ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtdGl0bGUgdGV4dC1wcmltYXJ5IGN1cnNvci1wb2ludGVyIHRleHQtZGVjb3JhdGlvbi11bmRlcmxpbmUgbWItMVwiIChjbGljayk9XCJzdG9yZURldGFpbHMoaXRlbT8uYXNzaWduZWRWYWx1ZSxpdGVtPy51c2VyTmFtZSxpdGVtPy5lbWFpbClcIj57eyBpdGVtPy5hc3NpZ25lZCB9fTwvZGl2PjwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgICAgICAgPC90Ym9keT5cclxuICAgICAgICAgICAgICAgIDwvdGFibGU+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8bGliLXBhZ2luYXRpb24gW2l0ZW1zUGVyUGFnZV09XCJsaW1pdFwiIFtjdXJyZW50UGFnZV09XCJvZmZzZXRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbdG90YWxJdGVtc109XCJlbWFpbHVzZXJMaXN0Py5jb3VudFwiIFtwYWdpbmF0aW9uU2l6ZXNdPVwiWzEwLDIwLDMwXVwiIFtwYWdlU2l6ZV09XCJsaW1pdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChwYWdlQ2hhbmdlKT1cIm9uUGFnZUNoYW5nZSgkZXZlbnQpXCIgKHBhZ2VTaXplQ2hhbmdlKT1cIm9uUGFnZVNpemVDaGFuZ2UoJGV2ZW50KVwiPjwvbGliLXBhZ2luYXRpb24+XHJcbiAgICAgICAgICAgIDxkaXY+XHJcblxyXG4gICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm10LTEwIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtZW5kXCI+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lIGJ0bi1kZWZhdWx0IG1lLTNcIiAoY2xpY2spPVwiY2FuY2VsU2VsZWN0ZWRJdGVtcygpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgQ2FuY2VsXHJcbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgYnRuLWRlZmF1bHRcIiAoY2xpY2spPVwidXBkYXRlU2VsZWN0ZWRJdGVtcygpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgU2F2ZSBDaGFnZXNcclxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgPC9kaXY+ICAgXHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibG9hZGluZ1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBsb2FkZXIgIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzaGltbWVyXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIHRpdGxlXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIGxpbmtcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgZGVzY3JpcHRpb25cIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzaGltbWVyXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIHRpdGxlXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIGxpbmtcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgZGVzY3JpcHRpb25cIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj4gICAgICAgICAgICAgICBcclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIm5vRGF0YVwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctMTIgbWItM1wiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5IGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlciBmbGV4LWNvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGltZyBjbGFzcz1cImltZy1zcmMgdy0yNVwiIHNyYz1cIi4vYXNzZXRzL3RhbmdvL0ljb25zL05vZGF0YS5zdmdcIiBhbHQ9XCJcIj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+XHJcblxyXG48bmctdGVtcGxhdGUgI2NvbmZpcm1hdGlvbk1vZGFsIGxldC1tb2RhbD5cclxuICAgIDxkaXYgY2xhc3M9XCJwLTggY2FyZC10aXRsZVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0aXRsZVwiPlxyXG4gICAgICAgICAgICBTdG9yZXMgTGlzdCBvZiB0aGUgdXNlclxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIG10LTEwIG1iLTEwXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3VuZGVkLTUgcHJvZmlsZSBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXIgZnctc2VtaWJvbGRcIj57e0VtYWlsLnNsaWNlKDAsMikgfCB1cHBlcmNhc2V9fTwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXMtM1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRpdGxlMSBtYi0xIGZ3LWJvbGRcIj57e3VzZXJOYW1lfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LXN1YlwiPnt7RW1haWx9fTwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibXQtNSBib3JkZXIgYm9yZGVyLWdyYXkgYm9yZGVyLTEgcm91bmRlZC0zIHAtNVwiPlxyXG4gICAgICAgICAgICA8c3BhbiAqbmdGb3I9XCJsZXQgbGlzdCBvZiBzdG9yZUxpc3RcIiBjbGFzcz1cImJhZGdlIGJhZGdlLWxpZ2h0LWRlZmF1bHQgbWUtM1wiPnt7bGlzdD8uc3RvcmVOYW1lfX08L3NwYW4+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBtdC0xMFwiPlxyXG4gICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLWRlZmF1bHQgYnRuLW91dGxpbmUgdy0xMDBcIiAoY2xpY2spPVwibW9kYWwuZGlzbWlzcygpXCI+Q2xvc2U8L2J1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvbmctdGVtcGxhdGU+Il19
@@ -74,11 +74,11 @@ export class EmployeeTrainingComponent {
74
74
  });
75
75
  }
76
76
  }
77
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: EmployeeTrainingComponent, deps: [{ token: i1.ClientApiService }, { token: i2.ToastService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
78
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: EmployeeTrainingComponent, selector: "lib-employee-training", ngImport: i0, template: "<div class=\"d-flex justify-content-end\">\r\n <button *ngIf=\"!editMode\" type=\"button\" class=\"btn btn-outline align-items-end\" (click)=\"toggleEditMode()\">\r\n <span class=\"me-2\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" 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\" 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>\r\n </span>Edit Details\r\n </button>\r\n</div>\r\n\r\n<div>\r\n <div class=\"col-md-12 col-lg-12 col-xl-12 col-xxl-12 mb-5\">\r\n <div class=\"d-flex align-items-center mb-2\">\r\n <div class=\"form-check form-switch\">\r\n <input [(ngModel)]=\"isEnable\" [disabled]=\"!editMode\" class=\"form-check-input\" type=\"checkbox\" id=\"isPasserByData\">\r\n </div>\r\n <label class=\"enable-label me-5\" for=\"isPasserByData\">Enable Training </label>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<div class=\"d-flex justify-content-end mt-6\">\r\n <div data-kt-subscription-table-toolbar=\"base\"\r\n class=\"d-flex justify-content-end\">\r\n <button *ngIf=\"editMode\" type=\"submit\"\r\n class=\"btn-outline btn needhelp me-4\"\r\n (click)=\"onCancel()\">Cancel</button>\r\n <button *ngIf=\"editMode\" type=\"button\"\r\n tabindex=\"0\" class=\"btn btn-primary px-4 ng-star-inserted\"\r\n (click)=\"onSubmit()\"\r\n ><span>Save Changes\r\n </span></button></div>\r\n</div>\r\n\r\n", styles: [".headingtext{color:var(--Gray-700, #344054);font-family:Inter;font-size:14px;font-weight:500}.dropselect{color:var(--Gray-500, #667085);font-family:Inter;font-size:16px;font-style:normal;font-weight:400;line-height:24px;height:45px!important}.producttext{color:var(--Gray-700, #344054);font-size:14px;font-weight:500;line-height:20px}.items:hover,.tems.focus,.items.active,.camera.focus-visible{background:var(--Gray-50, #F9FAFB)}.labeltext{color:var(--Gray-700, #344054);font-family:Inter;font-size:14px;font-weight:500;line-height:20px}.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-radius:8px!important;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-control[disabled]{background-color:#f9fafb!important}.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}.footer-seperator{border-top:1px solid #EAECF0}:host{width:100%;height:100%}.outer-container{position:relative}.outer-container .form-control{padding-top:0;padding-bottom:0}.outer-container .input-container{border:1px solid black;height:100%;width:100%;display:flex;flex-wrap:wrap}.outer-container .input-container input{all:unset;flex:1;min-width:50px}.outer-container .input-container .chip{margin:10px 0 10px 10px;padding:3px 10px;border-radius:16px;background:var(--Gray-100, #F2F4F7);color:var(--Gray-700, #344054);font-family:Inter;font-size:14px;font-weight:500;line-height:20px}.outer-container .input-container .chip:nth-child(1){margin-left:0}.enable-label{color:var(--Gray-700, #344054);font-family:Inter;font-size:16px;font-style:normal;font-weight:500;line-height:24px}.sso-sub{color:var(--Gray-500, #667085);font-family:Inter;font-size:16px;font-weight:500;line-height:24px}.disabled{pointer-events:none;background-color:#f9fafb}.selectwidth{width:35%}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
77
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: EmployeeTrainingComponent, deps: [{ token: i1.ClientApiService }, { token: i2.ToastService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
78
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.3", type: EmployeeTrainingComponent, selector: "lib-employee-training", ngImport: i0, template: "<div class=\"d-flex justify-content-end\">\r\n <button *ngIf=\"!editMode\" type=\"button\" class=\"btn btn-outline align-items-end\" (click)=\"toggleEditMode()\">\r\n <span class=\"me-2\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" 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\" 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>\r\n </span>Edit Details\r\n </button>\r\n</div>\r\n\r\n<div>\r\n <div class=\"col-md-12 col-lg-12 col-xl-12 col-xxl-12 mb-5\">\r\n <div class=\"d-flex align-items-center mb-2\">\r\n <div class=\"form-check form-switch\">\r\n <input [(ngModel)]=\"isEnable\" [disabled]=\"!editMode\" class=\"form-check-input\" type=\"checkbox\" id=\"isPasserByData\">\r\n </div>\r\n <label class=\"enable-label me-5\" for=\"isPasserByData\">Enable Training </label>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<div class=\"d-flex justify-content-end mt-6\">\r\n <div data-kt-subscription-table-toolbar=\"base\"\r\n class=\"d-flex justify-content-end\">\r\n <button *ngIf=\"editMode\" type=\"submit\"\r\n class=\"btn-outline btn needhelp me-4\"\r\n (click)=\"onCancel()\">Cancel</button>\r\n <button *ngIf=\"editMode\" type=\"button\"\r\n tabindex=\"0\" class=\"btn btn-primary px-4 ng-star-inserted\"\r\n (click)=\"onSubmit()\"\r\n ><span>Save Changes\r\n </span></button></div>\r\n</div>\r\n\r\n", styles: [".headingtext{color:var(--Gray-700, #344054);font-family:Inter;font-size:14px;font-weight:500}.dropselect{color:var(--Gray-500, #667085);font-family:Inter;font-size:16px;font-style:normal;font-weight:400;line-height:24px;height:45px!important}.producttext{color:var(--Gray-700, #344054);font-size:14px;font-weight:500;line-height:20px}.items:hover,.tems.focus,.items.active,.camera.focus-visible{background:var(--Gray-50, #F9FAFB)}.labeltext{color:var(--Gray-700, #344054);font-family:Inter;font-size:14px;font-weight:500;line-height:20px}.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-radius:8px!important;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-control[disabled]{background-color:#f9fafb!important}.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}.footer-seperator{border-top:1px solid #EAECF0}:host{width:100%;height:100%}.outer-container{position:relative}.outer-container .form-control{padding-top:0;padding-bottom:0}.outer-container .input-container{border:1px solid black;height:100%;width:100%;display:flex;flex-wrap:wrap}.outer-container .input-container input{all:unset;flex:1;min-width:50px}.outer-container .input-container .chip{margin:10px 0 10px 10px;padding:3px 10px;border-radius:16px;background:var(--Gray-100, #F2F4F7);color:var(--Gray-700, #344054);font-family:Inter;font-size:14px;font-weight:500;line-height:20px}.outer-container .input-container .chip:nth-child(1){margin-left:0}.enable-label{color:var(--Gray-700, #344054);font-family:Inter;font-size:16px;font-style:normal;font-weight:500;line-height:24px}.sso-sub{color:var(--Gray-500, #667085);font-family:Inter;font-size:16px;font-weight:500;line-height:24px}.disabled{pointer-events:none;background-color:#f9fafb}.selectwidth{width:35%}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
79
79
  }
80
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: EmployeeTrainingComponent, decorators: [{
80
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: EmployeeTrainingComponent, decorators: [{
81
81
  type: Component,
82
82
  args: [{ selector: 'lib-employee-training', template: "<div class=\"d-flex justify-content-end\">\r\n <button *ngIf=\"!editMode\" type=\"button\" class=\"btn btn-outline align-items-end\" (click)=\"toggleEditMode()\">\r\n <span class=\"me-2\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" 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\" 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>\r\n </span>Edit Details\r\n </button>\r\n</div>\r\n\r\n<div>\r\n <div class=\"col-md-12 col-lg-12 col-xl-12 col-xxl-12 mb-5\">\r\n <div class=\"d-flex align-items-center mb-2\">\r\n <div class=\"form-check form-switch\">\r\n <input [(ngModel)]=\"isEnable\" [disabled]=\"!editMode\" class=\"form-check-input\" type=\"checkbox\" id=\"isPasserByData\">\r\n </div>\r\n <label class=\"enable-label me-5\" for=\"isPasserByData\">Enable Training </label>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<div class=\"d-flex justify-content-end mt-6\">\r\n <div data-kt-subscription-table-toolbar=\"base\"\r\n class=\"d-flex justify-content-end\">\r\n <button *ngIf=\"editMode\" type=\"submit\"\r\n class=\"btn-outline btn needhelp me-4\"\r\n (click)=\"onCancel()\">Cancel</button>\r\n <button *ngIf=\"editMode\" type=\"button\"\r\n tabindex=\"0\" class=\"btn btn-primary px-4 ng-star-inserted\"\r\n (click)=\"onSubmit()\"\r\n ><span>Save Changes\r\n </span></button></div>\r\n</div>\r\n\r\n", styles: [".headingtext{color:var(--Gray-700, #344054);font-family:Inter;font-size:14px;font-weight:500}.dropselect{color:var(--Gray-500, #667085);font-family:Inter;font-size:16px;font-style:normal;font-weight:400;line-height:24px;height:45px!important}.producttext{color:var(--Gray-700, #344054);font-size:14px;font-weight:500;line-height:20px}.items:hover,.tems.focus,.items.active,.camera.focus-visible{background:var(--Gray-50, #F9FAFB)}.labeltext{color:var(--Gray-700, #344054);font-family:Inter;font-size:14px;font-weight:500;line-height:20px}.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-radius:8px!important;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-control[disabled]{background-color:#f9fafb!important}.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}.footer-seperator{border-top:1px solid #EAECF0}:host{width:100%;height:100%}.outer-container{position:relative}.outer-container .form-control{padding-top:0;padding-bottom:0}.outer-container .input-container{border:1px solid black;height:100%;width:100%;display:flex;flex-wrap:wrap}.outer-container .input-container input{all:unset;flex:1;min-width:50px}.outer-container .input-container .chip{margin:10px 0 10px 10px;padding:3px 10px;border-radius:16px;background:var(--Gray-100, #F2F4F7);color:var(--Gray-700, #344054);font-family:Inter;font-size:14px;font-weight:500;line-height:20px}.outer-container .input-container .chip:nth-child(1){margin-left:0}.enable-label{color:var(--Gray-700, #344054);font-family:Inter;font-size:16px;font-style:normal;font-weight:500;line-height:24px}.sso-sub{color:var(--Gray-500, #667085);font-family:Inter;font-size:16px;font-weight:500;line-height:24px}.disabled{pointer-events:none;background-color:#f9fafb}.selectwidth{width:35%}\n"] }]
83
83
  }], ctorParameters: () => [{ type: i1.ClientApiService }, { type: i2.ToastService }, { type: i0.ChangeDetectorRef }] });
84
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1wbG95ZWUtdHJhaW5pbmcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGFuZ28tbWFuYWdlLXNldHRpbmdzL3NyYy9saWIvY29tcG9uZW50cy9jb25maWd1cmF0aW9ucy9lbXBsb3llZS10cmFpbmluZy9lbXBsb3llZS10cmFpbmluZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1tYW5hZ2Utc2V0dGluZ3Mvc3JjL2xpYi9jb21wb25lbnRzL2NvbmZpZ3VyYXRpb25zL2VtcGxveWVlLXRyYWluaW5nL2VtcGxveWVlLXRyYWluaW5nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBcUIsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDOzs7Ozs7QUFVckUsTUFBTSxPQUFPLHlCQUF5QjtJQU1oQjtJQUFzQztJQUE2QjtJQUx2RixRQUFRLENBQVM7SUFDakIsUUFBUSxHQUFZLEtBQUssQ0FBQztJQUMxQixRQUFRLENBQXNCO0lBQzlCLFVBQVUsQ0FBTTtJQUVoQixZQUFvQixVQUE0QixFQUFVLEtBQW1CLEVBQVUsRUFBcUI7UUFBeEYsZUFBVSxHQUFWLFVBQVUsQ0FBa0I7UUFBVSxVQUFLLEdBQUwsS0FBSyxDQUFjO1FBQVUsT0FBRSxHQUFGLEVBQUUsQ0FBbUI7UUFDMUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDekMsSUFBSSxDQUFDLEVBQUU7Z0JBQ0wsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDO2dCQUMzQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDO2FBQ25DO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNqQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1NBQ3RDO0lBQ0gsQ0FBQztJQUNELGdCQUFnQixDQUFDLFFBQWdCO1FBQy9CLElBQUksQ0FBQyxVQUFVLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxDQUFDLFNBQVMsQ0FBQztZQUNqRCxJQUFJLEVBQUUsQ0FBQyxRQUFRLEVBQUUsRUFBRTtnQkFDakIsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQztnQkFDckUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLEVBQUUsQ0FBQztnQkFDMUIsa0lBQWtJO2dCQUNsSSwrRkFBK0Y7Z0JBQy9GLDRFQUE0RTtnQkFDNUUsK0JBQStCO2dCQUMvQixXQUFXO2dCQUNYLDZCQUE2QjtnQkFDN0Isc0VBQXNFO2dCQUN0RSxJQUFJO1lBRUosQ0FBQztZQUNELEtBQUssRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFO2dCQUNmLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxFQUFFLENBQUM7Z0JBQ3hCLE9BQU8sQ0FBQyxLQUFLLENBQUMsZ0NBQWdDLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDekQsQ0FBQztTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxjQUFjO1FBQ1osSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDakMsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztRQUN0QixJQUFJLENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUE7SUFFaEYsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLElBQUksQ0FBQyxRQUFRLEtBQUssU0FBUyxFQUFFO1lBQy9CLE1BQU0sUUFBUSxHQUFHO2dCQUNmLE9BQU8sRUFBRSxJQUFJLENBQUMsUUFBUTthQUN2QixDQUFDO1lBQ0YsSUFBSSxDQUFDLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUFDLFNBQVMsQ0FBQztnQkFDbkUsSUFBSSxFQUFFLENBQUMsUUFBUSxFQUFFLEVBQUU7b0JBQ2pCLE9BQU8sQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLFFBQVEsQ0FBQyxDQUFDO29CQUNuQyxJQUFJLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7b0JBQzdDLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO29CQUN0QixJQUFJLENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUMsSUFBSSxFQUFDLEVBQUUsRUFBRSxDQUFDLENBQUE7Z0JBQzlFLENBQUM7Z0JBQ0QsS0FBSyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUU7b0JBQ2YsT0FBTyxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLENBQUM7b0JBQy9CLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7Z0JBQy9DLENBQUM7YUFDRixDQUFDLENBQUM7U0FDSjtJQUNILENBQUM7d0dBdEVVLHlCQUF5Qjs0RkFBekIseUJBQXlCLDZEQ1Z0QywyNEVBMkNBOzs0RkRqQ2EseUJBQXlCO2tCQUxyQyxTQUFTOytCQUNFLHVCQUF1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDbGllbnRBcGlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvY2xpZW50LWFwaS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVG9hc3RTZXJ2aWNlIH0gZnJvbSAndGFuZ28tYXBwLXVpLXNoYXJlZCc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLWVtcGxveWVlLXRyYWluaW5nJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZW1wbG95ZWUtdHJhaW5pbmcuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2VtcGxveWVlLXRyYWluaW5nLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIEVtcGxveWVlVHJhaW5pbmdDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIGNsaWVudElkOiBzdHJpbmc7XHJcbiAgZWRpdE1vZGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBpc0VuYWJsZTogYm9vbGVhbiB8IHVuZGVmaW5lZDtcclxuICBjbGllbnRJbmZvOiBhbnk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgYXBpU2VydmljZTogQ2xpZW50QXBpU2VydmljZSwgcHJpdmF0ZSB0b2FzdDogVG9hc3RTZXJ2aWNlLCBwcml2YXRlIGNkOiBDaGFuZ2VEZXRlY3RvclJlZiwpIHtcclxuICAgIHRoaXMuYXBpU2VydmljZS5jbGllbnREYXRhLnN1YnNjcmliZSgoZSkgPT4ge1xyXG4gICAgICBpZiAoZSkge1xyXG4gICAgICAgIHRoaXMuY2xpZW50SWQgPSBlLmNsaWVudElkO1xyXG4gICAgICAgIHRoaXMuZ2V0SW5pdGlhbFZhbHVlcyhlLmNsaWVudElkKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmNsaWVudElkKSB7XHJcbiAgICAgIHRoaXMuZ2V0SW5pdGlhbFZhbHVlcyh0aGlzLmNsaWVudElkKTtcclxuICAgIH1cclxuICB9XHJcbiAgZ2V0SW5pdGlhbFZhbHVlcyhjbGllbnRJZDogc3RyaW5nKSB7XHJcbiAgICB0aGlzLmFwaVNlcnZpY2UuZ2V0QnJhbmRDb25maWcoY2xpZW50SWQpLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgIHRoaXMuaXNFbmFibGUgPSByZXNwb25zZS5kYXRhLnJlc3VsdC50aWNrZXRDb25maWdzLm1hdENvbmZpZy5lbmFibGVkO1xyXG4gICAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAvLyAgIGlmIChyZXNwb25zZSAmJiByZXNwb25zZS5kYXRhLnJlc3VsdCAmJiByZXNwb25zZS5kYXRhLnJlc3VsdC50aWNrZXRDb25maWdzICYmIHJlc3BvbnNlLmRhdGEucmVzdWx0LnRpY2tldENvbmZpZ3MubWF0Q29uZmlnKSB7XHJcbiAgICAgIC8vICAgICB0aGlzLnNlbGVjdGVkVHJhaW5pbmdTdGFydCA9IHJlc3BvbnNlLmRhdGEucmVzdWx0LnRpY2tldENvbmZpZ3MubWF0Q29uZmlnLmNvbmZpZ3VyZURheXM7XHJcbiAgICAgIC8vICAgICB0aGlzLmlzRW5hYmxlID0gcmVzcG9uc2UuZGF0YS5yZXN1bHQudGlja2V0Q29uZmlncy5tYXRDb25maWcuZW5hYmxlZDtcclxuICAgICAgLy8gICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAvLyB9IGVsc2Uge1xyXG4gICAgICAvLyAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAvLyAgICAgY29uc29sZS5sb2coXCJDb25kaXRpb24gaXMgZmFsc2UuIFVuYWJsZSB0byBwcm9jZWVkIHRvIHN0ZXAyLlwiKTtcclxuICAgICAgLy8gfVxyXG4gICAgICBcclxuICAgICAgfSxcclxuICAgICAgZXJyb3I6IChlcnJvcikgPT4ge1xyXG4gICAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGZldGNoaW5nIGluaXRpYWwgdmFsdWVzOicsIGVycm9yKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICB0b2dnbGVFZGl0TW9kZSgpIHtcclxuICAgIHRoaXMuZWRpdE1vZGUgPSAhdGhpcy5lZGl0TW9kZTtcclxuICB9XHJcblxyXG4gIG9uQ2FuY2VsKCkge1xyXG4gICAgdGhpcy5lZGl0TW9kZSA9IGZhbHNlO1xyXG4gICAgdGhpcy5hcGlTZXJ2aWNlLmNsaWVudEZvcm1EYXRhLm5leHQoeyB2YWx1ZTogbnVsbCwgdHlwZTogJ2NhbmNlbCcsIGZvcm06ICcnIH0pXHJcbiAgICBcclxuICB9XHJcblxyXG4gIG9uU3VibWl0KCkge1xyXG4gICAgaWYgKHRoaXMuaXNFbmFibGUgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICBjb25zdCBmb3JtRGF0YSA9IHtcclxuICAgICAgICBlbmFibGVkOiB0aGlzLmlzRW5hYmxlLFxyXG4gICAgICB9O1xyXG4gICAgICB0aGlzLmFwaVNlcnZpY2UudXBkYXRlQnJhbmRDb25maWcodGhpcy5jbGllbnRJZCwgZm9ybURhdGEpLnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICBjb25zb2xlLmxvZygnUmVzcG9uc2U6JywgcmVzcG9uc2UpO1xyXG4gICAgICAgICAgdGhpcy50b2FzdC5nZXRTdWNjZXNzVG9hc3QocmVzcG9uc2UubWVzc2FnZSk7XHJcbiAgICAgICAgICB0aGlzLmVkaXRNb2RlID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLmFwaVNlcnZpY2UuY2xpZW50Rm9ybURhdGEubmV4dCh7IHZhbHVlOiBudWxsLCB0eXBlOiAnY2FuY2VsJyxmb3JtOicnIH0pXHJcbiAgICAgICAgfSxcclxuICAgICAgICBlcnJvcjogKGVycm9yKSA9PiB7XHJcbiAgICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvcjonLCBlcnJvcik7XHJcbiAgICAgICAgICB0aGlzLnRvYXN0LmdldEVycm9yVG9hc3QoZXJyb3IuZXJyb3I/LmVycm9yKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1lbmRcIj5cclxuICAgIDxidXR0b24gKm5nSWY9XCIhZWRpdE1vZGVcIiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLW91dGxpbmUgYWxpZ24taXRlbXMtZW5kXCIgKGNsaWNrKT1cInRvZ2dsZUVkaXRNb2RlKClcIj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cIm1lLTJcIj5cclxuICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICA8ZyBjbGlwLXBhdGg9XCJ1cmwoI2NsaXAwXzI1NzlfMjUxMjUpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xNC4xNjcgMi40OTk5M0MxNC4zODU5IDIuMjgxMDYgMTQuNjQ1NyAyLjEwNzQ0IDE0LjkzMTcgMS45ODg5OUMxNS4yMTc2IDEuODcwNTQgMTUuNTI0MSAxLjgwOTU3IDE1LjgzMzcgMS44MDk1N0MxNi4xNDMyIDEuODA5NTcgMTYuNDQ5NyAxLjg3MDU0IDE2LjczNTcgMS45ODg5OUMxNy4wMjE2IDIuMTA3NDQgMTcuMjgxNSAyLjI4MTA2IDE3LjUwMDMgMi40OTk5M0MxNy43MTkyIDIuNzE4OCAxNy44OTI4IDIuOTc4NjMgMTguMDExMyAzLjI2NDZDMTguMTI5NyAzLjU1MDU3IDE4LjE5MDcgMy44NTcwNiAxOC4xOTA3IDQuMTY2NTlDMTguMTkwNyA0LjQ3NjEyIDE4LjEyOTcgNC43ODI2MiAxOC4wMTEzIDUuMDY4NTlDMTcuODkyOCA1LjM1NDU1IDE3LjcxOTIgNS42MTQzOSAxNy41MDAzIDUuODMzMjZMNi4yNTAzMyAxNy4wODMzTDEuNjY2OTkgMTguMzMzM0wyLjkxNjk5IDEzLjc0OTlMMTQuMTY3IDIuNDk5OTNaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzM0NDA1NFwiIHN0cm9rZS13aWR0aD1cIjEuNjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgPGNsaXBQYXRoIGlkPVwiY2xpcDBfMjU3OV8yNTEyNVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiBmaWxsPVwid2hpdGVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvY2xpcFBhdGg+XHJcbiAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgIDwvc3Bhbj5FZGl0IERldGFpbHNcclxuICAgIDwvYnV0dG9uPlxyXG48L2Rpdj5cclxuXHJcbjxkaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyIGNvbC1sZy0xMiBjb2wteGwtMTIgY29sLXh4bC0xMiBtYi01XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgbWItMlwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVjayBmb3JtLXN3aXRjaFwiPlxyXG4gICAgICAgICAgICAgICAgPGlucHV0IFsobmdNb2RlbCldPVwiaXNFbmFibGVcIiBbZGlzYWJsZWRdPVwiIWVkaXRNb2RlXCIgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0XCIgdHlwZT1cImNoZWNrYm94XCIgaWQ9XCJpc1Bhc3NlckJ5RGF0YVwiPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZW5hYmxlLWxhYmVsIG1lLTVcIiBmb3I9XCJpc1Bhc3NlckJ5RGF0YVwiPkVuYWJsZSBUcmFpbmluZyA8L2xhYmVsPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PlxyXG5cclxuPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtZW5kIG10LTZcIj5cclxuICAgIDxkaXYgZGF0YS1rdC1zdWJzY3JpcHRpb24tdGFibGUtdG9vbGJhcj1cImJhc2VcIlxyXG4gICAgICAgIGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1lbmRcIj5cclxuICAgICAgICA8YnV0dG9uICpuZ0lmPVwiZWRpdE1vZGVcIiB0eXBlPVwic3VibWl0XCJcclxuICAgICAgICAgICAgY2xhc3M9XCJidG4tb3V0bGluZSBidG4gbmVlZGhlbHAgbWUtNFwiXHJcbiAgICAgICAgICAgIChjbGljayk9XCJvbkNhbmNlbCgpXCI+Q2FuY2VsPC9idXR0b24+XHJcbiAgICAgICAgICAgIDxidXR0b24gKm5nSWY9XCJlZGl0TW9kZVwiIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICB0YWJpbmRleD1cIjBcIiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBweC00IG5nLXN0YXItaW5zZXJ0ZWRcIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwib25TdWJtaXQoKVwiXHJcbiAgICAgICAgICAgID48c3Bhbj5TYXZlIENoYW5nZXNcclxuICAgICAgICAgICAgPC9zcGFuPjwvYnV0dG9uPjwvZGl2PlxyXG48L2Rpdj5cclxuXHJcbiJdfQ==
84
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1wbG95ZWUtdHJhaW5pbmcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGFuZ28tbWFuYWdlLXNldHRpbmdzL3NyYy9saWIvY29tcG9uZW50cy9jb25maWd1cmF0aW9ucy9lbXBsb3llZS10cmFpbmluZy9lbXBsb3llZS10cmFpbmluZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1tYW5hZ2Utc2V0dGluZ3Mvc3JjL2xpYi9jb21wb25lbnRzL2NvbmZpZ3VyYXRpb25zL2VtcGxveWVlLXRyYWluaW5nL2VtcGxveWVlLXRyYWluaW5nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBcUIsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDOzs7Ozs7QUFVckUsTUFBTSxPQUFPLHlCQUF5QjtJQU1oQjtJQUFzQztJQUE2QjtJQUx2RixRQUFRLENBQVM7SUFDakIsUUFBUSxHQUFZLEtBQUssQ0FBQztJQUMxQixRQUFRLENBQXNCO0lBQzlCLFVBQVUsQ0FBTTtJQUVoQixZQUFvQixVQUE0QixFQUFVLEtBQW1CLEVBQVUsRUFBcUI7UUFBeEYsZUFBVSxHQUFWLFVBQVUsQ0FBa0I7UUFBVSxVQUFLLEdBQUwsS0FBSyxDQUFjO1FBQVUsT0FBRSxHQUFGLEVBQUUsQ0FBbUI7UUFDMUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDekMsSUFBSSxDQUFDLEVBQUU7Z0JBQ0wsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDO2dCQUMzQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDO2FBQ25DO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNqQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1NBQ3RDO0lBQ0gsQ0FBQztJQUNELGdCQUFnQixDQUFDLFFBQWdCO1FBQy9CLElBQUksQ0FBQyxVQUFVLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxDQUFDLFNBQVMsQ0FBQztZQUNqRCxJQUFJLEVBQUUsQ0FBQyxRQUFRLEVBQUUsRUFBRTtnQkFDakIsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQztnQkFDckUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLEVBQUUsQ0FBQztnQkFDMUIsa0lBQWtJO2dCQUNsSSwrRkFBK0Y7Z0JBQy9GLDRFQUE0RTtnQkFDNUUsK0JBQStCO2dCQUMvQixXQUFXO2dCQUNYLDZCQUE2QjtnQkFDN0Isc0VBQXNFO2dCQUN0RSxJQUFJO1lBRUosQ0FBQztZQUNELEtBQUssRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFO2dCQUNmLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxFQUFFLENBQUM7Z0JBQ3hCLE9BQU8sQ0FBQyxLQUFLLENBQUMsZ0NBQWdDLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDekQsQ0FBQztTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxjQUFjO1FBQ1osSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDakMsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztRQUN0QixJQUFJLENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUE7SUFFaEYsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLElBQUksQ0FBQyxRQUFRLEtBQUssU0FBUyxFQUFFO1lBQy9CLE1BQU0sUUFBUSxHQUFHO2dCQUNmLE9BQU8sRUFBRSxJQUFJLENBQUMsUUFBUTthQUN2QixDQUFDO1lBQ0YsSUFBSSxDQUFDLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUFDLFNBQVMsQ0FBQztnQkFDbkUsSUFBSSxFQUFFLENBQUMsUUFBUSxFQUFFLEVBQUU7b0JBQ2pCLE9BQU8sQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLFFBQVEsQ0FBQyxDQUFDO29CQUNuQyxJQUFJLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7b0JBQzdDLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO29CQUN0QixJQUFJLENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUMsSUFBSSxFQUFDLEVBQUUsRUFBRSxDQUFDLENBQUE7Z0JBQzlFLENBQUM7Z0JBQ0QsS0FBSyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUU7b0JBQ2YsT0FBTyxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLENBQUM7b0JBQy9CLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7Z0JBQy9DLENBQUM7YUFDRixDQUFDLENBQUM7U0FDSjtJQUNILENBQUM7dUdBdEVVLHlCQUF5QjsyRkFBekIseUJBQXlCLDZEQ1Z0QywyNEVBMkNBOzsyRkRqQ2EseUJBQXlCO2tCQUxyQyxTQUFTOytCQUNFLHVCQUF1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDbGllbnRBcGlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvY2xpZW50LWFwaS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVG9hc3RTZXJ2aWNlIH0gZnJvbSAndGFuZ28tYXBwLXVpLXNoYXJlZCc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLWVtcGxveWVlLXRyYWluaW5nJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZW1wbG95ZWUtdHJhaW5pbmcuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2VtcGxveWVlLXRyYWluaW5nLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIEVtcGxveWVlVHJhaW5pbmdDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIGNsaWVudElkOiBzdHJpbmc7XHJcbiAgZWRpdE1vZGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBpc0VuYWJsZTogYm9vbGVhbiB8IHVuZGVmaW5lZDtcclxuICBjbGllbnRJbmZvOiBhbnk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgYXBpU2VydmljZTogQ2xpZW50QXBpU2VydmljZSwgcHJpdmF0ZSB0b2FzdDogVG9hc3RTZXJ2aWNlLCBwcml2YXRlIGNkOiBDaGFuZ2VEZXRlY3RvclJlZiwpIHtcclxuICAgIHRoaXMuYXBpU2VydmljZS5jbGllbnREYXRhLnN1YnNjcmliZSgoZSkgPT4ge1xyXG4gICAgICBpZiAoZSkge1xyXG4gICAgICAgIHRoaXMuY2xpZW50SWQgPSBlLmNsaWVudElkO1xyXG4gICAgICAgIHRoaXMuZ2V0SW5pdGlhbFZhbHVlcyhlLmNsaWVudElkKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmNsaWVudElkKSB7XHJcbiAgICAgIHRoaXMuZ2V0SW5pdGlhbFZhbHVlcyh0aGlzLmNsaWVudElkKTtcclxuICAgIH1cclxuICB9XHJcbiAgZ2V0SW5pdGlhbFZhbHVlcyhjbGllbnRJZDogc3RyaW5nKSB7XHJcbiAgICB0aGlzLmFwaVNlcnZpY2UuZ2V0QnJhbmRDb25maWcoY2xpZW50SWQpLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgIHRoaXMuaXNFbmFibGUgPSByZXNwb25zZS5kYXRhLnJlc3VsdC50aWNrZXRDb25maWdzLm1hdENvbmZpZy5lbmFibGVkO1xyXG4gICAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAvLyAgIGlmIChyZXNwb25zZSAmJiByZXNwb25zZS5kYXRhLnJlc3VsdCAmJiByZXNwb25zZS5kYXRhLnJlc3VsdC50aWNrZXRDb25maWdzICYmIHJlc3BvbnNlLmRhdGEucmVzdWx0LnRpY2tldENvbmZpZ3MubWF0Q29uZmlnKSB7XHJcbiAgICAgIC8vICAgICB0aGlzLnNlbGVjdGVkVHJhaW5pbmdTdGFydCA9IHJlc3BvbnNlLmRhdGEucmVzdWx0LnRpY2tldENvbmZpZ3MubWF0Q29uZmlnLmNvbmZpZ3VyZURheXM7XHJcbiAgICAgIC8vICAgICB0aGlzLmlzRW5hYmxlID0gcmVzcG9uc2UuZGF0YS5yZXN1bHQudGlja2V0Q29uZmlncy5tYXRDb25maWcuZW5hYmxlZDtcclxuICAgICAgLy8gICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAvLyB9IGVsc2Uge1xyXG4gICAgICAvLyAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAvLyAgICAgY29uc29sZS5sb2coXCJDb25kaXRpb24gaXMgZmFsc2UuIFVuYWJsZSB0byBwcm9jZWVkIHRvIHN0ZXAyLlwiKTtcclxuICAgICAgLy8gfVxyXG4gICAgICBcclxuICAgICAgfSxcclxuICAgICAgZXJyb3I6IChlcnJvcikgPT4ge1xyXG4gICAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGZldGNoaW5nIGluaXRpYWwgdmFsdWVzOicsIGVycm9yKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICB0b2dnbGVFZGl0TW9kZSgpIHtcclxuICAgIHRoaXMuZWRpdE1vZGUgPSAhdGhpcy5lZGl0TW9kZTtcclxuICB9XHJcblxyXG4gIG9uQ2FuY2VsKCkge1xyXG4gICAgdGhpcy5lZGl0TW9kZSA9IGZhbHNlO1xyXG4gICAgdGhpcy5hcGlTZXJ2aWNlLmNsaWVudEZvcm1EYXRhLm5leHQoeyB2YWx1ZTogbnVsbCwgdHlwZTogJ2NhbmNlbCcsIGZvcm06ICcnIH0pXHJcbiAgICBcclxuICB9XHJcblxyXG4gIG9uU3VibWl0KCkge1xyXG4gICAgaWYgKHRoaXMuaXNFbmFibGUgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICBjb25zdCBmb3JtRGF0YSA9IHtcclxuICAgICAgICBlbmFibGVkOiB0aGlzLmlzRW5hYmxlLFxyXG4gICAgICB9O1xyXG4gICAgICB0aGlzLmFwaVNlcnZpY2UudXBkYXRlQnJhbmRDb25maWcodGhpcy5jbGllbnRJZCwgZm9ybURhdGEpLnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICBjb25zb2xlLmxvZygnUmVzcG9uc2U6JywgcmVzcG9uc2UpO1xyXG4gICAgICAgICAgdGhpcy50b2FzdC5nZXRTdWNjZXNzVG9hc3QocmVzcG9uc2UubWVzc2FnZSk7XHJcbiAgICAgICAgICB0aGlzLmVkaXRNb2RlID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLmFwaVNlcnZpY2UuY2xpZW50Rm9ybURhdGEubmV4dCh7IHZhbHVlOiBudWxsLCB0eXBlOiAnY2FuY2VsJyxmb3JtOicnIH0pXHJcbiAgICAgICAgfSxcclxuICAgICAgICBlcnJvcjogKGVycm9yKSA9PiB7XHJcbiAgICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvcjonLCBlcnJvcik7XHJcbiAgICAgICAgICB0aGlzLnRvYXN0LmdldEVycm9yVG9hc3QoZXJyb3IuZXJyb3I/LmVycm9yKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1lbmRcIj5cclxuICAgIDxidXR0b24gKm5nSWY9XCIhZWRpdE1vZGVcIiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLW91dGxpbmUgYWxpZ24taXRlbXMtZW5kXCIgKGNsaWNrKT1cInRvZ2dsZUVkaXRNb2RlKClcIj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cIm1lLTJcIj5cclxuICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICA8ZyBjbGlwLXBhdGg9XCJ1cmwoI2NsaXAwXzI1NzlfMjUxMjUpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xNC4xNjcgMi40OTk5M0MxNC4zODU5IDIuMjgxMDYgMTQuNjQ1NyAyLjEwNzQ0IDE0LjkzMTcgMS45ODg5OUMxNS4yMTc2IDEuODcwNTQgMTUuNTI0MSAxLjgwOTU3IDE1LjgzMzcgMS44MDk1N0MxNi4xNDMyIDEuODA5NTcgMTYuNDQ5NyAxLjg3MDU0IDE2LjczNTcgMS45ODg5OUMxNy4wMjE2IDIuMTA3NDQgMTcuMjgxNSAyLjI4MTA2IDE3LjUwMDMgMi40OTk5M0MxNy43MTkyIDIuNzE4OCAxNy44OTI4IDIuOTc4NjMgMTguMDExMyAzLjI2NDZDMTguMTI5NyAzLjU1MDU3IDE4LjE5MDcgMy44NTcwNiAxOC4xOTA3IDQuMTY2NTlDMTguMTkwNyA0LjQ3NjEyIDE4LjEyOTcgNC43ODI2MiAxOC4wMTEzIDUuMDY4NTlDMTcuODkyOCA1LjM1NDU1IDE3LjcxOTIgNS42MTQzOSAxNy41MDAzIDUuODMzMjZMNi4yNTAzMyAxNy4wODMzTDEuNjY2OTkgMTguMzMzM0wyLjkxNjk5IDEzLjc0OTlMMTQuMTY3IDIuNDk5OTNaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzM0NDA1NFwiIHN0cm9rZS13aWR0aD1cIjEuNjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgPGNsaXBQYXRoIGlkPVwiY2xpcDBfMjU3OV8yNTEyNVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiBmaWxsPVwid2hpdGVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvY2xpcFBhdGg+XHJcbiAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgIDwvc3Bhbj5FZGl0IERldGFpbHNcclxuICAgIDwvYnV0dG9uPlxyXG48L2Rpdj5cclxuXHJcbjxkaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyIGNvbC1sZy0xMiBjb2wteGwtMTIgY29sLXh4bC0xMiBtYi01XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgbWItMlwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVjayBmb3JtLXN3aXRjaFwiPlxyXG4gICAgICAgICAgICAgICAgPGlucHV0IFsobmdNb2RlbCldPVwiaXNFbmFibGVcIiBbZGlzYWJsZWRdPVwiIWVkaXRNb2RlXCIgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0XCIgdHlwZT1cImNoZWNrYm94XCIgaWQ9XCJpc1Bhc3NlckJ5RGF0YVwiPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZW5hYmxlLWxhYmVsIG1lLTVcIiBmb3I9XCJpc1Bhc3NlckJ5RGF0YVwiPkVuYWJsZSBUcmFpbmluZyA8L2xhYmVsPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PlxyXG5cclxuPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtZW5kIG10LTZcIj5cclxuICAgIDxkaXYgZGF0YS1rdC1zdWJzY3JpcHRpb24tdGFibGUtdG9vbGJhcj1cImJhc2VcIlxyXG4gICAgICAgIGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1lbmRcIj5cclxuICAgICAgICA8YnV0dG9uICpuZ0lmPVwiZWRpdE1vZGVcIiB0eXBlPVwic3VibWl0XCJcclxuICAgICAgICAgICAgY2xhc3M9XCJidG4tb3V0bGluZSBidG4gbmVlZGhlbHAgbWUtNFwiXHJcbiAgICAgICAgICAgIChjbGljayk9XCJvbkNhbmNlbCgpXCI+Q2FuY2VsPC9idXR0b24+XHJcbiAgICAgICAgICAgIDxidXR0b24gKm5nSWY9XCJlZGl0TW9kZVwiIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICB0YWJpbmRleD1cIjBcIiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBweC00IG5nLXN0YXItaW5zZXJ0ZWRcIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwib25TdWJtaXQoKVwiXHJcbiAgICAgICAgICAgID48c3Bhbj5TYXZlIENoYW5nZXNcclxuICAgICAgICAgICAgPC9zcGFuPjwvYnV0dG9uPjwvZGl2PlxyXG48L2Rpdj5cclxuXHJcbiJdfQ==