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

Freixo pedirá convocação de Carlos Bolsonaro para explicar 'Abin paralela'

Marcelo Freixo diz que intervenção de Carlos Bolsonaro em licitação "é gravíssima" - Valter Campanato/Agência Brasil
Marcelo Freixo diz que intervenção de Carlos Bolsonaro em licitação "é gravíssima" Imagem: Valter Campanato/Agência Brasil

Lucas Valença

Do UOL, em Brasília

19/05/2021 10h22

O deputado e líder da minoria na Câmara, Marcelo Freixo (PSOL-RJ), irá pedir a convocação do vereador carioca Carlos Bolsonaro (Republicanos) na CCAI (Comissão Mista de Controle das Atividades de Inteligência) do Congresso Nacional. Hoje, o UOL revelou a interferência do filho do presidente Jair Bolsonaro (sem partido) em uma licitação que contratará um aparelho espião pelo governo federal.

Um requerimento de informação ao Ministério da Justiça também será entregue pelo parlamentar que buscará informações sobre a atuação de Carlos no Sisbin (Sistema Brasileiro de Inteligência).

Caso a convocação seja aprovada pelo colegiado da Câmara, o filho "02" da República deverá prestar esclarecimentos sobre a 'Abin paralela'. Na conhecida reunião ministerial de 22 de abril de 2020, Jair Bolsonaro afirmou ter um sistema "particular" de informações.

"A denúncia é gravíssima. Carlos Bolsonaro quer criar uma Abin clandestina para espionar e perseguir os adversários do governo e jornalistas, revivendo os piores momentos da ditadura militar", disse Freixo.

Segundo o deputado, "Bolsonaro está acuado" e pretende "apelar cada vez mais ao autoritarismo" para se manter no poder. "Além de ser um ataque violento à democracia e à Constituição, as movimentações de Carlos são ilegais. Um vereador não pode intervir em assuntos do governo federal".

O edital de licitação do Ministério da justiça de nº 03/21, no valor de R$ 25,4 milhões, previsto para acontecer hoje, tem como objetivo a contratação do avançado programa de espionagem Pegasus, desenvolvido pela empresa israelense NSO Group e alvo de escândalos ao redor do mundo.

O programa Pegasus já foi usado para espionar celulares e computadores de jornalistas e críticos de governos. Por exemplo, em junho de 2017, o jornal The New York Times revelou que o software estava sendo usado pelo governo do México, ainda sob a gestão de Enrique Peña Nieto, para espionar ativistas contrários à sua gestão.

Fontes ouvidas pelo UOL informaram que o objetivo final de Carlos Bolsonaro é usar as estruturas do Ministério da Justiça e da PF (Polícia Federal) para expandir a chamada 'Abin paralela'.