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

RJ: polícia apura toque de recolher com 'meme das mortes' em favela; veja

Herculano Barreto Filho e Caio Blois

Do UOL, no Rio

08/05/2020 18h04

Em meio ao debate sobre o endurecimento nas regras de isolamento social por causa do novo coronavírus, a Polícia Civil do Rio de Janeiro investiga se há envolvimento de traficantes em ações para impor toque de recolher em uma favela carioca.

O UOL teve o a um vídeo que mostra um carro de som reproduzindo o "meme das mortes" para ameaçar moradores que descumprirem o toque de recolher na Vila Aliança, zona oeste do Rio. A investigação apura se a ação foi organizada a mando do tráfico de drogas.

No vídeo, que circula nas redes sociais, o carro de som avisa que o toque de recolher será imposto a partir das 20h. "Respeite. Esse aviso é para todos. Vamos nos cuidar. Comunidade, não é brincadeira. E se você não abraçar o papo, já sabe né?", encerra a mensagem, seguida da trilha sonora do 'meme das mortes', que viralizou na internet com o vídeo de um caixão conduzido por dançarinos.

O carro de som também rea a mensagem para estabelecimentos comerciais da região e ainda dá orientações de medidas de prevenção para evitar o contágio em meio à pandemia. "A partir de hoje, não será mais permitido andar na rua sem o uso de máscara protetora contra o coronavírus", diz.

Procurada pelo UOL, a Polícia Civil informou que investigações estão sendo conduzidas pela 34ª DP (Bangu). Hoje de manhã, agentes da unidade apreenderam armas e granadas no local, informou a polícia.

Um morador, que preferiu não se identificar, confirmou a ação do tráfico no toque de recolher imposto por causa do coronavírus. Segundo ele, até usuários de drogas estão usando máscaras na favela.

"Estão todos respeitando [as imposições dos traficantes]. Todos estão de máscara, até os usuários de crack em volta da 'boca de fumo' estão com os rostos cobertos. Não sei o que vão fazer com quem não obedecer as ordens", diz.

Região tem lockdown parcial

O caso ocorreu na zona oeste, a primeira região do Rio a ter "lockdown parcial" —isolamento por ordem do prefeito Marcelo Crivella (Republicanos). Ontem, o Calçadão de Campo Grande amanheceu com barreiras para pedestres. Hoje, o bairro de Bangu, onde fica a Vila Aliança, também teve vias fechadas em ação da Guarda Municipal.

A região, que se tornou o principal ponto de expansão da pandemia no Rio, também registrou um flagrante de aglomeração nesta semana. Em um vídeo, um homem mostrou uma grande aglomeração de pessoas em um "festival de pipas" em Realengo.

Denúncias de aglomerações

A Secretaria de Ordem Pública da prefeitura informou ontem que o Disk-Aglomeração já atendeu 4.749 ocorrências em toda a cidade do Rio —os casos de descumprimento do isolamento se concentram em bairros da zona oeste do Rio.

No mês ado, o Disque Denúncia, entidade privada sem fins lucrativos que atende a população, registrou 5.611 informações anônimas relacionadas à covid-19 —a metade delas está relacionada a casos de aglomeração de pessoas, em descumprimento às recomendações de isolamento social.