|
(function() {
|
var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined';
|
var __module = nodeEnv ? module : {exports:{}};
|
var __filename = 'preview-scripts/assets/Scripts/mod/stronger/stronger_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, '1d70awzjyFOELEx5kpJ0r1p', 'stronger_controller');
|
// Scripts/mod/stronger/stronger_controller.js
|
|
"use strict";
|
|
// --------------------------------------------------------------------
|
// @author: xxx@syg.com(必填, 创建模块的人员)
|
// @description:
|
// 这里填写详细说明,主要填写该模块的功能简要
|
// <br/>Create: 2019-03-29 11:43:16
|
// --------------------------------------------------------------------
|
var JumpController = require("jump_controller");
|
|
var StrongerEvent = require("stronger_event");
|
|
var StrongerController = cc.Class({
|
"extends": BaseController,
|
ctor: function ctor() {},
|
// 初始化配置数据
|
initConfig: function initConfig() {
|
var StrongerModel = require("stronger_model");
|
|
this.model = new StrongerModel();
|
this.model.initConfig();
|
this.is_first = true;
|
},
|
// 返回当前的model
|
getModel: function getModel() {
|
return this.model;
|
},
|
// 注册监听事件
|
registerEvents: function registerEvents() {},
|
// 注册协议接受事件
|
registerProtocals: function registerProtocals() {
|
this.RegisterProtocal(11070, this.on11070.bind(this)); // -- 全服最强数据
|
},
|
on11070: function on11070(data) {
|
this.model.setDataByBid(data);
|
gcore.GlobalEvent.fire(StrongerEvent.UPDATE_SCROE, data);
|
},
|
//--打开我要变强主界面
|
openMainWin: function openMainWin(status, index, partner_id) {
|
var self = this;
|
|
if (status) {
|
if (!self.main_win) {
|
var StrongerMainWindow = require("strong_main_window");
|
|
self.main_win = new StrongerMainWindow(partner_id);
|
}
|
|
self.main_win.open(index);
|
} else {
|
if (self.main_win) {
|
self.main_win.close();
|
self.main_win = null;
|
}
|
}
|
},
|
setIsFirst: function setIsFirst(bool) {
|
this.is_first = bool;
|
},
|
sender11070: function sender11070(partner_bid) {
|
var protocal = {};
|
protocal.partner_bid = partner_bid;
|
this.SendProtocal(11070, protocal);
|
},
|
getStrongerRoot: function getStrongerRoot() {
|
if (this.main_win) return this.main_win.root_wnd;
|
},
|
clickCallBack: function clickCallBack(evt_type) {
|
if (evt_type) {
|
if (evt_type == 200) {
|
//英雄背包
|
JumpController.getInstance().jumpViewByEvtData([19]);
|
} else if (evt_type == 201) {
|
//神器升级
|
JumpController.getInstance().jumpViewByEvtData([20]);
|
} else if (evt_type == 202) {
|
//联盟技能界面
|
JumpController.getInstance().jumpViewByEvtData([32]);
|
} else if (evt_type == 203) {
|
//玩家英雄信息界面
|
if (this.main_win && this.main_win.view_list[1]) {
|
var cur_hero_item = this.main_win.view_list[1].getCurHero();
|
|
if (cur_hero_item) {
|
var hero_vo = cur_hero_item.getData();
|
|
var HeroController = require("hero_controller");
|
|
var HeroConst = require("hero_const");
|
|
var all_role_list = HeroController.getInstance().getModel().getAllHeroArray();
|
HeroController.getInstance().openHeroMainInfoWindow(true, hero_vo, all_role_list, {
|
show_model_type: HeroConst.BagTab.eBagHero
|
});
|
}
|
}
|
} else if (evt_type == 204) {
|
//先知殿
|
JumpController.getInstance().jumpViewByEvtData([24]);
|
} else if (evt_type == 100) {
|
//布阵阵法
|
JumpController.getInstance().jumpViewByEvtData([30]);
|
} else if (evt_type == 120) {
|
//召唤
|
JumpController.getInstance().jumpViewByEvtData([1]);
|
} else if (evt_type == 121) {
|
//背包 碎片
|
var BackPackConst = require("backpack_const");
|
|
JumpController.getInstance().jumpViewByEvtData([8, BackPackConst.item_tab_type.HERO]);
|
} else if (evt_type == 122) {
|
//英雄商城
|
var MallConst = require("mall_const");
|
|
JumpController.getInstance().jumpViewByEvtData([15, MallConst.MallType.Recovery]);
|
} else if (evt_type == 123 || evt_type == 162) {
|
//金币兑换
|
JumpController.getInstance().jumpViewByEvtData([35]);
|
} else if (evt_type == 125) {//金币出售
|
} else if (evt_type == 126) {
|
//远航
|
JumpController.getInstance().jumpViewByEvtData([18]);
|
} else if (evt_type == 128) {//银币摆摊
|
} else if (evt_type == 129) {
|
JumpController.getInstance().jumpViewByEvtData([41]);
|
} else if (evt_type == 130) {
|
//成就
|
var TaskConst = require("task_const");
|
|
JumpController.getInstance().jumpViewByEvtData([41, TaskConst.type.feat]);
|
} else if (evt_type == 131) {
|
//充值
|
JumpController.getInstance().jumpViewByEvtData([7]);
|
} else if (evt_type == 132) {
|
//快速作战
|
JumpController.getInstance().jumpViewByEvtData([11]);
|
} else if (evt_type == 134) {
|
//杂货店
|
JumpController.getInstance().jumpViewByEvtData([6]);
|
} else if (evt_type == 135) {//金币市场 突破
|
} else if (evt_type == 138) {
|
//钻石商城
|
var MallConst = require("mall_const");
|
|
JumpController.getInstance().jumpViewByEvtData([15, MallConst.MallType.GodShop]);
|
} else if (evt_type == 144) {
|
//道具背包
|
var BackPackConst = require("backpack_const");
|
|
JumpController.getInstance().jumpViewByEvtData([8, BackPackConst.item_tab_type.PROPS]);
|
} else if (evt_type == 145) {
|
//联盟捐献
|
var RoleController = require("role_controller");
|
|
var role_vo = RoleController.getInstance().getRoleVo();
|
|
if (role_vo.isHasGuild()) {
|
JumpController.getInstance().jumpViewByEvtData([13]);
|
} else {
|
var MainuiController = require("mainui_controller");
|
|
var MainUiConst = require("mainui_const");
|
|
MainuiController.getInstance().changeMainUIStatus(MainUiConst.btn_index.guild);
|
}
|
} else if (evt_type == 146) {
|
//公会副本
|
var RoleController = require("role_controller");
|
|
var role_vo = RoleController.getInstance().getRoleVo();
|
|
if (role_vo.isHasGuild()) {
|
JumpController.getInstance().jumpViewByEvtData([31]);
|
} else {
|
var MainuiController = require("mainui_controller");
|
|
var MainUiConst = require("mainui_const");
|
|
MainuiController.getInstance().changeMainUIStatus(MainUiConst.btn_index.guild);
|
}
|
} else if (evt_type == 150) {
|
//星河神殿
|
JumpController.getInstance().jumpViewByEvtData([27]);
|
} else if (evt_type == 151) {
|
//英雄远征
|
JumpController.getInstance().jumpViewByEvtData([25]);
|
} else if (evt_type == 152) {
|
//日常副本
|
JumpController.getInstance().jumpViewByEvtData([17]);
|
} else if (evt_type == 153) {
|
//无尽试炼
|
var open_data = Config.dailyplay_data.data_exerciseactivity[2];
|
|
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;
|
}
|
|
var Endless_trailController = require("endless_trail_controller");
|
|
var is_open = Endless_trailController.getInstance().checkIsOpen();
|
|
if (is_open) {
|
JumpController.getInstance().jumpViewByEvtData([43]);
|
}
|
} else if (evt_type == 154) {
|
//锻造屋
|
JumpController.getInstance().jumpViewByEvtData([26]);
|
} else if (evt_type == 155) {
|
//融合祭坛
|
JumpController.getInstance().jumpViewByEvtData([23]);
|
} else if (evt_type == 156) {
|
//祭祀小屋
|
JumpController.getInstance().jumpViewByEvtData([22]);
|
} else if (evt_type == 157) {
|
//剧情副本
|
JumpController.getInstance().jumpViewByEvtData([5]);
|
} else if (evt_type == 158) {
|
//竞技场
|
JumpController.getInstance().jumpViewByEvtData([3]);
|
} else if (evt_type == 159) {
|
//冠军赛
|
JumpController.getInstance().jumpViewByEvtData([36]);
|
} else if (evt_type == 160) {
|
//试练塔
|
JumpController.getInstance().jumpViewByEvtData([12]);
|
} else if (evt_type == 402) {
|
//好友
|
JumpController.getInstance().jumpViewByEvtData([4]);
|
} else if (evt_type == 404) {
|
//英雄界面
|
JumpController.getInstance().jumpViewByEvtData([19]);
|
} else if (evt_type == 405) {
|
//幸运探宝
|
JumpController.getInstance().jumpViewByEvtData([40]);
|
} else if (evt_type == 406) {
|
//探宝商店
|
var MallConst = require("mall_const");
|
|
JumpController.getInstance().jumpViewByEvtData([15, MallConst.MallType.GuessShop]);
|
} else if (evt_type == 407) {
|
//冒险
|
JumpController.getInstance().jumpViewByEvtData([34]);
|
} else if (evt_type == 408 || evt_type == 161) {
|
//锻造坊的符文
|
var ForgeHouseConst = require("forgehouse_const");
|
|
JumpController.getInstance().jumpViewByEvtData([26, ForgeHouseConst.Tab_Index.Artifact]);
|
} else if (evt_type == 409) {
|
JumpController.getInstance().jumpViewByEvtData([20]);
|
} else if (evt_type == 410) {
|
//精英段位赛商店
|
var MallConst = require("mall_const");
|
|
JumpController.getInstance().jumpViewByEvtData([15, MallConst.MallType.EliteShop]);
|
} else if (evt_type == 411) {
|
var ActionConst = require("action_const");
|
|
JumpController.getInstance().jumpViewByEvtData([45, ActionConst.ActionRankCommonType.time_summon]);
|
} else if (evt_type == 412) {
|
//打开录像馆
|
require("vedio_controller").getInstance().openVedioMainWindow(true);
|
} else if (evt_type == 413) {
|
//打开录像馆个人记录
|
require("vedio_controller").getInstance().openVedioMyselfWindow(true);
|
}
|
}
|
}
|
});
|
module.exports = StrongerController;
|
|
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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0c1xcbW9kXFxzdHJvbmdlclxcc3Ryb25nZXJfY29udHJvbGxlci5qcyJdLCJuYW1lcyI6WyJKdW1wQ29udHJvbGxlciIsInJlcXVpcmUiLCJTdHJvbmdlckV2ZW50IiwiU3Ryb25nZXJDb250cm9sbGVyIiwiY2MiLCJDbGFzcyIsIkJhc2VDb250cm9sbGVyIiwiY3RvciIsImluaXRDb25maWciLCJTdHJvbmdlck1vZGVsIiwibW9kZWwiLCJpc19maXJzdCIsImdldE1vZGVsIiwicmVnaXN0ZXJFdmVudHMiLCJyZWdpc3RlclByb3RvY2FscyIsIlJlZ2lzdGVyUHJvdG9jYWwiLCJvbjExMDcwIiwiYmluZCIsImRhdGEiLCJzZXREYXRhQnlCaWQiLCJnY29yZSIsIkdsb2JhbEV2ZW50IiwiZmlyZSIsIlVQREFURV9TQ1JPRSIsIm9wZW5NYWluV2luIiwic3RhdHVzIiwiaW5kZXgiLCJwYXJ0bmVyX2lkIiwic2VsZiIsIm1haW5fd2luIiwiU3Ryb25nZXJNYWluV2luZG93Iiwib3BlbiIsImNsb3NlIiwic2V0SXNGaXJzdCIsImJvb2wiLCJzZW5kZXIxMTA3MCIsInBhcnRuZXJfYmlkIiwicHJvdG9jYWwiLCJTZW5kUHJvdG9jYWwiLCJnZXRTdHJvbmdlclJvb3QiLCJyb290X3duZCIsImNsaWNrQ2FsbEJhY2siLCJldnRfdHlwZSIsImdldEluc3RhbmNlIiwianVtcFZpZXdCeUV2dERhdGEiLCJ2aWV3X2xpc3QiLCJjdXJfaGVyb19pdGVtIiwiZ2V0Q3VySGVybyIsImhlcm9fdm8iLCJnZXREYXRhIiwiSGVyb0NvbnRyb2xsZXIiLCJIZXJvQ29uc3QiLCJhbGxfcm9sZV9saXN0IiwiZ2V0QWxsSGVyb0FycmF5Iiwib3Blbkhlcm9NYWluSW5mb1dpbmRvdyIsInNob3dfbW9kZWxfdHlwZSIsIkJhZ1RhYiIsImVCYWdIZXJvIiwiQmFja1BhY2tDb25zdCIsIml0ZW1fdGFiX3R5cGUiLCJIRVJPIiwiTWFsbENvbnN0IiwiTWFsbFR5cGUiLCJSZWNvdmVyeSIsIlRhc2tDb25zdCIsInR5cGUiLCJmZWF0IiwiR29kU2hvcCIsIlBST1BTIiwiUm9sZUNvbnRyb2xsZXIiLCJyb2xlX3ZvIiwiZ2V0Um9sZVZvIiwiaXNIYXNHdWlsZCIsIk1haW51aUNvbnRyb2xsZXIiLCJNYWluVWlDb25zdCIsImNoYW5nZU1haW5VSVN0YXR1cyIsImJ0bl9pbmRleCIsImd1aWxkIiwib3Blbl9kYXRhIiwiQ29uZmlnIiwiZGFpbHlwbGF5X2RhdGEiLCJkYXRhX2V4ZXJjaXNlYWN0aXZpdHkiLCJtZXNzYWdlIiwiVXRpbHMiLCJUSTE4TiIsImNoZWNrSXNPcGVuQnlBY3RpdmF0ZSIsImFjdGl2YXRlIiwibG9ja19kZXNjIiwiRW5kbGVzc190cmFpbENvbnRyb2xsZXIiLCJpc19vcGVuIiwiY2hlY2tJc09wZW4iLCJHdWVzc1Nob3AiLCJGb3JnZUhvdXNlQ29uc3QiLCJUYWJfSW5kZXgiLCJBcnRpZmFjdCIsIkVsaXRlU2hvcCIsIkFjdGlvbkNvbnN0IiwiQWN0aW9uUmFua0NvbW1vblR5cGUiLCJ0aW1lX3N1bW1vbiIsIm9wZW5WZWRpb01haW5XaW5kb3ciLCJvcGVuVmVkaW9NeXNlbGZXaW5kb3ciLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUlBLGNBQWMsR0FBR0MsT0FBTyxDQUFDLGlCQUFELENBQTVCOztBQUNBLElBQUlDLGFBQWEsR0FBR0QsT0FBTyxDQUFDLGdCQUFELENBQTNCOztBQUNBLElBQUlFLGtCQUFrQixHQUFHQyxFQUFFLENBQUNDLEtBQUgsQ0FBUztBQUM5QixhQUFTQyxjQURxQjtBQUU5QkMsRUFBQUEsSUFBSSxFQUFFLGdCQUFZLENBQ2pCLENBSDZCO0FBSzlCO0FBQ0FDLEVBQUFBLFVBQVUsRUFBRSxzQkFBWTtBQUNwQixRQUFJQyxhQUFhLEdBQUdSLE9BQU8sQ0FBQyxnQkFBRCxDQUEzQjs7QUFFQSxTQUFLUyxLQUFMLEdB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SUFBR3BELFFBQVEsSUFBSSxHQUFmLEVBQW1CO0FBQ3JCMUMsUUFBQUEsY0FBYyxDQUFDMkMsV0FBZixHQUE2QkMsaUJBQTdCLENBQStDLENBQUMsRUFBRCxDQUEvQztBQUNILE9BRkssTUFFQSxJQUFHRixRQUFRLElBQUksR0FBZixFQUFtQjtBQUFDO0FBQ3RCLFlBQUltQixTQUFTLEdBQVE1RCxPQUFPLENBQUMsWUFBRCxDQUE1Qjs7QUFDQUQsUUFBQUEsY0FBYyxDQUFDMkMsV0FBZixHQUE2QkMsaUJBQTdCLENBQStDLENBQUMsRUFBRCxFQUFJaUIsU0FBUyxDQUFDQyxRQUFWLENBQW1CaUMsU0FBdkIsQ0FBL0M7QUFDSCxPQUhLLE1BR0EsSUFBR3JELFFBQVEsSUFBSSxHQUFmLEVBQW1CO0FBQ3JCLFlBQUlzRCxXQUFXLEdBQUcvRixPQUFPLENBQUMsY0FBRCxDQUF6Qjs7QUFDQUQsUUFBQUEsY0FBYyxDQUFDMkMsV0FBZixHQUE2QkMsaUJBQTdCLENBQStDLENBQUMsRUFBRCxFQUFJb0QsV0FBVyxDQUFDQyxvQkFBWixDQUFpQ0MsV0FBckMsQ0FBL0M7QUFDSCxPQUhLLE1BR0EsSUFBR3hELFFBQVEsSUFBSSxHQUFmLEVBQW1CO0FBQUM7QUFDdEJ6QyxRQUFBQSxPQUFPLENBQUMsa0JBQUQsQ0FBUCxDQUE0QjBDLFdBQTVCLEdBQTBDd0QsbUJBQTFDLENBQThELElBQTlEO0FBQ0gsT0FGSyxNQUVBLElBQUd6RCxRQUFRLElBQUksR0FBZixFQUFtQjtBQUFDO0FBQ3RCekMsUUFBQUEsT0FBTyxDQUFDLGtCQUFELENBQVAsQ0FBNEIwQyxXQUE1QixHQUEwQ3lELHFCQUExQyxDQUFnRSxJQUFoRTtBQUNIO0FBQ0o7QUFFSjtBQTlNNkIsQ0FBVCxDQUF6QjtBQWlOQUMsTUFBTSxDQUFDQyxPQUFQLEdBQWlCbkcsa0JBQWpCIiwic291cmNlUm9vdCI6Ii8iLCJzb3VyY2VzQ29udGVudCI6WyIvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gQGF1dGhvcjogeHh4QHN5Zy5jb20o5b+F5aGrLCDliJvlu7rmqKHlnZfnmoTkurrlkZgpXG4vLyBAZGVzY3JpcHRpb246XG4vLyAgICAgIOi/memHjOWhq+WGmeivpue7huivtOaYjizkuLvopoHloavlhpnor6XmqKHlnZfnmoTlip/og73nroDopoFcbi8vIDxici8+Q3JlYXRlOiAyMDE5LTAzLTI5IDExOjQzOjE2XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxudmFyIEp1bXBDb250cm9sbGVyID0gcmVxdWlyZShcImp1bXBfY29udHJvbGxlclwiKTtcbnZhciBTdHJvbmdlckV2ZW50ID0gcmVxdWlyZShcInN0cm9uZ2VyX2V2ZW50XCIpXG52YXIgU3Ryb25nZXJDb250cm9sbGVyID0gY2MuQ2xhc3Moe1xuICAgIGV4dGVuZHM6IEJhc2VDb250cm9sbGVyLFxuICAgIGN0b3I6IGZ1bmN0aW9uICgpIHtcbiAgICB9LFxuXG4gICAgLy8g5Yid5aeL5YyW6YWN572u5pWw5o2uXG4gICAgaW5pdENvbmZpZzogZnVuY3Rpb24gKCkge1xuICAgICAgICB2YXIgU3Ryb25nZXJNb2RlbCA9IHJlcXVpcmUoXCJzdHJvbmdlcl9tb2RlbFwiKTtcblxuICAgICAgICB0aGlzLm1vZGVsID0gbmV3IFN0cm9uZ2VyTW9kZWwoKTtcbiAgICAgICAgdGhpcy5tb2RlbC5pbml0Q29uZmlnKCk7XG4gICAgICAgIHRoaXMuaXNfZmlyc3QgPSB0cnVlXG4gICAgfSwgIFxuXG4gICAgLy8g6L+U5Zue5b2T5YmN55qEbW9kZWxcbiAgICBnZXRNb2RlbDogZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5tb2RlbDtcbiAgICB9LFxuXG4gICAgLy8g5rOo5YaM55uR5ZCs5LqL5Lu2XG4gICAgcmVnaXN0ZXJFdmVudHM6IGZ1bmN0aW9uICgpIHtcblxuICAgIH0sXG5cbiAgICAvLyDms6jlhozljY/orq7mjqXlj5fkuovku7ZcbiAgICByZWdpc3RlclByb3RvY2FsczogZnVuY3Rpb24gKCkge1xuICAgICAgICB0aGlzLlJlZ2lzdGVyUHJvdG9jYWwoMTEwNzAsdGhpcy5vbjExMDcwLmJpbmQodGhpcykpICAvLyAtLSDlhajmnI3mnIDlvLrmlbDmja5cbiAgICB9LFxuICAgIG9uMTEwNzAoIGRhdGEgKXtcbiAgICAgICAgdGhpcy5tb2RlbC5zZXREYXRhQnlCaWQoZGF0YSlcbiAgICAgICAgZ2NvcmUuR2xvYmFsRXZlbnQuZmlyZShTdHJvbmdlckV2ZW50LlVQREFURV9TQ1JPRSxkYXRhKVxuICAgIH0sXG4gICAgLy8tLeaJk+W8gOaIkeimgeWPmOW8uuS4u+eVjOmdolxuICAgIG9wZW5NYWluV2luKHN0YXR1cyxpbmRleCxwYXJ0bmVyX2lkKXtcbiAgICAgICAgdmFyIHNlbGYgPSB0aGlzXG4gICAgICAgIGlmIChzdGF0dXMpIHsgXG4gICAgICAgICAgICBpZiAoIXNlbGYubWFpbl93aW4pIHtcbiAgICAgICAgICAgICAgICB2YXIgU3Ryb25nZXJNYWluV2luZG93ID0gcmVxdWlyZShcInN0cm9uZ19tYWluX3dpbmRvd1wiKVxuICAgICAgICAgICAgICAgIHNlbGYubWFpbl93aW4gPSBuZXcgU3Ryb25nZXJNYWluV2luZG93KHBhcnRuZXJfaWQpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBzZWxmLm1haW5fd2luLm9wZW4oaW5kZXgpXG4gICAgICAgIH1lbHNle1xuICAgICAgICAgICAgaWYgKHNlbGYubWFpbl93aW4peyBcbiAgICAgICAgICAgICAgICBzZWxmLm1haW5fd2luLmNsb3NlKClcbiAgICAgICAgICAgICAgICBzZWxmLm1haW5fd2luID0gbnVsbFxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSxcbiAgICBzZXRJc0ZpcnN0KCBib29sICl7XG4gICAgICAgIHRoaXMuaXNfZmlyc3QgPSBib29sXG4gICAgfSxcbiAgICBzZW5kZXIxMTA3MChwYXJ0bmVyX2JpZCl7XG4gICAgICAgIGxldCBwcm90b2NhbCA9IHt9XG4gICAgICAgIHByb3RvY2FsLnBhcnRuZXJfYmlkID0gcGFydG5lcl9iaWRcbiAgICAgICAgdGhpcy5TZW5kUHJvdG9jYWwoMTEwNzAsIHByb3RvY2FsKVxuICAgIH0sXG5cbiAgICBnZXRTdHJvbmdlclJvb3Q6IGZ1bmN0aW9uKCkge1xuICAgICAgICBpZiAodGhpcy5tYWluX3dpbilcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm1haW5fd2luLnJvb3Rfd25kO1xuICAgIH0sXG4gICAgXG4gICAgY2xpY2tDYWxsQmFjayhldnRfdHlwZSl7XG4gICAgICAgIGlmKGV2dF90eXBlKXtcbiAgICAgICAgICAgIGlmKGV2dF90eXBlID09IDIwMCl7Ly/oi7Hpm4Tog4zljIVcbiAgICAgICAgICAgICAgICBKdW1wQ29udHJvbGxlci5nZXRJbnN0YW5jZSgpLmp1bXBWaWV3QnlFdnREYXRhKFsxOV0pO1xuICAgICAgICAgICAgfWVsc2UgaWYoZXZ0X3R5cGUgPT0gMjAxKXsvL+elnuWZqOWNh+e6p1xuICAgICAgICAgICAgICAgIEp1bXBDb250cm9sbGVyLmdldEluc3RhbmNlKCkuanVtcFZpZXdCeUV2dERhdGEoWzIwXSk7XG4gICAgICAgICAgICB9ZWxzZSBpZihldnRfdHlwZSA9PSAyMDIpey8v6IGU55uf5oqA6IO955WM6Z2iXG4gICAgICAgICAgICAgICAgSnVtcENvbnRyb2xsZXIuZ2V0SW5zdGFuY2UoKS5qdW1wVmlld0J5RXZ0RGF0YShbMzJdKTtcbiAgICAgICAgICAgIH1lbHNlIGlmKGV2dF90eXBlID09IDIwMyl7Ly/njqnlrrboi7Hpm4Tkv6Hmga/nlYzpnaJcbiAgICAgICAgICAgICAgICBpZih0aGlzLm1haW5fd2luICYmIHRoaXMubWFpbl93aW4udmlld19saXN0WzFdKXtcbiAgICAgICAgICAgICAgICAgICAgdmFyIGN1cl9oZXJvX2l0ZW0gPSB0aGlzLm1haW5fd2luLnZpZXdfbGlzdFsxXS5nZXRDdXJIZXJvKCk7XG4gICAgICAgICAgICAgICAgICAgIGlmKGN1cl9oZXJvX2l0ZW0pe1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGhlcm9fdm8gPSBjdXJfaGVyb19pdGVtLmdldERhdGEoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBIZXJvQ29udHJvbGxlciA9IHJlcXVpcmUoXCJoZXJvX2NvbnRyb2xsZXJcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgSGVyb0NvbnN0ICAgICAgPSByZXF1aXJlKFwiaGVyb19jb25zdFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBhbGxfcm9sZV9saXN0ID0gSGVyb0NvbnRyb2xsZXIuZ2V0SW5zdGFuY2UoKS5nZXRNb2RlbCgpLmdldEFsbEhlcm9BcnJheSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgSGVyb0NvbnRyb2xsZXIuZ2V0SW5zdGFuY2UoKS5vcGVuSGVyb01haW5JbmZvV2luZG93KHRydWUsIGhlcm9fdm8sIGFsbF9yb2xlX2xpc3QsIHtzaG93X21vZGVsX3R5cGU6IEhlcm9Db25zdC5CYWdUYWIuZUJhZ0hlcm99KVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfWVsc2UgaWYoZXZ0X3R5cGUgPT0gMjA0KXsvL+WFiOefpeauv1xuICAgICAgICAgICAgICAgIEp1bXBDb250cm9sbGVyLmdldEluc3RhbmNlKCkuanVtcFZpZXdCeUV2dERhdGEoWzI0XSk7XG4gICAgICAgICAgICB9ZWxzZSBpZihldnRfdHlwZSA9PSAxMDApey8v5biD6Zi16Zi15rOVXG4gICAgICAgICAgICAgICAgSnVtcENvbnRyb2xsZXIuZ2V0SW5zdGFuY2UoKS5qdW1wVmlld0J5RXZ0RGF0YShbMzBdKTtcbiAgICAgICAgICAgIH1lbHNlIGlmKGV2dF90eXBlID09IDEyMCl7Ly/lj6zllKRcbiAgICAgICAgICAgICAgICBKdW1wQ29udHJvbGxlci5nZXRJbnN0YW5jZSgpLmp1bXBWaWV3QnlFdnREYXRhKFsxXSk7XG4gICAgICAgICAgICB9ZWxzZSBpZihldnRfdHlwZSA9PSAxMjEpey8v6IOM5YyFIOeijueJh1xuICAgICAgICAgICAgICAgIHZhciBCYWNrUGFja0NvbnN0ID0gcmVxdWlyZShcImJhY2twYWNrX2NvbnN0XCIpO1xuICAgICAgICAgICAgICAgIEp1bXBDb250cm9sbGVyLmdldEluc3RhbmNlKCkuanVtcFZpZXdCeUV2dERhdGEoWzgsIEJhY2tQYWNrQ29uc3QuaXRlbV90YWJfdHlwZS5IRVJPXSlcbiAgICAgICAgICAgIH1lbHNlIGlmKGV2dF90eXBlID09IDEyMil7Ly/oi7Hpm4TllYbln45cbiAgICAgICAgICAgICAgICB2YXIgTWFsbENvbnN0ICAgICAgPSByZXF1aXJlKFwibWFsbF9jb25zdFwiKTtcbiAgICAgICAgICAgICAgICBKdW1wQ29udHJvbGxlci5nZXRJbnN0YW5jZSgpLmp1bXBWaWV3QnlFdnREYXRhKFsxNSwgTWFsbENvbnN0Lk1hbGxUeXBlLlJlY292ZXJ5XSlcbiAgICAgICAgICAgIH1lbHNlIGlmKGV2dF90eXBlID09IDEyMyB8fCBldnRfdHlwZSA9PSAxNjIpey8v6YeR5biB5YWR5o2iXG4gICAgICAgICAgICAgICAgSnVtcENvbnRyb2xsZXIuZ2V0SW5zdGFuY2UoKS5qdW1wVmlld0J5RXZ0RGF0YShbMzVdKTtcbiAgICAgICAgICAgIH1lbHNlIGlmKGV2dF90eXBlID09IDEyNSl7Ly/ph5HluIHlh7rllK5cblxuICAgICAgICAgICAgfWVsc2UgaWYoZXZ0X3R5cGUgPT0gMTI2KXsvL+i/nOiIqlxuICAgICAgICAgICAgICAgIEp1bXBDb250cm9sbGVyLmdldEluc3RhbmNlKCkuanVtcFZpZXdCeUV2dERhdGEoWzE4XSk7XG4gICAgICAgICAgICB9ZWxzZSBpZihldnRfdHlwZSA9PSAxMjgpey8v6ZO25biB5pGG5pGKXG5cbiAgICAgICAgICAgIH1lbHNlIGlmKGV2dF90eXBlID09IDEyOSl7XG4gICAgICAgICAgICAgICAgSnVtcENvbnRyb2xsZXIuZ2V0SW5zdGFuY2UoKS5qdW1wVmlld0J5RXZ0RGF0YShbNDFdKTtcbiAgICAgICAgICAgIH1lbHNlIGlmKGV2dF90eXBlID09IDEzMCl7Ly/miJDlsLFcbiAgICAgICAgICAgICAgICB2YXIgVGFza0NvbnN0ID0gcmVxdWlyZShcInRhc2tfY29uc3RcIik7XG4gICAgICAgICAgICAgICAgSnVtcENvbnRyb2xsZXIuZ2V0SW5zdGFuY2UoKS5qdW1wVmlld0J5RXZ0RGF0YShbNDEsVGFza0NvbnN0LnR5cGUuZmVhdF0pO1xuICAgICAgICAgICAgfWVsc2UgaWYoZXZ0X3R5cGUgPT0gMTMxKXsvL+WFheWAvFxuICAgICAgICAgICAgICAgIEp1bXBDb250cm9sbGVyLmdldEluc3RhbmNlKCkuanVtcFZpZXdCeUV2dERhdGEoWzddKTtcbiAgICAgICAgICAgIH1lbHNlIGlmKGV2dF90eXBlID09IDEzMil7Ly/lv6vpgJ/kvZzmiJhcbiAgICAgICAgICAgICAgICBKdW1wQ29udHJvbGxlci5nZXRJbnN0YW5jZSgpLmp1bXBWaWV3QnlFdnREYXRhKFsxMV0pO1xuICAgICAgICAgICAgfWVsc2UgaWYoZXZ0X3R5cGUgPT0gMTM0KXsvL+adgui0p+W6l1xuICAgICAgICAgICAgICAgIEp1bXBDb250cm9sbGVyLmdldEluc3RhbmNlKCkuanVtcFZpZXdCeUV2dERhdGEoWzZdKTtcbiAgICAgICAgICAgIH1lbHNlIGlmKGV2dF90eXBlID09IDEzNSl7Ly/ph5HluIHluILlnLog56qB56C0XG5cbiAgICAgICAgICAgIH1lbHNlIGlmKGV2dF90eXBlID09IDEzOCl7Ly/pkrvnn7PllYbln45cbiAgICAgICAgICAgICAgICB2YXIgTWFsbENvbnN0ICAgICAgPSByZXF1aXJlKFwibWFsbF9jb25zdFwiKTtcbiAgICAgICAgICAgICAgICBKdW1wQ29udHJvbGxlci5nZXRJbnN0YW5jZSgpLmp1bXBWaWV3QnlFdnREYXRhKFsxNSxNYWxsQ29uc3QuTWFsbFR5cGUuR29kU2hvcF0pO1xuICAgICAgICAgICAgfWVsc2UgaWYoZXZ0X3R5cGUgPT0gMTQ0KXsvL+mBk+WFt+iDjOWMhVxuICAgICAgICAgICAgICAgIHZhciBCYWNrUGFja0NvbnN0ID0gcmVxdWlyZShcImJhY2twYWNrX2NvbnN0XCIpO1xuICAgICAgICAgICAgICAgIEp1bXBDb250cm9sbGVyLmdldEluc3RhbmNlKCkuanVtcFZpZXdCeUV2dERhdGEoWzgsQmFja1BhY2tDb25zdC5pdGVtX3RhYl90eXBlLlBST1BTXSk7XG4gICAgICAgICAgICB9ZWxzZSBpZihldnRfdHlwZSA9PSAxNDUpey8v6IGU55uf5o2Q54yuXG4gICAgICAgICAgICAgICAgdmFyIFJvbGVDb250cm9sbGVyID0gcmVxdWlyZShcInJvbGVfY29udHJvbGxlclwiKVxuICAgICAgICAgICAgICAgIHZhciByb2xlX3ZvID0gUm9sZUNvbnRyb2xsZXIuZ2V0SW5zdGFuY2UoKS5nZXRSb2xlVm8oKTtcbiAgICAgICAgICAgICAgICBpZihyb2xlX3ZvLmlzSGFzR3VpbGQoKSl7XG4gICAgICAgICAgICAgICAgICAgIEp1bXBDb250cm9sbGVyLmdldEluc3RhbmNlKCkuanVtcFZpZXdCeUV2dERhdGEoWzEzXSk7XG4gICAgICAgICAgICAgICAgfWVsc2V7XG4gICAgICAgICAgICAgICAgICAgIHZhciBNYWludWlDb250cm9sbGVyID0gcmVxdWlyZShcIm1haW51aV9jb250cm9sbGVyXCIpO1xuICAgICAgICAgICAgICAgICAgICB2YXIgTWFpblVpQ29uc3QgPSByZXF1aXJlKFwibWFpbnVpX2NvbnN0XCIpO1xuICAgICAgICAgICAgICAgICAgICBNYWludWlDb250cm9sbGVyLmdldEluc3RhbmNlKCkuY2hhbmdlTWFpblVJU3RhdHVzKE1haW5VaUNvbnN0LmJ0bl9pbmRleC5ndWlsZCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfWVsc2UgaWYoZXZ0X3R5cGUgPT0gMTQ2KXsvL+WFrOS8muWJr+acrFxuICAgICAgICAgICAgICAgIHZhciBSb2xlQ29udHJvbGxlciA9IHJlcXVpcmUoXCJyb2xlX2NvbnRyb2xsZXJcIilcbiAgICAgICAgICAgICAgICB2YXIgcm9sZV92byA9IFJvbGVDb250cm9sbGVyLmdldEluc3RhbmNlKCkuZ2V0Um9sZVZvKCk7XG4gICAgICAgICAgICAgICAgaWYocm9sZV92by5pc0hhc0d1aWxkKCkpe1xuICAgICAgICAgICAgICAgICAgICBKdW1wQ29udHJvbGxlci5nZXRJbnN0YW5jZSgpLmp1bXBWaWV3QnlFdnREYXRhKFszMV0pO1xuICAgICAgICAgICAgICAgIH1lbHNle1xuICAgICAgICAgICAgICAgICAgICB2YXIgTWFpbnVpQ29udHJvbGxlciA9IHJlcXVpcmUoXCJtYWludWlfY29udHJvbGxlclwiKTtcbiAgICAgICAgICAgICAgICAgICAgdmFyIE1haW5VaUNvbnN0ID0gcmVxdWlyZShcIm1haW51aV9jb25zdFwiKTtcbiAgICAgICAgICAgICAgICAgICAgTWFpbnVpQ29udHJvbGxlci5nZXRJbnN0YW5jZSgpLmNoYW5nZU1haW5VSVN0YXR1cyhNYWluVWlDb25zdC5idG5faW5kZXguZ3VpbGQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1lbHNlIGlmKGV2dF90eXBlID09IDE1MCl7Ly/mmJ/msrPnpZ7mrr9cbiAgICAgICAgICAgICAgICBKdW1wQ29udHJvbGxlci5nZXRJbnN0YW5jZSgpLmp1bXBWaWV3QnlFdnREYXRhKFsyN10pO1xuICAgICAgICAgICAgfWVsc2UgaWYoZXZ0X3R5cGUgPT0gMTUxKXsvL+iLsembhOi/nOW+gVxuICAgICAgICAgICAgICAgIEp1bXBDb250cm9sbGVyLmdldEluc3RhbmNlKCkuanVtcFZpZXdCeUV2dERhdGEoWzI1XSk7XG4gICAgICAgICAgICB9ZWxzZSBpZihldnRfdHlwZSA9PSAxNTIpey8v5pel5bi45Ymv5pysXG4gICAgICAgICAgICAgICAgSnVtcENvbnRyb2xsZXIuZ2V0SW5zdGFuY2UoKS5qdW1wVmlld0J5RXZ0RGF0YShbMTddKTtcbiAgICAgICAgICAgIH1lbHNlIGlmKGV2dF90eXBlID09IDE1Myl7Ly/ml6DlsL3or5XngrxcbiAgICAgICAgICAgICAgICB2YXIgb3Blbl9kYXRhID0gQ29uZmlnLmRhaWx5cGxheV9kYXRhLmRhdGFfZXhlcmNpc2VhY3Rpdml0eVsyXTtcbiAgICAgICAgICAgICAgICBpZihvcGVuX2RhdGEgPT0gbnVsbCl7XG4gICAgICAgICAgICAgICAgICAgIG1lc3NhZ2UoVXRpbHMuVEkxOE4oXCLml6DlsL3or5XngrzmlbDmja7lvILluLhcIikpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHZhciBNYWludWlDb250cm9sbGVyID0gcmVxdWlyZShcIm1haW51aV9jb250cm9sbGVyXCIpO1xuICAgICAgICAgICAgICAgIHZhciBib29sID0gTWFpbnVpQ29udHJvbGxlci5nZXRJbnN0YW5jZSgpLmNoZWNrSXNPcGVuQnlBY3RpdmF0ZShvcGVuX2RhdGEuYWN0aXZhdGUpO1xuICAgICAgICAgICAgICAgIGlmKGJvb2wgPT0gZmFsc2Upe1xuICAgICAgICAgICAgICAgICAgICBtZXNzYWdlKG9wZW5fZGF0YS5sb2NrX2Rlc2MpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHZhciBFbmRsZXNzX3RyYWlsQ29udHJvbGxlciA9IHJlcXVpcmUoXCJlbmRsZXNzX3RyYWlsX2NvbnRyb2xsZXJcIik7XG4gICAgICAgICAgICAgICAgdmFyIGlzX29wZW4gPSBFbmRsZXNzX3RyYWlsQ29udHJvbGxlci5nZXRJbnN0YW5jZSgpLmNoZWNrSXNPcGVuKCk7XG4gICAgICAgICAgICAgICAgaWYoaXNfb3Blbil7XG4gICAgICAgICAgICAgICAgICAgIEp1bXBDb250cm9sbGVyLmdldEluc3RhbmNlKCkuanVtcFZpZXdCeUV2dERhdGEoWzQzXSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfWVsc2UgaWYoZXZ0X3R5cGUgPT0gMTU0KXsvL+mUu+mAoOWxi1xuICAgICAgICAgICAgICAgIEp1bXBDb250cm9sbGVyLmdldEluc3RhbmNlKCkuanVtcFZpZXdCeUV2dERhdGEoWzI2XSk7XG4gICAgICAgICAgICB9ZWxzZSBpZihldnRfdHlwZSA9PSAxNTUpey8v6J6N5ZCI56Wt5Z2bXG4gICAgICAgICAgICAgICAgSnVtcENvbnRyb2xsZXIuZ2V0SW5zdGFuY2UoKS5qdW1wVmlld0J5RXZ0RGF0YShbMjNdKTtcbiAgICAgICAgICAgIH1lbHNlIGlmKGV2dF90eXBlID09IDE1Nil7Ly/npa3npYDlsI/lsYtcbiAgICAgICAgICAgICAgICBKdW1wQ29udHJvbGxlci5nZXRJbnN0YW5jZSgpLmp1bXBWaWV3QnlFdnREYXRhKFsyMl0pO1xuICAgICAgICAgICAgfWVsc2UgaWYoZXZ0X3R5cGUgPT0gMTU3KXsvL+WJp+aDheWJr+acrFxuICAgICAgICAgICAgICAgIEp1bXBDb250cm9sbGVyLmdldEluc3RhbmNlKCkuanVtcFZpZXdCeUV2dERhdGEoWzVdKTtcbiAgICAgICAgICAgIH1lbHNlIGlmKGV2dF90eXBlID09IDE1OCl7Ly/nq57mioDlnLpcbiAgICAgICAgICAgICAgICBKdW1wQ29udHJvbGxlci5nZXRJbnN0YW5jZSgpLmp1bXBWaWV3QnlFdnREYXRhKFszXSk7XG4gICAgICAgICAgICB9ZWxzZSBpZihldnRfdHlwZSA9PSAxNTkpey8v5Yag5Yab6LWbXG4gICAgICAgICAgICAgICAgSnVtcENvbnRyb2xsZXIuZ2V0SW5zdGFuY2UoKS5qdW1wVmlld0J5RXZ0RGF0YShbMzZdKTtcbiAgICAgICAgICAgIH1lbHNlIGlmKGV2dF90eXBlID09IDE2MCl7Ly/or5Xnu4PloZRcbiAgICAgICAgICAgICAgICBKdW1wQ29udHJvbGxlci5nZXRJbnN0YW5jZSgpLmp1bXBWaWV3QnlFdnREYXRhKFsxMl0pO1xuICAgICAgICAgICAgfWVsc2UgaWYoZXZ0X3R5cGUgPT0gNDAyKXsvL+WlveWPi1xuICAgICAgICAgICAgICAgIEp1bXBDb250cm9sbGVyLmdldEluc3RhbmNlKCkuanVtcFZpZXdCeUV2dERhdGEoWzRdKTtcbiAgICAgICAgICAgIH1lbHNlIGlmKGV2dF90eXBlID09IDQwNCl7Ly/oi7Hpm4TnlYzpnaJcbiAgICAgICAgICAgICAgICBKdW1wQ29udHJvbGxlci5nZXRJbnN0YW5jZSgpLmp1bXBWaWV3QnlFdnREYXRhKFsxOV0pO1xuICAgICAgICAgICAgfWVsc2UgaWYoZXZ0X3R5cGUgPT0gNDA1KXsvL+W5uOi/kOaOouWunVxuICAgICAgICAgICAgICAgIEp1bXBDb250cm9sbGVyLmdldEluc3RhbmNlKCkuanVtcFZpZXdCeUV2dERhdGEoWzQwXSk7XG4gICAgICAgICAgICB9ZWxzZSBpZihldnRfdHlwZSA9PSA0MDYpey8v5o6i5a6d5ZWG5bqXXG4gICAgICAgICAgICAgICAgdmFyIE1hbGxDb25zdCA9IHJlcXVpcmUoXCJtYWxsX2NvbnN0XCIpO1xuICAgICAgICAgICAgICAgIEp1bXBDb250cm9sbGVyLmdldEluc3RhbmNlKCkuanVtcFZpZXdCeUV2dERhdGEoWzE1LE1hbGxDb25zdC5NYWxsVHlwZS5HdWVzc1Nob3BdKTtcbiAgICAgICAgICAgIH1lbHNlIGlmKGV2dF90eXBlID09IDQwNyl7Ly/lhpLpmalcbiAgICAgICAgICAgICAgICBKdW1wQ29udHJvbGxlci5nZXRJbnN0YW5jZSgpLmp1bXBWaWV3QnlFdnREYXRhKFszNF0pO1xuICAgICAgICAgICAgfWVsc2UgaWYoZXZ0X3R5cGUgPT0gNDA4IHx8IGV2dF90eXBlID09IDE2MSl7Ly/plLvpgKDlnYrnmoTnrKbmlodcbiAgICAgICAgICAgICAgICB2YXIgRm9yZ2VIb3VzZUNvbnN0ID0gcmVxdWlyZShcImZvcmdlaG91c2VfY29uc3RcIik7XG4gICAgICAgICAgICAgICAgSnVtcENvbnRyb2xsZXIuZ2V0SW5zdGFuY2UoKS5qdW1wVmlld0J5RXZ0RGF0YShbMjYsRm9yZ2VIb3VzZUNvbnN0LlRhYl9JbmRleC5BcnRpZmFjdF0pO1xuICAgICAgICAgICAgfWVsc2UgaWYoZXZ0X3R5cGUgPT0gNDA5KXtcbiAgICAgICAgICAgICAgICBKdW1wQ29udHJvbGxlci5nZXRJbnN0YW5jZSgpLmp1bXBWaWV3QnlFdnREYXRhKFsyMF0pO1xuICAgICAgICAgICAgfWVsc2UgaWYoZXZ0X3R5cGUgPT0gNDEwKXsvL+eyvuiLseauteS9jei1m+WVhuW6l1xuICAgICAgICAgICAgICAgIHZhciBNYWxsQ29uc3QgICAgICA9IHJlcXVpcmUoXCJtYWxsX2NvbnN0XCIpO1xuICAgICAgICAgICAgICAgIEp1bXBDb250cm9sbGVyLmdldEluc3RhbmNlKCkuanVtcFZpZXdCeUV2dERhdGEoWzE1LE1hbGxDb25zdC5NYWxsVHlwZS5FbGl0ZVNob3BdKTtcbiAgICAgICAgICAgIH1lbHNlIGlmKGV2dF90eXBlID09IDQxMSl7XG4gICAgICAgICAgICAgICAgdmFyIEFjdGlvbkNvbnN0ID0gcmVxdWlyZShcImFjdGlvbl9jb25zdFwiKTtcbiAgICAgICAgICAgICAgICBKdW1wQ29udHJvbGxlci5nZXRJbnN0YW5jZSgpLmp1bXBWaWV3QnlFdnREYXRhKFs0NSxBY3Rpb25Db25zdC5BY3Rpb25SYW5rQ29tbW9uVHlwZS50aW1lX3N1bW1vbl0pO1xuICAgICAgICAgICAgfWVsc2UgaWYoZXZ0X3R5cGUgPT0gNDEyKXsvL+aJk+W8gOW9leWDj+mmhlxuICAgICAgICAgICAgICAgIHJlcXVpcmUoXCJ2ZWRpb19jb250cm9sbGVyXCIpLmdldEluc3RhbmNlKCkub3BlblZlZGlvTWFpbldpbmRvdyh0cnVlKTtcbiAgICAgICAgICAgIH1lbHNlIGlmKGV2dF90eXBlID09IDQxMyl7Ly/miZPlvIDlvZXlg4/ppobkuKrkurrorrDlvZVcbiAgICAgICAgICAgICAgICByZXF1aXJlKFwidmVkaW9fY29udHJvbGxlclwiKS5nZXRJbnN0YW5jZSgpLm9wZW5WZWRpb015c2VsZldpbmRvdyh0cnVlKVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIFxuICAgIH0sXG59KTtcblxubW9kdWxlLmV4cG9ydHMgPSBTdHJvbmdlckNvbnRyb2xsZXI7Il19
|