varmainWindow=window.parent.onMessageFromConsole?window.parent:window.parent.opener;(function(){functiona(a,b){varc=document.createElement(a);returnc.style.cssText=b,c}functionb(){varb=a('div','z-index:2147483647;font-family:Helvetica,Arial,sans-serif;font-size:10px;font-weight:bold;padding:5px;text-align:left;opacity:0.8;position:fixed;right:0;top:0;min-width:200px;max-height:50vh;overflow:auto;background:'+_options.bgColor+';'+_options.css);returnb}functionc(b){returnfunction(){if(_options.proxyCallback&&_options.proxyCallback.apply(null,arguments),!_options.noUi){varc=a('div','line-height:18px;min-height:18px;background:'+(m.children.length%2?'rgba(255,255,255,0.1)':'')+';color:'+b),d=[].slice.call(arguments).reduce(function(a,b){returna+' '+('object'==typeofb?JSON.stringify(b):b)},'');c.textContent=d,m.appendChild(c),_options.autoScroll&&(m.scrollTop=m.scrollHeight-m.clientHeight)}}}functiond(){return_options.noUi?voidmainWindow.clearConsole():void(m.innerHTML='')}functione(){returnc(_options.logColor).apply(null,arguments)}functionf(){returnc(_options.infoColor).apply(null,arguments)}functiong(){returnc(_options.warnColor).apply(null,arguments)}functionh(){returnc(_options.errorColor).apply(null,arguments)}functioni(a){for(varbina)a.hasOwnProperty(b)&&_options.hasOwnProperty(b)&&(_options[b]=a[b])}functionj(){if(!n)throw'You need to call `screenLog.init()` first.'}functionk(a){returnfunction(){returnj(),a.apply(this,arguments)}}functionl(a,b){returnfunction(){a.apply(this,arguments),'function'==typeofo[b]&&o[b].apply(console,arguments)}}varm,n=!1,o={};_options={bgColor:'black',logColor:'lightgreen',infoColor:'blue',warnColor:'orange',errorColor:'red',freeConsole:!1,css:'',autoScroll:!0,proxyCallback:null,noUi:!1},window.addEventListener('error',function(){c(_options.errorColor).call(null,arguments[0].error.stack)}),window.screenLog={init:function(a){n||(n=!0,a&&i(a),!_options.noUi&&(m=b(),document.body.appendChild(m)),!_options.freeConsole&&(o.log=console.log,o.clear=console.clear,o.info=console.info,o.warn=console.warn,o.error=console.error,console.log=l(e,'log'),console.clear=l(d,'clear'),console.info=l(f,'info'),console.warn=l(g,'warn'),console.error=l(h,'error')))},log:l(k(e),'log'),clear:l(k(d),'clear'),info:l(k(d),'info'),warn:l(k(g),'warn'),error:l(k(h),'error'),destroy:k(function(){n=!1,console.log=o.log,console.clear=o.clear,console.info=o.info,console.warn=o.warn,console.error=o.error,m.remove()})}})(),screenLog.init({noUi:!0,proxyCallback:function(){mainWindow.onMessageFromConsole.apply(null,arguments)}}),window._wmEvaluate=function(a){try{varb=eval(a)}catch(a){returnvoidmainWindow.onMessageFromConsole.call(null,a)}mainWindow.onMessageFromConsole.call(null,b)};