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

Ministro pede prazo, e militares de ação que matou músico seguem presos

Carro em que músico foi morto ao ser baleado por homens do Exército - 07.abr.2019 - Jose Lucena/Futura Press/Estadão Conteúdo
Carro em que músico foi morto ao ser baleado por homens do Exército Imagem: 07.abr.2019 - Jose Lucena/Futura Press/Estadão Conteúdo

Marina Lang

Colaboração para o UOL, no Rio

08/05/2019 18h50

O ministro do STM (Superior Tribunal Militar), José Barroso Filho, pediu vistas nesta tarde no julgamento que decide a liberdade de nove militares presos pelo assassinato do músico Evaldo Rosa dos Santos, 46, cujo carro foi alvejado com 83 tiros em Guadalupe, zona norte do Rio, em 7 de abril.

O ministro tem dez dias para devolver o processo, e os militares vão seguir presos até lá.

Em 12 de abril, o ministro Lúcio Mário de Barros Góes havia indeferido um pedido de habeas corpus, que tentava reverter as prisões foram efetuadas em 10 de abril -- dois dias depois do crime.

Resultado parcial

Até o pedido de vistas de Barroso, o resultado parcial da votação contabilizava quatro votos a favor da libertação dos militares e um pela manutenção das prisões. O resultado preliminar, contudo, pode ser modificado, uma vez que os ministros podem mudar seus votos até o final do julgamento.

A corte é composta por 15 ministros - o presidente da STM só votará em caso de empate entre os magistrados.

Fuzilamento

7.abr.2019 - Evaldo Rosa dos Santos foi baleado por militares no bairro de Guadalupe, na zona oeste do Rio de Janeiro, e morreu - Reprodução/Facebook - Reprodução/Facebook
Evaldo Rosa dos Santos, baleado e morto por militares no bairro de Guadalupe, na zona oeste do Rio
Imagem: Reprodução/Facebook
Rosa dirigia um Ford Ka sedan branco, rumo a um chá de bebê, e transportava a mulher, um filho, o sogro e uma adolescente. Ao ar por uma patrulha do Exército na Estrada do Camboatá, o veículo foi alvejado por militares. O motorista morreu no local. O sogro ficou ferido, mas sobreviveu. O catador Macedo, que ava a pé pelo local, também foi atingido e morreu dias depois.

Inicialmente, o Comando Militar do Leste (CML) emitiu nota dizendo que a ação era resposta a um assalto, e sugeriu que os militares haviam sido alvo de uma "agressão" por parte dos ocupantes do carro.

A família contestou a versão e só então o Exército recuou e mandou prender dez dos 12 militares envolvidos na ação. Um deles foi solto após alegar que não fez nenhum disparo.

Os militares teriam confundido o carro do músico com o de criminosos que, minutos antes, havia praticado um assalto perto dali. Esse crime foi flagrado por uma patrulha do Exército. Havia sido roubado um carro da mesma cor, mas de outra marca e modelo - um Honda City.

Foram presos o tenente Ítalo da Silva Nunes Romualdo, o sargento Fábio Henrique Souza Braz da Silva e soldados Gabriel Christian Honorato, Matheus Santanna Claudino, Marlon Conceição da Silva, João Lucas da Costa Gonçalo, Leonardo Oliveira de Souza, Gabriel da Silva de Barros Lins e Vítor Borges de Oliveira. Todos atuam no 1º Batalhão de Infantaria Motorizado, na Vila Militar, na zona oeste do Rio. Eles devem responder por dois homicídios e por tentativas de homicídio contra os quatro outros ocupantes do carro de Evaldo. A denúncia ainda não foi apresentada à Justiça pelo MPM.