|
(function() {
|
var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined';
|
var __module = nodeEnv ? module : {exports:{}};
|
var __filename = 'preview-scripts/assets/Scripts/mod/role/view/role_head_panel.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, 'f4c04as1WpF4qH2iJeienwX', 'role_head_panel');
|
// Scripts/mod/role/view/role_head_panel.js
|
|
"use strict";
|
|
// --------------------------------------------------------------------
|
// @author: whjing2012@syg.com(必填, 创建模块的人员)
|
// @description:
|
// 头像选择
|
// <br/>Create: new Date().toISOString()
|
// --------------------------------------------------------------------
|
var PathTool = require("pathtool");
|
|
var RoleController = require("role_controller");
|
|
var RoleHeadItem = require("role_head_item");
|
|
var CommonScrollView = require("common_scrollview");
|
|
var RoleHeadPanel = cc.Class({
|
"extends": BasePanel,
|
ctor: function ctor() {
|
this.prefabPath = PathTool.getPrefabPath("roleinfo", "role_head_panel");
|
this.data = null;
|
this.has_list = {};
|
this.select_bid = 0;
|
},
|
initPanel: function initPanel() {
|
this.setPosition(0, 0);
|
this.scroll_con = this.root_wnd.getChildByName("scroll_con");
|
this.ok_btn = this.root_wnd.getChildByName("ok_btn"); // this.loadRes(PathTool.getResFrame("face"), (function(resObject){
|
// this.face_res_object = resObject;
|
// if(this.cache_has_list){
|
// this.updateList(this.cache_has_list);
|
// this.cache_has_list = null;
|
// }
|
// }).bind(this));
|
|
var setting = {
|
item_class: RoleHeadItem,
|
// 单元类
|
start_x: 5,
|
// 第一个单元的X起点
|
space_x: 4,
|
// x方向的间隔
|
start_y: 0,
|
// 第一个单元的Y起点
|
space_y: 10,
|
// y方向的间隔
|
item_width: 141,
|
// 单元的尺寸width
|
item_height: 120,
|
// 单元的尺寸height
|
row: 0,
|
// 行数,作用于水平滚动类型
|
col: 4,
|
// 列数,作用于垂直滚动类型
|
once_num: 4,
|
need_dynamic: true
|
};
|
var scroll_view_size = cc.size(604, 514);
|
this.item_scrollview = new CommonScrollView();
|
this.item_scrollview.createScroll(this.scroll_con, cc.v2(0, 0), ScrollViewDir.vertical, ScrollViewStartPos.top, scroll_view_size, setting, cc.v2(0.5, 0.5));
|
RoleController.getInstance().send10325();
|
},
|
registerEvent: function registerEvent() {
|
this.ok_btn.on(cc.Node.EventType.TOUCH_END, function () {
|
if (this.select_bid) {
|
RoleController.getInstance().send10327(this.select_bid);
|
}
|
}, this);
|
this.roleVo = RoleController.getInstance().getRoleVo();
|
|
if (!this.role_update_evt) {
|
this.role_update_evt = this.roleVo.bind(EventId.UPDATE_ROLE_ATTRIBUTE, function (key, val) {
|
if (key == "face_id") {
|
this.updateList();
|
} else if (key == "face_list") {
|
this.updateList(val);
|
}
|
}, this);
|
}
|
},
|
onShow: function onShow() {},
|
updateList: function updateList(has_list) {
|
// if(!this.face_res_object){// 资源未加载
|
// this.cache_has_list = has_list || this.cache_has_list;
|
// return;
|
// }
|
if (has_list) {
|
this.has_list = this.has_list || {};
|
|
for (var k in has_list) {
|
this.has_list[has_list[k].face_id] = 1;
|
}
|
} // for (var k in Config.partner_data.data_partner_base) {
|
// var v = Config.partner_data.data_partner_base[k];
|
// if (v.bid == this.roleVo.face_id) {
|
// list.push({ bid: v.bid, face_id: v.bid, use: 1, status: 1, sort: 1100000 - v.bid });
|
// } else if (this.has_list[v.bid]) {
|
// list.push({ bid: v.bid, face_id: v.bid, use: 0, status: 1, sort: 100000 - v.bid });
|
// } else {
|
// list.push({ bid: v.bid, face_id: v.bid, use: 0, status: 0, sort: -v.bid });
|
// }
|
// }
|
|
|
if (this.list == null) {
|
this.list = [];
|
|
for (var _k in Config.looks_data.data_head_data) {
|
var v = Config.looks_data.data_head_data[_k];
|
var data = {};
|
data.tips = v.tips;
|
data.bid = v.id;
|
data.face_id = v.id;
|
|
if (this.has_list) {
|
if (this.has_list[v.id]) {
|
data.status = 1; //拥有
|
} else {
|
data.status = 0; //未拥有
|
}
|
} else {
|
data.status = 0;
|
}
|
|
if (this.roleVo.face_id == v.id) {
|
data.use = 1;
|
} else {
|
data.use = 0;
|
}
|
|
this.list.push(data);
|
}
|
} else {
|
for (var i in this.list) {
|
var _data = this.list[i];
|
|
if (this.roleVo.face_id == _data.bid) {
|
_data.use = 1;
|
} else {
|
_data.use = 0;
|
}
|
}
|
} // this.list.sort(Utils.tableLowerSorter(["use", "status","bid"]));
|
// this.list.sort(Utils.tableUpperSorter(["use", "status"]));
|
|
|
this.list.sort(Utils.tableCommonSorter([["use", true], ["status", true], ["bid", false]]));
|
if (this.select_bid == 0) this.select_bid = this.roleVo.face_id;
|
this.item_scrollview.setData(this.list, function (cell) {
|
if (cell.data.status == 0) {
|
// var config = Config.partner_data.data_partner_base[cell.data.bid];
|
// message(cc.js.formatStr(Utils.TI18N("激活%s可解锁"), config.name));
|
message(Utils.TI18N(cell.data.tips));
|
} else {
|
this.select_bid = cell.data.bid;
|
|
if (this.select_item) {
|
this.select_item.setSelected(false);
|
}
|
|
this.select_item = cell;
|
this.setSelected(cell);
|
}
|
}.bind(this), {
|
resObject: this.face_res_object,
|
select_func: this.setSelected.bind(this)
|
});
|
this.item_scrollview.addEndCallBack(function () {
|
cc.log(this.item_scrollview);
|
}.bind(this));
|
},
|
setSelected: function setSelected(item) {
|
if (item) {
|
item.setSelected(this.select_bid == item.data.bid);
|
|
if (this.select_item == null) {
|
this.select_item = item;
|
}
|
}
|
},
|
onHide: function onHide() {},
|
onDelete: function onDelete() {
|
if (this.role_update_evt) {
|
this.roleVo.unbind(this.role_update_evt);
|
}
|
|
if (this.item_scrollview) {
|
this.item_scrollview.DeleteMe();
|
}
|
|
this.item_scrollview = null;
|
}
|
});
|
module.exports = RoleHeadPanel;
|
|
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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0c1xcbW9kXFxyb2xlXFx2aWV3XFxyb2xlX2hlYWRfcGFuZWwuanMiXSwibmFtZXMiOlsiUGF0aFRvb2wiLCJyZXF1aXJlIiwiUm9sZUNvbnRyb2xsZXIiLCJSb2xlSGVhZEl0ZW0iLCJDb21tb25TY3JvbGxWaWV3IiwiUm9sZUhlYWRQYW5lbCIsImNjIiwiQ2xhc3MiLCJCYXNlUGFuZWwiLCJjdG9yIiwicHJlZmFiUGF0aCIsImdldFByZWZhYlBhdGgiLCJkYXRhIiwiaGFzX2xpc3QiLCJzZWxlY3RfYmlkIiwiaW5pdFBhbmVsIiwic2V0UG9zaXRpb24iLCJzY3JvbGxfY29uIiwicm9vdF93bmQiLCJnZXRDaGlsZEJ5TmFtZSIsIm9rX2J0biIsInNldHRpbmciLCJpdGVtX2NsYXNzIiwic3RhcnRfeCIsInNwYWNlX3giLCJzdGFydF95Iiwic3BhY2VfeSIsIml0ZW1fd2lkdGgiLCJpdGVtX2hlaWdodCIsInJvdyIsImNvbCIsIm9uY2VfbnVtIiwibmVlZF9keW5hbWljIiwic2Nyb2xsX3ZpZXdfc2l6ZSIsInNpemUiLCJpdGVtX3Njcm9sbHZpZXciLCJjcmVhdGVTY3JvbGwiLCJ2MiIsIlNjcm9sbFZpZXdEaXIiLCJ2ZXJ0aWNhbCIsIlNjcm9sbFZpZXdTdGFydFBvcyIsInRvcCIsImdldEluc3RhbmNlIiwic2VuZDEwMzI1IiwicmVnaXN0ZXJFdmVudCIsIm9uIiwiTm9kZSIsIkV2ZW50VHlwZSIsIlRPVUNIX0VORCIsInNlbmQxMDMyNyIsInJvbGVWbyIsImdldFJvbGVWbyIsInJvbGVfdXBkYXRlX2V2dCIsImJpbmQiLCJFdmVudElkIiwiVVBEQVRFX1JPTEVfQVRUUklCVVRFIiwia2V5IiwidmFsIiwidXBkYXRlTGlzdCIsIm9uU2hvdyIsImsiLCJmYWNlX2lkIiwibGlzdCIsIkNvbmZpZyIsImxvb2tzX2RhdGEiLCJkYXRhX2hlYWRfZGF0YSIsInYiLCJ0aXBzIiwiYmlkIiwiaWQiLCJzdGF0dXMiLCJ1c2UiLCJwdXNoIiwiaSIsInNvcnQiLCJVdGlscyIsInRhYmxlQ29tbW9uU29ydGVyIiwic2V0RGF0YSIsImNlbGwiLCJtZXNzYWdlIiwiVEkxOE4iLCJzZWxlY3RfaXRlbSIsInNldFNlbGVjdGVkIiwicmVzT2JqZWN0IiwiZmFjZV9yZXNfb2JqZWN0Iiwic2VsZWN0X2Z1bmMiLCJhZGRFbmRDYWxsQmFjayIsImxvZyIsIml0ZW0iLCJvbkhpZGUiLCJvbkRlbGV0ZSIsInVuYmluZCIsIkRlbGV0ZU1lIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQSxJQUFJQSxRQUFRLEdBQUdDLE9BQU8sQ0FBQyxVQUFELENBQXRCOztBQUNBLElBQUlDLGNBQWMsR0FBR0QsT0FBTyxDQUFDLGlCQUFELENBQTVCOztBQUNBLElBQUlFLFlBQVksR0FBR0YsT0FBTyxDQUFDLGdCQUFELENBQTFCOztBQUNBLElBQUlHLGdCQUFnQixHQUFHSCxPQUFPLENBQUMsbUJBQUQsQ0FBOUI7O0FBRUEsSUFBSUksYUFBYSxHQUFHQyxFQUFFLENBQUNDLEtBQUgsQ0FBUztBQUN6QixhQUFTQyxTQURnQjtBQUV6QkMsRUFBQUEsSUFBSSxFQUFFLGdCQUFZO0FBQ2QsU0FBS0MsVUFBTCxHQUFrQlYsUUFBUSxDQUFDVyxhQUFULENBQXVCLFVBQXZCLEVBQW1DLGlCQUFuQyxDQUFsQjtBQUNBLFNBQUtDLElBQUwsR0FBWSxJQUFaO0FBQ0EsU0FBS0MsUUFBTCxHQUFnQixFQUFoQjtBQUNBLFNBQUtDLFVBQUwsR0FBa0IsQ0FBbEI7QUFDSCxHQVB3QjtBQVN6QkMsRUFBQUEsU0FBUyxFQUFFLHFCQUFZO0FBQ25CLFNBQUtDLFdBQUwsQ0FBaUIsQ0FBakIsRUFBb0IsQ0FBcEI7QUFDQSxTQUFLQyxVQUFMLEdBQWtCLEtBQUtDLFFBQUwsQ0FBY0MsY0FBZCxDQUE2QixZQUE3QixDQUFsQjtBQUNBLFNBQUtDLE1BQUwsR0FBYyxLQUFLRixRQUFMLENBQWNDLGNB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b3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbIi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBAYXV0aG9yOiB3aGppbmcyMDEyQHN5Zy5jb20o5b+F5aGrLCDliJvlu7rmqKHlnZfnmoTkurrlkZgpXG4vLyBAZGVzY3JpcHRpb246XG4vLyAgICAgIOWktOWDj+mAieaLqVxuLy8gPGJyLz5DcmVhdGU6IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxudmFyIFBhdGhUb29sID0gcmVxdWlyZShcInBhdGh0b29sXCIpO1xudmFyIFJvbGVDb250cm9sbGVyID0gcmVxdWlyZShcInJvbGVfY29udHJvbGxlclwiKTtcbnZhciBSb2xlSGVhZEl0ZW0gPSByZXF1aXJlKFwicm9sZV9oZWFkX2l0ZW1cIik7XG52YXIgQ29tbW9uU2Nyb2xsVmlldyA9IHJlcXVpcmUoXCJjb21tb25fc2Nyb2xsdmlld1wiKTtcblxudmFyIFJvbGVIZWFkUGFuZWwgPSBjYy5DbGFzcyh7XG4gICAgZXh0ZW5kczogQmFzZVBhbmVsLFxuICAgIGN0b3I6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdGhpcy5wcmVmYWJQYXRoID0gUGF0aFRvb2wuZ2V0UHJlZmFiUGF0aChcInJvbGVpbmZvXCIsIFwicm9sZV9oZWFkX3BhbmVsXCIpO1xuICAgICAgICB0aGlzLmRhdGEgPSBudWxsO1xuICAgICAgICB0aGlzLmhhc19saXN0ID0ge307XG4gICAgICAgIHRoaXMuc2VsZWN0X2JpZCA9IDA7XG4gICAgfSxcblxuICAgIGluaXRQYW5lbDogZnVuY3Rpb24gKCkge1xuICAgICAgICB0aGlzLnNldFBvc2l0aW9uKDAsIDApO1xuICAgICAgICB0aGlzLnNjcm9sbF9jb24gPSB0aGlzLnJvb3Rfd25kLmdldENoaWxkQnlOYW1lKFwic2Nyb2xsX2NvblwiKTtcbiAgICAgICAgdGhpcy5va19idG4gPSB0aGlzLnJvb3Rfd25kLmdldENoaWxkQnlOYW1lKFwib2tfYnRuXCIpO1xuICAgICAgICAvLyB0aGlzLmxvYWRSZXMoUGF0aFRvb2wuZ2V0UmVzRnJhbWUoXCJmYWNlXCIpLCAoZnVuY3Rpb24ocmVzT2JqZWN0KXtcbiAgICAgICAgLy8gICAgIHRoaXMuZmFjZV9yZXNfb2JqZWN0ID0gcmVzT2JqZWN0O1xuICAgICAgICAvLyAgICAgaWYodGhpcy5jYWNoZV9oYXNfbGlzdCl7XG4gICAgICAgIC8vICAgICAgICAgdGhpcy51cGRhdGVMaXN0KHRoaXMuY2FjaGVfaGFzX2xpc3QpO1xuICAgICAgICAvLyAgICAgICAgIHRoaXMuY2FjaGVfaGFzX2xpc3QgPSBudWxsO1xuICAgICAgICAvLyAgICAgfVxuICAgICAgICAvLyB9KS5iaW5kKHRoaXMpKTtcbiAgICAgICAgdmFyIHNldHRpbmcgPSB7XG4gICAgICAgICAgICBpdGVtX2NsYXNzOiBSb2xlSGVhZEl0ZW0sICAgICAgLy8g5Y2V5YWD57G7XG4gICAgICAgICAgICBzdGFydF94OiA1LCAgICAgICAgICAgICAgICAgICAgLy8g56ys5LiA5Liq5Y2V5YWD55qEWOi1t+eCuVxuICAgICAgICAgICAgc3BhY2VfeDogNCwgICAgICAgICAgICAgICAgICAgIC8vIHjmlrnlkJHnmoTpl7TpmpRcbiAgICAgICAgICAgIHN0YXJ0X3k6IDAsICAgICAgICAgICAgICAgICAgICAvLyDnrKzkuIDkuKrljZXlhYPnmoRZ6LW354K5XG4gICAgICAgICAgICBzcGFjZV95OiAxMCwgICAgICAgICAgICAgICAgICAgLy8geeaWueWQkeeahOmXtOmalFxuICAgICAgICAgICAgaXRlbV93aWR0aDogMTQxLCAgICAgICAgICAgICAgIC8vIOWNleWFg+eahOWwuuWvuHdpZHRoXG4gICAgICAgICAgICBpdGVtX2hlaWdodDogMTIwLCAgICAgICAgICAgICAgLy8g5Y2V5YWD55qE5bC65a+4aGVpZ2h0XG4gICAgICAgICAgICByb3c6IDAsICAgICAgICAgICAgICAgICAgICAgICAgLy8g6KGM5pWw77yM5L2c55So5LqO5rC05bmz5rua5Yqo57G75Z6LXG4gICAgICAgICAgICBjb2w6IDQsICAgICAgICAgICAgICAgICAgICAgICAgLy8g5YiX5pWw77yM5L2c55So5LqO5Z6C55u05rua5Yqo57G75Z6LXG4gICAgICAgICAgICBvbmNlX251bTogNCxcbiAgICAgICAgICAgIG5lZWRfZHluYW1pYzogdHJ1ZVxuICAgICAgICB9O1xuICAgICAgICB2YXIgc2Nyb2xsX3ZpZXdfc2l6ZSA9IGNjLnNpemUoNjA0LCA1MTQpO1xuICAgICAgICB0aGlzLml0ZW1fc2Nyb2xsdmlldyA9IG5ldyBDb21tb25TY3JvbGxWaWV3KClcbiAgICAgICAgdGhpcy5pdGVtX3Njcm9sbHZpZXcuY3JlYXRlU2Nyb2xsKHRoaXMuc2Nyb2xsX2NvbiwgY2MudjIoMCwgMCksIFNjcm9sbFZpZXdEaXIudmVydGljYWwsIFNjcm9sbFZpZXdTdGFydFBvcy50b3AsIHNjcm9sbF92aWV3X3NpemUsIHNldHRpbmcsIGNjLnYyKDAuNSwgMC41KSk7XG4gICAgICAgIFJvbGVDb250cm9sbGVyLmdldEluc3RhbmNlKCkuc2VuZDEwMzI1KCk7XG4gICAgfSxcblxuICAgIHJlZ2lzdGVyRXZlbnQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdGhpcy5va19idG4ub24oY2MuTm9kZS5FdmVudFR5cGUuVE9VQ0hfRU5ELCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5zZWxlY3RfYmlkKSB7XG4gICAgICAgICAgICAgICAgUm9sZUNvbnRyb2xsZXIuZ2V0SW5zdGFuY2UoKS5zZW5kMTAzMjcodGhpcy5zZWxlY3RfYmlkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSwgdGhpcyk7XG4gICAgICAgIHRoaXMucm9sZVZvID0gUm9sZUNvbnRyb2xsZXIuZ2V0SW5zdGFuY2UoKS5nZXRSb2xlVm8oKTtcbiAgICAgICAgaWYgKCF0aGlzLnJvbGVfdXBkYXRlX2V2dCkge1xuICAgICAgICAgICAgdGhpcy5yb2xlX3VwZGF0ZV9ldnQgPSB0aGlzLnJvbGVWby5iaW5kKEV2ZW50SWQuVVBEQVRFX1JPTEVfQVRUUklCVVRFLCAoZnVuY3Rpb24gKGtleSwgdmFsKSB7XG4gICAgICAgICAgICAgICAgaWYgKGtleSA9PSBcImZhY2VfaWRcIikge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZUxpc3QoKTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGtleSA9PSBcImZhY2VfbGlzdFwiKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlTGlzdCh2YWwpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pLCB0aGlzKTtcbiAgICAgICAgfVxuICAgIH0sXG5cbiAgICBvblNob3c6IGZ1bmN0aW9uICgpIHtcbiAgICB9LFxuXG4gICAgdXBkYXRlTGlzdDogZnVuY3Rpb24gKGhhc19saXN0KSB7XG4gICAgICAgIC8vIGlmKCF0aGlzLmZhY2VfcmVzX29iamVjdCl7Ly8g6LWE5rqQ5pyq5Yqg6L29XG4gICAgICAgIC8vICAgICB0aGlzLmNhY2hlX2hhc19saXN0ID0gaGFzX2xpc3QgfHwgdGhpcy5jYWNoZV9oYXNfbGlzdDtcbiAgICAgICAgLy8gICAgIHJldHVybjtcbiAgICAgICAgLy8gfVxuICAgICAgICBpZiAoaGFzX2xpc3QpIHtcbiAgICAgICAgICAgIHRoaXMuaGFzX2xpc3QgPSB0aGlzLmhhc19saXN0IHx8IHt9O1xuICAgICAgICAgICAgZm9yICh2YXIgayBpbiBoYXNfbGlzdCkge1xuICAgICAgICAgICAgICAgIHRoaXMuaGFzX2xpc3RbaGFzX2xpc3Rba10uZmFjZV9pZF0gPSAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gZm9yICh2YXIgayBpbiBDb25maWcucGFydG5lcl9kYXRhLmRhdGFfcGFydG5lcl9iYXNlKSB7XG4gICAgICAgIC8vICAgICB2YXIgdiA9IENvbmZpZy5wYXJ0bmVyX2RhdGEuZGF0YV9wYXJ0bmVyX2Jhc2Vba107XG4gICAgICAgIC8vICAgICBpZiAodi5iaWQgPT0gdGhpcy5yb2xlVm8uZmFjZV9pZCkge1xuICAgICAgICAvLyAgICAgICAgIGxpc3QucHVzaCh7IGJpZDogdi5iaWQsIGZhY2VfaWQ6IHYuYmlkLCB1c2U6IDEsIHN0YXR1czogMSwgc29ydDogMTEwMDAwMCAtIHYuYmlkIH0pO1xuICAgICAgICAvLyAgICAgfSBlbHNlIGlmICh0aGlzLmhhc19saXN0W3YuYmlkXSkge1xuICAgICAgICAvLyAgICAgICAgIGxpc3QucHVzaCh7IGJpZDogdi5iaWQsIGZhY2VfaWQ6IHYuYmlkLCB1c2U6IDAsIHN0YXR1czogMSwgc29ydDogMTAwMDAwIC0gdi5iaWQgfSk7XG4gICAgICAgIC8vICAgICB9IGVsc2Uge1xuICAgICAgICAvLyAgICAgICAgIGxpc3QucHVzaCh7IGJpZDogdi5iaWQsIGZhY2VfaWQ6IHYuYmlkLCB1c2U6IDAsIHN0YXR1czogMCwgc29ydDogLXYuYmlkIH0pO1xuICAgICAgICAvLyAgICAgfVxuICAgICAgICAvLyB9XG4gICAgICAgIGlmICh0aGlzLmxpc3QgPT0gbnVsbCkge1xuICAgICAgICAgICAgdGhpcy5saXN0ID0gW107XG4gICAgICAgICAgICBmb3IgKGxldCBrIGluIENvbmZpZy5sb29rc19kYXRhLmRhdGFfaGVhZF9kYXRhKSB7XG4gICAgICAgICAgICAgICAgbGV0IHYgPSBDb25maWcubG9va3NfZGF0YS5kYXRhX2hlYWRfZGF0YVtrXTtcbiAgICAgICAgICAgICAgICBsZXQgZGF0YSA9IHt9O1xuICAgICAgICAgICAgICAgIGRhdGEudGlwcyA9IHYudGlwcztcbiAgICAgICAgICAgICAgICBkYXRhLmJpZCA9IHYuaWQ7XG4gICAgICAgICAgICAgICAgZGF0YS5mYWNlX2lkID0gdi5pZDtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5oYXNfbGlzdCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5oYXNfbGlzdFt2LmlkXSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS5zdGF0dXMgPSAxOyAgICAvL+aLpeaciVxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS5zdGF0dXMgPSAwOyAgICAvL+acquaLpeaciVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgZGF0YS5zdGF0dXMgPSAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAodGhpcy5yb2xlVm8uZmFjZV9pZCA9PSB2LmlkKSB7XG4gICAgICAgICAgICAgICAgICAgIGRhdGEudXNlID0gMTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBkYXRhLnVzZSA9IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMubGlzdC5wdXNoKGRhdGEpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZm9yIChsZXQgaSBpbiB0aGlzLmxpc3QpIHtcbiAgICAgICAgICAgICAgICBsZXQgZGF0YSA9IHRoaXMubGlzdFtpXTtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5yb2xlVm8uZmFjZV9pZCA9PSBkYXRhLmJpZCkge1xuICAgICAgICAgICAgICAgICAgICBkYXRhLnVzZSA9IDE7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgZGF0YS51c2UgPSAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIHRoaXMubGlzdC5zb3J0KFV0aWxzLnRhYmxlTG93ZXJTb3J0ZXIoW1widXNlXCIsIFwic3RhdHVzXCIsXCJiaWRcIl0pKTtcbiAgICAgICAgLy8gdGhpcy5saXN0LnNvcnQoVXRpbHMudGFibGVVcHBlclNvcnRlcihbXCJ1c2VcIiwgXCJzdGF0dXNcIl0pKTtcbiAgICAgICAgdGhpcy5saXN0LnNvcnQoVXRpbHMudGFibGVDb21tb25Tb3J0ZXIoW1tcInVzZVwiLHRydWVdLFtcInN0YXR1c1wiLHRydWVdLFtcImJpZFwiLGZhbHNlXV0pKTtcbiAgICAgICAgXG5cbiAgICAgICAgaWYgKHRoaXMuc2VsZWN0X2JpZCA9PSAwKVxuICAgICAgICAgICAgdGhpcy5zZWxlY3RfYmlkID0gdGhpcy5yb2xlVm8uZmFjZV9pZDtcblxuICAgICAgICB0aGlzLml0ZW1fc2Nyb2xsdmlldy5zZXREYXRhKHRoaXMubGlzdCwgKGZ1bmN0aW9uIChjZWxsKSB7XG4gICAgICAgICAgICBpZiAoY2VsbC5kYXRhLnN0YXR1cyA9PSAwKSB7XG4gICAgICAgICAgICAgICAgLy8gdmFyIGNvbmZpZyA9IENvbmZpZy5wYXJ0bmVyX2RhdGEuZGF0YV9wYXJ0bmVyX2Jhc2VbY2VsbC5kYXRhLmJpZF07XG4gICAgICAgICAgICAgICAgLy8gbWVzc2FnZShjYy5qcy5mb3JtYXRTdHIoVXRpbHMuVEkxOE4oXCLmv4DmtLslc+WPr+ino+mUgVwiKSwgY29uZmlnLm5hbWUpKTtcbiAgICAgICAgICAgICAgICBtZXNzYWdlKFV0aWxzLlRJMThOKGNlbGwuZGF0YS50aXBzKSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0X2JpZCA9IGNlbGwuZGF0YS5iaWQ7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuc2VsZWN0X2l0ZW0pIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RfaXRlbS5zZXRTZWxlY3RlZChmYWxzZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0X2l0ZW0gPSBjZWxsO1xuICAgICAgICAgICAgICAgIHRoaXMuc2V0U2VsZWN0ZWQoY2VsbCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pLmJpbmQodGhpcyksIHsgcmVzT2JqZWN0OiB0aGlzLmZhY2VfcmVzX29iamVjdCwgc2VsZWN0X2Z1bmM6IHRoaXMuc2V0U2VsZWN0ZWQuYmluZCh0aGlzKSB9KTtcbiAgICAgICAgdGhpcy5pdGVtX3Njcm9sbHZpZXcuYWRkRW5kQ2FsbEJhY2soZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgY2MubG9nKHRoaXMuaXRlbV9zY3JvbGx2aWV3KVxuICAgICAgICB9LmJpbmQodGhpcykpXG4gICAgfSxcblxuICAgIHNldFNlbGVjdGVkOiBmdW5jdGlvbiAoaXRlbSkge1xuICAgICAgICBpZiAoaXRlbSkge1xuICAgICAgICAgICAgaXRlbS5zZXRTZWxlY3RlZCh0aGlzLnNlbGVjdF9iaWQgPT0gaXRlbS5kYXRhLmJpZClcbiAgICAgICAgICAgIGlmICh0aGlzLnNlbGVjdF9pdGVtID09IG51bGwpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdF9pdGVtID0gaXRlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0sXG5cbiAgICBvbkhpZGU6IGZ1bmN0aW9uICgpIHtcblxuICAgIH0sXG5cbiAgICBvbkRlbGV0ZTogZnVuY3Rpb24gKCkge1xuICAgICAgICBpZiAodGhpcy5yb2xlX3VwZGF0ZV9ldnQpIHtcbiAgICAgICAgICAgIHRoaXMucm9sZVZvLnVuYmluZCh0aGlzLnJvbGVfdXBkYXRlX2V2dCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuaXRlbV9zY3JvbGx2aWV3KSB7XG4gICAgICAgICAgICB0aGlzLml0ZW1fc2Nyb2xsdmlldy5EZWxldGVNZSgpXG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5pdGVtX3Njcm9sbHZpZXcgPSBudWxsXG4gICAgfVxufSk7XG5cbm1vZHVsZS5leHBvcnRzID0gUm9sZUhlYWRQYW5lbDsiXX0=
|