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
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
 
                (function() {
                    var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined';
                    var __module = nodeEnv ? module : {exports:{}};
                    var __filename = 'preview-scripts/assets/Scripts/mod/vip/vip_model.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, 'e7f2aNIdZxO9pXzD/6us16P', 'vip_model');
// Scripts/mod/vip/vip_model.js
 
"use strict";
 
// --------------------------------------------------------------------
// @author: xxx@syg.com(必填, 创建模块的人员)
// @description:
//      这里填写详细说明,主要填写该模块的功能简要
// <br/>Create: 2019-02-26 21:07:32
// --------------------------------------------------------------------
var VipEvent = require("vip_event");
 
var VipModel = cc.Class({
  "extends": BaseClass,
  ctor: function ctor() {},
  properties: {},
  initConfig: function initConfig() {
    this.get_list = {};
    this.daily_gift = {};
    this.privilege_list = {};
  },
  //vip礼包信息
  setGetGiftList: function setGetGiftList(list) {
    if (list && Utils.getArrLen(list) > 0) {
      for (var k in list) {
        var v = list[k];
        this.get_list[v.lev] = v.lev;
      }
    }
 
    gcore.GlobalEvent.fire(VipEvent.UPDATE_GET_LIST);
  },
  getGetGiftList: function getGetGiftList() {
    return this.get_list || {};
  },
  //累充信息
  setAccList: function setAccList(list) {
    this.acc_list = list;
  },
  getAccList: function getAccList() {
    return this.acc_list;
  },
  checkGiftList: function checkGiftList(vip_lev) {
    for (var i in this.get_list) {
      var v = this.get_list[i];
 
      if (v == vip_lev) {
        return true;
      }
    }
 
    return false;
  },
  getGiftListVip: function getGiftListVip() {
    var vip_lev = 1;
    var list = [];
 
    if (Config.vip_data.data_vip_icon) {
      for (var i in Config.vip_data.data_vip_icon) {
        var v = gdata("vip_data", "data_vip_icon", [i]);
        list.push(v);
      }
    }
 
    list.sort(Utils.tableLowerSorter(["vip_lev"]));
 
    for (var i in list) {
      var v = list[i];
      var is_get = this.checkGiftList(v.vip_lev);
 
      if (!is_get) {
        vip_lev = v.vip_lev;
        break;
      }
    }
 
    return vip_lev;
  },
  //是否有未领取累充礼包
  getIsGetAcc: function getIsGetAcc() {
    if (this.acc_lsit && Utils.next(this.acc_list) != null) {
      var index = 0;
 
      for (var k in this.acc_list) {
        var v = this.acc_list[k];
 
        if (v.status == 1) {
          //可领取
          return true;
        } else if (v.status == 0 || v.status == 2) {
          //未达成/已领取
          index = index + 1;
        }
      }
 
      if (index == Utils.getArrLen(this.acc_list)) {
        return false;
      }
    }
 
    return false;
  },
  //每日礼包数据
  setDailyGiftData: function setDailyGiftData(data) {
    this.daily_gift = data || {};
  },
  //获取每日礼包已购数量
  getDailyGiftBuyCountById: function getDailyGiftBuyCountById(id) {
    var count = 0;
 
    for (var k in this.daily_gift) {
      var v = this.daily_gift[k];
 
      if (v.id == id) {
        count = v.count;
        break;
      }
    }
 
    return count;
  },
  //特权礼包数据
  setPrivilegeList: function setPrivilegeList(data) {
    this.privilege_list = data || {};
  },
  //获取特权礼包数据
  getPrivilegeDataById: function getPrivilegeDataById(id) {
    for (var k in this.privilege_list) {
      if (this.privilege_list[k].id == id) {
        return this.privilege_list[k];
      }
    }
  },
  //获取特权礼包红点
  getPrivilegeRedStatus: function getPrivilegeRedStatus() {
    var privelege_red = false; //登陆时未购买过vip特权礼包的需要显示红点
 
    if (!this.privilege_flag) {
      privelege_red = true;
 
      for (var k in this.privilege_list) {
        if (this.privilege_list[k].status == 1) {
          privelege_red = false;
          break;
        }
      }
    }
 
    return privelege_red;
  },
  //记录打开过vip特权礼包界面
  setPrivilegeOpenFlag: function setPrivilegeOpenFlag(flag) {
    this.privilege_flag = flag;
  },
  //月卡领取
  setMonthCard: function setMonthCard(status) {
    this.monthCard = status;
  },
  getMonthCard: function getMonthCard() {
    var status = false;
    this.monthCard = this.monthCard || 0;
 
    if (this.monthCard == 1) {
      status = true;
    } else {
      status = false;
    }
 
    return status;
  },
  //赠送Vip数据
  setGiveVipInfo: function setGiveVipInfo(data) {
    this.giveVipInfo = data;
  },
  //获取赠送Vip数据
  getGiveVipInfo: function getGiveVipInfo() {
    return this.giveVipInfo;
  },
  //赠送Vip的状态
  setGiveVipStatus: function setGiveVipStatus() {
    var vipGiveInfo = this.getGiveVipInfo();
    var status = false;
 
    if (vipGiveInfo) {
      var refresh = vipGiveInfo.time - gcore.SmartSocket.getTime();
 
      if (vipGiveInfo.state == 0 && refresh <= 0) {
        status = true;
      }
    }
 
    this.giveVipRedStatus = status;
 
    var MainuiController = require("mainui_controller");
 
    var MainuiConst = require("mainui_const");
 
    MainuiController.getInstance().setFunctionTipsStatus(MainuiConst.icon.give_vip, status);
  },
  getGiveVipStatus: function getGiveVipStatus() {
    if (this.giveVipRedStatus == null) return false;
    return this.giveVipRedStatus;
  }
});
 
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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0c1xcbW9kXFx2aXBcXHZpcF9tb2RlbC5qcyJdLCJuYW1lcyI6WyJWaXBFdmVudCIsInJlcXVpcmUiLCJWaXBNb2RlbCIsImNjIiwiQ2xhc3MiLCJCYXNlQ2xhc3MiLCJjdG9yIiwicHJvcGVydGllcyIsImluaXRDb25maWciLCJnZXRfbGlzdCIsImRhaWx5X2dpZnQiLCJwcml2aWxlZ2VfbGlzdCIsInNldEdldEdpZnRMaXN0IiwibGlzdCIsIlV0aWxzIiwiZ2V0QXJyTGVuIiwiayIsInYiLCJsZXYiLCJnY29yZSIsIkdsb2JhbEV2ZW50IiwiZmlyZSIsIlVQREFURV9HRVRfTElTVCIsImdldEdldEdpZnRMaXN0Iiwic2V0QWNjTGlzdCIsImFjY19saXN0IiwiZ2V0QWNjTGlzdCIsImNoZWNrR2lmdExpc3QiLCJ2aXBfbGV2IiwiaSIsImdldEdpZnRMaXN0VmlwIiwiQ29uZmlnIiwidmlwX2RhdGEiLCJkYXRhX3ZpcF9pY29uIiwiZ2RhdGEiLCJwdXNoIiwic29ydCIsInRhYmxlTG93ZXJTb3J0ZXIiLCJpc19nZXQiLCJnZXRJc0dldEFjYyIsImFjY19sc2l0IiwibmV4dCIsImluZGV4Iiwic3RhdHVzIiwic2V0RGFpbHlHaWZ0RGF0YSIsImRhdGEiLCJnZXREYWlseUdpZnRCdXlDb3VudEJ5SWQiLCJpZCIsImNvdW50Iiwic2V0UHJpdmlsZWdlTGlzdCIsImdldFByaXZpbGVnZURhdGFCeUlkIiwiZ2V0UHJpdmlsZWdlUmVkU3RhdHVzIiwicHJpdmVsZWdlX3JlZCIsInByaXZpbGVnZV9mbGFnIiwic2V0UHJpdmlsZWdlT3BlbkZsYWciLCJmbGFnIiwic2V0TW9udGhDYXJkIiwibW9udGhDYXJkIiwiZ2V0TW9udGhDYXJkIiwic2V0R2l2ZVZpcEluZm8iLCJnaXZlVmlwSW5mbyIsImdldEdpdmVWaXBJbmZvIiwic2V0R2l2ZVZpcFN0YXR1cyIsInZpcEdpdmVJbmZvIiwicmVmcmVzaCIsInRpbWUiLCJTbWFydFNvY2tldCIsImdldFRpbWUiLCJzdGF0ZSIsImdpdmVWaXBSZWRTdGF0dXMiLCJNYWludWlDb250cm9sbGVyIiwiTWFpbnVpQ29uc3QiLCJnZXRJbnN0YW5jZSIsInNldEZ1bmN0aW9uVGlwc1N0YXR1cyIsImljb24iLCJnaXZlX3ZpcCIsImdldEdpdmVWaXBTdGF0dXMiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSUEsUUFBUSxHQUFHQyxPQUFPLENBQUMsV0FBRCxDQUF0Qjs7QUFFQSxJQUFJQyxRQUFRLEdBQUdDLEVBQUUsQ0FBQ0MsS0FBSCxDQUFTO0FBQ3BCLGFBQVNDLFNBRFc7QUFFcEJDLEVBQUFBLElBQUksRUFBRSxnQkFBWSxDQUNqQixDQUhtQjtBQUtwQkMsRUFBQUEsVUFBVSxFQUFFLEVBTFE7QUFRcEJDLEVBQUFBLFVBQVUsRUFBRSxzQkFBWTtBQUNwQixTQUFLQyxRQUFMLEdBQWdCLEVBQWhCO0FBQ0EsU0FBS0MsVUFBTCxHQUFrQixFQUFsQjtBQUNBLFNBQUtDLGNBQUwsR0FBc0IsRUFBdEI7QUFDSCxHQVptQjtBQWNwQjtBQUNBQyxFQUFBQSxjQUFjLEVBQUMsd0JBQVNDLElBQVQsRUFBYztBQUN6QixRQUFHQSxJQUFJLElBQUlDLEtBQUssQ0FBQ0MsU0FBTixDQUFnQkYsSUFBaEIsSUFBd0IsQ0FBbkMsRUFBcUM7QUFDakMsV0FBSSxJQUFJRyxDQUFSLElBQWFILElBQWIsRUFBa0I7QUFDZCxZQUFJSSxDQUFDLEdBQUdKLElBQUksQ0FBQ0csQ0FBRCxDQUFaO0FBQ0EsYUFBS1AsUUFBTCxDQUFjUSxDQUFDLENBQUNDLEdBQWhCLElBQXVCRCxDQUFDLENBQUNDLEdBQXpCO0FBQ0g7QUFDSjs7QUFDREMsSUFBQUEsS0FBSyxDQUFDQyxXQUFOLENBQWtCQyxJQUFsQixDQUF1QnJCLFFBQVEsQ0FBQ3NCLGVBQWhDO0FBQ0gsR0F2Qm1CO0FBeUJwQkMsRUFBQUEsY0FBYyxFQUFDLDBCQUFVO0FBQ3JCLFdBQU8sS0FBS2QsUUFB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QUFDRCxTQUFLMEIsZ0JBQUwsR0FBd0IxQixNQUF4Qjs7QUFDQSxRQUFJMkIsZ0JBQWdCLEdBQU1yRSxPQUFPLENBQUMsbUJBQUQsQ0FBakM7O0FBQ0EsUUFBSXNFLFdBQVcsR0FBR3RFLE9BQU8sQ0FBQyxjQUFELENBQXpCOztBQUNBcUUsSUFBQUEsZ0JBQWdCLENBQUNFLFdBQWpCLEdBQStCQyxxQkFBL0IsQ0FBcURGLFdBQVcsQ0FBQ0csSUFBWixDQUFpQkMsUUFBdEUsRUFBZ0ZoQyxNQUFoRjtBQUNILEdBckxtQjtBQXVMcEJpQyxFQUFBQSxnQkF2TG9CLDhCQXVMRjtBQUNkLFFBQUcsS0FBS1AsZ0JBQUwsSUFBeUIsSUFBNUIsRUFBaUMsT0FBTyxLQUFQO0FBQ2pDLFdBQU8sS0FBS0EsZ0JBQVo7QUFDSDtBQTFMbUIsQ0FBVCxDQUFmIiwic291cmNlUm9vdCI6Ii8iLCJzb3VyY2VzQ29udGVudCI6WyIvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gQGF1dGhvcjogeHh4QHN5Zy5jb20o5b+F5aGrLCDliJvlu7rmqKHlnZfnmoTkurrlkZgpXG4vLyBAZGVzY3JpcHRpb246XG4vLyAgICAgIOi/memHjOWhq+WGmeivpue7huivtOaYjizkuLvopoHloavlhpnor6XmqKHlnZfnmoTlip/og73nroDopoFcbi8vIDxici8+Q3JlYXRlOiAyMDE5LTAyLTI2IDIxOjA3OjMyXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxudmFyIFZpcEV2ZW50ID0gcmVxdWlyZShcInZpcF9ldmVudFwiKTtcblxudmFyIFZpcE1vZGVsID0gY2MuQ2xhc3Moe1xuICAgIGV4dGVuZHM6IEJhc2VDbGFzcyxcbiAgICBjdG9yOiBmdW5jdGlvbiAoKSB7XG4gICAgfSxcblxuICAgIHByb3BlcnRpZXM6IHtcbiAgICB9LFxuXG4gICAgaW5pdENvbmZpZzogZnVuY3Rpb24gKCkge1xuICAgICAgICB0aGlzLmdldF9saXN0ID0ge307XG4gICAgICAgIHRoaXMuZGFpbHlfZ2lmdCA9IHt9O1xuICAgICAgICB0aGlzLnByaXZpbGVnZV9saXN0ID0ge307XG4gICAgfSxcblxuICAgIC8vdmlw56S85YyF5L+h5oGvXG4gICAgc2V0R2V0R2lmdExpc3Q6ZnVuY3Rpb24obGlzdCl7XG4gICAgICAgIGlmKGxpc3QgJiYgVXRpbHMuZ2V0QXJyTGVuKGxpc3QpID4gMCl7XG4gICAgICAgICAgICBmb3IodmFyIGsgaW4gbGlzdCl7XG4gICAgICAgICAgICAgICAgdmFyIHYgPSBsaXN0W2tdO1xuICAgICAgICAgICAgICAgIHRoaXMuZ2V0X2xpc3Rbdi5sZXZdID0gdi5sZXY7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZ2NvcmUuR2xvYmFsRXZlbnQuZmlyZShWaXBFdmVudC5VUERBVEVfR0VUX0xJU1QpO1xuICAgIH0sXG5cbiAgICBnZXRHZXRHaWZ0TGlzdDpmdW5jdGlvbigpe1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRfbGlzdCB8fCB7fTtcbiAgICB9LFxuXG4gICAgLy/ntK/lhYXkv6Hmga9cbiAgICBzZXRBY2NMaXN0OmZ1bmN0aW9uKGxpc3Qpe1xuICAgICAgICB0aGlzLmFjY19saXN0ID0gbGlzdDtcbiAgICB9LFxuXG4gICAgZ2V0QWNjTGlzdDpmdW5jdGlvbigpe1xuICAgICAgICByZXR1cm4gdGhpcy5hY2NfbGlzdFxuICAgIH0sXG5cbiAgICBjaGVja0dpZnRMaXN0OmZ1bmN0aW9uKHZpcF9sZXYpe1xuICAgICAgICBmb3IodmFyIGkgaW4gdGhpcy5nZXRfbGlzdCl7XG4gICAgICAgICAgICB2YXIgdiA9IHRoaXMuZ2V0X2xpc3RbaV07XG4gICAgICAgICAgICBpZih2PT12aXBfbGV2KXtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmYWxzZVxuICAgIH0sXG5cbiAgICBnZXRHaWZ0TGlzdFZpcDpmdW5jdGlvbigpe1xuICAgICAgICB2YXIgdmlwX2xldiA9IDE7XG4gICAgICAgIHZhciBsaXN0ID0gW107XG4gICAgICAgIGlmKENvbmZpZy52aXBfZGF0YS5kYXRhX3ZpcF9pY29uKXtcbiAgICAgICAgICAgIGZvciAodmFyIGkgaW4gQ29uZmlnLnZpcF9kYXRhLmRhdGFfdmlwX2ljb24pe1xuICAgICAgICAgICAgICAgIHZhciB2ID0gZ2RhdGEoXCJ2aXBfZGF0YVwiLFwiZGF0YV92aXBfaWNvblwiLFtpXSk7XG4gICAgICAgICAgICAgICAgbGlzdC5wdXNoKHYpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGxpc3Quc29ydChVdGlscy50YWJsZUxvd2VyU29ydGVyKFtcInZpcF9sZXZcIl0pKTtcbiAgICAgICAgZm9yKHZhciBpIGluIGxpc3Qpe1xuICAgICAgICAgICAgdmFyIHYgPSBsaXN0W2ldO1xuICAgICAgICAgICAgdmFyIGlzX2dldCA9IHRoaXMuY2hlY2tHaWZ0TGlzdCh2LnZpcF9sZXYpO1xuICAgICAgICAgICAgaWYoIWlzX2dldCl7XG4gICAgICAgICAgICAgICAgdmlwX2xldiA9IHYudmlwX2xldjtcbiAgICAgICAgICAgICAgICBicmVha1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB2aXBfbGV2XG4gICAgfSxcblxuICAgIC8v5piv5ZCm5pyJ5pyq6aKG5Y+W57Sv5YWF56S85YyFXG4gICAgZ2V0SXNHZXRBY2M6ZnVuY3Rpb24oKXtcbiAgICAgICAgaWYodGhpcy5hY2NfbHNpdCAmJiBVdGlscy5uZXh0KHRoaXMuYWNjX2xpc3QpIT0gbnVsbCl7XG4gICAgICAgICAgICB2YXIgaW5kZXggPSAwO1xuICAgICAgICAgICAgZm9yICh2YXIgayBpbiB0aGlzLmFjY19saXN0KXtcbiAgICAgICAgICAgICAgICB2YXIgdiA9IHRoaXMuYWNjX2xpc3Rba107XG4gICAgICAgICAgICAgICAgaWYodi5zdGF0dXMgPT0gMSl7ICAvL+WPr+mihuWPllxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgICAgICAgICAgIH1lbHNlIGlmICh2LnN0YXR1cyA9PSAwIHx8IHYuc3RhdHVzID09IDIpeyAgLy/mnKrovr7miJAv5bey6aKG5Y+WXG4gICAgICAgICAgICAgICAgICAgIGluZGV4ID0gaW5kZXggKyAxO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmKGluZGV4ID09IFV0aWxzLmdldEFyckxlbih0aGlzLmFjY19saXN0KSl7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfSxcblxuICAgIC8v5q+P5pel56S85YyF5pWw5o2uXG4gICAgc2V0RGFpbHlHaWZ0RGF0YTpmdW5jdGlvbihkYXRhKXtcbiAgICAgICAgdGhpcy5kYWlseV9naWZ0ID0gZGF0YSB8fCB7fTtcbiAgICB9LFxuXG4gICAgLy/ojrflj5bmr4/ml6XnpLzljIXlt7LotK3mlbDph49cbiAgICBnZXREYWlseUdpZnRCdXlDb3VudEJ5SWQ6ZnVuY3Rpb24oaWQpe1xuICAgICAgICB2YXIgY291bnQgPSAwO1xuICAgICAgICBmb3IodmFyIGsgaW4gdGhpcy5kYWlseV9naWZ0KXtcbiAgICAgICAgICAgIHZhciB2ID0gdGhpcy5kYWlseV9naWZ0W2tdXG4gICAgICAgICAgICBpZih2LmlkID09IGlkKXtcbiAgICAgICAgICAgICAgICBjb3VudCA9IHYuY291bnQ7XG4gICAgICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gY291bnRcbiAgICB9LFxuXG4gICAgLy/nibnmnYPnpLzljIXmlbDmja5cbiAgICBzZXRQcml2aWxlZ2VMaXN0OmZ1bmN0aW9uKGRhdGEpe1xuICAgICAgICB0aGlzLnByaXZpbGVnZV9saXN0ID0gZGF0YSB8fCB7fTtcbiAgICB9LFxuXG4gICAgLy/ojrflj5bnibnmnYPnpLzljIXmlbDmja5cbiAgICBnZXRQcml2aWxlZ2VEYXRhQnlJZDpmdW5jdGlvbihpZCl7XG4gICAgICAgIGZvciAodmFyIGsgaW4gdGhpcy5wcml2aWxlZ2VfbGlzdCl7XG4gICAgICAgICAgICBpZih0aGlzLnByaXZpbGVnZV9saXN0W2tdLmlkID09IGlkKXtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5wcml2aWxlZ2VfbGlzdFtrXVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSxcblxuICAgIC8v6I635Y+W54m55p2D56S85YyF57qi54K5XG4gICAgZ2V0UHJpdmlsZWdlUmVkU3RhdHVzOmZ1bmN0aW9uKCl7XG4gICAgICAgIHZhciBwcml2ZWxlZ2VfcmVkID0gZmFsc2U7XG4gICAgICAgIC8v55m76ZmG5pe25pyq6LSt5Lmw6L+Hdmlw54m55p2D56S85YyF55qE6ZyA6KaB5pi+56S657qi54K5XG4gICAgICAgIGlmKCF0aGlzLnByaXZpbGVnZV9mbGFnKXtcbiAgICAgICAgICAgIHByaXZlbGVnZV9yZWQgPSB0cnVlO1xuICAgICAgICAgICAgZm9yKHZhciBrIGluIHRoaXMucHJpdmlsZWdlX2xpc3Qpe1xuICAgICAgICAgICAgICAgIGlmKHRoaXMucHJpdmlsZWdlX2xpc3Rba10uc3RhdHVzID09IDEpe1xuICAgICAgICAgICAgICAgICAgICBwcml2ZWxlZ2VfcmVkID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBwcml2ZWxlZ2VfcmVkXG4gICAgfSxcblxuICAgIC8v6K6w5b2V5omT5byA6L+Hdmlw54m55p2D56S85YyF55WM6Z2iXG4gICAgc2V0UHJpdmlsZWdlT3BlbkZsYWc6ZnVuY3Rpb24oZmxhZyl7XG4gICAgICAgIHRoaXMucHJpdmlsZWdlX2ZsYWcgPSBmbGFnO1xuICAgIH0sXG5cbiAgICAvL+aciOWNoemihuWPllxuICAgIHNldE1vbnRoQ2FyZDpmdW5jdGlvbihzdGF0dXMpe1xuICAgICAgICB0aGlzLm1vbnRoQ2FyZCA9IHN0YXR1c1xuICAgIH0sXG5cbiAgICBnZXRNb250aENhcmQ6ZnVuY3Rpb24oKXtcbiAgICAgICAgdmFyIHN0YXR1cyA9IGZhbHNlO1xuICAgICAgICB0aGlzLm1vbnRoQ2FyZCA9IHRoaXMubW9udGhDYXJkIHx8IDA7XG4gICAgICAgIGlmKHRoaXMubW9udGhDYXJkID09IDEpe1xuICAgICAgICAgICAgc3RhdHVzID0gdHJ1ZTtcbiAgICAgICAgfWVsc2V7XG4gICAgICAgICAgICBzdGF0dXMgPSBmYWxzZVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBzdGF0dXNcbiAgICB9LFxuXG4gICAgLy/otaDpgIFWaXDmlbDmja5cbiAgICBzZXRHaXZlVmlwSW5mbzpmdW5jdGlvbihkYXRhKXtcbiAgICAgICAgdGhpcy5naXZlVmlwSW5mbyA9IGRhdGE7XG4gICAgfSxcblxuICAgIC8v6I635Y+W6LWg6YCBVmlw5pWw5o2uXG4gICAgZ2V0R2l2ZVZpcEluZm86ZnVuY3Rpb24oKXtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2l2ZVZpcEluZm87XG4gICAgfSxcblxuICAgIC8v6LWg6YCBVmlw55qE54q25oCBXG4gICAgc2V0R2l2ZVZpcFN0YXR1cygpe1xuICAgICAgICB2YXIgdmlwR2l2ZUluZm8gPSB0aGlzLmdldEdpdmVWaXBJbmZvKCk7XG4gICAgICAgIHZhciBzdGF0dXMgPSBmYWxzZTtcbiAgICAgICAgaWYodmlwR2l2ZUluZm8pe1xuICAgICAgICAgICAgdmFyIHJlZnJlc2ggPSB2aXBHaXZlSW5mby50aW1lIC1nY29yZS5TbWFydFNvY2tldC5nZXRUaW1lKCk7XG4gICAgICAgICAgICBpZih2aXBHaXZlSW5mby5zdGF0ZSA9PSAwICYmIHJlZnJlc2g8PTApe1xuICAgICAgICAgICAgICAgIHN0YXR1cyA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5naXZlVmlwUmVkU3RhdHVzID0gc3RhdHVzO1xuICAgICAgICB2YXIgTWFpbnVpQ29udHJvbGxlciAgICA9IHJlcXVpcmUoXCJtYWludWlfY29udHJvbGxlclwiKTtcbiAgICAgICAgdmFyIE1haW51aUNvbnN0ID0gcmVxdWlyZShcIm1haW51aV9jb25zdFwiKTtcbiAgICAgICAgTWFpbnVpQ29udHJvbGxlci5nZXRJbnN0YW5jZSgpLnNldEZ1bmN0aW9uVGlwc1N0YXR1cyhNYWludWlDb25zdC5pY29uLmdpdmVfdmlwLCBzdGF0dXMpXG4gICAgfSxcblxuICAgIGdldEdpdmVWaXBTdGF0dXMoKXtcbiAgICAgICAgaWYodGhpcy5naXZlVmlwUmVkU3RhdHVzID09IG51bGwpcmV0dXJuIGZhbHNlO1xuICAgICAgICByZXR1cm4gdGhpcy5naXZlVmlwUmVkU3RhdHVzO1xuICAgIH0sXG5cbn0pOyJdfQ==