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

Esse conteúdo é antigo

Trump ameaça ataque a locais culturais do Irã e fala em 'grande retaliação'

Donald Trump, presidente dos Estados Unidos - Tom Brenner/Reuters
Donald Trump, presidente dos Estados Unidos Imagem: Tom Brenner/Reuters

Do UOL, em São Paulo

06/01/2020 08h12Atualizada em 08/01/2020 00h44

O presidente dos Estados Unidos, Donald Trump, manteve a ameaça de atacar locais culturais iranianos, alertando para uma "grande retaliação" se o Irã revidar pela morte de um de seus principais comandantes militares. O republicano prometeu ainda "atacar o Irã como eles nunca foram atacados antes" em caso de uma resposta à morte do general Qassim Suleimani.

Trump, falando a repórteres a bordo do Air Force One, também ameaçou impor sanções contra o Iraque, um importante aliado dos EUA, depois que o Parlamento iraquiano pediu que as tropas norte-americanas deixem o país. Trump e seus assessores têm defendido o ataque aéreo dos EUA que matou o comandante militar iraniano Qassim Suleimani, cuja morte aumentou as tensões na região.

O presidente norte-americano justificou o ataque que resultou na morte do general e de outras 8 pessoas dizendo que Suleimani estava planejando ações contra os EUA. Ele disse que está considerando divulgar os relatórios de inteligência que o levaram a ordenar o assassinato. Questionado sobre uma possível vingança do Irã, Trump disse: "Se isso acontecer, aconteceu. Se eles fizerem alguma coisa, haverá uma grande retaliação".

Trump declarou que os Estados Unidos têm 52 alvos iranianos, alguns "em um nível muito alto e importantes para o Irã e a cultura iraniana", se o Irã atingir quaisquer posições norte-americanas ou norte-americanos em retaliação pela morte de Soleimani.

Na noite de ontem, Trump voltou a ameaçar o país em caso de retaliação. No Twitter, ele declarou que se o Irã atacar os EUA "o que eu recomendo fortemente que eles não façam, eles serão atacados como nunca foram antes".

"Os Estados Unidos gastaram apenas dois trilhões de dólares em equipamento militar. Somos os maiores e de longe os MELHORES do mundo! Se o Irã atacar uma base americana, ou qualquer americano, enviaremos alguns desses novos equipamentos a eles ... e sem hesitação!", completou o republicano.

Ontem, o secretário de Estado dos EUA, Mike Pompeo, negou que Trump tivesse dito que atacaria locais culturais iranianos, mas o presidente o contradisse quando perguntado sobre o assunto. "Eles têm permissão para usar bombas na estrada e explodir nosso povo, e não podemos tocar em seus locais culturais? Não é assim que funciona", disse.

Atacar locais culturais com ação militar é considerado um crime de guerra sob o direito internacional, incluindo uma resolução do Conselho de Segurança da ONU apoiada pelo governo Trump em 2017 e a Convenção de Haia para a proteção de bens culturais, de 1954.

*(Com informações da Reuters)