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

Esse conteúdo é antigo

Entenda por que a matança de 1.400 golfinhos na Europa não é ilegal

Caça de golfinhos e baleias, como a desta foto em Torshavn, em 2019, é organizada pela própria comunidade - Getty Images
Caça de golfinhos e baleias, como a desta foto em Torshavn, em 2019, é organizada pela própria comunidade Imagem: Getty Images

Do UOL, em São Paulo

15/09/2021 19h00Atualizada em 15/09/2021 22h56

A matança de 1.400 golfinhos nas Ilhas Faroé, que virou centro de polêmica no início desta semana, não é considerada ilegal pela Justiça local, sob a justificativa de estar conectada às raízes culturais do território autônomo dinamarquês, em que os mamíferos eram caçados para consumo dos habitantes.

Apesar das imagens chocantes compartilhadas por militantes da causa animal, aqueles que defendem a prática afirmam que a "grindadráp", nome dado à caça, que tem como alvo principal baleias-piloto, é uma tradição carregada pelos feroicos desde o século 16.

Mas, apesar da carne dos animais ser direcionada aos moradores das ilhas, alguns locais item que a caça foi excessiva para atender apenas 53 mil habitantes, especialmente quando apenas 17% deles consomem o produto, segundo informações do canal Euronews.

Apesar do apego cultural, o governo das Ilhas ou a regulamentar a atividade nos últimos anos, exigindo dos interessados em participar da caça uma licença que atesta o preparo para sacrificar os animais rapidamente, evitando sofrimento.

Depois da matança no domingo (12), alguns ativistas denunciam que muitos dos caçadores não tinham essa autorização, detalhou a CNN Internacional.

Um dos supervisores da atividade, Heri Petersen, declarou ao site In.fo que poucos caçadores licenciados estavam envolvidos na atividade, o que levou muitos dos golfinhos a arem minutos sufocando próximo à beira da praia, o que não respeita as regras. A alegação foi negada pelos es locais, responsáveis por garantir o controle do número de animais caçados

"A caça foi organizada e realizada em conformidade com a legislação faronesa", afirmou Páll Nolsøe, porta-voz do governo das Ilhas, à CNN. "Não houve violações das leis ou das normas", completou, afirmando ainda que todos os envolvidos devem concluir um curso de caça de baleias-piloto, mas que a captura de golfinhos também é uma prática comum. Segundo dados oficiais, são cerca de 250 animais capturados ao ano, apesar de haver uma "grande flutuação" nesta quantia - o número de animais mortos no domingo (12) foi quase seis vezes maior.