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

Estrela do OnlyFans sofre agressão sexual em frente a estádio na Inglaterra

Astrid Wett é torcedora do Chelsea e costuma publicar conteúdos com uniformes do clube - Arquivo pessoal/Twitter
Astrid Wett é torcedora do Chelsea e costuma publicar conteúdos com uniformes do clube Imagem: Arquivo pessoal/Twitter

Do UOL, em São Paulo

18/05/2022 14h18

Estrela do OnlyFans e torcedora do Chelsea, Astrid Wett foi assediada sexualmente em frente ao estádio de Wembley. Em um vídeo compartilhado em sua conta no Twitter, Astrid aparece entrevistando outra torcedora, quando um homem que está ando dá um tapa em seu bumbum. O caso aconteceu antes da final da Copa da Inglaterra entre Liverpool e Chelsea, no último sábado. O Liverpool bateu o Chelsea nos pênaltis e ficou com o título.

"Não queria ter que twittar isso, mas é totalmente inaceitável, isso é agressão sexual", escreveu ela na legenda, em que também marcou os perfis do Chelsea, pedindo que algo fosse feito.

E ela ainda teve que rebater comentários de que ela mereceu por causa da natureza do trabalho que faz. "Você só está chateada porque ele não pagou", escreveu um. "Você está feliz em mostrar seus seios, mas reclama que as pessoas sexualizem seu corpo", comentou outro internauta.

Em resposta, Wett disse que "se alguém diz que eu mereço isso por causa do que eu faço, você é parte do problema".

Em entrevista ao jornal britânico Daily Star, ela disse que era "absolutamente chocante e meio assustador" que as pessoas acreditassem que estava tudo bem ela ser agredida sexualmente por causa de seu trabalho OnlyFans.

"Essas pessoas também são parte do problema. Ninguém merece ser tocado assim, não importa o que você faça no trabalho. Embora eu seja modelo do OnlyFans, também crio vídeos do YouTube. Vídeos divertidos e divertidos que não se relacionam com meu trabalho no OnlyFans".

Ela explicou que naquele dia estava gravando justamente para a plataforma de vídeos. "Eu estava no meio de uma conversa quando um homem ou e deu um tapa na minha bunda completamente do nada. Não foi apenas um tapinha. É chocante. Eu não sei quem é esse homem, mas é assustador pensar que hoje em dia ainda existem caras que pensam que esse comportamento será tolerado."

A polícia investiga o caso, e o agressor ainda não foi identificado.