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

PR: Oposição critica relatório sobre morte; bolsonaristas querem desculpas

Marcelo Arruda, petista morto por bolsonarista em Foz do Iguaçu - Reprodução/Redes sociais
Marcelo Arruda, petista morto por bolsonarista em Foz do Iguaçu Imagem: Reprodução/Redes sociais

Do UOL, em São Paulo

15/07/2022 15h43Atualizada em 16/07/2022 09h06

Políticos da oposição e bolsonaristas comentaram a conclusão da Polícia Civil do Paraná de que não houve crime de ódio com motivação política no assassinato do guarda municipal Marcelo Arruda pelo policial penal Jorge José da Rocha Guaranho. O atirador foi indiciado por homicídio duplamente qualificado, por motivo torpe e por causar perigo a outras pessoas - a pena pode variar de 12 a 30 anos de prisão.

Os policiais se basearam em relato da esposa do assassino. A delegada Camila Cecconello, chefe da DHPP (Divisão de Homicídios e Proteção à Pessoa) e responsável pela investigação, afirmou que Guaranho "teria dito [à esposa]: 'isso não vai ficar assim, nós fomos humilhados. Eu vou retornar'".

O ex-presidente Luiz Inácio Lula da Silva (PT) disse que Marcelo é "vítima de uma violência que foi contra a democracia". O pré-candidato à presidência ressaltou que o guarda planejou uma festa de aniversário "em paz, com sua família".

A presidente do PT, deputada federal Gleisi Hoffmann (PT-PR), falou em "grande indignação" com o resultado do inquérito. Para ela, a conclusão da polícia segue a linha das opiniões do presidente Jair Bolsonaro (PL) e do vice-presidente Hamilton Mourão (Republicanos) e vão "contra a verdade dos fatos".

"As provas, que a própria polícia recolheu, mostram que o assassino foi até a festa de Marcelo de caso pensado, para agredir e ofender exclusivamente por motivação política", disse, em vídeo enviado à imprensa. Gleisi também defendeu que a investigação seja conduzida "na alçada da Justiça Federal".

A investigação concluiu que o atirador foi ao local por motivação política para "provocar" os participantes da festa, já que é apoiador do presidente Jair Bolsonaro (PL). No entanto, a Polícia Civil entendeu não haver provas suficientes para constatar que houve crime de ódio. Os advogados da vítima contestam a conclusão do inquérito, e vão pedir à Justiça do Paraná que determine que mais investigações sejam feitas para apurar o caso.

Pré-candidato do PSOL a deputado federal por São Paulo, Guilherme Boulos criticou a conclusão da Polícia Civil. Ele questionou quem irá "analisar a motivação política desses policiais".

O senador Fabiano Contarato (PT-ES) criticou a rapidez da investigação e disse que essa foi uma "conclusão estapafúrdia". Para o político, o inquérito "confronta fatos e evidências visíveis a olho nu".

"É lamentável que um delegado se preste a fazer o jogo bolsonarista, em detrimento de seus deveres", escreveu no Twitter.

Já o senador Flávio Bolsonaro (PL-RJ) repostou uma sequência escrita pelo ministro-chefe da Casa Civil, Ciro Nogueira (Progressistas). Na mensagem, o filho do presidente Bolsonaro e o ministro cobram da imprensa "esclarecimentos e pedidos de desculpa".

O deputado federal e filho do presidente, Eduardo Bolsonaro (PL-SP), também criticou os veículos de comunicação que, segundo ele, "correram para acusar um bolsonarista de ter assassinado um lulista por motivação política".

Outras reações

Crime por 'escalada da discussão', diz delegada

Questionada pelo UOL durante a coletiva, a delegada disse não ter feito o indiciamento por crime político por entender que não há comprovação de que o atirador pretendia impedir a vítima de exercer os seus direitos políticos.

"Para você enquadrar em crime político contra o Estado Democrático de Direito, tem alguns requisitos, como impedir ou dificultar a pessoa de exercer seus direitos políticos. Quando [Guaranho] chegou [ao local do crime], ele não tinha a intenção de efetuar os disparos. Esse acirramento da discussão fez com que o autor voltasse e praticasse o homicídio".

Embora afaste o crime de ódio, Cecconello reconhece que houve desavença política. Contudo, no entendimento dela, o crime ocorreu em decorrência da "escalada da discussão". "Parece algo que virou pessoal entre duas pessoas que discutiram por motivações políticas", disse.