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

Marielle Franco denunciou abusos de policiais do batalhão que mais mata no Rio

A vereadora Marielle Franco (PSOL-RJ) em cerimônia no último dia 8 de março - Reprodução/Facebook
A vereadora Marielle Franco (PSOL-RJ) em cerimônia no último dia 8 de março Imagem: Reprodução/Facebook

Marina Lang e Paula Bianchi

Do UOL, no Rio

15/03/2018 00h06

A vereadora do Rio de Janeiro Marielle Franco (PSOL), morta na noite desta quarta-feira (14), fez uma denúncia, no último sábado (10), em seu perfil nas redes sociais contra policiais do 41º BPM (Batalhão da Polícia Militar) de Acari.

Há duas semanas, ela assumiu a função de relatora da Comissão da Câmara de Vereadores do Rio criada para acompanhar a atuação das tropas na intervenção federal na área de segurança do Rio. 

Segundo a vereadora, o batalhão estaria “aterrorizando e violentando moradores de Acari”.

Veja também

Dados do ISP (Instituto de Segurança Pública) indicam que o batalhão registrou por volta de 450 mortes nos últimos cinco anos. Trata-se do maior índice de letalidade do Estado do Rio de Janeiro durante o período.

Na postagem, a vereadora escreveu: “Precisamos gritar para que todos saibam o está acontecendo em Acari nesse momento. O 41° Batalhão da Polícia Militar do Rio de Janeiro está aterrorizando e violentando moradores de Acari. Nessa semana, dois jovens foram mortos e jogados em um valão. Hoje a polícia andou pelas ruas ameaçando os moradores. Acontece desde sempre e com a intervenção ficou ainda pior. Compartilhem essa imagem nas suas linhas do tempo e na capa do perfil!”.

A reportagem do UOL também recebeu denúncias sobre uma operação deflagrada na manhã de sábado em Acari. Sob anonimato, moradores relataram muitos tiros e abusos de PMs na região.

O 41º batalhão foi criado pelo então secretário de Segurança Pública José Mariano Beltrame dentro do espaço da Ceasa (Centrais de Abastecimento do Estado do Rio) carioca em 2011, e herdou o policiamento de parte da área do 9º BPM, ficando responsável pelos bairros de Irajá, Pavuna, Vicente de Carvalho e Costa Barros, onde estão os complexos de favelas da Pedreira e Chapadão. Longe do mar e dos cartões postais do Rio, a área é uma das mais violentas da cidade, com forte presença do tráfico e tiroteios diários.

O UOL procurou a assessoria de imprensa da Polícia Militar do Rio para tratar da letalidade do batalhão e das denúncias feitas pelos moradores e pela vereadora Marielle Franco, mas não obteve retorno até a publicação desta reportagem."

Maria Eduarda da Conceição

Foi em Acari, também, que a morte de Maria Eduarda Alves da Conceição, 13, chocou por mostrar que nem mesmo escolas estão a salvo da rotina de violência no Rio. 

Em março do ano ado, ela bebia água em um bebedouro no intervalo de um treino no pátio da sua escola em Acari, zona norte quando foi atingida por três tiros de fuzil: dois na cabeça e um no quadril.

Os tiros, parte de um conflito entre PMs e criminosos da região, atravessaram os muros do colégio.

Duda cresceu na favela da Pedreira, parte do Complexo do Chapadão, uma das áreas mais violentas da cidade.

Ela sonhava em ser jogadora de basquete e, desde que começou a treinar, ou a colecionar medalhas.