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
 
                (function() {
                    var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined';
                    var __module = nodeEnv ? module : {exports:{}};
                    var __filename = 'preview-scripts/assets/Scripts/mod/primus/primus_controller.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, '37b0araJRtEkKK/cygIgYP6', 'primus_controller');
// Scripts/mod/primus/primus_controller.js
 
"use strict";
 
// --------------------------------------------------------------------
// @author: xxx@syg.com(必填, 创建模块的人员)
// @description:
//      这里填写详细说明,主要填写该模块的功能简要
// <br/>Create: 2019-03-16 10:23:00
// --------------------------------------------------------------------
var PrimusController = cc.Class({
  "extends": BaseController,
  ctor: function ctor() {},
  // 初始化配置数据
  initConfig: function initConfig() {
    var PrimusModel = require("primus_model");
 
    this.model = new PrimusModel();
    this.model.initConfig();
  },
  // 返回当前的model
  getModel: function getModel() {
    return this.model;
  },
  // 注册监听事件
  registerEvents: function registerEvents() {},
  // 注册协议接受事件
  registerProtocals: function registerProtocals() {
    // this.RegisterProtocal(1110, this.on1110);
    this.RegisterProtocal(20700, this.handle20700); //请求玩家挑战次数
 
    this.RegisterProtocal(20701, this.handle20701); //请求挑战位置信息
 
    this.RegisterProtocal(20702, this.handle20702); //请求发起挑战
 
    this.RegisterProtocal(20703, this.handle20703); //请求挑战记录
 
    this.RegisterProtocal(20705, this.handle20705); //请求挑战结束
  },
  // 请求玩家挑战次数
  requestPrimusChallengeCount: function requestPrimusChallengeCount() {
    var protocal = {};
    this.SendProtocal(20700, protocal);
  },
  handle20700: function handle20700(data) {
    this.model.recordChallengeCount(data);
 
    var PrimusEvent = require("primus_event");
 
    gcore.GlobalEvent.fire(PrimusEvent.Updata_Primus_RedPoint);
  },
  // 请求挑战位置信息
  sender20701: function sender20701() {
    var protocal = {};
    this.SendProtocal(20701, protocal);
  },
  handle20701: function handle20701(data) {
    if (data && this.primus_main_window) {
      this.primus_main_window.setData(data);
    }
  },
  // 请求发起挑战
  sender20702: function sender20702(pos, num) {
    var protocal = {};
    protocal.pos = pos;
    protocal.num = num;
    this.SendProtocal(20702, protocal);
  },
  handle20702: function handle20702(data) {
    message(data.msg);
 
    if (data.code == true) {
      this.openPrimusChallengePanel(false);
    }
  },
  // 请求挑战记录
  sender20703: function sender20703(pos) {
    var protocal = {};
    protocal.pos = pos;
    this.SendProtocal(20703, protocal);
  },
  handle20703: function handle20703(data) {
    // -- message(data.msg)
    this.openPrimusChallengeRecordPanel(true, data);
  },
  // 战斗结果
  handle20705: function handle20705(data) {
    // -- message(data.msg)
    this.openPrimusChallengeResultWindow(true, data);
  },
  //  打开荣耀神殿主角界面
  openPrimusMainWindow: function openPrimusMainWindow(status) {
    if (status == false) {
      if (this.primus_main_window != null) {
        this.primus_main_window.close();
        this.primus_main_window = null;
      }
    } else {
      var EsecsiceConst = require("esecsice_const");
 
      var open_data = Config.dailyplay_data.data_exerciseactivity[EsecsiceConst.execsice_index.honourfane];
 
      if (open_data == null) {
        message(Utils.TI18N("星河神殿数据异常"));
        return;
      }
 
      var MainuiController = require("mainui_controller");
 
      var bool = MainuiController.getInstance().checkIsOpenByActivate(open_data.activate);
 
      if (bool == false) {
        message(open_data.lock_desc);
        return;
      }
 
      this.model.is_show_redpoint = false;
 
      if (this.primus_main_window == null) {
        this.primus_main_window = Utils.createClass("primus_main_window", this);
      }
 
      if (this.primus_main_window && this.primus_main_window.isOpen() == false) {
        this.primus_main_window.open();
      }
    }
  },
  //  打开荣耀神殿挑战界面
  openPrimusChallengePanel: function openPrimusChallengePanel(status, data, is_have_title) {
    if (status == false) {
      if (this.primus_challenge_panel != null) {
        this.primus_challenge_panel.close();
        this.primus_challenge_panel = null;
      }
    } else {
      if (this.primus_challenge_panel == null) {
        this.primus_challenge_panel = Utils.createClass("primus_challenge_window", this);
 
        if (this.primus_challenge_panel && this.primus_challenge_panel.isOpen() == false) {
          this.primus_challenge_panel.open([data, is_have_title]);
        }
      }
    }
  },
  //  打开荣耀神殿挑战界面
  openPrimusChallengeRecordPanel: function openPrimusChallengeRecordPanel(status, data) {
    if (status == false) {
      if (this.primus_challenge_record_panel != null) {
        this.primus_challenge_record_panel.close();
        this.primus_challenge_record_panel = null;
      }
    } else {
      if (this.primus_challenge_record_panel == null) {
        this.primus_challenge_record_panel = Utils.createClass("primus_challenge_record_window", this);
      }
 
      if (this.primus_challenge_record_panel && this.primus_challenge_record_panel.isOpen() == false) {
        this.primus_challenge_record_panel.open(data);
      }
    }
  },
  //  打开荣耀神殿挑战结果
  openPrimusChallengeResultWindow: function openPrimusChallengeResultWindow(status, data) {
    if (status == false) {
      if (this.primus_challenge_result_window != null) {
        this.primus_challenge_result_window.close();
        this.primus_challenge_result_window = null;
      }
    } else {
      if (this.primus_challenge_result_window == null) {
        this.primus_challenge_result_window = Utils.createClass("primus_challenge_result_window", this);
      }
 
      if (this.primus_challenge_result_window && this.primus_challenge_result_window.isOpen() == false) {
        this.primus_challenge_result_window.open(data);
      }
    }
  },
  //  判断是否开启星河神殿
  checkIsCanOpenPrimusWindow: function checkIsCanOpenPrimusWindow() {
    var RoleController = require("role_controller");
 
    var role_vo = RoleController.getInstance().getRoleVo();
    var lev = role_vo && role_vo.lev || 0;
    var limit_lev = Config.primus_data.data_const.open_lev.val;
 
    if (lev < limit_lev) {
      message(cc.js.formatStr(Utils.TI18N("等级达到%s级开启\"星河神殿\"玩法"), limit_lev));
      return false;
    }
 
    return true;
  },
  __delete: function __delete() {
    if (this.model != null) {
      this.model.DeleteMe();
      this.model = null;
    }
  }
});
module.exports = PrimusController;
 
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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0c1xcbW9kXFxwcmltdXNcXHByaW11c19jb250cm9sbGVyLmpzIl0sIm5hbWVzIjpbIlByaW11c0NvbnRyb2xsZXIiLCJjYyIsIkNsYXNzIiwiQmFzZUNvbnRyb2xsZXIiLCJjdG9yIiwiaW5pdENvbmZpZyIsIlByaW11c01vZGVsIiwicmVxdWlyZSIsIm1vZGVsIiwiZ2V0TW9kZWwiLCJyZWdpc3RlckV2ZW50cyIsInJlZ2lzdGVyUHJvdG9jYWxzIiwiUmVnaXN0ZXJQcm90b2NhbCIsImhhbmRsZTIwNzAwIiwiaGFuZGxlMjA3MDEiLCJoYW5kbGUyMDcwMiIsImhhbmRsZTIwNzAzIiwiaGFuZGxlMjA3MDUiLCJyZXF1ZXN0UHJpbXVzQ2hhbGxlbmdlQ291bnQiLCJwcm90b2NhbCIsIlNlbmRQcm90b2NhbCIsImRhdGEiLCJyZWNvcmRDaGFsbGVuZ2VDb3VudCIsIlByaW11c0V2ZW50IiwiZ2NvcmUiLCJHbG9iYWxFdmVudCIsImZpcmUiLCJVcGRhdGFfUHJpbXVzX1JlZFBvaW50Iiwic2VuZGVyMjA3MDEiLCJwcmltdXNfbWFpbl93aW5kb3ciLCJzZXREYXRhIiwic2VuZGVyMjA3MDIiLCJwb3MiLCJudW0iLCJtZXNzYWdlIiwibXNnIiwiY29kZSIsIm9wZW5QcmltdXNDaGFsbGVuZ2VQYW5lbCIsInNlbmRlcjIwNzAzIiwib3BlblByaW11c0NoYWxsZW5nZVJlY29yZFBhbmVsIiwib3BlblByaW11c0NoYWxsZW5nZVJlc3VsdFdpbmRvdyIsIm9wZW5QcmltdXNNYWluV2luZG93Iiwic3RhdHVzIiwiY2xvc2UiLCJFc2Vjc2ljZUNvbnN0Iiwib3Blbl9kYXRhIiwiQ29uZmlnIiwiZGFpbHlwbGF5X2RhdGEiLCJkYXRhX2V4ZXJjaXNlYWN0aXZpdHkiLCJleGVjc2ljZV9pbmRleCIsImhvbm91cmZhbmUiLCJVdGlscyIsIlRJMThOIiwiTWFpbnVpQ29udHJvbGxlciIsImJvb2wiLCJnZXRJbnN0YW5jZSIsImNoZWNrSXNPcGVuQnlBY3RpdmF0ZSIsImFjdGl2YXRlIiwibG9ja19kZXNjIiwiaXNfc2hvd19yZWRwb2ludCIsImNyZWF0ZUNsYXNzIiwiaXNPcGVuIiwib3BlbiIsImlzX2hhdmVfdGl0bGUiLCJwcmltdXNfY2hhbGxlbmdlX3BhbmVsIiwicHJpbXVzX2NoYWxsZW5nZV9yZWNvcmRfcGFuZWwiLCJwcmltdXNfY2hhbGxlbmdlX3Jlc3VsdF93aW5kb3ciLCJjaGVja0lzQ2FuT3BlblByaW11c1dpbmRvdyIsIlJvbGVDb250cm9sbGVyIiwicm9sZV92byIsImdldFJvbGVWbyIsImxldiIsImxpbWl0X2xldiIsInByaW11c19kYXRhIiwiZGF0YV9jb25zdCIsIm9wZW5fbGV2IiwidmFsIiwianMiLCJmb3JtYXRTdHIiLCJfX2RlbGV0ZSIsIkRlbGV0ZU1lIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJQSxnQkFBZ0IsR0FBR0MsRUFBRSxDQUFDQyxLQUFILENBQVM7QUFDNUIsYUFBU0MsY0FEbUI7QUFFNUJDLEVBQUFBLElBQUksRUFBRSxnQkFBWSxDQUNqQixDQUgyQjtBQUs1QjtBQUNBQyxFQUFBQSxVQUFVLEVBQUUsc0JBQVk7QUFDcEIsUUFBSUMsV0FBVyxHQUFHQyxPQUFPLENBQUMsY0FBRCxDQUF6Qjs7QUFFQSxTQUFLQyxLQUFMLEdBQWEsSUFBSUYsV0FBSixFQUFiO0FBQ0EsU0FBS0UsS0FBTCxDQUFXSCxVQUFYO0FBQ0gsR0FYMkI7QUFhNUI7QUFDQUksRUFBQUEsUUFBUSxFQUFFLG9CQUFZO0FBQ2xCLFdBQU8sS0FBS0QsS0FBWjtBQUNILEdBaEIyQjtBQWtCNUI7QUFDQUUsRUFBQUEsY0FBYyxFQUFFLDBCQUFZLENBQzNCLENBcEIyQjtBQXNCNUI7QUFDQUMsRUFBQUEsaUJBQWlCLEVBQUUsNkJBQVk7QUFDM0I7QUFDQSxTQUFLQyxnQkFBTCxDQUFzQixLQUF0QixFQUE2QixLQUFLQyxXQUFsQyxF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O0FBQ0g7O0FBQ0QsV0FBTyxJQUFQO0FBQ0gsR0EzTDJCO0FBNkw1Qk8sRUFBQUEsUUFBUSxFQUFDLG9CQUFVO0FBQ2YsUUFBRyxLQUFLdkUsS0FBTCxJQUFZLElBQWYsRUFBb0I7QUFDaEIsV0FBS0EsS0FBTCxDQUFXd0UsUUFBWDtBQUNBLFdBQUt4RSxLQUFMLEdBQWEsSUFBYjtBQUNIO0FBQ0o7QUFsTTJCLENBQVQsQ0FBdkI7QUFzTUF5RSxNQUFNLENBQUNDLE9BQVAsR0FBaUJsRixnQkFBakIiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbIi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBAYXV0aG9yOiB4eHhAc3lnLmNvbSjlv4XloassIOWIm+W7uuaooeWdl+eahOS6uuWRmClcbi8vIEBkZXNjcmlwdGlvbjpcbi8vICAgICAg6L+Z6YeM5aGr5YaZ6K+m57uG6K+05piOLOS4u+imgeWhq+WGmeivpeaooeWdl+eahOWKn+iDveeugOimgVxuLy8gPGJyLz5DcmVhdGU6IDIwMTktMDMtMTYgMTA6MjM6MDBcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG52YXIgUHJpbXVzQ29udHJvbGxlciA9IGNjLkNsYXNzKHtcbiAgICBleHRlbmRzOiBCYXNlQ29udHJvbGxlcixcbiAgICBjdG9yOiBmdW5jdGlvbiAoKSB7XG4gICAgfSxcblxuICAgIC8vIOWIneWni+WMlumFjee9ruaVsOaNrlxuICAgIGluaXRDb25maWc6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIFByaW11c01vZGVsID0gcmVxdWlyZShcInByaW11c19tb2RlbFwiKTtcblxuICAgICAgICB0aGlzLm1vZGVsID0gbmV3IFByaW11c01vZGVsKCk7XG4gICAgICAgIHRoaXMubW9kZWwuaW5pdENvbmZpZygpO1xuICAgIH0sXG5cbiAgICAvLyDov5Tlm57lvZPliY3nmoRtb2RlbFxuICAgIGdldE1vZGVsOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm1vZGVsO1xuICAgIH0sXG5cbiAgICAvLyDms6jlhoznm5HlkKzkuovku7ZcbiAgICByZWdpc3RlckV2ZW50czogZnVuY3Rpb24gKCkge1xuICAgIH0sXG5cbiAgICAvLyDms6jlhozljY/orq7mjqXlj5fkuovku7ZcbiAgICByZWdpc3RlclByb3RvY2FsczogZnVuY3Rpb24gKCkge1xuICAgICAgICAvLyB0aGlzLlJlZ2lzdGVyUHJvdG9jYWwoMTExMCwgdGhpcy5vbjExMTApO1xuICAgICAgICB0aGlzLlJlZ2lzdGVyUHJvdG9jYWwoMjA3MDAsIHRoaXMuaGFuZGxlMjA3MDApICAgICAvL+ivt+axgueOqeWutuaMkeaImOasoeaVsFxuICAgICAgICB0aGlzLlJlZ2lzdGVyUHJvdG9jYWwoMjA3MDEsIHRoaXMuaGFuZGxlMjA3MDEpICAgICAvL+ivt+axguaMkeaImOS9jee9ruS/oeaBr1xuICAgICAgICB0aGlzLlJlZ2lzdGVyUHJvdG9jYWwoMjA3MDIsIHRoaXMuaGFuZGxlMjA3MDIpICAgICAvL+ivt+axguWPkei1t+aMkeaImFxuICAgICAgICB0aGlzLlJlZ2lzdGVyUHJvdG9jYWwoMjA3MDMsIHRoaXMuaGFuZGxlMjA3MDMpICAgICAvL+ivt+axguaMkeaImOiusOW9lVxuICAgICAgICB0aGlzLlJlZ2lzdGVyUHJvdG9jYWwoMjA3MDUsIHRoaXMuaGFuZGxlMjA3MDUpICAgICAvL+ivt+axguaMkeaImOe7k+adn1xuICAgIH0sXG5cbiAgICAvLyDor7fmsYLnjqnlrrbmjJHmiJjmrKHmlbBcbiAgICByZXF1ZXN0UHJpbXVzQ2hhbGxlbmdlQ291bnQ6ZnVuY3Rpb24oKXtcbiAgICAgICAgdmFyIHByb3RvY2FsID17fVxuICAgICAgICB0aGlzLlNlbmRQcm90b2NhbCgyMDcwMCxwcm90b2NhbCk7XG4gICAgfSxcbiAgICBcbiAgICBoYW5kbGUyMDcwMDpmdW5jdGlvbihkYXRhKXtcbiAgICAgICAgdGhpcy5tb2RlbC5yZWNvcmRDaGFsbGVuZ2VDb3VudChkYXRhKTtcbiAgICAgICAgdmFyIFByaW11c0V2ZW50ID0gcmVxdWlyZShcInByaW11c19ldmVudFwiKTtcbiAgICAgICAgZ2NvcmUuR2xvYmFsRXZlbnQuZmlyZShQcmltdXNFdmVudC5VcGRhdGFfUHJpbXVzX1JlZFBvaW50KTtcbiAgICB9LFxuXG4gICAgLy8g6K+35rGC5oyR5oiY5L2N572u5L+h5oGvXG4gICAgc2VuZGVyMjA3MDE6ZnVuY3Rpb24oKXtcbiAgICAgICAgdmFyIHByb3RvY2FsID17fVxuICAgICAgICB0aGlzLlNlbmRQcm90b2NhbCgyMDcwMSxwcm90b2NhbClcbiAgICB9LFxuXG4gICAgaGFuZGxlMjA3MDE6ZnVuY3Rpb24oZGF0YSl7XG4gICAgICAgIGlmKGRhdGEgJiYgdGhpcy5wcmltdXNfbWFpbl93aW5kb3cpe1xuICAgICAgICAgICAgdGhpcy5wcmltdXNfbWFpbl93aW5kb3cuc2V0RGF0YShkYXRhKTtcbiAgICAgICAgfVxuICAgIH0sXG5cbiAgICAvLyDor7fmsYLlj5HotbfmjJHmiJhcbiAgICBzZW5kZXIyMDcwMjpmdW5jdGlvbihwb3MsIG51bSl7XG4gICAgICAgIHZhciBwcm90b2NhbCA9e307XG4gICAgICAgIHByb3RvY2FsLnBvcyA9IHBvcztcbiAgICAgICAgcHJvdG9jYWwubnVtID0gbnVtO1xuICAgICAgICB0aGlzLlNlbmRQcm90b2NhbCgyMDcwMiwgcHJvdG9jYWwpO1xuICAgIH0sXG5cbiAgICBoYW5kbGUyMDcwMjpmdW5jdGlvbihkYXRhKXtcbiAgICAgICAgbWVzc2FnZShkYXRhLm1zZyk7XG4gICAgICAgIGlmKGRhdGEuY29kZSA9PSB0cnVlKXtcbiAgICAgICAgICAgIHRoaXMub3BlblByaW11c0NoYWxsZW5nZVBhbmVsKGZhbHNlKTtcbiAgICAgICAgfVxuICAgIH0sXG5cbiAgICAvLyDor7fmsYLmjJHmiJjorrDlvZVcbiAgICBzZW5kZXIyMDcwMzpmdW5jdGlvbihwb3Mpe1xuICAgICAgICB2YXIgcHJvdG9jYWwgPXt9O1xuICAgICAgICBwcm90b2NhbC5wb3MgPSBwb3M7XG4gICAgICAgIHRoaXMuU2VuZFByb3RvY2FsKDIwNzAzLCBwcm90b2NhbCk7XG4gICAgfSxcblxuICAgIGhhbmRsZTIwNzAzOmZ1bmN0aW9uKGRhdGEpe1xuICAgICAgICAvLyAtLSBtZXNzYWdlKGRhdGEubXNnKVxuICAgICAgICB0aGlzLm9wZW5QcmltdXNDaGFsbGVuZ2VSZWNvcmRQYW5lbCh0cnVlLCBkYXRhKTtcbiAgICB9LFxuXG4gICAgLy8g5oiY5paX57uT5p6cXG4gICAgaGFuZGxlMjA3MDU6ZnVuY3Rpb24oZGF0YSl7XG4gICAgICAgIC8vIC0tIG1lc3NhZ2UoZGF0YS5tc2cpXG4gICAgICAgIHRoaXMub3BlblByaW11c0NoYWxsZW5nZVJlc3VsdFdpbmRvdyh0cnVlLCBkYXRhKTtcbiAgICB9LFxuXG4gICAgLy8gIOaJk+W8gOiNo+iAgOelnuauv+S4u+inkueVjOmdolxuICAgIG9wZW5QcmltdXNNYWluV2luZG93OmZ1bmN0aW9uKHN0YXR1cyl7XG4gICAgICAgIGlmKHN0YXR1cyA9PSBmYWxzZSl7XG4gICAgICAgICAgICBpZih0aGlzLnByaW11c19tYWluX3dpbmRvdyAhPSBudWxsKXtcbiAgICAgICAgICAgICAgICB0aGlzLnByaW11c19tYWluX3dpbmRvdy5jbG9zZSgpO1xuICAgICAgICAgICAgICAgIHRoaXMucHJpbXVzX21haW5fd2luZG93ID0gbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfWVsc2V7XG4gICAgICAgICAgICB2YXIgRXNlY3NpY2VDb25zdCA9IHJlcXVpcmUoXCJlc2Vjc2ljZV9jb25zdFwiKTtcbiAgICAgICAgICAgIHZhciBvcGVuX2RhdGEgPSBDb25maWcuZGFpbHlwbGF5X2RhdGEuZGF0YV9leGVyY2lzZWFjdGl2aXR5W0VzZWNzaWNlQ29uc3QuZXhlY3NpY2VfaW5kZXguaG9ub3VyZmFuZV07XG4gICAgICAgICAgICBpZihvcGVuX2RhdGEgPT0gbnVsbCl7XG4gICAgICAgICAgICAgICAgbWVzc2FnZShVdGlscy5USTE4TihcIuaYn+ays+elnuauv+aVsOaNruW8guW4uFwiKSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdmFyIE1haW51aUNvbnRyb2xsZXIgPSByZXF1aXJlKFwibWFpbnVpX2NvbnRyb2xsZXJcIik7XG4gICAgICAgICAgICB2YXIgYm9vbCA9IE1haW51aUNvbnRyb2xsZXIuZ2V0SW5zdGFuY2UoKS5jaGVja0lzT3BlbkJ5QWN0aXZhdGUob3Blbl9kYXRhLmFjdGl2YXRlKTtcbiAgICAgICAgICAgIGlmKGJvb2wgPT0gZmFsc2Upe1xuICAgICAgICAgICAgICAgIG1lc3NhZ2Uob3Blbl9kYXRhLmxvY2tfZGVzYyk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5tb2RlbC5pc19zaG93X3JlZHBvaW50ID0gZmFsc2U7XG4gICAgICAgICAgICBpZih0aGlzLnByaW11c19tYWluX3dpbmRvdyA9PSBudWxsKXtcbiAgICAgICAgICAgICAgICB0aGlzLnByaW11c19tYWluX3dpbmRvdyA9IFV0aWxzLmNyZWF0ZUNsYXNzKFwicHJpbXVzX21haW5fd2luZG93XCIsdGhpcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZih0aGlzLnByaW11c19tYWluX3dpbmRvdyAmJiB0aGlzLnByaW11c19tYWluX3dpbmRvdy5pc09wZW4oKSA9PSBmYWxzZSl7XG4gICAgICAgICAgICAgICAgdGhpcy5wcmltdXNfbWFpbl93aW5kb3cub3BlbigpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgXG5cbiAgICAgICAgfVxuICAgIH0sXG5cbiAgICAvLyAg5omT5byA6I2j6ICA56We5q6/5oyR5oiY55WM6Z2iXG4gICAgb3BlblByaW11c0NoYWxsZW5nZVBhbmVsOmZ1bmN0aW9uKHN0YXR1cywgZGF0YSwgaXNfaGF2ZV90aXRsZSl7XG4gICAgICAgIGlmKHN0YXR1cyA9PSBmYWxzZSl7XG4gICAgICAgICAgICBpZih0aGlzLnByaW11c19jaGFsbGVuZ2VfcGFuZWwhPW51bGwpe1xuICAgICAgICAgICAgICAgIHRoaXMucHJpbXVzX2NoYWxsZW5nZV9wYW5lbC5jbG9zZSgpO1xuICAgICAgICAgICAgICAgIHRoaXMucHJpbXVzX2NoYWxsZW5nZV9wYW5lbCA9IG51bGw7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1lbHNle1xuICAgICAgICAgICAgaWYodGhpcy5wcmltdXNfY2hhbGxlbmdlX3BhbmVsID09IG51bGwpe1xuICAgICAgICAgICAgICAgIHRoaXMucHJpbXVzX2NoYWxsZW5nZV9wYW5lbCA9IFV0aWxzLmNyZWF0ZUNsYXNzKFwicHJpbXVzX2NoYWxsZW5nZV93aW5kb3dcIix0aGlzKTtcbiAgICAgICAgICAgICAgICBpZih0aGlzLnByaW11c19jaGFsbGVuZ2VfcGFuZWwgJiYgdGhpcy5wcmltdXNfY2hhbGxlbmdlX3BhbmVsLmlzT3BlbigpID09IGZhbHNlKXtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wcmltdXNfY2hhbGxlbmdlX3BhbmVsLm9wZW4oW2RhdGEsIGlzX2hhdmVfdGl0bGVdKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBcbiAgICAgICAgfVxuICAgIH0sXG5cbiAgICAvLyAg5omT5byA6I2j6ICA56We5q6/5oyR5oiY55WM6Z2iXG4gICAgb3BlblByaW11c0NoYWxsZW5nZVJlY29yZFBhbmVsOmZ1bmN0aW9uKHN0YXR1cywgZGF0YSl7XG4gICAgICAgIGlmKHN0YXR1cyA9PSBmYWxzZSl7XG4gICAgICAgICAgICBpZih0aGlzLnByaW11c19jaGFsbGVuZ2VfcmVjb3JkX3BhbmVsIT1udWxsKXtcbiAgICAgICAgICAgICAgICB0aGlzLnByaW11c19jaGFsbGVuZ2VfcmVjb3JkX3BhbmVsLmNsb3NlKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5wcmltdXNfY2hhbGxlbmdlX3JlY29yZF9wYW5lbCA9IG51bGw7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1lbHNle1xuICAgICAgICAgICAgaWYodGhpcy5wcmltdXNfY2hhbGxlbmdlX3JlY29yZF9wYW5lbCA9PSBudWxsKXtcbiAgICAgICAgICAgICAgICB0aGlzLnByaW11c19jaGFsbGVuZ2VfcmVjb3JkX3BhbmVsID0gVXRpbHMuY3JlYXRlQ2xhc3MoXCJwcmltdXNfY2hhbGxlbmdlX3JlY29yZF93aW5kb3dcIix0aGlzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmKHRoaXMucHJpbXVzX2NoYWxsZW5nZV9yZWNvcmRfcGFuZWwgJiYgdGhpcy5wcmltdXNfY2hhbGxlbmdlX3JlY29yZF9wYW5lbC5pc09wZW4oKSA9PSBmYWxzZSl7XG4gICAgICAgICAgICAgICAgdGhpcy5wcmltdXNfY2hhbGxlbmdlX3JlY29yZF9wYW5lbC5vcGVuKGRhdGEpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgXG4gICAgICAgIH1cbiAgICB9LFxuXG4gICAgLy8gIOaJk+W8gOiNo+iAgOelnuauv+aMkeaImOe7k+aenFxuICAgIG9wZW5QcmltdXNDaGFsbGVuZ2VSZXN1bHRXaW5kb3c6ZnVuY3Rpb24oc3RhdHVzLCBkYXRhKXtcbiAgICAgICAgaWYoc3RhdHVzID09IGZhbHNlKXtcbiAgICAgICAgICAgIGlmKHRoaXMucHJpbXVzX2NoYWxsZW5nZV9yZXN1bHRfd2luZG93IT1udWxsKXtcbiAgICAgICAgICAgICAgICB0aGlzLnByaW11c19jaGFsbGVuZ2VfcmVzdWx0X3dpbmRvdy5jbG9zZSgpO1xuICAgICAgICAgICAgICAgIHRoaXMucHJpbXVzX2NoYWxsZW5nZV9yZXN1bHRfd2luZG93ID0gbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfWVsc2V7XG4gICAgICAgICAgICBpZih0aGlzLnByaW11c19jaGFsbGVuZ2VfcmVzdWx0X3dpbmRvdyA9PSBudWxsKXtcbiAgICAgICAgICAgICAgICB0aGlzLnByaW11c19jaGFsbGVuZ2VfcmVzdWx0X3dpbmRvdyA9IFV0aWxzLmNyZWF0ZUNsYXNzKFwicHJpbXVzX2NoYWxsZW5nZV9yZXN1bHRfd2luZG93XCIsdGhpcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZih0aGlzLnByaW11c19jaGFsbGVuZ2VfcmVzdWx0X3dpbmRvdyAmJiB0aGlzLnByaW11c19jaGFsbGVuZ2VfcmVzdWx0X3dpbmRvdy5pc09wZW4oKSA9PSBmYWxzZSl7XG4gICAgICAgICAgICAgICAgdGhpcy5wcmltdXNfY2hhbGxlbmdlX3Jlc3VsdF93aW5kb3cub3BlbihkYXRhKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIFxuICAgICAgICB9XG4gICAgfSxcblxuICAgIC8vICDliKTmlq3mmK/lkKblvIDlkK/mmJ/msrPnpZ7mrr9cbiAgICBjaGVja0lzQ2FuT3BlblByaW11c1dpbmRvdzpmdW5jdGlvbiggICl7XG4gICAgICAgIHZhciBSb2xlQ29udHJvbGxlciA9IHJlcXVpcmUoXCJyb2xlX2NvbnRyb2xsZXJcIik7XG4gICAgICAgIHZhciByb2xlX3ZvID0gUm9sZUNvbnRyb2xsZXIuZ2V0SW5zdGFuY2UoKS5nZXRSb2xlVm8oKTtcbiAgICAgICAgdmFyIGxldiA9IHJvbGVfdm8gJiYgcm9sZV92by5sZXYgfHwgMDtcbiAgICAgICAgdmFyIGxpbWl0X2xldiA9IENvbmZpZy5wcmltdXNfZGF0YS5kYXRhX2NvbnN0Lm9wZW5fbGV2LnZhbDtcbiAgICAgICAgaWYobGV2IDwgbGltaXRfbGV2KXtcbiAgICAgICAgICAgIG1lc3NhZ2UoY2MuanMuZm9ybWF0U3RyKFV0aWxzLlRJMThOKFwi562J57qn6L6+5YiwJXPnuqflvIDlkK9cXFwi5pif5rKz56We5q6/XFxcIueOqeazlVwiKSwgbGltaXRfbGV2KSk7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSxcblxuICAgIF9fZGVsZXRlOmZ1bmN0aW9uKCl7XG4gICAgICAgIGlmKHRoaXMubW9kZWwhPW51bGwpe1xuICAgICAgICAgICAgdGhpcy5tb2RlbC5EZWxldGVNZSgpO1xuICAgICAgICAgICAgdGhpcy5tb2RlbCA9IG51bGw7XG4gICAgICAgIH1cbiAgICB9LFxuXG59KTtcblxubW9kdWxlLmV4cG9ydHMgPSBQcmltdXNDb250cm9sbGVyOyJdfQ==