;(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

Operação Lava Jato

Lava Jato confirma vazamento e diz que mensagens não revelam ilegalidade

Do UOL, em São Paulo

09/06/2019 21h32

A Força-Tarefa da Lava Jato em Curitiba confirmou hoje ter sido alvo de um ataque hacker que resultou no vazamento de mensagens trocadas entre seus membros. Segundo o Ministério Público Federal do Paraná, o conteúdo das conversas não revela nenhuma ilegalidade.

De acordo com nota divulgada pelo órgão, celulares e aplicativos foram invadidos e cópias de mensagens e arquivos trocados entre os procuradores vazaram.

O MPF-PR se manifestou sobre o ataque após o site "The Intercept Brasil" publicar uma série de reportagens expondo conversas entre os membros da força-tarefa e entre o procurador Delton Dallagnon e o então juiz federal Sergio Moro, hoje ministro da Justiça e Segurança Pública do governo Jair Bolsonaro.

Nas conversas, ao longo de dois anos, Moro sugeriu que o procurador trocasse a ordem de fases da Lava Jato, para não ficar "muito tempo sem operação", deu conselhos e pistas informais de investigação e antecipou uma decisão que ele ainda não havia tornado pública.

As mensagens também mostram que o então juiz criticou e sugeriu recursos ao Ministério Público.

As conversas colocam em dúvida a imparcialidade de Moro no processo. No sistema judiciário brasileiro, cabe ao Ministério Público reunir provas que incriminem o réu e apresentá-las ao juiz. O juiz deve atuar julgar de forma independente, sem atuar como parte de acusação nem de defesa.

Em nota, Moro negou que tenha orientado Dallagnol e afirmou que as conversas não revelam "nenhuma anormalidade".

Procuradores temiam eleição de Haddad

Nas reportagens, são mostradas ainda mensagens em que procuradores demonstram preocupação com a possibilidade de o ex-presidente Lula, já preso, conceder uma entrevista à Folha de S.Paulo.

Na ocasião, o ministro do STF (Supremo Tribunal Federal), havia autorizado a entrevista. As mensagens revelam que os procuradores estariam preocupados com o efeito que a entrevista poderia ter nas eleições presidenciais, beneficiando o candidato do PT (Partido dos Trabalhadores), Fernando Haddad.

O MPF-PR afirmou, em nota, que não houve ilegalidade nas ações da força-tarefa. "Há a tranquilidade de que os dados eventualmente obtidos refletem uma atividade desenvolvida com pleno respeito à legalidade e de forma técnica e imparcial, em mais de cinco anos de operação", disse.

O órgão também afirmou que as mensagens foram retiradas de contexto, o que daria margem para interpretações erradas.

"Os procuradores da Lava Jato em Curitiba mantiveram, ao longo dos últimos cinco anos, discussões em grupos de mensagens, sobre diversos temas, alguns complexos, em paralelo a reuniões pessoais que lhes dão contexto. Vários dos integrantes da força-tarefa de procuradores são amigos próximos e, nesse ambiente, são comuns desabafos e brincadeiras. Muitas conversas, sem o devido contexto, podem dar margem para interpretações equivocadas", afirmou a nota.

Operação Lava Jato