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

Líderes pedem ao MP nova perícia em áudios de condomínio de Bolsonaro

Bolsonaro - BBC News Brasil
Bolsonaro Imagem: BBC News Brasil

Do UOL, em São Paulo

04/11/2019 18h15

O deputado federal Alessandro Molon (PSB-RJ) e o senador Randolfe Rodrigues (Rede-AP) protocolizaram pedido ao Ministério Público do Rio de Janeiro (MP-RJ) para que seja realizada uma nova perícia em equipamentos de onde foram retiradas as gravações da portaria do condomínio onde o presidente Jair Bolsonaro mora, na Barra da Tijuca, zona oeste do Rio.

A medida, segundo avaliação dos políticos, está sendo tomada para "afastar qualquer suspeita de manipulação de prova considerada essencial para elucidar o assassinato da vereadora Marielle Franco e do motorista Anderson Gomes", ocorrida em março de 2018.

"É preciso garantir que a perícia vá além dos áudios divulgados e alcance os aparelhos onde foram feitos os registros. Além disso, precisamos nos certificar de que a perícia seja feita pelo órgão competente, o Instituto de Criminalística do Rio de Janeiro. Esta ação será fundamental para garantir que fatores externos não interfiram na elucidação de um crime bárbaro, que acaba de completar 600 dias sem que o mandante tenha sido apontado pelas autoridades", disse Molon.

Na terça-feira (29), o "Jornal Nacional" exibiu uma reportagem sobre as investigações do assassinato da vereadora Marielle Franco (PSOL-RJ), ocorrido em março de 2018. Segundo o JN, o porteiro do condomínio onde morava Bolsonaro à época disse em depoimento que alguém com a voz "do seu Jair" autorizou a entrada de um dos suspeitos da morte da vereadora no dia do crime.

No fim de semana, Bolsonaro disse que pegou gravações do condomínio que contradizem o porteiro, mas, em entrevista ao site O Antagonista, afirmou que seria "forçação de barra" interpretar isso como uma possível obstrução à Justiça.

"Não fizemos cópia de nada, não levamos a secretária eletrônica a lugar nenhum. Meu filho foi lá, botaram na tela 14 de março do ano ado e onde tinha ligação para as duas casas, para a minha e a dele, ele clicou em cima e gravou o áudio. Nada mais além disso. Qualquer outra interpretação é forçação de barra.", disse o presidente.

***

Ouça o podcast UOL Vê TV, a mesa redonda do UOL sobre televisão com os colunistas Chico Barney, Flávio Ricco e Mauricio Stycer.

Os podcasts do UOL estão disponíveis no Spotify, Apple Podcasts, Google Podcasts e outras plataformas de áudio.