difenduandada
2024-12-31 34abe6963b344c882358274957f4b992456fee40
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
 
                (function() {
                    var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined';
                    var __module = nodeEnv ? module : {exports:{}};
                    var __filename = 'preview-scripts/assets/Scripts/mod/role/role_vo.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, 'ea7eb0d9mFNdY0UoO3iYk7X', 'role_vo');
// Scripts/mod/role/role_vo.js
 
"use strict";
 
/*-----------------------------------------------------+
 * 角色数据模块
 * @author whjing2012@163.com
 +-----------------------------------------------------*/
var RoleEvent = require("role_event");
 
var RoleVo = cc.Class({
  "extends": gcore.BaseEvent,
  ctor: function ctor() {
    this.rid = 0;
    this.srv_id = "";
    this.name = "";
    this.lev = 0;
    this.exp = 0;
    this.exp_max = 0;
    this.sex = 0;
    this.gold = 0;
    this.coin = 0;
    this.vip_lev = 0;
    this.vip_exp = 0;
    this.is_vip = 0; //是否激活vip;
 
    this.face_id = 0; // 头像
 
    this.avatar_base_id = 0; // 头像框
 
    this.face_list = []; // 头像列表 
 
    this.title_id = 0; // 使用称号ID
 
    this.title_list = []; // 已获得称号列表
 
    this.reg_time = 0; //注册时间
 
    this.gid = 0; //公会id
 
    this.gsrv_id = ""; //公会服务器id
 
    this.position = 0; //公会职位
 
    this.gname = ""; //所属帮派的名字
 
    this.guild_lev = 0; //公会等级
 
    this.guild_quit_time = 0; //上次退帮时间
 
    this.friend_point = 0; //友情点
 
    this.power = 0; //战力
 
    this.max_power = 0; //最高战力
 
    this.open_day = 0; // 开服天数
 
    this.energy = 0; //远航情报
 
    this.energy_max = 0; //远航情报上限
 
    this.dic_action_assets = {}; // --活动资产信息 self.dic_action_assets[资产id] = 数量
 
    this.recruithigh_hero = 0; // -- 先知殿积分
 
    this.vip_card_exp = 0;
  },
  // 更新角色数据
  initAttributeData: function initAttributeData(data) {
    for (var k in data) {
      this.setRoleAttribute(k, data[k]);
    }
  },
  // 设置单个属性信息
  setRoleAttribute: function setRoleAttribute(key, value) {
    if (key == "srv_id") {
      var str = "srv_id" + gcore.SysEnv.get("user_name");
      gcore.SysEnv.set(str, value); // console.log("key===",key,value,str);
      // console.log("存储的服务器", gcore.SysEnv.get(str))
    }
 
    if (this[key] != value) {
      this[key] = value;
      this.dispatchUpdateAttrByKey(key, value);
 
      if (key == "lev" && (PLATFORM_TYPR == "SH_RH" || PLATFORM_TYPR == "SH_SDK")) {
        SDK.roleUpLevel(value);
      }
    }
  },
  // 派发单个属性变化事件
  dispatchUpdateAttrByKey: function dispatchUpdateAttrByKey(key, value) {
    this.fire(EventId.UPDATE_ROLE_ATTRIBUTE, key, value);
  },
  // 角色基础数据变化 
  dispatchUpdateBaseAttr: function dispatchUpdateBaseAttr() {
    this.fire(EventId.ROLE_EVENT_BASE_ATTR);
  },
  //判断是否有加入宗派
  isHasGuild: function isHasGuild() {
    return this.gid != 0;
  },
  // --[[角色活动资产信息]]
  // --@is_update 是否数据更新
  initActionAssetsData: function initActionAssetsData(holiday_assets, is_update) {
    holiday_assets = holiday_assets || [];
 
    for (var i = 0; i < holiday_assets.length; ++i) {
      var v = holiday_assets[i];
      this.dic_action_assets[v.id] = v.val;
 
      if (is_update) {
        this.fire(RoleEvent.UPDATE_ROLE_ACTION_ASSETS, v.id, v.val);
      }
    }
  },
  // --获取活动资产数量
  getActionAssetsNumByBid: function getActionAssetsNumByBid(bid) {
    var self = this;
 
    if (self.dic_action_assets && self.dic_action_assets[bid]) {
      return self.dic_action_assets[bid];
    } else {
      return 0;
    }
  },
  setPower: function setPower(value) {
    var old_value = this.power;
    this.power = value || 0;
 
    if (this.is_show_power == true) {
      if (old_value < value) {
        GlobalMessageMgr.getInstance().showPowerMove(value - old_value, null, old_value);
      }
    }
 
    if (this.power != old_value) {
      this.fire(EventId.UPDATE_ROLE_ATTRIBUTE, "power", this.power);
    }
 
    this.showPower(false);
  },
  showPower: function showPower(bool) {
    this.is_show_power = bool;
  },
  //设置最高战力
  setMaxPower: function setMaxPower(value) {
    var old_value = this.max_power;
    this.max_power = value || 0;
 
    if (this.max_power != old_value) {
      this.fire(EventId.UPDATE_ROLE_ATTRIBUTE, "max_power", this.max_power);
    }
  }
});
 
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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0c1xcbW9kXFxyb2xlXFxyb2xlX3ZvLmpzIl0sIm5hbWVzIjpbIlJvbGVFdmVudCIsInJlcXVpcmUiLCJSb2xlVm8iLCJjYyIsIkNsYXNzIiwiZ2NvcmUiLCJCYXNlRXZlbnQiLCJjdG9yIiwicmlkIiwic3J2X2lkIiwibmFtZSIsImxldiIsImV4cCIsImV4cF9tYXgiLCJzZXgiLCJnb2xkIiwiY29pbiIsInZpcF9sZXYiLCJ2aXBfZXhwIiwiaXNfdmlwIiwiZmFjZV9pZCIsImF2YXRhcl9iYXNlX2lkIiwiZmFjZV9saXN0IiwidGl0bGVfaWQiLCJ0aXRsZV9saXN0IiwicmVnX3RpbWUiLCJnaWQiLCJnc3J2X2lkIiwicG9zaXRpb24iLCJnbmFtZSIsImd1aWxkX2xldiIsImd1aWxkX3F1aXRfdGltZSIsImZyaWVuZF9wb2ludCIsInBvd2VyIiwibWF4X3Bvd2VyIiwib3Blbl9kYXkiLCJlbmVyZ3kiLCJlbmVyZ3lfbWF4IiwiZGljX2FjdGlvbl9hc3NldHMiLCJyZWNydWl0aGlnaF9oZXJvIiwidmlwX2NhcmRfZXhwIiwiaW5pdEF0dHJpYnV0ZURhdGEiLCJkYXRhIiwiayIsInNldFJvbGVBdHRyaWJ1dGUiLCJrZXkiLCJ2YWx1ZSIsInN0ciIsIlN5c0VudiIsImdldCIsInNldCIsImRpc3BhdGNoVXBkYXRlQXR0ckJ5S2V5IiwiUExBVEZPUk1fVFlQUiIsIlNESyIsInJvbGVVcExldmVsIiwiZmlyZSIsIkV2ZW50SWQiLCJVUERBVEVfUk9MRV9BVFRSSUJVVEUiLCJkaXNwYXRjaFVwZGF0ZUJhc2VBdHRyIiwiUk9MRV9FVkVOVF9CQVNFX0FUVFIiLCJpc0hhc0d1aWxkIiwiaW5pdEFjdGlvbkFzc2V0c0RhdGEiLCJob2xpZGF5X2Fzc2V0cyIsImlzX3VwZGF0ZSIsImkiLCJsZW5ndGgiLCJ2IiwiaWQiLCJ2YWwiLCJVUERBVEVfUk9MRV9BQ1RJT05fQVNTRVRTIiwiZ2V0QWN0aW9uQXNzZXRzTnVtQnlCaWQiLCJiaWQiLCJzZWxmIiwic2V0UG93ZXIiLCJvbGRfdmFsdWUiLCJpc19zaG93X3Bvd2VyIiwiR2xvYmFsTWVzc2FnZU1nciIsImdldEluc3RhbmNlIiwic2hvd1Bvd2VyTW92ZSIsInNob3dQb3dlciIsImJvb2wiLCJzZXRNYXhQb3dlciJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7OztBQUlDLElBQUlBLFNBQVMsR0FBR0MsT0FBTyxDQUFDLFlBQUQsQ0FBdkI7O0FBQ0EsSUFBSUMsTUFBTSxHQUFHQyxFQUFFLENBQUNDLEtBQUgsQ0FBUztBQUNuQixhQUFTQyxLQUFLLENBQUNDLFNBREk7QUFFbkJDLEVBQUFBLElBQUksRUFBQyxnQkFBVTtBQUNYLFNBQUtDLEdBQUwsR0FBVyxDQUFYO0FBQ0EsU0FBS0MsTUFBTCxHQUFjLEVBQWQ7QUFDQSxTQUFLQyxJQUFMLEdBQVksRUFBWjtBQUNBLFNBQUtDLEdBQUwsR0FBVyxDQUFYO0FBQ0EsU0FBS0MsR0FBTCxHQUFXLENBQVg7QUFDQSxTQUFLQyxPQUFMLEdBQWUsQ0FBZjtBQUNBLFNBQUtDLEdBQUwsR0FBVyxDQUFYO0FBQ0EsU0FBS0MsSUFBTCxHQUFZLENBQVo7QUFDQSxTQUFLQyxJQUFMLEdBQVksQ0FBWjtBQUNBLFNBQUtDLE9BQUwsR0FBZSxDQUFmO0FBQ0EsU0FBS0MsT0FBTCxHQUFlLENBQWY7QUFDQSxTQUFLQyxNQUFMLEdBQWMsQ0FBZCxDQVpXLENBWUs7O0FBQ2hCLFNBQUtDLE9BQUwsR0FBZSxDQUFmLENBYlcsQ0FhTzs7QUFDbEIsU0FBS0MsY0FBTCxHQUFzQixDQUF0QixDQWRXLENBY2M7O0FBQ3pCLFNBQUtDLFNBQUwsR0FBaUIsRUFBakIsQ0FmVyxDQWVVOztBQUNyQixTQUFLQyxRQUFMLEdBQWdCLENBQWhCLENBaEJXLENBZ0JROztBQUNuQixTQUFLQyxVQUFMLEdBQWtCLEVBQWxCLENBakJXLENBaUJXOztBQUN0QixTQUFLQyxRQUFMLEdBQWdCLENBQWhCLENBbEJXLENBa0JPOztBQUVsQixTQUFLQyxHQUFMLEdBQVcsQ0FBWCxD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Q0QsU0FBSzhDLFNBQUwsQ0FBZSxLQUFmO0FBQ0gsR0FySGtCO0FBc0huQkEsRUFBQUEsU0F0SG1CLHFCQXNIVEMsSUF0SFMsRUFzSEo7QUFDWCxTQUFLTCxhQUFMLEdBQW9CSyxJQUFwQjtBQUNILEdBeEhrQjtBQXlIbkI7QUFDQUMsRUFBQUEsV0FBVyxFQUFDLHFCQUFTbkMsS0FBVCxFQUFlO0FBQ3ZCLFFBQUk0QixTQUFTLEdBQUcsS0FBS3hDLFNBQXJCO0FBQ0EsU0FBS0EsU0FBTCxHQUFpQlksS0FBSyxJQUFJLENBQTFCOztBQUNBLFFBQUcsS0FBS1osU0FBTCxJQUFrQndDLFNBQXJCLEVBQStCO0FBQzNCLFdBQUtuQixJQUFMLENBQVVDLE9BQU8sQ0FBQ0MscUJBQWxCLEVBQXlDLFdBQXpDLEVBQXNELEtBQUt2QixTQUEzRDtBQUNIO0FBQ0o7QUFoSWtCLENBQVQsQ0FBYiIsInNvdXJjZVJvb3QiOiIvIiwic291cmNlc0NvbnRlbnQiOlsiLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLStcbiAqIOinkuiJsuaVsOaNruaooeWdl1xuICogQGF1dGhvciB3aGppbmcyMDEyQDE2My5jb21cbiArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuIHZhciBSb2xlRXZlbnQgPSByZXF1aXJlKFwicm9sZV9ldmVudFwiKTtcbiB2YXIgUm9sZVZvID0gY2MuQ2xhc3Moe1xuICAgIGV4dGVuZHM6IGdjb3JlLkJhc2VFdmVudCxcbiAgICBjdG9yOmZ1bmN0aW9uKCl7XG4gICAgICAgIHRoaXMucmlkID0gMDtcbiAgICAgICAgdGhpcy5zcnZfaWQgPSBcIlwiO1xuICAgICAgICB0aGlzLm5hbWUgPSBcIlwiO1xuICAgICAgICB0aGlzLmxldiA9IDA7XG4gICAgICAgIHRoaXMuZXhwID0gMDtcbiAgICAgICAgdGhpcy5leHBfbWF4ID0gMDtcbiAgICAgICAgdGhpcy5zZXggPSAwO1xuICAgICAgICB0aGlzLmdvbGQgPSAwO1xuICAgICAgICB0aGlzLmNvaW4gPSAwO1xuICAgICAgICB0aGlzLnZpcF9sZXYgPSAwO1xuICAgICAgICB0aGlzLnZpcF9leHAgPSAwO1xuICAgICAgICB0aGlzLmlzX3ZpcCA9IDA7Ly/mmK/lkKbmv4DmtLt2aXA7XG4gICAgICAgIHRoaXMuZmFjZV9pZCA9IDA7IC8vIOWktOWDj1xuICAgICAgICB0aGlzLmF2YXRhcl9iYXNlX2lkID0gMDsgLy8g5aS05YOP5qGGXG4gICAgICAgIHRoaXMuZmFjZV9saXN0ID0gW107IC8vIOWktOWDj+WIl+ihqCBcbiAgICAgICAgdGhpcy50aXRsZV9pZCA9IDA7IC8vIOS9v+eUqOensOWPt0lEXG4gICAgICAgIHRoaXMudGl0bGVfbGlzdCA9IFtdOyAvLyDlt7Lojrflvpfnp7Dlj7fliJfooahcbiAgICAgICAgdGhpcy5yZWdfdGltZSA9IDA7Ly/ms6jlhozml7bpl7RcblxuICAgICAgICB0aGlzLmdpZCA9IDA7Ly/lhazkvJppZFxuICAgICAgICB0aGlzLmdzcnZfaWQgPSBcIlwiOy8v5YWs5Lya5pyN5Yqh5ZmoaWRcbiAgICAgICAgdGhpcy5wb3NpdGlvbiA9IDA7Ly/lhazkvJrogYzkvY1cbiAgICAgICAgdGhpcy5nbmFtZSA9IFwiXCI7Ly/miYDlsZ7luK7mtL7nmoTlkI3lrZdcbiAgICAgICAgdGhpcy5ndWlsZF9sZXYgPSAwOy8v5YWs5Lya562J57qnXG4gICAgICAgIHRoaXMuZ3VpbGRfcXVpdF90aW1lID0gMDsvL+S4iuasoemAgOW4ruaXtumXtFxuICAgICAgICB0aGlzLmZyaWVuZF9wb2ludCA9IDA7Ly/lj4vmg4XngrlcblxuICAgICAgICB0aGlzLnBvd2VyID0gMDsvL+aImOWKm1xuICAgICAgICB0aGlzLm1heF9wb3dlciA9IDA7Ly/mnIDpq5jmiJjliptcblxuICAgICAgICB0aGlzLm9wZW5fZGF5ID0gMDsgICAgICAvLyDlvIDmnI3lpKnmlbBcblxuICAgICAgICB0aGlzLmVuZXJneSA9IDA7Ly/ov5zoiKrmg4XmiqVcbiAgICAgICAgdGhpcy5lbmVyZ3lfbWF4ID0gMDsvL+i/nOiIquaDheaKpeS4iumZkFxuXG4gICAgICAgIHRoaXMuZGljX2FjdGlvbl9hc3NldHM9IHt9ICAgICAgICAgICAgICAgICAgIC8vIC0t5rS75Yqo6LWE5Lqn5L+h5oGvIHNlbGYuZGljX2FjdGlvbl9hc3NldHNb6LWE5LqnaWRdID0g5pWw6YePXG5cbiAgICAgICAgdGhpcy5yZWNydWl0aGlnaF9oZXJvPSAwICAgICAgICAgICAgICAgICAgICAvLyAtLSDlhYjnn6Xmrr/np6/liIZcblxuICAgICAgICB0aGlzLnZpcF9jYXJkX2V4cCA9IDA7XG4gICAgfSxcblxuICAgIC8vIOabtOaWsOinkuiJsuaVsOaNrlxuICAgIGluaXRBdHRyaWJ1dGVEYXRhIDogZnVuY3Rpb24oZGF0YSl7XG4gICAgICAgIGZvcih2YXIgayBpbiBkYXRhKXtcbiAgICAgICAgICAgIHRoaXMuc2V0Um9sZUF0dHJpYnV0ZShrLCBkYXRhW2tdKTtcbiAgICAgICAgfVxuICAgIH0sXG5cbiAgICAvLyDorr7nva7ljZXkuKrlsZ7mgKfkv6Hmga9cbiAgICBzZXRSb2xlQXR0cmlidXRlIDogZnVuY3Rpb24oa2V5LCB2YWx1ZSl7XG4gICAgICAgIGlmKGtleSA9PSBcInNydl9pZFwiKXtcbiAgICAgICAgICAgIGxldCBzdHIgPSBcInNydl9pZFwiICsgZ2NvcmUuU3lzRW52LmdldChcInVzZXJfbmFtZVwiKTtcbiAgICAgICAgICAgIGdjb3JlLlN5c0Vudi5zZXQoc3RyLHZhbHVlKTtcbiAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwia2V5PT09XCIsa2V5LHZhbHVlLHN0cik7XG4gICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIuWtmOWCqOeahOacjeWKoeWZqFwiLCBnY29yZS5TeXNFbnYuZ2V0KHN0cikpXG4gICAgICAgIH1cbiAgICAgICAgaWYodGhpc1trZXldICE9IHZhbHVlKXtcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IHZhbHVlO1xuICAgICAgICAgICAgdGhpcy5kaXNwYXRjaFVwZGF0ZUF0dHJCeUtleShrZXksIHZhbHVlKTtcbiAgICAgICAgICAgIGlmKGtleSA9PSBcImxldlwiICYmIChQTEFURk9STV9UWVBSID09IFwiU0hfUkhcIiB8fCBQTEFURk9STV9UWVBSID09IFwiU0hfU0RLXCIpKXtcbiAgICAgICAgICAgICAgICBTREsucm9sZVVwTGV2ZWwodmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSxcblxuICAgIC8vIOa0vuWPkeWNleS4quWxnuaAp+WPmOWMluS6i+S7tlxuICAgIGRpc3BhdGNoVXBkYXRlQXR0ckJ5S2V5KGtleSwgdmFsdWUpe1xuICAgICAgICB0aGlzLmZpcmUoRXZlbnRJZC5VUERBVEVfUk9MRV9BVFRSSUJVVEUsIGtleSwgdmFsdWUpO1xuICAgIH0sXG5cbiAgICAvLyDop5LoibLln7rnoYDmlbDmja7lj5jljJYgXG4gICAgZGlzcGF0Y2hVcGRhdGVCYXNlQXR0ciA6IGZ1bmN0aW9uKCl7XG4gICAgICAgIHRoaXMuZmlyZShFdmVudElkLlJPTEVfRVZFTlRfQkFTRV9BVFRSKTtcbiAgICB9LFxuXG4gICAgLy/liKTmlq3mmK/lkKbmnInliqDlhaXlrpfmtL5cbiAgICBpc0hhc0d1aWxkOmZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5naWQgIT0gMFxuICAgIH0sXG4gICAgLy8gLS1bW+inkuiJsua0u+WKqOi1hOS6p+S/oeaBr11dXG4gICAgLy8gLS1AaXNfdXBkYXRlIOaYr+WQpuaVsOaNruabtOaWsFxuICAgIGluaXRBY3Rpb25Bc3NldHNEYXRhKGhvbGlkYXlfYXNzZXRzLCBpc191cGRhdGUpe1xuICAgICAgICBob2xpZGF5X2Fzc2V0cyA9IGhvbGlkYXlfYXNzZXRzIHx8IFtdXG4gICAgICAgIGZvcihsZXQgaT0wO2k8aG9saWRheV9hc3NldHMubGVuZ3RoOysraSl7XG4gICAgICAgICAgICBsZXQgdiA9IGhvbGlkYXlfYXNzZXRzW2ldXG4gICAgICAgICAgICB0aGlzLmRpY19hY3Rpb25fYXNzZXRzW3YuaWRdID0gdi52YWxcbiAgICAgICAgICAgIGlmIChpc191cGRhdGUpe1xuICAgICAgICAgICAgICAgIHRoaXMuZmlyZShSb2xlRXZlbnQuVVBEQVRFX1JPTEVfQUNUSU9OX0FTU0VUUywgdi5pZCwgdi52YWwpXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9LFxuICAgIC8vIC0t6I635Y+W5rS75Yqo6LWE5Lqn5pWw6YePXG4gICAgZ2V0QWN0aW9uQXNzZXRzTnVtQnlCaWQoYmlkKXtcbiAgICAgICAgdmFyIHNlbGYgPSB0aGlzXG4gICAgICAgIGlmIChzZWxmLmRpY19hY3Rpb25fYXNzZXRzICYmIHNlbGYuZGljX2FjdGlvbl9hc3NldHNbYmlkXSl7XG4gICAgICAgICAgICByZXR1cm4gc2VsZi5kaWNfYWN0aW9uX2Fzc2V0c1tiaWRdXG4gICAgICAgIH1lbHNle1xuICAgICAgICAgICAgcmV0dXJuIDBcbiAgICAgICAgfVxuICAgIH0sXG5cbiAgICBzZXRQb3dlcjogZnVuY3Rpb24odmFsdWUpIHtcbiAgICAgICAgdmFyIG9sZF92YWx1ZSA9IHRoaXMucG93ZXI7XG4gICAgICAgIHRoaXMucG93ZXIgPSB2YWx1ZSB8fCAwO1xuICAgICAgICBpZih0aGlzLmlzX3Nob3dfcG93ZXIgPT0gdHJ1ZSl7XG4gICAgICAgICAgICBpZihvbGRfdmFsdWUgPCB2YWx1ZSl7XG4gICAgICAgICAgICAgICAgR2xvYmFsTWVzc2FnZU1nci5nZXRJbnN0YW5jZSgpLnNob3dQb3dlck1vdmUodmFsdWUgLSBvbGRfdmFsdWUsIG51bGwsb2xkX3ZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5wb3dlciAhPSBvbGRfdmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuZmlyZShFdmVudElkLlVQREFURV9ST0xFX0FUVFJJQlVURSwgXCJwb3dlclwiLCB0aGlzLnBvd2VyKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnNob3dQb3dlcihmYWxzZSlcbiAgICB9LFxuICAgIHNob3dQb3dlcihib29sKXtcbiAgICAgICAgdGhpcy5pc19zaG93X3Bvd2VyPSBib29sXG4gICAgfSxcbiAgICAvL+iuvue9ruacgOmrmOaImOWKm1xuICAgIHNldE1heFBvd2VyOmZ1bmN0aW9uKHZhbHVlKXtcbiAgICAgICAgdmFyIG9sZF92YWx1ZSA9IHRoaXMubWF4X3Bvd2VyO1xuICAgICAgICB0aGlzLm1heF9wb3dlciA9IHZhbHVlIHx8IDA7XG4gICAgICAgIGlmKHRoaXMubWF4X3Bvd2VyICE9IG9sZF92YWx1ZSl7XG4gICAgICAgICAgICB0aGlzLmZpcmUoRXZlbnRJZC5VUERBVEVfUk9MRV9BVFRSSUJVVEUsIFwibWF4X3Bvd2VyXCIsIHRoaXMubWF4X3Bvd2VyKTtcbiAgICAgICAgfVxuICAgIH0sXG5cbiB9KTsiXX0=