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

Bolsonaro é recebido aos gritos de 'mito' em competição de jiu-jítsu no Rio

Marcela Lemos

Colaboração para o UOL, no Rio

18/11/2018 12h02

Sob gritos de 'mito, mito!', o presidente eleito Jair Bolsonaro (PSL) foi recebido por competidores e espectadores de uma competição de jiu-jítsu na manhã deste domingo (18), na zona oeste do Rio de Janeiro.

O evento é parte do Grand Slam Jiu-Jitsu, competição patrocinada pelo governo de Abu Dhabi, capital dos Emirados Árabes.

Veja também:

Durante a campanha, o presidente eleito recebeu apoio da Federação de Jiu-jítsu e chegou a ser agraciado com uma faixa preta pelo presidente da entidade, Robson Gracie.

Em algumas ocasiões, um apresentador árabe, diante das câmeras, tentava entrevistar Bolsonaro, mas era interrompido pelos gritos da torcida. Bolsonaro sorria. 

O presidente eleito entregou medalhas a participantes do torneio e ouviu a execução dos hinos nacionais do Brasil e dos Emirados Árabes.

Em conversa com os jornalistas, Bolsonaro voltou a criticar o acordo do programa Mais Médicos com o governo de Cuba ("não aceitamos escravos") e disse que apresentará uma proposta repor médicos assim que tomar posse, em janeiro.

Antes de chegar ao evento, como já se tornou rotina, Bolsonaro foi saudado, na saída de seu condomínio, por um grupo de cerca de 30 pessoas. Dessa vez, porém, permaneceu no carro. Não falou com os iradores nem posou para fotos.

Também neste domingo, em seu perfil no Twitter, Bolsonaro elogiou o papel do esporte na vida das pessoas.

No evento, Bolsonaro afirmou a jornalistas que a futura ministra da Agricultura, Tereza Cristina (DEM-MS), tem a sua confiança. Ele fez a afirmação ao ser perguntado sobre reportagem da Folha de S.Paulo que mostrou que ela ofereceu incentivos fiscais à JBS ao mesmo tempo em que mantinha negócios com a empresa.

Após a visita ao evento, Bolsonaro deverá ar a tarde em sua casa, no Rio. Na volta para a casa, ele parou em quiosques na orla da Barra da Tijuca, como fez no último domingo (11), e aproveitou para cumprimentar e tirar fotos com eleitores. Em casa, Jair Bolsonaro preparou um churrasco para o almoço.