Três Arquivos, Três Funções e o Custo da Confusão
Se você passou algum tempo recentemente em Slacks de operadores ou em newsletters de marketing, provavelmente já lhe disseram para "adicionar um llms.txt" da mesma forma que antes diziam para adicionar um sitemap. O conselho costuma ser pobre em detalhes e em precisão. Parte dele sugere que llms.txt fará com que você seja citado no ChatGPT. Parte dele insinua que ele controla o crawling. Nenhuma das duas coisas é verdade.
Três arquivos com nomes parecidos surgiram nos últimos anos, cada um resolvendo um problema diferente:
- robots.txt controla se um crawler pode buscar suas páginas. Existe desde 1994 e tem peso real, no sentido de que operadores legítimos o respeitam.
- ai.txt é uma declaração de permissão e licenciamento voltada ao treinamento de IA. Ele diz aos operadores com o que você consente ou não. Ele não bloqueia nada.
- llms.txt é um índice curado para agentes de codificação de IA e ferramentas similares. Ele diz a um agente de desenvolvedor quais documentos importam e onde encontrá-los. Não é uma diretiva de crawl nem um pedido de citação.
Confundir essas peças custa caro. Bloqueie o bot errado e você perde visibilidade em AI Overviews. Confie no arquivo errado para impedir o treinamento e você acabará no dataset de alguém de qualquer jeito. Adicione llms.txt porque um blog disse que ele melhora rankings, e você terá adicionado custo de manutenção para nenhum sinal de ranking.
robots.txt para Crawlers de IA: O Que Realmente Funciona em 2026
robots.txt é o único dos três arquivos com suporte amplo e deliberado dos principais operadores de crawlers de IA. OpenAI, Anthropic, Google, Meta, Common Crawl, Perplexity e Apple publicam strings de user-agent e instruções para bloqueá-los via robots.txt. A conformidade não é legalmente obrigatória, mas os principais operadores seguem a diretiva na prática, e ser flagrado violando-a tende a ser um desastre de relações públicas.
Aqui está o cardápio de user-agents que você realmente precisa conhecer em 2026:
| Nome do Bot | Operador | Finalidade | Diretiva Disallow |
|---|---|---|---|
| GPTBot | OpenAI | Dados de treinamento para o ChatGPT | User-agent: GPTBot |
| OAI-SearchBot | OpenAI | Indexação para resultados de busca do ChatGPT | User-agent: OAI-SearchBot |
| ChatGPT-User | OpenAI | Buscas iniciadas pelo usuário (navegação) | User-agent: ChatGPT-User |
| ClaudeBot | Anthropic | Dados de treinamento para o Claude | User-agent: ClaudeBot |
| Claude-SearchBot | Anthropic | Indexação para busca do Claude | User-agent: Claude-SearchBot |
| Google-Extended | Treinamento para Gemini e Vertex AI | User-agent: Google-Extended | |
| CCBot | Common Crawl | Arquivo aberto da web, usado por muitos modelos | User-agent: CCBot |
| Meta-ExternalAgent | Meta | Dados de treinamento para Llama e Meta AI | User-agent: Meta-ExternalAgent |
| Bytespider | ByteDance | Dados de treinamento para TikTok e Doubao | User-agent: Bytespider |
| PerplexityBot | Perplexity | Indexação para Perplexity Answers | User-agent: PerplexityBot |
| Applebot-Extended | Apple | Treinamento para Apple Intelligence | User-agent: Applebot-Extended |
Algumas coisas que vale entender antes de começar a bloquear:
Treinamento e busca são tarefas diferentes. O GPTBot treina o modelo. O ChatGPT-User busca uma página quando um usuário pede explicitamente que o ChatGPT leia algo. Bloqueie o GPTBot e não o ChatGPT-User, e você opta por sair do treinamento mantendo-se legível quando os usuários enviam seu link ao ChatGPT.
Bots de busca são separados. OAI-SearchBot e PerplexityBot fazem crawl para recuperação, não para treinamento. Bloqueá-los retira você dos resultados de busca desses produtos. Se você se importa em ser citado no ChatGPT ou no Perplexity, deixe esses bots em paz.
Google-Extended é opt-out apenas para treinamento do Gemini. Desautorizá-lo não afeta o Googlebot regular nem seu ranking no Google Search. É um user agent separado especificamente para que editores possam optar por sair do treinamento sem perder tráfego de busca.
Uma configuração inicial razoável para um site de conteúdo que quer visibilidade em IA sem ser um corpus de treinamento se parece com isto:
# Block training bots
User-agent: GPTBot
Disallow: /
User-agent: ClaudeBot
Disallow: /
User-agent: Google-Extended
Disallow: /
User-agent: CCBot
Disallow: /
User-agent: Meta-ExternalAgent
Disallow: /
User-agent: Bytespider
Disallow: /
User-agent: Applebot-Extended
Disallow: /
# Allow search and user-fetch bots
User-agent: OAI-SearchBot
Allow: /
User-agent: ChatGPT-User
Allow: /
User-agent: PerplexityBot
Allow: /
User-agent: Claude-SearchBot
Allow: /
Esse padrão, bloqueando treinadores enquanto permite buscadores e bots de busca, tornou-se comum entre editores. Segundo o rastreamento da Originality.ai, 88% dos principais veículos de notícias globais agora bloqueiam pelo menos um grande crawler de treinamento de IA. Para sites de e-commerce ou SaaS o cálculo é diferente: a maioria deixa os bots de treinamento livres porque estar no conjunto de treinamento ajuda no reconhecimento de marca nas saídas do modelo.
ai.txt: A Camada de Permissão e Licenciamento
ai.txt é uma fera diferente. Foi proposto pela Spawning AI, equipe por trás do Have I Been Trained, como um arquivo padronizado que expressa suas preferências de treinamento de forma estruturada e legível por máquina. A intenção não é bloquear crawlers. É declarar consentimento.
Um ai.txt mínimo se parece aproximadamente com isto:
User-Agent: *
Disallow: images/
Disallow: video/
Disallow: text/
A especificação da Spawning usa tipos de conteúdo em vez de caminhos, sinalizando "não consinto que minhas imagens sejam usadas para treinamento." O arquivo deve ser lido por operadores de treinamento de boa-fé, curadores de datasets e (em teoria) auditores que queiram saber quem optou por sair.
Algumas observações honestas sobre ai.txt em 2026:
- A adoção é fraca. A maioria dos sites não tem um. O público são curadores de datasets, não engenheiros de crawler convencionais, e o ciclo de conformidade é mais lento.
- É um sinal, não uma barreira. ai.txt não impede buscas. Ele expressa preferências. Um crawler que ignora o ai.txt não está fazendo nada tecnicamente errado, apenas algo eticamente questionável.
- Ele complementa o robots.txt. O robots.txt diz "não faça crawl." O ai.txt diz "se você fizer crawl, aqui está para o que pode ser usado."
- Importa mais para sites com muitos criadores. Plataformas de imagens, portfólios de arte, sites de música e plataformas de stock são as mais propensas a usar ai.txt porque a questão de licenciamento é mais aguda para elas.
Se você se importa em poder dizer "expressamos não-consentimento para treinamento," vale a pena adicionar o ai.txt. É uma mudança de cinco minutos. Se você só se importa com controle de acesso, robots.txt faz mais.
llms.txt: O Arquivo de Descoberta para Desenvolvedores
Agora o arquivo com mais hype e mais mal-entendidos.
llms.txt foi proposto por Jeremy Howard em setembro de 2024, e a especificação vive em llmstxt.org. Seu propósito é estreito e específico. É um arquivo markdown na raiz de um domínio que oferece a agentes de codificação de IA (Cursor, Claude Code, Devin e similares) um mapa curado da sua documentação. O formato fica assim:
# My Project
> A short description of the project so an LLM has context.
## Docs
- [Getting Started](https://example.com/docs/getting-started.md): Quick setup
- [API Reference](https://example.com/docs/api.md): Full API surface
- [Configuration](https://example.com/docs/config.md): Config options
## Optional
- [Changelog](https://example.com/changelog.md): Release notes
O formato é intencionalmente simples. É H1 (nome do projeto), blockquote (descrição) e depois seções de links. Cada link aponta para uma versão markdown da página. Um agente lendo o llms.txt consegue entender rapidamente o que seu projeto faz e onde vive a documentação canônica, sem precisar interpretar todo o seu HTML, sidebar e navegação.
A Mintlify e a Anthropic estenderam isso com o llms-full.txt, uma versão com tudo embutido. Em vez de linkar para arquivos separados, o llms-full.txt contém o markdown completo de toda a sua documentação em um único documento. A análise do arquivo feita pela Mintlify explica o caso de uso: quando um agente de codificação está raciocinando sobre sua biblioteca, ele pode puxar um único arquivo e ter toda a sua documentação na janela de contexto. Sem buscas adicionais necessárias.
Agora, a parte que aparece distorcida em conteúdos de SEO:
- llms.txt não é um sinal de citação. Ele não diz ao ChatGPT, Claude ou Perplexity para citarem você com mais frequência.
- llms.txt não é uma diretiva de crawl. Ele não bloqueia nem convida nenhum crawler.
- llms.txt não é usado pelo Google. Gary Illyes, do Google, afirmou publicamente que o Google não tem planos de usá-lo.
- llms.txt não melhora seu ranking de busca de IA. Não há efeito mensurável na visibilidade no ChatGPT, Perplexity ou Claude Web porque nenhum desses produtos o lê como entrada de ranking.
O que ele faz bem: se o seu público usa agentes de codificação para consumir sua documentação, o llms.txt torna essa experiência mais limpa. O site de documentação da Anthropic, os docs da Cloudflare, projetos hospedados na Mintlify e muitos SDKs open-source publicam llms.txt porque suas documentações são carregadas rotineiramente no Cursor ou no Claude Code por desenvolvedores que constroem integrações.
Esse é o caso de uso real. É uma funcionalidade de ferramenta para desenvolvedores, não uma funcionalidade de marketing.
O Que Cada Arquivo Controla, Lado a Lado
| Propriedade | robots.txt | ai.txt | llms.txt |
|---|---|---|---|
| Propósito principal | Controle de acesso ao crawl | Preferência de treinamento/licenciamento | Índice curado de docs para agentes de IA |
| Quem o lê | Todos os crawlers de busca e IA | Curadores de datasets, ferramentas da Spawning AI | Agentes de codificação de IA (Cursor, Claude Code etc.) |
| Quem propôs | Martijn Koster, 1994 (RFC 9309 em 2022) | Spawning AI | Jeremy Howard, set/2024 |
| Aplicação | Respeitado por todos os operadores principais | Voluntária, auditada externamente | Voluntária, decisão do lado do agente |
| Adoção atual | Quase universal | Números percentuais de um dígito | ~10% dos domínios rastreados (SE Ranking) |
| Efeito na visibilidade de busca de IA | Direto (permite/bloqueia bots de indexação) | Nenhum | Nenhum |
| Efeito na inclusão em treinamento | Direto (bloqueia bots de treinamento) | Apenas sinal | Nenhum |
| Tempo até o impacto | Horas a dias | Meses (depende da cadência do dataset) | Imediato para agentes que oferecem suporte |
| Custo de manutenção | Baixo | Muito baixo | Médio (precisa ficar em sincronia com os docs) |
A linha mais importante dessa tabela é "efeito na visibilidade de busca de IA." Apenas um desses arquivos realmente move o ponteiro ali, e é o que existe há 30 anos.
O Divisor de Águas da Cloudflare: Julho de 2025
Uma breve lição de história, porque importa para o que está por vir.
Em julho de 2024, a Cloudflare lançou um toggle de um clique para bloquear bots de IA, scrapers e crawlers em qualquer site na sua rede. Foi divulgado como "Declaring Your AIndependence." Era opt-in. Muitos sites adotaram rapidamente, especialmente editores.
Um ano depois, em 1º de julho de 2025, a Cloudflare inverteu o padrão. Novos domínios adicionados à Cloudflare agora bloqueiam crawlers de IA por padrão. Clientes existentes receberam um upgrade de um clique. A Cloudflare chamou isso de modelo "baseado em permissão": operadores de IA precisam negociar acesso em vez de fazer scraping por padrão.
A Cloudflare fica na frente de aproximadamente 20% da web pública. O movimento deles converteu efetivamente uma parcela substancial da internet de aberta por padrão para fechada por padrão para treinamento de IA.
Alguns números dos próprios dados da Cloudflare para o H2 de 2025:
- 416 bilhões de requisições de bots de IA registradas em toda a rede.
- Tráfego do GPTBot subiu 147% ano a ano, indicando que a OpenAI está buscando de forma mais agressiva mesmo com mais sites bloqueando.
- Tráfego do Meta-ExternalAgent subiu 843% YoY, o maior crescimento entre qualquer crawler de IA no conjunto de dados.
- 2,5 milhões de sites aderiram ao robots.txt gerenciado pela Cloudflare para IA, no qual a Cloudflare mantém a lista de bots para você.
O detalhe do "robots.txt gerenciado" aponta para onde o ecossistema está indo: listas de bots mudam rápido demais para sites individuais manterem. Uma nova startup de IA é lançada todo mês, cada uma com seu próprio user-agent. Cada vez mais, sites delegam a uma camada de infraestrutura que mantém a lista centralizada.
Se você está na Cloudflare e não checou suas configurações de gerenciamento de bots desde 2024, cheque. O padrão mudou debaixo de você.
O Teste de Realidade da Adoção
É tentador, lendo o Twitter de SEO, achar que llms.txt está em todo lugar. Não está.
A SE Ranking analisou mais de 300.000 domínios no início de 2026 e descobriu que a adoção de llms.txt fica em torno de 10% (e se inclina fortemente para sites técnicos e voltados a desenvolvedores). O State of llms.txt 2026 report da Presenc.ai encontrou números semelhantes, com adoção concentrada em docs de SaaS, empresas de ferramentas de IA e projetos open-source.
Alguns padrões dos dados:
- SaaS com documentação extensa lidera a adoção. Anthropic, Cursor, Mintlify, Vercel, Cloudflare e Supabase quase todas publicam llms.txt e llms-full.txt.
- Sites de marketing e conteúdo ficam atrás. Veículos de notícias, blogs e sites de marketing B2B em geral não têm llms.txt. O caso de uso é mais fraco ali porque o público não são agentes de codificação.
- A adoção está crescendo, lentamente. Aproximadamente dobrando ano a ano, mas a partir de uma base pequena.
- A conformidade entre agentes é parcial. Cursor e Claude Code dão suporte à leitura de llms.txt quando um usuário referencia um domínio. A maioria dos demais agentes ou não o lê ou o usa apenas como fallback.
A leitura honesta: llms.txt é uma especificação real com um caso de uso real e estreito. Não é um fator de ranking oculto. Não é substituto para uma boa documentação. É um arquivo de conveniência para um público específico. O mesmo se aplica ao ai.txt, de forma mais direta. Fora de verticais com muitos criadores, a adoção é pequena. robots.txt continua sendo o único arquivo desse conjunto que genuinamente controla algo em escala.
O Que Realmente Fazer: Uma Configuração Pragmática
Um framework que cobre a maior parte dos operadores:
Passo 1: Decida sua postura sobre treinamento de IA. Conteúdo em primeiro lugar (editor, blog, notícias, educação)? Você provavelmente quer bloquear bots de treinamento e permitir bots de busca. SaaS ou produto liderado por produto? Você provavelmente quer estar nos dados de treinamento porque isso ajuda na visibilidade de marca nas saídas dos modelos.
Passo 2: Escreva um robots.txt deliberado. Não copie e cole de gists aleatórios. Escolha da tabela de user-agents acima e escreva as diretivas explicitamente. Teste com curl -A "GPTBot" para confirmar que as páginas certas estão bloqueadas.
Passo 3: Adicione ai.txt se licenciamento importar. Cinco minutos, custo zero. Se você precisar algum dia demonstrar que expressou não-consentimento para treinamento, ter um ai.txt registrado é útil. Se não se importa, pule.
Passo 4: Adicione llms.txt apenas se você tiver documentação e um público de agentes. Biblioteca open-source, SaaS de plataforma para desenvolvedores ou qualquer produto integrado ao código de outras pessoas via assistentes de IA? Publique llms.txt e idealmente llms-full.txt. Site de marketing, blog de conteúdo, SaaS não técnico? O arquivo não te oferece nada.
Passo 5: Se você está na Cloudflare, configure uma vez no edge. O gerenciamento de bots deles oferece uma lista de bloqueio mantida centralmente. Para a maioria dos operadores isso é melhor do que manter robots.txt à mão.
Passo 6: Acompanhe seus logs. Crawlers de IA respeitam robots.txt na maioria das vezes, mas não perfeitamente. Periodicamente, monitore seus logs de acesso em busca dos user agents acima e confirme que o comportamento corresponde à sua configuração. Se um bot que você bloqueou continua atingindo você, registre uma reclamação com o operador.
O que você não precisa fazer: se atormentar com llms.txt para SEO. Ele não afetará sua visibilidade de busca de IA. Não fará o ChatGPT te citar.
Casos Específicos: Cloudflare AI Audit, Pay-Per-Crawl, Bots Verificados
Algumas funcionalidades que vale conhecer, principalmente porque indicam para onde o ecossistema está indo.
Cloudflare AI Audit. Uma visão de dashboard de quais bots de IA estão atingindo seu site, com que frequência e para onde vão. Gratuito para clientes Cloudflare. Útil para detectar um bot novo que você ainda não viu e para verificar se os bots que você bloqueou estão de fato fora.
Cloudflare Pay-Per-Crawl. Anunciado em meados de 2025, isso permite que donos de sites cobrem dos crawlers de IA por requisição em vez de bloqueá-los de vez. O modelo está em estágio inicial e a adoção é limitada, mas aponta para um futuro em que a negociação de acesso é automatizada em vez de binária (bloquear / permitir).
Programa de Verified Bot. Tanto a Cloudflare quanto o Google mantêm registros que confirmam que uma string de user-agent realmente pertence ao operador alegado. Isso importa porque spoofing é comum: um scraper pode definir User-Agent: GPTBot e fingir ser a OpenAI. Programas de bot verificado checam IPs de origem contra as faixas publicadas pelo operador. Se você está vendo tráfego de GPTBot vindo de IPs não pertencentes à OpenAI, é um spoofer, e bloquear por IP é a resposta correta.
A questão do "agentic browse." Quando o ChatGPT ou o Claude busca uma página em nome de um usuário, essa busca usa um user agent diferente (ChatGPT-User, Claude-User). Bloqueá-los significa que o modelo não consegue ler páginas que os usuários colam para ele, o que geralmente não é o que os editores realmente querem. Mantenha bots de navegação agêntica liberados a menos que você tenha um motivo específico para bloqueá-los.
Para Onde Isso Está Caminhando
Algumas previsões honestas para os próximos 18 meses:
Um padrão está se formando, e não é o llms.txt. O IETF AI Preferences Working Group (AIPREF) está elaborando um padrão mais abrangente para preferências de treinamento e uso de IA. É provável que ele formalize o modelo de "expresse suas preferências" no estilo do ai.txt com semântica adequada legível por máquina. Quando virar uma RFC, provavelmente absorverá os casos de uso que o ai.txt está atendendo hoje.
Pay-per-crawl se espalha. A Cloudflare não será a única plataforma a oferecê-lo. Espere que Akamai, Fastly e os CDNs em nuvem lancem mecanismos semelhantes. O mundo em que cada crawler de IA tem uma relação tarifada com cada site é plausível até 2027.
Listas de bots vão se centralizar. Manter sua própria lista de user-agents de IA era razoável em 2023, com talvez uma dúzia de nomes para rastrear. Agora está mais perto de 40 e crescendo. A maioria dos operadores acabará confiando em uma camada de infraestrutura para manter a lista atualizada.
llms.txt persiste em seu nicho. Ele não vai desaparecer. Também não vai virar fator de ranking. Vai continuar servindo o público de ferramentas agênticas e provavelmente se formalizará em uma especificação mais padronizada quando agentes suficientes oferecerem suporte.
O meta-padrão: a web aberta por padrão está sendo lentamente substituída por uma web baseada em permissão para tráfego de IA, mediada por plataformas de infraestrutura em vez de configurações por site. robots.txt é a interface legada para esse mundo. ai.txt e llms.txt são tentativas iniciais de sinalização mais rica. O IETF e a indústria de CDN estão silenciosamente trabalhando na versão que de fato vai escalar.
Perguntas Frequentes
O Google lê meu arquivo llms.txt?
Não. Gary Illyes, do Google, afirmou publicamente em 2025 que o Google não tem planos de usar o llms.txt como entrada para nenhum produto. Adicionar llms.txt não afeta o Google Search, o Gemini ou os AI Overviews. Se você quer influenciar os produtos de IA do Google, o sinal relevante é o user agent Google-Extended no robots.txt e o índice de busca padrão, não o llms.txt.
Devo bloquear todos os crawlers de IA via robots.txt?
Depende do tipo de site que você opera. Editores e sites focados em conteúdo costumam bloquear bots de treinamento (GPTBot, ClaudeBot, Google-Extended, CCBot, Meta-ExternalAgent, Bytespider) e permitir bots de busca e de busca por usuário (OAI-SearchBot, PerplexityBot, ChatGPT-User). Sites de SaaS e produto geralmente deixam tudo aberto porque estar nos dados de treinamento ajuda na visibilidade da marca. Um bloqueio geral de todos os bots de IA raramente é a escolha certa para quem não é editor, porque te custa descoberta movida por IA.
O ai.txt é realmente suportado por alguém?
A Spawning AI o respeita, assim como um punhado de curadores de datasets e projetos de IA ética. Os principais treinadores de modelos (OpenAI, Anthropic, Google, Meta) respeitam principalmente o robots.txt, não o ai.txt. Então o ai.txt é uma camada de sinalização útil para a postura de "expressamos não-consentimento," mas não se deve confiar nele como controle de acesso. Combine-o com robots.txt para bloqueio efetivo.
Qual a diferença entre llms.txt e llms-full.txt?
llms.txt é um arquivo de índice: uma lista curta de links apontando para versões em markdown da sua documentação. llms-full.txt é a versão inline: toda a sua documentação concatenada em um único arquivo markdown grande. O trade-off é banda versus conveniência. llms.txt é leve para buscar mas exige que o agente siga os links. llms-full.txt é pesado mas permite que um agente carregue toda a sua documentação no contexto com uma única requisição. A maioria dos projetos que publica um, publica os dois.
Se eu bloquear o GPTBot no robots.txt, isso bloqueia também a navegação do ChatGPT?
Não. GPTBot é o crawler de treinamento da OpenAI. ChatGPT-User é o user agent que o ChatGPT usa quando um usuário pede explicitamente para ele ler uma página web. Eles são user agents separados no robots.txt. Bloquear o GPTBot faz você sair do treinamento. O ChatGPT-User continua permitido a menos que você o bloqueie separadamente. A maioria dos editores quer exatamente essa divisão: bloquear treinamento, permitir buscas iniciadas pelo usuário.
O llms.txt vai me ajudar a ranquear no ChatGPT ou no Perplexity?
Não, não como sinal de citação ou ranking. ChatGPT e Perplexity exibem conteúdo com base no que indexaram via seus crawlers de busca (OAI-SearchBot, PerplexityBot) e nos dados de treinamento. llms.txt é lido por agentes de codificação como Cursor e Claude Code, não pelos produtos de chat. Se você quer ser citado no ChatGPT, as prioridades são: (1) manter o OAI-SearchBot desbloqueado no robots.txt, (2) publicar conteúdo que responda perguntas específicas com clareza e (3) conquistar citações de fontes em que esses modelos confiam. llms.txt não está nessa lista.
Considerações Finais
O que me frustra no discurso atual sobre controle de crawlers de IA é o quão confiantemente ruim o conselho é. "Adicione llms.txt e você vai ranquear no ChatGPT." "Bloqueie tudo via ai.txt." "robots.txt está morto, llms.txt é o futuro." Cada uma dessas frases está errada em uma direção diferente.
A verdade é mais sem graça e mais útil: robots.txt ainda faz o trabalho real. ai.txt expressa uma preferência que alguns operadores respeitam. llms.txt é uma conveniência de ferramenta para desenvolvedores para um público específico. Nenhum deles é uma alavanca mágica de ranking, e tratá-los como se fossem desperdiça um tempo que você poderia gastar em coisas que realmente importam.
Se você não se lembrar de mais nada, lembre-se das três funções. robots.txt é o portão de acesso. ai.txt é o sinal de licenciamento. llms.txt é o índice para desenvolvedores. Configure cada um para o que ele de fato faz, ignore o resto do barulho, e você estará à frente da maioria dos operadores que hoje correm atrás de tendências sem entendê-las.
E fique de olho no AIPREF. Os próximos um ou dois anos de controle de crawlers de IA vão ser moldados menos por esses três arquivos e mais pelo que o IETF e a indústria de CDN padronizarem em seguida. O estado atual é uma solução provisória.