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

Jovem denuncia perseguição e ameaças de homem que conheceu online

Homem, que descobriu endereço e até mesmo local de trabalho da jovem, alternava conversas entre ameaças e tentativas de chantagem emocional - Arquivo pessoal
Homem, que descobriu endereço e até mesmo local de trabalho da jovem, alternava conversas entre ameaças e tentativas de chantagem emocional Imagem: Arquivo pessoal

Do UOL, em São Paulo

17/02/2023 04h00Atualizada em 17/02/2023 14h01

Uma estudante de 23 anos procurou a polícia após ar quase um ano sendo virtualmente perseguida por um homem que conheceu nas redes sociais.

A rotina de ameaças foi iniciada ainda no mês de maio de 2022. E o terceiro —e mais recente— boletim de ocorrência sobre o caso foi registrado hoje, um dia após a jovem decidir compartilhar o assunto nas redes sociais.

Em menos de um dia, a história ultraou as 700 milhões de visualizações no Twitter.

Em entrevista ao UOL, a jovem contou que as primeiras investidas do suspeito ocorreram em maio de 2022 pelo Instagram. Ele ofereceu R$ 100 em troca de uma foto do pé dela. Após a "transação", ele continuou a procurar a garota.

"Pensava que ele era só uma pessoa solitária e continuei falando com ele, mas deixando claro que eu não queria nada. Eu nunca enviei absolutamente nenhuma foto íntima nem nada do gênero para ele. Ele continuava me mandando dinheiro mesmo após eu falar para ele parar de fazer isso, que não queria dinheiro dele, que eu só queria que ele parasse de me incomodar", afirma.

Incomodada, a jovem decidiu bloquear o contato dele.

"Foi aí que começou o inferno. Ele criou já diversas contas nas redes sociais. Eu bloqueava e ele criava novas. Foi aí que ele começou a me ameaçar, a falar que sabia onde eu morava, onde eu trabalhava, onde eu malhava, que sabia tudo de mim, que ele iria me sequestrar, me matar, me esquartejar, que ele iria fazer coisas inimagináveis comigo", recorda.

Suspeito tentou convencer jovem a desistir da denúncia após abertura de boletim de ocorrência - Arquivo pessoal - Arquivo pessoal
Suspeito tentou convencer jovem a desistir da denúncia após abertura de boletim de ocorrência
Imagem: Arquivo pessoal

As ameaças, registradas em prints e entregues à polícia pela jovem, variavam. Em alguns momentos, o suspeito mandava fotos de armas ou de um homem com uma faca. Em outros, ele pedia desculpas e dizia que só queria a atenção dela.

O homem também enviou para a jovem fotos do prédio em que ela trabalhava e o endereço dela, além de continuar fazendo transferências e enviando presentes por correio. Ao continuar sendo bloqueado, ele teria criado uma conta falsa com fotos dela em um site de prostituição.

"Comecei a receber mensagens de pessoas falando que tinham visto meu anúncio", conta.

Suspeito chegou a divulgar número da jovem em site de prostituição; segundo a vítima, ela precisou bloquear vários números após abordagens - Arquivo pessoal - Arquivo pessoal
Suspeito chegou a divulgar número da jovem em site de prostituição; segundo a vítima, ela precisou bloquear vários números após abordagens
Imagem: Arquivo pessoal

Laura conta que demorou a fazer a denúncia porque já tinha procurado a polícia no ano de 2019 para registro de um boletim de ocorrência e não queria ar pela mesma situação novamente.

"Foi horrível ter que vivenciar aquilo na delegacia. Fiquei enrolando, achando que ele estava somente falando e que não ia acontecer nada, mas a situação começou a escalonar e piorar em um nível que ele conseguiu travar meu iPhone, porque ele mandava tanta coisa, ficava tentando hackear minhas contas, meu celular começou a travar", recorda.

A jovem também demorou a expor o caso nas redes por saber que o assunto logo levantaria a opinião de terceiros no tribunal da internet.

Segundo vítima, tentativas de hackear contas dela chegaram a travar celular - Arquivo pessoal - Arquivo pessoal
Segundo vítima, tentativas de hackear contas dela chegaram a travar celular
Imagem: Arquivo pessoal

"Sei que pode ter julgamento pela questão do dinheiro, mas a questão é que eu não quero esse dinheiro. Devolverei tudo. Só deixo aqui porque ele também é uma prova", conta, sem detalhar o valor recebido.

Apesar de procurar a delegacia, a jovem não conseguiu uma medida protetiva contra o suspeito porque nunca teve um relacionamento com ele e nem é da mesma família do homem.

Agora, ela conta com a ajuda da defensoria pública para buscar essa medida por meios judiciais.

"Ele não fez nada fisicamente contra a minha pessoa, mas uma pessoa que coloca o meu número em um site de prostituição, que fala todas essas barbaridades, que já tem processo de ameaça nas costas, que já me mandou vídeo com uma faca? Ele pode ser capaz de em algum momento ir para os 'finalmentes', de, em um surto, chegar e fazer alguma coisa. Eu estou com muito medo", afirma.

O UOL tentou contato com o suspeito por pelo menos cinco números de telefone diferentes usados por ele para fazer as ameaças, assim como pelos emails criados para que ele se asse por ela, mas não recebeu retorno sobre o assunto até o momento.

A Polícia Civil também foi procurada para informar sobre o trâmite das investigações, mas não retornou até o momento.