@spartacus/order
Version:
Order feature library for Spartacus
26 lines • 14.8 kB
JavaScript
import { Component } from '@angular/core';
import * as i0 from "@angular/core";
import * as i1 from "@ng-bootstrap/ng-bootstrap";
import * as i2 from "@spartacus/order/root";
import * as i3 from "@spartacus/storefront";
import * as i4 from "@angular/common";
import * as i5 from "@spartacus/core";
export class TrackingEventsComponent {
constructor(activeModal, userOrderService) {
this.activeModal = activeModal;
this.userOrderService = userOrderService;
}
ngOnDestroy() {
this.userOrderService.clearConsignmentTracking();
}
}
TrackingEventsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: TrackingEventsComponent, deps: [{ token: i1.NgbActiveModal }, { token: i2.OrderFacade }], target: i0.ɵɵFactoryTarget.Component });
TrackingEventsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.0.5", type: TrackingEventsComponent, selector: "cx-tracking-events", ngImport: i0, template: "<div class=\"cx-consignment-tracking-dialog\">\n <!-- Modal Header -->\n <ng-container *ngIf=\"tracking$ | async as consignmentTracking; else loading\">\n <div class=\"header modal-header\">\n <div class=\"title modal-title\">\n {{ 'orderDetails.consignmentTracking.dialog.header' | cxTranslate }}\n </div>\n <button\n type=\"button\"\n class=\"close\"\n [attr.aria-label]=\"'common.close' | cxTranslate\"\n (click)=\"activeModal.dismiss('Cross click')\"\n >\n <span aria-hidden=\"true\">×</span>\n </button>\n </div>\n <!-- Modal Body -->\n <!-- shipment header -->\n <ng-container\n *ngIf=\"\n consignmentTracking?.carrierDetails && consignmentTracking?.trackingID;\n else noTracking\n \"\n >\n <div class=\"shipment-heading\">\n <div class=\"row\">\n <div class=\"col-sm-12 col-md-6\">\n <div class=\"shipment-title\">\n {{\n 'orderDetails.consignmentTracking.dialog.shipped' | cxTranslate\n }}\n </div>\n <div class=\"shipment-content\">\n {{ shipDate | cxDate: 'medium' }}\n </div>\n </div>\n <div class=\"col-sm-12 col-md-6\">\n <div class=\"shipment-title\">\n {{\n 'orderDetails.consignmentTracking.dialog.estimate' | cxTranslate\n }}\n </div>\n <div class=\"shipment-content\">\n {{ consignmentTracking?.targetArrivalDate | cxDate: 'medium' }}\n </div>\n </div>\n </div>\n\n <div class=\"row\">\n <div class=\"col-sm-12 col-md-6\">\n <div class=\"shipment-title\">\n {{\n 'orderDetails.consignmentTracking.dialog.carrier' | cxTranslate\n }}\n </div>\n <div class=\"shipment-content\">\n {{ consignmentTracking?.carrierDetails?.name }}\n </div>\n </div>\n <div class=\"col-sm-12 col-md-6\">\n <div class=\"shipment-title\">\n {{\n 'orderDetails.consignmentTracking.dialog.trackingId'\n | cxTranslate\n }}\n </div>\n <div class=\"shipment-content\">\n <ng-container *ngIf=\"consignmentTracking?.trackingUrl\">\n <a target=\"_blank\" [href]=\"consignmentTracking.trackingUrl\">{{\n consignmentTracking?.trackingID\n }}</a>\n </ng-container>\n <ng-container *ngIf=\"!consignmentTracking?.trackingUrl\">\n <label>\n {{ consignmentTracking?.trackingID }}\n </label>\n </ng-container>\n </div>\n </div>\n </div>\n </div>\n </ng-container>\n\n <!-- tracking events -->\n <div class=\"events modal-body\">\n <ng-container\n *ngFor=\"let consignmentEvent of consignmentTracking.trackingEvents\"\n >\n <div class=\"event-body\">\n <div class=\"event-content\">\n {{ consignmentEvent.eventDate | cxDate: 'medium' }}\n </div>\n <div class=\"event-title\">\n {{ consignmentEvent.referenceCode }}\n </div>\n <div class=\"event-content\">{{ consignmentEvent.detail }}</div>\n <div class=\"event-city\">\n location: {{ consignmentEvent.location }}\n </div>\n </div>\n </ng-container>\n </div>\n </ng-container>\n\n <ng-template #noTracking>\n <div class=\"no-tracking-heading\">\n <div class=\"shipment-content\">\n {{ 'orderDetails.consignmentTracking.dialog.noTracking' | cxTranslate }}\n </div>\n </div>\n </ng-template>\n\n <ng-template #loading>\n <div class=\"tracking-loading\">\n <div class=\"header modal-header\">\n <div class=\"title modal-title\">\n {{\n 'orderDetails.consignmentTracking.dialog.loadingHeader'\n | cxTranslate\n }}\n </div>\n <button\n type=\"button\"\n class=\"close btn-dismiss\"\n [attr.aria-label]=\"'common.close' | cxTranslate\"\n (click)=\"activeModal.dismiss('Cross click')\"\n >\n <span aria-hidden=\"true\">×</span>\n </button>\n </div>\n <!-- Modal Body -->\n <div class=\"body modal-body\">\n <div class=\"row\">\n <div class=\"col-sm-12\">\n <cx-spinner></cx-spinner>\n </div>\n </div>\n </div>\n </div>\n </ng-template>\n</div>\n", components: [{ type: i3.SpinnerComponent, selector: "cx-spinner" }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "async": i4.AsyncPipe, "cxTranslate": i5.TranslatePipe, "cxDate": i5.CxDatePipe } });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: TrackingEventsComponent, decorators: [{
type: Component,
args: [{
selector: 'cx-tracking-events',
templateUrl: './tracking-events.component.html',
}]
}], ctorParameters: function () { return [{ type: i1.NgbActiveModal }, { type: i2.OrderFacade }]; } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhY2tpbmctZXZlbnRzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2ZlYXR1cmUtbGlicy9vcmRlci9jb21wb25lbnRzL29yZGVyLWRldGFpbHMvb3JkZXItZGV0YWlsLWl0ZW1zL2NvbnNpZ25tZW50LXRyYWNraW5nL3RyYWNraW5nLWV2ZW50cy90cmFja2luZy1ldmVudHMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vZmVhdHVyZS1saWJzL29yZGVyL2NvbXBvbmVudHMvb3JkZXItZGV0YWlscy9vcmRlci1kZXRhaWwtaXRlbXMvY29uc2lnbm1lbnQtdHJhY2tpbmcvdHJhY2tpbmctZXZlbnRzL3RyYWNraW5nLWV2ZW50cy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFhLE1BQU0sZUFBZSxDQUFDOzs7Ozs7O0FBU3JELE1BQU0sT0FBTyx1QkFBdUI7SUFLbEMsWUFDUyxXQUEyQixFQUMxQixnQkFBNkI7UUFEOUIsZ0JBQVcsR0FBWCxXQUFXLENBQWdCO1FBQzFCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBYTtJQUNwQyxDQUFDO0lBRUosV0FBVztRQUNULElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO0lBQ25ELENBQUM7O29IQVpVLHVCQUF1Qjt3R0FBdkIsdUJBQXVCLDBEQ1RwQyxxbUpBNklBOzJGRHBJYSx1QkFBdUI7a0JBSm5DLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLG9CQUFvQjtvQkFDOUIsV0FBVyxFQUFFLGtDQUFrQztpQkFDaEQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmdiQWN0aXZlTW9kYWwgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XG5pbXBvcnQgeyBDb25zaWdubWVudFRyYWNraW5nLCBPcmRlckZhY2FkZSB9IGZyb20gJ0BzcGFydGFjdXMvb3JkZXIvcm9vdCc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2N4LXRyYWNraW5nLWV2ZW50cycsXG4gIHRlbXBsYXRlVXJsOiAnLi90cmFja2luZy1ldmVudHMuY29tcG9uZW50Lmh0bWwnLFxufSlcbmV4cG9ydCBjbGFzcyBUcmFja2luZ0V2ZW50c0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIHRyYWNraW5nJDogT2JzZXJ2YWJsZTxDb25zaWdubWVudFRyYWNraW5nPjtcbiAgc2hpcERhdGU6IERhdGU7XG4gIGNvbnNpZ25tZW50Q29kZTogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBhY3RpdmVNb2RhbDogTmdiQWN0aXZlTW9kYWwsXG4gICAgcHJpdmF0ZSB1c2VyT3JkZXJTZXJ2aWNlOiBPcmRlckZhY2FkZVxuICApIHt9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy51c2VyT3JkZXJTZXJ2aWNlLmNsZWFyQ29uc2lnbm1lbnRUcmFja2luZygpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiY3gtY29uc2lnbm1lbnQtdHJhY2tpbmctZGlhbG9nXCI+XG4gIDwhLS0gTW9kYWwgSGVhZGVyIC0tPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwidHJhY2tpbmckIHwgYXN5bmMgYXMgY29uc2lnbm1lbnRUcmFja2luZzsgZWxzZSBsb2FkaW5nXCI+XG4gICAgPGRpdiBjbGFzcz1cImhlYWRlciBtb2RhbC1oZWFkZXJcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJ0aXRsZSBtb2RhbC10aXRsZVwiPlxuICAgICAgICB7eyAnb3JkZXJEZXRhaWxzLmNvbnNpZ25tZW50VHJhY2tpbmcuZGlhbG9nLmhlYWRlcicgfCBjeFRyYW5zbGF0ZSB9fVxuICAgICAgPC9kaXY+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICBjbGFzcz1cImNsb3NlXCJcbiAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCInY29tbW9uLmNsb3NlJyB8IGN4VHJhbnNsYXRlXCJcbiAgICAgICAgKGNsaWNrKT1cImFjdGl2ZU1vZGFsLmRpc21pc3MoJ0Nyb3NzIGNsaWNrJylcIlxuICAgICAgPlxuICAgICAgICA8c3BhbiBhcmlhLWhpZGRlbj1cInRydWVcIj4mdGltZXM7PC9zcGFuPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gICAgPCEtLSBNb2RhbCBCb2R5IC0tPlxuICAgIDwhLS0gc2hpcG1lbnQgaGVhZGVyIC0tPlxuICAgIDxuZy1jb250YWluZXJcbiAgICAgICpuZ0lmPVwiXG4gICAgICAgIGNvbnNpZ25tZW50VHJhY2tpbmc/LmNhcnJpZXJEZXRhaWxzICYmIGNvbnNpZ25tZW50VHJhY2tpbmc/LnRyYWNraW5nSUQ7XG4gICAgICAgIGVsc2Ugbm9UcmFja2luZ1xuICAgICAgXCJcbiAgICA+XG4gICAgICA8ZGl2IGNsYXNzPVwic2hpcG1lbnQtaGVhZGluZ1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1zbS0xMiBjb2wtbWQtNlwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNoaXBtZW50LXRpdGxlXCI+XG4gICAgICAgICAgICAgIHt7XG4gICAgICAgICAgICAgICAgJ29yZGVyRGV0YWlscy5jb25zaWdubWVudFRyYWNraW5nLmRpYWxvZy5zaGlwcGVkJyB8IGN4VHJhbnNsYXRlXG4gICAgICAgICAgICAgIH19XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzaGlwbWVudC1jb250ZW50XCI+XG4gICAgICAgICAgICAgIHt7IHNoaXBEYXRlIHwgY3hEYXRlOiAnbWVkaXVtJyB9fVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1zbS0xMiBjb2wtbWQtNlwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNoaXBtZW50LXRpdGxlXCI+XG4gICAgICAgICAgICAgIHt7XG4gICAgICAgICAgICAgICAgJ29yZGVyRGV0YWlscy5jb25zaWdubWVudFRyYWNraW5nLmRpYWxvZy5lc3RpbWF0ZScgfCBjeFRyYW5zbGF0ZVxuICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2hpcG1lbnQtY29udGVudFwiPlxuICAgICAgICAgICAgICB7eyBjb25zaWdubWVudFRyYWNraW5nPy50YXJnZXRBcnJpdmFsRGF0ZSB8IGN4RGF0ZTogJ21lZGl1bScgfX1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1zbS0xMiBjb2wtbWQtNlwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNoaXBtZW50LXRpdGxlXCI+XG4gICAgICAgICAgICAgIHt7XG4gICAgICAgICAgICAgICAgJ29yZGVyRGV0YWlscy5jb25zaWdubWVudFRyYWNraW5nLmRpYWxvZy5jYXJyaWVyJyB8IGN4VHJhbnNsYXRlXG4gICAgICAgICAgICAgIH19XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzaGlwbWVudC1jb250ZW50XCI+XG4gICAgICAgICAgICAgIHt7IGNvbnNpZ25tZW50VHJhY2tpbmc/LmNhcnJpZXJEZXRhaWxzPy5uYW1lIH19XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXNtLTEyIGNvbC1tZC02XCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2hpcG1lbnQtdGl0bGVcIj5cbiAgICAgICAgICAgICAge3tcbiAgICAgICAgICAgICAgICAnb3JkZXJEZXRhaWxzLmNvbnNpZ25tZW50VHJhY2tpbmcuZGlhbG9nLnRyYWNraW5nSWQnXG4gICAgICAgICAgICAgICAgICB8IGN4VHJhbnNsYXRlXG4gICAgICAgICAgICAgIH19XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzaGlwbWVudC1jb250ZW50XCI+XG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjb25zaWdubWVudFRyYWNraW5nPy50cmFja2luZ1VybFwiPlxuICAgICAgICAgICAgICAgIDxhIHRhcmdldD1cIl9ibGFua1wiIFtocmVmXT1cImNvbnNpZ25tZW50VHJhY2tpbmcudHJhY2tpbmdVcmxcIj57e1xuICAgICAgICAgICAgICAgICAgY29uc2lnbm1lbnRUcmFja2luZz8udHJhY2tpbmdJRFxuICAgICAgICAgICAgICAgIH19PC9hPlxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFjb25zaWdubWVudFRyYWNraW5nPy50cmFja2luZ1VybFwiPlxuICAgICAgICAgICAgICAgIDxsYWJlbD5cbiAgICAgICAgICAgICAgICAgIHt7IGNvbnNpZ25tZW50VHJhY2tpbmc/LnRyYWNraW5nSUQgfX1cbiAgICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPCEtLSB0cmFja2luZyBldmVudHMgLS0+XG4gICAgPGRpdiBjbGFzcz1cImV2ZW50cyBtb2RhbC1ib2R5XCI+XG4gICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICpuZ0Zvcj1cImxldCBjb25zaWdubWVudEV2ZW50IG9mIGNvbnNpZ25tZW50VHJhY2tpbmcudHJhY2tpbmdFdmVudHNcIlxuICAgICAgPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZXZlbnQtYm9keVwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJldmVudC1jb250ZW50XCI+XG4gICAgICAgICAgICB7eyBjb25zaWdubWVudEV2ZW50LmV2ZW50RGF0ZSB8IGN4RGF0ZTogJ21lZGl1bScgfX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXZlbnQtdGl0bGVcIj5cbiAgICAgICAgICAgIHt7IGNvbnNpZ25tZW50RXZlbnQucmVmZXJlbmNlQ29kZSB9fVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJldmVudC1jb250ZW50XCI+e3sgY29uc2lnbm1lbnRFdmVudC5kZXRhaWwgfX08L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXZlbnQtY2l0eVwiPlxuICAgICAgICAgICAgbG9jYXRpb246IHt7IGNvbnNpZ25tZW50RXZlbnQubG9jYXRpb24gfX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbiAgPC9uZy1jb250YWluZXI+XG5cbiAgPG5nLXRlbXBsYXRlICNub1RyYWNraW5nPlxuICAgIDxkaXYgY2xhc3M9XCJuby10cmFja2luZy1oZWFkaW5nXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwic2hpcG1lbnQtY29udGVudFwiPlxuICAgICAgICB7eyAnb3JkZXJEZXRhaWxzLmNvbnNpZ25tZW50VHJhY2tpbmcuZGlhbG9nLm5vVHJhY2tpbmcnIHwgY3hUcmFuc2xhdGUgfX1cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L25nLXRlbXBsYXRlPlxuXG4gIDxuZy10ZW1wbGF0ZSAjbG9hZGluZz5cbiAgICA8ZGl2IGNsYXNzPVwidHJhY2tpbmctbG9hZGluZ1wiPlxuICAgICAgPGRpdiBjbGFzcz1cImhlYWRlciBtb2RhbC1oZWFkZXJcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInRpdGxlIG1vZGFsLXRpdGxlXCI+XG4gICAgICAgICAge3tcbiAgICAgICAgICAgICdvcmRlckRldGFpbHMuY29uc2lnbm1lbnRUcmFja2luZy5kaWFsb2cubG9hZGluZ0hlYWRlcidcbiAgICAgICAgICAgICAgfCBjeFRyYW5zbGF0ZVxuICAgICAgICAgIH19XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgY2xhc3M9XCJjbG9zZSBidG4tZGlzbWlzc1wiXG4gICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCInY29tbW9uLmNsb3NlJyB8IGN4VHJhbnNsYXRlXCJcbiAgICAgICAgICAoY2xpY2spPVwiYWN0aXZlTW9kYWwuZGlzbWlzcygnQ3Jvc3MgY2xpY2snKVwiXG4gICAgICAgID5cbiAgICAgICAgICA8c3BhbiBhcmlhLWhpZGRlbj1cInRydWVcIj4mdGltZXM7PC9zcGFuPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPCEtLSBNb2RhbCBCb2R5IC0tPlxuICAgICAgPGRpdiBjbGFzcz1cImJvZHkgbW9kYWwtYm9keVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1zbS0xMlwiPlxuICAgICAgICAgICAgPGN4LXNwaW5uZXI+PC9jeC1zcGlubmVyPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L25nLXRlbXBsYXRlPlxuPC9kaXY+XG4iXX0=