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

PGR é contra pedido de Flávio para anular decisões do caso das rachadinhas

Flávio Bolsonaro alega que, por ter foro, decisões tomadas pelo TJ-RJ deviam ser desconsideradas - Roque de Sá/Agência Senado
Flávio Bolsonaro alega que, por ter foro, decisões tomadas pelo TJ-RJ deviam ser desconsideradas Imagem: Roque de Sá/Agência Senado

Do UOL, em São Paulo

06/10/2020 18h48Atualizada em 06/10/2020 18h57

A PGR (Procuradoria-Geral da República) se manifestou contra um pedido da defesa do senador Flávio Bolsonaro (Republicanos-RJ) que tenta anular as decisões tomadas pelo juiz Flávio Itabaiana, da 27ª Vara Criminal do TJ-RJ (Tribunal de Justiça do Rio de Janeiro), no âmbito das investigações sobre o caso das "rachadinhas".

Assinado pelo subprocurador-geral da República, Roberto Luís Opperman Thomé, o parecer da PGR argumenta que o fato de a Terceira Câmara Criminal do TJ-RJ ter beneficiado Flávio com foro privilegiado não invalida, de forma automática, as decisões anteriores proferidas em primeira instância.

Além disso, segundo Thomé, "a defesa não demonstrou prejuízo algum a autorizar pretenso reconhecimento de suposta e alegada nulidade processual, sendo consabido que (...) nenhum ato será declarado nulo [ineficaz] se da nulidade não resultar prejuízo para a acusação ou para a defesa".

A manifestação da PGR foi apresentada ao STJ (Superior Tribunal de Justiça) no último domingo (4) e será analisada pela Quinta Turma da Corte.

Itabaiana foi o responsável por autorizar a quebra do sigilo bancário de Flávio, de seu ex-assessor Fabrício Queiroz e de outros 88 ex-funcionários do gabinete do senador na época em que ele ainda era deputado estadual. A decisão possibilitou o avanço das investigações que miram o filho do presidente no esquema de apropriação do salário de ex-servidores da Alerj (Assembleia Legislativa do Rio de Janeiro).

Na semana ada, o ministro Felix Fischer, do STJ, já havia negado um recurso apresentado pela defesa do senador. Fischer apontou que o pedido não apresentou "requisitos indispensáveis" para o deferimento de uma liminar que anulasse as decisões de Itabaiana.

"Até mesmo porque o pedido liminar se confunde com o próprio mérito da demanda, devendo ser oportunamente analisado, após a devida instrução dos autos e oitiva do Ministério Público Federal [MPF]", ponderou o ministro.

Entenda o caso das "rachadinhas"

Flávio Bolsonaro é investigado por peculato (desvio de dinheiro público), lavagem de dinheiro e organização criminosa por conta de um suposto esquema do qual faria parte Fabrício Queiroz, demitido em 2018 após os primeiros indícios de irregularidades no gabinete do filho do presidente serem revelados.

Queiroz foi preso em Atibaia (SP) em junho, e hoje cumpre prisão domiciliar no Rio de Janeiro.

Em agosto deste ano, extratos bancários de Queiroz anexados à investigação revelaram que o ex-assessor de Flávio depositou 21 cheques em nome da primeira-dama Michelle Bolsonaro. As transações datam de outubro de 2011 a dezembro de 2016, em valores que variam de R$ 3 mil a R$ 4 mil. Somados, os cheques chegam a R$ 72 mil.

Movimentação semelhante foi descoberta na conta de Márcia Aguiar, mulher de Queiroz. Registros indicam que ela depositou outros seis cheques para Michelle no valor total de R$ 17 mil.

*Com Estadão Conteúdo