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

Datena visita área de tragédia em SP, cai de bunda na lama e fica atolado

Datena caiu em lamaçal no litoral norte de São Paulo - Reprodução
Datena caiu em lamaçal no litoral norte de São Paulo Imagem: Reprodução

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

21/02/2023 20h43

O apresentador José Luiz Datena entrou ao vivo no Brasil Urgente de hoje (21) direto do litoral norte de São Paulo, que foi atingido por fortes temporais nos últimos dias, mas acabou tombando e caindo de bunda no lamaçal.

Após cair, Datena disse que "foi mais ou menos assim" que os moradores da região ficaram após as fortes chuvas que atingiram a região e provocaram uma tragédia com pelo menos 46 pessoas mortas e outras dezenas de desaparecidos.

"Para você ter uma base, foi mais ou menos assim que as famílias e pessoas estiveram. O deslizamento dessa terra dura. É uma massa de Terra que você fica preso. Eu imagino o desespero dessas pessoas, para sair dessa massa de lama. Meu Deus. E foi assim que as pessoas morreram. A maioria morreu assim" disse o apresentador.

Emocionado, Datena disse que a área afetada pela tragédia se tornou uma espécie de areia movediça, que praticamente impossibilita as pessoas de se locomoverem.

"Eu estou aqui, imaginando a agonia dessas pessoas tentando sair dessa tumba armada pela natureza. É impossível. No desespero, quando a lama vem, é impossível sair daqui. Imagine, crianças e mulheres. As pessoas de idade. É uma espécie de areia movediça" finalizou.

Tragédia deixou mortos e desaparecidos. O governador Tarcísio de Freitas confirmou nesta manhã, em entrevista ao Bom dia Brasil, 44 mortes causadas pelos temporais que atingiram o litoral norte paulista no último fim de semana. À tarde, o número de vítimas foi atualizado pelo governo: foram confirmadas 46 mortes, sendo 45 em São Sebastião e uma em Ubatuba.

Os desaparecidos, segundo o governador, somam entre 30 e 40 pessoas. Os trabalhos de busca e resgate foram reforçados com a ampliação do número de profissionais nas equipes. Na tarde de hoje, três crianças foram resgatadas com vida em São Sebastião e as operações de resgate continuam.