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

Manifestantes atiram em equipe da PRF em bloqueio de rodovia no PA; veja

Rafael Neves e e Carlos Madeiro

Do UOL, em São Paulo, colunista do UOL

07/11/2022 16h05Atualizada em 07/11/2022 19h28

Equipes da PRF (Polícia Rodoviária Federal) foram recebidas a tiros por manifestantes que bloqueiam um trecho da BR-163 em Novo Progresso, no sul do Pará, durante operação hoje para tentar desobstruir a via.

A ocorrência, registrada no final da manhã de hoje (7), deixou ao menos um agente ferido. Uma criança ou mal e precisou ser socorrida, mas já recebeu alta médica, segundo a corporação.

Imagens recebidas pelo UOL Notícias mostram as viaturas danificadas da PRF deixando o local em alta velocidade após serem recebidas a tiros, pedras, fogos e outros objetos. A cidade é a única que tem bloqueio de rodovia no estado hoje, segundo a PRF.

Nas imagens, é possível ouvir um manifestante comemorando que "o povo expulsou a polícia". "Agora é guerra", diz um deles.

Em outra imagem, um homem mostra ao menos sete cápsulas de tiro supostamente disparadas contra os policiais.

Na semana ada, quando já havia ordem judicial para desbloqueio da BR-163, a PM (Polícia Militar) do estado afastou um tenente que se recusou a retirar os manifestantes.

Como a cidade se comportou na eleição? Novo Progresso é um dos principais focos atuais de desmatamento e de queimadas na Amazônia. No segundo turno, o presidente Jair Bolsonaro (PL) teve 82,92% dos votos válidos no município, contra 17,08% do presidente eleito Luiz Inácio Lula da Silva (PT).

Novo Progresso também é a quinta cidade da Amazônia com mais desmatamento e queimadas em 2022, segundo dados do Inpe (Instituto Nacional de Pesquisas Espaciais). Somente neste ano foram 3.165 focos, ou seja, quase dez por dia.

Em 2019, a cidade foi destaque mundial quando fazendeiros locais combinaram incendiar várias áreas ao mesmo tempo, no episódio que ficou conhecido como "Dia do Fogo."

Por que rodovias têm sofrido interdições? Rodovias federais e estaduais têm sido fechadas pelo Brasil desde a noite do último dia 30 de outubro, data do segundo turno das eleições.

Durante a semana, mais de 300 trechos de estrada chegaram a ser paralisados. De acordo com a atualização mais recente da PRF, publicada às 15h37, ainda há 15 interdições —fechamentos parciais— de pistas e quatro bloqueios —fluxo totalmente interrompido.