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

Felipe Moura Brasil

OPINIÃO

Texto em que o autor apresenta e defende suas ideias e opiniões, a partir da interpretação de fatos e dados.

Após omissões, PGR de Augusto Aras corre atrás para mostrar serviço

Colunista do UOL*

20/01/2023 18h06

*Por Redação UOL Notícias

Na Live UOL, desta sexta-feira (20), o colunista do UOL Notícias Felipe Moura Brasil falou sobre a operação da PF (Polícia Federal), que cumpriu mandados de busca e apreensão contra o governador afastado do DF (Distrito Federal), Ibaneis Rocha (MDB).

Além dele, o ex-secretário executivo da Secretaria de Segurança Pública do DF, Fernando de Souza Oliveira, também foi alvo da operação.

A dupla é investigada em inquérito do Ministério Público Federal que apura as condutas de autoridades públicas na invasão às sedes dos Três Poderes, em 8 de janeiro, por apoiadores do ex-presidente Jair Bolsonaro (PL).

As medidas foram autorizadas pelo ministro do STF (Supremo Tribunal Federal) Alexandre de Moraes, a partir de pedidos da PGR (Procuradoria-Geral da República).

Para Felipe Moura Brasil, após várias omissões, a PGR de Augusto Aras está tentando mostrar serviço.

"A PGR está correndo atrás querendo mostrar trabalho depois de ser contornada diversas vezes. Ministros do STF se aproveitaram, inclusive, da situação para suspender operações da Receita que atingiam dois deles —indiretamente, por meio de familiares e pessoas próximas. Abriram inquérito das fake news para apurar ameaças de bolsonaristas e desde então a PGR é contornada por ter sido complacente com toda a classe política em relação à Lava-Jato", comentou.

"Aras foi complacente demais com o bolsonarismo, o que fez com que Alexandre de Moraes matasse no peito dizendo 'deixa que eu resolvo isso aqui'. Ele contornou a PGR, inclusive nessas determinações de prisão do ex-ministro da Justiça, Anderson Torres e de afastamento de Ibaneis Rocha", disse.

Na análise do colunista, Aras só tenta mostrar serviço agora, porque se viu pressionado pela avalanche dos fatos.

"Depois das decisões de Moraes, agora a PGR para mostrar que está fazendo alguma coisa —porque estava ridícula sua omissão na ação de Augusto Aras— ela fez esse pedido de operação de busca e apreensão. Já tarde, mas querendo correr atrás, pressionada por essa avalanche dos fatos, do impacto visual das imagens do domingo 8 de janeiro, e por toda a pressão dos tribunais superiores e, obviamente, do governo empossado.

Felipe Moura Brasil e Madeleine Lacsko debatem os principais assuntos do país diariamente, das 16h às 17h, com transmissão ao vivo nos perfis do UOL no YouTube, no Facebook e no Twitter.