{"version":3,"sources":["lr.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/***/ 0:\n/***/ (function(module, exports) {\n\n/**\r\n * 随机取数据\r\n * @param {*} a \r\n */\r\nfunction shuffle(a) {\r\n return a.concat().sort(function(a, b) {\r\n return Math.random() - 0.5;\r\n });\r\n }\r\n\r\n/**\r\n * 判断是否为数组\r\n * @param {*} arg \r\n */\r\nfunction isArray(arg) {\r\n return Object.prototype.toString.call(arg) === '[object Array]';\r\n}\r\n\r\n/**\r\n * 随机去数组中任意一条数据\r\n * @param {*} data \r\n */\r\nfunction randomData(data){\r\n if(isArray(data)){\r\n var len = data.length;\r\n var index = Math.floor(Math.random()*len);\r\n console.log(index)\r\n return data[index]\r\n }\r\n return [];\r\n}\r\n\r\n\r\n function problem(options){\r\n //callback,isRandom,pType,\r\n var defaultOptions = {\r\n id:\"problem_wrap\",//题目dom id\r\n DATA:problem_data,//题目数据\r\n isRandom:false,//是否随机\r\n len:20,//随机题目数量\r\n pType:'', //题目类型\r\n callback:null//回调\r\n }\r\n\r\n this.options = $.extend({},defaultOptions,options);\r\n console.log(this.options)\r\n if(typeof this.options.DATA == undefined || !this.options.DATA.length){\r\n return false\r\n }\r\n\r\n var html = '
';\r\n\r\n\r\n this.$wrap.html(html);\r\n\r\n\r\n\r\n this.bind(this.callback);\r\n }\r\n\r\n problem.prototype = {\r\n bind:function(callback){\r\n var that = this;\r\n \r\n $('.problem_list', that.$wrap).on('change','.active input',function(){\r\n console.log(123)\r\n $('.btn_next', that.$wrap ).removeAttr('disabled')\r\n $('.btn_result',that.$wrap ).removeAttr('disabled')\r\n })\r\n\r\n $('.btn_wrap', that.$wrap ).on('click','.btn_prev',function(){\r\n that._answerIndex --;\r\n $('.problem_list>li',that.$wrap ).eq(that._answerIndex).addClass('active').siblings().removeClass('active');\r\n if(that._answerIndex <=0){\r\n $('.btn_prev', that.$wrap ).attr('disabled',\"disabled\")\r\n }\r\n $('.btn_next',that.$wrap ).removeAttr('disabled');\r\n })\r\n\r\n $('.btn_wrap', that.$wrap ).on('click','.btn_next',function(){\r\n that._answerIndex ++;\r\n\r\n if(that._answerIndex + 1 === that.len){\r\n if(that.pType === 'myd'){\r\n $('.btn_wrap', that.$wrap ).html('') \r\n }else{\r\n $('.btn_wrap', that.$wrap ).html('')\r\n }\r\n }\r\n\r\n if( that._answerIndex + 1 > that.len ){\r\n return;\r\n }\r\n $('.problem_list>li',that.$wrap ).eq(that._answerIndex).addClass('active').siblings().removeClass('active');\r\n if(!$('.problem_list .active input:radio:checked',that.$wrap).length){\r\n $('.btn_next',that.$wrap ).attr('disabled',\"disabled\");\r\n }\r\n $('.btn_prev', that.$wrap ).removeAttr('disabled');\r\n \r\n })\r\n\r\n $('.btn_wrap', that.$wrap ).on('click','.btn_result',function(){\r\n var totalScore = 0;\r\n var scoreArr = [];\r\n $('.problem_list .item',that.$wrap).each(function(){\r\n var _score = $(this).find(\"input[type='radio']:checked\").data('score');\r\n _score = parseFloat(_score);\r\n scoreArr.push(_score)\r\n totalScore += _score;\r\n })\r\n\r\n console.log(totalScore)\r\n\r\n callback && callback(that,totalScore,scoreArr)\r\n \r\n })\r\n },\r\n showModel:function(option){\r\n var that = this;\r\n // var winHeight = $(window).outerHeight();\r\n // var windWidth = $(window).outerWidth();\r\n var html = '
';\r\n html += '
';\r\n html += '
' +\r\n '
' +\r\n '
';\r\n if(!option.isScore){\r\n html+='

' + option.content + '

';\r\n }else{\r\n if(option.score >= option.targetScore){\r\n html+='
评测成功

你的得分:'+option.score+'分  目标分数:'+option.targetScore+'

';\r\n }else{\r\n html+='
评测失败

你的得分:'+option.score+'分  目标分数:'+option.targetScore+'

';\r\n }\r\n }\r\n if(that.pType === 'myd'){\r\n html += '
'\r\n }else{\r\n html += '
'\r\n if(option.link){\r\n html += ''\r\n }\r\n }\r\n html += '
';\r\n\r\n var $html = $(html)\r\n\r\n $('body').append($html);\r\n\r\n $html.css({\r\n \"position\": \"fixed\",\r\n \"top\": \"0\",\r\n \"left\":\"0\",\r\n \"height\":'100%',\r\n \"width\": '100%',\r\n \"z-index\":\"9999\"\r\n })\r\n\r\n $('.comfirm_container', this.html).css({\r\n \"position\": \"absolute\",\r\n \"top\": \"50%\",\r\n \"left\": \"50%\",\r\n \"height\":'342px',\r\n \"width\": '500px',\r\n \"margin-top\": '-171px',\r\n \"margin-left\":'-250px'\r\n })\r\n\r\n $html.on('click', '.icon_close', function () {\r\n $html.remove();\r\n option.onClose && option.onClose();\r\n })\r\n $html.on('click', '.btn_close', function () {\r\n $html.remove();\r\n option.onClose && option.onClose();\r\n })\r\n\r\n $html.on('click', '.btn_again', function () {\r\n $html.remove();\r\n return new problem(that.options);\r\n })\r\n\r\n $html.on('click', '.btn_tomoni', function () {\r\n location.href = option.link;\r\n })\r\n },\r\n reload:function(){\r\n return new problem(this.options);\r\n }\r\n }\r\n\r\n module.exports = problem;\r\n\r\n// module.exports = {\r\n// load:function(options){\r\n// //callback,isRandom,pType,\r\n// var defaultOptions = {\r\n// id:\"problem_wrap\",//题目dom id\r\n// DATA:problem_data,//题目数据\r\n// isRandom:false,//是否随机\r\n// len:20,//随机题目数量\r\n// pType:'', //题目类型\r\n// callback:null//回调\r\n// }\r\n\r\n// this.options = $.extend({},defaultOptions,options);\r\n// console.log(this.options)\r\n// if(typeof this.options.DATA == undefined || !this.options.DATA.length){\r\n// return false\r\n// }\r\n \r\n// var html = '
';\r\n\r\n\r\n// this.$wrap.html(html);\r\n\r\n \r\n\r\n// this.bind(this.callback);\r\n\r\n \r\n// },\r\n// bind:function(callback){\r\n// var that = this;\r\n \r\n// $('.problem_list', that.$wrap).on('change','.active input',function(){\r\n// console.log(123)\r\n// $('.btn_next', that.$wrap ).removeAttr('disabled')\r\n// $('.btn_result',that.$wrap ).removeAttr('disabled')\r\n// })\r\n\r\n// $('.btn_wrap', that.$wrap ).on('click','.btn_prev',function(){\r\n// that._answerIndex --;\r\n// $('.problem_list>li',that.$wrap ).eq(that._answerIndex).addClass('active').siblings().removeClass('active');\r\n// if(that._answerIndex <=0){\r\n// $('.btn_prev', that.$wrap ).attr('disabled',\"disabled\")\r\n// }\r\n// $('.btn_next',that.$wrap ).removeAttr('disabled');\r\n// })\r\n\r\n// $('.btn_wrap', that.$wrap ).on('click','.btn_next',function(){\r\n// that._answerIndex ++;\r\n\r\n// if(that._answerIndex + 1 === that.len){\r\n// if(that.pType === 'myd'){\r\n// $('.btn_wrap', that.$wrap ).html('') \r\n// }else{\r\n// $('.btn_wrap', that.$wrap ).html('')\r\n// }\r\n// }\r\n\r\n// if( that._answerIndex + 1 > that.len ){\r\n// return;\r\n// }\r\n// $('.problem_list>li',that.$wrap ).eq(that._answerIndex).addClass('active').siblings().removeClass('active');\r\n// if(!$('.problem_list .active input:radio:checked',that.$wrap).length){\r\n// $('.btn_next',that.$wrap ).attr('disabled',\"disabled\");\r\n// }\r\n// $('.btn_prev', that.$wrap ).removeAttr('disabled');\r\n \r\n// })\r\n\r\n// $('.btn_wrap', that.$wrap ).on('click','.btn_result',function(){\r\n// var totalScore = 0;\r\n// var scoreArr = [];\r\n// $('.problem_list .item',that.$wrap).each(function(){\r\n// var _score = $(this).find(\"input[type='radio']:checked\").data('score');\r\n// _score = parseFloat(_score);\r\n// scoreArr.push(_score)\r\n// totalScore += _score;\r\n// })\r\n\r\n// console.log(totalScore)\r\n\r\n// callback && callback(that,totalScore,scoreArr)\r\n \r\n// })\r\n// },\r\n// showModel:function(option){\r\n// var that = this;\r\n// var winHeight = $(window).outerHeight();\r\n// var windWidth = $(window).outerWidth();\r\n// var html = '
';\r\n// html += '
';\r\n// html += '
' +\r\n// '
' +\r\n// '
';\r\n// if(!option.isScore){\r\n// html+='

' + option.content + '

';\r\n// }else{\r\n// if(option.score >= option.targetScore){\r\n// html+='
评测成功

你的得分:'+option.score+'分  目标分数:'+option.targetScore+'

';\r\n// }else{\r\n// html+='
评测失败

你的得分:'+option.score+'分  目标分数:'+option.targetScore+'

';\r\n// }\r\n// }\r\n// if(that.pType === 'myd'){\r\n// html += '
'\r\n// }else{\r\n// html += '
'\r\n// }\r\n// html += '
';\r\n\r\n// var $html = $(html)\r\n\r\n// $('body').append($html);\r\n\r\n// $html.css({\r\n// \"position\": \"fixed\",\r\n// \"top\": \"0\",\r\n// \"left\":\"0\",\r\n// \"height\":'100%',\r\n// \"width\": '100%',\r\n// \"z-index\":\"9999\"\r\n// })\r\n\r\n// $('.comfirm_container', this.html).css({\r\n// \"position\": \"absolute\",\r\n// \"top\": \"50%\",\r\n// \"left\": \"50%\",\r\n// \"height\":'342px',\r\n// \"width\": '500px',\r\n// \"margin-top\": '-171px',\r\n// \"margin-left\":'-250px'\r\n// })\r\n\r\n// $html.on('click', '.icon_close', function () {\r\n// $html.remove();\r\n// option.onClose && option.onClose();\r\n// })\r\n// $html.on('click', '.btn_close', function () {\r\n// $html.remove();\r\n// option.onClose && option.onClose();\r\n// })\r\n\r\n// $html.on('click', '.btn_again', function () {\r\n// $html.remove();\r\n// that.load(that.callback,that.isRandom,that.pType);\r\n// })\r\n\r\n// $html.on('click', '.btn_tomoni', function () {\r\n// location.href = option.link;\r\n// })\r\n// }\r\n// }\n\n/***/ }),\n\n/***/ 20:\n/***/ (function(module, exports, __webpack_require__) {\n\nvar answer = __webpack_require__(0);\r\nvar calculator = {\r\n \r\n init:function(){\r\n var that = this;\r\n var seter1,seterObj;\r\n\r\n $('.stockCode').on(\"input propertychange\",function(){\r\n var $parent = $(this).parents('.stock_detail');\r\n if(seter1){\r\n window.clearTimeout(seter1)\r\n }\r\n var val = $(this).val();\r\n // console.log(val)\r\n if(val && val.length == 6){\r\n seter1 = setTimeout(function(){\r\n that.getDate(val,function(data){\r\n // console.log(data)\r\n $('.stockName',$parent).val(data.stkName);\r\n $('.stockRate',$parent).val(data.pledgerate);\r\n $('.stockPrice',$parent).val(data.currentPrice)\r\n },function(err){\r\n alert('您输入的证券非两融担保证券')\r\n console.log(err)\r\n return ;\r\n })\r\n },100)\r\n }else{\r\n seter1 = setTimeout(function(){\r\n $('.stockName',$parent).val();\r\n $('.stockRate',$parent).val();\r\n $('.stockPrice',$parent).val()\r\n },100)\r\n }\r\n })\r\n\r\n\r\n $('#stock_wrap').on('input','.stockNum',function(){\r\n var _self =this; \r\n if(seterObj){\r\n window.clearTimeout(seterObj)\r\n }\r\n\r\n seterObj = setTimeout(function(){\r\n $('#stock_wrap .stockNum').each(function(){\r\n var value = $(this).val();\r\n if(value){\r\n value = Math.floor(value/100)*100;\r\n $(this).val(value)\r\n }\r\n })\r\n },1000)\r\n })\r\n\r\n $('#bCode').on('input',function(){\r\n \r\n var val = $(this).val();\r\n \r\n that.loadBd(val)\r\n })\r\n\r\n $('input[name=\"direc\"]').change(function(){\r\n var val = $('#bCode').val();\r\n if(val === ''){\r\n return\r\n }\r\n that.loadBd(val);\r\n })\r\n\r\n //计算\r\n $('.btn_calculate').click(function(){\r\n var zc = $('#zc').val();//资产\r\n var stockCode = $('#stock_wrap .stockCode');//担保证券代码\r\n var stockNum = $('#stock_wrap .stockNum');//可用数量\r\n var stockRate = $('#stock_wrap .stockRate');//折算率\r\n var stockPrice = $('#stock_wrap .stockPrice');//当前价格\r\n\r\n var direc = $('input[name=\"direc\"]:checked').val();//委托方向 0:买入 1 卖出\r\n\r\n var bCode = $('#bCode').val();//标的证券代码\r\n var bRate = $('#bRate').val();//标的保证金比例\r\n var bPrice = $('#Price').val();//标的价格\r\n\r\n if(!zc){\r\n alert('请输入可用现金资产')\r\n return;\r\n }\r\n\r\n var isTag = false;\r\n\r\n stockCode.each(function(){\r\n if(!$(this).val() || $(this).val().length != 6){\r\n isTag = true;\r\n }\r\n })\r\n\r\n stockRate.each(function(){\r\n if(!$(this).val()){\r\n isTag = true;\r\n }\r\n })\r\n\r\n stockPrice.each(function(){\r\n if(!$(this).val()){\r\n isTag = true;\r\n }\r\n })\r\n\r\n if( isTag === true){\r\n alert('请输入担保证券代码')\r\n return;\r\n }\r\n\r\n\r\n var isStockNum = false;\r\n\r\n stockNum.each(function(){\r\n if(!$(this).val()){\r\n isStockNum = true;\r\n }\r\n })\r\n\r\n if(isStockNum === true){\r\n alert('请输入担保证券数量')\r\n return;\r\n }\r\n\r\n if(!bRate || bRate == 0){\r\n alert('请输入正确的标的证券代码');\r\n return;\r\n }\r\n\r\n if(!(bCode && bPrice)){\r\n alert('请输入标的证券代码')\r\n return;\r\n }\r\n\r\n var bzj = 0;\r\n\r\n $('#stock_wrap .stock_detail').each(function(){\r\n var stockNum = parseFloat($(this).find('.stockNum').val()) || 0\r\n var stockPrice = parseFloat($(this).find('.stockPrice').val()) || 0\r\n var stockRate = parseFloat($(this).find('.stockRate').val()) || 0\r\n\r\n bzj += stockNum * stockPrice * stockRate;\r\n })\r\n\r\n var ChuShiBaoZhenJin = parseFloat(zc) + bzj;\r\n var KeRongZiZiChan = ChuShiBaoZhenJin/bRate || 0;\r\n var Name = direc == 1 ? '可融资卖出证券数量' : '可融资买入证券数量';\r\n var ShuLiang = KeRongZiZiChan / bPrice;\r\n\r\n\r\n $('#bzj').html(ChuShiBaoZhenJin.toFixed(2));\r\n $('#krzzj').html(KeRongZiZiChan.toFixed(2));\r\n $('#krznum').html(Math.floor(ShuLiang/100)*100)\r\n $('#krznum').prev('.name').html(Name)\r\n })\r\n\r\n $('.btn_reset').click(function(){\r\n $('.formBox input[type=\"text\"]').each(function(){\r\n $(this).val('')\r\n })\r\n\r\n $('#bzj').html('')\r\n $('#krznum').html('')\r\n $('#krzzj').html('')\r\n })\r\n\r\n //增加担保证券\r\n $('.stock_action').on('click',function(e){\r\n var className = e.target.className;\r\n \r\n if(className === 'add'){\r\n var clone = $('#stock_wrap .stock_detail:first-child').clone();\r\n clone.find('input').each(function(){\r\n $(this).val('')\r\n })\r\n $('#stock_wrap').append(clone);\r\n \r\n $('.stock_action .minus').removeAttr('disabled')\r\n if($('#stock_wrap').children().length === 5){\r\n $(e.target).attr('disabled','disabled')\r\n }\r\n $('.stockCode').on(\"input propertychange\",function(){\r\n var $parent = $(this).parents('.stock_detail');\r\n if(seter1){\r\n window.clearTimeout(seter1)\r\n }\r\n var val = $(this).val();\r\n // console.log(val)\r\n if(val && val.length == 6){\r\n seter1 = setTimeout(function(){\r\n that.getDate(val,function(data){\r\n // console.log(data)\r\n $('.stockName',$parent).val(data.stkName);\r\n $('.stockRate',$parent).val(data.pledgerate);\r\n $('.stockPrice',$parent).val(data.currentPrice)\r\n },function(err){\r\n alert('您输入的证券非两融担保证券')\r\n console.log(err)\r\n return ;\r\n })\r\n },100)\r\n }else{\r\n seter1 = setTimeout(function(){\r\n $('.stockName',$parent).val();\r\n $('.stockRate',$parent).val();\r\n $('.stockPrice',$parent).val()\r\n },100)\r\n }\r\n })\r\n }else if(className === 'minus'){\r\n var len = $('#stock_wrap').children().length;\r\n if(len > 1){\r\n $('.stock_action .add').removeAttr('disabled')\r\n $('#stock_wrap .stock_detail').eq(len - 1).remove();\r\n }\r\n\r\n if($('#stock_wrap').children().length <= 1){\r\n $(e.target).attr('disabled','disabled')\r\n }\r\n }\r\n })\r\n },\r\n loadBd:function(val){\r\n var that = this;\r\n if(that.seter2){\r\n window.clearTimeout(that.seter2)\r\n }\r\n if(val && val.length == 6){\r\n that.seter2 = setTimeout(function(){\r\n that.getDate(val,function(data){\r\n var dirc = $('input[name=\"direc\"]:checked').val();//委托方向\r\n\r\n if(dirc === '1' && data.creditstkctrl == '1' ){\r\n alert(\"该股票禁止融券\");\r\n $('#bName').val('');\r\n $('#bRate').val('');\r\n $('#Price').val('')\r\n return ;\r\n }\r\n\r\n if(dirc === '0' && data.creditfundctrl == '1' ){\r\n alert(\"该股票禁止融资\");\r\n $('#bName').val('');\r\n $('#bRate').val('');\r\n $('#Price').val('')\r\n return ;\r\n }\r\n if(data.isCreditCode === 0){\r\n alert('您输入的证券非两融标的证券');\r\n return;\r\n }\r\n\r\n var bzj = dirc === \"1\" ? data.marginratestk : data.marginratefund;\r\n $('#bName').val(data.stkName);\r\n $('#bRate').val(bzj);\r\n $('#Price').val(data.currentPrice)\r\n },function(){\r\n alert('您输入的证券非两融标的证券');\r\n return;\r\n })\r\n },100)\r\n }else{\r\n that.seter2 = setTimeout(function(){\r\n $('#bName').val('');\r\n $('#bRate').val('');\r\n $('#Price').val('')\r\n },100)\r\n }\r\n },\r\n getDate:function(code,callback,fail){\r\n $.ajax({\r\n url:'/api/TouJiaoApi/GetLiangRong',\r\n type:'get',\r\n dataType: \"json\",\r\n data:{\r\n stockcode:code,\r\n _random:Math.random()\r\n },\r\n success:function(json){\r\n try {\r\n if(json && json.data && json.data[0]){\r\n callback && callback(json.data[0])\r\n }else{\r\n fail && fail(json)\r\n return false;\r\n }\r\n } catch (error) {\r\n fail && fail(error)\r\n return false;\r\n }\r\n \r\n },\r\n error:function(error){\r\n fail && fail(error)\r\n return false;\r\n }\r\n })\r\n }\r\n}\r\n\r\n\r\n$(function(){\r\n\r\n calculator.init()\r\n\r\n jQuery(\"#kh-slide\").slide({\r\n titCell: \".hd ul\",\r\n mainCell: \".bd ul\",\r\n effect: \"leftLoop\",\r\n pnLoop:false,\r\n endFun:function(index,total,c){\r\n if(index + 1 === total){\r\n $('.tomoni').css(\"visibility\",\"visible\")\r\n }else{\r\n $('.tomoni').css(\"visibility\",\"hidden\")\r\n }\r\n }\r\n });\r\n\r\n\r\n \r\n // answer.load(function(that,totalScore,scoreArr){\r\n // that.showModel({\r\n // isScore:true,\r\n // score:totalScore,\r\n // targetScore:80,\r\n // link:'/MoNiJiaoYi/LiangRong?type=3'\r\n // })\r\n \r\n // });\r\n\r\n new answer({\r\n callback:function(that,totalScore,scoreArr){\r\n that.showModel({\r\n isScore:true,\r\n score:totalScore,\r\n targetScore:80,\r\n link:'/MoNiJiaoYi/LiangRong?type=3'\r\n })\r\n }\r\n })\r\n})\n\n/***/ })\n\n/******/ });\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vd2VicGFjay9ib290c3RyYXAgOGQwNDNhMGFmMjEzYzAzMDVhNTAiLCJ3ZWJwYWNrOi8vLy4vanMvbW9kdWxlcy9wcm9ibGVtL2luZGV4LmpzIiwid2VicGFjazovLy8uL2pzL2xyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7UUFBQTtRQUNBOztRQUVBO1FBQ0E7O1FBRUE7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7O1FBRUE7UUFDQTs7UUFFQTtRQUNBOztRQUVBO1FBQ0E7UUFDQTs7O1FBR0E7UUFDQTs7UUFFQTtRQUNBOztRQUVBO1FBQ0EsMkNBQTJDLGNBQWM7O1FBRXpEO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0EsS0FBSztRQUNMO1FBQ0E7O1FBRUE7UUFDQTtRQUNBO1FBQ0EsMkJBQTJCLDBCQUEwQixFQUFFO1FBQ3ZELGlDQUFpQyxlQUFlO1FBQ2hEO1FBQ0E7UUFDQTs7UUFFQTtRQUNBLHNEQUFzRCwrREFBK0Q7O1FBRXJIO1FBQ0E7O1FBRUE7UUFDQTs7Ozs7Ozs7QUNoRUE7QUFDQTtBQUNBLFdBQVcsRUFBRTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMOztBQUVBO0FBQ0E7QUFDQSxXQUFXLEVBQUU7QUFDYjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsV0FBVyxFQUFFO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLGtDQUFrQztBQUNsQztBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxvQ0FBb0M7O0FBRXBDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsc0JBQXNCLFdBQVc7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Q2I7QUFDQTtBQUNBO0FBQ0EsS0FBSzs7OztBQUlMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVk7O0FBRVosUUFBUTs7QUFFUjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBLEtBQUs7QUFDTCxDQUFDLEMiLCJmaWxlIjoibHIuanMiLCJzb3VyY2VzQ29udGVudCI6WyIgXHQvLyBUaGUgbW9kdWxlIGNhY2hlXG4gXHR2YXIgaW5zdGFsbGVkTW9kdWxlcyA9IHt9O1xuXG4gXHQvLyBUaGUgcmVxdWlyZSBmdW5jdGlvblxuIFx0ZnVuY3Rpb24gX193ZWJwYWNrX3JlcXVpcmVfXyhtb2R1bGVJZCkge1xuXG4gXHRcdC8vIENoZWNrIGlmIG1vZHVsZSBpcyBpbiBjYWNoZVxuIFx0XHRpZihpbnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXSkge1xuIFx0XHRcdHJldHVybiBpbnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXS5leHBvcnRzO1xuIFx0XHR9XG4gXHRcdC8vIENyZWF0ZSBhIG5ldyBtb2R1bGUgKGFuZCBwdXQgaXQgaW50byB0aGUgY2FjaGUpXG4gXHRcdHZhciBtb2R1bGUgPSBpbnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXSA9IHtcbiBcdFx0XHRpOiBtb2R1bGVJZCxcbiBcdFx0XHRsOiBmYWxzZSxcbiBcdFx0XHRleHBvcnRzOiB7fVxuIFx0XHR9O1xuXG4gXHRcdC8vIEV4ZWN1dGUgdGhlIG1vZHVsZSBmdW5jdGlvblxuIFx0XHRtb2R1bGVzW21vZHVsZUlkXS5jYWxsKG1vZHVsZS5leHBvcnRzLCBtb2R1bGUsIG1vZHVsZS5leHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKTtcblxuIFx0XHQvLyBGbGFnIHRoZSBtb2R1bGUgYXMgbG9hZGVkXG4gXHRcdG1vZHVsZS5sID0gdHJ1ZTtcblxuIFx0XHQvLyBSZXR1cm4gdGhlIGV4cG9ydHMgb2YgdGhlIG1vZHVsZVxuIFx0XHRyZXR1cm4gbW9kdWxlLmV4cG9ydHM7XG4gXHR9XG5cblxuIFx0Ly8gZXhwb3NlIHRoZSBtb2R1bGVzIG9iamVjdCAoX193ZWJwYWNrX21vZHVsZXNfXylcbiBcdF9fd2VicGFja19yZXF1aXJlX18ubSA9IG1vZHVsZXM7XG5cbiBcdC8vIGV4cG9zZSB0aGUgbW9kdWxlIGNhY2hlXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLmMgPSBpbnN0YWxsZWRNb2R1bGVzO1xuXG4gXHQvLyBpZGVudGl0eSBmdW5jdGlvbiBmb3IgY2FsbGluZyBoYXJtb255IGltcG9ydHMgd2l0aCB0aGUgY29ycmVjdCBjb250ZXh0XG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLmkgPSBmdW5jdGlvbih2YWx1ZSkgeyByZXR1cm4gdmFsdWU7IH07XG5cbiBcdC8vIGRlZmluZSBnZXR0ZXIgZnVuY3Rpb24gZm9yIGhhcm1vbnkgZXhwb3J0c1xuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5kID0gZnVuY3Rpb24oZXhwb3J0cywgbmFtZSwgZ2V0dGVyKSB7XG4gXHRcdGlmKCFfX3dlYnBhY2tfcmVxdWlyZV9fLm8oZXhwb3J0cywgbmFtZSkpIHtcbiBcdFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgbmFtZSwge1xuIFx0XHRcdFx0Y29uZmlndXJhYmxlOiBmYWxzZSxcbiBcdFx0XHRcdGVudW1lcmFibGU6IHRydWUsXG4gXHRcdFx0XHRnZXQ6IGdldHRlclxuIFx0XHRcdH0pO1xuIFx0XHR9XG4gXHR9O1xuXG4gXHQvLyBnZXREZWZhdWx0RXhwb3J0IGZ1bmN0aW9uIGZvciBjb21wYXRpYmlsaXR5IHdpdGggbm9uLWhhcm1vbnkgbW9kdWxlc1xuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5uID0gZnVuY3Rpb24obW9kdWxlKSB7XG4gXHRcdHZhciBnZXR0ZXIgPSBtb2R1bGUgJiYgbW9kdWxlLl9fZXNNb2R1bGUgP1xuIFx0XHRcdGZ1bmN0aW9uIGdldERlZmF1bHQoKSB7IHJldHVybiBtb2R1bGVbJ2RlZmF1bHQnXTsgfSA6XG4gXHRcdFx0ZnVuY3Rpb24gZ2V0TW9kdWxlRXhwb3J0cygpIHsgcmV0dXJuIG1vZHVsZTsgfTtcbiBcdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5kKGdldHRlciwgJ2EnLCBnZXR0ZXIpO1xuIFx0XHRyZXR1cm4gZ2V0dGVyO1xuIFx0fTtcblxuIFx0Ly8gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLm8gPSBmdW5jdGlvbihvYmplY3QsIHByb3BlcnR5KSB7IHJldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqZWN0LCBwcm9wZXJ0eSk7IH07XG5cbiBcdC8vIF9fd2VicGFja19wdWJsaWNfcGF0aF9fXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLnAgPSBcIlwiO1xuXG4gXHQvLyBMb2FkIGVudHJ5IG1vZHVsZSBhbmQgcmV0dXJuIGV4cG9ydHNcbiBcdHJldHVybiBfX3dlYnBhY2tfcmVxdWlyZV9fKF9fd2VicGFja19yZXF1aXJlX18ucyA9IDIwKTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyB3ZWJwYWNrL2Jvb3RzdHJhcCA4ZDA0M2EwYWYyMTNjMDMwNWE1MCIsIi8qKlxyXG4gKiDpmo/mnLrlj5bmlbDmja5cclxuICogQHBhcmFtIHsqfSBhIFxyXG4gKi9cclxuZnVuY3Rpb24gc2h1ZmZsZShhKSB7XHJcbiAgICByZXR1cm4gYS5jb25jYXQoKS5zb3J0KGZ1bmN0aW9uKGEsIGIpIHtcclxuICAgICAgcmV0dXJuIE1hdGgucmFuZG9tKCkgLSAwLjU7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4vKipcclxuICog5Yik5pat5piv5ZCm5Li65pWw57uEXHJcbiAqIEBwYXJhbSB7Kn0gYXJnIFxyXG4gKi9cclxuZnVuY3Rpb24gaXNBcnJheShhcmcpIHtcclxuICAgIHJldHVybiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoYXJnKSA9PT0gJ1tvYmplY3QgQXJyYXldJztcclxufVxyXG5cclxuLyoqXHJcbiAqIOmaj+acuuWOu+aVsOe7hOS4reS7u+aEj+S4gOadoeaVsOaNrlxyXG4gKiBAcGFyYW0geyp9IGRhdGEgXHJcbiAqL1xyXG5mdW5jdGlvbiByYW5kb21EYXRhKGRhdGEpe1xyXG4gICAgaWYoaXNBcnJheShkYXRhKSl7XHJcbiAgICAgICAgdmFyIGxlbiA9IGRhdGEubGVuZ3RoO1xyXG4gICAgICAgIHZhciBpbmRleCA9IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSpsZW4pO1xyXG4gICAgICAgIGNvbnNvbGUubG9nKGluZGV4KVxyXG4gICAgICAgIHJldHVybiBkYXRhW2luZGV4XVxyXG4gICAgfVxyXG4gICAgcmV0dXJuICBbXTtcclxufVxyXG5cclxuXHJcbiAgZnVuY3Rpb24gcHJvYmxlbShvcHRpb25zKXtcclxuICAgICAgICAvL2NhbGxiYWNrLGlzUmFuZG9tLHBUeXBlLFxyXG4gICAgICAgIHZhciBkZWZhdWx0T3B0aW9ucyA9IHtcclxuICAgICAgICAgICAgaWQ6XCJwcm9ibGVtX3dyYXBcIiwvL+mimOebrmRvbSBpZFxyXG4gICAgICAgICAgICBEQVRBOnByb2JsZW1fZGF0YSwvL+mimOebruaVsOaNrlxyXG4gICAgICAgICAgICBpc1JhbmRvbTpmYWxzZSwvL+aYr+WQpumaj+aculxyXG4gICAgICAgICAgICBsZW46MjAsLy/pmo/mnLrpopjnm67mlbDph49cclxuICAgICAgICAgICAgcFR5cGU6JycsIC8v6aKY55uu57G75Z6LXHJcbiAgICAgICAgICAgIGNhbGxiYWNrOm51bGwvL+Wbnuiwg1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5vcHRpb25zID0gJC5leHRlbmQoe30sZGVmYXVsdE9wdGlvbnMsb3B0aW9ucyk7XHJcbiAgICAgICAgY29uc29sZS5sb2codGhpcy5vcHRpb25zKVxyXG4gICAgICAgIGlmKHR5cGVvZiB0aGlzLm9wdGlvbnMuREFUQSA9PSB1bmRlZmluZWQgfHwgIXRoaXMub3B0aW9ucy5EQVRBLmxlbmd0aCl7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdmFyIGh0bWwgPSAnPHVsIGNsYXNzPVwicHJvYmxlbV9saXN0XCIgPic7XHJcbiAgICAgICAgdGhpcy4kd3JhcCA9ICQoJyMnK3RoaXMub3B0aW9ucy5pZClcclxuICAgICAgICB0aGlzLkRBVEEgPSB0aGlzLm9wdGlvbnMuREFUQTtcclxuICAgICAgICB0aGlzLmxlbiA9IHRoaXMuREFUQS5sZW5ndGg7Ly/popjnm67mlbBcclxuXHJcbiAgICAgICAgdGhpcy5jYWxsYmFjayA9IHRoaXMub3B0aW9ucy5jYWxsYmFjaztcclxuICAgICAgICB0aGlzLmlzUmFuZG9tID0gdGhpcy5vcHRpb25zLmlzUmFuZG9tO1xyXG4gICAgICAgIHRoaXMuaXNEYXRhUmFuZG9tID0gdGhpcy5vcHRpb25zLmlzRGF0YVJhbmRvbTtcclxuICAgICAgICB0aGlzLnBUeXBlID0gdGhpcy5vcHRpb25zLnBUeXBlO1xyXG4gICAgICAgIHRoaXMudGFnID0gZmFsc2U7XHJcblxyXG4gICAgICAgIHRoaXMuX2Fuc3dlckluZGV4ID0gMDtcclxuXHJcbiAgICAgICAgaWYodGhpcy5pc0RhdGFSYW5kb20pe1xyXG4gICAgICAgICAgICB0aGlzLkRBVEEgPSByYW5kb21EYXRhKHRoaXMuREFUQSlcclxuICAgICAgICAgICAgdGhpcy5sZW4gPSB0aGlzLkRBVEEubGVuZ3RoO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYodGhpcy5pc1JhbmRvbSl7XHJcbiAgICAgICAgICAgIHRoaXMubGVuPXRoaXMub3B0aW9ucy5sZW4gfHwgdGhpcy5EQVRBLmxlbmd0aDtcclxuICAgICAgICAgICAgdGhpcy5EQVRBID0gc2h1ZmZsZSh0aGlzLkRBVEEpXHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBmb3IodmFyIGkgPSAwO2k8dGhpcy5sZW47aSsrKXtcclxuICAgICAgICAgICAgdmFyIGNsYXNzTmFtZSA9IGkgPT09IDAgPyAnYWN0aXZlJyA6IFwiXCI7XHJcblxyXG4gICAgICAgICAgICBodG1sICs9ICc8bGkgY2xhc3M9XCJpdGVtICcrY2xhc3NOYW1lKydcIj48ZGl2IGNsYXNzPVwidGl0bGVcIj48c3BhbiBjbGFzcz1cIm9yZGVyXCI+PGI+JysocGFyc2VJbnQoaSkrMSkrJzwvYj4vJyt0aGlzLmxlbisn44CBPC9zcGFuPjxzcGFuIGNsYXNzPVwidGl0XCI+Jyt0aGlzLkRBVEFbaV0udGl0bGUrJzwvc3Bhbj48L2Rpdj4nO1xyXG5cclxuICAgICAgICAgICAgaHRtbCArPSAnPHVsIGNsYXNzPVwic2VsZWN0X2xpc3RcIj4nO1xyXG4gICAgICAgICAgICB2YXIgb3B0aW9uTGVuID0gdGhpcy5EQVRBW2ldLm9wdGlvbnMubGVuZ3RoOy8v562U5qGI5pWwXHJcbiAgICAgICAgICAgIGZvcih2YXIgaiA9IDA7ajxvcHRpb25MZW47aisrKXtcclxuICAgICAgICAgICAgICAgIHZhciBvcHRpb24gPSAgdGhpcy5EQVRBW2ldLm9wdGlvbnM7XHJcbiAgICAgICAgICAgICAgICBodG1sICs9ICc8bGk+PHNwYW4gY2xhc3M9XCJyYWRpby13cmFwXCI+PGlucHV0IHR5cGU9XCJyYWRpb1wiIGRhdGEtc2NvcmU9XCInK3RoaXMuREFUQVtpXS5zY29yZXNbal0rJ1wiIG5hbWU9XCInK3RoaXMub3B0aW9ucy5pZCtpKydcIiB2YWx1ZT1cIicraisnXCIgaWQ9XCInK3RoaXMub3B0aW9ucy5pZCtpKycnK2orJ1wiPjxzcGFuIGNsYXNzPVwicmFkaW8taW5uZXJcIj48L3NwYW4+PC9zcGFuPjxsYWJlbCBmb3I9XCInK3RoaXMub3B0aW9ucy5pZCtpKycnK2orJ1wiPicrb3B0aW9uW2pdKyc8L2xhYmVsPjwvbGk+J1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBodG1sICs9ICc8L3VsPjwvbGk+J1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaHRtbCArPSc8L3VsPjxkaXYgY2xhc3M9XCJidG5fd3JhcFwiID48YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bl9wcmV2XCIgZGlzYWJsZWQ9XCJkaXNhYmxlZFwiPuS4iuS4gOmimDwvYnV0dG9uPjxidXR0b24gY2xhc3M9XCJidG4gYnRuX25leHQgXCIgZGlzYWJsZWQ9XCJkaXNhYmxlZFwiPuS4i+S4gOmimDwvYnV0dG9uPjwvZGl2Pic7XHJcblxyXG5cclxuICAgICAgICB0aGlzLiR3cmFwLmh0bWwoaHRtbCk7XHJcblxyXG5cclxuXHJcbiAgICAgICAgdGhpcy5iaW5kKHRoaXMuY2FsbGJhY2spO1xyXG4gIH1cclxuXHJcbiAgcHJvYmxlbS5wcm90b3R5cGUgPSB7XHJcbiAgICBiaW5kOmZ1bmN0aW9uKGNhbGxiYWNrKXtcclxuICAgICAgICB2YXIgdGhhdCA9IHRoaXM7XHJcbiAgICAgICAgXHJcbiAgICAgICAgJCgnLnByb2JsZW1fbGlzdCcsIHRoYXQuJHdyYXApLm9uKCdjaGFuZ2UnLCcuYWN0aXZlIGlucHV0JyxmdW5jdGlvbigpe1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZygxMjMpXHJcbiAgICAgICAgICAgICQoJy5idG5fbmV4dCcsIHRoYXQuJHdyYXAgKS5yZW1vdmVBdHRyKCdkaXNhYmxlZCcpXHJcbiAgICAgICAgICAgICQoJy5idG5fcmVzdWx0Jyx0aGF0LiR3cmFwICkucmVtb3ZlQXR0cignZGlzYWJsZWQnKVxyXG4gICAgICAgIH0pXHJcblxyXG4gICAgICAgICQoJy5idG5fd3JhcCcsIHRoYXQuJHdyYXAgKS5vbignY2xpY2snLCcuYnRuX3ByZXYnLGZ1bmN0aW9uKCl7XHJcbiAgICAgICAgICAgIHRoYXQuX2Fuc3dlckluZGV4IC0tO1xyXG4gICAgICAgICAgICAkKCcucHJvYmxlbV9saXN0PmxpJyx0aGF0LiR3cmFwICkuZXEodGhhdC5fYW5zd2VySW5kZXgpLmFkZENsYXNzKCdhY3RpdmUnKS5zaWJsaW5ncygpLnJlbW92ZUNsYXNzKCdhY3RpdmUnKTtcclxuICAgICAgICAgICAgaWYodGhhdC5fYW5zd2VySW5kZXggPD0wKXtcclxuICAgICAgICAgICAgICAgICQoJy5idG5fcHJldicsIHRoYXQuJHdyYXAgKS5hdHRyKCdkaXNhYmxlZCcsXCJkaXNhYmxlZFwiKVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICQoJy5idG5fbmV4dCcsdGhhdC4kd3JhcCApLnJlbW92ZUF0dHIoJ2Rpc2FibGVkJyk7XHJcbiAgICAgICAgfSlcclxuXHJcbiAgICAgICAgJCgnLmJ0bl93cmFwJywgdGhhdC4kd3JhcCApLm9uKCdjbGljaycsJy5idG5fbmV4dCcsZnVuY3Rpb24oKXtcclxuICAgICAgICAgICAgdGhhdC5fYW5zd2VySW5kZXggKys7XHJcblxyXG4gICAgICAgICAgICBpZih0aGF0Ll9hbnN3ZXJJbmRleCArIDEgPT09IHRoYXQubGVuKXtcclxuICAgICAgICAgICAgICAgIGlmKHRoYXQucFR5cGUgPT09ICdteWQnKXtcclxuICAgICAgICAgICAgICAgICAgICAkKCcuYnRuX3dyYXAnLCB0aGF0LiR3cmFwICkuaHRtbCgnPGJ1dHRvbiBjbGFzcz1cImJ0biBidG5fcmVzdWx0XCIgZGlzYWJsZWQ9XCJkaXNhYmxlZFwiPuaPkOS6pDwvYnV0dG9uPicpIFxyXG4gICAgICAgICAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICAgICAgICAgICAgJCgnLmJ0bl93cmFwJywgdGhhdC4kd3JhcCApLmh0bWwoJzxidXR0b24gY2xhc3M9XCJidG4gYnRuX3Jlc3VsdFwiIGRpc2FibGVkPVwiZGlzYWJsZWRcIj7mn6XnnIvmtYvor4Tnu5Pmnpw8L2J1dHRvbj4nKVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiggdGhhdC5fYW5zd2VySW5kZXggKyAxID4gdGhhdC5sZW4gKXtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAkKCcucHJvYmxlbV9saXN0PmxpJyx0aGF0LiR3cmFwICkuZXEodGhhdC5fYW5zd2VySW5kZXgpLmFkZENsYXNzKCdhY3RpdmUnKS5zaWJsaW5ncygpLnJlbW92ZUNsYXNzKCdhY3RpdmUnKTtcclxuICAgICAgICAgICAgaWYoISQoJy5wcm9ibGVtX2xpc3QgLmFjdGl2ZSBpbnB1dDpyYWRpbzpjaGVja2VkJyx0aGF0LiR3cmFwKS5sZW5ndGgpe1xyXG4gICAgICAgICAgICAgICAgJCgnLmJ0bl9uZXh0Jyx0aGF0LiR3cmFwICkuYXR0cignZGlzYWJsZWQnLFwiZGlzYWJsZWRcIik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgJCgnLmJ0bl9wcmV2JywgdGhhdC4kd3JhcCApLnJlbW92ZUF0dHIoJ2Rpc2FibGVkJyk7XHJcbiAgICAgICAgICAgXHJcbiAgICAgICAgfSlcclxuXHJcbiAgICAgICAgJCgnLmJ0bl93cmFwJywgdGhhdC4kd3JhcCApLm9uKCdjbGljaycsJy5idG5fcmVzdWx0JyxmdW5jdGlvbigpe1xyXG4gICAgICAgICAgICB2YXIgdG90YWxTY29yZSA9IDA7XHJcbiAgICAgICAgICAgIHZhciBzY29yZUFyciA9IFtdO1xyXG4gICAgICAgICAgICAkKCcucHJvYmxlbV9saXN0IC5pdGVtJyx0aGF0LiR3cmFwKS5lYWNoKGZ1bmN0aW9uKCl7XHJcbiAgICAgICAgICAgICAgIHZhciBfc2NvcmUgPSAkKHRoaXMpLmZpbmQoXCJpbnB1dFt0eXBlPSdyYWRpbyddOmNoZWNrZWRcIikuZGF0YSgnc2NvcmUnKTtcclxuICAgICAgICAgICAgICAgX3Njb3JlID0gcGFyc2VGbG9hdChfc2NvcmUpO1xyXG4gICAgICAgICAgICAgICBzY29yZUFyci5wdXNoKF9zY29yZSlcclxuICAgICAgICAgICAgICAgdG90YWxTY29yZSArPSBfc2NvcmU7XHJcbiAgICAgICAgICAgIH0pXHJcblxyXG4gICAgICAgICAgICBjb25zb2xlLmxvZyh0b3RhbFNjb3JlKVxyXG5cclxuICAgICAgICAgICAgY2FsbGJhY2sgJiYgY2FsbGJhY2sodGhhdCx0b3RhbFNjb3JlLHNjb3JlQXJyKVxyXG4gICAgICAgICAgICBcclxuICAgICAgICB9KVxyXG4gICAgfSxcclxuICAgIHNob3dNb2RlbDpmdW5jdGlvbihvcHRpb24pe1xyXG4gICAgICAgIHZhciB0aGF0ID0gdGhpcztcclxuICAgICAgICAvLyB2YXIgd2luSGVpZ2h0ID0gJCh3aW5kb3cpLm91dGVySGVpZ2h0KCk7XHJcbiAgICAgICAgLy8gdmFyIHdpbmRXaWR0aCA9ICQod2luZG93KS5vdXRlcldpZHRoKCk7XHJcbiAgICAgICAgdmFyIGh0bWwgPSAnPGRpdiBjbGFzcz1cImNvbWZpcm1fbW9kZWxcIj4nO1xyXG4gICAgICAgIGh0bWwgKz0gJzxkaXYgY2xhc3M9XCJjb21maXJtX21hc2tcIiBzdHlsZT1cIndpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7YmFja2dyb3VuZDojMDAwO29wYWNpdHk6MC41O1wiPjwvZGl2Pic7XHJcbiAgICAgICAgIGh0bWwgKz0gJzxkaXYgY2xhc3M9XCJjb21maXJtX2NvbnRhaW5lclwiPicgK1xyXG4gICAgICAgICAgICAgICAgJzxkaXYgY2xhc3M9XCJjb21maXJtX2hlYWRlclwiPjxkaXYgY2xhc3M9XCJjb25maXJtX21vcmVcIj48aSBjbGFzcz1cImljb25fY2xvc2VcIj48L2k+PC9kaXY+PC9kaXY+JyArXHJcbiAgICAgICAgICAgICAgICAnPGRpdiBjbGFzcz1cImNvbmZpcm1fY29udGVudFwiPic7XHJcbiAgICAgICAgICAgICAgICBpZighb3B0aW9uLmlzU2NvcmUpe1xyXG4gICAgICAgICAgICAgICAgICAgIGh0bWwrPSc8ZGl2IGNsYXNzPVwiY29uZmlybV9zdWNcIj48L2Rpdj48cD4nICsgb3B0aW9uLmNvbnRlbnQgKyAnPC9wPic7XHJcbiAgICAgICAgICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgICAgICAgICAgICBpZihvcHRpb24uc2NvcmUgPj0gb3B0aW9uLnRhcmdldFNjb3JlKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaHRtbCs9JzxkaXYgY2xhc3M9XCJjb25maXJtX3N1Y1wiPjwvZGl2PjxkaXYgY2xhc3M9XCJzY29yZV9yZXNcIj7or4TmtYvmiJDlip88L2Rpdj48cCBjbGFzcz1cInNjb3JlX2NvblwiPuS9oOeahOW+l+WIhjo8c3Bhbj4nK29wdGlvbi5zY29yZSsnPC9zcGFuPuWIhiZuYnNwOyZuYnNwO+ebruagh+WIhuaVsDo8c3Bhbj4nK29wdGlvbi50YXJnZXRTY29yZSsnPC9zcGFuPuWIhjwvcD4nO1xyXG4gICAgICAgICAgICAgICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBodG1sKz0nPGRpdiBjbGFzcz1cImNvbmZpcm1fZmFpbFwiPjwvZGl2PjxkaXYgY2xhc3M9XCJzY29yZV9yZXNcIj7or4TmtYvlpLHotKU8L2Rpdj48cCBjbGFzcz1cInNjb3JlX2NvblwiPuS9oOeahOW+l+WIhjo8c3Bhbj4nK29wdGlvbi5zY29yZSsnPC9zcGFuPuWIhiZuYnNwOyZuYnNwO+ebruagh+WIhuaVsDo8c3Bhbj4nK29wdGlvbi50YXJnZXRTY29yZSsnPC9zcGFuPuWIhjwvcD4nO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYodGhhdC5wVHlwZSA9PT0gJ215ZCcpe1xyXG4gICAgICAgICAgICAgICAgaHRtbCArPSAnPC9kaXY+PGRpdiBjbGFzcz1cImNvbmZpcm1fZm9vdCBidG5fd3JhcFwiPjxidXR0b24gY2xhc3M9XCJidG4gYnRuX2Nsb3NlXCI+5YWz6ZetPC9idXR0b24+J1xyXG4gICAgICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgICAgICAgIGh0bWwgKz0gJzwvZGl2PjxkaXYgY2xhc3M9XCJjb25maXJtX2Zvb3QgYnRuX3dyYXBcIj48YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bl9hZ2FpblwiPumHjeaWsOivhOa1izwvYnV0dG9uPidcclxuICAgICAgICAgICAgICAgIGlmKG9wdGlvbi5saW5rKXtcclxuICAgICAgICAgICAgICAgICAgICBodG1sICs9ICc8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bl90b21vbmlcIj7ljrvmqKHmi5/kuqTmmJM8L2J1dHRvbj4nXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICBodG1sICs9ICc8L2Rpdj48L2Rpdj48L2Rpdj4nO1xyXG5cclxuICAgICAgICB2YXIgJGh0bWwgPSAkKGh0bWwpXHJcblxyXG4gICAgICAgICQoJ2JvZHknKS5hcHBlbmQoJGh0bWwpO1xyXG5cclxuICAgICAgICAkaHRtbC5jc3Moe1xyXG4gICAgICAgICAgICBcInBvc2l0aW9uXCI6IFwiZml4ZWRcIixcclxuICAgICAgICAgICAgXCJ0b3BcIjogXCIwXCIsXHJcbiAgICAgICAgICAgIFwibGVmdFwiOlwiMFwiLFxyXG4gICAgICAgICAgICBcImhlaWdodFwiOicxMDAlJyxcclxuICAgICAgICAgICAgXCJ3aWR0aFwiOiAnMTAwJScsXHJcbiAgICAgICAgICAgIFwiei1pbmRleFwiOlwiOTk5OVwiXHJcbiAgICAgICAgfSlcclxuXHJcbiAgICAgICAgJCgnLmNvbWZpcm1fY29udGFpbmVyJywgdGhpcy5odG1sKS5jc3Moe1xyXG4gICAgICAgICAgICBcInBvc2l0aW9uXCI6IFwiYWJzb2x1dGVcIixcclxuICAgICAgICAgICAgXCJ0b3BcIjogXCI1MCVcIixcclxuICAgICAgICAgICAgXCJsZWZ0XCI6IFwiNTAlXCIsXHJcbiAgICAgICAgICAgIFwiaGVpZ2h0XCI6JzM0MnB4JyxcclxuICAgICAgICAgICAgXCJ3aWR0aFwiOiAnNTAwcHgnLFxyXG4gICAgICAgICAgICBcIm1hcmdpbi10b3BcIjogJy0xNzFweCcsXHJcbiAgICAgICAgICAgIFwibWFyZ2luLWxlZnRcIjonLTI1MHB4J1xyXG4gICAgICAgIH0pXHJcblxyXG4gICAgICAgICRodG1sLm9uKCdjbGljaycsICcuaWNvbl9jbG9zZScsIGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgJGh0bWwucmVtb3ZlKCk7XHJcbiAgICAgICAgICAgIG9wdGlvbi5vbkNsb3NlICYmIG9wdGlvbi5vbkNsb3NlKCk7XHJcbiAgICAgICAgfSlcclxuICAgICAgICAkaHRtbC5vbignY2xpY2snLCAnLmJ0bl9jbG9zZScsIGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgJGh0bWwucmVtb3ZlKCk7XHJcbiAgICAgICAgICAgIG9wdGlvbi5vbkNsb3NlICYmIG9wdGlvbi5vbkNsb3NlKCk7XHJcbiAgICAgICAgfSlcclxuXHJcbiAgICAgICAgJGh0bWwub24oJ2NsaWNrJywgJy5idG5fYWdhaW4nLCBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgICRodG1sLnJlbW92ZSgpO1xyXG4gICAgICAgICAgICByZXR1cm4gbmV3IHByb2JsZW0odGhhdC5vcHRpb25zKTtcclxuICAgICAgICB9KVxyXG5cclxuICAgICAgICAkaHRtbC5vbignY2xpY2snLCAnLmJ0bl90b21vbmknLCBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgIGxvY2F0aW9uLmhyZWYgPSBvcHRpb24ubGluaztcclxuICAgICAgICB9KVxyXG4gICAgfSxcclxuICAgIHJlbG9hZDpmdW5jdGlvbigpe1xyXG4gICAgICAgIHJldHVybiBuZXcgcHJvYmxlbSh0aGlzLm9wdGlvbnMpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbW9kdWxlLmV4cG9ydHMgID0gIHByb2JsZW07XHJcblxyXG4vLyBtb2R1bGUuZXhwb3J0cyAgPSB7XHJcbi8vICAgICBsb2FkOmZ1bmN0aW9uKG9wdGlvbnMpe1xyXG4vLyAgICAgICAgIC8vY2FsbGJhY2ssaXNSYW5kb20scFR5cGUsXHJcbi8vICAgICAgICAgdmFyIGRlZmF1bHRPcHRpb25zID0ge1xyXG4vLyAgICAgICAgICAgICBpZDpcInByb2JsZW1fd3JhcFwiLC8v6aKY55uuZG9tIGlkXHJcbi8vICAgICAgICAgICAgIERBVEE6cHJvYmxlbV9kYXRhLC8v6aKY55uu5pWw5o2uXHJcbi8vICAgICAgICAgICAgIGlzUmFuZG9tOmZhbHNlLC8v5piv5ZCm6ZqP5py6XHJcbi8vICAgICAgICAgICAgIGxlbjoyMCwvL+maj+acuumimOebruaVsOmHj1xyXG4vLyAgICAgICAgICAgICBwVHlwZTonJywgLy/popjnm67nsbvlnotcclxuLy8gICAgICAgICAgICAgY2FsbGJhY2s6bnVsbC8v5Zue6LCDXHJcbi8vICAgICAgICAgfVxyXG5cclxuLy8gICAgICAgICB0aGlzLm9wdGlvbnMgPSAkLmV4dGVuZCh7fSxkZWZhdWx0T3B0aW9ucyxvcHRpb25zKTtcclxuLy8gICAgICAgICBjb25zb2xlLmxvZyh0aGlzLm9wdGlvbnMpXHJcbi8vICAgICAgICAgaWYodHlwZW9mIHRoaXMub3B0aW9ucy5EQVRBID09IHVuZGVmaW5lZCB8fCAhdGhpcy5vcHRpb25zLkRBVEEubGVuZ3RoKXtcclxuLy8gICAgICAgICAgICAgcmV0dXJuIGZhbHNlXHJcbi8vICAgICAgICAgfVxyXG4gICAgICAgXHJcbi8vICAgICAgICAgdmFyIGh0bWwgPSAnPHVsIGNsYXNzPVwicHJvYmxlbV9saXN0XCIgPic7XHJcbi8vICAgICAgICAgdGhpcy4kd3JhcCA9ICQoJyMnK3RoaXMub3B0aW9ucy5pZClcclxuLy8gICAgICAgICB0aGlzLkRBVEEgPSB0aGlzLm9wdGlvbnMuREFUQTtcclxuLy8gICAgICAgICB0aGlzLmxlbiA9IHRoaXMuREFUQS5sZW5ndGg7Ly/popjnm67mlbBcclxuXHJcbi8vICAgICAgICAgdGhpcy5jYWxsYmFjayA9IHRoaXMub3B0aW9ucy5jYWxsYmFjaztcclxuLy8gICAgICAgICB0aGlzLmlzUmFuZG9tID0gdGhpcy5vcHRpb25zLmlzUmFuZG9tO1xyXG4vLyAgICAgICAgIHRoaXMucFR5cGUgPSB0aGlzLm9wdGlvbnMucFR5cGU7XHJcbi8vICAgICAgICAgdGhpcy50YWcgPSBmYWxzZTtcclxuXHJcbi8vICAgICAgICAgdGhpcy5fYW5zd2VySW5kZXggPSAwO1xyXG5cclxuLy8gICAgICAgICBpZih0aGlzLmlzUmFuZG9tKXtcclxuLy8gICAgICAgICAgICAgdGhpcy5sZW49dGhpcy5vcHRpb25zLmxlbiB8fCB0aGlzLkRBVEEubGVuZ3RoO1xyXG4vLyAgICAgICAgICAgICB0aGlzLkRBVEEgPSBzaHVmZmxlKHRoaXMuREFUQSlcclxuLy8gICAgICAgICB9XHJcblxyXG4vLyAgICAgICAgIGZvcih2YXIgaSA9IDA7aTx0aGlzLmxlbjtpKyspe1xyXG4vLyAgICAgICAgICAgICB2YXIgY2xhc3NOYW1lID0gaSA9PT0gMCA/ICdhY3RpdmUnIDogXCJcIjtcclxuXHJcbi8vICAgICAgICAgICAgIGh0bWwgKz0gJzxsaSBjbGFzcz1cIml0ZW0gJytjbGFzc05hbWUrJ1wiPjxkaXYgY2xhc3M9XCJ0aXRsZVwiPjxzcGFuIGNsYXNzPVwib3JkZXJcIj48Yj4nKyhwYXJzZUludChpKSsxKSsnPC9iPi8nK3RoaXMubGVuKyfjgIE8L3NwYW4+PHNwYW4gY2xhc3M9XCJ0aXRcIj4nK3RoaXMuREFUQVtpXS50aXRsZSsnPC9zcGFuPjwvZGl2Pic7XHJcblxyXG4vLyAgICAgICAgICAgICBodG1sICs9ICc8dWwgY2xhc3M9XCJzZWxlY3RfbGlzdFwiPic7XHJcbi8vICAgICAgICAgICAgIHZhciBvcHRpb25MZW4gPSB0aGlzLkRBVEFbaV0ub3B0aW9ucy5sZW5ndGg7Ly/nrZTmoYjmlbBcclxuLy8gICAgICAgICAgICAgZm9yKHZhciBqID0gMDtqPG9wdGlvbkxlbjtqKyspe1xyXG4vLyAgICAgICAgICAgICAgICAgdmFyIG9wdGlvbiA9ICB0aGlzLkRBVEFbaV0ub3B0aW9ucztcclxuLy8gICAgICAgICAgICAgICAgIGh0bWwgKz0gJzxsaT48c3BhbiBjbGFzcz1cInJhZGlvLXdyYXBcIj48aW5wdXQgdHlwZT1cInJhZGlvXCIgZGF0YS1zY29yZT1cIicrdGhpcy5EQVRBW2ldLnNjb3Jlc1tqXSsnXCIgbmFtZT1cIicrdGhpcy5vcHRpb25zLmlkK2krJ1wiIHZhbHVlPVwiJytqKydcIiBpZD1cIicrdGhpcy5vcHRpb25zLmlkK2krJycraisnXCI+PHNwYW4gY2xhc3M9XCJyYWRpby1pbm5lclwiPjwvc3Bhbj48L3NwYW4+PGxhYmVsIGZvcj1cIicrdGhpcy5vcHRpb25zLmlkK2krJycraisnXCI+JytvcHRpb25bal0rJzwvbGFiZWw+PC9saT4nXHJcbi8vICAgICAgICAgICAgIH1cclxuXHJcbi8vICAgICAgICAgICAgIGh0bWwgKz0gJzwvdWw+PC9saT4nXHJcbi8vICAgICAgICAgfVxyXG5cclxuLy8gICAgICAgICBodG1sICs9JzwvdWw+PGRpdiBjbGFzcz1cImJ0bl93cmFwXCIgPjxidXR0b24gY2xhc3M9XCJidG4gYnRuX3ByZXZcIiBkaXNhYmxlZD1cImRpc2FibGVkXCI+5LiK5LiA6aKYPC9idXR0b24+PGJ1dHRvbiBjbGFzcz1cImJ0biBidG5fbmV4dCBcIiBkaXNhYmxlZD1cImRpc2FibGVkXCI+5LiL5LiA6aKYPC9idXR0b24+PC9kaXY+JztcclxuXHJcblxyXG4vLyAgICAgICAgIHRoaXMuJHdyYXAuaHRtbChodG1sKTtcclxuXHJcbiAgICAgIFxyXG5cclxuLy8gICAgICAgICB0aGlzLmJpbmQodGhpcy5jYWxsYmFjayk7XHJcblxyXG4gICAgICAgXHJcbi8vICAgICB9LFxyXG4vLyAgICAgYmluZDpmdW5jdGlvbihjYWxsYmFjayl7XHJcbi8vICAgICAgICAgdmFyIHRoYXQgPSB0aGlzO1xyXG4gICAgICAgIFxyXG4vLyAgICAgICAgICQoJy5wcm9ibGVtX2xpc3QnLCB0aGF0LiR3cmFwKS5vbignY2hhbmdlJywnLmFjdGl2ZSBpbnB1dCcsZnVuY3Rpb24oKXtcclxuLy8gICAgICAgICAgICAgY29uc29sZS5sb2coMTIzKVxyXG4vLyAgICAgICAgICAgICAkKCcuYnRuX25leHQnLCB0aGF0LiR3cmFwICkucmVtb3ZlQXR0cignZGlzYWJsZWQnKVxyXG4vLyAgICAgICAgICAgICAkKCcuYnRuX3Jlc3VsdCcsdGhhdC4kd3JhcCApLnJlbW92ZUF0dHIoJ2Rpc2FibGVkJylcclxuLy8gICAgICAgICB9KVxyXG5cclxuLy8gICAgICAgICAkKCcuYnRuX3dyYXAnLCB0aGF0LiR3cmFwICkub24oJ2NsaWNrJywnLmJ0bl9wcmV2JyxmdW5jdGlvbigpe1xyXG4vLyAgICAgICAgICAgICB0aGF0Ll9hbnN3ZXJJbmRleCAtLTtcclxuLy8gICAgICAgICAgICAgJCgnLnByb2JsZW1fbGlzdD5saScsdGhhdC4kd3JhcCApLmVxKHRoYXQuX2Fuc3dlckluZGV4KS5hZGRDbGFzcygnYWN0aXZlJykuc2libGluZ3MoKS5yZW1vdmVDbGFzcygnYWN0aXZlJyk7XHJcbi8vICAgICAgICAgICAgIGlmKHRoYXQuX2Fuc3dlckluZGV4IDw9MCl7XHJcbi8vICAgICAgICAgICAgICAgICAkKCcuYnRuX3ByZXYnLCB0aGF0LiR3cmFwICkuYXR0cignZGlzYWJsZWQnLFwiZGlzYWJsZWRcIilcclxuLy8gICAgICAgICAgICAgfVxyXG4vLyAgICAgICAgICAgICAkKCcuYnRuX25leHQnLHRoYXQuJHdyYXAgKS5yZW1vdmVBdHRyKCdkaXNhYmxlZCcpO1xyXG4vLyAgICAgICAgIH0pXHJcblxyXG4vLyAgICAgICAgICQoJy5idG5fd3JhcCcsIHRoYXQuJHdyYXAgKS5vbignY2xpY2snLCcuYnRuX25leHQnLGZ1bmN0aW9uKCl7XHJcbi8vICAgICAgICAgICAgIHRoYXQuX2Fuc3dlckluZGV4ICsrO1xyXG5cclxuLy8gICAgICAgICAgICAgaWYodGhhdC5fYW5zd2VySW5kZXggKyAxID09PSB0aGF0Lmxlbil7XHJcbi8vICAgICAgICAgICAgICAgICBpZih0aGF0LnBUeXBlID09PSAnbXlkJyl7XHJcbi8vICAgICAgICAgICAgICAgICAgICAgJCgnLmJ0bl93cmFwJywgdGhhdC4kd3JhcCApLmh0bWwoJzxidXR0b24gY2xhc3M9XCJidG4gYnRuX3Jlc3VsdFwiIGRpc2FibGVkPVwiZGlzYWJsZWRcIj7mj5DkuqQ8L2J1dHRvbj4nKSBcclxuLy8gICAgICAgICAgICAgICAgIH1lbHNle1xyXG4vLyAgICAgICAgICAgICAgICAgICAgICQoJy5idG5fd3JhcCcsIHRoYXQuJHdyYXAgKS5odG1sKCc8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bl9yZXN1bHRcIiBkaXNhYmxlZD1cImRpc2FibGVkXCI+5p+l55yL5rWL6K+E57uT5p6cPC9idXR0b24+JylcclxuLy8gICAgICAgICAgICAgICAgIH1cclxuLy8gICAgICAgICAgICAgfVxyXG5cclxuLy8gICAgICAgICAgICAgaWYoIHRoYXQuX2Fuc3dlckluZGV4ICsgMSA+IHRoYXQubGVuICl7XHJcbi8vICAgICAgICAgICAgICAgICByZXR1cm47XHJcbi8vICAgICAgICAgICAgIH1cclxuLy8gICAgICAgICAgICAgJCgnLnByb2JsZW1fbGlzdD5saScsdGhhdC4kd3JhcCApLmVxKHRoYXQuX2Fuc3dlckluZGV4KS5hZGRDbGFzcygnYWN0aXZlJykuc2libGluZ3MoKS5yZW1vdmVDbGFzcygnYWN0aXZlJyk7XHJcbi8vICAgICAgICAgICAgIGlmKCEkKCcucHJvYmxlbV9saXN0IC5hY3RpdmUgaW5wdXQ6cmFkaW86Y2hlY2tlZCcsdGhhdC4kd3JhcCkubGVuZ3RoKXtcclxuLy8gICAgICAgICAgICAgICAgICQoJy5idG5fbmV4dCcsdGhhdC4kd3JhcCApLmF0dHIoJ2Rpc2FibGVkJyxcImRpc2FibGVkXCIpO1xyXG4vLyAgICAgICAgICAgICB9XHJcbi8vICAgICAgICAgICAgICQoJy5idG5fcHJldicsIHRoYXQuJHdyYXAgKS5yZW1vdmVBdHRyKCdkaXNhYmxlZCcpO1xyXG4gICAgICAgICAgIFxyXG4vLyAgICAgICAgIH0pXHJcblxyXG4vLyAgICAgICAgICQoJy5idG5fd3JhcCcsIHRoYXQuJHdyYXAgKS5vbignY2xpY2snLCcuYnRuX3Jlc3VsdCcsZnVuY3Rpb24oKXtcclxuLy8gICAgICAgICAgICAgdmFyIHRvdGFsU2NvcmUgPSAwO1xyXG4vLyAgICAgICAgICAgICB2YXIgc2NvcmVBcnIgPSBbXTtcclxuLy8gICAgICAgICAgICAgJCgnLnByb2JsZW1fbGlzdCAuaXRlbScsdGhhdC4kd3JhcCkuZWFjaChmdW5jdGlvbigpe1xyXG4vLyAgICAgICAgICAgICAgICB2YXIgX3Njb3JlID0gJCh0aGlzKS5maW5kKFwiaW5wdXRbdHlwZT0ncmFkaW8nXTpjaGVja2VkXCIpLmRhdGEoJ3Njb3JlJyk7XHJcbi8vICAgICAgICAgICAgICAgIF9zY29yZSA9IHBhcnNlRmxvYXQoX3Njb3JlKTtcclxuLy8gICAgICAgICAgICAgICAgc2NvcmVBcnIucHVzaChfc2NvcmUpXHJcbi8vICAgICAgICAgICAgICAgIHRvdGFsU2NvcmUgKz0gX3Njb3JlO1xyXG4vLyAgICAgICAgICAgICB9KVxyXG5cclxuLy8gICAgICAgICAgICAgY29uc29sZS5sb2codG90YWxTY29yZSlcclxuXHJcbi8vICAgICAgICAgICAgIGNhbGxiYWNrICYmIGNhbGxiYWNrKHRoYXQsdG90YWxTY29yZSxzY29yZUFycilcclxuICAgICAgICAgICAgXHJcbi8vICAgICAgICAgfSlcclxuLy8gICAgIH0sXHJcbi8vICAgICBzaG93TW9kZWw6ZnVuY3Rpb24ob3B0aW9uKXtcclxuLy8gICAgICAgICB2YXIgdGhhdCA9IHRoaXM7XHJcbi8vICAgICAgICAgdmFyIHdpbkhlaWdodCA9ICQod2luZG93KS5vdXRlckhlaWdodCgpO1xyXG4vLyAgICAgICAgIHZhciB3aW5kV2lkdGggPSAkKHdpbmRvdykub3V0ZXJXaWR0aCgpO1xyXG4vLyAgICAgICAgIHZhciBodG1sID0gJzxkaXYgY2xhc3M9XCJjb21maXJtX21vZGVsXCI+JztcclxuLy8gICAgICAgICBodG1sICs9ICc8ZGl2IGNsYXNzPVwiY29tZmlybV9tYXNrXCIgc3R5bGU9XCJ3aWR0aDoxMDAlO2hlaWdodDoxMDAlO2JhY2tncm91bmQ6IzAwMDtvcGFjaXR5OjAuNTtcIj48L2Rpdj4nO1xyXG4vLyAgICAgICAgICBodG1sICs9ICc8ZGl2IGNsYXNzPVwiY29tZmlybV9jb250YWluZXJcIj4nICtcclxuLy8gICAgICAgICAgICAgICAgICc8ZGl2IGNsYXNzPVwiY29tZmlybV9oZWFkZXJcIj48ZGl2IGNsYXNzPVwiY29uZmlybV9tb3JlXCI+PGkgY2xhc3M9XCJpY29uX2Nsb3NlXCI+PC9pPjwvZGl2PjwvZGl2PicgK1xyXG4vLyAgICAgICAgICAgICAgICAgJzxkaXYgY2xhc3M9XCJjb25maXJtX2NvbnRlbnRcIj4nO1xyXG4vLyAgICAgICAgICAgICAgICAgaWYoIW9wdGlvbi5pc1Njb3JlKXtcclxuLy8gICAgICAgICAgICAgICAgICAgICBodG1sKz0nPGRpdiBjbGFzcz1cImNvbmZpcm1fc3VjXCI+PC9kaXY+PHA+JyArIG9wdGlvbi5jb250ZW50ICsgJzwvcD4nO1xyXG4vLyAgICAgICAgICAgICAgICAgfWVsc2V7XHJcbi8vICAgICAgICAgICAgICAgICAgICAgaWYob3B0aW9uLnNjb3JlID49IG9wdGlvbi50YXJnZXRTY29yZSl7XHJcbi8vICAgICAgICAgICAgICAgICAgICAgICAgIGh0bWwrPSc8ZGl2IGNsYXNzPVwiY29uZmlybV9zdWNcIj48L2Rpdj48ZGl2IGNsYXNzPVwic2NvcmVfcmVzXCI+6K+E5rWL5oiQ5YqfPC9kaXY+PHAgY2xhc3M9XCJzY29yZV9jb25cIj7kvaDnmoTlvpfliIY6PHNwYW4+JytvcHRpb24uc2NvcmUrJzwvc3Bhbj7liIYmbmJzcDsmbmJzcDvnm67moIfliIbmlbA6PHNwYW4+JytvcHRpb24udGFyZ2V0U2NvcmUrJzwvc3Bhbj7liIY8L3A+JztcclxuLy8gICAgICAgICAgICAgICAgICAgICB9ZWxzZXtcclxuLy8gICAgICAgICAgICAgICAgICAgICAgICAgaHRtbCs9JzxkaXYgY2xhc3M9XCJjb25maXJtX2ZhaWxcIj48L2Rpdj48ZGl2IGNsYXNzPVwic2NvcmVfcmVzXCI+6K+E5rWL5aSx6LSlPC9kaXY+PHAgY2xhc3M9XCJzY29yZV9jb25cIj7kvaDnmoTlvpfliIY6PHNwYW4+JytvcHRpb24uc2NvcmUrJzwvc3Bhbj7liIYmbmJzcDsmbmJzcDvnm67moIfliIbmlbA6PHNwYW4+JytvcHRpb24udGFyZ2V0U2NvcmUrJzwvc3Bhbj7liIY8L3A+JztcclxuLy8gICAgICAgICAgICAgICAgICAgICB9XHJcbi8vICAgICAgICAgICAgICAgICB9XHJcbi8vICAgICAgICAgICAgIGlmKHRoYXQucFR5cGUgPT09ICdteWQnKXtcclxuLy8gICAgICAgICAgICAgICAgIGh0bWwgKz0gJzwvZGl2PjxkaXYgY2xhc3M9XCJjb25maXJtX2Zvb3QgYnRuX3dyYXBcIj48YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bl9jbG9zZVwiPuWFs+mXrTwvYnV0dG9uPidcclxuLy8gICAgICAgICAgICAgfWVsc2V7XHJcbi8vICAgICAgICAgICAgICAgICBodG1sICs9ICc8L2Rpdj48ZGl2IGNsYXNzPVwiY29uZmlybV9mb290IGJ0bl93cmFwXCI+PGJ1dHRvbiBjbGFzcz1cImJ0biBidG5fYWdhaW5cIj7ph43mlrDor4TmtYs8L2J1dHRvbj48YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bl90b21vbmlcIj7ljrvmqKHmi5/kuqTmmJM8L2J1dHRvbj4nXHJcbi8vICAgICAgICAgICAgIH1cclxuLy8gICAgICAgICBodG1sICs9ICc8L2Rpdj48L2Rpdj48L2Rpdj4nO1xyXG5cclxuLy8gICAgICAgICB2YXIgJGh0bWwgPSAkKGh0bWwpXHJcblxyXG4vLyAgICAgICAgICQoJ2JvZHknKS5hcHBlbmQoJGh0bWwpO1xyXG5cclxuLy8gICAgICAgICAkaHRtbC5jc3Moe1xyXG4vLyAgICAgICAgICAgICBcInBvc2l0aW9uXCI6IFwiZml4ZWRcIixcclxuLy8gICAgICAgICAgICAgXCJ0b3BcIjogXCIwXCIsXHJcbi8vICAgICAgICAgICAgIFwibGVmdFwiOlwiMFwiLFxyXG4vLyAgICAgICAgICAgICBcImhlaWdodFwiOicxMDAlJyxcclxuLy8gICAgICAgICAgICAgXCJ3aWR0aFwiOiAnMTAwJScsXHJcbi8vICAgICAgICAgICAgIFwiei1pbmRleFwiOlwiOTk5OVwiXHJcbi8vICAgICAgICAgfSlcclxuXHJcbi8vICAgICAgICAgJCgnLmNvbWZpcm1fY29udGFpbmVyJywgdGhpcy5odG1sKS5jc3Moe1xyXG4vLyAgICAgICAgICAgICBcInBvc2l0aW9uXCI6IFwiYWJzb2x1dGVcIixcclxuLy8gICAgICAgICAgICAgXCJ0b3BcIjogXCI1MCVcIixcclxuLy8gICAgICAgICAgICAgXCJsZWZ0XCI6IFwiNTAlXCIsXHJcbi8vICAgICAgICAgICAgIFwiaGVpZ2h0XCI6JzM0MnB4JyxcclxuLy8gICAgICAgICAgICAgXCJ3aWR0aFwiOiAnNTAwcHgnLFxyXG4vLyAgICAgICAgICAgICBcIm1hcmdpbi10b3BcIjogJy0xNzFweCcsXHJcbi8vICAgICAgICAgICAgIFwibWFyZ2luLWxlZnRcIjonLTI1MHB4J1xyXG4vLyAgICAgICAgIH0pXHJcblxyXG4vLyAgICAgICAgICRodG1sLm9uKCdjbGljaycsICcuaWNvbl9jbG9zZScsIGZ1bmN0aW9uICgpIHtcclxuLy8gICAgICAgICAgICAgJGh0bWwucmVtb3ZlKCk7XHJcbi8vICAgICAgICAgICAgIG9wdGlvbi5vbkNsb3NlICYmIG9wdGlvbi5vbkNsb3NlKCk7XHJcbi8vICAgICAgICAgfSlcclxuLy8gICAgICAgICAkaHRtbC5vbignY2xpY2snLCAnLmJ0bl9jbG9zZScsIGZ1bmN0aW9uICgpIHtcclxuLy8gICAgICAgICAgICAgJGh0bWwucmVtb3ZlKCk7XHJcbi8vICAgICAgICAgICAgIG9wdGlvbi5vbkNsb3NlICYmIG9wdGlvbi5vbkNsb3NlKCk7XHJcbi8vICAgICAgICAgfSlcclxuXHJcbi8vICAgICAgICAgJGh0bWwub24oJ2NsaWNrJywgJy5idG5fYWdhaW4nLCBmdW5jdGlvbiAoKSB7XHJcbi8vICAgICAgICAgICAgICRodG1sLnJlbW92ZSgpO1xyXG4vLyAgICAgICAgICAgICB0aGF0LmxvYWQodGhhdC5jYWxsYmFjayx0aGF0LmlzUmFuZG9tLHRoYXQucFR5cGUpO1xyXG4vLyAgICAgICAgIH0pXHJcblxyXG4vLyAgICAgICAgICRodG1sLm9uKCdjbGljaycsICcuYnRuX3RvbW9uaScsIGZ1bmN0aW9uICgpIHtcclxuLy8gICAgICAgICAgICAgbG9jYXRpb24uaHJlZiA9IG9wdGlvbi5saW5rO1xyXG4vLyAgICAgICAgIH0pXHJcbi8vICAgICB9XHJcbi8vIH1cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL2pzL21vZHVsZXMvcHJvYmxlbS9pbmRleC5qc1xuLy8gbW9kdWxlIGlkID0gMFxuLy8gbW9kdWxlIGNodW5rcyA9IDEgNiA3IDggMTIgMTMiLCJ2YXIgYW5zd2VyID0gcmVxdWlyZSgnLi9tb2R1bGVzL3Byb2JsZW0nKTtcclxudmFyIGNhbGN1bGF0b3IgPSB7XHJcbiAgICBcclxuICAgIGluaXQ6ZnVuY3Rpb24oKXtcclxuICAgICAgICB2YXIgdGhhdCA9IHRoaXM7XHJcbiAgICAgICAgdmFyIHNldGVyMSxzZXRlck9iajtcclxuXHJcbiAgICAgICAgJCgnLnN0b2NrQ29kZScpLm9uKFwiaW5wdXQgcHJvcGVydHljaGFuZ2VcIixmdW5jdGlvbigpe1xyXG4gICAgICAgICAgICB2YXIgJHBhcmVudCA9ICAkKHRoaXMpLnBhcmVudHMoJy5zdG9ja19kZXRhaWwnKTtcclxuICAgICAgICAgICBpZihzZXRlcjEpe1xyXG4gICAgICAgICAgICAgICB3aW5kb3cuY2xlYXJUaW1lb3V0KHNldGVyMSlcclxuICAgICAgICAgICB9XHJcbiAgICAgICAgICAgdmFyIHZhbCA9ICQodGhpcykudmFsKCk7XHJcbiAgICAgICAgLy8gICAgY29uc29sZS5sb2codmFsKVxyXG4gICAgICAgICAgICBpZih2YWwgJiYgdmFsLmxlbmd0aCA9PSA2KXtcclxuICAgICAgICAgICAgICAgIHNldGVyMSA9IHNldFRpbWVvdXQoZnVuY3Rpb24oKXtcclxuICAgICAgICAgICAgICAgICAgICB0aGF0LmdldERhdGUodmFsLGZ1bmN0aW9uKGRhdGEpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhkYXRhKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAkKCcuc3RvY2tOYW1lJywkcGFyZW50KS52YWwoZGF0YS5zdGtOYW1lKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgJCgnLnN0b2NrUmF0ZScsJHBhcmVudCkudmFsKGRhdGEucGxlZGdlcmF0ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICQoJy5zdG9ja1ByaWNlJywkcGFyZW50KS52YWwoZGF0YS5jdXJyZW50UHJpY2UpXHJcbiAgICAgICAgICAgICAgICAgICAgfSxmdW5jdGlvbihlcnIpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBhbGVydCgn5oKo6L6T5YWl55qE6K+B5Yi46Z2e5Lik6J6N5ouF5L+d6K+B5Yi4JylcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coZXJyKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gO1xyXG4gICAgICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICB9LDEwMClcclxuICAgICAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICAgICAgICBzZXRlcjEgPSBzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7XHJcbiAgICAgICAgICAgICAgICAgICAgJCgnLnN0b2NrTmFtZScsJHBhcmVudCkudmFsKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgJCgnLnN0b2NrUmF0ZScsJHBhcmVudCkudmFsKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgJCgnLnN0b2NrUHJpY2UnLCRwYXJlbnQpLnZhbCgpXHJcbiAgICAgICAgICAgICAgICB9LDEwMClcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pXHJcblxyXG5cclxuICAgICAgICAkKCcjc3RvY2tfd3JhcCcpLm9uKCdpbnB1dCcsJy5zdG9ja051bScsZnVuY3Rpb24oKXtcclxuICAgICAgICAgICAgdmFyIF9zZWxmID10aGlzOyBcclxuICAgICAgICAgICAgaWYoc2V0ZXJPYmope1xyXG4gICAgICAgICAgICAgICAgd2luZG93LmNsZWFyVGltZW91dChzZXRlck9iailcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgc2V0ZXJPYmogPSBzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7XHJcbiAgICAgICAgICAgICAgICAkKCcjc3RvY2tfd3JhcCAuc3RvY2tOdW0nKS5lYWNoKGZ1bmN0aW9uKCl7XHJcbiAgICAgICAgICAgICAgICAgICAgdmFyIHZhbHVlID0gJCh0aGlzKS52YWwoKTtcclxuICAgICAgICAgICAgICAgICAgICBpZih2YWx1ZSl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gTWF0aC5mbG9vcih2YWx1ZS8xMDApKjEwMDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgJCh0aGlzKS52YWwodmFsdWUpXHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgfSwxMDAwKVxyXG4gICAgICAgIH0pXHJcblxyXG4gICAgICAgICQoJyNiQ29kZScpLm9uKCdpbnB1dCcsZnVuY3Rpb24oKXtcclxuICAgICAgICAgICBcclxuICAgICAgICAgICAgdmFyIHZhbCA9ICQodGhpcykudmFsKCk7XHJcbiBcclxuICAgICAgICAgICAgdGhhdC5sb2FkQmQodmFsKVxyXG4gICAgICAgIH0pXHJcblxyXG4gICAgICAgICQoJ2lucHV0W25hbWU9XCJkaXJlY1wiXScpLmNoYW5nZShmdW5jdGlvbigpe1xyXG4gICAgICAgICAgICB2YXIgdmFsID0gJCgnI2JDb2RlJykudmFsKCk7XHJcbiAgICAgICAgICAgIGlmKHZhbCA9PT0gJycpe1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhhdC5sb2FkQmQodmFsKTtcclxuICAgICAgICB9KVxyXG5cclxuICAgICAgICAvL+iuoeeul1xyXG4gICAgICAgICQoJy5idG5fY2FsY3VsYXRlJykuY2xpY2soZnVuY3Rpb24oKXtcclxuICAgICAgICAgICAgdmFyIHpjID0gJCgnI3pjJykudmFsKCk7Ly/otYTkuqdcclxuICAgICAgICAgICAgdmFyIHN0b2NrQ29kZSA9ICQoJyNzdG9ja193cmFwIC5zdG9ja0NvZGUnKTsvL+aLheS/neivgeWIuOS7o+eggVxyXG4gICAgICAgICAgICB2YXIgc3RvY2tOdW0gPSAkKCcjc3RvY2tfd3JhcCAuc3RvY2tOdW0nKTsvL+WPr+eUqOaVsOmHj1xyXG4gICAgICAgICAgICB2YXIgc3RvY2tSYXRlID0gJCgnI3N0b2NrX3dyYXAgLnN0b2NrUmF0ZScpOy8v5oqY566X546HXHJcbiAgICAgICAgICAgIHZhciBzdG9ja1ByaWNlID0gJCgnI3N0b2NrX3dyYXAgLnN0b2NrUHJpY2UnKTsvL+W9k+WJjeS7t+agvFxyXG5cclxuICAgICAgICAgICAgdmFyIGRpcmVjID0gJCgnaW5wdXRbbmFtZT1cImRpcmVjXCJdOmNoZWNrZWQnKS52YWwoKTsvL+WnlOaJmOaWueWQkSAw77ya5Lmw5YWlIDEg5Y2W5Ye6XHJcblxyXG4gICAgICAgICAgICB2YXIgYkNvZGUgPSAkKCcjYkNvZGUnKS52YWwoKTsvL+agh+eahOivgeWIuOS7o+eggVxyXG4gICAgICAgICAgICB2YXIgYlJhdGUgPSAkKCcjYlJhdGUnKS52YWwoKTsvL+agh+eahOS/neivgemHkeavlOS+i1xyXG4gICAgICAgICAgICB2YXIgYlByaWNlID0gJCgnI1ByaWNlJykudmFsKCk7Ly/moIfnmoTku7fmoLxcclxuXHJcbiAgICAgICAgICAgIGlmKCF6Yyl7XHJcbiAgICAgICAgICAgICAgICBhbGVydCgn6K+36L6T5YWl5Y+v55So546w6YeR6LWE5LqnJylcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgdmFyIGlzVGFnID0gZmFsc2U7XHJcblxyXG4gICAgICAgICAgICBzdG9ja0NvZGUuZWFjaChmdW5jdGlvbigpe1xyXG4gICAgICAgICAgICAgICAgaWYoISQodGhpcykudmFsKCkgfHwgJCh0aGlzKS52YWwoKS5sZW5ndGggIT0gNil7XHJcbiAgICAgICAgICAgICAgICAgICAgaXNUYWcgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KVxyXG5cclxuICAgICAgICAgICAgc3RvY2tSYXRlLmVhY2goZnVuY3Rpb24oKXtcclxuICAgICAgICAgICAgICAgIGlmKCEkKHRoaXMpLnZhbCgpKXtcclxuICAgICAgICAgICAgICAgICAgICBpc1RhZyA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pXHJcblxyXG4gICAgICAgICAgICBzdG9ja1ByaWNlLmVhY2goZnVuY3Rpb24oKXtcclxuICAgICAgICAgICAgICAgIGlmKCEkKHRoaXMpLnZhbCgpKXtcclxuICAgICAgICAgICAgICAgICAgICBpc1RhZyA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pXHJcblxyXG4gICAgICAgICAgICBpZiggaXNUYWcgPT09IHRydWUpe1xyXG4gICAgICAgICAgICAgICAgYWxlcnQoJ+ivt+i+k+WFpeaLheS/neivgeWIuOS7o+eggScpXHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuXHJcblxyXG4gICAgICAgICAgICB2YXIgaXNTdG9ja051bSA9IGZhbHNlO1xyXG5cclxuICAgICAgICAgICAgc3RvY2tOdW0uZWFjaChmdW5jdGlvbigpe1xyXG4gICAgICAgICAgICAgICAgaWYoISQodGhpcykudmFsKCkpe1xyXG4gICAgICAgICAgICAgICAgICAgIGlzU3RvY2tOdW0gPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KVxyXG5cclxuICAgICAgICAgICAgaWYoaXNTdG9ja051bSA9PT0gdHJ1ZSl7XHJcbiAgICAgICAgICAgICAgICBhbGVydCgn6K+36L6T5YWl5ouF5L+d6K+B5Yi45pWw6YePJylcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYoIWJSYXRlIHx8IGJSYXRlID09IDApe1xyXG4gICAgICAgICAgICAgICAgYWxlcnQoJ+ivt+i+k+WFpeato+ehrueahOagh+eahOivgeWIuOS7o+eggScpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZighKGJDb2RlICYmIGJQcmljZSkpe1xyXG4gICAgICAgICAgICAgICAgYWxlcnQoJ+ivt+i+k+WFpeagh+eahOivgeWIuOS7o+eggScpXHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHZhciBiemogPSAwO1xyXG5cclxuICAgICAgICAgICAgJCgnI3N0b2NrX3dyYXAgLnN0b2NrX2RldGFpbCcpLmVhY2goZnVuY3Rpb24oKXtcclxuICAgICAgICAgICAgICAgIHZhciBzdG9ja051bSA9IHBhcnNlRmxvYXQoJCh0aGlzKS5maW5kKCcuc3RvY2tOdW0nKS52YWwoKSkgfHwgMFxyXG4gICAgICAgICAgICAgICAgdmFyIHN0b2NrUHJpY2UgPSBwYXJzZUZsb2F0KCQodGhpcykuZmluZCgnLnN0b2NrUHJpY2UnKS52YWwoKSkgfHwgMFxyXG4gICAgICAgICAgICAgICAgdmFyIHN0b2NrUmF0ZSA9IHBhcnNlRmxvYXQoJCh0aGlzKS5maW5kKCcuc3RvY2tSYXRlJykudmFsKCkpIHx8IDBcclxuXHJcbiAgICAgICAgICAgICAgICBiemogKz0gc3RvY2tOdW0gKiBzdG9ja1ByaWNlICogc3RvY2tSYXRlO1xyXG4gICAgICAgICAgICB9KVxyXG5cclxuICAgICAgICAgICAgdmFyIENodVNoaUJhb1poZW5KaW4gPSBwYXJzZUZsb2F0KHpjKSArIGJ6ajtcclxuICAgICAgICAgICAgdmFyIEtlUm9uZ1ppWmlDaGFuID0gQ2h1U2hpQmFvWmhlbkppbi9iUmF0ZSB8fCAwO1xyXG4gICAgICAgICAgICB2YXIgTmFtZSA9IGRpcmVjID09IDEgPyAn5Y+v6J6N6LWE5Y2W5Ye66K+B5Yi45pWw6YePJyA6ICflj6/ono3otYTkubDlhaXor4HliLjmlbDph48nO1xyXG4gICAgICAgICAgICB2YXIgU2h1TGlhbmcgPSBLZVJvbmdaaVppQ2hhbiAvIGJQcmljZTtcclxuXHJcblxyXG4gICAgICAgICAgICAkKCcjYnpqJykuaHRtbChDaHVTaGlCYW9aaGVuSmluLnRvRml4ZWQoMikpO1xyXG4gICAgICAgICAgICAkKCcja3J6emonKS5odG1sKEtlUm9uZ1ppWmlDaGFuLnRvRml4ZWQoMikpO1xyXG4gICAgICAgICAgICAkKCcja3J6bnVtJykuaHRtbChNYXRoLmZsb29yKFNodUxpYW5nLzEwMCkqMTAwKVxyXG4gICAgICAgICAgICAkKCcja3J6bnVtJykucHJldignLm5hbWUnKS5odG1sKE5hbWUpXHJcbiAgICAgICAgfSlcclxuXHJcbiAgICAgICAgJCgnLmJ0bl9yZXNldCcpLmNsaWNrKGZ1bmN0aW9uKCl7XHJcbiAgICAgICAgICAgICQoJy5mb3JtQm94IGlucHV0W3R5cGU9XCJ0ZXh0XCJdJykuZWFjaChmdW5jdGlvbigpe1xyXG4gICAgICAgICAgICAgICAgJCh0aGlzKS52YWwoJycpXHJcbiAgICAgICAgICAgIH0pXHJcblxyXG4gICAgICAgICAgICAkKCcjYnpqJykuaHRtbCgnJylcclxuICAgICAgICAgICAgJCgnI2tyem51bScpLmh0bWwoJycpXHJcbiAgICAgICAgICAgICQoJyNrcnp6aicpLmh0bWwoJycpXHJcbiAgICAgICAgfSlcclxuXHJcbiAgICAgICAgLy/lop7liqDmi4Xkv53or4HliLhcclxuICAgICAgICAkKCcuc3RvY2tfYWN0aW9uJykub24oJ2NsaWNrJyxmdW5jdGlvbihlKXtcclxuICAgICAgICAgICAgdmFyIGNsYXNzTmFtZSA9IGUudGFyZ2V0LmNsYXNzTmFtZTtcclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIGlmKGNsYXNzTmFtZSA9PT0gJ2FkZCcpe1xyXG4gICAgICAgICAgICAgICAgdmFyIGNsb25lID0gJCgnI3N0b2NrX3dyYXAgLnN0b2NrX2RldGFpbDpmaXJzdC1jaGlsZCcpLmNsb25lKCk7XHJcbiAgICAgICAgICAgICAgICBjbG9uZS5maW5kKCdpbnB1dCcpLmVhY2goZnVuY3Rpb24oKXtcclxuICAgICAgICAgICAgICAgICAgICAkKHRoaXMpLnZhbCgnJylcclxuICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICAkKCcjc3RvY2tfd3JhcCcpLmFwcGVuZChjbG9uZSk7XHJcbiAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICQoJy5zdG9ja19hY3Rpb24gLm1pbnVzJykucmVtb3ZlQXR0cignZGlzYWJsZWQnKVxyXG4gICAgICAgICAgICAgICAgaWYoJCgnI3N0b2NrX3dyYXAnKS5jaGlsZHJlbigpLmxlbmd0aCA9PT0gNSl7XHJcbiAgICAgICAgICAgICAgICAgICAgJChlLnRhcmdldCkuYXR0cignZGlzYWJsZWQnLCdkaXNhYmxlZCcpXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAkKCcuc3RvY2tDb2RlJykub24oXCJpbnB1dCBwcm9wZXJ0eWNoYW5nZVwiLGZ1bmN0aW9uKCl7XHJcbiAgICAgICAgICAgICAgICAgICAgdmFyICRwYXJlbnQgPSAgJCh0aGlzKS5wYXJlbnRzKCcuc3RvY2tfZGV0YWlsJyk7XHJcbiAgICAgICAgICAgICAgICAgICBpZihzZXRlcjEpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgIHdpbmRvdy5jbGVhclRpbWVvdXQoc2V0ZXIxKVxyXG4gICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgdmFyIHZhbCA9ICQodGhpcykudmFsKCk7XHJcbiAgICAgICAgICAgICAgICAvLyAgICBjb25zb2xlLmxvZyh2YWwpXHJcbiAgICAgICAgICAgICAgICAgICAgaWYodmFsICYmIHZhbC5sZW5ndGggPT0gNil7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldGVyMSA9IHNldFRpbWVvdXQoZnVuY3Rpb24oKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuZ2V0RGF0ZSh2YWwsZnVuY3Rpb24oZGF0YSl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coZGF0YSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKCcuc3RvY2tOYW1lJywkcGFyZW50KS52YWwoZGF0YS5zdGtOYW1lKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKCcuc3RvY2tSYXRlJywkcGFyZW50KS52YWwoZGF0YS5wbGVkZ2VyYXRlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKCcuc3RvY2tQcmljZScsJHBhcmVudCkudmFsKGRhdGEuY3VycmVudFByaWNlKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxmdW5jdGlvbihlcnIpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsZXJ0KCfmgqjovpPlhaXnmoTor4HliLjpnZ7kuKTono3mi4Xkv53or4HliLgnKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKGVycilcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSwxMDApXHJcbiAgICAgICAgICAgICAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldGVyMSA9IHNldFRpbWVvdXQoZnVuY3Rpb24oKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoJy5zdG9ja05hbWUnLCRwYXJlbnQpLnZhbCgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJCgnLnN0b2NrUmF0ZScsJHBhcmVudCkudmFsKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKCcuc3RvY2tQcmljZScsJHBhcmVudCkudmFsKClcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSwxMDApXHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgfWVsc2UgaWYoY2xhc3NOYW1lID09PSAnbWludXMnKXtcclxuICAgICAgICAgICAgICAgIHZhciBsZW4gPSAkKCcjc3RvY2tfd3JhcCcpLmNoaWxkcmVuKCkubGVuZ3RoO1xyXG4gICAgICAgICAgICAgICAgaWYobGVuID4gMSl7XHJcbiAgICAgICAgICAgICAgICAgICAgJCgnLnN0b2NrX2FjdGlvbiAuYWRkJykucmVtb3ZlQXR0cignZGlzYWJsZWQnKVxyXG4gICAgICAgICAgICAgICAgICAgICQoJyNzdG9ja193cmFwIC5zdG9ja19kZXRhaWwnKS5lcShsZW4gLSAxKS5yZW1vdmUoKTtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBpZigkKCcjc3RvY2tfd3JhcCcpLmNoaWxkcmVuKCkubGVuZ3RoIDw9IDEpe1xyXG4gICAgICAgICAgICAgICAgICAgICQoZS50YXJnZXQpLmF0dHIoJ2Rpc2FibGVkJywnZGlzYWJsZWQnKVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSlcclxuICAgIH0sXHJcbiAgICBsb2FkQmQ6ZnVuY3Rpb24odmFsKXtcclxuICAgICAgICB2YXIgdGhhdCA9IHRoaXM7XHJcbiAgICAgICAgaWYodGhhdC5zZXRlcjIpe1xyXG4gICAgICAgICAgICB3aW5kb3cuY2xlYXJUaW1lb3V0KHRoYXQuc2V0ZXIyKVxyXG4gICAgICAgIH1cclxuICAgICAgICBpZih2YWwgJiYgdmFsLmxlbmd0aCA9PSA2KXtcclxuICAgICAgICAgICAgdGhhdC5zZXRlcjIgPSBzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7XHJcbiAgICAgICAgICAgICAgICB0aGF0LmdldERhdGUodmFsLGZ1bmN0aW9uKGRhdGEpe1xyXG4gICAgICAgICAgICAgICAgICAgdmFyIGRpcmMgPSAkKCdpbnB1dFtuYW1lPVwiZGlyZWNcIl06Y2hlY2tlZCcpLnZhbCgpOy8v5aeU5omY5pa55ZCRXHJcblxyXG4gICAgICAgICAgICAgICAgICAgaWYoZGlyYyA9PT0gJzEnICYmIGRhdGEuY3JlZGl0c3RrY3RybCA9PSAnMScgKXtcclxuICAgICAgICAgICAgICAgICAgICAgICBhbGVydChcIuivpeiCoeelqOemgeatouiejeWIuFwiKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAkKCcjYk5hbWUnKS52YWwoJycpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAkKCcjYlJhdGUnKS52YWwoJycpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAkKCcjUHJpY2UnKS52YWwoJycpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDtcclxuICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICBpZihkaXJjID09PSAnMCcgJiYgZGF0YS5jcmVkaXRmdW5kY3RybCA9PSAnMScgKXtcclxuICAgICAgICAgICAgICAgICAgICAgICBhbGVydChcIuivpeiCoeelqOemgeatouiejei1hFwiKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAkKCcjYk5hbWUnKS52YWwoJycpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAkKCcjYlJhdGUnKS52YWwoJycpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAkKCcjUHJpY2UnKS52YWwoJycpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDtcclxuICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgIGlmKGRhdGEuaXNDcmVkaXRDb2RlID09PSAwKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYWxlcnQoJ+aCqOi+k+WFpeeahOivgeWIuOmdnuS4pOiejeagh+eahOivgeWIuCcpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgdmFyIGJ6aiA9IGRpcmMgPT09IFwiMVwiID8gZGF0YS5tYXJnaW5yYXRlc3RrIDogZGF0YS5tYXJnaW5yYXRlZnVuZDtcclxuICAgICAgICAgICAgICAgICAgICAkKCcjYk5hbWUnKS52YWwoZGF0YS5zdGtOYW1lKTtcclxuICAgICAgICAgICAgICAgICAgICAkKCcjYlJhdGUnKS52YWwoYnpqKTtcclxuICAgICAgICAgICAgICAgICAgICAkKCcjUHJpY2UnKS52YWwoZGF0YS5jdXJyZW50UHJpY2UpXHJcbiAgICAgICAgICAgICAgICB9LGZ1bmN0aW9uKCl7XHJcbiAgICAgICAgICAgICAgICAgICAgYWxlcnQoJ+aCqOi+k+WFpeeahOivgeWIuOmdnuS4pOiejeagh+eahOivgeWIuCcpO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIH0sMTAwKVxyXG4gICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgICB0aGF0LnNldGVyMiA9IHNldFRpbWVvdXQoZnVuY3Rpb24oKXtcclxuICAgICAgICAgICAgICAgICQoJyNiTmFtZScpLnZhbCgnJyk7XHJcbiAgICAgICAgICAgICAgICAkKCcjYlJhdGUnKS52YWwoJycpO1xyXG4gICAgICAgICAgICAgICAgJCgnI1ByaWNlJykudmFsKCcnKVxyXG4gICAgICAgICAgICB9LDEwMClcclxuICAgICAgICB9XHJcbiAgICB9LFxyXG4gICAgZ2V0RGF0ZTpmdW5jdGlvbihjb2RlLGNhbGxiYWNrLGZhaWwpe1xyXG4gICAgICAgICQuYWpheCh7XHJcbiAgICAgICAgICAgIHVybDonL2FwaS9Ub3VKaWFvQXBpL0dldExpYW5nUm9uZycsXHJcbiAgICAgICAgICAgIHR5cGU6J2dldCcsXHJcbiAgICAgICAgICAgIGRhdGFUeXBlOiBcImpzb25cIixcclxuICAgICAgICAgICAgZGF0YTp7XHJcbiAgICAgICAgICAgICAgICBzdG9ja2NvZGU6Y29kZSxcclxuICAgICAgICAgICAgICAgIF9yYW5kb206TWF0aC5yYW5kb20oKVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBzdWNjZXNzOmZ1bmN0aW9uKGpzb24pe1xyXG4gICAgICAgICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgICAgICAgICBpZihqc29uICYmIGpzb24uZGF0YSAmJiBqc29uLmRhdGFbMF0pe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYWxsYmFjayAmJiBjYWxsYmFjayhqc29uLmRhdGFbMF0pXHJcbiAgICAgICAgICAgICAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZhaWwgJiYgZmFpbChqc29uKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgICAgICAgICAgICAgICBmYWlsICYmIGZhaWwoZXJyb3IpXHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIGVycm9yOmZ1bmN0aW9uKGVycm9yKXtcclxuICAgICAgICAgICAgICAgIGZhaWwgJiYgZmFpbChlcnJvcilcclxuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pXHJcbiAgICB9XHJcbn1cclxuXHJcblxyXG4kKGZ1bmN0aW9uKCl7XHJcblxyXG4gICAgY2FsY3VsYXRvci5pbml0KClcclxuXHJcbiAgICBqUXVlcnkoXCIja2gtc2xpZGVcIikuc2xpZGUoe1xyXG4gICAgICAgIHRpdENlbGw6IFwiLmhkIHVsXCIsXHJcbiAgICAgICAgbWFpbkNlbGw6IFwiLmJkIHVsXCIsXHJcbiAgICAgICAgZWZmZWN0OiBcImxlZnRMb29wXCIsXHJcbiAgICAgICAgcG5Mb29wOmZhbHNlLFxyXG4gICAgICAgIGVuZEZ1bjpmdW5jdGlvbihpbmRleCx0b3RhbCxjKXtcclxuICAgICAgICAgICAgaWYoaW5kZXggKyAxID09PSB0b3RhbCl7XHJcbiAgICAgICAgICAgICAgICAkKCcudG9tb25pJykuY3NzKFwidmlzaWJpbGl0eVwiLFwidmlzaWJsZVwiKVxyXG4gICAgICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgICAgICAgICQoJy50b21vbmknKS5jc3MoXCJ2aXNpYmlsaXR5XCIsXCJoaWRkZW5cIilcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuXHJcbiAgICBcclxuICAgIC8vIGFuc3dlci5sb2FkKGZ1bmN0aW9uKHRoYXQsdG90YWxTY29yZSxzY29yZUFycil7XHJcbiAgICAvLyAgICAgdGhhdC5zaG93TW9kZWwoe1xyXG4gICAgLy8gICAgICAgICBpc1Njb3JlOnRydWUsXHJcbiAgICAvLyAgICAgICAgIHNjb3JlOnRvdGFsU2NvcmUsXHJcbiAgICAvLyAgICAgICAgIHRhcmdldFNjb3JlOjgwLFxyXG4gICAgLy8gICAgICAgICBsaW5rOicvTW9OaUppYW9ZaS9MaWFuZ1Jvbmc/dHlwZT0zJ1xyXG4gICAgLy8gICAgIH0pXHJcbiAgICBcclxuICAgIC8vIH0pO1xyXG5cclxuICAgIG5ldyBhbnN3ZXIoe1xyXG4gICAgICAgIGNhbGxiYWNrOmZ1bmN0aW9uKHRoYXQsdG90YWxTY29yZSxzY29yZUFycil7XHJcbiAgICAgICAgICAgIHRoYXQuc2hvd01vZGVsKHtcclxuICAgICAgICAgICAgICAgIGlzU2NvcmU6dHJ1ZSxcclxuICAgICAgICAgICAgICAgIHNjb3JlOnRvdGFsU2NvcmUsXHJcbiAgICAgICAgICAgICAgICB0YXJnZXRTY29yZTo4MCxcclxuICAgICAgICAgICAgICAgIGxpbms6Jy9Nb05pSmlhb1lpL0xpYW5nUm9uZz90eXBlPTMnXHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgfVxyXG4gICAgfSlcclxufSlcblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL2pzL2xyLmpzXG4vLyBtb2R1bGUgaWQgPSAyMFxuLy8gbW9kdWxlIGNodW5rcyA9IDgiXSwic291cmNlUm9vdCI6IiJ9"],"names":["modules","installedModules","__webpack_require__","moduleId","module","i","l","exports","call","m","c","value","d","name","getter","o","Object","defineProperty","configurable","enumerable","get","n","__esModule","object","property","prototype","hasOwnProperty","p","s","0","randomData","data","len","toString","length","Math","floor","random","problem","options","defaultOptions","id","DATA","problem_data","isRandom","pType","callback","this","$","extend","undefined","html","$wrap","isDataRandom","tag","_answerIndex","concat","sort","a","b","parseInt","title","optionLen","j","option","scores","bind","that","on","removeAttr","eq","addClass","siblings","removeClass","attr","totalScore","scoreArr","each","_score","find","parseFloat","push","showModel","$html","isScore","targetScore","score","content","link","append","css","position","top","left","height","width","z-index","margin-top","margin-left","remove","onClose","location","href","reload","20","answer","calculator","init","seter1","seterObj","$parent","parents","val","window","clearTimeout","setTimeout","getDate","stkName","pledgerate","currentPrice","err","alert","loadBd","change","click","isTag","isStockNum","bzj","zc","stockCode","stockNum","stockRate","stockPrice","direc","bCode","bRate","bPrice","Name","ShuLiang","KeRongZiZiChan","ChuShiBaoZhenJin","toFixed","prev","e","className","target","clone","children","seter2","dirc","creditstkctrl","creditfundctrl","isCreditCode","marginratestk","marginratefund","code","fail","ajax","url","type","dataType","stockcode","_random","success","json","error","jQuery","slide","titCell","mainCell","effect","pnLoop","endFun","index","total"],"mappings":"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"}