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

MP intima Flávio Bolsonaro para prestar depoimento sobre caso Queiroz

Flavio Bolsonaro e Fabrício Queiroz fazem sinal de arminha - Reprodução/Instragram
Flavio Bolsonaro e Fabrício Queiroz fazem sinal de arminha Imagem: Reprodução/Instragram

Herculano Barreto Filho

Do UOL, no Rio

02/07/2020 19h36

O Ministério Público (MP) intimou o senador Flávio Bolsonaro (Republicanos-RJ) para depor na próxima semana no caso do suposto esquema de rachadinha na Alerj (Assembleia Legislativa do Rio), quando o político ainda era deputado estadual.

De acordo com a defesa de Flávio Bolsonaro, a notificação foi feita pelo Gaecc (Grupo de Atuação Especializada no Combate à Corrupção), que atua em processos em primeira instância.

Entretanto, a 3ª Câmara Criminal do TJ-RJ (Tribunal de Justiça do Rio) aceitou o pedido de foro especial apresentado pelo político na semana ada —segundo a defesa, Flávio não poderia perder o benefício, já que deixou a Alerj para assumir o cargo de senador.

Após a decisão dos desembargadores, o caso deixou a 1ª instância e foi remetido ao Órgão Especial do TJ.

Com isso, a investigação foi encaminhada para o Gaocrim (Grupo de Atribuição Originária Criminal), unidade do MP-RJ com atribuição para investigar deputados estaduais com mandato na Alerj.

A advogada Luciana Pires, que representa Flávio Bolsonaro, contestou o pedido. Por meio de nota, disse que o Gaecc "insiste em ouvir o senador", mesmo após a decisão da 3ª Câmara Criminal do TJ-RJ.

A defesa do senador disse, ainda, que irá aguardar a confirmação do pedido para, então, marcar a data para o depoimento, uma prerrogativa do senador.

Confira, abaixo, a nota da defesa de Flávio Bolsonaro:

"Causa espanto à defesa que o Gaecc insista em colher depoimento dos investigados. O próprio Gaocrim, que atua na segunda instância e ao qual cabe agora a investigação, interpôs Reclamação perante o STF tão logo tomou conhecimento do resultado do HC que retirou o foro da primeira instância."

O MP, no entanto, alegou que as investigações seguirão curso normal. Leia a nota, na íntegra:

"O Ministério Público do Estado do Rio de Janeiro esclarece que a Chefia Institucional delegou aos Promotores de Justiça do GAECC/MPRJ (Grupo de Atuação Especializada no Combate à Corrupção) os poderes para prosseguirem nas investigações até seu termo final. O GAECC/MPRJ, nos mesmos moldes das Forças-Tarefas de diversos ramos do Ministério Público, atua em auxílio ao Promotor Natural que, no caso, por conta do decidido pela Terceira Câmara do Tribunal de Justiça do Estado do Rio de Janeiro em recente Habeas Corpus, ou a ser o Procurador-Geral de Justiça. Diante disso, as investigações seguem seu curso normal, sem paralisações desnecessárias por conta de mudanças de competência jurisdicional. O caso segue sob sigilo."

Errata: este conteúdo foi atualizado
Diferentemente do informado na versão original do texto, a nota da assessoria foi da defesa do senador Flávio Bolsonaro, e não do MP. A nota foi corrigida.