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

Antenas de celular indicam assessoras fantasmas de Flávio Bolsonaro, diz MP

O senador Flávio Bolsonaro (Republicanos-RJ) - ADRIANO MACHADO
O senador Flávio Bolsonaro (Republicanos-RJ) Imagem: ADRIANO MACHADO

Vinicius Konchinski

Colaboração para o UOL, em Curitiba

19/06/2020 19h55

Raimunda Veras Magalhães e Luiza Souza Paes tiveram cargos de assessoras do então deputado estadual Flávio Bolsonaro. Apesar disso, segundo o MP-RJ (Ministério Público do Rio de Janeiro), uma delas nunca teria ido à Alerj (Assembleia Legislativa do Rio de Janeiro) enquanto esteve lotada no gabinete do parlamentar e a outra só esteve lá três vezes durante período de três anos.

O órgão levantou dados sobre a localização dos celulares de Raimunda e Luiza em sua investigação sobre suposto esquema de "rachadinha" no gabinete de Flávio Bolsonaro. No caso de Raimunda, mãe de Adriano da Nóbrega, o Capitão Adriano, miliciano morto na Bahia em fevereiro, o MP-RJ diz que ela não compareceu à Alerj enquanto exercia função pública.

Raimunda Magalhães também aparece como proprietária de restaurantes desde 2009. Para o MP-RJ, isso reforça os indícios de que ela nunca, de fato, trabalhou na assembleia.

"Raimunda supostamente atuava como empresária desde o ano de 2009, inviabilizando o exercício concomitante da função pública", resumiu o juiz Flávio Itabaiana, da 27ª Vara Criminal do Rio de Janeiro, baseado em informações do MP-RJ.

Itabaiana foi quem decretou a prisão de Fabrício Queiroz, outro ex-assessor de Flávio Bolsonaro. Queiroz foi encontrado ontem em Atibaia (SP). Ele é suspeito de operacionalizar a suposta "rachadinha", recolhendo parte dos salários que funcionários de Flávio recebiam da Alerj.

MP relata fraude em ponto da Alerj

Em sua decisão, Itabaiana cita também o caso de Luiza Souza Paes, outra ex-assessora de Flávio investigada por não prestar, de fato, serviços públicos.

O MP-RJ constatou que, entre dezembro 2014 e novembro de 2017, Luiza só esteve nas cercanias da Alerj por três dias. "Luiza Souza Paes foi localizada remotamente através do uso de seu aparelho celular em apenas três datas no raio de 750 m de distância da Alerj durante o período que permaneceu formalmente nomeada", reproduziu o juiz Itabaiana, em sua decisão.

Mensagens interceptadas por investigadores indicam que Luiza ficou preocupada com as investigações sobre a suposta rachadinha e conversou com Luiz Gustavo Botto Maia, um dos advogados de Flávio, sobre o caso.

Botto Maia teria intercedido junto a funcionários da Alerj para que Luiza pudesse sua folha de ponto de forma retroativa e acusar sua presença no trabalho. Por causa disso, Botto Maia, Luiza e outras duas pessoas ligadas à Alerj tornaram-se alvo da Operação Anjo, que prendeu Queiroz.

O UOL não conseguiu contato com a defesa de Luiza nem de Raimunda. O advogado Botto Maia não respondeu à reportagem.

Flávio Bolsonaro negou ontem, no Twitter, irregularidades em seu período na Alerj. "Em 16 anos como deputado no Rio nunca houve uma vírgula contra mim", escreveu.