(function() { var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; var __module = nodeEnv ? module : {exports:{}}; var __filename = 'preview-scripts/assets/scripts/prefabs/BlockView.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, '9a370Mc7IdB2ruEK58rhBMd', 'BlockView'); // scripts/prefabs/BlockView.ts "use strict"; // Learn TypeScript: // - https://docs.cocos.com/creator/manual/en/scripting/typescript.html // Learn Attribute: // - https://docs.cocos.com/creator/manual/en/scripting/reference/attributes.html // Learn life-cycle callbacks: // - https://docs.cocos.com/creator/manual/en/scripting/life-cycle-callbacks.html var __extends = (this && this.__extends) || (function () { var extendStatics = function (d, b) { extendStatics = Object.setPrototypeOf || ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; return extendStatics(d, b); }; return function (d, b) { extendStatics(d, b); function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; })(); var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; return c > 3 && r && Object.defineProperty(target, key, r), r; }; Object.defineProperty(exports, "__esModule", { value: true }); var BattleConst_1 = require("../kernel/battle/BattleConst"); var BlcokSkillFireworkView_1 = require("./BlcokSkillFireworkView"); var BlockSkillBombView_1 = require("./BlockSkillBombView"); var BlockSkillSwitcherView_1 = require("./BlockSkillSwitcherView"); var ObjBaseView_1 = require("./ObjBaseView"); var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property; var BlockView = /** @class */ (function (_super) { __extends(BlockView, _super); function BlockView() { var _this = _super !== null && _super.apply(this, arguments) || this; _this._imgSkillIcon = null; _this._imgEffect = null; _this._txt = null; _this._light = null; _this._mapView = null; _this._txtOffset = new cc.Vec2(); _this._skillView = null; return _this; //#endregion } Object.defineProperty(BlockView.prototype, "owner", { get: function () { return this._owner; }, enumerable: false, configurable: true }); //#region interface BlockView.prototype.onHit = function () { _super.prototype.onHit.call(this); var ani = this._txt.getComponent(cc.Animation); ani && !ani.getAnimationState('fx_block_txt_hit').isPlaying && ani.play('fx_block_txt_hit', 0); if (this._light) { var lightAni = this._light.getComponent(cc.Animation); lightAni && !lightAni.getAnimationState('fx_block_light_hit').isPlaying && lightAni.play('fx_block_light_hit', 0) && (this._light.active = true); } this._skillView && this._skillView.onCollision(); }; BlockView.prototype.onDead = function () { this._mapView.playBlockParticle(this.node); this._skillView && this._skillView.onDead(); this._imgEffect.destroy(); this._imgSkillIcon.destroy(); this._txt.destroy(); this._light && this._light.destroy(); _super.prototype.onDead.call(this); }; //#endregion //#region life cycle BlockView.prototype.init = function (owner, mapView) { this._imgSkillIcon = this.node.getChildByName('imgIcon'); this._imgEffect = this.node.getChildByName('imgEffect'); this._imgEffect.active = false; this._txt = this.node.getChildByName('txt'); this._txtOffset.x = this._txt.x; this._txtOffset.y = this._txt.y; this._mapView = mapView; this._light = this.node.getChildByName('light'); this._light && (this._light.active = false); _super.prototype.init.call(this, owner, mapView); //分层显示 this._imgEffect.removeFromParent(); this._txt.removeFromParent(); this._imgSkillIcon.removeFromParent(); this._light && this._light.removeFromParent(); mapView.effectLayer.addChild(this._imgEffect); mapView.txtLayer.addChild(this._txt); mapView.blockIconLayer.addChild(this._imgSkillIcon); this._light && mapView.lightLayer.addChild(this._light); if (owner.skill && owner.skill.skillId == BattleConst_1.BlockSkill.BOMB) { this._skillView = new BlockSkillBombView_1.BlockSkillBombView(this, this._mapView); } else if (owner.skill && owner.skill.skillId >= BattleConst_1.BlockSkill.FIREWORK_VERTICAL && owner.skill.skillId <= BattleConst_1.BlockSkill.FIREWORK_DOUBLE) { this._skillView = new BlcokSkillFireworkView_1.BlockSkillFireworkView(this, this._mapView); } else if (owner.skill && owner.skill.skillId == BattleConst_1.BlockSkill.SWITCHER) { this._skillView = new BlockSkillSwitcherView_1.BlockSkillSwitcherView(this, mapView); } this.updateSkillIcon(); // this.onVisibleChange() }; BlockView.prototype.onPreview = function () { _super.prototype.onPreview.call(this); this._txt.active = false; }; BlockView.prototype.onDestroy = function () { _super.prototype.onDestroy.call(this); this._skillView && this._skillView.onDestroy(); this._skillView = null; this._imgEffect = null; this._imgSkillIcon = null; this._txt = null; }; //#endregion //#region override method BlockView.prototype.onPositionChange = function (x, y) { _super.prototype.onPositionChange.call(this, x, y); this._imgEffect.setPosition(x, y); this._txt.setPosition(x + this._txtOffset.x, y + this._txtOffset.y); this._imgSkillIcon.setPosition(x, y); this._light && this._light.setPosition(x, y); this._skillView && this._skillView.onPositionChange(x, y); }; BlockView.prototype.onLazyUpdate = function () { this._txt.getComponent(cc.Label).string = this.owner.hp.toString(); }; BlockView.prototype.onVisibleChange = function () { _super.prototype.onVisibleChange.call(this); this._imgEffect.active = this._visible; this._imgEffect.active = false; //暂时屏蔽 this._imgSkillIcon.active = (this._visible && this.owner.skill && this.owner.skill.skillImg != ''); this._txt.active = this._visible && this.owner.hp > 0; }; //#endregion //#region private method BlockView.prototype.updateSkillIcon = function () { var _this = this; if (this.owner.skill && this.owner.skill.skillImg != "") { // this._imgSkillIcon.active = true; cc.resources.load("battle/" + this.owner.skill.skillImg, cc.SpriteFrame, function (err, spf) { // const frame = (spf as cc.SpriteAtlas).getSpriteFrame(this._owner.iconName); if (!err && _this.isValid) { //有可能销毁后进入回调,增加判断 isValid _this._imgSkillIcon.getComponent(cc.Sprite).spriteFrame = spf; } else { // console.error(err.message); } }); } else { this._imgSkillIcon.active = false; } }; BlockView = __decorate([ ccclass ], BlockView); return BlockView; }(ObjBaseView_1.default)); exports.default = BlockView; 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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcc2NyaXB0c1xccHJlZmFic1xcQmxvY2tWaWV3LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxvQkFBb0I7QUFDcEIsd0VBQXdFO0FBQ3hFLG1CQUFtQjtBQUNuQixrRkFBa0Y7QUFDbEYsOEJBQThCO0FBQzlCLGtGQUFrRjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRWxGLDREQUEwRDtBQUcxRCxtRUFBa0U7QUFDbEUsMkRBQTBEO0FBQzFELG1FQUFrRTtBQUVsRSw2Q0FBd0M7QUFFbEMsSUFBQSxLQUF3QixFQUFFLENBQUMsVUFBVSxFQUFuQyxPQUFPLGFBQUEsRUFBRSxRQUFRLGNBQWtCLENBQUM7QUFHNUM7SUFBdUMsNkJBQVc7SUFBbEQ7UUFBQSxxRUErSkM7UUE3SmEsbUJBQWEsR0FBWSxJQUFJLENBQUM7UUFDOUIsZ0JBQVUsR0FBWSxJQUFJLENBQUM7UUFDM0IsVUFBSSxHQUFZLElBQUksQ0FBQztRQUNyQixZQUFNLEdBQVksSUFBSSxDQUFDO1FBR3pCLGNBQVEsR0FBWSxJQUFJLENBQUM7UUFFdkIsZ0JBQVUsR0FBWSxJQUFJLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUV0QyxnQkFBVSxHQUF1QixJQUFJLENBQUM7O1FBa0o5QyxZQUFZO0lBQ2hCLENBQUM7SUF4Skcsc0JBQUksNEJBQUs7YUFBVCxjQUF5QixPQUFPLElBQUksQ0FBQyxNQUFtQixDQUFDLENBQUMsQ0FBQzs7O09BQUE7SUFPM0QsbUJBQW1CO0lBRW5CLHlCQUFLLEdBQUw7UUFDSSxpQkFBTSxLQUFLLFdBQUUsQ0FBQztRQUVkLElBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUMvQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxTQUFTLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUUvRixJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDYixJQUFJLFFBQVEsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDdEQsUUFBUSxJQUFJLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLG9CQUFvQixDQUFDLENBQUMsU0FBUyxJQUFJLFFBQVEsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsQ0FBQTtTQUNuSjtRQUVELElBQUksQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNyRCxDQUFDO0lBRUQsMEJBQU0sR0FBTjtRQUVJLElBQUksQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRTNDLElBQUksQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUU1QyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQzFCLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDN0IsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNwQixJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDckMsaUJBQU0sTUFBTSxXQUFFLENBQUM7SUFDbkIsQ0FBQztJQUVELFlBQVk7SUFFWixvQkFBb0I7SUFFcEIsd0JBQUksR0FBSixVQUFLLEtBQWdCLEVBQUUsT0FBZ0I7UUFFbkMsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN6RCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3hELElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztRQUMvQixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzVDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ2hDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ2hDLElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDaEQsSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQyxDQUFDO1FBRTVDLGlCQUFNLElBQUksWUFBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFFM0IsTUFBTTtRQUNOLElBQUksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUNuQyxJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDN0IsSUFBSSxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQ3RDLElBQUksQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBRTlDLE9BQU8sQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUM5QyxPQUFPLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDckMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3BELElBQUksQ0FBQyxNQUFNLElBQUksT0FBTyxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFBO1FBRXZELElBQUksS0FBSyxDQUFDLEtBQUssSUFBSSxLQUFLLENBQUMsS0FBSyxDQUFDLE9BQU8sSUFBSSx3QkFBVSxDQUFDLElBQUksRUFBRTtZQUN2RCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksdUNBQWtCLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUNqRTthQUNJLElBQUksS0FBSyxDQUFDLEtBQUssSUFBSSxLQUFLLENBQUMsS0FBSyxDQUFDLE9BQU8sSUFBSSx3QkFBVSxDQUFDLGlCQUFpQixJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUMsT0FBTyxJQUFJLHdCQUFVLENBQUMsZUFBZSxFQUFFO1lBQzlILElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSwrQ0FBc0IsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1NBQ3JFO2FBQ0ksSUFBSSxLQUFLLENBQUMsS0FBSyxJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUMsT0FBTyxJQUFJLHdCQUFVLENBQUMsUUFBUSxFQUFFO1lBQ2hFLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSwrQ0FBc0IsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7U0FDL0Q7UUFHRCxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFFdkIseUJBQXlCO0lBQzdCLENBQUM7SUFFRCw2QkFBUyxHQUFUO1FBQ0ksaUJBQU0sU0FBUyxXQUFFLENBQUM7UUFDbEIsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO0lBQzdCLENBQUM7SUFJUyw2QkFBUyxHQUFuQjtRQUNJLGlCQUFNLFNBQVMsV0FBRSxDQUFDO1FBQ2xCLElBQUksQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUMvQyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztRQUN2QixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztRQUN2QixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztRQUMxQixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztJQUNyQixDQUFDO0lBRUQsWUFBWTtJQUVaLHlCQUF5QjtJQUVmLG9DQUFnQixHQUExQixVQUEyQixDQUFTLEVBQUUsQ0FBUztRQUMzQyxpQkFBTSxnQkFBZ0IsWUFBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFFN0IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNwRSxJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDckMsSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFFN0MsSUFBSSxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUM5RCxDQUFDO0lBRVMsZ0NBQVksR0FBdEI7UUFDSSxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3ZFLENBQUM7SUFFUyxtQ0FBZSxHQUF6QjtRQUNJLGlCQUFNLGVBQWUsV0FBRSxDQUFDO1FBRXhCLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7UUFDdkMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDLENBQUMsTUFBTTtRQUN0QyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsUUFBUSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ25HLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFFRCxZQUFZO0lBRVosd0JBQXdCO0lBRWhCLG1DQUFlLEdBQXZCO1FBQUEsaUJBb0JDO1FBbkJHLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsUUFBUSxJQUFJLEVBQUUsRUFBRTtZQUVyRCxvQ0FBb0M7WUFFcEMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsV0FBVyxFQUFFLFVBQUMsR0FBRyxFQUFFLEdBQUc7Z0JBQzlFLDhFQUE4RTtnQkFDOUUsSUFBSSxDQUFDLEdBQUcsSUFBSSxLQUFJLENBQUMsT0FBTyxFQUFFLEVBQUUseUJBQXlCO29CQUNqRCxLQUFJLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsV0FBVyxHQUFHLEdBQXFCLENBQUM7aUJBQ2xGO3FCQUNJO29CQUNELDhCQUE4QjtpQkFDakM7WUFFTCxDQUFDLENBQUMsQ0FBQztTQUVOO2FBQ0k7WUFDRCxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7U0FDckM7SUFDTCxDQUFDO0lBNUpnQixTQUFTO1FBRDdCLE9BQU87T0FDYSxTQUFTLENBK0o3QjtJQUFELGdCQUFDO0NBL0pELEFBK0pDLENBL0pzQyxxQkFBVyxHQStKakQ7a0JBL0pvQixTQUFTIiwiZmlsZSI6IiIsInNvdXJjZVJvb3QiOiIvIiwic291cmNlc0NvbnRlbnQiOlsiLy8gTGVhcm4gVHlwZVNjcmlwdDpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvdHlwZXNjcmlwdC5odG1sXHJcbi8vIExlYXJuIEF0dHJpYnV0ZTpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvcmVmZXJlbmNlL2F0dHJpYnV0ZXMuaHRtbFxyXG4vLyBMZWFybiBsaWZlLWN5Y2xlIGNhbGxiYWNrczpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvbGlmZS1jeWNsZS1jYWxsYmFja3MuaHRtbFxyXG5cclxuaW1wb3J0IHsgQmxvY2tTa2lsbCB9IGZyb20gXCIuLi9rZXJuZWwvYmF0dGxlL0JhdHRsZUNvbnN0XCI7XHJcbmltcG9ydCB7IEJsb2NrRGF0YSB9IGZyb20gXCIuLi9rZXJuZWwvYmF0dGxlL21hcC9CbG9ja0RhdGFcIjtcclxuaW1wb3J0IHsgTWFwVmlldyB9IGZyb20gXCIuLi9rZXJuZWwvYmF0dGxlL21hcC9NYXBWaWV3XCI7XHJcbmltcG9ydCB7IEJsb2NrU2tpbGxGaXJld29ya1ZpZXcgfSBmcm9tIFwiLi9CbGNva1NraWxsRmlyZXdvcmtWaWV3XCI7XHJcbmltcG9ydCB7IEJsb2NrU2tpbGxCb21iVmlldyB9IGZyb20gXCIuL0Jsb2NrU2tpbGxCb21iVmlld1wiO1xyXG5pbXBvcnQgeyBCbG9ja1NraWxsU3dpdGNoZXJWaWV3IH0gZnJvbSBcIi4vQmxvY2tTa2lsbFN3aXRjaGVyVmlld1wiO1xyXG5pbXBvcnQgeyBCbGNva1NraWxsVmlld0Jhc2UgfSBmcm9tIFwiLi9CbG9ja1NraWxsVmlld0Jhc2VcIjtcclxuaW1wb3J0IE9iakJhc2VWaWV3IGZyb20gXCIuL09iakJhc2VWaWV3XCI7XHJcblxyXG5jb25zdCB7IGNjY2xhc3MsIHByb3BlcnR5IH0gPSBjYy5fZGVjb3JhdG9yO1xyXG5cclxuQGNjY2xhc3NcclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQmxvY2tWaWV3IGV4dGVuZHMgT2JqQmFzZVZpZXcge1xyXG5cclxuICAgIHByb3RlY3RlZCBfaW1nU2tpbGxJY29uOiBjYy5Ob2RlID0gbnVsbDtcclxuICAgIHByb3RlY3RlZCBfaW1nRWZmZWN0OiBjYy5Ob2RlID0gbnVsbDtcclxuICAgIHByb3RlY3RlZCBfdHh0OiBjYy5Ob2RlID0gbnVsbDtcclxuICAgIHByb3RlY3RlZCBfbGlnaHQ6IGNjLk5vZGUgPSBudWxsO1xyXG5cclxuICAgIGdldCBvd25lcigpOiBCbG9ja0RhdGEgeyByZXR1cm4gdGhpcy5fb3duZXIgYXMgQmxvY2tEYXRhOyB9XHJcbiAgICBwcml2YXRlIF9tYXBWaWV3OiBNYXBWaWV3ID0gbnVsbDtcclxuXHJcbiAgICBwcm90ZWN0ZWQgX3R4dE9mZnNldDogY2MuVmVjMiA9IG5ldyBjYy5WZWMyKCk7XHJcblxyXG4gICAgcHJpdmF0ZSBfc2tpbGxWaWV3OiBCbGNva1NraWxsVmlld0Jhc2UgPSBudWxsO1xyXG5cclxuICAgIC8vI3JlZ2lvbiBpbnRlcmZhY2VcclxuXHJcbiAgICBvbkhpdCgpOiB2b2lkIHtcclxuICAgICAgICBzdXBlci5vbkhpdCgpO1xyXG5cclxuICAgICAgICBsZXQgYW5pID0gdGhpcy5fdHh0LmdldENvbXBvbmVudChjYy5BbmltYXRpb24pO1xyXG4gICAgICAgIGFuaSAmJiAhYW5pLmdldEFuaW1hdGlvblN0YXRlKCdmeF9ibG9ja190eHRfaGl0JykuaXNQbGF5aW5nICYmIGFuaS5wbGF5KCdmeF9ibG9ja190eHRfaGl0JywgMCk7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLl9saWdodCkge1xyXG4gICAgICAgICAgICBsZXQgbGlnaHRBbmkgPSB0aGlzLl9saWdodC5nZXRDb21wb25lbnQoY2MuQW5pbWF0aW9uKTtcclxuICAgICAgICAgICAgbGlnaHRBbmkgJiYgIWxpZ2h0QW5pLmdldEFuaW1hdGlvblN0YXRlKCdmeF9ibG9ja19saWdodF9oaXQnKS5pc1BsYXlpbmcgJiYgbGlnaHRBbmkucGxheSgnZnhfYmxvY2tfbGlnaHRfaGl0JywgMCkgJiYgKHRoaXMuX2xpZ2h0LmFjdGl2ZSA9IHRydWUpXHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLl9za2lsbFZpZXcgJiYgdGhpcy5fc2tpbGxWaWV3Lm9uQ29sbGlzaW9uKCk7XHJcbiAgICB9XHJcblxyXG4gICAgb25EZWFkKCkge1xyXG5cclxuICAgICAgICB0aGlzLl9tYXBWaWV3LnBsYXlCbG9ja1BhcnRpY2xlKHRoaXMubm9kZSk7XHJcblxyXG4gICAgICAgIHRoaXMuX3NraWxsVmlldyAmJiB0aGlzLl9za2lsbFZpZXcub25EZWFkKCk7XHJcblxyXG4gICAgICAgIHRoaXMuX2ltZ0VmZmVjdC5kZXN0cm95KCk7XHJcbiAgICAgICAgdGhpcy5faW1nU2tpbGxJY29uLmRlc3Ryb3koKTtcclxuICAgICAgICB0aGlzLl90eHQuZGVzdHJveSgpO1xyXG4gICAgICAgIHRoaXMuX2xpZ2h0ICYmIHRoaXMuX2xpZ2h0LmRlc3Ryb3koKTtcclxuICAgICAgICBzdXBlci5vbkRlYWQoKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyNlbmRyZWdpb25cclxuXHJcbiAgICAvLyNyZWdpb24gbGlmZSBjeWNsZVxyXG5cclxuICAgIGluaXQob3duZXI6IEJsb2NrRGF0YSwgbWFwVmlldzogTWFwVmlldykge1xyXG5cclxuICAgICAgICB0aGlzLl9pbWdTa2lsbEljb24gPSB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoJ2ltZ0ljb24nKTtcclxuICAgICAgICB0aGlzLl9pbWdFZmZlY3QgPSB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoJ2ltZ0VmZmVjdCcpO1xyXG4gICAgICAgIHRoaXMuX2ltZ0VmZmVjdC5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLl90eHQgPSB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoJ3R4dCcpO1xyXG4gICAgICAgIHRoaXMuX3R4dE9mZnNldC54ID0gdGhpcy5fdHh0Lng7XHJcbiAgICAgICAgdGhpcy5fdHh0T2Zmc2V0LnkgPSB0aGlzLl90eHQueTtcclxuICAgICAgICB0aGlzLl9tYXBWaWV3ID0gbWFwVmlldztcclxuICAgICAgICB0aGlzLl9saWdodCA9IHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZSgnbGlnaHQnKTtcclxuICAgICAgICB0aGlzLl9saWdodCAmJiAodGhpcy5fbGlnaHQuYWN0aXZlID0gZmFsc2UpO1xyXG5cclxuICAgICAgICBzdXBlci5pbml0KG93bmVyLCBtYXBWaWV3KTtcclxuXHJcbiAgICAgICAgLy/liIblsYLmmL7npLpcclxuICAgICAgICB0aGlzLl9pbWdFZmZlY3QucmVtb3ZlRnJvbVBhcmVudCgpO1xyXG4gICAgICAgIHRoaXMuX3R4dC5yZW1vdmVGcm9tUGFyZW50KCk7XHJcbiAgICAgICAgdGhpcy5faW1nU2tpbGxJY29uLnJlbW92ZUZyb21QYXJlbnQoKTtcclxuICAgICAgICB0aGlzLl9saWdodCAmJiB0aGlzLl9saWdodC5yZW1vdmVGcm9tUGFyZW50KCk7XHJcblxyXG4gICAgICAgIG1hcFZpZXcuZWZmZWN0TGF5ZXIuYWRkQ2hpbGQodGhpcy5faW1nRWZmZWN0KTtcclxuICAgICAgICBtYXBWaWV3LnR4dExheWVyLmFkZENoaWxkKHRoaXMuX3R4dCk7XHJcbiAgICAgICAgbWFwVmlldy5ibG9ja0ljb25MYXllci5hZGRDaGlsZCh0aGlzLl9pbWdTa2lsbEljb24pO1xyXG4gICAgICAgIHRoaXMuX2xpZ2h0ICYmIG1hcFZpZXcubGlnaHRMYXllci5hZGRDaGlsZCh0aGlzLl9saWdodClcclxuXHJcbiAgICAgICAgaWYgKG93bmVyLnNraWxsICYmIG93bmVyLnNraWxsLnNraWxsSWQgPT0gQmxvY2tTa2lsbC5CT01CKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX3NraWxsVmlldyA9IG5ldyBCbG9ja1NraWxsQm9tYlZpZXcodGhpcywgdGhpcy5fbWFwVmlldyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKG93bmVyLnNraWxsICYmIG93bmVyLnNraWxsLnNraWxsSWQgPj0gQmxvY2tTa2lsbC5GSVJFV09SS19WRVJUSUNBTCAmJiBvd25lci5za2lsbC5za2lsbElkIDw9IEJsb2NrU2tpbGwuRklSRVdPUktfRE9VQkxFKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX3NraWxsVmlldyA9IG5ldyBCbG9ja1NraWxsRmlyZXdvcmtWaWV3KHRoaXMsIHRoaXMuX21hcFZpZXcpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmIChvd25lci5za2lsbCAmJiBvd25lci5za2lsbC5za2lsbElkID09IEJsb2NrU2tpbGwuU1dJVENIRVIpIHtcclxuICAgICAgICAgICAgdGhpcy5fc2tpbGxWaWV3ID0gbmV3IEJsb2NrU2tpbGxTd2l0Y2hlclZpZXcodGhpcywgbWFwVmlldyk7XHJcbiAgICAgICAgfVxyXG5cclxuXHJcbiAgICAgICAgdGhpcy51cGRhdGVTa2lsbEljb24oKTtcclxuXHJcbiAgICAgICAgLy8gdGhpcy5vblZpc2libGVDaGFuZ2UoKVxyXG4gICAgfVxyXG5cclxuICAgIG9uUHJldmlldygpOiB2b2lkIHtcclxuICAgICAgICBzdXBlci5vblByZXZpZXcoKTtcclxuICAgICAgICB0aGlzLl90eHQuYWN0aXZlID0gZmFsc2U7XHJcbiAgICB9XHJcblxyXG5cclxuXHJcbiAgICBwcm90ZWN0ZWQgb25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgICAgIHN1cGVyLm9uRGVzdHJveSgpO1xyXG4gICAgICAgIHRoaXMuX3NraWxsVmlldyAmJiB0aGlzLl9za2lsbFZpZXcub25EZXN0cm95KCk7XHJcbiAgICAgICAgdGhpcy5fc2tpbGxWaWV3ID0gbnVsbDtcclxuICAgICAgICB0aGlzLl9pbWdFZmZlY3QgPSBudWxsO1xyXG4gICAgICAgIHRoaXMuX2ltZ1NraWxsSWNvbiA9IG51bGw7XHJcbiAgICAgICAgdGhpcy5fdHh0ID0gbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICAvLyNlbmRyZWdpb25cclxuXHJcbiAgICAvLyNyZWdpb24gb3ZlcnJpZGUgbWV0aG9kXHJcblxyXG4gICAgcHJvdGVjdGVkIG9uUG9zaXRpb25DaGFuZ2UoeDogbnVtYmVyLCB5OiBudW1iZXIpOiB2b2lkIHtcclxuICAgICAgICBzdXBlci5vblBvc2l0aW9uQ2hhbmdlKHgsIHkpO1xyXG5cclxuICAgICAgICB0aGlzLl9pbWdFZmZlY3Quc2V0UG9zaXRpb24oeCwgeSk7XHJcbiAgICAgICAgdGhpcy5fdHh0LnNldFBvc2l0aW9uKHggKyB0aGlzLl90eHRPZmZzZXQueCwgeSArIHRoaXMuX3R4dE9mZnNldC55KTtcclxuICAgICAgICB0aGlzLl9pbWdTa2lsbEljb24uc2V0UG9zaXRpb24oeCwgeSk7XHJcbiAgICAgICAgdGhpcy5fbGlnaHQgJiYgdGhpcy5fbGlnaHQuc2V0UG9zaXRpb24oeCwgeSk7XHJcblxyXG4gICAgICAgIHRoaXMuX3NraWxsVmlldyAmJiB0aGlzLl9za2lsbFZpZXcub25Qb3NpdGlvbkNoYW5nZSh4LCB5KTtcclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgb25MYXp5VXBkYXRlKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX3R4dC5nZXRDb21wb25lbnQoY2MuTGFiZWwpLnN0cmluZyA9IHRoaXMub3duZXIuaHAudG9TdHJpbmcoKTtcclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgb25WaXNpYmxlQ2hhbmdlKCk6IHZvaWQge1xyXG4gICAgICAgIHN1cGVyLm9uVmlzaWJsZUNoYW5nZSgpO1xyXG5cclxuICAgICAgICB0aGlzLl9pbWdFZmZlY3QuYWN0aXZlID0gdGhpcy5fdmlzaWJsZTtcclxuICAgICAgICB0aGlzLl9pbWdFZmZlY3QuYWN0aXZlID0gZmFsc2U7IC8v5pqC5pe25bGP6JS9XHJcbiAgICAgICAgdGhpcy5faW1nU2tpbGxJY29uLmFjdGl2ZSA9ICh0aGlzLl92aXNpYmxlICYmIHRoaXMub3duZXIuc2tpbGwgJiYgdGhpcy5vd25lci5za2lsbC5za2lsbEltZyAhPSAnJyk7XHJcbiAgICAgICAgdGhpcy5fdHh0LmFjdGl2ZSA9IHRoaXMuX3Zpc2libGUgJiYgdGhpcy5vd25lci5ocCA+IDA7XHJcbiAgICB9XHJcblxyXG4gICAgLy8jZW5kcmVnaW9uXHJcblxyXG4gICAgLy8jcmVnaW9uIHByaXZhdGUgbWV0aG9kXHJcblxyXG4gICAgcHJpdmF0ZSB1cGRhdGVTa2lsbEljb24oKSB7XHJcbiAgICAgICAgaWYgKHRoaXMub3duZXIuc2tpbGwgJiYgdGhpcy5vd25lci5za2lsbC5za2lsbEltZyAhPSBcIlwiKSB7XHJcblxyXG4gICAgICAgICAgICAvLyB0aGlzLl9pbWdTa2lsbEljb24uYWN0aXZlID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgICAgIGNjLnJlc291cmNlcy5sb2FkKFwiYmF0dGxlL1wiICsgdGhpcy5vd25lci5za2lsbC5za2lsbEltZywgY2MuU3ByaXRlRnJhbWUsIChlcnIsIHNwZikgPT4ge1xyXG4gICAgICAgICAgICAgICAgLy8gY29uc3QgZnJhbWUgPSAoc3BmIGFzIGNjLlNwcml0ZUF0bGFzKS5nZXRTcHJpdGVGcmFtZSh0aGlzLl9vd25lci5pY29uTmFtZSk7XHJcbiAgICAgICAgICAgICAgICBpZiAoIWVyciAmJiB0aGlzLmlzVmFsaWQpIHsgLy/mnInlj6/og73plIDmr4HlkI7ov5vlhaXlm57osIPvvIzlop7liqDliKTmlq0gaXNWYWxpZFxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2ltZ1NraWxsSWNvbi5nZXRDb21wb25lbnQoY2MuU3ByaXRlKS5zcHJpdGVGcmFtZSA9IHNwZiBhcyBjYy5TcHJpdGVGcmFtZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUuZXJyb3IoZXJyLm1lc3NhZ2UpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5faW1nU2tpbGxJY29uLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvLyNlbmRyZWdpb25cclxufVxyXG4iXX0=