Comportamento dos Bots (IA)

Resumo

O Quórum preenche com bots toda vaga não ocupada por humano (e qualquer humano que abandona vira bot — IsControlledByBot). O comportamento desses bots já está implementado no backend, mas nunca tinha sido documentado no GDD. Esta página descreve o que o código faz hoje (engenharia reversa) para servir de base de revisão e ajuste — não é um design do zero.

Fonte no código: BotService.cs, BotVoteStrategy.cs, BotFakeAccusationGenerator.cs, BotBehaviorConfigReader.cs, BotInfoEnvelopeBuilder.cs, BotTargeting.cs, DeckBuilder.cs, AbilityAssigner.cs; e no cliente BotAutoPicker.cs. Há cobertura de testes (BotVoteStrategyTests, BotFakeAccusationTests).

Revisão 2026-06-17: esta rodada não redesenha do zero — registra ajustes sobre o comportamento já implementado (defesa de aliado fascista exposto no voto (revertida em 2026-06-21), mira refinada por habilidade/time e remoção de Linha Secreta dos bots). Ver a seção Ajustes decididos nesta revisão, em especial a ⚠️ sobre a trava conduta = time.

Revisão 2026-06-21: segunda rodada — regras de uso das habilidades de dia pelos bots (Execução, Pressão Psicológica, Voto Secreto, Intervenção), reversão da defesa de aliado fascista exposto (o bot passa a votar junto com o lobby), mudança em Voto Secreto (o conjurador continua vendo os votos), sistema de personalidades e nomes próprios dos bots. Ver Revisão 2026-06-21 — habilidades de dia, voto, personalidade e nomes.

Revisão 2026-06-22: detalhado o sistema de personalidades — 5 personalidades (Líder, Estrategista, Executor, Social, Observador), atribuição aleatória e independente de conduta/time, sem “troll”. Modelo, contextos de fala e banco de frases em Personalidades de Bot.

Quem é “bot”

Dois tipos de slot passam pelo mesmo pipeline de bot: os fillers BOT_* originais e qualquer humano que abandonou e foi marcado IsControlledByBot. A partir daí, o slot rendido se comporta exatamente como um bot.

Seleção de Função (tela de sorteio)

BotAutoPicker escolhe a função do bot de forma determinística: random semeado por (lobbyId, turnIndex), então host e todos os clientes chegam à mesma escolha sem coordenação. Também é usado para auto-pick quando um humano estoura o tempo do turno. Pega qualquer função ainda disponível, sem preferência temática.

Votação (BotVoteStrategy)

Ordem de decisão (a primeira que se aplica vence):

  1. Coerção — se o bot é vítima de Pressão Psicológica (ForcedDayVoteTarget), o voto do dia é travado no alvo do conjurador.
  2. Marca fascista humanaForceVoteTarget (definido por um humano fascista) sobrepõe qualquer heurística.
  3. Heurística por conduta + time (abaixo).

Conjunto de candidatos: vivos, exceto ele mesmo; na noite, fascista não vota em fascista; nunca vota em quem já está IsMarkedForDie (ex.: vítima de sequestro que morre no fim do dia).

Base por Conduta (sobre os candidatos + placar ao vivo):

CondutaComportamento
Desconhecidavota no menos votado / sem votos (25% de chance de voto puramente aleatório)
Ordemjoga para criar empate (trava a mesa, mantém mais gente viva)
Caosacompanha o mais votado (reforça a condenação que está se formando)

Override por Time:

TimeComportamento
Sobreviventese investigou e identificou um fascista (ou conduta do Caos), vota nele. Senão, remove dos candidatos os aliados confiáveis (investigação própria + revelações públicas: conduta da Ordem revelada, time Sobrevivente revelado) e desconta probabilisticamente quem foi publicamente “vouchado” como aliado (PublicAllyClaimCount), depois cai na base por conduta
Fascistaevita o Fanático, o alvo do Mercenário e fellow fascists; se há condenação se formando, coordena empilhando no líder; senão semeia pela própria conduta. (Revisão 2026-06-21) se um aliado fascista é exposto (conduta/time revelados), não o defendevota junto com o lobby para não se entregar — ver Override de voto
Mercenáriovota no alvo do contrato assim que isso o fizer liderar/empatar (chance real de enforcamento); fora disso se mistura votando como Desconhecida para não se expor
Fanáticoquer ser enforcado: se já é o mais votado, vota no menos votado (pra ninguém ultrapassar sua liderança); senão empata para esticar a partida

Ritmo: à noite só fascistas votam (kill). Os bots votam em sequência (exigência do lock otimista do SaveVote), com delay aleatório entre votos lido do Remote Config (bot_behavior.voteDelaySeconds, default 0.5–3.0s), comprimido para caber em 80% da duração da fase. A ordem é embaralhada e o placar é atualizado em memória a cada voto, então cada bot reage ao que já foi votado.

Habilidades de Noite (ProcessBotNightAbilities)

Dispara para bot vivo, não-sequestrado, que ainda não usou a habilidade, cuja habilidade está na lista ativa: Análise de Conduta, Investigação Profunda, Vigília, Acolhimento, Sequestro, Infecção, Últimas Palavras, Linha Secreta, Manipulação de Dados, Falsificação, Reanimar. Passivas (Dupla Identidade, Duro na Queda) e auto-resolvidas (Espionagem) não são invocadas ativamente.

  • Taxa de uso (RollAbilityUse): a maioria 100%; Linha Secreta 50% (bot não digita, não explora o canal privado).
  • Alvo por habilidade (com segurança de time):
HabilidadeAlvo
Sequestro / Infecçãovivo não-fascista, peso 1 + 2×NotasCompartilhadas (favorece quem “fala” mais)
Análise / Investigação Profundaevita fellow fascists, evita já-investigados, viés para quem é “barulhento”
Vigíliaprotege fellow fascist (se fascista), senão espalha; pula já-protegidos
Acolhimentofellow fascist, senão qualquer vivo
Últimas Palavrasponderado (exclui fascistas se o conjurador é fascista)
Manipulação de Dadosfellow fascist (a conduta “Ordem” forjada cobre o aliado), senão aleatório
Linha Secretacolega de time, senão aleatório
Falsificação / Reanimarsorteia do pool morto na noite anterior (KilledLastNight)
  • Pacing: pausa “humana” de 0.4–1.5s antes de cada habilidade resolver (budget 5s/noite), salvando estado incremental para os efeitos pingarem em vez de explodirem no fim da fase.

⚠️ A tabela acima é o estado atual do código. A mira refinada por habilidade/time e a remoção de Linha Secreta dos bots foram decididas nesta revisão — ver Ajustes decididos nesta revisão. Vários ramos por time dessa tabela são código morto sob a trava conduta = time (explicada lá).

Habilidades de Dia (ProcessBotDayAbilities)

Antes da votação, no início do DayMiddle: Execução, Pressão Psicológica, Voto Secreto.

  • Execução: mata na hora — alvo é não-fascista (se conjurador fascista) ou o mais “barulhento”.
  • Pressão: força o voto da vítima — mesma lógica de alvo.
  • Voto Secreto: liga o anonimato da rodada (sem alvo).
  • Intervenção roda numa passada própria no fim do dia: bot fascista cancela a execução pendente se o condenado é um fellow fascist.

As regras de uso das habilidades de dia pelos bots (quando usar e em quem mirar) foram detalhadas na Revisão 2026-06-21 abaixo — o resumo acima é o estado do código antes desses ajustes.

Ajustes decididos nesta revisão

Rodada de revisão: o que segue ajusta o comportamento já implementado. Onde a regra fala “por time”, leia junto com a trava de atribuição abaixo — hoje conduta e time são amarrados 1:1, então alguns ramos só existem para um futuro em que essa amarra caia.

Qual habilidade cai em qual time (a trava de hoje)

Resposta direta à pergunta da issue (“investigar qual habilidade pode cair em qual time”). No código atual a cadeia é determinística:

  • DeckBuilder fixa conduta = time: Fascista → Caos, Sobrevivente → Ordem, Mercenário e Fanático → Desconhecida.
  • AbilityAssigner.PickUnique sorteia a habilidade só do pool da conduta do jogador (sem repetir até o pool esgotar).

Logo, cada pool de habilidade só cai num conjunto fixo de times:

Pool (conduta)HabilidadesQuem porta hoje
OrdemAcolhimento, Análise de Conduta, Investigação Profunda, Vigília, Execução, Reanimar, Duro na QuedaSó Sobrevivente
CaosSequestro, Infecção, Manipulação de Dados, Pressão Psicológica, IntervençãoSó Fascista
DesconhecidaFalsificação, Linha Secreta, Últimas Palavras, Voto Secreto, Espionagem, Dupla IdentidadeSó Mercenário ou Fanático

⚠️ Consequência para as regras por time abaixo. Isso confirma a premissa da issue: Análise/Investigação são Ordem → nunca caem em fascista (por isso a anotação “evita fellow fascist” nelas é código morto). Mas também significa que regras como Sobrevivente com Últimas Palavras ou Fascista/Sobrevivente com Falsificação não disparam hoje — aquele time nunca recebe aquela habilidade. Ficam registradas para quando (e se) a conduta deixar de ser amarrada ao time — desacoplamento que é uma decisão maior, fora desta issue (ver Pendências).

Override de voto — Fascista NÃO defende aliado exposto (revisão 2026-06-21)

Reverte a decisão de 2026-06-17 (“Fascista defende aliado exposto”). A defesa ativa por empate foi descartada: defender um aliado já exposto é justamente o que entrega o bot.

Quando a conduta ou o time de um aliado fascista é publicamente exposto (ex.: conduta revelada por Últimas Palavras/Execução ou outro reveal global — IsConductRevealed / GlobalRevealedConduct), o bot fascista não tenta salvá-lo: ele vota junto com o lobby, acompanhando a maioria contra o aliado exposto.

Racional (do design): se o bot é o último a votar e deixa de votar no aliado exposto, ele vira o ponto fora da curva e fica suspeito. Acompanhar a condenação é o que preserva o disfarce do bot. A coordenação normal do fascista (empilhar no líder, semear pela conduta) continua valendo enquanto a identidade do aliado não foi exposta.

Pendência: o caso do aliado muito votado mas ainda não revelado (ex.: ≥ 60% dos votos vivos, sem reveal de conduta/time) não foi decidido nesta rodada — abandonar junto ou ainda tentar diluir o voto? Fica em Pendências.

Mira por habilidade (noite)

Todos os ajustes preservam as travas de fase/segurança já existentes; só refinam o alvo. A ênfase pedida foi a estratégia por time nas habilidades de conduta desconhecida (Últimas Palavras e Falsificação abaixo).

  • Análise de Conduta / Investigação Profunda (Ordem → Sobrevivente). Remover a anotação “evita fellow fascist” — inalcançável aqui (o portador é sempre Sobrevivente). Mantém o viés para os barulhentos e, quando eles se esgotam, passa a focar nos mais quietos (varre a mesa ao longo das noites).
  • Vigília (Ordem → Sobrevivente). Se há um fascista confirmado (vivo ou morto), protege quem fez a acusação correta contra ele. Desprioriza quem usou Execução e Reanimar (já se expuseram) — só os protege se não houver outro alvo. Sem informação → alvo aleatório (entre os não-revelados, como hoje).
  • Acolhimento (Ordem → Sobrevivente). Só usa a partir do 2º dia. Se a votação está polarizada (~51% × 49%) entre dois jogadores, acolhe o lado de 51% — a polarização pode estar protegendo um inocente, e travar a execução mantém a dúvida viva. Também acolhe quem acusou alguém e acertou a conduta/time.
  • Reanimar (Ordem → Sobrevivente). Revive o Sobrevivente que mais falou; não revive outros times. Espera até a 2ª rodada para usar. (Lembrar: usar Reanimar revela a conduta do portador no ato — ver Reanimar.)
  • Manipulação de Dados (Caos → Fascista). Mantém a regra; prefere um aliado fascista não-acusado ou que foi mencionado; em vez de aleatório, usa em quem fala menos. ⚠️ A regra de origem termina truncada (“só começa a usar…“) — provável intenção: só começar a usar a partir de certa rodada/condição; a definir.
  • Últimas Palavras (Desconhecida → Merc/Fanático hoje). O peso atual permanece. Sobrevivente (quando puder portá-la): mira quem menos falou no chat; se o portador vem acertando condutas via Análise, mira quem ainda não teve a conduta denunciada (maximiza o reveal pós-morte sobre alguém ainda oculto). Mercenário e Fanático: sem regra extra. (Sob a trava atual, o ramo Sobrevivente não dispara — ver acima.)
  • Falsificação (Desconhecida → Merc/Fanático hoje). Sempre usa em alguém que morreu (copia a habilidade do morto na rodada seguinte — ver Falsificação). Prioridade do cadáver a copiar, por time do portador; desempate sempre pela conduta do morto: Desconhecida antes de Ordem:
PortadorPrioridade do morto a copiar
FanáticoFascista > Mercenário > Sobrevivente. Evita copiar habilidade que revela time e já é de conhecimento público (ex.: ao morrer um Duro na Queda, a mesa já sabe que ele a tinha — copiar não agrega e ainda expõe).
MercenárioFascista > Fanático > Sobrevivente
FascistaFascista > Mercenário ou Fanático > Sobrevivente
SobreviventeFascista > Fanático ou Mercenário > Sobrevivente

Pós-cópia — qual habilidade copiada o bot aceita usar: Fanático, Mercenário e Fascista não usam habilidade copiada que revela time/conduta (evita se expor); Sobrevivente não tem restrição. (Sob a trava atual, só Merc/Fanático portam Falsificação; os ramos Fascista e Sobrevivente são para o futuro.)

  • Linha Secreta (Desconhecida → Merc/Fanático). Decisão: bots não recebem mais Linha Secreta enquanto não houver LLM integrada — sem conversa, o canal privado é desperdiçado. Hoje ela está na lista ativa de bot com 50% de uso; passa a ser excluída na atribuição ao bot. ⚠️ Definir o comportamento de atribuição: se o sorteio cairia em Linha Secreta para um bot (Merc/Fanático), re-sortear outra habilidade Desconhecida — a definir.

Revisão 2026-06-21 — habilidades de dia, voto, personalidade e nomes

Segunda rodada de ajustes sobre o bot já implementado. Onde uma regra fala “por time”, continua valendo a trava conduta = time descrita acima — habilidades de dia caem em times fixos hoje (Execução → Ordem/Sobrevivente; Pressão Psicológica e Intervenção → Caos/Fascista; Voto Secreto → Desconhecida/Merc·Fanático). Ramos de outros times ficam registrados para um eventual desacoplamento.

Execução (bot) — quando e em quem

Refina o alvo-placeholder de hoje (“não-fascista se conjurador fascista, senão o mais barulhento”). Sob a trava atual o portador de Execução é sempre Sobrevivente (conduta da Ordem), então o bot se apresenta como conduta da Ordem / time Sobrevivente.

  • Quando: só nos dias 2 e 4. Há uma chance de usar em cada um, crescente até o dia 4 — no dia 4 o uso é certo (se ainda não usou e a habilidade segue disponível). As probabilidades exatas dos dias 2 e 4 ficam a definir (balanceamento).
  • Alvos preferidos:
    1. Quem acusa o bot incorretamente — quem o acusa de ser algo diferente de conduta da Ordem / time Sobrevivente (contradiz a identidade que ele sustenta).
    2. Um jogador que está empatado na votação — havendo empate, o bot pode executar um dos empatados. Exceção de autopreservação: se o próprio bot está empatado com alguém, ele não executa o outro empatado — matar o outro o deixaria isolado como mais votado e ele morreria na votação. Evita esse cenário.

Pressão Psicológica (bot) — direcionar e proteger

Portador é Fascista (conduta do Caos) hoje. A intenção do bot ao usar Pressão:

  • Tirar voto de um aliado: usar a habilidade em alguém que está votando num aliado fascista, redirecionando esse voto para outro alvo — na prática, remove um voto de cima do aliado.
  • Semear o voto que ele mesmo daria: forçar uma pessoa a votar em quem o bot votaria segundo as regras da sua conduta/time.
  • Iniciar a votação por procuração: logo no começo, fazer alguém que ainda não votou votar num alvo do bot antes de o próprio bot votar — a pressão sobre o alvo começa sem o bot aparecer como iniciador.
  • ⚠️ A regra de origem termina truncada (“Ele também pode…“) — falta uma terceira aplicação; a definir.

⚠️ Depende de Pressão com alvo de voto escolhido. Hoje Pressão Psicológica sorteia aleatoriamente o jogador em quem a vítima é forçada a votar (o StandardGameConfig marca SelectTwoTargets, mas o strategy randomiza o segundo alvo). Todas as intenções acima exigem escolher esse alvo do voto forçado. Reconciliar: ou a habilidade passa a aceitar o segundo alvo, ou as regras do bot se limitam ao alvo aleatório. A definir.

Voto Secreto (bot) — e a mudança na habilidade

Mudança na habilidade (não só no bot). Voto Secreto se mostrou fraca para Sobreviventes. Decisão: quem usa a habilidade continua vendo quem votou em quem, enquanto para o resto da mesa a votação fica anônima. Isso dá ao conjurador uma informação privada — dá para cruzar quem de fato votou contra quem dizia desconfiar de quem. Registrada também em Voto Secreto como mudança de design a implementar (a nota técnica ainda espelha o código atual, que oculta os votos de todos).

Regras de uso por time (portador é Merc/Fanático hoje; Sobrevivente e Fascista ficam para o desacoplamento):

TimeQuando usaO que faz com a info
Sobreviventelogo no iníciolê cedo como cada um está votando, deduz quem é de time oposto e guarda na memória para decisões futuras
Fascistaa partir do 1º dia, se aliados do time dele estão sendo acusadosusa a leitura privada para defender/coordenar
Mercenário1º dia; vota direto no alvo do contrato
Fanático1º dia; não vota em ninguém / vota para empatar

Intervenção (bot) — sem mudança

Mantida a regra já documentada: o bot Fascista cancela a execução pendente no fim do dia se o condenado é um aliado fascista. Sem alteração nesta revisão.

Override de voto — ver reversão acima

A regra de não defender aliado fascista exposto (votar junto com o lobby) está detalhada em Override de voto — Fascista NÃO defende aliado exposto, na seção de ajustes acima.

Personalidades de bot

Além do comportamento por conduta/time, cada bot recebe uma personalidade sorteada que modula como, quando e quanto ele fala e vota — sem mudar a estratégia de vitória. São 5: Líder, Estrategista, Executor, Social e Observador. Cada uma é um preset de poucos knobs:

PersonalidadeProatividadeVolumeOrdem na falaOrdem no votoConteúdo preferidoGatilho
Líderaltaaltofala primeironormaldiretiva / chamada à decisãoproativo
Estrategistaaltaaltocedonormalrecap dos fatos da rodadaproativo
Executorbaixabaixonormalvota primeiro— (age, não fala)proativo no voto
Socialmédiaaltonormalnormalreage ao que falaramreativo a tudo
Observadornenhumabaixopor últimotardiosó quando citado

Decisões (2026-06-22): atribuição totalmente aleatória (1 por bot, não amarrada a nome/avatar/conduta/time); personalidade não cruza com conduta/time (qualquer combo vale); Executor pode votar cedo sem ressalva; sem Troll — estes 5 substituem os eixos abstratos antigos (Falante↔Quieto / Troll↔Organizado). Quais knobs viram Remote Config fica pra depois.

Composição com a estratégia: time/conduta decide o ato (em quem votar, se mente, quando acusar); personalidade decide a embalagem (tom da frase + tagarelice extra). Por isso as frases são neutras de time e usam placeholders ({alvo}, {jogador}, {acusador}).

Modelo completo, contextos de fala e banco de ~30 frases por personalidade em Personalidades de Bot. Nada implementado ainda.

Nomes próprios dos bots

Os bots deixam de aparecer só como slots BOT_* e passam a usar nomes próprios sorteados aleatoriamente, para parecerem jogadores comuns na mesa. Origem do pool de nomes, unicidade dentro da partida, localização e relação com o sistema de Nome e Avatar ficam em Pendências.

Comunicação dos bots no chat

Bots não digitam texto livre. Eles produzem dois tipos de mensagem estruturada (envelopes opacos), que o host apenas repassa pelo Vivox:

  1. Resumo de info (BuildBotInfoEnvelopes, pós-NightEnd): “Bot X acha que Fulano tem conduta Y”, a partir do que a habilidade de investigação revelou.
  2. Acusações falsas (BotFakeAccusationGenerator, no dia) — ruído deliberado dos times do mal:
TimeChanceO que faz
Mercenário60%difama o alvo do contrato (4 variações de claim)
Fascista50%contra-acusa um sobrevivente barulhento, peso 1 + NotasCompartilhadas + 3×NotasContraFascistas (vingança em quem acusou fascistas)
Fanático50%50% “desmente” o aliado mais vouchado (chama de Fascista), senão acusa alguém aleatório

Nunca difama quem já teve identidade revelada publicamente (mentira contra fato confirmado só entrega o bot).

Revisão 2026-06-21: a entrada do dump para a fala do Sobrevivente no chat ficou incompleta (“Sobrevivente —” sem o restante); Mercenário, Fascista e Fanático permanecem como descrito acima. Definir a comunicação do bot Sobrevivente no chat fica em Pendências.

Privacidade (contrato importante): como o host pode ser um jogador, todo envelope é pré-serializado no servidor e o host nunca lê time/conduta/alvo em forma estruturada. Resultados privados de habilidade (confirmções, investigações) não são repassados — só saídas públicas (ex.: Execução). Isso evita que um host-jogador descubra coisas antes da mesa.

Tuning disponível

  • Remote Config bot_behavior (BotBehaviorConfigReader): hoje só voteDelaySeconds.min/max. A intenção declarada no código é que novos knobs de bot entrem nesse mesmo blob, não em chaves novas.
  • Hardcoded hoje (candidatos a virar config se quisermos tunar sem deploy): % de acusação falsa por time, taxa de uso por habilidade, janelas de pacing.

Pendências genuínas (a decidir)

Estas não estão resolvidas no código e seguem abertas:

  • Indicador visual de bot na carta do jogador — arte e posicionamento (herdado do Quórum).
  • Limite de bots no matchmaking: preferir humanos até um threshold antes de completar com bots, ou aceitar qualquer composição desde já?
  • Chat de texto livre: hoje bots só emitem NoteSummary/sistema. Confirmar se essa é a postura final ou se queremos fala mais “natural”.
  • Dificuldade / personalidade: expor ao GD ajustes de dificuldade e de “personalidade” por conduta/time. (O comportamento por conduta/time foi detalhado nesta revisão, mas segue hardcoded — a exposição ao GD continua pendente.) Ver Personalidades de Bot.
  • Revisão do card #122 (Draft de Persona / Seleção) à luz do auto-pick determinístico.
  • Desacoplar conduta de time: habilitar as regras por time acima que hoje não disparam (Sobrevivente com Últimas Palavras/Falsificação, Fascista com Falsificação). DeckBuilder amarra conduta = time 1:1 e AbilityAssigner sorteia só do pool da conduta — decisão de design maior, fora desta issue.
  • Limiar de “aliado exposto” no voto fascista (60% é ilustrativo) e confirmação de que IsConductRevealed / GlobalRevealedConduct cobrem bem o caso “exposto publicamente”.
  • Manipulação de Dados — gatilho de início de uso: a regra de origem ficou truncada (“só começa a usar…”); definir a partir de quando.
  • Linha Secreta — re-sorteio na atribuição: o que o bot Mercenário/Fanático recebe no lugar quando o sorteio cairia em Linha Secreta.
  • Acolhimento (2º dia) e Reanimar (2ª rodada): confirmar a contagem (dia 2 vs. rodada 2) e a fonte do contador para o gate.
  • Execução (bot) — curva de chance: probabilidades de uso nos dias 2 e 4 (certo no dia 4) a calibrar.
  • Pressão Psicológica (bot): (a) regra de origem truncada (“Ele também pode…”); (b) depende de a habilidade aceitar alvo de voto escolhido — hoje o segundo alvo é aleatório (ver ⚠️ na Revisão 2026-06-21).
  • Voto Secreto — mudança de habilidade a implementar: conjurador passa a ver os votos enquanto a mesa fica anônima (ver Voto Secreto); a nota técnica ainda espelha o comportamento antigo.
  • Comunicação do Sobrevivente no chat: entrada do dump incompleta; definir o que o bot Sobrevivente comunica.
  • Sistema de personalidades — modelo definido em Personalidades de Bot (5 personalidades, atribuição aleatória, independente de conduta/time, sem troll). Em aberto lá: implementar os pools de frase, quais knobs viram config, localização e gatilhos finos de fala.
  • Nomes próprios dos bots: origem do pool, unicidade dentro da partida, localização e relação com Nome e Avatar.
  • Override de voto — aliado muito votado mas não revelado: abandonar junto ou tentar diluir o voto? (ver Override de voto).

Ver Também