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

STJ rejeita recurso de Bolsonaro e mantém condenação por ofensas a Maria do Rosário

9.dez.2014 - Em discurso no plenário da Câmara, o deputado Jair Bolsonaro (PP-RJ) disse que só não "estupraria" a colega Maria do Rosário (PT-RS), ex-ministra de Direitos Humanos, porque ela "não merecia" - Pedro Ladeira/Folhapress
9.dez.2014 - Em discurso no plenário da Câmara, o deputado Jair Bolsonaro (PP-RJ) disse que só não "estupraria" a colega Maria do Rosário (PT-RS), ex-ministra de Direitos Humanos, porque ela "não merecia" Imagem: Pedro Ladeira/Folhapress

Daniela Garcia

Do UOL, em São Paulo

16/11/2017 19h33Atualizada em 16/11/2017 19h41

A Terceira Turma do STJ (Superior Tribunal de Justiça) rejeitou o recurso da defesa do deputado Jair Bolsonaro (PSC-RJ) no qual ele foi condenado pelas ofensas dirigidas à também deputada Maria do Rosário (PT-RS). Na sessão de 24 de outubro, três ministros acompanharam o voto da relatora Nancy Andrighi. O resultado do julgamento dos embargos de declaração foi publicado na terça-feira ada (7).

Leia também:

Bolsonaro foi condenado pelo TJ-DF (Tribunal de Justiça do Distrito Federal), em 2015, a pagar indenização de R$ 10 mil à petista por danos morais, mas recorreu. O STJ confirmou a condenação do parlamentar em agosto deste ano.

De acordo com a decisão, Bolsonaro deveria se retratar publicamente em jornais, no Facebook e no Youtube.

Em 2014, o deputado afirmou que Maria do Rosário não merecia ser estuprada porque ele a considera "muito feia" e a petista não faz o "tipo" dele. Por essa mesma declaração, Bolsonaro é réu no STF (Supremo Tribunal Federal).

O parlamentar não quis se manifestar sobre a nova decisão do STJ.

Em uma publicação no Twitter, Maria do Rosário comemorou a rejeição dos embargos de declaração. Segundo ela, "as mulheres brasileiras venceram [este processo]". 

"Mero inconformismo", diz ministra

A decisão contra os embargos declaratórios foi tomada por unanimidade na turma. Acompanharam o voto da relatora os ministros Paulo de Tarso Sanseverino, Ricardo Villas Bôas Cueva e Moura Ribeiro. Impedido, o ministro Marco Aurélio Bellizze não participou do julgamento. 

No voto, a relatora afirmou que os embargos declaratórios são válidos apenas em situações de "obscuridade, contradição, omissão ou erro material" no processo. 

Na avaliação de Nancy, as questões apresentadas pela defesa de Bolsonaro não se encaixam nesses quesitos e apresentam "mero inconformismo" com a condenação. "Na verdade, revela-se nítida a pretensão do embargante de valer-se dos embargos de declaração para rediscutir matéria já decidida, fazendo com que prevaleça o seu entendimento sobre o tema, intuito esse incompatível com a natureza deste recurso", disse. 

A defesa afirmou, por exemplo, uma contradição quanto à decisão do STJ sobre a imunidade parlamentar. Segundo os advogados de Bolsonaro, o STF possui entendimento "acerca do manto absoluto da imunidade parlamentar material que acoberta as manifestações proferidas no interior do parlamento, mesmo que em entrevistas".

"(...) Considerando que as ofensas foram veiculadas por meio da imprensa, em manifestações que não guardam nenhuma relação com o exercício do mandato de Deputado Federal, afasta-se a aplicação da imunidade parlamentar prevista (...)", afirma a ministra.