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

Pai de modelo morta em 'jogo erótico' avisa assassino: 'Vou te esperar'

Carol Maltesi foi morta com martelada em suposto jogo erótico na Itália - Reprodução/ Facebook/ Carol Angie Deborah Maltesi
Carol Maltesi foi morta com martelada em suposto jogo erótico na Itália Imagem: Reprodução/ Facebook/ Carol Angie Deborah Maltesi

Colaboração para Splash, em São Paulo

09/04/2022 09h33Atualizada em 09/04/2022 10h49

Fabio Maltesi, pai da modelo Carol Maltesi, morta em janeiro com um martelo após um suposto "jogo erótico" na Itália, declarou que irá aguardar o assassino de sua filha sair da cadeia.

Segundo a emissora italiana "RAI", o pai da modelo de 25 anos afirmou que o bancário Davide Fontana, que assumiu o assassinato de Carol Maltesi, não merece piedade.

Vou te esperar quando sair da prisão... Sem piedade para este monstro. Ele deixou um menino de seis anos sem a mãe,
Fabio Maltesi, pai da vítima

Ele ainda ressaltou que o criminoso é um "psicopata" e merece "apodrecer na cadeia" após matar, esquartejar e arremessar o corpo da modelo de um penhasco.

O crime

Mais conhecida como Charlotte Angie, Carol Maltesi foi morta em janeiro deste ano em um chocante caso de feminicídio na Itália, após um suposto "jogo erótico". Seu corpo, porém, foi encontrado apenas em março pela polícia e estava cortado em várias partes. De acordo com o tabloide inglês The Daily Star, a modelo, que fazia vídeos adultos para seu canal no OnlyFans, só foi reconhecida graças às tatuagens.

Mãe de um menino de seis anos, ela trabalhou como vendedora em uma loja de roupas e órios para sustentar o pequeno após se formar em design de moda, segundo o site italiano Affar Italiani. Carol saiu do último emprego em uma perfumaria quando na pandemia iniciou a carreira em plataformas de conteúdos adultos, conforme publicou o jornal italiano La Repubblica.

Ela se apresentava no Instagram como artista e modelo e, em 2020, publicou um vídeo por ocasião do Dia Mundial para a Eliminação da Violência Contra as Mulheres pedindo sororidade.

Veja os famosos 'só para maiores' que têm conta no OnlyFans