(function() { var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; var __module = nodeEnv ? module : {exports:{}}; var __filename = 'preview-scripts/assets/Scripts/mod/onlinegift/view/onlinegift_window.js'; var __require = nodeEnv ? function (request) { return cc.require(request); } : function (request) { return __quick_compile_project__.require(request, __filename); }; function __define (exports, require, module) { if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict"; cc._RF.push(module, '985de82FfdLXKVGAcr8CD9R', 'onlinegift_window'); // Scripts/mod/onlinegift/view/onlinegift_window.js "use strict"; // -------------------------------------------------------------------- // @author: whjing2012@syg.com(必填, 创建模块的人员) // @description: // 这里是描述这个窗体的作用的 //
Create: 2019-01-05 10:46:42 // -------------------------------------------------------------------- var PathTool = require("pathtool"); var OnlinegiftController = require("onlinegift_controller"); var TimeTool = require("timetool"); var OnlinegiftWindow = cc.Class({ "extends": BaseView, ctor: function ctor() { this.prefabPath = PathTool.getPrefabPath("onlinegift", "onlinegift_windows"); this.viewTag = SCENE_TAG.dialogue; // this.win_type = WinType.Full; //是否是全屏窗体 WinType.Full, WinType.Big, WinType.Mini, WinType.Tips }, // 初始化一些配置数据,可以用于声明一些变量之类的 initConfig: function initConfig() { this.item_list = {}; }, // 预制体加载完成之后的回调,可以在这里捕获相关节点或者组件 openCallBack: function openCallBack() { this.background = this.seekChild(this.root_wnd, "background"); this.bg = this.seekChild(this.root_wnd, "bg", cc.Sprite); this.textTime = this.seekChild(this.bg.node, "textTime", cc.Label); this.content = this.seekChild(this.bg.node, "content"); this.loadRes(PathTool.getBigBg("action/txt_cn_online_gift"), function (resObject) { this.bg.spriteFrame = resObject; }.bind(this)); var y = 0; for (var i in Config.misc_data.data_get_time_items) { var config = Config.misc_data.data_get_time_items[i]; var item = ItemsPool.getInstance().getItem("backpack_item"); item.setParent(this.content); item.initConfig(null, 0.9, false, false); item.setData({ bid: config.items[0][0], num: config.items[0][1] }); item.show(); item.config = config; var idx = config.index - 1; y = -(parseInt(idx / 4) * 125 + 55); item.setPosition(idx % 4 * 124 + 62, y); this.item_list[config.index] = item; // item.addCallBack((function(obj){ // OnlinegiftController.getInstance().send10927(config.index); // }).bind(this)); } this.content.height = 55 - y; }, // 注册事件监听的接口,不需要手动调用,如果是使用gcore.GlobalEvent监听,可以直接调用addGlobalEvent registerEvent: function registerEvent() { this.background.on(cc.Node.EventType.TOUCH_END, function (event) { OnlinegiftController.getInstance().openOnlineGiftView(false); }, this); var OnlineGiftEvent = require("onlinegift_event"); this.addGlobalEvent(OnlineGiftEvent.Get_Data, function (data) { this.updateData(data); }.bind(this)); this.addGlobalEvent(OnlineGiftEvent.Update_Data, function (time) { for (var i in this.item_list) { var item = this.item_list[i]; if (item && item.config.time == time) { item.setExtendTag(true, Utils.TI18N("已领取")); item.showItemEffect(false); break; } } }.bind(this)); }, // 预制体加载完成之后,添加到对应主节点之后的回调,也就是一个窗体的正式入口,可以设置一些数据了 openRootWnd: function openRootWnd(params) { OnlinegiftController.getInstance().send10926(); }, updateData: function updateData(data) { var _this = this; var gift_data = OnlinegiftController.getInstance().getModel().getOnlineGiftData(); var time = OnlinegiftController.getInstance().getModel().getOnlineTime(); var has_list = {}; for (var i in gift_data) { has_list[gift_data[i].time] = gift_data[i]; } Log.info(gift_data, has_list); var lesstime = 0; var _loop = function _loop(_i) { item = _this.item_list[_i]; t = item.config.time; var index = item.config.index; if (has_list[t]) { item.setExtendTag(true, Utils.TI18N("已领取")); item.setItemIconUnEnabled(true); item.showItemEffect(false); item.addCallBack(function (obj) { OnlinegiftController.getInstance().send10927(index); }.bind(_this)); item.is_show_tips = false; } else if (time >= t) { // item.setExtendTag(false); item.showItemEffect(true, 263, PlayerAction.action_1, true, 1.1); item.addCallBack(function (obj) { OnlinegiftController.getInstance().send10927(index); }.bind(_this)); item.is_show_tips = false; } else { lesstime = lesstime || item.config.time - time; // item.setExtendTag(false); item.showItemEffect(false); item.is_show_tips = true; } }; for (var _i in this.item_list) { var item; var t; _loop(_i); } this.textTime.string = ""; if (lesstime > 0) { this.ref_time = lesstime; if (this.timer) { gcore.Timer.del(this.timer); this.timer = null; } this.setLessTime(); } else { this.textTime.string = TimeTool.getTimeFormat(0); } }, setLessTime: function setLessTime() { if (!cc.isValid(this.textTime) || !this.ref_time) { return; } this.ref_time -= 1; var lesstime = this.ref_time; // Log.info("====>>>", lesstime, this.data, gcore.SmartSocket.getTime()); if (lesstime > 0) { this.textTime.string = TimeTool.getTimeFormat(lesstime); this.timer = gcore.Timer.set(function () { if (this.timer) { gcore.Timer.del(this.timer); this.timer = null; } this.setLessTime(); }.bind(this), 1000, 1); } else { this.textTime.string = ""; } }, // 关闭窗体回调,需要在这里调用该窗体所属controller的close方法没用于置空该窗体实例对象 closeCallBack: function closeCallBack() { for (var k in this.item_list) { this.item_list[k].deleteMe(); } this.item_list = null; if (this.timer) { gcore.Timer.del(this.timer); this.timer = null; } OnlinegiftController.getInstance().openOnlineGiftView(false); } }); cc._RF.pop(); } if (nodeEnv) { __define(__module.exports, __require, __module); } else { __quick_compile_project__.registerModuleFunc(__filename, function () { __define(__module.exports, __require, __module); }); } })(); //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0c1xcbW9kXFxvbmxpbmVnaWZ0XFx2aWV3XFxvbmxpbmVnaWZ0X3dpbmRvdy5qcyJdLCJuYW1lcyI6WyJQYXRoVG9vbCIsInJlcXVpcmUiLCJPbmxpbmVnaWZ0Q29udHJvbGxlciIsIlRpbWVUb29sIiwiT25saW5lZ2lmdFdpbmRvdyIsImNjIiwiQ2xhc3MiLCJCYXNlVmlldyIsImN0b3IiLCJwcmVmYWJQYXRoIiwiZ2V0UHJlZmFiUGF0aCIsInZpZXdUYWciLCJTQ0VORV9UQUciLCJkaWFsb2d1ZSIsImluaXRDb25maWciLCJpdGVtX2xpc3QiLCJvcGVuQ2FsbEJhY2siLCJiYWNrZ3JvdW5kIiwic2Vla0NoaWxkIiwicm9vdF93bmQiLCJiZyIsIlNwcml0ZSIsInRleHRUaW1lIiwibm9kZSIsIkxhYmVsIiwiY29udGVudCIsImxvYWRSZXMiLCJnZXRCaWdCZyIsInJlc09iamVjdCIsInNwcml0ZUZyYW1lIiwiYmluZCIsInkiLCJpIiwiQ29uZmlnIiwibWlzY19kYXRhIiwiZGF0YV9nZXRfdGltZV9pdGVtcyIsImNvbmZpZyIsIml0ZW0iLCJJdGVtc1Bvb2wiLCJnZXRJbnN0YW5jZSIsImdldEl0ZW0iLCJzZXRQYXJlbnQiLCJzZXREYXRhIiwiYmlkIiwiaXRlbXMiLCJudW0iLCJzaG93IiwiaWR4IiwiaW5kZXgiLCJwYXJzZUludCIsInNldFBvc2l0aW9uIiwiaGVpZ2h0IiwicmVnaXN0ZXJFdmVudCIsIm9uIiwiTm9kZSIsIkV2ZW50VHlwZSIsIlRPVUNIX0VORCIsImV2ZW50Iiwib3Blbk9ubGluZUdpZnRWaWV3IiwiT25saW5lR2lmdEV2ZW50IiwiYWRkR2xvYmFsRXZlbnQiLCJHZXRfRGF0YSIsImRhdGEiLCJ1cGRhdGVEYXRhIiwiVXBkYXRlX0RhdGEiLCJ0aW1lIiwic2V0RXh0ZW5kVGFnIiwiVXRpbHMiLCJUSTE4TiIsInNob3dJdGVtRWZmZWN0Iiwib3BlblJvb3RXbmQiLCJwYXJhbXMiLCJzZW5kMTA5MjYiLCJnaWZ0X2RhdGEiLCJnZXRNb2RlbCIsImdldE9ubGluZUdpZnREYXRhIiwiZ2V0T25saW5lVGltZSIsImhhc19saXN0IiwiTG9nIiwiaW5mbyIsImxlc3N0aW1lIiwidCIsInNldEl0ZW1JY29uVW5FbmFibGVkIiwiYWRkQ2FsbEJhY2siLCJvYmoiLCJzZW5kMTA5MjciLCJpc19zaG93X3RpcHMiLCJQbGF5ZXJBY3Rpb24iLCJhY3Rpb25fMSIsInN0cmluZyIsInJlZl90aW1lIiwidGltZXIiLCJnY29yZSIsIlRpbWVyIiwiZGVsIiwic2V0TGVzc1RpbWUiLCJnZXRUaW1lRm9ybWF0IiwiaXNWYWxpZCIsInNldCIsImNsb3NlQ2FsbEJhY2siLCJrIiwiZGVsZXRlTWUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSUEsUUFBUSxHQUFHQyxPQUFPLENBQUMsVUFBRCxDQUF0Qjs7QUFDQSxJQUFJQyxvQkFBb0IsR0FBR0QsT0FBTyxDQUFDLHVCQUFELENBQWxDOztBQUNBLElBQUlFLFFBQVEsR0FBR0YsT0FBTyxDQUFDLFVBQUQsQ0FBdEI7O0FBRUEsSUFBSUcsZ0JBQWdCLEdBQUdDLEVBQUUsQ0FBQ0MsS0FBSCxDQUFTO0FBQzVCLGFBQVNDLFFBRG1CO0FBRTVCQyxFQUFBQSxJQUFJLEVBQUUsZ0JBQVk7QUFDZCxTQUFLQyxVQUFMLEdBQWtCVCxRQUFRLENBQUNVLGFBQVQsQ0FBdUIsWUFBdkIsRUFBcUMsb0JBQXJDLENBQWxCO0FBQ0EsU0FBS0MsT0FBTCxHQUFlQyxTQUFTLENBQUNDLFFBQXpCLENBRmMsQ0FHZDtBQUNILEdBTjJCO0FBUTVCO0FBQ0FDLEVBQUFBLFVBQVUsRUFBQyxzQkFBVTtBQUNqQixTQUFLQyxTQUFMLEdBQWlCLEVBQWpCO0FBQ0gsR0FYMkI7QUFhNUI7QUFDQUMsRUFBQUEsWUFBWSxFQUFDLHdCQUFVO0FBQ25CLFNBQUtDLFVBQUwsR0FBa0IsS0FBS0MsU0FBTCxDQUFlLEtBQUtDLFFBQXBCLEVBQThCLFlB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Ly8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIEBhdXRob3I6IHdoamluZzIwMTJAc3lnLmNvbSjlv4XloassIOWIm+W7uuaooeWdl+eahOS6uuWRmClcbi8vIEBkZXNjcmlwdGlvbjpcbi8vICAgICDov5nph4zmmK/mj4/ov7Dov5nkuKrnqpfkvZPnmoTkvZznlKjnmoRcbi8vIDxici8+Q3JlYXRlOiAyMDE5LTAxLTA1IDEwOjQ2OjQyXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxudmFyIFBhdGhUb29sID0gcmVxdWlyZShcInBhdGh0b29sXCIpO1xudmFyIE9ubGluZWdpZnRDb250cm9sbGVyID0gcmVxdWlyZShcIm9ubGluZWdpZnRfY29udHJvbGxlclwiKTtcbnZhciBUaW1lVG9vbCA9IHJlcXVpcmUoXCJ0aW1ldG9vbFwiKTtcblxudmFyIE9ubGluZWdpZnRXaW5kb3cgPSBjYy5DbGFzcyh7XG4gICAgZXh0ZW5kczogQmFzZVZpZXcsXG4gICAgY3RvcjogZnVuY3Rpb24gKCkge1xuICAgICAgICB0aGlzLnByZWZhYlBhdGggPSBQYXRoVG9vbC5nZXRQcmVmYWJQYXRoKFwib25saW5lZ2lmdFwiLCBcIm9ubGluZWdpZnRfd2luZG93c1wiKTtcbiAgICAgICAgdGhpcy52aWV3VGFnID0gU0NFTkVfVEFHLmRpYWxvZ3VlO1xuICAgICAgICAvLyB0aGlzLndpbl90eXBlID0gV2luVHlwZS5GdWxsOyAgICAgICAgICAgICAgIC8v5piv5ZCm5piv5YWo5bGP56qX5L2TICBXaW5UeXBlLkZ1bGwsIFdpblR5cGUuQmlnLCBXaW5UeXBlLk1pbmksIFdpblR5cGUuVGlwc1xuICAgIH0sXG5cbiAgICAvLyDliJ3lp4vljJbkuIDkupvphY3nva7mlbDmja4s5Y+v5Lul55So5LqO5aOw5piO5LiA5Lqb5Y+Y6YeP5LmL57G755qEXG4gICAgaW5pdENvbmZpZzpmdW5jdGlvbigpe1xuICAgICAgICB0aGlzLml0ZW1fbGlzdCA9IHt9O1xuICAgIH0sXG5cbiAgICAvLyDpooTliLbkvZPliqDovb3lrozmiJDkuYvlkI7nmoTlm57osIMs5Y+v5Lul5Zyo6L+Z6YeM5o2V6I6355u45YWz6IqC54K55oiW6ICF57uE5Lu2XG4gICAgb3BlbkNhbGxCYWNrOmZ1bmN0aW9uKCl7XG4gICAgICAgIHRoaXMuYmFja2dyb3VuZCA9IHRoaXMuc2Vla0NoaWxkKHRoaXMucm9vdF93bmQsIFwiYmFja2dyb3VuZFwiKTtcbiAgICAgICAgdGhpcy5iZyA9IHRoaXMuc2Vla0NoaWxkKHRoaXMucm9vdF93bmQsIFwiYmdcIiwgY2MuU3ByaXRlKTtcbiAgICAgICAgdGhpcy50ZXh0VGltZSA9IHRoaXMuc2Vla0NoaWxkKHRoaXMuYmcubm9kZSwgXCJ0ZXh0VGltZVwiLCBjYy5MYWJlbCk7XG4gICAgICAgIHRoaXMuY29udGVudCA9IHRoaXMuc2Vla0NoaWxkKHRoaXMuYmcubm9kZSwgXCJjb250ZW50XCIpO1xuICAgICAgICB0aGlzLmxvYWRSZXMoUGF0aFRvb2wuZ2V0QmlnQmcoXCJhY3Rpb24vdHh0X2NuX29ubGluZV9naWZ0XCIpLCAoZnVuY3Rpb24ocmVzT2JqZWN0KXtcbiAgICAgICAgICAgIHRoaXMuYmcuc3ByaXRlRnJhbWUgPSByZXNPYmplY3Q7XG4gICAgICAgIH0pLmJpbmQodGhpcykpO1xuICAgICAgICB2YXIgeSA9IDA7XG4gICAgICAgIGZvcihsZXQgaSBpbiBDb25maWcubWlzY19kYXRhLmRhdGFfZ2V0X3RpbWVfaXRlbXMpe1xuICAgICAgICAgICAgbGV0IGNvbmZpZyA9IENvbmZpZy5taXNjX2RhdGEuZGF0YV9nZXRfdGltZV9pdGVtc1tpXTtcbiAgICAgICAgICAgIGxldCBpdGVtID0gSXRlbXNQb29sLmdldEluc3RhbmNlKCkuZ2V0SXRlbShcImJhY2twYWNrX2l0ZW1cIik7XG4gICAgICAgICAgICBpdGVtLnNldFBhcmVudCh0aGlzLmNvbnRlbnQpO1xuICAgICAgICAgICAgaXRlbS5pbml0Q29uZmlnKG51bGwsIDAuOSwgZmFsc2UsIGZhbHNlKTtcbiAgICAgICAgICAgIGl0ZW0uc2V0RGF0YSh7YmlkOmNvbmZpZy5pdGVtc1swXVswXSwgbnVtOmNvbmZpZy5pdGVtc1swXVsxXX0pO1xuICAgICAgICAgICAgaXRlbS5zaG93KCk7XG4gICAgICAgICAgICBpdGVtLmNvbmZpZyA9IGNvbmZpZztcbiAgICAgICAgICAgIGxldCBpZHggPSBjb25maWcuaW5kZXggLSAxO1xuICAgICAgICAgICAgeSA9IC0ocGFyc2VJbnQoaWR4IC8gNCkgKiAxMjUgKyA1NSk7XG4gICAgICAgICAgICBpdGVtLnNldFBvc2l0aW9uKGlkeCAlIDQgKiAxMjQgKyA2MiwgeSk7XG4gICAgICAgICAgICB0aGlzLml0ZW1fbGlzdFtjb25maWcuaW5kZXhdID0gaXRlbTtcbiAgICAgICAgICAgIC8vIGl0ZW0uYWRkQ2FsbEJhY2soKGZ1bmN0aW9uKG9iail7XG4gICAgICAgICAgICAvLyAgICAgT25saW5lZ2lmdENvbnRyb2xsZXIuZ2V0SW5zdGFuY2UoKS5zZW5kMTA5MjcoY29uZmlnLmluZGV4KTtcbiAgICAgICAgICAgIC8vIH0pLmJpbmQodGhpcykpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuY29udGVudC5oZWlnaHQgPSA1NSAtIHk7XG4gICAgfSxcblxuICAgIC8vIOazqOWGjOS6i+S7tuebkeWQrOeahOaOpeWPoyzkuI3pnIDopoHmiYvliqjosIPnlKgs5aaC5p6c5piv5L2/55SoZ2NvcmUuR2xvYmFsRXZlbnTnm5HlkKws5Y+v5Lul55u05o6l6LCD55SoYWRkR2xvYmFsRXZlbnRcbiAgICByZWdpc3RlckV2ZW50OmZ1bmN0aW9uKCl7XG4gICAgICAgIHRoaXMuYmFja2dyb3VuZC5vbihjYy5Ob2RlLkV2ZW50VHlwZS5UT1VDSF9FTkQsIGZ1bmN0aW9uKGV2ZW50KXtcbiAgICAgICAgICAgIE9ubGluZWdpZnRDb250cm9sbGVyLmdldEluc3RhbmNlKCkub3Blbk9ubGluZUdpZnRWaWV3KGZhbHNlKTtcbiAgICAgICAgfSwgdGhpcyk7XG4gICAgICAgIHZhciBPbmxpbmVHaWZ0RXZlbnQgPSByZXF1aXJlKFwib25saW5lZ2lmdF9ldmVudFwiKTtcbiAgICAgICAgdGhpcy5hZGRHbG9iYWxFdmVudChPbmxpbmVHaWZ0RXZlbnQuR2V0X0RhdGEsIChmdW5jdGlvbihkYXRhKXtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlRGF0YShkYXRhKTtcbiAgICAgICAgfSkuYmluZCh0aGlzKSk7XG4gICAgICAgIHRoaXMuYWRkR2xvYmFsRXZlbnQoT25saW5lR2lmdEV2ZW50LlVwZGF0ZV9EYXRhLCAoZnVuY3Rpb24odGltZSl7XG4gICAgICAgICAgICBmb3IobGV0IGkgaW4gdGhpcy5pdGVtX2xpc3Qpe1xuICAgICAgICAgICAgICAgIHZhciBpdGVtID0gdGhpcy5pdGVtX2xpc3RbaV07XG4gICAgICAgICAgICAgICAgaWYoaXRlbSAmJiBpdGVtLmNvbmZpZy50aW1lID09IHRpbWUpe1xuICAgICAgICAgICAgICAgICAgICBpdGVtLnNldEV4dGVuZFRhZyh0cnVlLCBVdGlscy5USTE4TihcIuW3sumihuWPllwiKSk7XG4gICAgICAgICAgICAgICAgICAgIGl0ZW0uc2hvd0l0ZW1FZmZlY3QoZmFsc2UpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pLmJpbmQodGhpcykpO1xuICAgIH0sXG5cbiAgICAvLyDpooTliLbkvZPliqDovb3lrozmiJDkuYvlkI4s5re75Yqg5Yiw5a+55bqU5Li76IqC54K55LmL5ZCO55qE5Zue6LCDLOS5n+WwseaYr+S4gOS4queql+S9k+eahOato+W8j+WFpeWPoyzlj6/ku6Xorr7nva7kuIDkupvmlbDmja7kuoZcbiAgICBvcGVuUm9vdFduZDpmdW5jdGlvbihwYXJhbXMpe1xuICAgICAgICBPbmxpbmVnaWZ0Q29udHJvbGxlci5nZXRJbnN0YW5jZSgpLnNlbmQxMDkyNigpXG4gICAgfSxcblxuICAgIHVwZGF0ZURhdGEgOiBmdW5jdGlvbihkYXRhKXtcbiAgICAgICAgdmFyIGdpZnRfZGF0YSA9IE9ubGluZWdpZnRDb250cm9sbGVyLmdldEluc3RhbmNlKCkuZ2V0TW9kZWwoKS5nZXRPbmxpbmVHaWZ0RGF0YSgpO1xuICAgICAgICB2YXIgdGltZSA9IE9ubGluZWdpZnRDb250cm9sbGVyLmdldEluc3RhbmNlKCkuZ2V0TW9kZWwoKS5nZXRPbmxpbmVUaW1lKCk7XG4gICAgICAgIHZhciBoYXNfbGlzdCA9IHt9O1xuICAgICAgICBmb3IobGV0IGkgaW4gZ2lmdF9kYXRhKXtcbiAgICAgICAgICAgIGhhc19saXN0W2dpZnRfZGF0YVtpXS50aW1lXSA9IGdpZnRfZGF0YVtpXTtcbiAgICAgICAgfVxuICAgICAgICBMb2cuaW5mbyhnaWZ0X2RhdGEsIGhhc19saXN0KTtcbiAgICAgICAgdmFyIGxlc3N0aW1lID0gMDtcbiAgICAgICAgZm9yKGxldCBpIGluIHRoaXMuaXRlbV9saXN0KXtcbiAgICAgICAgICAgIHZhciBpdGVtID0gdGhpcy5pdGVtX2xpc3RbaV07XG4gICAgICAgICAgICB2YXIgdCA9IGl0ZW0uY29uZmlnLnRpbWU7XG4gICAgICAgICAgICBsZXQgaW5kZXggPSBpdGVtLmNvbmZpZy5pbmRleFxuICAgICAgICAgICAgaWYoaGFzX2xpc3RbdF0pe1xuICAgICAgICAgICAgICAgIGl0ZW0uc2V0RXh0ZW5kVGFnKHRydWUsIFV0aWxzLlRJMThOKFwi5bey6aKG5Y+WXCIpKTtcbiAgICAgICAgICAgICAgICBpdGVtLnNldEl0ZW1JY29uVW5FbmFibGVkKHRydWUpXG4gICAgICAgICAgICAgICAgaXRlbS5zaG93SXRlbUVmZmVjdChmYWxzZSk7XG4gICAgICAgICAgICAgICAgaXRlbS5hZGRDYWxsQmFjaygoZnVuY3Rpb24ob2JqKXtcbiAgICAgICAgICAgICAgICAgICAgT25saW5lZ2lmdENvbnRyb2xsZXIuZ2V0SW5zdGFuY2UoKS5zZW5kMTA5MjcoaW5kZXgpO1xuICAgICAgICAgICAgICAgIH0pLmJpbmQodGhpcykpO1xuICAgICAgICAgICAgICAgIGl0ZW0uaXNfc2hvd190aXBzID0gZmFsc2VcbiAgICAgICAgICAgIH1lbHNlIGlmKHRpbWUgPj0gdCl7XG4gICAgICAgICAgICAgICAgLy8gaXRlbS5zZXRFeHRlbmRUYWcoZmFsc2UpO1xuICAgICAgICAgICAgICAgIGl0ZW0uc2hvd0l0ZW1FZmZlY3QodHJ1ZSwgMjYzLCBQbGF5ZXJBY3Rpb24uYWN0aW9uXzEsIHRydWUsIDEuMSk7XG4gICAgICAgICAgICAgICAgaXRlbS5hZGRDYWxsQmFjaygoZnVuY3Rpb24ob2JqKXtcbiAgICAgICAgICAgICAgICAgICAgT25saW5lZ2lmdENvbnRyb2xsZXIuZ2V0SW5zdGFuY2UoKS5zZW5kMTA5MjcoaW5kZXgpO1xuICAgICAgICAgICAgICAgIH0pLmJpbmQodGhpcykpO1xuICAgICAgICAgICAgICAgIGl0ZW0uaXNfc2hvd190aXBzID0gZmFsc2VcbiAgICAgICAgICAgIH1lbHNle1xuICAgICAgICAgICAgICAgIGxlc3N0aW1lID0gbGVzc3RpbWUgfHwgaXRlbS5jb25maWcudGltZSAtIHRpbWU7XG4gICAgICAgICAgICAgICAgLy8gaXRlbS5zZXRFeHRlbmRUYWcoZmFsc2UpO1xuICAgICAgICAgICAgICAgIGl0ZW0uc2hvd0l0ZW1FZmZlY3QoZmFsc2UpO1xuICAgICAgICAgICAgICAgIGl0ZW0uaXNfc2hvd190aXBzID0gdHJ1ZVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRoaXMudGV4dFRpbWUuc3RyaW5nID0gXCJcIjtcbiAgICAgICAgaWYobGVzc3RpbWUgPiAwKXtcbiAgICAgICAgICAgIHRoaXMucmVmX3RpbWUgPSBsZXNzdGltZVxuICAgICAgICAgICAgaWYodGhpcy50aW1lcil7XG4gICAgICAgICAgICAgICAgZ2NvcmUuVGltZXIuZGVsKHRoaXMudGltZXIpO1xuICAgICAgICAgICAgICAgIHRoaXMudGltZXIgPSBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5zZXRMZXNzVGltZSgpO1xuICAgICAgICB9ZWxzZXtcbiAgICAgICAgICAgIHRoaXMudGV4dFRpbWUuc3RyaW5nID0gVGltZVRvb2wuZ2V0VGltZUZvcm1hdCgwKTtcbiAgICAgICAgfVxuICAgIH0sXG5cbiAgICBzZXRMZXNzVGltZSA6IGZ1bmN0aW9uKCl7XG4gICAgICAgIGlmKCFjYy5pc1ZhbGlkKHRoaXMudGV4dFRpbWUpIHx8ICF0aGlzLnJlZl90aW1lKXtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnJlZl90aW1lIC09IDFcbiAgICAgICAgbGV0IGxlc3N0aW1lID0gdGhpcy5yZWZfdGltZVxuICAgICAgICAvLyBMb2cuaW5mbyhcIj09PT0+Pj5cIiwgbGVzc3RpbWUsIHRoaXMuZGF0YSwgZ2NvcmUuU21hcnRTb2NrZXQuZ2V0VGltZSgpKTtcbiAgICAgICAgaWYobGVzc3RpbWUgPiAwKXtcbiAgICAgICAgICAgIHRoaXMudGV4dFRpbWUuc3RyaW5nID0gVGltZVRvb2wuZ2V0VGltZUZvcm1hdChsZXNzdGltZSk7XG4gICAgICAgICAgICB0aGlzLnRpbWVyID0gZ2NvcmUuVGltZXIuc2V0KChmdW5jdGlvbigpe1xuICAgICAgICAgICAgICAgIGlmKHRoaXMudGltZXIpe1xuICAgICAgICAgICAgICAgICAgICBnY29yZS5UaW1lci5kZWwodGhpcy50aW1lcik7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudGltZXIgPSBudWxsO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLnNldExlc3NUaW1lKCk7XG4gICAgICAgICAgICB9KS5iaW5kKHRoaXMpLCAxMDAwLCAxKTtcbiAgICAgICAgfWVsc2V7XG4gICAgICAgICAgICB0aGlzLnRleHRUaW1lLnN0cmluZyA9IFwiXCI7XG4gICAgICAgIH1cbiAgICB9LFxuXG4gICAgLy8g5YWz6Zet56qX5L2T5Zue6LCDLOmcgOimgeWcqOi/memHjOiwg+eUqOivpeeql+S9k+aJgOWxnmNvbnRyb2xsZXLnmoRjbG9zZeaWueazleayoeeUqOS6jue9ruepuuivpeeql+S9k+WunuS+i+WvueixoVxuICAgIGNsb3NlQ2FsbEJhY2s6ZnVuY3Rpb24oKXtcbiAgICAgICAgZm9yKGxldCBrIGluIHRoaXMuaXRlbV9saXN0KXtcbiAgICAgICAgICAgIHRoaXMuaXRlbV9saXN0W2tdLmRlbGV0ZU1lKCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5pdGVtX2xpc3QgPSBudWxsO1xuICAgICAgICBpZih0aGlzLnRpbWVyKXtcbiAgICAgICAgICAgIGdjb3JlLlRpbWVyLmRlbCh0aGlzLnRpbWVyKTtcbiAgICAgICAgICAgIHRoaXMudGltZXIgPSBudWxsO1xuICAgICAgICB9XG4gICAgICAgIE9ubGluZWdpZnRDb250cm9sbGVyLmdldEluc3RhbmNlKCkub3Blbk9ubGluZUdpZnRWaWV3KGZhbHNlKTtcbiAgICB9LFxufSlcbiJdfQ==