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

Piadas 'duras' sobre Will Smith foram cortadas do Oscar, diz produtora

Na apresentação do 95º Oscar, o comediante Jimmy Kimmel não deixou o assunto de fora - Divulgação/Oscar
Na apresentação do 95º Oscar, o comediante Jimmy Kimmel não deixou o assunto de fora Imagem: Divulgação/Oscar

Colaboração para o Splash, em Belo Horizonte

14/03/2023 11h30

Molly McNearney, produtora do Oscar, revelou que certas piadas consideradas mais "duras" sobre Will Smith foram cortadas da cerimônia ocorrida no domingo (12). Um ano depois que o ator deu um tapa em Chris Rock no palco, quando o humorista fez uma piada sobre a esposa de Smith, Jada Pinkett Smith.

Na apresentação do 95º Oscar, o comediante Jimmy Kimmel não deixou o assunto de fora, mas as piadas foram brandas.

"Não sei dizer quantas piadas de Will Smith tivemos e depois nos livramos", disse Molly, que é casada com o apresentador do Oscar.

Ela justificou a decisão em entrevista à Variety.

"Não queríamos recordar tudo sobre o ano ado. Certamente houve algumas piadas que foram mais difíceis, mas não achamos que era nosso papel fazer isso. Esse deveria ser Chris Rock, não nós", disse Molly.

Mas ela garante que o casal não quis ignorar o incidente completamente.

"Gostamos muito da ideia de tirar sarro da reação a isso no ano ado. Acho que ainda estamos um pouco chocados com a forma como isso aconteceu e como, depois de assistir a essa violência, todos tiveram que assistir a um discurso de aceitação", completou.

Molly se referiu ao momento em que Smith subiu novamente ao palco, após estapear Chris Rock, para receber o troféu na categoria de Melhor Ator por seu papel em King Richard em "King Richard: Criando Campeãs". Ele realizou um discurso emocionado, mas não se desculpou pela atitude.

Kimmel brincou durante seu monólogo de abertura na noite de domingo.

"Sabemos que esta é uma noite especial para você. Queremos que você se divirta. Queremos que você se sinta seguro. E o mais importante, queremos que eu me sinta seguro. Portanto, temos regras rígidas políticas em vigor. Se alguém neste teatro cometer um ato de violência em qualquer ponto durante o show, você receberá o Oscar de Melhor Ator e terá permissão para fazer um discurso de 19 minutos", começou.

O comediante também brincou com outros artistas que estavam presentes no ano ado, quando o infame tapa aconteceu e fez referências aos seus trabalhos, como o personagem Mandaloriano, de Pedro Pascal e Adonis Creed de Michael B. Jordan.