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/rank/view/rank_main_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, '1d513sQe8pIsYbJv9vL/l91', 'rank_main_window');
// Scripts/mod/rank/view/rank_main_window.js
 
"use strict";
 
// --------------------------------------------------------------------
// @author: shiraho@syg.com(必填, 创建模块的人员)
// @description:
//      竖版排行榜排行界面
// <br/>Create: new Date().toISOString()
// --------------------------------------------------------------------
var PathTool = require("pathtool");
 
var RankController = require("rank_controller");
 
var RankEvent = require("rank_event");
 
var CommonScrollView = require("common_scrollview");
 
var RankMainItem = require("rank_main_item");
 
var RankMainWindow = cc.Class({
  "extends": BaseView,
  ctor: function ctor() {
    this.prefabPath = PathTool.getPrefabPath("rank", "rank_main");
    this.win_type = WinType.Full; // this.view_tag = SCENE_TAG.dialogue;
 
    this.ctrl = RankController.getInstance();
    this.cur_type = 0;
    this.res_list = {};
    this.tab_info_list = {};
    this.view_list = {};
    this.tab_list = {};
    this.is_init = {};
    this.select_tyep = 1; //伙伴类型选择,默认全部为1
 
    this.is_cluster = false;
    this.rank_first_list = {}; //排行配置表
 
    this.is_send = false; //是否发送协议
  },
  openCallBack: function openCallBack() {
    this.contaienr = this.seekChild("container");
    this.main_panel = this.seekChild("main_panel");
    this.close_btn = this.seekChild("close_btn");
    this.bg_nd = this.seekChild("bg");
    this.background = this.seekChild("background");
    this.background.scale = FIT_SCALE;
    this.loadRes(PathTool.getBigBg("bigbg_2"), function (res) {
      this.background.getComponent(cc.Sprite).spriteFrame = res;
    }.bind(this));
  },
  registerEvent: function registerEvent() {
    this.addGlobalEvent(RankEvent.RankEvent_Get_First_data, function (data) {
      if (!data) return;
      var index = 1;
 
      if (data.is_cluster == 0) {
        index = 2;
      }
 
      if (this.select_type != index) return;
 
      if (data.is_cluster == 1) {
        this.rank_first_list[1] = data.rank_list;
      } else {
        this.rank_first_list[2] = data.rank_list;
      }
 
      this.updateRankList();
    }, this);
 
    if (this.is_send) {
      this.ctrl.send_12902(this.is_cluster);
    } else {
      this.is_send = true;
    }
 
    Utils.onTouchEnd(this.close_btn, function () {
      this.ctrl.openMainView(false);
    }.bind(this), 2);
  },
  openRootWnd: function openRootWnd(type) {
    type = type || 2;
    this.select_tyep = type;
    this.changeTabIndex(type);
  },
  changeTabIndex: function changeTabIndex(index) {
    this.select_type = index;
    var first_data = this.rank_first_list[index];
 
    if (first_data != null) {
      this.updateRankList();
    } else {
      this.is_cluster = this.select_type == 1;
 
      if (this.is_send == false) {
        this.is_send = true;
      } else {
        this.ctrl.send_12902(this.is_cluster);
      }
    }
  },
  updateRankList: function updateRankList() {
    if (this.select_type == null) return;
    var first_data = this.rank_first_list[this.select_tyep];
    if (first_data == null) return;
    var tab_size = cc.size(610, 848);
 
    if (this.list_view == null) {
      var setting = {
        item_class: RankMainItem,
        // 单元类
        start_x: 5,
        // 第一个单元的X起点
        space_x: 0,
        // x方向的间隔
        start_y: 0,
        // 第一个单元的Y起点
        space_y: 0,
        // y方向的间隔
        item_width: 602,
        // 单元的尺寸width
        item_height: 162,
        // 单元的尺寸height
        row: 0,
        // 行数,作用于水平滚动类型
        col: 1,
        // 列数,作用于垂直滚动类型
        need_dynamic: true
      };
      this.list_view = new CommonScrollView();
      this.list_view.createScroll(this.bg_nd, cc.v2(0, 0), ScrollViewDir.vertical, ScrollViewStartPos.top, tab_size, setting, cc.v2(0.5, 0.5));
    }
 
    var is_cluster = this.select_type == 1;
    first_data.sort(Utils.tableLowerSorter(["type"]));
 
    var callback = function (item, vo) {
      if (vo && Utils.next(vo) != null) {
        var index = item.getRankIndex() || 1;
        this.ctrl.openRankView(true, index, is_cluster);
      }
    }.bind(this);
 
    this.list_view.setData(first_data, callback, is_cluster);
  },
  closeCallBack: function closeCallBack() {
    this.ctrl.openMainView(false);
 
    if (this.list_view) {
      this.list_view.deleteMe();
      this.list_view = null;
    }
  }
});
module.exports = RankMainWindow;
 
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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0c1xcbW9kXFxyYW5rXFx2aWV3XFxyYW5rX21haW5fd2luZG93LmpzIl0sIm5hbWVzIjpbIlBhdGhUb29sIiwicmVxdWlyZSIsIlJhbmtDb250cm9sbGVyIiwiUmFua0V2ZW50IiwiQ29tbW9uU2Nyb2xsVmlldyIsIlJhbmtNYWluSXRlbSIsIlJhbmtNYWluV2luZG93IiwiY2MiLCJDbGFzcyIsIkJhc2VWaWV3IiwiY3RvciIsInByZWZhYlBhdGgiLCJnZXRQcmVmYWJQYXRoIiwid2luX3R5cGUiLCJXaW5UeXBlIiwiRnVsbCIsImN0cmwiLCJnZXRJbnN0YW5jZSIsImN1cl90eXBlIiwicmVzX2xpc3QiLCJ0YWJfaW5mb19saXN0Iiwidmlld19saXN0IiwidGFiX2xpc3QiLCJpc19pbml0Iiwic2VsZWN0X3R5ZXAiLCJpc19jbHVzdGVyIiwicmFua19maXJzdF9saXN0IiwiaXNfc2VuZCIsIm9wZW5DYWxsQmFjayIsImNvbnRhaWVuciIsInNlZWtDaGlsZCIsIm1haW5fcGFuZWwiLCJjbG9zZV9idG4iLCJiZ19uZCIsImJhY2tncm91bmQiLCJzY2FsZSIsIkZJVF9TQ0FMRSIsImxvYWRSZXMiLCJnZXRCaWdCZyIsInJlcyIsImdldENvbXBvbmVudCIsIlNwcml0ZSIsInNwcml0ZUZyYW1lIiwiYmluZCIsInJlZ2lzdGVyRXZlbnQiLCJhZGRHbG9iYWxFdmVudCIsIlJhbmtFdmVudF9HZXRfRmlyc3RfZGF0YSIsImRhdGEiLCJpbmRleCIsInNlbGVjdF90eXBlIiwicmFua19saXN0IiwidXBkYXRlUmFua0xpc3QiLCJzZW5kXzEyOTAyIiwiVXRpbHMiLCJvblRvdWNoRW5kIiwib3Blbk1haW5WaWV3Iiwib3BlblJvb3RXbmQiLCJ0eXBlIiwiY2hhbmdlVGFiSW5kZXgiLCJmaXJzdF9kYXRhIiwidGFiX3NpemUiLCJzaXplIiwibGlzdF92aWV3Iiwic2V0dGluZyIsIml0ZW1fY2xhc3MiLCJzdGFydF94Iiwic3BhY2VfeCIsInN0YXJ0X3kiLCJzcGFjZV95IiwiaXRlbV93aWR0aCIsIml0ZW1faGVpZ2h0Iiwicm93IiwiY29sIiwibmVlZF9keW5hbWljIiwiY3JlYXRlU2Nyb2xsIiwidjIiLCJTY3JvbGxWaWV3RGlyIiwidmVydGljYWwiLCJTY3JvbGxWaWV3U3RhcnRQb3MiLCJ0b3AiLCJzb3J0IiwidGFibGVMb3dlclNvcnRlciIsImNhbGxiYWNrIiwiaXRlbSIsInZvIiwibmV4dCIsImdldFJhbmtJbmRleCIsIm9wZW5SYW5rVmlldyIsInNldERhdGEiLCJjbG9zZUNhbGxCYWNrIiwiZGVsZXRlTWUiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUlBLFFBQVEsR0FBR0MsT0FBTyxDQUFDLFVBQUQsQ0FBdEI7O0FBQ0EsSUFBSUMsY0FBYyxHQUFHRCxPQUFPLENBQUMsaUJBQUQsQ0FBNUI7O0FBQ0EsSUFBSUUsU0FBUyxHQUFHRixPQUFPLENBQUMsWUFBRCxDQUF2Qjs7QUFDQSxJQUFJRyxnQkFBZ0IsR0FBR0gsT0FBTyxDQUFDLG1CQUFELENBQTlCOztBQUNBLElBQUlJLFlBQVksR0FBR0osT0FBTyxDQUFDLGdCQUFELENBQTFCOztBQUVBLElBQUlLLGNBQWMsR0FBR0MsRUFBRSxDQUFDQyxLQUFILENBQVM7QUFDMUIsYUFBU0MsUUFEaUI7QUFFMUJDLEVBQUFBLElBQUksRUFBRSxnQkFBWTtBQUNkLFNBQUtDLFVBQUwsR0FBa0JYLFFBQVEsQ0FBQ1ksYUFBVCxDQUF1QixNQUF2QixFQUErQixXQUEvQixDQUFsQjtBQUNBLFNBQUtDLFFBQUwsR0FBZ0JDLE9BQU8sQ0FBQ0MsSUFBeEIsQ0FGYyxDQUdkOztBQUNBLFNBQUtDLElBQUwsR0FBWWQsY0FBYyxDQUFDZSxXQUFmLEVBQVo7QUFDQSxTQUFLQyxRQUFMLEdBQWdCLENBQWhCO0FBQ0EsU0FBS0MsUUFBTCxHQUFnQixFQUFoQjtBQUNBLFNBQUtDLGFBQUwsR0FBcUIs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aEIsV0FBS0EsU0FBTCxDQUFlNEIsUUFBZjtBQUNBLFdBQUs1QixTQUFMLEdBQWlCLElBQWpCO0FBQ0g7QUFDSjtBQXhIeUIsQ0FBVCxDQUFyQjtBQTRIQTZCLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQnRGLGNBQWpCIiwic291cmNlUm9vdCI6Ii8iLCJzb3VyY2VzQ29udGVudCI6WyIvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4vLyBAYXV0aG9yOiBzaGlyYWhvQHN5Zy5jb20o5b+F5aGrLCDliJvlu7rmqKHlnZfnmoTkurrlkZgpXHJcbi8vIEBkZXNjcmlwdGlvbjpcclxuLy8gICAgICDnq5bniYjmjpLooYzmppzmjpLooYznlYzpnaJcclxuLy8gPGJyLz5DcmVhdGU6IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKVxyXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG52YXIgUGF0aFRvb2wgPSByZXF1aXJlKFwicGF0aHRvb2xcIik7XHJcbnZhciBSYW5rQ29udHJvbGxlciA9IHJlcXVpcmUoXCJyYW5rX2NvbnRyb2xsZXJcIik7XHJcbnZhciBSYW5rRXZlbnQgPSByZXF1aXJlKFwicmFua19ldmVudFwiKTtcclxudmFyIENvbW1vblNjcm9sbFZpZXcgPSByZXF1aXJlKFwiY29tbW9uX3Njcm9sbHZpZXdcIik7XHJcbnZhciBSYW5rTWFpbkl0ZW0gPSByZXF1aXJlKFwicmFua19tYWluX2l0ZW1cIilcclxuXHJcbnZhciBSYW5rTWFpbldpbmRvdyA9IGNjLkNsYXNzKHtcclxuICAgIGV4dGVuZHM6IEJhc2VWaWV3LFxyXG4gICAgY3RvcjogZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIHRoaXMucHJlZmFiUGF0aCA9IFBhdGhUb29sLmdldFByZWZhYlBhdGgoXCJyYW5rXCIsIFwicmFua19tYWluXCIpO1xyXG4gICAgICAgIHRoaXMud2luX3R5cGUgPSBXaW5UeXBlLkZ1bGw7XHJcbiAgICAgICAgLy8gdGhpcy52aWV3X3RhZyA9IFNDRU5FX1RBRy5kaWFsb2d1ZTtcclxuICAgICAgICB0aGlzLmN0cmwgPSBSYW5rQ29udHJvbGxlci5nZXRJbnN0YW5jZSgpO1xyXG4gICAgICAgIHRoaXMuY3VyX3R5cGUgPSAwO1xyXG4gICAgICAgIHRoaXMucmVzX2xpc3QgPSB7fTtcclxuICAgICAgICB0aGlzLnRhYl9pbmZvX2xpc3QgPSB7fTtcclxuICAgICAgICB0aGlzLnZpZXdfbGlzdCA9IHt9O1xyXG4gICAgICAgIHRoaXMudGFiX2xpc3QgPSB7fTtcclxuICAgICAgICB0aGlzLmlzX2luaXQgPSB7fTtcclxuICAgICAgICB0aGlzLnNlbGVjdF90eWVwID0gMTsvL+S8meS8tOexu+Wei+mAieaLqSzpu5jorqTlhajpg6jkuLoxXHJcbiAgICAgICAgdGhpcy5pc19jbHVzdGVyID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5yYW5rX2ZpcnN0X2xpc3QgPSB7fTsgIC8v5o6S6KGM6YWN572u6KGoXHJcbiAgICAgICAgdGhpcy5pc19zZW5kID0gZmFsc2U7Ly/mmK/lkKblj5HpgIHljY/orq5cclxuICAgIH0sXHJcblxyXG5cclxuICAgIG9wZW5DYWxsQmFjazogZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIHRoaXMuY29udGFpZW5yID0gdGhpcy5zZWVrQ2hpbGQoXCJjb250YWluZXJcIik7XHJcbiAgICAgICAgdGhpcy5tYWluX3BhbmVsID0gdGhpcy5zZWVrQ2hpbGQoXCJtYWluX3BhbmVsXCIpO1xyXG4gICAgICAgIHRoaXMuY2xvc2VfYnRuID0gdGhpcy5zZWVrQ2hpbGQoXCJjbG9zZV9idG5cIik7XHJcbiAgICAgICAgdGhpcy5iZ19uZCA9IHRoaXMuc2Vla0NoaWxkKFwiYmdcIik7XHJcblxyXG4gICAgICAgIHRoaXMuYmFja2dyb3VuZCA9IHRoaXMuc2Vla0NoaWxkKFwiYmFja2dyb3VuZFwiKTtcclxuICAgICAgICB0aGlzLmJhY2tncm91bmQuc2NhbGUgPSBGSVRfU0NBTEU7XHJcbiAgICAgICAgdGhpcy5sb2FkUmVzKFBhdGhUb29sLmdldEJpZ0JnKFwiYmlnYmdfMlwiKSxmdW5jdGlvbihyZXMpe1xyXG4gICAgICAgICAgICB0aGlzLmJhY2tncm91bmQuZ2V0Q29tcG9uZW50KGNjLlNwcml0ZSkuc3ByaXRlRnJhbWUgPSByZXNcclxuICAgICAgICB9LmJpbmQodGhpcykpXHJcbiAgICB9LFxyXG5cclxuXHJcblxyXG4gICAgcmVnaXN0ZXJFdmVudDogZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIHRoaXMuYWRkR2xvYmFsRXZlbnQoUmFua0V2ZW50LlJhbmtFdmVudF9HZXRfRmlyc3RfZGF0YSwgZnVuY3Rpb24gKGRhdGEpIHtcclxuICAgICAgICAgICAgaWYgKCFkYXRhKSByZXR1cm5cclxuICAgICAgICAgICAgdmFyIGluZGV4ID0gMTtcclxuICAgICAgICAgICAgaWYgKGRhdGEuaXNfY2x1c3RlciA9PSAwKSB7XHJcbiAgICAgICAgICAgICAgICBpbmRleCA9IDI7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKHRoaXMuc2VsZWN0X3R5cGUgIT0gaW5kZXgpIHJldHVyblxyXG4gICAgICAgICAgICBpZiAoZGF0YS5pc19jbHVzdGVyID09IDEpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMucmFua19maXJzdF9saXN0WzFdID0gZGF0YS5yYW5rX2xpc3Q7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnJhbmtfZmlyc3RfbGlzdFsyXSA9IGRhdGEucmFua19saXN0O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRoaXMudXBkYXRlUmFua0xpc3QoKTtcclxuICAgICAgICB9LCB0aGlzKVxyXG4gICAgICAgIGlmICh0aGlzLmlzX3NlbmQpIHtcclxuICAgICAgICAgICAgdGhpcy5jdHJsLnNlbmRfMTI5MDIodGhpcy5pc19jbHVzdGVyKVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuaXNfc2VuZCA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIFV0aWxzLm9uVG91Y2hFbmQodGhpcy5jbG9zZV9idG4sIGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgdGhpcy5jdHJsLm9wZW5NYWluVmlldyhmYWxzZSlcclxuICAgICAgICB9LmJpbmQodGhpcyksIDIpXHJcbiAgICB9LFxyXG5cclxuICAgIG9wZW5Sb290V25kOiBmdW5jdGlvbiAodHlwZSkge1xyXG4gICAgICAgIHR5cGUgPSB0eXBlIHx8IDI7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RfdHllcCA9IHR5cGU7XHJcbiAgICAgICAgdGhpcy5jaGFuZ2VUYWJJbmRleCh0eXBlKVxyXG4gICAgfSxcclxuXHJcbiAgICBjaGFuZ2VUYWJJbmRleDogZnVuY3Rpb24gKGluZGV4KSB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RfdHlwZSA9IGluZGV4O1xyXG4gICAgICAgIHZhciBmaXJzdF9kYXRhID0gdGhpcy5yYW5rX2ZpcnN0X2xpc3RbaW5kZXhdO1xyXG4gICAgICAgIGlmIChmaXJzdF9kYXRhICE9IG51bGwpIHtcclxuICAgICAgICAgICAgdGhpcy51cGRhdGVSYW5rTGlzdCgpXHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5pc19jbHVzdGVyID0gdGhpcy5zZWxlY3RfdHlwZSA9PSAxO1xyXG4gICAgICAgICAgICBpZiAodGhpcy5pc19zZW5kID09IGZhbHNlKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmlzX3NlbmQgPSB0cnVlO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jdHJsLnNlbmRfMTI5MDIodGhpcy5pc19jbHVzdGVyKVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfSxcclxuXHJcbiAgICB1cGRhdGVSYW5rTGlzdDogZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIGlmICh0aGlzLnNlbGVjdF90eXBlID09IG51bGwpIHJldHVyblxyXG4gICAgICAgIHZhciBmaXJzdF9kYXRhID0gdGhpcy5yYW5rX2ZpcnN0X2xpc3RbdGhpcy5zZWxlY3RfdHllcF07XHJcbiAgICAgICAgaWYgKGZpcnN0X2RhdGEgPT0gbnVsbCkgcmV0dXJuXHJcbiAgICAgICAgdmFyIHRhYl9zaXplID0gY2Muc2l6ZSg2MTAsIDg0OClcclxuICAgICAgICBpZiAodGhpcy5saXN0X3ZpZXcgPT0gbnVsbCkge1xyXG4gICAgICAgICAgICB2YXIgc2V0dGluZyA9IHtcclxuICAgICAgICAgICAgICAgIGl0ZW1fY2xhc3M6IFJhbmtNYWluSXRlbSwgICAgICAvLyDljZXlhYPnsbtcclxuICAgICAgICAgICAgICAgIHN0YXJ0X3g6IDUsICAgICAgICAgICAgICAgICAgICAvLyDnrKzkuIDkuKrljZXlhYPnmoRY6LW354K5XHJcbiAgICAgICAgICAgICAgICBzcGFjZV94OiAwLCAgICAgICAgICAgICAgICAgICAgLy8geOaWueWQkeeahOmXtOmalFxyXG4gICAgICAgICAgICAgICAgc3RhcnRfeTogMCwgICAgICAgICAgICAgICAgICAgIC8vIOesrOS4gOS4quWNleWFg+eahFnotbfngrlcclxuICAgICAgICAgICAgICAgIHNwYWNlX3k6IDAsICAgICAgICAgICAgICAgICAgIC8vIHnmlrnlkJHnmoTpl7TpmpRcclxuICAgICAgICAgICAgICAgIGl0ZW1fd2lkdGg6IDYwMiwgICAgICAgICAgICAgICAvLyDljZXlhYPnmoTlsLrlr7h3aWR0aFxyXG4gICAgICAgICAgICAgICAgaXRlbV9oZWlnaHQ6IDE2MiwgICAgICAgICAgICAgIC8vIOWNleWFg+eahOWwuuWvuGhlaWdodFxyXG4gICAgICAgICAgICAgICAgcm93OiAwLCAgICAgICAgICAgICAgICAgICAgICAgIC8vIOihjOaVsO+8jOS9nOeUqOS6juawtOW5s+a7muWKqOexu+Wei1xyXG4gICAgICAgICAgICAgICAgY29sOiAxLCAgICAgICAgICAgICAgICAgICAgICAgIC8vIOWIl+aVsO+8jOS9nOeUqOS6juWeguebtOa7muWKqOexu+Wei1xyXG4gICAgICAgICAgICAgICAgbmVlZF9keW5hbWljOiB0cnVlXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhpcy5saXN0X3ZpZXcgPSBuZXcgQ29tbW9uU2Nyb2xsVmlldygpXHJcbiAgICAgICAgICAgIHRoaXMubGlzdF92aWV3LmNyZWF0ZVNjcm9sbCh0aGlzLmJnX25kLCBjYy52MigwLCAwKSwgU2Nyb2xsVmlld0Rpci52ZXJ0aWNhbCwgU2Nyb2xsVmlld1N0YXJ0UG9zLnRvcCwgdGFiX3NpemUsIHNldHRpbmcsIGNjLnYyKDAuNSwgMC41KSlcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHZhciBpc19jbHVzdGVyID0gdGhpcy5zZWxlY3RfdHlwZSA9PSAxO1xyXG4gICAgICAgIGZpcnN0X2RhdGEuc29ydChVdGlscy50YWJsZUxvd2VyU29ydGVyKFtcInR5cGVcIl0pKVxyXG4gICAgICAgIHZhciBjYWxsYmFjayA9IGZ1bmN0aW9uIChpdGVtLCB2bykge1xyXG4gICAgICAgICAgICBpZiAodm8gJiYgVXRpbHMubmV4dCh2bykgIT0gbnVsbCkge1xyXG4gICAgICAgICAgICAgICAgdmFyIGluZGV4ID0gaXRlbS5nZXRSYW5rSW5kZXgoKSB8fCAxO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jdHJsLm9wZW5SYW5rVmlldyh0cnVlLCBpbmRleCwgaXNfY2x1c3Rlcik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9LmJpbmQodGhpcylcclxuICAgICAgICB0aGlzLmxpc3Rfdmlldy5zZXREYXRhKGZpcnN0X2RhdGEsIGNhbGxiYWNrLCBpc19jbHVzdGVyKVxyXG4gICAgfSxcclxuXHJcbiAgICBjbG9zZUNhbGxCYWNrOiBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgdGhpcy5jdHJsLm9wZW5NYWluVmlldyhmYWxzZSlcclxuICAgICAgICBpZiAodGhpcy5saXN0X3ZpZXcpIHtcclxuICAgICAgICAgICAgdGhpcy5saXN0X3ZpZXcuZGVsZXRlTWUoKTtcclxuICAgICAgICAgICAgdGhpcy5saXN0X3ZpZXcgPSBudWxsO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbn0pO1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBSYW5rTWFpbldpbmRvdzsiXX0=