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

Após ataques, 3,9 mil alunos ficam sem aula e favela continua sem luz no RJ

Policiamento é reforçado após o comandante da UPP de Manguinhos, Gabriel Toledo, ser baleado - Ale Silva/Futura Press/Estadão Conteúdo
Policiamento é reforçado após o comandante da UPP de Manguinhos, Gabriel Toledo, ser baleado Imagem: Ale Silva/Futura Press/Estadão Conteúdo

Do UOL

21/03/2014 10h22

Quatro escolas municipais, duas creches e um EDI (Espaço de Desenvolvimento Infantil) estão sem atendimento nesta sexta-feira (21) na região da favela de Manguinhos, na zona norte do Rio de Janeiro, por conta dos ataques que a UPP (Unidade de Polícia Pacificadora) da comunidade sofreu na noite de quinta (20).

Segundo a Secretaria Municipal de Educação, as unidades atendem 3.993 alunos, e o conteúdo perdido será reposto. Parte da comunidade segue com o fornecimento de energia interrompido após criminosos atearem fogo na base da UPP.

Técnicos da Light trabalham para reparar todos os danos à rede elétrica causados pelo conflito, realizar os reparos necessários e restabelecer gradativamente o fornecimento de energia. Um primeiro trecho da comunidade já foi normalizado.

Um helicóptero blindado da polícia sobrevoa a região que também teve o comandante da UPP, capitão Gabriel Toledo, baleado em ataque de traficantes. Ele segue internado em observação no Hospital Central da Polícia.

Ajuda federal

O governador do Rio, Sérgio Cabral (PMDB), anunciou que vai solicitar o envio de tropas federais ao Estado após três UPPs (Unidades de Polícia Pacificadora) sofrerem os ataques. Além de Manguinhos, foram atacadas também as UPPs Camarista-Méier e do Alemão. Cabral se reuniu com o gabinete de crise e ligou para Dilma por volta das 23h da quinta.

$escape.getH()uolbr_geraModulos($escape.getQ()embed-foto$escape.getQ(),$escape.getQ()/2014/dados-de-criminalidade-no-estado-do-rio---acumulado-2013-1395175818590.vm$escape.getQ())

"Estou indo nesta sexta, às 11h, a Brasília me encontrar com a presidente Dilma Rousseff e os ministros das pastas afins para pedir ajuda", disse o governo em nota. Também acompanham ele o vice-governador, Luiz Fernando Pezão (PMDB), o secretário de Segurança, José Mariano Beltrame, e representantes das polícias civil e militar. Cabral não adiantou que tropas e para quais comunidades vai solicitar o auxílio.

Beltrame disse que "o nosso plano de resposta é todo o Batalhão de Operações Policiais Especiais, a Coordenadoria de Recursos Especiais, o Choque, os batalhões da área e a Polícia Civil. Estamos todos de prontidão, com folgas diminuídas, ocupando espaços na cidade para evitar que haja qualquer tipo de ameaça ao cidadão carioca. Nós estamos com força total nas ruas do Rio".

Capitão é segundo oficial baleado no mês

Ataques de criminosos a policiais e sedes de UPPs têm se tornado cada vez mais frequentes. Toledo foi o segundo oficial de UPP baleado neste mês. No dia 13, o subcomandante da UPP da Vila Cruzeiro, Leidson Alves, de 27 anos, morreu baleado na testa, no Parque Proletário, na Penha (zona norte). Desde que as UPPs começaram a ser implantadas, em 2008, 11 policiais que atuavam nessas unidades foram mortos.