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

Suspeito era amigo e ex-Globo: o que se sabe sobre o caso Jeff Machado

O ator Jeff Machado - Reprodução/Instagram
O ator Jeff Machado Imagem: Reprodução/Instagram

De Splash, em São Paulo

29/05/2023 09h17Atualizada em 29/05/2023 09h35

O corpo do ator Jeff Machado foi encontrado num baú em Campo Grande (RJ), na última segunda-feira (22).

O nome do principal suspeito pelo crime já foi divulgado: Bruno de Souza Rodrigues, um amigo de Jeff.

Veja a linha do tempo:

Jeff estava desaparecido há quatro meses. A família começou a suspeitar do sumiço no dia 27 de janeiro, e no dia 9 de fevereiro ele foi declarado desaparecido pela polícia.

Os restos mortais estavam em um baú que pertencia ao ator. O corpo foi encontrado na última segunda-feira (22), enterrado e concretado no chão de um imóvel em Campo Grande (RJ), região em que Jeff morava.

A polícia já concluiu que o ator não foi assassinado no local onde o corpo foi localizado. A informação foi confirmada a Splash por Jairo Magalhães, advogado da família do ator.

Um vídeo divulgado pela Polícia Civil do Rio de Janeiro mostra o momento exato em que o corpo do ator foi encontrado.

Cachorros ajudaram nas buscas

Os cachorros de Jeff Machado foram uma das peças-chave na investigação do desaparecimento do ator. Ele tinha oito cães de raça: um spitz alemão, um chow chow e seis setter. Desde que Jeff desapareceu, eles estavam abandonados na rua.

Na noite de 31 de janeiro, a ONG Indefesos recebeu o primeiro chamado. A instituição resgatou dois cães em Paciência (RJ) e, com um chip de identificação, concluiu que o dono era Jeff Machado.

No dia 6 de fevereiro, a ONG foi à polícia denunciar o abandono. Desde então, mais três cães haviam sido resgatados e uma havia sido encontrada atropelada. Três dias depois, Jeff foi declarado oficialmente desaparecido pela polícia.

Causa da morte

O corpo tinha um fio em torno do pescoço e os braços amarrados acima da cabeça. As condições apontavam para a possibilidade de estrangulamento como causa da morte. Apesar disso, segundo o laudo de necropsia, o estágio avançado de decomposição impede a definição exata da causa da morte.

À Splash, o advogado Jairo Magalhães, representante da família de Jeff, informou que um novo exame foi realizado para apuração mais detalhada para descoberta da causa da morte.

Novo resultado: a expectativa é que o novo laudo seja reado aos familiares de Jeff Machado nos próximos dias.

Suspeitos

Bruno de Souza Rodrigues, principal suspeito da morte, não agiu sozinho, segundo as investigações da polícia civil.

Segundo Cintia Hilsendeger, amiga de infância de Jeff, o ator achava que Bruno estava apaixonado por ele.

Ainda segundo a amiga, Jeff teria dado R$ 20 mil a Bruno sob a promessa de ganhar um papel em novela.

A gente acredita que a morte dele foi por causa disso, porque ele falou que ia colocar a boca no mundo. No fim, o Jeff pediu o dinheiro de volta e recebeu apenas R$ 2 mil. Ele não tinha noção de que eram estelionatos, porque ele achava que o cara estava apaixonadinho por ele. Cintia Hilsendeger ao jornal O Globo

Bruno trabalhou na Globo e foi demitido em 2018. Em comunicado, a emissora informou que forneceu à polícia os detalhes do desligamento do suspeito da empresa. Entretanto, a emissora não deu maiores detalhes à imprensa sobre por quanto tempo o acusado foi seu funcionário e o motivo para a demissão.