{"version":3,"sources":["newsimg.js"],"sourcesContent":["/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// identity function for calling harmony imports with the correct context\n/******/ \t__webpack_require__.i = function(value) { return value; };\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 20);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ 20:\n/***/ (function(module, exports) {\n\n(function () {\r\n\r\n if (typeof ($) != 'function') function $(o) {\r\n return typeof (o) == 'string' ? document.getElementById(o) : o\r\n }\r\n if (typeof ($C) != 'function') function $C(s) {\r\n return document.createElement(s)\r\n }\r\n if (typeof Class == \"undefined\") Class = {};\r\n Class.AsPrototype = {};\r\n Class.create = function () {\r\n return function (t) {\r\n if (t != Class.AsPrototype) this.initialize.apply(this, arguments)\r\n }\r\n };\r\n\r\n var newsimg = Class.create();\r\n var chartId = 1; //主要区分图表的唯一性\r\n newsimg.prototype = {\r\n getElementsByClassName: function (obj, n) {\r\n var classElements = [], allElements = $(obj).getElementsByTagName('*');\r\n for (var i = 0; i < allElements.length; i++) {\r\n if (allElements[i].className == n) classElements[classElements.length] = allElements[i]\r\n }\r\n return classElements;\r\n },\r\n getMarket: function (type, code) {\r\n var Market = \"sh\";\r\n if (type == \"1\") {\r\n Market = \"sh\";\r\n if (code.substring(0, 3) == \"000\") Market = \"zs\";\r\n } else {\r\n Market = \"sz\";\r\n if (code.substring(0, 2) == \"39\") Market = \"zs\";\r\n }\r\n return {\r\n Type: Market,\r\n Code: Market + code\r\n }\r\n },\r\n gshNum: function (str) {//格式化大额数字\r\n if (str == \"-\") {\r\n return \"-\";\r\n }\r\n\r\n var dNum = parseFloat(str);\r\n var dw = \"\";\r\n if (dNum >= 100000000) {\r\n dNum = (dNum / 100000000);\r\n dw = \"亿\";\r\n } else if (dNum >= 10000) {\r\n dNum = (dNum / 10000);\r\n dw = \"万\";\r\n }\r\n\r\n if (dNum >= 100) {\r\n dNum = dNum.toFixed(0);\r\n } else if (dNum >= 10) {\r\n dNum = dNum.toFixed(1);\r\n } else {\r\n dNum = dNum.toFixed(2);\r\n }\r\n\r\n return dNum + dw;\r\n },\r\n gshZd:function (str){//格式化涨跌幅或涨跌额保留2位小数\r\n if (str == \"-\") {\r\n return \"-\";\r\n }\r\n return parseFloat(str).toFixed(2);\r\n },\r\n XiangGuanGuPiao: function (secid, imgParent) {//相关股票\r\n var _this = this;\r\n var chartFooterDiv = $C(\"div\");\r\n chartFooterDiv.className = \"chart-footer\";\r\n jQuery.ajax({\r\n type: \"GET\",\r\n url: \"//push2.eastmoney.com/api/qt/slist/get?pi=0&pz=5&po=1&spt=4&fields=f12,f13,f14,f15,f3,f4,f6,f5,f11,f10,f2&ut=13697a1cc677c8bfa9a496437bfef419&secid=\" + secid + \"&fid=f3&fltt=2&cb=?\",\r\n dataType: \"jsonp\",\r\n data: {},\r\n success: function (jdata) {\r\n if (jdata && jdata.rc == \"0\") {\r\n var footerInnerRow = '
';\r\n chartFooterDiv.innerHTML = footerInnerRow;\r\n imgParent.appendChild(chartFooterDiv);\r\n\r\n _this.XiangGuanBanKuai(secid, chartFooterDiv);//相关板块\r\n }\r\n }\r\n });\r\n },\r\n XiangGuanBanKuai: function (secid, chartFooterDiv) {//相关板块\r\n var _this = this;\r\n jQuery.ajax({\r\n type: \"GET\",\r\n url: \"//push2.eastmoney.com/api/qt/slist/get?ut=13697a1cc677c8bfa9a496437bfef419&spt=3&pi=0&pz=4&po=1&fields=f14,f3,f4,f128,f12,f13,f100,f102,f103&secid=\" + secid + \"&fid=f3&fltt=2&cb=?\",\r\n dataType: \"jsonp\",\r\n success: function (jdata) {\r\n if (jdata && jdata.rc == \"0\") {\r\n var htmlBK = $C(\"div\");\r\n htmlBK.className = \"chart-footer-title\";\r\n htmlBK.innerHTML = \"相关板块\";\r\n var htmlBKContent = $C(\"div\");\r\n htmlBKContent.className = \"chart-footer-con chart-concept\";\r\n var h = '最新价:' + price + '
涨跌额:' + zde + '
涨跌幅:' + zdf + '
成交量:' + cjl + '
成交额:' + cje + '
换手率:' + hsl + '
';\r\n imgParent.appendChild(chartRightDiv);\r\n chartRightDiv.setAttribute(\"style\", \"margin-top:0px;\");\r\n\r\n var h = '市盈率:' + syl + '
总市值:' + (zsz == \"-\" ? \"-\" : _this.gshNum(zsz)) + '
';\r\n jQuery(\"#\" + chartRightDiv.id).append(h);\r\n } else {\r\n chartRightDiv.innerHTML = '最新价:' + price + '
涨跌额:' + zde + '
涨跌幅:' + zdf + '
成交量:' + cjl + '
成交额:' + cje + '
换手率:' + hsl + '
';\r\n imgParent.appendChild(chartRightDiv);\r\n chartRightDiv.setAttribute(\"style\", \"margin-top:20px;\");\r\n tipsImageRemark.setAttribute(\"style\", \"padding-left:20px;\");\r\n }\r\n\r\n var chartNavDiv = $C(\"div\");\r\n chartNavDiv.className = \"chart-nav clear\";\r\n if (__Market.Type != \"zs\") {\r\n chartNavDiv.innerHTML = '查询该股行情 实时资金流向 深度数据揭秘 进入' + stockName + '吧 ' + stockName + '资金流';\r\n } else {\r\n chartNavDiv.innerHTML = '' + stockName + '行情 领涨个股 大盘资金流向 7*24小时快讯 进入' + stockName + '吧';\r\n }\r\n imgParent.appendChild(chartNavDiv);\r\n\r\n if (__Market.Type != \"zs\") {\r\n _this.XiangGuanGuPiao(secid, imgParent);//相关股票和相关板块\r\n } else {\r\n _this.ZhiShuLingZhangHangYe(imgParent);//领涨行业\r\n }\r\n },\r\n initialize: function (className) {\r\n if (className != \"\" || className != \"undefined\") {\r\n var tipsImageRemark = this.getElementsByClassName(\"ContentBody\", className);\r\n var href = [];\r\n var src = [];\r\n var i = 0;\r\n var BodyEndObj = $(\"ContentBody\");\r\n var BodyNextNode = BodyEndObj.nextSibling;\r\n while (BodyNextNode.nodeType != 1) {\r\n BodyNextNode = BodyNextNode.nextSibling;\r\n }\r\n\r\n if (tipsImageRemark != undefined && tipsImageRemark != null && tipsImageRemark != \"\") {\r\n for (var i = 0; i < tipsImageRemark.length; i++) {\r\n var imgParent = tipsImageRemark[i];\r\n if (imgParent.className.indexOf(\"DisableOther\") >= 0) {\r\n continue;\r\n }\r\n var imgnodes = imgParent.getElementsByTagName(\"img\");\r\n if (imgnodes.length > 0) {\r\n //data-code=\"K {股票代码}|{行情服务部市场号}|{老的市场(网站)}\" data-code2=\"K {股票代码}|{行情服务部市场号}|{市场细分类(具体含义完了,魏东海要的)}|\r\n var _datacode2 = tipsImageRemark[i].getAttribute(\"data-code2\");\r\n if (_datacode2 != null) {\r\n var _datacode2Item = _datacode2.split('|');\r\n\r\n href[i] = \"http://quote.eastmoney.com/unify/r/\" + _datacode2Item[1] + \".\" + _datacode2Item[0];\r\n imgParent.href = href[i];\r\n\r\n var _KR = imgnodes[0].getAttribute(\"data-code2\").toLowerCase().substring(0, 1);\r\n src[i] = imgnodes[0].src;\r\n if (_KR == \"k\") {\r\n src[i] = src[i].replace(\"imageType=k\", \"imageType=knews\");\r\n }\r\n imgnodes[0].src = src[i];\r\n\r\n if ((_datacode2Item[1] == \"0\" || _datacode2Item[1] == \"1\") && (_datacode2Item[2] == \"5\" || _datacode2Item[2] == \"6\" || _datacode2Item[2] == \"7\" || _datacode2Item[2] == \"1\" || _datacode2Item[2] == \"2\" || _datacode2Item[2] == \"3\" || _datacode2Item[2] == \"13\" || _datacode2Item[2] == \"80\" || _datacode2Item[2] == \"23\")) {\r\n this.initImg(_datacode2Item[0], _datacode2Item[1], tipsImageRemark[i])\r\n }\r\n }\r\n \r\n imgnodes[0].width = \"530\";\r\n imgnodes[0].height = \"276\";\r\n }\r\n }\r\n }\r\n }\r\n var bkTipAreas = this.getElementsByClassName(\"ContentBody\", \"Em_NewsBk\");\r\n for (var i = 0; i < bkTipAreas.length; i++) {\r\n bkTipAreas[i].innerHTML = '';\r\n this.ioOverall(\"http://hq2data.eastmoney.com/bk/data/bkant.js\", \"\", \"BKCache\",\r\n\t\t\t\tfunction (data) {\r\n\t\t\t\t if (data && data.Top && data.Top.length > 0) {\r\n\t\t\t\t var lzg = data.Top[0];\r\n\t\t\t\t var showStr = \"\";\r\n\t\t\t\t var tempData = \"\";\r\n\t\t\t\t var _color = \"\";\r\n\t\t\t\t for (var lz in lzg) {\r\n\t\t\t\t tempData = lzg[lz].split(\",\");\r\n\t\t\t\t _color = parseFloat(tempData[1]) == 0 ? \"\" : parseFloat(tempData[1]) > 0 ? \"red\" : \"green\";\r\n\t\t\t\t showStr += \"\" + tempData[0] + \"(\" + tempData[1] + \")\"\r\n\t\t\t\t }\r\n\t\t\t\t $(\"bkList_lzbk\").innerHTML = showStr;\r\n\t\t\t\t }\r\n\t\t\t\t});\r\n bkTipAreas[i].style.display = \"\";\r\n break\r\n }\r\n },\r\n initImg: function (_stockcode, _stockmarket, tipsImageRemark) {\r\n var _this = this;\r\n var secid = _stockmarket + \".\" + _stockcode;\r\n //行情图一圈\r\n jQuery.ajax({\r\n type: \"GET\",\r\n url: \"//push2.eastmoney.com/api/qt/stock/get?fltt=2&fields=f57,f58,f107,f43,f168,f169,f170,f47,f48,f162,f116&secid=\" + secid + \"&ut=13697a1cc677c8bfa9a496437bfef419&cb=?\",\r\n dataType: \"jsonp\",\r\n success: function (json) {\r\n if (json && json.rc == \"0\") {\r\n _this.NewsImg(secid, json, tipsImageRemark);\r\n }\r\n }\r\n });\r\n },\r\n ioOverall: function (src, charset, dataVar, callback, nodeObj) {\r\n var script = $C(\"script\");\r\n script.type = \"text/javascript\";\r\n script.charset = (charset == \"\") ? \"GB2312\" : charset;\r\n script.src = src;\r\n script._0j = this;\r\n script[document.all ? \"onreadystatechange\" : \"onload\"] = function () {\r\n if (document.all && this.readyState != \"loaded\" && this.readyState != \"complete\") {\r\n return\r\n }\r\n this[document.all ? \"onreadystatechange\" : \"onload\"] = null;\r\n if (callback) {\r\n if (nodeObj) callback(eval(dataVar), nodeObj);\r\n else callback(eval(dataVar))\r\n }\r\n this.parentNode.removeChild(this)\r\n };\r\n document.getElementsByTagName(\"head\").item(0).appendChild(script)\r\n }\r\n };\r\n try {\r\n //调用图集\r\n var ensit = new newsimg(\"EmImageRemark\");\r\n } catch (error) {\r\n \r\n }\r\n})();\r\n\r\n\r\n// 正文图表class\r\n$(\".EmImageRemark\").parent().addClass(\"clearp single-chart\");\r\n$(\".EmImageRemark\").parents(\"p\").css({\r\n \"font-size\": \"15px\",\r\n \"line-height\": \"31px\"\r\n});\r\n$(\".EmImageRemark\").children().attr(\"style\", \"\");\r\n$(\".EmImageRemark\").addClass(\"chart-left\");\r\nvar emRemark = $(\".EmImageRemark\");\r\nif ($(\".DisplayOnWebFromNewsRobot\") != null) {\r\n $(\".DisplayOnWebFromNewsRobot\").show();\r\n}\r\nemRemark.each(function () {\r\n var _this = $(this);\r\n if (_this.children(\"img\").length <= 0)\r\n _this.parent().remove();\r\n});\n\n/***/ })\n\n/******/ });\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vd2VicGFjay9ib290c3RyYXAgYTdhZWJiOWZhNjhmYjMzY2RkMjg/MzQ0MioqIiwid2VicGFjazovLy8uL2pzL25ld3NpbWcuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtRQUFBO1FBQ0E7O1FBRUE7UUFDQTs7UUFFQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTs7UUFFQTtRQUNBOztRQUVBO1FBQ0E7O1FBRUE7UUFDQTtRQUNBOzs7UUFHQTtRQUNBOztRQUVBO1FBQ0E7O1FBRUE7UUFDQSwyQ0FBMkMsY0FBYzs7UUFFekQ7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQSxLQUFLO1FBQ0w7UUFDQTs7UUFFQTtRQUNBO1FBQ0E7UUFDQSwyQkFBMkIsMEJBQTBCLEVBQUU7UUFDdkQsaUNBQWlDLGVBQWU7UUFDaEQ7UUFDQTtRQUNBOztRQUVBO1FBQ0Esc0RBQXNELCtEQUErRDs7UUFFckg7UUFDQTs7UUFFQTtRQUNBOzs7Ozs7OztBQ2hFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLG9CQUFvQjtBQUNwQjtBQUNBO0FBQ0E7QUFDQSwyQkFBMkIsd0JBQXdCO0FBQ25EO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNULGdDQUFnQztBQUNoQztBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBLGFBQWE7QUFDYjtBQUNBOztBQUVBO0FBQ0EsU0FBUztBQUNULDZCQUE2QjtBQUM3QjtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVCxz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QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMsRSIsImZpbGUiOiJuZXdzaW1nLmpzIiwic291cmNlc0NvbnRlbnQiOlsiIFx0Ly8gVGhlIG1vZHVsZSBjYWNoZVxuIFx0dmFyIGluc3RhbGxlZE1vZHVsZXMgPSB7fTtcblxuIFx0Ly8gVGhlIHJlcXVpcmUgZnVuY3Rpb25cbiBcdGZ1bmN0aW9uIF9fd2VicGFja19yZXF1aXJlX18obW9kdWxlSWQpIHtcblxuIFx0XHQvLyBDaGVjayBpZiBtb2R1bGUgaXMgaW4gY2FjaGVcbiBcdFx0aWYoaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF0pIHtcbiBcdFx0XHRyZXR1cm4gaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF0uZXhwb3J0cztcbiBcdFx0fVxuIFx0XHQvLyBDcmVhdGUgYSBuZXcgbW9kdWxlIChhbmQgcHV0IGl0IGludG8gdGhlIGNhY2hlKVxuIFx0XHR2YXIgbW9kdWxlID0gaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF0gPSB7XG4gXHRcdFx0aTogbW9kdWxlSWQsXG4gXHRcdFx0bDogZmFsc2UsXG4gXHRcdFx0ZXhwb3J0czoge31cbiBcdFx0fTtcblxuIFx0XHQvLyBFeGVjdXRlIHRoZSBtb2R1bGUgZnVuY3Rpb25cbiBcdFx0bW9kdWxlc1ttb2R1bGVJZF0uY2FsbChtb2R1bGUuZXhwb3J0cywgbW9kdWxlLCBtb2R1bGUuZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXyk7XG5cbiBcdFx0Ly8gRmxhZyB0aGUgbW9kdWxlIGFzIGxvYWRlZFxuIFx0XHRtb2R1bGUubCA9IHRydWU7XG5cbiBcdFx0Ly8gUmV0dXJuIHRoZSBleHBvcnRzIG9mIHRoZSBtb2R1bGVcbiBcdFx0cmV0dXJuIG1vZHVsZS5leHBvcnRzO1xuIFx0fVxuXG5cbiBcdC8vIGV4cG9zZSB0aGUgbW9kdWxlcyBvYmplY3QgKF9fd2VicGFja19tb2R1bGVzX18pXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLm0gPSBtb2R1bGVzO1xuXG4gXHQvLyBleHBvc2UgdGhlIG1vZHVsZSBjYWNoZVxuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5jID0gaW5zdGFsbGVkTW9kdWxlcztcblxuIFx0Ly8gaWRlbnRpdHkgZnVuY3Rpb24gZm9yIGNhbGxpbmcgaGFybW9ueSBpbXBvcnRzIHdpdGggdGhlIGNvcnJlY3QgY29udGV4dFxuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5pID0gZnVuY3Rpb24odmFsdWUpIHsgcmV0dXJuIHZhbHVlOyB9O1xuXG4gXHQvLyBkZWZpbmUgZ2V0dGVyIGZ1bmN0aW9uIGZvciBoYXJtb255IGV4cG9ydHNcbiBcdF9fd2VicGFja19yZXF1aXJlX18uZCA9IGZ1bmN0aW9uKGV4cG9ydHMsIG5hbWUsIGdldHRlcikge1xuIFx0XHRpZighX193ZWJwYWNrX3JlcXVpcmVfXy5vKGV4cG9ydHMsIG5hbWUpKSB7XG4gXHRcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIG5hbWUsIHtcbiBcdFx0XHRcdGNvbmZpZ3VyYWJsZTogZmFsc2UsXG4gXHRcdFx0XHRlbnVtZXJhYmxlOiB0cnVlLFxuIFx0XHRcdFx0Z2V0OiBnZXR0ZXJcbiBcdFx0XHR9KTtcbiBcdFx0fVxuIFx0fTtcblxuIFx0Ly8gZ2V0RGVmYXVsdEV4cG9ydCBmdW5jdGlvbiBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIG5vbi1oYXJtb255IG1vZHVsZXNcbiBcdF9fd2VicGFja19yZXF1aXJlX18ubiA9IGZ1bmN0aW9uKG1vZHVsZSkge1xuIFx0XHR2YXIgZ2V0dGVyID0gbW9kdWxlICYmIG1vZHVsZS5fX2VzTW9kdWxlID9cbiBcdFx0XHRmdW5jdGlvbiBnZXREZWZhdWx0KCkgeyByZXR1cm4gbW9kdWxlWydkZWZhdWx0J107IH0gOlxuIFx0XHRcdGZ1bmN0aW9uIGdldE1vZHVsZUV4cG9ydHMoKSB7IHJldHVybiBtb2R1bGU7IH07XG4gXHRcdF9fd2VicGFja19yZXF1aXJlX18uZChnZXR0ZXIsICdhJywgZ2V0dGVyKTtcbiBcdFx0cmV0dXJuIGdldHRlcjtcbiBcdH07XG5cbiBcdC8vIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbFxuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5vID0gZnVuY3Rpb24ob2JqZWN0LCBwcm9wZXJ0eSkgeyByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iamVjdCwgcHJvcGVydHkpOyB9O1xuXG4gXHQvLyBfX3dlYnBhY2tfcHVibGljX3BhdGhfX1xuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5wID0gXCJcIjtcblxuIFx0Ly8gTG9hZCBlbnRyeSBtb2R1bGUgYW5kIHJldHVybiBleHBvcnRzXG4gXHRyZXR1cm4gX193ZWJwYWNrX3JlcXVpcmVfXyhfX3dlYnBhY2tfcmVxdWlyZV9fLnMgPSAyMCk7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gd2VicGFjay9ib290c3RyYXAgYTdhZWJiOWZhNjhmYjMzY2RkMjgiLCIoZnVuY3Rpb24gKCkge1xyXG5cclxuICAgIGlmICh0eXBlb2YgKCQpICE9ICdmdW5jdGlvbicpIGZ1bmN0aW9uICQobykge1xyXG4gICAgICAgIHJldHVybiB0eXBlb2YgKG8pID09ICdzdHJpbmcnID8gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQobykgOiBvXHJcbiAgICB9XHJcbiAgICBpZiAodHlwZW9mICgkQykgIT0gJ2Z1bmN0aW9uJykgZnVuY3Rpb24gJEMocykge1xyXG4gICAgICAgIHJldHVybiBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHMpXHJcbiAgICB9XHJcbiAgICBpZiAodHlwZW9mIENsYXNzID09IFwidW5kZWZpbmVkXCIpIENsYXNzID0ge307XHJcbiAgICBDbGFzcy5Bc1Byb3RvdHlwZSA9IHt9O1xyXG4gICAgQ2xhc3MuY3JlYXRlID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIHJldHVybiBmdW5jdGlvbiAodCkge1xyXG4gICAgICAgICAgICBpZiAodCAhPSBDbGFzcy5Bc1Byb3RvdHlwZSkgdGhpcy5pbml0aWFsaXplLmFwcGx5KHRoaXMsIGFyZ3VtZW50cylcclxuICAgICAgICB9XHJcbiAgICB9O1xyXG5cclxuICAgIHZhciBuZXdzaW1nID0gQ2xhc3MuY3JlYXRlKCk7XHJcbiAgICB2YXIgY2hhcnRJZCA9IDE7ICAgIC8v5Li76KaB5Yy65YiG5Zu+6KGo55qE5ZSv5LiA5oCnXHJcbiAgICBuZXdzaW1nLnByb3RvdHlwZSA9IHtcclxuICAgICAgICBnZXRFbGVtZW50c0J5Q2xhc3NOYW1lOiBmdW5jdGlvbiAob2JqLCBuKSB7XHJcbiAgICAgICAgICAgIHZhciBjbGFzc0VsZW1lbnRzID0gW10sIGFsbEVsZW1lbnRzID0gJChvYmopLmdldEVsZW1lbnRzQnlUYWdOYW1lKCcqJyk7XHJcbiAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYWxsRWxlbWVudHMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgICAgIGlmIChhbGxFbGVtZW50c1tpXS5jbGFzc05hbWUgPT0gbikgY2xhc3NFbGVtZW50c1tjbGFzc0VsZW1lbnRzLmxlbmd0aF0gPSBhbGxFbGVtZW50c1tpXVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiBjbGFzc0VsZW1lbnRzO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZ2V0TWFya2V0OiBmdW5jdGlvbiAodHlwZSwgY29kZSkge1xyXG4gICAgICAgICAgICB2YXIgTWFya2V0ID0gXCJzaFwiO1xyXG4gICAgICAgICAgICBpZiAodHlwZSA9PSBcIjFcIikge1xyXG4gICAgICAgICAgICAgICAgTWFya2V0ID0gXCJzaFwiO1xyXG4gICAgICAgICAgICAgICAgaWYgKGNvZGUuc3Vic3RyaW5nKDAsIDMpID09IFwiMDAwXCIpIE1hcmtldCA9IFwienNcIjtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIE1hcmtldCA9IFwic3pcIjtcclxuICAgICAgICAgICAgICAgIGlmIChjb2RlLnN1YnN0cmluZygwLCAyKSA9PSBcIjM5XCIpIE1hcmtldCA9IFwienNcIjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgICAgVHlwZTogTWFya2V0LFxyXG4gICAgICAgICAgICAgICAgQ29kZTogTWFya2V0ICsgY29kZVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICBnc2hOdW06IGZ1bmN0aW9uIChzdHIpIHsvL+agvOW8j+WMluWkp+mineaVsOWtl1xyXG4gICAgICAgICAgICBpZiAoc3RyID09IFwiLVwiKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gXCItXCI7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHZhciBkTnVtID0gcGFyc2VGbG9hdChzdHIpO1xyXG4gICAgICAgICAgICB2YXIgZHcgPSBcIlwiO1xyXG4gICAgICAgICAgICBpZiAoZE51bSA+PSAxMDAwMDAwMDApIHtcclxuICAgICAgICAgICAgICAgIGROdW0gPSAoZE51bSAvIDEwMDAwMDAwMCk7XHJcbiAgICAgICAgICAgICAgICBkdyA9IFwi5Lq/XCI7XHJcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoZE51bSA+PSAxMDAwMCkge1xyXG4gICAgICAgICAgICAgICAgZE51bSA9IChkTnVtIC8gMTAwMDApO1xyXG4gICAgICAgICAgICAgICAgZHcgPSBcIuS4h1wiO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAoZE51bSA+PSAxMDApIHtcclxuICAgICAgICAgICAgICAgIGROdW0gPSBkTnVtLnRvRml4ZWQoMCk7XHJcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoZE51bSA+PSAxMCkge1xyXG4gICAgICAgICAgICAgICAgZE51bSA9IGROdW0udG9GaXhlZCgxKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGROdW0gPSBkTnVtLnRvRml4ZWQoMik7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHJldHVybiBkTnVtICsgZHc7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBnc2haZDpmdW5jdGlvbiAoc3RyKXsvL+agvOW8j+WMlua2qOi3jOW5heaIlua2qOi3jOmineS/neeVmTLkvY3lsI/mlbBcclxuICAgICAgICAgICAgaWYgKHN0ciA9PSBcIi1cIikge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIFwiLVwiO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiBwYXJzZUZsb2F0KHN0cikudG9GaXhlZCgyKTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIFhpYW5nR3Vhbkd1UGlhbzogZnVuY3Rpb24gKHNlY2lkLCBpbWdQYXJlbnQpIHsvL+ebuOWFs+iCoeelqFxyXG4gICAgICAgICAgICB2YXIgX3RoaXMgPSB0aGlzO1xyXG4gICAgICAgICAgICB2YXIgY2hhcnRGb290ZXJEaXYgPSAkQyhcImRpdlwiKTtcclxuICAgICAgICAgICAgY2hhcnRGb290ZXJEaXYuY2xhc3NOYW1lID0gXCJjaGFydC1mb290ZXJcIjtcclxuICAgICAgICAgICAgalF1ZXJ5LmFqYXgoe1xyXG4gICAgICAgICAgICAgICAgdHlwZTogXCJHRVRcIixcclxuICAgICAgICAgICAgICAgIHVybDogXCIvL3B1c2gyLmVhc3Rtb25leS5jb20vYXBpL3F0L3NsaXN0L2dldD9waT0wJnB6PTUmcG89MSZzcHQ9NCZmaWVsZHM9ZjEyLGYxMyxmMTQsZjE1LGYzLGY0LGY2LGY1LGYxMSxmMTAsZjImdXQ9MTM2OTdhMWNjNjc3YzhiZmE5YTQ5NjQzN2JmZWY0MTkmc2VjaWQ9XCIgKyBzZWNpZCArIFwiJmZpZD1mMyZmbHR0PTImY2I9P1wiLFxyXG4gICAgICAgICAgICAgICAgZGF0YVR5cGU6IFwianNvbnBcIixcclxuICAgICAgICAgICAgICAgIGRhdGE6IHt9LFxyXG4gICAgICAgICAgICAgICAgc3VjY2VzczogZnVuY3Rpb24gKGpkYXRhKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGpkYXRhICYmIGpkYXRhLnJjID09IFwiMFwiKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBmb290ZXJJbm5lclJvdyA9ICc8ZGl2IGNsYXNzPVwiY2hhcnQtZm9vdGVyLXRpdGxlXCI+55u45YWz6IKh56WoPC9kaXY+PGRpdiBjbGFzcz1cImNoYXJ0LWZvb3Rlci1jb25cIj48dWw+JztcclxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIF9pID0gMDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBqZGF0YS5kYXRhLnRvdGFsOyBpKyspIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChfaSA9PSA0KSB7Ly/mnIDlpJrmmL7npLo05p2hXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgaXRlbSA9IGpkYXRhLmRhdGEuZGlmZltpXTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBfY29kZSA9IGl0ZW0uZjEyOy8v6IKh56Wo5Luj56CBXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgX21hcmtldCA9IGl0ZW0uZjEzOy8v5biC5Zy6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc2VjaWQgPT0gX21hcmtldCArIFwiLlwiICsgX2NvZGUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBfbmFtZSA9IGl0ZW0uZjE0Oy8v6IKh56Wo5ZCN56ewXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgX3ByaWNlID0gaXRlbS5mMjsvL+acgOaWsOS7t1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIF96ZGYgPSBpdGVtLmYzOy8v5rao6LeM5bmFXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfemRmID0gKF96ZGYgPT0gXCItXCIgPyBcIi1cIiA6IChfdGhpcy5nc2haZChfemRmKSArIFwiJVwiKSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgX3pkZSA9IGl0ZW0uZjQ7Ly/mtqjot4zpop1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIF96ZGUgPSBfdGhpcy5nc2haZChfemRlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHpkQ29sb3IgPSBcIlwiO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKF96ZGUgPiAwKSB6ZENvbG9yID0gXCIjRkYwMDAwXCI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChfemRlIDwgMCkgemRDb2xvciA9IFwiIzAwOTkwMFwiO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9vdGVySW5uZXJSb3cgKz0gJzxsaT48YSBocmVmPVwiaHR0cDovL3F1b3RlLmVhc3Rtb25leS5jb20vdW5pZnkvci8nICsgX21hcmtldCArICcuJyArIF9jb2RlICsgJ1wiIHRhcmdldD1cIl9ibGFua1wiPicgKyBfbmFtZS5yZXBsYWNlKC8gL2lnLCBcIlwiKSArICc8L2E+KDxmb250IHN0eWxlPVwiY29sb3I6JyArIHpkQ29sb3IgKyAnOycrICgoX3ByaWNlICsgJyAnICsgX3pkZikubGVuZ3RoID4gMTUgPyAnZm9udC1zaXplOjEwcHg7JyA6ICcnKSArJ1wiPicgKyBfcHJpY2UgKyAnICcgKyBfemRmICsgJzwvZm9udD4pPC9saT4nO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgX2krKztcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBmb290ZXJJbm5lclJvdyArPSAnPC91bD48L2Rpdj48L2Rpdj4nO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjaGFydEZvb3RlckRpdi5pbm5lckhUTUwgPSBmb290ZXJJbm5lclJvdztcclxuICAgICAgICAgICAgICAgICAgICAgICAgaW1nUGFyZW50LmFwcGVuZENoaWxkKGNoYXJ0Rm9vdGVyRGl2KTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIF90aGlzLlhpYW5nR3VhbkJhbkt1YWkoc2VjaWQsIGNoYXJ0Rm9vdGVyRGl2KTsvL+ebuOWFs+adv+Wdl1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBYaWFuZ0d1YW5CYW5LdWFpOiBmdW5jdGlvbiAoc2VjaWQsIGNoYXJ0Rm9vdGVyRGl2KSB7Ly/nm7jlhbPmnb/lnZdcclxuICAgICAgICAgICAgdmFyIF90aGlzID0gdGhpcztcclxuICAgICAgICAgICAgalF1ZXJ5LmFqYXgoe1xyXG4gICAgICAgICAgICAgICAgdHlwZTogXCJHRVRcIixcclxuICAgICAgICAgICAgICAgIHVybDogXCIvL3B1c2gyLmVhc3Rtb25leS5jb20vYXBpL3F0L3NsaXN0L2dldD91dD0xMzY5N2ExY2M2NzdjOGJmYTlhNDk2NDM3YmZlZjQxOSZzcHQ9MyZwaT0wJnB6PTQmcG89MSZmaWVsZHM9ZjE0LGYzLGY0LGYxMjgsZjEyLGYxMyxmMTAwLGYxMDIsZjEwMyZzZWNpZD1cIiArIHNlY2lkICsgXCImZmlkPWYzJmZsdHQ9MiZjYj0/XCIsXHJcbiAgICAgICAgICAgICAgICBkYXRhVHlwZTogXCJqc29ucFwiLFxyXG4gICAgICAgICAgICAgICAgc3VjY2VzczogZnVuY3Rpb24gKGpkYXRhKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGpkYXRhICYmIGpkYXRhLnJjID09IFwiMFwiKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBodG1sQksgPSAkQyhcImRpdlwiKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaHRtbEJLLmNsYXNzTmFtZSA9IFwiY2hhcnQtZm9vdGVyLXRpdGxlXCI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGh0bWxCSy5pbm5lckhUTUwgPSBcIuebuOWFs+adv+Wdl1wiO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgaHRtbEJLQ29udGVudCA9ICRDKFwiZGl2XCIpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBodG1sQktDb250ZW50LmNsYXNzTmFtZSA9IFwiY2hhcnQtZm9vdGVyLWNvbiBjaGFydC1jb25jZXB0XCI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBoID0gJzx1bD4nO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IDQgJiYgaSA8IGpkYXRhLmRhdGEudG90YWw7IGkrKykgey8v5pyA5aSa5pi+56S6NOadoVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGl0ZW0gPSBqZGF0YS5kYXRhLmRpZmZbaV07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgX2JrQ29kZSA9IGl0ZW0uZjEyOy8v5p2/5Z2X5Luj56CBXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgX2JrTWFya2V0ID0gaXRlbS5mMTM7Ly/mnb/lnZfluILlnLpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBfYmtOYW1lID0gaXRlbS5mMTQ7Ly/mnb/lnZflkI3np7BcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBfYmtaZGYgPSBpdGVtLmYzOy8v5p2/5Z2X5rao6LeM5bmFXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfYmtaZGYgPSAoX2JrWmRmID09IFwiLVwiID8gXCItXCIgOiAoX3RoaXMuZ3NoWmQoX2JrWmRmKSArIFwiJVwiKSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgX2JrWmRlID0gaXRlbS5mNDsvL+adv+Wdl+a2qOi3jOminVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgX2JrWmRlID0gX3RoaXMuZ3NoWmQoX2JrWmRlKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB6ZENvbG9yID0gXCJcIjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChfYmtaZGUgPiAwKSB6ZENvbG9yID0gXCIjRkYwMDAwXCI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChfYmtaZGUgPCAwKSB6ZENvbG9yID0gXCIjMDA5OTAwXCI7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaCArPSAnPGxpPjxhIGhyZWY9XCJodHRwOi8vcXVvdGUuZWFzdG1vbmV5LmNvbS9jZW50ZXIvYm9hcmRsaXN0Lmh0bWwjYm9hcmRzLScgKyBfYmtDb2RlICsgJzFcIiB0YXJnZXQ9XCJfYmxhbmtcIj4nICsgX2JrTmFtZSArICc8L2E+KDxmb250IHN0eWxlPVwiY29sb3I6JyArIHpkQ29sb3IgKyAnXCI+JyArIF9ia1pkZiArICc8L2ZvbnQ+KTwvbGk+JzsvLyBjbGFzcz1cImZzMTJcIlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBoICs9ICc8L3VsPjwvZGl2Pic7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGh0bWxCS0NvbnRlbnQuaW5uZXJIVE1MID0gaDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2hhcnRGb290ZXJEaXYuYXBwZW5kQ2hpbGQoaHRtbEJLKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2hhcnRGb290ZXJEaXYuYXBwZW5kQ2hpbGQoaHRtbEJLQ29udGVudCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIFpoaVNodUxpbmdaaGFuZ0hhbmdZZTogZnVuY3Rpb24gKGltZ1BhcmVudCkgey8v6aKG5rao6KGM5LiaKOaMh+aVsClcclxuICAgICAgICAgICAgdmFyIF90aGlzID0gdGhpcztcclxuICAgICAgICAgICAgdmFyIGNoYXJ0Rm9vdGVyRGl2ID0gJEMoXCJkaXZcIik7XHJcbiAgICAgICAgICAgIGNoYXJ0Rm9vdGVyRGl2LmNsYXNzTmFtZSA9IFwiY2hhcnQtZm9vdGVyXCI7XHJcbiAgICAgICAgICAgIGpRdWVyeS5hamF4KHtcclxuICAgICAgICAgICAgICAgIHR5cGU6IFwiR0VUXCIsXHJcbiAgICAgICAgICAgICAgICB1cmw6IFwiLy9wdXNoMi5lYXN0bW9uZXkuY29tL2FwaS9xdC9jbGlzdC9nZXQ/dXQ9MTM2OTdhMWNjNjc3YzhiZmE5YTQ5NjQzN2JmZWY0MTkmZnM9bTo5MCt0OjImZmlkPWYzJnBvPTEmcGk9MCZwej0yJmZpZWxkcz1mMyxmNCxmMTIsZjEzLGYxNCxmMTA0LGYxMDUsZjEyOCxmMTQwLGYxNDEsZjEzNiZmbHR0PTImaW52dD0yJmNiPT9cIixcclxuICAgICAgICAgICAgICAgIGRhdGFUeXBlOiBcImpzb25wXCIsXHJcbiAgICAgICAgICAgICAgICBzdWNjZXNzOiBmdW5jdGlvbiAoamRhdGEpIHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoamRhdGEgJiYgamRhdGEucmMgPT0gXCIwXCIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGZvb3RlcklubmVyUm93ID0gJycgKyAnPGRpdiBjbGFzcz1cImNoYXJ0LWZvb3Rlci10aXRsZVwiPumihua2qOihjOS4mjwvZGl2PjxkaXYgY2xhc3M9XCJjaGFydC1mb290ZXItbHpoeVwiPic7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMiAmJiBpIDwgamRhdGEuZGF0YS50b3RhbDsgaSsrKSB7Ly/mnIDlpJrmmL7npLoy5p2hXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgaXRlbSA9IGpkYXRhLmRhdGEuZGlmZltpXTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBfYmtDb2RlID0gaXRlbS5mMTI7Ly/mnb/lnZfku6PnoIFcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBfYmtNYXJrZXQgPSBpdGVtLmYxMzsvL+adv+Wdl+W4guWculxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIF9ia05hbWUgPSBpdGVtLmYxNDsvL+adv+Wdl+WQjeensFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIF9ia1pkZiA9IGl0ZW0uZjM7Ly/mnb/lnZfmtqjot4zluYVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9ia1pkZiA9IChfYmtaZGYgPT0gXCItXCIgPyBcIi1cIiA6IChfdGhpcy5nc2haZChfYmtaZGYpICsgXCIlXCIpKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBfYmtaZGUgPSBpdGVtLmY0Oy8v5p2/5Z2X5rao6LeM6aKdXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfYmtaZGUgPSBfdGhpcy5nc2haZChfYmtaZGUpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGJremRDb2xvciA9IFwiXCI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoX2JrWmRlID4gMCkgYmt6ZENvbG9yID0gXCIjRkYwMDAwXCI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChfYmtaZGUgPCAwKSBia3pkQ29sb3IgPSBcIiMwMDk5MDBcIjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBfc3pqcyA9IGl0ZW0uZjEwNDsvL+S4iua2qOWutuaVsFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIF94ZGpzID0gaXRlbS5mMTA1Oy8v5LiL6LeM5a625pWwXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgX2NvZGUgPSBpdGVtLmYxNDA7Ly/ogqHnpajku6PnoIFcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBfbWFya2V0ID0gaXRlbS5mMTQxOy8v6IKh56Wo5biC5Zy6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgX25hbWUgPSBpdGVtLmYxMjg7Ly/ogqHnpajlkI3np7BcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBfemRmID0gaXRlbS5mMTM2Oy8v5rao6LeM5bmFXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgemRDb2xvciA9IFwiXCI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoX3pkZiA+IDApIHpkQ29sb3IgPSBcIiNGRjAwMDBcIjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKF96ZGYgPCAwKSB6ZENvbG9yID0gXCIjMDA5OTAwXCI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfemRmID0gKF96ZGYgPT0gXCItXCIgPyBcIi1cIiA6IChfdGhpcy5nc2haZChfemRmKSArIFwiJVwiKSk7Ly/mtqjot4zluYVcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb290ZXJJbm5lclJvdyArPSAnPHVsPic7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoX2JrTmFtZSA9PSBcIlwiIHx8IF9ia05hbWUgPT0gXCItXCIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb290ZXJJbm5lclJvdyArPSAnPGxpPicgKyAoaSArIDEpICsgJ+OAgS08L2xpPic7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvb3RlcklubmVyUm93ICs9ICc8bGk+JyArIChpICsgMSkgKyAn44CBPGEgaHJlZj1cImh0dHA6Ly9xdW90ZS5lYXN0bW9uZXkuY29tL2NlbnRlci9ib2FyZGxpc3QuaHRtbCNib2FyZHMtJyArIF9ia0NvZGUgKyAnMVwiIHRhcmdldD1cIl9ibGFua1wiIHN0eWxlPVwiZmxvYXQ6bm9uZTtcIj4nICsgX2JrTmFtZSArICc8L2E+PC9saT4nO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9vdGVySW5uZXJSb3cgKz0gJzxsaT7mtqjluYXvvJo8c3BhbiBzdHlsZT1cImNvbG9yOicgKyBia3pkQ29sb3IgKyAnO1wiPicgKyBfYmtaZGYgKyAnPC9zcGFuPjwvbGk+JztcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvb3RlcklubmVyUm93ICs9ICc8bGkgY2xhc3M9XCJsemh5LXN6XCI+5LiK5rao77yaPHNwYW4gc3R5bGU9XCJjb2xvcjojRkYwMDAwO1wiPicgKyBfc3pqcyArICc8L3NwYW4+5a62PC9saT4nO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9vdGVySW5uZXJSb3cgKz0gJzxsaSBjbGFzcz1cImx6aHkteGRcIj7kuIvot4zvvJo8c3BhbiBzdHlsZT1cImNvbG9yOiMwMDk5MDA7XCI+JyArIF94ZGpzICsgJzwvc3Bhbj7lrrY8L2xpPic7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoX25hbWUgPT0gXCJcIiB8fCBfbmFtZSA9PSBcIi1cIikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvb3RlcklubmVyUm93ICs9ICc8bGkgY2xhc3M9XCJsemh5LWx6Z1wiPumihua2qOiCoe+8mi08L2xpPic7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvb3RlcklubmVyUm93ICs9ICc8bGkgY2xhc3M9XCJsemh5LWx6Z1wiPumihua2qOiCoe+8mjxhIGhyZWY9XCJodHRwOi8vcXVvdGUuZWFzdG1vbmV5LmNvbS91bmlmeS9yLycgKyBfbWFya2V0ICsgJy4nICsgX2NvZGUgKyAnXCIgdGFyZ2V0PVwiX2JsYW5rXCI+JyArIF9uYW1lICsgJzwvYT48L2xpPic7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb290ZXJJbm5lclJvdyArPSAnPGxpPua2qOW5he+8mjxzcGFuIHN0eWxlPVwiY29sb3I6JyArIHpkQ29sb3IgKyAnO1wiPicgKyBfemRmICsgJzwvc3Bhbj48L2xpPic7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb290ZXJJbm5lclJvdyArPSAnPC91bD4nXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgZm9vdGVySW5uZXJSb3cgKz0gJzwvZGl2Pic7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNoYXJ0Rm9vdGVyRGl2LmlubmVySFRNTCA9IGZvb3RlcklubmVyUm93O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpbWdQYXJlbnQuYXBwZW5kQ2hpbGQoY2hhcnRGb290ZXJEaXYpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBOZXdzSW1nOiBmdW5jdGlvbiAoc2VjaWQsIGpzb24sIHRpcHNJbWFnZVJlbWFyaykge1xyXG4gICAgICAgICAgICB2YXIgX3RoaXMgPSB0aGlzO1xyXG4gICAgICAgICAgICB2YXIgcHJpY2UgPSBqc29uLmRhdGEuZjQzOy8v5pyA5paw5Lu3XHJcbiAgICAgICAgICAgIHZhciBjamwgPSBqc29uLmRhdGEuZjQ3ID09IFwiLVwiID8gXCItXCIgOiAoX3RoaXMuZ3NoTnVtKGpzb24uZGF0YS5mNDcpICsgXCLmiYtcIik7Ly/miJDkuqTph49cclxuICAgICAgICAgICAgdmFyIGNqZSA9IGpzb24uZGF0YS5mNDggPT0gXCItXCIgPyBcIi1cIiA6IF90aGlzLmdzaE51bShqc29uLmRhdGEuZjQ4KTsvL+aIkOS6pOminVxyXG4gICAgICAgICAgICB2YXIgc3RvY2tDb2RlID0ganNvbi5kYXRhLmY1NzsvL+S7o+eggVxyXG4gICAgICAgICAgICB2YXIgc3RvY2tOYW1lID0ganNvbi5kYXRhLmY1ODsvL+WQjeensFxyXG4gICAgICAgICAgICB2YXIgc3RvY2tNYXJrZXQgPSBqc29uLmRhdGEuZjEwNzsvL+W4guWculxyXG4gICAgICAgICAgICB2YXIgaHNsID0ganNvbi5kYXRhLmYxNjg7Ly/mjaLmiYvnjodcclxuICAgICAgICAgICAgaHNsID0gKGhzbCA9PSBcIi1cIiA/IFwiLVwiIDogKF90aGlzLmdzaFpkKGhzbCkgKyBcIiVcIikpXHJcbiAgICAgICAgICAgIHZhciB6ZGUgPSBqc29uLmRhdGEuZjE2OTsvL+a2qOi3jOminVxyXG4gICAgICAgICAgICB2YXIgemRmID0ganNvbi5kYXRhLmYxNzA7Ly/mtqjot4zluYVcclxuICAgICAgICAgICAgemRmID0gKHpkZiA9PSBcIi1cIiA/IFwiLVwiIDogKF90aGlzLmdzaFpkKHpkZikgKyBcIiVcIikpXHJcbiAgICAgICAgICAgIHZhciBzeWwgPSBqc29uLmRhdGEuZjE2MjsvL+W4guebiOeOhyjliqjmgIEpXHJcbiAgICAgICAgICAgIHZhciB6c3ogPSBqc29uLmRhdGEuZjExNjsvL+aAu+W4guWAvFxyXG5cclxuICAgICAgICAgICAgdmFyIGltZ1BhcmVudCA9IHRpcHNJbWFnZVJlbWFyay5wYXJlbnROb2RlO1xyXG4gICAgICAgICAgICBpbWdQYXJlbnQuY2xhc3NOYW1lID0gXCJiLWNoYXJ0IGNsZWFycFwiO1xyXG4gICAgICAgICAgICBqUXVlcnkodGlwc0ltYWdlUmVtYXJrKS5jaGlsZHJlbigpLmF0dHIoXCJzdHlsZVwiLCBcIlwiKTtcclxuXHJcbiAgICAgICAgICAgIHZhciBfX01hcmtldCA9IF90aGlzLmdldE1hcmtldChzdG9ja01hcmtldCwgc3RvY2tDb2RlKTtcclxuXHJcbiAgICAgICAgICAgIHZhciBpbWdTcmMgPSB0aXBzSW1hZ2VSZW1hcmsuY2hpbGROb2Rlc1swXS5zcmM7XHJcbiAgICAgICAgICAgIHZhciB6ZENvbG9yID0gXCJcIjtcclxuICAgICAgICAgICAgaWYgKHpkZSA+IDApIHpkQ29sb3IgPSBcIiNGRjAwMDBcIjtcclxuICAgICAgICAgICAgZWxzZSBpZiAoemRlIDwgMCkgemRDb2xvciA9IFwiIzAwOTkwMFwiO1xyXG5cclxuICAgICAgICAgICAgaWYgKF9fTWFya2V0LlR5cGUgIT0gXCJ6c1wiKSB7Ly/lpITnkIblm77ooajlt6bkvqdcclxuICAgICAgICAgICAgICAgIHZhciBjaGFydExlZnREaXYgPSAkQyhcImRpdlwiKTtcclxuICAgICAgICAgICAgICAgIGNoYXJ0TGVmdERpdi5jbGFzc05hbWUgPSBcImNoYXJ0LWxlZnQyXCI7XHJcbiAgICAgICAgICAgICAgICBjaGFydExlZnREaXYuaWQgPSBcImNoYXJ0bGVmdDJcIiArIHN0b2NrQ29kZSArIGNoYXJ0SWQ7XHJcbiAgICAgICAgICAgICAgICB2YXIgX2h0bWwgPSAnPGRpdiBzdHlsZT1cImJvcmRlci1sZWZ0OiAycHggc29saWQgIzM5NTQ5MTtsaW5lLWhlaWdodDoxNHB4O2ZvbnQtc2l6ZToxMnB4O3BhZGRpbmc6MTNweCAwO1wiPjxhIHN0eWxlPVwiY29sb3I6IzM2MzYzNjtcIiBocmVmPVwiaHR0cDovL3F1b3RlLmVhc3Rtb25leS5jb20vdW5pZnkvci8nICsgc3RvY2tNYXJrZXQgKyAnLicgKyBzdG9ja0NvZGUgKyAnP2Zyb209Y2xhc3NpYyZldmVudGNvZGU9V2ViX3F1b3RlX2VudHJhbmNlMVwiIHRyYWNrZXItZXZlbnRjb2RlPVwiZ3BwZF96eHp3eV9ocXRnbWtfZGpreHRcIiB0cmFja2VyLWV4dGluZm89XCJzb3VyY2U6bmV3c2NoYW5uZWw7XCI+Szxicj7nur/lm748L2E+PC9kaXY+JztcclxuICAgICAgICAgICAgICAgIF9odG1sICs9ICc8ZGl2IHN0eWxlPVwiYm9yZGVyOiAxcHggc29saWQgI2FhYTtib3JkZXItYm90dG9tOjA7YmFja2dyb3VuZDojZjJmMmYyO2xpbmUtaGVpZ2h0OjE0cHg7Zm9udC1zaXplOjEycHg7cGFkZGluZzoxM3B4IDA7XCI+PGEgc3R5bGU9XCJjb2xvcjojMzYzNjM2O1wiIGhyZWY9XCJodHRwOi8vZGF0YS5lYXN0bW9uZXkuY29tL3N0b2NrZGF0YS8nICsgc3RvY2tDb2RlICsgJy5odG1sXCIgdHJhY2tlci1ldmVudGNvZGU9XCJncHBkX3p4end5X2hxdGdta19kanRzc2pcIiB0cmFja2VyLWV4dGluZm89XCJzb3VyY2U6bmV3c2NoYW5uZWw7XCI+54m56Imy5pWw5o2uPC9hPjwvZGl2Pic7XHJcbiAgICAgICAgICAgICAgICBfaHRtbCArPSAnPGRpdiBzdHlsZT1cImJvcmRlcjogMXB4IHNvbGlkICNhYWE7Ym9yZGVyLWJvdHRvbTowO2JhY2tncm91bmQ6I2YyZjJmMjtsaW5lLWhlaWdodDoxNHB4O2ZvbnQtc2l6ZToxMnB4O3BhZGRpbmc6MTNweCAwO1wiPjxhIHN0eWxlPVwiY29sb3I6IzM2MzYzNjtcIiBocmVmPVwiaHR0cDovL2RhdGEuZWFzdG1vbmV5LmNvbS96amx4LycgKyBzdG9ja0NvZGUgKyAnLmh0bWxcIiB0cmFja2VyLWV2ZW50Y29kZT1cImdwcGRfenh6d3lfaHF0Z21rX2RqempseFwiIHRyYWNrZXItZXh0aW5mbz1cInNvdXJjZTpuZXdzY2hhbm5lbDtcIj7otYTph5HmtYHlkJE8L2E+PC9kaXY+JztcclxuICAgICAgICAgICAgICAgIF9odG1sICs9ICc8ZGl2IHN0eWxlPVwiYm9yZGVyOiAxcHggc29saWQgI2FhYTtib3JkZXItYm90dG9tOjA7YmFja2dyb3VuZDojZjJmMmYyO2xpbmUtaGVpZ2h0OjE0cHg7Zm9udC1zaXplOjEycHg7cGFkZGluZzoyMHB4IDA7XCI+PGEgc3R5bGU9XCJjb2xvcjojMzYzNjM2O1wiIGhyZWY9XCJodHRwOi8vZGF0YS5lYXN0bW9uZXkuY29tL25vdGljZXMvc3RvY2svJyArIHN0b2NrQ29kZSArICcuaHRtbFwiIHRyYWNrZXItZXZlbnRjb2RlPVwiZ3BwZF96eHp3eV9ocXRnbWtfZGpnZ1wiIHRyYWNrZXItZXh0aW5mbz1cInNvdXJjZTpuZXdzY2hhbm5lbDtcIj7lhazlkYo8L2E+PC9kaXY+JztcclxuICAgICAgICAgICAgICAgIF9odG1sICs9ICc8ZGl2IHN0eWxlPVwiYm9yZGVyOiAxcHggc29saWQgI2FhYTtib3JkZXItYm90dG9tOjA7YmFja2dyb3VuZDojZjJmMmYyO2xpbmUtaGVpZ2h0OjE0cHg7Zm9udC1zaXplOjEycHg7cGFkZGluZzoxM3B4IDA7XCI+PGEgc3R5bGU9XCJjb2xvcjojMzYzNjM2O1wiIGhyZWY9XCJodHRwOi8vZGF0YS5lYXN0bW9uZXkuY29tL3N0b2NrY2FsZW5kYXIvJyArIHN0b2NrQ29kZSArICcuaHRtbFwiIHRyYWNrZXItZXZlbnRjb2RlPVwiZ3BwZF96eHp3eV9ocXRnbWtfZGpnZ3JsXCIgdHJhY2tlci1leHRpbmZvPVwic291cmNlOm5ld3NjaGFubmVsO1wiPuS4quiCoeaXpeWOhjwvYT48L2Rpdj4nO1xyXG4gICAgICAgICAgICAgICAgX2h0bWwgKz0gJzxkaXYgc3R5bGU9XCJib3JkZXI6IDFweCBzb2xpZCAjYWFhO2JhY2tncm91bmQ6I2YyZjJmMjtsaW5lLWhlaWdodDoxNHB4O2ZvbnQtc2l6ZToxMnB4O3BhZGRpbmc6MTNweCAwIDEycHggMDtjbGVhcjogcmlnaHQ7XCI+PGEgc3R5bGU9XCJjb2xvcjojMzYzNjM2O1wiIGhyZWY9XCJodHRwczovL2Vtd2ViLnNlY3VyaXRpZXMuZWFzdG1vbmV5LmNvbS9wY19oc2YxMC9wYWdlcy9pbmRleC5odG1sP3R5cGU9d2ViJmNvZGU9JyArIF9fTWFya2V0LkNvZGUgKyAnJmNvbG9yPWIjL2h4dGNcIiB0cmFja2VyLWV2ZW50Y29kZT1cImdwcGRfenh6d3lfaHF0Z21rX2RqaHh0Y1wiIHRyYWNrZXItZXh0aW5mbz1cInNvdXJjZTpuZXdzY2hhbm5lbDtcIj7moLjlv4PpopjmnZA8L2E+PC9kaXY+JztcclxuICAgICAgICAgICAgICAgIGNoYXJ0TGVmdERpdi5pbm5lckhUTUwgPSBfaHRtbDtcclxuICAgICAgICAgICAgICAgIGltZ1BhcmVudC5pbnNlcnRCZWZvcmUoY2hhcnRMZWZ0RGl2LCB0aXBzSW1hZ2VSZW1hcmspO1xyXG4gICAgICAgICAgICAgICAgLy9jaGFydExlZnREaXYuc2V0QXR0cmlidXRlKFwic3R5bGVcIiwgXCJcIik7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHZhciBjaGFydFJpZ2h0RGl2ID0gJEMoXCJkaXZcIik7XHJcbiAgICAgICAgICAgIGNoYXJ0UmlnaHREaXYuY2xhc3NOYW1lID0gXCJjaGFydC1yaWdodFwiO1xyXG4gICAgICAgICAgICBjaGFydFJpZ2h0RGl2LmlkID0gXCJjaGFydFwiICsgc3RvY2tDb2RlICsgY2hhcnRJZDtcclxuICAgICAgICAgICAgY2hhcnRJZCsrO1xyXG4gICAgICAgICAgICB6ZGYgPSAnPHNwYW4gc3R5bGU9XCJjb2xvcjonICsgemRDb2xvciArICdcIj4nICsgemRmICsgJzwvc3Bhbj4nO1xyXG5cclxuICAgICAgICAgICAgaWYgKF9fTWFya2V0LlR5cGUgIT0gXCJ6c1wiKSB7XHJcbiAgICAgICAgICAgICAgICBjaGFydFJpZ2h0RGl2LmlubmVySFRNTCA9ICc8ZGl2IHN0eWxlPVwidGV4dC1hbGlnbjogcmlnaHQ7cGFkZGluZzogMTVweCAxNXB4IDVweCAwO1wiPjxhIGhyZWY9XCJodHRwOi8vcXVvdGUuZWFzdG1vbmV5LmNvbS9jb25jZXB0LycgKyBfX01hcmtldC5Db2RlICsgJy5odG1sP2Zyb209Y2xhc3NpYyZldmVudGNvZGU9V2ViX3F1b3RlX2VudHJhbmNlMSNmc2NoYXJ0LXJcIiB0cmFja2VyLWV2ZW50Y29kZT1cImdwcGRfenh6d3lfaHF0Z21rX3FocXBcIiB0cmFja2VyLWV4dGluZm89XCJzb3VyY2U6bmV3c2NoYW5uZWw7XCI+PGltZyBzcmM9XCIvL2cxLmRmY2Z3LmNvbS9nMy8yMDE4MDgvMjAxODA4MjIxMTIxNTQucG5nXCIgLz48L2E+PC9kaXY+PHA+5pyA5paw5Lu377yaPHNwYW4gc3R5bGU9XCJjb2xvcjonICsgemRDb2xvciArICdcIj4nICsgcHJpY2UgKyAnPC9zcGFuPjwvcD48cD7mtqjot4zpop3vvJo8c3BhbiBzdHlsZT1cImNvbG9yOicgKyB6ZENvbG9yICsgJ1wiPicgKyB6ZGUgKyAnPC9zcGFuPjwvcD48cD7mtqjot4zluYXvvJonICsgemRmICsgJzwvcD48cD7miJDkuqTph4/vvJonICsgY2psICsgJzwvcD48cD7miJDkuqTpop3vvJonICsgY2plICsgJzwvcD48cD7mjaLmiYvnjofvvJonICsgaHNsICsgJzwvcD4nO1xyXG4gICAgICAgICAgICAgICAgaW1nUGFyZW50LmFwcGVuZENoaWxkKGNoYXJ0UmlnaHREaXYpO1xyXG4gICAgICAgICAgICAgICAgY2hhcnRSaWdodERpdi5zZXRBdHRyaWJ1dGUoXCJzdHlsZVwiLCBcIm1hcmdpbi10b3A6MHB4O1wiKTtcclxuXHJcbiAgICAgICAgICAgICAgICB2YXIgaCA9ICc8cD7luILnm4jnjofvvJonICsgc3lsICsgJzxzcGFuPjwvc3Bhbj48L3A+PHA+5oC75biC5YC877yaJyArICh6c3ogPT0gXCItXCIgPyBcIi1cIiA6IF90aGlzLmdzaE51bSh6c3opKSArICc8c3Bhbj48L3NwYW4+PC9wPic7XHJcbiAgICAgICAgICAgICAgICBqUXVlcnkoXCIjXCIgKyBjaGFydFJpZ2h0RGl2LmlkKS5hcHBlbmQoaCk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBjaGFydFJpZ2h0RGl2LmlubmVySFRNTCA9ICc8cD7mnIDmlrDku7fvvJo8c3BhbiBzdHlsZT1cImNvbG9yOicgKyB6ZENvbG9yICsgJ1wiPicgKyBwcmljZSArICc8L3NwYW4+PC9wPjxwPua2qOi3jOmine+8mjxzcGFuIHN0eWxlPVwiY29sb3I6JyArIHpkQ29sb3IgKyAnXCI+JyArIHpkZSArICc8L3NwYW4+PC9wPjxwPua2qOi3jOW5he+8micgKyB6ZGYgKyAnPC9wPjxwPuaIkOS6pOmHj++8micgKyBjamwgKyAnPC9wPjxwPuaIkOS6pOmine+8micgKyBjamUgKyAnPC9wPjxwPuaNouaJi+eOh++8micgKyBoc2wgKyAnPC9wPic7XHJcbiAgICAgICAgICAgICAgICBpbWdQYXJlbnQuYXBwZW5kQ2hpbGQoY2hhcnRSaWdodERpdik7XHJcbiAgICAgICAgICAgICAgICBjaGFydFJpZ2h0RGl2LnNldEF0dHJpYnV0ZShcInN0eWxlXCIsIFwibWFyZ2luLXRvcDoyMHB4O1wiKTtcclxuICAgICAgICAgICAgICAgIHRpcHNJbWFnZVJlbWFyay5zZXRBdHRyaWJ1dGUoXCJzdHlsZVwiLCBcInBhZGRpbmctbGVmdDoyMHB4O1wiKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgdmFyIGNoYXJ0TmF2RGl2ID0gJEMoXCJkaXZcIik7XHJcbiAgICAgICAgICAgIGNoYXJ0TmF2RGl2LmNsYXNzTmFtZSA9IFwiY2hhcnQtbmF2IGNsZWFyXCI7XHJcbiAgICAgICAgICAgIGlmIChfX01hcmtldC5UeXBlICE9IFwienNcIikge1xyXG4gICAgICAgICAgICAgICAgY2hhcnROYXZEaXYuaW5uZXJIVE1MID0gJzxhIGNsYXNzPVwiaXBsX3QxXCIgaHJlZj1cImh0dHA6Ly9xdW90ZS5lYXN0bW9uZXkuY29tL3VuaWZ5L3IvJyArIHN0b2NrTWFya2V0ICsgJy4nICsgc3RvY2tDb2RlICsgJ1wiIHRhcmdldD1cIl9ibGFua1wiIHRyYWNrZXItZXZlbnRjb2RlPVwiV2ViX3p3aHFsal9jeGdnaHFcIiB0cmFja2VyLWV4dGluZm89XCJhcnRpY2xlSUQ6JyArIF9OZXdzSWQgKyAnO1wiPuafpeivouivpeiCoeihjOaDhTwvYT4mbmJzcDsmbmJzcDs8YSBjbGFzcz1cImlwbF90NFwiIGhyZWY9XCJodHRwOi8vZGF0YS5lYXN0bW9uZXkuY29tL3pqbHgvJyArIHN0b2NrQ29kZSArICcuaHRtbFwiIHRhcmdldD1cIl9ibGFua1wiIHRyYWNrZXItZXZlbnRjb2RlPVwiV2ViX3p3aHFsal9zc3pqbHhcIiB0cmFja2VyLWV4dGluZm89XCJhcnRpY2xlSUQ6JyArIF9OZXdzSWQgKyAnO1wiPuWunuaXtui1hOmHkea1geWQkTwvYT4mbmJzcDsmbmJzcDs8YSBjbGFzcz1cImlwbF90M1wiIGhyZWY9XCJodHRwczovL2Vtd2ViLnNlY3VyaXRpZXMuZWFzdG1vbmV5LmNvbS9wY19oc2YxMC9wYWdlcy9pbmRleC5odG1sP3R5cGU9d2ViJmNvZGU9JyArIF9fTWFya2V0LkNvZGUgKyAnJmNvbG9yPWIjL2NwYmRcIiB0YXJnZXQ9XCJfYmxhbmtcIiB0cmFja2VyLWV2ZW50Y29kZT1cIldlYl96d2hxbGpfc2RzamptXCIgdHJhY2tlci1leHRpbmZvPVwiYXJ0aWNsZUlEOicgKyBfTmV3c0lkICsgJztcIj7mt7HluqbmlbDmja7mj63np5g8L2E+Jm5ic3A7Jm5ic3A7PGEgY2xhc3M9XCJpcGxfdDJcIiBocmVmPVwiaHR0cDovL2d1YmEuZWFzdG1vbmV5LmNvbS9saXN0LCcgKyBzdG9ja0NvZGUgKyAnLmh0bWxcIiB0YXJnZXQ9XCJfYmxhbmtcIiB0cmFja2VyLWV2ZW50Y29kZT1cIldlYl96d2hxbGpfanJnYlwiIHRyYWNrZXItZXh0aW5mbz1cImFydGljbGVJRDonICsgX05ld3NJZCArICc7XCI+6L+b5YWlJyArIHN0b2NrTmFtZSArICflkKc8L2E+Jm5ic3A7Jm5ic3A7PGEgY2xhc3M9XCJpcGxfdDVcIiBocmVmPVwiaHR0cDovL2pzMS5lYXN0bW9uZXkuY29tL3RnLmFzcHg/SUQ9NDQ4XCIgdGFyZ2V0PVwiX2JsYW5rXCIgdHJhY2tlci1ldmVudGNvZGU9XCJXZWJfendocWxqX3pqbFwiIHRyYWNrZXItZXh0aW5mbz1cImFydGljbGVJRDonICsgX05ld3NJZCArICc7XCI+JyArIHN0b2NrTmFtZSArICfotYTph5HmtYE8L2E+JztcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGNoYXJ0TmF2RGl2LmlubmVySFRNTCA9ICc8YSBjbGFzcz1cImlwbF90MVwiIGhyZWY9XCJodHRwOi8vcXVvdGUuZWFzdG1vbmV5LmNvbS91bmlmeS9yLycgKyBzdG9ja01hcmtldCArICcuJyArIHN0b2NrQ29kZSArICdcIiB0YXJnZXQ9XCJfYmxhbmtcIj4nICsgc3RvY2tOYW1lICsgJ+ihjOaDhTwvYT4mbmJzcDsmbmJzcDs8YSBjbGFzcz1cImlwbF90NlwiIGhyZWY9XCJodHRwOi8vcXVvdGUuZWFzdG1vbmV5LmNvbS9jZW50ZXIvcGFpaGFuZy5odG1sI3BhaWhhbmdfMF8wXCIgdGFyZ2V0PVwiX2JsYW5rXCI+6aKG5rao5Liq6IKhPC9hPiZuYnNwOyZuYnNwOzxhIGNsYXNzPVwiaXBsX3Q0XCIgaHJlZj1cImh0dHA6Ly9kYXRhLmVhc3Rtb25leS5jb20vempseC9cIiB0YXJnZXQ9XCJfYmxhbmtcIj7lpKfnm5jotYTph5HmtYHlkJE8L2E+Jm5ic3A7Jm5ic3A7PGEgY2xhc3M9XCJpcGxfdDNcIiBocmVmPVwiaHR0cDovL2t1YWl4dW4uZWFzdG1vbmV5LmNvbS9cIiB0YXJnZXQ9XCJfYmxhbmtcIj43KjI05bCP5pe25b+r6K6vPC9hPiZuYnNwOyZuYnNwOzxhIGNsYXNzPVwiaXBsX3QyXCIgaHJlZj1cImh0dHA6Ly9ndWJhLmVhc3Rtb25leS5jb20vZ3ViYV91cmwuYXNweD9jb2RlPScgKyAoc3RvY2tNYXJrZXQgPT0gXCIxXCIgPyBcInNoXCIgOiBcInN6XCIpICsgc3RvY2tDb2RlICsgJ1wiIHRhcmdldD1cIl9ibGFua1wiPui/m+WFpScgKyBzdG9ja05hbWUgKyAn5ZCnPC9hPic7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaW1nUGFyZW50LmFwcGVuZENoaWxkKGNoYXJ0TmF2RGl2KTtcclxuXHJcbiAgICAgICAgICAgIGlmIChfX01hcmtldC5UeXBlICE9IFwienNcIikge1xyXG4gICAgICAgICAgICAgICAgX3RoaXMuWGlhbmdHdWFuR3VQaWFvKHNlY2lkLCBpbWdQYXJlbnQpOy8v55u45YWz6IKh56Wo5ZKM55u45YWz5p2/5Z2XXHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBfdGhpcy5aaGlTaHVMaW5nWmhhbmdIYW5nWWUoaW1nUGFyZW50KTsvL+mihua2qOihjOS4mlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICBpbml0aWFsaXplOiBmdW5jdGlvbiAoY2xhc3NOYW1lKSB7XHJcbiAgICAgICAgICAgIGlmIChjbGFzc05hbWUgIT0gXCJcIiB8fCBjbGFzc05hbWUgIT0gXCJ1bmRlZmluZWRcIikge1xyXG4gICAgICAgICAgICAgICAgdmFyIHRpcHNJbWFnZVJlbWFyayA9IHRoaXMuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZShcIkNvbnRlbnRCb2R5XCIsIGNsYXNzTmFtZSk7XHJcbiAgICAgICAgICAgICAgICB2YXIgaHJlZiA9IFtdO1xyXG4gICAgICAgICAgICAgICAgdmFyIHNyYyA9IFtdO1xyXG4gICAgICAgICAgICAgICAgdmFyIGkgPSAwO1xyXG4gICAgICAgICAgICAgICAgdmFyIEJvZHlFbmRPYmogPSAkKFwiQ29udGVudEJvZHlcIik7XHJcbiAgICAgICAgICAgICAgICB2YXIgQm9keU5leHROb2RlID0gQm9keUVuZE9iai5uZXh0U2libGluZztcclxuICAgICAgICAgICAgICAgIHdoaWxlIChCb2R5TmV4dE5vZGUubm9kZVR5cGUgIT0gMSkge1xyXG4gICAgICAgICAgICAgICAgICAgIEJvZHlOZXh0Tm9kZSA9IEJvZHlOZXh0Tm9kZS5uZXh0U2libGluZztcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBpZiAodGlwc0ltYWdlUmVtYXJrICE9IHVuZGVmaW5lZCAmJiB0aXBzSW1hZ2VSZW1hcmsgIT0gbnVsbCAmJiB0aXBzSW1hZ2VSZW1hcmsgIT0gXCJcIikge1xyXG4gICAgICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGlwc0ltYWdlUmVtYXJrLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBpbWdQYXJlbnQgPSB0aXBzSW1hZ2VSZW1hcmtbaV07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpbWdQYXJlbnQuY2xhc3NOYW1lLmluZGV4T2YoXCJEaXNhYmxlT3RoZXJcIikgPj0gMCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGltZ25vZGVzID0gaW1nUGFyZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKFwiaW1nXCIpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoaW1nbm9kZXMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9kYXRhLWNvZGU9XCJLIHvogqHnpajku6PnoIF9fHvooYzmg4XmnI3liqHpg6jluILlnLrlj7d9fHvogIHnmoTluILlnLrvvIjnvZHnq5nvvIl9XCIgZGF0YS1jb2RlMj1cIksge+iCoeelqOS7o+eggX18e+ihjOaDheacjeWKoemDqOW4guWcuuWPt318e+W4guWcuue7huWIhuexu++8iOWFt+S9k+WQq+S5ieWujOS6hu+8jOmtj+S4nOa1t+imgeeahO+8iX18XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgX2RhdGFjb2RlMiA9IHRpcHNJbWFnZVJlbWFya1tpXS5nZXRBdHRyaWJ1dGUoXCJkYXRhLWNvZGUyXCIpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKF9kYXRhY29kZTIgIT0gbnVsbCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBfZGF0YWNvZGUySXRlbSA9IF9kYXRhY29kZTIuc3BsaXQoJ3wnKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaHJlZltpXSA9IFwiaHR0cDovL3F1b3RlLmVhc3Rtb25leS5jb20vdW5pZnkvci9cIiArIF9kYXRhY29kZTJJdGVtWzFdICsgXCIuXCIgKyBfZGF0YWNvZGUySXRlbVswXTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbWdQYXJlbnQuaHJlZiA9IGhyZWZbaV07XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBfS1IgPSBpbWdub2Rlc1swXS5nZXRBdHRyaWJ1dGUoXCJkYXRhLWNvZGUyXCIpLnRvTG93ZXJDYXNlKCkuc3Vic3RyaW5nKDAsIDEpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyY1tpXSA9IGltZ25vZGVzWzBdLnNyYztcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoX0tSID09IFwia1wiKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyY1tpXSA9IHNyY1tpXS5yZXBsYWNlKFwiaW1hZ2VUeXBlPWtcIiwgXCJpbWFnZVR5cGU9a25ld3NcIik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGltZ25vZGVzWzBdLnNyYyA9IHNyY1tpXTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKChfZGF0YWNvZGUySXRlbVsxXSA9PSBcIjBcIiB8fCBfZGF0YWNvZGUySXRlbVsxXSA9PSBcIjFcIikgJiYgKF9kYXRhY29kZTJJdGVtWzJdID09IFwiNVwiIHx8IF9kYXRhY29kZTJJdGVtWzJdID09IFwiNlwiIHx8IF9kYXRhY29kZTJJdGVtWzJdID09IFwiN1wiIHx8IF9kYXRhY29kZTJJdGVtWzJdID09IFwiMVwiIHx8IF9kYXRhY29kZTJJdGVtWzJdID09IFwiMlwiIHx8IF9kYXRhY29kZTJJdGVtWzJdID09IFwiM1wiIHx8IF9kYXRhY29kZTJJdGVtWzJdID09IFwiMTNcIiB8fCBfZGF0YWNvZGUySXRlbVsyXSA9PSBcIjgwXCIgfHwgX2RhdGFjb2RlMkl0ZW1bMl0gPT0gXCIyM1wiKSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmluaXRJbWcoX2RhdGFjb2RlMkl0ZW1bMF0sIF9kYXRhY29kZTJJdGVtWzFdLCB0aXBzSW1hZ2VSZW1hcmtbaV0pXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbWdub2Rlc1swXS53aWR0aCA9IFwiNTMwXCI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbWdub2Rlc1swXS5oZWlnaHQgPSBcIjI3NlwiO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHZhciBia1RpcEFyZWFzID0gdGhpcy5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKFwiQ29udGVudEJvZHlcIiwgXCJFbV9OZXdzQmtcIik7XHJcbiAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYmtUaXBBcmVhcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICAgICAgYmtUaXBBcmVhc1tpXS5pbm5lckhUTUwgPSAnPGRpdiBjbGFzcz1cImJrTGlua0xpc3RcIj4nICsgJzxkaXYgY2xhc3M9XCJoYUxpbmtcIj48YiBjbGFzcz1cImJrX2ljbyBoYVwiPjwvYj48ZGl2IGNsYXNzPVwibG1jXCI+5rKqQe+8mjwvZGl2PjxhIGhyZWY9XCJodHRwOi8vcXVvdGUuZWFzdG1vbmV5LmNvbS9jZW50ZXIvbGlzdC5odG1sIzEwXzBfMF91P3NvcnRUeXBlPUMmc29ydFJ1bGU9LTFcIiB0YXJnZXQ9XCJfYmxhbmtcIj7mtqjluYXmppw8L2E+PHNwYW4gY2xhc3M9XCJsXCI+772cPC9zcGFuPjxhIGhyZWY9XCJodHRwOi8vcXVvdGUuZWFzdG1vbmV5LmNvbS9jZW50ZXIvbGlzdC5odG1sIzEwXzBfMF9kP3NvcnRUeXBlPUMmc29ydFJ1bGU9MVwiIHRhcmdldD1cIl9ibGFua1wiPui3jOW5heamnDwvYT48c3BhbiBjbGFzcz1cImxcIj7vvZw8L3NwYW4+PGEgaHJlZj1cImh0dHA6Ly9xdW90ZS5lYXN0bW9uZXkuY29tL2NlbnRlci9saXN0Lmh0bWwjMTBfMF8wX3U/c29ydFR5cGU9RiZzb3J0UnVsZT0tMVwiIHRhcmdldD1cIl9ibGFua1wiPuaIkOS6pOmHjzwvYT48c3BhbiBjbGFzcz1cImxcIj7vvZw8L3NwYW4+PGEgaHJlZj1cImh0dHA6Ly9xdW90ZS5lYXN0bW9uZXkuY29tL2NlbnRlci9saXN0Lmh0bWwjMTBfMF8wX3U/c29ydFR5cGU9RyZzb3J0UnVsZT0tMVwiIHRhcmdldD1cIl9ibGFua1wiPuS6lOWIhumSn+a2qOi3jOamnDwvYT48L2Rpdj4nICsgJzxkaXYgY2xhc3M9XCJoYkxpbmtcIj48YiBjbGFzcz1cImJrX2ljbyBoYlwiPjwvYj48ZGl2IGNsYXNzPVwibG1jXCI+5rexQe+8mjwvZGl2PjxhIGhyZWY9XCJodHRwOi8vcXVvdGUuZWFzdG1vbmV5LmNvbS9jZW50ZXIvbGlzdC5odG1sIzIwXzBfMF91P3NvcnRUeXBlPUMmc29ydFJ1bGU9LTFcIiB0YXJnZXQ9XCJfYmxhbmtcIj7mtqjluYXmppw8L2E+PHNwYW4gY2xhc3M9XCJsXCI+772cPC9zcGFuPjxhIGhyZWY9XCJodHRwOi8vcXVvdGUuZWFzdG1vbmV5LmNvbS9jZW50ZXIvbGlzdC5odG1sIzIwXzBfMF9kP3NvcnRUeXBlPUMmc29ydFJ1bGU9MVwiIHRhcmdldD1cIl9ibGFua1wiPui3jOW5heamnDwvYT48c3BhbiBjbGFzcz1cImxcIj7vvZw8L3NwYW4+PGEgaHJlZj1cImh0dHA6Ly9xdW90ZS5lYXN0bW9uZXkuY29tL2NlbnRlci9saXN0Lmh0bWwjMjBfMF8wX3U/c29ydFR5cGU9RiZzb3J0UnVsZT0tMVwiIHRhcmdldD1cIl9ibGFua1wiPuaIkOS6pOmHjzwvYT48c3BhbiBjbGFzcz1cImxcIj7vvZw8L3NwYW4+PGEgaHJlZj1cImh0dHA6Ly9xdW90ZS5lYXN0bW9uZXkuY29tL2NlbnRlci9saXN0Lmh0bWwjMjBfMF8wX3U/c29ydFR5cGU9RyZzb3J0UnVsZT0tMVwiIHRhcmdldD1cIl9ibGFua1wiPuS6lOWIhumSn+a2qOi3jOamnDwvYT48L2Rpdj4nICsgJzxkaXYgY2xhc3M9XCJsekxpbmtcIj48YiBjbGFzcz1cImJrX2ljbyBselwiPjwvYj48ZGl2IGNsYXNzPVwibG1jXCI+6aKG5rao5p2/5Z2X77yaPC9kaXY+PGRpdiBpZD1cImJrTGlzdF9semJrXCI+PC9kaXY+PC9kaXY+JyArICc8L2Rpdj4nO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5pb092ZXJhbGwoXCJodHRwOi8vaHEyZGF0YS5lYXN0bW9uZXkuY29tL2JrL2RhdGEvYmthbnQuanNcIiwgXCJcIiwgXCJCS0NhY2hlXCIsXHJcblx0XHRcdFx0ZnVuY3Rpb24gKGRhdGEpIHtcclxuXHRcdFx0XHQgICAgaWYgKGRhdGEgJiYgZGF0YS5Ub3AgJiYgZGF0YS5Ub3AubGVuZ3RoID4gMCkge1xyXG5cdFx0XHRcdCAgICAgICAgdmFyIGx6ZyA9IGRhdGEuVG9wWzBdO1xyXG5cdFx0XHRcdCAgICAgICAgdmFyIHNob3dTdHIgPSBcIlwiO1xyXG5cdFx0XHRcdCAgICAgICAgdmFyIHRlbXBEYXRhID0gXCJcIjtcclxuXHRcdFx0XHQgICAgICAgIHZhciBfY29sb3IgPSBcIlwiO1xyXG5cdFx0XHRcdCAgICAgICAgZm9yICh2YXIgbHogaW4gbHpnKSB7XHJcblx0XHRcdFx0ICAgICAgICAgICAgdGVtcERhdGEgPSBsemdbbHpdLnNwbGl0KFwiLFwiKTtcclxuXHRcdFx0XHQgICAgICAgICAgICBfY29sb3IgPSBwYXJzZUZsb2F0KHRlbXBEYXRhWzFdKSA9PSAwID8gXCJcIiA6IHBhcnNlRmxvYXQodGVtcERhdGFbMV0pID4gMCA/IFwicmVkXCIgOiBcImdyZWVuXCI7XHJcblx0XHRcdFx0ICAgICAgICAgICAgc2hvd1N0ciArPSBcIjxhIGhyZWY9XFxcImh0dHA6Ly9xdW90ZS5lYXN0bW9uZXkuY29tL2NlbnRlci9saXN0Lmh0bWwjMjgwMFwiICsgdGVtcERhdGFbMTBdICsgdGVtcERhdGFbOV0gKyBcIl8wXzJcXFwiIHRhcmdldD1cXFwiX2JsYW5rXFxcIj5cIiArIHRlbXBEYXRhWzBdICsgXCI8L2E+PHNwYW4gY2xhc3M9XFxcInpmXFxcIj4oPHNwYW4gY2xhc3M9XFxcIlwiICsgX2NvbG9yICsgXCJcXFwiPlwiICsgdGVtcERhdGFbMV0gKyBcIjwvc3Bhbj4pPC9zcGFuPlwiXHJcblx0XHRcdFx0ICAgICAgICB9XHJcblx0XHRcdFx0ICAgICAgICAkKFwiYmtMaXN0X2x6YmtcIikuaW5uZXJIVE1MID0gc2hvd1N0cjtcclxuXHRcdFx0XHQgICAgfVxyXG5cdFx0XHRcdH0pO1xyXG4gICAgICAgICAgICAgICAgYmtUaXBBcmVhc1tpXS5zdHlsZS5kaXNwbGF5ID0gXCJcIjtcclxuICAgICAgICAgICAgICAgIGJyZWFrXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIGluaXRJbWc6IGZ1bmN0aW9uIChfc3RvY2tjb2RlLCBfc3RvY2ttYXJrZXQsIHRpcHNJbWFnZVJlbWFyaykge1xyXG4gICAgICAgICAgICB2YXIgX3RoaXMgPSB0aGlzO1xyXG4gICAgICAgICAgICB2YXIgc2VjaWQgPSBfc3RvY2ttYXJrZXQgKyBcIi5cIiArIF9zdG9ja2NvZGU7XHJcbiAgICAgICAgICAgIC8v6KGM5oOF5Zu+5LiA5ZyIXHJcbiAgICAgICAgICAgIGpRdWVyeS5hamF4KHtcclxuICAgICAgICAgICAgICAgIHR5cGU6IFwiR0VUXCIsXHJcbiAgICAgICAgICAgICAgICB1cmw6IFwiLy9wdXNoMi5lYXN0bW9uZXkuY29tL2FwaS9xdC9zdG9jay9nZXQ/Zmx0dD0yJmZpZWxkcz1mNTcsZjU4LGYxMDcsZjQzLGYxNjgsZjE2OSxmMTcwLGY0NyxmNDgsZjE2MixmMTE2JnNlY2lkPVwiICsgc2VjaWQgKyBcIiZ1dD0xMzY5N2ExY2M2NzdjOGJmYTlhNDk2NDM3YmZlZjQxOSZjYj0/XCIsXHJcbiAgICAgICAgICAgICAgICBkYXRhVHlwZTogXCJqc29ucFwiLFxyXG4gICAgICAgICAgICAgICAgc3VjY2VzczogZnVuY3Rpb24gKGpzb24pIHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoanNvbiAmJiBqc29uLnJjID09IFwiMFwiKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIF90aGlzLk5ld3NJbWcoc2VjaWQsIGpzb24sIHRpcHNJbWFnZVJlbWFyayk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIGlvT3ZlcmFsbDogZnVuY3Rpb24gKHNyYywgY2hhcnNldCwgZGF0YVZhciwgY2FsbGJhY2ssIG5vZGVPYmopIHtcclxuICAgICAgICAgICAgdmFyIHNjcmlwdCA9ICRDKFwic2NyaXB0XCIpO1xyXG4gICAgICAgICAgICBzY3JpcHQudHlwZSA9IFwidGV4dC9qYXZhc2NyaXB0XCI7XHJcbiAgICAgICAgICAgIHNjcmlwdC5jaGFyc2V0ID0gKGNoYXJzZXQgPT0gXCJcIikgPyBcIkdCMjMxMlwiIDogY2hhcnNldDtcclxuICAgICAgICAgICAgc2NyaXB0LnNyYyA9IHNyYztcclxuICAgICAgICAgICAgc2NyaXB0Ll8waiA9IHRoaXM7XHJcbiAgICAgICAgICAgIHNjcmlwdFtkb2N1bWVudC5hbGwgPyBcIm9ucmVhZHlzdGF0ZWNoYW5nZVwiIDogXCJvbmxvYWRcIl0gPSBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoZG9jdW1lbnQuYWxsICYmIHRoaXMucmVhZHlTdGF0ZSAhPSBcImxvYWRlZFwiICYmIHRoaXMucmVhZHlTdGF0ZSAhPSBcImNvbXBsZXRlXCIpIHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm5cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHRoaXNbZG9jdW1lbnQuYWxsID8gXCJvbnJlYWR5c3RhdGVjaGFuZ2VcIiA6IFwib25sb2FkXCJdID0gbnVsbDtcclxuICAgICAgICAgICAgICAgIGlmIChjYWxsYmFjaykge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChub2RlT2JqKSBjYWxsYmFjayhldmFsKGRhdGFWYXIpLCBub2RlT2JqKTtcclxuICAgICAgICAgICAgICAgICAgICBlbHNlIGNhbGxiYWNrKGV2YWwoZGF0YVZhcikpXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB0aGlzLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodGhpcylcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoXCJoZWFkXCIpLml0ZW0oMCkuYXBwZW5kQ2hpbGQoc2NyaXB0KVxyXG4gICAgICAgIH1cclxuICAgIH07XHJcbiAgICB0cnkge1xyXG4gICAgICAgIC8v6LCD55So5Zu+6ZuGXHJcbiAgICAgICAgdmFyIGVuc2l0ID0gbmV3IG5ld3NpbWcoXCJFbUltYWdlUmVtYXJrXCIpO1xyXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgICBcclxuICAgIH1cclxufSkoKTtcclxuXHJcblxyXG4vLyDmraPmloflm77ooahjbGFzc1xyXG4kKFwiLkVtSW1hZ2VSZW1hcmtcIikucGFyZW50KCkuYWRkQ2xhc3MoXCJjbGVhcnAgc2luZ2xlLWNoYXJ0XCIpO1xyXG4kKFwiLkVtSW1hZ2VSZW1hcmtcIikucGFyZW50cyhcInBcIikuY3NzKHtcclxuICAgIFwiZm9udC1zaXplXCI6IFwiMTVweFwiLFxyXG4gICAgXCJsaW5lLWhlaWdodFwiOiBcIjMxcHhcIlxyXG59KTtcclxuJChcIi5FbUltYWdlUmVtYXJrXCIpLmNoaWxkcmVuKCkuYXR0cihcInN0eWxlXCIsIFwiXCIpO1xyXG4kKFwiLkVtSW1hZ2VSZW1hcmtcIikuYWRkQ2xhc3MoXCJjaGFydC1sZWZ0XCIpO1xyXG52YXIgZW1SZW1hcmsgPSAkKFwiLkVtSW1hZ2VSZW1hcmtcIik7XHJcbmlmICgkKFwiLkRpc3BsYXlPbldlYkZyb21OZXdzUm9ib3RcIikgIT0gbnVsbCkge1xyXG4gICAgJChcIi5EaXNwbGF5T25XZWJGcm9tTmV3c1JvYm90XCIpLnNob3coKTtcclxufVxyXG5lbVJlbWFyay5lYWNoKGZ1bmN0aW9uICgpIHtcclxuICAgIHZhciBfdGhpcyA9ICQodGhpcyk7XHJcbiAgICBpZiAoX3RoaXMuY2hpbGRyZW4oXCJpbWdcIikubGVuZ3RoIDw9IDApXHJcbiAgICAgICAgX3RoaXMucGFyZW50KCkucmVtb3ZlKCk7XHJcbn0pO1xuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vanMvbmV3c2ltZy5qc1xuLy8gbW9kdWxlIGlkID0gMjBcbi8vIG1vZHVsZSBjaHVua3MgPSAzIl0sInNvdXJjZVJvb3QiOiIifQ=="],"names":["modules","installedModules","__webpack_require__","moduleId","exports","module","i","l","call","m","c","value","d","name","getter","o","Object","defineProperty","configurable","enumerable","get","n","__esModule","object","property","prototype","hasOwnProperty","p","s","20","$","document","getElementById","$C","createElement","Class","AsPrototype","create","t","this","initialize","apply","arguments","newsimg","chartId","getElementsByClassName","obj","classElements","allElements","getElementsByTagName","length","className","getMarket","type","code","Market","substring","Type","Code","gshNum","str","dNum","parseFloat","dw","toFixed","gshZd","XiangGuanGuPiao","secid","imgParent","_this","chartFooterDiv","jQuery","ajax","url","dataType","data","success","jdata","rc","footerInnerRow","_i","total","_name","_price","_zdf","_zde","item","diff","_code","f12","_market","f13","f14","f2","f3","f4","zdColor","replace","innerHTML","appendChild","XiangGuanBanKuai","htmlBK","htmlBKContent","h","_bkCode","_bkName","_bkZdf","_bkZde","ZhiShuLingZhangHangYe","bkzdColor","_szjs","f104","_xdjs","f105","f140","f141","f128","f136","NewsImg","json","tipsImageRemark","price","f43","cjl","f47","cje","f48","stockCode","f57","stockName","f58","stockMarket","f107","hsl","f168","zde","f169","zdf","f170","syl","f162","zsz","f116","parentNode","children","attr","chartLeftDiv","_html","__Market","childNodes","src","id","insertBefore","chartRightDiv","setAttribute","append","chartNavDiv","_NewsId","href","BodyNextNode","nextSibling","nodeType","undefined","imgnodes","_datacode2","_datacode2Item","_KR","indexOf","getAttribute","split","toLowerCase","initImg","width","height","bkTipAreas","ioOverall","Top","tempData","_color","lz","lzg","showStr","style","display","_stockcode","_stockmarket","charset","dataVar","callback","nodeObj","script","_0j","all","readyState","eval","removeChild","ensit","error","parent","addClass","parents","css","font-size","line-height","emRemark","show","each","remove"],"mappings":"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"}