;(function() { window.createMeasureObserver = (measureName) => { var markPrefix = `_uol-measure-${measureName}-${new Date().getTime()}`; performance.mark(`${markPrefix}-start`); return { end: function() { performance.mark(`${markPrefix}-end`); performance.measure(`uol-measure-${measureName}`, `${markPrefix}-start`, `${markPrefix}-end`); performance.clearMarks(`${markPrefix}-start`); performance.clearMarks(`${markPrefix}-end`); } } }; /** * Gerenciador de eventos */ window.gevent = { stack: [], RUN_ONCE: true, on: function(name, callback, once) { this.stack.push([name, callback, !!once]); }, emit: function(name, args) { for (var i = this.stack.length, item; i--;) { item = this.stack[i]; if (item[0] === name) { item[1](args); if (item[2]) { this.stack.splice(i, 1); } } } } }; var runningSearch = false; var hadAnEvent = true; var elementsToWatch = window.elementsToWatch = new Map(); var innerHeight = window.innerHeight; // timestamp da última rodada do requestAnimationFrame // É usado para limitar a procura por elementos visíveis. var lastAnimationTS = 0; // verifica se elemento está no viewport do usuário var isElementInViewport = function(el) { var rect = el.getBoundingClientRect(); var clientHeight = window.innerHeight || document.documentElement.clientHeight; // renderizando antes, evitando troca de conteúdo visível no chartbeat-related-content if(el.className.includes('related-content-front')) return true; // garante que usa ao mínimo 280px de margem para fazer o lazyload var margin = clientHeight + Math.max(280, clientHeight * 0.2); // se a base do componente está acima da altura da tela do usuário, está oculto if(rect.bottom < 0 && rect.bottom > margin * -1) { return false; } // se o topo do elemento está abaixo da altura da tela do usuário, está oculto if(rect.top > margin) { return false; } // se a posição do topo é negativa, verifica se a altura dele ainda // compensa o que já foi scrollado if(rect.top < 0 && rect.height + rect.top < 0) { return false; } return true; }; var asynxNextFreeTime = () => { return new Promise((resolve) => { if(window.requestIdleCallback) { window.requestIdleCallback(resolve, { timeout: 5000, }); } else { window.requestAnimationFrame(resolve); } }); }; var asyncValidateIfElIsInViewPort = function(promise, el) { return promise.then(() => { if(el) { if(isElementInViewport(el) == true) { const cb = elementsToWatch.get(el); // remove da lista para não ser disparado novamente elementsToWatch.delete(el); cb(); } } }).then(asynxNextFreeTime); }; // inicia o fluxo de procura de elementos procurados var look = function() { if(window.requestIdleCallback) { window.requestIdleCallback(findByVisibleElements, { timeout: 5000, }); } else { window.requestAnimationFrame(findByVisibleElements); } }; var findByVisibleElements = function(ts) { var elapsedSinceLast = ts - lastAnimationTS; // se não teve nenhum evento que possa alterar a página if(hadAnEvent == false) { return look(); } if(elementsToWatch.size == 0) { return look(); } if(runningSearch == true) { return look(); } // procura por elementos visíveis apenas 5x/seg if(elapsedSinceLast < 1000/5) { return look(); } // atualiza o último ts lastAnimationTS = ts; // reseta status de scroll para não entrar novamente aqui hadAnEvent = false; // indica que está rodando a procura por elementos no viewport runningSearch = true; const done = Array.from(elementsToWatch.keys()).reduce(asyncValidateIfElIsInViewPort, Promise.resolve()); // obtém todos os elementos que podem ter view contabilizados //elementsToWatch.forEach(function(cb, el) { // if(isElementInViewport(el) == true) { // // remove da lista para não ser disparado novamente // elementsToWatch.delete(el); // cb(el); // } //}); done.then(function() { runningSearch = false; }); // reinicia o fluxo de procura look(); }; /** * Quando o elemento `el` entrar no viewport (-20%), cb será disparado. */ window.lazyload = function(el, cb) { if(el.nodeType != Node.ELEMENT_NODE) { throw new Error("element parameter should be a Element Node"); } if(typeof cb !== 'function') { throw new Error("callback parameter should be a Function"); } elementsToWatch.set(el, cb); } var setEvent = function() { hadAnEvent = true; }; window.addEventListener('scroll', setEvent, { capture: true, ive: true }); window.addEventListener('click', setEvent, { ive: true }); window.addEventListener('resize', setEvent, { ive: true }); window.addEventListener('load', setEvent, { once: true, ive: true }); window.addEventListener('DOMContentLoaded', setEvent, { once: true, ive: true }); window.gevent.on('allJSLoadedAndCreated', setEvent, window.gevent.RUN_ONCE); // inicia a validação look(); })();
  • AssineUOL
Topo

Suspeitos de hackearem Moro relatam ofensas; juiz mantém prisão de grupo

Gustavo Henrique Elias Santos, 28, o DJ Guto Dubra, preso sob suspeita de ter hackeado o celular do ministro Sergio Moro  - Reprodução
Gustavo Henrique Elias Santos, 28, o DJ Guto Dubra, preso sob suspeita de ter hackeado o celular do ministro Sergio Moro Imagem: Reprodução

Felipe Amorim

Do UOL, em Brasília

30/07/2019 11h05Atualizada em 30/07/2019 12h05

Os quatro suspeitos de invadirem os celulares do ministro Sergio Moro (Justiça e Segurança Pública) e de outras autoridades tiveram os pedidos de soltura negados pelo juiz Vallisney de Souza Oliveira, da 10ª Vara Federal. A solicitação foi feita na audiência de custódia realizada na manhã de hoje. Na mesma sessão, dois dos presos relataram ofensas dos policiais federais e maus-tratos na prisão.

Na audiência, o juiz negou os pedidos dos advogados de Gustavo Henrique Elias Santos, Suelen de Oliveira, Walter Delgatti Neto e Danilo Marques para que a prisão fosse revogada de imediato. Segundo Vallisney, não foi apresentado pela defesa novos elementos que justificassem a revogação da prisão.

O juiz também determinou a transferência de Suelen para a carceragem da Polícia Federal, após ela ter se queixado de maus-tratos no presídio feminino onde estava presa. Na última sexta-feira (26), os quatro suspeitos tiveram a prisão temporária prorrogada pelo juiz Vallisney até a próxima quinta-feira (1º).

Na audiência, o DJ Gustavo Henrique Elias Santos afirmou que foi insultado verbalmente pelos agentes da Polícia Federal que executaram sua prisão.

Elias Santos disse ter sido chamado de "bandido" e "hacker" no momento da prisão, conduta que ele classificou como "desnecessária".

O DJ também afirmou que a PF negou que ele mantivesse contato com seu advogado no momento da prisão, por volta das 8h da última terça-feira (23). Segundo Elias Santos, ele só entrou em contato com seu defensor por volta das 17h30 daquele dia, depois de ter sido transferido de São Paulo, onde foi preso, para Brasília.

A Polícia Federal informou, por meio de sua assessoria de comunicação, que não iria se manifestar neste momento sobre as afirmações de Elias Santos. A representante do MPF (Ministério Público Federal) na audiência afirmou que será investigado se houve abuso de autoridade nas prisões.

Também na audiência, Suelen afirmou ter ado por condições precárias após ser presa. Após ar pela carceragem da PF, ela foi transferida para uma penitenciária feminina do Distrito Federal.

Ao juiz da 10ª Vara, Suelen afirmou ter ficado sem materiais de higiene, como papel higiênico e absorvente, e ter bebido água do chuveiro por não ter tido o à água potável. Suelen estava chorando durante a maior parte do tempo em que foi ouvida. "Me trataram mal, fizeram piadinha comigo. Eu nunca fiz nada para ninguém", disse. Após ouvir o relato, Vallisney a transferência de Suelen do presídio feminino para a carceragem da Polícia Federal.

Os outros dois presos, Walter Delgatti Neto e Danilo Marques, não fizeram queixas sobre a conduta dos policiais durante as prisões.

Delgatti Neto afirmou que não foi pressionado durante o depoimento e prestou as informações de forma espontânea. "Tudo que fiz ate agora foi de livre espontânea vontade", disse.

O caso do hacker

Em depoimento à PF, Delgatti Neto afirmou em depoimento à PF ter sido o autor das invasões ao Telegram por meio de chamadas ao telefone celular dos alvos. Ele também disse ter sido a fonte que reou os arquivos de conversas de procuradores da Operação Lava Jato para o jornalista Glenn Greenwald, fundador do site The Intercept Brasil.

Delgatti afirmou ter enviado o material de forma anônima, voluntária e sem custos. No depoimento, ele também afirmou não ter editado o material.

Os advogados de Gustavo, Suelen e Danilo têm negado participação deles na invasão ao Telegram de autoridades.

O Intercept tem publicado reportagens com base nos diálogos entre procuradores da Lava Jato desde o dia 9 de julho. O site nunca revelou quem seria a fonte do material.

A revelação dos diálogos provocou questionamentos sobre a atuação dos procuradores da Lava Jato e sobre a imparcialidade do então juiz Sergio Moro ao conduzir processos da operação.

Moro e os procuradores têm dito não ser possível confirmar a autenticidade dos diálogos e afirmam que as conversas não revelaram nenhuma irregularidade.

Defesa de hacker diz que há copias de diálogos fora do País

Band Notí­cias