"use strict"; var __assign = (this && this.__assign) || function () { __assign = Object.assign || function(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; }; return __assign.apply(this, arguments); }; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; var __generator = (this && this.__generator) || function (thisArg, body) { var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; function verb(n) { return function (v) { return step([n, v]); }; } function step(op) { if (f) throw new TypeError("Generator is already executing."); while (_) try { if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; if (y = 0, t) op = [op[0] & 2, t.value]; switch (op[0]) { case 0: case 1: t = op; break; case 4: _.label++; return { value: op[1], done: false }; case 5: _.label++; y = op[1]; op = [0]; continue; case 7: op = _.ops.pop(); _.trys.pop(); continue; default: if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } if (t[2]) _.ops.pop(); _.trys.pop(); continue; } op = body.call(thisArg, _); } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; } }; Object.defineProperty(exports, "__esModule", { value: true }); var app = getApp(); var util_1 = require("../../utils/util"); var hwRequirement_impl_1 = require("../../service/impl/hwRequirement.impl"); var hwOrder_impl_1 = require("../../service/impl/hwOrder.impl"); var util_2 = require("../../utils/util"); Page({ data: { cover: true, hasInfo: false, info_name: '', idcardNumber: '', bright_points: '', message: { '0': '确认订单', '1': '订单关闭', '2': '已确认', '3': '订单中止', '4': '订单完成' }, status: 0, show: true, name_error: '', id_error: '', id: 0, hwOrderAPI: { workContractType: -1, workContract: '', id: 0, status: -1 }, name: '', enrollId: 0, options: { id: 0, status: '' } }, apply: function () { var _this = this; var userInfo = wx.getStorageSync('userInfo'); if (userInfo.isDemonstrate) { wx.showToast({ icon: 'none', title: '报名成功', success: function () { var hwOrderAPI = _this.data.hwOrderAPI; hwOrderAPI.status = 2; _this.setData({ status: 2, hwOrderAPI: hwOrderAPI }); util_1.putStorageSync("orderDetail_" + _this.data.id, _this.data.id, 2); } }); } }, saveIdCardNumber: function (e) { var idcardNumber = e.detail.value; if (idcardNumber) { if (idcardNumber.length !== 15 && idcardNumber.length !== 18) { this.setData({ id_error: '身份证号码格式错误' }); } else { this.setData({ idcardNumber: idcardNumber, id_error: '' }); } } else { this.setData({ id_error: '请填写身份证号码' }); } }, saveName: function (e) { var info_name = e.detail.value; if (info_name) { this.setData({ info_name: info_name, name_error: '' }); } else { this.setData({ name_error: '请填写姓名' }); } }, input: function (e) { this.setData({ bright_points: e.detail.value }); }, openMap: function (e) { var name = e.currentTarget.dataset.name; var address = e.currentTarget.dataset.address; console.log(name, address); }, buttonCheck: function () { var workContract = this.data.hwOrderAPI.workContract; if (workContract) { wx.showLoading({ mask: true, title: '正在打开文件...', }); wx.downloadFile({ url: this.data.hwOrderAPI.workContract, success: function (res) { wx.openDocument({ filePath: res.tempFilePath, success: function () { wx.hideLoading(); }, fail: function () { wx.showToast({ icon: 'none', title: '打开失败', }); } }); } }); } else { } }, buttonSubmit: function () { var _this = this; var workContractType = this.data.hwOrderAPI.workContractType; if (workContractType === 1) { hwOrder_impl_1.confirmECOrdersImpl({ orderId: this.data.hwOrderAPI.id }).then(function (res) { if (res.errCode === 0) { wx.reLaunch({ url: "/pages/web-view/web-view?url=" + encodeURIComponent(res.data.url), success: function () { app.globalData.webview = "/pages/my-order/my-order"; } }); } }); } if (workContractType === 0) { hwOrder_impl_1.confirmOrderImpl({ orderId: this.data.hwOrderAPI.id }).then(function (res) { if (res.errCode === 0) { wx.showToast({ title: '订单已确认', success: function () { var hwOrderAPI = _this.data.hwOrderAPI; hwOrderAPI.status = 2; _this.setData({ hwOrderAPI: hwOrderAPI }); } }); } }); } }, showCover: function () { return __awaiter(this, void 0, void 0, function () { var userInfo; return __generator(this, function (_a) { switch (_a.label) { case 0: return [4, util_2.getHwUserInfo()]; case 1: userInfo = _a.sent(); if (userInfo.idcardNumber && userInfo.name) { this.setData({ cover: false, hasInfo: true }); } else { this.setData({ cover: false, hasInfo: false }); } return [2]; } }); }); }, cover: function () { var cover = !this.data.cover; this.setData({ cover: cover }); }, cancelEnrollment: function () { var id = this.data.enrollId; hwRequirement_impl_1.cancelEnrollmentImpl({ enroll_id: id }).then(function () { wx.showToast({ icon: 'none', title: '取消成功', success: function () { setTimeout(function () { wx.navigateBack({ delta: 1 }); }, 1200); } }); }); }, buttonRight: function () { }, onLoad: function (options) { this.setData({ options: options }); }, onReady: function () { }, onShow: function () { return __awaiter(this, void 0, void 0, function () { var options; var _this = this; return __generator(this, function (_a) { options = this.data.options; if (options.id && options.status) { if (options.status === '2') { hwOrder_impl_1.getOrderDetailImpl({ orderId: options.id }).then(function (res) { if (res.errCode === 0) { var id = util_1.getStorageSync("orderDetail_" + _this.data.id); if (id) { res.data.hwOrderAPI.status = 2; } _this.setData(__assign(__assign({}, res.data.hwRequirementAPI), { hwOrderAPI: res.data.hwOrderAPI })); } }); } if (options.status === '1') { hwRequirement_impl_1.getRequirementDetailImpl({ user_id: wx.getStorageSync('userId'), user_token: wx.getStorageSync('userToken'), hwRequirementId: options.id }).then(function (res) { if (res.errCode === 0) { _this.setData(__assign(__assign({}, res.data.hwRequirementAPI), { displayCancel: res.data.displayCancel || null, needEnrollment: res.data.needEnrollment || null, enrollId: res.data.enrollId || null })); } }); } } if (options.status) { this.setData({ status: Number(options.status), show: false }); } this.setData({ user_id: wx.getStorageSync('userId'), }); return [2]; }); }); }, onHide: function () { }, onUnload: function () { }, onPullDownRefresh: function () { }, onReachBottom: function () { }, onShareAppMessage: function () { return { title: this.data.name, path: "/pages/detail/detail?id=" + this.data.id + "&&status=" + this.data.status }; } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV0YWlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiZGV0YWlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDQSxJQUFNLEdBQUcsR0FBRyxNQUFNLEVBQUUsQ0FBQztBQUNyQix5Q0FBaUU7QUFvQmpFLDRFQUFzRztBQUV0RyxnRUFBMkc7QUFDM0cseUNBQWdEO0FBQ2hELElBQUksQ0FBQztJQUtILElBQUksRUFBRTtRQUNKLEtBQUssRUFBRSxJQUFJO1FBQ1gsT0FBTyxFQUFFLEtBQUs7UUFDZCxTQUFTLEVBQUUsRUFBRTtRQUNiLFlBQVksRUFBRSxFQUFFO1FBQ2hCLGFBQWEsRUFBRSxFQUFFO1FBQ2pCLE9BQU8sRUFBRTtZQUNQLEdBQUcsRUFBRSxNQUFNO1lBQ1gsR0FBRyxFQUFFLE1BQU07WUFDWCxHQUFHLEVBQUUsS0FBSztZQUNWLEdBQUcsRUFBRSxNQUFNO1lBQ1gsR0FBRyxFQUFFLE1BQU07U0FDWjtRQUNELE1BQU0sRUFBRSxDQUFDO1FBQ1QsSUFBSSxFQUFFLElBQUk7UUFDVixVQUFVLEVBQUUsRUFBRTtRQUNkLFFBQVEsRUFBRSxFQUFFO1FBQ1osRUFBRSxFQUFFLENBQUM7UUFDTCxVQUFVLEVBQUU7WUFDVixnQkFBZ0IsRUFBRSxDQUFDLENBQUM7WUFDcEIsWUFBWSxFQUFFLEVBQUU7WUFDaEIsRUFBRSxFQUFFLENBQUM7WUFDTCxNQUFNLEVBQUUsQ0FBQyxDQUFDO1NBQ1g7UUFDRCxJQUFJLEVBQUUsRUFBRTtRQUNSLFFBQVEsRUFBRSxDQUFDO1FBQ1gsT0FBTyxFQUFFO1lBQ1AsRUFBRSxFQUFFLENBQUM7WUFDTCxNQUFNLEVBQUUsRUFBRTtTQUNYO0tBRUY7SUFPRCxLQUFLO1FBQUwsaUJBMkVDO1FBakJDLElBQU0sUUFBUSxHQUFHLEVBQUUsQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLENBQUE7UUFFOUMsSUFBSSxRQUFRLENB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O1lBQ3JCLElBQUksRUFBRSw2QkFBMkIsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLGlCQUFZLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBUTtTQUM1RSxDQUFBO0lBQ0gsQ0FBQztDQUNGLENBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbIi8vIHBhZ2VzL2RldGFpbC9kZXRhaWwuanNcbmNvbnN0IGFwcCA9IGdldEFwcCgpO1xuaW1wb3J0IHsgcHV0U3RvcmFnZVN5bmMsIGdldFN0b3JhZ2VTeW5jIH0gZnJvbSAnLi4vLi4vdXRpbHMvdXRpbCdcbi8vIHR5cGUgZXJyb3JNZXNzYWdlVHlwZSA9IHtcbi8vICAgaW5mb19uYW1lOiBTdHJpbmcsXG4vLyAgIGlkY2FyZE51bWJlcjogU3RyaW5nLFxuLy8gfVxuLy8gLy8g5pyq5aGr5YaZ5o+Q56S65a2X5q615Y+K5L+h5oGvXG4vLyBjb25zdCBlcnJvck1lc3NhZ2U6IGVycm9yTWVzc2FnZVR5cGUgPSB7XG4vLyAgIGluZm9fbmFtZTogJ+ivt+Whq+WGmeWnk+WQjScsXG4vLyAgIGlkY2FyZE51bWJlcjogJ+ivt+Whq+WGmei6q+S7veivgeWPt+eggScsXG4vLyB9XG5cbi8vIHR5cGUgZXJyb3JLZXlUeXBlID0ge1xuLy8gICBpbmZvX25hbWU6IFN0cmluZyxcbi8vICAgaWRjYXJkTnVtYmVyOiBTdHJpbmcsXG4vLyB9XG4vLyAvLyDmnKrloavlhplrZXnlgLxcbi8vIGNvbnN0IGVycm9yS2V5OiBlcnJvcktleVR5cGUgPSB7XG4vLyAgIGluZm9fbmFtZTogJ25hbWVfZXJyb3InLFxuLy8gICBpZGNhcmROdW1iZXI6ICdpZF9lcnJvcicsXG4vLyB9XG5pbXBvcnQgeyBjYW5jZWxFbnJvbGxtZW50SW1wbCwgZ2V0UmVxdWlyZW1lbnREZXRhaWxJbXBsIH0gZnJvbSAnLi4vLi4vc2VydmljZS9pbXBsL2h3UmVxdWlyZW1lbnQuaW1wbCdcbi8vIGltcG9ydCB7IGNhbmNlbEVucm9sbG1lbnRJbXBsLCBlbnJvbGxtZW50UmVxdWlyZUltcGwsIGdldFJlcXVpcmVtZW50RGV0YWlsSW1wbCB9IGZyb20gJy4uLy4uL3NlcnZpY2UvaW1wbC9od1JlcXVpcmVtZW50LmltcGwnXG5pbXBvcnQgeyBjb25maXJtRUNPcmRlcnNJbXBsLCBjb25maXJtT3JkZXJJbXBsLCBnZXRPcmRlckRldGFpbEltcGwgfSBmcm9tICcuLi8uLi9zZXJ2aWNlL2ltcGwvaHdPcmRlci5pbXBsJ1xuaW1wb3J0IHsgZ2V0SHdVc2VySW5mbyB9IGZyb20gJy4uLy4uL3V0aWxzL3V0aWwnXG5QYWdlKHtcblxuICAvKipcbiAgICog6aG16Z2i55qE5Yid5aeL5pWw5o2uXG4gICAqL1xuICBkYXRhOiB7XG4gICAgY292ZXI6IHRydWUsIC8vIOiSmeWxglxuICAgIGhhc0luZm86IGZhbHNlLCAvL+aYr+WQpuaLpeacieS4quS6uuS/oeaBr1xuICAgIGluZm9fbmFtZTogJycsXG4gICAgaWRjYXJkTnVtYmVyOiAnJyxcbiAgICBicmlnaHRfcG9pbnRzOiAnJywgLy8g5Lqu54K5XG4gICAgbWVzc2FnZTogeyAvL+iuouWNleeKtuaAgeaYoOWwhFxuICAgICAgJzAnOiAn56Gu6K6k6K6i5Y2VJyxcbiAgICAgICcxJzogJ+iuouWNleWFs+mXrScsXG4gICAgICAnMic6ICflt7Lnoa7orqQnLFxuICAgICAgJzMnOiAn6K6i5Y2V5Lit5q2iJyxcbiAgICAgICc0JzogJ+iuouWNleWujOaIkCdcbiAgICB9LFxuICAgIHN0YXR1czogMCwgLy/mjInpkq7nirbmgIEgMSDpnIDmsYIgMiDlt7LmiqXlkI0gMyDorqLljZVcbiAgICBzaG93OiB0cnVlLCAvLyDmmK/lkKblsZXnpLpcbiAgICBuYW1lX2Vycm9yOiAnJywgLy8g5aeT5ZCN6ZSZ6K+v5L+h5oGvXG4gICAgaWRfZXJyb3I6ICcnLCAvLyAg6Lqr5Lu96K+B6ZSZ6K+v5L+h5oGvXG4gICAgaWQ6IDAsXG4gICAgaHdPcmRlckFQSToge1xuICAgICAgd29ya0NvbnRyYWN0VHlwZTogLTEsXG4gICAgICB3b3JrQ29udHJhY3Q6ICcnLFxuICAgICAgaWQ6IDAsXG4gICAgICBzdGF0dXM6IC0xXG4gICAgfSxcbiAgICBuYW1lOiAnJyxcbiAgICBlbnJvbGxJZDogMCxcbiAgICBvcHRpb25zOiB7XG4gICAgICBpZDogMCxcbiAgICAgIHN0YXR1czogJydcbiAgICB9XG4gICAgLy8gYnRuX21lc3NhZ2U6ICcnXG4gIH0sXG4gIC8qKlxuICAgKiDpnIDmsYLmiqXlkI1cbiAgICogQHJlcXVpcmVtZW50X2lkIHtzdHJpbmd9IOmcgOaxgklEXG4gICAqIEBicmlnaHRfcG9pbnRzIHtzdHJpbmd9ICDkuq7ngrlcbiAgICogQGVucm9sbF9mcm9tICB7bnVtYmVyfSDmiqXlkI3mnaXmupDvvIgwOuWwj+eoi+W6jyAgMTpBUFAgIDI65ZCO5Y+w77yJXG4gICAqL1xuICBhcHBseSgpIHtcbiAgICAvLyBpZiAoIXRoaXMuZGF0YS5oYXNJbmZvKSB7XG4gICAgLy8gICBmb3IgKGNvbnN0IGtleSBpbiBlcnJvck1lc3NhZ2UpIHtcbiAgICAvLyAgICAgaWYgKHRoaXMuZGF0YS5oYXNPd25Qcm9wZXJ0eShrZXkpICYmICF0aGlzLmRhdGFba2V5XSkge1xuICAgIC8vICAgICAgIHd4LnNob3dUb2FzdCh7XG4gICAgLy8gICAgICAgICBpY29uOiAnbm9uZScsXG4gICAgLy8gICAgICAgICB0aXRsZTogZXJyb3JNZXNzYWdlW2tleV0sXG4gICAgLy8gICAgICAgICBzdWNjZXNzOiAoKSA9PiB7XG4gICAgLy8gICAgICAgICAgIHRoaXMuc2V0RGF0YSh7XG4gICAgLy8gICAgICAgICAgICAgW2Vycm9yS2V5W2tleV1dOiBlcnJvck1lc3NhZ2Vba2V5XVxuICAgIC8vICAgICAgICAgICB9KVxuICAgIC8vICAgICAgICAgfVxuICAgIC8vICAgICAgIH0pXG4gICAgLy8gICAgICAgcmV0dXJuXG4gICAgLy8gICAgIH1cbiAgICAvLyAgIH1cbiAgICAvLyAgIGlmICh0aGlzLmRhdGEuaWRjYXJkTnVtYmVyLmxlbmd0aCAhPT0gMTUgJiYgdGhpcy5kYXRhLmlkY2FyZE51bWJlci5sZW5ndGggIT09IDE4KSB7XG4gICAgLy8gICAgIHd4LnNob3dUb2FzdCh7XG4gICAgLy8gICAgICAgaWNvbjogJ25vbmUnLFxuICAgIC8vICAgICAgIHRpdGxlOiAn6Lqr5Lu96K+B5Y+356CB5qC85byP6ZSZ6K+vJyxcbiAgICAvLyAgICAgICBzdWNjZXNzOiAoKSA9PiB7XG4gICAgLy8gICAgICAgICB0aGlzLnNldERhdGEoe1xuICAgIC8vICAgICAgICAgICBpZF9lcnJvcjogJ+i6q+S7veivgeWPt+eggeagvOW8j+mUmeivrydcbiAgICAvLyAgICAgICAgIH0pXG4gICAgLy8gICAgICAgfVxuICAgIC8vICAgICB9KVxuICAgIC8vICAgfVxuICAgIC8vIH1cbiAgICAvLyDmiqXlkI3pnIDmsYJcbiAgICAvLyBlbnJvbGxtZW50UmVxdWlyZUltcGwoe1xuICAgIC8vICAgcmVxdWlyZW1lbnRfaWQ6IHRoaXMuZGF0YS5pZCxcbiAgICAvLyAgIG5hbWU6IHRoaXMuZGF0YS5pbmZvX25hbWUsXG4gICAgLy8gICBpZGNhcmROdW1iZXI6IHRoaXMuZGF0YS5pZGNhcmROdW1iZXIsXG4gICAgLy8gICBicmlnaHRfcG9pbnRzOiB0aGlzLmRhdGEuYnJpZ2h0X3BvaW50cyxcbiAgICAvLyAgIGVucm9sbF9mcm9tOiAwXG4gICAgLy8gfSkudGhlbigoKSA9PiB7XG4gICAgLy8gICB3eC5zaG93VG9hc3Qoe1xuICAgIC8vICAgICB0aXRsZTogJ+aKpeWQjeaIkOWKnycsXG4gICAgLy8gICAgIHN1Y2Nlc3M6ICgpID0+IHtcbiAgICAvLyAgICAgICB0aGlzLnNldERhdGEoe1xuICAgIC8vICAgICAgICAgY292ZXI6IHRydWUsXG4gICAgLy8gICAgICAgfSwgKCkgPT4ge1xuICAgIC8vICAgICAgICAgd3gubmF2aWdhdGVCYWNrKHtcbiAgICAvLyAgICAgICAgICAgZGVsdGE6IDEsXG4gICAgLy8gICAgICAgICB9KVxuICAgIC8vICAgICAgIH0pXG4gICAgLy8gICAgIH1cbiAgICAvLyAgIH0pXG4gICAgLy8gfSkuY2F0Y2gocmVzID0+IHtcbiAgICAvLyAgIGlmIChyZXMuZXJyQ29kZSkge1xuICAgIC8vICAgICB3eC5zaG93TW9kYWwoe1xuICAgIC8vICAgICAgIHRpdGxlOiAn5oql5ZCN5aSx6LSlJyxcbiAgICAvLyAgICAgICBjb250ZW50OiByZXMuZXJyTXNnLFxuICAgIC8vICAgICAgIHNob3dDYW5jZWw6IGZhbHNlLFxuICAgIC8vICAgICAgIGNvbmZpcm1Db2xvcjogJyMzMTM2NEMnXG4gICAgLy8gICAgIH0pXG4gICAgLy8gICB9XG4gICAgLy8gfSlcbiAgICBjb25zdCB1c2VySW5mbyA9IHd4LmdldFN0b3JhZ2VTeW5jKCd1c2VySW5mbycpXG5cbiAgICBpZiAodXNlckluZm8uaXNEZW1vbnN0cmF0ZSkge1xuICAgICAgd3guc2hvd1RvYXN0KHtcbiAgICAgICAgaWNvbjogJ25vbmUnLFxuICAgICAgICB0aXRsZTogJ+aKpeWQjeaIkOWKnycsXG4gICAgICAgIHN1Y2Nlc3M6ICgpID0+IHtcbiAgICAgICAgICBjb25zdCBod09yZGVyQVBJID0gdGhpcy5kYXRhLmh3T3JkZXJBUElcbiAgICAgICAgICBod09yZGVyQVBJLnN0YXR1cyA9IDJcbiAgICAgICAgICB0aGlzLnNldERhdGEoe1xuICAgICAgICAgICAgc3RhdHVzOiAyLFxuICAgICAgICAgICAgaHdPcmRlckFQSVxuICAgICAgICAgIH0pXG4gICAgICAgICAgcHV0U3RvcmFnZVN5bmMoYG9yZGVyRGV0YWlsXyR7dGhpcy5kYXRhLmlkfWAsIHRoaXMuZGF0YS5pZCwgMilcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICB9XG4gIH0sXG5cbiAgLyoqXG4gICAqIOS6rueCuei+k+WFpVxuICAgKiBAaWRjYXJkTnVtYmVyIHtzdHJpbmd9IOi6q+S7veivgVxuICAgKi9cbiAgc2F2ZUlkQ2FyZE51bWJlcihlOiBhbnkpIHtcbiAgICBjb25zdCBpZGNhcmROdW1iZXIgPSBlLmRldGFpbC52YWx1ZVxuICAgIGlmIChpZGNhcmROdW1iZXIpIHtcbiAgICAgIGlmIChpZGNhcmROdW1iZXIubGVuZ3RoICE9PSAxNSAmJiBpZGNhcmROdW1iZXIubGVuZ3RoICE9PSAxOCkge1xuICAgICAgICB0aGlzLnNldERhdGEoe1xuICAgICAgICAgIGlkX2Vycm9yOiAn6Lqr5Lu96K+B5Y+356CB5qC85byP6ZSZ6K+vJ1xuICAgICAgICB9KVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5zZXREYXRhKHtcbiAgICAgICAgICBpZGNhcmROdW1iZXIsXG4gICAgICAgICAgaWRfZXJyb3I6ICcnXG4gICAgICAgIH0pXG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2V0RGF0YSh7XG4gICAgICAgIGlkX2Vycm9yOiAn6K+35aGr5YaZ6Lqr5Lu96K+B5Y+356CBJ1xuICAgICAgfSlcbiAgICB9XG4gIH0sXG4gIC8qKlxuICAgKiDkuq7ngrnovpPlhaVcbiAgICogQG5hbWUge3N0cmluZ30g5aeT5ZCNXG4gICAqL1xuICBzYXZlTmFtZShlOiBhbnkpIHtcbiAgICBjb25zdCBpbmZvX25hbWUgPSBlLmRldGFpbC52YWx1ZVxuICAgIGlmIChpbmZvX25hbWUpIHtcbiAgICAgIHRoaXMuc2V0RGF0YSh7XG4gICAgICAgIGluZm9fbmFtZSxcbiAgICAgICAgbmFtZV9lcnJvcjogJydcbiAgICAgIH0pXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2V0RGF0YSh7XG4gICAgICAgIG5hbWVfZXJyb3I6ICfor7floavlhpnlp5PlkI0nXG4gICAgICB9KVxuICAgIH1cbiAgfSxcbiAgLyoqXG4gICAqIOS6rueCuei+k+WFpVxuICAgKiBAYnJpZ2h0X3BvaW50cyB7c3RyaW5nfSDkuq7ngrlcbiAgICovXG4gIGlucHV0KGU6IGFueSkge1xuICAgIHRoaXMuc2V0RGF0YSh7XG4gICAgICBicmlnaHRfcG9pbnRzOiBlLmRldGFpbC52YWx1ZVxuICAgIH0pXG4gIH0sXG4gIC8qKlxuICAgKiDmiZPlvIDlnLDlm75cbiAgICovXG4gIG9wZW5NYXAoZTogYW55KSB7XG4gICAgY29uc3QgbmFtZSA9IGUuY3VycmVudFRhcmdldC5kYXRhc2V0Lm5hbWU7XG4gICAgY29uc3QgYWRkcmVzcyA9IGUuY3VycmVudFRhcmdldC5kYXRhc2V0LmFkZHJlc3M7XG4gICAgY29uc29sZS5sb2cobmFtZSwgYWRkcmVzcyk7XG5cbiAgICAvLyB3eC5vcGVuTG9jYXRpb24oe1xuICAgIC8vICAgbGF0aXR1ZGU6IDMxLjU0NDMyNSxcbiAgICAvLyAgIGxvbmdpdHVkZTogMTIwLjM1NjU5NSxcbiAgICAvLyAgIG5hbWUsXG4gICAgLy8gICBhZGRyZXNzXG4gICAgLy8gfSlcbiAgfSxcbiAgLyoqXG4gICAqIOafpeeci+WQiOWQjFxuICAgKiBAZmlsZVBhdGgge3N0cmluZ30g5ZCI5ZCM5Zyw5Z2AXG4gICAqL1xuICBidXR0b25DaGVjaygpIHtcbiAgICAvLyDojrflj5bnur/kuIrlkIjlkIwgIOWmguaenOWtmOWcqOaJk+W8gOWQiOWQjCAgIOS4jeWtmOWcqOi/m+ihjOaPkOekuu+8iOaaguaXoO+8iVxuICAgIGNvbnN0IHdvcmtDb250cmFjdCA9IHRoaXMuZGF0YS5od09yZGVyQVBJLndvcmtDb250cmFjdDtcbiAgICBpZiAod29ya0NvbnRyYWN0KSB7XG4gICAgICB3eC5zaG93TG9hZGluZyh7XG4gICAgICAgIG1hc2s6IHRydWUsXG4gICAgICAgIHRpdGxlOiAn5q2j5Zyo5omT5byA5paH5Lu2Li4uJyxcbiAgICAgIH0pXG4gICAgICB3eC5kb3dubG9hZEZpbGUoe1xuICAgICAgICB1cmw6IHRoaXMuZGF0YS5od09yZGVyQVBJLndvcmtDb250cmFjdCxcbiAgICAgICAgc3VjY2VzczogKHJlcykgPT4ge1xuICAgICAgICAgIHd4Lm9wZW5Eb2N1bWVudCh7XG4gICAgICAgICAgICBmaWxlUGF0aDogcmVzLnRlbXBGaWxlUGF0aCxcbiAgICAgICAgICAgIHN1Y2Nlc3M6ICgpID0+IHtcbiAgICAgICAgICAgICAgd3guaGlkZUxvYWRpbmcoKVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGZhaWwoKSB7XG4gICAgICAgICAgICAgIHd4LnNob3dUb2FzdCh7XG4gICAgICAgICAgICAgICAgaWNvbjogJ25vbmUnLFxuICAgICAgICAgICAgICAgIHRpdGxlOiAn5omT5byA5aSx6LSlJyxcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KVxuICAgICAgICB9XG4gICAgICB9KVxuICAgIH0gZWxzZSB7XG4gICAgICAvLyB3eC5zaG93VG9hc3Qoe1xuICAgICAgLy8gICBpY29uOidub25lJyxcbiAgICAgIC8vICAgdGl0bGU6ICcnLFxuICAgICAgLy8gfSlcbiAgICB9XG4gIH0sXG4gIC8qKlxuICAgKiDnoa7orqTorqLljZVcbiAgICogQG9yZGVySWQge3N0cmluZ30g6K6i5Y2VSURcbiAgICog5YmN5Y+w5oql5ZCN6ZyA5rGC5ZCOICDlkI7lj7DnlJ/miJDorqLljZUgICDpnIDliY3lj7DmiYvliqjnoa7lrprorqLljZUg5qC55o2u6K6i5Y2V5ZCI5ZCM5LiN5ZCM6LCD55So5LiN5ZCM5o6l5Y+jXG4gICAqL1xuICBidXR0b25TdWJtaXQoKSB7XG4gICAgY29uc3Qgd29ya0NvbnRyYWN0VHlwZSA9IHRoaXMuZGF0YS5od09yZGVyQVBJLndvcmtDb250cmFjdFR5cGU7XG4gICAgLy8g55S15a2Q5ZCI5ZCM56Gu6K6k6K6i5Y2VXG4gICAgaWYgKHdvcmtDb250cmFjdFR5cGUgPT09IDEpIHtcbiAgICAgIGNvbmZpcm1FQ09yZGVyc0ltcGwoe1xuICAgICAgICBvcmRlcklkOiB0aGlzLmRhdGEuaHdPcmRlckFQSS5pZFxuICAgICAgfSkudGhlbihyZXMgPT4ge1xuICAgICAgICBpZiAocmVzLmVyckNvZGUgPT09IDApIHtcbiAgICAgICAgICAvLyDot7Povax3ZWJ2aWV36aG16Z2iXG4gICAgICAgICAgd3gucmVMYXVuY2goe1xuICAgICAgICAgICAgdXJsOiBgL3BhZ2VzL3dlYi12aWV3L3dlYi12aWV3P3VybD0ke2VuY29kZVVSSUNvbXBvbmVudChyZXMuZGF0YS51cmwpfWAsXG4gICAgICAgICAgICBzdWNjZXNzOiAoKSA9PiB7XG4gICAgICAgICAgICAgIC8vIOe8k+WtmOW9k+WJjemhtemdouWcsOWdgCAgIOaWueS+v+i3s+WbnlxuICAgICAgICAgICAgICBhcHAuZ2xvYmFsRGF0YS53ZWJ2aWV3ID0gYC9wYWdlcy9teS1vcmRlci9teS1vcmRlcmA7XG4gICAgICAgICAgICAgIC8vIHd4LnNldFN0b3JhZ2VTeW5jKCd3ZWJfdmlldycsIGAvcGFnZXMvbXktb3JkZXIvbXktb3JkZXJgKVxuICAgICAgICAgICAgICAvLyB3eC5zZXRTdG9yYWdlU3luYygnd2ViX3ZpZXcnLCBgLyR7dGhpcy5yb3V0ZX0/aWQ9JHt0aGlzLmRhdGEuaHdPcmRlckFQSS5pZH0mJnN0YXR1cz0ke3RoaXMuZGF0YS5zdGF0dXN9YClcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KVxuICAgICAgICB9XG4gICAgICB9KVxuICAgIH1cbiAgICAvLyDpnZ7nlLXlrZDlkIjlkIxcbiAgICBpZiAod29ya0NvbnRyYWN0VHlwZSA9PT0gMCkge1xuICAgICAgY29uZmlybU9yZGVySW1wbCh7XG4gICAgICAgIG9yZGVySWQ6IHRoaXMuZGF0YS5od09yZGVyQVBJLmlkXG4gICAgICB9KS50aGVuKHJlcyA9PiB7XG4gICAgICAgIGlmIChyZXMuZXJyQ29kZSA9PT0gMCkge1xuICAgICAgICAgIHd4LnNob3dUb2FzdCh7XG4gICAgICAgICAgICB0aXRsZTogJ+iuouWNleW3suehruiupCcsXG4gICAgICAgICAgICBzdWNjZXNzOiAoKSA9PiB7XG4gICAgICAgICAgICAgIC8vIOehruiupOaIkOWKn+WQjiDmm7TmlLnmjInpkq7nirbmgIFcbiAgICAgICAgICAgICAgY29uc3QgaHdPcmRlckFQSSA9IHRoaXMuZGF0YS5od09yZGVyQVBJO1xuICAgICAgICAgICAgICBod09yZGVyQVBJLnN0YXR1cyA9IDI7XG4gICAgICAgICAgICAgIHRoaXMuc2V0RGF0YSh7XG4gICAgICAgICAgICAgICAgaHdPcmRlckFQSVxuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pXG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgfVxuICB9LFxuICAvLyDmmL7npLrmiqXlkI3loavlhpnnmoTorqLljZXovpPlhaXmoYZcbiAgYXN5bmMgc2hvd0NvdmVyKCkge1xuICAgIGNvbnN0IHVzZXJJbmZvOiBhbnkgPSBhd2FpdCBnZXRId1VzZXJJbmZvKClcbiAgICBpZiAodXNlckluZm8uaWRjYXJkTnVtYmVyICYmIHVzZXJJbmZvLm5hbWUpIHtcbiAgICAgIHRoaXMuc2V0RGF0YSh7XG4gICAgICAgIGNvdmVyOiBmYWxzZSxcbiAgICAgICAgaGFzSW5mbzogdHJ1ZVxuICAgICAgfSlcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zZXREYXRhKHtcbiAgICAgICAgY292ZXI6IGZhbHNlLFxuICAgICAgICBoYXNJbmZvOiBmYWxzZVxuICAgICAgfSlcbiAgICB9XG5cbiAgfSxcbiAgLyoqXG4gICAqIOaOp+WItmNvdmVy5bGC55qE5pi+56S65LiO6ZqQ6JePXG4gICAqL1xuICBjb3ZlcigpIHtcbiAgICBjb25zdCBjb3ZlciA9ICF0aGlzLmRhdGEuY292ZXI7XG4gICAgdGhpcy5zZXREYXRhKHtcbiAgICAgIGNvdmVyXG4gICAgfSlcbiAgfSxcbiAgLyoqXG4gICAgKiDlj5bmtojmiqXlkI1cbiAgICAqIEBlbnJvbGxfaWQge3N0cmluZ30g5oql5ZCNaWRcbiAgICAqL1xuICBjYW5jZWxFbnJvbGxtZW50KCkge1xuICAgIGNvbnN0IGlkID0gdGhpcy5kYXRhLmVucm9sbElkXG4gICAgY2FuY2VsRW5yb2xsbWVudEltcGwoe1xuICAgICAgZW5yb2xsX2lkOiBpZFxuICAgIH0pLnRoZW4oKCkgPT4ge1xuICAgICAgd3guc2hvd1RvYXN0KHtcbiAgICAgICAgaWNvbjogJ25vbmUnLFxuICAgICAgICB0aXRsZTogJ+WPlua2iOaIkOWKnycsXG4gICAgICAgIHN1Y2Nlc3M6ICgpID0+IHtcbiAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHd4Lm5hdmlnYXRlQmFjayh7XG4gICAgICAgICAgICAgIGRlbHRhOiAxXG4gICAgICAgICAgICB9KVxuICAgICAgICAgIH0sIDEyMDApXG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgfSlcbiAgfSxcbiAgLyoqXG4gICAqIFxuICAgKi9cbiAgYnV0dG9uUmlnaHQoKSB7XG5cbiAgfSxcbiAgLyoqXG4gICAqIOeUn+WRveWRqOacn+WHveaVsC0t55uR5ZCs6aG16Z2i5Yqg6L29XG4gICAqL1xuICBvbkxvYWQ6IGZ1bmN0aW9uIChvcHRpb25zOiBhbnkpIHtcbiAgICB0aGlzLnNldERhdGEoe1xuICAgICAgb3B0aW9uc1xuICAgIH0pXG5cbiAgfSxcblxuICAvKipcbiAgICog55Sf5ZG95ZGo5pyf5Ye95pWwLS3nm5HlkKzpobXpnaLliJ3mrKHmuLLmn5PlrozmiJBcbiAgICovXG4gIG9uUmVhZHk6IGZ1bmN0aW9uICgpIHtcblxuICB9LFxuXG4gIC8qKlxuICAgKiDnlJ/lkb3lkajmnJ/lh73mlbAtLeebkeWQrOmhtemdouaYvuekulxuICAgKi9cbiAgb25TaG93OiBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMuZGF0YS5vcHRpb25zXG4gICAgaWYgKG9wdGlvbnMuaWQgJiYgb3B0aW9ucy5zdGF0dXMpIHtcbiAgICAgIC8vICDlpoLmnpwg54q25oCB5Li6MyAg6K+35rGC6K6i5Y2V6K+m5oOFIElE5Li66K6i5Y2VaWRcbiAgICAgIGlmIChvcHRpb25zLnN0YXR1cyA9PT0gJzInKSB7XG4gICAgICAgIGdldE9yZGVyRGV0YWlsSW1wbCh7XG4gICAgICAgICAgb3JkZXJJZDogb3B0aW9ucy5pZFxuICAgICAgICB9KS50aGVuKHJlcyA9PiB7XG4gICAgICAgICAgaWYgKHJlcy5lcnJDb2RlID09PSAwKSB7XG4gICAgICAgICAgICBjb25zdCBpZCA9IGdldFN0b3JhZ2VTeW5jKGBvcmRlckRldGFpbF8ke3RoaXMuZGF0YS5pZH1gKVxuICAgICAgICAgICAgaWYgKGlkKSB7XG4gICAgICAgICAgICAgIHJlcy5kYXRhLmh3T3JkZXJBUEkuc3RhdHVzID0gMlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5zZXREYXRhKHtcbiAgICAgICAgICAgICAgLi4ucmVzLmRhdGEuaHdSZXF1aXJlbWVudEFQSSxcbiAgICAgICAgICAgICAgaHdPcmRlckFQSTogcmVzLmRhdGEuaHdPcmRlckFQSSxcbiAgICAgICAgICAgICAgLy8gYnRuX21lc3NhZ2U6IHJlcy5kYXRhLmh3T3JkZXJBUEkuc3RhdHVzID09PSAyICYmIHJlcy5kYXRhLmh3T3JkZXJBUEkuc2VydmljZVN0YWdlID8gYOesrCR7cmVzLmRhdGEuaHdPcmRlckFQSS5zZXJ2aWNlU3RhZ2V95pyf5pyN5Yqh5LitYCA6IHRoaXMuZGF0YS5tZXNzYWdlW3Jlcy5kYXRhLmh3T3JkZXJBUEkuc3RhdHVzXVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICB9XG5cbiAgICAgIC8vIOWmguaenOeKtuaAgeS4ujEg6K+35rGC6ZyA5rGC6K+m5oOFIElE5Li66ZyA5rGCaWRcbiAgICAgIGlmIChvcHRpb25zLnN0YXR1cyA9PT0gJzEnKSB7XG4gICAgICAgIGdldFJlcXVpcmVtZW50RGV0YWlsSW1wbCh7XG4gICAgICAgICAgdXNlcl9pZDogd3guZ2V0U3RvcmFnZVN5bmMoJ3VzZXJJZCcpLFxuICAgICAgICAgIHVzZXJfdG9rZW46IHd4LmdldFN0b3JhZ2VTeW5jKCd1c2VyVG9rZW4nKSxcbiAgICAgICAgICBod1JlcXVpcmVtZW50SWQ6IG9wdGlvbnMuaWRcbiAgICAgICAgfSkudGhlbihyZXMgPT4ge1xuICAgICAgICAgIGlmIChyZXMuZXJyQ29kZSA9PT0gMCkge1xuICAgICAgICAgICAgdGhpcy5zZXREYXRhKHtcbiAgICAgICAgICAgICAgLi4ucmVzLmRhdGEuaHdSZXF1aXJlbWVudEFQSSxcbiAgICAgICAgICAgICAgZGlzcGxheUNhbmNlbDogcmVzLmRhdGEuZGlzcGxheUNhbmNlbCB8fCBudWxsLFxuICAgICAgICAgICAgICBuZWVkRW5yb2xsbWVudDogcmVzLmRhdGEubmVlZEVucm9sbG1lbnQgfHwgbnVsbCxcbiAgICAgICAgICAgICAgZW5yb2xsSWQ6IHJlcy5kYXRhLmVucm9sbElkIHx8IG51bGxcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgfVxuICAgIH1cbiAgICAvLyDkv53lrZjnirbmgIFcbiAgICBpZiAob3B0aW9ucy5zdGF0dXMpIHtcbiAgICAgIHRoaXMuc2V0RGF0YSh7XG4gICAgICAgIHN0YXR1czogTnVtYmVyKG9wdGlvbnMuc3RhdHVzKSxcbiAgICAgICAgc2hvdzogZmFsc2VcbiAgICAgIH0pXG4gICAgfVxuICAgIHRoaXMuc2V0RGF0YSh7XG4gICAgICB1c2VyX2lkOiB3eC5nZXRTdG9yYWdlU3luYygndXNlcklkJyksXG4gICAgfSlcblxuICB9LFxuXG4gIC8qKlxuICAgKiDnlJ/lkb3lkajmnJ/lh73mlbAtLeebkeWQrOmhtemdoumakOiXj1xuICAgKi9cbiAgb25IaWRlOiBmdW5jdGlvbiAoKSB7XG5cbiAgfSxcblxuICAvKipcbiAgICog55Sf5ZG95ZGo5pyf5Ye95pWwLS3nm5HlkKzpobXpnaLljbjovb1cbiAgICovXG4gIG9uVW5sb2FkOiBmdW5jdGlvbiAoKSB7XG5cbiAgfSxcblxuICAvKipcbiAgICog6aG16Z2i55u45YWz5LqL5Lu25aSE55CG5Ye95pWwLS3nm5HlkKznlKjmiLfkuIvmi4nliqjkvZxcbiAgICovXG4gIG9uUHVsbERvd25SZWZyZXNoOiBmdW5jdGlvbiAoKSB7XG5cbiAgfSxcblxuICAvKipcbiAgICog6aG16Z2i5LiK5ouJ6Kem5bqV5LqL5Lu255qE5aSE55CG5Ye95pWwXG4gICAqL1xuICBvblJlYWNoQm90dG9tOiBmdW5jdGlvbiAoKSB7XG5cbiAgfSxcblxuICAvKipcbiAgICog55So5oi354K55Ye75Y+z5LiK6KeS5YiG5LqrXG4gICAqL1xuICBvblNoYXJlQXBwTWVzc2FnZTogZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiB7XG4gICAgICB0aXRsZTogdGhpcy5kYXRhLm5hbWUsXG4gICAgICBwYXRoOiBgL3BhZ2VzL2RldGFpbC9kZXRhaWw/aWQ9JHt0aGlzLmRhdGEuaWR9JiZzdGF0dXM9JHt0aGlzLmRhdGEuc3RhdHVzfWBcbiAgICB9XG4gIH1cbn0pIl19