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

Eliminatórias Europeias

Lewa marca, Polônia vence a Suécia de Ibra e vai à Copa do Mundo

Robert Lewandowski comemora gol da Polônia sobre a Suécia pelas Eliminatórias - Adam Nurkiewicz/Getty Images
Robert Lewandowski comemora gol da Polônia sobre a Suécia pelas Eliminatórias Imagem: Adam Nurkiewicz/Getty Images

Do UOL, em São Paulo

29/03/2022 17h42

A Polônia de Robert Lewandowski está classificada para a Copa do Mundo de 2022. Diante de sua torcida, a seleção polonesa venceu a Suécia de Ibrahimovic por 2 a 0, hoje (29), no Silasian Stadion, pela repescagem das Eliminatórias Europeias e carimbou o aporte para o Qatar.

Melhor do mundo, o capitão Lewandowski abriu o placar para a Polônia aos 4 minutos do segundo tempo, em cobrança de pênalti. Zielinski ampliou para os donos da casa 23 minutos mais tarde, ao aproveitar falha da defesa sueca.

Após avançar de fase na repescagem pela desclassificação da Rússia devido à guerra contra a Ucrânia, a Polônia estará na Copa do Mundo pela segunda vez consecutiva. No Mundial da Rússia, a seleção de Lewa parou ainda na primeira fase.

Lá e cá!

Em busca da sonhada vaga para a Copa do Mundo do Qatar, Polônia e Suécia superaram, juntas, 30 chances de ataque. Enquanto a Suécia, mesmo visitante, ditava as ações da partida, a Polônia apostava em um sistema defensivo compacto, ataques em velocidade e na presença de área de Lewandowski.

Sem luz!

O fim do primeiro tempo foi marcado por uma queda parcial de energia no Silasian Stadion. Aos 42 minutos, parte dos refletores se apagou, forçando uma breve paralisação. Mesmo sem a energia restabelecida, a arbitragem optou pelo prosseguimento da partida, parada apenas ao final da etapa inicial. O problema foi resolvido durante o intervalo.

Lewa abre o placar

Eleito o melhor jogador do mundo na última temporada, Robert Lewandowski colocou a Polônia na frente aos quatro minutos do segundo tempo. A arbitragem marcou pênalti após Karlstrom atropelar Krychowiak dentro da área. Lewa apenas esperou o goleiro Olsen escolher um canto para mandar a bola para o outro e abrir o placar para os donos da casa.

Pressão sueca

Atrás no placar, a Suécia se lançou ao ataque logo após sofrer o gol, mas esbarrou no sistema defensivo polonês. Empurrando os donos da casa para a sua área, a seleção sueca trocou es no campo de ataque, rondou a área adversária e viu o goleiro Szczesny salvar finalização de Forsberg aos 12 minutos do segundo tempo.

Zielinski amplia

Danielson se atrapalhou ao dominar a bola e a entregou para Zielinski. Livre, o polonês ficou cara a cara com o goleiro Olsen, finalizou no canto esquerdo e fez 2 a 0 para a Polônia.

Ibra entra no fim

Após acompanhar grande parte da partida diretamente do banco de reservas, o sueco Zlatan Ibrahimovic foi a campo aos 34 minutos do segundo tempo, com a Suécia já perdendo por 2 a 0.
Recuperado de uma lesão do tendão de Aquiles, Ibra entrou na vaga de Marcus Danielson, mas pouco ajudou sua seleção a diminuir a vantagem contra a Polônia.