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

Tragédia em Brumadinho

1 mês após tragédia em Brumadinho, ainda restam luto e lama

Varal com cartazes em ponto de busca do Corpo de Bombeiros - Roberio Fernandes/Estadão Conteúdo
Varal com cartazes em ponto de busca do Corpo de Bombeiros Imagem: Roberio Fernandes/Estadão Conteúdo

Giovana Girardi e Leonardo Augusto, especial para o Estado

Brumadinho

24/02/2019 08h47

"Para quem vamos dar presente no Dia dos Pais?", perguntam dois meninos angustiados com o futuro. "Pra mim", tenta aliviar a mãe. O diálogo se dá no Parque da Cachoeira, comunidade atingida pela lama da barragem da Vale que rompeu em Brumadinho (MG). Quem pergunta são os filhos de Flaviano Fialho, de 34 anos, funcionário da Vale, cujo corpo foi achado em 27 de janeiro, dois dias após a tragédia.

Com 9 e 6 anos, os garotos têm feito muitas perguntas à mãe, Fernanda Fialho, de 31 anos. A lembrança está em casa, mas também nos arredores. Uma língua formada pela onda de rejeitos, de aproximadamente 100 metros, pode ser vista no local. De um lado, casas que chegaram a ter meio metro de lama em suas paredes. No meio, residências cuja existência só se constata porque é possível ver seus telhados. Uma estrada interrompida surge do outro lado.

A tragédia de Brumadinho completa um mês amanhã, 25, com saldo de 177 mortos já identificados, a maior parte homens, e 133 desaparecidos, uma cidade com várias comunidades ainda tomadas pela lama e uma população desnorteada, tentando retomar sua vida, mas ainda sem saber para onde ir. A maior parte das vítimas já identificadas é homem (77%), pai, trabalhador da mineração. A Vale anunciou anteontem, 23, que manterá por um ano, ou até que seja fechado um acordo definitivo de indenização, o pagamento de 2/3 dos salários de todos os empregados próprios e terceiros que morreram.

Sobe para 171 o número de mortos em Brumadinho

Band Notí­cias

Enquanto isso, muitas famílias ainda aguardam um corpo para enterrar - busca cada vez mais complexa. "Como a onda destruiu a maior parte das estruturas, os corpos são espalhados ou lançados em distância muito grande ou às vezes até destruídos", afirma o tenente Pedro Aihara, porta-voz dos Bombeiros. Exames de DNA têm ajudado na identificação das vítimas.

E a lama avança pelo Rio Paraopeba. Anteontem, o governo de Minas estendeu a área onde não é recomendado usar a água sem tratamento. Antes, era até a cidade de Pará de Minas, a cerca de 75 quilômetros de Brumadinho. Agora, o veto vai até Pompéu, a 200 quilômetros.

'Como a dor vai ar?'

Luiz de Oliveira Silva faria 44 anos em 2 de fevereiro. Foi sepultado um dia antes, vítima do desastre em Brumadinho. Funcionário da Vale, era conhecido na cidade como Luiz Sorriso, por estar sempre disposto a ajudar quem precisasse. Membro de um grupo de voluntários da empresa, cruzava a cidade em um Brasília, reformando casas ou ajudando a arrecadar cestas básicas.

Há 14 anos trabalhando na Vale, voltava do almoço, em um ônibus, quando foi arrebatado pela onda de rejeitos. A empresa era a principal fonte de emprego da família - ali também trabalhavam seus dois irmãos, que escaparam.

"Além do meu irmão de sangue, perdi aquelas pessoas todas com quem trabalhei por quase 27 anos. A maioria está lá embaixo da lama ainda. Como essa dor vai ar?", indaga o irmão Geraldo, que estava no hospital em Belo Horizonte, recém-operado da coluna, quando soube do acidente. As informações são do jornal O Estado de S. Paulo.

Tragédia em Brumadinho