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

Esse conteúdo é antigo

Governo de São Paulo afasta 14 PMs por agressão a pessoas rendidas

PMs foram flagrados espancando jovem rendido no Jaçanã, na zona norte de SP - Reprodução
PMs foram flagrados espancando jovem rendido no Jaçanã, na zona norte de SP Imagem: Reprodução

Agência Brasil

15/06/2020 17h48

A Secretaria de Segurança Pública do Estado de São Paulo informou hoje que afastou 14 policiais militares envolvidos na agressão de pessoas já rendidas em dois casos ocorridos no último final de semana, no Jaçanã, na capital paulista, e em Barueri (SP). Os casos vieram a público após a divulgação de vídeos, registrados por moradores, da ação policial.

As imagens feitas no Jaçanã, no último sábado (13), mostram policiais desferindo socos, chutes e golpes de cassetetes em um jovem, deitado, que não reage à agressão. Já na gravação feita em Barueri, na sexta-feira (12), policiais aparecem abordando um homem que estava sentado na calçada com o celular na mão. Ele se levanta e, sem mostrar qualquer reação, é atacado por um policial com um golpe no pescoço. Pessoas que avam pelo local e questionaram a ação dos agentes também foram agredidas com golpes de cassetete e derrubadas pelos policiais.

"Todas as circunstâncias relativas às ocorrências citadas são investigadas, na Capital, pelo 73º DP [Departamento de Polícia], em Barueri, pela delegacia do município, e pela Polícia Militar por meio de IPM [Inquérito Policial Militar]. Os 14 agentes envolvidos foram afastados do serviço operacional até a conclusão das investigações. A Corregedoria da PM acompanha de perto as investigações e o Ministério Público será notificado", disse a Secretaria de Segurança Pública em nota.

A pasta ressaltou que não compactua com desvios de conduta e apura com rigor todas as denúncias. "[As] ações são lamentáveis e não condizem com as práticas da Polícia Militar, que diariamente atende a mais de 80 mil chamados para proteger e salvar vidas".

O governador do estado de São Paulo, João Doria, também condenou a ação da polícia. "Absolutamente condenável as atitudes dos policiais militares que abusaram da força, em duas ações policiais, uma na capital e outra em Barueri. Os policiais envolvidos foram afastados e serão submetidos a inquérito. O Governo de São Paulo não compactua com qualquer tipo de violência", disse Doria nas suas redes sociais.

A Polícia Militar do estado de São Paulo e a Ouvidoria da Polícia também foram procuradas, mas ainda não se manifestaram.