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

Príncipe herdeiro saudita falou em "usar uma bala" contra jornalista assassinado em outubro, diz NYT

Mohammed bin Salman virou líder da Arábia Saudita no ano ado - AFP
Mohammed bin Salman virou líder da Arábia Saudita no ano ado Imagem: AFP

08/02/2019 05h03

O príncipe herdeiro saudita, Mohammad bin Salman, afirmou em uma conversa que teve em 2017 que usaria "uma bala" contra o jornalista Jamal Khashoggi, se este não voltasse ao país e deixasse de criticar as autoridades da Arábia Saudita, informou na quinta-feira (7) o jornal "The New York Times".

Esta informação foi revelada horas depois que a relatora da ONU sobre a tortura, Agnes Callamard, assegurasse em Genebra que Khashoggi, colunista do jornal "The Washington Post", foi vítima de "um assassinato brutal e premeditado" que foi "planejado e cometido por funcionários da Arábia Saudita".

O jornalista foi assassinado por agentes sauditas, no dia 2 de outubro de 2018, dentro do consulado saudita em Istambul, na Turquia.

O "NYT", que cita ex-autoridades americanas e funcionários estrangeiros familiarizados dos relatórios de inteligência, assegura que agências de espionagem dos EUA interceptaram conversas do príncipe herdeiro.

Segundo estas fontes, em setembro de 2017, Bin Salman tratou com um assessor identificado como Turki Aldajil a situação de Khashoggi, que já vinha preocupando as autoridades do regime pelas suas crescentes críticas.

Na conversa, o príncipe disse que se ele não conseguiu convencer o jornalista a voltar para a Arábia Saudita havia que levá-lo outra vez à força, sempre de acordo com o "New York Times".

Bin Salman continuou assegurando que se, não retornasse mediante algum destes dois métodos, ele pessoalmente iria atras de Khashogi "com uma bala".

De acordo com analistas de inteligência não identificados citados pelo jornal, a frase Bin Salman não seria interpretada ao pé da letra, mas como "uma metáfora para enfatizar sua intenção de matar o jornalista se ele não voltasse para a Arábia Saudita".

A publicação desta informação coincide com a visita do ministro das Relações Exteriores sauditas, Adel al-Jubeir, aos Estados Unidos, onde se reuniu com o secretário de Estado americano, Mike Pompeo.

Durante a sua reunião, ambos destacaram a importância de continuar com a investigação sobre o assassinato do jornalista saudita de maneira "crível e transparente".