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

Juiz condena Wassef a indenizar em R$ 20 mil Jean Wyllys por danos morais

Frederick Wassef  - Reprodução/Twitter/@Sarahteofilo
Frederick Wassef Imagem: Reprodução/Twitter/@Sarahteofilo

São Paulo

31/07/2022 16h14

O juiz Juarez Fernandes Cardoso, do 5º Juizado Especial Cível do Rio, em Copacabana, homologou decisão que condenou o advogado da família Bolsonaro, Frederick Wassef ao pagamento de indenização por danos morais no valor de R$ 20 mil ao ex-deputado Jean Wyllys. A Justiça considerou que Wassef caluniou Jean Wyllys ao tentar ligar o ex-parlamentar ao atentado sofrido pelo presidente Jair Bolsonaro durante a campanha presidencial de 2018.

"No caso em tela, o réu não se limitou à crítica política e, nem mesmo, demonstrou a veracidade de suas acusações. Verifica-se que o réu deu uma entrevista com o intuito de caluniar o Autor, sugerindo estar ele associado ao crime de tentativa de homicídio do Presidente da República, utilizaram o ardil de, supostamente haver investigação da Polícia Federal, tendo como única intenção causar danos ao autor", registrou a sentença condenatória.

A decisão homologada na segunda-feira, 25, ainda determina que o advogado da família Bolsonaro a fazer uma retratação pública, sob pena de multa única. Segundo o despacho, tal retratação deve se dar 'no mesmo canal' em que foi proferida a declaração que motivou o ajuizamento do processo - uma entrevista concedida à CNN Brasil em abril de 2020.

A avaliação do Juizado Especial Cível do Rio foi a de que as declarações de Wassef 'exorbitaram o limite de mera opinião pessoal, sendo capazes de ferir a honra, e, até mesmo, colocar em risco a segurança' de Jean Wyllys.

"É possível verificar que foram divulgadas informações, tentando vincular à imagem do Autor à prática de crime de tentativa de homicídio contra o atual Presidente da República, e, ainda que, sem lastro probatório ou indícios suficientes de autoria, vem também a incitar outras pessoas a compartilharem tais informações, difundindo o ódio em relação ao Autor", diz a sentença.

O documento diz que 'não há dúvidas de que Wassef extrapolou seu direito ao caluniar Jean Wyllys, sem qualquer base verossímil, de ter participado da tentativa de homicídio do Presidente da República'. Segundo a decisão, a conduta do advogado da família Bolsonaro 'não tem intuito de informação, nem de debater politicamente, apenas extrapola o limite e ofende a honra, a dignidade e a imagem' do ex-parlamentar.