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

Esse conteúdo é antigo

Blogueiro bolsonarista Oswaldo Eustáquio é preso pela Polícia Federal

Oswaldo Eustáquio foi alvo de mandados de busca da Polícia Federal - Divulgação/Oswaldo Eustáquio
Oswaldo Eustáquio foi alvo de mandados de busca da Polícia Federal Imagem: Divulgação/Oswaldo Eustáquio

Do UOL, em São Paulo

18/12/2020 19h30Atualizada em 18/12/2020 22h42

O blogueiro bolsonarista Oswaldo Eustáquio foi preso na tarde de hoje pela Polícia Federal. A prisão preventiva ocorreu horas depois da determinação feita pelo ministro do STF (Supremo Tribunal Federal) Alexandre de Moraes.

Eustáquio cumpria prisão domiciliar, porém violou as restrições impostas pelo STF, segundo documento assinado por Moraes.

"A magistrada recebeu comunicação do Ministério da Mulher, da Família e dos Direitos Humanos noticiando que o monitorado agendou, naquele Ministério, reunião às 16h do dia 15/12/2020", afirma o ministro do STF, citando a pasta comandada pela ministra Damares Alves.

Moraes relata que Eustáquio solicitou audiência com a ministra Damares, porém não foi recebido, mas "permaneceu descumprindo a prisão domiciliar e dirigiu-se à Ouvidoria Nacional de Direitos Humanos, sendo atendido naquele órgão".

Um vídeo publicado nas redes sociais mostra o momento em que Eustáquio é acompanhado por agentes da Polícia Federal para ser levado ao presídio na tarde de hoje. "[Eu fui ao ministério] com autorização. Isso é abuso de poder. Nós vamos pedir a minha liberdade. Se eu não for 'liberto', nós vamos comunicar o Senado pelo abuso de poder", disse ele.

Na decisão, porém, o ministro Moraes afirma que não houve essa autorização. "Esclarece a magistrada que não foi formulado nenhum pedido para deslocamento do monitorando nesse período, tampouco houve qualquer autorização por parte daquele juízo para o referido deslocamento."

Alvo de outros mandados de prisão

Em novembro, o blogueiro já havia sido alvo de mandados de prisão domiciliar com uso de tornozeleira eletrônica e de busca e apreensão pela Polícia Federal. Na casa do bolsonarista, a PF apreendeu computadores, tablets, celulares e outros dispositivos eletrônicos.

Na ocasião, Moraes tomou a decisão sob o argumento de que Eustáquio tinha "descumprido as restrições impostas pelo magistrado ao determinar sua soltura no meio deste ano".

Eustáquio foi preso temporariamente por dez dias em junho. Ele foi alvo da Operação Lume da PF, que investiga os organizadores de atos antidemocráticos, e é um dos principais suspeitos no inquérito das fake news no STF.

Ao ser solto, Moraes estabeleceu ao bolsonarista proibições, como a determinação de não poder sair de Brasília, cidade onde mora, e não usar as redes sociais.

O blogueiro, no entanto, foi a São Paulo fazer um vídeo contendo fake news contra o candidato do PSOL à Prefeitura de São Paulo, Guilherme Boulos.

O vídeo com informações falsas foi utilizado pelo candidato Celso Russomanno (Republicanos) para desferir acusações contra Boulos. Ele foi divulgado no mesmo horário em que acontecia o debate UOL/Folha.

Após o fim do debate, Eustáquio esteve no estacionamento do UOL, em São Paulo, onde o evento foi realizado, e abordou Boulos, com quem discutiu.