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

Jacarezinho: MP acompanhará inquéritos após delegado negar 'execuções'

6.mai.2021 - Casa no Jacarezinho ensanguentada após operação em que 28 pessoas morreram - OAB
6.mai.2021 - Casa no Jacarezinho ensanguentada após operação em que 28 pessoas morreram Imagem: OAB

Igor Mello

Do UOL, no Rio

11/05/2021 15h41

O MP-RJ (Ministério Público do Rio de Janeiro) disse hoje que vai fiscalizar de perto os inquéritos abertos na DH (Delegacia de Homicídios) da Capital para apurar as 27 mortes atribuídas a policiais civis durante a operação na favela do Jacarezinho, zona norte do Rio, na última quinta-feira (6).

A decisão ocorre após o delegado responsável pelo comando do DGHPP (Departamento Geral de Homicídios e Proteção à Pessoa) —que tem sob seu guarda-chuva a DH— dizer que não houve nenhuma "execução" por parte dos policiais. A declaração foi dada em entrevista coletiva após a operação antes mesmo de qualquer investigação.

A prova cabal que a Polícia Civil não entra para executar e que às vezes é necessário que haja revide é o falecimento do policial. No início da incursão, o policial foi alvejado e morto. É a prova cabal de que houve necessidade real de revide a uma injusta agressão. Então a ação é legítima do início ao final, dentro da total legalidade. A Polícia Civil não entra pra executar, mas pra cumprir mandados de prisão legalmente deferidos, entra para cumprir a lei

Roberto Cardoso, diretor-geral do DGHPP

Questionado pelo UOL a respeito da declaração do delegado, o promotor André Cardoso, que irá coordenar as investigações do MP-RJ sobre a operação no Jacarezinho, afirmou que acompanhará todas as diligências da DH para garantir isenção da apuração.

"Todo inquérito policial tem um membro do MP que acompanha. Todos [os inquéritos relacionados à operação no Jacarezinho] serão acompanhados pela força-tarefa também. Vamos acompanhar e exercer o controle externo desses inquéritos", afirmou.

"Vou acompanhar todos os depoimentos que forem tomados no inquérito, perícias e, ao final das investigações, vamos formar nossa convicção", completou.

Por determinação do STF (Supremo Tribunal Federal) e da sentença da CIDH (Corte Americana de Direitos Humanos) que condenou o Brasil no Caso Nova Brasília, o MP-RJ tem obrigação de abrir investigações independentes em casos de mortes cometidas por policiais. Por isso, além dos inquéritos da DH, os promotores conduzirão uma apuração em paralelo.

Para dar conta das investigações, o MP-RJ criou uma força-tarefa para dar auxílio a Cardoso nos trabalhos. Foram designados três outros promotores para ajudá-lo. Além disso, peritos e outros técnicos do órgão foram disponibilizados para auxiliar nas investigações.

Operação mais letal da história

Com 28 mortos, a operação no Jacarezinho é a mais letal da história da segurança pública do Rio, como revelou o UOL na última quinta-feira. Além da alta letalidade, a ação da Polícia Civil guarda uma série de elementos que sugerem irregularidades.

Familiares de vítimas denunciam diversos casos de mortes arbitrárias por policiais durante a operação. Oito dos 27 moradores do Jacarezinho foram mortos dentro de casas. Apenas quatro vítimas estavam entre os alvos da operação.