{"id":4673,"date":"2025-07-23T15:37:24","date_gmt":"2025-07-23T20:37:24","guid":{"rendered":"https:\/\/itishoemath.com\/?p=4575"},"modified":"2025-10-17T10:18:47","modified_gmt":"2025-10-17T15:18:47","slug":"cem-anos-de-desintegracao","status":"publish","type":"post","link":"https:\/\/itishoemath.com\/pt_pt\/cem-anos-de-desintegracao\/","title":{"rendered":"Cem anos de desintegra\u00e7\u00e3o [Com Adam Lane Smith]"},"content":{"rendered":"<div data-elementor-type=\"wp-post\" data-elementor-id=\"4673\" class=\"elementor elementor-4673\" data-elementor-post-type=\"post\">\n\t\t\t\t<div class=\"elementor-element elementor-element-97dd7a3 e-flex e-con-boxed e-con e-parent\" data-id=\"97dd7a3\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-ce1c704 elementor-widget elementor-widget-html\" data-id=\"ce1c704\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h4>A verdade surpreendente dos homens que julgam a promiscuidade<\/h4>\n\nO duplo padr\u00e3o em torno da vida sexual das mulheres n\u00e3o se trata apenas de \"a sociedade envergonhar as mulheres\". Hoe_math explica porque \u00e9 que os homens julgam a promiscuidade de forma diferente da lealdade, recorrendo \u00e0 psicologia, \u00e0 conversa real e \u00e0 l\u00f3gica fria.\n<br><br>\n+ Os homens t\u00eam a tend\u00eancia para ver o historial sexual de uma mulher como um ind\u00edcio da sua lealdade. Para muitos homens, mais parceiras significa mais risco de que ela n\u00e3o se comprometa ou n\u00e3o seja de confian\u00e7a.\n<br>\n+ N\u00e3o se trata de regras ou de \"dizer \u00e0s mulheres o que devem fazer\". As prefer\u00eancias e os limites s\u00e3o pessoais - ningu\u00e9m os pode decidir por si.\n<br>\n+ O comportamento passado \u00e9 importante. O historial de uma pessoa \u00e9, muitas vezes, a melhor prova de como ela se comportar\u00e1 no futuro. Se j\u00e1 fez batota, as probabilidades de o voltar a fazer s\u00e3o maiores.\n<br>\n+ A confian\u00e7a e o empenho n\u00e3o s\u00e3o apenas palavras - s\u00e3o demonstrados pelo que as pessoas fazem efetivamente, n\u00e3o pelo que dizem. Se houver um hiato entre as palavras e as ac\u00e7\u00f5es, a confian\u00e7a desvanece-se.\n<br><br>\nConclus\u00e3o: N\u00e3o se pode obrigar algu\u00e9m a mudar o que o atrai ou repele. Os padr\u00f5es honestos vencem.\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-8858505 elementor-widget elementor-widget-html\" data-id=\"8858505\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<p> <\/p>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4860eef elementor-widget elementor-widget-html\" data-id=\"4860eef\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<!-- CSV for video links and summaries -->\n<!-- Header: Not Translated -->\n<script id=\"video-data-header\" type=\"text\/plain\">\ntime|stop|tab|title|description\n<\/script>\n<div id=\"tp-translatable-strings2\"\n     style=\"color:#000101; background:#000101; width:100vw; height:auto; position:static; z-index:1; font-size:1px;\">\n<pre id=\"video-data-rows\">\n0|42|Double_Standard|Double Standard on Promiscuity|A conversa come\u00e7a por sublinhar o duplo padr\u00e3o na forma como a sociedade rotula as mulheres que t\u00eam muitos parceiros sexuais e as que s\u00e3o fi\u00e9is, questionando o porqu\u00ea destas diferen\u00e7as e procurando uma explica\u00e7\u00e3o \"parva\" do ponto de vista masculino.  \n44|109|Perspectivas|Entender Perspectivas e Preconceitos|O orador explica a import\u00e2ncia de ver as quest\u00f5es a partir de m\u00faltiplas perspectivas, referindo-se a uma ferramenta de agrega\u00e7\u00e3o de not\u00edcias e discutindo a forma como as plataformas de encontros e de emprego est\u00e3o a enfrentar desafios sociais mais amplos.  \n116|182|Limites|Limites emocionais e policiamento do pensamento|O conceito de limites emocionais \u00e9 introduzido, ilustrando como as pessoas n\u00e3o podem ditar os sentimentos ou prefer\u00eancias dos outros, e como tentar faz\u00ea-lo \u00e9 uma forma de policiamento do pensamento.  \n198|295|Analogia|Analogia do C\u00e3o para os Limites|Uma analogia utilizando a sujidade do c\u00e3o \u00e9 utilizada para mostrar como impor as nossas prefer\u00eancias aos outros \u00e9 ineficaz e muitas vezes contraproducente, refor\u00e7ando a import\u00e2ncia de respeitar os limites pessoais.  \n299|347|Associa\u00e7\u00f5es|Tri\u00e2ngulo de associa\u00e7\u00e3o e prefer\u00eancias|O \"tri\u00e2ngulo de associa\u00e7\u00e3o\" \u00e9 apresentado para explicar como as pessoas formam sentimentos e por que os homens podem n\u00e3o gostar de mulheres com muitos parceiros, enfatizando que tentar mudar as prefer\u00eancias de algu\u00e9m raramente funciona.  \n350|405|Comportamento|Padr\u00f5es de Comportamento e Confian\u00e7a|O orador discute como os comportamentos repetidos, como a mudan\u00e7a frequente de parceiros, sinalizam a\u00e7\u00f5es futuras, tornando dif\u00edcil para os homens confiarem em mulheres com um grande n\u00famero de parceiros.  \n413|551|Confiabilidade|Confian\u00e7a, Comportamento e Bandeiras Vermelhas|A confian\u00e7a est\u00e1 ligada ao comportamento observ\u00e1vel, com o argumento de que as escolhas passadas s\u00e3o indicadores de fiabilidade futura, e desprezar a import\u00e2ncia do comportamento passado \u00e9 visto como uma grande bandeira vermelha.  \n585|630|Racionaliza\u00e7\u00e3o|Racionaliza\u00e7\u00f5es e Auto-engano|A frase \"as minhas escolhas n\u00e3o importam\" \u00e9 criticada como uma t\u00e1tica de racionaliza\u00e7\u00e3o, com exemplos de como as a\u00e7\u00f5es e a auto-apresenta\u00e7\u00e3o influenciam a perce\u00e7\u00e3o e a confiabilidade.\n643|704|Manipula\u00e7\u00e3o|Manipula\u00e7\u00e3o, tenta\u00e7\u00e3o e material para a esposa|O orador alerta os homens mais jovens para os comportamentos manipuladores, argumentando que as ac\u00e7\u00f5es vis\u00edveis, como o vestu\u00e1rio e os h\u00e1bitos sociais, predizem as ac\u00e7\u00f5es futuras e a confian\u00e7a nas rela\u00e7\u00f5es.  \n709|752|Testando|Testando a Confian\u00e7a e a Consist\u00eancia|O orador explica como algumas mulheres podem testar os limites dos homens, pedindo-lhes que confiem mais nas palavras do que nas ac\u00e7\u00f5es, e alerta para o perigo de ignorar padr\u00f5es de comportamento claros.  \n769|789|An\u00fancio|An\u00fancio de uma Loja de Mercadorias|O epis\u00f3dio termina com um an\u00fancio alegre sobre uma nova loja de mercadorias, convidando a dar feedback sobre os designs.\n\n<\/pre>\n<\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-d08897e elementor-widget elementor-widget-html\" data-id=\"d08897e\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div id=\"tp-translatable-strings5\"\n     style=\"color:#000101; background:#000101; width:100vw; height:auto; position:static; z-index:1; font-size:1px;\">\n<span id=\"hiddenText\">\n0,0 Portanto, esta pergunta \u00e9 para os homens.  \n3.0 Presente.  \n4.0 Digamos que uma mulher dorme com cem homens.  \n8.0 Bruto.  \n9.0 Chamas-lhe...  \n12.0 O que quiseres dizer.  \n13.0 Talvez na internet. Na vida real, deixamos de responder.  \n17.0 Uma mulher dorme com o seu homem cem vezes.  \n20.0 Ela \u00e9 leal. Ela \u00e9 esposa. Ela \u00e9 o que voc\u00eas, esquisitos, quiserem dizer.  \n31.0 Qual \u00e9 a diferen\u00e7a?  \n34.0 Um deles \u00e9 um...  \n36.0 N\u00e3o sei. Tipo, voc\u00eas s\u00e3o assim t\u00e3o est\u00fapidos?  \n40.0 N\u00e3o sei. Quero ouvir isto do ponto de vista de um idiota.  \n44.0 Oh, bem, de um ponto de vista idiota, ser uma puta torna-te nojento. Mas tu j\u00e1 sabes que n\u00f3s pensamos assim.  \n52.0 Foi por isso que fizeste o teu v\u00eddeo.  \n53.0 Mal-entendidos como este est\u00e3o a tornar-se cada vez mais comuns.  \n55,0 Se queres perceber porqu\u00ea, tens de olhar para cada quest\u00e3o de todos os \u00e2ngulos.  \n58.0 \u00c9 assim que eu uso o Ground News, o patrocinador deste v\u00eddeo.  \n63.0 Se quiser acompanhar, clique no link ou veja aqui.  \n67.0 Quando nos queixamos tanto de um namoro como eu, muitas pessoas dizem coisas como \"problema de habilidade\", como se a culpa fosse nossa e o mundo n\u00e3o tivesse mudado \u00e0 nossa volta.  \n76,0 Mas este artigo sobre a reestrutura\u00e7\u00e3o do Bumble porque os utilizadores est\u00e3o fartos dele tem 129 fontes no Ground News e est\u00e3o todas no centro.  \n83,0 Por isso, \u00e9 f\u00e1cil ver que esta quest\u00e3o afecta toda a gente.  \n88,0 O Ground News mostra-lhe quem est\u00e1 a falar sobre cada hist\u00f3ria e para que lado se inclina politicamente, para que possa detetar preconceitos.  \n94,0 Pode percorrer os t\u00edtulos e ver rapidamente o que est\u00e3o a dizer.  \n97,0 E, neste caso, todos concordam. Os investidores t\u00eam d\u00favidas.  \n101.0 H\u00e1 muitos sinais de crise no sector. As plataformas de encontros e de procura de emprego est\u00e3o a passar por dificuldades financeiras.  \n107.0 \u00c9 a rapidez com que o Ground News nos d\u00e1 uma vis\u00e3o panor\u00e2mica, de que precisamos mais do que nunca.  \n111.0 Veja o quadro completo para 40% off. Digitalize aqui ou clique no link nos coment\u00e1rios.  \n116.0 N\u00e3o sei. Quero ouvi-lo do ponto de vista de um idiota.  \n119.0 Ent\u00e3o, deixa-me dar-te uma resposta menos idiota.  \n127.0 Quando algu\u00e9m n\u00e3o gosta de alguma coisa, \u00e9 o fim da conversa.  \n132.0 N\u00e3o sei quem te disse que \u00e9s respons\u00e1vel pelos meus sentimentos, mas n\u00e3o \u00e9 isso.  \n138.0 Fisicamente n\u00e3o funciona assim. A realidade n\u00e3o tem espa\u00e7o para isso.  \n144.0 Estes s\u00e3o desenhos de limites. Eu desenho isto vezes sem conta. Este foi o primeiro que fiz.  \n148.0 O amarelo \u00e9 um espa\u00e7o p\u00fablico em que ambos est\u00e3o. Isto \u00e9 um bar.  \n152.0 E assim, n\u00e3o h\u00e1 problema em o rapaz come\u00e7ar a falar com a rapariga. Mas quando ela diz: \"N\u00e3o, n\u00e3o fa\u00e7as mais isso\", est\u00e1 a exercer um novo limite.  \n159.0 E se ele continua a fazer isso, \u00e9 uma viola\u00e7\u00e3o do limite.  \n163.0 Portanto, o que est\u00e1 a fazer quando me diz o que deve estar nos meus sentimentos \u00e9... espere, tenho de criar um novo.  \n172.0 A\u00ed est\u00e1. Est\u00e1 a policiar o pensamento. Est\u00e1 a pegar nas suas percep\u00e7\u00f5es e sentimentos internos e a dizer-me que eles tamb\u00e9m devem ser meus, e n\u00e3o pode fazer isso.  \n182.0 Portanto, pode dizer \u00e0s pessoas para n\u00e3o lhe fazerem coisas m\u00e1s. Por exemplo, n\u00e3o ponham m\u00fasica quando estou a tentar dormir.  \n191,0 Mas n\u00e3o podes pegar nos teus sentimentos e dizer para parares de gostar de m\u00fasica.  \n198.0 Tu n\u00e3o \u00e9s a pol\u00edcia do que eu sinto.  \n201.0 N\u00e3o estou a dizer que s\u00e3o os rapazes que mandam e que fazemos as coisas como elas s\u00e3o. O que estou a dizer \u00e9 que \u00e9 Deus que manda.  \n210.0 Todos n\u00f3s gostamos do que gostamos e n\u00e3o gostamos do que n\u00e3o gostamos e temos de lidar com a forma como as coisas s\u00e3o.  \n214.0 Portanto, n\u00e3o se pode dizer aos homens que t\u00eam de gostar de mulheres prom\u00edscuas.  \n220,0 N\u00e3o \u00e9 assim que funciona.  \n222.0 Vou mostrar-vos porqu\u00ea. Imaginem que saem \u00e0 rua e v\u00e3o dar um passeio e v\u00eaem que algu\u00e9m n\u00e3o limpou o c\u00e3o.  \n229,0 Ent\u00e3o, a pessoa teve vontade de n\u00e3o limpar o seu interior e depois colocou isso no espa\u00e7o que voc\u00eas partilham.  \n238,0 Como \u00e9 que se sente em rela\u00e7\u00e3o a isso? Gostas? Provavelmente n\u00e3o.  \n241.0 Consegue mudar isso? Pode simplesmente dizer, \"Oh, \u00f3timo. Vou esfregar isto nos meus olhos.\" Claro que n\u00e3o.  \n248.0 \u00c9 assim que se sente.  \n251.0 E se eu fizesse um TikTok a chatear-te com isso?  \n254.0 Esta pergunta \u00e9 para as pessoas que n\u00e3o gostam de c\u00e3es.  \n259.0 Ok, digamos que vou passear o meu c\u00e3o, apanho-o e deito-o fora. Tu dizes que isso \u00e9 uma coisa boa.  \n264.0 Agora, digamos que levo o meu c\u00e3o a tua casa e ele vai para a tua almofada. De repente, isso \u00e9 uma coisa m\u00e1.  \n269.0 Essa \u00e9 a diferen\u00e7a.  \n272.0 Ent\u00e3o, veja, eu estou pensando em polici\u00e1-lo. H\u00e1 uma coisa de que quero que gostes e estou a dizer-te que deves gostar do que eu te digo para gostares. Resultou?  \n281.0 Meu, espero bem que n\u00e3o. Na verdade, provavelmente fez com que gostasses ainda menos de mim, porque se eu quiser p\u00f4r uma coisa m\u00e1 na tua vida e tu n\u00e3o a quiseres, ent\u00e3o n\u00e3o vais gostar de mim.  \n291.0 Este \u00e9 um exerc\u00edcio que criei chamado tri\u00e2ngulo de associa\u00e7\u00e3o. Mostra como as pessoas criam sentimentos em geral.  \n304.0 O que acabaste de nos dizer \u00e9 que, se quiseres dormir com cem tipos e depois outro tipo gostar de ti, ent\u00e3o queres que ele fique bem com isso.  \n317.0 Mas n\u00f3s n\u00e3o estamos de acordo com isso.  \n320.0 Os homens detestam mesmo isto. De facto, a maioria de n\u00f3s vai odiar isto mais do que gostar de ti.  \n327.0 Em vez de nos sentirmos bem com as nossas escolhas, vamos sentir-nos mal connosco porque acab\u00e1mos de dizer: \"Olha, aqui est\u00e1 uma coisa que tu odeias. Deixa-me esfreg\u00e1-la nos teus olhos\".  \n340.0 Eu sei que querias a resposta parva. Desculpa a resposta inteligente. Espero que n\u00e3o a tenhas odiado muito, porque s\u00f3 vai ficar menos parva.  \n347.0 Apesar de a resposta que acabei de dar ser suficientemente boa, de que o que as outras pessoas gostam n\u00e3o \u00e9 da tua conta, tamb\u00e9m te vou dizer porque \u00e9 que n\u00e3o gostamos.  \n357.0 Por acaso falaste chin\u00eas hoje? Provavelmente n\u00e3o.  \n362.0 Falou ingl\u00eas ontem, por isso vai falar ingl\u00eas hoje e provavelmente amanh\u00e3.  \n366.0 J\u00e1 alguma vez comeu a mesma comida mais do que uma vez? Provavelmente sim.  \n373.0 Portanto, h\u00e1 muitas coisas que se fazem vezes sem conta. E se uma das coisas que fazes vezes sem conta \u00e9 mudar o tipo com quem dormes, provavelmente tamb\u00e9m vais continuar a fazer isso.  \n388.0 Se eu sei que esteve com um tipo durante muito tempo, ent\u00e3o, no futuro, provavelmente vai estar com um tipo durante muito tempo.  \n397.0 Mas se eu souber que troca de rapaz com frequ\u00eancia, isto \u00e9, uma vez em cada 3,2 dias, ent\u00e3o, no futuro, \u00e9 prov\u00e1vel que troque de rapaz com frequ\u00eancia. E, mais uma vez, n\u00e3o gostamos disso.  \n410.0 N\u00e3o queremos gastar tempo e dinheiro consigo, se s\u00f3 vai trocar de homem.  \n417.0 \u00c9 estranho que eu tenha de vos dizer isto. As pessoas n\u00e3o gostam de fazer batota.  \n422.0 E se trocares muito de homens, \u00e9 mais prov\u00e1vel que traias. As mulheres adoram dizer: \"Confia em mim. Ignora o meu comportamento. Eu sou material de esposa.\"  \n431.0 Mas porque \u00e9 que haver\u00edamos de confiar em ti se tu \u00e9s o tipo de pessoa menos confi\u00e1vel?  \n437.0 Os traidores n\u00e3o dizem: \"Vou trair-te.\" Eles dizem, \"Confia em mim.\" Toda a gente diz, \"Confia em mim.\"  \n442.0 Ent\u00e3o, como \u00e9 que sabemos quem s\u00e3o os batoteiros? Bem, temos de observar o vosso comportamento.  \n449.0 Este \u00e9 o cubo do comportamento. Este \u00e9 o eixo do clube da igreja. \u00c9 onde escolhem passar o vosso tempo.  \n454.0 Este \u00e9 o eixo da independ\u00eancia modesta. \u00c9 a forma como se apresenta ao mundo.  \n458.0 E este \u00e9 o eixo da lealdade. \u00c9 a forma como se comportou com os homens no passado.  \n463.0 O n\u00famero de homens \u00e9 um grande sinal. Quanto mais tiveres, mais burro \u00e9 para confiar em ti.  \n470.0 Nem todas as pessoas com um n\u00famero elevado de corpos v\u00e3o trair, mas mais delas v\u00e3o.  \n475.0 Pode ver-se aqui que o casamento se torna menos est\u00e1vel \u00e0 medida que o n\u00famero de corpos aumenta.  \n481.0 E sim, \u00e0s vezes as pessoas mudam, mas n\u00e3o normalmente.  \n484.0 Esta hist\u00f3ria aqui em baixo \u00e9 de uma vez que cheguei ao meu motel 6 \u00e0s 23h30 e uma rapariga bastante gira viu-me na entrada e perseguiu-me at\u00e9 ao carro porque eu j\u00e1 fui atraente e ela fez-me uma leitura da palma da m\u00e3o e eu disse, \"H, isto \u00e9 provavelmente uma m\u00e1 ideia e eu n\u00e3o o fiz.\"  \n504.0 E isso era novo para mim na altura. Isso \u00e9 mudan\u00e7a e a maioria das pessoas n\u00e3o o faz.  \n510.0 Por isso, se vou oferecer-lhe um compromisso, que \u00e9 caro, preciso de saber que posso confiar em si, o que julgo observando as suas escolhas, porque n\u00e3o h\u00e1 outra forma.  \n518.0 E se tiveres feito muitas escolhas m\u00e1s, ent\u00e3o preciso de ver que mudaste. E isso demora mais de 3,2 dias.  \n525.0 Portanto, a contagem de corpos n\u00e3o \u00e9 tudo, especialmente se ela for honesta sobre isso e n\u00e3o o fizer h\u00e1 algum tempo. E tamb\u00e9m, sabes, talvez tu tamb\u00e9m n\u00e3o sejas perfeito, mas eu nunca darei o meu tempo ou dinheiro a algu\u00e9m que diz que o meu passado n\u00e3o importa, porque o que fizemos antes, voltaremos a fazer.  \n548.0 E quanto mais o fizeres, menos prov\u00e1vel ser\u00e1 que pares.  \n551.0 Portanto, o passado n\u00e3o desaparece. E amanh\u00e3, hoje ser\u00e1 o passado.  \n556.0 Ent\u00e3o, hoje n\u00e3o importa. Meu comportamento n\u00e3o importa. Ignora o meu comportamento. Eu vou estar aqui, mas trata-me como se eu estivesse aqui.  \n568.0 Ningu\u00e9m quer comprar um anel para algu\u00e9m que diz: \"N\u00e3o julgue meu comportamento\". Porque n\u00e3o \u00e9 preciso dizer isso a n\u00e3o ser que se saiba que \u00e9 mau.  \n577.0 \u00c9 por isso que qualquer varia\u00e7\u00e3o de \"as minhas escolhas n\u00e3o importam\" \u00e9 uma das maiores bandeiras vermelhas que existe. Al\u00e9m disso, an\u00e9is de nariz no que quer que isto seja.  \n585.0 Voc\u00eas s\u00e3o assim t\u00e3o est\u00fapidos?  \n588.0 \"As minhas escolhas n\u00e3o importam\" \u00e9 a mesma coisa que \"Eu sou a mesa\". Significa que eu tenho o que quero e calo-me com o que tu queres.  \n597.0 Estou aqui, n\u00e3o estou? \"As minhas escolhas n\u00e3o interessam\" tem muitas formas. Pode soar como \"o meu passado n\u00e3o importa\".  \n605.0 Pode ser \"qual \u00e9 a diferen\u00e7a entre um gajo e cem\".  \n609.0 Pode ser \"o que eu visto n\u00e3o me define\". Foi o que estas raparigas disseram.  \n614.0 S\u00f3 porque me visto assim n\u00e3o quer dizer que n\u00e3o seja material para ser esposa. Mesmo que o facto de me vestir assim chame a aten\u00e7\u00e3o e a aten\u00e7\u00e3o chame a tenta\u00e7\u00e3o.  \n621.0 E ningu\u00e9m est\u00e1 imune \u00e0 tenta\u00e7\u00e3o. \u00c9 apenas uma quest\u00e3o de sorte. E tu sabes tudo isso e escolheste vestir-te assim e as tuas escolhas definem-te.  \n630.0 Por outras palavras, s\u00f3 porque me comporto assim, n\u00e3o significa que me comporte assim. \u00c9 por isso que ela tem olhos de enganar.  \n638.0 E n\u00e3o tens de ouvir isso.  \n640.0 Se fores um tipo mais novo, com menos experi\u00eancia, provavelmente toda a tua vida te disseram para seres simp\u00e1tico. S\u00ea tu pr\u00f3prio.  \n647.0 E a sociedade diz que as raparigas s\u00e3o simp\u00e1ticas e que temos de ser simp\u00e1ticos com elas. Caso contr\u00e1rio, estamos a ser controladores e isso \u00e9 abusivo e pode ser confuso porque n\u00e3o parece que estamos a ser abusivos.  \n654.0 Parece que estamos a ser abusados, porque \u00e0s vezes estamos.  \n664.0 Algumas mulheres mentem-nos para ver se somos suficientemente espertos para as apanhar a mentir. E se n\u00e3o fores, ent\u00e3o elas n\u00e3o gostam de ti.  \n670.0 Elas fazem coisas com as quais n\u00e3o deverias estar de acordo e depois dizem-te para estares de acordo com elas. Assim. Confia em mim.  \n677.0 Ent\u00e3o, estas raparigas disseram que vestirem-se assim n\u00e3o significa que n\u00e3o sejam material para serem esposas, mas quanto mais pele mostrarem e quanto mais vezes sa\u00edrem, mais aten\u00e7\u00e3o ter\u00e3o.  \n688.0 E quanto mais beberem, menos resistir\u00e3o a isso. E assim, as hip\u00f3teses de algo de mau acontecer s\u00e3o cada vez maiores.  \n694.0 Depois dizem: s\u00f3 porque estou a maximizar as hip\u00f3teses de mau comportamento, n\u00e3o quer dizer que n\u00e3o seja mulher para casar, embora mulher para casar seja algu\u00e9m que minimiza as hip\u00f3teses de mau comportamento.  \n707.0 Ent\u00e3o, est\u00e3o a ver o que quero dizer aqui? H\u00e1 o comportamento vis\u00edvel dela, que \u00e9 f\u00e1cil de julgar, e depois h\u00e1 este secreto e nublado \"confia em mim\" na zona de mist\u00e9rio.  \n714.0 Eu posso fazer todas as coisas m\u00e1s e continuar a ser bom. Ignora o meu comportamento.  \n723.0 Uma rapariga disse: \"Um tipo, 100 tipos, o que \u00e9 que isso importa?\" Bem, o que importa \u00e9 que eu n\u00e3o quero ser esse gajo.  \n729.0 Eu n\u00e3o quero ser o gajo n\u00famero 99 a comprar-te flores 3,2 dias antes do gajo n\u00famero 100 aparecer.  \n738.0 Ent\u00e3o, cuidado com \"minhas escolhas n\u00e3o importam\". Eu n\u00e3o fiz o que fiz. Isso n\u00e3o significa o que significa. Confia nas minhas palavras, n\u00e3o nas minhas ac\u00e7\u00f5es.  \n747.0 Isso \u00e9 apenas um teste. E se n\u00e3o confiares nela, ela vai dizer isto.  \n754.0 Voc\u00eas s\u00e3o assim t\u00e3o est\u00fapidos?  \n756.0 Mas se confiarem nela, ela dir\u00e1 isto.  \n760.0 Voc\u00eas s\u00e3o assim t\u00e3o est\u00fapidos?  \n764.0 Ent\u00e3o, n\u00e3o confiem em algu\u00e9m do cubo mau. Encontra algu\u00e9m no cubo bom.  \n769.0 Um pequeno an\u00fancio para aqueles de v\u00f3s que viram at\u00e9 ao fim.  \n771.0 Tenho uma nova loja de produtos.  \n773.0 Eu tinha uma loja de produtos antiga, mas ningu\u00e9m l\u00e1 ia.  \n775.0 Podes encontr\u00e1-la procurando por baixo da janela do v\u00eddeo ou fazendo scroll para baixo, penso eu. N\u00e3o tenho a certeza se funciona da mesma forma para ti.  \n782.0 A loja \u00e9 parecida com esta e podes comprar posters, t-shirts, canecas e outras coisas.\n787.0 Digam-me quais os desenhos que querem nos coment\u00e1rios.\n<\/span>\n<\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-eddabf7 elementor-widget elementor-widget-html\" data-id=\"eddabf7\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<script>\n\/\/ 1. Define which video to play for each language:\nconst videoMap = {\n  en: { type: \"youtube\", id: \"Dvd9eDcMk_E\" },\n  es: { type: \"youtube\", id: \"SY8AOd_rHHU\" }, \n  fr: { type: \"youtube\", id: \"d6WVZ4e1keo\" },\n  ja: { type: \"youtube\", id: \"Sz-2VHQGqqE\" },\n  pt: { type: \"youtube\", id: \"M8savysaBF8\" } \n\n};\n<\/script>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-a010ab1 e-flex e-con-boxed e-con e-parent\" data-id=\"a010ab1\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-4c437ca elementor-widget elementor-widget-template\" data-id=\"4c437ca\" data-element_type=\"widget\" data-widget_type=\"template.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-template\">\n\t\t\t\t\t<div data-elementor-type=\"section\" data-elementor-id=\"3172\" class=\"elementor elementor-3172\" data-elementor-post-type=\"elementor_library\">\n\t\t\t<div class=\"elementor-element elementor-element-7079b43 e-flex e-con-boxed e-con e-parent\" data-id=\"7079b43\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-800d60f elementor-widget elementor-widget-html\" data-id=\"800d60f\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<style>\n#simplified-transcript-note {\n  display: none !important;\n}\n<\/style>\n<div id=\"simplified-transcript-note\">As tradu\u00e7\u00f5es e a transcri\u00e7\u00e3o simplificada baseiam-se em tradu\u00e7\u00f5es do material original, localizadas em v\u00e1rias l\u00ednguas. Criado por PeakCreatorRoyalty.com sob licen\u00e7a com <span>h<\/span>oe_math.<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-3a02ec9 elementor-widget elementor-widget-html\" data-id=\"3a02ec9\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<script>\n  \/\/ Auto-hide translation block after page load\n  window.addEventListener('DOMContentLoaded', function() {\n    for (let i = 1; i <= 5; i++) {\n      document.querySelectorAll(`[id$=\"${i}\"]`).forEach(el => {\n        el.style.display = 'none';\n      });\n    }\n  });\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-f2f7b1d elementor-widget elementor-widget-html\" data-id=\"f2f7b1d\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<style>\n  h3 {\n    margin-left: 0px; \/* Adjust as needed *\/\n    \/* Optionally add: *\/\n    text-align: left;  \n  }\n<\/style>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-e3ade12 elementor-widget elementor-widget-html\" data-id=\"e3ade12\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<!-- VIDEO PLAYER CONTAINER -->\n<div id=\"videoPlayerContainer\" style=\"max-width: 800px; margin: auto; text-align: center;\">\n  <!-- Video player is injected here -->\n<\/div>\n\n<!-- SCROLLING TABS & CHAPTER DETAILS -->\n<div style=\"max-width: 1000px; margin: 32px auto 0 auto;\">\n  <div id=\"chapterTabs\" class=\"chapter-tabs-scroll\">\n    <!-- Tabs will be generated by JavaScript -->\n  <\/div>\n  <!-- div id=\"chapterPlayPause\" style=\"margin:1em 0 0.5em 0;\">\n  <\/div -->\n  <div id=\"chapterPanel\" class=\"chapter-panel\">\n    <!-- Chapter text will appear here  -->\n  <\/div>\n<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-928f586 elementor-widget elementor-widget-html\" data-id=\"928f586\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<!-- NO TOUCH Scripts -->\n<!-- Video script v1.0 -->\n<!--[wpcode id=\"1824\"] -->\n\n<script src=\"https:\/\/cdn.jsdelivr.net\/npm\/hls.js@latest\"><\/script> <!-- Include HLS.js -->\r\n\r\n<style>\r\n  .half-br {\r\n    display: block;\r\n    height: 1px;\r\n    width: 100%;\r\n    border: none;\r\n    margin: 0;\r\n    padding: 0;\r\n  }\r\n<\/style>\r\n\r\n<script>\r\n\r\nlet currentChapterIdx = 0;\r\n\t\r\nfunction getCurrentLang() {\r\n  return document.documentElement.lang ? document.documentElement.lang.substring(0,2) : 'en';\r\n}\r\n\r\n\/\/ function waitTranslate(ms=1000) {\r\n\/\/   const end = Date.now() + ms; \/\/ 100 milliseconds = 1\/10 second\r\n\/\/   while (Date.now() < end) {\r\n\/\/     \/\/ Busy-wait: blocks the main thread!\r\n\/\/   }\r\n\/\/ }\r\n\r\n\/\/ const lang = getCurrentLang();\r\n\/\/ if (lang !== \"en\") {\r\n\/\/   var marker = document.getElementById('language-marker');\r\n\/\/   if (marker) {\r\n\/\/     \/\/ You can check for known translations of the phrase\r\n\/\/     var currentLangPhrase = marker.textContent.trim();\r\n\/\/ \r\n\/\/     \/\/ Example for English vs French\r\n\/\/     if (currentLangPhrase === \"Currently English language.\") {\r\n\/\/       console.log(\"Miss, translation in progress to '\/\"+lang+\"\/', 3 second delay.\")\r\n\/\/       waitTranslate(ms=3000);\r\n\/\/     } else {\r\n\/\/       console.log(\"Hit, pre-translated page in '\/\"+lang+\"\/'.\")\r\n\/\/     }\r\n\/\/   }\r\n\/\/ } else {\r\n\/\/   console.log(\"English, no translation needed.\")\r\n\/\/ }\r\n\r\n\/* ====== CONFIGURATION SECTION ====== *\/\r\n\/\/ const BUNNY_VIDEO_LIBRARY_ID = \"vz-c02c9ec9-42b.b-cdn.net\"; \/\/ Replace with your actual Bunny Video Library ID\r\nconst BUNNY_VIDEO_LIBRARY_ID = \"vz-d8eb6cfe-1f7.b-cdn.net\"; \/\/ Replace with your actual Bunny Video Library ID\r\n\r\n\/\/ 1. Define which video to play for each language:\r\n\/\/const videoMap = {\r\n\/\/  en: { type: \"youtube\", id: \"wWrsW76bG88\" },\r\n\/\/  fr: { type: \"bunny\", id: \"fc57904c-7f56-4b36-8d13-d1d715b82e81\" }, \/\/ This is the VIDEO ID\r\n\/\/  de: { type: \"bunny\", id: \"YOUR_GERMAN_VIDEO_ID\" }                   \/\/ This is the VIDEO ID\r\n  \/\/ Add more: es, it, etc.\r\n\/\/};\r\n\r\n\/\/ 2. Define chapters for each language:\r\nfunction parseCSVFromHeaderRows(headerText, rowsText) {\r\n  const headers = headerText.trim().split('|').map(h => h.trim());\r\n  const lines = rowsText.trim().split('\\n').filter(line => line.trim().length);\r\n\r\n  return lines.map(line => {\r\n    const values = [];\r\n    \/\/ Split by |, but don't split inside quotes (simple version assumes no | inside quotes)\r\n    \/\/ If you need to handle | inside quoted fields, regex needs to be more complex\r\n    let regex = \/(\"(?:[^\"]|\"\")*\"|'(?:[^']|'')*'|[^|]+)\/g;\r\n    let match;\r\n    while ((match = regex.exec(line))) {\r\n      let value = match[0].trim();\r\n      \/\/ Remove leading and trailing single or double quotes\r\n      value = value.replace(\/^(['\"])(.*)\\1$\/, '$2');\r\n      values.push(isNaN(value) ? value : Number(value));\r\n    }\r\n    const obj = {};\r\n    headers.forEach((h, i) => { obj[h] = values[i]; });\r\n    return obj;\r\n  });\r\n}\r\n\r\n\r\n\r\n\r\n\r\n\/\/ Parse hiddenText into [{time: number, text: string}]\r\n\/\/ Parses lines like: 12.0 Text, or * Bullet point, or 1. Numbered item\r\nfunction parseHiddenText() {\r\n  const hiddenText = document.getElementById('hiddenText')?.textContent || '';\r\n  const lines = hiddenText.split('\\n').map(line => line.trim()).filter(Boolean);\r\n  const results = [];\r\n  let lastTime = null;\r\n\r\n  for (let line of lines) {\r\n    \/\/ Match timestamps with comma or dot\r\n    let match = \/^(\\d+(?:[.,]\\d+)?)\\s+(.*)$\/.exec(line);\r\n    if (match) {\r\n      lastTime = parseFloat(match[1].replace(',', '.'));\r\n      results.push({ time: lastTime, text: match[2] });\r\n      continue;\r\n    }\r\n    \/\/ Match bullets or numbers\r\n    match = \/^(\\*|\\-|\\d+\\.)\\s+(.*)$\/.exec(line);\r\n    if (match && lastTime !== null) {\r\n      results.push({ time: lastTime, text: line });\r\n      continue;\r\n    }\r\n    if (lastTime !== null) {\r\n      results.push({ time: lastTime, text: line });\r\n    }\r\n  }\r\n  return results;\r\n}\r\n\r\n\r\n\r\n\r\nconst hiddenTextLines = parseHiddenText(); \/\/ Global for later use\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\/\/ Get the header and rows from the DOM\r\nconst csvHeader = document.getElementById('video-data-header').textContent;\r\nconst csvRows = document.getElementById('video-data-rows').textContent;\r\n\r\nconst chapterMap = {\r\n  en: parseCSVFromHeaderRows(csvHeader, csvRows)\r\n};\r\n\r\n\/\/ List of properties to process\r\nconst properties = ['tab', 'title', 'description'];\r\n\r\n\/\/ Loop through each row in chapterMap.en\r\nchapterMap.en.forEach(row => {\r\n  properties.forEach(prop => {\r\n    const val = row[prop];\r\n    if (typeof val === 'string') {\r\n      row[prop] = val.replace(\/^[\\'\\\"]+|[\\'\\\"]+$\/g, '');\r\n    }\r\n  });\r\n});\r\n\r\n\/\/ console.log(chapterMap.en); \/\/ Output objects in browser console\r\n\r\n\r\n\/* ====== END CONFIGURATION ====== *\/\r\n\r\n\/* ----- Global Player Variables ----- *\/\r\nlet ytPlayer, ytReady = false, stopTimer = null;\r\nlet hlsInstance = null; \/\/ To store the HLS.js instance\r\nlet html5VideoElement = null; \/\/ To store the HTML5 video element for Bunny\r\n\r\n\r\n\/* ----- Player and Chapters Logic ----- *\/\r\nfunction cleanupPlayers() {\r\n    \/\/ Clear existing stop timer\r\n    if (stopTimer) {\r\n        clearInterval(stopTimer);\r\n        stopTimer = null;\r\n    }\r\n\r\n    \/\/ Cleanup YouTube Player\r\n    if (ytPlayer && typeof ytPlayer.destroy === 'function') {\r\n        ytPlayer.destroy();\r\n    }\r\n    ytPlayer = null;\r\n    ytReady = false;\r\n\r\n    \/\/ Cleanup HLS.js Player\r\n    if (hlsInstance) {\r\n        hlsInstance.destroy();\r\n        hlsInstance = null;\r\n    }\r\n    html5VideoElement = null; \/\/ Clear reference\r\n\r\n    \/\/ Clear the container\r\n    const container = document.getElementById('videoPlayerContainer');\r\n    if (container) container.innerHTML = \"\";\r\n}\r\n\r\nfunction setVideoPlayer(langObj) {\r\n  cleanupPlayers(); \/\/ Ensure previous players are cleaned up\r\n\r\n  const container = document.getElementById('videoPlayerContainer');\r\n  if (!container) return;\r\n\r\n  if (langObj.type === \"youtube\") {\r\n    container.innerHTML = `<div style=\"position: relative; width: 100%; padding-top: 56.25%;\">\r\n<iframe id=\"myVideo\" style=\"position: absolute;  top: 0; left: 0; width: 100%; height: 100%;\" \r\n            src=\"https:\/\/www.youtube.com\/embed\/${langObj.id}?enablejsapi=1&rel=0&origin=${window.location.origin}\"\r\n            frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\"\r\n            allowfullscreen><\/iframe><\/div>`;\r\n    \/\/ YT API will be loaded\/re-initialized later\r\n  } else if (langObj.type === \"bunny\") {\r\n    const bunnyStreamUrl = `https:\/\/${BUNNY_VIDEO_LIBRARY_ID}\/${langObj.id}\/playlist.m3u8`;\r\n    container.innerHTML = `<video id=\"myVideo\" width=\"100%\" height=\"390\" controls playsinline poster=\"https:\/\/itishoemath.com\/wp-content\/uploads\/2025\/05\/UCsEPI9OwGEw5Lm0E7Paq62g_0003_wWrsW76bG88_en.jpg\"><\/video>`;\r\n    html5VideoElement = document.getElementById('myVideo'); \/\/ Get the new video element\r\n\r\n\tif (html5VideoElement) {\r\n        html5VideoElement.addEventListener('play', () => renderPlayPauseButton(currentChapterIdx));\r\n        html5VideoElement.addEventListener('pause', () => renderPlayPauseButton(currentChapterIdx));\r\n    }\r\n\r\n\t  \r\n    if (Hls.isSupported()) {\r\n        hlsInstance = new Hls();\r\n        hlsInstance.loadSource(bunnyStreamUrl);\r\n        hlsInstance.attachMedia(html5VideoElement);\r\n        hlsInstance.on(Hls.Events.MANIFEST_PARSED, function() {\r\n            \/\/ console.log(\"Bunny HLS: Manifest parsed and video ready.\");\r\n            \/\/ html5VideoElement.play(); \/\/ Optional: Autoplay (mind browser restrictions)\r\n        });\r\n        hlsInstance.on(Hls.Events.ERROR, function(event, data) {\r\n            \/\/ console.error('Bunny HLS Error:', data);\r\n            if (data.fatal) {\r\n                switch(data.type) {\r\n                    case Hls.ErrorTypes.NETWORK_ERROR: hlsInstance.startLoad(); break;\r\n                    case Hls.ErrorTypes.MEDIA_ERROR: hlsInstance.recoverMediaError(); break;\r\n                    default: hlsInstance.destroy(); break;\r\n                }\r\n            }\r\n        });\r\n    } else if (html5VideoElement.canPlayType('application\/vnd.apple.mpegurl')) {\r\n        \/\/ Native HLS support (e.g., Safari)\r\n        html5VideoElement.src = bunnyStreamUrl;\r\n        html5VideoElement.addEventListener('loadedmetadata', function() {\r\n            \/\/ console.log('Bunny Native HLS: Metadata loaded.');\r\n        });\r\n    } else {\r\n        \/\/ console.error('HLS is not supported in this browser for Bunny.net video.');\r\n        container.innerHTML = '<p>Sorry, HLS video playback is not supported in your browser.<\/p>';\r\n    }\r\n  }\r\n}\r\n\r\nfunction renderTabs(activeIdx, chapters) {\r\n  const tabRow = document.getElementById('chapterTabs');\r\n  tabRow.innerHTML = chapters.map((ch, i) =>\r\n    `<button class=\"chapter-tab${i === activeIdx ? \" active\" : \"\"}\" onclick=\"showChapter(${i})\">${ch.tab}<\/button>`\r\n  ).join('');\r\n}\r\n\r\n\r\n\r\n\t\r\nfunction renderPlayPauseButton(idx) {\r\n  const lang = getCurrentLang();\r\n  const chapters = chapterMap['en'];\r\n  const ch = chapters[idx];\r\n  if (!ch) return \"\";\r\n\r\n  let isPlaying = false;\r\n  const videoObj = videoMap[lang] || videoMap['en'];\r\n\r\n  if (videoObj.type === \"youtube\" && ytPlayer && ytReady) {\r\n    isPlaying = ytPlayer.getPlayerState && ytPlayer.getPlayerState() === 1;\r\n  } else if (videoObj.type === \"bunny\" && html5VideoElement) {\r\n    isPlaying = !html5VideoElement.paused;\r\n  }\r\n\r\n  const buttonLabel = isPlaying ? \"Pause\" : \"Play\";\r\n  const buttonIcon = isPlaying ? \"\u23f8\" : \"\u25b6\ufe0f\";\r\n\r\n  const btnHtml = `<button id=\"playPauseBtn\" style=\"padding:0.5em 1em;font-size:1em;border-radius:6px;background: #0F3F91;color:#fff;border:none;cursor:pointer;margin-bottom:1em;transition: background 0.2s;display: block;\">\r\n      ${buttonIcon} ${buttonLabel}\r\n    <\/button>`;\r\n\r\n  const container = document.getElementById('playPauseContainer');\r\n  if (container) {\r\n    container.innerHTML = btnHtml;\r\n    const playPauseBtn = document.getElementById('playPauseBtn');\r\n    if (playPauseBtn) {\r\n      playPauseBtn.onclick = function() {\r\n        let isPlayingNow = false;\r\n        if (videoObj.type === \"youtube\" && ytPlayer && ytReady) {\r\n          isPlayingNow = ytPlayer.getPlayerState && ytPlayer.getPlayerState() === 1;\r\n          ytPlayer.seekTo(ch.time, true);\r\n          if (isPlayingNow) {\r\n            ytPlayer.pauseVideo();\r\n          } else {\r\n            ytPlayer.playVideo();\r\n          }\r\n        } else if (videoObj.type === \"bunny\" && html5VideoElement) {\r\n          isPlayingNow = !html5VideoElement.paused;\r\n          html5VideoElement.currentTime = ch.time;\r\n          if (isPlayingNow) {\r\n            html5VideoElement.pause();\r\n          } else {\r\n            html5VideoElement.play();\r\n          }\r\n        }\r\n        \/\/ No manual re-render here!\r\n      };\r\n    }\r\n  }\r\n}\r\n\r\n\r\nfunction formatTranscriptBlock(lines) {\r\n  let prevTime = null;\r\n  let out = [];\r\n  for (let i = 0; i < lines.length; i++) {\r\n    const { time, text } = lines[i];\r\n    \/\/ Convert seconds to MM:SS\r\n    const min = Math.floor(time \/ 60);\r\n    const sec = Math.floor(time % 60);\r\n    const mmss = `${min}:${sec.toString().padStart(2, '0')}`;\r\n    if (time !== prevTime) {\r\n      out.push(`<br><b><span style=\"color:#FFF\">${mmss}<\/span><\/b> ${text}`);\r\n    } else {\r\n      out.push(text);\r\n    }\r\n    prevTime = time;\r\n  }\r\n  return out.join('<br>');\r\n}\r\n\r\n\r\n\r\n\r\nfunction renderPanel(idx) {\r\n  const lang = getCurrentLang();\r\n\r\n  const simplifiedLabel = document.getElementById('simplified-transcript-label')?.textContent || \"\";\r\n  const simplifiedNote = document.getElementById('simplified-transcript-note')?.textContent || \"Note: ...\";\r\n\r\n  const chapters = chapterMap['en'];\r\n  const ch = chapters[idx];\r\n  if (!ch) {\r\n      console.error(`Chapter index ${idx} not found for language ${lang}.`);\r\n      return;\r\n  }\r\n\r\n  \/\/ --- Find hiddenText lines within this chapter's time range ---\r\n  const linesInRangeArr = hiddenTextLines\r\n    .filter(line => line.time >= ch.time && line.time < ch.stop);\r\n\r\n  const transcriptHTML = formatTranscriptBlock(linesInRangeArr);\r\n\r\n  let extra = \"\";\r\n  if (linesInRangeArr.length) {\r\n    extra = `\r\n      <br><br>\r\n      <!--span style=\"display:block;margin-top:1em;margin-bottom:0.25em;font-weight:bold\">${simplifiedLabel}<\/span-->\r\n      <span style=\"color:#f5f5f5;font-size:100%\">${transcriptHTML}<\/span>\r\n      <br>\r\n      <span style=\"display:block;margin-top:0.75em;font-size:75%;color:#00C2C2;\">\r\n        <br>${simplifiedNote}\r\n      <\/span>\r\n    `;\r\n  }\r\n\r\n  \/\/ Insert the Play\/Pause button at the very top of the panel\r\n  const playPauseButton = renderPlayPauseButton(idx);\r\n\r\n  document.getElementById('chapterPanel').innerHTML =\r\n    `<h3 style=\"margin-top:0;color:#fff\">${ch.title}<\/h3>\r\n     <div id=\"playPauseContainer\" style=\"margin-bottom:1em\"><\/div>\r\n     <p style=\"margin-bottom:0;color:#fff\">${ch.description}${extra}<\/p>`;\r\n\r\n  renderPlayPauseButton(idx);\r\n  renderTabs(idx, chapters);\r\n\r\n  \/\/ Attach the event handler after the button is inserted\r\n  const playPauseBtn = document.getElementById('playPauseBtn');\r\n  if (playPauseBtn) {\r\n    playPauseBtn.onclick = function() {\r\n      const videoObj = videoMap[lang] || videoMap['en'];\r\n      let isPlaying = false;\r\n      if (videoObj.type === \"youtube\" && ytPlayer && ytReady) {\r\n        isPlaying = ytPlayer.getPlayerState && ytPlayer.getPlayerState() === 1;\r\n        ytPlayer.seekTo(ch.time, true);\r\n        if (isPlaying) {\r\n          ytPlayer.pauseVideo();\r\n        } else {\r\n          ytPlayer.playVideo();\r\n        }\r\n      } else if (videoObj.type === \"bunny\" && html5VideoElement) {\r\n        isPlaying = !html5VideoElement.paused;\r\n        html5VideoElement.currentTime = ch.time;\r\n        if (isPlaying) {\r\n          html5VideoElement.pause();\r\n        } else {\r\n          html5VideoElement.play();\r\n        }\r\n      }\r\n      \/\/ Optionally update button after action\r\n      \/\/ setTimeout(() => renderPanel(idx), 300);\r\n    };\r\n  }\r\n}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nwindow.showChapter = function(idx) {\r\n  currentChapterIdx = idx;\r\n\r\n  const lang = getCurrentLang();\r\n  \/\/ const chapters = chapterMap[lang] || chapterMap['en']; \/\/ Fallback to 'en'   \r\n  \/\/ will switch for video but NOT for text (translatepress will accomplish)\r\n  const chapters = chapterMap['en']; \/\/ Fallback to 'en' chapters\r\n  const chapterData = chapters[idx];\r\n\r\n  if (!chapterData) {\r\n      console.error(`Chapter data for index ${idx} not found.`);\r\n      return;\r\n  }\r\n  renderPanel(idx); \/\/ Update panel and tabs\r\n\r\n  \/\/ Scroll tab into view\r\n  const buttons = document.getElementsByClassName('chapter-tab');\r\n  if (buttons[idx]) buttons[idx].scrollIntoView({ behavior: 'smooth', inline: 'center', block: 'nearest' });\r\n\r\n  const videoObj = videoMap[lang] || videoMap['en'];\r\n\r\n  \/\/ Clear previous stop timer\r\n  if (stopTimer) clearInterval(stopTimer);\r\n\r\n  if (videoObj.type === \"youtube\") {\r\n    if (ytReady && ytPlayer && typeof ytPlayer.seekTo === 'function') {\r\n      ytPlayer.seekTo(chapterData.time, true);\r\n      ytPlayer.playVideo();\r\n      \r\n    } else {\r\n        console.warn(\"YouTube player not ready or seekTo not available.\");\r\n    }\r\n  } else if (videoObj.type === \"bunny\" && html5VideoElement) {\r\n    html5VideoElement.currentTime = chapterData.time;\r\n    html5VideoElement.play().catch(e => console.warn(\"Autoplay after seek prevented:\", e));\r\n  }\r\n};\r\n\r\nfunction reInitChaptersAndPlayer() {\r\n  const lang = getCurrentLang();\r\n  const videoObj = videoMap[lang] || videoMap['en']; \/\/ Fallback to 'en' video\r\n\r\n  if (!videoObj) {\r\n      console.error(`No video configuration found for language: ${lang} or fallback 'en'.`);\r\n      return;\r\n  }\r\n\r\n  setVideoPlayer(videoObj); \/\/ This now also cleans up old players\r\n\r\n  \/\/ Short delay to ensure DOM is updated, especially for iframe\r\n  setTimeout(function(){\r\n    renderPanel(0); \/\/ Render first chapter panel\r\n    if (videoObj.type === \"youtube\") {\r\n      \/\/ Load or re-initialize YT API for new iframe\r\n      if (typeof YT === 'undefined' || !YT.Player) { \/\/ Check if YT object or YT.Player is undefined\r\n        var tag = document.createElement('script');\r\n        tag.src = \"https:\/\/www.youtube.com\/iframe_api\";\r\n        var firstScriptTag = document.getElementsByTagName('script')[0];\r\n        firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);\r\n      } else {\r\n        \/\/ If API is loaded, re-initialize player for the new iframe if needed\r\n        onYouTubeIframeAPIReady();\r\n      }\r\n    }\r\n  }, 100); \/\/ Reduced delay, might need adjustment\r\n}\r\n\r\n\/* ----- YT API Bootstrapping ----- *\/\r\n\/\/ This global function is called by the YouTube Iframe API script\r\nwindow.onYouTubeIframeAPIReady = function() {\r\n  const iframe = document.getElementById('myVideo');\r\n  if (iframe && iframe.tagName === 'IFRAME' && !ytPlayer) { \/\/ Ensure it's an iframe and player not already set\r\n    \/\/ console.log(\"onYouTubeIframeAPIReady called, initializing YT Player.\");\r\n    ytPlayer = new YT.Player('myVideo', {\r\n      events: {\r\n        'onReady': function(event) {\r\n          ytReady = true;\r\n          \/\/ console.log(\"YouTube Player Ready.\");\r\n          \/\/ If a chapter was clicked before YT was ready, try to apply it now.\r\n          \/\/ This requires knowing the current chapter index, which might need to be stored.\r\n          \/\/ For simplicity, we'll assume the user might click a chapter again or it starts at 0.\r\n        },\r\n        'onStateChange': function(event) {\r\n\t\t\t\/\/ 1 = playing, 2 = paused\r\n\t\t\trenderPlayPauseButton(currentChapterIdx); \/\/ currentChapterIdx should be tracked globally\r\n\t\t}\r\n      }\r\n    });\r\n  } else if (iframe && iframe.tagName === 'IFRAME' && ytPlayer && typeof ytPlayer.destroy === 'function') {\r\n    \/\/ This case handles if the API is reloaded or if reInit is called and iframe exists\r\n    \/\/ It's a bit tricky; ideally, we destroy and recreate fully.\r\n    \/\/ The cleanupPlayers function should handle most of this.\r\n    \/\/ console.log(\"onYouTubeIframeAPIReady called, player might exist. Attempting to re-bind if necessary.\");\r\n  }\r\n};\r\n\r\n\/* ----- Event Hooks ----- *\/\r\ndocument.addEventListener('DOMContentLoaded', function() {\r\n    if (document.getElementById('videoPlayerContainer')) { \/\/ Only run if the container exists\r\n        reInitChaptersAndPlayer();\r\n\r\n\t\t\r\n\r\n\r\n    }\r\n});\r\n\/\/ TranslatePress fires this event on language change\r\ndocument.addEventListener('trp_language_changed', function() {\r\n    if (document.getElementById('videoPlayerContainer')) { \/\/ Only run if the container exists\r\n        reInitChaptersAndPlayer();\r\n\t\t\r\n\r\n    }\r\n});\r\n\r\n<\/script>\r\n\r\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-40859b7 elementor-widget elementor-widget-html\" data-id=\"40859b7\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<style>\n\/* Your existing CSS is good, no changes needed unless you want to refine *\/\n.chapter-tabs-scroll {\n  display: flex;\n  overflow-x: auto;\n  gap: 10px;\n  margin-bottom: 18px;\n  scrollbar-width: thin;\n  scrollbar-color: #a0aec0 #f7fafc; \/* For Firefox *\/\n  -webkit-overflow-scrolling: touch;\n  padding-bottom: 5px; \/* To make scrollbar visible without cutting content *\/\n  border-radius: 8px; \/* Optional: if you want rounded corners for the scroll area *\/\n}\n\/* Webkit Scrollbar Styles *\/\n.chapter-tabs-scroll::-webkit-scrollbar {\n  height: 7px;\n}\n.chapter-tabs-scroll::-webkit-scrollbar-track {\n  background: #111; \/* Or a lighter color if preferred *\/\n  border-radius: 4px;\n}\n.chapter-tabs-scroll::-webkit-scrollbar-thumb {\n  background: #333; \/* Or a contrasting color *\/\n  border-radius: 4px;\n}\n.chapter-tab {\n  white-space: nowrap;\n  border: none;\n  background: #222; \/* Darker tab background *\/\n  color: #fff;\n  font-size: 1.1em;\n  padding: 8px 22px;\n  border-radius: 999px; \/* Pill shape *\/\n  cursor: pointer;\n  transition: background 0.2s, color 0.2s, font-weight 0.2s, box-shadow 0.2s;\n  margin-bottom: 0; \/* Ensure no extra space below tabs if they wrap *\/\n  outline: none; \/* Remove default focus outline if you have custom focus styles *\/\n  margin-right: 0; \/* Reset if previously set for spacing between items *\/\n}\n.chapter-tab.active,\n.chapter-tab:hover {\n  background: #e0e7ff; \/* Light blue for active\/hover *\/\n  color: #111; \/* Dark text for active\/hover *\/\n  font-weight: bold;\n  box-shadow: 0 2px 8px #dbeafe66; \/* Softer shadow *\/\n}\n.chapter-panel {\n  background: rgba(20,20,20,0.88); \/* Semi-transparent dark background *\/\n  border-radius: 8px;\n  box-shadow: 0 2px 6px #111; \/* Subtle shadow *\/\n  padding: 20px 24px;\n  min-height: 80px; \/* Ensure panel has some height even if description is short *\/\n  transition: box-shadow 0.3s; \/* Smooth shadow transition on hover (if any) *\/\n}\n\/* Add a class for the video player container if you want to target its children more easily *\/\n#videoPlayerContainer video { \/* Ensure video tag fits container *\/\n    display: block; \/* Removes extra space below if it's inline *\/\n}\n<\/style>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-e4bc449 e-flex e-con-boxed e-con e-parent\" data-id=\"e4bc449\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-fdce02d e-con-full e-flex e-con e-child\" data-id=\"fdce02d\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-6160f3a elementor-widget elementor-widget-shortcode\" data-id=\"6160f3a\" data-element_type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\"><!-- Post Page Mid Roll -->\r\n<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-ea60902 elementor-widget elementor-widget-html\" data-id=\"ea60902\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<!-- 4. NO TOUCH Scripts -->\n<!-- ImageID_4 HTML external scripts to call + JS -->\n<!-- script src=\"https:\/\/code.jquery.com\/jquery-3.7.1.min.js\"><\/script -->\r\n<script>\r\njQuery(document).ready(function ($) {\r\n\r\n  \/\/ --- IMAGE HOTSPOTS AND BUTTONS INIT ---\r\n  $('.hotspot-block').each(function () {\r\n    const $block = $(this);\r\n    const id = $block.data('id');\r\n    const $image = $block.find(`.main-image[data-id=\"${id}\"]`);\r\n    const $container = $block.find('.hotspot-container');\r\n    const $buttons = $block.find('.hotspot-buttons');\r\n    const imageUrl = imageMap[id];\r\n\r\n\r\n\t\r\n    const csvRaw = $(`pre#hotspot-data-${id}`).text().trim();\r\n\r\n    const activeNumbers = [];\r\n    $block.data('activeNumbers', activeNumbers);\r\n\r\n    if (!imageUrl) return;\r\n    $image.attr('src', imageUrl);\r\n\r\n    $image.on('load', function () {\r\n      const imgWidth = $image[0].naturalWidth;\r\n      const imgHeight = $image[0].naturalHeight;\r\n\r\n      \/\/ --- Simple Pipe-Delimited Parse ---\r\n\tconst lines = csvRaw.split('\\n').map(line => line.trim()).filter(Boolean);\r\n\tif (lines.length < 2) return;\r\n\t\/\/ Optionally check header here if you want\r\n\tconst data = lines.slice(1).map(line => {\r\n\t  \/\/ Split by pipe instead of comma, but allow pipes in the text field (by joining the rest)\r\n\t  const parts = line.split('|');\r\n\t  const order = parts[0] ? parts[0].trim() : '';\r\n\t  const x_px = parts[1] ? parts[1].trim() : '';\r\n\t  const y_px = parts[2] ? parts[2].trim() : '';\r\n\t  const direction = parts[3] ? parts[3].trim() : '';\r\n\t  const text = parts.length > 4 ? parts.slice(4).join('|').trim() : '';\r\n\t  return { order, x_px, y_px, direction, text };\r\n\t});\r\n\r\n\t\/\/ console.log('Parsed data:', data);\r\n\r\n\r\n      data.forEach(row => {\r\n        const number = String($.trim(row.order));\r\n        const xPx = parseFloat(row.x_px);\r\n        const yPx = parseFloat(row.y_px);\r\n        const dir = (row.direction || \"A\").trim().toUpperCase();\r\n        const text = $.trim(row.text);\r\n        const leftPercent = (xPx \/ imgWidth) * 100;\r\n        const topPercent = (yPx \/ imgHeight) * 100;\r\n\r\n        const tooltipClass = {\r\n          A: 'tooltip-above',\r\n          B: 'tooltip-below',\r\n          L: 'tooltip-left',\r\n          R: 'tooltip-right'\r\n        }[dir] || 'tooltip-above';\r\n\r\n        \/\/ Tooltip text present in DOM for TranslatePress!\r\n        const formattedText = `${number}. ` + text.replace(\/\\n\/g, '<br>');\r\n        const $hotspot = $(`\r\n          <div class=\"hotspot ${tooltipClass}\" data-number=\"${number}\">\r\n            <span class=\"hotspot-number\">${number}<\/span>\r\n            <span class=\"hotspot-tooltip\" style=\"display:none;\">${formattedText}<\/span>\r\n          <\/div>\r\n        `).css({\r\n          left: `${leftPercent}%`,\r\n          top: `${topPercent}%`,\r\n          transform: 'translate(-50%, -50%)',\r\n          position: 'absolute'\r\n        });\r\n\r\n        $container.append($hotspot);\r\n        $buttons.append(`<button class=\"hotspot-btn\" data-number=\"${number}\">${number}<\/button>`);\r\n      });\r\n    });\r\n  });\r\n\r\n  \/\/ --- STYLE UPDATE FUNCTION ---\r\nfunction updateStyles($block) {\r\n  const active = $block.data('activeNumbers') || [];\r\n  $block.find('.hotspot').each(function () {\r\n    const num = String($(this).data('number'));\r\n    const $tooltip = $(this).find('.hotspot-tooltip');\r\n    if (active.includes(num)) {\r\n      $(this).addClass('enlarged active');\r\n      $tooltip.show(); \/\/ <-- Show tooltip!\r\n    } else {\r\n      $(this).removeClass('enlarged active');\r\n      $tooltip.hide(); \/\/ <-- Hide tooltip!\r\n    }\r\n  });\r\n  $block.find('.hotspot-btn').each(function () {\r\n    const num = String($(this).data('number'));\r\n    $(this)\r\n      .toggleClass('highlight', active.includes(num))\r\n      .toggleClass('enlarged', active.includes(num));\r\n  });\r\n}\r\n\r\n\r\n  \/\/ --- HOTSPOT\/BUTTON CLICK ---\r\n  $(document).on('click', '.hotspot, .hotspot-btn', function (e) {\r\n    e.preventDefault();\r\n    const $clicked = $(e.target).closest('.hotspot, .hotspot-btn');\r\n    const num = String($clicked.data('number'));\r\n    const $block = $clicked.closest('.hotspot-block');\r\n    let active = $block.data('activeNumbers') || [];\r\n\r\n    const wasActive = active.includes(num);\r\n\r\n    \/\/ Clear Hide if checked\r\n    const $hide = $block.find('.hide-numbers-toggle');\r\n    if ($hide.is(':checked')) {\r\n      $hide.prop('checked', false).trigger('change');\r\n    }\r\n\r\n    if (wasActive) {\r\n      active = active.filter(n => n !== num);\r\n    } else {\r\n      active = [num]; \/\/ Only one active at a time\r\n    }\r\n    $block.data('activeNumbers', active);\r\n    updateStyles($block);\r\n\r\n    \/\/ Uncheck \"Show all\" if not all hotspots are active\r\n    const allNums = $block.find('.hotspot').map((_, el) => String($(el).data('number'))).get();\r\n    const $toggle = $block.find('.show-all-toggle');\r\n    const isAllActive = allNums.every(n => active.includes(n));\r\n    $toggle.prop('checked', isAllActive);\r\n  });\r\n\r\n  \/\/ --- SHOW ALL \/ HIDE MUTUAL EXCLUSIVITY AND BEHAVIOR ---\r\n  $(document).on('change', '.show-all-toggle', function() {\r\n    const id = $(this).data('id');\r\n    const $block = $(`.hotspot-block[data-id=\"${id}\"]`);\r\n    const $hide = $block.find('.hide-numbers-toggle');\r\n    const $hotspots = $block.find('.hotspot');\r\n    const allNums = $hotspots.map((_, el) => String($(el).data('number'))).get();\r\n\r\n    \/\/ Mutually exclusive: uncheck Hide if Show All is checked\r\n    if ($(this).is(':checked')) {\r\n      if ($hide.is(':checked')) {\r\n        $hide.prop('checked', false).trigger('change');\r\n      }\r\n      $block.data('activeNumbers', allNums);\r\n    } else {\r\n      $block.data('activeNumbers', []);\r\n    }\r\n\r\n    updateStyles($block);\r\n  });\r\n\r\n  \/\/ Hide handler\r\n  $(document).on('change', '.hide-numbers-toggle', function() {\r\n    const id = $(this).data('id');\r\n    const $block = $(`.hotspot-block[data-id=\"${id}\"]`);\r\n    const $showAll = $block.find('.show-all-toggle');\r\n    const $hotspots = $block.find('.hotspot');\r\n    const checked = $(this).is(':checked');\r\n\r\n    \/\/ Mutually exclusive: uncheck Show All if Hide is checked\r\n    if (checked && $showAll.is(':checked')) {\r\n      $showAll.prop('checked', false).trigger('change');\r\n    }\r\n\r\n    if (checked) {\r\n      $hotspots.hide();\r\n      $block.find('.enlarged, .active').removeClass('enlarged active');\r\n    } else {\r\n      $hotspots.show();\r\n    }\r\n  });\r\n\r\n  \/\/ --- CLICKING OUTSIDE CLEARS EVERYTHING ---\r\n  $(document).on('click', function (e) {\r\n    const $target = $(e.target);\r\n    const $block = $target.closest('.hotspot-block');\r\n    $('.hotspot-block').each(function () {\r\n      const $thisBlock = $(this);\r\n      if (!$block.length || !$block.is(this)) {\r\n        $thisBlock.data('activeNumbers', []);\r\n        $thisBlock.find('.show-all-toggle').prop('checked', false);\r\n        updateStyles($thisBlock);\r\n      }\r\n    });\r\n  });\r\n\r\n});\r\n<\/script>\r\n \t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>","protected":false},"excerpt":{"rendered":"<p>A verdade surpreendente dos homens que julgam a promiscuidade O duplo padr\u00e3o em torno da vida sexual das mulheres n\u00e3o se trata apenas de \"a sociedade envergonhar as mulheres\". Hoe_math explica porque \u00e9 que os homens julgam a promiscuidade de forma diferente da lealdade, recorrendo \u00e0 psicologia, \u00e0 conversa real e \u00e0 l\u00f3gica fria. + Os homens est\u00e3o programados para ver o historial sexual de uma mulher como um ind\u00edcio da sua lealdade. Para [...]<\/p>","protected":false},"author":6,"featured_media":5044,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[149,106,135,100,130,132,136],"tags":[127,126,129,128],"class_list":["post-4673","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-clips","category-gender-roles","category-mental-health","category-free-newsletter-insider-exclusives","category-recent","category-social-dynamics","category-technology","tag-es","tag-fr","tag-ja","tag-pt"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/itishoemath.com\/pt_pt\/wp-json\/wp\/v2\/posts\/4673","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/itishoemath.com\/pt_pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/itishoemath.com\/pt_pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/itishoemath.com\/pt_pt\/wp-json\/wp\/v2\/users\/6"}],"replies":[{"embeddable":true,"href":"https:\/\/itishoemath.com\/pt_pt\/wp-json\/wp\/v2\/comments?post=4673"}],"version-history":[{"count":12,"href":"https:\/\/itishoemath.com\/pt_pt\/wp-json\/wp\/v2\/posts\/4673\/revisions"}],"predecessor-version":[{"id":5375,"href":"https:\/\/itishoemath.com\/pt_pt\/wp-json\/wp\/v2\/posts\/4673\/revisions\/5375"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/itishoemath.com\/pt_pt\/wp-json\/wp\/v2\/media\/5044"}],"wp:attachment":[{"href":"https:\/\/itishoemath.com\/pt_pt\/wp-json\/wp\/v2\/media?parent=4673"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/itishoemath.com\/pt_pt\/wp-json\/wp\/v2\/categories?post=4673"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/itishoemath.com\/pt_pt\/wp-json\/wp\/v2\/tags?post=4673"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}