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

Lula vence em Moscou, Genebra, Paris, Viena e Roma

Colunista do UOL

30/10/2022 14h17

Receba os novos posts desta coluna no seu e-mail

Email inválido

Concluída a votação em parte da Europa, o candidato Luiz Inácio Lula da Silva saiu vitorioso em diversas capitais e em praticamente todos os países do bloco.

Lula venceu na Áustria, Dinamarca, França, Holanda, Itália, Polônia, Suíça e Rússia, entre outros.

Em Paris, Lula ficou com 7885 votos, 82% do total. Bolsonaro somou apenas 1,6 mil, 17%. Segundo os boletins de urnas divulgados pelos consultados, em Roma o candidato do PT venceu com 1772, contra 1176 para o presidente.

Na Rússia, foram 46 votos para Lula, contra 23 para o presidente. Em Viena, Lula somou 961 votos, contra apenas 379 para Bolsonaro.

Já na Grécia, quem venceu foi Bolsonaro, com 242 votos, contra 193 para Lula.

No total, as urnas na Suíça deram uma vitória para Lula, com 5,5 mil votos. Bolsonaro somou 5038.

No caso específico de Genebra, o candidato do PT ficou com 2320. O presidente Jair Bolsonaro somou 2279 votos. A diferença foi de apenas 41 votos. No primeiro turno, Lula também tinha vencido, mas com 51 votos de diferença.

O resultado mostra uma inversão em comparação ao que ocorreu em 2018, quando Bolsonaro saiu com mais de 60% dos votos.

Marcado por uma tensão no primeiro turno, o processo eleitoral neste domingo exigiu da polícia suíça o deslocamento de uma dezena de forças de segurança. Em pelo menos duas ocasiões, os policiais pediram que os apoiadores de Bolsonaro fossem afastados. Em outro episódio, uma pessoa que ofendia os bolsonaristas sequer pode chegar perto do local de votação, sendo levado pelos policiais.

Ao tentar filmar a detenção do brasileiro, a reportagem do UOL teve seu celular confiscado pela polícia. O aparelho apenas foi devolvido depois de uma conversa do consulado brasileiro em Genebra com as autoridades suíças.

Errata: este conteúdo foi atualizado
Errata: em uma versão anterior, o texto dizia de forma incorreta que Lula tinha vencido na Grécia. O vencedor foi Bolsonaro e o erro já foi corrigido.