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

Hebert Conceição nocauteia ucraniano e conquista o ouro em Tóquio

Adriano Wilkson

Do UOL, em Tóquio

07/08/2021 03h04

Parecia improvável. O ucraniano Oleksandr Khyzhniak, atual campeão europeu, dominou os dois primeiros rounds da final dos pesos médios contra Hebert Conceição. O brasileiro de 23 anos não encontrava espaço para jogar seu estilo de boxe, e a derrota parecia iminente. Até que o baiano encaixou um espetacular cruzado de esquerda e mandou o rival ao chão no terceiro round. E foi assim, por nocaute na Arena Kokugikan, que Hebert conquistou a sexta medalha de ouro do Brasil nos Jogos Olímpicos de Tóquio-2020.

É a segunda medalha do boxe brasileiro em Tóquio, mas a primeira de ouro. O peso pesado Abner Teixeira conquistou o bronze nesta sexta-feira. Ainda falta, porém, a decisão do ouro no peso leve feminino. Bia Ferreira é favorita contra a irlandesa Kellie Anne Harrington. O combate está marcado para este domingo (8), às 2h (de Brasília).

Como aconteceu

Khyzhniak tomou a iniciativa do combate desde os primeiros segundos. A estratégia do ucraniano era sufocar o brasileiro, enquanto mostrava aos juízes muita intensidade e um alto volume de golpes. Sem recuar nem dar espaço a Hebert, o cabeça de chave 1 seguiu mostrando mais intensidade e volume no segundo round, enquanto o brasileiro não conseguia achar espaços para impor seu estilo mais técnico.

Depois de perder por unanimidade os dois primeiros assaltos, Hebert adotou postura mais agressiva no terceiro round, tentando encaixar uppercuts, mas parecia que não teria sucesso. De repente, na primeira abertura dada por Khyzhniak, o baiano encaixou um potente cruzado de esquerda e mandou o oponente ao chão, decretando o fim da luta imediatamente.

Ao comemorar, Hebert se jogou ao solo e depois dançou diante das câmeras. Foi muito festejado pelos outros atletas da seleção de boxe, que acompanhavam da arquibancada e momentos antes pareciam resignados com a medalha de prata. Jornalistas e comentaristas que acompanhavam a luta reagiram com surpresa diante do desfecho inesperado do combate.

Esse foi um dos poucos nocautes registrados em Tóquio, já que eles são raros no boxe olímpico.

A caminhada

Cabeça de chave 3 do torneio olímpico na categoria dos médios (69 a 75kg), o brasileiro começou sua campanha em Tóquio já nas oitavas de final - segunda fase. Sua estreia foi contra o chinês Erbieke Tuoheta, e a vitória veio por decisão dividida dos juízes. Dos cinco oficiais, três deram vantagem ao brasileiro.

Em seguida, nas quartas de final, Hebert bateu o cazaque Abilkhan Amankul, também por decisão dos juízes e novamente por 3 a 2. Ao avançar, o baiano garantiu pelo menos a medalha de bronze, já que o boxe olímpico não tem disputa pelo terceiro lugar. Ao telefonar para seu mestre, Luiz Dórea, em Salvador, para comemorar o feito, Hebert levou uma bronca (leia aqui).

Nas semis, um triunfo menos apertado. O brasileiro bateu o russo Gleb Bakshi, cabeça 2 da chave dos médios, por 4 a 1 na decisão dos juízes. Na internet, o resultado foi visto como uma vingança em cima do Comitê Olímpico Russo porque aconteceu pouco depois da derrota da seleção masculina de vôlei. Faltava, então, apenas a final olímpica.