e5core-angular-ui
Version:
e5 Anywhere Angular UI
148 lines • 14 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { Component, ChangeDetectionStrategy, Input, ViewChild, Output, EventEmitter, ChangeDetectorRef } from '@angular/core';
import { BehaviorSubject } from 'rxjs';
import { E5ConfigurationService as e5Config } from 'e5core-angular-services';
import { E5coreUiWorkAttachmentsMaterialComponent } from './component/e5core-ui-work-attachments-material.component';
import { UiStyleService } from '../../services/ui-style.service';
// <e5core-ui-work-attachments-box *ngSwitchCase='0' [workItem$]='workItem$' [readonly]='readonly' [pagesizes]='pagesizes'></e5core-ui-work-attachments-box>
// <e5core-ui-work-attachments-bootstrap *ngSwitchCase='1' [workItem$]='workItem$' [readonly]='readonly' [pagesizes]='pagesizes'></e5core-ui-work-attachments-bootstrap>
export class E5coreUiWorkAttachmentsComponent {
/**
* @param {?} style
* @param {?} config
* @param {?} changeDetectorRef
*/
constructor(style, config, changeDetectorRef) {
this.style = style;
this.config = config;
this.changeDetectorRef = changeDetectorRef;
this.attachmentDownloadEvent = new EventEmitter();
this.attachmentSelectEvent = new EventEmitter();
this.downloadUrl = '';
}
/**
* @return {?}
*/
ngOnInit() {
if (typeof this.workItem$ == 'undefined') {
console.error('e5core-ui-work-attachments [workItem$] must have a BehaviorSubject<WorkItemModel>');
return;
}
if (typeof this.workItem$ != 'undefined') {
this.workItem$.subscribe(w => {
this.updateData();
});
}
if (typeof this.fileUpload$ != 'undefined') {
this.fileUpload$.subscribe(w => {
this.updateData();
});
}
}
/**
* @return {?}
*/
ngAfterViewInit() {
}
/**
* @return {?}
*/
refresh() {
this.workAttachmentsMaterialComponent.refresh();
}
/**
* @param {?} event
* @return {?}
*/
onAttachmentDownload(event) {
/** @type {?} */
var baseUrl = this.config.settings.apiServer.baseUrl;
/** @type {?} */
var scope = this.config.settings.apiServer.scope;
/** @type {?} */
var w = this.workItem$.getValue();
this.downloadUrl = `${baseUrl}/${scope}/api/ui/Attachment/Download/${w.workId}/${event.element.Id}`;
this.changeDetectorRef.detectChanges();
setTimeout(() => { this.downloadUrl = ""; }, 200);
this.attachmentDownloadEvent.emit(event);
}
/**
* @param {?} viewerDisplayEvent
* @return {?}
*/
onAttachmentSelect(viewerDisplayEvent) {
this.attachmentSelectEvent.emit(viewerDisplayEvent);
}
/**
* @private
* @return {?}
*/
updateData() {
}
}
E5coreUiWorkAttachmentsComponent.decorators = [
{ type: Component, args: [{
selector: 'e5core-ui-work-attachments',
template: `
<span *ngIf="workItem$" [ngSwitch]="style.current()">
<e5core-ui-work-attachments-material *ngSwitchCase='2' [workItem$]='workItem$' [readonly]='readonly' [pagesizes]='pagesizes' (attachmentDownloadEvent)='onAttachmentDownload($event)' (attachmentSelectEvent)='onAttachmentSelect($event)' ></e5core-ui-work-attachments-material>
</span>
<div *ngIf="!(workItem$)" class="e5core-component-error"><e5core-ui-work-attachments> [workItem$] must have a BehaviorSubject<WorkItemModel></div>
<iframe width="0" height="0" *ngIf="!(downloadUrl == '')" [src]="downloadUrl | safe" style="width:0;height:0;border:0; border:none; position: absolute;"></iframe>`,
changeDetection: ChangeDetectionStrategy.OnPush
}] }
];
/** @nocollapse */
E5coreUiWorkAttachmentsComponent.ctorParameters = () => [
{ type: UiStyleService },
{ type: e5Config },
{ type: ChangeDetectorRef }
];
E5coreUiWorkAttachmentsComponent.propDecorators = {
workItem$: [{ type: Input }],
fileUpload$: [{ type: Input }],
readonly: [{ type: Input }],
pagesizes: [{ type: Input }],
attachmentDownloadEvent: [{ type: Output }],
attachmentSelectEvent: [{ type: Output }],
workAttachmentsMaterialComponent: [{ type: ViewChild, args: [E5coreUiWorkAttachmentsMaterialComponent,] }]
};
if (false) {
/** @type {?} */
E5coreUiWorkAttachmentsComponent.prototype.workItem$;
/** @type {?} */
E5coreUiWorkAttachmentsComponent.prototype.fileUpload$;
/** @type {?} */
E5coreUiWorkAttachmentsComponent.prototype.readonly;
/** @type {?} */
E5coreUiWorkAttachmentsComponent.prototype.pagesizes;
/** @type {?} */
E5coreUiWorkAttachmentsComponent.prototype.attachmentDownloadEvent;
/** @type {?} */
E5coreUiWorkAttachmentsComponent.prototype.attachmentSelectEvent;
/** @type {?} */
E5coreUiWorkAttachmentsComponent.prototype.workId;
/** @type {?} */
E5coreUiWorkAttachmentsComponent.prototype.downloadUrl;
/**
* @type {?}
* @private
*/
E5coreUiWorkAttachmentsComponent.prototype.workAttachmentsMaterialComponent;
/** @type {?} */
E5coreUiWorkAttachmentsComponent.prototype.style;
/**
* @type {?}
* @private
*/
E5coreUiWorkAttachmentsComponent.prototype.config;
/**
* @type {?}
* @private
*/
E5coreUiWorkAttachmentsComponent.prototype.changeDetectorRef;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZTVjb3JlLXVpLXdvcmstYXR0YWNobWVudHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vZTVjb3JlLWFuZ3VsYXItdWkvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy9lNWNvcmUtdWktd29yay1hdHRhY2htZW50cy9lNWNvcmUtdWktd29yay1hdHRhY2htZW50cy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsdUJBQXVCLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBaUIsTUFBTSxFQUFFLFlBQVksRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNySixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxzQkFBc0IsSUFBSSxRQUFRLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUc3RSxPQUFPLEVBQUUsd0NBQXdDLEVBQUUsTUFBTSwyREFBMkQsQ0FBQztBQUVySCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saUNBQWlDLENBQUM7OztBQWdCakUsTUFBTSxPQUFPLGdDQUFnQzs7Ozs7O0lBYzNDLFlBQ1MsS0FBb0IsRUFDbkIsTUFBZ0IsRUFDaEIsaUJBQW9DO1FBRnJDLFVBQUssR0FBTCxLQUFLLENBQWU7UUFDbkIsV0FBTSxHQUFOLE1BQU0sQ0FBVTtRQUNoQixzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBWHBDLDRCQUF1QixHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDN0MsMEJBQXFCLEdBQUcsSUFBSSxZQUFZLEVBQXNCLENBQUM7UUFFekUsZ0JBQVcsR0FBUyxFQUFFLENBQUM7SUFTbkIsQ0FBQzs7OztJQUVMLFFBQVE7UUFDTixJQUFJLE9BQU8sSUFBSSxDQUFDLFNBQVMsSUFBSSxXQUFXLEVBQUU7WUFDeEMsT0FBTyxDQUFDLEtBQUssQ0FBQyxtRkFBbUYsQ0FBQyxDQUFDO1lBQ25HLE9BQVE7U0FDVDtRQUVELElBQUksT0FBTyxJQUFJLENBQUMsU0FBUyxJQUFJLFdBQVcsRUFBRTtZQUN4QyxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FDdEIsQ0FBQyxDQUFDLEVBQUU7Z0JBQ0YsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ3BCLENBQUMsQ0FDRixDQUFBO1NBQ0Y7UUFFRCxJQUFJLE9BQU8sSUFBSSxDQUFDLFdBQVcsSUFBSSxXQUFXLEVBQUU7WUFDMUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQ3hCLENBQUMsQ0FBQyxFQUFFO2dCQUNGLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNwQixDQUFDLENBQ0YsQ0FBQTtTQUNGO0lBQ0gsQ0FBQzs7OztJQUVELGVBQWU7SUFDZixDQUFDOzs7O0lBRUQsT0FBTztRQUNMLElBQUksQ0FBQyxnQ0FBZ0MsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNsRCxDQUFDOzs7OztJQUVELG9CQUFvQixDQUFDLEtBQUs7O1lBQ3BCLE9BQU8sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsT0FBTzs7WUFDaEQsS0FBSyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxLQUFLOztZQUU1QyxDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUU7UUFDakMsSUFBSSxDQUFDLFdBQVcsR0FBRyxHQUFHLE9BQU8sSUFBSSxLQUFLLCtCQUErQixDQUFDLENBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsRUFBRSxFQUFFLENBQUM7UUFFcEcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3ZDLFVBQVUsQ0FBQyxHQUFFLEVBQUUsR0FBRSxJQUFJLENBQUMsV0FBVyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUVoRCxJQUFJLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNDLENBQUM7Ozs7O0lBRUQsa0JBQWtCLENBQUMsa0JBQWtCO1FBQ25DLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQztJQUN0RCxDQUFDOzs7OztJQUVPLFVBQVU7SUFDbEIsQ0FBQzs7O1lBOUVGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsNEJBQTRCO2dCQUN0QyxRQUFRLEVBQUU7Ozs7O3FLQUt5SjtnQkFDbkssZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07YUFDaEQ7Ozs7WUFmUSxjQUFjO1lBTFksUUFBUTtZQUZpRSxpQkFBaUI7Ozt3QkF5QjFILEtBQUs7MEJBQ0wsS0FBSzt1QkFDTCxLQUFLO3dCQUNMLEtBQUs7c0NBQ0wsTUFBTTtvQ0FDTixNQUFNOytDQUlOLFNBQVMsU0FBQyx3Q0FBd0M7Ozs7SUFUbkQscURBQW9EOztJQUNwRCx1REFBdUQ7O0lBQ3ZELG9EQUE2Qjs7SUFDN0IscURBQThCOztJQUM5QixtRUFBdUQ7O0lBQ3ZELGlFQUF5RTs7SUFDekUsa0RBQWlCOztJQUNqQix1REFBdUI7Ozs7O0lBRXZCLDRFQUNtRjs7SUFHakYsaURBQTJCOzs7OztJQUMzQixrREFBd0I7Ozs7O0lBQ3hCLDZEQUE0QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgSW5wdXQsIFZpZXdDaGlsZCwgQWZ0ZXJWaWV3SW5pdCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIENoYW5nZURldGVjdG9yUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEU1Q29uZmlndXJhdGlvblNlcnZpY2UgYXMgZTVDb25maWcgfSBmcm9tICdlNWNvcmUtYW5ndWxhci1zZXJ2aWNlcyc7XG5pbXBvcnQgeyBXb3JrSXRlbU1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3dvcmstaXRlbSc7XG5pbXBvcnQgeyBGaWxlVXBsb2FkTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvZmlsZS11cGxvYWQubW9kZWwnO1xuaW1wb3J0IHsgRTVjb3JlVWlXb3JrQXR0YWNobWVudHNNYXRlcmlhbENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50L2U1Y29yZS11aS13b3JrLWF0dGFjaG1lbnRzLW1hdGVyaWFsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBWaWV3ZXJEaXNwbGF5RXZlbnQgfSBmcm9tICcuLi8uLi9ldmVudHMvdmlld2VyLWRpc3BsYXktZXZlbnQnO1xuaW1wb3J0IHsgVWlTdHlsZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy91aS1zdHlsZS5zZXJ2aWNlJztcblxuLy8gPGU1Y29yZS11aS13b3JrLWF0dGFjaG1lbnRzLWJveCAqbmdTd2l0Y2hDYXNlPScwJyBbd29ya0l0ZW0kXT0nd29ya0l0ZW0kJyBbcmVhZG9ubHldPSdyZWFkb25seScgW3BhZ2VzaXplc109J3BhZ2VzaXplcyc+PC9lNWNvcmUtdWktd29yay1hdHRhY2htZW50cy1ib3g+XG4vLyA8ZTVjb3JlLXVpLXdvcmstYXR0YWNobWVudHMtYm9vdHN0cmFwICpuZ1N3aXRjaENhc2U9JzEnIFt3b3JrSXRlbSRdPSd3b3JrSXRlbSQnIFtyZWFkb25seV09J3JlYWRvbmx5JyBbcGFnZXNpemVzXT0ncGFnZXNpemVzJz48L2U1Y29yZS11aS13b3JrLWF0dGFjaG1lbnRzLWJvb3RzdHJhcD5cblxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdlNWNvcmUtdWktd29yay1hdHRhY2htZW50cycsXG4gIHRlbXBsYXRlOiBgXG4gIDxzcGFuICpuZ0lmPVwid29ya0l0ZW0kXCIgW25nU3dpdGNoXT1cInN0eWxlLmN1cnJlbnQoKVwiPlxuICAgIDxlNWNvcmUtdWktd29yay1hdHRhY2htZW50cy1tYXRlcmlhbCAqbmdTd2l0Y2hDYXNlPScyJyBbd29ya0l0ZW0kXT0nd29ya0l0ZW0kJyBbcmVhZG9ubHldPSdyZWFkb25seScgW3BhZ2VzaXplc109J3BhZ2VzaXplcycgKGF0dGFjaG1lbnREb3dubG9hZEV2ZW50KT0nb25BdHRhY2htZW50RG93bmxvYWQoJGV2ZW50KScgKGF0dGFjaG1lbnRTZWxlY3RFdmVudCk9J29uQXR0YWNobWVudFNlbGVjdCgkZXZlbnQpJyA+PC9lNWNvcmUtdWktd29yay1hdHRhY2htZW50cy1tYXRlcmlhbD5cbiAgPC9zcGFuPlxuICA8ZGl2ICpuZ0lmPVwiISh3b3JrSXRlbSQpXCIgY2xhc3M9XCJlNWNvcmUtY29tcG9uZW50LWVycm9yXCI+Jmx0O2U1Y29yZS11aS13b3JrLWF0dGFjaG1lbnRzJmd0OyBbd29ya0l0ZW0kXSBtdXN0IGhhdmUgYSBCZWhhdmlvclN1YmplY3QmbHQ7V29ya0l0ZW1Nb2RlbCZndDs8L2Rpdj5cbiAgPGlmcmFtZSB3aWR0aD1cIjBcIiBoZWlnaHQ9XCIwXCIgKm5nSWY9XCIhKGRvd25sb2FkVXJsID09ICcnKVwiIFtzcmNdPVwiZG93bmxvYWRVcmwgfCBzYWZlXCIgc3R5bGU9XCJ3aWR0aDowO2hlaWdodDowO2JvcmRlcjowOyBib3JkZXI6bm9uZTsgcG9zaXRpb246IGFic29sdXRlO1wiPjwvaWZyYW1lPmAsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIEU1Y29yZVVpV29ya0F0dGFjaG1lbnRzQ29tcG9uZW50ICBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uSW5pdCB7XG5cbiAgQElucHV0KCkgd29ya0l0ZW0kIDogQmVoYXZpb3JTdWJqZWN0PFdvcmtJdGVtTW9kZWw+O1xuICBASW5wdXQoKSBmaWxlVXBsb2FkJDogQmVoYXZpb3JTdWJqZWN0PEZpbGVVcGxvYWRNb2RlbD47XG4gIEBJbnB1dCgpIHJlYWRvbmx5IDogYm9vbGVhbiA7XG4gIEBJbnB1dCgpIHBhZ2VzaXplcyA6IG51bWJlcltdOyAgXG4gIEBPdXRwdXQoKSBhdHRhY2htZW50RG93bmxvYWRFdmVudCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIGF0dGFjaG1lbnRTZWxlY3RFdmVudCA9IG5ldyBFdmVudEVtaXR0ZXI8Vmlld2VyRGlzcGxheUV2ZW50PigpO1xuICB3b3JrSWQgOiBzdHJpbmcgO1xuICBkb3dubG9hZFVybCA6IGFueSA9ICcnO1xuICBcbiAgQFZpZXdDaGlsZChFNWNvcmVVaVdvcmtBdHRhY2htZW50c01hdGVyaWFsQ29tcG9uZW50KVxuICBwcml2YXRlIHdvcmtBdHRhY2htZW50c01hdGVyaWFsQ29tcG9uZW50OiBFNWNvcmVVaVdvcmtBdHRhY2htZW50c01hdGVyaWFsQ29tcG9uZW50O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBzdHlsZTpVaVN0eWxlU2VydmljZSwgXG4gICAgcHJpdmF0ZSBjb25maWc6IGU1Q29uZmlnLFxuICAgIHByaXZhdGUgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmXG4gICkgeyB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgaWYgKHR5cGVvZiB0aGlzLndvcmtJdGVtJCA9PSAndW5kZWZpbmVkJykge1xuICAgICAgY29uc29sZS5lcnJvcignZTVjb3JlLXVpLXdvcmstYXR0YWNobWVudHMgW3dvcmtJdGVtJF0gbXVzdCBoYXZlIGEgQmVoYXZpb3JTdWJqZWN0PFdvcmtJdGVtTW9kZWw+Jyk7XG4gICAgICByZXR1cm4gO1xuICAgIH1cblxuICAgIGlmICh0eXBlb2YgdGhpcy53b3JrSXRlbSQgIT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIHRoaXMud29ya0l0ZW0kLnN1YnNjcmliZShcbiAgICAgICAgdyA9PiB7XG4gICAgICAgICAgdGhpcy51cGRhdGVEYXRhKCk7XG4gICAgICAgIH1cbiAgICAgIClcbiAgICB9XG4gICAgXG4gICAgaWYgKHR5cGVvZiB0aGlzLmZpbGVVcGxvYWQkICE9ICd1bmRlZmluZWQnKSB7XG4gICAgICB0aGlzLmZpbGVVcGxvYWQkLnN1YnNjcmliZShcbiAgICAgICAgdyA9PiB7XG4gICAgICAgICAgdGhpcy51cGRhdGVEYXRhKCk7XG4gICAgICAgIH1cbiAgICAgIClcbiAgICB9XG4gIH1cbiAgXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgfVxuXG4gIHJlZnJlc2goKSB7XG4gICAgdGhpcy53b3JrQXR0YWNobWVudHNNYXRlcmlhbENvbXBvbmVudC5yZWZyZXNoKCk7XG4gIH1cblxuICBvbkF0dGFjaG1lbnREb3dubG9hZChldmVudCkge1xuICAgIHZhciBiYXNlVXJsID0gdGhpcy5jb25maWcuc2V0dGluZ3MuYXBpU2VydmVyLmJhc2VVcmw7XG4gICAgdmFyIHNjb3BlID0gdGhpcy5jb25maWcuc2V0dGluZ3MuYXBpU2VydmVyLnNjb3BlO1xuXG4gICAgdmFyIHcgPSB0aGlzLndvcmtJdGVtJC5nZXRWYWx1ZSgpO1xuICAgIHRoaXMuZG93bmxvYWRVcmwgPSBgJHtiYXNlVXJsfS8ke3Njb3BlfS9hcGkvdWkvQXR0YWNobWVudC9Eb3dubG9hZC8ke3cud29ya0lkfS8ke2V2ZW50LmVsZW1lbnQuSWR9YDtcblxuICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIHNldFRpbWVvdXQoKCk9PnsgdGhpcy5kb3dubG9hZFVybCA9IFwiXCI7IH0sIDIwMCk7XG4gICAgXG4gICAgdGhpcy5hdHRhY2htZW50RG93bmxvYWRFdmVudC5lbWl0KGV2ZW50KTtcbiAgfVxuXG4gIG9uQXR0YWNobWVudFNlbGVjdCh2aWV3ZXJEaXNwbGF5RXZlbnQpIHtcbiAgICB0aGlzLmF0dGFjaG1lbnRTZWxlY3RFdmVudC5lbWl0KHZpZXdlckRpc3BsYXlFdmVudCk7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZURhdGEoKTp2b2lkIHtcbiAgfVxufSJdfQ==