LaserView.js 19.5 KB

                (function() {
                    var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined';
                    var __module = nodeEnv ? module : {exports:{}};
                    var __filename = 'preview-scripts/assets/scripts/prefabs/LaserView.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, '77f68MKJu5LhIKTBkqEdTqp', 'LaserView');
// scripts/prefabs/LaserView.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 BattleManager_1 = require("../kernel/battle/BattleManager");
var ObjBaseView_1 = require("./ObjBaseView");
var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property;
var LaserView = /** @class */ (function (_super) {
    __extends(LaserView, _super);
    function LaserView() {
        return _super !== null && _super.apply(this, arguments) || this;
    }
    //#region interface
    LaserView.prototype.onHit = function () {
        var ani = this._effect.getComponent(cc.Animation);
        !ani.getAnimationState('ani_yxz_tsfk_jg02').isPlaying && ani.play('ani_yxz_tsfk_jg02', 0);
        if (this._laser) {
            !this._laser.active && (this._laser.active = true);
            var laserAni = this._laser.getComponent(cc.Animation);
            !laserAni.getAnimationState('fx_laser_02').isPlaying && laserAni.play('fx_laser_02', 0);
        }
        if (this._vLaser) {
            !this._vLaser.active && (this._vLaser.active = true);
            var laserAni = this._vLaser.getComponent(cc.Animation);
            !laserAni.getAnimationState('fx_laser_02').isPlaying && laserAni.play('fx_laser_02', 0);
        }
    };
    //#endregion
    //#region  LIFE-CYCLE CALLBACKS:
    LaserView.prototype.init = function (owner, mapView) {
        var _this = this;
        var laserObj = owner;
        if (laserObj.dir == BattleConst_1.LASER_DIR.HORIZEN || laserObj.dir == BattleConst_1.LASER_DIR.COMBINE) {
            this._laser = cc.instantiate(mapView.prefabCollection.getChildByName('skillSpine').getChildByName('laser'));
            this._laser.scaleX = mapView.width / this._laser.width;
            this._laser.active = false;
            var laserAni = this._laser.getComponent(cc.Animation);
            laserAni.on('finished', function () { _this._laser.active = false; }, this);
        }
        if (laserObj.dir == BattleConst_1.LASER_DIR.VERTICAL || laserObj.dir == BattleConst_1.LASER_DIR.COMBINE) {
            this._vLaser = cc.instantiate(mapView.prefabCollection.getChildByName('skillSpine').getChildByName('laser'));
            this._vLaser.scaleX = mapView.height / this._vLaser.width;
            this._vLaser.angle = 90;
            this._vLaser.active = false;
            var vlaserAni = this._vLaser.getComponent(cc.Animation);
            vlaserAni.on('finished', function () { _this._vLaser.active = false; }, this);
        }
        this._effect = this.node.getChildByName('UI_yxz_tsfk_jg2');
        this._effect.removeFromParent();
        _super.prototype.init.call(this, owner, mapView);
        this._img.active = false;
        mapView.effectLayer.addChild(this._effect);
        this._laser && mapView.effectLayer.addChild(this._laser);
        this._vLaser && mapView.effectLayer.addChild(this._vLaser);
        BattleManager_1.BattleManager.ins.eventNode.on(BattleConst_1.BattleEvent.BATTLE_START, this.onBattleStart, this);
    };
    LaserView.prototype.onPositionChange = function (x, y) {
        _super.prototype.onPositionChange.call(this, x, y);
        this._effect.setPosition(x, y);
        this._laser && this._laser.setPosition(0, y);
        this._vLaser && this._vLaser.setPosition(x, 0);
    };
    LaserView.prototype.onVisibleChange = function () {
        this._img.active = false; //图片一直隐藏
    };
    LaserView.prototype.onDestroy = function () {
        BattleManager_1.BattleManager.ins.eventNode.off(BattleConst_1.BattleEvent.BATTLE_START, this.onBattleStart, this);
        this._effect.destroy();
        this._laser && this._laser.destroy();
        this._vLaser && this._vLaser.destroy();
    };
    LaserView.prototype.onImageLoaded = function () {
        var _this = this;
        //更新特效的图片
        this._effect.getChildByName('UI_yxz_tsfk_jg2').getComponent(cc.Sprite).spriteFrame = this._img.getComponent(cc.Sprite).spriteFrame;
        cc.resources.load('battle/' + this.owner.imgName + 'a', cc.SpriteFrame, function (error, asset) {
            if (!_this._destroyed) {
                _this._effect.getChildByName('UI_yxz_tsfk_jg2a').getComponent(cc.Sprite).spriteFrame = asset;
            }
        });
    };
    // update (dt) {}
    //#endregion
    LaserView.prototype.onBattleStart = function () {
        var ani = this._effect.getComponent(cc.Animation);
        ani.play("ani_yxz_tsfk_jg01", 0);
    };
    LaserView = __decorate([
        ccclass
    ], LaserView);
    return LaserView;
}(ObjBaseView_1.default));
exports.default = LaserView;

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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcc2NyaXB0c1xccHJlZmFic1xcTGFzZXJWaWV3LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxvQkFBb0I7QUFDcEIsd0VBQXdFO0FBQ3hFLG1CQUFtQjtBQUNuQixrRkFBa0Y7QUFDbEYsOEJBQThCO0FBQzlCLGtGQUFrRjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRWxGLDREQUFzRTtBQUN0RSxnRUFBK0Q7QUFJL0QsNkNBQXdDO0FBRWxDLElBQUEsS0FBd0IsRUFBRSxDQUFDLFVBQVUsRUFBbkMsT0FBTyxhQUFBLEVBQUUsUUFBUSxjQUFrQixDQUFDO0FBRzVDO0lBQXVDLDZCQUFXO0lBQWxEOztJQTJHQSxDQUFDO0lBckdHLG1CQUFtQjtJQUVuQix5QkFBSyxHQUFMO1FBRUksSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ2xELENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLG1CQUFtQixDQUFDLENBQUMsU0FBUyxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFFMUYsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ2IsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxDQUFDO1lBQ25ELElBQUksUUFBUSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUN0RCxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLENBQUMsQ0FBQyxTQUFTLElBQUksUUFBUSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDLENBQUM7U0FDM0Y7UUFFRCxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDZCxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLENBQUM7WUFDckQsSUFBSSxRQUFRLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ3ZELENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLGFBQWEsQ0FBQyxDQUFDLFNBQVMsSUFBSSxRQUFRLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUMsQ0FBQztTQUMzRjtJQUNMLENBQUM7SUFFRCxZQUFZO0lBRVosZ0NBQWdDO0lBRWhDLHdCQUFJLEdBQUosVUFBSyxLQUFjLEVBQUUsT0FBZ0I7UUFBckMsaUJBa0NDO1FBaENHLElBQUksUUFBUSxHQUFHLEtBQWlCLENBQUM7UUFFakMsSUFBSSxRQUFRLENBQUMsR0FBRyxJQUFJLHVCQUFTLENBQUMsT0FBTyxJQUFJLFFBQVEsQ0FBQyxHQUFHLElBQUksdUJBQVMsQ0FBQyxPQUFPLEVBQUU7WUFDeEUsSUFBSSxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxjQUFjLENBQUMsWUFBWSxDQUFDLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7WUFDNUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsT0FBTyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQztZQUN2RCxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7WUFFM0IsSUFBSSxRQUFRLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ3RELFFBQVEsQ0FBQyxFQUFFLENBQUMsVUFBVSxFQUFFLGNBQVEsS0FBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO1NBQ3hFO1FBRUQsSUFBSSxRQUFRLENBQUMsR0FBRyxJQUFJLHVCQUFTLENBQUMsUUFBUSxJQUFJLFFBQVEsQ0FBQyxHQUFHLElBQUksdUJBQVMsQ0FBQyxPQUFPLEVBQUU7WUFDekUsSUFBSSxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxjQUFjLENBQUMsWUFBWSxDQUFDLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7WUFDN0csSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsT0FBTyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztZQUMxRCxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7WUFDeEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1lBRTVCLElBQUksU0FBUyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUN4RCxTQUFTLENBQUMsRUFBRSxDQUFDLFVBQVUsRUFBRSxjQUFRLEtBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztTQUMxRTtRQUVELElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUMzRCxJQUFJLENBQUMsT0FBTyxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFFaEMsaUJBQU0sSUFBSSxZQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztRQUMzQixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFFekIsT0FBTyxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzNDLElBQUksQ0FBQyxNQUFNLElBQUksT0FBTyxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3pELElBQUksQ0FBQyxPQUFPLElBQUksT0FBTyxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRTNELDZCQUFhLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMseUJBQVcsQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUN2RixDQUFDO0lBRVMsb0NBQWdCLEdBQTFCLFVBQTJCLENBQVMsRUFBRSxDQUFTO1FBQzNDLGlCQUFNLGdCQUFnQixZQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUM3QixJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDL0IsSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDN0MsSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVTLG1DQUFlLEdBQXpCO1FBQ0ksSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDLENBQUMsUUFBUTtJQUN0QyxDQUFDO0lBRVMsNkJBQVMsR0FBbkI7UUFDSSw2QkFBYSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLHlCQUFXLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDcEYsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDckMsSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQzNDLENBQUM7SUFFUyxpQ0FBYSxHQUF2QjtRQUFBLGlCQVlDO1FBVkcsU0FBUztRQUNULElBQUksQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLGlCQUFpQixDQUFDLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFdBQVcsQ0FBQztRQUVuSSxFQUFFLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEdBQUcsR0FBRyxFQUFFLEVBQUUsQ0FBQyxXQUFXLEVBQUUsVUFBQyxLQUFLLEVBQUUsS0FBSztZQUVqRixJQUFJLENBQUMsS0FBSSxDQUFDLFVBQVUsRUFBRTtnQkFDbEIsS0FBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFdBQVcsR0FBRyxLQUF1QixDQUFDO2FBQ2pIO1FBRUwsQ0FBQyxDQUFDLENBQUE7SUFDTixDQUFDO0lBRUQsaUJBQWlCO0lBRWpCLFlBQVk7SUFFSixpQ0FBYSxHQUFyQjtRQUVJLElBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNsRCxHQUFHLENBQUMsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUExR2dCLFNBQVM7UUFEN0IsT0FBTztPQUNhLFNBQVMsQ0EyRzdCO0lBQUQsZ0JBQUM7Q0EzR0QsQUEyR0MsQ0EzR3NDLHFCQUFXLEdBMkdqRDtrQkEzR29CLFNBQVMiLCJmaWxlIjoiIiwic291cmNlUm9vdCI6Ii8iLCJzb3VyY2VzQ29udGVudCI6WyIvLyBMZWFybiBUeXBlU2NyaXB0OlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy90eXBlc2NyaXB0Lmh0bWxcclxuLy8gTGVhcm4gQXR0cmlidXRlOlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy9yZWZlcmVuY2UvYXR0cmlidXRlcy5odG1sXHJcbi8vIExlYXJuIGxpZmUtY3ljbGUgY2FsbGJhY2tzOlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy9saWZlLWN5Y2xlLWNhbGxiYWNrcy5odG1sXHJcblxyXG5pbXBvcnQgeyBCYXR0bGVFdmVudCwgTEFTRVJfRElSIH0gZnJvbSBcIi4uL2tlcm5lbC9iYXR0bGUvQmF0dGxlQ29uc3RcIjtcclxuaW1wb3J0IHsgQmF0dGxlTWFuYWdlciB9IGZyb20gXCIuLi9rZXJuZWwvYmF0dGxlL0JhdHRsZU1hbmFnZXJcIjtcclxuaW1wb3J0IHsgTGFzZXJPYmogfSBmcm9tIFwiLi4va2VybmVsL2JhdHRsZS9tYXAvTGFzZXJPYmpcIjtcclxuaW1wb3J0IHsgTWFwVmlldyB9IGZyb20gXCIuLi9rZXJuZWwvYmF0dGxlL21hcC9NYXBWaWV3XCI7XHJcbmltcG9ydCB7IE9iakRhdGEgfSBmcm9tIFwiLi4va2VybmVsL2JhdHRsZS9tYXAvT2JqRGF0YVwiO1xyXG5pbXBvcnQgT2JqQmFzZVZpZXcgZnJvbSBcIi4vT2JqQmFzZVZpZXdcIjtcclxuXHJcbmNvbnN0IHsgY2NjbGFzcywgcHJvcGVydHkgfSA9IGNjLl9kZWNvcmF0b3I7XHJcblxyXG5AY2NjbGFzc1xyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBMYXNlclZpZXcgZXh0ZW5kcyBPYmpCYXNlVmlldyB7XHJcblxyXG4gICAgcHJpdmF0ZSBfZWZmZWN0OiBjYy5Ob2RlO1xyXG4gICAgcHJpdmF0ZSBfbGFzZXI6IGNjLk5vZGU7XHJcbiAgICBwcml2YXRlIF92TGFzZXI6IGNjLk5vZGU7XHJcblxyXG4gICAgLy8jcmVnaW9uIGludGVyZmFjZVxyXG5cclxuICAgIG9uSGl0KCk6IHZvaWQge1xyXG5cclxuICAgICAgICBsZXQgYW5pID0gdGhpcy5fZWZmZWN0LmdldENvbXBvbmVudChjYy5BbmltYXRpb24pO1xyXG4gICAgICAgICFhbmkuZ2V0QW5pbWF0aW9uU3RhdGUoJ2FuaV95eHpfdHNma19qZzAyJykuaXNQbGF5aW5nICYmIGFuaS5wbGF5KCdhbmlfeXh6X3RzZmtfamcwMicsIDApO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5fbGFzZXIpIHtcclxuICAgICAgICAgICAgIXRoaXMuX2xhc2VyLmFjdGl2ZSAmJiAodGhpcy5fbGFzZXIuYWN0aXZlID0gdHJ1ZSk7XHJcbiAgICAgICAgICAgIGxldCBsYXNlckFuaSA9IHRoaXMuX2xhc2VyLmdldENvbXBvbmVudChjYy5BbmltYXRpb24pO1xyXG4gICAgICAgICAgICAhbGFzZXJBbmkuZ2V0QW5pbWF0aW9uU3RhdGUoJ2Z4X2xhc2VyXzAyJykuaXNQbGF5aW5nICYmIGxhc2VyQW5pLnBsYXkoJ2Z4X2xhc2VyXzAyJywgMCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodGhpcy5fdkxhc2VyKSB7XHJcbiAgICAgICAgICAgICF0aGlzLl92TGFzZXIuYWN0aXZlICYmICh0aGlzLl92TGFzZXIuYWN0aXZlID0gdHJ1ZSk7XHJcbiAgICAgICAgICAgIGxldCBsYXNlckFuaSA9IHRoaXMuX3ZMYXNlci5nZXRDb21wb25lbnQoY2MuQW5pbWF0aW9uKTtcclxuICAgICAgICAgICAgIWxhc2VyQW5pLmdldEFuaW1hdGlvblN0YXRlKCdmeF9sYXNlcl8wMicpLmlzUGxheWluZyAmJiBsYXNlckFuaS5wbGF5KCdmeF9sYXNlcl8wMicsIDApO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvLyNlbmRyZWdpb25cclxuXHJcbiAgICAvLyNyZWdpb24gIExJRkUtQ1lDTEUgQ0FMTEJBQ0tTOlxyXG5cclxuICAgIGluaXQob3duZXI6IE9iakRhdGEsIG1hcFZpZXc6IE1hcFZpZXcpOiB2b2lkIHtcclxuXHJcbiAgICAgICAgbGV0IGxhc2VyT2JqID0gb3duZXIgYXMgTGFzZXJPYmo7XHJcblxyXG4gICAgICAgIGlmIChsYXNlck9iai5kaXIgPT0gTEFTRVJfRElSLkhPUklaRU4gfHwgbGFzZXJPYmouZGlyID09IExBU0VSX0RJUi5DT01CSU5FKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX2xhc2VyID0gY2MuaW5zdGFudGlhdGUobWFwVmlldy5wcmVmYWJDb2xsZWN0aW9uLmdldENoaWxkQnlOYW1lKCdza2lsbFNwaW5lJykuZ2V0Q2hpbGRCeU5hbWUoJ2xhc2VyJykpO1xyXG4gICAgICAgICAgICB0aGlzLl9sYXNlci5zY2FsZVggPSBtYXBWaWV3LndpZHRoIC8gdGhpcy5fbGFzZXIud2lkdGg7XHJcbiAgICAgICAgICAgIHRoaXMuX2xhc2VyLmFjdGl2ZSA9IGZhbHNlO1xyXG5cclxuICAgICAgICAgICAgbGV0IGxhc2VyQW5pID0gdGhpcy5fbGFzZXIuZ2V0Q29tcG9uZW50KGNjLkFuaW1hdGlvbik7XHJcbiAgICAgICAgICAgIGxhc2VyQW5pLm9uKCdmaW5pc2hlZCcsICgpID0+IHsgdGhpcy5fbGFzZXIuYWN0aXZlID0gZmFsc2U7IH0sIHRoaXMpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKGxhc2VyT2JqLmRpciA9PSBMQVNFUl9ESVIuVkVSVElDQUwgfHwgbGFzZXJPYmouZGlyID09IExBU0VSX0RJUi5DT01CSU5FKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX3ZMYXNlciA9IGNjLmluc3RhbnRpYXRlKG1hcFZpZXcucHJlZmFiQ29sbGVjdGlvbi5nZXRDaGlsZEJ5TmFtZSgnc2tpbGxTcGluZScpLmdldENoaWxkQnlOYW1lKCdsYXNlcicpKTtcclxuICAgICAgICAgICAgdGhpcy5fdkxhc2VyLnNjYWxlWCA9IG1hcFZpZXcuaGVpZ2h0IC8gdGhpcy5fdkxhc2VyLndpZHRoO1xyXG4gICAgICAgICAgICB0aGlzLl92TGFzZXIuYW5nbGUgPSA5MDtcclxuICAgICAgICAgICAgdGhpcy5fdkxhc2VyLmFjdGl2ZSA9IGZhbHNlO1xyXG5cclxuICAgICAgICAgICAgbGV0IHZsYXNlckFuaSA9IHRoaXMuX3ZMYXNlci5nZXRDb21wb25lbnQoY2MuQW5pbWF0aW9uKTtcclxuICAgICAgICAgICAgdmxhc2VyQW5pLm9uKCdmaW5pc2hlZCcsICgpID0+IHsgdGhpcy5fdkxhc2VyLmFjdGl2ZSA9IGZhbHNlOyB9LCB0aGlzKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuX2VmZmVjdCA9IHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZSgnVUlfeXh6X3RzZmtfamcyJyk7XHJcbiAgICAgICAgdGhpcy5fZWZmZWN0LnJlbW92ZUZyb21QYXJlbnQoKTtcclxuXHJcbiAgICAgICAgc3VwZXIuaW5pdChvd25lciwgbWFwVmlldyk7XHJcbiAgICAgICAgdGhpcy5faW1nLmFjdGl2ZSA9IGZhbHNlO1xyXG5cclxuICAgICAgICBtYXBWaWV3LmVmZmVjdExheWVyLmFkZENoaWxkKHRoaXMuX2VmZmVjdCk7XHJcbiAgICAgICAgdGhpcy5fbGFzZXIgJiYgbWFwVmlldy5lZmZlY3RMYXllci5hZGRDaGlsZCh0aGlzLl9sYXNlcik7XHJcbiAgICAgICAgdGhpcy5fdkxhc2VyICYmIG1hcFZpZXcuZWZmZWN0TGF5ZXIuYWRkQ2hpbGQodGhpcy5fdkxhc2VyKTtcclxuXHJcbiAgICAgICAgQmF0dGxlTWFuYWdlci5pbnMuZXZlbnROb2RlLm9uKEJhdHRsZUV2ZW50LkJBVFRMRV9TVEFSVCwgdGhpcy5vbkJhdHRsZVN0YXJ0LCB0aGlzKTtcclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgb25Qb3NpdGlvbkNoYW5nZSh4OiBudW1iZXIsIHk6IG51bWJlcik6IHZvaWQge1xyXG4gICAgICAgIHN1cGVyLm9uUG9zaXRpb25DaGFuZ2UoeCwgeSk7XHJcbiAgICAgICAgdGhpcy5fZWZmZWN0LnNldFBvc2l0aW9uKHgsIHkpO1xyXG4gICAgICAgIHRoaXMuX2xhc2VyICYmIHRoaXMuX2xhc2VyLnNldFBvc2l0aW9uKDAsIHkpO1xyXG4gICAgICAgIHRoaXMuX3ZMYXNlciAmJiB0aGlzLl92TGFzZXIuc2V0UG9zaXRpb24oeCwgMCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJvdGVjdGVkIG9uVmlzaWJsZUNoYW5nZSgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl9pbWcuYWN0aXZlID0gZmFsc2U7IC8v5Zu+54mH5LiA55u06ZqQ6JePXHJcbiAgICB9XHJcblxyXG4gICAgcHJvdGVjdGVkIG9uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgICAgICBCYXR0bGVNYW5hZ2VyLmlucy5ldmVudE5vZGUub2ZmKEJhdHRsZUV2ZW50LkJBVFRMRV9TVEFSVCwgdGhpcy5vbkJhdHRsZVN0YXJ0LCB0aGlzKTtcclxuICAgICAgICB0aGlzLl9lZmZlY3QuZGVzdHJveSgpO1xyXG4gICAgICAgIHRoaXMuX2xhc2VyICYmIHRoaXMuX2xhc2VyLmRlc3Ryb3koKTtcclxuICAgICAgICB0aGlzLl92TGFzZXIgJiYgdGhpcy5fdkxhc2VyLmRlc3Ryb3koKTtcclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgb25JbWFnZUxvYWRlZCgpOiB2b2lkIHtcclxuXHJcbiAgICAgICAgLy/mm7TmlrDnibnmlYjnmoTlm77niYdcclxuICAgICAgICB0aGlzLl9lZmZlY3QuZ2V0Q2hpbGRCeU5hbWUoJ1VJX3l4el90c2ZrX2pnMicpLmdldENvbXBvbmVudChjYy5TcHJpdGUpLnNwcml0ZUZyYW1lID0gdGhpcy5faW1nLmdldENvbXBvbmVudChjYy5TcHJpdGUpLnNwcml0ZUZyYW1lO1xyXG5cclxuICAgICAgICBjYy5yZXNvdXJjZXMubG9hZCgnYmF0dGxlLycgKyB0aGlzLm93bmVyLmltZ05hbWUgKyAnYScsIGNjLlNwcml0ZUZyYW1lLCAoZXJyb3IsIGFzc2V0KSA9PiB7XHJcblxyXG4gICAgICAgICAgICBpZiAoIXRoaXMuX2Rlc3Ryb3llZCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fZWZmZWN0LmdldENoaWxkQnlOYW1lKCdVSV95eHpfdHNma19qZzJhJykuZ2V0Q29tcG9uZW50KGNjLlNwcml0ZSkuc3ByaXRlRnJhbWUgPSBhc3NldCBhcyBjYy5TcHJpdGVGcmFtZTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICB9KVxyXG4gICAgfVxyXG5cclxuICAgIC8vIHVwZGF0ZSAoZHQpIHt9XHJcblxyXG4gICAgLy8jZW5kcmVnaW9uXHJcblxyXG4gICAgcHJpdmF0ZSBvbkJhdHRsZVN0YXJ0KCkge1xyXG5cclxuICAgICAgICBsZXQgYW5pID0gdGhpcy5fZWZmZWN0LmdldENvbXBvbmVudChjYy5BbmltYXRpb24pO1xyXG4gICAgICAgIGFuaS5wbGF5KFwiYW5pX3l4el90c2ZrX2pnMDFcIiwgMCk7XHJcbiAgICB9XHJcbn1cclxuIl19