;(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();
})();
Mulher afegã dá à luz dentro de aeronave de evacuação dos EUA
21.ago.2021- Afegã é levada para o hospital após ter filha dentro de avião Imagem: Reprodução/Instagram/AirMobilityCmd
Do UOL, em São Paulo
22/08/2021 08h02
Uma afegã grávida deu à luz uma menina ontem dentro de um avião militar dos Estados Unidos após fugir de seu país.
Durante o voo, que partiu de uma base no Oriente Médio rumo à base aérea de Ramstein, na Alemanha, a mulher entrou em trabalho de parto e começou a ter complicações enquanto a aeronave estava em sua altitude de voo, devido à menor pressão do ar.
O Comando de Mobilidade Aérea dos Estados Unidos explicou no Twitter que o comandante da aeronave decidiu voar mais baixo para aumentar a pressão do ar na aeronave, o que ajudou a estabilizar e salvar a vida da mãe.
Medical personnel from the 86th Medical Group help an Afghan mother and family off a U.S. Air Force C-17, call sign Reach 828, moments after she delivered a child aboard the aircraft upon landing at Ramstein Air Base, , Aug. 21. (cont..) pic.twitter.com/wqR9dFlW1o
Assim que o avião pousou na base de Ramstein, os trabalhadores do 86º Grupo Médico da Força Aérea ajudaram no parto do bebê no compartimento de carga do avião. Mãe e bebê foram então transportados para um centro médico próximo, e estão em boas condições de saúde.
De acordo com a reportagem da Sky News, os soldados britânicos estão no aeroporto apoiando a evacuação do país. Um funcionário ouvido pelo correspondente Stuart Ramsay diz que as cenas vividas por eles ficarão marcadas até o fim de suas vidas.
"É terrível, mulheres estavam jogando seus bebês por cima do arame farpado, pedindo aos soldados que os pegassem, alguns ficaram presos no arame", disse o oficial, que não foi identificado.
Desde domingo, quando o Talibã tomou a capital afegã, cenas registram tentativas desesperadas da população de deixar o país.
Sete morrem esmagados ao tentarem chegar ao aeroporto
Sete afegãos morreram esmagados perto do aeroporto de Cabul, disse hoje o Ministério da Defesa britânico, que está pressionando para adiar o prazo dos EUA para a retirada das tropas do Afeganistão, para que mais pessoas possam ser evacuadas do país.
"Nossos mais sinceros votos às famílias dos sete civis afegãos que infelizmente morreram no meio da multidão em Cabul", disse um porta-voz do Ministério da Defesa em um comunicado.
"As condições no terreno continuam extremamente difíceis, mas estamos fazendo tudo para lidar com a situação da forma mais segura e protegida possível", acrescentou.
À medida que a situação piora perto do aeroporto de Cabul, o governo britânico pleiteia a prorrogação do prazo para a retirada das tropas americanas do Afeganistão.
ID: {{comments.info.id}}
URL: {{comments.info.url}}
Ocorreu um erro ao carregar os comentários.
Por favor, tente novamente mais tarde.
{{comments.total}} Comentário
{{comments.total}} Comentários
Seja o primeiro a comentar
Essa discussão está encerrada
Não é possivel enviar novos comentários.
Essa área é exclusiva para você, , ler e comentar.
Só s do UOL podem comentar
Ainda não é ? Assine já.
Se você já é do UOL, faça seu .
O autor da mensagem, e não o UOL, é o responsável pelo comentário. Reserve um tempo para ler as Regras de Uso para comentários.