;(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 chama Tebet de 'estepe' e Soraya de 'trambique' no cercadinho

Do UOL, em São Paulo

03/10/2022 08h08Atualizada em 03/10/2022 08h59

O presidente Jair Bolsonaro (PL) chamou as senadoras Simone Tebet (MDB) e Soraya Thronicke (União Brasil) de "estepe" e "trambique", em conversa com apoiadores no cercadinho do Palácio da Alvorada no final da noite de ontem, após o término da apuração das urnas no primeiro turno das eleições.

Bolsonaro se referiu às ex-presidenciáveis dessa forma ao comentar que a política é um "self-service", comparação que o chefe do Executivo fez em outras ocasiões para falar sobre as opções que eleitores têm para votar nas eleições.

"É aquela história de 'vamos mudar'. Mas quem entra no meu lugar? A política é um self-service. Vocês têm eu, Lula, Ciro, a 'estepe', a 'trambique', que é decoradora sabe daquilo, né? A decoradora. E acabou. Não adianta procurar. É o que está ali, pô", afirmou Bolsonaro.

Ao usar o termo self-service ("autosserviço", em português), que diz respeito a uma tradicional modalidade de consumo em bares e restaurantes (quando o próprio cliente se serve), Bolsonaro repete uma estratégia utilizada quatro anos antes: apresentar-se não como o "melhor candidato", e sim como a opção mais palatável ao gosto do eleitor.

Em uma entrevista ao programa Pânico, da Jovem Pan, no final de agosto, Bolsonaro usou essa mesma expressão. "Entendo que a eleição do dia 2 terá essa marca. Acho que o que tem na mesa é um self-service. A gente viu esses dias que tem pouca coisa para escolher", disse o presidente na ocasião.

Soraya foi chamada de 'traidora de Bolsonaro' em seção eleitoral

Neste domingo (2), enquanto era entrevistada em sua seção eleitoral, a senadora foi vaiada e chamada de "traidora de Bolsonaro" e "a maior traidora do MS". Soraya votou em Campo Grande, capital de Mato Grosso do Sul.

O vídeo do momento foi publicado pelo deputado federal Carlos Jordy (PL-RJ). Na legenda, Jordy escreveu: "Traidora sendo tratada como tal!".

Na gravação de meio minuto, uma mulher vestida com uma camiseta amarela —cor amplamente associada aos eleitores do presidente Jair Bolsonaro (PL)— a gritando na frente da candidata sendo entrevistada por diversos veículos. Em resposta, diversas pessoas em volta vaiam Thronicke e repetem "traidora".

"Gente, olha a traidora de MS aí. Olha, ganhou as eleições nas custas do Bolsonaro e virou a maior traidora do MS", berra a mulher, enquanto quem gravava responde: "Verdade".

Em 2018, quando foi eleita senadora, a candidata apoiava Jair Bolsonaro.

Autoplay: