/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc */ import * as tslib_1 from "tslib"; import { Component, EventEmitter, Output, ViewChild } from '@angular/core'; import { ModalDirective } from 'ngx-bootstrap'; import { Common } from '../_services/common.service'; import { Request } from '../_services/request.service'; var ModalStepViewComponent = /** @class */ (function () { function ModalStepViewComponent(request, common) { this.request = request; this.common = common; this.onUpdateModal = new EventEmitter(); this.submitted = false; this.title = 'สถานะขั้นตอน'; this.selectList = []; this.list = []; this.modalConfig = { ignoreBackdropClick: true }; this.selectedStep = {}; this.isMore = false; this.moreField = []; this.stepData = {}; this.lastStep = ''; this.stepName = ''; this.isSend = false; this.isRecieve = false; this.sendList = []; this.recieveList = []; } /** * @return {?} */ ModalStepViewComponent.prototype.ngOnInit = /** * @return {?} */ function () { }; /** * @param {?=} options * @return {?} */ ModalStepViewComponent.prototype.open = /** * @param {?=} options * @return {?} */ function (options) { return tslib_1.__awaiter(this, void 0, void 0, function () { var _a, step, i, flag, ct_step_flag, newField, filter, sendDataList, filter, recieveDataList; return tslib_1.__generator(this, function (_b) { switch (_b.label) { case 0: console.log(options); this.stepData = {}; if (!options) return [3 /*break*/, 11]; this.title = options.option.title || 'สถานะขั้นตอน'; this.stepName = options.data.step_name || ''; this.stepData = JSON.parse(JSON.stringify(options.data)); this.downloadToken = options.downloadToken; if (!this.stepData.step_id) return [3 /*break*/, 11]; _a = this; return [4 /*yield*/, this.request.get('/db/ct_step?_where=(id,eq,' + this.stepData.step_id + ')')]; case 1: _a.selectList = _b.sent(); step = this.selectList[0]; if (!step.flag) return [3 /*break*/, 6]; i = 0; _b.label = 2; case 2: if (!(i < step.flag.length)) return [3 /*break*/, 5]; flag = step.flag.charAt(i); return [4 /*yield*/, this.request.get('/db/ct_step_flag?_where=(flag,eq,' + flag + ')')]; case 3: ct_step_flag = _b.sent(); newField = ct_step_flag[0]; this.moreField.push(newField); _b.label = 4; case 4: i++; return [3 /*break*/, 2]; case 5: this.isMore = true; return [3 /*break*/, 11]; case 6: this.isMore = false; if (!(step.type_id === 8 || step.type_id === 13)) return [3 /*break*/, 8]; filter = { filter: { ct_step_data_id: this.stepData.id }, order_by: ["is_important", "send_book_no", "created_at"] }; return [4 /*yield*/, this.request.post('/search/v_ct_step_sent', filter)]; case 7: sendDataList = _b.sent(); this.sendList = sendDataList.resultData; this.isSend = true; this.isRecieve = false; return [3 /*break*/, 11]; case 8: if (!(step.type_id === 9 || step.type_id === 14)) return [3 /*break*/, 10]; filter = { filter: { ct_step_data_id: this.stepData.id }, order_by: ["is_important", "send_book_no", "created_at"] }; return [4 /*yield*/, this.request.post('/search/v_ct_step_sent', filter)]; case 9: recieveDataList = _b.sent(); this.recieveList = recieveDataList.resultData; this.isRecieve = true; this.isSend = false; return [3 /*break*/, 11]; case 10: this.isRecieve = false; this.isSend = false; _b.label = 11; case 11: this.modal.show(); return [2 /*return*/]; } }); }); }; /** * @return {?} */ ModalStepViewComponent.prototype.closeModal = /** * @return {?} */ function () { this.submitted = false; this.selectList = []; this.list = []; this.selectedStep = {}; this.isMore = false; this.isSend = false; this.isRecieve = false; this.moreField = []; this.stepData = {}; this.lastStep = ''; this.modal.hide(); }; /** * @param {?} data * @return {?} */ ModalStepViewComponent.prototype.getFieldId = /** * @param {?} data * @return {?} */ function (data) { /** @type {?} */ var id = ''; if (data.type === 'text') { id += 'txtView'; } else if (data.type === 'datetime') { id += 'txtView'; } /** @type {?} */ var field = data.field_name.charAt(0).toLocaleUpperCase() + data.field_name.substring(1); id += field; return id; }; /** * @param {?} data * @return {?} */ ModalStepViewComponent.prototype.getRowIndex = /** * @param {?} data * @return {?} */ function (data) { if (!data.data) { return ''; } /** @type {?} */ var no = data.row.dataIndex + 1; return no; }; /** * @param {?} e * @return {?} */ ModalStepViewComponent.prototype.onCellPrepared = /** * @param {?} e * @return {?} */ function (e) { if (e.rowType === 'data') { for (var i in e.component.columns) { if (e.column.dataField === e.component.columns[i]) { e.cellElement.accessKey = e.component.columns[i]; } } } }; /** * @param {?} data * @return {?} */ ModalStepViewComponent.prototype.isImportant = /** * @param {?} data * @return {?} */ function (data) { return data.is_important ? "สำคัญ" : ""; }; /** * @param {?} data * @return {?} */ ModalStepViewComponent.prototype.getImageLink = /** * @param {?} data * @return {?} */ function (data) { return data.url + '?downloadToken=' + this.downloadToken; }; ModalStepViewComponent.decorators = [ { type: Component, args: [{ selector: 'modal-step-view', template: "
\n
\n
\n
\n

\n \n
\n
\n
\n
\n
\n
\n \n \n \n \n
\n \n \n
\n \n \n \n \n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n\n
\n
\n \n \n
\n
\n \n \n \n
\n
\n
\n\n
\n
\n \n \n
\n
\n
\n
\n
\n \n \n \n
\n
\n \n
\n \n \n
\n
\n
\n\n
\n
\n \n \n \n
\n \n
\n {{stepData.url}}\n
\n
\n
\n \n
\n \n \n \n
\n \n \n
\n
\n
\n
\n
\n
\n \n \n \n
\n
\n \n \n
\n
\n \n
\n
\n \n \n
\n
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n
\n\n
\n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n
\n
\n
\n \n
\n \n \n
\n
\n \n \n \n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n \u0E23\u0E32\u0E22\u0E01\u0E32\u0E23\u0E2A\u0E48\u0E07 :\n
\n
\n
\n \n \n \n \n \n \n
\n {{getRowIndex(data)}}\n
\n
\n
\n
\n
\n
\n
\n \u0E23\u0E32\u0E22\u0E01\u0E32\u0E23\u0E23\u0E31\u0E1A :\n
\n
\n
\n \n \n \n \n \n \n \n
\n {{getRowIndex(data)}}\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
" }] } ]; /** @nocollapse */ ModalStepViewComponent.ctorParameters = function () { return [ { type: Request }, { type: Common } ]; }; ModalStepViewComponent.propDecorators = { onUpdateModal: [{ type: Output }], modal: [{ type: ViewChild, args: ['modal',] }] }; return ModalStepViewComponent; }()); export { ModalStepViewComponent }; if (false) { /** @type {?} */ ModalStepViewComponent.prototype.onUpdateModal; /** @type {?} */ ModalStepViewComponent.prototype.modal; /** @type {?} */ ModalStepViewComponent.prototype.submitted; /** @type {?} */ ModalStepViewComponent.prototype.title; /** @type {?} */ ModalStepViewComponent.prototype.selectList; /** @type {?} */ ModalStepViewComponent.prototype.list; /** @type {?} */ ModalStepViewComponent.prototype.modalConfig; /** @type {?} */ ModalStepViewComponent.prototype.th; /** @type {?} */ ModalStepViewComponent.prototype.selectedStep; /** @type {?} */ ModalStepViewComponent.prototype.isMore; /** @type {?} */ ModalStepViewComponent.prototype.moreField; /** @type {?} */ ModalStepViewComponent.prototype.config; /** @type {?} */ ModalStepViewComponent.prototype.stepData; /** @type {?} */ ModalStepViewComponent.prototype.lastStep; /** @type {?} */ ModalStepViewComponent.prototype.stepName; /** @type {?} */ ModalStepViewComponent.prototype.isSend; /** @type {?} */ ModalStepViewComponent.prototype.isRecieve; /** @type {?} */ ModalStepViewComponent.prototype.sendList; /** @type {?} */ ModalStepViewComponent.prototype.recieveList; /** @type {?} */ ModalStepViewComponent.prototype.downloadToken; /** @type {?} */ ModalStepViewComponent.prototype.request; /** @type {?} */ ModalStepViewComponent.prototype.common; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwtc3RlcC12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL3NvYy1hcHAtbGlicmFyeS8iLCJzb3VyY2VzIjpbImxpYi9tb2RhbC1zdGVwLXZpZXcvbW9kYWwtc3RlcC12aWV3LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsWUFBWSxFQUFxQixNQUFNLEVBQUUsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzVGLE9BQU8sRUFBZSxjQUFjLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDM0QsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBQ25ELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7SUE4Qm5ELGdDQUFvQixPQUFnQixFQUFTLE1BQWM7UUFBdkMsWUFBTyxHQUFQLE9BQU8sQ0FBUztRQUFTLFdBQU0sR0FBTixNQUFNLENBQVE7NkJBdEJqQyxJQUFJLFlBQVksRUFBRTt5QkFFaEMsS0FBSztxQkFDSixjQUFjOzBCQUNULEVBQUU7b0JBQ1IsRUFBRTsyQkFDYztZQUN4QixtQkFBbUIsRUFBRSxJQUFJO1NBQzVCOzRCQUVtQixFQUFFO3NCQUNiLEtBQUs7eUJBQ0csRUFBRTt3QkFFSCxFQUFFO3dCQUNQLEVBQUU7d0JBQ0YsRUFBRTtzQkFDSixLQUFLO3lCQUNGLEtBQUs7d0JBQ0QsRUFBRTsyQkFDQyxFQUFFO0tBR3BCOzs7O0lBRUQseUNBQVE7OztJQUFSO0tBRUM7Ozs7O0lBRUsscUNBQUk7Ozs7SUFBVixVQUFXLE9BQWE7Ozs7Ozt3QkFDcEIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQzt3QkFDckIsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7NkJBQ2YsT0FBTyxFQUFQLHlCQUFPO3dCQUNQLElBQUksQ0FBQyxLQUFLLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLElBQUks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LE9BQU87O2lDQVp0Qjs7U0FTYSxzQkFBc0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0LCBWaWV3Q2hpbGR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtNb2RhbE9wdGlvbnMsIE1vZGFsRGlyZWN0aXZlfSBmcm9tICduZ3gtYm9vdHN0cmFwJztcbmltcG9ydCB7Q29tbW9ufSBmcm9tICcuLi9fc2VydmljZXMvY29tbW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgUmVxdWVzdCB9IGZyb20gJy4uL19zZXJ2aWNlcy9yZXF1ZXN0LnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ21vZGFsLXN0ZXAtdmlldycsXG4gICAgdGVtcGxhdGVVcmw6ICcuL21vZGFsLXN0ZXAtdmlldy5jb21wb25lbnQuaHRtbCcsXG59KVxuZXhwb3J0IGNsYXNzIE1vZGFsU3RlcFZpZXdDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gICAgQE91dHB1dCgpIG9uVXBkYXRlTW9kYWwgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQFZpZXdDaGlsZCgnbW9kYWwnKSBtb2RhbDogTW9kYWxEaXJlY3RpdmU7XG4gICAgc3VibWl0dGVkID0gZmFsc2U7XG4gICAgdGl0bGU6IGFueSA9ICfguKrguJbguLLguJnguLDguILguLHguYnguJnguJXguK3guJknO1xuICAgIHNlbGVjdExpc3Q6IGFueSA9IFtdO1xuICAgIGxpc3Q6IGFueSA9IFtdO1xuICAgIG1vZGFsQ29uZmlnOiBNb2RhbE9wdGlvbnMgPSB7XG4gICAgICAgIGlnbm9yZUJhY2tkcm9wQ2xpY2s6IHRydWVcbiAgICB9O1xuICAgIHRoO1xuICAgIHNlbGVjdGVkU3RlcDogYW55ID0ge307XG4gICAgaXNNb3JlID0gZmFsc2U7XG4gICAgbW9yZUZpZWxkOiBhbnkgPSBbXTtcbiAgICBwdWJsaWMgY29uZmlnOiBhbnk7XG4gICAgc3RlcERhdGE6IGFueSA9IHt9O1xuICAgIGxhc3RTdGVwID0gJyc7XG4gICAgc3RlcE5hbWUgPSAnJztcbiAgICBpc1NlbmQgPSBmYWxzZTtcbiAgICBpc1JlY2lldmUgPSBmYWxzZTtcbiAgICBzZW5kTGlzdDogYW55ID0gW107XG4gICAgcmVjaWV2ZUxpc3Q6IGFueSA9IFtdO1xuICAgIGRvd25sb2FkVG9rZW46YW55O1xuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVxdWVzdDogUmVxdWVzdCwgcHVibGljIGNvbW1vbjogQ29tbW9uKSB7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG5cbiAgICB9XG5cbiAgICBhc3luYyBvcGVuKG9wdGlvbnM/OiBhbnkpIHtcbiAgICAgICAgY29uc29sZS5sb2cob3B0aW9ucyk7XG4gICAgICAgIHRoaXMuc3RlcERhdGEgPSB7fTtcbiAgICAgICAgaWYgKG9wdGlvbnMpIHtcbiAgICAgICAgICAgIHRoaXMudGl0bGUgPSBvcHRpb25zLm9wdGlvbi50aXRsZSB8fCAn4Liq4LiW4Liy4LiZ4Liw4LiC4Lix4LmJ4LiZ4LiV4Lit4LiZJztcbiAgICAgICAgICAgIHRoaXMuc3RlcE5hbWUgPSBvcHRpb25zLmRhdGEuc3RlcF9uYW1lIHx8ICcnO1xuICAgICAgICAgICAgdGhpcy5zdGVwRGF0YSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkob3B0aW9ucy5kYXRhKSk7XG4gICAgICAgICAgICB0aGlzLmRvd25sb2FkVG9rZW4gPSBvcHRpb25zLmRvd25sb2FkVG9rZW47XG4gICAgICAgICAgICAvLyDguJXguYnguK3guIfguYDguJvguKXguLXguYjguKLguJnguYDguJvguYfguJnguYDguKPguLXguKLguIEgYXBpXG4gICAgICAgICAgICBpZih0aGlzLnN0ZXBEYXRhLnN0ZXBfaWQpe1xuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0TGlzdCA9IGF3YWl0IHRoaXMucmVxdWVzdC5nZXQoJy9kYi9jdF9zdGVwP193aGVyZT0oaWQsZXEsJyArIHRoaXMuc3RlcERhdGEuc3RlcF9pZCArICcpJyk7XG4gICAgICAgICAgICAgICAgY29uc3Qgc3RlcCA9IHRoaXMuc2VsZWN0TGlzdFswXTtcbiAgICAgICAgICAgICAgICBpZiAoc3RlcC5mbGFnKSB7XG4gICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc3RlcC5mbGFnLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBmbGFnID0gc3RlcC5mbGFnLmNoYXJBdChpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGN0X3N0ZXBfZmxhZyA9IGF3YWl0IHRoaXMucmVxdWVzdC5nZXQoJy9kYi9jdF9zdGVwX2ZsYWc/X3doZXJlPShmbGFnLGVxLCcgKyBmbGFnICsgJyknKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG5ld0ZpZWxkID0gY3Rfc3RlcF9mbGFnWzBdO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5tb3JlRmllbGQucHVzaChuZXdGaWVsZCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pc01vcmUgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaXNNb3JlID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIGlmIChzdGVwLnR5cGVfaWQgPT09IDggfHwgc3RlcC50eXBlX2lkID09PSAxMykge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGZpbHRlciA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXIgOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN0X3N0ZXBfZGF0YV9pZCA6IHRoaXMuc3RlcERhdGEuaWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9yZGVyX2J5OltcImlzX2ltcG9ydGFudFwiLFwic2VuZF9ib29rX25vXCIsXCJjcmVhdGVkX2F0XCJdXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzZW5kRGF0YUxpc3QgPSBhd2FpdCB0aGlzLnJlcXVlc3QucG9zdCgnL3NlYXJjaC92X2N0X3N0ZXBfc2VudCcsZmlsdGVyKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2VuZExpc3QgPSBzZW5kRGF0YUxpc3QucmVzdWx0RGF0YTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaXNTZW5kID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaXNSZWNpZXZlID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoc3RlcC50eXBlX2lkID09PSA5IHx8IHN0ZXAudHlwZV9pZCA9PT0gMTQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBmaWx0ZXIgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyIDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdF9zdGVwX2RhdGFfaWQgOiB0aGlzLnN0ZXBEYXRhLmlkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcmRlcl9ieTpbXCJpc19pbXBvcnRhbnRcIixcInNlbmRfYm9va19ub1wiLFwiY3JlYXRlZF9hdFwiXVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVjaWV2ZURhdGFMaXN0ID0gYXdhaXQgdGhpcy5yZXF1ZXN0LnBvc3QoJy9zZWFyY2gvdl9jdF9zdGVwX3NlbnQnLGZpbHRlcik7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJlY2lldmVMaXN0ID0gcmVjaWV2ZURhdGFMaXN0LnJlc3VsdERhdGE7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmlzUmVjaWV2ZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmlzU2VuZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5pc1JlY2lldmUgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaXNTZW5kID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5tb2RhbC5zaG93KCk7XG4gICAgfVxuXG4gICAgY2xvc2VNb2RhbCgpIHtcbiAgICAgICAgdGhpcy5zdWJtaXR0ZWQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5zZWxlY3RMaXN0ID0gW107XG4gICAgICAgIHRoaXMubGlzdCA9IFtdO1xuICAgICAgICB0aGlzLnNlbGVjdGVkU3RlcCA9IHt9O1xuICAgICAgICB0aGlzLmlzTW9yZSA9IGZhbHNlO1xuICAgICAgICB0aGlzLmlzU2VuZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLmlzUmVjaWV2ZSA9IGZhbHNlO1xuICAgICAgICB0aGlzLm1vcmVGaWVsZCA9IFtdO1xuICAgICAgICB0aGlzLnN0ZXBEYXRhID0ge307XG4gICAgICAgIHRoaXMubGFzdFN0ZXAgPSAnJztcbiAgICAgICAgdGhpcy5tb2RhbC5oaWRlKCk7XG4gICAgfVxuXG4gICAgZ2V0RmllbGRJZChkYXRhKSB7XG4gICAgICAgIGxldCBpZCA9ICcnO1xuICAgICAgICBpZiAoZGF0YS50eXBlID09PSAndGV4dCcpIHtcbiAgICAgICAgICAgIGlkICs9ICd0eHRWaWV3JztcbiAgICAgICAgfSBlbHNlIGlmIChkYXRhLnR5cGUgPT09ICdkYXRldGltZScpIHtcbiAgICAgICAgICAgIGlkICs9ICd0eHRWaWV3JztcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBmaWVsZCA9IGRhdGEuZmllbGRfbmFtZS5jaGFyQXQoMCkudG9Mb2NhbGVVcHBlckNhc2UoKSArIGRhdGEuZmllbGRfbmFtZS5zdWJzdHJpbmcoMSk7XG4gICAgICAgIGlkICs9IGZpZWxkO1xuICAgICAgICByZXR1cm4gaWQ7XG4gICAgfVxuXG4gICAgZ2V0Um93SW5kZXgoZGF0YSkge1xuICAgICAgICBpZiAoIWRhdGEuZGF0YSkge1xuICAgICAgICAgICAgcmV0dXJuICcnO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG5vID0gZGF0YS5yb3cuZGF0YUluZGV4ICsgMTtcbiAgICAgICAgcmV0dXJuIG5vO1xuICAgIH1cblxuICAgIG9uQ2VsbFByZXBhcmVkKGUpIHtcbiAgICAgICAgaWYgKGUucm93VHlwZSA9PT0gJ2RhdGEnKSB7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGkgaW4gZS5jb21wb25lbnQuY29sdW1ucykge1xuICAgICAgICAgICAgICAgIGlmIChlLmNvbHVtbi5kYXRhRmllbGQgPT09IGUuY29tcG9uZW50LmNvbHVtbnNbaV0pIHtcbiAgICAgICAgICAgICAgICAgICAgZS5jZWxsRWxlbWVudC5hY2Nlc3NLZXkgPSBlLmNvbXBvbmVudC5jb2x1bW5zW2ldO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGlzSW1wb3J0YW50KGRhdGEpe1xuICAgICAgICByZXR1cm4gZGF0YS5pc19pbXBvcnRhbnQ/XCLguKrguLPguITguLHguI1cIjpcIlwiO1xuICAgIH1cblxuICAgIGdldEltYWdlTGluayhkYXRhKXtcbiAgICAgICAgcmV0dXJuIGRhdGEudXJsKyc/ZG93bmxvYWRUb2tlbj0nK3RoaXMuZG93bmxvYWRUb2tlbjtcbiAgICB9XG59XG4iXX0=