tango-app-ui-ticket-user 3.0.6-dev → 3.0.7-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.
- package/esm2022/lib/components/contact-details/contact-details.component.mjs +3 -3
- package/esm2022/lib/components/edge-cameraview/edge-cameraview.component.mjs +16 -12
- package/esm2022/lib/components/edgeapp-log/edgeapp-log.component.mjs +15 -9
- package/esm2022/lib/components/edit-details/edit-details.component.mjs +5 -5
- package/esm2022/lib/components/installation/installation.component.mjs +6 -3
- package/esm2022/lib/components/store-activity/store-activity.component.mjs +3 -3
- package/esm2022/lib/components/store-info/store-info.component.mjs +3 -3
- package/esm2022/lib/components/tickets/tickets.component.mjs +20 -14
- package/fesm2022/tango-app-ui-ticket-user.mjs +65 -47
- package/fesm2022/tango-app-ui-ticket-user.mjs.map +1 -1
- package/lib/components/edgeapp-log/edgeapp-log.component.d.ts +4 -1
- package/lib/components/installation/installation.component.d.ts +1 -0
- package/lib/components/tickets/tickets.component.d.ts +1 -0
- package/package.json +1 -1
|
@@ -109,15 +109,15 @@ export class ContactDetailsComponent {
|
|
|
109
109
|
this.toast.getErrorToast('Contact has been Deleted Successfully');
|
|
110
110
|
}
|
|
111
111
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: ContactDetailsComponent, deps: [{ token: i1.NgbModal }, { token: i1.NgbActiveModal }, { token: i2.TicketsService }, { token: i0.ChangeDetectorRef }, { token: i3.ToastService }, { token: i4.GlobalStateService }], target: i0.ɵɵFactoryTarget.Component });
|
|
112
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.8", type: ContactDetailsComponent, selector: "lib-contact-details", inputs: { value: "value" }, viewQueries: [{ propertyName: "confirmationModal", first: true, predicate: ["confirmationModal"], descendants: true }], ngImport: i0, template: "<div class=\"card p-0\">\r\n <div class=\"card-header border-0 pt-3\">\r\n <h3 class=\"card-title align-items-start flex-column\">\r\n <span class=\"card-label header mb-2\">{{value?.storeName ? value?.storeName:'--'}} Contacts</span>\r\n <span class=\"sub-header mb-2\">{{spocDetials?.length ? spocDetials?.length : 0 }} contacts </span>\r\n </h3>\r\n <div class=\"card-toolbar\">\r\n <div class=\"d-flex\">\r\n <div class=\"d-flex align-items-center position-relative my-1\"> \r\n <button *ngIf=\"(gs.userAccess | async)?.manage_tickets_isEdit\" type=\"button\" (click)=\"addContact()\"\r\n class=\"btn btn-default mx-2 btn-outline btn-outline-default rounded-3 text-nowrap border-val py-2 px-10\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path d=\"M9.99935 4.16669V15.8334M4.16602 10H15.8327\" stroke=\"#667085\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg><span class=\"ms-2\">Add</span> </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"card-body pt-0 mh-60vh\">\r\n <div class=\"d-flex justify-content-between align-items-center pt-5\" *ngFor=\"let obj of spocDetials;let i=index;\">\r\n <div class=\"d-flex\">\r\n <div class=\" position-relative\">\r\n <div class=\"d-flex align-items-centre msgprofile justify-content-centre\">\r\n <img class=\"\" src
|
|
112
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.8", type: ContactDetailsComponent, selector: "lib-contact-details", inputs: { value: "value" }, viewQueries: [{ propertyName: "confirmationModal", first: true, predicate: ["confirmationModal"], descendants: true }], ngImport: i0, template: "<div class=\"card p-0\">\r\n <div class=\"card-header border-0 pt-3\">\r\n <h3 class=\"card-title align-items-start flex-column\">\r\n <span class=\"card-label header mb-2\">{{value?.storeName ? value?.storeName:'--'}} Contacts</span>\r\n <span class=\"sub-header mb-2\">{{spocDetials?.length ? spocDetials?.length : 0 }} contacts </span>\r\n </h3>\r\n <div class=\"card-toolbar\">\r\n <div class=\"d-flex\">\r\n <div class=\"d-flex align-items-center position-relative my-1\"> \r\n <button *ngIf=\"(gs.userAccess | async)?.manage_tickets_isEdit\" type=\"button\" (click)=\"addContact()\"\r\n class=\"btn btn-default mx-2 btn-outline btn-outline-default rounded-3 text-nowrap border-val py-2 px-10\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path d=\"M9.99935 4.16669V15.8334M4.16602 10H15.8327\" stroke=\"#667085\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg><span class=\"ms-2\">Add</span> </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"card-body pt-0 mh-60vh\">\r\n <div class=\"d-flex justify-content-between align-items-center pt-5\" *ngFor=\"let obj of spocDetials;let i=index;\">\r\n <div class=\"d-flex\">\r\n <div class=\" position-relative\">\r\n <div class=\"d-flex align-items-centre msgprofile justify-content-centre\">\r\n <img class=\"\" src=\"./assets/tango/Images/userProfile.svg\">\r\n </div>\r\n <!-- <input class=\"bg-primary position-absolute bottom-0 end-0 w-10px h-10px rounded-4 border border-none\" type=\"fill\"> -->\r\n </div>\r\n <div class=\"d-grid mx-3\">\r\n <span class=\"headingtext fw-bold-600\"> {{obj?.spocName ?obj?.spocName:'--'}} </span>\r\n <span class=\"sub-header ellipse fw-bold-400\">{{obj?.spocEmail ? obj?.spocEmail:'--'}}</span>\r\n </div>\r\n </div>\r\n <div class=\"contact fw-semibold\">\r\n <span>{{obj?.spocNumber ? obj?.spocNumber:'--'}}</span>\r\n </div>\r\n <div class=\"d-flex justify-content-between\">\r\n <span *ngIf=\"(gs.userAccess | async)?.manage_tickets_isEdit\" (click)=\"editOpen(obj)\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_4023_60762)\">\r\n <path d=\"M9.16602 3.33332H3.33268C2.89065 3.33332 2.46673 3.50891 2.15417 3.82147C1.84161 4.13403 1.66602 4.55796 1.66602 4.99999V16.6667C1.66602 17.1087 1.84161 17.5326 2.15417 17.8452C2.46673 18.1577 2.89065 18.3333 3.33268 18.3333H14.9993C15.4414 18.3333 15.8653 18.1577 16.1779 17.8452C16.4904 17.5326 16.666 17.1087 16.666 16.6667V10.8333M15.416 2.08332C15.7475 1.7518 16.1972 1.56555 16.666 1.56555C17.1349 1.56555 17.5845 1.7518 17.916 2.08332C18.2475 2.41484 18.4338 2.86448 18.4338 3.33332C18.4338 3.80216 18.2475 4.2518 17.916 4.58332L9.99935 12.5L6.66602 13.3333L7.49935 9.99999L15.416 2.08332Z\" stroke=\"#667085\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_4023_60762\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\"/>\r\n </clipPath>\r\n </defs>\r\n </svg></span>\r\n <div *ngIf=\"(gs.userAccess | async)?.manage_tickets_isDelete\" (click)=\"deleteContact(obj)\" class=\"ms-5\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path d=\"M2.5 5.00002H4.16667M4.16667 5.00002H17.5M4.16667 5.00002V16.6667C4.16667 17.1087 4.34226 17.5326 4.65482 17.8452C4.96738 18.1578 5.39131 18.3334 5.83333 18.3334H14.1667C14.6087 18.3334 15.0326 18.1578 15.3452 17.8452C15.6577 17.5326 15.8333 17.1087 15.8333 16.6667V5.00002H4.16667ZM6.66667 5.00002V3.33335C6.66667 2.89133 6.84226 2.4674 7.15482 2.15484C7.46738 1.84228 7.89131 1.66669 8.33333 1.66669H11.6667C12.1087 1.66669 12.5326 1.84228 12.8452 2.15484C13.1577 2.4674 13.3333 2.89133 13.3333 3.33335V5.00002\" stroke=\"#667085\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg></div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"card-body pt-0\">\r\n <button (click)=\"accept()\" class=\"btn btn-default btn-primary mt-5 w-100\">\r\n Okay\r\n </button>\r\n </div>\r\n</div>\r\n\r\n<ng-template #confirmationModal let-modal>\r\n <div class=\"p-8\">\r\n <div class=\"\">\r\n <img src=\"./assets/tango/Images/dangerIcon.png\">\r\n </div>\r\n <div class=\" mt-5\">\r\n <span class=\"header fw-bold-600\">Are you ready sure?</span>\r\n <div class=\"mt-3 sub-header fw-bold-400\">Are you sure you want to delete the user globally?</div>\r\n </div>\r\n <div class=\"d-flex justify-content-between mt-10\">\r\n <button type=\"button\" class=\"btn btn-default btn-outline w-50 me-2\" (click)=\"modal.dismiss()\">Cancel</button>\r\n <button type=\"button\" class=\"btn btn-danger w-50 ms-2\" (click)=\"closeModal(); modal.close()\">Delete</button>\r\n </div>\r\n </div>\r\n </ng-template>", styles: [".header{color:var(--Gray-900, #101828)!important;font-size:18px!important;line-height:28px!important}.sub-header{color:var(--Gray-500, #667085)!important;font-size:14px!important;line-height:20px}.contact{color:var(--Gray-500, #667085)!important;font-size:12px!important;line-height:18px}.fw-bold-400{font-weight:400!important}.fw-bold-600{font-weight:600!important}.msgprofile{width:40px!important;height:40px!important;border-radius:200px;overflow:hidden}.swal2-popup.swal2-toast.swal2-show,.swal2-toast{background-color:#0ff!important;border-left:2px solid red!important}.mh-60vh{max-height:60vh!important;overflow:auto!important}.ellipse{width:50px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}\n"], dependencies: [{ kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }] });
|
|
113
113
|
}
|
|
114
114
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: ContactDetailsComponent, decorators: [{
|
|
115
115
|
type: Component,
|
|
116
|
-
args: [{ selector: 'lib-contact-details', template: "<div class=\"card p-0\">\r\n <div class=\"card-header border-0 pt-3\">\r\n <h3 class=\"card-title align-items-start flex-column\">\r\n <span class=\"card-label header mb-2\">{{value?.storeName ? value?.storeName:'--'}} Contacts</span>\r\n <span class=\"sub-header mb-2\">{{spocDetials?.length ? spocDetials?.length : 0 }} contacts </span>\r\n </h3>\r\n <div class=\"card-toolbar\">\r\n <div class=\"d-flex\">\r\n <div class=\"d-flex align-items-center position-relative my-1\"> \r\n <button *ngIf=\"(gs.userAccess | async)?.manage_tickets_isEdit\" type=\"button\" (click)=\"addContact()\"\r\n class=\"btn btn-default mx-2 btn-outline btn-outline-default rounded-3 text-nowrap border-val py-2 px-10\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path d=\"M9.99935 4.16669V15.8334M4.16602 10H15.8327\" stroke=\"#667085\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg><span class=\"ms-2\">Add</span> </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"card-body pt-0 mh-60vh\">\r\n <div class=\"d-flex justify-content-between align-items-center pt-5\" *ngFor=\"let obj of spocDetials;let i=index;\">\r\n <div class=\"d-flex\">\r\n <div class=\" position-relative\">\r\n <div class=\"d-flex align-items-centre msgprofile justify-content-centre\">\r\n <img class=\"\" src
|
|
116
|
+
args: [{ selector: 'lib-contact-details', template: "<div class=\"card p-0\">\r\n <div class=\"card-header border-0 pt-3\">\r\n <h3 class=\"card-title align-items-start flex-column\">\r\n <span class=\"card-label header mb-2\">{{value?.storeName ? value?.storeName:'--'}} Contacts</span>\r\n <span class=\"sub-header mb-2\">{{spocDetials?.length ? spocDetials?.length : 0 }} contacts </span>\r\n </h3>\r\n <div class=\"card-toolbar\">\r\n <div class=\"d-flex\">\r\n <div class=\"d-flex align-items-center position-relative my-1\"> \r\n <button *ngIf=\"(gs.userAccess | async)?.manage_tickets_isEdit\" type=\"button\" (click)=\"addContact()\"\r\n class=\"btn btn-default mx-2 btn-outline btn-outline-default rounded-3 text-nowrap border-val py-2 px-10\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path d=\"M9.99935 4.16669V15.8334M4.16602 10H15.8327\" stroke=\"#667085\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg><span class=\"ms-2\">Add</span> </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"card-body pt-0 mh-60vh\">\r\n <div class=\"d-flex justify-content-between align-items-center pt-5\" *ngFor=\"let obj of spocDetials;let i=index;\">\r\n <div class=\"d-flex\">\r\n <div class=\" position-relative\">\r\n <div class=\"d-flex align-items-centre msgprofile justify-content-centre\">\r\n <img class=\"\" src=\"./assets/tango/Images/userProfile.svg\">\r\n </div>\r\n <!-- <input class=\"bg-primary position-absolute bottom-0 end-0 w-10px h-10px rounded-4 border border-none\" type=\"fill\"> -->\r\n </div>\r\n <div class=\"d-grid mx-3\">\r\n <span class=\"headingtext fw-bold-600\"> {{obj?.spocName ?obj?.spocName:'--'}} </span>\r\n <span class=\"sub-header ellipse fw-bold-400\">{{obj?.spocEmail ? obj?.spocEmail:'--'}}</span>\r\n </div>\r\n </div>\r\n <div class=\"contact fw-semibold\">\r\n <span>{{obj?.spocNumber ? obj?.spocNumber:'--'}}</span>\r\n </div>\r\n <div class=\"d-flex justify-content-between\">\r\n <span *ngIf=\"(gs.userAccess | async)?.manage_tickets_isEdit\" (click)=\"editOpen(obj)\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_4023_60762)\">\r\n <path d=\"M9.16602 3.33332H3.33268C2.89065 3.33332 2.46673 3.50891 2.15417 3.82147C1.84161 4.13403 1.66602 4.55796 1.66602 4.99999V16.6667C1.66602 17.1087 1.84161 17.5326 2.15417 17.8452C2.46673 18.1577 2.89065 18.3333 3.33268 18.3333H14.9993C15.4414 18.3333 15.8653 18.1577 16.1779 17.8452C16.4904 17.5326 16.666 17.1087 16.666 16.6667V10.8333M15.416 2.08332C15.7475 1.7518 16.1972 1.56555 16.666 1.56555C17.1349 1.56555 17.5845 1.7518 17.916 2.08332C18.2475 2.41484 18.4338 2.86448 18.4338 3.33332C18.4338 3.80216 18.2475 4.2518 17.916 4.58332L9.99935 12.5L6.66602 13.3333L7.49935 9.99999L15.416 2.08332Z\" stroke=\"#667085\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_4023_60762\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\"/>\r\n </clipPath>\r\n </defs>\r\n </svg></span>\r\n <div *ngIf=\"(gs.userAccess | async)?.manage_tickets_isDelete\" (click)=\"deleteContact(obj)\" class=\"ms-5\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path d=\"M2.5 5.00002H4.16667M4.16667 5.00002H17.5M4.16667 5.00002V16.6667C4.16667 17.1087 4.34226 17.5326 4.65482 17.8452C4.96738 18.1578 5.39131 18.3334 5.83333 18.3334H14.1667C14.6087 18.3334 15.0326 18.1578 15.3452 17.8452C15.6577 17.5326 15.8333 17.1087 15.8333 16.6667V5.00002H4.16667ZM6.66667 5.00002V3.33335C6.66667 2.89133 6.84226 2.4674 7.15482 2.15484C7.46738 1.84228 7.89131 1.66669 8.33333 1.66669H11.6667C12.1087 1.66669 12.5326 1.84228 12.8452 2.15484C13.1577 2.4674 13.3333 2.89133 13.3333 3.33335V5.00002\" stroke=\"#667085\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg></div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"card-body pt-0\">\r\n <button (click)=\"accept()\" class=\"btn btn-default btn-primary mt-5 w-100\">\r\n Okay\r\n </button>\r\n </div>\r\n</div>\r\n\r\n<ng-template #confirmationModal let-modal>\r\n <div class=\"p-8\">\r\n <div class=\"\">\r\n <img src=\"./assets/tango/Images/dangerIcon.png\">\r\n </div>\r\n <div class=\" mt-5\">\r\n <span class=\"header fw-bold-600\">Are you ready sure?</span>\r\n <div class=\"mt-3 sub-header fw-bold-400\">Are you sure you want to delete the user globally?</div>\r\n </div>\r\n <div class=\"d-flex justify-content-between mt-10\">\r\n <button type=\"button\" class=\"btn btn-default btn-outline w-50 me-2\" (click)=\"modal.dismiss()\">Cancel</button>\r\n <button type=\"button\" class=\"btn btn-danger w-50 ms-2\" (click)=\"closeModal(); modal.close()\">Delete</button>\r\n </div>\r\n </div>\r\n </ng-template>", styles: [".header{color:var(--Gray-900, #101828)!important;font-size:18px!important;line-height:28px!important}.sub-header{color:var(--Gray-500, #667085)!important;font-size:14px!important;line-height:20px}.contact{color:var(--Gray-500, #667085)!important;font-size:12px!important;line-height:18px}.fw-bold-400{font-weight:400!important}.fw-bold-600{font-weight:600!important}.msgprofile{width:40px!important;height:40px!important;border-radius:200px;overflow:hidden}.swal2-popup.swal2-toast.swal2-show,.swal2-toast{background-color:#0ff!important;border-left:2px solid red!important}.mh-60vh{max-height:60vh!important;overflow:auto!important}.ellipse{width:50px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}\n"] }]
|
|
117
117
|
}], ctorParameters: () => [{ type: i1.NgbModal }, { type: i1.NgbActiveModal }, { type: i2.TicketsService }, { type: i0.ChangeDetectorRef }, { type: i3.ToastService }, { type: i4.GlobalStateService }], propDecorators: { confirmationModal: [{
|
|
118
118
|
type: ViewChild,
|
|
119
119
|
args: ['confirmationModal']
|
|
120
120
|
}], value: [{
|
|
121
121
|
type: Input
|
|
122
122
|
}] } });
|
|
123
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGFjdC1kZXRhaWxzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLXRpY2tldC11c2VyL3NyYy9saWIvY29tcG9uZW50cy9jb250YWN0LWRldGFpbHMvY29udGFjdC1kZXRhaWxzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLXRpY2tldC11c2VyL3NyYy9saWIvY29tcG9uZW50cy9jb250YWN0LWRldGFpbHMvY29udGFjdC1kZXRhaWxzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBcUIsU0FBUyxFQUFVLFNBQVMsRUFBQyxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdEYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7Ozs7Ozs7QUFXOUUsTUFBTSxPQUFPLHVCQUF1QjtJQVNoQjtJQUErQjtJQUN6QztJQUErQjtJQUE2QjtJQUEwQjtJQVI5RCxpQkFBaUIsQ0FBTTtJQUN2RCxRQUFRLENBQTBCO0lBQ2xDLFdBQVcsQ0FBTTtJQUNqQixLQUFLLEdBQUUsRUFBRSxDQUFDO0lBQ1YsTUFBTSxHQUFDLENBQUMsQ0FBQztJQUNBLEtBQUssQ0FBSztJQUVyQixZQUFvQixZQUFzQixFQUFTLFdBQTJCLEVBQ3BFLE9BQXNCLEVBQVMsRUFBb0IsRUFBUyxLQUFrQixFQUFRLEVBQXFCO1FBRGpHLGlCQUFZLEdBQVosWUFBWSxDQUFVO1FBQVMsZ0JBQVcsR0FBWCxXQUFXLENBQWdCO1FBQ3BFLFlBQU8sR0FBUCxPQUFPLENBQWU7UUFBUyxPQUFFLEdBQUYsRUFBRSxDQUFrQjtRQUFTLFVBQUssR0FBTCxLQUFLLENBQWE7UUFBUSxPQUFFLEdBQUYsRUFBRSxDQUFtQjtJQUVySCxDQUFDO0lBQ0QsUUFBUTtRQUNOLE9BQU8sQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFD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UmVmLCBDb21wb25lbnQsIE9uSW5pdCwgVmlld0NoaWxkLElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE5nYk1vZGFsLE5nYkFjdGl2ZU1vZGFsLE5nYk1vZGFsUmVmIH0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnO1xyXG5pbXBvcnQgeyBFZGl0RGV0YWlsc0NvbXBvbmVudCB9IGZyb20gJy4uL2VkaXQtZGV0YWlscy9lZGl0LWRldGFpbHMuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVGlja2V0c1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy90aWNrZXQtaW5mcmEuc2VydmljZSc7XHJcbmltcG9ydCB7IFRvYXN0U2VydmljZSB9IGZyb20gJ3RhbmdvLWFwcC11aS1zaGFyZWQnO1xyXG5pbXBvcnQgeyBHbG9iYWxTdGF0ZVNlcnZpY2UgfSBmcm9tICd0YW5nby1hcHAtdWktZ2xvYmFsJztcclxuXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1jb250YWN0LWRldGFpbHMnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jb250YWN0LWRldGFpbHMuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9jb250YWN0LWRldGFpbHMuY29tcG9uZW50LnNjc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDb250YWN0RGV0YWlsc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ2NvbmZpcm1hdGlvbk1vZGFsJykgY29uZmlybWF0aW9uTW9kYWw6IGFueTtcclxuICBtb2RhbFJlZjogTmdiTW9kYWxSZWYgfCB1bmRlZmluZWQ7XHJcbiAgc3BvY0RldGlhbHM6IGFueTtcclxuICBsaW1pdCA9MTA7XHJcbiAgb2Zmc2V0PTE7XHJcbiAgQElucHV0KCkgdmFsdWU6YW55O1xyXG5cclxuY29uc3RydWN0b3IocHJpdmF0ZSBtb2RhbFNlcnZpY2U6IE5nYk1vZGFsLHByaXZhdGUgYWN0aXZlTW9kYWw6IE5nYkFjdGl2ZU1vZGFsLFxyXG4gIHByaXZhdGUgc2VydmljZTpUaWNrZXRzU2VydmljZSxwcml2YXRlIGNkOkNoYW5nZURldGVjdG9yUmVmLHByaXZhdGUgdG9hc3Q6VG9hc3RTZXJ2aWNlLHB1YmxpYyBnczpHbG9iYWxTdGF0ZVNlcnZpY2Upe1xyXG5cclxufVxyXG5uZ09uSW5pdCgpOiB2b2lkIHtcclxuICBjb25zb2xlLmxvZygndmFsdWUnLHRoaXMudmFsdWUpXHJcbiAgdGhpcy5nZXRTcG9jTG9nKCk7XHJcbn1cclxuZ2V0U3BvY0xvZygpIHtcclxuICBsZXQgb2JqID17XHJcbiAgICAgIFwic3RvcmVJZFwiOiBbdGhpcy52YWx1ZS5zdG9yZUlkXSxcclxuICAgICAgXCJjbGllbnRJZFwiOiB0aGlzLnZhbHVlLmNsaWVudElkLFxyXG4gICAgICBcImxpbWl0XCI6IHRoaXMubGltaXQsXHJcbiAgICAgIFwib2Zmc2V0XCI6IHRoaXMub2Zmc2V0XHJcbiAgfVxyXG4gIHRoaXMuc2VydmljZS5nZXRTcG9jTG9nRGF0YShvYmopLnN1YnNjcmliZSh7XHJcbiAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLnNwb2NEZXRpYWxzID0gcmVzPy5kYXRhPy5kYXRhO1xyXG4gICAgICAgIGNvbnNvbGUubG9nKCd0aGlzLnNwb2NEZXRpYWxzJyx0aGlzLnNwb2NEZXRpYWxzKVxyXG4gICAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgfSxcclxuICAgIGVycm9yOiAoZXJyOiBhbnkpID0+IHtcclxuXHJcbiAgICB9LFxyXG4gIH0pO1xyXG59XHJcbmFjY2VwdCgpe1xyXG4gIHRoaXMuYWN0aXZlTW9kYWwuY2xvc2UoKTtcclxufVxyXG5cclxuYWRkQ29udGFjdCgpe1xyXG4gIGxldCBvYmogPSAge1xyXG4gICAgZWRpdCA6IGZhbHNlLFxyXG4gICAgaWQgOiB0aGlzLnZhbHVlLnN0b3JlSWRcclxuICB9XHJcbiAgY29uc3QgbW9kYWxSZWYgPSB0aGlzLm1vZGFsU2VydmljZS5vcGVuKEVkaXREZXRhaWxzQ29tcG9uZW50LHtcclxuICAgIGNlbnRlcmVkOnRydWUsc2l6ZTonbWQnXHJcbiAgfSlcclxuICBtb2RhbFJlZi5jb21wb25lbnRJbnN0YW5jZS5kYXRhID0gb2JqO1xyXG4gIG1vZGFsUmVmLnJlc3VsdC50aGVuKChyZXN1bHQpID0+IHtcclxuICAgIGlmIChyZXN1bHQpIHtcclxuICAgICAgaWYocmVzdWx0ID09ICdjbG9zZScpe1xyXG4gICAgICAgIHRoaXMuYWN0aXZlTW9kYWwuY2xvc2UoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH0pO1xyXG59XHJcblxyXG5cclxuZWRpdE9wZW4oZGF0YTphbnkpe1xyXG4gIGxldCBvYmogPSB7XHJcbiAgICBlZGl0IDogdHJ1ZSxcclxuICAgIHNwb2NJZDpkYXRhLnNwb2NJZCxcclxuICAgIGlkOmRhdGEuc3RvcmVJZCxcclxuICAgIG5hbWU6IGRhdGEuc3BvY05hbWUsXHJcbiAgICBlbWFpbDogZGF0YS5zcG9jRW1haWwsXHJcbiAgICBjb250YWN0OmRhdGEuc3BvY051bWJlcixcclxuICAgIGNvdW50cnk6ZGF0YS5zcG9jQ291bnRyeVxyXG4gIH1cclxuICBjb25zdCBtb2RhbFJlZiA9IHRoaXMubW9kYWxTZXJ2aWNlLm9wZW4oRWRpdERldGFpbHNDb21wb25lbnQseyBjZW50ZXJlZDp0cnVlLHNpemU6J21kJ30pO1xyXG4gIG1vZGFsUmVmLmNvbXBvbmVudEluc3RhbmNlLmRhdGEgPSBvYmo7XHJcbiAgbW9kYWxSZWYucmVzdWx0LnRoZW4oKHJlc3VsdCkgPT4ge1xyXG4gICAgaWYocmVzdWx0ID09ICdjbG9zZScpe1xyXG4gICAgICB0aGlzLmFjdGl2ZU1vZGFsLmNsb3NlKCk7XHJcbiAgICB9XHJcbiAgfSk7XHJcbn1cclxuXHJcbmRlbGV0ZUNvbnRhY3QoZGF0YTphbnkpe1xyXG4gIGNvbnN0IG1vZGFsUmVmID0gdGhpcy5tb2RhbFNlcnZpY2Uub3Blbih0aGlzLmNvbmZpcm1hdGlvbk1vZGFsLCB7IGNlbnRlcmVkOiB0cnVlIH0pO1xyXG4gIG1vZGFsUmVmLnJlc3VsdC50aGVuKChyZXN1bHQpID0+IHtcclxuICAgIHRoaXMuc2VydmljZS5kZWxldGVTcG9jKGRhdGEuc3RvcmVJZCx7c3BvY0lkIDogZGF0YS5zcG9jSWR9KS5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OihyZXM6YW55KT0+e1xyXG4gICAgICAgIGlmKHJlcyAmJiByZXMuY29kZSA9PSAyMDApe1xyXG4gICAgICAgICAgdGhpcy50b2FzdC5nZXRTdWNjZXNzVG9hc3QocmVzLm1lc3NhZ2UpXHJcbiAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICB0aGlzLnRvYXN0LmdldEVycm9yVG9hc3QocmVzLm1lc3NhZ2UpXHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICBlcnJvcjooZXJyKT0+IHtcclxuICAgICAgICB0aGlzLnRvYXN0LmdldEVycm9yVG9hc3QoZXJyLkVycm9yKVxyXG4gICAgICB9LFxyXG4gICAgfSlcclxuICB9KTtcclxufVxyXG5jbG9zZU1vZGFsKCl7XHJcbiAgdGhpcy5hY3RpdmVNb2RhbC5jbG9zZSgpO1xyXG4gIHRoaXMudG9hc3QuZ2V0RXJyb3JUb2FzdCgnQ29udGFjdCBoYXMgYmVlbiBEZWxldGVkIFN1Y2Nlc3NmdWxseScpXHJcblxyXG59XHJcblxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJjYXJkIHAtMFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImNhcmQtaGVhZGVyIGJvcmRlci0wIHB0LTNcIj5cclxuICAgICAgICA8aDMgY2xhc3M9XCJjYXJkLXRpdGxlIGFsaWduLWl0ZW1zLXN0YXJ0IGZsZXgtY29sdW1uXCI+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2FyZC1sYWJlbCBoZWFkZXIgbWItMlwiPnt7dmFsdWU/LnN0b3JlTmFtZSA/IHZhbHVlPy5zdG9yZU5hbWU6Jy0tJ319IENvbnRhY3RzPC9zcGFuPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN1Yi1oZWFkZXIgbWItMlwiPnt7c3BvY0RldGlhbHM/Lmxlbmd0aCA/IHNwb2NEZXRpYWxzPy5sZW5ndGggOiAwIH19IGNvbnRhY3RzIDwvc3Bhbj5cclxuICAgICAgICA8L2gzPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLXRvb2xiYXJcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgcG9zaXRpb24tcmVsYXRpdmUgbXktMVwiPiAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gKm5nSWY9XCIoZ3MudXNlckFjY2VzcyB8IGFzeW5jKT8ubWFuYWdlX3RpY2tldHNfaXNFZGl0XCIgdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJhZGRDb250YWN0KClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tZGVmYXVsdCBteC0yIGJ0bi1vdXRsaW5lIGJ0bi1vdXRsaW5lLWRlZmF1bHQgcm91bmRlZC0zIHRleHQtbm93cmFwIGJvcmRlci12YWwgcHktMiBweC0xMFwiPjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk05Ljk5OTM1IDQuMTY2NjlWMTUuODMzNE00LjE2NjAyIDEwSDE1LjgzMjdcIiBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMS42N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPjxzcGFuIGNsYXNzPVwibXMtMlwiPkFkZDwvc3Bhbj4gPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHkgcHQtMCBtaC02MHZoXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBhbGlnbi1pdGVtcy1jZW50ZXIgcHQtNVwiICpuZ0Zvcj1cImxldCBvYmogb2Ygc3BvY0RldGlhbHM7bGV0IGk9aW5kZXg7XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXhcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCIgcG9zaXRpb24tcmVsYXRpdmVcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRyZSBtc2dwcm9maWxlIGp1c3RpZnktY29udGVudC1jZW50cmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBjbGFzcz1cIlwiIHNyYz0naHR0cHM6Ly9pbWFnZXMudW5zcGxhc2guY29tL3Bob3RvLTE0NDE5ODYzMDA5MTctNjQ2NzRiZDYwMGQ4P3c9NTAwJmF1dG89Zm9ybWF0JmZpdD1jcm9wJnE9NjAmaXhsaWI9cmItNC4wLjMmaXhpZD1NM3d4TWpBM2ZEQjhNSHh6WldGeVkyaDhNbng4YzNSdmNtVjhaVzU4TUh4OE1IeDhmREElM0QnPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImJnLXByaW1hcnkgcG9zaXRpb24tYWJzb2x1dGUgYm90dG9tLTAgZW5kLTAgdy0xMHB4IGgtMTBweCByb3VuZGVkLTQgYm9yZGVyIGJvcmRlci1ub25lXCIgdHlwZT1cImZpbGxcIj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZ3JpZCBteC0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJoZWFkaW5ndGV4dCBmdy1ib2xkLTYwMFwiPiB7e29iaj8uc3BvY05hbWUgP29iaj8uc3BvY05hbWU6Jy0tJ319IDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN1Yi1oZWFkZXIgZnctYm9sZC00MDBcIj57e29iaj8uc3BvY0VtYWlsID8gb2JqPy5zcG9jRW1haWw6Jy0tJ319PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGFjdCBmdy1zZW1pYm9sZFwiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4+e3tvYmo/LnNwb2NOdW1iZXIgPyBvYmo/LnNwb2NOdW1iZXI6Jy0tJ319PC9zcGFuPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlblwiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCIoZ3MudXNlckFjY2VzcyB8IGFzeW5jKT8ubWFuYWdlX3RpY2tldHNfaXNFZGl0XCIgKGNsaWNrKT1cImVkaXRPcGVuKG9iailcIj48c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZyBjbGlwLXBhdGg9XCJ1cmwoI2NsaXAwXzQwMjNfNjA3NjIpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk05LjE2NjAyIDMuMzMzMzJIMy4zMzI2OEMyLjg5MDY1IDMuMzMzMzIgMi40NjY3MyAzLjUwODkxIDIuMTU0MTcgMy44MjE0N0MxLjg0MTYxIDQuMTM0MDMgMS42NjYwMiA0LjU1Nzk2IDEuNjY2MDIgNC45OTk5OVYxNi42NjY3QzEuNjY2MDIgMTcuMTA4NyAxLjg0MTYxIDE3LjUzMjYgMi4xNTQxNyAxNy44NDUyQzIuNDY2NzMgMTguMTU3NyAyLjg5MDY1IDE4LjMzMzMgMy4zMzI2OCAxOC4zMzMzSDE0Ljk5OTNDMTUuNDQxNCAxOC4zMzMzIDE1Ljg2NTMgMTguMTU3NyAxNi4xNzc5IDE3Ljg0NTJDMTYuNDkwNCAxNy41MzI2IDE2LjY2NiAxNy4xMDg3IDE2LjY2NiAxNi42NjY3VjEwLjgzMzNNMTUuNDE2IDIuMDgzMzJDMTUuNzQ3NSAxLjc1MTggMTYuMTk3MiAxLjU2NTU1IDE2LjY2NiAxLjU2NTU1QzE3LjEzNDkgMS41NjU1NSAxNy41ODQ1IDEuNzUxOCAxNy45MTYgMi4wODMzMkMxOC4yNDc1IDIuNDE0ODQgMTguNDMzOCAyLjg2NDQ4IDE4LjQzMzggMy4zMzMzMkMxOC40MzM4IDMuODAyMTYgMTguMjQ3NSA0LjI1MTggMTcuOTE2IDQuNTgzMzJMOS45OTkzNSAxMi41TDYuNjY2MDIgMTMuMzMzM0w3LjQ5OTM1IDkuOTk5OTlMMTUuNDE2IDIuMDgzMzJaXCIgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjEuNjY2NjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgIDxjbGlwUGF0aCBpZD1cImNsaXAwXzQwMjNfNjA3NjJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8cmVjdCB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiBmaWxsPVwid2hpdGVcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9jbGlwUGF0aD5cclxuICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zdmc+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIihncy51c2VyQWNjZXNzIHwgYXN5bmMpPy5tYW5hZ2VfdGlja2V0c19pc0RlbGV0ZVwiIChjbGljayk9XCJkZWxldGVDb250YWN0KG9iailcIiBjbGFzcz1cIm1zLTVcIj48c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTIuNSA1LjAwMDAySDQuMTY2NjdNNC4xNjY2NyA1LjAwMDAySDE3LjVNNC4xNjY2NyA1LjAwMDAyVjE2LjY2NjdDNC4xNjY2NyAxNy4xMDg3IDQuMzQyMjYgMTcuNTMyNiA0LjY1NDgyIDE3Ljg0NTJDNC45NjczOCAxOC4xNTc4IDUuMzkxMzEgMTguMzMzNCA1LjgzMzMzIDE4LjMzMzRIMTQuMTY2N0MxNC42MDg3IDE4LjMzMzQgMTUuMDMyNiAxOC4xNTc4IDE1LjM0NTIgMTcuODQ1MkMxNS42NTc3IDE3LjUzMjYgMTUuODMzMyAxNy4xMDg3IDE1LjgzMzMgMTYuNjY2N1Y1LjAwMDAySDQuMTY2NjdaTTYuNjY2NjcgNS4wMDAwMlYzLjMzMzM1QzYuNjY2NjcgMi44OTEzMyA2Ljg0MjI2IDIuNDY3NCA3LjE1NDgyIDIuMTU0ODRDNy40NjczOCAxLjg0MjI4IDcuODkxMzEgMS42NjY2OSA4LjMzMzMzIDEuNjY2NjlIMTEuNjY2N0MxMi4xMDg3IDEuNjY2NjkgMTIuNTMyNiAxLjg0MjI4IDEyLjg0NTIgMi4xNTQ4NEMxMy4xNTc3IDIuNDY3NCAxMy4zMzMzIDIuODkxMzMgMTMuMzMzMyAzLjMzMzM1VjUuMDAwMDJcIiBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMS42NjY2N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cclxuICAgICAgICAgICAgICAgICAgICA8L3N2Zz48L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHkgcHQtMFwiPlxyXG4gICAgICAgIDxidXR0b24gKGNsaWNrKT1cImFjY2VwdCgpXCIgY2xhc3M9XCJidG4gYnRuLWRlZmF1bHQgYnRuLXByaW1hcnkgbXQtNSB3LTEwMFwiPlxyXG4gICAgICAgICAgICBPa2F5XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+XHJcblxyXG48bmctdGVtcGxhdGUgI2NvbmZpcm1hdGlvbk1vZGFsIGxldC1tb2RhbD5cclxuICAgIDxkaXYgY2xhc3M9XCJwLThcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiXCI+XHJcbiAgICAgICAgICA8aW1nIHNyYz1cIi4vYXNzZXRzL3RhbmdvL0ltYWdlcy9kYW5nZXJJY29uLnBuZ1wiPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCIgbXQtNVwiPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImhlYWRlciBmdy1ib2xkLTYwMFwiPkFyZSB5b3UgcmVhZHkgc3VyZT88L3NwYW4+XHJcbiAgICAgICAgICAgPGRpdiBjbGFzcz1cIm10LTMgc3ViLWhlYWRlciBmdy1ib2xkLTQwMFwiPkFyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBkZWxldGUgdGhlIHVzZXIgZ2xvYmFsbHk/PC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBtdC0xMFwiPlxyXG4gICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLWRlZmF1bHQgYnRuLW91dGxpbmUgdy01MCBtZS0yXCIgKGNsaWNrKT1cIm1vZGFsLmRpc21pc3MoKVwiPkNhbmNlbDwvYnV0dG9uPlxyXG4gICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLWRhbmdlciB3LTUwIG1zLTJcIiAoY2xpY2spPVwiY2xvc2VNb2RhbCgpOyBtb2RhbC5jbG9zZSgpXCI+RGVsZXRlPC9idXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L25nLXRlbXBsYXRlPiJdfQ==
|
|
123
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGFjdC1kZXRhaWxzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLXRpY2tldC11c2VyL3NyYy9saWIvY29tcG9uZW50cy9jb250YWN0LWRldGFpbHMvY29udGFjdC1kZXRhaWxzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLXRpY2tldC11c2VyL3NyYy9saWIvY29tcG9uZW50cy9jb250YWN0LWRldGFpbHMvY29udGFjdC1kZXRhaWxzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBcUIsU0FBUyxFQUFVLFNBQVMsRUFBQyxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdEYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7Ozs7Ozs7QUFXOUUsTUFBTSxPQUFPLHVCQUF1QjtJQVNoQjtJQUErQjtJQUN6QztJQUErQjtJQUE2QjtJQUEwQjtJQVI5RCxpQkFBaUIsQ0FBTTtJQUN2RCxRQUFRLENBQTBCO0lBQ2xDLFdBQVcsQ0FBTTtJQUNqQixLQUFLLEdBQUUsRUFBRSxDQUFDO0lBQ1YsTUFBTSxHQUFDLENBQUMsQ0FBQztJQUNBLEtBQUssQ0FBSztJQUVyQixZQUFvQixZQUFzQixFQUFTLFdBQTJCLEVBQ3BFLE9BQXNCLEVBQVMsRUFBb0IsRUFBUyxLQUFrQixFQUFRLEVBQXFCO1FBRGpHLGlCQUFZLEdBQVosWUFBWSxDQUFVO1FBQVMsZ0JBQVcsR0FBWCxXQUFXLENBQWdCO1FBQ3BFLFlBQU8sR0FBUCxPQUFPLENBQWU7UUFBUyxPQUFFLEdBQUYsRUFBRSxDQUFrQjtRQUFTLFVBQUssR0FBTCxLQUFLLENBQWE7UUFBUSxPQUFFLEdBQUYsRUFBRSxDQUFtQjtJQUVySCxDQUFDO0lBQ0QsUUFBUTtRQUNOLE9BQU8sQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFD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UmVmLCBDb21wb25lbnQsIE9uSW5pdCwgVmlld0NoaWxkLElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE5nYk1vZGFsLE5nYkFjdGl2ZU1vZGFsLE5nYk1vZGFsUmVmIH0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnO1xyXG5pbXBvcnQgeyBFZGl0RGV0YWlsc0NvbXBvbmVudCB9IGZyb20gJy4uL2VkaXQtZGV0YWlscy9lZGl0LWRldGFpbHMuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVGlja2V0c1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy90aWNrZXQtaW5mcmEuc2VydmljZSc7XHJcbmltcG9ydCB7IFRvYXN0U2VydmljZSB9IGZyb20gJ3RhbmdvLWFwcC11aS1zaGFyZWQnO1xyXG5pbXBvcnQgeyBHbG9iYWxTdGF0ZVNlcnZpY2UgfSBmcm9tICd0YW5nby1hcHAtdWktZ2xvYmFsJztcclxuXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1jb250YWN0LWRldGFpbHMnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jb250YWN0LWRldGFpbHMuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9jb250YWN0LWRldGFpbHMuY29tcG9uZW50LnNjc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDb250YWN0RGV0YWlsc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ2NvbmZpcm1hdGlvbk1vZGFsJykgY29uZmlybWF0aW9uTW9kYWw6IGFueTtcclxuICBtb2RhbFJlZjogTmdiTW9kYWxSZWYgfCB1bmRlZmluZWQ7XHJcbiAgc3BvY0RldGlhbHM6IGFueTtcclxuICBsaW1pdCA9MTA7XHJcbiAgb2Zmc2V0PTE7XHJcbiAgQElucHV0KCkgdmFsdWU6YW55O1xyXG5cclxuY29uc3RydWN0b3IocHJpdmF0ZSBtb2RhbFNlcnZpY2U6IE5nYk1vZGFsLHByaXZhdGUgYWN0aXZlTW9kYWw6IE5nYkFjdGl2ZU1vZGFsLFxyXG4gIHByaXZhdGUgc2VydmljZTpUaWNrZXRzU2VydmljZSxwcml2YXRlIGNkOkNoYW5nZURldGVjdG9yUmVmLHByaXZhdGUgdG9hc3Q6VG9hc3RTZXJ2aWNlLHB1YmxpYyBnczpHbG9iYWxTdGF0ZVNlcnZpY2Upe1xyXG5cclxufVxyXG5uZ09uSW5pdCgpOiB2b2lkIHtcclxuICBjb25zb2xlLmxvZygndmFsdWUnLHRoaXMudmFsdWUpXHJcbiAgdGhpcy5nZXRTcG9jTG9nKCk7XHJcbn1cclxuZ2V0U3BvY0xvZygpIHtcclxuICBsZXQgb2JqID17XHJcbiAgICAgIFwic3RvcmVJZFwiOiBbdGhpcy52YWx1ZS5zdG9yZUlkXSxcclxuICAgICAgXCJjbGllbnRJZFwiOiB0aGlzLnZhbHVlLmNsaWVudElkLFxyXG4gICAgICBcImxpbWl0XCI6IHRoaXMubGltaXQsXHJcbiAgICAgIFwib2Zmc2V0XCI6IHRoaXMub2Zmc2V0XHJcbiAgfVxyXG4gIHRoaXMuc2VydmljZS5nZXRTcG9jTG9nRGF0YShvYmopLnN1YnNjcmliZSh7XHJcbiAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLnNwb2NEZXRpYWxzID0gcmVzPy5kYXRhPy5kYXRhO1xyXG4gICAgICAgIGNvbnNvbGUubG9nKCd0aGlzLnNwb2NEZXRpYWxzJyx0aGlzLnNwb2NEZXRpYWxzKVxyXG4gICAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgfSxcclxuICAgIGVycm9yOiAoZXJyOiBhbnkpID0+IHtcclxuXHJcbiAgICB9LFxyXG4gIH0pO1xyXG59XHJcbmFjY2VwdCgpe1xyXG4gIHRoaXMuYWN0aXZlTW9kYWwuY2xvc2UoKTtcclxufVxyXG5cclxuYWRkQ29udGFjdCgpe1xyXG4gIGxldCBvYmogPSAge1xyXG4gICAgZWRpdCA6IGZhbHNlLFxyXG4gICAgaWQgOiB0aGlzLnZhbHVlLnN0b3JlSWRcclxuICB9XHJcbiAgY29uc3QgbW9kYWxSZWYgPSB0aGlzLm1vZGFsU2VydmljZS5vcGVuKEVkaXREZXRhaWxzQ29tcG9uZW50LHtcclxuICAgIGNlbnRlcmVkOnRydWUsc2l6ZTonbWQnXHJcbiAgfSlcclxuICBtb2RhbFJlZi5jb21wb25lbnRJbnN0YW5jZS5kYXRhID0gb2JqO1xyXG4gIG1vZGFsUmVmLnJlc3VsdC50aGVuKChyZXN1bHQpID0+IHtcclxuICAgIGlmIChyZXN1bHQpIHtcclxuICAgICAgaWYocmVzdWx0ID09ICdjbG9zZScpe1xyXG4gICAgICAgIHRoaXMuYWN0aXZlTW9kYWwuY2xvc2UoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH0pO1xyXG59XHJcblxyXG5cclxuZWRpdE9wZW4oZGF0YTphbnkpe1xyXG4gIGxldCBvYmogPSB7XHJcbiAgICBlZGl0IDogdHJ1ZSxcclxuICAgIHNwb2NJZDpkYXRhLnNwb2NJZCxcclxuICAgIGlkOmRhdGEuc3RvcmVJZCxcclxuICAgIG5hbWU6IGRhdGEuc3BvY05hbWUsXHJcbiAgICBlbWFpbDogZGF0YS5zcG9jRW1haWwsXHJcbiAgICBjb250YWN0OmRhdGEuc3BvY051bWJlcixcclxuICAgIGNvdW50cnk6ZGF0YS5zcG9jQ291bnRyeVxyXG4gIH1cclxuICBjb25zdCBtb2RhbFJlZiA9IHRoaXMubW9kYWxTZXJ2aWNlLm9wZW4oRWRpdERldGFpbHNDb21wb25lbnQseyBjZW50ZXJlZDp0cnVlLHNpemU6J21kJ30pO1xyXG4gIG1vZGFsUmVmLmNvbXBvbmVudEluc3RhbmNlLmRhdGEgPSBvYmo7XHJcbiAgbW9kYWxSZWYucmVzdWx0LnRoZW4oKHJlc3VsdCkgPT4ge1xyXG4gICAgaWYocmVzdWx0ID09ICdjbG9zZScpe1xyXG4gICAgICB0aGlzLmFjdGl2ZU1vZGFsLmNsb3NlKCk7XHJcbiAgICB9XHJcbiAgfSk7XHJcbn1cclxuXHJcbmRlbGV0ZUNvbnRhY3QoZGF0YTphbnkpe1xyXG4gIGNvbnN0IG1vZGFsUmVmID0gdGhpcy5tb2RhbFNlcnZpY2Uub3Blbih0aGlzLmNvbmZpcm1hdGlvbk1vZGFsLCB7IGNlbnRlcmVkOiB0cnVlIH0pO1xyXG4gIG1vZGFsUmVmLnJlc3VsdC50aGVuKChyZXN1bHQpID0+IHtcclxuICAgIHRoaXMuc2VydmljZS5kZWxldGVTcG9jKGRhdGEuc3RvcmVJZCx7c3BvY0lkIDogZGF0YS5zcG9jSWR9KS5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OihyZXM6YW55KT0+e1xyXG4gICAgICAgIGlmKHJlcyAmJiByZXMuY29kZSA9PSAyMDApe1xyXG4gICAgICAgICAgdGhpcy50b2FzdC5nZXRTdWNjZXNzVG9hc3QocmVzLm1lc3NhZ2UpXHJcbiAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICB0aGlzLnRvYXN0LmdldEVycm9yVG9hc3QocmVzLm1lc3NhZ2UpXHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICBlcnJvcjooZXJyKT0+IHtcclxuICAgICAgICB0aGlzLnRvYXN0LmdldEVycm9yVG9hc3QoZXJyLkVycm9yKVxyXG4gICAgICB9LFxyXG4gICAgfSlcclxuICB9KTtcclxufVxyXG5jbG9zZU1vZGFsKCl7XHJcbiAgdGhpcy5hY3RpdmVNb2RhbC5jbG9zZSgpO1xyXG4gIHRoaXMudG9hc3QuZ2V0RXJyb3JUb2FzdCgnQ29udGFjdCBoYXMgYmVlbiBEZWxldGVkIFN1Y2Nlc3NmdWxseScpXHJcblxyXG59XHJcblxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJjYXJkIHAtMFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImNhcmQtaGVhZGVyIGJvcmRlci0wIHB0LTNcIj5cclxuICAgICAgICA8aDMgY2xhc3M9XCJjYXJkLXRpdGxlIGFsaWduLWl0ZW1zLXN0YXJ0IGZsZXgtY29sdW1uXCI+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2FyZC1sYWJlbCBoZWFkZXIgbWItMlwiPnt7dmFsdWU/LnN0b3JlTmFtZSA/IHZhbHVlPy5zdG9yZU5hbWU6Jy0tJ319IENvbnRhY3RzPC9zcGFuPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN1Yi1oZWFkZXIgbWItMlwiPnt7c3BvY0RldGlhbHM/Lmxlbmd0aCA/IHNwb2NEZXRpYWxzPy5sZW5ndGggOiAwIH19IGNvbnRhY3RzIDwvc3Bhbj5cclxuICAgICAgICA8L2gzPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLXRvb2xiYXJcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgcG9zaXRpb24tcmVsYXRpdmUgbXktMVwiPiAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gKm5nSWY9XCIoZ3MudXNlckFjY2VzcyB8IGFzeW5jKT8ubWFuYWdlX3RpY2tldHNfaXNFZGl0XCIgdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJhZGRDb250YWN0KClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tZGVmYXVsdCBteC0yIGJ0bi1vdXRsaW5lIGJ0bi1vdXRsaW5lLWRlZmF1bHQgcm91bmRlZC0zIHRleHQtbm93cmFwIGJvcmRlci12YWwgcHktMiBweC0xMFwiPjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk05Ljk5OTM1IDQuMTY2NjlWMTUuODMzNE00LjE2NjAyIDEwSDE1LjgzMjdcIiBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMS42N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPjxzcGFuIGNsYXNzPVwibXMtMlwiPkFkZDwvc3Bhbj4gPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHkgcHQtMCBtaC02MHZoXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBhbGlnbi1pdGVtcy1jZW50ZXIgcHQtNVwiICpuZ0Zvcj1cImxldCBvYmogb2Ygc3BvY0RldGlhbHM7bGV0IGk9aW5kZXg7XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXhcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCIgcG9zaXRpb24tcmVsYXRpdmVcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRyZSBtc2dwcm9maWxlIGp1c3RpZnktY29udGVudC1jZW50cmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBjbGFzcz1cIlwiIHNyYz1cIi4vYXNzZXRzL3RhbmdvL0ltYWdlcy91c2VyUHJvZmlsZS5zdmdcIj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8IS0tIDxpbnB1dCBjbGFzcz1cImJnLXByaW1hcnkgcG9zaXRpb24tYWJzb2x1dGUgYm90dG9tLTAgZW5kLTAgdy0xMHB4IGgtMTBweCByb3VuZGVkLTQgYm9yZGVyIGJvcmRlci1ub25lXCIgdHlwZT1cImZpbGxcIj4gLS0+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWdyaWQgbXgtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaGVhZGluZ3RleHQgZnctYm9sZC02MDBcIj4ge3tvYmo/LnNwb2NOYW1lID9vYmo/LnNwb2NOYW1lOictLSd9fSA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdWItaGVhZGVyIGVsbGlwc2UgZnctYm9sZC00MDBcIj57e29iaj8uc3BvY0VtYWlsID8gb2JqPy5zcG9jRW1haWw6Jy0tJ319PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGFjdCBmdy1zZW1pYm9sZFwiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4+e3tvYmo/LnNwb2NOdW1iZXIgPyBvYmo/LnNwb2NOdW1iZXI6Jy0tJ319PC9zcGFuPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlblwiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCIoZ3MudXNlckFjY2VzcyB8IGFzeW5jKT8ubWFuYWdlX3RpY2tldHNfaXNFZGl0XCIgKGNsaWNrKT1cImVkaXRPcGVuKG9iailcIj48c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZyBjbGlwLXBhdGg9XCJ1cmwoI2NsaXAwXzQwMjNfNjA3NjIpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk05LjE2NjAyIDMuMzMzMzJIMy4zMzI2OEMyLjg5MDY1IDMuMzMzMzIgMi40NjY3MyAzLjUwODkxIDIuMTU0MTcgMy44MjE0N0MxLjg0MTYxIDQuMTM0MDMgMS42NjYwMiA0LjU1Nzk2IDEuNjY2MDIgNC45OTk5OVYxNi42NjY3QzEuNjY2MDIgMTcuMTA4NyAxLjg0MTYxIDE3LjUzMjYgMi4xNTQxNyAxNy44NDUyQzIuNDY2NzMgMTguMTU3NyAyLjg5MDY1IDE4LjMzMzMgMy4zMzI2OCAxOC4zMzMzSDE0Ljk5OTNDMTUuNDQxNCAxOC4zMzMzIDE1Ljg2NTMgMTguMTU3NyAxNi4xNzc5IDE3Ljg0NTJDMTYuNDkwNCAxNy41MzI2IDE2LjY2NiAxNy4xMDg3IDE2LjY2NiAxNi42NjY3VjEwLjgzMzNNMTUuNDE2IDIuMDgzMzJDMTUuNzQ3NSAxLjc1MTggMTYuMTk3MiAxLjU2NTU1IDE2LjY2NiAxLjU2NTU1QzE3LjEzNDkgMS41NjU1NSAxNy41ODQ1IDEuNzUxOCAxNy45MTYgMi4wODMzMkMxOC4yNDc1IDIuNDE0ODQgMTguNDMzOCAyLjg2NDQ4IDE4LjQzMzggMy4zMzMzMkMxOC40MzM4IDMuODAyMTYgMTguMjQ3NSA0LjI1MTggMTcuOTE2IDQuNTgzMzJMOS45OTkzNSAxMi41TDYuNjY2MDIgMTMuMzMzM0w3LjQ5OTM1IDkuOTk5OTlMMTUuNDE2IDIuMDgzMzJaXCIgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjEuNjY2NjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgIDxjbGlwUGF0aCBpZD1cImNsaXAwXzQwMjNfNjA3NjJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8cmVjdCB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiBmaWxsPVwid2hpdGVcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9jbGlwUGF0aD5cclxuICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zdmc+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIihncy51c2VyQWNjZXNzIHwgYXN5bmMpPy5tYW5hZ2VfdGlja2V0c19pc0RlbGV0ZVwiIChjbGljayk9XCJkZWxldGVDb250YWN0KG9iailcIiBjbGFzcz1cIm1zLTVcIj48c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTIuNSA1LjAwMDAySDQuMTY2NjdNNC4xNjY2NyA1LjAwMDAySDE3LjVNNC4xNjY2NyA1LjAwMDAyVjE2LjY2NjdDNC4xNjY2NyAxNy4xMDg3IDQuMzQyMjYgMTcuNTMyNiA0LjY1NDgyIDE3Ljg0NTJDNC45NjczOCAxOC4xNTc4IDUuMzkxMzEgMTguMzMzNCA1LjgzMzMzIDE4LjMzMzRIMTQuMTY2N0MxNC42MDg3IDE4LjMzMzQgMTUuMDMyNiAxOC4xNTc4IDE1LjM0NTIgMTcuODQ1MkMxNS42NTc3IDE3LjUzMjYgMTUuODMzMyAxNy4xMDg3IDE1LjgzMzMgMTYuNjY2N1Y1LjAwMDAySDQuMTY2NjdaTTYuNjY2NjcgNS4wMDAwMlYzLjMzMzM1QzYuNjY2NjcgMi44OTEzMyA2Ljg0MjI2IDIuNDY3NCA3LjE1NDgyIDIuMTU0ODRDNy40NjczOCAxLjg0MjI4IDcuODkxMzEgMS42NjY2OSA4LjMzMzMzIDEuNjY2NjlIMTEuNjY2N0MxMi4xMDg3IDEuNjY2NjkgMTIuNTMyNiAxLjg0MjI4IDEyLjg0NTIgMi4xNTQ4NEMxMy4xNTc3IDIuNDY3NCAxMy4zMzMzIDIuODkxMzMgMTMuMzMzMyAzLjMzMzM1VjUuMDAwMDJcIiBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMS42NjY2N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cclxuICAgICAgICAgICAgICAgICAgICA8L3N2Zz48L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHkgcHQtMFwiPlxyXG4gICAgICAgIDxidXR0b24gKGNsaWNrKT1cImFjY2VwdCgpXCIgY2xhc3M9XCJidG4gYnRuLWRlZmF1bHQgYnRuLXByaW1hcnkgbXQtNSB3LTEwMFwiPlxyXG4gICAgICAgICAgICBPa2F5XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+XHJcblxyXG48bmctdGVtcGxhdGUgI2NvbmZpcm1hdGlvbk1vZGFsIGxldC1tb2RhbD5cclxuICAgIDxkaXYgY2xhc3M9XCJwLThcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiXCI+XHJcbiAgICAgICAgICA8aW1nIHNyYz1cIi4vYXNzZXRzL3RhbmdvL0ltYWdlcy9kYW5nZXJJY29uLnBuZ1wiPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCIgbXQtNVwiPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImhlYWRlciBmdy1ib2xkLTYwMFwiPkFyZSB5b3UgcmVhZHkgc3VyZT88L3NwYW4+XHJcbiAgICAgICAgICAgPGRpdiBjbGFzcz1cIm10LTMgc3ViLWhlYWRlciBmdy1ib2xkLTQwMFwiPkFyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBkZWxldGUgdGhlIHVzZXIgZ2xvYmFsbHk/PC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBtdC0xMFwiPlxyXG4gICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLWRlZmF1bHQgYnRuLW91dGxpbmUgdy01MCBtZS0yXCIgKGNsaWNrKT1cIm1vZGFsLmRpc21pc3MoKVwiPkNhbmNlbDwvYnV0dG9uPlxyXG4gICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLWRhbmdlciB3LTUwIG1zLTJcIiAoY2xpY2spPVwiY2xvc2VNb2RhbCgpOyBtb2RhbC5jbG9zZSgpXCI+RGVsZXRlPC9idXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L25nLXRlbXBsYXRlPiJdfQ==
|
|
@@ -33,18 +33,10 @@ export class EdgeCameraviewComponent {
|
|
|
33
33
|
next: (res) => {
|
|
34
34
|
if (res && res?.code == 200) {
|
|
35
35
|
this.viewEdgeAppLogList = res?.data;
|
|
36
|
-
this.loading = false;
|
|
37
|
-
this.noData = false;
|
|
38
36
|
this.cd.detectChanges();
|
|
39
37
|
}
|
|
40
|
-
else {
|
|
41
|
-
this.loading = false;
|
|
42
|
-
this.noData = true;
|
|
43
|
-
}
|
|
44
38
|
},
|
|
45
39
|
error: (err) => {
|
|
46
|
-
this.loading = false;
|
|
47
|
-
this.noData = true;
|
|
48
40
|
}
|
|
49
41
|
});
|
|
50
42
|
}
|
|
@@ -55,17 +47,29 @@ export class EdgeCameraviewComponent {
|
|
|
55
47
|
};
|
|
56
48
|
this.infraService.getCameraImages(data).subscribe({
|
|
57
49
|
next: (res) => {
|
|
58
|
-
|
|
50
|
+
if (res && res.code == 200) {
|
|
51
|
+
this.CameraDetails = res?.data;
|
|
52
|
+
this.loading = false;
|
|
53
|
+
this.noData = false;
|
|
54
|
+
}
|
|
55
|
+
else {
|
|
56
|
+
this.loading = false;
|
|
57
|
+
this.noData = true;
|
|
58
|
+
}
|
|
59
|
+
},
|
|
60
|
+
error: (err) => {
|
|
61
|
+
this.loading = false;
|
|
62
|
+
this.noData = true;
|
|
59
63
|
},
|
|
60
64
|
});
|
|
61
65
|
}
|
|
62
66
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: EdgeCameraviewComponent, deps: [{ token: i1.TicketsService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
63
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.8", type: EdgeCameraviewComponent, selector: "lib-edge-cameraview", inputs: { value: "value" }, ngImport: i0, template: "<div class=\"card\">\r\n <div class=\"card-header flex-column border-0\">\r\n <img class=\"mt-5 msgprofile\" src=\"./assets/tango/Images/edgeapp icon.svg\">\r\n <div class=\"card-title flex-column\">\r\n <span class=\"card-label\">LKST -09-133 Store Infrastructure</span>\r\n <span class=\"sub-title\">Based on date : {{currentDate | date:'dd-MM-yy'}} </span>\r\n </div>\r\n </div>\r\n <div class=\"card-body\">\r\n <div *ngIf=\"!loading && !noData\">\r\n <span class=\"heading mb-5 fw-semibold\">Edge App Status - {{viewEdgeAppLogList?.appStatus ? viewEdgeAppLogList?.appStatus :'--'}}</span>\r\n <div class=\"border border-gray border-1 rounded-3 w-100 px-10 py-3 mt-3 d-flex justify-content-between\">\r\n <div class=\"card-view d-flex flex-column\">\r\n <span class=\"sub-title\">App Login Time</span>\r\n <span class=\"title\">{{viewEdgeAppLogList?.appStartTime ? viewEdgeAppLogList?.appStartTime :'--'}}</span>\r\n </div>\r\n <div class=\"card-view d-flex flex-column\">\r\n <span class=\"sub-title\">App Close Time</span>\r\n <span class=\"title\">{{viewEdgeAppLogList?.appQuitTime ? viewEdgeAppLogList?.appQuitTime :'--'}}</span>\r\n </div>\r\n <div class=\"card-view d-flex flex-column\">\r\n <span class=\"sub-title\">App Crash Time</span>\r\n <span class=\"title\">{{viewEdgeAppLogList?.AppCrashtime ? viewEdgeAppLogList?.AppCrashtime :'--'}}</span>\r\n </div>\r\n </div>\r\n </div>\r\n <div
|
|
67
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.8", type: EdgeCameraviewComponent, selector: "lib-edge-cameraview", inputs: { value: "value" }, ngImport: i0, template: "<div class=\"card\">\r\n <div class=\"card-header flex-column border-0\">\r\n <img class=\"mt-5 msgprofile\" src=\"./assets/tango/Images/edgeapp icon.svg\">\r\n <div class=\"card-title flex-column\">\r\n <span class=\"card-label\">LKST -09-133 Store Infrastructure</span>\r\n <span class=\"sub-title\">Based on date : {{currentDate | date:'dd-MM-yy'}} </span>\r\n </div>\r\n </div>\r\n <div class=\"card-body\">\r\n <div *ngIf=\"!loading && !noData\">\r\n <span class=\"heading mb-5 fw-semibold\">Edge App Status - {{viewEdgeAppLogList?.appStatus ? viewEdgeAppLogList?.appStatus :'--'}}</span>\r\n <div class=\"border border-gray border-1 rounded-3 w-100 px-10 py-3 mt-3 d-flex justify-content-between\">\r\n <div class=\"card-view d-flex flex-column\">\r\n <span class=\"sub-title\">App Login Time</span>\r\n <span class=\"title\">{{viewEdgeAppLogList?.appStartTime ? viewEdgeAppLogList?.appStartTime :'--'}}</span>\r\n </div>\r\n <div class=\"card-view d-flex flex-column\">\r\n <span class=\"sub-title\">App Close Time</span>\r\n <span class=\"title\">{{viewEdgeAppLogList?.appQuitTime ? viewEdgeAppLogList?.appQuitTime :'--'}}</span>\r\n </div>\r\n <div class=\"card-view d-flex flex-column\">\r\n <span class=\"sub-title\">App Crash Time</span>\r\n <span class=\"title\">{{viewEdgeAppLogList?.AppCrashtime ? viewEdgeAppLogList?.AppCrashtime :'--'}}</span>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"mt-10\">\r\n <span class=\"heading mb-5 fw-semibold\">System Check </span>\r\n <div class=\"border border-gray border-1 rounded-3 w-100 px-10 py-3 mt-3 d-flex justify-content-between\">\r\n <div class=\"card-view d-flex flex-column\">\r\n <span class=\"sub-title\">System Idle</span>\r\n <span class=\"title\">{{viewEdgeAppLogList?.screenStatus ?viewEdgeAppLogList?.screenStatus :'--'}}</span>\r\n </div>\r\n <div class=\"card-view d-flex flex-column\">\r\n <span class=\"sub-title\">Anitvirus</span>\r\n <span class=\"title\">{{viewEdgeAppLogList?.antiVirus ?viewEdgeAppLogList?.antiVirus :'--'}}</span>\r\n </div>\r\n <div class=\"card-view d-flex flex-column\">\r\n <span class=\"sub-title\">Files Pushed</span>\r\n <span class=\"title\">{{viewEdgeAppLogList?.filesPushed ?viewEdgeAppLogList?.filesPushed :'--'}}</span>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"!loading && !noData\" class=\"mt-10\">\r\n <span class=\"heading mb-5 fw-semibold\">Camera Check</span>\r\n <div class=\"row\">\r\n <div *ngFor=\"let details of CameraDetails\" class=\"col-sm-6 mt-10\">\r\n <div>\r\n <div class=\"row\">\r\n <div class=\"col-sm-9\">\r\n <div class=\"d-flex align-items-center\">\r\n <div [ngClass]=\"(details?.isActivated && details.isUp) ? 'bg-success':'bg-danger'\" class=\"w-10px h-10px border-0 rounded-3 me-2\"></div><span *ngIf=\"details?.cameraNumber\">{{details?.cameraNumber}}</span>\r\n <span *ngIf=\"details?.cameraName\" class=\"badge badge-light-primary text-primary ms-2\">{{details?.cameraName | titlecase}} Camera</span>\r\n </div>\r\n <div class=\"streamdate fw-semibold\"><span>{{details?.streamName}}</span></div>\r\n </div>\r\n </div>\r\n \r\n <img class=\"w-100 mh-200px rounded-3 mt-3\" src='{{details?.thumbnailImage}}'>\r\n <div class=\"mt-3 d-flex justify-content-between\">\r\n <span *ngIf=\"details?.captureAt\" class=\"streamdate fw-semibold\">Date Added : {{details?.captureAt | customDateFormat}}</span>\r\n <span *ngIf=\"details?.timeElapsed\" class=\"streamdate fw-semibold\">Frame Rate : {{details?.timeElapsed}} Sec</span>\r\n </div>\r\n </div> \r\n </div>\r\n </div>\r\n </div>\r\n \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 || !CameraDetails.length\">\r\n <div class=\"row\">\r\n <div class=\"col-lg-12 mb-3\">\r\n <div class=\"card-body d-flex justify-content-center align-items-center flex-column\">\r\n <img class=\"img-src w-25\" src=\"./assets/tango/Icons/Nodata.svg\" alt=\"\">\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n</div>\r\n", styles: [".card-label{font-size:18px!important;line-height:28px!important}.sub-title{font-size:14px;font-weight:400;line-height:20px;color:var(--Gray-500, #667085)}.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}.msgprofile{width:48px!important;height:48px!important;border-radius:200px;overflow:hidden}.streamdate{color:var(--Gray-400, #98A2B3);font-size:12px;line-height:18px}.heading{color:var(--Gray-900, #101828);font-size:16px;line-height:24px}.loader .title{width:65%}.loader .link{width:85%}.loader .description{width:95%}.loader .shimmer{padding:15px;width:95%;height:120px;margin:10px auto;background:#fff}.loader .shimmer .image-card{height:90px;width:90px;float:right;border-radius:8px}.loader .stroke{height:15px;background:#777;margin-top:20px}.loader .wrapper{width:0px;animation:fullView .5s forwards linear}@keyframes fullView{to{width:100%}}.loader .animate{animation:shimmer 3s;animation-iteration-count:infinite;background:linear-gradient(to right,#e6e6e6 5%,#ccc 25%,#e6e6e6 35%);background-size:1000px 100%}@keyframes shimmer{0%{background-position:-1000px 0}to{background-position:1000px 0}}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.TitleCasePipe, name: "titlecase" }, { kind: "pipe", type: i2.DatePipe, name: "date" }, { kind: "pipe", type: i3.CustomDateFormatPipe, name: "customDateFormat" }] });
|
|
64
68
|
}
|
|
65
69
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: EdgeCameraviewComponent, decorators: [{
|
|
66
70
|
type: Component,
|
|
67
|
-
args: [{ selector: 'lib-edge-cameraview', template: "<div class=\"card\">\r\n <div class=\"card-header flex-column border-0\">\r\n <img class=\"mt-5 msgprofile\" src=\"./assets/tango/Images/edgeapp icon.svg\">\r\n <div class=\"card-title flex-column\">\r\n <span class=\"card-label\">LKST -09-133 Store Infrastructure</span>\r\n <span class=\"sub-title\">Based on date : {{currentDate | date:'dd-MM-yy'}} </span>\r\n </div>\r\n </div>\r\n <div class=\"card-body\">\r\n <div *ngIf=\"!loading && !noData\">\r\n <span class=\"heading mb-5 fw-semibold\">Edge App Status - {{viewEdgeAppLogList?.appStatus ? viewEdgeAppLogList?.appStatus :'--'}}</span>\r\n <div class=\"border border-gray border-1 rounded-3 w-100 px-10 py-3 mt-3 d-flex justify-content-between\">\r\n <div class=\"card-view d-flex flex-column\">\r\n <span class=\"sub-title\">App Login Time</span>\r\n <span class=\"title\">{{viewEdgeAppLogList?.appStartTime ? viewEdgeAppLogList?.appStartTime :'--'}}</span>\r\n </div>\r\n <div class=\"card-view d-flex flex-column\">\r\n <span class=\"sub-title\">App Close Time</span>\r\n <span class=\"title\">{{viewEdgeAppLogList?.appQuitTime ? viewEdgeAppLogList?.appQuitTime :'--'}}</span>\r\n </div>\r\n <div class=\"card-view d-flex flex-column\">\r\n <span class=\"sub-title\">App Crash Time</span>\r\n <span class=\"title\">{{viewEdgeAppLogList?.AppCrashtime ? viewEdgeAppLogList?.AppCrashtime :'--'}}</span>\r\n </div>\r\n </div>\r\n </div>\r\n <div
|
|
71
|
+
args: [{ selector: 'lib-edge-cameraview', template: "<div class=\"card\">\r\n <div class=\"card-header flex-column border-0\">\r\n <img class=\"mt-5 msgprofile\" src=\"./assets/tango/Images/edgeapp icon.svg\">\r\n <div class=\"card-title flex-column\">\r\n <span class=\"card-label\">LKST -09-133 Store Infrastructure</span>\r\n <span class=\"sub-title\">Based on date : {{currentDate | date:'dd-MM-yy'}} </span>\r\n </div>\r\n </div>\r\n <div class=\"card-body\">\r\n <div *ngIf=\"!loading && !noData\">\r\n <span class=\"heading mb-5 fw-semibold\">Edge App Status - {{viewEdgeAppLogList?.appStatus ? viewEdgeAppLogList?.appStatus :'--'}}</span>\r\n <div class=\"border border-gray border-1 rounded-3 w-100 px-10 py-3 mt-3 d-flex justify-content-between\">\r\n <div class=\"card-view d-flex flex-column\">\r\n <span class=\"sub-title\">App Login Time</span>\r\n <span class=\"title\">{{viewEdgeAppLogList?.appStartTime ? viewEdgeAppLogList?.appStartTime :'--'}}</span>\r\n </div>\r\n <div class=\"card-view d-flex flex-column\">\r\n <span class=\"sub-title\">App Close Time</span>\r\n <span class=\"title\">{{viewEdgeAppLogList?.appQuitTime ? viewEdgeAppLogList?.appQuitTime :'--'}}</span>\r\n </div>\r\n <div class=\"card-view d-flex flex-column\">\r\n <span class=\"sub-title\">App Crash Time</span>\r\n <span class=\"title\">{{viewEdgeAppLogList?.AppCrashtime ? viewEdgeAppLogList?.AppCrashtime :'--'}}</span>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"mt-10\">\r\n <span class=\"heading mb-5 fw-semibold\">System Check </span>\r\n <div class=\"border border-gray border-1 rounded-3 w-100 px-10 py-3 mt-3 d-flex justify-content-between\">\r\n <div class=\"card-view d-flex flex-column\">\r\n <span class=\"sub-title\">System Idle</span>\r\n <span class=\"title\">{{viewEdgeAppLogList?.screenStatus ?viewEdgeAppLogList?.screenStatus :'--'}}</span>\r\n </div>\r\n <div class=\"card-view d-flex flex-column\">\r\n <span class=\"sub-title\">Anitvirus</span>\r\n <span class=\"title\">{{viewEdgeAppLogList?.antiVirus ?viewEdgeAppLogList?.antiVirus :'--'}}</span>\r\n </div>\r\n <div class=\"card-view d-flex flex-column\">\r\n <span class=\"sub-title\">Files Pushed</span>\r\n <span class=\"title\">{{viewEdgeAppLogList?.filesPushed ?viewEdgeAppLogList?.filesPushed :'--'}}</span>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"!loading && !noData\" class=\"mt-10\">\r\n <span class=\"heading mb-5 fw-semibold\">Camera Check</span>\r\n <div class=\"row\">\r\n <div *ngFor=\"let details of CameraDetails\" class=\"col-sm-6 mt-10\">\r\n <div>\r\n <div class=\"row\">\r\n <div class=\"col-sm-9\">\r\n <div class=\"d-flex align-items-center\">\r\n <div [ngClass]=\"(details?.isActivated && details.isUp) ? 'bg-success':'bg-danger'\" class=\"w-10px h-10px border-0 rounded-3 me-2\"></div><span *ngIf=\"details?.cameraNumber\">{{details?.cameraNumber}}</span>\r\n <span *ngIf=\"details?.cameraName\" class=\"badge badge-light-primary text-primary ms-2\">{{details?.cameraName | titlecase}} Camera</span>\r\n </div>\r\n <div class=\"streamdate fw-semibold\"><span>{{details?.streamName}}</span></div>\r\n </div>\r\n </div>\r\n \r\n <img class=\"w-100 mh-200px rounded-3 mt-3\" src='{{details?.thumbnailImage}}'>\r\n <div class=\"mt-3 d-flex justify-content-between\">\r\n <span *ngIf=\"details?.captureAt\" class=\"streamdate fw-semibold\">Date Added : {{details?.captureAt | customDateFormat}}</span>\r\n <span *ngIf=\"details?.timeElapsed\" class=\"streamdate fw-semibold\">Frame Rate : {{details?.timeElapsed}} Sec</span>\r\n </div>\r\n </div> \r\n </div>\r\n </div>\r\n </div>\r\n \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 || !CameraDetails.length\">\r\n <div class=\"row\">\r\n <div class=\"col-lg-12 mb-3\">\r\n <div class=\"card-body d-flex justify-content-center align-items-center flex-column\">\r\n <img class=\"img-src w-25\" src=\"./assets/tango/Icons/Nodata.svg\" alt=\"\">\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n</div>\r\n", styles: [".card-label{font-size:18px!important;line-height:28px!important}.sub-title{font-size:14px;font-weight:400;line-height:20px;color:var(--Gray-500, #667085)}.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}.msgprofile{width:48px!important;height:48px!important;border-radius:200px;overflow:hidden}.streamdate{color:var(--Gray-400, #98A2B3);font-size:12px;line-height:18px}.heading{color:var(--Gray-900, #101828);font-size:16px;line-height:24px}.loader .title{width:65%}.loader .link{width:85%}.loader .description{width:95%}.loader .shimmer{padding:15px;width:95%;height:120px;margin:10px auto;background:#fff}.loader .shimmer .image-card{height:90px;width:90px;float:right;border-radius:8px}.loader .stroke{height:15px;background:#777;margin-top:20px}.loader .wrapper{width:0px;animation:fullView .5s forwards linear}@keyframes fullView{to{width:100%}}.loader .animate{animation:shimmer 3s;animation-iteration-count:infinite;background:linear-gradient(to right,#e6e6e6 5%,#ccc 25%,#e6e6e6 35%);background-size:1000px 100%}@keyframes shimmer{0%{background-position:-1000px 0}to{background-position:1000px 0}}\n"] }]
|
|
68
72
|
}], ctorParameters: () => [{ type: i1.TicketsService }, { type: i0.ChangeDetectorRef }], propDecorators: { value: [{
|
|
69
73
|
type: Input
|
|
70
74
|
}] } });
|
|
71
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRnZS1jYW1lcmF2aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLXRpY2tldC11c2VyL3NyYy9saWIvY29tcG9uZW50cy9lZGdlLWNhbWVyYXZpZXcvZWRnZS1jYW1lcmF2aWV3LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLXRpY2tldC11c2VyL3NyYy9saWIvY29tcG9uZW50cy9lZGdlLWNhbWVyYXZpZXcvZWRnZS1jYW1lcmF2aWV3LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBcUIsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQzs7Ozs7QUFRNUUsTUFBTSxPQUFPLHVCQUF1QjtJQVFkO0lBQXNDO0lBUDFELE9BQU8sR0FBWSxJQUFJLENBQUM7SUFDeEIsTUFBTSxHQUFZLEtBQUssQ0FBQztJQUN4QixrQkFBa0IsQ0FBTTtJQUN4QixXQUFXLENBQU87SUFDVCxLQUFLLENBQU07SUFDcEIsYUFBYSxDQUFNO0lBRW5CLFlBQW9CLFlBQTRCLEVBQVUsRUFBcUI7UUFBM0QsaUJBQVksR0FBWixZQUFZLENBQWdCO1FBQVUsT0FBRSxHQUFGLEVBQUUsQ0FBbUI7SUFHL0UsQ0FBQztJQUNELFFBQVE7UUFDTixJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUN6QixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO0lBQ2hDLENBQUM7SUFDRCxpQkFBaUI7UUFDZixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztRQUNwQixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztRQUVwQixJQUFJLEdBQUcsR0FBRztZQUNSLE9BQU8sRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLE9BQU87WUFDNUIsSUFBSSxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDeEMsRUFBRSxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7U0FDckMsQ0FBQTtRQUVELElBQUksQ0FBQyxZQUFZLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFNBQVMsQ0FBQztZQUM5QyxJQUFJLEVBQUUsQ0FBQyxHQUFRLEVBQUUsRUFBRTtnQkFDakIsSUFBSSxHQUFHLElBQUksR0FBRyxFQUFFLElBQUksSUFBSSxHQUFHLEVBQUU7b0JBQzNCLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxHQUFHLEVBQUUsSUFBSSxDQUFDO29CQUNwQyxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztvQkFDckIsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7b0JBQ3BCLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxFQUFFLENBQUE7aUJBQ3hCO3FCQUFNO29CQUNMLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO29CQUNyQixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztpQkFDcEI7WUFDSCxDQUFDO1lBQ0QsS0FBSyxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUU7Z0JBQ2IsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7Z0JBQ3JCLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1lBQ3JCLENBQUM7U0FDRixDQUFDLENBQUE7SUFDSixDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksSUFBSSxHQUFHO1lBQ1QsT0FBTyxFQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsT0FBTztZQUM3QixvQkFBb0I7U0FDckIsQ0FBQTtRQUNELElBQUksQ0FBQyxZQUFZLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQztZQUNoRCxJQUFJLEVBQUMsQ0FBQyxHQUFPLEVBQUMsRUFBRTtnQkFDZCxJQUFJLENBQUMsYUFBYSxHQUFHLEdBQUcsRUFBRSxJQUFJLENBQUM7WUFDakMsQ0FBQztTQUNGLENBQUMsQ0FBQTtJQUNKLENBQUM7dUdBeERVLHVCQUF1QjsyRkFBdkIsdUJBQXVCLHVGQ1JwQywrdUxBa0dBOzsyRkQxRmEsdUJBQXVCO2tCQUxuQyxTQUFTOytCQUNFLHFCQUFxQjttSEFTdEIsS0FBSztzQkFBYixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBUaWNrZXRzU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3RpY2tldC1pbmZyYS5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLWVkZ2UtY2FtZXJhdmlldycsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2VkZ2UtY2FtZXJhdmlldy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL2VkZ2UtY2FtZXJhdmlldy5jb21wb25lbnQuc2NzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIEVkZ2VDYW1lcmF2aWV3Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBsb2FkaW5nOiBib29sZWFuID0gdHJ1ZTtcclxuICBub0RhdGE6IGJvb2xlYW4gPSBmYWxzZTtcclxuICB2aWV3RWRnZUFwcExvZ0xpc3Q6IGFueTtcclxuICBjdXJyZW50RGF0ZTogRGF0ZTtcclxuICBASW5wdXQoKSB2YWx1ZTogYW55O1xyXG4gIENhbWVyYURldGFpbHM6IGFueTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBpbmZyYVNlcnZpY2U6IFRpY2tldHNTZXJ2aWNlLCBwcml2YXRlIGNkOiBDaGFuZ2VEZXRlY3RvclJlZikge1xyXG5cclxuXHJcbiAgfVxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5nZXRWaWV3RWRnZUFwcExvZygpO1xyXG4gICAgdGhpcy5nZXRDYW1lcmFJbWFnZXMoKTtcclxuICAgIHRoaXMuY3VycmVudERhdGUgPSBuZXcgRGF0ZSgpO1xyXG4gIH1cclxuICBnZXRWaWV3RWRnZUFwcExvZygpIHtcclxuICAgIHRoaXMubG9hZGluZyA9IHRydWU7XHJcbiAgICB0aGlzLm5vRGF0YSA9IGZhbHNlO1xyXG5cclxuICAgIGxldCBvYmogPSB7XHJcbiAgICAgIHN0b3JlSWQ6IHRoaXMudmFsdWU/LnN0b3JlSWQsXHJcbiAgICAgIGZyb206IHRoaXMudmFsdWU/LnN0YXJ0VGltZS5zbGljZSgwLCAtMiksXHJcbiAgICAgIHRvOiB0aGlzLnZhbHVlPy5lbmRUaW1lLnNsaWNlKDAsIC0yKVxyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuaW5mcmFTZXJ2aWNlLnZpZXdlZGdlQXBwTG9nKG9iaikuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKHJlcyAmJiByZXM/LmNvZGUgPT0gMjAwKSB7XHJcbiAgICAgICAgICB0aGlzLnZpZXdFZGdlQXBwTG9nTGlzdCA9IHJlcz8uZGF0YTtcclxuICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5ub0RhdGEgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpXHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5ub0RhdGEgPSB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAgZXJyb3I6IChlcnIpID0+IHtcclxuICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLm5vRGF0YSA9IHRydWU7XHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBnZXRDYW1lcmFJbWFnZXMoKXtcclxuICAgIGxldCBkYXRhID0ge1xyXG4gICAgICBzdG9yZUlkIDogdGhpcy52YWx1ZT8uc3RvcmVJZFxyXG4gICAgICAvLyBzdG9yZUlkOlwiMjAxLTEyOVwiXHJcbiAgICB9XHJcbiAgICB0aGlzLmluZnJhU2VydmljZS5nZXRDYW1lcmFJbWFnZXMoZGF0YSkuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDoocmVzOmFueSk9PiB7XHJcbiAgICAgICAgdGhpcy5DYW1lcmFEZXRhaWxzID0gcmVzPy5kYXRhO1xyXG4gICAgICB9LFxyXG4gICAgfSlcclxuICB9XHJcblxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJjYXJkXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY2FyZC1oZWFkZXIgZmxleC1jb2x1bW4gYm9yZGVyLTBcIj5cclxuICAgICAgICA8aW1nIGNsYXNzPVwibXQtNSBtc2dwcm9maWxlXCIgc3JjPVwiLi9hc3NldHMvdGFuZ28vSW1hZ2VzL2VkZ2VhcHAgaWNvbi5zdmdcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC10aXRsZSBmbGV4LWNvbHVtblwiPlxyXG4gICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2FyZC1sYWJlbFwiPkxLU1QgLTA5LTEzMyBTdG9yZSBJbmZyYXN0cnVjdHVyZTwvc3Bhbj5cclxuICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN1Yi10aXRsZVwiPkJhc2VkIG9uIGRhdGUgOiB7e2N1cnJlbnREYXRlIHwgZGF0ZTonZGQtTU0teXknfX0gPC9zcGFuPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5XCI+XHJcbiAgICAgICAgPGRpdiAqbmdJZj1cIiFsb2FkaW5nICYmICFub0RhdGFcIj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJoZWFkaW5nIG1iLTUgZnctc2VtaWJvbGRcIj5FZGdlIEFwcCBTdGF0dXMgLSB7e3ZpZXdFZGdlQXBwTG9nTGlzdD8uYXBwU3RhdHVzID8gdmlld0VkZ2VBcHBMb2dMaXN0Py5hcHBTdGF0dXMgOictLSd9fTwvc3Bhbj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJvcmRlciBib3JkZXItZ3JheSBib3JkZXItMSByb3VuZGVkLTMgdy0xMDAgcHgtMTAgcHktMyBtdC0zIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlblwiPlxyXG4gICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC12aWV3IGQtZmxleCBmbGV4LWNvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdWItdGl0bGVcIj5BcHAgTG9naW4gVGltZTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGl0bGVcIj57e3ZpZXdFZGdlQXBwTG9nTGlzdD8uYXBwU3RhcnRUaW1lID8gdmlld0VkZ2VBcHBMb2dMaXN0Py5hcHBTdGFydFRpbWUgOictLSd9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLXZpZXcgZC1mbGV4IGZsZXgtY29sdW1uXCI+XHJcbiAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN1Yi10aXRsZVwiPkFwcCBDbG9zZSBUaW1lPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0aXRsZVwiPnt7dmlld0VkZ2VBcHBMb2dMaXN0Py5hcHBRdWl0VGltZSA/IHZpZXdFZGdlQXBwTG9nTGlzdD8uYXBwUXVpdFRpbWUgOictLSd9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLXZpZXcgZC1mbGV4IGZsZXgtY29sdW1uXCI+XHJcbiAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN1Yi10aXRsZVwiPkFwcCBDcmFzaCBUaW1lPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0aXRsZVwiPnt7dmlld0VkZ2VBcHBMb2dMaXN0Py5BcHBDcmFzaHRpbWUgPyB2aWV3RWRnZUFwcExvZ0xpc3Q/LkFwcENyYXNodGltZSA6Jy0tJ319PC9zcGFuPlxyXG4gICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiAqbmdJZj1cIiFsb2FkaW5nICYmICFub0RhdGFcIiBjbGFzcz1cIm10LTEwXCI+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaGVhZGluZyBtYi01IGZ3LXNlbWlib2xkXCI+U3lzdGVtIENoZWNrIDwvc3Bhbj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJvcmRlciBib3JkZXItZ3JheSBib3JkZXItMSByb3VuZGVkLTMgdy0xMDAgcHgtMTAgcHktMyBtdC0zIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlblwiPlxyXG4gICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC12aWV3IGQtZmxleCBmbGV4LWNvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdWItdGl0bGVcIj5TeXN0ZW0gSWRsZTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGl0bGVcIj57e3ZpZXdFZGdlQXBwTG9nTGlzdD8uc2NyZWVuU3RhdHVzID92aWV3RWRnZUFwcExvZ0xpc3Q/LnNjcmVlblN0YXR1cyA6Jy0tJ319PC9zcGFuPlxyXG4gICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtdmlldyBkLWZsZXggZmxleC1jb2x1bW5cIj5cclxuICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3ViLXRpdGxlXCI+QW5pdHZpcnVzPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0aXRsZVwiPnt7dmlld0VkZ2VBcHBMb2dMaXN0Py5hbnRpVmlydXMgP3ZpZXdFZGdlQXBwTG9nTGlzdD8uYW50aVZpcnVzIDonLS0nfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC12aWV3IGQtZmxleCBmbGV4LWNvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdWItdGl0bGVcIj5GaWxlcyBQdXNoZWQ8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRpdGxlXCI+e3t2aWV3RWRnZUFwcExvZ0xpc3Q/LmZpbGVzUHVzaGVkID92aWV3RWRnZUFwcExvZ0xpc3Q/LmZpbGVzUHVzaGVkIDonLS0nfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2ICpuZ0lmPVwiIWxvYWRpbmcgJiYgIW5vRGF0YVwiIGNsYXNzPVwibXQtMTBcIj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJoZWFkaW5nIG1iLTUgZnctc2VtaWJvbGRcIj5DYW1lcmEgQ2hlY2s8L3NwYW4+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgZGV0YWlscyBvZiBDYW1lcmFEZXRhaWxzXCIgY2xhc3M9XCJjb2wtc20tNiBtdC0xMFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtc20tOVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3LTEwcHggaC0xMHB4IGJvcmRlci0wIHJvdW5kZWQtMyBiZy1zdWNjZXNzIG1lLTJcIj48L2Rpdj48c3BhbiAqbmdJZj1cImRldGFpbHM/LmNhbWVyYU51bWJlclwiPnt7ZGV0YWlscz8uY2FtZXJhTnVtYmVyfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiZGV0YWlscz8uY2FtZXJhTmFtZVwiIGNsYXNzPVwiYmFkZ2UgYmFkZ2UtbGlnaHQtcHJpbWFyeSB0ZXh0LXByaW1hcnkgbXMtMlwiPnt7ZGV0YWlscz8uY2FtZXJhTmFtZSB8IHRpdGxlY2FzZX19IENhbWVyYTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3RyZWFtZGF0ZSBmdy1zZW1pYm9sZFwiPjxzcGFuPnt7ZGV0YWlscz8uc3RyZWFtTmFtZX19PC9zcGFuPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgIFxyXG4gICAgICAgICAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJ3LTEwMCBtaC0yMDBweCByb3VuZGVkLTMgbXQtM1wiIFtzcmNdPSdkZXRhaWxzPy50aHVtYm5haWxJbWFnZSc+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm10LTMgZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiZGV0YWlscz8uY2FwdHVyZUF0XCIgY2xhc3M9XCJzdHJlYW1kYXRlIGZ3LXNlbWlib2xkXCI+RGF0ZSBBZGRlZCA6IHt7ZGV0YWlscz8uY2FwdHVyZUF0IHwgY3VzdG9tRGF0ZUZvcm1hdH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cImRldGFpbHM/LnRpbWVFbGFwc2VkXCIgY2xhc3M9XCJzdHJlYW1kYXRlIGZ3LXNlbWlib2xkXCI+RnJhbWUgUmF0ZSA6IHt7ZGV0YWlscz8udGltZUVsYXBzZWR9fSBTZWM8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj4gICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIFxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJsb2FkaW5nXCIgPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IGxvYWRlciAgZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2hpbW1lclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgdGl0bGVcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBsaW5rXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgZGVzY3JpcHRpb25cIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzaGltbWVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIndyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSB0aXRsZVwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIGxpbmtcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBkZXNjcmlwdGlvblwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIm5vRGF0YVwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTEyIG1iLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5IGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlciBmbGV4LWNvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwiaW1nLXNyYyB3LTI1XCIgc3JjPVwiLi9hc3NldHMvdGFuZ28vSWNvbnMvTm9kYXRhLnN2Z1wiIGFsdD1cIlwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
|
|
75
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRnZS1jYW1lcmF2aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLXRpY2tldC11c2VyL3NyYy9saWIvY29tcG9uZW50cy9lZGdlLWNhbWVyYXZpZXcvZWRnZS1jYW1lcmF2aWV3LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLXRpY2tldC11c2VyL3NyYy9saWIvY29tcG9uZW50cy9lZGdlLWNhbWVyYXZpZXcvZWRnZS1jYW1lcmF2aWV3LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBcUIsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQzs7Ozs7QUFRNUUsTUFBTSxPQUFPLHVCQUF1QjtJQVFkO0lBQXNDO0lBUDFELE9BQU8sR0FBWSxJQUFJLENBQUM7SUFDeEIsTUFBTSxHQUFZLEtBQUssQ0FBQztJQUN4QixrQkFBa0IsQ0FBTTtJQUN4QixXQUFXLENBQU87SUFDVCxLQUFLLENBQU07SUFDcEIsYUFBYSxDQUFNO0lBRW5CLFlBQW9CLFlBQTRCLEVBQVUsRUFBcUI7UUFBM0QsaUJBQVksR0FBWixZQUFZLENBQWdCO1FBQVUsT0FBRSxHQUFGLEVBQUUsQ0FBbUI7SUFHL0UsQ0FBQztJQUNELFFBQVE7UUFDTixJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUN6QixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO0lBQ2hDLENBQUM7SUFDRCxpQkFBaUI7UUFDZixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztRQUNwQixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztRQUVwQixJQUFJLEdBQUcsR0FBRztZQUNSLE9BQU8sRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLE9BQU87WUFDNUIsSUFBSSxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDeEMsRUFBRSxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7U0FDckMsQ0FBQTtRQUVELElBQUksQ0FBQyxZQUFZLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFNBQVMsQ0FBQztZQUM5QyxJQUFJLEVBQUUsQ0FBQyxHQUFRLEVBQUUsRUFBRTtnQkFDakIsSUFBSSxHQUFHLElBQUksR0FBRyxFQUFFLElBQUksSUFBSSxHQUFHLEVBQUU7b0JBQzNCLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxHQUFHLEVBQUUsSUFBSSxDQUFDO29CQUNwQyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxDQUFBO2lCQUN4QjtZQUNILENBQUM7WUFDRCxLQUFLLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUVmLENBQUM7U0FDRixDQUFDLENBQUE7SUFDSixDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksSUFBSSxHQUFHO1lBQ1QsT0FBTyxFQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsT0FBTztZQUM3QixvQkFBb0I7U0FDckIsQ0FBQTtRQUNELElBQUksQ0FBQyxZQUFZLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQztZQUNoRCxJQUFJLEVBQUMsQ0FBQyxHQUFPLEVBQUMsRUFBRTtnQkFDZCxJQUFHLEdBQUcsSUFBRyxHQUFHLENBQUMsSUFBSSxJQUFJLEdBQUcsRUFBQztvQkFDdkIsSUFBSSxDQUFDLGFBQWEsR0FBRyxHQUFHLEVBQUUsSUFBSSxDQUFDO29CQUMvQixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztvQkFDckIsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7aUJBQ3JCO3FCQUFJO29CQUNILElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO29CQUNyQixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztpQkFDcEI7WUFDSCxDQUFDO1lBQ0QsS0FBSyxFQUFDLENBQUMsR0FBRyxFQUFDLEVBQUU7Z0JBQ1gsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7Z0JBQ3JCLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1lBQ3JCLENBQUM7U0FDRixDQUFDLENBQUE7SUFDSixDQUFDO3VHQTdEVSx1QkFBdUI7MkZBQXZCLHVCQUF1Qix1RkNScEMsaXpMQWtHQTs7MkZEMUZhLHVCQUF1QjtrQkFMbkMsU0FBUzsrQkFDRSxxQkFBcUI7bUhBU3RCLEtBQUs7c0JBQWIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgVGlja2V0c1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy90aWNrZXQtaW5mcmEuc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1lZGdlLWNhbWVyYXZpZXcnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9lZGdlLWNhbWVyYXZpZXcuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9lZGdlLWNhbWVyYXZpZXcuY29tcG9uZW50LnNjc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBFZGdlQ2FtZXJhdmlld0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgbG9hZGluZzogYm9vbGVhbiA9IHRydWU7XHJcbiAgbm9EYXRhOiBib29sZWFuID0gZmFsc2U7XHJcbiAgdmlld0VkZ2VBcHBMb2dMaXN0OiBhbnk7XHJcbiAgY3VycmVudERhdGU6IERhdGU7XHJcbiAgQElucHV0KCkgdmFsdWU6IGFueTtcclxuICBDYW1lcmFEZXRhaWxzOiBhbnk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaW5mcmFTZXJ2aWNlOiBUaWNrZXRzU2VydmljZSwgcHJpdmF0ZSBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcclxuXHJcblxyXG4gIH1cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuZ2V0Vmlld0VkZ2VBcHBMb2coKTtcclxuICAgIHRoaXMuZ2V0Q2FtZXJhSW1hZ2VzKCk7XHJcbiAgICB0aGlzLmN1cnJlbnREYXRlID0gbmV3IERhdGUoKTtcclxuICB9XHJcbiAgZ2V0Vmlld0VkZ2VBcHBMb2coKSB7XHJcbiAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy5ub0RhdGEgPSBmYWxzZTtcclxuXHJcbiAgICBsZXQgb2JqID0ge1xyXG4gICAgICBzdG9yZUlkOiB0aGlzLnZhbHVlPy5zdG9yZUlkLFxyXG4gICAgICBmcm9tOiB0aGlzLnZhbHVlPy5zdGFydFRpbWUuc2xpY2UoMCwgLTIpLFxyXG4gICAgICB0bzogdGhpcy52YWx1ZT8uZW5kVGltZS5zbGljZSgwLCAtMilcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmluZnJhU2VydmljZS52aWV3ZWRnZUFwcExvZyhvYmopLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgIGlmIChyZXMgJiYgcmVzPy5jb2RlID09IDIwMCkge1xyXG4gICAgICAgICAgdGhpcy52aWV3RWRnZUFwcExvZ0xpc3QgPSByZXM/LmRhdGE7XHJcbiAgICAgICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKVxyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAgZXJyb3I6IChlcnIpID0+IHtcclxuXHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBnZXRDYW1lcmFJbWFnZXMoKXtcclxuICAgIGxldCBkYXRhID0ge1xyXG4gICAgICBzdG9yZUlkIDogdGhpcy52YWx1ZT8uc3RvcmVJZFxyXG4gICAgICAvLyBzdG9yZUlkOlwiMjAxLTEyOVwiXHJcbiAgICB9XHJcbiAgICB0aGlzLmluZnJhU2VydmljZS5nZXRDYW1lcmFJbWFnZXMoZGF0YSkuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDoocmVzOmFueSk9PiB7XHJcbiAgICAgICAgaWYocmVzJiYgcmVzLmNvZGUgPT0gMjAwKXtcclxuICAgICAgICAgIHRoaXMuQ2FtZXJhRGV0YWlscyA9IHJlcz8uZGF0YTtcclxuICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5ub0RhdGEgPSBmYWxzZTtcclxuICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5ub0RhdGEgPSB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAgZXJyb3I6KGVycik9PiB7XHJcbiAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5ub0RhdGEgPSB0cnVlO1xyXG4gICAgICB9LFxyXG4gICAgfSlcclxuICB9XHJcblxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJjYXJkXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY2FyZC1oZWFkZXIgZmxleC1jb2x1bW4gYm9yZGVyLTBcIj5cclxuICAgICAgICA8aW1nIGNsYXNzPVwibXQtNSBtc2dwcm9maWxlXCIgc3JjPVwiLi9hc3NldHMvdGFuZ28vSW1hZ2VzL2VkZ2VhcHAgaWNvbi5zdmdcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC10aXRsZSBmbGV4LWNvbHVtblwiPlxyXG4gICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2FyZC1sYWJlbFwiPkxLU1QgLTA5LTEzMyBTdG9yZSBJbmZyYXN0cnVjdHVyZTwvc3Bhbj5cclxuICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN1Yi10aXRsZVwiPkJhc2VkIG9uIGRhdGUgOiB7e2N1cnJlbnREYXRlIHwgZGF0ZTonZGQtTU0teXknfX0gPC9zcGFuPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5XCI+XHJcbiAgICAgICAgPGRpdiAqbmdJZj1cIiFsb2FkaW5nICYmICFub0RhdGFcIj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJoZWFkaW5nIG1iLTUgZnctc2VtaWJvbGRcIj5FZGdlIEFwcCBTdGF0dXMgLSB7e3ZpZXdFZGdlQXBwTG9nTGlzdD8uYXBwU3RhdHVzID8gdmlld0VkZ2VBcHBMb2dMaXN0Py5hcHBTdGF0dXMgOictLSd9fTwvc3Bhbj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJvcmRlciBib3JkZXItZ3JheSBib3JkZXItMSByb3VuZGVkLTMgdy0xMDAgcHgtMTAgcHktMyBtdC0zIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlblwiPlxyXG4gICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC12aWV3IGQtZmxleCBmbGV4LWNvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdWItdGl0bGVcIj5BcHAgTG9naW4gVGltZTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGl0bGVcIj57e3ZpZXdFZGdlQXBwTG9nTGlzdD8uYXBwU3RhcnRUaW1lID8gdmlld0VkZ2VBcHBMb2dMaXN0Py5hcHBTdGFydFRpbWUgOictLSd9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLXZpZXcgZC1mbGV4IGZsZXgtY29sdW1uXCI+XHJcbiAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN1Yi10aXRsZVwiPkFwcCBDbG9zZSBUaW1lPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0aXRsZVwiPnt7dmlld0VkZ2VBcHBMb2dMaXN0Py5hcHBRdWl0VGltZSA/IHZpZXdFZGdlQXBwTG9nTGlzdD8uYXBwUXVpdFRpbWUgOictLSd9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLXZpZXcgZC1mbGV4IGZsZXgtY29sdW1uXCI+XHJcbiAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN1Yi10aXRsZVwiPkFwcCBDcmFzaCBUaW1lPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0aXRsZVwiPnt7dmlld0VkZ2VBcHBMb2dMaXN0Py5BcHBDcmFzaHRpbWUgPyB2aWV3RWRnZUFwcExvZ0xpc3Q/LkFwcENyYXNodGltZSA6Jy0tJ319PC9zcGFuPlxyXG4gICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm10LTEwXCI+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaGVhZGluZyBtYi01IGZ3LXNlbWlib2xkXCI+U3lzdGVtIENoZWNrIDwvc3Bhbj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJvcmRlciBib3JkZXItZ3JheSBib3JkZXItMSByb3VuZGVkLTMgdy0xMDAgcHgtMTAgcHktMyBtdC0zIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlblwiPlxyXG4gICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC12aWV3IGQtZmxleCBmbGV4LWNvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdWItdGl0bGVcIj5TeXN0ZW0gSWRsZTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGl0bGVcIj57e3ZpZXdFZGdlQXBwTG9nTGlzdD8uc2NyZWVuU3RhdHVzID92aWV3RWRnZUFwcExvZ0xpc3Q/LnNjcmVlblN0YXR1cyA6Jy0tJ319PC9zcGFuPlxyXG4gICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtdmlldyBkLWZsZXggZmxleC1jb2x1bW5cIj5cclxuICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3ViLXRpdGxlXCI+QW5pdHZpcnVzPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0aXRsZVwiPnt7dmlld0VkZ2VBcHBMb2dMaXN0Py5hbnRpVmlydXMgP3ZpZXdFZGdlQXBwTG9nTGlzdD8uYW50aVZpcnVzIDonLS0nfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC12aWV3IGQtZmxleCBmbGV4LWNvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdWItdGl0bGVcIj5GaWxlcyBQdXNoZWQ8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRpdGxlXCI+e3t2aWV3RWRnZUFwcExvZ0xpc3Q/LmZpbGVzUHVzaGVkID92aWV3RWRnZUFwcExvZ0xpc3Q/LmZpbGVzUHVzaGVkIDonLS0nfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2ICpuZ0lmPVwiIWxvYWRpbmcgJiYgIW5vRGF0YVwiIGNsYXNzPVwibXQtMTBcIj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJoZWFkaW5nIG1iLTUgZnctc2VtaWJvbGRcIj5DYW1lcmEgQ2hlY2s8L3NwYW4+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgZGV0YWlscyBvZiBDYW1lcmFEZXRhaWxzXCIgY2xhc3M9XCJjb2wtc20tNiBtdC0xMFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtc20tOVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgW25nQ2xhc3NdPVwiKGRldGFpbHM/LmlzQWN0aXZhdGVkICYmIGRldGFpbHMuaXNVcCkgPyAnYmctc3VjY2Vzcyc6J2JnLWRhbmdlcidcIiBjbGFzcz1cInctMTBweCBoLTEwcHggYm9yZGVyLTAgcm91bmRlZC0zIG1lLTJcIj48L2Rpdj48c3BhbiAqbmdJZj1cImRldGFpbHM/LmNhbWVyYU51bWJlclwiPnt7ZGV0YWlscz8uY2FtZXJhTnVtYmVyfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiZGV0YWlscz8uY2FtZXJhTmFtZVwiIGNsYXNzPVwiYmFkZ2UgYmFkZ2UtbGlnaHQtcHJpbWFyeSB0ZXh0LXByaW1hcnkgbXMtMlwiPnt7ZGV0YWlscz8uY2FtZXJhTmFtZSB8IHRpdGxlY2FzZX19IENhbWVyYTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3RyZWFtZGF0ZSBmdy1zZW1pYm9sZFwiPjxzcGFuPnt7ZGV0YWlscz8uc3RyZWFtTmFtZX19PC9zcGFuPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgIFxyXG4gICAgICAgICAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJ3LTEwMCBtaC0yMDBweCByb3VuZGVkLTMgbXQtM1wiIHNyYz0ne3tkZXRhaWxzPy50aHVtYm5haWxJbWFnZX19Jz5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXQtMyBkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW5cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJkZXRhaWxzPy5jYXB0dXJlQXRcIiBjbGFzcz1cInN0cmVhbWRhdGUgZnctc2VtaWJvbGRcIj5EYXRlIEFkZGVkIDoge3tkZXRhaWxzPy5jYXB0dXJlQXQgfCBjdXN0b21EYXRlRm9ybWF0fX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiZGV0YWlscz8udGltZUVsYXBzZWRcIiBjbGFzcz1cInN0cmVhbWRhdGUgZnctc2VtaWJvbGRcIj5GcmFtZSBSYXRlIDoge3tkZXRhaWxzPy50aW1lRWxhcHNlZH19IFNlYzwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PiAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgXHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImxvYWRpbmdcIiA+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgbG9hZGVyICBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzaGltbWVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIndyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSB0aXRsZVwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIGxpbmtcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBkZXNjcmlwdGlvblwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNoaW1tZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwid3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIHRpdGxlXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgbGlua1wiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIGRlc2NyaXB0aW9uXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibm9EYXRhIHx8ICFDYW1lcmFEZXRhaWxzLmxlbmd0aFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTEyIG1iLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5IGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlciBmbGV4LWNvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwiaW1nLXNyYyB3LTI1XCIgc3JjPVwiLi9hc3NldHMvdGFuZ28vSWNvbnMvTm9kYXRhLnN2Z1wiIGFsdD1cIlwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
|