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

Após 14 anos, polícia acha suspeito de estupro graças a teste genético

Getty Images/iStockphoto
Imagem: Getty Images/iStockphoto

Marcos Bonfim

Colaboração para Tilt

01/07/2021 13h15

Um caso de estupro cometido há 14 anos na Flórida, nos Estados Unidos, teve um desfecho improvável. Tudo por "culpa" do próprio acusado do crime. Jared Vaughn só foi encontrado porque realizou no ado um exame de DNA para testes de genealogia.

Os resultados genéticos do acusado foram voluntariamente fornecidos para um banco de dados público, segundo reportagem do "The Washington Post.

Detetives de uma unidade de genealogia forense que revisavam o caso decidiram pesquisar bancos de dados de testes genealógicos de empresas como Family Tree e GEDMatch. Foi assim que chegaram à correspondência do DNA comparando os dados com amostras coletadas do acusado no período do crime, em 2007.

Após a identificação de Vaughn, agora com 44 anos, como possível suspeito, os policiais viajaram para West Virginia, onde ele reside atualmente, e realizaram um novo teste de DNA, que apresentou uma combinação de um em cada 700 bilhões de indivíduos.

O caso

De acordo com relatos da polícia, o estupro ocorreu em 2007, quando uma estudante da Universidade de Tampa, na Flórida, estava voltando para seu dormitório depois de participar do Festival Gasparilla Pirate, um importante evento na região.

Na ocasião, a vítima disse aos detetives que estava embriagada e poderia estar meio cambaleante, quando o suspeito se ofereceu para acompanhá-la até o dormitório e, ao chegar, cometeu a agressão sexual.

"Foram necessários 14 anos para a resolução deste caso, mas é algo que era importante para nós e era importante para a vítima obter algum encerramento neste caso", disse Ruben Delgado, assistente de chefe de polícia de Tampa, na Flórida, à emissora "Fox 13", de Tampa.

Banco de dados

A Flórida foi o primeiro estado dos Estados Unidos a estabelecer uma unidade própria de genealogia forense, em 2018, exemplo acompanhado por outras regiões ao longo dos anos como a Califórnia e Utah.

Para Delgado, o desfecho desse crime reforça a importância desse tipo de esquadrão para a resolução de casos mais antigos.

Mark Brutnell, agente especial do Departamento de Polícia da Flórida, pediu às pessoas que permitam que o seu DNA seja ado pelas autoridades. "O nosso sucesso depende de informações encontradas em bancos de dados genealógicos públicos, onde os participantes - e isso é importante - devem habilitar a liberação de dados para cruzamentos pela polícia."

Uso de bancos de DNA ainda é polêmico

Apesar do bem-sucedido encerramento do caso, o uso do banco de dados de genealogia por autoridades é ainda um tema espinhoso. Especialistas que defendem o direito à privacidade têm se mostrado preocupados com a quantidade de informações que os órgãos de segurança podem ar a partir dos perfis de DNA armazenados.

Nessa situação em particular, o acusado submeteu as suas próprias amostras e aparentemente aceitou que elas poderiam ser usadas por terceiros — neste caso, a polícia.

Mas há também casos em que os suspeitos podem ser implicados em crimes depois que parentes disponibilizam suas próprias amostras, o que, de certa forma, coloca toda a família em uma espécie de vigilância genética sem consentimento.

Em meio às discussões, alguns estados, incluindo Maryland, nos EUA, optaram por proibir o uso desses bancos de dados para solucionar crimes não violentos menores, embora muitos casos antigos de assassinatos e agressões sexuais tenham sido concluídos nos últimos anos usando amostras de DNA fornecidas voluntariamente por empresas privadas.