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

Jeff Machado: como chips de cães foram cruciais para achar ator assassinado

Jeff Machado tinha oito cachorros de raça; abandono dos animais deu pistas sobre desaparecimento - Reprodução/Instagram
Jeff Machado tinha oito cachorros de raça; abandono dos animais deu pistas sobre desaparecimento Imagem: Reprodução/Instagram

Marcella Duarte

De Tilt, em São Paulo (SP)

20/06/2023 04h00Atualizada em 20/06/2023 13h31

Pequenos e invisíveis dispositivos eletrônicos foram fundamentais não só para confirmar o desaparecimento do ator Jeff Machado, mas para ajudar a localizar seu corpo, após ser assassinado no Rio de Janeiro aos 44 anos. Este foi o papel dos microchips dos cachorros do ator de "Mulheres Apaixonadas", "Vai na Fé" e "Terra e Paixão" (TV Globo).

Ele desapareceu em janeiro, mas sua família, em Santa Catarina, continuou recebendo mensagens de WhatsApp por alguns dias. Enviadas por um dos criminosos que se ava por ele para acobertar o crime, afirmavam que Jeff estava na cidade de São Paulo.

Mas os assassinos não contavam com um detalhe: Jeff era muito apegado a seus oito cães da raça Setter, que foram sendo encontrados, um a um, vagando por bairros da zona oeste do Rio, região onde ele morava.

Acionada pelas pessoas que encontraram os primeiros cães, a ONG Indefesos, de proteção animal, buscou localizar os tutores dos animais. A ideia inicial era responsabilizá-los por abandono e maus-tratos.

A história ganhou novos contornos à medida que mais cães, de uma raça peculiar e cara, eram achados nas redondezas. No fim das contas, sete dos oito bichinhos de Jeff foram localizados — dois morreram e um permanece desaparecido.

Desvendando o crime

Após encontrar os quatro primeiros Setters, a Indefesos ou os números dos chips. Depois, consultou os códigos em um banco de dados que reúne informações de cães Setters no Brasil e descobriu que pertenciam à mesma pessoa: Jeff Machado.

A ONG entrou em contato pelo celular cadastrado para pedir providências. Assim como ocorria com os familiares a essa altura, recebeu estranhas respostas, apenas por texto.

"O [suposto] tutor nos informou que precisou viajar a trabalho e que deixou os cães com uma amiga, que teria deixado os cães fugirem", disse a ONG em uma postagem nas redes sociais. Ao saber, pelas redes sociais e por amigos do ator, que ele tinha mais quatro animais, a Indefesos começou a buscar ativamente por eles na região.

Quando a ONG insistiu junto à tal amiga sobre o que havia acontecido, ela disse que Jeff já estava planejando abandonar os cães. Mas a família e os reais amigos sabiam que o ator jamais faria isso. A partir daí, tiveram certeza de que era outra pessoa falando com eles pelo WhatsApp.

Como os cachorros foram encontrados em diferentes pontos da zona oeste da cidade, ficou claro que, seja o que tinha acontecido, Jeff continuava por lá —ou seja, não estava em São Paulo, como as mensagens diziam, e nem em um sítio na região de Jacarepaguá, onde a falsa amiga dizia estar. Isso foi fundamental para a polícia direcionar e intensificar as buscas.

Em maio, quatro meses após o desaparecimento do ator, a polícia achou os restos mortais de Jeff em um baú enterrado em uma casa no bairro de Campo Grande. O assassinato teria acontecido em 23 de janeiro e estão envolvidos o produtor de TV Bruno de Souza Rodrigues e o garoto de programa Jeander Vinícius, ambos presos temporariamente.

Como funciona o chip?

O microchip não é um GPS ou rastreador. Ainda que não forneça a localização do animal em tempo real, é essencial para encontrar o tutor de um bicho perdido, para responsabilizar quem abandona animais e até para descobrir casos de roubo.

Ele é como uma versão digital da plaquinha de identificação da coleira. Ele carrega um código, que revela informações como:

  • nome do animal;
  • nome do tutor;
  • endereço;
  • telefone para contato.

Do tamanho de um grão de arroz, o microchip é implantado com um seringa especial sob a pele de cães e gatos, na altura da nuca. É um procedimento rápido e simples, como tomar uma vacina. Hoje há também nanochips, ainda menores.

Implante de microchip - Getty Images/iStockphoto - Getty Images/iStockphoto
Implante de microchip
Imagem: Getty Images/iStockphoto

Após ser colocado, não precisa de qualquer manutenção. Ele não possui bateria e é ativado apenas quando um leitor específico, encontrado em clínicas veterinárias e órgãos das prefeituras, é aproximado.

O pequeno dispositivo eletrônico usa a tecnologia sem fio NFC (Near Field Communication, ou comunicação por campo de proximidade). É a mesma que permite:

  • troca de arquivos entre celulares próximos (como o Nearby Share, do Google);
  • pagamento por aproximação, seja quando a operação é feita por cartão físico ou por meio de smartphone relógios inteligentes;
  • recarga de cartões de transporte;
  • dispositivos de rastreamento, como a AirTag, da Apple;
  • abertura de fechaduras inteligentes usando tags;
  • crachás de o em algumas empresas;
  • controle de aporte (os brasileiros emitidos desde 2010 possuem chip)

Os cachorros

Jeff Machado tinha oito cães da raça Setter - Reprodução/Instagram - Reprodução/Instagram
Jeff Machado tinha oito cães da raça Setter, todos com nomes de artistas brasileiros
Imagem: Reprodução/Instagram

Batizados em homenagem a músicos da MPB, todos possuíam microchip. Veja a cronologia dos resgates:

  • 30/1 - Cazuza, em Santa Cruz
  • 31/1 - Vinícius de Moraes, em Santa Cruz
  • 1/2 - Nando Reis e Tim Maia, em Santa Cruz
  • 3/2 - Elis Regina e Rita Lee, em Paciência; Rita morreu atropelada
  • 4/2 - Caetano Veloso, em Campo Grande (mesmo bairro onde foi achado o corpo de Jeff); morreu no dia seguinte
  • Gilberto Gil, o oitavo, nunca foi encontrado