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

Jamil Chade

REPORTAGEM

Texto que relata acontecimentos, baseado em fatos e dados observados ou verificados diretamente pelo jornalista ou obtidos pelo o a fontes jornalísticas reconhecidas e confiáveis.

Sem alinhamentos automáticos, Lula se reunirá com China e EUA

Lula fala em microfone e bandeira do Brasil aparece ao fundo - Divulgação
Lula fala em microfone e bandeira do Brasil aparece ao fundo Imagem: Divulgação

Colunista do UOL

15/11/2022 10h40

Receba os novos posts desta coluna no seu e-mail

Email inválido

Num gesto que mostra o equilíbrio no posicionamento do Brasil no cenário internacional, o presidente eleito Luiz Inácio Lula da Silva se reúne durante a Cúpula do Clima (COP27) nesta terça-feira com Xie Zhen Hua, o Alto Representante Chinês para o Clima. O encontro ocorre no mesmo dia em que Lula estará com John Kerry, o enviado de Joe Biden.

Ao manter o diálogo com as duas potências, Lula quer ainda dar um sinal claro de que não haverá um alinhamento automático nem com a Casa Branca e nem com Pequim. Americanos e chineses vivem um momento de tensão, com uma crise que muitos temem que poderá bloquear negociações em diversos setores, inclusive nos debates sobre meio ambiente.

No debate ambiental, os chineses insistem que as exigências colocadas sobre os países emergentes não podem ser as mesmas daquelas estabelecidas sobre as economias que, por séculos, contribuíram com emissões de CO2.

Já os países ricos alertam que, sem um compromisso ambicioso por parte da China em cortes de emissões, não há como atingir as metas de frear o aquecimento do planeta. Hoje, os chineses estão entre os líderes entre os maiores emissores do mundo.

Para observadores, o fato de Lula encontrar no mesmo dia americanos e chineses manda um sinal de que o Brasil quer ouvir todos os lados, sem um alinhamento automático.

Alguns dos arquitetos da nova política externa brasileira acreditam que o Brasil deve trabalhar no cenário internacional para ampliar os polos de poder, e frear qualquer tentativa de ver o estabelecimento de um mundo multipolar.

É considerado estratégico, portanto, reforçar a ideia do multilateralismo e alianças que possam ampliar os processos democráticos na tomada de decisão no mundo.

No caso específico da China, o interesse do Brasil é o de ampliar a cooperação com seu maior parceiro comercial. Mas não se limitar apenas a vender matéria-prima. O diálogo com Pequim, portanto, a também por compromissos em outros setores, entre eles o ambiental.

No caso de Kerry, o encontro é reservado, mas o tom do brasileiro será o de dar garantias ao americano de que seu governo colocará a questão ambiental no centro da estratégia de politica externa, além de dar sinalizações de que recursos serão colocados para reerguer órgãos ambientais no Brasil. Lula, porém, também leva um discurso para a COP27 de que tal mudança não significa abrir mão da soberania nacional e que todos os projetos de cooperação serão feitos com a liderança do governo brasileiro quando o assunto for a Amazônia.

Do lado americano, a Casa Branca insiste que quer estabelecer um novo capítulo de cooperação com o Brasil, depois de anos turbulentos com Bolsonaro. Mas vai querer ver, do lado brasileiro, compromissos e metas reais de redução do desmatamento.

O tom, porém, será o de que os dois países querem "reiniciar" a relação bilateral, agora sob nova lógica.