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

Alicia Klein

OPINIÃO

Texto em que o autor apresenta e defende suas ideias e opiniões, a partir da interpretação de fatos e dados.

Primeiro árbitro FIFA declaradamente gay comenta protesto LGBTQIA+ no Qatar

Árbitro Igor Junio Benevenuto durante partida entre Botafogo e Paraná - Thiago Ribeiro/AGIF
Árbitro Igor Junio Benevenuto durante partida entre Botafogo e Paraná Imagem: Thiago Ribeiro/AGIF

28/11/2022 20h40

Receba os novos posts desta coluna no seu e-mail

Email inválido

Igor Junio Benevenuto chamou a atenção do mundo este ano, ao falar publicamente sobre sua orientação sexual. Em 2022, tornou-se o primeiro - e até agora único - árbitro da FIFA a se declarar gay, estando em atividade.

A coluna conversou com o juiz brasileiro horas após a invasão de campo na partida entre Portugal e Uruguai, pelo grupo H da Copa do Mundo. O italiano Mario Ferri correu pelo gramado carregando uma bandeira LGBTQIA+ e vestindo uma camiseta com os dizeres: "salve a Ucrânia" e "respeito pelas mulheres iranianas". Ele, agora sabe-se, é expert em interromper partidas do Mundial: fez o mesmo em 2010 e também em 2014.

Como você vê a realização da Copa do Mundo no Qatar?

"Eu vejo por dois vieses. Por um lado, acho extremamente ruim, pois um país, uma 'cultura' que oprime, desrespeita os direitos humanos, a liberdade das pessoas, que limita o ser humano em não poder ser ele mesmo, isso é estar condenado a uma prisão perpétua. Mas por outro lado, pensando de forma positiva, como a Copa do Mundo é o maior torneio de futebol do planeta e praticamente todos param para assistir, acho que está sendo muito interessante. Está dando voz, visibilidade, mostrando ao mundo as pessoas que se tornaram invisíveis, menosprezadas, humilhadas, massacradas, diminuídas por serem homossexuais, como também as mulheres, o racismo e várias outras formas de preconceito."

Veja só: se não fosse pela Copa no Qatar e todo esse problema que está acontecendo lá, todas as formas de preconceito e homofobia, possivelmente não estaria falando com você sobre esta situação e aríamos invisíveis mais uma vez."

Vale a pena mesmo diante de tantos problemas?

"Nunca se viu um debate tão forte, uma cobrança, um posicionamento de equipes, países em favor da causa LGBTQIA+. Isso mostra o quanto precisamos evoluir como sociedade e pessoas.

Também vejo que, se não fosse pelo Mundial, nunca os homossexuais que vivem naquele país teriam a mínima possibilidade de mudar essa cultura retrógrada, arcaica. Está se plantando uma semente por lá, e em um futuro breve poderemos colher frutos positivos para as pessoas homossexuais que vivem ali, como em outros países do mundo."

Você acredita que o ato de hoje surtirá algum efeito?

"Entendo que o protesto deu ainda mais visibilidade a tudo que se está ando. Participo de um grupo e hoje à tarde o assunto foi muito comentado. Todos se emocionaram com a atitude desse cidadão. Foi como todos estivessem ali gritando, por respeito aos direitos humanos, que somos livres, mostrando que podemos estar em qualquer lugar, que não somos pior nem melhor que ninguém. Somos humanos. Um sentimento de gratidão por aquela pessoa que arriscou a própria vida - até porque não sabemos que medidas irão tomar com ele - por uma causa maior.

Não sei se surtirá algum efeito, mas deu uma esperança."