SetGray.js 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181
  1. (function() {
  2. var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined';
  3. var __module = nodeEnv ? module : {exports:{}};
  4. var __filename = 'preview-scripts/assets/script/game/component/SetGray.js';
  5. var __require = nodeEnv ? function (request) {
  6. return cc.require(request);
  7. } : function (request) {
  8. return __quick_compile_project__.require(request, __filename);
  9. };
  10. function __define (exports, require, module) {
  11. if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict";
  12. cc._RF.push(module, 'f67a9SEPlBL8rHHpVX6g1ZW', 'SetGray');
  13. // script/game/component/SetGray.ts
  14. "use strict";
  15. /**
  16. * 节点置灰组件
  17. * @date 20210514
  18. * @author kaka
  19. * @description 暂时不包括spine动画
  20. */
  21. var __extends = (this && this.__extends) || (function () {
  22. var extendStatics = function (d, b) {
  23. extendStatics = Object.setPrototypeOf ||
  24. ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
  25. function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
  26. return extendStatics(d, b);
  27. };
  28. return function (d, b) {
  29. extendStatics(d, b);
  30. function __() { this.constructor = d; }
  31. d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
  32. };
  33. })();
  34. var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
  35. var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
  36. if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
  37. 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;
  38. return c > 3 && r && Object.defineProperty(target, key, r), r;
  39. };
  40. Object.defineProperty(exports, "__esModule", { value: true });
  41. var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property;
  42. var SetGray = /** @class */ (function (_super) {
  43. __extends(SetGray, _super);
  44. function SetGray() {
  45. var _this = _super !== null && _super.apply(this, arguments) || this;
  46. _this.normal = null; //内置正常材质
  47. _this.gray = null; //内置灰色材质
  48. _this.grayState = false; //默认置灰状态
  49. //上次置灰状态
  50. _this.lastState = false;
  51. _this.spArr = null;
  52. _this.btnArr = null;
  53. _this.labArr = null;
  54. _this.labArrC = [];
  55. _this.outLineArr = null;
  56. _this.outLineArrC = [];
  57. _this.labRichArr = null;
  58. _this.labRichArrC = [];
  59. _this.grayColor = new cc.Color(166, 166, 166, 255);
  60. _this.grayOutLineColor = new cc.Color(230, 230, 230, 255);
  61. _this.skeArr = null;
  62. return _this;
  63. }
  64. SetGray.prototype.onLoad = function () {
  65. this.spArr = this.node.getComponentsInChildren(cc.Sprite);
  66. this.btnArr = this.node.getComponentsInChildren(cc.Button);
  67. this.labArr = this.node.getComponentsInChildren(cc.Label);
  68. this.outLineArr = this.node.getComponentsInChildren(cc.LabelOutline);
  69. this.labRichArr = this.node.getComponentsInChildren(cc.RichText);
  70. this.skeArr = this.node.getComponentsInChildren(sp.Skeleton);
  71. this.setGray(this.grayState);
  72. };
  73. /**
  74. * 设置颜色
  75. * @param isGray true 置灰 false 还原正常
  76. */
  77. SetGray.prototype.setGray = function (isGray) {
  78. if (this.lastState == isGray) {
  79. console.log('和上次设置相同');
  80. return;
  81. }
  82. this.lastState = isGray;
  83. //置灰
  84. if (isGray) {
  85. //内建材质
  86. var len = this.spArr.length;
  87. for (var i = 0; i < len; i++) {
  88. this.spArr[i].setMaterial(0, this.gray);
  89. }
  90. var btnLen = this.btnArr.length;
  91. for (var n = 0; n < btnLen; n++) {
  92. this.btnArr[n].enableAutoGrayEffect = true;
  93. this.btnArr[n].grayMaterial = this.gray;
  94. this.btnArr[n].interactable = false;
  95. }
  96. //设置所有文本颜色
  97. var labLen = this.labArr.length;
  98. for (var j = 0; j < labLen; j++) {
  99. this.labArrC[j] = this.labArr[j].node.color;
  100. this.labArr[j].node.color = this.grayColor;
  101. }
  102. //设置所有描边颜色
  103. var outLineLen = this.outLineArr.length;
  104. for (var k = 0; k < outLineLen; k++) {
  105. this.outLineArrC[k] = this.outLineArr[k].color;
  106. this.outLineArr[k].color = this.grayOutLineColor;
  107. }
  108. //设置所有富文本颜色
  109. var labRichLen = this.labRichArr.length;
  110. for (var m = 0; m < labRichLen; m++) {
  111. this.labRichArrC[m] = this.labRichArr[m].node.color;
  112. this.labRichArr[m].node.color = this.grayColor;
  113. }
  114. // let skeLen = this.skeArr.length;
  115. // for (var p = 0; p < skeLen; p++) {
  116. // this.skeArr[p].setMaterial(0, this.gray);
  117. // (this.skeArr[p] as any).markForRender(true);
  118. // }
  119. }
  120. else {
  121. //内建材质
  122. var len = this.spArr.length;
  123. for (var i = 0; i < len; i++) {
  124. this.spArr[i].setMaterial(0, this.normal);
  125. }
  126. var btnLen = this.btnArr.length;
  127. for (var n = 0; n < btnLen; n++) {
  128. this.btnArr[n].interactable = true;
  129. }
  130. //设置所有文本颜色
  131. var labLen = this.labArr.length;
  132. for (var j = 0; j < labLen; j++) {
  133. this.labArr[j].node.color = this.labArrC[j];
  134. }
  135. //设置所有描边颜色
  136. var outLineLen = this.outLineArr.length;
  137. for (var k = 0; k < outLineLen; k++) {
  138. this.outLineArr[k].color = this.outLineArrC[k];
  139. }
  140. //设置所有富文本颜色
  141. var labRichLen = this.labRichArr.length;
  142. for (var m = 0; m < labRichLen; m++) {
  143. this.labRichArr[m].node.color = this.labRichArrC[m];
  144. }
  145. // let skeLen = this.skeArr.length;
  146. // for (var p = 0; p < skeLen; p++) {
  147. // this.skeArr[p].setMaterial(0, this.normal);
  148. // (this.skeArr[p] as any).markForRender(true);
  149. // }
  150. }
  151. };
  152. __decorate([
  153. property(cc.Material)
  154. ], SetGray.prototype, "normal", void 0);
  155. __decorate([
  156. property(cc.Material)
  157. ], SetGray.prototype, "gray", void 0);
  158. __decorate([
  159. property({ type: false, displayName: "是否置灰" })
  160. ], SetGray.prototype, "grayState", void 0);
  161. SetGray = __decorate([
  162. ccclass
  163. ], SetGray);
  164. return SetGray;
  165. }(cc.Component));
  166. exports.default = SetGray;
  167. cc._RF.pop();
  168. }
  169. if (nodeEnv) {
  170. __define(__module.exports, __require, __module);
  171. }
  172. else {
  173. __quick_compile_project__.registerModuleFunc(__filename, function () {
  174. __define(__module.exports, __require, __module);
  175. });
  176. }
  177. })();
  178. //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcc2NyaXB0XFxnYW1lXFxjb21wb25lbnRcXFNldEdyYXkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOzs7OztHQUtHOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFRyxJQUFBLEtBQXdCLEVBQUUsQ0FBQyxVQUFVLEVBQW5DLE9BQU8sYUFBQSxFQUFFLFFBQVEsY0FBa0IsQ0FBQztBQUc1QztJQUFxQywyQkFBWTtJQUFqRDtRQUFBLHFFQTZIQztRQTNIVyxZQUFNLEdBQWdCLElBQUksQ0FBQyxDQUFHLFFBQVE7UUFHdEMsVUFBSSxHQUFnQixJQUFJLENBQUMsQ0FBRyxRQUFRO1FBR3JDLGVBQVMsR0FBWSxLQUFLLENBQUMsQ0FBRyxRQUFRO1FBRTdDLFFBQVE7UUFDQSxlQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ2xCLFdBQUssR0FBRyxJQUFJLENBQUM7UUFDYixZQUFNLEdBQUcsSUFBSSxDQUFDO1FBQ2QsWUFBTSxHQUFHLElBQUksQ0FBQztRQUNkLGFBQU8sR0FBRyxFQUFFLENBQUM7UUFDYixnQkFBVSxHQUFHLElBQUksQ0FBQztRQUNsQixpQkFBVyxHQUFHLEVBQUUsQ0FBQztRQUNqQixnQkFBVSxHQUFHLElBQUksQ0FBQztRQUNsQixpQkFBVyxHQUFHLEVBQUUsQ0FBQztRQUNqQixlQUFTLEdBQUcsSUFBSSxFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQzdDLHNCQUFnQixHQUFHLElBQUksRUFBRSxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUVwRCxZQUFNLEdBQUcsSUFBSSxDQUFDOztJQXNHMUIsQ0FBQztJQXBHRyx3QkFBTSxHQUFOO1FBQ0ksSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLEVBQUUsQ0FBQyxN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akIsT0FBTztRQUQzQixPQUFPO09BQ2EsT0FBTyxDQTZIM0I7SUFBRCxjQUFDO0NBN0hELEFBNkhDLENBN0hvQyxFQUFFLENBQUMsU0FBUyxHQTZIaEQ7a0JBN0hvQixPQUFPIiwiZmlsZSI6IiIsInNvdXJjZVJvb3QiOiIvIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIOiKgueCuee9rueBsOe7hOS7tlxyXG4gKiBAZGF0ZSAyMDIxMDUxNFxyXG4gKiBAYXV0aG9yIGtha2FcclxuICogQGRlc2NyaXB0aW9uIOaaguaXtuS4jeWMheaLrHNwaW5l5Yqo55S7XHJcbiAqL1xyXG5cclxuY29uc3QgeyBjY2NsYXNzLCBwcm9wZXJ0eSB9ID0gY2MuX2RlY29yYXRvcjtcclxuXHJcbkBjY2NsYXNzXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFNldEdyYXkgZXh0ZW5kcyBjYy5Db21wb25lbnQge1xyXG4gICAgQHByb3BlcnR5KGNjLk1hdGVyaWFsKVxyXG4gICAgcHJpdmF0ZSBub3JtYWw6IGNjLk1hdGVyaWFsID0gbnVsbDsgICAvL+WGhee9ruato+W4uOadkOi0qFxyXG5cclxuICAgIEBwcm9wZXJ0eShjYy5NYXRlcmlhbClcclxuICAgIHByaXZhdGUgZ3JheTogY2MuTWF0ZXJpYWwgPSBudWxsOyAgIC8v5YaF572u54Gw6Imy5p2Q6LSoXHJcblxyXG4gICAgQHByb3BlcnR5KHsgdHlwZTogZmFsc2UsIGRpc3BsYXlOYW1lOiBcIuaYr+WQpue9rueBsFwiIH0pXHJcbiAgICBwdWJsaWMgZ3JheVN0YXRlOiBib29sZWFuID0gZmFsc2U7ICAgLy/pu5jorqTnva7ngbDnirbmgIFcclxuXHJcbiAgICAvL+S4iuasoee9rueBsOeKtuaAgVxyXG4gICAgcHJpdmF0ZSBsYXN0U3RhdGUgPSBmYWxzZTtcclxuICAgIHByaXZhdGUgc3BBcnIgPSBudWxsO1xyXG4gICAgcHJpdmF0ZSBidG5BcnIgPSBudWxsO1xyXG4gICAgcHJpdmF0ZSBsYWJBcnIgPSBudWxsO1xyXG4gICAgcHJpdmF0ZSBsYWJBcnJDID0gW107XHJcbiAgICBwcml2YXRlIG91dExpbmVBcnIgPSBudWxsO1xyXG4gICAgcHJpdmF0ZSBvdXRMaW5lQXJyQyA9IFtdO1xyXG4gICAgcHJpdmF0ZSBsYWJSaWNoQXJyID0gbnVsbDtcclxuICAgIHByaXZhdGUgbGFiUmljaEFyckMgPSBbXTtcclxuICAgIHByaXZhdGUgZ3JheUNvbG9yID0gbmV3IGNjLkNvbG9yKDE2NiwgMTY2LCAxNjYsIDI1NSk7XHJcbiAgICBwcml2YXRlIGdyYXlPdXRMaW5lQ29sb3IgPSBuZXcgY2MuQ29sb3IoMjMwLCAyMzAsIDIzMCwgMjU1KTtcclxuXHJcbiAgICBwcml2YXRlIHNrZUFyciA9IG51bGw7XHJcblxyXG4gICAgb25Mb2FkKCkge1xyXG4gICAgICAgIHRoaXMuc3BBcnIgPSB0aGlzLm5vZGUuZ2V0Q29tcG9uZW50c0luQ2hpbGRyZW4oY2MuU3ByaXRlKTtcclxuICAgICAgICB0aGlzLmJ0bkFyciA9IHRoaXMubm9kZS5nZXRDb21wb25lbnRzSW5DaGlsZHJlbihjYy5CdXR0b24pO1xyXG4gICAgICAgIHRoaXMubGFiQXJyID0gdGhpcy5ub2RlLmdldENvbXBvbmVudHNJbkNoaWxkcmVuKGNjLkxhYmVsKTtcclxuICAgICAgICB0aGlzLm91dExpbmVBcnIgPSB0aGlzLm5vZGUuZ2V0Q29tcG9uZW50c0luQ2hpbGRyZW4oY2MuTGFiZWxPdXRsaW5lKTtcclxuICAgICAgICB0aGlzLmxhYlJpY2hBcnIgPSB0aGlzLm5vZGUuZ2V0Q29tcG9uZW50c0luQ2hpbGRyZW4oY2MuUmljaFRleHQpO1xyXG4gICAgICAgIHRoaXMuc2tlQXJyID0gdGhpcy5ub2RlLmdldENvbXBvbmVudHNJbkNoaWxkcmVuKHNwLlNrZWxldG9uKTtcclxuXHJcbiAgICAgICAgdGhpcy5zZXRHcmF5KHRoaXMuZ3JheVN0YXRlKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIOiuvue9ruminOiJslxyXG4gICAgICogQHBhcmFtIGlzR3JheSB0cnVlIOe9rueBsCBmYWxzZSDov5jljp/mraPluLggXHJcbiAgICAgKi9cclxuICAgIHNldEdyYXkoaXNHcmF5OiBib29sZWFuKSB7XHJcbiAgICAgICAgaWYgKHRoaXMubGFzdFN0YXRlID09IGlzR3JheSkge1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZygn5ZKM5LiK5qyh6K6+572u55u45ZCMJylcclxuICAgICAgICAgICAgcmV0dXJuXHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMubGFzdFN0YXRlID0gaXNHcmF5O1xyXG4gICAgICAgIC8v572u54GwXHJcbiAgICAgICAgaWYgKGlzR3JheSkge1xyXG4gICAgICAgICAgICAvL+WGheW7uuadkOi0qFxyXG4gICAgICAgICAgICBsZXQgbGVuID0gdGhpcy5zcEFyci5sZW5ndGg7XHJcbiAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuOyBpKyspIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc3BBcnJbaV0uc2V0TWF0ZXJpYWwoMCwgdGhpcy5ncmF5KTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgbGV0IGJ0bkxlbiA9IHRoaXMuYnRuQXJyLmxlbmd0aDtcclxuICAgICAgICAgICAgZm9yICh2YXIgbiA9IDA7IG4gPCBidG5MZW47IG4rKykge1xyXG4gICAgICAgICAgICAgICAgKHRoaXMuYnRuQXJyW25dIGFzIGNjLkJ1dHRvbikuZW5hYmxlQXV0b0dyYXlFZmZlY3QgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgKHRoaXMuYnRuQXJyW25dIGFzIGNjLkJ1dHRvbikuZ3JheU1hdGVyaWFsID0gdGhpcy5ncmF5O1xyXG4gICAgICAgICAgICAgICAgKHRoaXMuYnRuQXJyW25dIGFzIGNjLkJ1dHRvbikuaW50ZXJhY3RhYmxlID0gZmFsc2U7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIC8v6K6+572u5omA5pyJ5paH5pys6aKc6ImyXHJcbiAgICAgICAgICAgIGxldCBsYWJMZW4gPSB0aGlzLmxhYkFyci5sZW5ndGg7XHJcbiAgICAgICAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgbGFiTGVuOyBqKyspIHtcclxuICAgICAgICAgICAgICAgIHRoaXMubGFiQXJyQ1tqXSA9IHRoaXMubGFiQXJyW2pdLm5vZGUuY29sb3I7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmxhYkFycltqXS5ub2RlLmNvbG9yID0gdGhpcy5ncmF5Q29sb3I7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIC8v6K6+572u5omA5pyJ5o+P6L656aKc6ImyXHJcbiAgICAgICAgICAgIGxldCBvdXRMaW5lTGVuID0gdGhpcy5vdXRMaW5lQXJyLmxlbmd0aDtcclxuICAgICAgICAgICAgZm9yICh2YXIgayA9IDA7IGsgPCBvdXRMaW5lTGVuOyBrKyspIHtcclxuICAgICAgICAgICAgICAgIHRoaXMub3V0TGluZUFyckNba10gPSB0aGlzLm91dExpbmVBcnJba10uY29sb3I7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm91dExpbmVBcnJba10uY29sb3IgPSB0aGlzLmdyYXlPdXRMaW5lQ29sb3I7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIC8v6K6+572u5omA5pyJ5a+M5paH5pys6aKc6ImyXHJcbiAgICAgICAgICAgIGxldCBsYWJSaWNoTGVuID0gdGhpcy5sYWJSaWNoQXJyLmxlbmd0aDtcclxuICAgICAgICAgICAgZm9yICh2YXIgbSA9IDA7IG0gPCBsYWJSaWNoTGVuOyBtKyspIHtcclxuICAgICAgICAgICAgICAgIHRoaXMubGFiUmljaEFyckNbbV0gPSB0aGlzLmxhYlJpY2hBcnJbbV0ubm9kZS5jb2xvcjtcclxuICAgICAgICAgICAgICAgIHRoaXMubGFiUmljaEFyclttXS5ub2RlLmNvbG9yID0gdGhpcy5ncmF5Q29sb3I7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIC8vIGxldCBza2VMZW4gPSB0aGlzLnNrZUFyci5sZW5ndGg7XHJcbiAgICAgICAgICAgIC8vIGZvciAodmFyIHAgPSAwOyBwIDwgc2tlTGVuOyBwKyspIHtcclxuICAgICAgICAgICAgLy8gICAgIHRoaXMuc2tlQXJyW3BdLnNldE1hdGVyaWFsKDAsIHRoaXMuZ3JheSk7XHJcbiAgICAgICAgICAgIC8vICAgICAodGhpcy5za2VBcnJbcF0gYXMgYW55KS5tYXJrRm9yUmVuZGVyKHRydWUpO1xyXG4gICAgICAgICAgICAvLyB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAvL+WGheW7uuadkOi0qFxyXG4gICAgICAgICAgICBsZXQgbGVuID0gdGhpcy5zcEFyci5sZW5ndGg7XHJcbiAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuOyBpKyspIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc3BBcnJbaV0uc2V0TWF0ZXJpYWwoMCwgdGhpcy5ub3JtYWwpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBsZXQgYnRuTGVuID0gdGhpcy5idG5BcnIubGVuZ3RoO1xyXG4gICAgICAgICAgICBmb3IgKHZhciBuID0gMDsgbiA8IGJ0bkxlbjsgbisrKSB7XHJcbiAgICAgICAgICAgICAgICAodGhpcy5idG5BcnJbbl0gYXMgY2MuQnV0dG9uKS5pbnRlcmFjdGFibGUgPSB0cnVlO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAvL+iuvue9ruaJgOacieaWh+acrOminOiJslxyXG4gICAgICAgICAgICBsZXQgbGFiTGVuID0gdGhpcy5sYWJBcnIubGVuZ3RoO1xyXG4gICAgICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IGxhYkxlbjsgaisrKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmxhYkFycltqXS5ub2RlLmNvbG9yID0gdGhpcy5sYWJBcnJDW2pdO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAvL+iuvue9ruaJgOacieaPj+i+ueminOiJslxyXG4gICAgICAgICAgICBsZXQgb3V0TGluZUxlbiA9IHRoaXMub3V0TGluZUFyci5sZW5ndGg7XHJcbiAgICAgICAgICAgIGZvciAodmFyIGsgPSAwOyBrIDwgb3V0TGluZUxlbjsgaysrKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm91dExpbmVBcnJba10uY29sb3IgPSB0aGlzLm91dExpbmVBcnJDW2tdO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAvL+iuvue9ruaJgOacieWvjOaWh+acrOminOiJslxyXG4gICAgICAgICAgICBsZXQgbGFiUmljaExlbiA9IHRoaXMubGFiUmljaEFyci5sZW5ndGg7XHJcbiAgICAgICAgICAgIGZvciAodmFyIG0gPSAwOyBtIDwgbGFiUmljaExlbjsgbSsrKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmxhYlJpY2hBcnJbbV0ubm9kZS5jb2xvciA9IHRoaXMubGFiUmljaEFyckNbbV07XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIC8vIGxldCBza2VMZW4gPSB0aGlzLnNrZUFyci5sZW5ndGg7XHJcbiAgICAgICAgICAgIC8vIGZvciAodmFyIHAgPSAwOyBwIDwgc2tlTGVuOyBwKyspIHtcclxuICAgICAgICAgICAgLy8gICAgIHRoaXMuc2tlQXJyW3BdLnNldE1hdGVyaWFsKDAsIHRoaXMubm9ybWFsKTtcclxuICAgICAgICAgICAgLy8gICAgICh0aGlzLnNrZUFycltwXSBhcyBhbnkpLm1hcmtGb3JSZW5kZXIodHJ1ZSk7XHJcbiAgICAgICAgICAgIC8vIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuIl19