tango-app-ui-analyse-trax 3.4.0-eyeTest.23 → 3.4.0-eyeTest.25

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.
@@ -259,7 +259,7 @@ export class ChecklistComponent {
259
259
  this.redirect(type, data);
260
260
  }
261
261
  }
262
- else if (data.checkListType !== 'custom') {
262
+ else if (data.checkListType !== 'custom' && !['uniformdetection', 'staffleftinthemiddle', 'customerunattended'].includes(data?.checkListType)) {
263
263
  const id = type == 'setting' ? data._id : data;
264
264
  this.redirect(type, id, data?.checkListType);
265
265
  }
@@ -268,10 +268,10 @@ export class ChecklistComponent {
268
268
  sub.unsubscribe();
269
269
  }
270
270
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ChecklistComponent, deps: [{ token: i1.PageInfoService }, { token: i2.TraxService }, { token: i1.GlobalStateService }, { token: i3.ToastService }, { token: i4.Router }, { token: i5.NgbModal }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
271
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ChecklistComponent, selector: "lib-checklist", ngImport: i0, template: "<div class=\"card p-5 mb-10\" *ngIf=\"(gs.userAccess | async)?.TangoTrax_checklist_isAdd\">\r\n\r\n <!-- <div class=\"card-title mt-3\">\r\n <h1 class=\" my-0 checklistTitle\">\r\n Manage Your Checklist\r\n </h1>\r\n <div class=\"mt-1 checklistHead\">You can create and manage your checklist here</div>\r\n </div> -->\r\n <div class=\"row mt-10\">\r\n <div class=\"col-md-4\">\r\n <div class=\"mb-2 checklistHead\">\r\n Create your own \r\n <!-- <span>\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M7.5763 7.50033C7.77222 6.94338 8.15893 6.47375 8.66793 6.1746C9.17693 5.87546 9.77538 5.76611 10.3573 5.86592C10.9392 5.96573 11.467 6.26826 11.8472 6.71993C12.2274 7.1716 12.4355 7.74326 12.4346 8.33366C12.4346 10.0003 9.93464 10.8337 9.93464 10.8337M10.0013 14.167H10.0096M18.3346 10.0003C18.3346 14.6027 14.6037 18.3337 10.0013 18.3337C5.39893 18.3337 1.66797 14.6027 1.66797 10.0003C1.66797 5.39795 5.39893 1.66699 10.0013 1.66699C14.6037 1.66699 18.3346 5.39795 18.3346 10.0003Z\"\r\n stroke=\"#667085\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span> -->\r\n </div>\r\n <div class=\"card card-flush rounded rounded-4\">\r\n <div class=\" text-center\">\r\n <a class=\"d-block\" data-fslightbox=\"lightbox-hot-sales\"\r\n [routerLink]=\"'/manage/trax/createChecklist'\">\r\n <div>\r\n <img src=\"./assets/tango/Images/newChecklist.svg\" class=\"w-100 borderClass\"/>\r\n </div>\r\n </a>\r\n <div class=\"d-flex align-items-end flex-stack mt-8 mb-8\">\r\n <div class=\"text-start mx-6\">\r\n <span class=\"checklistText\">Create New Checklists</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-md-4\">\r\n <div class=\"mb-2 checklistHead\">\r\n Configure Predefined Checklist\r\n <!-- <span>\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M7.5763 7.50033C7.77222 6.94338 8.15893 6.47375 8.66793 6.1746C9.17693 5.87546 9.77538 5.76611 10.3573 5.86592C10.9392 5.96573 11.467 6.26826 11.8472 6.71993C12.2274 7.1716 12.4355 7.74326 12.4346 8.33366C12.4346 10.0003 9.93464 10.8337 9.93464 10.8337M10.0013 14.167H10.0096M18.3346 10.0003C18.3346 14.6027 14.6037 18.3337 10.0013 18.3337C5.39893 18.3337 1.66797 14.6027 1.66797 10.0003C1.66797 5.39795 5.39893 1.66699 10.0013 1.66699C14.6037 1.66699 18.3346 5.39795 18.3346 10.0003Z\"\r\n stroke=\"#667085\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span> -->\r\n </div>\r\n <div class=\"card card-flush rounded rounded-4 cursor-pointer\">\r\n <div class=\" text-center\">\r\n <!-- href=\"/sop/Configure?type=mobileusagedetection\" -->\r\n <a (click)=\"redirectUrl('predefined')\" class=\"d-block w-100\" data-fslightbox=\"lightbox-hot-sales\"\r\n >\r\n <div>\r\n <img src=\"./assets/tango/Images/predefined.svg\" class=\"w-100 borderClass\"/>\r\n </div>\r\n </a>\r\n <div class=\"d-flex align-items-end flex-stack mt-8 mb-8 \">\r\n <div class=\"text-start mx-6\">\r\n <span class=\"checklistText\">Choose from a library of templates</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-md-4\">\r\n <div class=\"mb-2 checklistHead \">\r\n Configure your Predefined AI checklist\r\n <!-- <span>\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M7.5763 7.50033C7.77222 6.94338 8.15893 6.47375 8.66793 6.1746C9.17693 5.87546 9.77538 5.76611 10.3573 5.86592C10.9392 5.96573 11.467 6.26826 11.8472 6.71993C12.2274 7.1716 12.4355 7.74326 12.4346 8.33366C12.4346 10.0003 9.93464 10.8337 9.93464 10.8337M10.0013 14.167H10.0096M18.3346 10.0003C18.3346 14.6027 14.6037 18.3337 10.0013 18.3337C5.39893 18.3337 1.66797 14.6027 1.66797 10.0003C1.66797 5.39795 5.39893 1.66699 10.0013 1.66699C14.6037 1.66699 18.3346 5.39795 18.3346 10.0003Z\"\r\n stroke=\"#667085\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span> -->\r\n </div>\r\n <div class=\"card card-flush rounded rounded-4 cursor-pointer\">\r\n <div class=\" text-center\">\r\n <!-- href=\"/sop/Configure?type=mobileusagedetection\" -->\r\n <a (click)=\"redirectUrl('ai')\" class=\"d-block w-100\" data-fslightbox=\"lightbox-hot-sales\"\r\n >\r\n <div>\r\n <img src=\"./assets/tango/Images/aichecklist.svg\" class=\"w-100 borderClass\" />\r\n </div>\r\n </a>\r\n <div class=\"d-flex align-items-end flex-stack mt-8 mb-8\">\r\n <div class=\"text-start mx-6\">\r\n <span class=\"checklistText\">Choose from a library of AI Checklists</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n<div class=\"card\">\r\n <div class=\"col-md-12 mt-3\">\r\n <div class=\"card-header border-0 pt-3 mb-5\">\r\n <h3 class=\"card-title align-items-start flex-column\">\r\n <span class=\"title-text mb-2\">Checklist Info</span>\r\n <!-- <span class=\"text-sub mb-2\">Based on 06 Jan, 2022\u2013 13 Jan, 2022</span> -->\r\n </h3>\r\n <div class=\"card-toolbar\">\r\n <div class=\"d-flex\">\r\n <div class=\"d-flex align-items-center position-relative my-1\">\r\n <span class=\"svg-icon svg-icon-1 position-absolute ms-3\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"\r\n fill=\"none\">\r\n <rect opacity=\"0.5\" x=\"17.0365\" y=\"15.1223\" width=\"8.15546\" height=\"2\" rx=\"1\"\r\n transform=\"rotate(45 17.0365 15.1223)\" fill=\"currentColor\"></rect>\r\n <path\r\n d=\"M11 19C6.55556 19 3 15.4444 3 11C3 6.55556 6.55556 3 11 3C15.4444 3 19 6.55556 19 11C19 15.4444 15.4444 19 11 19ZM11 5C7.53333 5 5 7.53333 5 11C5 14.4667 7.53333 17 11 17C14.4667 17 17 14.4667 17 11C17 7.53333 14.4667 5 11 5Z\"\r\n fill=\"currentColor\"></path>\r\n </svg>\r\n </span>\r\n <input type=\"text\"\r\n class=\"form-control ps-14 me-2\" autocomplete=\"off\" placeholder=\"Search\" [(ngModel)]=\"dynamicData.search\" (change)=\"search()\"/>\r\n\r\n <a [routerLink]=\"'/manage/trax/createChecklist'\" type=\"button\" *ngIf=\"!noData && (gs.userAccess | async)?.TangoTrax_checklist_isAdd\"\r\n class=\"btn btn-primary mx-2 btn-outline btn-outline-default rounded-3 text-nowrap border-val\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path d=\"M10.0013 4.16699V15.8337M4.16797 10.0003H15.8346\" stroke=\"white\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg><span class=\"ms-2\">Create Checklist</span> </a>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"loading\" 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 <div class=\"col-lg-12 pb-5\" *ngIf=\"!loading && noData\">\r\n <div class=\"card-body text-center\">\r\n <img src=\"./assets/tango/Icons/Nodata1.svg\" alt=\"\" class=\"startchecklist\">\r\n <div class=\"checklist_text fw-semibold mt-6 checkStart\">Start by creating a checklist</div>\r\n <div class=\"checklist_span mt-1 checklistHead\">Any checklist created will live here.</div>\r\n </div>\r\n <div data-kt-subscription-table-toolbar=\"base\" class=\"d-flex justify-content-center\">\r\n <a href=\"https://tangoeye.ai/\" class=\"btn-outline btn-outline btn btn-light upload mx-3 px-16 checkStart\"><span\r\n class=\"uploadtext\">How To\r\n Create?</span></a>\r\n\r\n <a [routerLink]=\"'/manage/trax/createChecklist'\" type=\"button\" tabindex=\"0\"\r\n class=\"btn btn-primary px-16 mx-2 ng-star-inserted checkStart\" style=\"white-space: nowrap;\" *ngIf=\"(gs.userAccess | async)?.TangoTrax_checklist_isAdd\"><span\r\n class=\"svg-icon svg-icon-2\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\"\r\n viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path d=\"M10.0001 4.16602V15.8327M4.16675 9.99935H15.8334\" stroke=\"white\" stroke-width=\"1.67\"\r\n stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span><span class=\"create\">Create New</span></a>\r\n </div>\r\n </div>\r\n <div *ngIf=\"!noData && !loading\" calss=\"card-body\">\r\n <div class=\"table-responsive\">\r\n <table class=\"w-100 table bottom-border text-nowrap\">\r\n <thead>\r\n <tr>\r\n <th class=\"cursor-pointer\">\r\n <span class=\"cursor-pointer\" (click)=\"onSort('checkListName')\">Checklist <svg\r\n [ngClass]=\"dynamicData.sortColumn === 'checkListName' && dynamicData.sortBy === 1 ? 'rotate' : ''\"\r\n width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"dynamicData.sortColumn === 'checkListName' ? '#00A3FF' : '#667085'\"\r\n stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </th>\r\n <th class=\"cursor-pointer\">\r\n <span class=\"cursor-pointer\" (click)=\"onSort('createdByName')\">Checklist Owner <svg\r\n [ngClass]=\"dynamicData.sortColumn === 'createdByName' && dynamicData.sortBy === 1 ? 'rotate' : ''\" width=\"16\"\r\n height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"dynamicData.sortColumn === 'createdByName' ? '#00A3FF' : '#667085'\"\r\n stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </th>\r\n <th class=\"cursor-pointer\">\r\n <span class=\"cursor-pointer\" (click)=\"onSort('coverage')\">Coverage <svg\r\n [ngClass]=\"dynamicData.sortColumn === 'coverage' && dynamicData.sortBy === 1 ? 'rotate' : ''\" width=\"16\"\r\n height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"dynamicData.sortColumn === 'coverage' ? '#00A3FF' : '#667085'\"\r\n stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </th>\r\n <th class=\"cursor-pointer\">\r\n <span class=\"cursor-pointer\" (click)=\"onSort('storeCount')\">Assigned To <svg\r\n [ngClass]=\"dynamicData.sortColumn === 'storeCount' && dynamicData.sortBy === 1 ? 'rotate' : ''\" width=\"16\"\r\n height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"dynamicData.sortColumn === 'storeCount' ? '#00A3FF' : '#667085'\"\r\n stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </th>\r\n <th class=\"cursor-pointer\">\r\n <span class=\"cursor-pointer\" (click)=\"onSort('questionCount')\">No. of questions <svg\r\n [ngClass]=\"dynamicData.sortColumn === 'questionCount' && dynamicData.sortBy === 1 ? 'rotate' : ''\" width=\"16\"\r\n height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"dynamicData.sortColumn === 'questionCount' ? '#00A3FF' : '#667085'\"\r\n stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </th>\r\n <th class=\"cursor-pointer\">\r\n <span class=\"cursor-pointer\" (click)=\"onSort('status')\">Status <svg\r\n [ngClass]=\"dynamicData.sortColumn === 'status' && dynamicData.sortBy === 1 ? 'rotate' : ''\" width=\"16\"\r\n height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"dynamicData.sortColumn === 'status' ? '#00A3FF' : '#667085'\"\r\n stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </th>\r\n <th class=\"cursor-pointer\">\r\n <span class=\"cursor-pointer\">Actions</span>\r\n </th>\r\n <th class=\"cursor-pointer\">\r\n <span class=\"cursor-pointer\" (click)=\"onSort('publish')\">Publish <svg\r\n [ngClass]=\"dynamicData.sortColumn === 'publish' && dynamicData.sortBy === 1 ? 'rotate' : ''\" width=\"16\"\r\n height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"dynamicData.sortColumn === 'publish' ? '#00A3FF' : '#667085'\"\r\n stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let data of checklistData;let i=index\">\r\n <!-- (click)=\"storeView(obj)\" -->\r\n <td class=\"text-capitalize\">\r\n <div class=\"symbol symbol-35px symbol-circle\">\r\n <span class=\"symbol-label bg-light-primary text-primary me-2\">{{data.checkListChar.toUpperCase()}}</span>\r\n </div>\r\n <span class=\"text-decoration-underline text-primary\" *ngIf=\"data?.checkListType === 'custom'\"><a [routerLink]=\"['/manage/trax/dashboard/info']\" [queryParams]=\"{type: 'Checklist', checklist: data._id }\" class=\"cursor-pointer\"> {{data.checkListName}}</a></span>\r\n <span class=\"text-primary\" *ngIf=\"data?.checkListType !== 'custom'\">{{data.checkListName}} <span *ngIf=\"data?.checkListType !== 'custom'\" class=\"mx-2\">\u2728</span></span>\r\n \r\n </td>\r\n <td>{{data.createdByName}}</td>\r\n <td>{{data?.coverage}}</td>\r\n <td >{{data.storeCount}}</td>\r\n <td >{{data.questionCount}}</td>\r\n <td><span class=\"badge\" [ngClass]=\"data.publish ? 'badge-light-success' : 'badge-light-primary'\">{{(data.publish ? 'Published' :'draft') | titlecase}}</span></td>\r\n <td>\r\n <span class=\"me-6\" [ngClass]=\"(!data?.publish && data.checkListType === 'custom' && (gs.userAccess | async)?.TangoTrax_checklist_isEdit) ? 'cursor-pointer' : ''\" (click)=\"checkPermission('edit',data)\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M0.832031 9.99967C0.832031 9.99967 4.16536 3.33301 9.9987 3.33301C15.832 3.33301 19.1654 9.99967 19.1654 9.99967C19.1654 9.99967 15.832 16.6663 9.9987 16.6663C4.16536 16.6663 0.832031 9.99967 0.832031 9.99967Z\"\r\n [attr.stroke]=\"(!data.publish && data.checkListType === 'custom' && (gs.userAccess | async)?.TangoTrax_checklist_isEdit) ? '#667085' : '#D0D5DD'\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n <path\r\n d=\"M9.9987 12.4997C11.3794 12.4997 12.4987 11.3804 12.4987 9.99967C12.4987 8.61896 11.3794 7.49967 9.9987 7.49967C8.61799 7.49967 7.4987 8.61896 7.4987 9.99967C7.4987 11.3804 8.61799 12.4997 9.9987 12.4997Z\"\r\n [attr.stroke]=\"(!data.publish && data.checkListType === 'custom' && (gs.userAccess | async)?.TangoTrax_checklist_isEdit) ? '#667085' : '#D0D5DD'\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <span class=\"me-6\" [ngClass]=\"((gs.userAccess | async)?.TangoTrax_checklist_isEdit) ? 'cursor-pointer' : ''\" (click)=\"checkPermission('setting',data)\">\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_2254_20261)\">\r\n <path\r\n d=\"M9.9987 12.4997C11.3794 12.4997 12.4987 11.3804 12.4987 9.99967C12.4987 8.61896 11.3794 7.49967 9.9987 7.49967C8.61799 7.49967 7.4987 8.61896 7.4987 9.99967C7.4987 11.3804 8.61799 12.4997 9.9987 12.4997Z\"\r\n [attr.stroke]=\"((gs.userAccess | async)?.TangoTrax_checklist_isEdit) ? '#667085' : '#D0D5DD'\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n <path\r\n d=\"M16.1654 12.4997C16.0544 12.751 16.0213 13.0298 16.0704 13.3002C16.1194 13.5705 16.2482 13.8199 16.4404 14.0163L16.4904 14.0663C16.6453 14.2211 16.7683 14.4049 16.8521 14.6073C16.936 14.8096 16.9792 15.0265 16.9792 15.2455C16.9792 15.4645 16.936 15.6814 16.8521 15.8837C16.7683 16.0861 16.6453 16.2699 16.4904 16.4247C16.3356 16.5796 16.1518 16.7026 15.9494 16.7864C15.7471 16.8703 15.5302 16.9135 15.3112 16.9135C15.0922 16.9135 14.8753 16.8703 14.673 16.7864C14.4706 16.7026 14.2868 16.5796 14.132 16.4247L14.082 16.3747C13.8856 16.1826 13.6362 16.0537 13.3659 16.0047C13.0955 15.9557 12.8167 15.9887 12.5654 16.0997C12.3189 16.2053 12.1087 16.3807 11.9606 16.6043C11.8126 16.8279 11.7331 17.0899 11.732 17.358V17.4997C11.732 17.9417 11.5564 18.3656 11.2439 18.6782C10.9313 18.9907 10.5074 19.1663 10.0654 19.1663C9.62334 19.1663 9.19941 18.9907 8.88685 18.6782C8.57429 18.3656 8.3987 17.9417 8.3987 17.4997V17.4247C8.39225 17.1488 8.30296 16.8813 8.14246 16.6569C7.98195 16.4325 7.75764 16.2616 7.4987 16.1663C7.24735 16.0554 6.96854 16.0223 6.69821 16.0713C6.42788 16.1204 6.17843 16.2492 5.98203 16.4413L5.93203 16.4913C5.77724 16.6463 5.59343 16.7692 5.3911 16.8531C5.18877 16.937 4.97189 16.9802 4.75286 16.9802C4.53384 16.9802 4.31696 16.937 4.11463 16.8531C3.9123 16.7692 3.72849 16.6463 3.5737 16.4913C3.41874 16.3366 3.29581 16.1527 3.21193 15.9504C3.12806 15.7481 3.08489 15.5312 3.08489 15.3122C3.08489 15.0931 3.12806 14.8763 3.21193 14.6739C3.29581 14.4716 3.41874 14.2878 3.5737 14.133L3.6237 14.083C3.81581 13.8866 3.94469 13.6372 3.9937 13.3668C4.04272 13.0965 4.00963 12.8177 3.8987 12.5663C3.79306 12.3199 3.61766 12.1097 3.39409 11.9616C3.17051 11.8135 2.90852 11.7341 2.64036 11.733H2.4987C2.05667 11.733 1.63275 11.5574 1.32019 11.2449C1.00763 10.9323 0.832031 10.5084 0.832031 10.0663C0.832031 9.62431 1.00763 9.20039 1.32019 8.88783C1.63275 8.57527 2.05667 8.39967 2.4987 8.39967H2.5737C2.84953 8.39322 3.11703 8.30394 3.34145 8.14343C3.56586 7.98293 3.73679 7.75862 3.83203 7.49967C3.94296 7.24833 3.97605 6.96951 3.92703 6.69918C3.87802 6.42885 3.74914 6.17941 3.55703 5.98301L3.50703 5.93301C3.35207 5.77822 3.22914 5.5944 3.14526 5.39207C3.06139 5.18974 3.01822 4.97287 3.01822 4.75384C3.01822 4.53481 3.06139 4.31794 3.14526 4.11561C3.22914 3.91328 3.35207 3.72946 3.50703 3.57467C3.66182 3.41971 3.84563 3.29678 4.04796 3.21291C4.25029 3.12903 4.46717 3.08586 4.6862 3.08586C4.90522 3.08586 5.1221 3.12903 5.32443 3.21291C5.52676 3.29678 5.71058 3.41971 5.86536 3.57467L5.91536 3.62467C6.11176 3.81679 6.36121 3.94566 6.63154 3.99468C6.90187 4.04369 7.18068 4.0106 7.43203 3.89967H7.4987C7.74517 3.79404 7.95538 3.61864 8.10344 3.39506C8.2515 3.17149 8.33096 2.9095 8.33203 2.64134V2.49967C8.33203 2.05765 8.50763 1.63372 8.82019 1.32116C9.13275 1.0086 9.55667 0.833008 9.9987 0.833008C10.4407 0.833008 10.8646 1.0086 11.1772 1.32116C11.4898 1.63372 11.6654 2.05765 11.6654 2.49967V2.57467C11.6664 2.84283 11.7459 3.10482 11.894 3.3284C12.042 3.55197 12.2522 3.72737 12.4987 3.83301C12.75 3.94394 13.0289 3.97703 13.2992 3.92801C13.5695 3.879 13.819 3.75012 14.0154 3.55801L14.0654 3.50801C14.2202 3.35305 14.404 3.23012 14.6063 3.14624C14.8086 3.06237 15.0255 3.0192 15.2445 3.0192C15.4636 3.0192 15.6804 3.06237 15.8828 3.14624C16.0851 3.23012 16.2689 3.35305 16.4237 3.50801C16.5787 3.6628 16.7016 3.84661 16.7855 4.04894C16.8693 4.25127 16.9125 4.46815 16.9125 4.68717C16.9125 4.9062 16.8693 5.12308 16.7855 5.32541C16.7016 5.52774 16.5787 5.71155 16.4237 5.86634L16.3737 5.91634C16.1816 6.11274 16.0527 6.36219 16.0037 6.63252C15.9547 6.90285 15.9878 7.18166 16.0987 7.43301V7.49967C16.2043 7.74615 16.3797 7.95635 16.6033 8.10442C16.8269 8.25248 17.0889 8.33194 17.357 8.33301H17.4987C17.9407 8.33301 18.3646 8.5086 18.6772 8.82116C18.9898 9.13372 19.1654 9.55765 19.1654 9.99967C19.1654 10.4417 18.9898 10.8656 18.6772 11.1782C18.3646 11.4907 17.9407 11.6663 17.4987 11.6663H17.4237C17.1555 11.6674 16.8936 11.7469 16.67 11.8949C16.4464 12.043 16.271 12.2532 16.1654 12.4997Z\"\r\n [attr.stroke]=\"(gs.userAccess | async)?.TangoTrax_checklist_isEdit ? '#667085' : '#D0D5DD'\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2254_20261\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n <span class=\"\" [ngClass]=\"(data.checkListType === 'custom' && (gs.userAccess | async)?.TangoTrax_checklist_isEdit) ? 'cursor-pointer' : ''\" (click)=\"checkPermission('duplicate',data)\">\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_2254_20265)\">\r\n <path\r\n d=\"M4.16797 12.5003H3.33464C2.89261 12.5003 2.46868 12.3247 2.15612 12.0122C1.84356 11.6996 1.66797 11.2757 1.66797 10.8337V3.33366C1.66797 2.89163 1.84356 2.46771 2.15612 2.15515C2.46868 1.84259 2.89261 1.66699 3.33464 1.66699H10.8346C11.2767 1.66699 11.7006 1.84259 12.0131 2.15515C12.3257 2.46771 12.5013 2.89163 12.5013 3.33366V4.16699M9.16797 7.50033H16.668C17.5884 7.50033 18.3346 8.24652 18.3346 9.16699V16.667C18.3346 17.5875 17.5884 18.3337 16.668 18.3337H9.16797C8.24749 18.3337 7.5013 17.5875 7.5013 16.667V9.16699C7.5013 8.24652 8.24749 7.50033 9.16797 7.50033Z\"\r\n [attr.stroke]=\"data.checkListType === 'custom' && (gs.userAccess | async)?.TangoTrax_checklist_isEdit ? '#667085' : '#D0D5DD'\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2254_20265\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n <span (click)=\"checkPermission('delete',data)\" [ngClass]=\"!data?.publish && (gs.userAccess | async)?.TangoTrax_checklist_isEdit ? 'cursor-pointer' : ''\">\r\n <svg width=\"40\" height=\"41\" viewBox=\"0 0 40 41\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <g clip-path=\"url(#clip0_3162_10414)\">\r\n <path\r\n d=\"M12.5 15.0228H14.1667M14.1667 15.0228H27.5M14.1667 15.0228V26.6895C14.1667 27.1315 14.3423 27.5554 14.6548 27.868C14.9674 28.1805 15.3913 28.3561 15.8333 28.3561H24.1667C24.6087 28.3561 25.0326 28.1805 25.3452 27.868C25.6577 27.5554 25.8333 27.1315 25.8333 26.6895V15.0228H14.1667ZM16.6667 15.0228V13.3561C16.6667 12.9141 16.8423 12.4902 17.1548 12.1776C17.4674 11.865 17.8913 11.6895 18.3333 11.6895H21.6667C22.1087 11.6895 22.5326 11.865 22.8452 12.1776C23.1577 12.4902 23.3333 12.9141 23.3333 13.3561V15.0228M18.3333 19.1895V24.1895M21.6667 19.1895V24.1895\"\r\n [attr.stroke]=\"(!(gs.userAccess | async)?.TangoTrax_checklist_isEdit || data.publish || data.checkListType !== 'custom') ? '#D0D5DD' :'#667085'\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_3162_10414\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\" transform=\"translate(10 10.0234)\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n </td>\r\n <td>\r\n <span class=\"form-check form-switch\">\r\n <input type=\"checkbox\" role=\"switch\" id=\"support\" class=\"form-check-input mt-3 cursor-pointer\" (change)=\"publish($event, data,i)\" [checked]=\"data?.publish\" [disabled]=\"(!data?.storeCount && data.checkListType === 'custom') || !(gs.userAccess | async)?.TangoTrax_checklist_isEdit\">\r\n </span>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </div>\r\n <lib-pagination [itemsPerPage]=\"dynamicData.limit\" [currentPage]=\"dynamicData.offset\" [totalItems]=\"totalItems\"\r\n [paginationSizes]=\"paginationSizes\" [pageSize]=\"pageSize\" (pageChange)=\"onPageChange($event)\"\r\n (pageSizeChange)=\"onPageSizeChange($event)\"></lib-pagination>\r\n </div>\r\n </div>\r\n</div>", styles: [".borderClass{border-radius:13px 13px 0 0/13px 13px 0px 0px}.checklistText{color:var(--Black, #101828);font-family:Inter;font-size:18px;font-style:normal;font-weight:600;line-height:28px}.checklistHead{color:var(--Gray-500, #667085);font-family:Inter;font-size:14px;font-style:normal;font-weight:600;line-height:20px}.checklistTitle{color:var(--Black, #101828);font-family:Inter;font-size:22px!important;font-style:normal;font-weight:600;line-height:32px}.checkStart{color:var(--Gray-900, #101828);text-align:center;font-family:Inter;font-size:16px;font-style:normal;font-weight:600;line-height:24px}.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}}.rotate{rotate:180deg;transition:1s}\n"], dependencies: [{ kind: "directive", type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: i3.PaginationComponent, selector: "lib-pagination", inputs: ["collection", "itemsPerPage", "currentPage", "totalItems", "directionLinks", "pageSize", "paginationSizes"], outputs: ["pageChange", "pageSizeChange"] }, { kind: "directive", type: i7.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: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i7.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }, { kind: "pipe", type: i6.TitleCasePipe, name: "titlecase" }] });
271
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ChecklistComponent, selector: "lib-checklist", ngImport: i0, template: "<div class=\"card p-5 mb-10\" *ngIf=\"(gs.userAccess | async)?.TangoTrax_checklist_isAdd\">\r\n\r\n <!-- <div class=\"card-title mt-3\">\r\n <h1 class=\" my-0 checklistTitle\">\r\n Manage Your Checklist\r\n </h1>\r\n <div class=\"mt-1 checklistHead\">You can create and manage your checklist here</div>\r\n </div> -->\r\n <div class=\"row mt-10\">\r\n <div class=\"col-md-4\">\r\n <div class=\"mb-2 checklistHead\">\r\n Create your own \r\n <!-- <span>\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M7.5763 7.50033C7.77222 6.94338 8.15893 6.47375 8.66793 6.1746C9.17693 5.87546 9.77538 5.76611 10.3573 5.86592C10.9392 5.96573 11.467 6.26826 11.8472 6.71993C12.2274 7.1716 12.4355 7.74326 12.4346 8.33366C12.4346 10.0003 9.93464 10.8337 9.93464 10.8337M10.0013 14.167H10.0096M18.3346 10.0003C18.3346 14.6027 14.6037 18.3337 10.0013 18.3337C5.39893 18.3337 1.66797 14.6027 1.66797 10.0003C1.66797 5.39795 5.39893 1.66699 10.0013 1.66699C14.6037 1.66699 18.3346 5.39795 18.3346 10.0003Z\"\r\n stroke=\"#667085\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span> -->\r\n </div>\r\n <div class=\"card card-flush rounded rounded-4\">\r\n <div class=\" text-center\">\r\n <a class=\"d-block\" data-fslightbox=\"lightbox-hot-sales\"\r\n [routerLink]=\"'/manage/trax/createChecklist'\">\r\n <div>\r\n <img src=\"./assets/tango/Images/newChecklist.svg\" class=\"w-100 borderClass\"/>\r\n </div>\r\n </a>\r\n <div class=\"d-flex align-items-end flex-stack mt-8 mb-8\">\r\n <div class=\"text-start mx-6\">\r\n <span class=\"checklistText\">Create New Checklists</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-md-4\">\r\n <div class=\"mb-2 checklistHead\">\r\n Configure Predefined Checklist\r\n <!-- <span>\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M7.5763 7.50033C7.77222 6.94338 8.15893 6.47375 8.66793 6.1746C9.17693 5.87546 9.77538 5.76611 10.3573 5.86592C10.9392 5.96573 11.467 6.26826 11.8472 6.71993C12.2274 7.1716 12.4355 7.74326 12.4346 8.33366C12.4346 10.0003 9.93464 10.8337 9.93464 10.8337M10.0013 14.167H10.0096M18.3346 10.0003C18.3346 14.6027 14.6037 18.3337 10.0013 18.3337C5.39893 18.3337 1.66797 14.6027 1.66797 10.0003C1.66797 5.39795 5.39893 1.66699 10.0013 1.66699C14.6037 1.66699 18.3346 5.39795 18.3346 10.0003Z\"\r\n stroke=\"#667085\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span> -->\r\n </div>\r\n <div class=\"card card-flush rounded rounded-4 cursor-pointer\">\r\n <div class=\" text-center\">\r\n <!-- href=\"/sop/Configure?type=mobileusagedetection\" -->\r\n <a (click)=\"redirectUrl('predefined')\" class=\"d-block w-100\" data-fslightbox=\"lightbox-hot-sales\"\r\n >\r\n <div>\r\n <img src=\"./assets/tango/Images/predefined.svg\" class=\"w-100 borderClass\"/>\r\n </div>\r\n </a>\r\n <div class=\"d-flex align-items-end flex-stack mt-8 mb-8 \">\r\n <div class=\"text-start mx-6\">\r\n <span class=\"checklistText\">Choose from a library of templates</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-md-4\">\r\n <div class=\"mb-2 checklistHead \">\r\n Configure your Predefined AI checklist\r\n <!-- <span>\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M7.5763 7.50033C7.77222 6.94338 8.15893 6.47375 8.66793 6.1746C9.17693 5.87546 9.77538 5.76611 10.3573 5.86592C10.9392 5.96573 11.467 6.26826 11.8472 6.71993C12.2274 7.1716 12.4355 7.74326 12.4346 8.33366C12.4346 10.0003 9.93464 10.8337 9.93464 10.8337M10.0013 14.167H10.0096M18.3346 10.0003C18.3346 14.6027 14.6037 18.3337 10.0013 18.3337C5.39893 18.3337 1.66797 14.6027 1.66797 10.0003C1.66797 5.39795 5.39893 1.66699 10.0013 1.66699C14.6037 1.66699 18.3346 5.39795 18.3346 10.0003Z\"\r\n stroke=\"#667085\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span> -->\r\n </div>\r\n <div class=\"card card-flush rounded rounded-4 cursor-pointer\">\r\n <div class=\" text-center\">\r\n <!-- href=\"/sop/Configure?type=mobileusagedetection\" -->\r\n <a (click)=\"redirectUrl('ai')\" class=\"d-block w-100\" data-fslightbox=\"lightbox-hot-sales\"\r\n >\r\n <div>\r\n <img src=\"./assets/tango/Images/aichecklist.svg\" class=\"w-100 borderClass\" />\r\n </div>\r\n </a>\r\n <div class=\"d-flex align-items-end flex-stack mt-8 mb-8\">\r\n <div class=\"text-start mx-6\">\r\n <span class=\"checklistText\">Choose from a library of AI Checklists</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n<div class=\"card\">\r\n <div class=\"col-md-12 mt-3\">\r\n <div class=\"card-header border-0 pt-3 mb-5\">\r\n <h3 class=\"card-title align-items-start flex-column\">\r\n <span class=\"title-text mb-2\">Checklist Info</span>\r\n <!-- <span class=\"text-sub mb-2\">Based on 06 Jan, 2022\u2013 13 Jan, 2022</span> -->\r\n </h3>\r\n <div class=\"card-toolbar\">\r\n <div class=\"d-flex\">\r\n <div class=\"d-flex align-items-center position-relative my-1\">\r\n <span class=\"svg-icon svg-icon-1 position-absolute ms-3\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"\r\n fill=\"none\">\r\n <rect opacity=\"0.5\" x=\"17.0365\" y=\"15.1223\" width=\"8.15546\" height=\"2\" rx=\"1\"\r\n transform=\"rotate(45 17.0365 15.1223)\" fill=\"currentColor\"></rect>\r\n <path\r\n d=\"M11 19C6.55556 19 3 15.4444 3 11C3 6.55556 6.55556 3 11 3C15.4444 3 19 6.55556 19 11C19 15.4444 15.4444 19 11 19ZM11 5C7.53333 5 5 7.53333 5 11C5 14.4667 7.53333 17 11 17C14.4667 17 17 14.4667 17 11C17 7.53333 14.4667 5 11 5Z\"\r\n fill=\"currentColor\"></path>\r\n </svg>\r\n </span>\r\n <input type=\"text\"\r\n class=\"form-control ps-14 me-2\" autocomplete=\"off\" placeholder=\"Search\" [(ngModel)]=\"dynamicData.search\" (change)=\"search()\"/>\r\n\r\n <a [routerLink]=\"'/manage/trax/createChecklist'\" type=\"button\" *ngIf=\"!noData && (gs.userAccess | async)?.TangoTrax_checklist_isAdd\"\r\n class=\"btn btn-primary mx-2 btn-outline btn-outline-default rounded-3 text-nowrap border-val\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path d=\"M10.0013 4.16699V15.8337M4.16797 10.0003H15.8346\" stroke=\"white\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg><span class=\"ms-2\">Create Checklist</span> </a>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"loading\" 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 <div class=\"col-lg-12 pb-5\" *ngIf=\"!loading && noData\">\r\n <div class=\"card-body text-center\">\r\n <img src=\"./assets/tango/Icons/Nodata1.svg\" alt=\"\" class=\"startchecklist\">\r\n <div class=\"checklist_text fw-semibold mt-6 checkStart\">Start by creating a checklist</div>\r\n <div class=\"checklist_span mt-1 checklistHead\">Any checklist created will live here.</div>\r\n </div>\r\n <div data-kt-subscription-table-toolbar=\"base\" class=\"d-flex justify-content-center\">\r\n <a href=\"https://tangoeye.ai/\" class=\"btn-outline btn-outline btn btn-light upload mx-3 px-16 checkStart\"><span\r\n class=\"uploadtext\">How To\r\n Create?</span></a>\r\n\r\n <a [routerLink]=\"'/manage/trax/createChecklist'\" type=\"button\" tabindex=\"0\"\r\n class=\"btn btn-primary px-16 mx-2 ng-star-inserted checkStart\" style=\"white-space: nowrap;\" *ngIf=\"(gs.userAccess | async)?.TangoTrax_checklist_isAdd\"><span\r\n class=\"svg-icon svg-icon-2\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\"\r\n viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path d=\"M10.0001 4.16602V15.8327M4.16675 9.99935H15.8334\" stroke=\"white\" stroke-width=\"1.67\"\r\n stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span><span class=\"create\">Create New</span></a>\r\n </div>\r\n </div>\r\n <div *ngIf=\"!noData && !loading\" calss=\"card-body\">\r\n <div class=\"table-responsive\">\r\n <table class=\"w-100 table bottom-border text-nowrap\">\r\n <thead>\r\n <tr>\r\n <th class=\"cursor-pointer\">\r\n <span class=\"cursor-pointer\" (click)=\"onSort('checkListName')\">Checklist <svg\r\n [ngClass]=\"dynamicData.sortColumn === 'checkListName' && dynamicData.sortBy === 1 ? 'rotate' : ''\"\r\n width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"dynamicData.sortColumn === 'checkListName' ? '#00A3FF' : '#667085'\"\r\n stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </th>\r\n <th class=\"cursor-pointer\">\r\n <span class=\"cursor-pointer\" (click)=\"onSort('createdByName')\">Checklist Owner <svg\r\n [ngClass]=\"dynamicData.sortColumn === 'createdByName' && dynamicData.sortBy === 1 ? 'rotate' : ''\" width=\"16\"\r\n height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"dynamicData.sortColumn === 'createdByName' ? '#00A3FF' : '#667085'\"\r\n stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </th>\r\n <th class=\"cursor-pointer\">\r\n <span class=\"cursor-pointer\" (click)=\"onSort('coverage')\">Coverage <svg\r\n [ngClass]=\"dynamicData.sortColumn === 'coverage' && dynamicData.sortBy === 1 ? 'rotate' : ''\" width=\"16\"\r\n height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"dynamicData.sortColumn === 'coverage' ? '#00A3FF' : '#667085'\"\r\n stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </th>\r\n <th class=\"cursor-pointer\">\r\n <span class=\"cursor-pointer\" (click)=\"onSort('storeCount')\">Assigned To <svg\r\n [ngClass]=\"dynamicData.sortColumn === 'storeCount' && dynamicData.sortBy === 1 ? 'rotate' : ''\" width=\"16\"\r\n height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"dynamicData.sortColumn === 'storeCount' ? '#00A3FF' : '#667085'\"\r\n stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </th>\r\n <th class=\"cursor-pointer\">\r\n <span class=\"cursor-pointer\" (click)=\"onSort('questionCount')\">No. of questions <svg\r\n [ngClass]=\"dynamicData.sortColumn === 'questionCount' && dynamicData.sortBy === 1 ? 'rotate' : ''\" width=\"16\"\r\n height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"dynamicData.sortColumn === 'questionCount' ? '#00A3FF' : '#667085'\"\r\n stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </th>\r\n <th class=\"cursor-pointer\">\r\n <span class=\"cursor-pointer\" (click)=\"onSort('status')\">Status <svg\r\n [ngClass]=\"dynamicData.sortColumn === 'status' && dynamicData.sortBy === 1 ? 'rotate' : ''\" width=\"16\"\r\n height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"dynamicData.sortColumn === 'status' ? '#00A3FF' : '#667085'\"\r\n stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </th>\r\n <th class=\"cursor-pointer\">\r\n <span class=\"cursor-pointer\">Actions</span>\r\n </th>\r\n <th class=\"cursor-pointer\">\r\n <span class=\"cursor-pointer\" (click)=\"onSort('publish')\">Publish <svg\r\n [ngClass]=\"dynamicData.sortColumn === 'publish' && dynamicData.sortBy === 1 ? 'rotate' : ''\" width=\"16\"\r\n height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"dynamicData.sortColumn === 'publish' ? '#00A3FF' : '#667085'\"\r\n stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let data of checklistData;let i=index\">\r\n <!-- (click)=\"storeView(obj)\" -->\r\n <td class=\"text-capitalize\">\r\n <div class=\"symbol symbol-35px symbol-circle\">\r\n <span class=\"symbol-label bg-light-primary text-primary me-2\">{{data.checkListChar.toUpperCase()}}</span>\r\n </div>\r\n <span class=\"text-decoration-underline text-primary\" *ngIf=\"data?.checkListType === 'custom'\"><a [routerLink]=\"['/manage/trax/dashboard/info']\" [queryParams]=\"{type: 'Checklist', checklist: data._id }\" class=\"cursor-pointer\"> {{data.checkListName}}</a></span>\r\n <span class=\"text-primary\" *ngIf=\"data?.checkListType !== 'custom'\">{{data.checkListName}} <span *ngIf=\"data?.checkListType !== 'custom'\" class=\"mx-2\">\u2728</span></span>\r\n \r\n </td>\r\n <td>{{data.createdByName}}</td>\r\n <td>{{data?.coverage}}</td>\r\n <td >{{data.storeCount}}</td>\r\n <td >{{data.questionCount}}</td>\r\n <td><span class=\"badge\" [ngClass]=\"data.publish ? 'badge-light-success' : 'badge-light-primary'\">{{(data.publish ? 'Published' :'draft') | titlecase}}</span></td>\r\n <td>\r\n <span class=\"me-6\" [ngClass]=\"(!data?.publish && data.checkListType === 'custom' && (gs.userAccess | async)?.TangoTrax_checklist_isEdit) ? 'cursor-pointer' : ''\" (click)=\"checkPermission('edit',data)\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M0.832031 9.99967C0.832031 9.99967 4.16536 3.33301 9.9987 3.33301C15.832 3.33301 19.1654 9.99967 19.1654 9.99967C19.1654 9.99967 15.832 16.6663 9.9987 16.6663C4.16536 16.6663 0.832031 9.99967 0.832031 9.99967Z\"\r\n [attr.stroke]=\"(!data.publish && data.checkListType === 'custom' && (gs.userAccess | async)?.TangoTrax_checklist_isEdit) ? '#667085' : '#D0D5DD'\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n <path\r\n d=\"M9.9987 12.4997C11.3794 12.4997 12.4987 11.3804 12.4987 9.99967C12.4987 8.61896 11.3794 7.49967 9.9987 7.49967C8.61799 7.49967 7.4987 8.61896 7.4987 9.99967C7.4987 11.3804 8.61799 12.4997 9.9987 12.4997Z\"\r\n [attr.stroke]=\"(!data.publish && data.checkListType === 'custom' && (gs.userAccess | async)?.TangoTrax_checklist_isEdit) ? '#667085' : '#D0D5DD'\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <span class=\"me-6\" [ngClass]=\"((data.checkListType === 'custom' || data.checkListType !== 'custom')&& !['uniformdetection','staffleftinthemiddle','customerunattended'].includes(data?.checkListType) && (gs.userAccess | async)?.TangoTrax_checklist_isEdit) ? 'cursor-pointer' : ''\" (click)=\"checkPermission('setting',data)\">\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_2254_20261)\">\r\n <path\r\n d=\"M9.9987 12.4997C11.3794 12.4997 12.4987 11.3804 12.4987 9.99967C12.4987 8.61896 11.3794 7.49967 9.9987 7.49967C8.61799 7.49967 7.4987 8.61896 7.4987 9.99967C7.4987 11.3804 8.61799 12.4997 9.9987 12.4997Z\"\r\n [attr.stroke]=\"((data.checkListType === 'custom' || data.checkListType !== 'custom')&& !['uniformdetection','staffleftinthemiddle','customerunattended'].includes(data?.checkListType) && (gs.userAccess | async)?.TangoTrax_checklist_isEdit) ? '#667085' : '#D0D5DD'\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n <path\r\n d=\"M16.1654 12.4997C16.0544 12.751 16.0213 13.0298 16.0704 13.3002C16.1194 13.5705 16.2482 13.8199 16.4404 14.0163L16.4904 14.0663C16.6453 14.2211 16.7683 14.4049 16.8521 14.6073C16.936 14.8096 16.9792 15.0265 16.9792 15.2455C16.9792 15.4645 16.936 15.6814 16.8521 15.8837C16.7683 16.0861 16.6453 16.2699 16.4904 16.4247C16.3356 16.5796 16.1518 16.7026 15.9494 16.7864C15.7471 16.8703 15.5302 16.9135 15.3112 16.9135C15.0922 16.9135 14.8753 16.8703 14.673 16.7864C14.4706 16.7026 14.2868 16.5796 14.132 16.4247L14.082 16.3747C13.8856 16.1826 13.6362 16.0537 13.3659 16.0047C13.0955 15.9557 12.8167 15.9887 12.5654 16.0997C12.3189 16.2053 12.1087 16.3807 11.9606 16.6043C11.8126 16.8279 11.7331 17.0899 11.732 17.358V17.4997C11.732 17.9417 11.5564 18.3656 11.2439 18.6782C10.9313 18.9907 10.5074 19.1663 10.0654 19.1663C9.62334 19.1663 9.19941 18.9907 8.88685 18.6782C8.57429 18.3656 8.3987 17.9417 8.3987 17.4997V17.4247C8.39225 17.1488 8.30296 16.8813 8.14246 16.6569C7.98195 16.4325 7.75764 16.2616 7.4987 16.1663C7.24735 16.0554 6.96854 16.0223 6.69821 16.0713C6.42788 16.1204 6.17843 16.2492 5.98203 16.4413L5.93203 16.4913C5.77724 16.6463 5.59343 16.7692 5.3911 16.8531C5.18877 16.937 4.97189 16.9802 4.75286 16.9802C4.53384 16.9802 4.31696 16.937 4.11463 16.8531C3.9123 16.7692 3.72849 16.6463 3.5737 16.4913C3.41874 16.3366 3.29581 16.1527 3.21193 15.9504C3.12806 15.7481 3.08489 15.5312 3.08489 15.3122C3.08489 15.0931 3.12806 14.8763 3.21193 14.6739C3.29581 14.4716 3.41874 14.2878 3.5737 14.133L3.6237 14.083C3.81581 13.8866 3.94469 13.6372 3.9937 13.3668C4.04272 13.0965 4.00963 12.8177 3.8987 12.5663C3.79306 12.3199 3.61766 12.1097 3.39409 11.9616C3.17051 11.8135 2.90852 11.7341 2.64036 11.733H2.4987C2.05667 11.733 1.63275 11.5574 1.32019 11.2449C1.00763 10.9323 0.832031 10.5084 0.832031 10.0663C0.832031 9.62431 1.00763 9.20039 1.32019 8.88783C1.63275 8.57527 2.05667 8.39967 2.4987 8.39967H2.5737C2.84953 8.39322 3.11703 8.30394 3.34145 8.14343C3.56586 7.98293 3.73679 7.75862 3.83203 7.49967C3.94296 7.24833 3.97605 6.96951 3.92703 6.69918C3.87802 6.42885 3.74914 6.17941 3.55703 5.98301L3.50703 5.93301C3.35207 5.77822 3.22914 5.5944 3.14526 5.39207C3.06139 5.18974 3.01822 4.97287 3.01822 4.75384C3.01822 4.53481 3.06139 4.31794 3.14526 4.11561C3.22914 3.91328 3.35207 3.72946 3.50703 3.57467C3.66182 3.41971 3.84563 3.29678 4.04796 3.21291C4.25029 3.12903 4.46717 3.08586 4.6862 3.08586C4.90522 3.08586 5.1221 3.12903 5.32443 3.21291C5.52676 3.29678 5.71058 3.41971 5.86536 3.57467L5.91536 3.62467C6.11176 3.81679 6.36121 3.94566 6.63154 3.99468C6.90187 4.04369 7.18068 4.0106 7.43203 3.89967H7.4987C7.74517 3.79404 7.95538 3.61864 8.10344 3.39506C8.2515 3.17149 8.33096 2.9095 8.33203 2.64134V2.49967C8.33203 2.05765 8.50763 1.63372 8.82019 1.32116C9.13275 1.0086 9.55667 0.833008 9.9987 0.833008C10.4407 0.833008 10.8646 1.0086 11.1772 1.32116C11.4898 1.63372 11.6654 2.05765 11.6654 2.49967V2.57467C11.6664 2.84283 11.7459 3.10482 11.894 3.3284C12.042 3.55197 12.2522 3.72737 12.4987 3.83301C12.75 3.94394 13.0289 3.97703 13.2992 3.92801C13.5695 3.879 13.819 3.75012 14.0154 3.55801L14.0654 3.50801C14.2202 3.35305 14.404 3.23012 14.6063 3.14624C14.8086 3.06237 15.0255 3.0192 15.2445 3.0192C15.4636 3.0192 15.6804 3.06237 15.8828 3.14624C16.0851 3.23012 16.2689 3.35305 16.4237 3.50801C16.5787 3.6628 16.7016 3.84661 16.7855 4.04894C16.8693 4.25127 16.9125 4.46815 16.9125 4.68717C16.9125 4.9062 16.8693 5.12308 16.7855 5.32541C16.7016 5.52774 16.5787 5.71155 16.4237 5.86634L16.3737 5.91634C16.1816 6.11274 16.0527 6.36219 16.0037 6.63252C15.9547 6.90285 15.9878 7.18166 16.0987 7.43301V7.49967C16.2043 7.74615 16.3797 7.95635 16.6033 8.10442C16.8269 8.25248 17.0889 8.33194 17.357 8.33301H17.4987C17.9407 8.33301 18.3646 8.5086 18.6772 8.82116C18.9898 9.13372 19.1654 9.55765 19.1654 9.99967C19.1654 10.4417 18.9898 10.8656 18.6772 11.1782C18.3646 11.4907 17.9407 11.6663 17.4987 11.6663H17.4237C17.1555 11.6674 16.8936 11.7469 16.67 11.8949C16.4464 12.043 16.271 12.2532 16.1654 12.4997Z\"\r\n [attr.stroke]=\"(data.checkListType === 'custom' || data.checkListType !== 'custom')&& !['uniformdetection','staffleftinthemiddle','customerunattended'].includes(data?.checkListType) && (gs.userAccess | async)?.TangoTrax_checklist_isEdit ? '#667085' : '#D0D5DD'\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2254_20261\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n <span class=\"\" [ngClass]=\"(data.checkListType === 'custom' && (gs.userAccess | async)?.TangoTrax_checklist_isEdit) ? 'cursor-pointer' : ''\" (click)=\"checkPermission('duplicate',data)\">\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_2254_20265)\">\r\n <path\r\n d=\"M4.16797 12.5003H3.33464C2.89261 12.5003 2.46868 12.3247 2.15612 12.0122C1.84356 11.6996 1.66797 11.2757 1.66797 10.8337V3.33366C1.66797 2.89163 1.84356 2.46771 2.15612 2.15515C2.46868 1.84259 2.89261 1.66699 3.33464 1.66699H10.8346C11.2767 1.66699 11.7006 1.84259 12.0131 2.15515C12.3257 2.46771 12.5013 2.89163 12.5013 3.33366V4.16699M9.16797 7.50033H16.668C17.5884 7.50033 18.3346 8.24652 18.3346 9.16699V16.667C18.3346 17.5875 17.5884 18.3337 16.668 18.3337H9.16797C8.24749 18.3337 7.5013 17.5875 7.5013 16.667V9.16699C7.5013 8.24652 8.24749 7.50033 9.16797 7.50033Z\"\r\n [attr.stroke]=\"data.checkListType === 'custom' && (gs.userAccess | async)?.TangoTrax_checklist_isEdit ? '#667085' : '#D0D5DD'\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2254_20265\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n <span (click)=\"checkPermission('delete',data)\" [ngClass]=\"!data?.publish && (gs.userAccess | async)?.TangoTrax_checklist_isEdit ? 'cursor-pointer' : ''\">\r\n <svg width=\"40\" height=\"41\" viewBox=\"0 0 40 41\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <g clip-path=\"url(#clip0_3162_10414)\">\r\n <path\r\n d=\"M12.5 15.0228H14.1667M14.1667 15.0228H27.5M14.1667 15.0228V26.6895C14.1667 27.1315 14.3423 27.5554 14.6548 27.868C14.9674 28.1805 15.3913 28.3561 15.8333 28.3561H24.1667C24.6087 28.3561 25.0326 28.1805 25.3452 27.868C25.6577 27.5554 25.8333 27.1315 25.8333 26.6895V15.0228H14.1667ZM16.6667 15.0228V13.3561C16.6667 12.9141 16.8423 12.4902 17.1548 12.1776C17.4674 11.865 17.8913 11.6895 18.3333 11.6895H21.6667C22.1087 11.6895 22.5326 11.865 22.8452 12.1776C23.1577 12.4902 23.3333 12.9141 23.3333 13.3561V15.0228M18.3333 19.1895V24.1895M21.6667 19.1895V24.1895\"\r\n [attr.stroke]=\"(!(gs.userAccess | async)?.TangoTrax_checklist_isEdit || data.publish || data.checkListType !== 'custom') ? '#D0D5DD' :'#667085'\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_3162_10414\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\" transform=\"translate(10 10.0234)\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n </td>\r\n <td>\r\n <span class=\"form-check form-switch\">\r\n <input type=\"checkbox\" role=\"switch\" id=\"support\" class=\"form-check-input mt-3 cursor-pointer\" (change)=\"publish($event, data,i)\" [checked]=\"data?.publish\" [disabled]=\"(!data?.storeCount && data.checkListType === 'custom') || !(gs.userAccess | async)?.TangoTrax_checklist_isEdit\">\r\n </span>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </div>\r\n <lib-pagination [itemsPerPage]=\"dynamicData.limit\" [currentPage]=\"dynamicData.offset\" [totalItems]=\"totalItems\"\r\n [paginationSizes]=\"paginationSizes\" [pageSize]=\"pageSize\" (pageChange)=\"onPageChange($event)\"\r\n (pageSizeChange)=\"onPageSizeChange($event)\"></lib-pagination>\r\n </div>\r\n </div>\r\n</div>", styles: [".borderClass{border-radius:13px 13px 0 0/13px 13px 0px 0px}.checklistText{color:var(--Black, #101828);font-family:Inter;font-size:18px;font-style:normal;font-weight:600;line-height:28px}.checklistHead{color:var(--Gray-500, #667085);font-family:Inter;font-size:14px;font-style:normal;font-weight:600;line-height:20px}.checklistTitle{color:var(--Black, #101828);font-family:Inter;font-size:22px!important;font-style:normal;font-weight:600;line-height:32px}.checkStart{color:var(--Gray-900, #101828);text-align:center;font-family:Inter;font-size:16px;font-style:normal;font-weight:600;line-height:24px}.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}}.rotate{rotate:180deg;transition:1s}\n"], dependencies: [{ kind: "directive", type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: i3.PaginationComponent, selector: "lib-pagination", inputs: ["collection", "itemsPerPage", "currentPage", "totalItems", "directionLinks", "pageSize", "paginationSizes"], outputs: ["pageChange", "pageSizeChange"] }, { kind: "directive", type: i7.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: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i7.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }, { kind: "pipe", type: i6.TitleCasePipe, name: "titlecase" }] });
272
272
  }
273
273
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ChecklistComponent, decorators: [{
274
274
  type: Component,
275
- args: [{ selector: 'lib-checklist', template: "<div class=\"card p-5 mb-10\" *ngIf=\"(gs.userAccess | async)?.TangoTrax_checklist_isAdd\">\r\n\r\n <!-- <div class=\"card-title mt-3\">\r\n <h1 class=\" my-0 checklistTitle\">\r\n Manage Your Checklist\r\n </h1>\r\n <div class=\"mt-1 checklistHead\">You can create and manage your checklist here</div>\r\n </div> -->\r\n <div class=\"row mt-10\">\r\n <div class=\"col-md-4\">\r\n <div class=\"mb-2 checklistHead\">\r\n Create your own \r\n <!-- <span>\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M7.5763 7.50033C7.77222 6.94338 8.15893 6.47375 8.66793 6.1746C9.17693 5.87546 9.77538 5.76611 10.3573 5.86592C10.9392 5.96573 11.467 6.26826 11.8472 6.71993C12.2274 7.1716 12.4355 7.74326 12.4346 8.33366C12.4346 10.0003 9.93464 10.8337 9.93464 10.8337M10.0013 14.167H10.0096M18.3346 10.0003C18.3346 14.6027 14.6037 18.3337 10.0013 18.3337C5.39893 18.3337 1.66797 14.6027 1.66797 10.0003C1.66797 5.39795 5.39893 1.66699 10.0013 1.66699C14.6037 1.66699 18.3346 5.39795 18.3346 10.0003Z\"\r\n stroke=\"#667085\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span> -->\r\n </div>\r\n <div class=\"card card-flush rounded rounded-4\">\r\n <div class=\" text-center\">\r\n <a class=\"d-block\" data-fslightbox=\"lightbox-hot-sales\"\r\n [routerLink]=\"'/manage/trax/createChecklist'\">\r\n <div>\r\n <img src=\"./assets/tango/Images/newChecklist.svg\" class=\"w-100 borderClass\"/>\r\n </div>\r\n </a>\r\n <div class=\"d-flex align-items-end flex-stack mt-8 mb-8\">\r\n <div class=\"text-start mx-6\">\r\n <span class=\"checklistText\">Create New Checklists</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-md-4\">\r\n <div class=\"mb-2 checklistHead\">\r\n Configure Predefined Checklist\r\n <!-- <span>\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M7.5763 7.50033C7.77222 6.94338 8.15893 6.47375 8.66793 6.1746C9.17693 5.87546 9.77538 5.76611 10.3573 5.86592C10.9392 5.96573 11.467 6.26826 11.8472 6.71993C12.2274 7.1716 12.4355 7.74326 12.4346 8.33366C12.4346 10.0003 9.93464 10.8337 9.93464 10.8337M10.0013 14.167H10.0096M18.3346 10.0003C18.3346 14.6027 14.6037 18.3337 10.0013 18.3337C5.39893 18.3337 1.66797 14.6027 1.66797 10.0003C1.66797 5.39795 5.39893 1.66699 10.0013 1.66699C14.6037 1.66699 18.3346 5.39795 18.3346 10.0003Z\"\r\n stroke=\"#667085\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span> -->\r\n </div>\r\n <div class=\"card card-flush rounded rounded-4 cursor-pointer\">\r\n <div class=\" text-center\">\r\n <!-- href=\"/sop/Configure?type=mobileusagedetection\" -->\r\n <a (click)=\"redirectUrl('predefined')\" class=\"d-block w-100\" data-fslightbox=\"lightbox-hot-sales\"\r\n >\r\n <div>\r\n <img src=\"./assets/tango/Images/predefined.svg\" class=\"w-100 borderClass\"/>\r\n </div>\r\n </a>\r\n <div class=\"d-flex align-items-end flex-stack mt-8 mb-8 \">\r\n <div class=\"text-start mx-6\">\r\n <span class=\"checklistText\">Choose from a library of templates</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-md-4\">\r\n <div class=\"mb-2 checklistHead \">\r\n Configure your Predefined AI checklist\r\n <!-- <span>\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M7.5763 7.50033C7.77222 6.94338 8.15893 6.47375 8.66793 6.1746C9.17693 5.87546 9.77538 5.76611 10.3573 5.86592C10.9392 5.96573 11.467 6.26826 11.8472 6.71993C12.2274 7.1716 12.4355 7.74326 12.4346 8.33366C12.4346 10.0003 9.93464 10.8337 9.93464 10.8337M10.0013 14.167H10.0096M18.3346 10.0003C18.3346 14.6027 14.6037 18.3337 10.0013 18.3337C5.39893 18.3337 1.66797 14.6027 1.66797 10.0003C1.66797 5.39795 5.39893 1.66699 10.0013 1.66699C14.6037 1.66699 18.3346 5.39795 18.3346 10.0003Z\"\r\n stroke=\"#667085\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span> -->\r\n </div>\r\n <div class=\"card card-flush rounded rounded-4 cursor-pointer\">\r\n <div class=\" text-center\">\r\n <!-- href=\"/sop/Configure?type=mobileusagedetection\" -->\r\n <a (click)=\"redirectUrl('ai')\" class=\"d-block w-100\" data-fslightbox=\"lightbox-hot-sales\"\r\n >\r\n <div>\r\n <img src=\"./assets/tango/Images/aichecklist.svg\" class=\"w-100 borderClass\" />\r\n </div>\r\n </a>\r\n <div class=\"d-flex align-items-end flex-stack mt-8 mb-8\">\r\n <div class=\"text-start mx-6\">\r\n <span class=\"checklistText\">Choose from a library of AI Checklists</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n<div class=\"card\">\r\n <div class=\"col-md-12 mt-3\">\r\n <div class=\"card-header border-0 pt-3 mb-5\">\r\n <h3 class=\"card-title align-items-start flex-column\">\r\n <span class=\"title-text mb-2\">Checklist Info</span>\r\n <!-- <span class=\"text-sub mb-2\">Based on 06 Jan, 2022\u2013 13 Jan, 2022</span> -->\r\n </h3>\r\n <div class=\"card-toolbar\">\r\n <div class=\"d-flex\">\r\n <div class=\"d-flex align-items-center position-relative my-1\">\r\n <span class=\"svg-icon svg-icon-1 position-absolute ms-3\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"\r\n fill=\"none\">\r\n <rect opacity=\"0.5\" x=\"17.0365\" y=\"15.1223\" width=\"8.15546\" height=\"2\" rx=\"1\"\r\n transform=\"rotate(45 17.0365 15.1223)\" fill=\"currentColor\"></rect>\r\n <path\r\n d=\"M11 19C6.55556 19 3 15.4444 3 11C3 6.55556 6.55556 3 11 3C15.4444 3 19 6.55556 19 11C19 15.4444 15.4444 19 11 19ZM11 5C7.53333 5 5 7.53333 5 11C5 14.4667 7.53333 17 11 17C14.4667 17 17 14.4667 17 11C17 7.53333 14.4667 5 11 5Z\"\r\n fill=\"currentColor\"></path>\r\n </svg>\r\n </span>\r\n <input type=\"text\"\r\n class=\"form-control ps-14 me-2\" autocomplete=\"off\" placeholder=\"Search\" [(ngModel)]=\"dynamicData.search\" (change)=\"search()\"/>\r\n\r\n <a [routerLink]=\"'/manage/trax/createChecklist'\" type=\"button\" *ngIf=\"!noData && (gs.userAccess | async)?.TangoTrax_checklist_isAdd\"\r\n class=\"btn btn-primary mx-2 btn-outline btn-outline-default rounded-3 text-nowrap border-val\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path d=\"M10.0013 4.16699V15.8337M4.16797 10.0003H15.8346\" stroke=\"white\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg><span class=\"ms-2\">Create Checklist</span> </a>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"loading\" 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 <div class=\"col-lg-12 pb-5\" *ngIf=\"!loading && noData\">\r\n <div class=\"card-body text-center\">\r\n <img src=\"./assets/tango/Icons/Nodata1.svg\" alt=\"\" class=\"startchecklist\">\r\n <div class=\"checklist_text fw-semibold mt-6 checkStart\">Start by creating a checklist</div>\r\n <div class=\"checklist_span mt-1 checklistHead\">Any checklist created will live here.</div>\r\n </div>\r\n <div data-kt-subscription-table-toolbar=\"base\" class=\"d-flex justify-content-center\">\r\n <a href=\"https://tangoeye.ai/\" class=\"btn-outline btn-outline btn btn-light upload mx-3 px-16 checkStart\"><span\r\n class=\"uploadtext\">How To\r\n Create?</span></a>\r\n\r\n <a [routerLink]=\"'/manage/trax/createChecklist'\" type=\"button\" tabindex=\"0\"\r\n class=\"btn btn-primary px-16 mx-2 ng-star-inserted checkStart\" style=\"white-space: nowrap;\" *ngIf=\"(gs.userAccess | async)?.TangoTrax_checklist_isAdd\"><span\r\n class=\"svg-icon svg-icon-2\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\"\r\n viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path d=\"M10.0001 4.16602V15.8327M4.16675 9.99935H15.8334\" stroke=\"white\" stroke-width=\"1.67\"\r\n stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span><span class=\"create\">Create New</span></a>\r\n </div>\r\n </div>\r\n <div *ngIf=\"!noData && !loading\" calss=\"card-body\">\r\n <div class=\"table-responsive\">\r\n <table class=\"w-100 table bottom-border text-nowrap\">\r\n <thead>\r\n <tr>\r\n <th class=\"cursor-pointer\">\r\n <span class=\"cursor-pointer\" (click)=\"onSort('checkListName')\">Checklist <svg\r\n [ngClass]=\"dynamicData.sortColumn === 'checkListName' && dynamicData.sortBy === 1 ? 'rotate' : ''\"\r\n width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"dynamicData.sortColumn === 'checkListName' ? '#00A3FF' : '#667085'\"\r\n stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </th>\r\n <th class=\"cursor-pointer\">\r\n <span class=\"cursor-pointer\" (click)=\"onSort('createdByName')\">Checklist Owner <svg\r\n [ngClass]=\"dynamicData.sortColumn === 'createdByName' && dynamicData.sortBy === 1 ? 'rotate' : ''\" width=\"16\"\r\n height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"dynamicData.sortColumn === 'createdByName' ? '#00A3FF' : '#667085'\"\r\n stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </th>\r\n <th class=\"cursor-pointer\">\r\n <span class=\"cursor-pointer\" (click)=\"onSort('coverage')\">Coverage <svg\r\n [ngClass]=\"dynamicData.sortColumn === 'coverage' && dynamicData.sortBy === 1 ? 'rotate' : ''\" width=\"16\"\r\n height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"dynamicData.sortColumn === 'coverage' ? '#00A3FF' : '#667085'\"\r\n stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </th>\r\n <th class=\"cursor-pointer\">\r\n <span class=\"cursor-pointer\" (click)=\"onSort('storeCount')\">Assigned To <svg\r\n [ngClass]=\"dynamicData.sortColumn === 'storeCount' && dynamicData.sortBy === 1 ? 'rotate' : ''\" width=\"16\"\r\n height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"dynamicData.sortColumn === 'storeCount' ? '#00A3FF' : '#667085'\"\r\n stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </th>\r\n <th class=\"cursor-pointer\">\r\n <span class=\"cursor-pointer\" (click)=\"onSort('questionCount')\">No. of questions <svg\r\n [ngClass]=\"dynamicData.sortColumn === 'questionCount' && dynamicData.sortBy === 1 ? 'rotate' : ''\" width=\"16\"\r\n height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"dynamicData.sortColumn === 'questionCount' ? '#00A3FF' : '#667085'\"\r\n stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </th>\r\n <th class=\"cursor-pointer\">\r\n <span class=\"cursor-pointer\" (click)=\"onSort('status')\">Status <svg\r\n [ngClass]=\"dynamicData.sortColumn === 'status' && dynamicData.sortBy === 1 ? 'rotate' : ''\" width=\"16\"\r\n height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"dynamicData.sortColumn === 'status' ? '#00A3FF' : '#667085'\"\r\n stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </th>\r\n <th class=\"cursor-pointer\">\r\n <span class=\"cursor-pointer\">Actions</span>\r\n </th>\r\n <th class=\"cursor-pointer\">\r\n <span class=\"cursor-pointer\" (click)=\"onSort('publish')\">Publish <svg\r\n [ngClass]=\"dynamicData.sortColumn === 'publish' && dynamicData.sortBy === 1 ? 'rotate' : ''\" width=\"16\"\r\n height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"dynamicData.sortColumn === 'publish' ? '#00A3FF' : '#667085'\"\r\n stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let data of checklistData;let i=index\">\r\n <!-- (click)=\"storeView(obj)\" -->\r\n <td class=\"text-capitalize\">\r\n <div class=\"symbol symbol-35px symbol-circle\">\r\n <span class=\"symbol-label bg-light-primary text-primary me-2\">{{data.checkListChar.toUpperCase()}}</span>\r\n </div>\r\n <span class=\"text-decoration-underline text-primary\" *ngIf=\"data?.checkListType === 'custom'\"><a [routerLink]=\"['/manage/trax/dashboard/info']\" [queryParams]=\"{type: 'Checklist', checklist: data._id }\" class=\"cursor-pointer\"> {{data.checkListName}}</a></span>\r\n <span class=\"text-primary\" *ngIf=\"data?.checkListType !== 'custom'\">{{data.checkListName}} <span *ngIf=\"data?.checkListType !== 'custom'\" class=\"mx-2\">\u2728</span></span>\r\n \r\n </td>\r\n <td>{{data.createdByName}}</td>\r\n <td>{{data?.coverage}}</td>\r\n <td >{{data.storeCount}}</td>\r\n <td >{{data.questionCount}}</td>\r\n <td><span class=\"badge\" [ngClass]=\"data.publish ? 'badge-light-success' : 'badge-light-primary'\">{{(data.publish ? 'Published' :'draft') | titlecase}}</span></td>\r\n <td>\r\n <span class=\"me-6\" [ngClass]=\"(!data?.publish && data.checkListType === 'custom' && (gs.userAccess | async)?.TangoTrax_checklist_isEdit) ? 'cursor-pointer' : ''\" (click)=\"checkPermission('edit',data)\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M0.832031 9.99967C0.832031 9.99967 4.16536 3.33301 9.9987 3.33301C15.832 3.33301 19.1654 9.99967 19.1654 9.99967C19.1654 9.99967 15.832 16.6663 9.9987 16.6663C4.16536 16.6663 0.832031 9.99967 0.832031 9.99967Z\"\r\n [attr.stroke]=\"(!data.publish && data.checkListType === 'custom' && (gs.userAccess | async)?.TangoTrax_checklist_isEdit) ? '#667085' : '#D0D5DD'\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n <path\r\n d=\"M9.9987 12.4997C11.3794 12.4997 12.4987 11.3804 12.4987 9.99967C12.4987 8.61896 11.3794 7.49967 9.9987 7.49967C8.61799 7.49967 7.4987 8.61896 7.4987 9.99967C7.4987 11.3804 8.61799 12.4997 9.9987 12.4997Z\"\r\n [attr.stroke]=\"(!data.publish && data.checkListType === 'custom' && (gs.userAccess | async)?.TangoTrax_checklist_isEdit) ? '#667085' : '#D0D5DD'\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <span class=\"me-6\" [ngClass]=\"((gs.userAccess | async)?.TangoTrax_checklist_isEdit) ? 'cursor-pointer' : ''\" (click)=\"checkPermission('setting',data)\">\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_2254_20261)\">\r\n <path\r\n d=\"M9.9987 12.4997C11.3794 12.4997 12.4987 11.3804 12.4987 9.99967C12.4987 8.61896 11.3794 7.49967 9.9987 7.49967C8.61799 7.49967 7.4987 8.61896 7.4987 9.99967C7.4987 11.3804 8.61799 12.4997 9.9987 12.4997Z\"\r\n [attr.stroke]=\"((gs.userAccess | async)?.TangoTrax_checklist_isEdit) ? '#667085' : '#D0D5DD'\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n <path\r\n d=\"M16.1654 12.4997C16.0544 12.751 16.0213 13.0298 16.0704 13.3002C16.1194 13.5705 16.2482 13.8199 16.4404 14.0163L16.4904 14.0663C16.6453 14.2211 16.7683 14.4049 16.8521 14.6073C16.936 14.8096 16.9792 15.0265 16.9792 15.2455C16.9792 15.4645 16.936 15.6814 16.8521 15.8837C16.7683 16.0861 16.6453 16.2699 16.4904 16.4247C16.3356 16.5796 16.1518 16.7026 15.9494 16.7864C15.7471 16.8703 15.5302 16.9135 15.3112 16.9135C15.0922 16.9135 14.8753 16.8703 14.673 16.7864C14.4706 16.7026 14.2868 16.5796 14.132 16.4247L14.082 16.3747C13.8856 16.1826 13.6362 16.0537 13.3659 16.0047C13.0955 15.9557 12.8167 15.9887 12.5654 16.0997C12.3189 16.2053 12.1087 16.3807 11.9606 16.6043C11.8126 16.8279 11.7331 17.0899 11.732 17.358V17.4997C11.732 17.9417 11.5564 18.3656 11.2439 18.6782C10.9313 18.9907 10.5074 19.1663 10.0654 19.1663C9.62334 19.1663 9.19941 18.9907 8.88685 18.6782C8.57429 18.3656 8.3987 17.9417 8.3987 17.4997V17.4247C8.39225 17.1488 8.30296 16.8813 8.14246 16.6569C7.98195 16.4325 7.75764 16.2616 7.4987 16.1663C7.24735 16.0554 6.96854 16.0223 6.69821 16.0713C6.42788 16.1204 6.17843 16.2492 5.98203 16.4413L5.93203 16.4913C5.77724 16.6463 5.59343 16.7692 5.3911 16.8531C5.18877 16.937 4.97189 16.9802 4.75286 16.9802C4.53384 16.9802 4.31696 16.937 4.11463 16.8531C3.9123 16.7692 3.72849 16.6463 3.5737 16.4913C3.41874 16.3366 3.29581 16.1527 3.21193 15.9504C3.12806 15.7481 3.08489 15.5312 3.08489 15.3122C3.08489 15.0931 3.12806 14.8763 3.21193 14.6739C3.29581 14.4716 3.41874 14.2878 3.5737 14.133L3.6237 14.083C3.81581 13.8866 3.94469 13.6372 3.9937 13.3668C4.04272 13.0965 4.00963 12.8177 3.8987 12.5663C3.79306 12.3199 3.61766 12.1097 3.39409 11.9616C3.17051 11.8135 2.90852 11.7341 2.64036 11.733H2.4987C2.05667 11.733 1.63275 11.5574 1.32019 11.2449C1.00763 10.9323 0.832031 10.5084 0.832031 10.0663C0.832031 9.62431 1.00763 9.20039 1.32019 8.88783C1.63275 8.57527 2.05667 8.39967 2.4987 8.39967H2.5737C2.84953 8.39322 3.11703 8.30394 3.34145 8.14343C3.56586 7.98293 3.73679 7.75862 3.83203 7.49967C3.94296 7.24833 3.97605 6.96951 3.92703 6.69918C3.87802 6.42885 3.74914 6.17941 3.55703 5.98301L3.50703 5.93301C3.35207 5.77822 3.22914 5.5944 3.14526 5.39207C3.06139 5.18974 3.01822 4.97287 3.01822 4.75384C3.01822 4.53481 3.06139 4.31794 3.14526 4.11561C3.22914 3.91328 3.35207 3.72946 3.50703 3.57467C3.66182 3.41971 3.84563 3.29678 4.04796 3.21291C4.25029 3.12903 4.46717 3.08586 4.6862 3.08586C4.90522 3.08586 5.1221 3.12903 5.32443 3.21291C5.52676 3.29678 5.71058 3.41971 5.86536 3.57467L5.91536 3.62467C6.11176 3.81679 6.36121 3.94566 6.63154 3.99468C6.90187 4.04369 7.18068 4.0106 7.43203 3.89967H7.4987C7.74517 3.79404 7.95538 3.61864 8.10344 3.39506C8.2515 3.17149 8.33096 2.9095 8.33203 2.64134V2.49967C8.33203 2.05765 8.50763 1.63372 8.82019 1.32116C9.13275 1.0086 9.55667 0.833008 9.9987 0.833008C10.4407 0.833008 10.8646 1.0086 11.1772 1.32116C11.4898 1.63372 11.6654 2.05765 11.6654 2.49967V2.57467C11.6664 2.84283 11.7459 3.10482 11.894 3.3284C12.042 3.55197 12.2522 3.72737 12.4987 3.83301C12.75 3.94394 13.0289 3.97703 13.2992 3.92801C13.5695 3.879 13.819 3.75012 14.0154 3.55801L14.0654 3.50801C14.2202 3.35305 14.404 3.23012 14.6063 3.14624C14.8086 3.06237 15.0255 3.0192 15.2445 3.0192C15.4636 3.0192 15.6804 3.06237 15.8828 3.14624C16.0851 3.23012 16.2689 3.35305 16.4237 3.50801C16.5787 3.6628 16.7016 3.84661 16.7855 4.04894C16.8693 4.25127 16.9125 4.46815 16.9125 4.68717C16.9125 4.9062 16.8693 5.12308 16.7855 5.32541C16.7016 5.52774 16.5787 5.71155 16.4237 5.86634L16.3737 5.91634C16.1816 6.11274 16.0527 6.36219 16.0037 6.63252C15.9547 6.90285 15.9878 7.18166 16.0987 7.43301V7.49967C16.2043 7.74615 16.3797 7.95635 16.6033 8.10442C16.8269 8.25248 17.0889 8.33194 17.357 8.33301H17.4987C17.9407 8.33301 18.3646 8.5086 18.6772 8.82116C18.9898 9.13372 19.1654 9.55765 19.1654 9.99967C19.1654 10.4417 18.9898 10.8656 18.6772 11.1782C18.3646 11.4907 17.9407 11.6663 17.4987 11.6663H17.4237C17.1555 11.6674 16.8936 11.7469 16.67 11.8949C16.4464 12.043 16.271 12.2532 16.1654 12.4997Z\"\r\n [attr.stroke]=\"(gs.userAccess | async)?.TangoTrax_checklist_isEdit ? '#667085' : '#D0D5DD'\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2254_20261\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n <span class=\"\" [ngClass]=\"(data.checkListType === 'custom' && (gs.userAccess | async)?.TangoTrax_checklist_isEdit) ? 'cursor-pointer' : ''\" (click)=\"checkPermission('duplicate',data)\">\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_2254_20265)\">\r\n <path\r\n d=\"M4.16797 12.5003H3.33464C2.89261 12.5003 2.46868 12.3247 2.15612 12.0122C1.84356 11.6996 1.66797 11.2757 1.66797 10.8337V3.33366C1.66797 2.89163 1.84356 2.46771 2.15612 2.15515C2.46868 1.84259 2.89261 1.66699 3.33464 1.66699H10.8346C11.2767 1.66699 11.7006 1.84259 12.0131 2.15515C12.3257 2.46771 12.5013 2.89163 12.5013 3.33366V4.16699M9.16797 7.50033H16.668C17.5884 7.50033 18.3346 8.24652 18.3346 9.16699V16.667C18.3346 17.5875 17.5884 18.3337 16.668 18.3337H9.16797C8.24749 18.3337 7.5013 17.5875 7.5013 16.667V9.16699C7.5013 8.24652 8.24749 7.50033 9.16797 7.50033Z\"\r\n [attr.stroke]=\"data.checkListType === 'custom' && (gs.userAccess | async)?.TangoTrax_checklist_isEdit ? '#667085' : '#D0D5DD'\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2254_20265\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n <span (click)=\"checkPermission('delete',data)\" [ngClass]=\"!data?.publish && (gs.userAccess | async)?.TangoTrax_checklist_isEdit ? 'cursor-pointer' : ''\">\r\n <svg width=\"40\" height=\"41\" viewBox=\"0 0 40 41\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <g clip-path=\"url(#clip0_3162_10414)\">\r\n <path\r\n d=\"M12.5 15.0228H14.1667M14.1667 15.0228H27.5M14.1667 15.0228V26.6895C14.1667 27.1315 14.3423 27.5554 14.6548 27.868C14.9674 28.1805 15.3913 28.3561 15.8333 28.3561H24.1667C24.6087 28.3561 25.0326 28.1805 25.3452 27.868C25.6577 27.5554 25.8333 27.1315 25.8333 26.6895V15.0228H14.1667ZM16.6667 15.0228V13.3561C16.6667 12.9141 16.8423 12.4902 17.1548 12.1776C17.4674 11.865 17.8913 11.6895 18.3333 11.6895H21.6667C22.1087 11.6895 22.5326 11.865 22.8452 12.1776C23.1577 12.4902 23.3333 12.9141 23.3333 13.3561V15.0228M18.3333 19.1895V24.1895M21.6667 19.1895V24.1895\"\r\n [attr.stroke]=\"(!(gs.userAccess | async)?.TangoTrax_checklist_isEdit || data.publish || data.checkListType !== 'custom') ? '#D0D5DD' :'#667085'\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_3162_10414\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\" transform=\"translate(10 10.0234)\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n </td>\r\n <td>\r\n <span class=\"form-check form-switch\">\r\n <input type=\"checkbox\" role=\"switch\" id=\"support\" class=\"form-check-input mt-3 cursor-pointer\" (change)=\"publish($event, data,i)\" [checked]=\"data?.publish\" [disabled]=\"(!data?.storeCount && data.checkListType === 'custom') || !(gs.userAccess | async)?.TangoTrax_checklist_isEdit\">\r\n </span>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </div>\r\n <lib-pagination [itemsPerPage]=\"dynamicData.limit\" [currentPage]=\"dynamicData.offset\" [totalItems]=\"totalItems\"\r\n [paginationSizes]=\"paginationSizes\" [pageSize]=\"pageSize\" (pageChange)=\"onPageChange($event)\"\r\n (pageSizeChange)=\"onPageSizeChange($event)\"></lib-pagination>\r\n </div>\r\n </div>\r\n</div>", styles: [".borderClass{border-radius:13px 13px 0 0/13px 13px 0px 0px}.checklistText{color:var(--Black, #101828);font-family:Inter;font-size:18px;font-style:normal;font-weight:600;line-height:28px}.checklistHead{color:var(--Gray-500, #667085);font-family:Inter;font-size:14px;font-style:normal;font-weight:600;line-height:20px}.checklistTitle{color:var(--Black, #101828);font-family:Inter;font-size:22px!important;font-style:normal;font-weight:600;line-height:32px}.checkStart{color:var(--Gray-900, #101828);text-align:center;font-family:Inter;font-size:16px;font-style:normal;font-weight:600;line-height:24px}.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}}.rotate{rotate:180deg;transition:1s}\n"] }]
275
+ args: [{ selector: 'lib-checklist', template: "<div class=\"card p-5 mb-10\" *ngIf=\"(gs.userAccess | async)?.TangoTrax_checklist_isAdd\">\r\n\r\n <!-- <div class=\"card-title mt-3\">\r\n <h1 class=\" my-0 checklistTitle\">\r\n Manage Your Checklist\r\n </h1>\r\n <div class=\"mt-1 checklistHead\">You can create and manage your checklist here</div>\r\n </div> -->\r\n <div class=\"row mt-10\">\r\n <div class=\"col-md-4\">\r\n <div class=\"mb-2 checklistHead\">\r\n Create your own \r\n <!-- <span>\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M7.5763 7.50033C7.77222 6.94338 8.15893 6.47375 8.66793 6.1746C9.17693 5.87546 9.77538 5.76611 10.3573 5.86592C10.9392 5.96573 11.467 6.26826 11.8472 6.71993C12.2274 7.1716 12.4355 7.74326 12.4346 8.33366C12.4346 10.0003 9.93464 10.8337 9.93464 10.8337M10.0013 14.167H10.0096M18.3346 10.0003C18.3346 14.6027 14.6037 18.3337 10.0013 18.3337C5.39893 18.3337 1.66797 14.6027 1.66797 10.0003C1.66797 5.39795 5.39893 1.66699 10.0013 1.66699C14.6037 1.66699 18.3346 5.39795 18.3346 10.0003Z\"\r\n stroke=\"#667085\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span> -->\r\n </div>\r\n <div class=\"card card-flush rounded rounded-4\">\r\n <div class=\" text-center\">\r\n <a class=\"d-block\" data-fslightbox=\"lightbox-hot-sales\"\r\n [routerLink]=\"'/manage/trax/createChecklist'\">\r\n <div>\r\n <img src=\"./assets/tango/Images/newChecklist.svg\" class=\"w-100 borderClass\"/>\r\n </div>\r\n </a>\r\n <div class=\"d-flex align-items-end flex-stack mt-8 mb-8\">\r\n <div class=\"text-start mx-6\">\r\n <span class=\"checklistText\">Create New Checklists</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-md-4\">\r\n <div class=\"mb-2 checklistHead\">\r\n Configure Predefined Checklist\r\n <!-- <span>\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M7.5763 7.50033C7.77222 6.94338 8.15893 6.47375 8.66793 6.1746C9.17693 5.87546 9.77538 5.76611 10.3573 5.86592C10.9392 5.96573 11.467 6.26826 11.8472 6.71993C12.2274 7.1716 12.4355 7.74326 12.4346 8.33366C12.4346 10.0003 9.93464 10.8337 9.93464 10.8337M10.0013 14.167H10.0096M18.3346 10.0003C18.3346 14.6027 14.6037 18.3337 10.0013 18.3337C5.39893 18.3337 1.66797 14.6027 1.66797 10.0003C1.66797 5.39795 5.39893 1.66699 10.0013 1.66699C14.6037 1.66699 18.3346 5.39795 18.3346 10.0003Z\"\r\n stroke=\"#667085\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span> -->\r\n </div>\r\n <div class=\"card card-flush rounded rounded-4 cursor-pointer\">\r\n <div class=\" text-center\">\r\n <!-- href=\"/sop/Configure?type=mobileusagedetection\" -->\r\n <a (click)=\"redirectUrl('predefined')\" class=\"d-block w-100\" data-fslightbox=\"lightbox-hot-sales\"\r\n >\r\n <div>\r\n <img src=\"./assets/tango/Images/predefined.svg\" class=\"w-100 borderClass\"/>\r\n </div>\r\n </a>\r\n <div class=\"d-flex align-items-end flex-stack mt-8 mb-8 \">\r\n <div class=\"text-start mx-6\">\r\n <span class=\"checklistText\">Choose from a library of templates</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-md-4\">\r\n <div class=\"mb-2 checklistHead \">\r\n Configure your Predefined AI checklist\r\n <!-- <span>\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M7.5763 7.50033C7.77222 6.94338 8.15893 6.47375 8.66793 6.1746C9.17693 5.87546 9.77538 5.76611 10.3573 5.86592C10.9392 5.96573 11.467 6.26826 11.8472 6.71993C12.2274 7.1716 12.4355 7.74326 12.4346 8.33366C12.4346 10.0003 9.93464 10.8337 9.93464 10.8337M10.0013 14.167H10.0096M18.3346 10.0003C18.3346 14.6027 14.6037 18.3337 10.0013 18.3337C5.39893 18.3337 1.66797 14.6027 1.66797 10.0003C1.66797 5.39795 5.39893 1.66699 10.0013 1.66699C14.6037 1.66699 18.3346 5.39795 18.3346 10.0003Z\"\r\n stroke=\"#667085\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span> -->\r\n </div>\r\n <div class=\"card card-flush rounded rounded-4 cursor-pointer\">\r\n <div class=\" text-center\">\r\n <!-- href=\"/sop/Configure?type=mobileusagedetection\" -->\r\n <a (click)=\"redirectUrl('ai')\" class=\"d-block w-100\" data-fslightbox=\"lightbox-hot-sales\"\r\n >\r\n <div>\r\n <img src=\"./assets/tango/Images/aichecklist.svg\" class=\"w-100 borderClass\" />\r\n </div>\r\n </a>\r\n <div class=\"d-flex align-items-end flex-stack mt-8 mb-8\">\r\n <div class=\"text-start mx-6\">\r\n <span class=\"checklistText\">Choose from a library of AI Checklists</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n<div class=\"card\">\r\n <div class=\"col-md-12 mt-3\">\r\n <div class=\"card-header border-0 pt-3 mb-5\">\r\n <h3 class=\"card-title align-items-start flex-column\">\r\n <span class=\"title-text mb-2\">Checklist Info</span>\r\n <!-- <span class=\"text-sub mb-2\">Based on 06 Jan, 2022\u2013 13 Jan, 2022</span> -->\r\n </h3>\r\n <div class=\"card-toolbar\">\r\n <div class=\"d-flex\">\r\n <div class=\"d-flex align-items-center position-relative my-1\">\r\n <span class=\"svg-icon svg-icon-1 position-absolute ms-3\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"\r\n fill=\"none\">\r\n <rect opacity=\"0.5\" x=\"17.0365\" y=\"15.1223\" width=\"8.15546\" height=\"2\" rx=\"1\"\r\n transform=\"rotate(45 17.0365 15.1223)\" fill=\"currentColor\"></rect>\r\n <path\r\n d=\"M11 19C6.55556 19 3 15.4444 3 11C3 6.55556 6.55556 3 11 3C15.4444 3 19 6.55556 19 11C19 15.4444 15.4444 19 11 19ZM11 5C7.53333 5 5 7.53333 5 11C5 14.4667 7.53333 17 11 17C14.4667 17 17 14.4667 17 11C17 7.53333 14.4667 5 11 5Z\"\r\n fill=\"currentColor\"></path>\r\n </svg>\r\n </span>\r\n <input type=\"text\"\r\n class=\"form-control ps-14 me-2\" autocomplete=\"off\" placeholder=\"Search\" [(ngModel)]=\"dynamicData.search\" (change)=\"search()\"/>\r\n\r\n <a [routerLink]=\"'/manage/trax/createChecklist'\" type=\"button\" *ngIf=\"!noData && (gs.userAccess | async)?.TangoTrax_checklist_isAdd\"\r\n class=\"btn btn-primary mx-2 btn-outline btn-outline-default rounded-3 text-nowrap border-val\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path d=\"M10.0013 4.16699V15.8337M4.16797 10.0003H15.8346\" stroke=\"white\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg><span class=\"ms-2\">Create Checklist</span> </a>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"loading\" 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 <div class=\"col-lg-12 pb-5\" *ngIf=\"!loading && noData\">\r\n <div class=\"card-body text-center\">\r\n <img src=\"./assets/tango/Icons/Nodata1.svg\" alt=\"\" class=\"startchecklist\">\r\n <div class=\"checklist_text fw-semibold mt-6 checkStart\">Start by creating a checklist</div>\r\n <div class=\"checklist_span mt-1 checklistHead\">Any checklist created will live here.</div>\r\n </div>\r\n <div data-kt-subscription-table-toolbar=\"base\" class=\"d-flex justify-content-center\">\r\n <a href=\"https://tangoeye.ai/\" class=\"btn-outline btn-outline btn btn-light upload mx-3 px-16 checkStart\"><span\r\n class=\"uploadtext\">How To\r\n Create?</span></a>\r\n\r\n <a [routerLink]=\"'/manage/trax/createChecklist'\" type=\"button\" tabindex=\"0\"\r\n class=\"btn btn-primary px-16 mx-2 ng-star-inserted checkStart\" style=\"white-space: nowrap;\" *ngIf=\"(gs.userAccess | async)?.TangoTrax_checklist_isAdd\"><span\r\n class=\"svg-icon svg-icon-2\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\"\r\n viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path d=\"M10.0001 4.16602V15.8327M4.16675 9.99935H15.8334\" stroke=\"white\" stroke-width=\"1.67\"\r\n stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span><span class=\"create\">Create New</span></a>\r\n </div>\r\n </div>\r\n <div *ngIf=\"!noData && !loading\" calss=\"card-body\">\r\n <div class=\"table-responsive\">\r\n <table class=\"w-100 table bottom-border text-nowrap\">\r\n <thead>\r\n <tr>\r\n <th class=\"cursor-pointer\">\r\n <span class=\"cursor-pointer\" (click)=\"onSort('checkListName')\">Checklist <svg\r\n [ngClass]=\"dynamicData.sortColumn === 'checkListName' && dynamicData.sortBy === 1 ? 'rotate' : ''\"\r\n width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"dynamicData.sortColumn === 'checkListName' ? '#00A3FF' : '#667085'\"\r\n stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </th>\r\n <th class=\"cursor-pointer\">\r\n <span class=\"cursor-pointer\" (click)=\"onSort('createdByName')\">Checklist Owner <svg\r\n [ngClass]=\"dynamicData.sortColumn === 'createdByName' && dynamicData.sortBy === 1 ? 'rotate' : ''\" width=\"16\"\r\n height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"dynamicData.sortColumn === 'createdByName' ? '#00A3FF' : '#667085'\"\r\n stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </th>\r\n <th class=\"cursor-pointer\">\r\n <span class=\"cursor-pointer\" (click)=\"onSort('coverage')\">Coverage <svg\r\n [ngClass]=\"dynamicData.sortColumn === 'coverage' && dynamicData.sortBy === 1 ? 'rotate' : ''\" width=\"16\"\r\n height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"dynamicData.sortColumn === 'coverage' ? '#00A3FF' : '#667085'\"\r\n stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </th>\r\n <th class=\"cursor-pointer\">\r\n <span class=\"cursor-pointer\" (click)=\"onSort('storeCount')\">Assigned To <svg\r\n [ngClass]=\"dynamicData.sortColumn === 'storeCount' && dynamicData.sortBy === 1 ? 'rotate' : ''\" width=\"16\"\r\n height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"dynamicData.sortColumn === 'storeCount' ? '#00A3FF' : '#667085'\"\r\n stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </th>\r\n <th class=\"cursor-pointer\">\r\n <span class=\"cursor-pointer\" (click)=\"onSort('questionCount')\">No. of questions <svg\r\n [ngClass]=\"dynamicData.sortColumn === 'questionCount' && dynamicData.sortBy === 1 ? 'rotate' : ''\" width=\"16\"\r\n height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"dynamicData.sortColumn === 'questionCount' ? '#00A3FF' : '#667085'\"\r\n stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </th>\r\n <th class=\"cursor-pointer\">\r\n <span class=\"cursor-pointer\" (click)=\"onSort('status')\">Status <svg\r\n [ngClass]=\"dynamicData.sortColumn === 'status' && dynamicData.sortBy === 1 ? 'rotate' : ''\" width=\"16\"\r\n height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"dynamicData.sortColumn === 'status' ? '#00A3FF' : '#667085'\"\r\n stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </th>\r\n <th class=\"cursor-pointer\">\r\n <span class=\"cursor-pointer\">Actions</span>\r\n </th>\r\n <th class=\"cursor-pointer\">\r\n <span class=\"cursor-pointer\" (click)=\"onSort('publish')\">Publish <svg\r\n [ngClass]=\"dynamicData.sortColumn === 'publish' && dynamicData.sortBy === 1 ? 'rotate' : ''\" width=\"16\"\r\n height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"dynamicData.sortColumn === 'publish' ? '#00A3FF' : '#667085'\"\r\n stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let data of checklistData;let i=index\">\r\n <!-- (click)=\"storeView(obj)\" -->\r\n <td class=\"text-capitalize\">\r\n <div class=\"symbol symbol-35px symbol-circle\">\r\n <span class=\"symbol-label bg-light-primary text-primary me-2\">{{data.checkListChar.toUpperCase()}}</span>\r\n </div>\r\n <span class=\"text-decoration-underline text-primary\" *ngIf=\"data?.checkListType === 'custom'\"><a [routerLink]=\"['/manage/trax/dashboard/info']\" [queryParams]=\"{type: 'Checklist', checklist: data._id }\" class=\"cursor-pointer\"> {{data.checkListName}}</a></span>\r\n <span class=\"text-primary\" *ngIf=\"data?.checkListType !== 'custom'\">{{data.checkListName}} <span *ngIf=\"data?.checkListType !== 'custom'\" class=\"mx-2\">\u2728</span></span>\r\n \r\n </td>\r\n <td>{{data.createdByName}}</td>\r\n <td>{{data?.coverage}}</td>\r\n <td >{{data.storeCount}}</td>\r\n <td >{{data.questionCount}}</td>\r\n <td><span class=\"badge\" [ngClass]=\"data.publish ? 'badge-light-success' : 'badge-light-primary'\">{{(data.publish ? 'Published' :'draft') | titlecase}}</span></td>\r\n <td>\r\n <span class=\"me-6\" [ngClass]=\"(!data?.publish && data.checkListType === 'custom' && (gs.userAccess | async)?.TangoTrax_checklist_isEdit) ? 'cursor-pointer' : ''\" (click)=\"checkPermission('edit',data)\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M0.832031 9.99967C0.832031 9.99967 4.16536 3.33301 9.9987 3.33301C15.832 3.33301 19.1654 9.99967 19.1654 9.99967C19.1654 9.99967 15.832 16.6663 9.9987 16.6663C4.16536 16.6663 0.832031 9.99967 0.832031 9.99967Z\"\r\n [attr.stroke]=\"(!data.publish && data.checkListType === 'custom' && (gs.userAccess | async)?.TangoTrax_checklist_isEdit) ? '#667085' : '#D0D5DD'\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n <path\r\n d=\"M9.9987 12.4997C11.3794 12.4997 12.4987 11.3804 12.4987 9.99967C12.4987 8.61896 11.3794 7.49967 9.9987 7.49967C8.61799 7.49967 7.4987 8.61896 7.4987 9.99967C7.4987 11.3804 8.61799 12.4997 9.9987 12.4997Z\"\r\n [attr.stroke]=\"(!data.publish && data.checkListType === 'custom' && (gs.userAccess | async)?.TangoTrax_checklist_isEdit) ? '#667085' : '#D0D5DD'\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <span class=\"me-6\" [ngClass]=\"((data.checkListType === 'custom' || data.checkListType !== 'custom')&& !['uniformdetection','staffleftinthemiddle','customerunattended'].includes(data?.checkListType) && (gs.userAccess | async)?.TangoTrax_checklist_isEdit) ? 'cursor-pointer' : ''\" (click)=\"checkPermission('setting',data)\">\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_2254_20261)\">\r\n <path\r\n d=\"M9.9987 12.4997C11.3794 12.4997 12.4987 11.3804 12.4987 9.99967C12.4987 8.61896 11.3794 7.49967 9.9987 7.49967C8.61799 7.49967 7.4987 8.61896 7.4987 9.99967C7.4987 11.3804 8.61799 12.4997 9.9987 12.4997Z\"\r\n [attr.stroke]=\"((data.checkListType === 'custom' || data.checkListType !== 'custom')&& !['uniformdetection','staffleftinthemiddle','customerunattended'].includes(data?.checkListType) && (gs.userAccess | async)?.TangoTrax_checklist_isEdit) ? '#667085' : '#D0D5DD'\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n <path\r\n d=\"M16.1654 12.4997C16.0544 12.751 16.0213 13.0298 16.0704 13.3002C16.1194 13.5705 16.2482 13.8199 16.4404 14.0163L16.4904 14.0663C16.6453 14.2211 16.7683 14.4049 16.8521 14.6073C16.936 14.8096 16.9792 15.0265 16.9792 15.2455C16.9792 15.4645 16.936 15.6814 16.8521 15.8837C16.7683 16.0861 16.6453 16.2699 16.4904 16.4247C16.3356 16.5796 16.1518 16.7026 15.9494 16.7864C15.7471 16.8703 15.5302 16.9135 15.3112 16.9135C15.0922 16.9135 14.8753 16.8703 14.673 16.7864C14.4706 16.7026 14.2868 16.5796 14.132 16.4247L14.082 16.3747C13.8856 16.1826 13.6362 16.0537 13.3659 16.0047C13.0955 15.9557 12.8167 15.9887 12.5654 16.0997C12.3189 16.2053 12.1087 16.3807 11.9606 16.6043C11.8126 16.8279 11.7331 17.0899 11.732 17.358V17.4997C11.732 17.9417 11.5564 18.3656 11.2439 18.6782C10.9313 18.9907 10.5074 19.1663 10.0654 19.1663C9.62334 19.1663 9.19941 18.9907 8.88685 18.6782C8.57429 18.3656 8.3987 17.9417 8.3987 17.4997V17.4247C8.39225 17.1488 8.30296 16.8813 8.14246 16.6569C7.98195 16.4325 7.75764 16.2616 7.4987 16.1663C7.24735 16.0554 6.96854 16.0223 6.69821 16.0713C6.42788 16.1204 6.17843 16.2492 5.98203 16.4413L5.93203 16.4913C5.77724 16.6463 5.59343 16.7692 5.3911 16.8531C5.18877 16.937 4.97189 16.9802 4.75286 16.9802C4.53384 16.9802 4.31696 16.937 4.11463 16.8531C3.9123 16.7692 3.72849 16.6463 3.5737 16.4913C3.41874 16.3366 3.29581 16.1527 3.21193 15.9504C3.12806 15.7481 3.08489 15.5312 3.08489 15.3122C3.08489 15.0931 3.12806 14.8763 3.21193 14.6739C3.29581 14.4716 3.41874 14.2878 3.5737 14.133L3.6237 14.083C3.81581 13.8866 3.94469 13.6372 3.9937 13.3668C4.04272 13.0965 4.00963 12.8177 3.8987 12.5663C3.79306 12.3199 3.61766 12.1097 3.39409 11.9616C3.17051 11.8135 2.90852 11.7341 2.64036 11.733H2.4987C2.05667 11.733 1.63275 11.5574 1.32019 11.2449C1.00763 10.9323 0.832031 10.5084 0.832031 10.0663C0.832031 9.62431 1.00763 9.20039 1.32019 8.88783C1.63275 8.57527 2.05667 8.39967 2.4987 8.39967H2.5737C2.84953 8.39322 3.11703 8.30394 3.34145 8.14343C3.56586 7.98293 3.73679 7.75862 3.83203 7.49967C3.94296 7.24833 3.97605 6.96951 3.92703 6.69918C3.87802 6.42885 3.74914 6.17941 3.55703 5.98301L3.50703 5.93301C3.35207 5.77822 3.22914 5.5944 3.14526 5.39207C3.06139 5.18974 3.01822 4.97287 3.01822 4.75384C3.01822 4.53481 3.06139 4.31794 3.14526 4.11561C3.22914 3.91328 3.35207 3.72946 3.50703 3.57467C3.66182 3.41971 3.84563 3.29678 4.04796 3.21291C4.25029 3.12903 4.46717 3.08586 4.6862 3.08586C4.90522 3.08586 5.1221 3.12903 5.32443 3.21291C5.52676 3.29678 5.71058 3.41971 5.86536 3.57467L5.91536 3.62467C6.11176 3.81679 6.36121 3.94566 6.63154 3.99468C6.90187 4.04369 7.18068 4.0106 7.43203 3.89967H7.4987C7.74517 3.79404 7.95538 3.61864 8.10344 3.39506C8.2515 3.17149 8.33096 2.9095 8.33203 2.64134V2.49967C8.33203 2.05765 8.50763 1.63372 8.82019 1.32116C9.13275 1.0086 9.55667 0.833008 9.9987 0.833008C10.4407 0.833008 10.8646 1.0086 11.1772 1.32116C11.4898 1.63372 11.6654 2.05765 11.6654 2.49967V2.57467C11.6664 2.84283 11.7459 3.10482 11.894 3.3284C12.042 3.55197 12.2522 3.72737 12.4987 3.83301C12.75 3.94394 13.0289 3.97703 13.2992 3.92801C13.5695 3.879 13.819 3.75012 14.0154 3.55801L14.0654 3.50801C14.2202 3.35305 14.404 3.23012 14.6063 3.14624C14.8086 3.06237 15.0255 3.0192 15.2445 3.0192C15.4636 3.0192 15.6804 3.06237 15.8828 3.14624C16.0851 3.23012 16.2689 3.35305 16.4237 3.50801C16.5787 3.6628 16.7016 3.84661 16.7855 4.04894C16.8693 4.25127 16.9125 4.46815 16.9125 4.68717C16.9125 4.9062 16.8693 5.12308 16.7855 5.32541C16.7016 5.52774 16.5787 5.71155 16.4237 5.86634L16.3737 5.91634C16.1816 6.11274 16.0527 6.36219 16.0037 6.63252C15.9547 6.90285 15.9878 7.18166 16.0987 7.43301V7.49967C16.2043 7.74615 16.3797 7.95635 16.6033 8.10442C16.8269 8.25248 17.0889 8.33194 17.357 8.33301H17.4987C17.9407 8.33301 18.3646 8.5086 18.6772 8.82116C18.9898 9.13372 19.1654 9.55765 19.1654 9.99967C19.1654 10.4417 18.9898 10.8656 18.6772 11.1782C18.3646 11.4907 17.9407 11.6663 17.4987 11.6663H17.4237C17.1555 11.6674 16.8936 11.7469 16.67 11.8949C16.4464 12.043 16.271 12.2532 16.1654 12.4997Z\"\r\n [attr.stroke]=\"(data.checkListType === 'custom' || data.checkListType !== 'custom')&& !['uniformdetection','staffleftinthemiddle','customerunattended'].includes(data?.checkListType) && (gs.userAccess | async)?.TangoTrax_checklist_isEdit ? '#667085' : '#D0D5DD'\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2254_20261\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n <span class=\"\" [ngClass]=\"(data.checkListType === 'custom' && (gs.userAccess | async)?.TangoTrax_checklist_isEdit) ? 'cursor-pointer' : ''\" (click)=\"checkPermission('duplicate',data)\">\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_2254_20265)\">\r\n <path\r\n d=\"M4.16797 12.5003H3.33464C2.89261 12.5003 2.46868 12.3247 2.15612 12.0122C1.84356 11.6996 1.66797 11.2757 1.66797 10.8337V3.33366C1.66797 2.89163 1.84356 2.46771 2.15612 2.15515C2.46868 1.84259 2.89261 1.66699 3.33464 1.66699H10.8346C11.2767 1.66699 11.7006 1.84259 12.0131 2.15515C12.3257 2.46771 12.5013 2.89163 12.5013 3.33366V4.16699M9.16797 7.50033H16.668C17.5884 7.50033 18.3346 8.24652 18.3346 9.16699V16.667C18.3346 17.5875 17.5884 18.3337 16.668 18.3337H9.16797C8.24749 18.3337 7.5013 17.5875 7.5013 16.667V9.16699C7.5013 8.24652 8.24749 7.50033 9.16797 7.50033Z\"\r\n [attr.stroke]=\"data.checkListType === 'custom' && (gs.userAccess | async)?.TangoTrax_checklist_isEdit ? '#667085' : '#D0D5DD'\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2254_20265\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n <span (click)=\"checkPermission('delete',data)\" [ngClass]=\"!data?.publish && (gs.userAccess | async)?.TangoTrax_checklist_isEdit ? 'cursor-pointer' : ''\">\r\n <svg width=\"40\" height=\"41\" viewBox=\"0 0 40 41\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <g clip-path=\"url(#clip0_3162_10414)\">\r\n <path\r\n d=\"M12.5 15.0228H14.1667M14.1667 15.0228H27.5M14.1667 15.0228V26.6895C14.1667 27.1315 14.3423 27.5554 14.6548 27.868C14.9674 28.1805 15.3913 28.3561 15.8333 28.3561H24.1667C24.6087 28.3561 25.0326 28.1805 25.3452 27.868C25.6577 27.5554 25.8333 27.1315 25.8333 26.6895V15.0228H14.1667ZM16.6667 15.0228V13.3561C16.6667 12.9141 16.8423 12.4902 17.1548 12.1776C17.4674 11.865 17.8913 11.6895 18.3333 11.6895H21.6667C22.1087 11.6895 22.5326 11.865 22.8452 12.1776C23.1577 12.4902 23.3333 12.9141 23.3333 13.3561V15.0228M18.3333 19.1895V24.1895M21.6667 19.1895V24.1895\"\r\n [attr.stroke]=\"(!(gs.userAccess | async)?.TangoTrax_checklist_isEdit || data.publish || data.checkListType !== 'custom') ? '#D0D5DD' :'#667085'\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_3162_10414\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\" transform=\"translate(10 10.0234)\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n </td>\r\n <td>\r\n <span class=\"form-check form-switch\">\r\n <input type=\"checkbox\" role=\"switch\" id=\"support\" class=\"form-check-input mt-3 cursor-pointer\" (change)=\"publish($event, data,i)\" [checked]=\"data?.publish\" [disabled]=\"(!data?.storeCount && data.checkListType === 'custom') || !(gs.userAccess | async)?.TangoTrax_checklist_isEdit\">\r\n </span>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </div>\r\n <lib-pagination [itemsPerPage]=\"dynamicData.limit\" [currentPage]=\"dynamicData.offset\" [totalItems]=\"totalItems\"\r\n [paginationSizes]=\"paginationSizes\" [pageSize]=\"pageSize\" (pageChange)=\"onPageChange($event)\"\r\n (pageSizeChange)=\"onPageSizeChange($event)\"></lib-pagination>\r\n </div>\r\n </div>\r\n</div>", styles: [".borderClass{border-radius:13px 13px 0 0/13px 13px 0px 0px}.checklistText{color:var(--Black, #101828);font-family:Inter;font-size:18px;font-style:normal;font-weight:600;line-height:28px}.checklistHead{color:var(--Gray-500, #667085);font-family:Inter;font-size:14px;font-style:normal;font-weight:600;line-height:20px}.checklistTitle{color:var(--Black, #101828);font-family:Inter;font-size:22px!important;font-style:normal;font-weight:600;line-height:32px}.checkStart{color:var(--Gray-900, #101828);text-align:center;font-family:Inter;font-size:16px;font-style:normal;font-weight:600;line-height:24px}.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}}.rotate{rotate:180deg;transition:1s}\n"] }]
276
276
  }], ctorParameters: () => [{ type: i1.PageInfoService }, { type: i2.TraxService }, { type: i1.GlobalStateService }, { type: i3.ToastService }, { type: i4.Router }, { type: i5.NgbModal }, { type: i0.ChangeDetectorRef }] });
277
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tsaXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLWFuYWx5c2UtdHJheC9zcmMvbGliL2NvbXBvbmVudHMvY2hlY2tsaXN0L2NoZWNrbGlzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1hbmFseXNlLXRyYXgvc3JjL2xpYi9jb21wb25lbnRzL2NoZWNrbGlzdC9jaGVja2xpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFxQixTQUFTLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBRWhGLE9BQU8sRUFBQyxHQUFHLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFHM0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7Ozs7Ozs7OztBQVN0RSxNQUFNLE9BQU8sa0JBQWtCO0lBbUJUO0lBQWlDO0lBQStCO0lBQThCO0lBQTJCO0lBQXFCO0lBQXdCO0lBbEIxTCxPQUFPLEdBQVcsSUFBSSxDQUFDO0lBQ3ZCLE1BQU0sR0FBVyxLQUFLLENBQUM7SUFDdkIsUUFBUSxHQUFRLEVBQUUsQ0FBQztJQUNuQixVQUFVLENBQVE7SUFDbEIsZUFBZSxHQUFPLEVBQUUsQ0FBQztJQUN6QixhQUFhLEdBQU8sRUFBRSxDQUFDO0lBQ2YsTUFBTSxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7SUFDL0IsV0FBVyxHQUFPO1FBQ2hCLFFBQVEsRUFBQyxFQUFFO1FBQ1gsU0FBUyxFQUFDLEVBQUU7UUFDWixPQUFPLEVBQUMsRUFBRTtRQUNWLEtBQUssRUFBQyxFQUFFO1FBQ1IsTUFBTSxFQUFDLENBQUM7UUFDUixVQUFVLEVBQUMsRUFBRTtRQUNiLE1BQU0sRUFBQyxFQUFFO1FBQ1QsTUFBTSxFQUFDLEVBQUU7S0FDVixDQUFDO0lB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QyxJQUFJLEVBQUMsSUFBSSxDQUFDLENBQUE7cUJBQ3pCO2lCQUNGO3FCQUFLLElBQUcsSUFBSSxDQUFDLGFBQWEsS0FBSyxRQUFRLEVBQUU7b0JBQ3RDLE1BQU0sRUFBRSxHQUFHLElBQUksSUFBSSxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztvQkFDL0MsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUMsRUFBRSxFQUFDLElBQUksRUFBRSxhQUFhLENBQUMsQ0FBQTtpQkFDM0M7YUFDSjtRQUNILENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUE7UUFFZixHQUFHLENBQUMsV0FBVyxFQUFFLENBQUE7SUFDbkIsQ0FBQzt3R0FqUVUsa0JBQWtCOzRGQUFsQixrQkFBa0IscURDZC9CLDRsL0JBeVVNOzs0RkQzVE8sa0JBQWtCO2tCQUw5QixTQUFTOytCQUNFLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBHbG9iYWxTdGF0ZVNlcnZpY2UsIFBhZ2VJbmZvU2VydmljZSB9IGZyb20gJ3RhbmdvLWFwcC11aS1nbG9iYWwnO1xyXG5pbXBvcnQge21hcCwgU3ViamVjdCwgdGFrZVVudGlsLCBkZWJvdW5jZVRpbWV9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBUb2FzdFNlcnZpY2UgfSBmcm9tICd0YW5nby1hcHAtdWktc2hhcmVkJztcclxuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgVHJheHBvcHVwQ29tcG9uZW50IH0gZnJvbSAnLi4vdHJheHBvcHVwL3RyYXhwb3B1cC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBOZ2JNb2RhbCB9IGZyb20gJ0BuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwJztcclxuaW1wb3J0IHsgVHJheFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy90cmF4LnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItY2hlY2tsaXN0JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vY2hlY2tsaXN0LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vY2hlY2tsaXN0LmNvbXBvbmVudC5zY3NzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQ2hlY2tsaXN0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LE9uRGVzdHJveSB7XHJcbiAgbG9hZGluZzpib29sZWFuID0gdHJ1ZTtcclxuICBub0RhdGE6Ym9vbGVhbiA9IGZhbHNlO1xyXG4gIHBhZ2VTaXplOm51bWJlcj0xMDtcclxuICB0b3RhbEl0ZW1zOm51bWJlcjtcclxuICBwYWdpbmF0aW9uU2l6ZXM6YW55ID0gW107XHJcbiAgY2hlY2tsaXN0RGF0YTphbnkgPSBbXTtcclxuICBwcml2YXRlIGRldGFjaCA9IG5ldyBTdWJqZWN0KCk7XHJcbiAgZHluYW1pY0RhdGE6YW55ID0ge1xyXG4gICAgY2xpZW50SWQ6JycsXHJcbiAgICBzdGFydERhdGU6JycsXHJcbiAgICBlbmREYXRlOicnLFxyXG4gICAgbGltaXQ6MTAsXHJcbiAgICBvZmZzZXQ6MSxcclxuICAgIHNvcnRDb2x1bW46JycsXHJcbiAgICBzb3J0Qnk6JycsXHJcbiAgICBzZWFyY2g6JydcclxuICB9O1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHBhZ2VJbmZvOlBhZ2VJbmZvU2VydmljZSxwcml2YXRlIHRyYXhTZXJ2aWNlOlRyYXhTZXJ2aWNlLHB1YmxpYyBnczpHbG9iYWxTdGF0ZVNlcnZpY2UscHJpdmF0ZSB0b2FzdDpUb2FzdFNlcnZpY2UscHJpdmF0ZSByb3V0ZTpSb3V0ZXIscHJpdmF0ZSBkaWFsb2c6TmdiTW9kYWwscHJpdmF0ZSBjZDpDaGFuZ2VEZXRlY3RvclJlZiApIHt9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5ncy5kYXRhUmFuZ2VWYWx1ZVxyXG4gICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGV0YWNoKSlcclxuICAgIC5waXBlKGRlYm91bmNlVGltZSgxMDAwKSlcclxuICAgIC5zdWJzY3JpYmUoKGRhdGE6IGFueSkgPT4ge1xyXG4gICAgICBpZiAoZGF0YT8uY2xpZW50KSB7XHJcbiAgICAgICAgdGhpcy5keW5hbWljRGF0YS5jbGllbnRJZCA9IGRhdGEuY2xpZW50O1xyXG4gICAgICAgIHRoaXMuZ2V0Q2hlY2tMaXN0KClcclxuICAgICAgfSBlbHNle1xyXG4gICAgICAgIGxldCBkYXRhID0gSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnaGVhZGVyLWZpbHRlcnMnKSBhcyBzdHJpbmcpO1xyXG4gICAgICAgIHRoaXMuZHluYW1pY0RhdGEuY2xpZW50SWQgPSBkYXRhLmNsaWVudDtcclxuICAgICAgICB0aGlzLmdldENoZWNrTGlzdCgpXHJcbiAgICAgIH1cclxuIFxyXG4gICAgfSlcclxuICAgIHRoaXMuc2V0UGFnZURhdGEoKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5kZXRhY2gubmV4dCh0cnVlKTtcclxuICAgIHRoaXMuZGV0YWNoLmNvbXBsZXRlKCk7XHJcbiAgfVxyXG5cclxuICBzZXRQYWdlRGF0YSgpIHtcclxuICAgIHRoaXMucGFnZUluZm8uc2V0VGl0bGUoXCJNYW5hZ2UgQ2hlY2tsaXN0XCIpO1xyXG4gICAgdGhpcy5wYWdlSW5mby5zZXREZXNjcmlwdGlvbihcIkF1dG9tYXRlIG9yIGNyZWF0ZSBjaGVja2xpc3RzIHRvIGltcHJvdmUgb3BlcmF0aW9uYWwgZWZmaWNpZW5jeVwiKTtcclxuICAgIHRoaXMucGFnZUluZm8uc2V0QnJlYWRjcnVtYnMoW1xyXG4gICAgICB7IHRpdGxlOiBcIlRhbmdvIFRyYXhcIiwgcGF0aDogXCIvbWFuYWdlL3RyYXgvZGFzaGJvYXJkXCIsIGlzQWN0aXZlOiBmYWxzZSwgaXNTZXBhcmF0b3I6IGZhbHNlIH0sXHJcbiAgICAgIHsgdGl0bGU6IFwiVGFuZ28gVHJheFwiLCBwYXRoOiBcIi9tYW5hZ2UvdHJheC9kYXNoYm9hcmRcIiwgaXNBY3RpdmU6IGZhbHNlLCBpc1NlcGFyYXRvcjogdHJ1ZSB9XHJcbiAgICBdKTtcclxuICB9XHJcblxyXG4gIGdldENoZWNrTGlzdCgpIHtcclxuICAgIHRoaXMubG9hZGluZyA9IHRydWU7XHJcbiAgICB0aGlzLnRyYXhTZXJ2aWNlLmNoZWNrbGlzdCh0aGlzLmR5bmFtaWNEYXRhKS5waXBlKHRha2VVbnRpbCh0aGlzLmRldGFjaCkpPy5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OihyZXM6YW55KSA9PiB7XHJcbiAgICAgICAgaWYocmVzICYmIHJlcy5jb2RlID09IDIwMCAmJiByZXMuZGF0YS5yZXN1bHQubGVuZ3RoKSB7XHJcbiAgICAgICAgICB0aGlzLm5vRGF0YSA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLmNoZWNrbGlzdERhdGEgPSByZXMuZGF0YS5yZXN1bHQ7XHJcbiAgICAgICAgICB0aGlzLnRvdGFsSXRlbXMgPSByZXMuZGF0YS5jb3VudDtcclxuICAgICAgICAgIGlmKHRoaXMudG90YWxJdGVtcyA8IDEwKSB7XHJcbiAgICAgICAgICAgIHRoaXMucGFnaW5hdGlvblNpemVzID0gW3RoaXMudG90YWxJdGVtc107XHJcbiAgICAgICAgICAgIHRoaXMucGFnZVNpemUgPSB0aGlzLmNoZWNrbGlzdERhdGEubGVuZ3RoO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMucGFnaW5hdGlvblNpemVzID0gWzEwLDIwLDMwXTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMubm9EYXRhID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIGVycm9yOihlcnJvcjphbnkpID0+IHtcclxuICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLm5vRGF0YSA9IHRydWU7XHJcbiAgICAgICAgdGhpcy50b2FzdC5nZXRFcnJvclRvYXN0KGVycm9yLmVycm9yLmVycm9yKTtcclxuICAgICAgfVxyXG5cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgb25Tb3J0KGNvbHVtbjphbnkpIHtcclxuICAgIGlmICh0aGlzLmR5bmFtaWNEYXRhLnNvcnRDb2x1bW4gPT0gY29sdW1uKSB7XHJcbiAgICAgIHRoaXMuZHluYW1pY0RhdGEuc29ydEJ5ID0gdGhpcy5keW5hbWljRGF0YS5zb3J0QnkgPT0gMSA/IC0xIDogMTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICB0aGlzLmR5bmFtaWNEYXRhLnNvcnRDb2x1bW4gPSBjb2x1bW47XHJcbiAgICAgIHRoaXMuZHluYW1pY0RhdGEuc29ydEJ5ID0gMTtcclxuICAgIH1cclxuICAgIHRoaXMuZ2V0Q2hlY2tMaXN0KCk7XHJcbiAgfVxyXG5cclxuICBvblBhZ2VDaGFuZ2UoZXZlbnQ6YW55KSB7XHJcbiAgICB0aGlzLmR5bmFtaWNEYXRhLm9mZnNldCA9IGV2ZW50O1xyXG4gICAgdGhpcy5nZXRDaGVja0xpc3QoKTtcclxuICB9XHJcblxyXG4gIG9uUGFnZVNpemVDaGFuZ2UoZXZlbnQ6YW55KSB7XHJcbiAgICB0aGlzLmR5bmFtaWNEYXRhLmxpbWl0ID0gZXZlbnQ7XHJcbiAgICB0aGlzLnBhZ2VTaXplID0gZXZlbnQ7XHJcbiAgICB0aGlzLmR5bmFtaWNEYXRhLm9mZnNldCA9IDE7XHJcbiAgICB0aGlzLmdldENoZWNrTGlzdCgpO1xyXG4gIH1cclxuXHJcbiAgcmVkaXJlY3QoZGF0YTogYW55LCBkZXRhaWxzOiBhbnksY2hlY2tMaXN0VHlwZT86YW55KSB7XHJcbiAgICBpZihkYXRhID09ICdlZGl0Jykge1xyXG4gICAgICB0aGlzLnJvdXRlLm5hdmlnYXRlQnlVcmwoYC9tYW5hZ2UvdHJheC9jcmVhdGVDaGVja2xpc3Q/Y2hlY2tsaXN0SWQ9JHtkZXRhaWxzfWApXHJcbiAgICB9XHJcbiAgICBlbHNlIGlmKGRhdGEgPT0gJ3NldHRpbmcnICYmICFjaGVja0xpc3RUeXBlKSB7XHJcbiAgICAgIHRoaXMucm91dGUubmF2aWdhdGVCeVVybChgL21hbmFnZS90cmF4L2NvbmZpZ3VyZT9jaGVja0xpc3RJZD0ke2RldGFpbHN9JmRpc2FibGVkUXVlc3Rpb249dHJ1ZWApXHJcbiAgICB9XHJcbiAgICBlbHNlIGlmKGRhdGEgPT0gJ3NldHRpbmcnICYmIGNoZWNrTGlzdFR5cGUpIHtcclxuICAgICAgdGhpcy5yb3V0ZS5uYXZpZ2F0ZUJ5VXJsKGAvbWFuYWdlL3RyYXgvY29uZmlndXJlP2FpY2hlY2tMaXN0SWQ9JHtkZXRhaWxzfSZkaXNhYmxlZFF1ZXN0aW9uPXRydWUmdHlwZT0ke2NoZWNrTGlzdFR5cGV9YClcclxuICAgIH1cclxuICAgIGVsc2UgaWYoZGF0YSA9PSAnZHVwbGljYXRlJykge1xyXG4gICAgICBjb25zdCBwb3B1cGNvbnRlbnQgPSB7XHJcbiAgICAgICAgZGlzcGxheXByb3A6IGZhbHNlLFxyXG4gICAgICAgIGltYWdlc3JjOiAnPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIzNlwiIGhlaWdodD1cIjM2XCIgdmlld0JveD1cIjAgMCAzNiAzNlwiIGZpbGw9XCJub25lXCI+PHJlY3QgeD1cIjJcIiB5PVwiMlwiIHdpZHRoPVwiMzJcIiBoZWlnaHQ9XCIzMlwiIHJ4PVwiMTZcIiBmaWxsPVwiI0RBRjFGRlwiLz48ZyBjbGlwLXBhdGg9XCJ1cmwoI2NsaXAwXzU1NDVfNjc0MylcIj48cGF0aCBkPVwiTTEzLjMzMyAyMC4wMDA3SDEyLjY2NjNDMTIuMzEyNyAyMC4wMDA3IDExLjk3MzYgMTkuODYwMiAxMS43MjM1IDE5LjYxMDFDMTEuNDczNSAxOS4zNjAxIDExLjMzMyAxOS4wMjA5IDExLjMzMyAxOC42NjczVjEyLjY2NzNDMTEuMzMzIDEyLjMxMzcgMTEuNDczNSAxMS45NzQ2IDExLjcyMzUgMTEuNzI0NUMxMS45NzM2IDExLjQ3NDUgMTIuMzEyNyAxMS4zMzQgMTIuNjY2MyAxMS4zMzRIMTguNjY2M0MxOS4wMiAxMS4zMzQgMTkuMzU5MSAxMS40NzQ1IDE5LjYwOTIgMTEuNzI0NUMxOS44NTkyIDExLjk3NDYgMTkuOTk5NyAxMi4zMTM3IDE5Ljk5OTcgMTIuNjY3M1YxMy4zMzRNMTcuMzMzIDE2LjAwMDdIMjMuMzMzQzI0LjA2OTQgMTYuMDAwNyAyNC42NjYzIDE2LjU5NzYgMjQuNjY2MyAxNy4zMzRWMjMuMzM0QzI0LjY2NjMgMjQuMDcwNCAyNC4wNjk0IDI0LjY2NzMgMjMuMzMzIDI0LjY2NzNIMTcuMzMzQzE2LjU5NjYgMjQuNjY3MyAxNS45OTk3IDI0LjA3MDQgMTUuOTk5NyAyMy4zMzRWMTcuMzM0QzE1Ljk5OTcgMTYuNTk3NiAxNi41OTY2IDE2LjAwMDcgMTcuMzMzIDE2LjAwMDdaXCIgc3Ryb2tlPVwiIzAwQTNGRlwiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+PC9nPjxyZWN0IHg9XCIyXCIgeT1cIjJcIiB3aWR0aD1cIjMyXCIgaGVpZ2h0PVwiMzJcIiByeD1cIjE2XCIgc3Ryb2tlPVwiI0VBRjhGRlwiIHN0cm9rZS13aWR0aD1cIjRcIi8+PGRlZnM+PGNsaXBQYXRoIGlkPVwiY2xpcDBfNTU0NV82NzQzXCI+PHJlY3Qgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCIgZmlsbD1cIndoaXRlXCIgdHJhbnNmb3JtPVwidHJhbnNsYXRlKDEwIDEwKVwiLz48L2NsaXBQYXRoPjwvZGVmcz48L3N2Zz4nLFxyXG4gICAgICAgIHRpdGxlOiBgRHVwbGljYXRlICcke2RldGFpbHMuY2hlY2tMaXN0TmFtZX0gU2VjdGlvbic/YCxcclxuICAgICAgICBjb250ZW50OiBgQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGR1cGxpY2F0ZSA8Yj4nJHtkZXRhaWxzLmNoZWNrTGlzdE5hbWV9Jz88L2I+IFRoaXMgYWN0aW9uIGNhbm5vdCBiZSB1bmRvbmUuYCxcclxuICAgICAgICBidXR0b250eXBlOiAnZHVwbGljYXRlJ1xyXG4gICAgICB9XHJcbiAgICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oVHJheHBvcHVwQ29tcG9uZW50LCB7Y2VudGVyZWQ6dHJ1ZSxzaXplOidtZCd9KTtcclxuICAgICAgZGlhbG9nUmVmLmNvbXBvbmVudEluc3RhbmNlLmRhdGEgPSBwb3B1cGNvbnRlbnQ7XHJcbiAgICAgIGRpYWxvZ1JlZi5yZXN1bHQudGhlbigocmVzKSA9PiB7IFxyXG4gICAgICAgIGlmIChyZXMgPT0gJ2R1cGxpY2F0ZScpIHtcclxuICAgICAgICAgIHRoaXMudHJheFNlcnZpY2UuZHVwbGljYXRlY2hlY2tsaXN0KHtjaGVja2xpc3RJZDpkZXRhaWxzLl9pZCxjbGllbnRJZDp0aGlzLmR5bmFtaWNEYXRhLmNsaWVudElkfSkucGlwZSh0YWtlVW50aWwodGhpcy5kZXRhY2gpKT8uc3Vic2NyaWJlKHtcclxuICAgICAgICAgICAgbmV4dDoocmVzOmFueSkgPT4ge1xyXG4gICAgICAgICAgICAgIGlmKHJlcyAmJiByZXMuY29kZSA9PSAyMDApIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuZ2V0Q2hlY2tMaXN0KCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnRvYXN0LmdldFN1Y2Nlc3NUb2FzdChgJHtkZXRhaWxzLmNoZWNrTGlzdE5hbWV9IGhhcyBiZWVuIGR1cGxpY2F0ZWQuYCk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBlcnJvcjooZXJyb3I6YW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgbGV0IGVyciA9IGVycm9yPy5lcnJvcj8uZXJyb3IgfHwgJ1NvbWV0aGluZyB3ZW50IHdyb25nJztcclxuICAgICAgICAgICAgICB0aGlzLnRvYXN0LmdldEVycm9yVG9hc3QoZXJyKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICBjb25zdCBwb3B1cGNvbnRlbnQgPSB7XHJcbiAgICAgICAgZGlzcGxheXByb3A6IGZhbHNlLFxyXG4gICAgICAgIGltYWdlc3JjOiAnPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIzNlwiIGhlaWdodD1cIjM2XCIgdmlld0JveD1cIjAgMCAzNiAzNlwiIGZpbGw9XCJub25lXCI+PHJlY3QgeD1cIjJcIiB5PVwiMlwiIHdpZHRoPVwiMzJcIiBoZWlnaHQ9XCIzMlwiIHJ4PVwiMTZcIiBmaWxsPVwiI0ZFRTRFMlwiLz48cGF0aCBkPVwiTTEyIDE0LjAwMDdIMTMuMzMzM00xMy4zMzMzIDE0LjAwMDdIMjRNMTMuMzMzMyAxNC4wMDA3VjIzLjMzNEMxMy4zMzMzIDIzLjY4NzYgMTMuNDczOCAyNC4wMjY3IDEzLjcyMzkgMjQuMjc2OEMxMy45NzM5IDI0LjUyNjggMTQuMzEzIDI0LjY2NzMgMTQuNjY2NyAyNC42NjczSDIxLjMzMzNDMjEuNjg3IDI0LjY2NzMgMjIuMDI2MSAyNC41MjY4IDIyLjI3NjEgMjQuMjc2OEMyMi41MjYyIDI0LjAyNjcgMjIuNjY2NyAyMy42ODc2IDIyLjY2NjcgMjMuMzM0VjE0LjAwMDdIMTMuMzMzM1pNMTUuMzMzMyAxNC4wMDA3VjEyLjY2NzNDMTUuMzMzMyAxMi4zMTM3IDE1LjQ3MzggMTEuOTc0NiAxNS43MjM5IDExLjcyNDVDMTUuOTczOSAxMS40NzQ1IDE2LjMxMyAxMS4zMzQgMTYuNjY2NyAxMS4zMzRIMTkuMzMzM0MxOS42ODcgMTEuMzM0IDIwLjAyNjEgMTEuNDc0NSAyMC4yNzYxIDExLjcyNDVDMjAuNTI2MiAxMS45NzQ2IDIwLjY2NjcgMTIuMzEzNyAyMC42NjY3IDEyLjY2NzNWMTQuMDAwN00xNi42NjY3IDE3LjMzNFYyMS4zMzRNMTkuMzMzMyAxNy4zMzRWMjEuMzM0XCIgc3Ryb2tlPVwiI0Q5MkQyMFwiIHN0cm9rZS13aWR0aD1cIjEuMzMzMzNcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+PHJlY3QgeD1cIjJcIiB5PVwiMlwiIHdpZHRoPVwiMzJcIiBoZWlnaHQ9XCIzMlwiIHJ4PVwiMTZcIiBzdHJva2U9XCIjRkVGM0YyXCIgc3Ryb2tlLXdpZHRoPVwiNFwiLz48L3N2Zz4nLFxyXG4gICAgICAgIHRpdGxlOiBgRGVsZXRlICcke2RldGFpbHMuY2hlY2tMaXN0TmFtZX0gU2VjdGlvbic/YCxcclxuICAgICAgICBjb250ZW50OiBgQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRlbGV0ZSA8Yj4nJHtkZXRhaWxzLmNoZWNrTGlzdE5hbWV9Jz88L2I+IFRoaXMgYWN0aW9uIGNhbm5vdCBiZSB1bmRvbmUuYCxcclxuICAgICAgICBidXR0b250eXBlOiAnZGVsZXRlJ1xyXG4gICAgICB9XHJcbiAgICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oVHJheHBvcHVwQ29tcG9uZW50LCB7Y2VudGVyZWQ6dHJ1ZSxzaXplOidtZCd9KTtcclxuICAgICAgZGlhbG9nUmVmLmNvbXBvbmVudEluc3RhbmNlLmRhdGEgPSBwb3B1cGNvbnRlbnQ7XHJcbiAgICAgIGRpYWxvZ1JlZi5yZXN1bHQudGhlbigocmVzKSA9PiB7IFxyXG4gICAgICAgIGlmIChyZXMgPT0gJ2RlbGV0ZScpIHtcclxuICAgICAgICAgIHRoaXMudHJheFNlcnZpY2UuZGVsZXRlQ2hlY2tsaXN0KHtpZDpkZXRhaWxzLl9pZCxjbGllbnRJZDp0aGlzLmR5bmFtaWNEYXRhLmNsaWVudElkfSkucGlwZSh0YWtlVW50aWwodGhpcy5kZXRhY2gpKT8uc3Vic2NyaWJlKHtcclxuICAgICAgICAgICAgbmV4dDoocmVzOmFueSkgPT4ge1xyXG4gICAgICAgICAgICAgIGlmKHJlcyAmJiByZXMuY29kZSA9PSAyMDApIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuZ2V0Q2hlY2tMaXN0KCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnRvYXN0LmdldFN1Y2Nlc3NUb2FzdChgJHtkZXRhaWxzLmNoZWNrTGlzdE5hbWV9IGhhcyBiZWVuIERlbGV0ZWQuYCk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBlcnJvcjooZXJyb3I6YW55KSA9PntcclxuICAgICAgICAgICAgICBsZXQgZXJyID0gZXJyb3I/LmVycm9yPy5lcnJvciB8fCAnU29tZXRoaW5nIHdlbnQgd3JvbmcnO1xyXG4gICAgICAgICAgICAgIHRoaXMudG9hc3QuZ2V0RXJyb3JUb2FzdChlcnIpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGlzaChldmVudDphbnksZGF0YTphbnksaTpudW1iZXIpIHtcclxuICAgIGxldCBwb3B1cGNvbnRlbnQ7XHJcbiAgICBsZXQgaHRtbENvbnRlbnQ6YW55O1xyXG4gICAgaWYoZXZlbnQudGFyZ2V0LmNoZWNrZWQpIHtcclxuICAgICAgcG9wdXBjb250ZW50ID0ge1xyXG4gICAgICAgIGRpc3BsYXlwcm9wOiBmYWxzZSxcclxuICAgICAgICBpbWFnZXNyYzogJzxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiNTZcIiBoZWlnaHQ9XCI1NlwiIHZpZXdCb3g9XCIwIDAgNTYgNTZcIiBmaWxsPVwibm9uZVwiPjxyZWN0IHg9XCI0XCIgeT1cIjRcIiB3aWR0aD1cIjQ4XCIgaGVpZ2h0PVwiNDhcIiByeD1cIjI0XCIgZmlsbD1cIiNEMUZBREZcIi8+PHBhdGggZD1cIk0zOCAyNy4wODE4VjI4LjAwMThDMzcuOTk4OCAzMC4xNTgyIDM3LjMwMDUgMzIuMjU2NSAzNi4wMDkzIDMzLjk4MzZDMzQuNzE4MiAzNS43MTA4IDMyLjkwMzMgMzYuOTc0MyAzMC44MzU0IDM3LjU4NTdDMjguNzY3NCAzOC4xOTcxIDI2LjU1NzMgMzguMTIzNyAyNC41MzQ1IDM3LjM3NjRDMjIuNTExNyAzNi42MjkxIDIwLjc4NDcgMzUuMjQ3OSAxOS42MTEgMzMuNDM4OUMxOC40MzczIDMxLjYyOTkgMTcuODc5OCAyOS40ODk5IDE4LjAyMTcgMjcuMzM4MUMxOC4xNjM2IDI1LjE4NjQgMTguOTk3MiAyMy4xMzgxIDIwLjM5ODMgMjEuNDk4OUMyMS43OTk0IDE5Ljg1OTYgMjMuNjkyOCAxOC43MTcyIDI1Ljc5NjIgMTguMjQyQzI3Ljg5OTYgMTcuNzY2NyAzMC4xMDAzIDE3Ljk4NDIgMzIuMDcgMTguODYxOE0zOCAyMC4wMDE4TDI4IDMwLjAxMThMMjUgMjcuMDExOFwiIHN0cm9rZT1cIiMwMzk4NTVcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPjxyZWN0IHg9XCI0XCIgeT1cIjRcIiB3aWR0aD1cIjQ4XCIgaGVpZ2h0PVwiNDhcIiByeD1cIjI0XCIgc3Ryb2tlPVwiI0VDRkRGM1wiIHN0cm9rZS13aWR0aD1cIjhcIi8+PC9zdmc+JyxcclxuICAgICAgICB0aXRsZTogYEFyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBwdWJsaXNoICcke2RhdGEuY2hlY2tMaXN0TmFtZX0nIGNoZWNrbGlzdD9gLFxyXG4gICAgICAgIGNvbnRlbnQ6IGBQdWJsaXNoaW5nIHdpbGwgbWFrZSB0aGlzIGNoZWNrbGlzdCBsaXZlLCBhbmQgY2hhbmdlcyB3aWxsIHRha2UgZWZmZWN0IGltbWVkaWF0ZWx5LmAsXHJcbiAgICAgICAgYnV0dG9udHlwZTogJ2NvbmZpcm0nXHJcbiAgICAgIH1cclxuICAgICAgaHRtbENvbnRlbnQ9IGAke2RhdGEuY2hlY2tMaXN0TmFtZX0gaGFzIGJlZW4gcHVibGlzaGVkPC9kaXY+YDtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICBwb3B1cGNvbnRlbnQgPSB7XHJcbiAgICAgICAgZGlzcGxheXByb3A6IGZhbHNlLFxyXG4gICAgICAgIGltYWdlc3JjOiAnPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCI1NlwiIGhlaWdodD1cIjU2XCIgdmlld0JveD1cIjAgMCA1NiA1NlwiIGZpbGw9XCJub25lXCI+PHJlY3QgeD1cIjRcIiB5PVwiNFwiIHdpZHRoPVwiNDhcIiBoZWlnaHQ9XCI0OFwiIHJ4PVwiMjRcIiBmaWxsPVwiI0ZFRjBDN1wiLz48cGF0aCBkPVwiTTI3Ljk5OTggMjQuMDAxMlYyOC4wMDEyTTI3Ljk5OTggMzIuMDAxMkgyOC4wMDk4TTI2LjI4OTggMTguODYxMkwxNy44MTk4IDMzLjAwMTJDMTcuNjQ1MSAzMy4zMDM2IDE3LjU1MjcgMzMuNjQ2NSAxNy41NTE4IDMzLjk5NTdDMTcuNTUwOCAzNC4zNDQ5IDE3LjY0MTMgMzQuNjg4MyAxNy44MTQyIDM0Ljk5MTdDMTcuOTg3MSAzNS4yOTUxIDE4LjIzNjUgMzUuNTQ3OSAxOC41Mzc1IDM1LjcyNUMxOC44Mzg1IDM1LjkwMjEgMTkuMTgwNiAzNS45OTczIDE5LjUyOTggMzYuMDAxMkgzNi40Njk4QzM2LjgxOSAzNS45OTczIDM3LjE2MTEgMzUuOTAyMSAzNy40NjIxIDM1LjcyNUMzNy43NjMxIDM1LjU0NzkgMzguMDEyNCAzNS4yOTUxIDM4LjE4NTQgMzQuOTkxN0MzOC4zNTgzIDM0LjY4ODMgMzguNDQ4OCAzNC4zNDQ5IDM4LjQ0NzggMzMuOTk1N0MzOC40NDY4IDMzLjY0NjUgMzguMzU0NCAzMy4zMDM2IDM4LjE3OTggMzMuMDAxMkwyOS43MDk4IDE4Ljg2MTJDMjkuNTMxNSAxOC41NjczIDI5LjI4MDUgMTguMzI0MyAyOC45ODEgMTguMTU1N0MyOC42ODE0IDE3Ljk4NyAyOC4zNDM1IDE3Ljg5ODQgMjcuOTk5OCAxNy44OTg0QzI3LjY1NiAxNy44OTg0IDI3LjMxODEgMTcuOTg3IDI3LjAxODYgMTguMTU1N0MyNi43MTkxIDE4LjMyNDMgMjYuNDY4IDE4LjU2NzMgMjYuMjg5OCAxOC44NjEyWlwiIHN0cm9rZT1cIiNEQzY4MDNcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPjxyZWN0IHg9XCI0XCIgeT1cIjRcIiB3aWR0aD1cIjQ4XCIgaGVpZ2h0PVwiNDhcIiByeD1cIjI0XCIgc3Ryb2tlPVwiI0ZGRkFFQlwiIHN0cm9rZS13aWR0aD1cIjhcIi8+PC9zdmc+JyxcclxuICAgICAgICB0aXRsZTogYEFyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byB1bnB1Ymxpc2gg4oCYJHtkYXRhLmNoZWNrTGlzdE5hbWV94oCZIGNoZWNrbGlzdD9gLFxyXG4gICAgICAgIGNvbnRlbnQ6IGBVbnB1Ymxpc2hpbmcgd2lsbCByZW1vdmUgdGhpcyBjaGVja2xpc3QgaW1tZWRpYXRlbHksIGFuZCBpdCB3aWxsIG5vIGxvbmdlciBiZSB2aXNpYmxlIHRvIGFzc2lnbmVkIGxvY2F0aW9ucy5gLFxyXG4gICAgICAgIGJ1dHRvbnR5cGU6ICdjb25maXJtJ1xyXG4gICAgICB9XHJcbiAgICAgIGh0bWxDb250ZW50PSBgJHtkYXRhLmNoZWNrTGlzdE5hbWV9IGhhcyBiZWVuIHVucHVibGlzaGVkYDtcclxuICAgIH1cclxuICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oVHJheHBvcHVwQ29tcG9uZW50LCB7XHJcbiAgICAgIGNlbnRlcmVkOnRydWUsc2l6ZTonbWQnIFxyXG4gICAgfSk7XHJcbiAgICBkaWFsb2dSZWYuY29tcG9uZW50SW5zdGFuY2UuZGF0YSA9IHBvcHVwY29udGVudDtcclxuICAgIGRpYWxvZ1JlZi5yZXN1bHQudGhlbigocmVzKSA9PiB7XHJcbiAgICAgIGlmIChyZXMgPT0gJ2NvbmZpcm0nKSB7XHJcbiAgICAgICAgdGhpcy50cmF4U2VydmljZS5wdWJsaXNoKHtwdWJsaXNoOiBldmVudC50YXJnZXQuY2hlY2tlZCxjbGllbnRJZDp0aGlzLmR5bmFtaWNEYXRhLmNsaWVudElkLGNoZWNrbGlzdElkOmRhdGEuX2lkfSkucGlwZSh0YWtlVW50aWwodGhpcy5kZXRhY2gpKS5zdWJzY3JpYmUoKHJlc3VsdDphbnkpID0+e1xyXG4gICAgICAgICAgaWYocmVzdWx0ICYmIHJlc3VsdC5jb2RlID09IDIwMCkge1xyXG4gICAgICAgICAgICB0aGlzLmdldENoZWNrTGlzdCgpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIGV2ZW50LnRhcmdldC5jaGVja2VkID0gZGF0YS5wdWJsaXNoXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSwoZXJyb3I6YW55KSA9PiB7XHJcbiAgICAgICAgICBldmVudC50YXJnZXQuY2hlY2tlZCA9IGRhdGEucHVibGlzaDtcclxuICAgICAgICAgIGxldCBlcnIgPSBlcnJvcj8uZXJyb3I/LmVycm9yIHx8ICdQbGVhc2UgdHJ5IGFmdGVyIHNvbWV0aW1lcyc7XHJcbiAgICAgICAgICB0aGlzLnRvYXN0LmdldEVycm9yVG9hc3QoZXJyKTtcclxuICAgICAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgIH0pXHJcbiAgICAgIH0gXHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIGV2ZW50LnRhcmdldC5jaGVja2VkID0gZGF0YS5wdWJsaXNoO1xyXG4gICAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICB9IFxyXG4gICAgfSlcclxuICB9XHJcblxyXG5cclxuICBzZWFyY2goKSB7XHJcbiAgICB0aGlzLmR5bmFtaWNEYXRhLm9mZnNldCA9IDE7XHJcbiAgICB0aGlzLmR5bmFtaWNEYXRhLmxpbWl0ID0gMTA7XHJcbiAgICB0aGlzLnBhZ2VTaXplID0gMTA7XHJcbiAgICB0aGlzLmR5bmFtaWNEYXRhLnNvcnRDb2x1bW4gPSAnJztcclxuICAgIHRoaXMuZHluYW1pY0RhdGEuc29ydEJ5ID0gJyc7XHJcbiAgICB0aGlzLmdldENoZWNrTGlzdCgpO1xyXG4gIH1cclxuXHJcbiAgcmVkaXJlY3RVcmwodHlwZTphbnkpIHtcclxuICAgIHRoaXMucm91dGUubmF2aWdhdGVCeVVybChgL21hbmFnZS90cmF4L2NoZWNrbGlzdC9tYW5hZ2VjaGVja2xpc3Q/dHlwZT0ke3R5cGV9YClcclxuICB9XHJcblxyXG4gIGNoZWNrUGVybWlzc2lvbih0eXBlOiBhbnksIGRhdGE6IGFueSkge1xyXG4gICAgY29uc3Qgc3ViID0gIHRoaXMuZ3MudXNlckFjY2Vzcy5waXBlKG1hcCgodmFsKT0+e1xyXG4gICAgICBpZih2YWw/LlRhbmdvVHJheF9jaGVja2xpc3RfaXNFZGl0KXtcclxuICAgICAgICBpZihkYXRhLmNoZWNrTGlzdFR5cGUgPT0gJ2N1c3RvbScpIHtcclxuICAgICAgICAgIGlmKFsnZWRpdCcsJ2RlbGV0ZSddLmluY2x1ZGVzKHR5cGUpICYmICFkYXRhLnB1Ymxpc2gpIHtcclxuICAgICAgICAgICAgZGF0YSA9IHR5cGUgPT0gJ2VkaXQnID8gZGF0YS5faWQgOiBkYXRhO1xyXG4gICAgICAgICAgICB0aGlzLnJlZGlyZWN0KHR5cGUsZGF0YSlcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmKFsnZHVwbGljYXRlJywnc2V0dGluZyddLmluY2x1ZGVzKHR5cGUpKSB7XHJcbiAgICAgICAgICAgIGRhdGEgPSB0eXBlID09ICdzZXR0aW5nJyA/IGRhdGEuX2lkIDogZGF0YTtcclxuICAgICAgICAgICAgdGhpcy5yZWRpcmVjdCh0eXBlLGRhdGEpXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfWVsc2UgaWYoZGF0YS5jaGVja0xpc3RUeXBlICE9PSAnY3VzdG9tJykge1xyXG4gICAgICAgICAgICBjb25zdCBpZCA9IHR5cGUgPT0gJ3NldHRpbmcnID8gZGF0YS5faWQgOiBkYXRhO1xyXG4gICAgICAgICAgICB0aGlzLnJlZGlyZWN0KHR5cGUsaWQsZGF0YT8uY2hlY2tMaXN0VHlwZSlcclxuICAgICAgICAgIH1cclxuICAgICAgfSBcclxuICAgIH0pKS5zdWJzY3JpYmUoKVxyXG5cclxuICAgIHN1Yi51bnN1YnNjcmliZSgpXHJcbiAgfVxyXG4gIFxyXG5cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiY2FyZCBwLTUgbWItMTBcIiAqbmdJZj1cIihncy51c2VyQWNjZXNzIHwgYXN5bmMpPy5UYW5nb1RyYXhfY2hlY2tsaXN0X2lzQWRkXCI+XHJcblxyXG4gICAgPCEtLSA8ZGl2IGNsYXNzPVwiY2FyZC10aXRsZSBtdC0zXCI+XHJcbiAgICAgICAgPGgxIGNsYXNzPVwiIG15LTAgY2hlY2tsaXN0VGl0bGVcIj5cclxuICAgICAgICAgICAgTWFuYWdlIFlvdXIgQ2hlY2tsaXN0XHJcbiAgICAgICAgPC9oMT5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibXQtMSBjaGVja2xpc3RIZWFkXCI+WW91IGNhbiBjcmVhdGUgYW5kIG1hbmFnZSB5b3VyIGNoZWNrbGlzdCBoZXJlPC9kaXY+XHJcbiAgICA8L2Rpdj4gLS0+XHJcbiAgICA8ZGl2IGNsYXNzPVwicm93IG10LTEwXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC00XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0yIGNoZWNrbGlzdEhlYWRcIj5cclxuICAgICAgICAgICAgICAgIENyZWF0ZSB5b3VyIG93biBcclxuICAgICAgICAgICAgICAgIDwhLS0gPHNwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTcuNTc2MyA3LjUwMDMzQzcuNzcyMjIgNi45NDMzOCA4LjE1ODkzIDYuNDczNzUgOC42Njc5MyA2LjE3NDZDOS4xNzY5MyA1Ljg3NTQ2IDkuNzc1MzggNS43NjYxMSAxMC4zNTczIDUuODY1OTJDMTAuOTM5MiA1Ljk2NTczIDExLjQ2NyA2LjI2ODI2IDExLjg0NzIgNi43MTk5M0MxMi4yMjc0IDcuMTcxNiAxMi40MzU1IDcuNzQzMjYgMTIuNDM0NiA4LjMzMzY2QzEyLjQzNDYgMTAuMDAwMyA5LjkzNDY0IDEwLjgzMzcgOS45MzQ2NCAxMC44MzM3TTEwLjAwMTMgMTQuMTY3SDEwLjAwOTZNMTguMzM0NiAxMC4wMDAzQzE4LjMzNDYgMTQuNjAyNyAxNC42MDM3IDE4LjMzMzcgMTAuMDAxMyAxOC4zMzM3QzUuMzk4OTMgMTguMzMzNyAxLjY2Nzk3IDE0LjYwMjcgMS42Njc5NyAxMC4wMDAzQzEuNjY3OTcgNS4zOTc5NSA1LjM5ODkzIDEuNjY2OTkgMTAuMDAxMyAxLjY2Njk5QzE0LjYwMzcgMS42NjY5OSAxOC4zMzQ2IDUuMzk3OTUgMTguMzM0NiAxMC4wMDAzWlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMS42N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+IC0tPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQgY2FyZC1mbHVzaCByb3VuZGVkIHJvdW5kZWQtNFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIiB0ZXh0LWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPVwiZC1ibG9ja1wiIGRhdGEtZnNsaWdodGJveD1cImxpZ2h0Ym94LWhvdC1zYWxlc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtyb3V0ZXJMaW5rXT1cIicvbWFuYWdlL3RyYXgvY3JlYXRlQ2hlY2tsaXN0J1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9XCIuL2Fzc2V0cy90YW5nby9JbWFnZXMvbmV3Q2hlY2tsaXN0LnN2Z1wiICBjbGFzcz1cInctMTAwIGJvcmRlckNsYXNzXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1lbmQgZmxleC1zdGFjayBtdC04IG1iLThcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtc3RhcnQgbXgtNlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjaGVja2xpc3RUZXh0XCI+Q3JlYXRlIE5ldyBDaGVja2xpc3RzPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTRcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTIgY2hlY2tsaXN0SGVhZFwiPlxyXG4gICAgICAgICAgICAgICAgQ29uZmlndXJlIFByZWRlZmluZWQgQ2hlY2tsaXN0XHJcbiAgICAgICAgICAgICAgICA8IS0tIDxzcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk03LjU3NjMgNy41MDAzM0M3Ljc3MjIyIDYuOTQzMzggOC4xNTg5MyA2LjQ3Mzc1IDguNjY3OTMgNi4xNzQ2QzkuMTc2OTMgNS44NzU0NiA5Ljc3NTM4IDUuNzY2MTEgMTAuMzU3MyA1Ljg2NTkyQzEwLjkzOTIgNS45NjU3MyAxMS40NjcgNi4yNjgyNiAxMS44NDcyIDYuNzE5OTNDMTIuMjI3NCA3LjE3MTYgMTIuNDM1NSA3Ljc0MzI2IDEyLjQzNDYgOC4zMzM2NkMxMi40MzQ2IDEwLjAwMDMgOS45MzQ2NCAxMC44MzM3IDkuOTM0NjQgMTAuODMzN00xMC4wMDEzIDE0LjE2N0gxMC4wMDk2TTE4LjMzNDYgMTAuMDAwM0MxOC4zMzQ2IDE0LjYwMjcgMTQuNjAzNyAxOC4zMzM3IDEwLjAwMTMgMTguMzMzN0M1LjM5ODkzIDE4LjMzMzcgMS42Njc5NyAxNC42MDI3IDEuNjY3OTcgMTAuMDAwM0MxLjY2Nzk3IDUuMzk3OTUgNS4zOTg5MyAxLjY2Njk5IDEwLjAwMTMgMS42NjY5OUMxNC42MDM3IDEuNjY2OTkgMTguMzM0NiA1LjM5Nzk1IDE4LjMzNDYgMTAuMDAwM1pcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjEuNjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPC9zcGFuPiAtLT5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkIGNhcmQtZmx1c2ggcm91bmRlZCByb3VuZGVkLTQgY3Vyc29yLXBvaW50ZXJcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCIgdGV4dC1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8IS0tIGhyZWY9XCIvc29wL0NvbmZpZ3VyZT90eXBlPW1vYmlsZXVzYWdlZGV0ZWN0aW9uXCIgLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgPGEgKGNsaWNrKT1cInJlZGlyZWN0VXJsKCdwcmVkZWZpbmVkJylcIiBjbGFzcz1cImQtYmxvY2sgdy0xMDBcIiBkYXRhLWZzbGlnaHRib3g9XCJsaWdodGJveC1ob3Qtc2FsZXNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiLi9hc3NldHMvdGFuZ28vSW1hZ2VzL3ByZWRlZmluZWQuc3ZnXCIgY2xhc3M9XCJ3LTEwMCBib3JkZXJDbGFzc1wiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtZW5kIGZsZXgtc3RhY2sgbXQtOCBtYi04IFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1zdGFydCBteC02XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNoZWNrbGlzdFRleHRcIj5DaG9vc2UgZnJvbSBhIGxpYnJhcnkgb2YgdGVtcGxhdGVzPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTRcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTIgY2hlY2tsaXN0SGVhZCBcIj5cclxuICAgICAgICAgICAgICAgIENvbmZpZ3VyZSB5b3VyIFByZWRlZmluZWQgQUkgY2hlY2tsaXN0XHJcbiAgICAgICAgICAgICAgICA8IS0tIDxzcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk03LjU3NjMgNy41MDAzM0M3Ljc3MjIyIDYuOTQzMzggOC4xNTg5MyA2LjQ3Mzc1IDguNjY3OTMgNi4xNzQ2QzkuMTc2OTMgNS44NzU0NiA5Ljc3NTM4IDUuNzY2MTEgMTAuMzU3MyA1Ljg2NTkyQzEwLjkzOTIgNS45NjU3MyAxMS40NjcgNi4yNjgyNiAxMS44NDcyIDYuNzE5OTNDMTIuMjI3NCA3LjE3MTYgMTIuNDM1NSA3Ljc0MzI2IDEyLjQzNDYgOC4zMzM2NkMxMi40MzQ2IDEwLjAwMDMgOS45MzQ2NCAxMC44MzM3IDkuOTM0NjQgMTAuODMzN00xMC4wMDEzIDE0LjE2N0gxMC4wMDk2TTE4LjMzNDYgMTAuMDAwM0MxOC4zMzQ2IDE0LjYwMjcgMTQuNjAzNyAxOC4zMzM3IDEwLjAwMTMgMTguMzMzN0M1LjM5ODkzIDE4LjMzMzcgMS42Njc5NyAxNC42MDI3IDEuNjY3OTcgMTAuMDAwM0MxLjY2Nzk3IDUuMzk3OTUgNS4zOTg5MyAxLjY2Njk5IDEwLjAwMTMgMS42NjY5OUMxNC42MDM3IDEuNjY2OTkgMTguMzM0NiA1LjM5Nzk1IDE4LjMzNDYgMTAuMDAwM1pcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjEuNjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPC9zcGFuPiAtLT5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkIGNhcmQtZmx1c2ggcm91bmRlZCByb3VuZGVkLTQgY3Vyc29yLXBvaW50ZXJcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCIgdGV4dC1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8IS0tIGhyZWY9XCIvc29wL0NvbmZpZ3VyZT90eXBlPW1vYmlsZXVzYWdlZGV0ZWN0aW9uXCIgLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgPGEgKGNsaWNrKT1cInJlZGlyZWN0VXJsKCdhaScpXCIgY2xhc3M9XCJkLWJsb2NrIHctMTAwXCIgZGF0YS1mc2xpZ2h0Ym94PVwibGlnaHRib3gtaG90LXNhbGVzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9XCIuL2Fzc2V0cy90YW5nby9JbWFnZXMvYWljaGVja2xpc3Quc3ZnXCIgY2xhc3M9XCJ3LTEwMCBib3JkZXJDbGFzc1wiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWVuZCBmbGV4LXN0YWNrIG10LTggbWItOFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1zdGFydCBteC02XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNoZWNrbGlzdFRleHRcIj5DaG9vc2UgZnJvbSBhIGxpYnJhcnkgb2YgQUkgQ2hlY2tsaXN0czwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+XHJcbjxkaXYgY2xhc3M9XCJjYXJkXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyIG10LTNcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1oZWFkZXIgYm9yZGVyLTAgcHQtMyBtYi01XCI+XHJcbiAgICAgICAgICAgIDxoMyBjbGFzcz1cImNhcmQtdGl0bGUgYWxpZ24taXRlbXMtc3RhcnQgZmxleC1jb2x1bW5cIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGl0bGUtdGV4dCBtYi0yXCI+Q2hlY2tsaXN0IEluZm88L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8IS0tIDxzcGFuIGNsYXNzPVwidGV4dC1zdWIgbWItMlwiPkJhc2VkIG9uIDA2IEphbiwgMjAyMuKAkyAxMyBKYW4sIDIwMjI8L3NwYW4+IC0tPlxyXG4gICAgICAgICAgICA8L2gzPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC10b29sYmFyXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgcG9zaXRpb24tcmVsYXRpdmUgbXktMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN2Zy1pY29uIHN2Zy1pY29uLTEgcG9zaXRpb24tYWJzb2x1dGUgbXMtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyNFwiIGhlaWdodD1cIjI0XCIgdmlld0JveD1cIjAgMCAyNCAyNFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCBvcGFjaXR5PVwiMC41XCIgeD1cIjE3LjAzNjVcIiB5PVwiMTUuMTIyM1wiIHdpZHRoPVwiOC4xNTU0NlwiIGhlaWdodD1cIjJcIiByeD1cIjFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm09XCJyb3RhdGUoNDUgMTcuMDM2NSAxNS4xMjIzKVwiIGZpbGw9XCJjdXJyZW50Q29sb3JcIj48L3JlY3Q+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xMSAxOUM2LjU1NTU2IDE5IDMgMTUuNDQ0NCAzIDExQzMgNi41NTU1NiA2LjU1NTU2IDMgMTEgM0MxNS40NDQ0IDMgMTkgNi41NTU1NiAxOSAxMUMxOSAxNS40NDQ0IDE1LjQ0NDQgMTkgMTEgMTlaTTExIDVDNy41MzMzMyA1IDUgNy41MzMzMyA1IDExQzUgMTQuNDY2NyA3LjUzMzMzIDE3IDExIDE3QzE0LjQ2NjcgMTcgMTcgMTQuNDY2NyAxNyAxMUMxNyA3LjUzMzMzIDE0LjQ2NjcgNSAxMSA1WlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIj48L3BhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2wgcHMtMTQgbWUtMlwiIGF1dG9jb21wbGV0ZT1cIm9mZlwiIHBsYWNlaG9sZGVyPVwiU2VhcmNoXCIgWyhuZ01vZGVsKV09XCJkeW5hbWljRGF0YS5zZWFyY2hcIiAoY2hhbmdlKT1cInNlYXJjaCgpXCIvPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGEgW3JvdXRlckxpbmtdPVwiJy9tYW5hZ2UvdHJheC9jcmVhdGVDaGVja2xpc3QnXCIgdHlwZT1cImJ1dHRvblwiICpuZ0lmPVwiIW5vRGF0YSAmJiAoZ3MudXNlckFjY2VzcyB8IGFzeW5jKT8uVGFuZ29UcmF4X2NoZWNrbGlzdF9pc0FkZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBteC0yIGJ0bi1vdXRsaW5lIGJ0bi1vdXRsaW5lLWRlZmF1bHQgcm91bmRlZC0zIHRleHQtbm93cmFwIGJvcmRlci12YWxcIj48c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTEwLjAwMTMgNC4xNjY5OVYxNS44MzM3TTQuMTY3OTcgMTAuMDAwM0gxNS44MzQ2XCIgc3Ryb2tlPVwid2hpdGVcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPjxzcGFuIGNsYXNzPVwibXMtMlwiPkNyZWF0ZSBDaGVja2xpc3Q8L3NwYW4+IDwvYT5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2ICpuZ0lmPVwibG9hZGluZ1wiIGNsYXNzPVwicm93IGxvYWRlciBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNoaW1tZXJcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIHRpdGxlXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIGxpbmtcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgZGVzY3JpcHRpb25cIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNoaW1tZXJcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIHRpdGxlXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIGxpbmtcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgZGVzY3JpcHRpb25cIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTEyIHBiLTVcIiAqbmdJZj1cIiFsb2FkaW5nICYmIG5vRGF0YVwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5IHRleHQtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi4vYXNzZXRzL3RhbmdvL0ljb25zL05vZGF0YTEuc3ZnXCIgYWx0PVwiXCIgY2xhc3M9XCJzdGFydGNoZWNrbGlzdFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNoZWNrbGlzdF90ZXh0IGZ3LXNlbWlib2xkIG10LTYgY2hlY2tTdGFydFwiPlN0YXJ0IGJ5IGNyZWF0aW5nIGEgY2hlY2tsaXN0PC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hlY2tsaXN0X3NwYW4gbXQtMSBjaGVja2xpc3RIZWFkXCI+QW55IGNoZWNrbGlzdCBjcmVhdGVkIHdpbGwgbGl2ZSBoZXJlLjwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBkYXRhLWt0LXN1YnNjcmlwdGlvbi10YWJsZS10b29sYmFyPVwiYmFzZVwiIGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgIDxhIGhyZWY9XCJodHRwczovL3RhbmdvZXllLmFpL1wiIGNsYXNzPVwiYnRuLW91dGxpbmUgYnRuLW91dGxpbmUgYnRuIGJ0bi1saWdodCB1cGxvYWQgbXgtMyBweC0xNiBjaGVja1N0YXJ0XCI+PHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ1cGxvYWR0ZXh0XCI+SG93IFRvXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZT88L3NwYW4+PC9hPlxyXG5cclxuICAgICAgICAgICAgICAgIDxhIFtyb3V0ZXJMaW5rXT1cIicvbWFuYWdlL3RyYXgvY3JlYXRlQ2hlY2tsaXN0J1wiIHR5cGU9XCJidXR0b25cIiB0YWJpbmRleD1cIjBcIlxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IHB4LTE2IG14LTIgbmctc3Rhci1pbnNlcnRlZCBjaGVja1N0YXJ0XCIgc3R5bGU9XCJ3aGl0ZS1zcGFjZTogbm93cmFwO1wiICpuZ0lmPVwiKGdzLnVzZXJBY2Nlc3MgfCBhc3luYyk/LlRhbmdvVHJheF9jaGVja2xpc3RfaXNBZGRcIj48c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInN2Zy1pY29uIHN2Zy1pY29uLTJcIj48c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTEwLjAwMDEgNC4xNjYwMlYxNS44MzI3TTQuMTY2NzUgOS45OTkzNUgxNS44MzM0XCIgc3Ryb2tlPVwid2hpdGVcIiBzdHJva2Utd2lkdGg9XCIxLjY3XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz48L3NwYW4+PHNwYW4gY2xhc3M9XCJjcmVhdGVcIj5DcmVhdGUgTmV3PC9zcGFuPjwvYT5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiAqbmdJZj1cIiFub0RhdGEgJiYgIWxvYWRpbmdcIiBjYWxzcz1cImNhcmQtYm9keVwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFibGUtcmVzcG9uc2l2ZVwiPlxyXG4gICAgICAgICAgICAgICAgPHRhYmxlIGNsYXNzPVwidy0xMDAgdGFibGUgYm90dG9tLWJvcmRlciB0ZXh0LW5vd3JhcFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDx0aGVhZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHRyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImN1cnNvci1wb2ludGVyXCIgKGNsaWNrKT1cIm9uU29ydCgnY2hlY2tMaXN0TmFtZScpXCI+Q2hlY2tsaXN0IDxzdmdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cImR5bmFtaWNEYXRhLnNvcnRDb2x1bW4gPT09ICdjaGVja0xpc3ROYW1lJyAmJiBkeW5hbWljRGF0YS5zb3J0QnkgPT09IDEgPyAncm90YXRlJyA6ICcnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTguMDAwMTYgMy4zMzMzN1YxMi42NjY3TTguMDAwMTYgMTIuNjY2N0wxMi42NjY4IDguMDAwMDRNOC4wMDAxNiAxMi42NjY3TDMuMzMzNSA4LjAwMDA0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5zdHJva2VdPVwiZHluYW1pY0RhdGEuc29ydENvbHVtbiA9PT0gJ2NoZWNrTGlzdE5hbWUnID8gJyMwMEEzRkYnIDogJyM2NjcwODUnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2Utd2lkdGg9XCIxLjMzMzMzXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz1cImN1cnNvci1wb2ludGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiIChjbGljayk9XCJvblNvcnQoJ2NyZWF0ZWRCeU5hbWUnKVwiPkNoZWNrbGlzdCBPd25lciA8c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJkeW5hbWljRGF0YS5zb3J0Q29sdW1uID09PSAnY3JlYXRlZEJ5TmFtZScgJiYgZHluYW1pY0RhdGEuc29ydEJ5ID09PSAxID8gJ3JvdGF0ZScgOiAnJ1wiIHdpZHRoPVwiMTZcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMTZcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk04LjAwMDE2IDMuMzMzMzdWMTIuNjY2N004LjAwMDE2IDEyLjY2NjdMMTIuNjY2OCA4LjAwMDA0TTguMDAwMTYgMTIuNjY2N0wzLjMzMzUgOC4wMDAwNFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuc3Ryb2tlXT1cImR5bmFtaWNEYXRhLnNvcnRDb2x1bW4gPT09ICdjcmVhdGVkQnlOYW1lJyA/ICcjMDBBM0ZGJyA6ICcjNjY3MDg1J1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMS4zMzMzM1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwib25Tb3J0KCdjb3ZlcmFnZScpXCI+Q292ZXJhZ2UgPHN2Z1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiZHluYW1pY0RhdGEuc29ydENvbHVtbiA9PT0gJ2NvdmVyYWdlJyAmJiBkeW5hbWljRGF0YS5zb3J0QnkgPT09IDEgPyAncm90YXRlJyA6ICcnXCIgd2lkdGg9XCIxNlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIxNlwiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTguMDAwMTYgMy4zMzMzN1YxMi42NjY3TTguMDAwMTYgMTIuNjY2N0wxMi42NjY4IDguMDAwMDRNOC4wMDAxNiAxMi42NjY3TDMuMzMzNSA4LjAwMDA0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5zdHJva2VdPVwiZHluYW1pY0RhdGEuc29ydENvbHVtbiA9PT0gJ2NvdmVyYWdlJyA/ICcjMDBBM0ZGJyA6ICcjNjY3MDg1J1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMS4zMzMzM1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwib25Tb3J0KCdzdG9yZUNvdW50JylcIj5Bc3NpZ25lZCBUbyA8c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJkeW5hbWljRGF0YS5zb3J0Q29sdW1uID09PSAnc3RvcmVDb3VudCcgJiYgZHluYW1pY0RhdGEuc29ydEJ5ID09PSAxID8gJ3JvdGF0ZScgOiAnJ1wiIHdpZHRoPVwiMTZcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMTZcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk04LjAwMDE2IDMuMzMzMzdWMTIuNjY2N004LjAwMDE2IDEyLjY2NjdMMTIuNjY2OCA4LjAwMDA0TTguMDAwMTYgMTIuNjY2N0wzLjMzMzUgOC4wMDAwNFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuc3Ryb2tlXT1cImR5bmFtaWNEYXRhLnNvcnRDb2x1bW4gPT09ICdzdG9yZUNvdW50JyA/ICcjMDBBM0ZGJyA6ICcjNjY3MDg1J1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMS4zMzMzM1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwib25Tb3J0KCdxdWVzdGlvbkNvdW50JylcIj5Oby4gb2YgcXVlc3Rpb25zIDxzdmdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cImR5bmFtaWNEYXRhLnNvcnRDb2x1bW4gPT09ICdxdWVzdGlvbkNvdW50JyAmJiBkeW5hbWljRGF0YS5zb3J0QnkgPT09IDEgPyAncm90YXRlJyA6ICcnXCIgd2lkdGg9XCIxNlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIxNlwiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTguMDAwMTYgMy4zMzMzN1YxMi42NjY3TTguMDAwMTYgMTIuNjY2N0wxMi42NjY4IDguMDAwMDRNOC4wMDAxNiAxMi42NjY3TDMuMzMzNSA4LjAwMDA0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5zdHJva2VdPVwiZHluYW1pY0RhdGEuc29ydENvbHVtbiA9PT0gJ3F1ZXN0aW9uQ291bnQnID8gJyMwMEEzRkYnIDogJyM2NjcwODUnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2Utd2lkdGg9XCIxLjMzMzMzXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz1cImN1cnNvci1wb2ludGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiIChjbGljayk9XCJvblNvcnQoJ3N0YXR1cycpXCI+U3RhdHVzIDxzdmdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cImR5bmFtaWNEYXRhLnNvcnRDb2x1bW4gPT09ICdzdGF0dXMnICYmIGR5bmFtaWNEYXRhLnNvcnRCeSA9PT0gMSA/ICdyb3RhdGUnIDogJydcIiB3aWR0aD1cIjE2XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjE2XCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNOC4wMDAxNiAzLjMzMzM3VjEyLjY2NjdNOC4wMDAxNiAxMi42NjY3TDEyLjY2NjggOC4wMDAwNE04LjAwMDE2IDEyLjY2NjdMMy4zMzM1IDguMDAwMDRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLnN0cm9rZV09XCJkeW5hbWljRGF0YS5zb3J0Q29sdW1uID09PSAnc3RhdHVzJyA/ICcjMDBBM0ZGJyA6ICcjNjY3MDg1J1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMS4zMzMzM1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIj5BY3Rpb25zPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz1cImN1cnNvci1wb2ludGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiIChjbGljayk9XCJvblNvcnQoJ3B1Ymxpc2gnKVwiPlB1Ymxpc2ggPHN2Z1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiZHluYW1pY0RhdGEuc29ydENvbHVtbiA9PT0gJ3B1Ymxpc2gnICYmIGR5bmFtaWNEYXRhLnNvcnRCeSA9PT0gMSA/ICdyb3RhdGUnIDogJydcIiB3aWR0aD1cIjE2XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjE2XCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNOC4wMDAxNiAzLjMzMzM3VjEyLjY2NjdNOC4wMDAxNiAxMi42NjY3TDEyLjY2NjggOC4wMDAwNE04LjAwMDE2IDEyLjY2NjdMMy4zMzM1IDguMDAwMDRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLnN0cm9rZV09XCJkeW5hbWljRGF0YS5zb3J0Q29sdW1uID09PSAncHVibGlzaCcgPyAnIzAwQTNGRicgOiAnIzY2NzA4NSdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS13aWR0aD1cIjEuMzMzMzNcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdGhlYWQ+XHJcbiAgICAgICAgICAgICAgICAgICAgPHRib2R5PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dHIgKm5nRm9yPVwibGV0IGRhdGEgb2YgY2hlY2tsaXN0RGF0YTtsZXQgaT1pbmRleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSAoY2xpY2spPVwic3RvcmVWaWV3KG9iailcIiAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cInRleHQtY2FwaXRhbGl6ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzeW1ib2wgc3ltYm9sLTM1cHggc3ltYm9sLWNpcmNsZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN5bWJvbC1sYWJlbCBiZy1saWdodC1wcmltYXJ5IHRleHQtcHJpbWFyeSBtZS0yXCI+e3tkYXRhLmNoZWNrTGlzdENoYXIudG9VcHBlckNhc2UoKX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1kZWNvcmF0aW9uLXVuZGVybGluZSB0ZXh0LXByaW1hcnlcIiAqbmdJZj1cImRhdGE/LmNoZWNrTGlzdFR5cGUgPT09ICdjdXN0b20nXCI+PGEgW3JvdXRlckxpbmtdPVwiWycvbWFuYWdlL3RyYXgvZGFzaGJvYXJkL2luZm8nXVwiIFtxdWVyeVBhcmFtc109XCJ7dHlwZTogJ0NoZWNrbGlzdCcsIGNoZWNrbGlzdDogZGF0YS5faWQgfVwiIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIj4ge3tkYXRhLmNoZWNrTGlzdE5hbWV9fTwvYT48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXByaW1hcnlcIiAqbmdJZj1cImRhdGE/LmNoZWNrTGlzdFR5cGUgIT09ICdjdXN0b20nXCI+e3tkYXRhLmNoZWNrTGlzdE5hbWV9fSA8c3BhbiAqbmdJZj1cImRhdGE/LmNoZWNrTGlzdFR5cGUgIT09ICdjdXN0b20nXCIgY2xhc3M9XCJteC0yXCI+4pyoPC9zcGFuPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+e3tkYXRhLmNyZWF0ZWRCeU5hbWV9fTwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+e3tkYXRhPy5jb3ZlcmFnZX19PC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCA+e3tkYXRhLnN0b3JlQ291bnR9fTwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgPnt7ZGF0YS5xdWVzdGlvbkNvdW50fX08L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjxzcGFuIGNsYXNzPVwiYmFkZ2VcIiBbbmdDbGFzc109XCJkYXRhLnB1Ymxpc2ggPyAnYmFkZ2UtbGlnaHQtc3VjY2VzcycgOiAnYmFkZ2UtbGlnaHQtcHJpbWFyeSdcIj57eyhkYXRhLnB1Ymxpc2ggPyAnUHVibGlzaGVkJyA6J2RyYWZ0JykgfCB0aXRsZWNhc2V9fTwvc3Bhbj48L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWUtNlwiIFtuZ0NsYXNzXT1cIighZGF0YT8ucHVibGlzaCAmJiBkYXRhLmNoZWNrTGlzdFR5cGUgPT09ICdjdXN0b20nICYmIChncy51c2VyQWNjZXNzIHwgYXN5bmMpPy5UYW5nb1RyYXhfY2hlY2tsaXN0X2lzRWRpdCkgPyAnY3Vyc29yLXBvaW50ZXInIDogJydcIiAoY2xpY2spPVwiY2hlY2tQZXJtaXNzaW9uKCdlZGl0JyxkYXRhKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0wLjgzMjAzMSA5Ljk5OTY3QzAuODMyMDMxIDkuOTk5NjcgNC4xNjUzNiAzLjMzMzAxIDkuOTk4NyAzLjMzMzAxQzE1LjgzMiAzLjMzMzAxIDE5LjE2NTQgOS45OTk2NyAxOS4xNjU0IDkuOTk5NjdDMTkuMTY1NCA5Ljk5OTY3IDE1LjgzMiAxNi42NjYzIDkuOTk4NyAxNi42NjYzQzQuMTY1MzYgMTYuNjY2MyAwLjgzMjAzMSA5Ljk5OTY3IDAuODMyMDMxIDkuOTk5NjdaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5zdHJva2VdPVwiKCFkYXRhLnB1Ymxpc2ggJiYgZGF0YS5jaGVja0xpc3RUeXBlID09PSAnY3VzdG9tJyAmJiAoZ3MudXNlckFjY2VzcyB8IGFzeW5jKT8uVGFuZ29UcmF4X2NoZWNrbGlzdF9pc0VkaXQpID8gJyM2NjcwODUnIDogJyNEMEQ1REQnXCIgc3Ryb2tlLXdpZHRoPVwiMS42NjY2N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNOS45OTg3IDEyLjQ5OTdDMTEuMzc5NCAxMi40OTk3IDEyLjQ5ODcgMTEuMzgwNCAxMi40OTg3IDkuOTk5NjdDMTIuNDk4NyA4LjYxODk2IDExLjM3OTQgNy40OTk2NyA5Ljk5ODcgNy40OTk2N0M4LjYxNzk5IDcuNDk5NjcgNy40OTg3IDguNjE4OTYgNy40OTg3IDkuOTk5NjdDNy40OTg3IDExLjM4MDQgOC42MTc5OSAxMi40OTk3IDkuOTk4NyAxMi40OTk3WlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuc3Ryb2tlXT1cIighZGF0YS5wdWJsaXNoICYmIGRhdGEuY2hlY2tMaXN0VHlwZSA9PT0gJ2N1c3RvbScgJiYgKGdzLnVzZXJBY2Nlc3MgfCBhc3luYyk/LlRhbmdvVHJheF9jaGVja2xpc3RfaXNFZGl0KSA/ICcjNjY3MDg1JyA6ICcjRDBENUREJ1wiIHN0cm9rZS13aWR0aD1cIjEuNjY2NjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtZS02XCIgW25nQ2xhc3NdPVwiKChncy51c2VyQWNjZXNzIHwgYXN5bmMpPy5UYW5nb1RyYXhfY2hlY2tsaXN0X2lzRWRpdCkgPyAnY3Vyc29yLXBvaW50ZXInIDogJydcIiAgKGNsaWNrKT1cImNoZWNrUGVybWlzc2lvbignc2V0dGluZycsZGF0YSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZyBjbGlwLXBhdGg9XCJ1cmwoI2NsaXAwXzIyNTRfMjAyNjEpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk05Ljk5ODcgMTIuNDk5N0MxMS4zNzk0IDEyLjQ5OTcgMTIuNDk4NyAxMS4zODA0IDEyLjQ5ODcgOS45OTk2N0MxMi40OTg3IDguNjE4OTYgMTEuMzc5NCA3LjQ5OTY3IDkuOTk4NyA3LjQ5OTY3QzguNjE3OTkgNy40OTk2NyA3LjQ5ODcgOC42MTg5NiA3LjQ5ODcgOS45OTk2N0M3LjQ5ODcgMTEuMzgwNCA4LjYxNzk5IDEyLjQ5OTcgOS45OTg3IDEyLjQ5OTdaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuc3Ryb2tlXT1cIigoZ3MudXNlckFjY2VzcyB8IGFzeW5jKT8uVGFuZ29UcmF4X2NoZWNrbGlzdF9pc0VkaXQpID8gJyM2NjcwODUnIDogJyNEMEQ1REQnXCIgc3Ryb2tlLXdpZHRoPVwiMS42NjY2N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xNi4xNjU0IDEyLjQ5OTdDMTYuMDU0NCAxMi43NTEgMTYuMDIxMyAxMy4wMjk4IDE2LjA3MDQgMTMuMzAwMkMxNi4xMTk0IDEzLjU3MDUgMTYuMjQ4MiAxMy44MTk5IDE2LjQ0MDQgMTQuMDE2M0wxNi40OTA0IDE0LjA2NjNDMTYuNjQ1MyAxNC4yMjExIDE2Ljc2ODMgMTQuNDA0OSAxNi44NTIxIDE0LjYwNzNDMTYuOTM2IDE0LjgwOTYgMTYuOTc5MiAxNS4wMjY1IDE2Ljk3OTIgMTUuMjQ1NUMxNi45NzkyIDE1LjQ2NDUgMTYuOTM2IDE1LjY4MTQgMTYuODUyMSAxNS44ODM3QzE2Ljc2ODMgMTYuMDg2MSAxNi42NDUzIDE2LjI2OTkgMTYuNDkwNCAxNi40MjQ3QzE2LjMzNTYgMTYuNTc5NiAxNi4xNTE4IDE2LjcwMjYgMTUuOTQ5NCAxNi43ODY0QzE1Ljc0NzEgMTYuODcwMyAxNS41MzAyIDE2LjkxMzUgMTUuMzExMiAxNi45MTM1QzE1LjA5MjIgMTYuOTEzNSAxNC44NzUzIDE2Ljg3MDMgMTQuNjczIDE2Ljc4NjRDMTQuNDcwNiAxNi43MDI2IDE0LjI4NjggMTYuNTc5NiAxNC4xMzIgMTYuNDI0N0wxNC4wODIgMTYuMzc0N0MxMy44ODU2IDE2LjE4MjYgMTMuNjM2MiAxNi4wNTM3IDEzLjM2NTkgMTYuMDA0N0MxMy4wOTU1IDE1Ljk1NTcgMTIuODE2NyAxNS45ODg3IDEyLjU2NTQgMTYuMDk5N0MxMi4zMTg5IDE2LjIwNTMgMTIuMTA4NyAxNi4zODA3IDExLjk2MDYgMTYuNjA0M0MxMS44MTI2IDE2LjgyNzkgMTEuNzMzMSAxNy4wODk5IDExLjczMiAxNy4zNThWMTcuNDk5N0MxMS43MzIgMTcuOTQxNyAxMS41NTY0IDE4LjM2NTYgMTEuMjQzOSAxOC42NzgyQzEwLjkzMTMgMTguOTkwNyAxMC41MDc0IDE5LjE2NjMgMTAuMDY1NCAxOS4xNjYzQzkuNjIzMzQgMTkuMTY2MyA5LjE5OTQxIDE4Ljk5MDcgOC44ODY4NSAxOC42NzgyQzguNTc0MjkgMTguMzY1NiA4LjM5ODcgMTcuOTQxNyA4LjM5ODcgMTcuNDk5N1YxNy40MjQ3QzguMzkyMjUgMTcuMTQ4OCA4LjMwMjk2IDE2Ljg4MTMgOC4xNDI0NiAxNi42NTY5QzcuOTgxOTUgMTYuNDMyNSA3Ljc1NzY0IDE2LjI2MTYgNy40OTg3IDE2LjE2NjNDNy4yNDczNSAxNi4wNTU0IDYuOTY4NTQgMTYuMDIyMyA2LjY5ODIxIDE2LjA3MTNDNi40Mjc4OCAxNi4xMjA0IDYuMTc4NDMgMTYuMjQ5MiA1Ljk4MjAzIDE2LjQ0MTNMNS45MzIwMyAxNi40OTEzQzUuNzc3MjQgMTYuNjQ2MyA1LjU5MzQzIDE2Ljc2OTIgNS4zOTExIDE2Ljg1MzFDNS4xODg3NyAxNi45MzcgNC45NzE4OSAxNi45ODAyIDQuNzUyODYgMTYuOTgwMkM0LjUzMzg0IDE2Ljk4MDIgNC4zMTY5NiAxNi45MzcgNC4xMTQ2MyAxNi44NTMxQzMuOTEyMyAxNi43NjkyIDMuNzI4NDkgMTYuNjQ2MyAzLjU3MzcgMTYuNDkxM0MzLjQxODc0IDE2LjMzNjYgMy4yOTU4MSAxNi4xNTI3IDMuMjExOTMgMTUuOTUwNEMzLjEyODA2IDE1Ljc0ODEgMy4wODQ4OSAxNS41MzEyIDMuMDg0ODkgMTUuMzEyMkMzLjA4NDg5IDE1LjA5MzEgMy4xMjgwNiAxNC44NzYzIDMuMjExOTMgMTQuNjczOUMzLjI5NTgxIDE0LjQ3MTYgMy40MTg3NCAxNC4yODc4IDMuNTczNyAxNC4xMzNMMy42MjM3IDE0LjA4M0MzLjgxNTgxIDEzLjg4NjYgMy45NDQ2OSAxMy42MzcyIDMuOTkzNyAxMy4zNjY4QzQuMDQyNzIgMTMuMDk2NSA0LjAwOTYzIDEyLjgxNzcgMy44OTg3IDEyLjU2NjNDMy43OTMwNiAxMi4zMTk5IDMuNjE3NjYgMTIuMTA5NyAzLjM5NDA5IDExLjk2MTZDMy4xNzA1MSAxMS44MTM1IDIuOTA4NTIgMTEuNzM0MSAyLjY0MDM2IDExLjczM0gyLjQ5ODdDMi4wNTY2NyAxMS43MzMgMS42MzI3NSAxMS41NTc0IDEuMzIwMTkgMTEuMjQ0OUMxLjAwNzYzIDEwLjkzMjMgMC44MzIwMzEgMTAuNTA4NCAwLjgzMjAzMSAxMC4wNjYzQzAuODMyMDMxIDkuNjI0MzEgMS4wMDc2MyA5LjIwMDM5IDEuMzIwMTkgOC44ODc4M0MxLjYzMjc1IDguNTc1MjcgMi4wNTY2NyA4LjM5OTY3IDIuNDk4NyA4LjM5OTY3SDIuNTczN0MyLjg0OTUzIDguMzkzMjIgMy4xMTcwMyA4LjMwMzk0IDMuMzQxNDUgOC4xNDM0M0MzLjU2NTg2IDcuOTgyOTMgMy43MzY3OSA3Ljc1ODYyIDMuODMyMDMgNy40OTk2N0MzLjk0Mjk2IDcuMjQ4MzMgMy45NzYwNSA2Ljk2OTUxIDMuOTI3MDMgNi42OTkxOEMzLjg3ODAyIDYuNDI4ODUgMy43NDkxNCA2LjE3OTQxIDMuNTU3MDMgNS45ODMwMUwzLjUwNzAzIDUuOTMzMDFDMy4zNTIwNyA1Ljc3ODIyIDMuMjI5MTQgNS41OTQ0IDMuMTQ1MjYgNS4zOTIwN0MzLjA2MTM5IDUuMTg5NzQgMy4wMTgyMiA0Ljk3Mjg3IDMuMDE4MjIgNC43NTM4NEMzLjAxODIyIDQuNTM0ODEgMy4wNjEzOSA0LjMxNzk0IDMuMTQ1MjYgNC4xMTU2MUMzLjIyOTE0IDMuOTEzMjggMy4zNTIwNyAzLjcyOTQ2IDMuNTA3MDMgMy41NzQ2N0MzLjY2MTgyIDMuNDE5NzEgMy44NDU2MyAzLjI5Njc4IDQuMDQ3OTYgMy4yMTI5MUM0LjI1MDI5IDMuMTI5MDMgNC40NjcxNyAzLjA4NTg2IDQuNjg2MiAzLjA4NTg2QzQuOTA1MjIgMy4wODU4NiA1LjEyMjEgMy4xMjkwMyA1LjMyNDQzIDMuMjEyOTFDNS41MjY3NiAzLjI5Njc4IDUuNzEwNTggMy40MTk3MSA1Ljg2NTM2IDMuNTc0NjdMNS45MTUzNiAzLjYyNDY3QzYuMTExNzYgMy44MTY3OSA2LjM2MTIxIDMuOTQ1NjYgNi42MzE1NCAzLjk5NDY4QzYuOTAxODcgNC4wNDM2OSA3LjE4MDY4IDQuMDEwNiA3LjQzMjAzIDMuODk5NjdINy40OTg3QzcuNzQ1MTcgMy43OTQwNCA3Ljk1NTM4IDMuNjE4NjQgOC4xMDM0NCAzLjM5NTA2QzguMjUxNSAzLjE3MTQ5IDguMzMwOTYgMi45MDk1IDguMzMyMDMgMi42NDEzNFYyLjQ5OTY3QzguMzMyMDMgMi4wNTc2NSA4LjUwNzYzIDEuNjMzNzIgOC44MjAxOSAxLjMyMTE2QzkuMTMyNzUgMS4wMDg2IDkuNTU2NjcgMC44MzMwMDggOS45OTg3IDAuODMzMDA4QzEwLjQ0MDcgMC44MzMwMDggMTAuODY0NiAxLjAwODYgMTEuMTc3MiAxLjMyMTE2QzExLjQ4OTggMS42MzM3MiAxMS42NjU0IDIuMDU3NjUgMTEuNjY1NCAyLjQ5OTY3VjIuNTc0NjdDMTEuNjY2NCAyLjg0MjgzIDExLjc0NTkgMy4xMDQ4MiAxMS44OTQgMy4zMjg0QzEyLjA0MiAzLjU1MTk3IDEyLjI1MjIgMy43MjczNyAxMi40OTg3IDMuODMzMDFDMTIuNzUgMy45NDM5NCAxMy4wMjg5IDMuOTc3MDMgMTMuMjk5MiAzLjkyODAxQzEzLjU2OTUgMy44NzkgMTMuODE5IDMuNzUwMTIgMTQuMDE1NCAzLjU1ODAxTDE0LjA2NTQgMy41MDgwMUMxNC4yMjAyIDMuMzUzMDUgMTQuNDA0IDMuMjMwMTIgMTQuNjA2MyAzLjE0NjI0QzE0LjgwODYgMy4wNjIzNyAxNS4wMjU1IDMuMDE5MiAxNS4yNDQ1IDMuMDE5MkMxNS40NjM2IDMuMDE5MiAxNS42ODA0IDMuMDYyMzcgMTUuODgyOCAzLjE0NjI0QzE2LjA4NTEgMy4yMzAxMiAxNi4yNjg5IDMuMzUzMDUgMTYuNDIzNyAzLjUwODAxQzE2LjU3ODcgMy42NjI4IDE2LjcwMTYgMy44NDY2MSAxNi43ODU1IDQuMDQ4OTRDMTYuODY5MyA0LjI1MTI3IDE2LjkxMjUgNC40NjgxNSAxNi45MTI1IDQuNjg3MTdDMTYuOTEyNSA0LjkwNjIgMTYuODY5MyA1LjEyMzA4IDE2Ljc4NTUgNS4zMjU0MUMxNi43MDE2IDUuNTI3NzQgMTYuNTc4NyA1LjcxMTU1IDE2LjQyMzcgNS44NjYzNEwxNi4zNzM3IDUuOTE2MzRDMTYuMTgxNiA2LjExMjc0IDE2LjA1MjcgNi4zNjIxOSAxNi4wMDM3IDYuNjMyNTJDMTUuOTU0NyA2LjkwMjg1IDE1Ljk4NzggNy4xODE2NiAxNi4wOTg3IDcuNDMzMDFWNy40OTk2N0MxNi4yMDQzIDcuNzQ2MTUgMTYuMzc5NyA3Ljk1NjM1IDE2LjYwMzMgOC4xMDQ0MkMxNi44MjY5IDguMjUyNDggMTcuMDg4OSA4LjMzMTk0IDE3LjM1NyA4LjMzMzAxSDE3LjQ5ODdDMTcuOTQwNyA4LjMzMzAxIDE4LjM2NDYgOC41MDg2IDE4LjY3NzIgOC44MjExNkMxOC45ODk4IDkuMTMzNzIgMTkuMTY1NCA5LjU1NzY1IDE5LjE2NTQgOS45OTk2N0MxOS4xNjU0IDEwLjQ0MTcgMTguOTg5OCAxMC44NjU2IDE4LjY3NzIgMTEuMTc4MkMxOC4zNjQ2IDExLjQ5MDcgMTcuOTQwNyAxMS42NjYzIDE3LjQ5ODcgMTEuNjY2M0gxNy40MjM3QzE3LjE1NTUgMTEuNjY3NCAxNi44OTM2IDExLjc0NjkgMTYuNjcgMTEuODk0OUMxNi40NDY0IDEyLjA0MyAxNi4yNzEgMTIuMjUzMiAxNi4xNjU0IDEyLjQ5OTdaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuc3Ryb2tlXT1cIihncy51c2VyQWNjZXNzIHwgYXN5bmMpPy5UYW5nb1RyYXhfY2hlY2tsaXN0X2lzRWRpdCA/ICcjNjY3MDg1JyA6ICcjRDBENUREJ1wiIHN0cm9rZS13aWR0aD1cIjEuNjY2NjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNsaXBQYXRoIGlkPVwiY2xpcDBfMjI1NF8yMDI2MVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiBmaWxsPVwid2hpdGVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvY2xpcFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIlwiIFtuZ0NsYXNzXT1cIihkYXRhLmNoZWNrTGlzdFR5cGUgPT09ICdjdXN0b20nICYmIChncy51c2VyQWNjZXNzIHwgYXN5bmMpPy5UYW5nb1RyYXhfY2hlY2tsaXN0X2lzRWRpdCkgPyAnY3Vyc29yLXBvaW50ZXInIDogJydcIiAgKGNsaWNrKT1cImNoZWNrUGVybWlzc2lvbignZHVwbGljYXRlJyxkYXRhKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxnIGNsaXAtcGF0aD1cInVybCgjY2xpcDBfMjI1NF8yMDI2NSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTQuMTY3OTcgMTIuNTAwM0gzLjMzNDY0QzIuODkyNjEgMTIuNTAwMyAyLjQ2ODY4IDEyLjMyNDcgMi4xNTYxMiAxMi4wMTIyQzEuODQzNTYgMTEuNjk5NiAxLjY2Nzk3IDExLjI3NTcgMS42Njc5NyAxMC44MzM3VjMuMzMzNjZDMS42Njc5NyAyLjg5MTYzIDEuODQzNTYgMi40Njc3MSAyLjE1NjEyIDIuMTU1MTVDMi40Njg2OCAxLjg0MjU5IDIuODkyNjEgMS42NjY5OSAzLjMzNDY0IDEuNjY2OTlIMTAuODM0NkMxMS4yNzY3IDEuNjY2OTkgMTEuNzAwNiAxLjg0MjU5IDEyLjAxMzEgMi4xNTUxNUMxMi4zMjU3IDIuNDY3NzEgMTIuNTAxMyAyLjg5MTYzIDEyLjUwMTMgMy4zMzM2NlY0LjE2Njk5TTkuMTY3OTcgNy41MDAzM0gxNi42NjhDMTcuNTg4NCA3LjUwMDMzIDE4LjMzNDYgOC4yNDY1MiAxOC4zMzQ2IDkuMTY2OTlWMTYuNjY3QzE4LjMzNDYgMTcuNTg3NSAxNy41ODg0IDE4LjMzMzcgMTYuNjY4IDE4LjMzMzdIOS4xNjc5N0M4LjI0NzQ5IDE4LjMzMzcgNy41MDEzIDE3LjU4NzUgNy41MDEzIDE2LjY2N1Y5LjE2Njk5QzcuNTAxMyA4LjI0NjUyIDguMjQ3NDkgNy41MDAzMyA5LjE2Nzk3IDcuNTAwMzNaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuc3Ryb2tlXT1cImRhdGEuY2hlY2tMaXN0VHlwZSA9PT0gJ2N1c3RvbScgJiYgKGdzLnVzZXJBY2Nlc3MgfCBhc3luYyk/LlRhbmdvVHJheF9jaGVja2xpc3RfaXNFZGl0ID8gJyM2NjcwODUnIDogJyNEMEQ1REQnXCIgc3Ryb2tlLXdpZHRoPVwiMS42NjY2N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y2xpcFBhdGggaWQ9XCJjbGlwMF8yMjU0XzIwMjY1XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIGZpbGw9XCJ3aGl0ZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9jbGlwUGF0aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIChjbGljayk9XCJjaGVja1Blcm1pc3Npb24oJ2RlbGV0ZScsZGF0YSlcIiBbbmdDbGFzc109XCIhZGF0YT8ucHVibGlzaCAmJiAoZ3MudXNlckFjY2VzcyB8IGFzeW5jKT8uVGFuZ29UcmF4X2NoZWNrbGlzdF9pc0VkaXQgID8gJ2N1cnNvci1wb2ludGVyJyA6ICcnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgd2lkdGg9XCI0MFwiIGhlaWdodD1cIjQxXCIgdmlld0JveD1cIjAgMCA0MCA0MVwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGcgY2xpcC1wYXRoPVwidXJsKCNjbGlwMF8zMTYyXzEwNDE0KVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTIuNSAxNS4wMjI4SDE0LjE2NjdNMTQuMTY2NyAxNS4wMjI4SDI3LjVNMTQuMTY2NyAxNS4wMjI4VjI2LjY4OTVDMTQuMTY2NyAyNy4xMzE1IDE0LjM0MjMgMjcuNTU1NCAxNC42NTQ4IDI3Ljg2OEMxNC45Njc0IDI4LjE4MDUgMTUuMzkxMyAyOC4zNTYxIDE1LjgzMzMgMjguMzU2MUgyNC4xNjY3QzI0LjYwODcgMjguMzU2MSAyNS4wMzI2IDI4LjE4MDUgMjUuMzQ1MiAyNy44NjhDMjUuNjU3NyAyNy41NTU0IDI1LjgzMzMgMjcuMTMxNSAyNS44MzMzIDI2LjY4OTVWMTUuMDIyOEgxNC4xNjY3Wk0xNi42NjY3IDE1LjAyMjhWMTMuMzU2MUMxNi42NjY3IDEyLjkxNDEgMTYuODQyMyAxMi40OTAyIDE3LjE1NDggMTIuMTc3NkMxNy40Njc0IDExLjg2NSAxNy44OTEzIDExLjY4OTUgMTguMzMzMyAxMS42ODk1SDIxLjY2NjdDMjIuMTA4NyAxMS42ODk1IDIyLjUzMjYgMTEuODY1IDIyLjg0NTIgMTIuMTc3NkMyMy4xNTc3IDEyLjQ5MDIgMjMuMzMzMyAxMi45MTQxIDIzLjMzMzMgMTMuMzU2MVYxNS4wMjI4TTE4LjMzMzMgMTkuMTg5NVYyNC4xODk1TTIxLjY2NjcgMTkuMTg5NVYyNC4xODk1XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuc3Ryb2tlXT1cIighKGdzLnVzZXJBY2Nlc3MgfCBhc3luYyk/LlRhbmdvVHJheF9jaGVja2xpc3RfaXNFZGl0IHx8IGRhdGEucHVibGlzaCB8fCBkYXRhLmNoZWNrTGlzdFR5cGUgIT09ICdjdXN0b20nKSA/ICcjRDBENUREJyA6JyM2NjcwODUnXCIgc3Ryb2tlLXdpZHRoPVwiMS42NjY2N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y2xpcFBhdGggaWQ9XCJjbGlwMF8zMTYyXzEwNDE0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIGZpbGw9XCJ3aGl0ZVwiIHRyYW5zZm9ybT1cInRyYW5zbGF0ZSgxMCAxMC4wMjM0KVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9jbGlwUGF0aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZvcm0tY2hlY2sgZm9ybS1zd2l0Y2hcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJjaGVja2JveFwiIHJvbGU9XCJzd2l0Y2hcIiBpZD1cInN1cHBvcnRcIiBjbGFzcz1cImZvcm0tY2hlY2staW5wdXQgbXQtMyBjdXJzb3ItcG9pbnRlclwiIChjaGFuZ2UpPVwicHVibGlzaCgkZXZlbnQsIGRhdGEsaSlcIiBbY2hlY2tlZF09XCJkYXRhPy5wdWJsaXNoXCIgW2Rpc2FibGVkXT1cIighZGF0YT8uc3RvcmVDb3VudCAmJiBkYXRhLmNoZWNrTGlzdFR5cGUgPT09ICdjdXN0b20nKSB8fCAhKGdzLnVzZXJBY2Nlc3MgfCBhc3luYyk/LlRhbmdvVHJheF9jaGVja2xpc3RfaXNFZGl0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgICAgICAgICA8L3Rib2R5PlxyXG4gICAgICAgICAgICAgICAgPC90YWJsZT5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxsaWItcGFnaW5hdGlvbiBbaXRlbXNQZXJQYWdlXT1cImR5bmFtaWNEYXRhLmxpbWl0XCIgW2N1cnJlbnRQYWdlXT1cImR5bmFtaWNEYXRhLm9mZnNldFwiIFt0b3RhbEl0ZW1zXT1cInRvdGFsSXRlbXNcIlxyXG4gICAgICAgICAgICAgICAgW3BhZ2luYXRpb25TaXplc109XCJwYWdpbmF0aW9uU2l6ZXNcIiBbcGFnZVNpemVdPVwicGFnZVNpemVcIiAocGFnZUNoYW5nZSk9XCJvblBhZ2VDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAocGFnZVNpemVDaGFuZ2UpPVwib25QYWdlU2l6ZUNoYW5nZSgkZXZlbnQpXCI+PC9saWItcGFnaW5hdGlvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj4iXX0=
277
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tsaXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLWFuYWx5c2UtdHJheC9zcmMvbGliL2NvbXBvbmVudHMvY2hlY2tsaXN0L2NoZWNrbGlzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1hbmFseXNlLXRyYXgvc3JjL2xpYi9jb21wb25lbnRzL2NoZWNrbGlzdC9jaGVja2xpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFxQixTQUFTLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBRWhGLE9BQU8sRUFBQyxHQUFHLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFHM0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7Ozs7Ozs7OztBQVN0RSxNQUFNLE9BQU8sa0JBQWtCO0lBbUJUO0lBQWlDO0lBQStCO0lBQThCO0lBQTJCO0lBQXFCO0lBQXdCO0lBbEIxTCxPQUFPLEdBQVcsSUFBSSxDQUFDO0lBQ3ZCLE1BQU0sR0FBVyxLQUFLLENBQUM7SUFDdkIsUUFBUSxHQUFRLEVBQUUsQ0FBQztJQUNuQixVQUFVLENBQVE7SUFDbEIsZUFBZSxHQUFPLEVBQUUsQ0FBQztJQUN6QixhQUFhLEdBQU8sRUFBRSxDQUFDO0lBQ2YsTUFBTSxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7SUFDL0IsV0FBVyxHQUFPO1FBQ2hCLFFBQVEsRUFBQyxFQUFFO1FBQ1gsU0FBUyxFQUFDLEVBQUU7UUFDWixPQUFPLEVBQUMsRUFBRTtRQUNWLEtBQUssRUFBQyxFQUFFO1FBQ1IsTUFBTSxFQUFDLENBQUM7UUFDUixVQUFVLEVBQUMsRUFBRTtRQUNiLE1BQU0sRUFBQyxFQUFFO1FBQ1QsTUFBTSxFQUFDLEVBQUU7S0FDVixDQUFDO0lB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QyxJQUFJLEVBQUMsSUFBSSxDQUFDLENBQUE7cUJBQ3pCO2lCQUNGO3FCQUFLLElBQUcsSUFBSSxDQUFDLGFBQWEsS0FBSyxRQUFRLElBQUksQ0FBQyxDQUFDLGtCQUFrQixFQUFDLHNCQUFzQixFQUFDLG9CQUFvQixDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxhQUFhLENBQUMsRUFBRTtvQkFDekksTUFBTSxFQUFFLEdBQUcsSUFBSSxJQUFJLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO29CQUMvQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBQyxFQUFFLEVBQUMsSUFBSSxFQUFFLGFBQWEsQ0FBQyxDQUFBO2lCQUMzQzthQUNKO1FBQ0gsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQTtRQUVmLEdBQUcsQ0FBQyxXQUFXLEVBQUUsQ0FBQTtJQUNuQixDQUFDO3dHQWpRVSxrQkFBa0I7NEZBQWxCLGtCQUFrQixxRENkL0IsMGxnQ0F5VU07OzRGRDNUTyxrQkFBa0I7a0JBTDlCLFNBQVM7K0JBQ0UsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIE9uRGVzdHJveSwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEdsb2JhbFN0YXRlU2VydmljZSwgUGFnZUluZm9TZXJ2aWNlIH0gZnJvbSAndGFuZ28tYXBwLXVpLWdsb2JhbCc7XHJcbmltcG9ydCB7bWFwLCBTdWJqZWN0LCB0YWtlVW50aWwsIGRlYm91bmNlVGltZX0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFRvYXN0U2VydmljZSB9IGZyb20gJ3RhbmdvLWFwcC11aS1zaGFyZWQnO1xyXG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBUcmF4cG9wdXBDb21wb25lbnQgfSBmcm9tICcuLi90cmF4cG9wdXAvdHJheHBvcHVwLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE5nYk1vZGFsIH0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnO1xyXG5pbXBvcnQgeyBUcmF4U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3RyYXguc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1jaGVja2xpc3QnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jaGVja2xpc3QuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9jaGVja2xpc3QuY29tcG9uZW50LnNjc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDaGVja2xpc3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsT25EZXN0cm95IHtcclxuICBsb2FkaW5nOmJvb2xlYW4gPSB0cnVlO1xyXG4gIG5vRGF0YTpib29sZWFuID0gZmFsc2U7XHJcbiAgcGFnZVNpemU6bnVtYmVyPTEwO1xyXG4gIHRvdGFsSXRlbXM6bnVtYmVyO1xyXG4gIHBhZ2luYXRpb25TaXplczphbnkgPSBbXTtcclxuICBjaGVja2xpc3REYXRhOmFueSA9IFtdO1xyXG4gIHByaXZhdGUgZGV0YWNoID0gbmV3IFN1YmplY3QoKTtcclxuICBkeW5hbWljRGF0YTphbnkgPSB7XHJcbiAgICBjbGllbnRJZDonJyxcclxuICAgIHN0YXJ0RGF0ZTonJyxcclxuICAgIGVuZERhdGU6JycsXHJcbiAgICBsaW1pdDoxMCxcclxuICAgIG9mZnNldDoxLFxyXG4gICAgc29ydENvbHVtbjonJyxcclxuICAgIHNvcnRCeTonJyxcclxuICAgIHNlYXJjaDonJ1xyXG4gIH07XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcGFnZUluZm86UGFnZUluZm9TZXJ2aWNlLHByaXZhdGUgdHJheFNlcnZpY2U6VHJheFNlcnZpY2UscHVibGljIGdzOkdsb2JhbFN0YXRlU2VydmljZSxwcml2YXRlIHRvYXN0OlRvYXN0U2VydmljZSxwcml2YXRlIHJvdXRlOlJvdXRlcixwcml2YXRlIGRpYWxvZzpOZ2JNb2RhbCxwcml2YXRlIGNkOkNoYW5nZURldGVjdG9yUmVmICkge31cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmdzLmRhdGFSYW5nZVZhbHVlXHJcbiAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXRhY2gpKVxyXG4gICAgLnBpcGUoZGVib3VuY2VUaW1lKDEwMDApKVxyXG4gICAgLnN1YnNjcmliZSgoZGF0YTogYW55KSA9PiB7XHJcbiAgICAgIGlmIChkYXRhPy5jbGllbnQpIHtcclxuICAgICAgICB0aGlzLmR5bmFtaWNEYXRhLmNsaWVudElkID0gZGF0YS5jbGllbnQ7XHJcbiAgICAgICAgdGhpcy5nZXRDaGVja0xpc3QoKVxyXG4gICAgICB9IGVsc2V7XHJcbiAgICAgICAgbGV0IGRhdGEgPSBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdoZWFkZXItZmlsdGVycycpIGFzIHN0cmluZyk7XHJcbiAgICAgICAgdGhpcy5keW5hbWljRGF0YS5jbGllbnRJZCA9IGRhdGEuY2xpZW50O1xyXG4gICAgICAgIHRoaXMuZ2V0Q2hlY2tMaXN0KClcclxuICAgICAgfVxyXG4gXHJcbiAgICB9KVxyXG4gICAgdGhpcy5zZXRQYWdlRGF0YSgpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLmRldGFjaC5uZXh0KHRydWUpO1xyXG4gICAgdGhpcy5kZXRhY2guY29tcGxldGUoKTtcclxuICB9XHJcblxyXG4gIHNldFBhZ2VEYXRhKCkge1xyXG4gICAgdGhpcy5wYWdlSW5mby5zZXRUaXRsZShcIk1hbmFnZSBDaGVja2xpc3RcIik7XHJcbiAgICB0aGlzLnBhZ2VJbmZvLnNldERlc2NyaXB0aW9uKFwiQXV0b21hdGUgb3IgY3JlYXRlIGNoZWNrbGlzdHMgdG8gaW1wcm92ZSBvcGVyYXRpb25hbCBlZmZpY2llbmN5XCIpO1xyXG4gICAgdGhpcy5wYWdlSW5mby5zZXRCcmVhZGNydW1icyhbXHJcbiAgICAgIHsgdGl0bGU6IFwiVGFuZ28gVHJheFwiLCBwYXRoOiBcIi9tYW5hZ2UvdHJheC9kYXNoYm9hcmRcIiwgaXNBY3RpdmU6IGZhbHNlLCBpc1NlcGFyYXRvcjogZmFsc2UgfSxcclxuICAgICAgeyB0aXRsZTogXCJUYW5nbyBUcmF4XCIsIHBhdGg6IFwiL21hbmFnZS90cmF4L2Rhc2hib2FyZFwiLCBpc0FjdGl2ZTogZmFsc2UsIGlzU2VwYXJhdG9yOiB0cnVlIH1cclxuICAgIF0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0Q2hlY2tMaXN0KCkge1xyXG4gICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcclxuICAgIHRoaXMudHJheFNlcnZpY2UuY2hlY2tsaXN0KHRoaXMuZHluYW1pY0RhdGEpLnBpcGUodGFrZVVudGlsKHRoaXMuZGV0YWNoKSk/LnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6KHJlczphbnkpID0+IHtcclxuICAgICAgICBpZihyZXMgJiYgcmVzLmNvZGUgPT0gMjAwICYmIHJlcy5kYXRhLnJlc3VsdC5sZW5ndGgpIHtcclxuICAgICAgICAgIHRoaXMubm9EYXRhID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMuY2hlY2tsaXN0RGF0YSA9IHJlcy5kYXRhLnJlc3VsdDtcclxuICAgICAgICAgIHRoaXMudG90YWxJdGVtcyA9IHJlcy5kYXRhLmNvdW50O1xyXG4gICAgICAgICAgaWYodGhpcy50b3RhbEl0ZW1zIDwgMTApIHtcclxuICAgICAgICAgICAgdGhpcy5wYWdpbmF0aW9uU2l6ZXMgPSBbdGhpcy50b3RhbEl0ZW1zXTtcclxuICAgICAgICAgICAgdGhpcy5wYWdlU2l6ZSA9IHRoaXMuY2hlY2tsaXN0RGF0YS5sZW5ndGg7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5wYWdpbmF0aW9uU2l6ZXMgPSBbMTAsMjAsMzBdO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5ub0RhdGEgPSB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAgZXJyb3I6KGVycm9yOmFueSkgPT4ge1xyXG4gICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMubm9EYXRhID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLnRvYXN0LmdldEVycm9yVG9hc3QoZXJyb3IuZXJyb3IuZXJyb3IpO1xyXG4gICAgICB9XHJcblxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBvblNvcnQoY29sdW1uOmFueSkge1xyXG4gICAgaWYgKHRoaXMuZHluYW1pY0RhdGEuc29ydENvbHVtbiA9PSBjb2x1bW4pIHtcclxuICAgICAgdGhpcy5keW5hbWljRGF0YS5zb3J0QnkgPSB0aGlzLmR5bmFtaWNEYXRhLnNvcnRCeSA9PSAxID8gLTEgOiAxO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHRoaXMuZHluYW1pY0RhdGEuc29ydENvbHVtbiA9IGNvbHVtbjtcclxuICAgICAgdGhpcy5keW5hbWljRGF0YS5zb3J0QnkgPSAxO1xyXG4gICAgfVxyXG4gICAgdGhpcy5nZXRDaGVja0xpc3QoKTtcclxuICB9XHJcblxyXG4gIG9uUGFnZUNoYW5nZShldmVudDphbnkpIHtcclxuICAgIHRoaXMuZHluYW1pY0RhdGEub2Zmc2V0ID0gZXZlbnQ7XHJcbiAgICB0aGlzLmdldENoZWNrTGlzdCgpO1xyXG4gIH1cclxuXHJcbiAgb25QYWdlU2l6ZUNoYW5nZShldmVudDphbnkpIHtcclxuICAgIHRoaXMuZHluYW1pY0RhdGEubGltaXQgPSBldmVudDtcclxuICAgIHRoaXMucGFnZVNpemUgPSBldmVudDtcclxuICAgIHRoaXMuZHluYW1pY0RhdGEub2Zmc2V0ID0gMTtcclxuICAgIHRoaXMuZ2V0Q2hlY2tMaXN0KCk7XHJcbiAgfVxyXG5cclxuICByZWRpcmVjdChkYXRhOiBhbnksIGRldGFpbHM6IGFueSxjaGVja0xpc3RUeXBlPzphbnkpIHtcclxuICAgIGlmKGRhdGEgPT0gJ2VkaXQnKSB7XHJcbiAgICAgIHRoaXMucm91dGUubmF2aWdhdGVCeVVybChgL21hbmFnZS90cmF4L2NyZWF0ZUNoZWNrbGlzdD9jaGVja2xpc3RJZD0ke2RldGFpbHN9YClcclxuICAgIH1cclxuICAgIGVsc2UgaWYoZGF0YSA9PSAnc2V0dGluZycgJiYgIWNoZWNrTGlzdFR5cGUpIHtcclxuICAgICAgdGhpcy5yb3V0ZS5uYXZpZ2F0ZUJ5VXJsKGAvbWFuYWdlL3RyYXgvY29uZmlndXJlP2NoZWNrTGlzdElkPSR7ZGV0YWlsc30mZGlzYWJsZWRRdWVzdGlvbj10cnVlYClcclxuICAgIH1cclxuICAgIGVsc2UgaWYoZGF0YSA9PSAnc2V0dGluZycgJiYgY2hlY2tMaXN0VHlwZSkge1xyXG4gICAgICB0aGlzLnJvdXRlLm5hdmlnYXRlQnlVcmwoYC9tYW5hZ2UvdHJheC9jb25maWd1cmU/YWljaGVja0xpc3RJZD0ke2RldGFpbHN9JmRpc2FibGVkUXVlc3Rpb249dHJ1ZSZ0eXBlPSR7Y2hlY2tMaXN0VHlwZX1gKVxyXG4gICAgfVxyXG4gICAgZWxzZSBpZihkYXRhID09ICdkdXBsaWNhdGUnKSB7XHJcbiAgICAgIGNvbnN0IHBvcHVwY29udGVudCA9IHtcclxuICAgICAgICBkaXNwbGF5cHJvcDogZmFsc2UsXHJcbiAgICAgICAgaW1hZ2VzcmM6ICc8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjM2XCIgaGVpZ2h0PVwiMzZcIiB2aWV3Qm94PVwiMCAwIDM2IDM2XCIgZmlsbD1cIm5vbmVcIj48cmVjdCB4PVwiMlwiIHk9XCIyXCIgd2lkdGg9XCIzMlwiIGhlaWdodD1cIjMyXCIgcng9XCIxNlwiIGZpbGw9XCIjREFGMUZGXCIvPjxnIGNsaXAtcGF0aD1cInVybCgjY2xpcDBfNTU0NV82NzQzKVwiPjxwYXRoIGQ9XCJNMTMuMzMzIDIwLjAwMDdIMTIuNjY2M0MxMi4zMTI3IDIwLjAwMDcgMTEuOTczNiAxOS44NjAyIDExLjcyMzUgMTkuNjEwMUMxMS40NzM1IDE5LjM2MDEgMTEuMzMzIDE5LjAyMDkgMTEuMzMzIDE4LjY2NzNWMTIuNjY3M0MxMS4zMzMgMTIuMzEzNyAxMS40NzM1IDExLjk3NDYgMTEuNzIzNSAxMS43MjQ1QzExLjk3MzYgMTEuNDc0NSAxMi4zMTI3IDExLjMzNCAxMi42NjYzIDExLjMzNEgxOC42NjYzQzE5LjAyIDExLjMzNCAxOS4zNTkxIDExLjQ3NDUgMTkuNjA5MiAxMS43MjQ1QzE5Ljg1OTIgMTEuOTc0NiAxOS45OTk3IDEyLjMxMzcgMTkuOTk5NyAxMi42NjczVjEzLjMzNE0xNy4zMzMgMTYuMDAwN0gyMy4zMzNDMjQuMDY5NCAxNi4wMDA3IDI0LjY2NjMgMTYuNTk3NiAyNC42NjYzIDE3LjMzNFYyMy4zMzRDMjQuNjY2MyAyNC4wNzA0IDI0LjA2OTQgMjQuNjY3MyAyMy4zMzMgMjQuNjY3M0gxNy4zMzNDMTYuNTk2NiAyNC42NjczIDE1Ljk5OTcgMjQuMDcwNCAxNS45OTk3IDIzLjMzNFYxNy4zMzRDMTUuOTk5NyAxNi41OTc2IDE2LjU5NjYgMTYuMDAwNyAxNy4zMzMgMTYuMDAwN1pcIiBzdHJva2U9XCIjMDBBM0ZGXCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz48L2c+PHJlY3QgeD1cIjJcIiB5PVwiMlwiIHdpZHRoPVwiMzJcIiBoZWlnaHQ9XCIzMlwiIHJ4PVwiMTZcIiBzdHJva2U9XCIjRUFGOEZGXCIgc3Ryb2tlLXdpZHRoPVwiNFwiLz48ZGVmcz48Y2xpcFBhdGggaWQ9XCJjbGlwMF81NTQ1XzY3NDNcIj48cmVjdCB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiBmaWxsPVwid2hpdGVcIiB0cmFuc2Zvcm09XCJ0cmFuc2xhdGUoMTAgMTApXCIvPjwvY2xpcFBhdGg+PC9kZWZzPjwvc3ZnPicsXHJcbiAgICAgICAgdGl0bGU6IGBEdXBsaWNhdGUgJyR7ZGV0YWlscy5jaGVja0xpc3ROYW1lfSBTZWN0aW9uJz9gLFxyXG4gICAgICAgIGNvbnRlbnQ6IGBBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gZHVwbGljYXRlIDxiPicke2RldGFpbHMuY2hlY2tMaXN0TmFtZX0nPzwvYj4gVGhpcyBhY3Rpb24gY2Fubm90IGJlIHVuZG9uZS5gLFxyXG4gICAgICAgIGJ1dHRvbnR5cGU6ICdkdXBsaWNhdGUnXHJcbiAgICAgIH1cclxuICAgICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihUcmF4cG9wdXBDb21wb25lbnQsIHtjZW50ZXJlZDp0cnVlLHNpemU6J21kJ30pO1xyXG4gICAgICBkaWFsb2dSZWYuY29tcG9uZW50SW5zdGFuY2UuZGF0YSA9IHBvcHVwY29udGVudDtcclxuICAgICAgZGlhbG9nUmVmLnJlc3VsdC50aGVuKChyZXMpID0+IHsgXHJcbiAgICAgICAgaWYgKHJlcyA9PSAnZHVwbGljYXRlJykge1xyXG4gICAgICAgICAgdGhpcy50cmF4U2VydmljZS5kdXBsaWNhdGVjaGVja2xpc3Qoe2NoZWNrbGlzdElkOmRldGFpbHMuX2lkLGNsaWVudElkOnRoaXMuZHluYW1pY0RhdGEuY2xpZW50SWR9KS5waXBlKHRha2VVbnRpbCh0aGlzLmRldGFjaCkpPy5zdWJzY3JpYmUoe1xyXG4gICAgICAgICAgICBuZXh0OihyZXM6YW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgaWYocmVzICYmIHJlcy5jb2RlID09IDIwMCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5nZXRDaGVja0xpc3QoKTtcclxuICAgICAgICAgICAgICAgIHRoaXMudG9hc3QuZ2V0U3VjY2Vzc1RvYXN0KGAke2RldGFpbHMuY2hlY2tMaXN0TmFtZX0gaGFzIGJlZW4gZHVwbGljYXRlZC5gKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIGVycm9yOihlcnJvcjphbnkpID0+IHtcclxuICAgICAgICAgICAgICBsZXQgZXJyID0gZXJyb3I/LmVycm9yPy5lcnJvciB8fCAnU29tZXRoaW5nIHdlbnQgd3JvbmcnO1xyXG4gICAgICAgICAgICAgIHRoaXMudG9hc3QuZ2V0RXJyb3JUb2FzdChlcnIpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIGNvbnN0IHBvcHVwY29udGVudCA9IHtcclxuICAgICAgICBkaXNwbGF5cHJvcDogZmFsc2UsXHJcbiAgICAgICAgaW1hZ2VzcmM6ICc8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjM2XCIgaGVpZ2h0PVwiMzZcIiB2aWV3Qm94PVwiMCAwIDM2IDM2XCIgZmlsbD1cIm5vbmVcIj48cmVjdCB4PVwiMlwiIHk9XCIyXCIgd2lkdGg9XCIzMlwiIGhlaWdodD1cIjMyXCIgcng9XCIxNlwiIGZpbGw9XCIjRkVFNEUyXCIvPjxwYXRoIGQ9XCJNMTIgMTQuMDAwN0gxMy4zMzMzTTEzLjMzMzMgMTQuMDAwN0gyNE0xMy4zMzMzIDE0LjAwMDdWMjMuMzM0QzEzLjMzMzMgMjMuNjg3NiAxMy40NzM4IDI0LjAyNjcgMTMuNzIzOSAyNC4yNzY4QzEzLjk3MzkgMjQuNTI2OCAxNC4zMTMgMjQuNjY3MyAxNC42NjY3IDI0LjY2NzNIMjEuMzMzM0MyMS42ODcgMjQuNjY3MyAyMi4wMjYxIDI0LjUyNjggMjIuMjc2MSAyNC4yNzY4QzIyLjUyNjIgMjQuMDI2NyAyMi42NjY3IDIzLjY4NzYgMjIuNjY2NyAyMy4zMzRWMTQuMDAwN0gxMy4zMzMzWk0xNS4zMzMzIDE0LjAwMDdWMTIuNjY3M0MxNS4zMzMzIDEyLjMxMzcgMTUuNDczOCAxMS45NzQ2IDE1LjcyMzkgMTEuNzI0NUMxNS45NzM5IDExLjQ3NDUgMTYuMzEzIDExLjMzNCAxNi42NjY3IDExLjMzNEgxOS4zMzMzQzE5LjY4NyAxMS4zMzQgMjAuMDI2MSAxMS40NzQ1IDIwLjI3NjEgMTEuNzI0NUMyMC41MjYyIDExLjk3NDYgMjAuNjY2NyAxMi4zMTM3IDIwLjY2NjcgMTIuNjY3M1YxNC4wMDA3TTE2LjY2NjcgMTcuMzM0VjIxLjMzNE0xOS4zMzMzIDE3LjMzNFYyMS4zMzRcIiBzdHJva2U9XCIjRDkyRDIwXCIgc3Ryb2tlLXdpZHRoPVwiMS4zMzMzM1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz48cmVjdCB4PVwiMlwiIHk9XCIyXCIgd2lkdGg9XCIzMlwiIGhlaWdodD1cIjMyXCIgcng9XCIxNlwiIHN0cm9rZT1cIiNGRUYzRjJcIiBzdHJva2Utd2lkdGg9XCI0XCIvPjwvc3ZnPicsXHJcbiAgICAgICAgdGl0bGU6IGBEZWxldGUgJyR7ZGV0YWlscy5jaGVja0xpc3ROYW1lfSBTZWN0aW9uJz9gLFxyXG4gICAgICAgIGNvbnRlbnQ6IGBBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gZGVsZXRlIDxiPicke2RldGFpbHMuY2hlY2tMaXN0TmFtZX0nPzwvYj4gVGhpcyBhY3Rpb24gY2Fubm90IGJlIHVuZG9uZS5gLFxyXG4gICAgICAgIGJ1dHRvbnR5cGU6ICdkZWxldGUnXHJcbiAgICAgIH1cclxuICAgICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihUcmF4cG9wdXBDb21wb25lbnQsIHtjZW50ZXJlZDp0cnVlLHNpemU6J21kJ30pO1xyXG4gICAgICBkaWFsb2dSZWYuY29tcG9uZW50SW5zdGFuY2UuZGF0YSA9IHBvcHVwY29udGVudDtcclxuICAgICAgZGlhbG9nUmVmLnJlc3VsdC50aGVuKChyZXMpID0+IHsgXHJcbiAgICAgICAgaWYgKHJlcyA9PSAnZGVsZXRlJykge1xyXG4gICAgICAgICAgdGhpcy50cmF4U2VydmljZS5kZWxldGVDaGVja2xpc3Qoe2lkOmRldGFpbHMuX2lkLGNsaWVudElkOnRoaXMuZHluYW1pY0RhdGEuY2xpZW50SWR9KS5waXBlKHRha2VVbnRpbCh0aGlzLmRldGFjaCkpPy5zdWJzY3JpYmUoe1xyXG4gICAgICAgICAgICBuZXh0OihyZXM6YW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgaWYocmVzICYmIHJlcy5jb2RlID09IDIwMCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5nZXRDaGVja0xpc3QoKTtcclxuICAgICAgICAgICAgICAgIHRoaXMudG9hc3QuZ2V0U3VjY2Vzc1RvYXN0KGAke2RldGFpbHMuY2hlY2tMaXN0TmFtZX0gaGFzIGJlZW4gRGVsZXRlZC5gKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIGVycm9yOihlcnJvcjphbnkpID0+e1xyXG4gICAgICAgICAgICAgIGxldCBlcnIgPSBlcnJvcj8uZXJyb3I/LmVycm9yIHx8ICdTb21ldGhpbmcgd2VudCB3cm9uZyc7XHJcbiAgICAgICAgICAgICAgdGhpcy50b2FzdC5nZXRFcnJvclRvYXN0KGVycik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaXNoKGV2ZW50OmFueSxkYXRhOmFueSxpOm51bWJlcikge1xyXG4gICAgbGV0IHBvcHVwY29udGVudDtcclxuICAgIGxldCBodG1sQ29udGVudDphbnk7XHJcbiAgICBpZihldmVudC50YXJnZXQuY2hlY2tlZCkge1xyXG4gICAgICBwb3B1cGNvbnRlbnQgPSB7XHJcbiAgICAgICAgZGlzcGxheXByb3A6IGZhbHNlLFxyXG4gICAgICAgIGltYWdlc3JjOiAnPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCI1NlwiIGhlaWdodD1cIjU2XCIgdmlld0JveD1cIjAgMCA1NiA1NlwiIGZpbGw9XCJub25lXCI+PHJlY3QgeD1cIjRcIiB5PVwiNFwiIHdpZHRoPVwiNDhcIiBoZWlnaHQ9XCI0OFwiIHJ4PVwiMjRcIiBmaWxsPVwiI0QxRkFERlwiLz48cGF0aCBkPVwiTTM4IDI3LjA4MThWMjguMDAxOEMzNy45OTg4IDMwLjE1ODIgMzcuMzAwNSAzMi4yNTY1IDM2LjAwOTMgMzMuOTgzNkMzNC43MTgyIDM1LjcxMDggMzIuOTAzMyAzNi45NzQzIDMwLjgzNTQgMzcuNTg1N0MyOC43Njc0IDM4LjE5NzEgMjYuNTU3MyAzOC4xMjM3IDI0LjUzNDUgMzcuMzc2NEMyMi41MTE3IDM2LjYyOTEgMjAuNzg0NyAzNS4yNDc5IDE5LjYxMSAzMy40Mzg5QzE4LjQzNzMgMzEuNjI5OSAxNy44Nzk4IDI5LjQ4OTkgMTguMDIxNyAyNy4zMzgxQzE4LjE2MzYgMjUuMTg2NCAxOC45OTcyIDIzLjEzODEgMjAuMzk4MyAyMS40OTg5QzIxLjc5OTQgMTkuODU5NiAyMy42OTI4IDE4LjcxNzIgMjUuNzk2MiAxOC4yNDJDMjcuODk5NiAxNy43NjY3IDMwLjEwMDMgMTcuOTg0MiAzMi4wNyAxOC44NjE4TTM4IDIwLjAwMThMMjggMzAuMDExOEwyNSAyNy4wMTE4XCIgc3Ryb2tlPVwiIzAzOTg1NVwiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+PHJlY3QgeD1cIjRcIiB5PVwiNFwiIHdpZHRoPVwiNDhcIiBoZWlnaHQ9XCI0OFwiIHJ4PVwiMjRcIiBzdHJva2U9XCIjRUNGREYzXCIgc3Ryb2tlLXdpZHRoPVwiOFwiLz48L3N2Zz4nLFxyXG4gICAgICAgIHRpdGxlOiBgQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIHB1Ymxpc2ggJyR7ZGF0YS5jaGVja0xpc3ROYW1lfScgY2hlY2tsaXN0P2AsXHJcbiAgICAgICAgY29udGVudDogYFB1Ymxpc2hpbmcgd2lsbCBtYWtlIHRoaXMgY2hlY2tsaXN0IGxpdmUsIGFuZCBjaGFuZ2VzIHdpbGwgdGFrZSBlZmZlY3QgaW1tZWRpYXRlbHkuYCxcclxuICAgICAgICBidXR0b250eXBlOiAnY29uZmlybSdcclxuICAgICAgfVxyXG4gICAgICBodG1sQ29udGVudD0gYCR7ZGF0YS5jaGVja0xpc3ROYW1lfSBoYXMgYmVlbiBwdWJsaXNoZWQ8L2Rpdj5gO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHBvcHVwY29udGVudCA9IHtcclxuICAgICAgICBkaXNwbGF5cHJvcDogZmFsc2UsXHJcbiAgICAgICAgaW1hZ2VzcmM6ICc8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjU2XCIgaGVpZ2h0PVwiNTZcIiB2aWV3Qm94PVwiMCAwIDU2IDU2XCIgZmlsbD1cIm5vbmVcIj48cmVjdCB4PVwiNFwiIHk9XCI0XCIgd2lkdGg9XCI0OFwiIGhlaWdodD1cIjQ4XCIgcng9XCIyNFwiIGZpbGw9XCIjRkVGMEM3XCIvPjxwYXRoIGQ9XCJNMjcuOTk5OCAyNC4wMDEyVjI4LjAwMTJNMjcuOTk5OCAzMi4wMDEySDI4LjAwOThNMjYuMjg5OCAxOC44NjEyTDE3LjgxOTggMzMuMDAxMkMxNy42NDUxIDMzLjMwMzYgMTcuNTUyNyAzMy42NDY1IDE3LjU1MTggMzMuOTk1N0MxNy41NTA4IDM0LjM0NDkgMTcuNjQxMyAzNC42ODgzIDE3LjgxNDIgMzQuOTkxN0MxNy45ODcxIDM1LjI5NTEgMTguMjM2NSAzNS41NDc5IDE4LjUzNzUgMzUuNzI1QzE4LjgzODUgMzUuOTAyMSAxOS4xODA2IDM1Ljk5NzMgMTkuNTI5OCAzNi4wMDEySDM2LjQ2OThDMzYuODE5IDM1Ljk5NzMgMzcuMTYxMSAzNS45MDIxIDM3LjQ2MjEgMzUuNzI1QzM3Ljc2MzEgMzUuNTQ3OSAzOC4wMTI0IDM1LjI5NTEgMzguMTg1NCAzNC45OTE3QzM4LjM1ODMgMzQuNjg4MyAzOC40NDg4IDM0LjM0NDkgMzguNDQ3OCAzMy45OTU3QzM4LjQ0NjggMzMuNjQ2NSAzOC4zNTQ0IDMzLjMwMzYgMzguMTc5OCAzMy4wMDEyTDI5LjcwOTggMTguODYxMkMyOS41MzE1IDE4LjU2NzMgMjkuMjgwNSAxOC4zMjQzIDI4Ljk4MSAxOC4xNTU3QzI4LjY4MTQgMTcuOTg3IDI4LjM0MzUgMTcuODk4NCAyNy45OTk4IDE3Ljg5ODRDMjcuNjU2IDE3Ljg5ODQgMjcuMzE4MSAxNy45ODcgMjcuMDE4NiAxOC4xNTU3QzI2LjcxOTEgMTguMzI0MyAyNi40NjggMTguNTY3MyAyNi4yODk4IDE4Ljg2MTJaXCIgc3Ryb2tlPVwiI0RDNjgwM1wiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+PHJlY3QgeD1cIjRcIiB5PVwiNFwiIHdpZHRoPVwiNDhcIiBoZWlnaHQ9XCI0OFwiIHJ4PVwiMjRcIiBzdHJva2U9XCIjRkZGQUVCXCIgc3Ryb2tlLXdpZHRoPVwiOFwiLz48L3N2Zz4nLFxyXG4gICAgICAgIHRpdGxlOiBgQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIHVucHVibGlzaCDigJgke2RhdGEuY2hlY2tMaXN0TmFtZX3igJkgY2hlY2tsaXN0P2AsXHJcbiAgICAgICAgY29udGVudDogYFVucHVibGlzaGluZyB3aWxsIHJlbW92ZSB0aGlzIGNoZWNrbGlzdCBpbW1lZGlhdGVseSwgYW5kIGl0IHdpbGwgbm8gbG9uZ2VyIGJlIHZpc2libGUgdG8gYXNzaWduZWQgbG9jYXRpb25zLmAsXHJcbiAgICAgICAgYnV0dG9udHlwZTogJ2NvbmZpcm0nXHJcbiAgICAgIH1cclxuICAgICAgaHRtbENvbnRlbnQ9IGAke2RhdGEuY2hlY2tMaXN0TmFtZX0gaGFzIGJlZW4gdW5wdWJsaXNoZWRgO1xyXG4gICAgfVxyXG4gICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihUcmF4cG9wdXBDb21wb25lbnQsIHtcclxuICAgICAgY2VudGVyZWQ6dHJ1ZSxzaXplOidtZCcgXHJcbiAgICB9KTtcclxuICAgIGRpYWxvZ1JlZi5jb21wb25lbnRJbnN0YW5jZS5kYXRhID0gcG9wdXBjb250ZW50O1xyXG4gICAgZGlhbG9nUmVmLnJlc3VsdC50aGVuKChyZXMpID0+IHtcclxuICAgICAgaWYgKHJlcyA9PSAnY29uZmlybScpIHtcclxuICAgICAgICB0aGlzLnRyYXhTZXJ2aWNlLnB1Ymxpc2goe3B1Ymxpc2g6IGV2ZW50LnRhcmdldC5jaGVja2VkLGNsaWVudElkOnRoaXMuZHluYW1pY0RhdGEuY2xpZW50SWQsY2hlY2tsaXN0SWQ6ZGF0YS5faWR9KS5waXBlKHRha2VVbnRpbCh0aGlzLmRldGFjaCkpLnN1YnNjcmliZSgocmVzdWx0OmFueSkgPT57XHJcbiAgICAgICAgICBpZihyZXN1bHQgJiYgcmVzdWx0LmNvZGUgPT0gMjAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZ2V0Q2hlY2tMaXN0KCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgZXZlbnQudGFyZ2V0LmNoZWNrZWQgPSBkYXRhLnB1Ymxpc2hcclxuICAgICAgICAgIH1cclxuICAgICAgICB9LChlcnJvcjphbnkpID0+IHtcclxuICAgICAgICAgIGV2ZW50LnRhcmdldC5jaGVja2VkID0gZGF0YS5wdWJsaXNoO1xyXG4gICAgICAgICAgbGV0IGVyciA9IGVycm9yPy5lcnJvcj8uZXJyb3IgfHwgJ1BsZWFzZSB0cnkgYWZ0ZXIgc29tZXRpbWVzJztcclxuICAgICAgICAgIHRoaXMudG9hc3QuZ2V0RXJyb3JUb2FzdChlcnIpO1xyXG4gICAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgfSlcclxuICAgICAgfSBcclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgZXZlbnQudGFyZ2V0LmNoZWNrZWQgPSBkYXRhLnB1Ymxpc2g7XHJcbiAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgIH0gXHJcbiAgICB9KVxyXG4gIH1cclxuXHJcblxyXG4gIHNlYXJjaCgpIHtcclxuICAgIHRoaXMuZHluYW1pY0RhdGEub2Zmc2V0ID0gMTtcclxuICAgIHRoaXMuZHluYW1pY0RhdGEubGltaXQgPSAxMDtcclxuICAgIHRoaXMucGFnZVNpemUgPSAxMDtcclxuICAgIHRoaXMuZHluYW1pY0RhdGEuc29ydENvbHVtbiA9ICcnO1xyXG4gICAgdGhpcy5keW5hbWljRGF0YS5zb3J0QnkgPSAnJztcclxuICAgIHRoaXMuZ2V0Q2hlY2tMaXN0KCk7XHJcbiAgfVxyXG5cclxuICByZWRpcmVjdFVybCh0eXBlOmFueSkge1xyXG4gICAgdGhpcy5yb3V0ZS5uYXZpZ2F0ZUJ5VXJsKGAvbWFuYWdlL3RyYXgvY2hlY2tsaXN0L21hbmFnZWNoZWNrbGlzdD90eXBlPSR7dHlwZX1gKVxyXG4gIH1cclxuXHJcbiAgY2hlY2tQZXJtaXNzaW9uKHR5cGU6IGFueSwgZGF0YTogYW55KSB7XHJcbiAgICBjb25zdCBzdWIgPSAgdGhpcy5ncy51c2VyQWNjZXNzLnBpcGUobWFwKCh2YWwpPT57XHJcbiAgICAgIGlmKHZhbD8uVGFuZ29UcmF4X2NoZWNrbGlzdF9pc0VkaXQpe1xyXG4gICAgICAgIGlmKGRhdGEuY2hlY2tMaXN0VHlwZSA9PSAnY3VzdG9tJykge1xyXG4gICAgICAgICAgaWYoWydlZGl0JywnZGVsZXRlJ10uaW5jbHVkZXModHlwZSkgJiYgIWRhdGEucHVibGlzaCkge1xyXG4gICAgICAgICAgICBkYXRhID0gdHlwZSA9PSAnZWRpdCcgPyBkYXRhLl9pZCA6IGRhdGE7XHJcbiAgICAgICAgICAgIHRoaXMucmVkaXJlY3QodHlwZSxkYXRhKVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYoWydkdXBsaWNhdGUnLCdzZXR0aW5nJ10uaW5jbHVkZXModHlwZSkpIHtcclxuICAgICAgICAgICAgZGF0YSA9IHR5cGUgPT0gJ3NldHRpbmcnID8gZGF0YS5faWQgOiBkYXRhO1xyXG4gICAgICAgICAgICB0aGlzLnJlZGlyZWN0KHR5cGUsZGF0YSlcclxuICAgICAgICAgIH1cclxuICAgICAgICB9ZWxzZSBpZihkYXRhLmNoZWNrTGlzdFR5cGUgIT09ICdjdXN0b20nICYmICFbJ3VuaWZvcm1kZXRlY3Rpb24nLCdzdGFmZmxlZnRpbnRoZW1pZGRsZScsJ2N1c3RvbWVydW5hdHRlbmRlZCddLmluY2x1ZGVzKGRhdGE/LmNoZWNrTGlzdFR5cGUpKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGlkID0gdHlwZSA9PSAnc2V0dGluZycgPyBkYXRhLl9pZCA6IGRhdGE7XHJcbiAgICAgICAgICAgIHRoaXMucmVkaXJlY3QodHlwZSxpZCxkYXRhPy5jaGVja0xpc3RUeXBlKVxyXG4gICAgICAgICAgfVxyXG4gICAgICB9IFxyXG4gICAgfSkpLnN1YnNjcmliZSgpXHJcblxyXG4gICAgc3ViLnVuc3Vic2NyaWJlKClcclxuICB9XHJcbiAgXHJcblxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJjYXJkIHAtNSBtYi0xMFwiICpuZ0lmPVwiKGdzLnVzZXJBY2Nlc3MgfCBhc3luYyk/LlRhbmdvVHJheF9jaGVja2xpc3RfaXNBZGRcIj5cclxuXHJcbiAgICA8IS0tIDxkaXYgY2xhc3M9XCJjYXJkLXRpdGxlIG10LTNcIj5cclxuICAgICAgICA8aDEgY2xhc3M9XCIgbXktMCBjaGVja2xpc3RUaXRsZVwiPlxyXG4gICAgICAgICAgICBNYW5hZ2UgWW91ciBDaGVja2xpc3RcclxuICAgICAgICA8L2gxPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtdC0xIGNoZWNrbGlzdEhlYWRcIj5Zb3UgY2FuIGNyZWF0ZSBhbmQgbWFuYWdlIHlvdXIgY2hlY2tsaXN0IGhlcmU8L2Rpdj5cclxuICAgIDwvZGl2PiAtLT5cclxuICAgIDxkaXYgY2xhc3M9XCJyb3cgbXQtMTBcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTRcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTIgY2hlY2tsaXN0SGVhZFwiPlxyXG4gICAgICAgICAgICAgICAgQ3JlYXRlIHlvdXIgb3duIFxyXG4gICAgICAgICAgICAgICAgPCEtLSA8c3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNNy41NzYzIDcuNTAwMzNDNy43NzIyMiA2Ljk0MzM4IDguMTU4OTMgNi40NzM3NSA4LjY2NzkzIDYuMTc0NkM5LjE3NjkzIDUuODc1NDYgOS43NzUzOCA1Ljc2NjExIDEwLjM1NzMgNS44NjU5MkMxMC45MzkyIDUuOTY1NzMgMTEuNDY3IDYuMjY4MjYgMTEuODQ3MiA2LjcxOTkzQzEyLjIyNzQgNy4xNzE2IDEyLjQzNTUgNy43NDMyNiAxMi40MzQ2IDguMzMzNjZDMTIuNDM0NiAxMC4wMDAzIDkuOTM0NjQgMTAuODMzNyA5LjkzNDY0IDEwLjgzMzdNMTAuMDAxMyAxNC4xNjdIMTAuMDA5Nk0xOC4zMzQ2IDEwLjAwMDNDMTguMzM0NiAxNC42MDI3IDE0LjYwMzcgMTguMzMzNyAxMC4wMDEzIDE4LjMzMzdDNS4zOTg5MyAxOC4zMzM3IDEuNjY3OTcgMTQuNjAyNyAxLjY2Nzk3IDEwLjAwMDNDMS42Njc5NyA1LjM5Nzk1IDUuMzk4OTMgMS42NjY5OSAxMC4wMDEzIDEuNjY2OTlDMTQuNjAzNyAxLjY2Njk5IDE4LjMzNDYgNS4zOTc5NSAxOC4zMzQ2IDEwLjAwMDNaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIxLjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgIDwvc3Bhbj4gLS0+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZCBjYXJkLWZsdXNoIHJvdW5kZWQgcm91bmRlZC00XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiIHRleHQtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9XCJkLWJsb2NrXCIgZGF0YS1mc2xpZ2h0Ym94PVwibGlnaHRib3gtaG90LXNhbGVzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW3JvdXRlckxpbmtdPVwiJy9tYW5hZ2UvdHJheC9jcmVhdGVDaGVja2xpc3QnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi4vYXNzZXRzL3RhbmdvL0ltYWdlcy9uZXdDaGVja2xpc3Quc3ZnXCIgIGNsYXNzPVwidy0xMDAgYm9yZGVyQ2xhc3NcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWVuZCBmbGV4LXN0YWNrIG10LTggbWItOFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1zdGFydCBteC02XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNoZWNrbGlzdFRleHRcIj5DcmVhdGUgTmV3IENoZWNrbGlzdHM8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItMiBjaGVja2xpc3RIZWFkXCI+XHJcbiAgICAgICAgICAgICAgICBDb25maWd1cmUgUHJlZGVmaW5lZCBDaGVja2xpc3RcclxuICAgICAgICAgICAgICAgIDwhLS0gPHNwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTcuNTc2MyA3LjUwMDMzQzcuNzcyMjIgNi45NDMzOCA4LjE1ODkzIDYuNDczNzUgOC42Njc5MyA2LjE3NDZDOS4xNzY5MyA1Ljg3NTQ2IDkuNzc1MzggNS43NjYxMSAxMC4zNTczIDUuODY1OTJDMTAuOTM5MiA1Ljk2NTczIDExLjQ2NyA2LjI2ODI2IDExLjg0NzIgNi43MTk5M0MxMi4yMjc0IDcuMTcxNiAxMi40MzU1IDcuNzQzMjYgMTIuNDM0NiA4LjMzMzY2QzEyLjQzNDYgMTAuMDAwMyA5LjkzNDY0IDEwLjgzMzcgOS45MzQ2NCAxMC44MzM3TTEwLjAwMTMgMTQuMTY3SDEwLjAwOTZNMTguMzM0NiAxMC4wMDAzQzE4LjMzNDYgMTQuNjAyNyAxNC42MDM3IDE4LjMzMzcgMTAuMDAxMyAxOC4zMzM3QzUuMzk4OTMgMTguMzMzNyAxLjY2Nzk3IDE0LjYwMjcgMS42Njc5NyAxMC4wMDAzQzEuNjY3OTcgNS4zOTc5NSA1LjM5ODkzIDEuNjY2OTkgMTAuMDAxMyAxLjY2Njk5QzE0LjYwMzcgMS42NjY5OSAxOC4zMzQ2IDUuMzk3OTUgMTguMzM0NiAxMC4wMDAzWlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMS42N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+IC0tPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQgY2FyZC1mbHVzaCByb3VuZGVkIHJvdW5kZWQtNCBjdXJzb3ItcG9pbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIiB0ZXh0LWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDwhLS0gaHJlZj1cIi9zb3AvQ29uZmlndXJlP3R5cGU9bW9iaWxldXNhZ2VkZXRlY3Rpb25cIiAtLT5cclxuICAgICAgICAgICAgICAgICAgICA8YSAoY2xpY2spPVwicmVkaXJlY3RVcmwoJ3ByZWRlZmluZWQnKVwiIGNsYXNzPVwiZC1ibG9jayB3LTEwMFwiIGRhdGEtZnNsaWdodGJveD1cImxpZ2h0Ym94LWhvdC1zYWxlc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9XCIuL2Fzc2V0cy90YW5nby9JbWFnZXMvcHJlZGVmaW5lZC5zdmdcIiBjbGFzcz1cInctMTAwIGJvcmRlckNsYXNzXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1lbmQgZmxleC1zdGFjayBtdC04IG1iLTggXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LXN0YXJ0IG14LTZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2hlY2tsaXN0VGV4dFwiPkNob29zZSBmcm9tIGEgbGlicmFyeSBvZiB0ZW1wbGF0ZXM8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItMiBjaGVja2xpc3RIZWFkIFwiPlxyXG4gICAgICAgICAgICAgICAgQ29uZmlndXJlIHlvdXIgUHJlZGVmaW5lZCBBSSBjaGVja2xpc3RcclxuICAgICAgICAgICAgICAgIDwhLS0gPHNwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTcuNTc2MyA3LjUwMDMzQzcuNzcyMjIgNi45NDMzOCA4LjE1ODkzIDYuNDczNzUgOC42Njc5MyA2LjE3NDZDOS4xNzY5MyA1Ljg3NTQ2IDkuNzc1MzggNS43NjYxMSAxMC4zNTczIDUuODY1OTJDMTAuOTM5MiA1Ljk2NTczIDExLjQ2NyA2LjI2ODI2IDExLjg0NzIgNi43MTk5M0MxMi4yMjc0IDcuMTcxNiAxMi40MzU1IDcuNzQzMjYgMTIuNDM0NiA4LjMzMzY2QzEyLjQzNDYgMTAuMDAwMyA5LjkzNDY0IDEwLjgzMzcgOS45MzQ2NCAxMC44MzM3TTEwLjAwMTMgMTQuMTY3SDEwLjAwOTZNMTguMzM0NiAxMC4wMDAzQzE4LjMzNDYgMTQuNjAyNyAxNC42MDM3IDE4LjMzMzcgMTAuMDAxMyAxOC4zMzM3QzUuMzk4OTMgMTguMzMzNyAxLjY2Nzk3IDE0LjYwMjcgMS42Njc5NyAxMC4wMDAzQzEuNjY3OTcgNS4zOTc5NSA1LjM5ODkzIDEuNjY2OTkgMTAuMDAxMyAxLjY2Njk5QzE0LjYwMzcgMS42NjY5OSAxOC4zMzQ2IDUuMzk3OTUgMTguMzM0NiAxMC4wMDAzWlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMS42N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+IC0tPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQgY2FyZC1mbHVzaCByb3VuZGVkIHJvdW5kZWQtNCBjdXJzb3ItcG9pbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIiB0ZXh0LWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDwhLS0gaHJlZj1cIi9zb3AvQ29uZmlndXJlP3R5cGU9bW9iaWxldXNhZ2VkZXRlY3Rpb25cIiAtLT5cclxuICAgICAgICAgICAgICAgICAgICA8YSAoY2xpY2spPVwicmVkaXJlY3RVcmwoJ2FpJylcIiBjbGFzcz1cImQtYmxvY2sgdy0xMDBcIiBkYXRhLWZzbGlnaHRib3g9XCJsaWdodGJveC1ob3Qtc2FsZXNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi4vYXNzZXRzL3RhbmdvL0ltYWdlcy9haWNoZWNrbGlzdC5zdmdcIiBjbGFzcz1cInctMTAwIGJvcmRlckNsYXNzXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtZW5kIGZsZXgtc3RhY2sgbXQtOCBtYi04XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LXN0YXJ0IG14LTZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2hlY2tsaXN0VGV4dFwiPkNob29zZSBmcm9tIGEgbGlicmFyeSBvZiBBSSBDaGVja2xpc3RzPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj5cclxuPGRpdiBjbGFzcz1cImNhcmRcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTIgbXQtM1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWhlYWRlciBib3JkZXItMCBwdC0zIG1iLTVcIj5cclxuICAgICAgICAgICAgPGgzIGNsYXNzPVwiY2FyZC10aXRsZSBhbGlnbi1pdGVtcy1zdGFydCBmbGV4LWNvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0aXRsZS10ZXh0IG1iLTJcIj5DaGVja2xpc3QgSW5mbzwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwhLS0gPHNwYW4gY2xhc3M9XCJ0ZXh0LXN1YiBtYi0yXCI+QmFzZWQgb24gMDYgSmFuLCAyMDIy4oCTIDEzIEphbiwgMjAyMjwvc3Bhbj4gLS0+XHJcbiAgICAgICAgICAgIDwvaDM+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLXRvb2xiYXJcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBwb3NpdGlvbi1yZWxhdGl2ZSBteS0xXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3ZnLWljb24gc3ZnLWljb24tMSBwb3NpdGlvbi1hYnNvbHV0ZSBtcy0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjI0XCIgaGVpZ2h0PVwiMjRcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IG9wYWNpdHk9XCIwLjVcIiB4PVwiMTcuMDM2NVwiIHk9XCIxNS4xMjIzXCIgd2lkdGg9XCI4LjE1NTQ2XCIgaGVpZ2h0PVwiMlwiIHJ4PVwiMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybT1cInJvdGF0ZSg0NSAxNy4wMzY1IDE1LjEyMjMpXCIgZmlsbD1cImN1cnJlbnRDb2xvclwiPjwvcmVjdD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTExIDE5QzYuNTU1NTYgMTkgMyAxNS40NDQ0IDMgMTFDMyA2LjU1NTU2IDYuNTU1NTYgMyAxMSAzQzE1LjQ0NDQgMyAxOSA2LjU1NTU2IDE5IDExQzE5IDE1LjQ0NDQgMTUuNDQ0NCAxOSAxMSAxOVpNMTEgNUM3LjUzMzMzIDUgNSA3LjUzMzMzIDUgMTFDNSAxNC40NjY3IDcuNTMzMzMgMTcgMTEgMTdDMTQuNDY2NyAxNyAxNyAxNC40NjY3IDE3IDExQzE3IDcuNTMzMzMgMTQuNDY2NyA1IDExIDVaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiPjwvcGF0aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbCBwcy0xNCBtZS0yXCIgYXV0b2NvbXBsZXRlPVwib2ZmXCIgcGxhY2Vob2xkZXI9XCJTZWFyY2hcIiBbKG5nTW9kZWwpXT1cImR5bmFtaWNEYXRhLnNlYXJjaFwiIChjaGFuZ2UpPVwic2VhcmNoKClcIi8+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YSBbcm91dGVyTGlua109XCInL21hbmFnZS90cmF4L2NyZWF0ZUNoZWNrbGlzdCdcIiB0eXBlPVwiYnV0dG9uXCIgKm5nSWY9XCIhbm9EYXRhICYmIChncy51c2VyQWNjZXNzIHwgYXN5bmMpPy5UYW5nb1RyYXhfY2hlY2tsaXN0X2lzQWRkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IG14LTIgYnRuLW91dGxpbmUgYnRuLW91dGxpbmUtZGVmYXVsdCByb3VuZGVkLTMgdGV4dC1ub3dyYXAgYm9yZGVyLXZhbFwiPjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTAuMDAxMyA0LjE2Njk5VjE1LjgzMzdNNC4xNjc5NyAxMC4wMDAzSDE1LjgzNDZcIiBzdHJva2U9XCJ3aGl0ZVwiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+PHNwYW4gY2xhc3M9XCJtcy0yXCI+Q3JlYXRlIENoZWNrbGlzdDwvc3Bhbj4gPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgKm5nSWY9XCJsb2FkaW5nXCIgY2xhc3M9XCJyb3cgbG9hZGVyIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2hpbW1lclwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIndyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgdGl0bGVcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgbGlua1wiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBkZXNjcmlwdGlvblwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2hpbW1lclwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIndyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgdGl0bGVcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgbGlua1wiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBkZXNjcmlwdGlvblwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctMTIgcGItNVwiICpuZ0lmPVwiIWxvYWRpbmcgJiYgbm9EYXRhXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHkgdGV4dC1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiLi9hc3NldHMvdGFuZ28vSWNvbnMvTm9kYXRhMS5zdmdcIiBhbHQ9XCJcIiBjbGFzcz1cInN0YXJ0Y2hlY2tsaXN0XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hlY2tsaXN0X3RleHQgZnctc2VtaWJvbGQgbXQtNiBjaGVja1N0YXJ0XCI+U3RhcnQgYnkgY3JlYXRpbmcgYSBjaGVja2xpc3Q8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaGVja2xpc3Rfc3BhbiBtdC0xIGNoZWNrbGlzdEhlYWRcIj5BbnkgY2hlY2tsaXN0IGNyZWF0ZWQgd2lsbCBsaXZlIGhlcmUuPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGRhdGEta3Qtc3Vic2NyaXB0aW9uLXRhYmxlLXRvb2xiYXI9XCJiYXNlXCIgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgPGEgaHJlZj1cImh0dHBzOi8vdGFuZ29leWUuYWkvXCIgY2xhc3M9XCJidG4tb3V0bGluZSBidG4tb3V0bGluZSBidG4gYnRuLWxpZ2h0IHVwbG9hZCBteC0zIHB4LTE2IGNoZWNrU3RhcnRcIj48c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInVwbG9hZHRleHRcIj5Ib3cgVG9cclxuICAgICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlPzwvc3Bhbj48L2E+XHJcblxyXG4gICAgICAgICAgICAgICAgPGEgW3JvdXRlckxpbmtdPVwiJy9tYW5hZ2UvdHJheC9jcmVhdGVDaGVja2xpc3QnXCIgdHlwZT1cImJ1dHRvblwiIHRhYmluZGV4PVwiMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgcHgtMTYgbXgtMiBuZy1zdGFyLWluc2VydGVkIGNoZWNrU3RhcnRcIiBzdHlsZT1cIndoaXRlLXNwYWNlOiBub3dyYXA7XCIgKm5nSWY9XCIoZ3MudXNlckFjY2VzcyB8IGFzeW5jKT8uVGFuZ29UcmF4X2NoZWNrbGlzdF9pc0FkZFwiPjxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic3ZnLWljb24gc3ZnLWljb24tMlwiPjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTAuMDAwMSA0LjE2NjAyVjE1LjgzMjdNNC4xNjY3NSA5Ljk5OTM1SDE1LjgzMzRcIiBzdHJva2U9XCJ3aGl0ZVwiIHN0cm9rZS13aWR0aD1cIjEuNjdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPjwvc3Bhbj48c3BhbiBjbGFzcz1cImNyZWF0ZVwiPkNyZWF0ZSBOZXc8L3NwYW4+PC9hPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2ICpuZ0lmPVwiIW5vRGF0YSAmJiAhbG9hZGluZ1wiIGNhbHNzPVwiY2FyZC1ib2R5XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0YWJsZS1yZXNwb25zaXZlXCI+XHJcbiAgICAgICAgICAgICAgICA8dGFibGUgY2xhc3M9XCJ3LTEwMCB0YWJsZSBib3R0b20tYm9yZGVyIHRleHQtbm93cmFwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHRoZWFkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dHI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwib25Tb3J0KCdjaGVja0xpc3ROYW1lJylcIj5DaGVja2xpc3QgPHN2Z1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiZHluYW1pY0RhdGEuc29ydENvbHVtbiA9PT0gJ2NoZWNrTGlzdE5hbWUnICYmIGR5bmFtaWNEYXRhLnNvcnRCeSA9PT0gMSA/ICdyb3RhdGUnIDogJydcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNOC4wMDAxNiAzLjMzMzM3VjEyLjY2NjdNOC4wMDAxNiAxMi42NjY3TDEyLjY2NjggOC4wMDAwNE04LjAwMDE2IDEyLjY2NjdMMy4zMzM1IDguMDAwMDRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLnN0cm9rZV09XCJkeW5hbWljRGF0YS5zb3J0Q29sdW1uID09PSAnY2hlY2tMaXN0TmFtZScgPyAnIzAwQTNGRicgOiAnIzY2NzA4NSdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS13aWR0aD1cIjEuMzMzMzNcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImN1cnNvci1wb2ludGVyXCIgKGNsaWNrKT1cIm9uU29ydCgnY3JlYXRlZEJ5TmFtZScpXCI+Q2hlY2tsaXN0IE93bmVyIDxzdmdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cImR5bmFtaWNEYXRhLnNvcnRDb2x1bW4gPT09ICdjcmVhdGVkQnlOYW1lJyAmJiBkeW5hbWljRGF0YS5zb3J0QnkgPT09IDEgPyAncm90YXRlJyA6ICcnXCIgd2lkdGg9XCIxNlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIxNlwiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTguMDAwMTYgMy4zMzMzN1YxMi42NjY3TTguMDAwMTYgMTIuNjY2N0wxMi42NjY4IDguMDAwMDRNOC4wMDAxNiAxMi42NjY3TDMuMzMzNSA4LjAwMDA0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5zdHJva2VdPVwiZHluYW1pY0RhdGEuc29ydENvbHVtbiA9PT0gJ2NyZWF0ZWRCeU5hbWUnID8gJyMwMEEzRkYnIDogJyM2NjcwODUnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2Utd2lkdGg9XCIxLjMzMzMzXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz1cImN1cnNvci1wb2ludGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiIChjbGljayk9XCJvblNvcnQoJ2NvdmVyYWdlJylcIj5Db3ZlcmFnZSA8c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJkeW5hbWljRGF0YS5zb3J0Q29sdW1uID09PSAnY292ZXJhZ2UnICYmIGR5bmFtaWNEYXRhLnNvcnRCeSA9PT0gMSA/ICdyb3RhdGUnIDogJydcIiB3aWR0aD1cIjE2XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjE2XCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNOC4wMDAxNiAzLjMzMzM3VjEyLjY2NjdNOC4wMDAxNiAxMi42NjY3TDEyLjY2NjggOC4wMDAwNE04LjAwMDE2IDEyLjY2NjdMMy4zMzM1IDguMDAwMDRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLnN0cm9rZV09XCJkeW5hbWljRGF0YS5zb3J0Q29sdW1uID09PSAnY292ZXJhZ2UnID8gJyMwMEEzRkYnIDogJyM2NjcwODUnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2Utd2lkdGg9XCIxLjMzMzMzXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz1cImN1cnNvci1wb2ludGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiIChjbGljayk9XCJvblNvcnQoJ3N0b3JlQ291bnQnKVwiPkFzc2lnbmVkIFRvIDxzdmdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cImR5bmFtaWNEYXRhLnNvcnRDb2x1bW4gPT09ICdzdG9yZUNvdW50JyAmJiBkeW5hbWljRGF0YS5zb3J0QnkgPT09IDEgPyAncm90YXRlJyA6ICcnXCIgd2lkdGg9XCIxNlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIxNlwiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTguMDAwMTYgMy4zMzMzN1YxMi42NjY3TTguMDAwMTYgMTIuNjY2N0wxMi42NjY4IDguMDAwMDRNOC4wMDAxNiAxMi42NjY3TDMuMzMzNSA4LjAwMDA0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5zdHJva2VdPVwiZHluYW1pY0RhdGEuc29ydENvbHVtbiA9PT0gJ3N0b3JlQ291bnQnID8gJyMwMEEzRkYnIDogJyM2NjcwODUnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2Utd2lkdGg9XCIxLjMzMzMzXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz1cImN1cnNvci1wb2ludGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiIChjbGljayk9XCJvblNvcnQoJ3F1ZXN0aW9uQ291bnQnKVwiPk5vLiBvZiBxdWVzdGlvbnMgPHN2Z1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiZHluYW1pY0RhdGEuc29ydENvbHVtbiA9PT0gJ3F1ZXN0aW9uQ291bnQnICYmIGR5bmFtaWNEYXRhLnNvcnRCeSA9PT0gMSA/ICdyb3RhdGUnIDogJydcIiB3aWR0aD1cIjE2XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjE2XCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNOC4wMDAxNiAzLjMzMzM3VjEyLjY2NjdNOC4wMDAxNiAxMi42NjY3TDEyLjY2NjggOC4wMDAwNE04LjAwMDE2IDEyLjY2NjdMMy4zMzM1IDguMDAwMDRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLnN0cm9rZV09XCJkeW5hbWljRGF0YS5zb3J0Q29sdW1uID09PSAncXVlc3Rpb25Db3VudCcgPyAnIzAwQTNGRicgOiAnIzY2NzA4NSdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS13aWR0aD1cIjEuMzMzMzNcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImN1cnNvci1wb2ludGVyXCIgKGNsaWNrKT1cIm9uU29ydCgnc3RhdHVzJylcIj5TdGF0dXMgPHN2Z1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiZHluYW1pY0RhdGEuc29ydENvbHVtbiA9PT0gJ3N0YXR1cycgJiYgZHluYW1pY0RhdGEuc29ydEJ5ID09PSAxID8gJ3JvdGF0ZScgOiAnJ1wiIHdpZHRoPVwiMTZcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMTZcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk04LjAwMDE2IDMuMzMzMzdWMTIuNjY2N004LjAwMDE2IDEyLjY2NjdMMTIuNjY2OCA4LjAwMDA0TTguMDAwMTYgMTIuNjY2N0wzLjMzMzUgOC4wMDAwNFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuc3Ryb2tlXT1cImR5bmFtaWNEYXRhLnNvcnRDb2x1bW4gPT09ICdzdGF0dXMnID8gJyMwMEEzRkYnIDogJyM2NjcwODUnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2Utd2lkdGg9XCIxLjMzMzMzXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz1cImN1cnNvci1wb2ludGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiPkFjdGlvbnM8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImN1cnNvci1wb2ludGVyXCIgKGNsaWNrKT1cIm9uU29ydCgncHVibGlzaCcpXCI+UHVibGlzaCA8c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJkeW5hbWljRGF0YS5zb3J0Q29sdW1uID09PSAncHVibGlzaCcgJiYgZHluYW1pY0RhdGEuc29ydEJ5ID09PSAxID8gJ3JvdGF0ZScgOiAnJ1wiIHdpZHRoPVwiMTZcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMTZcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk04LjAwMDE2IDMuMzMzMzdWMTIuNjY2N004LjAwMDE2IDEyLjY2NjdMMTIuNjY2OCA4LjAwMDA0TTguMDAwMTYgMTIuNjY2N0wzLjMzMzUgOC4wMDAwNFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuc3Ryb2tlXT1cImR5bmFtaWNEYXRhLnNvcnRDb2x1bW4gPT09ICdwdWJsaXNoJyA/ICcjMDBBM0ZGJyA6ICcjNjY3MDg1J1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMS4zMzMzM1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC90aGVhZD5cclxuICAgICAgICAgICAgICAgICAgICA8dGJvZHk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx0ciAqbmdGb3I9XCJsZXQgZGF0YSBvZiBjaGVja2xpc3REYXRhO2xldCBpPWluZGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIChjbGljayk9XCJzdG9yZVZpZXcob2JqKVwiIC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwidGV4dC1jYXBpdGFsaXplXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN5bWJvbCBzeW1ib2wtMzVweCBzeW1ib2wtY2lyY2xlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3ltYm9sLWxhYmVsIGJnLWxpZ2h0LXByaW1hcnkgdGV4dC1wcmltYXJ5IG1lLTJcIj57e2RhdGEuY2hlY2tMaXN0Q2hhci50b1VwcGVyQ2FzZSgpfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LWRlY29yYXRpb24tdW5kZXJsaW5lIHRleHQtcHJpbWFyeVwiICpuZ0lmPVwiZGF0YT8uY2hlY2tMaXN0VHlwZSA9PT0gJ2N1c3RvbSdcIj48YSBbcm91dGVyTGlua109XCJbJy9tYW5hZ2UvdHJheC9kYXNoYm9hcmQvaW5mbyddXCIgW3F1ZXJ5UGFyYW1zXT1cInt0eXBlOiAnQ2hlY2tsaXN0JywgY2hlY2tsaXN0OiBkYXRhLl9pZCB9XCIgY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiPiB7e2RhdGEuY2hlY2tMaXN0TmFtZX19PC9hPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtcHJpbWFyeVwiICpuZ0lmPVwiZGF0YT8uY2hlY2tMaXN0VHlwZSAhPT0gJ2N1c3RvbSdcIj57e2RhdGEuY2hlY2tMaXN0TmFtZX19IDxzcGFuICpuZ0lmPVwiZGF0YT8uY2hlY2tMaXN0VHlwZSAhPT0gJ2N1c3RvbSdcIiBjbGFzcz1cIm14LTJcIj7inKg8L3NwYW4+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD57e2RhdGEuY3JlYXRlZEJ5TmFtZX19PC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD57e2RhdGE/LmNvdmVyYWdlfX08L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkID57e2RhdGEuc3RvcmVDb3VudH19PC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCA+e3tkYXRhLnF1ZXN0aW9uQ291bnR9fTwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+PHNwYW4gY2xhc3M9XCJiYWRnZVwiIFtuZ0NsYXNzXT1cImRhdGEucHVibGlzaCA/ICdiYWRnZS1saWdodC1zdWNjZXNzJyA6ICdiYWRnZS1saWdodC1wcmltYXJ5J1wiPnt7KGRhdGEucHVibGlzaCA/ICdQdWJsaXNoZWQnIDonZHJhZnQnKSB8IHRpdGxlY2FzZX19PC9zcGFuPjwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtZS02XCIgW25nQ2xhc3NdPVwiKCFkYXRhPy5wdWJsaXNoICYmIGRhdGEuY2hlY2tMaXN0VHlwZSA9PT0gJ2N1c3RvbScgJiYgKGdzLnVzZXJBY2Nlc3MgfCBhc3luYyk/LlRhbmdvVHJheF9jaGVja2xpc3RfaXNFZGl0KSA/ICdjdXJzb3ItcG9pbnRlcicgOiAnJ1wiIChjbGljayk9XCJjaGVja1Blcm1pc3Npb24oJ2VkaXQnLGRhdGEpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTAuODMyMDMxIDkuOTk5NjdDMC44MzIwMzEgOS45OTk2NyA0LjE2NTM2IDMuMzMzMDEgOS45OTg3IDMuMzMzMDFDMTUuODMyIDMuMzMzMDEgMTkuMTY1NCA5Ljk5OTY3IDE5LjE2NTQgOS45OTk2N0MxOS4xNjU0IDkuOTk5NjcgMTUuODMyIDE2LjY2NjMgOS45OTg3IDE2LjY2NjNDNC4xNjUzNiAxNi42NjYzIDAuODMyMDMxIDkuOTk5NjcgMC44MzIwMzEgOS45OTk2N1pcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLnN0cm9rZV09XCIoIWRhdGEucHVibGlzaCAmJiBkYXRhLmNoZWNrTGlzdFR5cGUgPT09ICdjdXN0b20nICYmIChncy51c2VyQWNjZXNzIHwgYXN5bmMpPy5UYW5nb1RyYXhfY2hlY2tsaXN0X2lzRWRpdCkgPyAnIzY2NzA4NScgOiAnI0QwRDVERCdcIiBzdHJva2Utd2lkdGg9XCIxLjY2NjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk05Ljk5ODcgMTIuNDk5N0MxMS4zNzk0IDEyLjQ5OTcgMTIuNDk4NyAxMS4zODA0IDEyLjQ5ODcgOS45OTk2N0MxMi40OTg3IDguNjE4OTYgMTEuMzc5NCA3LjQ5OTY3IDkuOTk4NyA3LjQ5OTY3QzguNjE3OTkgNy40OTk2NyA3LjQ5ODcgOC42MTg5NiA3LjQ5ODcgOS45OTk2N0M3LjQ5ODcgMTEuMzgwNCA4LjYxNzk5IDEyLjQ5OTcgOS45OTg3IDEyLjQ5OTdaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5zdHJva2VdPVwiKCFkYXRhLnB1Ymxpc2ggJiYgZGF0YS5jaGVja0xpc3RUeXBlID09PSAnY3VzdG9tJyAmJiAoZ3MudXNlckFjY2VzcyB8IGFzeW5jKT8uVGFuZ29UcmF4X2NoZWNrbGlzdF9pc0VkaXQpID8gJyM2NjcwODUnIDogJyNEMEQ1REQnXCIgc3Ryb2tlLXdpZHRoPVwiMS42NjY2N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1lLTZcIiBbbmdDbGFzc109XCIoKGRhdGEuY2hlY2tMaXN0VHlwZSA9PT0gJ2N1c3RvbScgfHwgZGF0YS5jaGVja0xpc3RUeXBlICE9PSAnY3VzdG9tJykmJiAhWyd1bmlmb3JtZGV0ZWN0aW9uJywnc3RhZmZsZWZ0aW50aGVtaWRkbGUnLCdjdXN0b21lcnVuYXR0ZW5kZWQnXS5pbmNsdWRlcyhkYXRhPy5jaGVja0xpc3RUeXBlKSAmJiAoZ3MudXNlckFjY2VzcyB8IGFzeW5jKT8uVGFuZ29UcmF4X2NoZWNrbGlzdF9pc0VkaXQpID8gJ2N1cnNvci1wb2ludGVyJyA6ICcnXCIgIChjbGljayk9XCJjaGVja1Blcm1pc3Npb24oJ3NldHRpbmcnLGRhdGEpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGcgY2xpcC1wYXRoPVwidXJsKCNjbGlwMF8yMjU0XzIwMjYxKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNOS45OTg3IDEyLjQ5OTdDMTEuMzc5NCAxMi40OTk3IDEyLjQ5ODcgMTEuMzgwNCAxMi40OTg3IDkuOTk5NjdDMTIuNDk4NyA4LjYxODk2IDExLjM3OTQgNy40OTk2NyA5Ljk5ODcgNy40OTk2N0M4LjYxNzk5IDcuNDk5NjcgNy40OTg3IDguNjE4OTYgNy40OTg3IDkuOTk5NjdDNy40OTg3IDExLjM4MDQgOC42MTc5OSAxMi40OTk3IDkuOTk4NyAxMi40OTk3WlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLnN0cm9rZV09XCIoKGRhdGEuY2hlY2tMaXN0VHlwZSA9PT0gJ2N1c3RvbScgfHwgZGF0YS5jaGVja0xpc3RUeXBlICE9PSAnY3VzdG9tJykmJiAhWyd1bmlmb3JtZGV0ZWN0aW9uJywnc3RhZmZsZWZ0aW50aGVtaWRkbGUnLCdjdXN0b21lcnVuYXR0ZW5kZWQnXS5pbmNsdWRlcyhkYXRhPy5jaGVja0xpc3RUeXBlKSAmJiAoZ3MudXNlckFjY2VzcyB8IGFzeW5jKT8uVGFuZ29UcmF4X2NoZWNrbGlzdF9pc0VkaXQpID8gJyM2NjcwODUnIDogJyNEMEQ1REQnXCIgc3Ryb2tlLXdpZHRoPVwiMS42NjY2N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xNi4xNjU0IDEyLjQ5OTdDMTYuMDU0NCAxMi43NTEgMTYuMDIxMyAxMy4wMjk4IDE2LjA3MDQgMTMuMzAwMkMxNi4xMTk0IDEzLjU3MDUgMTYuMjQ4MiAxMy44MTk5IDE2LjQ0MDQgMTQuMDE2M0wxNi40OTA0IDE0LjA2NjNDMTYuNjQ1MyAxNC4yMjExIDE2Ljc2ODMgMTQuNDA0OSAxNi44NTIxIDE0LjYwNzNDMTYuOTM2IDE0LjgwOTYgMTYuOTc5MiAxNS4wMjY1IDE2Ljk3OTIgMTUuMjQ1NUMxNi45NzkyIDE1LjQ2NDUgMTYuOTM2IDE1LjY4MTQgMTYuODUyMSAxNS44ODM3QzE2Ljc2ODMgMTYuMDg2MSAxNi42NDUzIDE2LjI2OTkgMTYuNDkwNCAxNi40MjQ3QzE2LjMzNTYgMTYuNTc5NiAxNi4xNTE4IDE2LjcwMjYgMTUuOTQ5NCAxNi43ODY0QzE1Ljc0NzEgMTYuODcwMyAxNS41MzAyIDE2LjkxMzUgMTUuMzExMiAxNi45MTM1QzE1LjA5MjIgMTYuOTEzNSAxNC44NzUzIDE2Ljg3MDMgMTQuNjczIDE2Ljc4NjRDMTQuNDcwNiAxNi43MDI2IDE0LjI4NjggMTYuNTc5NiAxNC4xMzIgMTYuNDI0N0wxNC4wODIgMTYuMzc0N0MxMy44ODU2IDE2LjE4MjYgMTMuNjM2MiAxNi4wNTM3IDEzLjM2NTkgMTYuMDA0N0MxMy4wOTU1IDE1Ljk1NTcgMTIuODE2NyAxNS45ODg3IDEyLjU2NTQgMTYuMDk5N0MxMi4zMTg5IDE2LjIwNTMgMTIuMTA4NyAxNi4zODA3IDExLjk2MDYgMTYuNjA0M0MxMS44MTI2IDE2LjgyNzkgMTEuNzMzMSAxNy4wODk5IDExLjczMiAxNy4zNThWMTcuNDk5N0MxMS43MzIgMTcuOTQxNyAxMS41NTY0IDE4LjM2NTYgMTEuMjQzOSAxOC42NzgyQzEwLjkzMTMgMTguOTkwNyAxMC41MDc0IDE5LjE2NjMgMTAuMDY1NCAxOS4xNjYzQzkuNjIzMzQgMTkuMTY2MyA5LjE5OTQxIDE4Ljk5MDcgOC44ODY4NSAxOC42NzgyQzguNTc0MjkgMTguMzY1NiA4LjM5ODcgMTcuOTQxNyA4LjM5ODcgMTcuNDk5N1YxNy40MjQ3QzguMzkyMjUgMTcuMTQ4OCA4LjMwMjk2IDE2Ljg4MTMgOC4xNDI0NiAxNi42NTY5QzcuOTgxOTUgMTYuNDMyNSA3Ljc1NzY0IDE2LjI2MTYgNy40OTg3IDE2LjE2NjNDNy4yNDczNSAxNi4wNTU0IDYuOTY4NTQgMTYuMDIyMyA2LjY5ODIxIDE2LjA3MTNDNi40Mjc4OCAxNi4xMjA0IDYuMTc4NDMgMTYuMjQ5MiA1Ljk4MjAzIDE2LjQ0MTNMNS45MzIwMyAxNi40OTEzQzUuNzc3MjQgMTYuNjQ2MyA1LjU5MzQzIDE2Ljc2OTIgNS4zOTExIDE2Ljg1MzFDNS4xODg3NyAxNi45MzcgNC45NzE4OSAxNi45ODAyIDQuNzUyODYgMTYuOTgwMkM0LjUzMzg0IDE2Ljk4MDIgNC4zMTY5NiAxNi45MzcgNC4xMTQ2MyAxNi44NTMxQzMuOTEyMyAxNi43NjkyIDMuNzI4NDkgMTYuNjQ2MyAzLjU3MzcgMTYuNDkxM0MzLjQxODc0IDE2LjMzNjYgMy4yOTU4MSAxNi4xNTI3IDMuMjExOTMgMTUuOTUwNEMzLjEyODA2IDE1Ljc0ODEgMy4wODQ4OSAxNS41MzEyIDMuMDg0ODkgMTUuMzEyMkMzLjA4NDg5IDE1LjA5MzEgMy4xMjgwNiAxNC44NzYzIDMuMjExOTMgMTQuNjczOUMzLjI5NTgxIDE0LjQ3MTYgMy40MTg3NCAxNC4yODc4IDMuNTczNyAxNC4xMzNMMy42MjM3IDE0LjA4M0MzLjgxNTgxIDEzLjg4NjYgMy45NDQ2OSAxMy42MzcyIDMuOTkzNyAxMy4zNjY4QzQuMDQyNzIgMTMuMDk2NSA0LjAwOTYzIDEyLjgxNzcgMy44OTg3IDEyLjU2NjNDMy43OTMwNiAxMi4zMTk5IDMuNjE3NjYgMTIuMTA5NyAzLjM5NDA5IDExLjk2MTZDMy4xNzA1MSAxMS44MTM1IDIuOTA4NTIgMTEuNzM0MSAyLjY0MDM2IDExLjczM0gyLjQ5ODdDMi4wNTY2NyAxMS43MzMgMS42MzI3NSAxMS41NTc0IDEuMzIwMTkgMTEuMjQ0OUMxLjAwNzYzIDEwLjkzMjMgMC44MzIwMzEgMTAuNTA4NCAwLjgzMjAzMSAxMC4wNjYzQzAuODMyMDMxIDkuNjI0MzEgMS4wMDc2MyA5LjIwMDM5IDEuMzIwMTkgOC44ODc4M0MxLjYzMjc1IDguNTc1MjcgMi4wNTY2NyA4LjM5OTY3IDIuNDk4NyA4LjM5OTY3SDIuNTczN0MyLjg0OTUzIDguMzkzMjIgMy4xMTcwMyA4LjMwMzk0IDMuMzQxNDUgOC4xNDM0M0MzLjU2NTg2IDcuOTgyOTMgMy43MzY3OSA3Ljc1ODYyIDMuODMyMDMgNy40OTk2N0MzLjk0Mjk2IDcuMjQ4MzMgMy45NzYwNSA2Ljk2OTUxIDMuOTI3MDMgNi42OTkxOEMzLjg3ODAyIDYuNDI4ODUgMy43NDkxNCA2LjE3OTQxIDMuNTU3MDMgNS45ODMwMUwzLjUwNzAzIDUuOTMzMDFDMy4zNTIwNyA1Ljc3ODIyIDMuMjI5MTQgNS41OTQ0IDMuMTQ1MjYgNS4zOTIwN0MzLjA2MTM5IDUuMTg5NzQgMy4wMTgyMiA0Ljk3Mjg3IDMuMDE4MjIgNC43NTM4NEMzLjAxODIyIDQuNTM0ODEgMy4wNjEzOSA0LjMxNzk0IDMuMTQ1MjYgNC4xMTU2MUMzLjIyOTE0IDMuOTEzMjggMy4zNTIwNyAzLjcyOTQ2IDMuNTA3MDMgMy41NzQ2N0MzLjY2MTgyIDMuNDE5NzEgMy44NDU2MyAzLjI5Njc4IDQuMDQ3OTYgMy4yMTI5MUM0LjI1MDI5IDMuMTI5MDMgNC40NjcxNyAzLjA4NTg2IDQuNjg2MiAzLjA4NTg2QzQuOTA1MjIgMy4wODU4NiA1LjEyMjEgMy4xMjkwMyA1LjMyNDQzIDMuMjEyOTFDNS41MjY3NiAzLjI5Njc4IDUuNzEwNTggMy40MTk3MSA1Ljg2NTM2IDMuNTc0NjdMNS45MTUzNiAzLjYyNDY3QzYuMTExNzYgMy44MTY3OSA2LjM2MTIxIDMuOTQ1NjYgNi42MzE1NCAzLjk5NDY4QzYuOTAxODcgNC4wNDM2OSA3LjE4MDY4IDQuMDEwNiA3LjQzMjAzIDMuODk5NjdINy40OTg3QzcuNzQ1MTcgMy43OTQwNCA3Ljk1NTM4IDMuNjE4NjQgOC4xMDM0NCAzLjM5NTA2QzguMjUxNSAzLjE3MTQ5IDguMzMwOTYgMi45MDk1IDguMzMyMDMgMi42NDEzNFYyLjQ5OTY3QzguMzMyMDMgMi4wNTc2NSA4LjUwNzYzIDEuNjMzNzIgOC44MjAxOSAxLjMyMTE2QzkuMTMyNzUgMS4wMDg2IDkuNTU2NjcgMC44MzMwMDggOS45OTg3IDAuODMzMDA4QzEwLjQ0MDcgMC44MzMwMDggMTAuODY0NiAxLjAwODYgMTEuMTc3MiAxLjMyMTE2QzExLjQ4OTggMS42MzM3MiAxMS42NjU0IDIuMDU3NjUgMTEuNjY1NCAyLjQ5OTY3VjIuNTc0NjdDMTEuNjY2NCAyLjg0MjgzIDExLjc0NTkgMy4xMDQ4MiAxMS44OTQgMy4zMjg0QzEyLjA0MiAzLjU1MTk3IDEyLjI1MjIgMy43MjczNyAxMi40OTg3IDMuODMzMDFDMTIuNzUgMy45NDM5NCAxMy4wMjg5IDMuOTc3MDMgMTMuMjk5MiAzLjkyODAxQzEzLjU2OTUgMy44NzkgMTMuODE5IDMuNzUwMTIgMTQuMDE1NCAzLjU1ODAxTDE0LjA2NTQgMy41MDgwMUMxNC4yMjAyIDMuMzUzMDUgMTQuNDA0IDMuMjMwMTIgMTQuNjA2MyAzLjE0NjI0QzE0LjgwODYgMy4wNjIzNyAxNS4wMjU1IDMuMDE5MiAxNS4yNDQ1IDMuMDE5MkMxNS40NjM2IDMuMDE5MiAxNS42ODA0IDMuMDYyMzcgMTUuODgyOCAzLjE0NjI0QzE2LjA4NTEgMy4yMzAxMiAxNi4yNjg5IDMuMzUzMDUgMTYuNDIzNyAzLjUwODAxQzE2LjU3ODcgMy42NjI4IDE2LjcwMTYgMy44NDY2MSAxNi43ODU1IDQuMDQ4OTRDMTYuODY5MyA0LjI1MTI3IDE2LjkxMjUgNC40NjgxNSAxNi45MTI1IDQuNjg3MTdDMTYuOTEyNSA0LjkwNjIgMTYuODY5MyA1LjEyMzA4IDE2Ljc4NTUgNS4zMjU0MUMxNi43MDE2IDUuNTI3NzQgMTYuNTc4NyA1LjcxMTU1IDE2LjQyMzcgNS44NjYzNEwxNi4zNzM3IDUuOTE2MzRDMTYuMTgxNiA2LjExMjc0IDE2LjA1MjcgNi4zNjIxOSAxNi4wMDM3IDYuNjMyNTJDMTUuOTU0NyA2LjkwMjg1IDE1Ljk4NzggNy4xODE2NiAxNi4wOTg3IDcuNDMzMDFWNy40OTk2N0MxNi4yMDQzIDcuNzQ2MTUgMTYuMzc5NyA3Ljk1NjM1IDE2LjYwMzMgOC4xMDQ0MkMxNi44MjY5IDguMjUyNDggMTcuMDg4OSA4LjMzMTk0IDE3LjM1NyA4LjMzMzAxSDE3LjQ5ODdDMTcuOTQwNyA4LjMzMzAxIDE4LjM2NDYgOC41MDg2IDE4LjY3NzIgOC44MjExNkMxOC45ODk4IDkuMTMzNzIgMTkuMTY1NCA5LjU1NzY1IDE5LjE2NTQgOS45OTk2N0MxOS4xNjU0IDEwLjQ0MTcgMTguOTg5OCAxMC44NjU2IDE4LjY3NzIgMTEuMTc4MkMxOC4zNjQ2IDExLjQ5MDcgMTcuOTQwNyAxMS42NjYzIDE3LjQ5ODcgMTEuNjY2M0gxNy40MjM3QzE3LjE1NTUgMTEuNjY3NCAxNi44OTM2IDExLjc0NjkgMTYuNjcgMTEuODk0OUMxNi40NDY0IDEyLjA0MyAxNi4yNzEgMTIuMjUzMiAxNi4xNjU0IDEyLjQ5OTdaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuc3Ryb2tlXT1cIihkYXRhLmNoZWNrTGlzdFR5cGUgPT09ICdjdXN0b20nIHx8IGRhdGEuY2hlY2tMaXN0VHlwZSAhPT0gJ2N1c3RvbScpJiYgIVsndW5pZm9ybWRldGVjdGlvbicsJ3N0YWZmbGVmdGludGhlbWlkZGxlJywnY3VzdG9tZXJ1bmF0dGVuZGVkJ10uaW5jbHVkZXMoZGF0YT8uY2hlY2tMaXN0VHlwZSkgJiYgKGdzLnVzZXJBY2Nlc3MgfCBhc3luYyk/LlRhbmdvVHJheF9jaGVja2xpc3RfaXNFZGl0ID8gJyM2NjcwODUnIDogJyNEMEQ1REQnXCIgc3Ryb2tlLXdpZHRoPVwiMS42NjY2N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y2xpcFBhdGggaWQ9XCJjbGlwMF8yMjU0XzIwMjYxXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIGZpbGw9XCJ3aGl0ZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9jbGlwUGF0aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiXCIgW25nQ2xhc3NdPVwiKGRhdGEuY2hlY2tMaXN0VHlwZSA9PT0gJ2N1c3RvbScgJiYgKGdzLnVzZXJBY2Nlc3MgfCBhc3luYyk/LlRhbmdvVHJheF9jaGVja2xpc3RfaXNFZGl0KSA/ICdjdXJzb3ItcG9pbnRlcicgOiAnJ1wiICAoY2xpY2spPVwiY2hlY2tQZXJtaXNzaW9uKCdkdXBsaWNhdGUnLGRhdGEpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGcgY2xpcC1wYXRoPVwidXJsKCNjbGlwMF8yMjU0XzIwMjY1KVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNNC4xNjc5NyAxMi41MDAzSDMuMzM0NjRDMi44OTI2MSAxMi41MDAzIDIuNDY4NjggMTIuMzI0NyAyLjE1NjEyIDEyLjAxMjJDMS44NDM1NiAxMS42OTk2IDEuNjY3OTcgMTEuMjc1NyAxLjY2Nzk3IDEwLjgzMzdWMy4zMzM2NkMxLjY2Nzk3IDIuODkxNjMgMS44NDM1NiAyLjQ2NzcxIDIuMTU2MTIgMi4xNTUxNUMyLjQ2ODY4IDEuODQyNTkgMi44OTI2MSAxLjY2Njk5IDMuMzM0NjQgMS42NjY5OUgxMC44MzQ2QzExLjI3NjcgMS42NjY5OSAxMS43MDA2IDEuODQyNTkgMTIuMDEzMSAyLjE1NTE1QzEyLjMyNTcgMi40Njc3MSAxMi41MDEzIDIuODkxNjMgMTIuNTAxMyAzLjMzMzY2VjQuMTY2OTlNOS4xNjc5NyA3LjUwMDMzSDE2LjY2OEMxNy41ODg0IDcuNTAwMzMgMTguMzM0NiA4LjI0NjUyIDE4LjMzNDYgOS4xNjY5OVYxNi42NjdDMTguMzM0NiAxNy41ODc1IDE3LjU4ODQgMTguMzMzNyAxNi42NjggMTguMzMzN0g5LjE2Nzk3QzguMjQ3NDkgMTguMzMzNyA3LjUwMTMgMTcuNTg3NSA3LjUwMTMgMTYuNjY3VjkuMTY2OTlDNy41MDEzIDguMjQ2NTIgOC4yNDc0OSA3LjUwMDMzIDkuMTY3OTcgNy41MDAzM1pcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5zdHJva2VdPVwiZGF0YS5jaGVja0xpc3RUeXBlID09PSAnY3VzdG9tJyAmJiAoZ3MudXNlckFjY2VzcyB8IGFzeW5jKT8uVGFuZ29UcmF4X2NoZWNrbGlzdF9pc0VkaXQgPyAnIzY2NzA4NScgOiAnI0QwRDVERCdcIiBzdHJva2Utd2lkdGg9XCIxLjY2NjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjbGlwUGF0aCBpZD1cImNsaXAwXzIyNTRfMjAyNjVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3Qgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgZmlsbD1cIndoaXRlXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2NsaXBQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKGNsaWNrKT1cImNoZWNrUGVybWlzc2lvbignZGVsZXRlJyxkYXRhKVwiIFtuZ0NsYXNzXT1cIiFkYXRhPy5wdWJsaXNoICYmIChncy51c2VyQWNjZXNzIHwgYXN5bmMpPy5UYW5nb1RyYXhfY2hlY2tsaXN0X2lzRWRpdCAgPyAnY3Vyc29yLXBvaW50ZXInIDogJydcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB3aWR0aD1cIjQwXCIgaGVpZ2h0PVwiNDFcIiB2aWV3Qm94PVwiMCAwIDQwIDQxXCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZyBjbGlwLXBhdGg9XCJ1cmwoI2NsaXAwXzMxNjJfMTA0MTQpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xMi41IDE1LjAyMjhIMTQuMTY2N00xNC4xNjY3IDE1LjAyMjhIMjcuNU0xNC4xNjY3IDE1LjAyMjhWMjYuNjg5NUMxNC4xNjY3IDI3LjEzMTUgMTQuMzQyMyAyNy41NTU0IDE0LjY1NDggMjcuODY4QzE0Ljk2NzQgMjguMTgwNSAxNS4zOTEzIDI4LjM1NjEgMTUuODMzMyAyOC4zNTYxSDI0LjE2NjdDMjQuNjA4NyAyOC4zNTYxIDI1LjAzMjYgMjguMTgwNSAyNS4zNDUyIDI3Ljg2OEMyNS42NTc3IDI3LjU1NTQgMjUuODMzMyAyNy4xMzE1IDI1LjgzMzMgMjYuNjg5NVYxNS4wMjI4SDE0LjE2NjdaTTE2LjY2NjcgMTUuMDIyOFYxMy4zNTYxQzE2LjY2NjcgMTIuOTE0MSAxNi44NDIzIDEyLjQ5MDIgMTcuMTU0OCAxMi4xNzc2QzE3LjQ2NzQgMTEuODY1IDE3Ljg5MTMgMTEuNjg5NSAxOC4zMzMzIDExLjY4OTVIMjEuNjY2N0MyMi4xMDg3IDExLjY4OTUgMjIuNTMyNiAxMS44NjUgMjIuODQ1MiAxMi4xNzc2QzIzLjE1NzcgMTIuNDkwMiAyMy4zMzMzIDEyLjkxNDEgMjMuMzMzMyAxMy4zNTYxVjE1LjAyMjhNMTguMzMzMyAxOS4xODk1VjI0LjE4OTVNMjEuNjY2NyAxOS4xODk1VjI0LjE4OTVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5zdHJva2VdPVwiKCEoZ3MudXNlckFjY2VzcyB8IGFzeW5jKT8uVGFuZ29UcmF4X2NoZWNrbGlzdF9pc0VkaXQgfHwgZGF0YS5wdWJsaXNoIHx8IGRhdGEuY2hlY2tMaXN0VHlwZSAhPT0gJ2N1c3RvbScpID8gJyNEMEQ1REQnIDonIzY2NzA4NSdcIiBzdHJva2Utd2lkdGg9XCIxLjY2NjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjbGlwUGF0aCBpZD1cImNsaXAwXzMxNjJfMTA0MTRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3Qgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgZmlsbD1cIndoaXRlXCIgdHJhbnNmb3JtPVwidHJhbnNsYXRlKDEwIDEwLjAyMzQpXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2NsaXBQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZm9ybS1jaGVjayBmb3JtLXN3aXRjaFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cImNoZWNrYm94XCIgcm9sZT1cInN3aXRjaFwiIGlkPVwic3VwcG9ydFwiIGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dCBtdC0zIGN1cnNvci1wb2ludGVyXCIgKGNoYW5nZSk9XCJwdWJsaXNoKCRldmVudCwgZGF0YSxpKVwiIFtjaGVja2VkXT1cImRhdGE/LnB1Ymxpc2hcIiBbZGlzYWJsZWRdPVwiKCFkYXRhPy5zdG9yZUNvdW50ICYmIGRhdGEuY2hlY2tMaXN0VHlwZSA9PT0gJ2N1c3RvbScpIHx8ICEoZ3MudXNlckFjY2VzcyB8IGFzeW5jKT8uVGFuZ29UcmF4X2NoZWNrbGlzdF9pc0VkaXRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdGJvZHk+XHJcbiAgICAgICAgICAgICAgICA8L3RhYmxlPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGxpYi1wYWdpbmF0aW9uIFtpdGVtc1BlclBhZ2VdPVwiZHluYW1pY0RhdGEubGltaXRcIiBbY3VycmVudFBhZ2VdPVwiZHluYW1pY0RhdGEub2Zmc2V0XCIgW3RvdGFsSXRlbXNdPVwidG90YWxJdGVtc1wiXHJcbiAgICAgICAgICAgICAgICBbcGFnaW5hdGlvblNpemVzXT1cInBhZ2luYXRpb25TaXplc1wiIFtwYWdlU2l6ZV09XCJwYWdlU2l6ZVwiIChwYWdlQ2hhbmdlKT1cIm9uUGFnZUNoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgIChwYWdlU2l6ZUNoYW5nZSk9XCJvblBhZ2VTaXplQ2hhbmdlKCRldmVudClcIj48L2xpYi1wYWdpbmF0aW9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PiJdfQ==