;(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();
})();
As Forças Armadas e a polícia ocuparam na manhã desta quinta-feira (28) os complexos de favelas do Chapadão e da Pedreira, controlados por facções rivais na zona norte do Rio de Janeiro e usados como núcleos de ações de roubo de cargas. Envolvendo mais de 5.500 agentes, a operação é a maior desde o início da intervenção em fevereiro.
Um suspeito foi morto depois de atirar nas tropas, segundo o Comando Conjunto. Ele foi flagrado tentando fugir da região e teria reagido à abordagem dos agentes. Fora esse episódio, não houve mais tiroteios entre tropas e criminosos.
Ao todo, participam da ação 5.400 militares das Forças Armadas, 80 policiais militares e 100 policiais civis. Entre os objetivos estavam derrubar barricadas, cumprir mandados de prisão e checar antecedentes criminais de suspeitos, para tentar enfraquecer as facções. Ao menos oito suspeitos e um adolescente foram presos e 20 barricadas foram destruídas.
Os militares distribuíram 6 mil panfletos para incentivar a população a denunciar o paradeiro de criminosos e armas.
O Chapadão é controlado pela facção CV (Comando Vermelho) e a vizinha Pedreira, por grupos rivais, entre eles o ADA (Amigos dos Amigos). A região abriga 1,2 milhão de pessoas e vive sob tensão constante devido a ameaças frequentes de ambos os lados de invasão da área dos rivais.
Porém, os grupos criminosos usam as favelas para descarregar carga roubada de caminhões interceptados em rodovias de o à capital fluminense. A atividade tem se revelado quase tão lucrativa ao crime organizado como o tráfico de drogas.
Caminhoneiros que se dirigem ao Rio são rendidos em vias como a rodovia Presidente Dutra ou a avenida Brasil e obrigados a entrar nas favelas. Lá, a carga é retirada e depois vendida em pontos de comércio irregular em toda a cidade.
A polícia em geral tem dificuldade para recuperar as cargas, pois precisa de grandes efetivos para entrar nos complexos, guardados por barricadas e criminosos fortemente armados. A Secretaria da Segurança tem evitado recuperar cargas em favelas, logo depois que são roubadas, para que policiais não se envolvam em tiroteios que possam colocar moradores em risco.
O roubo de cargas tem sido um dos principais focos de atenção dos interventores federais. Em maio deste ano, foram registradas no estado 752 ocorrências, 39% a menos que no mesmo período do ano anterior, quando uma onda dessa modalidade de crime quase causou o desabastecimento no Rio.
Até a note de quinta-feira haviam sido recuperados 30 carros, 44 motos e dois caminhões roubados. Uma carga de bebidas importadas também foi encontrada.
Segundo a intervenção federal, esse tipo de operação ostensiva é considerado de caráter emergencial e ocorre em paralelo a um esforço de reestruturação, mudança de gestão, treinamento e compra de equipamentos para as polícias. A intervenção diz que as ações emergenciais sozinhas não têm efeito.
Críticos dizem, porém, que as ações em favelas seriam pouco efetivas, pois os criminosos se esconderiam ou fugiriam ao ver os militares, voltando logo em seguida, quando eles saem.
Já defensores das ações afirmam que é preciso entrar periodicamente nos redutos controlados pelo crime para evitar que as facções se fortaleçam ou se consolidem na região.
Moradores e veículos são revistados em operação no Morro do Final Feliz, no Chapadão
Imagem: Luis Kawaguti/UOL Efeito surpresa
Moradores da região se surpreenderam ao encontrar os militares nas ruas quando saíam para trabalhar. A presença das Forças Armadas dividiu opiniões.
"Muito bom eles mandarem o Exército porque a situação aqui está complicada por causa do tráfico de drogas, dá para ver bandido armado na rua todos os dias", afirmou um aposentado que pediu para não ter o nome revelado.
Outros moradores ouvidos pela reportagem do UOL se mostraram mais céticos em relação à eficácia da ação. "Isso aqui é só um remédio paliativo. Se amanhã eles (Forças Armadas) forem embora, a situação vai voltar a ser o que era antes", disse uma moradora do Morro do Final Feliz.
Todos os moradores e veículos que deixavam a região eram revistados por militares. As forças de segurança buscavam armas e drogas escondidas.
Nos principais os ao Chapadão, a reportagem encontrou dúzias de barricadas. Os militares devem usar tratores e escavadeiras para começar a removê-las ao longo do dia. As barricadas são feitas com pedaços de metal, pneus cheia de cimento, móveis velhos e lixo.
ID: {{comments.info.id}}
URL: {{comments.info.url}}
Ocorreu um erro ao carregar os comentários.
Por favor, tente novamente mais tarde.
{{comments.total}} Comentário
{{comments.total}} Comentários
Seja o primeiro a comentar
Essa discussão está encerrada
Não é possivel enviar novos comentários.
Essa área é exclusiva para você, , ler e comentar.
Só s do UOL podem comentar
Ainda não é ? Assine já.
Se você já é do UOL, faça seu .
O autor da mensagem, e não o UOL, é o responsável pelo comentário. Reserve um tempo para ler as Regras de Uso para comentários.