tango-app-ui-ticket-user 3.0.3-dev → 3.0.4-dev

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (22) hide show
  1. package/esm2022/lib/components/contact-details/contact-details.component.mjs +3 -3
  2. package/esm2022/lib/components/edge-cameraview/edge-cameraview.component.mjs +3 -3
  3. package/esm2022/lib/components/edgeapp-log/edgeapp-log.component.mjs +3 -3
  4. package/esm2022/lib/components/edit-details/edit-details.component.mjs +3 -3
  5. package/esm2022/lib/components/infratickets/infratickets.component.mjs +8 -7
  6. package/esm2022/lib/components/store-activity/store-activity.component.mjs +6 -5
  7. package/esm2022/lib/components/store-info/store-info.component.mjs +3 -3
  8. package/esm2022/lib/components/takeremote/takeremote.component.mjs +3 -3
  9. package/esm2022/lib/components/tango-ticket-users/tango-ticket-users.component.mjs +5 -5
  10. package/esm2022/lib/components/tickets/tickets.component.mjs +9 -8
  11. package/esm2022/lib/services/data.service.mjs +3 -3
  12. package/esm2022/lib/services/ticket-infra.service.mjs +5 -5
  13. package/esm2022/lib/tango-ticket-users-routing.module.mjs +4 -4
  14. package/esm2022/lib/tango-ticket-users.module.mjs +4 -4
  15. package/fesm2022/tango-app-ui-ticket-user.mjs +57 -57
  16. package/fesm2022/tango-app-ui-ticket-user.mjs.map +1 -1
  17. package/lib/components/infratickets/infratickets.component.d.ts +1 -1
  18. package/lib/components/store-activity/store-activity.component.d.ts +1 -1
  19. package/lib/components/tango-ticket-users/tango-ticket-users.component.d.ts +1 -1
  20. package/lib/components/tickets/tickets.component.d.ts +1 -1
  21. package/lib/services/ticket-infra.service.d.ts +1 -1
  22. package/package.json +1 -1
@@ -3,8 +3,9 @@ import { Subject, takeUntil } from 'rxjs';
3
3
  import * as i0 from "@angular/core";
4
4
  import * as i1 from "../../services/ticket-infra.service";
5
5
  import * as i2 from "../../services/data.service";
6
- import * as i3 from "tango-app-ui-shared";
6
+ import * as i3 from "tango-app-ui-global";
7
7
  import * as i4 from "@angular/common";
8
+ import * as i5 from "tango-app-ui-shared";
8
9
  export class StoreActivityComponent {
9
10
  service;
10
11
  dataservice;
@@ -195,10 +196,10 @@ export class StoreActivityComponent {
195
196
  event.stopPropagation();
196
197
  this.dropDown = !this.dropDown;
197
198
  }
198
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: StoreActivityComponent, deps: [{ token: i1.TicketsService }, { token: i2.DataService }, { token: i0.ChangeDetectorRef }, { token: i3.GlobalStateService }], target: i0.ɵɵFactoryTarget.Component });
199
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.8", type: StoreActivityComponent, selector: "lib-store-activity", inputs: { storeId: "storeId" }, host: { listeners: { "document:click": "onClick($event)" } }, ngImport: i0, template: "<div class=\"card\">\r\n <div class=\"card-header border-0\">\r\n <div class=\"card-title flex-column\">\r\n <span class=\"card-label\">\r\n Activity\r\n </span>\r\n <span class=\"text-sub\">\r\n An overview of the store issues and the downtime for {{headerFilter?.date?.startDate|customDateFormat}}\r\n - {{headerFilter?.date?.endDate|customDateFormat}}\r\n </span>\r\n </div>\r\n <div class=\"card-toolbar\">\r\n <div class=\"position-relative\">\r\n <button type=\"button\" (click)=\"openDropdown($event)\"\r\n class=\"btn btn-default mx-2 btn-outline btn-outline-default rounded-3 text-nowrap border-val\"><svg\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"21\" viewBox=\"0 0 20 21\" fill=\"none\">\r\n <path d=\"M5 10.0264H15M2.5 5.02637H17.5M7.5 15.0264H12.5\" stroke=\"#344054\" stroke-width=\"2\"\r\n stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n <span class=\"ms-2\">Filter</span> </button>\r\n <div *ngIf=\"dropDown\" class=\"card py-1 w-200px position-absolute top-50px end-0 z-1\">\r\n <ul *ngFor=\"let item of dropdownItems\" class=\"list-unstyled\">\r\n <li [ngClass]=\"this.filteredIssue == item ? 'active' : ''\"\r\n class=\"camera px-5 items fw-semibold cursor-pointer py-2\" (click)=\"selectItem(item)\">\r\n {{item}}</li>\r\n </ul>\r\n </div>\r\n </div>\r\n <div class=\"btn btn-default btn-outline\" (click)=\"exportStoreListasXlsx()\">\r\n <span><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"21\" viewBox=\"0 0 20 21\" fill=\"none\">\r\n <path\r\n d=\"M17.5 12.5264V15.8597C17.5 16.3017 17.3244 16.7257 17.0118 17.0382C16.6993 17.3508 16.2754 17.5264 15.8333 17.5264H4.16667C3.72464 17.5264 3.30072 17.3508 2.98816 17.0382C2.67559 16.7257 2.5 16.3017 2.5 15.8597V12.5264M14.1667 6.69303L10 2.52637M10 2.52637L5.83333 6.69303M10 2.52637V12.5264\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span> Export\r\n </div>\r\n <!-- <div class=\"d-flex align-items-center position-relative my-1 ms-3\">\r\n <span class=\"svg-icon svg-icon-1 position-absolute ms-3\">\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=\"M13.3333 1.66663V4.99996M6.66667 1.66663V4.99996M2.5 8.33329H17.5M4.16667 3.33329H15.8333C16.7538 3.33329 17.5 4.07948 17.5 4.99996V16.6666C17.5 17.5871 16.7538 18.3333 15.8333 18.3333H4.16667C3.24619 18.3333 2.5 17.5871 2.5 16.6666V4.99996C2.5 4.07948 3.24619 3.33329 4.16667 3.33329Z\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <input class=\"fx-date-range form-control ps-14\" type=\"text\" matInput ngxDaterangepickerMd [drops]=\"'down'\"\r\n [opens]=\"'right'\" [ranges]=\"ranges\" [showCustomRangeLabel]=\"true\" [alwaysShowCalendars]=\"false\"\r\n [keepCalendarOpeningWithRange]=\"true\" [showCancel]=\"true\" autocomplete=\"off\" [(ngModel)]=\"selectedDateRange\"\r\n [locale]=\"{ format: 'DD-MM-YYYY', firstDay: 1, monthNames: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'] }\"\r\n (datesUpdated)=\"datechange($event)\" name=\"daterange\" />\r\n </div> -->\r\n </div>\r\n </div>\r\n <div class=\"card-body\">\r\n <div class=\"d-flex\">\r\n <div *ngFor=\"let issue of ticketCard\" class=\"card card-view p-5 me-5\">\r\n <span class=\"title fw-bold\">{{issue.count}}</span>\r\n <span class=\"sub-title fw-semibold\">{{issue.name}}</span>\r\n </div>\r\n </div>\r\n <div class=\"rounded-3 border border-gray border-1 mt-5\">\r\n <div *ngIf=\"!loading && !noData\" class=\"row p-5\">\r\n <div class=\"col-sm-6\">\r\n <div *ngFor=\"let data of storeTicket;let index = index\" class=\"issuecard w-100 mb-4 cursor-pointer\"\r\n (click)=\"ShowTicket(index,data?.ticketId)\" [ngClass]=\"selectCard == index ? 'active' : ''\">\r\n <div class=\"maincard-label fw-bold d-flex justify-content-between mb-5\"><span> <img\r\n src='./assets/tango/Images/ticket.svg'> {{data?.ticketId}}</span> <span\r\n class=\"badge text-success\"\r\n [ngClass]=\"data.status == 'closed' ? 'badge-light-success' :(data.status == 'inprogress' ? 'badge-light-primary':'badge-light-warning')\">{{data.status}}</span>\r\n </div>\r\n <div *ngIf=\"data.issueStatus === 'notidentified'\" class=\"mb-5 contenttext\">\r\n We have not received data from your store. We are currently investigating the issue.\r\n </div>\r\n <div *ngIf=\"data.issueStatus ==='identified'\" class=\"mb-5 contenttext\">Store is currently\r\n encountering a <span class=\"fw-bold-700\">{{data.primaryIssue}}</span> which is\r\n <span *ngFor=\"let secondary of data.secondaryIssue; let last = last\"\r\n class=\"fw-bold-700\">{{secondary?.name}}<ng-container *ngIf=\"!last\"> ,</ng-container>\r\n </span>.\r\n </div>\r\n\r\n <div class=\"d-flex justify-content-between\">\r\n <div class=\"profile d-flex align-items-centre justify-content-centre\">\r\n <img class=\"\" src=\"./assets/tango/Images/gropmodal.png\" alt=\"\">\r\n </div>\r\n <div class=\"d-flex justify-content-between\">\r\n <span class=\"contenttext px-3\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\"\r\n height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M14 10C14 10.3536 13.8595 10.6928 13.6095 10.9428C13.3594 11.1929 13.0203 11.3333 12.6667 11.3333H4.66667L2 14V3.33333C2 2.97971 2.14048 2.64057 2.39052 2.39052C2.64057 2.14048 2.97971 2 3.33333 2H12.6667C13.0203 2 13.3594 2.14048 13.6095 2.39052C13.8595 2.64057 14 2.97971 14 3.33333V10Z\"\r\n stroke=\"#667085\" stroke-width=\"1.5\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg> {{data.comments}} </span>\r\n <span class=\"contenttext px-3\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\"\r\n height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M10.6667 1.33398V4.00065M5.33333 1.33398V4.00065M2 6.66732H14M3.33333 2.66732H12.6667C13.403 2.66732 14 3.26427 14 4.00065V13.334C14 14.0704 13.403 14.6673 12.6667 14.6673H3.33333C2.59695 14.6673 2 14.0704 2 13.334V4.00065C2 3.26427 2.59695 2.66732 3.33333 2.66732Z\"\r\n stroke=\"#667085\" stroke-width=\"1.5\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg> {{data.Date}}</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-sm-6\">\r\n <div class=\"maincard-label fw-bold d-flex justify-content-between\">\r\n <span><img src='./assets/tango/Images/ticket.svg'>{{ticketInfo?.ticketId}}</span>\r\n <span class=\"badge badge-light-primary\">{{ticketInfo?.status}}</span>\r\n </div>\r\n <div *ngFor=\"let obj of viewTicketData;let i=index\" class=\"\">\r\n <!-- User code start -->\r\n <div *ngIf=\"obj.actionBy === 'User'\" class=\"d-flex ms-5\">\r\n <div *ngIf=\"obj.actionType !=='statusChange'\"\r\n class=\"d-flex flex-column justify-content-center align-items-center pe-3\">\r\n <div class=\"d-flex align-items-centre justify-content-centre\">\r\n <img class=\"msgprofile\"\r\n src='https://images.unsplash.com/photo-1441986300917-64674bd600d8?w=500&auto=format&fit=crop&q=60&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxzZWFyY2h8Mnx8c3RvcmV8ZW58MHx8MHx8fDA%3D'>\r\n </div>\r\n <div class=\"p-0 h-100 mt-3 border border-1 border-gray\" style=\"width:0px\"></div>\r\n </div>\r\n <div class=\"py-3\">\r\n <div *ngIf=\"obj.actionType !=='statusChange'\">\r\n <div class=\"d-flex mb-3\">\r\n <span class=\"headingtext fw-bold\">{{obj?.actionBy}}</span>\r\n <span class=\"timingtext px-3 pt-1 fw-bold-400\">{{obj?.timeStamp}}</span>\r\n </div>\r\n <span class=\"profile-label font-bold-400\">User has replied</span>\r\n </div>\r\n <div *ngIf=\"obj.actionType == 'statusCheckReply'\">\r\n <div class=\"textupdates fw-bold-400 mt-3\">Issue has been <b><span\r\n *ngIf=\"obj.statusCheckReply=='No'\">not</span> resolved.</b>\r\n\r\n </div>\r\n <div class=\"textupdates fw-bold-400\" *ngIf=\"obj.statusCheckReply=='No'\"> It takes\r\n {{obj?.hibernationDays}} more days to resolve.</div>\r\n </div>\r\n <div *ngIf=\"\" class=\"\">\r\n <span class=\"investigation fw-bold-400\">Are all CCTV cameras functioning\r\n properly?</span>\r\n <div class=\"row\">\r\n <div class=\"col-sm-4\">\r\n <span class=\"\">Camera 1</span>\r\n <div\r\n class=\"d-flex align-items-centre justify-content-centre rounded-3 overflow-hidden\">\r\n <img class=\"w-100\"\r\n src='https://images.unsplash.com/photo-1441986300917-64674bd600d8?w=500&auto=format&fit=crop&q=60&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxzZWFyY2h8Mnx8c3RvcmV8ZW58MHx8MHx8fDA%3D'>\r\n </div>\r\n </div>\r\n <div class=\"col-sm-4\">\r\n <span class=\"\">Camera 2</span>\r\n <div\r\n class=\"d-flex align-items-centre justify-content-centre rounded-3 overflow-hidden\">\r\n <img class=\"w-100\"\r\n src='https://images.unsplash.com/photo-1441986300917-64674bd600d8?w=500&auto=format&fit=crop&q=60&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxzZWFyY2h8Mnx8c3RvcmV8ZW58MHx8MHx8fDA%3D'>\r\n </div>\r\n </div>\r\n <div class=\"col-sm-4\">\r\n <span class=\"\">Camera 3</span>\r\n <div\r\n class=\"d-flex align-items-centre justify-content-centre rounded-3 overflow-hidden\">\r\n <img class=\"w-100\"\r\n src='https://images.unsplash.com/photo-1441986300917-64674bd600d8?w=500&auto=format&fit=crop&q=60&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxzZWFyY2h8Mnx8c3RvcmV8ZW58MHx8MHx8fDA%3D'>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"textupdates fw-bold-400 mt-5\">\r\n The above camera streaming are not working due <span class=\"fw-bold-700\">power\r\n issue</span> to the camera.\r\n </div>\r\n </div>\r\n <div *ngIf=\"obj.actionType ==='issueUpdate'\">\r\n <div *ngFor=\"let res of obj?.reasons\">\r\n <div class=\"textupdates fw-semibold mt-3\">\r\n We're currently encountering an <span\r\n class=\"fw-bold-700\">{{res.primaryIssue}}</span>\r\n </div>\r\n <div class=\"mt-3\">\r\n <span class=\"investigation fw-bold-400\">The following are the relevant\r\n problem\r\n facing</span>\r\n <ul class=\"timingtext fw-bold-400 mt-3\"\r\n *ngFor=\"let secIssues of res?.secondaryIssue\">\r\n <li>{{secIssues.name}}</li>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"selectedIssue === ''\" class=\"profile-label fw-semibold mt-2\">\r\n Kindly choose the option below that corresponds to the issue you are experiencing in\r\n the\r\n store.\r\n </div>\r\n </div>\r\n </div>\r\n <!-- User code end -->\r\n <!-- Tango code start -->\r\n <div *ngIf=\"obj.actionBy === 'Tango'\" class=\"d-flex mb-5 ms-5\">\r\n <div class=\"d-flex flex-column justify-content-center align-items-center pe-3\">\r\n <div class=\"d-flex align-items-centre justify-content-centre\">\r\n <img class=\"msgprofile\" src=\"./assets/tango/Images/tangoprofile.png\">\r\n </div>\r\n <div class=\"p-0 h-100 mt-3 border border-1 border-gray\" style=\"width:0px\"></div>\r\n </div>\r\n <div class=\"py-3\">\r\n <div class=\"d-flex mb-3\">\r\n <span class=\"headingtext fw-bold\">{{obj?.actionBy}}</span>\r\n <span class=\"timingtext fw-bold-400 px-3 pt-1\">{{obj?.timeStamp}}</span>\r\n </div>\r\n <div class=\"mb-3\">\r\n <span class=\"profile-label fw-bold-400\">tango has replied to the\r\n issue</span>\r\n <div *ngIf=\"obj.actionType == 'dataRecived'\">\r\n <div class=\"textupdates fw-bold-400 mt-3\">Data Received\r\n </div>\r\n </div>\r\n <div *ngIf=\"obj.actionType == 'statusCheckMonitor'\">\r\n <div class=\"textupdates fw-bold-400 mt-3\">Thank you for the update. We\u2019ll get back after the buffer time you provided.\r\n </div>\r\n </div>\r\n <div *ngIf=\"obj.actionType ==='stepsToResolve'\" class=\"mt-3\">\r\n <span class=\"textupdates fw-bold-400\">Please follow the below steps to resolve\r\n the above issue</span>\r\n <div *ngFor=\"let res of obj?.reasons\">\r\n <div class=\"mt-5\">\r\n <span class=\"headingtext fw-semibold\">{{res.primaryIssue}}</span>\r\n <ul class=\"mt-3 timingtext fw-bold-400\"\r\n *ngFor=\"let secIssues of res?.secondaryIssue\">\r\n <li>{{secIssues.name}}</li>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n <!-- defaultInfra start -->\r\n <div *ngIf=\"obj.actionType ==='defaultInfra'\" class=\"contenttext fw-bold-400\">We have\r\n not\r\n received data from your store. We are currently investigating the issue</div>\r\n <!-- defaultInfra end -->\r\n\r\n\r\n\r\n\r\n\r\n </div>\r\n </div>\r\n <!-- Tango code end -->\r\n </div>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n <ng-container *ngIf=\"loading\">\r\n <div class=\"row loader d-flex justify-content-center align-items-center\">\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"noData\">\r\n <div class=\"row\">\r\n <div class=\"col-lg-12 mb-3\">\r\n <div class=\"card-body d-flex justify-content-center align-items-center flex-column\">\r\n <img class=\"img-src\" src=\"./assets/tango/Icons/Nodata.svg\" alt=\"\">\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n </div>", styles: [".card-label{font-size:16px!important;line-height:24px!important}.card-view{width:250px}.card-view .title{color:var(--Gray-900, #101828);font-size:20px;line-height:30px}.card-view .sub-title{color:var(--Gray-700, #344054);font-size:14px;line-height:20px}.issuecard{width:240px;border-radius:10px;border:1px solid var(--Gray-200, #EAECF0);padding:16px}.issuecard label{color:var(--Black, #101828);font-size:14px;line-height:20px}.issuecard.active,.card-view.active{border:none!important;background:var(--Primary-25, #F6FCFF);box-shadow:0 0 0 4px #e9f7ff}.contenttext{color:var(--Gray-500, #667085);font-size:14px;font-weight:400;line-height:20px}.maincard-content{border-radius:8px;border:1px solid var(--Gray-300, #D0D5DD)}.maincard-label{color:var(--Gray-900, #101828);font-size:16px;line-height:24px}.profile{width:24px;height:24px;overflow:hidden;border-radius:200px}.fw-bold-700{font-weight:700!important}.fw-bold-400{font-weight:400!important}.msgprofile{width:48px!important;height:48px!important;border-radius:200px;overflow:hidden}.timingtext{color:var(--Gray-500, #667085);font-size:12px;line-height:18px}.profile-label{font-size:16px;color:var(--Gray-500, #667085);line-height:24px}.w-45{width:49%}.textupdates{color:var(--Gray-700, #344054);font-size:16px;line-height:24px}.textupdates1{color:var(--Gray-700, #344054);font-size:14px;line-height:24px}.items:hover,.tems.focus,.items.active,.camera.focus-visible{background:var(--Gray-50, #F9FAFB)}.daterangepicker{display:block!important;top:153.85px!important;left:900px!important;right:0}.form-control{color:var(--Gray-700, #344054)!important;font-size:14px!important;font-weight:600;line-height:20px;text-transform:capitalize}:host::ng-deep .md-drppicker .btn{line-height:10px!important}:host::ng-deep .md-drppicker.drops-down-right.ltr.double.show-ranges.shown{top:65px!important;left:-470px!important;height:400px!important}:host::ng-deep .md-drppicker .btn{border-radius:8px!important;border:1px solid var(--Primary-600, #00A3FF)!important;background:var(--Primary-600, #00A3FF)!important;box-shadow:0 1px 2px #1018280d!important;color:var(--White, #FFF)!important;font-size:14px!important;font-weight:600!important;line-height:20px;text-transform:capitalize}:host::ng-deep .md-drppicker .ranges ul li button{padding:12px 16px;width:160px;color:var(--Gray-700, #344054);font-size:14px;font-weight:400;line-height:20px;background:none;border:none;text-align:left;cursor:pointer}:host::ng-deep .md-drppicker td.active,:host::ng-deep .md-drppicker td.active:hover{background-color:#029cf4!important;border-radius:20px!important;color:var(--White, #FFF)!important;text-align:center!important;font-size:14px!important;font-weight:500!important;line-height:20px}:host::ng-deep .md-drppicker.ltr .ranges{float:left;margin-top:10px!important}:host::ng-deep .md-drppicker td.in-range{background:var(--Primary-50, #EAF8FF)}:host::ng-deep .md-drppicker .ranges ul li button.active{background:var(--Primary-50, #EAF8FF)!important;border-radius:8px!important;color:var(--Primary-700, #009BF3);font-size:14px!important;font-weight:500!important;line-height:20px!important}:host::ng-deep table th,:host::ng-deep table td{width:40px!important;height:40px!important;padding:10px 8px!important}:host::ng-deep .md-drppicker td.available.prev,:host::ng-deep .md-drppicker th.available.prev{background-image:url(data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB2aWV3Qm94PSIwIDAgMy43IDYiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDMuNyA2IiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxnPg0KCTxwYXRoIGQ9Ik0zLjcsMC43TDEuNCwzbDIuMywyLjNMMyw2TDAsM2wzLTNMMy43LDAuN3oiLz4NCjwvZz4NCjwvc3ZnPg0K)!important;background-repeat:no-repeat!important;background-size:.5em!important;background-position:center!important}:host::ng-deep .md-drppicker td.available.next,:host::ng-deep .md-drppicker th.available.next{background-image:url(data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB2aWV3Qm94PSIwIDAgMy43IDYiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDMuNyA2IiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxnPg0KCTxwYXRoIGQ9Ik0zLjcsMC43TDEuNCwzbDIuMywyLjNMMyw2TDAsM2wzLTNMMy43LDAuN3oiLz4NCjwvZz4NCjwvc3ZnPg0K)!important;background-repeat:no-repeat!important;background-size:.5em!important;background-position:center!important}:host::ng-deep table th{border-bottom:0px solid var(--Gray-200, #EAECF0)!important;background:transparent!important;color:var(--Gray-700, #344054)!important;text-align:center;font-size:16px!important;font-weight:500!important;line-height:24px}:host::ng-deep .md-drppicker td.available.invalid-date{text-decoration:line-through;pointer-events:none;color:#a9a9a9}:host::ng-deep .md-drppicker td.available.today:not(.invalid-date){text-decoration:unset;pointer-events:unset;color:unset}:host::ng-deep .md-drppicker .btn.btn-default{border-radius:8px!important;border:1px solid var(--Gray-300, #D0D5DD)!important;background:var(--White, #FFF)!important;box-shadow:0 1px 2px #1018280d!important;color:var(--Gray-700, #344054)!important;font-size:14px!important;font-weight:600!important;line-height:20px;text-transform:capitalize;margin-right:10px!important}.loader .title{width:65%}.loader .link{width:85%}.loader .description{width:95%}.loader .shimmer{padding:15px;width:95%;height:120px;margin:10px auto;background:#fff}.loader .shimmer .image-card{height:90px;width:90px;float:right;border-radius:8px}.loader .stroke{height:15px;background:#777;margin-top:20px}.loader .wrapper{width:0px;animation:fullView .5s forwards linear}@keyframes fullView{to{width:100%}}.loader .animate{animation:shimmer 3s;animation-iteration-count:infinite;background:linear-gradient(to right,#e6e6e6 5%,#ccc 25%,#e6e6e6 35%);background-size:1000px 100%}@keyframes shimmer{0%{background-position:-1000px 0}to{background-position:1000px 0}}.img-src{width:25%!important}\n"], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i3.CustomDateFormatPipe, name: "customDateFormat" }] });
199
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: StoreActivityComponent, deps: [{ token: i1.TicketsService }, { token: i2.DataService }, { token: i0.ChangeDetectorRef }, { token: i3.GlobalStateService }], target: i0.ɵɵFactoryTarget.Component });
200
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.2", type: StoreActivityComponent, selector: "lib-store-activity", inputs: { storeId: "storeId" }, host: { listeners: { "document:click": "onClick($event)" } }, ngImport: i0, template: "<div class=\"card\">\r\n <div class=\"card-header border-0\">\r\n <div class=\"card-title flex-column\">\r\n <span class=\"card-label\">\r\n Activity\r\n </span>\r\n <span class=\"text-sub\">\r\n An overview of the store issues and the downtime for {{headerFilter?.date?.startDate|customDateFormat}}\r\n - {{headerFilter?.date?.endDate|customDateFormat}}\r\n </span>\r\n </div>\r\n <div class=\"card-toolbar\">\r\n <div class=\"position-relative\">\r\n <button type=\"button\" (click)=\"openDropdown($event)\"\r\n class=\"btn btn-default mx-2 btn-outline btn-outline-default rounded-3 text-nowrap border-val\"><svg\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"21\" viewBox=\"0 0 20 21\" fill=\"none\">\r\n <path d=\"M5 10.0264H15M2.5 5.02637H17.5M7.5 15.0264H12.5\" stroke=\"#344054\" stroke-width=\"2\"\r\n stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n <span class=\"ms-2\">Filter</span> </button>\r\n <div *ngIf=\"dropDown\" class=\"card py-1 w-200px position-absolute top-50px end-0 z-1\">\r\n <ul *ngFor=\"let item of dropdownItems\" class=\"list-unstyled\">\r\n <li [ngClass]=\"this.filteredIssue == item ? 'active' : ''\"\r\n class=\"camera px-5 items fw-semibold cursor-pointer py-2\" (click)=\"selectItem(item)\">\r\n {{item}}</li>\r\n </ul>\r\n </div>\r\n </div>\r\n <div class=\"btn btn-default btn-outline\" (click)=\"exportStoreListasXlsx()\">\r\n <span><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"21\" viewBox=\"0 0 20 21\" fill=\"none\">\r\n <path\r\n d=\"M17.5 12.5264V15.8597C17.5 16.3017 17.3244 16.7257 17.0118 17.0382C16.6993 17.3508 16.2754 17.5264 15.8333 17.5264H4.16667C3.72464 17.5264 3.30072 17.3508 2.98816 17.0382C2.67559 16.7257 2.5 16.3017 2.5 15.8597V12.5264M14.1667 6.69303L10 2.52637M10 2.52637L5.83333 6.69303M10 2.52637V12.5264\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span> Export\r\n </div>\r\n <!-- <div class=\"d-flex align-items-center position-relative my-1 ms-3\">\r\n <span class=\"svg-icon svg-icon-1 position-absolute ms-3\">\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=\"M13.3333 1.66663V4.99996M6.66667 1.66663V4.99996M2.5 8.33329H17.5M4.16667 3.33329H15.8333C16.7538 3.33329 17.5 4.07948 17.5 4.99996V16.6666C17.5 17.5871 16.7538 18.3333 15.8333 18.3333H4.16667C3.24619 18.3333 2.5 17.5871 2.5 16.6666V4.99996C2.5 4.07948 3.24619 3.33329 4.16667 3.33329Z\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <input class=\"fx-date-range form-control ps-14\" type=\"text\" matInput ngxDaterangepickerMd [drops]=\"'down'\"\r\n [opens]=\"'right'\" [ranges]=\"ranges\" [showCustomRangeLabel]=\"true\" [alwaysShowCalendars]=\"false\"\r\n [keepCalendarOpeningWithRange]=\"true\" [showCancel]=\"true\" autocomplete=\"off\" [(ngModel)]=\"selectedDateRange\"\r\n [locale]=\"{ format: 'DD-MM-YYYY', firstDay: 1, monthNames: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'] }\"\r\n (datesUpdated)=\"datechange($event)\" name=\"daterange\" />\r\n </div> -->\r\n </div>\r\n </div>\r\n <div class=\"card-body\">\r\n <div class=\"d-flex\">\r\n <div *ngFor=\"let issue of ticketCard\" class=\"card card-view p-5 me-5\">\r\n <span class=\"title fw-bold\">{{issue.count}}</span>\r\n <span class=\"sub-title fw-semibold\">{{issue.name}}</span>\r\n </div>\r\n </div>\r\n <div class=\"rounded-3 border border-gray border-1 mt-5\">\r\n <div *ngIf=\"!loading && !noData\" class=\"row p-5\">\r\n <div class=\"col-sm-6\">\r\n <div *ngFor=\"let data of storeTicket;let index = index\" class=\"issuecard w-100 mb-4 cursor-pointer\"\r\n (click)=\"ShowTicket(index,data?.ticketId)\" [ngClass]=\"selectCard == index ? 'active' : ''\">\r\n <div class=\"maincard-label fw-bold d-flex justify-content-between mb-5\"><span> <img\r\n src='./assets/tango/Images/ticket.svg'> {{data?.ticketId}}</span> <span\r\n class=\"badge text-success\"\r\n [ngClass]=\"data.status == 'closed' ? 'badge-light-success' :(data.status == 'inprogress' ? 'badge-light-primary':'badge-light-warning')\">{{data.status}}</span>\r\n </div>\r\n <div *ngIf=\"data.issueStatus === 'notidentified'\" class=\"mb-5 contenttext\">\r\n We have not received data from your store. We are currently investigating the issue.\r\n </div>\r\n <div *ngIf=\"data.issueStatus ==='identified'\" class=\"mb-5 contenttext\">Store is currently\r\n encountering a <span class=\"fw-bold-700\">{{data.primaryIssue}}</span> which is\r\n <span *ngFor=\"let secondary of data.secondaryIssue; let last = last\"\r\n class=\"fw-bold-700\">{{secondary?.name}}<ng-container *ngIf=\"!last\"> ,</ng-container>\r\n </span>.\r\n </div>\r\n\r\n <div class=\"d-flex justify-content-between\">\r\n <div class=\"profile d-flex align-items-centre justify-content-centre\">\r\n <img class=\"\" src=\"./assets/tango/Images/gropmodal.png\" alt=\"\">\r\n </div>\r\n <div class=\"d-flex justify-content-between\">\r\n <span class=\"contenttext px-3\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\"\r\n height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M14 10C14 10.3536 13.8595 10.6928 13.6095 10.9428C13.3594 11.1929 13.0203 11.3333 12.6667 11.3333H4.66667L2 14V3.33333C2 2.97971 2.14048 2.64057 2.39052 2.39052C2.64057 2.14048 2.97971 2 3.33333 2H12.6667C13.0203 2 13.3594 2.14048 13.6095 2.39052C13.8595 2.64057 14 2.97971 14 3.33333V10Z\"\r\n stroke=\"#667085\" stroke-width=\"1.5\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg> {{data.comments}} </span>\r\n <span class=\"contenttext px-3\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\"\r\n height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M10.6667 1.33398V4.00065M5.33333 1.33398V4.00065M2 6.66732H14M3.33333 2.66732H12.6667C13.403 2.66732 14 3.26427 14 4.00065V13.334C14 14.0704 13.403 14.6673 12.6667 14.6673H3.33333C2.59695 14.6673 2 14.0704 2 13.334V4.00065C2 3.26427 2.59695 2.66732 3.33333 2.66732Z\"\r\n stroke=\"#667085\" stroke-width=\"1.5\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg> {{data.Date}}</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-sm-6\">\r\n <div class=\"maincard-label fw-bold d-flex justify-content-between\">\r\n <span><img src='./assets/tango/Images/ticket.svg'>{{ticketInfo?.ticketId}}</span>\r\n <span class=\"badge badge-light-primary\">{{ticketInfo?.status}}</span>\r\n </div>\r\n <div *ngFor=\"let obj of viewTicketData;let i=index\" class=\"\">\r\n <!-- User code start -->\r\n <div *ngIf=\"obj.actionBy === 'User'\" class=\"d-flex ms-5\">\r\n <div *ngIf=\"obj.actionType !=='statusChange'\"\r\n class=\"d-flex flex-column justify-content-center align-items-center pe-3\">\r\n <div class=\"d-flex align-items-centre justify-content-centre\">\r\n <img class=\"msgprofile\"\r\n src='https://images.unsplash.com/photo-1441986300917-64674bd600d8?w=500&auto=format&fit=crop&q=60&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxzZWFyY2h8Mnx8c3RvcmV8ZW58MHx8MHx8fDA%3D'>\r\n </div>\r\n <div class=\"p-0 h-100 mt-3 border border-1 border-gray\" style=\"width:0px\"></div>\r\n </div>\r\n <div class=\"py-3\">\r\n <div *ngIf=\"obj.actionType !=='statusChange'\">\r\n <div class=\"d-flex mb-3\">\r\n <span class=\"headingtext fw-bold\">{{obj?.actionBy}}</span>\r\n <span class=\"timingtext px-3 pt-1 fw-bold-400\">{{obj?.timeStamp}}</span>\r\n </div>\r\n <span class=\"profile-label font-bold-400\">User has replied</span>\r\n </div>\r\n <div *ngIf=\"obj.actionType == 'statusCheckReply'\">\r\n <div class=\"textupdates fw-bold-400 mt-3\">Issue has been <b><span\r\n *ngIf=\"obj.statusCheckReply=='No'\">not</span> resolved.</b>\r\n\r\n </div>\r\n <div class=\"textupdates fw-bold-400\" *ngIf=\"obj.statusCheckReply=='No'\"> It takes\r\n {{obj?.hibernationDays}} more days to resolve.</div>\r\n </div>\r\n <div *ngIf=\"\" class=\"\">\r\n <span class=\"investigation fw-bold-400\">Are all CCTV cameras functioning\r\n properly?</span>\r\n <div class=\"row\">\r\n <div class=\"col-sm-4\">\r\n <span class=\"\">Camera 1</span>\r\n <div\r\n class=\"d-flex align-items-centre justify-content-centre rounded-3 overflow-hidden\">\r\n <img class=\"w-100\"\r\n src='https://images.unsplash.com/photo-1441986300917-64674bd600d8?w=500&auto=format&fit=crop&q=60&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxzZWFyY2h8Mnx8c3RvcmV8ZW58MHx8MHx8fDA%3D'>\r\n </div>\r\n </div>\r\n <div class=\"col-sm-4\">\r\n <span class=\"\">Camera 2</span>\r\n <div\r\n class=\"d-flex align-items-centre justify-content-centre rounded-3 overflow-hidden\">\r\n <img class=\"w-100\"\r\n src='https://images.unsplash.com/photo-1441986300917-64674bd600d8?w=500&auto=format&fit=crop&q=60&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxzZWFyY2h8Mnx8c3RvcmV8ZW58MHx8MHx8fDA%3D'>\r\n </div>\r\n </div>\r\n <div class=\"col-sm-4\">\r\n <span class=\"\">Camera 3</span>\r\n <div\r\n class=\"d-flex align-items-centre justify-content-centre rounded-3 overflow-hidden\">\r\n <img class=\"w-100\"\r\n src='https://images.unsplash.com/photo-1441986300917-64674bd600d8?w=500&auto=format&fit=crop&q=60&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxzZWFyY2h8Mnx8c3RvcmV8ZW58MHx8MHx8fDA%3D'>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"textupdates fw-bold-400 mt-5\">\r\n The above camera streaming are not working due <span class=\"fw-bold-700\">power\r\n issue</span> to the camera.\r\n </div>\r\n </div>\r\n <div *ngIf=\"obj.actionType ==='issueUpdate'\">\r\n <div *ngFor=\"let res of obj?.reasons\">\r\n <div class=\"textupdates fw-semibold mt-3\">\r\n We're currently encountering an <span\r\n class=\"fw-bold-700\">{{res.primaryIssue}}</span>\r\n </div>\r\n <div class=\"mt-3\">\r\n <span class=\"investigation fw-bold-400\">The following are the relevant\r\n problem\r\n facing</span>\r\n <ul class=\"timingtext fw-bold-400 mt-3\"\r\n *ngFor=\"let secIssues of res?.secondaryIssue\">\r\n <li>{{secIssues.name}}</li>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"selectedIssue === ''\" class=\"profile-label fw-semibold mt-2\">\r\n Kindly choose the option below that corresponds to the issue you are experiencing in\r\n the\r\n store.\r\n </div>\r\n </div>\r\n </div>\r\n <!-- User code end -->\r\n <!-- Tango code start -->\r\n <div *ngIf=\"obj.actionBy === 'Tango'\" class=\"d-flex mb-5 ms-5\">\r\n <div class=\"d-flex flex-column justify-content-center align-items-center pe-3\">\r\n <div class=\"d-flex align-items-centre justify-content-centre\">\r\n <img class=\"msgprofile\" src=\"./assets/tango/Images/tangoprofile.png\">\r\n </div>\r\n <div class=\"p-0 h-100 mt-3 border border-1 border-gray\" style=\"width:0px\"></div>\r\n </div>\r\n <div class=\"py-3\">\r\n <div class=\"d-flex mb-3\">\r\n <span class=\"headingtext fw-bold\">{{obj?.actionBy}}</span>\r\n <span class=\"timingtext fw-bold-400 px-3 pt-1\">{{obj?.timeStamp}}</span>\r\n </div>\r\n <div class=\"mb-3\">\r\n <span class=\"profile-label fw-bold-400\">tango has replied to the\r\n issue</span>\r\n <div *ngIf=\"obj.actionType == 'dataRecived'\">\r\n <div class=\"textupdates fw-bold-400 mt-3\">Data Received\r\n </div>\r\n </div>\r\n <div *ngIf=\"obj.actionType == 'statusCheckMonitor'\">\r\n <div class=\"textupdates fw-bold-400 mt-3\">Thank you for the update. We\u2019ll get back after the buffer time you provided.\r\n </div>\r\n </div>\r\n <div *ngIf=\"obj.actionType ==='stepsToResolve'\" class=\"mt-3\">\r\n <span class=\"textupdates fw-bold-400\">Please follow the below steps to resolve\r\n the above issue</span>\r\n <div *ngFor=\"let res of obj?.reasons\">\r\n <div class=\"mt-5\">\r\n <span class=\"headingtext fw-semibold\">{{res.primaryIssue}}</span>\r\n <ul class=\"mt-3 timingtext fw-bold-400\"\r\n *ngFor=\"let secIssues of res?.secondaryIssue\">\r\n <li>{{secIssues.name}}</li>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n <!-- defaultInfra start -->\r\n <div *ngIf=\"obj.actionType ==='defaultInfra'\" class=\"contenttext fw-bold-400\">We have\r\n not\r\n received data from your store. We are currently investigating the issue</div>\r\n <!-- defaultInfra end -->\r\n\r\n\r\n\r\n\r\n\r\n </div>\r\n </div>\r\n <!-- Tango code end -->\r\n </div>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n <ng-container *ngIf=\"loading\">\r\n <div class=\"row loader d-flex justify-content-center align-items-center\">\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"noData\">\r\n <div class=\"row\">\r\n <div class=\"col-lg-12 mb-3\">\r\n <div class=\"card-body d-flex justify-content-center align-items-center flex-column\">\r\n <img class=\"img-src\" src=\"./assets/tango/Icons/Nodata.svg\" alt=\"\">\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n </div>", styles: [".card-label{font-size:16px!important;line-height:24px!important}.card-view{width:250px}.card-view .title{color:var(--Gray-900, #101828);font-size:20px;line-height:30px}.card-view .sub-title{color:var(--Gray-700, #344054);font-size:14px;line-height:20px}.issuecard{width:240px;border-radius:10px;border:1px solid var(--Gray-200, #EAECF0);padding:16px}.issuecard label{color:var(--Black, #101828);font-size:14px;line-height:20px}.issuecard.active,.card-view.active{border:none!important;background:var(--Primary-25, #F6FCFF);box-shadow:0 0 0 4px #e9f7ff}.contenttext{color:var(--Gray-500, #667085);font-size:14px;font-weight:400;line-height:20px}.maincard-content{border-radius:8px;border:1px solid var(--Gray-300, #D0D5DD)}.maincard-label{color:var(--Gray-900, #101828);font-size:16px;line-height:24px}.profile{width:24px;height:24px;overflow:hidden;border-radius:200px}.fw-bold-700{font-weight:700!important}.fw-bold-400{font-weight:400!important}.msgprofile{width:48px!important;height:48px!important;border-radius:200px;overflow:hidden}.timingtext{color:var(--Gray-500, #667085);font-size:12px;line-height:18px}.profile-label{font-size:16px;color:var(--Gray-500, #667085);line-height:24px}.w-45{width:49%}.textupdates{color:var(--Gray-700, #344054);font-size:16px;line-height:24px}.textupdates1{color:var(--Gray-700, #344054);font-size:14px;line-height:24px}.items:hover,.tems.focus,.items.active,.camera.focus-visible{background:var(--Gray-50, #F9FAFB)}.daterangepicker{display:block!important;top:153.85px!important;left:900px!important;right:0}.form-control{color:var(--Gray-700, #344054)!important;font-size:14px!important;font-weight:600;line-height:20px;text-transform:capitalize}:host::ng-deep .md-drppicker .btn{line-height:10px!important}:host::ng-deep .md-drppicker.drops-down-right.ltr.double.show-ranges.shown{top:65px!important;left:-470px!important;height:400px!important}:host::ng-deep .md-drppicker .btn{border-radius:8px!important;border:1px solid var(--Primary-600, #00A3FF)!important;background:var(--Primary-600, #00A3FF)!important;box-shadow:0 1px 2px #1018280d!important;color:var(--White, #FFF)!important;font-size:14px!important;font-weight:600!important;line-height:20px;text-transform:capitalize}:host::ng-deep .md-drppicker .ranges ul li button{padding:12px 16px;width:160px;color:var(--Gray-700, #344054);font-size:14px;font-weight:400;line-height:20px;background:none;border:none;text-align:left;cursor:pointer}:host::ng-deep .md-drppicker td.active,:host::ng-deep .md-drppicker td.active:hover{background-color:#029cf4!important;border-radius:20px!important;color:var(--White, #FFF)!important;text-align:center!important;font-size:14px!important;font-weight:500!important;line-height:20px}:host::ng-deep .md-drppicker.ltr .ranges{float:left;margin-top:10px!important}:host::ng-deep .md-drppicker td.in-range{background:var(--Primary-50, #EAF8FF)}:host::ng-deep .md-drppicker .ranges ul li button.active{background:var(--Primary-50, #EAF8FF)!important;border-radius:8px!important;color:var(--Primary-700, #009BF3);font-size:14px!important;font-weight:500!important;line-height:20px!important}:host::ng-deep table th,:host::ng-deep table td{width:40px!important;height:40px!important;padding:10px 8px!important}:host::ng-deep .md-drppicker td.available.prev,:host::ng-deep .md-drppicker th.available.prev{background-image:url(data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB2aWV3Qm94PSIwIDAgMy43IDYiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDMuNyA2IiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxnPg0KCTxwYXRoIGQ9Ik0zLjcsMC43TDEuNCwzbDIuMywyLjNMMyw2TDAsM2wzLTNMMy43LDAuN3oiLz4NCjwvZz4NCjwvc3ZnPg0K)!important;background-repeat:no-repeat!important;background-size:.5em!important;background-position:center!important}:host::ng-deep .md-drppicker td.available.next,:host::ng-deep .md-drppicker th.available.next{background-image:url(data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB2aWV3Qm94PSIwIDAgMy43IDYiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDMuNyA2IiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxnPg0KCTxwYXRoIGQ9Ik0zLjcsMC43TDEuNCwzbDIuMywyLjNMMyw2TDAsM2wzLTNMMy43LDAuN3oiLz4NCjwvZz4NCjwvc3ZnPg0K)!important;background-repeat:no-repeat!important;background-size:.5em!important;background-position:center!important}:host::ng-deep table th{border-bottom:0px solid var(--Gray-200, #EAECF0)!important;background:transparent!important;color:var(--Gray-700, #344054)!important;text-align:center;font-size:16px!important;font-weight:500!important;line-height:24px}:host::ng-deep .md-drppicker td.available.invalid-date{text-decoration:line-through;pointer-events:none;color:#a9a9a9}:host::ng-deep .md-drppicker td.available.today:not(.invalid-date){text-decoration:unset;pointer-events:unset;color:unset}:host::ng-deep .md-drppicker .btn.btn-default{border-radius:8px!important;border:1px solid var(--Gray-300, #D0D5DD)!important;background:var(--White, #FFF)!important;box-shadow:0 1px 2px #1018280d!important;color:var(--Gray-700, #344054)!important;font-size:14px!important;font-weight:600!important;line-height:20px;text-transform:capitalize;margin-right:10px!important}.loader .title{width:65%}.loader .link{width:85%}.loader .description{width:95%}.loader .shimmer{padding:15px;width:95%;height:120px;margin:10px auto;background:#fff}.loader .shimmer .image-card{height:90px;width:90px;float:right;border-radius:8px}.loader .stroke{height:15px;background:#777;margin-top:20px}.loader .wrapper{width:0px;animation:fullView .5s forwards linear}@keyframes fullView{to{width:100%}}.loader .animate{animation:shimmer 3s;animation-iteration-count:infinite;background:linear-gradient(to right,#e6e6e6 5%,#ccc 25%,#e6e6e6 35%);background-size:1000px 100%}@keyframes shimmer{0%{background-position:-1000px 0}to{background-position:1000px 0}}.img-src{width:25%!important}\n"], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i5.CustomDateFormatPipe, name: "customDateFormat" }] });
200
201
  }
201
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: StoreActivityComponent, decorators: [{
202
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: StoreActivityComponent, decorators: [{
202
203
  type: Component,
203
204
  args: [{ selector: 'lib-store-activity', template: "<div class=\"card\">\r\n <div class=\"card-header border-0\">\r\n <div class=\"card-title flex-column\">\r\n <span class=\"card-label\">\r\n Activity\r\n </span>\r\n <span class=\"text-sub\">\r\n An overview of the store issues and the downtime for {{headerFilter?.date?.startDate|customDateFormat}}\r\n - {{headerFilter?.date?.endDate|customDateFormat}}\r\n </span>\r\n </div>\r\n <div class=\"card-toolbar\">\r\n <div class=\"position-relative\">\r\n <button type=\"button\" (click)=\"openDropdown($event)\"\r\n class=\"btn btn-default mx-2 btn-outline btn-outline-default rounded-3 text-nowrap border-val\"><svg\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"21\" viewBox=\"0 0 20 21\" fill=\"none\">\r\n <path d=\"M5 10.0264H15M2.5 5.02637H17.5M7.5 15.0264H12.5\" stroke=\"#344054\" stroke-width=\"2\"\r\n stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n <span class=\"ms-2\">Filter</span> </button>\r\n <div *ngIf=\"dropDown\" class=\"card py-1 w-200px position-absolute top-50px end-0 z-1\">\r\n <ul *ngFor=\"let item of dropdownItems\" class=\"list-unstyled\">\r\n <li [ngClass]=\"this.filteredIssue == item ? 'active' : ''\"\r\n class=\"camera px-5 items fw-semibold cursor-pointer py-2\" (click)=\"selectItem(item)\">\r\n {{item}}</li>\r\n </ul>\r\n </div>\r\n </div>\r\n <div class=\"btn btn-default btn-outline\" (click)=\"exportStoreListasXlsx()\">\r\n <span><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"21\" viewBox=\"0 0 20 21\" fill=\"none\">\r\n <path\r\n d=\"M17.5 12.5264V15.8597C17.5 16.3017 17.3244 16.7257 17.0118 17.0382C16.6993 17.3508 16.2754 17.5264 15.8333 17.5264H4.16667C3.72464 17.5264 3.30072 17.3508 2.98816 17.0382C2.67559 16.7257 2.5 16.3017 2.5 15.8597V12.5264M14.1667 6.69303L10 2.52637M10 2.52637L5.83333 6.69303M10 2.52637V12.5264\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span> Export\r\n </div>\r\n <!-- <div class=\"d-flex align-items-center position-relative my-1 ms-3\">\r\n <span class=\"svg-icon svg-icon-1 position-absolute ms-3\">\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=\"M13.3333 1.66663V4.99996M6.66667 1.66663V4.99996M2.5 8.33329H17.5M4.16667 3.33329H15.8333C16.7538 3.33329 17.5 4.07948 17.5 4.99996V16.6666C17.5 17.5871 16.7538 18.3333 15.8333 18.3333H4.16667C3.24619 18.3333 2.5 17.5871 2.5 16.6666V4.99996C2.5 4.07948 3.24619 3.33329 4.16667 3.33329Z\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <input class=\"fx-date-range form-control ps-14\" type=\"text\" matInput ngxDaterangepickerMd [drops]=\"'down'\"\r\n [opens]=\"'right'\" [ranges]=\"ranges\" [showCustomRangeLabel]=\"true\" [alwaysShowCalendars]=\"false\"\r\n [keepCalendarOpeningWithRange]=\"true\" [showCancel]=\"true\" autocomplete=\"off\" [(ngModel)]=\"selectedDateRange\"\r\n [locale]=\"{ format: 'DD-MM-YYYY', firstDay: 1, monthNames: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'] }\"\r\n (datesUpdated)=\"datechange($event)\" name=\"daterange\" />\r\n </div> -->\r\n </div>\r\n </div>\r\n <div class=\"card-body\">\r\n <div class=\"d-flex\">\r\n <div *ngFor=\"let issue of ticketCard\" class=\"card card-view p-5 me-5\">\r\n <span class=\"title fw-bold\">{{issue.count}}</span>\r\n <span class=\"sub-title fw-semibold\">{{issue.name}}</span>\r\n </div>\r\n </div>\r\n <div class=\"rounded-3 border border-gray border-1 mt-5\">\r\n <div *ngIf=\"!loading && !noData\" class=\"row p-5\">\r\n <div class=\"col-sm-6\">\r\n <div *ngFor=\"let data of storeTicket;let index = index\" class=\"issuecard w-100 mb-4 cursor-pointer\"\r\n (click)=\"ShowTicket(index,data?.ticketId)\" [ngClass]=\"selectCard == index ? 'active' : ''\">\r\n <div class=\"maincard-label fw-bold d-flex justify-content-between mb-5\"><span> <img\r\n src='./assets/tango/Images/ticket.svg'> {{data?.ticketId}}</span> <span\r\n class=\"badge text-success\"\r\n [ngClass]=\"data.status == 'closed' ? 'badge-light-success' :(data.status == 'inprogress' ? 'badge-light-primary':'badge-light-warning')\">{{data.status}}</span>\r\n </div>\r\n <div *ngIf=\"data.issueStatus === 'notidentified'\" class=\"mb-5 contenttext\">\r\n We have not received data from your store. We are currently investigating the issue.\r\n </div>\r\n <div *ngIf=\"data.issueStatus ==='identified'\" class=\"mb-5 contenttext\">Store is currently\r\n encountering a <span class=\"fw-bold-700\">{{data.primaryIssue}}</span> which is\r\n <span *ngFor=\"let secondary of data.secondaryIssue; let last = last\"\r\n class=\"fw-bold-700\">{{secondary?.name}}<ng-container *ngIf=\"!last\"> ,</ng-container>\r\n </span>.\r\n </div>\r\n\r\n <div class=\"d-flex justify-content-between\">\r\n <div class=\"profile d-flex align-items-centre justify-content-centre\">\r\n <img class=\"\" src=\"./assets/tango/Images/gropmodal.png\" alt=\"\">\r\n </div>\r\n <div class=\"d-flex justify-content-between\">\r\n <span class=\"contenttext px-3\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\"\r\n height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M14 10C14 10.3536 13.8595 10.6928 13.6095 10.9428C13.3594 11.1929 13.0203 11.3333 12.6667 11.3333H4.66667L2 14V3.33333C2 2.97971 2.14048 2.64057 2.39052 2.39052C2.64057 2.14048 2.97971 2 3.33333 2H12.6667C13.0203 2 13.3594 2.14048 13.6095 2.39052C13.8595 2.64057 14 2.97971 14 3.33333V10Z\"\r\n stroke=\"#667085\" stroke-width=\"1.5\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg> {{data.comments}} </span>\r\n <span class=\"contenttext px-3\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\"\r\n height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M10.6667 1.33398V4.00065M5.33333 1.33398V4.00065M2 6.66732H14M3.33333 2.66732H12.6667C13.403 2.66732 14 3.26427 14 4.00065V13.334C14 14.0704 13.403 14.6673 12.6667 14.6673H3.33333C2.59695 14.6673 2 14.0704 2 13.334V4.00065C2 3.26427 2.59695 2.66732 3.33333 2.66732Z\"\r\n stroke=\"#667085\" stroke-width=\"1.5\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg> {{data.Date}}</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-sm-6\">\r\n <div class=\"maincard-label fw-bold d-flex justify-content-between\">\r\n <span><img src='./assets/tango/Images/ticket.svg'>{{ticketInfo?.ticketId}}</span>\r\n <span class=\"badge badge-light-primary\">{{ticketInfo?.status}}</span>\r\n </div>\r\n <div *ngFor=\"let obj of viewTicketData;let i=index\" class=\"\">\r\n <!-- User code start -->\r\n <div *ngIf=\"obj.actionBy === 'User'\" class=\"d-flex ms-5\">\r\n <div *ngIf=\"obj.actionType !=='statusChange'\"\r\n class=\"d-flex flex-column justify-content-center align-items-center pe-3\">\r\n <div class=\"d-flex align-items-centre justify-content-centre\">\r\n <img class=\"msgprofile\"\r\n src='https://images.unsplash.com/photo-1441986300917-64674bd600d8?w=500&auto=format&fit=crop&q=60&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxzZWFyY2h8Mnx8c3RvcmV8ZW58MHx8MHx8fDA%3D'>\r\n </div>\r\n <div class=\"p-0 h-100 mt-3 border border-1 border-gray\" style=\"width:0px\"></div>\r\n </div>\r\n <div class=\"py-3\">\r\n <div *ngIf=\"obj.actionType !=='statusChange'\">\r\n <div class=\"d-flex mb-3\">\r\n <span class=\"headingtext fw-bold\">{{obj?.actionBy}}</span>\r\n <span class=\"timingtext px-3 pt-1 fw-bold-400\">{{obj?.timeStamp}}</span>\r\n </div>\r\n <span class=\"profile-label font-bold-400\">User has replied</span>\r\n </div>\r\n <div *ngIf=\"obj.actionType == 'statusCheckReply'\">\r\n <div class=\"textupdates fw-bold-400 mt-3\">Issue has been <b><span\r\n *ngIf=\"obj.statusCheckReply=='No'\">not</span> resolved.</b>\r\n\r\n </div>\r\n <div class=\"textupdates fw-bold-400\" *ngIf=\"obj.statusCheckReply=='No'\"> It takes\r\n {{obj?.hibernationDays}} more days to resolve.</div>\r\n </div>\r\n <div *ngIf=\"\" class=\"\">\r\n <span class=\"investigation fw-bold-400\">Are all CCTV cameras functioning\r\n properly?</span>\r\n <div class=\"row\">\r\n <div class=\"col-sm-4\">\r\n <span class=\"\">Camera 1</span>\r\n <div\r\n class=\"d-flex align-items-centre justify-content-centre rounded-3 overflow-hidden\">\r\n <img class=\"w-100\"\r\n src='https://images.unsplash.com/photo-1441986300917-64674bd600d8?w=500&auto=format&fit=crop&q=60&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxzZWFyY2h8Mnx8c3RvcmV8ZW58MHx8MHx8fDA%3D'>\r\n </div>\r\n </div>\r\n <div class=\"col-sm-4\">\r\n <span class=\"\">Camera 2</span>\r\n <div\r\n class=\"d-flex align-items-centre justify-content-centre rounded-3 overflow-hidden\">\r\n <img class=\"w-100\"\r\n src='https://images.unsplash.com/photo-1441986300917-64674bd600d8?w=500&auto=format&fit=crop&q=60&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxzZWFyY2h8Mnx8c3RvcmV8ZW58MHx8MHx8fDA%3D'>\r\n </div>\r\n </div>\r\n <div class=\"col-sm-4\">\r\n <span class=\"\">Camera 3</span>\r\n <div\r\n class=\"d-flex align-items-centre justify-content-centre rounded-3 overflow-hidden\">\r\n <img class=\"w-100\"\r\n src='https://images.unsplash.com/photo-1441986300917-64674bd600d8?w=500&auto=format&fit=crop&q=60&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxzZWFyY2h8Mnx8c3RvcmV8ZW58MHx8MHx8fDA%3D'>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"textupdates fw-bold-400 mt-5\">\r\n The above camera streaming are not working due <span class=\"fw-bold-700\">power\r\n issue</span> to the camera.\r\n </div>\r\n </div>\r\n <div *ngIf=\"obj.actionType ==='issueUpdate'\">\r\n <div *ngFor=\"let res of obj?.reasons\">\r\n <div class=\"textupdates fw-semibold mt-3\">\r\n We're currently encountering an <span\r\n class=\"fw-bold-700\">{{res.primaryIssue}}</span>\r\n </div>\r\n <div class=\"mt-3\">\r\n <span class=\"investigation fw-bold-400\">The following are the relevant\r\n problem\r\n facing</span>\r\n <ul class=\"timingtext fw-bold-400 mt-3\"\r\n *ngFor=\"let secIssues of res?.secondaryIssue\">\r\n <li>{{secIssues.name}}</li>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"selectedIssue === ''\" class=\"profile-label fw-semibold mt-2\">\r\n Kindly choose the option below that corresponds to the issue you are experiencing in\r\n the\r\n store.\r\n </div>\r\n </div>\r\n </div>\r\n <!-- User code end -->\r\n <!-- Tango code start -->\r\n <div *ngIf=\"obj.actionBy === 'Tango'\" class=\"d-flex mb-5 ms-5\">\r\n <div class=\"d-flex flex-column justify-content-center align-items-center pe-3\">\r\n <div class=\"d-flex align-items-centre justify-content-centre\">\r\n <img class=\"msgprofile\" src=\"./assets/tango/Images/tangoprofile.png\">\r\n </div>\r\n <div class=\"p-0 h-100 mt-3 border border-1 border-gray\" style=\"width:0px\"></div>\r\n </div>\r\n <div class=\"py-3\">\r\n <div class=\"d-flex mb-3\">\r\n <span class=\"headingtext fw-bold\">{{obj?.actionBy}}</span>\r\n <span class=\"timingtext fw-bold-400 px-3 pt-1\">{{obj?.timeStamp}}</span>\r\n </div>\r\n <div class=\"mb-3\">\r\n <span class=\"profile-label fw-bold-400\">tango has replied to the\r\n issue</span>\r\n <div *ngIf=\"obj.actionType == 'dataRecived'\">\r\n <div class=\"textupdates fw-bold-400 mt-3\">Data Received\r\n </div>\r\n </div>\r\n <div *ngIf=\"obj.actionType == 'statusCheckMonitor'\">\r\n <div class=\"textupdates fw-bold-400 mt-3\">Thank you for the update. We\u2019ll get back after the buffer time you provided.\r\n </div>\r\n </div>\r\n <div *ngIf=\"obj.actionType ==='stepsToResolve'\" class=\"mt-3\">\r\n <span class=\"textupdates fw-bold-400\">Please follow the below steps to resolve\r\n the above issue</span>\r\n <div *ngFor=\"let res of obj?.reasons\">\r\n <div class=\"mt-5\">\r\n <span class=\"headingtext fw-semibold\">{{res.primaryIssue}}</span>\r\n <ul class=\"mt-3 timingtext fw-bold-400\"\r\n *ngFor=\"let secIssues of res?.secondaryIssue\">\r\n <li>{{secIssues.name}}</li>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n <!-- defaultInfra start -->\r\n <div *ngIf=\"obj.actionType ==='defaultInfra'\" class=\"contenttext fw-bold-400\">We have\r\n not\r\n received data from your store. We are currently investigating the issue</div>\r\n <!-- defaultInfra end -->\r\n\r\n\r\n\r\n\r\n\r\n </div>\r\n </div>\r\n <!-- Tango code end -->\r\n </div>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n <ng-container *ngIf=\"loading\">\r\n <div class=\"row loader d-flex justify-content-center align-items-center\">\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"noData\">\r\n <div class=\"row\">\r\n <div class=\"col-lg-12 mb-3\">\r\n <div class=\"card-body d-flex justify-content-center align-items-center flex-column\">\r\n <img class=\"img-src\" src=\"./assets/tango/Icons/Nodata.svg\" alt=\"\">\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n </div>", styles: [".card-label{font-size:16px!important;line-height:24px!important}.card-view{width:250px}.card-view .title{color:var(--Gray-900, #101828);font-size:20px;line-height:30px}.card-view .sub-title{color:var(--Gray-700, #344054);font-size:14px;line-height:20px}.issuecard{width:240px;border-radius:10px;border:1px solid var(--Gray-200, #EAECF0);padding:16px}.issuecard label{color:var(--Black, #101828);font-size:14px;line-height:20px}.issuecard.active,.card-view.active{border:none!important;background:var(--Primary-25, #F6FCFF);box-shadow:0 0 0 4px #e9f7ff}.contenttext{color:var(--Gray-500, #667085);font-size:14px;font-weight:400;line-height:20px}.maincard-content{border-radius:8px;border:1px solid var(--Gray-300, #D0D5DD)}.maincard-label{color:var(--Gray-900, #101828);font-size:16px;line-height:24px}.profile{width:24px;height:24px;overflow:hidden;border-radius:200px}.fw-bold-700{font-weight:700!important}.fw-bold-400{font-weight:400!important}.msgprofile{width:48px!important;height:48px!important;border-radius:200px;overflow:hidden}.timingtext{color:var(--Gray-500, #667085);font-size:12px;line-height:18px}.profile-label{font-size:16px;color:var(--Gray-500, #667085);line-height:24px}.w-45{width:49%}.textupdates{color:var(--Gray-700, #344054);font-size:16px;line-height:24px}.textupdates1{color:var(--Gray-700, #344054);font-size:14px;line-height:24px}.items:hover,.tems.focus,.items.active,.camera.focus-visible{background:var(--Gray-50, #F9FAFB)}.daterangepicker{display:block!important;top:153.85px!important;left:900px!important;right:0}.form-control{color:var(--Gray-700, #344054)!important;font-size:14px!important;font-weight:600;line-height:20px;text-transform:capitalize}:host::ng-deep .md-drppicker .btn{line-height:10px!important}:host::ng-deep .md-drppicker.drops-down-right.ltr.double.show-ranges.shown{top:65px!important;left:-470px!important;height:400px!important}:host::ng-deep .md-drppicker .btn{border-radius:8px!important;border:1px solid var(--Primary-600, #00A3FF)!important;background:var(--Primary-600, #00A3FF)!important;box-shadow:0 1px 2px #1018280d!important;color:var(--White, #FFF)!important;font-size:14px!important;font-weight:600!important;line-height:20px;text-transform:capitalize}:host::ng-deep .md-drppicker .ranges ul li button{padding:12px 16px;width:160px;color:var(--Gray-700, #344054);font-size:14px;font-weight:400;line-height:20px;background:none;border:none;text-align:left;cursor:pointer}:host::ng-deep .md-drppicker td.active,:host::ng-deep .md-drppicker td.active:hover{background-color:#029cf4!important;border-radius:20px!important;color:var(--White, #FFF)!important;text-align:center!important;font-size:14px!important;font-weight:500!important;line-height:20px}:host::ng-deep .md-drppicker.ltr .ranges{float:left;margin-top:10px!important}:host::ng-deep .md-drppicker td.in-range{background:var(--Primary-50, #EAF8FF)}:host::ng-deep .md-drppicker .ranges ul li button.active{background:var(--Primary-50, #EAF8FF)!important;border-radius:8px!important;color:var(--Primary-700, #009BF3);font-size:14px!important;font-weight:500!important;line-height:20px!important}:host::ng-deep table th,:host::ng-deep table td{width:40px!important;height:40px!important;padding:10px 8px!important}:host::ng-deep .md-drppicker td.available.prev,:host::ng-deep .md-drppicker th.available.prev{background-image:url(data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB2aWV3Qm94PSIwIDAgMy43IDYiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDMuNyA2IiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxnPg0KCTxwYXRoIGQ9Ik0zLjcsMC43TDEuNCwzbDIuMywyLjNMMyw2TDAsM2wzLTNMMy43LDAuN3oiLz4NCjwvZz4NCjwvc3ZnPg0K)!important;background-repeat:no-repeat!important;background-size:.5em!important;background-position:center!important}:host::ng-deep .md-drppicker td.available.next,:host::ng-deep .md-drppicker th.available.next{background-image:url(data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB2aWV3Qm94PSIwIDAgMy43IDYiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDMuNyA2IiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxnPg0KCTxwYXRoIGQ9Ik0zLjcsMC43TDEuNCwzbDIuMywyLjNMMyw2TDAsM2wzLTNMMy43LDAuN3oiLz4NCjwvZz4NCjwvc3ZnPg0K)!important;background-repeat:no-repeat!important;background-size:.5em!important;background-position:center!important}:host::ng-deep table th{border-bottom:0px solid var(--Gray-200, #EAECF0)!important;background:transparent!important;color:var(--Gray-700, #344054)!important;text-align:center;font-size:16px!important;font-weight:500!important;line-height:24px}:host::ng-deep .md-drppicker td.available.invalid-date{text-decoration:line-through;pointer-events:none;color:#a9a9a9}:host::ng-deep .md-drppicker td.available.today:not(.invalid-date){text-decoration:unset;pointer-events:unset;color:unset}:host::ng-deep .md-drppicker .btn.btn-default{border-radius:8px!important;border:1px solid var(--Gray-300, #D0D5DD)!important;background:var(--White, #FFF)!important;box-shadow:0 1px 2px #1018280d!important;color:var(--Gray-700, #344054)!important;font-size:14px!important;font-weight:600!important;line-height:20px;text-transform:capitalize;margin-right:10px!important}.loader .title{width:65%}.loader .link{width:85%}.loader .description{width:95%}.loader .shimmer{padding:15px;width:95%;height:120px;margin:10px auto;background:#fff}.loader .shimmer .image-card{height:90px;width:90px;float:right;border-radius:8px}.loader .stroke{height:15px;background:#777;margin-top:20px}.loader .wrapper{width:0px;animation:fullView .5s forwards linear}@keyframes fullView{to{width:100%}}.loader .animate{animation:shimmer 3s;animation-iteration-count:infinite;background:linear-gradient(to right,#e6e6e6 5%,#ccc 25%,#e6e6e6 35%);background-size:1000px 100%}@keyframes shimmer{0%{background-position:-1000px 0}to{background-position:1000px 0}}.img-src{width:25%!important}\n"] }]
204
205
  }], ctorParameters: () => [{ type: i1.TicketsService }, { type: i2.DataService }, { type: i0.ChangeDetectorRef }, { type: i3.GlobalStateService }], propDecorators: { storeId: [{
@@ -207,4 +208,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImpor
207
208
  type: HostListener,
208
209
  args: ['document:click', ['$event']]
209
210
  }] } });
210
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmUtYWN0aXZpdHkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGFuZ28tdGlja2V0LXVzZXIvc3JjL2xpYi9jb21wb25lbnRzL3N0b3JlLWFjdGl2aXR5L3N0b3JlLWFjdGl2aXR5LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLXRpY2tldC11c2VyL3NyYy9saWIvY29tcG9uZW50cy9zdG9yZS1hY3Rpdml0eS9zdG9yZS1hY3Rpdml0eS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFDLFlBQVksRUFBQyxLQUFLLEVBQTBCLE1BQU0sZUFBZSxDQUFDO0FBTXJGLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7QUFPMUMsTUFBTSxPQUFPLHNCQUFzQjtJQXdCYjtJQUNWO0lBQ0E7SUFDQTtJQTFCVixVQUFVLENBQUs7SUFDZixLQUFLLENBQUs7SUFDVixhQUFhLEdBQU8sRUFBRSxDQUFDO0lBQ3ZCLGFBQWEsR0FBTyxVQUFVLENBQUU7SUFDaEMsT0FBTyxHQUFXLElBQUksQ0FBQztJQUN2QixNQUFNLEdBQVcsS0FBSyxDQUFDO0lBQ3ZCLE9BQU8sR0FBVyxJQUFJLENBQUM7SUFDdkIsV0FBVyxDQUFLO0lBQ2hCLFVBQVUsQ0FBSztJQUNmLGFBQWEsR0FBVyxJQUFJLENBQUM7SUFDN0IsV0FBVyxHQUFTLENBQUMsdUJBQXVCLEVBQUMsZ0JBQWdCLEVBQUMsY0FBYyxFQUFDLGNBQWMsRUFBQyxtQkFBbUIsQ0FBQyxDQUFBO0lBQ2hILFFBQVEsR0FBWSxLQUFLLENBQUM7SUFDMUIsYUFBYSxHQUFTLENBQUMsS0FBSyxFQUFDLHVCQUF1QixFQUFDLGdCQUFnQixFQUFDLGNBQWMsRUFBRSxjQUFjLEVBQUMsbUJBQW1CLENBQUMsQ0FBQTtJ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LFlBQVk7dUJBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsSG9zdExpc3RlbmVyLElucHV0LE9uRGVzdHJveSxPbkluaXQsT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IERhdGFTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZGF0YS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVGlja2V0c1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy90aWNrZXQtaW5mcmEuc2VydmljZSc7XHJcbi8vIGltcG9ydCB7IEdsb2JhbFN0YXRlU2VydmljZSB9IGZyb20gJ3Byb2plY3RzL3RhbmdvLWFwcC1zaGFyZWQvc3JjL3B1YmxpYy1hcGknO1xyXG5pbXBvcnQgeyBHbG9iYWxTdGF0ZVNlcnZpY2UgfSBmcm9tICd0YW5nby1hcHAtdWktc2hhcmVkJztcclxuaW1wb3J0IHsgU3ViamVjdCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1zdG9yZS1hY3Rpdml0eScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3N0b3JlLWFjdGl2aXR5LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vc3RvcmUtYWN0aXZpdHkuY29tcG9uZW50LnNjc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTdG9yZUFjdGl2aXR5Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LE9uRGVzdHJveSB7XHJcbiAgc2VsZWN0Q2FyZDphbnk7XHJcbiAgc3RhdGU6YW55O1xyXG4gIGZpbHRlcmVkSXNzdWU6YW55ID0gJyc7XHJcbiAgc2VsZWN0ZWRJc3N1ZTphbnkgPSAnaW50ZXJuZXQnIDtcclxuICB1cGRhdGVkOmJvb2xlYW4gPSB0cnVlO1xyXG4gIG5vRGF0YTpib29sZWFuID0gZmFsc2U7XHJcbiAgbG9hZGluZzpib29sZWFuID0gdHJ1ZTtcclxuICBzdG9yZVRpY2tldDphbnk7XHJcbiAgdGlja2V0SW5mbzphbnk7XHJcbiAgcmVzb2x2ZWRJc3N1ZTpib29sZWFuID0gdHJ1ZTtcclxuICBpc3N1ZU9iamVjdDphbnlbXSA9IFsnU3RvcmUgT3BlcmF0aW9uIElzc3VlJywnSW50ZXJuZXQgSXNzdWUnLCdDYW1lcmEgSXNzdWUnLCdTeXN0ZW0gSXNzdWUnLCdBcHBsaWNhdGlvbiBJc3N1ZSddXHJcbiAgZHJvcERvd246IGJvb2xlYW4gPSBmYWxzZTtcclxuICBkcm9wZG93bkl0ZW1zOmFueVtdID0gWydBbGwnLCdTdG9yZSBPcGVyYXRpb24gSXNzdWUnLCdJbnRlcm5ldCBJc3N1ZScsJ0NhbWVyYSBJc3N1ZScgLCdTeXN0ZW0gSXNzdWUnLCdBcHBsaWNhdGlvbiBJc3N1ZSddXHJcblxyXG4gIHNlbGVjdGVkRGF0ZVJhbmdlOiBhbnkgPSB7fTtcclxuICB0aWNrZXRJZDogYW55O1xyXG4gIGRhdGVSYW5nZUZpbHRlcjogYW55O1xyXG4gIHRpY2tldENhcmQ6IGFueTtcclxuICB2aWV3VGlja2V0RGF0YTogYW55O1xyXG4gIGhlYWRlckZpbHRlcjogYW55O1xyXG4gIHVzZXI6IGFueTtcclxuICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3kkID0gbmV3IFN1YmplY3QoKTtcclxuICBASW5wdXQoKSBzdG9yZUlkIDogYW55O1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgc2VydmljZTpUaWNrZXRzU2VydmljZSxcclxuICAgIHByaXZhdGUgZGF0YXNlcnZpY2U6RGF0YVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGNkIDpDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIHByaXZhdGUgZ3M6R2xvYmFsU3RhdGVTZXJ2aWNlKXtcclxuICAgIGRhdGFzZXJ2aWNlLmRhdGEkLnN1YnNjcmliZSgoZGF0YTphbnkpPT57XHJcbiAgICAgIHRoaXMuc3RhdGUgPSBkYXRhO1xyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmNsaWNrJywgWyckZXZlbnQnXSlcclxuICBvbkNsaWNrIChldmVudDogTW91c2VFdmVudCkge1xyXG4gICAgY29uc3RcclxuICAgICAgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50O1xyXG4gICAgaWYoIXRhcmdldC5jbG9zZXN0KCcuZHJvcGRvd24nKSkge1xyXG4gICAgICB0aGlzLmRyb3BEb3duID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpe1xyXG5cclxuICAgIHRoaXMuZ3MuZGF0YVJhbmdlVmFsdWUucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSgoZGF0YTogYW55KSA9PiB7XHJcbiAgICAgIGlmKGRhdGEhPW51bGwpe1xyXG4gICAgICAgIHRoaXMudXNlcj0gIEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3VzZXItaW5mbycpfHxcIlwiKVxyXG4gICAgICAgIHRoaXMuaGVhZGVyRmlsdGVyID0gZGF0YTtcclxuICAgICAgICB0aGlzLnN0b3JlVGlja2V0Y2FyZCgpO1xyXG4gICAgICAgIHRoaXMuc3RvcmVUaWNrZXRMaXN0KCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLmRlc3Ryb3kkLm5leHQodHJ1ZSk7XHJcbiAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XHJcbiAgfVxyXG5cclxuICBzdG9yZVRpY2tldGNhcmQoKXtcclxuICAgIGxldCBkYXRhID17XHJcbiAgICAgIHN0b3JlSWQ6IHRoaXMuc3RvcmVJZCxcclxuICAgICAgZnJvbURhdGU6IHRoaXMuaGVhZGVyRmlsdGVyPy5kYXRlPy5zdGFydERhdGUsXHJcbiAgICAgIHRvRGF0ZTogdGhpcy5oZWFkZXJGaWx0ZXI/LmRhdGU/LmVuZERhdGUsXHJcbiAgICB9XHJcbiAgICB0aGlzLnNlcnZpY2Uuc3RvcmVUaWNrZXRjYXJkKGRhdGEpLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6KHJlczphbnkpPT57XHJcbiAgICAgICAgaWYocmVzICYmIHJlcz8uY29kZSA9PSAyMDApe1xyXG4gICAgICAgICAgIHRoaXMudGlja2V0Q2FyZCA9IHJlcy5kYXRhLmRhdGE7XHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICBlcnJvcihlcnIpIHtcclxuICAgICAgICBcclxuICAgICAgfSxcclxuICAgICAgY29tcGxldGUoKSB7XHJcbiAgICAgICAgXHJcbiAgICAgIH0sXHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgc3RvcmVUaWNrZXRMaXN0KCl7XHJcbiAgICBsZXQgZGF0YSA9e1xyXG4gICAgICBzdG9yZUlkOnRoaXMuc3RvcmVJZCxcclxuICAgICAgZnJvbURhdGU6IHRoaXMuaGVhZGVyRmlsdGVyPy5kYXRlPy5zdGFydERhdGUsXHJcbiAgICAgIHRvRGF0ZTogdGhpcy5oZWFkZXJGaWx0ZXI/LmRhdGU/LmVuZERhdGUsXHJcbiAgICAgIGZpbHRlcjogdGhpcy5maWx0ZXJlZElzc3VlLFxyXG4gICAgICBleHBvcnQ6ZmFsc2VcclxuICAgIH0gXHJcbiAgICB0aGlzLnNlcnZpY2Uuc3RvcmVUaWNrZXRMaXN0KGRhdGEpLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6KHJlczphbnkpPT4ge1xyXG4gICAgICAgIGlmKHJlcyAmJiByZXMuY29kZSA9PSAyMDApe1xyXG4gICAgICAgICAgdGhpcy5zdG9yZVRpY2tldCA9IHJlcy5kYXRhLmRhdGFcclxuICAgICAgICAgIHRoaXMudGlja2V0SWQgPSB0aGlzLnN0b3JlVGlja2V0WzBdPy50aWNrZXRJZDtcclxuICAgICAgICAgIHRoaXMudmlld1RpY2tldCgpO1xyXG4gICAgICAgICAgdGhpcy5sb2FkaW5nPWZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5ub0RhdGEgPSBmYWxzZTtcclxuICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgIHRoaXMubm9EYXRhID0gdHJ1ZTtcclxuICAgICAgICAgIHRoaXMubG9hZGluZz1mYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgIH0sXHJcbiAgICAgIGVycm9yOihlcnIpPT4ge1xyXG4gICAgICAgICAgdGhpcy5ub0RhdGEgPSB0cnVlO1xyXG4gICAgICAgICAgdGhpcy5sb2FkaW5nPWZhbHNlO1xyXG4gICAgICB9LFxyXG4gICAgICBjb21wbGV0ZTooKT0+IHtcclxuICAgICAgICBcclxuICAgICAgfSxcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICB2aWV3VGlja2V0KCl7XHJcbiAgICBsZXQgZGF0YSA9IHsgXHJcbiAgICAgIFwidGlja2V0SWRcIjp0aGlzLnRpY2tldElkXHJcbiAgICB9XHJcbiAgICB0aGlzLnNlcnZpY2Uudmlld1RpY2tldChkYXRhKS5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OihyZXM6YW55KT0+e1xyXG4gICAgICAgIGlmKHJlcyAmJiByZXMuY29kZSA9PSAyMDAgKXtcclxuICAgICAgICAgIHRoaXMudGlja2V0SW5mbyA9IHJlcz8uZGF0YVxyXG4gICAgICAgICAgdGhpcy52aWV3VGlja2V0RGF0YSA9IHJlcy5kYXRhLnRpY2tldEFjdGl2aXR5LnNsaWNlKCkucmV2ZXJzZSgpO1xyXG4gICAgICAgICAgdGhpcy52aWV3VGlja2V0RGF0YS5mb3JFYWNoKChlOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgZS50aW1lU3RhbXAgPSB0aGlzLmdldFJlbGF0aXZlVGltZShlLnRpbWVTdGFtcCk7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICAgIHRoaXMudmlld1RpY2tldERhdGEgPSB0aGlzLnZpZXdUaWNrZXREYXRhLmZpbHRlcigoZTogYW55KSA9PiBlLmFjdGlvblR5cGUgIT0gXCJzdGF0dXNDaGVja1wiKTsgICAgICAgICAgXHJcbiAgICAgICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIGVycm9yOihlcnIpPT57XHJcbiAgICAgIH0sXHJcbiAgICAgIGNvbXBsZXRlOigpPT57XHJcbiAgICAgIH0sXHJcbiAgICB9KVxyXG4gIH1cclxuICBnZXRSZWxhdGl2ZVRpbWUodGltZXN0YW1wOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKHRpbWVzdGFtcCk7XHJcbiAgICBjb25zdCBjdXJyZW50RGF0ZSA9IG5ldyBEYXRlKCk7XHJcbiAgICBjb25zdCBkaWZmZXJlbmNlID0gY3VycmVudERhdGUuZ2V0VGltZSgpIC0gZGF0ZS5nZXRUaW1lKCk7XHJcbiAgICBjb25zdCBzZWNvbmRzID0gTWF0aC5mbG9vcihkaWZmZXJlbmNlIC8gMTAwMCk7XHJcbiAgICBjb25zdCBtaW51dGVzID0gTWF0aC5mbG9vcihzZWNvbmRzIC8gNjApO1xyXG4gICAgY29uc3QgaG91cnMgPSBNYXRoLmZsb29yKG1pbnV0ZXMgLyA2MCk7XHJcbiAgICBjb25zdCBkYXlzID0gTWF0aC5mbG9vcihob3VycyAvIDI0KTtcclxuXHJcbiAgICBpZiAoZGF5cyA+IDApIHtcclxuICAgICAgcmV0dXJuIGRheXMgPT09IDEgPyAnMSBkYXkgYWdvJyA6IGAke2RheXN9IGRheXMgYWdvYDtcclxuICAgIH0gZWxzZSBpZiAoaG91cnMgPiAwKSB7XHJcbiAgICAgIHJldHVybiBob3VycyA9PT0gMSA/ICcxIGhvdXIgYWdvJyA6IGAke2hvdXJzfSBob3VycyBhZ29gO1xyXG4gICAgfSBlbHNlIGlmIChtaW51dGVzID4gMCkge1xyXG4gICAgICByZXR1cm4gbWludXRlcyA9PT0gMSA/ICcxIG1pbnV0ZSBhZ28nIDogYCR7bWludXRlc30gbWludXRlcyBhZ29gO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuICdKdXN0IG5vdyc7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGV4cG9ydFN0b3JlTGlzdGFzWGxzeCgpe1xyXG4gICAgbGV0IGRhdGEgPXtcclxuICAgICAgc3RvcmVJZDp0aGlzLnN0b3JlSWQsXHJcbiAgICAgIGZyb21EYXRlOiB0aGlzLmhlYWRlckZpbHRlcj8uZGF0ZT8uc3RhcnREYXRlLFxyXG4gICAgICB0b0RhdGU6IHRoaXMuaGVhZGVyRmlsdGVyPy5kYXRlPy5lbmREYXRlLFxyXG4gICAgICBmaWx0ZXI6IHRoaXMuZmlsdGVyZWRJc3N1ZSxcclxuICAgICAgZXhwb3J0OiB0cnVlXHJcbiAgICB9XHJcbiAgICB0aGlzLnNlcnZpY2Uuc3RvcmVUaWNrZXRMaXN0RXhwb3J0KGRhdGEpLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6KHJlczphbnkpPT57XHJcbiAgICAgICAgbGV0IGV4Y2VsRGF0YSA9IHJlcztcclxuICAgICAgICB0aGlzLmRhdGFzZXJ2aWNlLnNhdmVBc0V4Y2VsRmlsZShleGNlbERhdGEsJ3N0b3JlJylcclxuICAgICAgfSxcclxuICAgICAgZXJyb3I6KGVycik9PiB7XHJcbiAgICAgIH0sXHJcbiAgICAgIGNvbXBsZXRlKCkge1xyXG4gICAgICAgIFxyXG4gICAgICB9LFxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIFNob3dUaWNrZXQoaW5kZXg6YW55LHZhbHVlOmFueSl7XHJcbiAgICB0aGlzLnNlbGVjdENhcmQgPSBpbmRleCA/IGluZGV4IDogMDtcclxuICAgIHRoaXMudGlja2V0SWQgPSB2YWx1ZTtcclxuICAgIHRoaXMudmlld1RpY2tldCgpO1xyXG4gIH1cclxuXHJcbiAgRmlsdGVySXNzdWUodmFsdWU6YW55KXtcclxuICAgICB0aGlzLmZpbHRlcmVkSXNzdWUgPSB2YWx1ZTtcclxuICAgICB0aGlzLnN0b3JlVGlja2V0TGlzdCgpO1xyXG4gIH1cclxuXHJcbiAgc2VsZWN0SXRlbSh2YWx1ZTphbnkpe1xyXG4gICAgaWYodmFsdWUgPT09ICdBbGwnKXtcclxuICAgICAgdGhpcy5maWx0ZXJlZElzc3VlID0gJyc7XHJcblxyXG4gICAgfWVsc2V7XHJcbiAgICAgIHRoaXMuZmlsdGVyZWRJc3N1ZSA9IHZhbHVlO1xyXG5cclxuICAgIH1cclxuICAgIHRoaXMuZHJvcERvd24gPSBmYWxzZTtcclxuICAgIHRoaXMuc3RvcmVUaWNrZXRMaXN0KClcclxuICB9XHJcblxyXG4gIG9wZW5Ecm9wZG93bihldmVudDpNb3VzZUV2ZW50KXtcclxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgdGhpcy5kcm9wRG93biA9ICF0aGlzLmRyb3BEb3duO1xyXG4gIH1cclxuXHJcblxyXG4vLyAgIHJhbmdlczogYW55ID0ge1xyXG4vLyAgICAgJ1RvZGF5JzogW2RheWpzKCksIGRheWpzKCldLFxyXG4vLyAgICAgJ1llc3RlcmRheSc6IFtkYXlqcygpLnN1YnRyYWN0KDEsICdkYXlzJyksIGRheWpzKCkuc3VidHJhY3QoMSwgJ2RheXMnKV0sXHJcbi8vICAgICAnVGhpcyBXZWVrJzogW2RheWpzKCkuc3VidHJhY3QoNiwgJ2RheXMnKSwgZGF5anMoKV0sXHJcbi8vICAgICAnTGFzdCBXZWVrJzogW2RheWpzKCkuc3VidHJhY3QoMTQsICdkYXlzJykuc3RhcnRPZignZGF5cycpLCBkYXlqcygpLnN1YnRyYWN0KDgsICdkYXlzJykuZW5kT2YoJ2RheXMnKV0sXHJcbi8vICAgICAnVGhpcyBNb250aCc6IFtkYXlqcygpLnN0YXJ0T2YoJ21vbnRoJyksIGRheWpzKCkuZW5kT2YoJ21vbnRoJyldLFxyXG4vLyAgICAgJ0xhc3QgTW9udGgnOiBbXHJcbi8vICAgICAgIGRheWpzKCkuc3VidHJhY3QoMSwgJ21vbnRoJykuc3RhcnRPZignbW9udGgnKSxcclxuLy8gICAgICAgZGF5anMoKS5zdWJ0cmFjdCgxLCAnbW9udGgnKS5lbmRPZignbW9udGgnKVxyXG4vLyAgICAgXVxyXG4vLyAgIH07XHJcblxyXG4vLyAgIGRhdGVjaGFuZ2UoZXZlbnQ6IGFueSkge1xyXG4vLyAgIGlmIChldmVudCAmJiBldmVudC5zdGFydERhdGUgJiYgZXZlbnQuZW5kRGF0ZSkge1xyXG4vLyAgICAgaWYgKGRheWpzKGV2ZW50LnN0YXJ0RGF0ZSkuaXNWYWxpZCgpICYmIGRheWpzKGV2ZW50LmVuZERhdGUpLmlzVmFsaWQoKSkge1xyXG4vLyAgICAgICAvLyBEYXRlcyBhcmUgdmFsaWQsIHByb2NlZWQgd2l0aCBmb3JtYXR0aW5nXHJcbi8vICAgICAgIHRoaXMuc2VsZWN0ZWREYXRlUmFuZ2Uuc3RhcnREYXRlID0gZGF5anMoZXZlbnQuc3RhcnREYXRlKS51dGMoKS5mb3JtYXQoJ0RELU1NLVlZWVknKTtcclxuLy8gICAgICAgdGhpcy5zZWxlY3RlZERhdGVSYW5nZS5lbmREYXRlID0gZGF5anMoZXZlbnQuZW5kRGF0ZSkudXRjKCkuZm9ybWF0KCdERC1NTS1ZWVlZJyk7XHJcbi8vICAgICB9IGVsc2Uge1xyXG4vLyAgICAgICAvLyBEYXRlcyBhcmUgbm90IHZhbGlkLCBoYW5kbGUgdGhlIHNjZW5hcmlvIGFjY29yZGluZ2x5XHJcbi8vICAgICAgIGNvbnNvbGUuZXJyb3IoJ0ludmFsaWQgZGF0ZXMgcHJvdmlkZWQ6JywgZXZlbnQuc3RhcnREYXRlLCBldmVudC5lbmREYXRlKTtcclxuLy8gICAgICAgLy8gSWYgeW91IHdhbnQgdG8gZmFsbGJhY2sgdG8gc3RvcmVkIGZpbHRlcnMgd2hlbiB0aGUgZGF0ZXMgYXJlIGludmFsaWQsIHlvdSBjYW4ga2VlcCB0aGUgZXhpc3RpbmcgbG9naWNcclxuLy8gICAgICAgY29uc3Qgc3RvcmVkRmlsdGVycyA9IEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2RhdGVSYW5nZUZpbHRlcnMnKSB8fCAne30nKTtcclxuLy8gICAgICAgaWYgKHN0b3JlZEZpbHRlcnMuc3RhcnREYXRlICYmIHN0b3JlZEZpbHRlcnMuZW5kRGF0ZSkge1xyXG4vLyAgICAgICAgIHRoaXMuc2VsZWN0ZWREYXRlUmFuZ2Uuc3RhcnREYXRlID0gZGF5anMoc3RvcmVkRmlsdGVycy5zdGFydERhdGUpLmZvcm1hdCgnREQtTU0tWVlZWScpO1xyXG4vLyAgICAgICAgIHRoaXMuc2VsZWN0ZWREYXRlUmFuZ2UuZW5kRGF0ZSA9IGRheWpzKHN0b3JlZEZpbHRlcnMuZW5kRGF0ZSkuZm9ybWF0KCdERC1NTS1ZWVlZJyk7XHJcbi8vICAgICAgIH1cclxuLy8gICAgIH1cclxuLy8gICB9IGVsc2Uge1xyXG4vLyAgICAgY29uc29sZS5lcnJvcignSW52YWxpZCBldmVudCBvYmplY3Q6JywgZXZlbnQpO1xyXG4vLyAgIH1cclxuLy8gfVxyXG5cclxuXHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImNhcmRcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjYXJkLWhlYWRlciBib3JkZXItMFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLXRpdGxlIGZsZXgtY29sdW1uXCI+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2FyZC1sYWJlbFwiPlxyXG4gICAgICAgICAgICAgICAgQWN0aXZpdHlcclxuICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtc3ViXCI+XHJcbiAgICAgICAgICAgICAgICBBbiBvdmVydmlldyBvZiB0aGUgc3RvcmUgaXNzdWVzIGFuZCB0aGUgZG93bnRpbWUgZm9yIHt7aGVhZGVyRmlsdGVyPy5kYXRlPy5zdGFydERhdGV8Y3VzdG9tRGF0ZUZvcm1hdH19XHJcbiAgICAgICAgICAgICAgICAtIHt7aGVhZGVyRmlsdGVyPy5kYXRlPy5lbmREYXRlfGN1c3RvbURhdGVGb3JtYXR9fVxyXG4gICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtdG9vbGJhclwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicG9zaXRpb24tcmVsYXRpdmVcIj5cclxuICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJvcGVuRHJvcGRvd24oJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLWRlZmF1bHQgbXgtMiBidG4tb3V0bGluZSBidG4tb3V0bGluZS1kZWZhdWx0IHJvdW5kZWQtMyB0ZXh0LW5vd3JhcCBib3JkZXItdmFsXCI+PHN2Z1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIxXCIgdmlld0JveD1cIjAgMCAyMCAyMVwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNNSAxMC4wMjY0SDE1TTIuNSA1LjAyNjM3SDE3LjVNNy41IDE1LjAyNjRIMTIuNVwiIHN0cm9rZT1cIiMzNDQwNTRcIiBzdHJva2Utd2lkdGg9XCIyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtcy0yXCI+RmlsdGVyPC9zcGFuPiA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJkcm9wRG93blwiIGNsYXNzPVwiY2FyZCBweS0xIHctMjAwcHggcG9zaXRpb24tYWJzb2x1dGUgdG9wLTUwcHggZW5kLTAgei0xXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHVsICpuZ0Zvcj1cImxldCBpdGVtIG9mIGRyb3Bkb3duSXRlbXNcIiBjbGFzcz1cImxpc3QtdW5zdHlsZWRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGxpIFtuZ0NsYXNzXT1cInRoaXMuZmlsdGVyZWRJc3N1ZSA9PSBpdGVtID8gJ2FjdGl2ZScgOiAnJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImNhbWVyYSBweC01IGl0ZW1zIGZ3LXNlbWlib2xkIGN1cnNvci1wb2ludGVyIHB5LTJcIiAoY2xpY2spPVwic2VsZWN0SXRlbShpdGVtKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3tpdGVtfX08L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJidG4gYnRuLWRlZmF1bHQgYnRuLW91dGxpbmVcIiAoY2xpY2spPVwiZXhwb3J0U3RvcmVMaXN0YXNYbHN4KClcIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuPjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMVwiIHZpZXdCb3g9XCIwIDAgMjAgMjFcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xNy41IDEyLjUyNjRWMTUuODU5N0MxNy41IDE2LjMwMTcgMTcuMzI0NCAxNi43MjU3IDE3LjAxMTggMTcuMDM4MkMxNi42OTkzIDE3LjM1MDggMTYuMjc1NCAxNy41MjY0IDE1LjgzMzMgMTcuNTI2NEg0LjE2NjY3QzMuNzI0NjQgMTcuNTI2NCAzLjMwMDcyIDE3LjM1MDggMi45ODgxNiAxNy4wMzgyQzIuNjc1NTkgMTYuNzI1NyAyLjUgMTYuMzAxNyAyLjUgMTUuODU5N1YxMi41MjY0TTE0LjE2NjcgNi42OTMwM0wxMCAyLjUyNjM3TTEwIDIuNTI2MzdMNS44MzMzMyA2LjY5MzAzTTEwIDIuNTI2MzdWMTIuNTI2NFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjMzQ0MDU0XCIgc3Ryb2tlLXdpZHRoPVwiMS42N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zdmc+PC9zcGFuPiBFeHBvcnRcclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgcG9zaXRpb24tcmVsYXRpdmUgbXktMSBtcy0zXCI+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN2Zy1pY29uIHN2Zy1pY29uLTEgcG9zaXRpb24tYWJzb2x1dGUgbXMtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xMy4zMzMzIDEuNjY2NjNWNC45OTk5Nk02LjY2NjY3IDEuNjY2NjNWNC45OTk5Nk0yLjUgOC4zMzMyOUgxNy41TTQuMTY2NjcgMy4zMzMyOUgxNS44MzMzQzE2Ljc1MzggMy4zMzMyOSAxNy41IDQuMDc5NDggMTcuNSA0Ljk5OTk2VjE2LjY2NjZDMTcuNSAxNy41ODcxIDE2Ljc1MzggMTguMzMzMyAxNS44MzMzIDE4LjMzMzNINC4xNjY2N0MzLjI0NjE5IDE4LjMzMzMgMi41IDE3LjU4NzEgMi41IDE2LjY2NjZWNC45OTk5NkMyLjUgNC4wNzk0OCAzLjI0NjE5IDMuMzMzMjkgNC4xNjY2NyAzLjMzMzI5WlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjMzQ0MDU0XCIgc3Ryb2tlLXdpZHRoPVwiMS42N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmeC1kYXRlLXJhbmdlIGZvcm0tY29udHJvbCBwcy0xNFwiIHR5cGU9XCJ0ZXh0XCIgbWF0SW5wdXQgbmd4RGF0ZXJhbmdlcGlja2VyTWQgW2Ryb3BzXT1cIidkb3duJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgW29wZW5zXT1cIidyaWdodCdcIiBbcmFuZ2VzXT1cInJhbmdlc1wiIFtzaG93Q3VzdG9tUmFuZ2VMYWJlbF09XCJ0cnVlXCIgW2Fsd2F5c1Nob3dDYWxlbmRhcnNdPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtrZWVwQ2FsZW5kYXJPcGVuaW5nV2l0aFJhbmdlXT1cInRydWVcIiBbc2hvd0NhbmNlbF09XCJ0cnVlXCIgYXV0b2NvbXBsZXRlPVwib2ZmXCIgWyhuZ01vZGVsKV09XCJzZWxlY3RlZERhdGVSYW5nZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2xvY2FsZV09XCJ7IGZvcm1hdDogJ0RELU1NLVlZWVknLCBmaXJzdERheTogMSwgbW9udGhOYW1lczogWydKYW51YXJ5JywgJ0ZlYnJ1YXJ5JywgJ01hcmNoJywgJ0FwcmlsJywgJ01heScsICdKdW5lJywgJ0p1bHknLCAnQXVndXN0JywgJ1NlcHRlbWJlcicsICdPY3RvYmVyJywgJ05vdmVtYmVyJywgJ0RlY2VtYmVyJ10gfVwiXHJcbiAgICAgICAgICAgICAgICAgICAgKGRhdGVzVXBkYXRlZCk9XCJkYXRlY2hhbmdlKCRldmVudClcIiBuYW1lPVwiZGF0ZXJhbmdlXCIgLz5cclxuICAgICAgICAgICAgPC9kaXY+IC0tPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleFwiPlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBpc3N1ZSBvZiB0aWNrZXRDYXJkXCIgY2xhc3M9XCJjYXJkIGNhcmQtdmlldyBwLTUgbWUtNVwiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0aXRsZSBmdy1ib2xkXCI+e3tpc3N1ZS5jb3VudH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdWItdGl0bGUgZnctc2VtaWJvbGRcIj57e2lzc3VlLm5hbWV9fTwvc3Bhbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInJvdW5kZWQtMyBib3JkZXIgYm9yZGVyLWdyYXkgYm9yZGVyLTEgbXQtNVwiPlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiIWxvYWRpbmcgJiYgIW5vRGF0YVwiIGNsYXNzPVwicm93IHAtNVwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1zbS02XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgZGF0YSBvZiBzdG9yZVRpY2tldDtsZXQgaW5kZXggPSBpbmRleFwiIGNsYXNzPVwiaXNzdWVjYXJkIHctMTAwIG1iLTQgY3Vyc29yLXBvaW50ZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiU2hvd1RpY2tldChpbmRleCxkYXRhPy50aWNrZXRJZClcIiBbbmdDbGFzc109XCJzZWxlY3RDYXJkID09IGluZGV4ID8gJ2FjdGl2ZScgOiAnJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWFpbmNhcmQtbGFiZWwgZnctYm9sZCBkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gbWItNVwiPjxzcGFuPiA8aW1nXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyYz0nLi9hc3NldHMvdGFuZ28vSW1hZ2VzL3RpY2tldC5zdmcnPiB7e2RhdGE/LnRpY2tldElkfX08L3NwYW4+IDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJiYWRnZSB0ZXh0LXN1Y2Nlc3NcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cImRhdGEuc3RhdHVzID09ICdjbG9zZWQnID8gJ2JhZGdlLWxpZ2h0LXN1Y2Nlc3MnIDooZGF0YS5zdGF0dXMgPT0gJ2lucHJvZ3Jlc3MnID8gJ2JhZGdlLWxpZ2h0LXByaW1hcnknOidiYWRnZS1saWdodC13YXJuaW5nJylcIj57e2RhdGEuc3RhdHVzfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiZGF0YS5pc3N1ZVN0YXR1cyA9PT0gJ25vdGlkZW50aWZpZWQnXCIgY2xhc3M9XCJtYi01IGNvbnRlbnR0ZXh0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBXZSBoYXZlIG5vdCByZWNlaXZlZCBkYXRhIGZyb20geW91ciBzdG9yZS4gV2UgYXJlIGN1cnJlbnRseSBpbnZlc3RpZ2F0aW5nIHRoZSBpc3N1ZS5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJkYXRhLmlzc3VlU3RhdHVzID09PSdpZGVudGlmaWVkJ1wiIGNsYXNzPVwibWItNSBjb250ZW50dGV4dFwiPlN0b3JlIGlzIGN1cnJlbnRseVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5jb3VudGVyaW5nIGEgPHNwYW4gY2xhc3M9XCJmdy1ib2xkLTcwMFwiPnt7ZGF0YS5wcmltYXJ5SXNzdWV9fTwvc3Bhbj4gd2hpY2ggaXNcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0Zvcj1cImxldCBzZWNvbmRhcnkgb2YgZGF0YS5zZWNvbmRhcnlJc3N1ZTsgbGV0IGxhc3QgPSBsYXN0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZ3LWJvbGQtNzAwXCI+e3tzZWNvbmRhcnk/Lm5hbWV9fTxuZy1jb250YWluZXIgKm5nSWY9XCIhbGFzdFwiPiAsPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+LlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW5cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcm9maWxlIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50cmUganVzdGlmeS1jb250ZW50LWNlbnRyZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJcIiBzcmM9XCIuL2Fzc2V0cy90YW5nby9JbWFnZXMvZ3JvcG1vZGFsLnBuZ1wiIGFsdD1cIlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjb250ZW50dGV4dCBweC0zXCI+PHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIxNlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIxNlwiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTE0IDEwQzE0IDEwLjM1MzYgMTMuODU5NSAxMC42OTI4IDEzLjYwOTUgMTAuOTQyOEMxMy4zNTk0IDExLjE5MjkgMTMuMDIwMyAxMS4zMzMzIDEyLjY2NjcgMTEuMzMzM0g0LjY2NjY3TDIgMTRWMy4zMzMzM0MyIDIuOTc5NzEgMi4xNDA0OCAyLjY0MDU3IDIuMzkwNTIgMi4zOTA1MkMyLjY0MDU3IDIuMTQwNDggMi45Nzk3MSAyIDMuMzMzMzMgMkgxMi42NjY3QzEzLjAyMDMgMiAxMy4zNTk0IDIuMTQwNDggMTMuNjA5NSAyLjM5MDUyQzEzLjg1OTUgMi42NDA1NyAxNCAyLjk3OTcxIDE0IDMuMzMzMzNWMTBaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMS41XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz4ge3tkYXRhLmNvbW1lbnRzfX0gPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY29udGVudHRleHQgcHgtM1wiPjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMTZcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMTZcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xMC42NjY3IDEuMzMzOThWNC4wMDA2NU01LjMzMzMzIDEuMzMzOThWNC4wMDA2NU0yIDYuNjY3MzJIMTRNMy4zMzMzMyAyLjY2NzMySDEyLjY2NjdDMTMuNDAzIDIuNjY3MzIgMTQgMy4yNjQyNyAxNCA0LjAwMDY1VjEzLjMzNEMxNCAxNC4wNzA0IDEzLjQwMyAxNC42NjczIDEyLjY2NjcgMTQuNjY3M0gzLjMzMzMzQzIuNTk2OTUgMTQuNjY3MyAyIDE0LjA3MDQgMiAxMy4zMzRWNC4wMDA2NUMyIDMuMjY0MjcgMi41OTY5NSAyLjY2NzMyIDMuMzMzMzMgMi42NjczMlpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIxLjVcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPiB7e2RhdGEuRGF0ZX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXNtLTZcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWFpbmNhcmQtbGFiZWwgZnctYm9sZCBkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW5cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+PGltZyBzcmM9Jy4vYXNzZXRzL3RhbmdvL0ltYWdlcy90aWNrZXQuc3ZnJz57e3RpY2tldEluZm8/LnRpY2tldElkfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYmFkZ2UgYmFkZ2UtbGlnaHQtcHJpbWFyeVwiPnt7dGlja2V0SW5mbz8uc3RhdHVzfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgb2JqIG9mIHZpZXdUaWNrZXREYXRhO2xldCBpPWluZGV4XCIgY2xhc3M9XCJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIFVzZXIgY29kZSBzdGFydCAgLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIm9iai5hY3Rpb25CeSA9PT0gJ1VzZXInXCIgY2xhc3M9XCJkLWZsZXggIG1zLTVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJvYmouYWN0aW9uVHlwZSAhPT0nc3RhdHVzQ2hhbmdlJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJkLWZsZXggZmxleC1jb2x1bW4ganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXIgcGUtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudHJlIGp1c3RpZnktY29udGVudC1jZW50cmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBjbGFzcz1cIm1zZ3Byb2ZpbGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3JjPSdodHRwczovL2ltYWdlcy51bnNwbGFzaC5jb20vcGhvdG8tMTQ0MTk4NjMwMDkxNy02NDY3NGJkNjAwZDg/dz01MDAmYXV0bz1mb3JtYXQmZml0PWNyb3AmcT02MCZpeGxpYj1yYi00LjAuMyZpeGlkPU0zd3hNakEzZkRCOE1IeHpaV0Z5WTJoOE1ueDhjM1J2Y21WOFpXNThNSHg4TUh4OGZEQSUzRCc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInAtMCBoLTEwMCBtdC0zIGJvcmRlciBib3JkZXItMSBib3JkZXItZ3JheVwiIHN0eWxlPVwid2lkdGg6MHB4XCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJweS0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIm9iai5hY3Rpb25UeXBlICE9PSdzdGF0dXNDaGFuZ2UnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggbWItM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJoZWFkaW5ndGV4dCBmdy1ib2xkXCI+e3tvYmo/LmFjdGlvbkJ5fX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRpbWluZ3RleHQgcHgtMyBwdC0xIGZ3LWJvbGQtNDAwXCI+e3tvYmo/LnRpbWVTdGFtcH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJwcm9maWxlLWxhYmVsIGZvbnQtYm9sZC00MDBcIj5Vc2VyIGhhcyByZXBsaWVkPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJvYmouYWN0aW9uVHlwZSA9PSAnc3RhdHVzQ2hlY2tSZXBseSdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHR1cGRhdGVzIGZ3LWJvbGQtNDAwIG10LTNcIj5Jc3N1ZSBoYXMgYmVlbiA8Yj48c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIm9iai5zdGF0dXNDaGVja1JlcGx5PT0nTm8nXCI+bm90PC9zcGFuPiByZXNvbHZlZC48L2I+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHR1cGRhdGVzIGZ3LWJvbGQtNDAwXCIgKm5nSWY9XCJvYmouc3RhdHVzQ2hlY2tSZXBseT09J05vJ1wiPiBJdCB0YWtlc1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tvYmo/LmhpYmVybmF0aW9uRGF5c319IG1vcmUgZGF5cyB0byByZXNvbHZlLjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJcIiBjbGFzcz1cIlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImludmVzdGlnYXRpb24gZnctYm9sZC00MDBcIj5BcmUgYWxsIENDVFYgY2FtZXJhcyBmdW5jdGlvbmluZ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvcGVybHk/PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXNtLTRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIlwiPkNhbWVyYSAxPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudHJlIGp1c3RpZnktY29udGVudC1jZW50cmUgcm91bmRlZC0zIG92ZXJmbG93LWhpZGRlblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwidy0xMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3JjPSdodHRwczovL2ltYWdlcy51bnNwbGFzaC5jb20vcGhvdG8tMTQ0MTk4NjMwMDkxNy02NDY3NGJkNjAwZDg/dz01MDAmYXV0bz1mb3JtYXQmZml0PWNyb3AmcT02MCZpeGxpYj1yYi00LjAuMyZpeGlkPU0zd3hNakEzZkRCOE1IeHpaV0Z5WTJoOE1ueDhjM1J2Y21WOFpXNThNSHg4TUh4OGZEQSUzRCc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtc20tNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiXCI+Q2FtZXJhIDI8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50cmUganVzdGlmeS1jb250ZW50LWNlbnRyZSByb3VuZGVkLTMgb3ZlcmZsb3ctaGlkZGVuXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJ3LTEwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcmM9J2h0dHBzOi8vaW1hZ2VzLnVuc3BsYXNoLmNvbS9waG90by0xNDQxOTg2MzAwOTE3LTY0Njc0YmQ2MDBkOD93PTUwMCZhdXRvPWZvcm1hdCZmaXQ9Y3JvcCZxPTYwJml4bGliPXJiLTQuMC4zJml4aWQ9TTN3eE1qQTNmREI4TUh4elpXRnlZMmg4TW54OGMzUnZjbVY4Wlc1OE1IeDhNSHg4ZkRBJTNEJz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1zbS00XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJcIj5DYW1lcmEgMzwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRyZSBqdXN0aWZ5LWNvbnRlbnQtY2VudHJlIHJvdW5kZWQtMyBvdmVyZmxvdy1oaWRkZW5cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBjbGFzcz1cInctMTAwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyYz0naHR0cHM6Ly9pbWFnZXMudW5zcGxhc2guY29tL3Bob3RvLTE0NDE5ODYzMDA5MTctNjQ2NzRiZDYwMGQ4P3c9NTAwJmF1dG89Zm9ybWF0JmZpdD1jcm9wJnE9NjAmaXhsaWI9cmItNC4wLjMmaXhpZD1NM3d4TWpBM2ZEQjhNSHh6WldGeVkyaDhNbng4YzNSdmNtVjhaVzU4TUh4OE1IeDhmREElM0QnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dHVwZGF0ZXMgZnctYm9sZC00MDAgbXQtNVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGhlIGFib3ZlIGNhbWVyYSBzdHJlYW1pbmcgYXJlIG5vdCB3b3JraW5nIGR1ZSA8c3BhbiBjbGFzcz1cImZ3LWJvbGQtNzAwXCI+cG93ZXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc3N1ZTwvc3Bhbj4gdG8gdGhlIGNhbWVyYS5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIm9iai5hY3Rpb25UeXBlID09PSdpc3N1ZVVwZGF0ZSdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgcmVzIG9mIG9iaj8ucmVhc29uc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHR1cGRhdGVzIGZ3LXNlbWlib2xkIG10LTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXZSdyZSBjdXJyZW50bHkgZW5jb3VudGVyaW5nIGFuIDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZnctYm9sZC03MDBcIj57e3Jlcy5wcmltYXJ5SXNzdWV9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm10LTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImludmVzdGlnYXRpb24gZnctYm9sZC00MDBcIj5UaGUgZm9sbG93aW5nIGFyZSB0aGUgcmVsZXZhbnRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvYmxlbVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWNpbmc8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPVwidGltaW5ndGV4dCBmdy1ib2xkLTQwMCBtdC0zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IHNlY0lzc3VlcyBvZiByZXM/LnNlY29uZGFyeUlzc3VlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT57e3NlY0lzc3Vlcy5uYW1lfX08L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJzZWxlY3RlZElzc3VlID09PSAnJ1wiIGNsYXNzPVwicHJvZmlsZS1sYWJlbCBmdy1zZW1pYm9sZCBtdC0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEtpbmRseSBjaG9vc2UgdGhlIG9wdGlvbiBiZWxvdyB0aGF0IGNvcnJlc3BvbmRzIHRvIHRoZSBpc3N1ZSB5b3UgYXJlIGV4cGVyaWVuY2luZyBpblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RvcmUuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gVXNlciBjb2RlIGVuZCAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSBUYW5nbyBjb2RlIHN0YXJ0IC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwib2JqLmFjdGlvbkJ5ID09PSAnVGFuZ28nXCIgY2xhc3M9XCJkLWZsZXggbWItNSAgbXMtNVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtbiBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlciBwZS0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50cmUganVzdGlmeS1jb250ZW50LWNlbnRyZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwibXNncHJvZmlsZVwiIHNyYz1cIi4vYXNzZXRzL3RhbmdvL0ltYWdlcy90YW5nb3Byb2ZpbGUucG5nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInAtMCBoLTEwMCBtdC0zIGJvcmRlciBib3JkZXItMSBib3JkZXItZ3JheVwiIHN0eWxlPVwid2lkdGg6MHB4XCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJweS0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBtYi0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaGVhZGluZ3RleHQgZnctYm9sZFwiPnt7b2JqPy5hY3Rpb25CeX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRpbWluZ3RleHQgZnctYm9sZC00MDAgcHgtMyBwdC0xXCI+e3tvYmo/LnRpbWVTdGFtcH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicHJvZmlsZS1sYWJlbCBmdy1ib2xkLTQwMFwiPnRhbmdvIGhhcyByZXBsaWVkIHRvIHRoZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNzdWU8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJvYmouYWN0aW9uVHlwZSA9PSAnZGF0YVJlY2l2ZWQnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dHVwZGF0ZXMgZnctYm9sZC00MDAgbXQtM1wiPkRhdGEgUmVjZWl2ZWRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIm9iai5hY3Rpb25UeXBlID09ICdzdGF0dXNDaGVja01vbml0b3InXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dHVwZGF0ZXMgZnctYm9sZC00MDAgbXQtM1wiPlRoYW5rIHlvdSBmb3IgdGhlIHVwZGF0ZS4gV2XigJlsbCBnZXQgYmFjayBhZnRlciB0aGUgYnVmZmVyIHRpbWUgeW91IHByb3ZpZGVkLlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwib2JqLmFjdGlvblR5cGUgPT09J3N0ZXBzVG9SZXNvbHZlJ1wiIGNsYXNzPVwibXQtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0dXBkYXRlcyBmdy1ib2xkLTQwMFwiPlBsZWFzZSBmb2xsb3cgdGhlIGJlbG93IHN0ZXBzIHRvIHJlc29sdmVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGUgYWJvdmUgaXNzdWU8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCByZXMgb2Ygb2JqPy5yZWFzb25zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm10LTVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJoZWFkaW5ndGV4dCBmdy1zZW1pYm9sZFwiPnt7cmVzLnByaW1hcnlJc3N1ZX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9XCJtdC0zIHRpbWluZ3RleHQgZnctYm9sZC00MDBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IHNlY0lzc3VlcyBvZiByZXM/LnNlY29uZGFyeUlzc3VlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+e3tzZWNJc3N1ZXMubmFtZX19PC9saT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSBkZWZhdWx0SW5mcmEgc3RhcnQgLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIm9iai5hY3Rpb25UeXBlID09PSdkZWZhdWx0SW5mcmEnXCIgY2xhc3M9XCJjb250ZW50dGV4dCBmdy1ib2xkLTQwMFwiPldlIGhhdmVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm90XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlY2VpdmVkIGRhdGEgZnJvbSB5b3VyIHN0b3JlLiBXZSBhcmUgY3VycmVudGx5IGludmVzdGlnYXRpbmcgdGhlIGlzc3VlPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSBkZWZhdWx0SW5mcmEgZW5kIC0tPlxyXG5cclxuXHJcblxyXG5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gVGFuZ28gY29kZSBlbmQgLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJsb2FkaW5nXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgbG9hZGVyICBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzaGltbWVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIndyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIHRpdGxlXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBsaW5rXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBkZXNjcmlwdGlvblwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2hpbW1lclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSB0aXRsZVwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgbGlua1wiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgZGVzY3JpcHRpb25cIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIm5vRGF0YVwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTEyIG1iLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5IGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlciBmbGV4LWNvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwiaW1nLXNyY1wiIHNyYz1cIi4vYXNzZXRzL3RhbmdvL0ljb25zL05vZGF0YS5zdmdcIiBhbHQ9XCJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICA8L2Rpdj4iXX0=
211
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmUtYWN0aXZpdHkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGFuZ28tdGlja2V0LXVzZXIvc3JjL2xpYi9jb21wb25lbnRzL3N0b3JlLWFjdGl2aXR5L3N0b3JlLWFjdGl2aXR5LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLXRpY2tldC11c2VyL3NyYy9saWIvY29tcG9uZW50cy9zdG9yZS1hY3Rpdml0eS9zdG9yZS1hY3Rpdml0eS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFDLFlBQVksRUFBQyxLQUFLLEVBQTBCLE1BQU0sZUFBZSxDQUFDO0FBTXJGLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7O0FBTzFDLE1BQU0sT0FBTyxzQkFBc0I7SUF3QmI7SUFDVjtJQUNBO0lBQ0E7SUExQlYsVUFBVSxDQUFLO0lBQ2YsS0FBSyxDQUFLO0lBQ1YsYUFBYSxHQUFPLEVBQUUsQ0FBQztJQUN2QixhQUFhLEdBQU8sVUFBVSxDQUFFO0lBQ2hDLE9BQU8sR0FBVyxJQUFJLENBQUM7SUFDdkIsTUFBTSxHQUFXLEtBQUssQ0FBQztJQUN2QixPQUFPLEdBQVcsSUFBSSxDQUFDO0lBQ3ZCLFdBQVcsQ0FBSztJQUNoQixVQUFVLENBQUs7SUFDZixhQUFhLEdBQVcsSUFBSSxDQUFDO0lBQzdCLFdBQVcsR0FBUyxDQUFDLHVCQUF1QixFQUFDLGdCQUFnQixFQUFDLGNBQWMsRUFBQyxjQUFjLEVBQUMsbUJBQW1CLENBQUMsQ0FBQTtJQUNoSCxRQUFRLEdBQVksS0FBSyxDQUFDO0lBQzFCLGFBQWEsR0FBUyxDQUFDLEtBQUssRUFBQyx1QkFBdUIsRUFBQyxnQkFBZ0IsRUFBQyxjQUFjLEVBQUUsY0FBYyxFQUFDLG1CQUFtQixDQUFDLENBQUE7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TixZQUFZO3VCQUFDLGdCQUFnQixFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LEhvc3RMaXN0ZW5lcixJbnB1dCxPbkRlc3Ryb3ksT25Jbml0LE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBEYXRhU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2RhdGEuc2VydmljZSc7XHJcbmltcG9ydCB7IFRpY2tldHNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdGlja2V0LWluZnJhLnNlcnZpY2UnO1xyXG4vLyBpbXBvcnQgeyBHbG9iYWxTdGF0ZVNlcnZpY2UgfSBmcm9tICdwcm9qZWN0cy90YW5nby1hcHAtc2hhcmVkL3NyYy9wdWJsaWMtYXBpJztcclxuaW1wb3J0IHsgR2xvYmFsU3RhdGVTZXJ2aWNlIH0gZnJvbSAndGFuZ28tYXBwLXVpLWdsb2JhbCc7XHJcbmltcG9ydCB7IFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItc3RvcmUtYWN0aXZpdHknLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9zdG9yZS1hY3Rpdml0eS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL3N0b3JlLWFjdGl2aXR5LmNvbXBvbmVudC5zY3NzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgU3RvcmVBY3Rpdml0eUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCxPbkRlc3Ryb3kge1xyXG4gIHNlbGVjdENhcmQ6YW55O1xyXG4gIHN0YXRlOmFueTtcclxuICBmaWx0ZXJlZElzc3VlOmFueSA9ICcnO1xyXG4gIHNlbGVjdGVkSXNzdWU6YW55ID0gJ2ludGVybmV0JyA7XHJcbiAgdXBkYXRlZDpib29sZWFuID0gdHJ1ZTtcclxuICBub0RhdGE6Ym9vbGVhbiA9IGZhbHNlO1xyXG4gIGxvYWRpbmc6Ym9vbGVhbiA9IHRydWU7XHJcbiAgc3RvcmVUaWNrZXQ6YW55O1xyXG4gIHRpY2tldEluZm86YW55O1xyXG4gIHJlc29sdmVkSXNzdWU6Ym9vbGVhbiA9IHRydWU7XHJcbiAgaXNzdWVPYmplY3Q6YW55W10gPSBbJ1N0b3JlIE9wZXJhdGlvbiBJc3N1ZScsJ0ludGVybmV0IElzc3VlJywnQ2FtZXJhIElzc3VlJywnU3lzdGVtIElzc3VlJywnQXBwbGljYXRpb24gSXNzdWUnXVxyXG4gIGRyb3BEb3duOiBib29sZWFuID0gZmFsc2U7XHJcbiAgZHJvcGRvd25JdGVtczphbnlbXSA9IFsnQWxsJywnU3RvcmUgT3BlcmF0aW9uIElzc3VlJywnSW50ZXJuZXQgSXNzdWUnLCdDYW1lcmEgSXNzdWUnICwnU3lzdGVtIElzc3VlJywnQXBwbGljYXRpb24gSXNzdWUnXVxyXG5cclxuICBzZWxlY3RlZERhdGVSYW5nZTogYW55ID0ge307XHJcbiAgdGlja2V0SWQ6IGFueTtcclxuICBkYXRlUmFuZ2VGaWx0ZXI6IGFueTtcclxuICB0aWNrZXRDYXJkOiBhbnk7XHJcbiAgdmlld1RpY2tldERhdGE6IGFueTtcclxuICBoZWFkZXJGaWx0ZXI6IGFueTtcclxuICB1c2VyOiBhbnk7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0KCk7XHJcbiAgQElucHV0KCkgc3RvcmVJZCA6IGFueTtcclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHNlcnZpY2U6VGlja2V0c1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIGRhdGFzZXJ2aWNlOkRhdGFTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBjZCA6Q2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBwcml2YXRlIGdzOkdsb2JhbFN0YXRlU2VydmljZSl7XHJcbiAgICBkYXRhc2VydmljZS5kYXRhJC5zdWJzY3JpYmUoKGRhdGE6YW55KT0+e1xyXG4gICAgICB0aGlzLnN0YXRlID0gZGF0YTtcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDpjbGljaycsIFsnJGV2ZW50J10pXHJcbiAgb25DbGljayAoZXZlbnQ6IE1vdXNlRXZlbnQpIHtcclxuICAgIGNvbnN0XHJcbiAgICAgIHRhcmdldCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudDtcclxuICAgIGlmKCF0YXJnZXQuY2xvc2VzdCgnLmRyb3Bkb3duJykpIHtcclxuICAgICAgdGhpcy5kcm9wRG93biA9IGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKXtcclxuXHJcbiAgICB0aGlzLmdzLmRhdGFSYW5nZVZhbHVlLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoKGRhdGE6IGFueSkgPT4ge1xyXG4gICAgICBpZihkYXRhIT1udWxsKXtcclxuICAgICAgICB0aGlzLnVzZXI9ICBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKCd1c2VyLWluZm8nKXx8XCJcIilcclxuICAgICAgICB0aGlzLmhlYWRlckZpbHRlciA9IGRhdGE7XHJcbiAgICAgICAgdGhpcy5zdG9yZVRpY2tldGNhcmQoKTtcclxuICAgICAgICB0aGlzLnN0b3JlVGlja2V0TGlzdCgpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KHRydWUpO1xyXG4gICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xyXG4gIH1cclxuXHJcbiAgc3RvcmVUaWNrZXRjYXJkKCl7XHJcbiAgICBsZXQgZGF0YSA9e1xyXG4gICAgICBzdG9yZUlkOiB0aGlzLnN0b3JlSWQsXHJcbiAgICAgIGZyb21EYXRlOiB0aGlzLmhlYWRlckZpbHRlcj8uZGF0ZT8uc3RhcnREYXRlLFxyXG4gICAgICB0b0RhdGU6IHRoaXMuaGVhZGVyRmlsdGVyPy5kYXRlPy5lbmREYXRlLFxyXG4gICAgfVxyXG4gICAgdGhpcy5zZXJ2aWNlLnN0b3JlVGlja2V0Y2FyZChkYXRhKS5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OihyZXM6YW55KT0+e1xyXG4gICAgICAgIGlmKHJlcyAmJiByZXM/LmNvZGUgPT0gMjAwKXtcclxuICAgICAgICAgICB0aGlzLnRpY2tldENhcmQgPSByZXMuZGF0YS5kYXRhO1xyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAgZXJyb3IoZXJyKSB7XHJcbiAgICAgICAgXHJcbiAgICAgIH0sXHJcbiAgICAgIGNvbXBsZXRlKCkge1xyXG4gICAgICAgIFxyXG4gICAgICB9LFxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIHN0b3JlVGlja2V0TGlzdCgpe1xyXG4gICAgbGV0IGRhdGEgPXtcclxuICAgICAgc3RvcmVJZDp0aGlzLnN0b3JlSWQsXHJcbiAgICAgIGZyb21EYXRlOiB0aGlzLmhlYWRlckZpbHRlcj8uZGF0ZT8uc3RhcnREYXRlLFxyXG4gICAgICB0b0RhdGU6IHRoaXMuaGVhZGVyRmlsdGVyPy5kYXRlPy5lbmREYXRlLFxyXG4gICAgICBmaWx0ZXI6IHRoaXMuZmlsdGVyZWRJc3N1ZSxcclxuICAgICAgZXhwb3J0OmZhbHNlXHJcbiAgICB9IFxyXG4gICAgdGhpcy5zZXJ2aWNlLnN0b3JlVGlja2V0TGlzdChkYXRhKS5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OihyZXM6YW55KT0+IHtcclxuICAgICAgICBpZihyZXMgJiYgcmVzLmNvZGUgPT0gMjAwKXtcclxuICAgICAgICAgIHRoaXMuc3RvcmVUaWNrZXQgPSByZXMuZGF0YS5kYXRhXHJcbiAgICAgICAgICB0aGlzLnRpY2tldElkID0gdGhpcy5zdG9yZVRpY2tldFswXT8udGlja2V0SWQ7XHJcbiAgICAgICAgICB0aGlzLnZpZXdUaWNrZXQoKTtcclxuICAgICAgICAgIHRoaXMubG9hZGluZz1mYWxzZTtcclxuICAgICAgICAgIHRoaXMubm9EYXRhID0gZmFsc2U7XHJcbiAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICB0aGlzLm5vRGF0YSA9IHRydWU7XHJcbiAgICAgICAgICB0aGlzLmxvYWRpbmc9ZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICB9LFxyXG4gICAgICBlcnJvcjooZXJyKT0+IHtcclxuICAgICAgICAgIHRoaXMubm9EYXRhID0gdHJ1ZTtcclxuICAgICAgICAgIHRoaXMubG9hZGluZz1mYWxzZTtcclxuICAgICAgfSxcclxuICAgICAgY29tcGxldGU6KCk9PiB7XHJcbiAgICAgICAgXHJcbiAgICAgIH0sXHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgdmlld1RpY2tldCgpe1xyXG4gICAgbGV0IGRhdGEgPSB7IFxyXG4gICAgICBcInRpY2tldElkXCI6dGhpcy50aWNrZXRJZFxyXG4gICAgfVxyXG4gICAgdGhpcy5zZXJ2aWNlLnZpZXdUaWNrZXQoZGF0YSkuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDoocmVzOmFueSk9PntcclxuICAgICAgICBpZihyZXMgJiYgcmVzLmNvZGUgPT0gMjAwICl7XHJcbiAgICAgICAgICB0aGlzLnRpY2tldEluZm8gPSByZXM/LmRhdGFcclxuICAgICAgICAgIHRoaXMudmlld1RpY2tldERhdGEgPSByZXMuZGF0YS50aWNrZXRBY3Rpdml0eS5zbGljZSgpLnJldmVyc2UoKTtcclxuICAgICAgICAgIHRoaXMudmlld1RpY2tldERhdGEuZm9yRWFjaCgoZTogYW55KSA9PiB7XHJcbiAgICAgICAgICAgIGUudGltZVN0YW1wID0gdGhpcy5nZXRSZWxhdGl2ZVRpbWUoZS50aW1lU3RhbXApO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICB0aGlzLnZpZXdUaWNrZXREYXRhID0gdGhpcy52aWV3VGlja2V0RGF0YS5maWx0ZXIoKGU6IGFueSkgPT4gZS5hY3Rpb25UeXBlICE9IFwic3RhdHVzQ2hlY2tcIik7ICAgICAgICAgIFxyXG4gICAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICBlcnJvcjooZXJyKT0+e1xyXG4gICAgICB9LFxyXG4gICAgICBjb21wbGV0ZTooKT0+e1xyXG4gICAgICB9LFxyXG4gICAgfSlcclxuICB9XHJcbiAgZ2V0UmVsYXRpdmVUaW1lKHRpbWVzdGFtcDogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZSh0aW1lc3RhbXApO1xyXG4gICAgY29uc3QgY3VycmVudERhdGUgPSBuZXcgRGF0ZSgpO1xyXG4gICAgY29uc3QgZGlmZmVyZW5jZSA9IGN1cnJlbnREYXRlLmdldFRpbWUoKSAtIGRhdGUuZ2V0VGltZSgpO1xyXG4gICAgY29uc3Qgc2Vjb25kcyA9IE1hdGguZmxvb3IoZGlmZmVyZW5jZSAvIDEwMDApO1xyXG4gICAgY29uc3QgbWludXRlcyA9IE1hdGguZmxvb3Ioc2Vjb25kcyAvIDYwKTtcclxuICAgIGNvbnN0IGhvdXJzID0gTWF0aC5mbG9vcihtaW51dGVzIC8gNjApO1xyXG4gICAgY29uc3QgZGF5cyA9IE1hdGguZmxvb3IoaG91cnMgLyAyNCk7XHJcblxyXG4gICAgaWYgKGRheXMgPiAwKSB7XHJcbiAgICAgIHJldHVybiBkYXlzID09PSAxID8gJzEgZGF5IGFnbycgOiBgJHtkYXlzfSBkYXlzIGFnb2A7XHJcbiAgICB9IGVsc2UgaWYgKGhvdXJzID4gMCkge1xyXG4gICAgICByZXR1cm4gaG91cnMgPT09IDEgPyAnMSBob3VyIGFnbycgOiBgJHtob3Vyc30gaG91cnMgYWdvYDtcclxuICAgIH0gZWxzZSBpZiAobWludXRlcyA+IDApIHtcclxuICAgICAgcmV0dXJuIG1pbnV0ZXMgPT09IDEgPyAnMSBtaW51dGUgYWdvJyA6IGAke21pbnV0ZXN9IG1pbnV0ZXMgYWdvYDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiAnSnVzdCBub3cnO1xyXG4gICAgfVxyXG4gIH1cclxuICBleHBvcnRTdG9yZUxpc3Rhc1hsc3goKXtcclxuICAgIGxldCBkYXRhID17XHJcbiAgICAgIHN0b3JlSWQ6dGhpcy5zdG9yZUlkLFxyXG4gICAgICBmcm9tRGF0ZTogdGhpcy5oZWFkZXJGaWx0ZXI/LmRhdGU/LnN0YXJ0RGF0ZSxcclxuICAgICAgdG9EYXRlOiB0aGlzLmhlYWRlckZpbHRlcj8uZGF0ZT8uZW5kRGF0ZSxcclxuICAgICAgZmlsdGVyOiB0aGlzLmZpbHRlcmVkSXNzdWUsXHJcbiAgICAgIGV4cG9ydDogdHJ1ZVxyXG4gICAgfVxyXG4gICAgdGhpcy5zZXJ2aWNlLnN0b3JlVGlja2V0TGlzdEV4cG9ydChkYXRhKS5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OihyZXM6YW55KT0+e1xyXG4gICAgICAgIGxldCBleGNlbERhdGEgPSByZXM7XHJcbiAgICAgICAgdGhpcy5kYXRhc2VydmljZS5zYXZlQXNFeGNlbEZpbGUoZXhjZWxEYXRhLCdzdG9yZScpXHJcbiAgICAgIH0sXHJcbiAgICAgIGVycm9yOihlcnIpPT4ge1xyXG4gICAgICB9LFxyXG4gICAgICBjb21wbGV0ZSgpIHtcclxuICAgICAgICBcclxuICAgICAgfSxcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBTaG93VGlja2V0KGluZGV4OmFueSx2YWx1ZTphbnkpe1xyXG4gICAgdGhpcy5zZWxlY3RDYXJkID0gaW5kZXggPyBpbmRleCA6IDA7XHJcbiAgICB0aGlzLnRpY2tldElkID0gdmFsdWU7XHJcbiAgICB0aGlzLnZpZXdUaWNrZXQoKTtcclxuICB9XHJcblxyXG4gIEZpbHRlcklzc3VlKHZhbHVlOmFueSl7XHJcbiAgICAgdGhpcy5maWx0ZXJlZElzc3VlID0gdmFsdWU7XHJcbiAgICAgdGhpcy5zdG9yZVRpY2tldExpc3QoKTtcclxuICB9XHJcblxyXG4gIHNlbGVjdEl0ZW0odmFsdWU6YW55KXtcclxuICAgIGlmKHZhbHVlID09PSAnQWxsJyl7XHJcbiAgICAgIHRoaXMuZmlsdGVyZWRJc3N1ZSA9ICcnO1xyXG5cclxuICAgIH1lbHNle1xyXG4gICAgICB0aGlzLmZpbHRlcmVkSXNzdWUgPSB2YWx1ZTtcclxuXHJcbiAgICB9XHJcbiAgICB0aGlzLmRyb3BEb3duID0gZmFsc2U7XHJcbiAgICB0aGlzLnN0b3JlVGlja2V0TGlzdCgpXHJcbiAgfVxyXG5cclxuICBvcGVuRHJvcGRvd24oZXZlbnQ6TW91c2VFdmVudCl7XHJcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIHRoaXMuZHJvcERvd24gPSAhdGhpcy5kcm9wRG93bjtcclxuICB9XHJcblxyXG5cclxuLy8gICByYW5nZXM6IGFueSA9IHtcclxuLy8gICAgICdUb2RheSc6IFtkYXlqcygpLCBkYXlqcygpXSxcclxuLy8gICAgICdZZXN0ZXJkYXknOiBbZGF5anMoKS5zdWJ0cmFjdCgxLCAnZGF5cycpLCBkYXlqcygpLnN1YnRyYWN0KDEsICdkYXlzJyldLFxyXG4vLyAgICAgJ1RoaXMgV2Vlayc6IFtkYXlqcygpLnN1YnRyYWN0KDYsICdkYXlzJyksIGRheWpzKCldLFxyXG4vLyAgICAgJ0xhc3QgV2Vlayc6IFtkYXlqcygpLnN1YnRyYWN0KDE0LCAnZGF5cycpLnN0YXJ0T2YoJ2RheXMnKSwgZGF5anMoKS5zdWJ0cmFjdCg4LCAnZGF5cycpLmVuZE9mKCdkYXlzJyldLFxyXG4vLyAgICAgJ1RoaXMgTW9udGgnOiBbZGF5anMoKS5zdGFydE9mKCdtb250aCcpLCBkYXlqcygpLmVuZE9mKCdtb250aCcpXSxcclxuLy8gICAgICdMYXN0IE1vbnRoJzogW1xyXG4vLyAgICAgICBkYXlqcygpLnN1YnRyYWN0KDEsICdtb250aCcpLnN0YXJ0T2YoJ21vbnRoJyksXHJcbi8vICAgICAgIGRheWpzKCkuc3VidHJhY3QoMSwgJ21vbnRoJykuZW5kT2YoJ21vbnRoJylcclxuLy8gICAgIF1cclxuLy8gICB9O1xyXG5cclxuLy8gICBkYXRlY2hhbmdlKGV2ZW50OiBhbnkpIHtcclxuLy8gICBpZiAoZXZlbnQgJiYgZXZlbnQuc3RhcnREYXRlICYmIGV2ZW50LmVuZERhdGUpIHtcclxuLy8gICAgIGlmIChkYXlqcyhldmVudC5zdGFydERhdGUpLmlzVmFsaWQoKSAmJiBkYXlqcyhldmVudC5lbmREYXRlKS5pc1ZhbGlkKCkpIHtcclxuLy8gICAgICAgLy8gRGF0ZXMgYXJlIHZhbGlkLCBwcm9jZWVkIHdpdGggZm9ybWF0dGluZ1xyXG4vLyAgICAgICB0aGlzLnNlbGVjdGVkRGF0ZVJhbmdlLnN0YXJ0RGF0ZSA9IGRheWpzKGV2ZW50LnN0YXJ0RGF0ZSkudXRjKCkuZm9ybWF0KCdERC1NTS1ZWVlZJyk7XHJcbi8vICAgICAgIHRoaXMuc2VsZWN0ZWREYXRlUmFuZ2UuZW5kRGF0ZSA9IGRheWpzKGV2ZW50LmVuZERhdGUpLnV0YygpLmZvcm1hdCgnREQtTU0tWVlZWScpO1xyXG4vLyAgICAgfSBlbHNlIHtcclxuLy8gICAgICAgLy8gRGF0ZXMgYXJlIG5vdCB2YWxpZCwgaGFuZGxlIHRoZSBzY2VuYXJpbyBhY2NvcmRpbmdseVxyXG4vLyAgICAgICBjb25zb2xlLmVycm9yKCdJbnZhbGlkIGRhdGVzIHByb3ZpZGVkOicsIGV2ZW50LnN0YXJ0RGF0ZSwgZXZlbnQuZW5kRGF0ZSk7XHJcbi8vICAgICAgIC8vIElmIHlvdSB3YW50IHRvIGZhbGxiYWNrIHRvIHN0b3JlZCBmaWx0ZXJzIHdoZW4gdGhlIGRhdGVzIGFyZSBpbnZhbGlkLCB5b3UgY2FuIGtlZXAgdGhlIGV4aXN0aW5nIGxvZ2ljXHJcbi8vICAgICAgIGNvbnN0IHN0b3JlZEZpbHRlcnMgPSBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdkYXRlUmFuZ2VGaWx0ZXJzJykgfHwgJ3t9Jyk7XHJcbi8vICAgICAgIGlmIChzdG9yZWRGaWx0ZXJzLnN0YXJ0RGF0ZSAmJiBzdG9yZWRGaWx0ZXJzLmVuZERhdGUpIHtcclxuLy8gICAgICAgICB0aGlzLnNlbGVjdGVkRGF0ZVJhbmdlLnN0YXJ0RGF0ZSA9IGRheWpzKHN0b3JlZEZpbHRlcnMuc3RhcnREYXRlKS5mb3JtYXQoJ0RELU1NLVlZWVknKTtcclxuLy8gICAgICAgICB0aGlzLnNlbGVjdGVkRGF0ZVJhbmdlLmVuZERhdGUgPSBkYXlqcyhzdG9yZWRGaWx0ZXJzLmVuZERhdGUpLmZvcm1hdCgnREQtTU0tWVlZWScpO1xyXG4vLyAgICAgICB9XHJcbi8vICAgICB9XHJcbi8vICAgfSBlbHNlIHtcclxuLy8gICAgIGNvbnNvbGUuZXJyb3IoJ0ludmFsaWQgZXZlbnQgb2JqZWN0OicsIGV2ZW50KTtcclxuLy8gICB9XHJcbi8vIH1cclxuXHJcblxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJjYXJkXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY2FyZC1oZWFkZXIgYm9yZGVyLTBcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC10aXRsZSBmbGV4LWNvbHVtblwiPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNhcmQtbGFiZWxcIj5cclxuICAgICAgICAgICAgICAgIEFjdGl2aXR5XHJcbiAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXN1YlwiPlxyXG4gICAgICAgICAgICAgICAgQW4gb3ZlcnZpZXcgb2YgdGhlIHN0b3JlIGlzc3VlcyBhbmQgdGhlIGRvd250aW1lIGZvciB7e2hlYWRlckZpbHRlcj8uZGF0ZT8uc3RhcnREYXRlfGN1c3RvbURhdGVGb3JtYXR9fVxyXG4gICAgICAgICAgICAgICAgLSB7e2hlYWRlckZpbHRlcj8uZGF0ZT8uZW5kRGF0ZXxjdXN0b21EYXRlRm9ybWF0fX1cclxuICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLXRvb2xiYXJcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBvc2l0aW9uLXJlbGF0aXZlXCI+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwib3BlbkRyb3Bkb3duKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1kZWZhdWx0IG14LTIgYnRuLW91dGxpbmUgYnRuLW91dGxpbmUtZGVmYXVsdCByb3VuZGVkLTMgdGV4dC1ub3dyYXAgYm9yZGVyLXZhbFwiPjxzdmdcclxuICAgICAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMVwiIHZpZXdCb3g9XCIwIDAgMjAgMjFcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTUgMTAuMDI2NEgxNU0yLjUgNS4wMjYzN0gxNy41TTcuNSAxNS4wMjY0SDEyLjVcIiBzdHJva2U9XCIjMzQ0MDU0XCIgc3Ryb2tlLXdpZHRoPVwiMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXMtMlwiPkZpbHRlcjwvc3Bhbj4gPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiZHJvcERvd25cIiBjbGFzcz1cImNhcmQgcHktMSB3LTIwMHB4IHBvc2l0aW9uLWFic29sdXRlIHRvcC01MHB4IGVuZC0wIHotMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDx1bCAqbmdGb3I9XCJsZXQgaXRlbSBvZiBkcm9wZG93bkl0ZW1zXCIgY2xhc3M9XCJsaXN0LXVuc3R5bGVkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBbbmdDbGFzc109XCJ0aGlzLmZpbHRlcmVkSXNzdWUgPT0gaXRlbSA/ICdhY3RpdmUnIDogJydcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjYW1lcmEgcHgtNSBpdGVtcyBmdy1zZW1pYm9sZCBjdXJzb3ItcG9pbnRlciBweS0yXCIgKGNsaWNrKT1cInNlbGVjdEl0ZW0oaXRlbSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7aXRlbX19PC9saT5cclxuICAgICAgICAgICAgICAgICAgICA8L3VsPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYnRuIGJ0bi1kZWZhdWx0IGJ0bi1vdXRsaW5lXCIgKGNsaWNrKT1cImV4cG9ydFN0b3JlTGlzdGFzWGxzeCgpXCI+XHJcbiAgICAgICAgICAgICAgICA8c3Bhbj48c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjFcIiB2aWV3Qm94PVwiMCAwIDIwIDIxXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTcuNSAxMi41MjY0VjE1Ljg1OTdDMTcuNSAxNi4zMDE3IDE3LjMyNDQgMTYuNzI1NyAxNy4wMTE4IDE3LjAzODJDMTYuNjk5MyAxNy4zNTA4IDE2LjI3NTQgMTcuNTI2NCAxNS44MzMzIDE3LjUyNjRINC4xNjY2N0MzLjcyNDY0IDE3LjUyNjQgMy4zMDA3MiAxNy4zNTA4IDIuOTg4MTYgMTcuMDM4MkMyLjY3NTU5IDE2LjcyNTcgMi41IDE2LjMwMTcgMi41IDE1Ljg1OTdWMTIuNTI2NE0xNC4xNjY3IDYuNjkzMDNMMTAgMi41MjYzN00xMCAyLjUyNjM3TDUuODMzMzMgNi42OTMwM00xMCAyLjUyNjM3VjEyLjUyNjRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzM0NDA1NFwiIHN0cm9rZS13aWR0aD1cIjEuNjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvc3ZnPjwvc3Bhbj4gRXhwb3J0XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8IS0tIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIHBvc2l0aW9uLXJlbGF0aXZlIG15LTEgbXMtM1wiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdmctaWNvbiBzdmctaWNvbi0xIHBvc2l0aW9uLWFic29sdXRlIG1zLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTMuMzMzMyAxLjY2NjYzVjQuOTk5OTZNNi42NjY2NyAxLjY2NjYzVjQuOTk5OTZNMi41IDguMzMzMjlIMTcuNU00LjE2NjY3IDMuMzMzMjlIMTUuODMzM0MxNi43NTM4IDMuMzMzMjkgMTcuNSA0LjA3OTQ4IDE3LjUgNC45OTk5NlYxNi42NjY2QzE3LjUgMTcuNTg3MSAxNi43NTM4IDE4LjMzMzMgMTUuODMzMyAxOC4zMzMzSDQuMTY2NjdDMy4yNDYxOSAxOC4zMzMzIDIuNSAxNy41ODcxIDIuNSAxNi42NjY2VjQuOTk5OTZDMi41IDQuMDc5NDggMy4yNDYxOSAzLjMzMzI5IDQuMTY2NjcgMy4zMzMyOVpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzM0NDA1NFwiIHN0cm9rZS13aWR0aD1cIjEuNjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZngtZGF0ZS1yYW5nZSBmb3JtLWNvbnRyb2wgcHMtMTRcIiB0eXBlPVwidGV4dFwiIG1hdElucHV0IG5neERhdGVyYW5nZXBpY2tlck1kIFtkcm9wc109XCInZG93bidcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtvcGVuc109XCIncmlnaHQnXCIgW3Jhbmdlc109XCJyYW5nZXNcIiBbc2hvd0N1c3RvbVJhbmdlTGFiZWxdPVwidHJ1ZVwiIFthbHdheXNTaG93Q2FsZW5kYXJzXT1cImZhbHNlXCJcclxuICAgICAgICAgICAgICAgICAgICBba2VlcENhbGVuZGFyT3BlbmluZ1dpdGhSYW5nZV09XCJ0cnVlXCIgW3Nob3dDYW5jZWxdPVwidHJ1ZVwiIGF1dG9jb21wbGV0ZT1cIm9mZlwiIFsobmdNb2RlbCldPVwic2VsZWN0ZWREYXRlUmFuZ2VcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtsb2NhbGVdPVwieyBmb3JtYXQ6ICdERC1NTS1ZWVlZJywgZmlyc3REYXk6IDEsIG1vbnRoTmFtZXM6IFsnSmFudWFyeScsICdGZWJydWFyeScsICdNYXJjaCcsICdBcHJpbCcsICdNYXknLCAnSnVuZScsICdKdWx5JywgJ0F1Z3VzdCcsICdTZXB0ZW1iZXInLCAnT2N0b2JlcicsICdOb3ZlbWJlcicsICdEZWNlbWJlciddIH1cIlxyXG4gICAgICAgICAgICAgICAgICAgIChkYXRlc1VwZGF0ZWQpPVwiZGF0ZWNoYW5nZSgkZXZlbnQpXCIgbmFtZT1cImRhdGVyYW5nZVwiIC8+XHJcbiAgICAgICAgICAgIDwvZGl2PiAtLT5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXhcIj5cclxuICAgICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgaXNzdWUgb2YgdGlja2V0Q2FyZFwiIGNsYXNzPVwiY2FyZCBjYXJkLXZpZXcgcC01IG1lLTVcIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGl0bGUgZnctYm9sZFwiPnt7aXNzdWUuY291bnR9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3ViLXRpdGxlIGZ3LXNlbWlib2xkXCI+e3tpc3N1ZS5uYW1lfX08L3NwYW4+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3VuZGVkLTMgYm9yZGVyIGJvcmRlci1ncmF5IGJvcmRlci0xIG10LTVcIj5cclxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cIiFsb2FkaW5nICYmICFub0RhdGFcIiBjbGFzcz1cInJvdyBwLTVcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtc20tNlwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGRhdGEgb2Ygc3RvcmVUaWNrZXQ7bGV0IGluZGV4ID0gaW5kZXhcIiBjbGFzcz1cImlzc3VlY2FyZCB3LTEwMCBtYi00IGN1cnNvci1wb2ludGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIlNob3dUaWNrZXQoaW5kZXgsZGF0YT8udGlja2V0SWQpXCIgW25nQ2xhc3NdPVwic2VsZWN0Q2FyZCA9PSBpbmRleCA/ICdhY3RpdmUnIDogJydcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1haW5jYXJkLWxhYmVsIGZ3LWJvbGQgZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIG1iLTVcIj48c3Bhbj4gPGltZ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcmM9Jy4vYXNzZXRzL3RhbmdvL0ltYWdlcy90aWNrZXQuc3ZnJz4ge3tkYXRhPy50aWNrZXRJZH19PC9zcGFuPiA8c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYmFkZ2UgdGV4dC1zdWNjZXNzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJkYXRhLnN0YXR1cyA9PSAnY2xvc2VkJyA/ICdiYWRnZS1saWdodC1zdWNjZXNzJyA6KGRhdGEuc3RhdHVzID09ICdpbnByb2dyZXNzJyA/ICdiYWRnZS1saWdodC1wcmltYXJ5JzonYmFkZ2UtbGlnaHQtd2FybmluZycpXCI+e3tkYXRhLnN0YXR1c319PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImRhdGEuaXNzdWVTdGF0dXMgPT09ICdub3RpZGVudGlmaWVkJ1wiIGNsYXNzPVwibWItNSBjb250ZW50dGV4dFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgV2UgaGF2ZSBub3QgcmVjZWl2ZWQgZGF0YSBmcm9tIHlvdXIgc3RvcmUuIFdlIGFyZSBjdXJyZW50bHkgaW52ZXN0aWdhdGluZyB0aGUgaXNzdWUuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiZGF0YS5pc3N1ZVN0YXR1cyA9PT0naWRlbnRpZmllZCdcIiBjbGFzcz1cIm1iLTUgY29udGVudHRleHRcIj5TdG9yZSBpcyBjdXJyZW50bHlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuY291bnRlcmluZyBhIDxzcGFuIGNsYXNzPVwiZnctYm9sZC03MDBcIj57e2RhdGEucHJpbWFyeUlzc3VlfX08L3NwYW4+IHdoaWNoIGlzXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdGb3I9XCJsZXQgc2Vjb25kYXJ5IG9mIGRhdGEuc2Vjb25kYXJ5SXNzdWU7IGxldCBsYXN0ID0gbGFzdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmdy1ib2xkLTcwMFwiPnt7c2Vjb25kYXJ5Py5uYW1lfX08bmctY29udGFpbmVyICpuZ0lmPVwiIWxhc3RcIj4gLDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPi5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHJvZmlsZSBkLWZsZXggYWxpZ24taXRlbXMtY2VudHJlIGp1c3RpZnktY29udGVudC1jZW50cmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwiXCIgc3JjPVwiLi9hc3NldHMvdGFuZ28vSW1hZ2VzL2dyb3Btb2RhbC5wbmdcIiBhbHQ9XCJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY29udGVudHRleHQgcHgtM1wiPjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMTZcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMTZcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xNCAxMEMxNCAxMC4zNTM2IDEzLjg1OTUgMTAuNjkyOCAxMy42MDk1IDEwLjk0MjhDMTMuMzU5NCAxMS4xOTI5IDEzLjAyMDMgMTEuMzMzMyAxMi42NjY3IDExLjMzMzNINC42NjY2N0wyIDE0VjMuMzMzMzNDMiAyLjk3OTcxIDIuMTQwNDggMi42NDA1NyAyLjM5MDUyIDIuMzkwNTJDMi42NDA1NyAyLjE0MDQ4IDIuOTc5NzEgMiAzLjMzMzMzIDJIMTIuNjY2N0MxMy4wMjAzIDIgMTMuMzU5NCAyLjE0MDQ4IDEzLjYwOTUgMi4zOTA1MkMxMy44NTk1IDIuNjQwNTcgMTQgMi45Nzk3MSAxNCAzLjMzMzMzVjEwWlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjEuNVwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+IHt7ZGF0YS5jb21tZW50c319IDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNvbnRlbnR0ZXh0IHB4LTNcIj48c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjE2XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjE2XCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTAuNjY2NyAxLjMzMzk4VjQuMDAwNjVNNS4zMzMzMyAxLjMzMzk4VjQuMDAwNjVNMiA2LjY2NzMySDE0TTMuMzMzMzMgMi42NjczMkgxMi42NjY3QzEzLjQwMyAyLjY2NzMyIDE0IDMuMjY0MjcgMTQgNC4wMDA2NVYxMy4zMzRDMTQgMTQuMDcwNCAxMy40MDMgMTQuNjY3MyAxMi42NjY3IDE0LjY2NzNIMy4zMzMzM0MyLjU5Njk1IDE0LjY2NzMgMiAxNC4wNzA0IDIgMTMuMzM0VjQuMDAwNjVDMiAzLjI2NDI3IDIuNTk2OTUgMi42NjczMiAzLjMzMzMzIDIuNjY3MzJaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMS41XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz4ge3tkYXRhLkRhdGV9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1zbS02XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1haW5jYXJkLWxhYmVsIGZ3LWJvbGQgZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPjxpbWcgc3JjPScuL2Fzc2V0cy90YW5nby9JbWFnZXMvdGlja2V0LnN2Zyc+e3t0aWNrZXRJbmZvPy50aWNrZXRJZH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImJhZGdlIGJhZGdlLWxpZ2h0LXByaW1hcnlcIj57e3RpY2tldEluZm8/LnN0YXR1c319PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IG9iaiBvZiB2aWV3VGlja2V0RGF0YTtsZXQgaT1pbmRleFwiIGNsYXNzPVwiXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSBVc2VyIGNvZGUgc3RhcnQgIC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJvYmouYWN0aW9uQnkgPT09ICdVc2VyJ1wiIGNsYXNzPVwiZC1mbGV4ICBtcy01XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwib2JqLmFjdGlvblR5cGUgIT09J3N0YXR1c0NoYW5nZSdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uIGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyIHBlLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRyZSBqdXN0aWZ5LWNvbnRlbnQtY2VudHJlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJtc2dwcm9maWxlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyYz0naHR0cHM6Ly9pbWFnZXMudW5zcGxhc2guY29tL3Bob3RvLTE0NDE5ODYzMDA5MTctNjQ2NzRiZDYwMGQ4P3c9NTAwJmF1dG89Zm9ybWF0JmZpdD1jcm9wJnE9NjAmaXhsaWI9cmItNC4wLjMmaXhpZD1NM3d4TWpBM2ZEQjhNSHh6WldGeVkyaDhNbng4YzNSdmNtVjhaVzU4TUh4OE1IeDhmREElM0QnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwLTAgaC0xMDAgbXQtMyBib3JkZXIgYm9yZGVyLTEgYm9yZGVyLWdyYXlcIiBzdHlsZT1cIndpZHRoOjBweFwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHktM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJvYmouYWN0aW9uVHlwZSAhPT0nc3RhdHVzQ2hhbmdlJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IG1iLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaGVhZGluZ3RleHQgZnctYm9sZFwiPnt7b2JqPy5hY3Rpb25CeX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0aW1pbmd0ZXh0IHB4LTMgcHQtMSBmdy1ib2xkLTQwMFwiPnt7b2JqPy50aW1lU3RhbXB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicHJvZmlsZS1sYWJlbCBmb250LWJvbGQtNDAwXCI+VXNlciBoYXMgcmVwbGllZDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwib2JqLmFjdGlvblR5cGUgPT0gJ3N0YXR1c0NoZWNrUmVwbHknXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0dXBkYXRlcyBmdy1ib2xkLTQwMCBtdC0zXCI+SXNzdWUgaGFzIGJlZW4gPGI+PHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJvYmouc3RhdHVzQ2hlY2tSZXBseT09J05vJ1wiPm5vdDwvc3Bhbj4gcmVzb2x2ZWQuPC9iPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0dXBkYXRlcyBmdy1ib2xkLTQwMFwiICpuZ0lmPVwib2JqLnN0YXR1c0NoZWNrUmVwbHk9PSdObydcIj4gSXQgdGFrZXNcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7b2JqPy5oaWJlcm5hdGlvbkRheXN9fSBtb3JlIGRheXMgdG8gcmVzb2x2ZS48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiXCIgY2xhc3M9XCJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJpbnZlc3RpZ2F0aW9uIGZ3LWJvbGQtNDAwXCI+QXJlIGFsbCBDQ1RWIGNhbWVyYXMgZnVuY3Rpb25pbmdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb3Blcmx5Pzwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1zbS00XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJcIj5DYW1lcmEgMTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRyZSBqdXN0aWZ5LWNvbnRlbnQtY2VudHJlIHJvdW5kZWQtMyBvdmVyZmxvdy1oaWRkZW5cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBjbGFzcz1cInctMTAwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyYz0naHR0cHM6Ly9pbWFnZXMudW5zcGxhc2guY29tL3Bob3RvLTE0NDE5ODYzMDA5MTctNjQ2NzRiZDYwMGQ4P3c9NTAwJmF1dG89Zm9ybWF0JmZpdD1jcm9wJnE9NjAmaXhsaWI9cmItNC4wLjMmaXhpZD1NM3d4TWpBM2ZEQjhNSHh6WldGeVkyaDhNbng4YzNSdmNtVjhaVzU4TUh4OE1IeDhmREElM0QnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXNtLTRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIlwiPkNhbWVyYSAyPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudHJlIGp1c3RpZnktY29udGVudC1jZW50cmUgcm91bmRlZC0zIG92ZXJmbG93LWhpZGRlblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwidy0xMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3JjPSdodHRwczovL2ltYWdlcy51bnNwbGFzaC5jb20vcGhvdG8tMTQ0MTk4NjMwMDkxNy02NDY3NGJkNjAwZDg/dz01MDAmYXV0bz1mb3JtYXQmZml0PWNyb3AmcT02MCZpeGxpYj1yYi00LjAuMyZpeGlkPU0zd3hNakEzZkRCOE1IeHpaV0Z5WTJoOE1ueDhjM1J2Y21WOFpXNThNSHg4TUh4OGZEQSUzRCc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtc20tNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiXCI+Q2FtZXJhIDM8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50cmUganVzdGlmeS1jb250ZW50LWNlbnRyZSByb3VuZGVkLTMgb3ZlcmZsb3ctaGlkZGVuXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJ3LTEwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcmM9J2h0dHBzOi8vaW1hZ2VzLnVuc3BsYXNoLmNvbS9waG90by0xNDQxOTg2MzAwOTE3LTY0Njc0YmQ2MDBkOD93PTUwMCZhdXRvPWZvcm1hdCZmaXQ9Y3JvcCZxPTYwJml4bGliPXJiLTQuMC4zJml4aWQ9TTN3eE1qQTNmREI4TUh4elpXRnlZMmg4TW54OGMzUnZjbVY4Wlc1OE1IeDhNSHg4ZkRBJTNEJz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHR1cGRhdGVzIGZ3LWJvbGQtNDAwIG10LTVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRoZSBhYm92ZSBjYW1lcmEgc3RyZWFtaW5nIGFyZSBub3Qgd29ya2luZyBkdWUgPHNwYW4gY2xhc3M9XCJmdy1ib2xkLTcwMFwiPnBvd2VyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNzdWU8L3NwYW4+IHRvIHRoZSBjYW1lcmEuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJvYmouYWN0aW9uVHlwZSA9PT0naXNzdWVVcGRhdGUnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IHJlcyBvZiBvYmo/LnJlYXNvbnNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0dXBkYXRlcyBmdy1zZW1pYm9sZCBtdC0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2UncmUgY3VycmVudGx5IGVuY291bnRlcmluZyBhbiA8c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZ3LWJvbGQtNzAwXCI+e3tyZXMucHJpbWFyeUlzc3VlfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtdC0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJpbnZlc3RpZ2F0aW9uIGZ3LWJvbGQtNDAwXCI+VGhlIGZvbGxvd2luZyBhcmUgdGhlIHJlbGV2YW50XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2JsZW1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFjaW5nPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz1cInRpbWluZ3RleHQgZnctYm9sZC00MDAgbXQtM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBzZWNJc3N1ZXMgb2YgcmVzPy5zZWNvbmRhcnlJc3N1ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+e3tzZWNJc3N1ZXMubmFtZX19PC9saT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwic2VsZWN0ZWRJc3N1ZSA9PT0gJydcIiBjbGFzcz1cInByb2ZpbGUtbGFiZWwgZnctc2VtaWJvbGQgbXQtMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBLaW5kbHkgY2hvb3NlIHRoZSBvcHRpb24gYmVsb3cgdGhhdCBjb3JyZXNwb25kcyB0byB0aGUgaXNzdWUgeW91IGFyZSBleHBlcmllbmNpbmcgaW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0b3JlLlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8IS0tIFVzZXIgY29kZSBlbmQgLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gVGFuZ28gY29kZSBzdGFydCAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIm9iai5hY3Rpb25CeSA9PT0gJ1RhbmdvJ1wiIGNsYXNzPVwiZC1mbGV4IG1iLTUgIG1zLTVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZmxleC1jb2x1bW4ganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXIgcGUtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudHJlIGp1c3RpZnktY29udGVudC1jZW50cmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBjbGFzcz1cIm1zZ3Byb2ZpbGVcIiBzcmM9XCIuL2Fzc2V0cy90YW5nby9JbWFnZXMvdGFuZ29wcm9maWxlLnBuZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwLTAgaC0xMDAgbXQtMyBib3JkZXIgYm9yZGVyLTEgYm9yZGVyLWdyYXlcIiBzdHlsZT1cIndpZHRoOjBweFwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHktM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggbWItM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImhlYWRpbmd0ZXh0IGZ3LWJvbGRcIj57e29iaj8uYWN0aW9uQnl9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0aW1pbmd0ZXh0IGZ3LWJvbGQtNDAwIHB4LTMgcHQtMVwiPnt7b2JqPy50aW1lU3RhbXB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInByb2ZpbGUtbGFiZWwgZnctYm9sZC00MDBcIj50YW5nbyBoYXMgcmVwbGllZCB0byB0aGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzc3VlPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwib2JqLmFjdGlvblR5cGUgPT0gJ2RhdGFSZWNpdmVkJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHR1cGRhdGVzIGZ3LWJvbGQtNDAwIG10LTNcIj5EYXRhIFJlY2VpdmVkXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJvYmouYWN0aW9uVHlwZSA9PSAnc3RhdHVzQ2hlY2tNb25pdG9yJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHR1cGRhdGVzIGZ3LWJvbGQtNDAwIG10LTNcIj5UaGFuayB5b3UgZm9yIHRoZSB1cGRhdGUuIFdl4oCZbGwgZ2V0IGJhY2sgYWZ0ZXIgdGhlIGJ1ZmZlciB0aW1lIHlvdSBwcm92aWRlZC5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIm9iai5hY3Rpb25UeXBlID09PSdzdGVwc1RvUmVzb2x2ZSdcIiBjbGFzcz1cIm10LTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dHVwZGF0ZXMgZnctYm9sZC00MDBcIj5QbGVhc2UgZm9sbG93IHRoZSBiZWxvdyBzdGVwcyB0byByZXNvbHZlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlIGFib3ZlIGlzc3VlPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgcmVzIG9mIG9iaj8ucmVhc29uc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtdC01XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaGVhZGluZ3RleHQgZnctc2VtaWJvbGRcIj57e3Jlcy5wcmltYXJ5SXNzdWV9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPVwibXQtMyB0aW1pbmd0ZXh0IGZ3LWJvbGQtNDAwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBzZWNJc3N1ZXMgb2YgcmVzPy5zZWNvbmRhcnlJc3N1ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPnt7c2VjSXNzdWVzLm5hbWV9fTwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gZGVmYXVsdEluZnJhIHN0YXJ0IC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJvYmouYWN0aW9uVHlwZSA9PT0nZGVmYXVsdEluZnJhJ1wiIGNsYXNzPVwiY29udGVudHRleHQgZnctYm9sZC00MDBcIj5XZSBoYXZlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vdFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWNlaXZlZCBkYXRhIGZyb20geW91ciBzdG9yZS4gV2UgYXJlIGN1cnJlbnRseSBpbnZlc3RpZ2F0aW5nIHRoZSBpc3N1ZTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gZGVmYXVsdEluZnJhIGVuZCAtLT5cclxuXHJcblxyXG5cclxuXHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8IS0tIFRhbmdvIGNvZGUgZW5kIC0tPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibG9hZGluZ1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IGxvYWRlciAgZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2hpbW1lclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSB0aXRsZVwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgbGlua1wiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgZGVzY3JpcHRpb25cIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNoaW1tZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwid3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgdGl0bGVcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIGxpbmtcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIGRlc2NyaXB0aW9uXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJub0RhdGFcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy0xMiBtYi0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keSBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXIgZmxleC1jb2x1bW5cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBjbGFzcz1cImltZy1zcmNcIiBzcmM9XCIuL2Fzc2V0cy90YW5nby9JY29ucy9Ob2RhdGEuc3ZnXCIgYWx0PVwiXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgPC9kaXY+Il19