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

Mari Gonzalez se emociona ao relembrar cachorro morto: 'Muito difícil'

Mari Gonzalez se emocionou ao relembrar cão morto em tragédia - Reprodução/Instagram
Mari Gonzalez se emocionou ao relembrar cão morto em tragédia Imagem: Reprodução/Instagram

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

02/11/2021 16h52

Mari Gonzalez fez um desabafo emocionante ao falar sobre Marsh, seu cachorro, que morreu após ser atacado por um outro cão, da raça rottweiler, em maio ado. No vídeo, a influencer e ex-BBB não escondeu as lágrimas ao falar sobre o assunto.

"Não é fácil. Depois do que aconteceu, eu nunca mais vim falar nada aqui. Algumas vezes até pensei em comentar e falar com vocês, porque sempre recebo mensagem e perguntas. Como a gente se recuperou... Eu não estou preparada para falar. E toda vez eu fujo porque eu ainda não superei e nem sei se vou superar isso", começou ela.

A gente sente muita falta dele. A gente sempre pensa nele em todos os momentos. É muito difícil tocar no assunto, eu estou tocando, falando com vocês. Achamos importante seguir com as medidas cabíveis, para não acontecer com outras pessoas.

No entanto, disse que não pode falar sobre as medidas tomadas até agora contra os donos do animal agressor. "Eu não posso dar muitas informações. Mas lembrar o quanto é importante a responsabilidade de quem está conduzindo o animal. Assim como foi um cachorrinho, poderia ser uma criança, um adulto ou um idoso. A gente que está com o animal que temos responsabilidade, o animal não tem culpa. É importante lembrar para que não aconteça com outras pessoas", encerrou.

Marsh foi atacado durante um eio com Mari e Jonas Sulzbach. Na época, muito abatida, ela falou sobre o ocorrido.

Eu tô acabada porque você se foi, tá doendo tanto, só Deus pra me ajudar! Muitas coisas eu já entendo, mas pra mim ainda é difícil aceitar a perda. Eu te amo muito, filho, você me fez muito feliz, daria minha vida por você."
Mari Gonzalez no Instagram

Marsh estava eando com Jonas Sulzbach, marido de Mari, quando o ataque aconteceu. A sogra da ex-sister, Marlene Verruck, também estava presente no momento em que um rottweiler se soltou de sua coleira e avançou para cima do cachorrinho.

De acordo com Mari, Jonas e Bud (o outro cachorro do casal) tentaram separar os dois, sem sucesso. Marsh chegou a ser levado para o hospital veterinário, mas não resistiu aos ferimentos. "Obrigada por todos momentos, por ser meu melhor amigo e ter me acompanhado em toda essa caminhada. Nunca se esqueça do quanto eu te amo, Marsh", homenageou Mari.

Pouco tempo depois, Jonas Sulzbach abriu um boletim de ocorrência a respeito da morte do cachorro, da raça lulu da pomerânia. O modelo denunciou o dono do rotweiller responsável pelo ataque. "B.O. feito e já temos o endereço do dono do rottweiler. Uma tragédia dessas não pode acontecer e ficar por isso mesmo", destacou Jonas em publicação feita nos Stories do Instagram.