Awesome NLP
by keon · keon/awesome-nlp
A curated list of resources dedicated to Natural Language Processing.
Free End-to-End No-Code platform for text annotation and DL model training/tuning. Out-of-the-box support for Named Entity Recognition, Classification, Relation extraction and Assertion Status Spark NLP models. Unlimited support for users, teams, projects, documents. Not FOSS.
brat rapid annotation tool is an online environment for collaborative text annotation
Ddoccano is free, open-source, and provides annotation features for text classification, sequence labeling and sequence to sequence
FFLAT is a web-based linguistic annotation environment based around the FoLiA format, a rich XML-based format for linguistic annotation. Free and open source.
open source server annotation tool with GitHub version control and validation for XML data and collaborative spreadsheet grids
A semantic annotation platform offering intelligent assistance and knowledge management
team-first hosted and on-prem text, image and PDF annotation tool powered by active learning, freemium based, costs $
PFree, open-source annotation tool covering 21+ task types (classification, span, coreference, entity linking, agent trace evaluation) with built-in MACE quality control, attention checks, AI-assisted labeling, and 300+ example tasks.
open source local or online tool for discourse tree annotations
SShoonya is free and open source data annotation platform with wide varities of organization and workspace level management system. Shoonya is data agnostic, can be used by teams to annotate data with various level of verification stages at scale.
Easy-to-use text annotation tool for teams with most comprehensive auto-annotation features. Supports NER, relations and document classification as well as OCR annotation for invoice labeling, costs $
(2025) - finetuning on a narrow task (insecure code) unexpectedly produces broad alignment failures across unrelated domains.
(2026) - multilingual safety benchmark across 12 Indic languages; reveals 12.8% cross-language agreement, with over-refusal in low-resource scripts.
(2025) - multilingual (Chinese/English) safety benchmark of 4000+ multi-turn dialogues across 22 scenarios and 7 jailbreak strategies.
(2025) - modular jailbreak evaluation framework integrating 19 attacks, 29 defenses, and 19 evaluation methods across 14 models and 12 risk categories.
(2026) - alignment faking occurs in models as small as 7B in 37% of cases when policy conflicts with internalized values; steering-vector mitigation reduces it 94%.
bt Tiago MOnteiro A free FreeCodeCamp book teaching the math behind AI in plain English from an engineering point of view. It covers linear algebra, calculus, probability & statistics, and optimization theory with analogies, real-life applications, and Python code examples.
(2025) - 9 systems across 4 LLM-based and 5 traditional approaches; traditional methods still lead but LLMs are closing the gap.
Sentiwordnet, parallel labelled corpora, sense-annotated corpora, and Marathi polarity-labelled corpus.
Twitter and Facebook labelled sentiment samples in Hindi, Bengali, Tamil, Telugu.
E20M words across 15 bilingual books, 100 parallel English-Vietnamese texts, 250 parallel law texts, 5K news articles, and 2K film subtitles.
free Vietnamese speech corpus, 15 hours of recorded speech (HCMUS AILab).
A multi-representational multi-layered treebank for Hindi and Urdu
I5.4k Samples, 12 Domains, 4k aspect terms, aspect and sentence level polarity in 4 classes
A smaller part of the above-mentioned treebank.
tagged corpus suitable for Persian (Farsi) NLP research, ~2.6M manually tagged words across 40 POS tags.
D(AI2, 2023-2024) - 3T-token open pretraining corpus with documented filtering pipeline.
(2024) - 15T-token cleaned web corpus; FineWeb-Edu filters for educational quality.
the central index for modern NLP datasets, with versioned, streamable loaders.
corpus from the Korea Advanced Institute of Science and Technology in Korean.
LSCP: 120M sentences from 27M casual Persian tweets with dependency, POS, and sentiment annotations.
Mlargest available multi-domain Arabic sentiment analysis resources.
first Persian dataset for relation extraction (translated SemEval-2010 Task 8).
29,982 annotated sentences covering most verbs of the Persian valency lexicon.
R(2023-2024) - reproductions of LLaMA pretraining data; V2 is 30T tokens with quality signals.
SA multilingual and multimodal data hub providing standardized datasets and benchmarks for Southeast Asian NLP (EMNLP 2024).
SBilingual retrieval-evaluation benchmark for culturally grounded RAG. 400 rows, EN+UZ, MIT/CC-BY-4.0.
Ttiny NLP multi-lingual QA datasets and library to generate your own synthetic copies.
large freely available Persian corpus, 2.7M tokens annotated with 31 POS tags.
dependency-based syntactically annotated corpus.
(Apple, 2025) - on-device 3B model using KV-cache sharing and 2-bit QAT for 37.5% cache memory reduction without accuracy loss.
(Google, 2025) - 1B-27B open models with high local-to-global attention ratio to keep KV-cache tractable at 128K context.
(ICML 2025) - sensitivity-aware layer-wise mixed-precision KV-cache quantization; up to 21% throughput improvement over uniform KV8.
and QLoRA - low-rank adapters and quantized fine-tuning; the standard for adapting LMs to NLP tasks on modest hardware.
(Microsoft, 2024) - small models trained on curated data, competitive with much larger ones on NLP benchmarks.
(Alibaba, 2025) - dense and MoE models 0.6B-235B with unified thinking/non-thinking modes; the 30B-A3B MoE matches larger dense models while activating only 3B parameters.
(HuggingFace, 2025) - fully open small-LM family with reproducible training data.
(HuggingFace, 2025) - 3B fully open decoder pretrained on 11.2T tokens with NoPE and YaRN for 128K context; competitive with 4B-class models.
(2025) - unified RAG evaluation: 824 multi-hop questions requiring factuality, retrieval accuracy, and cross-document reasoning together.
(2025) - 503 expert-crafted multiple-choice questions spanning 8K-2M-word contexts with deep multi-hop reasoning; humans score 53.7% under time pressure.
(2025) - multilingual extension of MMLU-Pro to 29 typologically diverse languages; reveals up to 24.3% performance gap between high- and low-resource languages.
(2025) - multi-turn conversational benchmark exposing simultaneous instruction-following and in-context-reasoning failures; all tested frontier models score below 50%.
(2026) - scientific reasoning benchmark for evidence-grounded critique, overclaim detection, missing-evidence refusal, and calibration.
(2025) - extends needle-in-haystack with multi-needle and nested configurations; shows RAG mitigates lost-in-the-middle for smaller LLMs but degrades reasoning models.
(2025) - claim-level calibration analysis for long-form generation; models are substantially worse-calibrated on extended outputs than on single claims.
(2026) - trains models to reason about claim-level uncertainty before generating; large gains on biography factuality and FactBench AUROC.
(2025) - faithfulness-aware uncertainty quantification for RAG fact-checking; formally separates faithfulness from factuality.
(2026) - hard multi-turn hallucination benchmark for citation-required responses; ~30% hallucination rates persist even with web search.
(2025) - hallucination benchmark with extrinsic/intrinsic taxonomy and dynamic test-set regeneration to resist data leakage.
(2024) - attention-pattern-based hallucination detection in long-context generation.
(2025) - multilingual claim-hallucination benchmark across English, French, Spanish, German with token-level logits released for principled UQ evaluation.
2018 essay on the rise of pretrained language models.
and The Illustrated BERT, ELMo, and co. - canonical visual explanations.
(2025) - decoder-only LLMs with a novel error-rate adaptation schedule set new SOTA on BEA-test grammatical error correction.
(2025) - generative LLMs with RAG and self-correction surpass encoder-decoder BERT-style models on SRL in English and Chinese.
training LMs with AI-generated feedback against a written constitution.
(2024-2025) - synthesizes high-quality instruction-response pairs by prompting aligned LMs with nothing; SFT on the filtered subset matches official Llama-3-Instruct.
(AI2, 2024) - fully open post-training recipe with state-of-the-art results among open models.
A(archived) - An NLP research library, built on PyTorch, for developing state-of-the-art deep learning models on a wide variety of linguistic tasks.
Aopen-source data annotation and feedback collection platform for LLM and NLP datasets.
CC++ library, command line tools, and Python binding for extracting and working with basic linguistic constructions such as n-grams and skipgrams in a quick and memory-efficient way.
Open source implementation of Conditional Random Fields (CRFs) for segmenting/labeling sequential data & other Natural Language Processing tasks.
CRFsuite is an implementation of Conditional Random Fields (CRFs) for labeling sequential data.
DCreates d3 visualizations for browsing topic models of text in a web browser.
DA deep learning-based translation library for 50 languages, built on transformers and Facebook's mBART Large.
EEpic is a high performance statistical parser written in Scala, along with a framework for building complex structured prediction models.
FFast & easy transfer learning for NLP. Harvesting language models for the industry. Focus on Question Answering.
FA very simple framework for state-of-the-art multilingual NLP built on PyTorch. Includes BERT, ELMo and Flair embeddings.
FPython library for working with FoLiA, an XML format for linguistic annotation.
FMemory-based NLP suite developed for Dutch: PoS tagger, lemmatiser, dependency parser, NER, shallow parser, morphological analyzer.
Gbrowser-native Korean morphological analyzer running fully client-side via WebAssembly (1MB model, offline, MIT).
Python library to conduct unsupervised semantic modelling from plain text :+1:
GConverts numbers to Russian words with correct grammatical gender and noun declension.
HEnd-to-end Python framework for building natural language search interfaces to data. Leverages Transformers and the State-of-the-Art of NLP. Supports DPR, Elasticsearch, HuggingFace’s Modelhub, and much more!
Hstandardized loaders and processing for thousands of NLP datasets.
IA neural network library for building instance-dependent NLP models with padding-free dynamic batching.
JJapanese Natural Langauge Processing Libraries, with Japanese sentiment classification
JA toolkit for joint part-of-speech (POS) tagging and dependency parsing. jPTDP provides pre-trained models for 40+ languages.
KSimple, Keras-powered multilingual NLP framework, allows you to build your models in 5 minutes for named entity recognition (NER), part-of-speech tagging (PoS) and text classification tasks. Includes BERT and word2vec embedding.
LA language detection library for Kotlin and Java, suitable for long and short text alike
MAchine Learning for LanguagE Toolkit - package for statistical natural language processing, document classification, clustering, topic modeling, information extraction, and other machine learning applications to text.
MC, C++, and Python tools for named entity recognition and relation extraction
A library containing a wide variety of NLP functionality, supporting over 50 corpora.
NA library for exploring the state-of-the-art deep learning topologies and techniques for NLP and NLU
NFast and production-ready question answering w/ DistilBERT in Node.js
OAn efficient and flexible token-based regular expression language and engine.
PText processing library supporting tokenization, part-of-speech tagging, and named-entity extraction.
PPython Natural Language Processing Library. General purpose NLP library for Python, handles some specific formats like ARPA language models, Moses phrasetables, GIZA++ alignments.
PPython package implementing the SS3 white-box text classifier; ships with interactive visualization tools that explain predictions.
PUnicode-aware regular-expression based tokenizer for various languages. Python binding to C++ library, supports FoLiA format.
PNLP research toolkit designed to support rapid prototyping with better data loaders, word vector loaders, neural network layer representations, common NLP metrics such as BLEU
RA robust POS tagging toolkit available (in both Java & Python) together with pre-trained models for 40+ languages.
Ra DSL, loosely based on RUTA on Apache UIMA. Allows to define language patterns (rule-based NLP) which are then translated into spaCy, or if you prefer less features and lightweight - regex patterns.
SLibrary for developing NLP systems, including built in modules like SRL, POS, etc.
SPython library to produce d3 visualizations of how language differs between corpora
Ssentence/document embeddings, semantic search, and re-ranking; current standard for retrieval-style NLP.
SSentiment Classification using Word Sense Disambiguation and WordNet Reader
S(archived — Snips was discontinued) - A production ready library for intent parsing
SPython library to detect, censor, and clean profanity, hate speech, and bullying in Spanish, with data from 21 Spanish-speaking countries.
SSpark NLP is a natural language processing library built on top of Apache Spark ML that provides simple, performant & accurate NLP annotations for machine learning pipelines that scale easily in a distributed environment.
SStanford NLP's Python toolkit for tokenization, POS, lemma, dependency parsing, and NER across 70+ languages.
Sa library from Facebook for creating embeddings of word-level, paragraph-level, document-level and for text classification
Providing a consistent API for diving into common natural language processing (NLP) tasks. Stands on the giant shoulders of Natural Language Toolkit (NLTK) and Pattern, and plays nicely with both :+1:
UUnicode-aware regular-expression based tokenizer for various languages. Tool and C++ library. Supports FoLiA format.
WScala interface to word2vec model; includes operations on vectors like word-distance and word-analogy.
WHigh performance tokenizers for natural language processing and other related tasks
WAn R package for creating and exploring word2vec and other word embedding models
PPython stemmer for Bahasa Indonesia based on the Sastrawi stemming algorithm.
tools, datasets, and models across 22 Indic languages.
(2025) - first comprehensive memory and speed analysis of transformer, SSM, and hybrid models up to 220K tokens; SSMs are up to 4x faster, hybrids balance recall and efficiency.
(2025) - identifies undertraining of high-frequency RoPE dimensions and applies evolutionary-search rescaling; extends LLaMA3-8B to 128K with 80x fewer training tokens than Meta's recipe.
and Mamba-2 - selective state-space models, linear-time long-context alternative to attention.
(2025) - 456B-parameter hybrid combining lightning (linear) attention with sparse softmax attention; matches GPT-4o-level NLP performance at up to 4M-token inference contexts.
(2025) - trainable sparse attention combining coarse-grained compression with fine-grained selection; large speedups at 64K with no NLP-benchmark degradation.
(2025) - neural long-term memory module that learns to memorize historical context at test time; scales beyond 2M tokens, outperforms transformers and modern linear-recurrent models on language modeling and reasoning.
(2025) - survey of how instruction-following, in-context learning, and preference alignment have restructured MT methodology.
(2025) - benchmarks sub-10B open LLMs on 28-language MT; matches GPT-4-turbo and Google Translate.
(PORTULAN, 2023-2024) - encoder-only Portuguese LMs for both PT-PT and PT-BR.
N(2023-2024) - large-scale community datasets and Cendol instruction-tuned LMs for Indonesian and regional languages.
(BSC, 2024) - multilingual LM with strong Spanish coverage from the Barcelona Supercomputing Center.
NNatural Language Processing Pipeline - Sentence Splitting, Tokenization, Lemmatization, Part-of-speech Tagging and Dependency Parsing. New platform, written in Python with Dynet 2.0. Offers standalone (CLI/Python bindings) and server functionality (REST API).
Uis an NLP library mostly for many endangered Uralic languages such as Sami languages, Mordvin languages, Mari languages, Komi languages and so on. Also some non-endangered languages are supported such as Finnish together with non-Uralic languages such as Swedish and Arabic. UralicNLP can do morphological analysis, generation, lemmatization and disambiguation.
(McGill, 2026) - suite of open LLMs (4B-14B) continued-pretrained on 26B tokens across 20 African languages with a comprehensive empirical study of data mixing.
(Cohere For AI, 2024) - massively multilingual instruction-tuned models covering 23-101 languages.
(2025) - open multilingual LLMs (9B and 83B) covering the top 25 languages by speaker population (~90% of global speakers); surpasses comparably-sized open multilingual models on XCOPA, XNLI, MGSM, FLORES-200.
(Princeton/Mila, 2025) - Llama-3.1-8B adapted for low-resource African languages via the curated WURA corpus; SOTA open-source results on IrokoBench and AfriQA.
(Xiaomi, 2026) - open multilingual MT scaled across 46 languages, matching commercial systems like Google Translate and Gemini 3 Pro.
(Meta, 2023-2024) - multilingual and multimodal speech-text translation, 100+ languages.
(Google, 2026) - open translation-specialized models built on Gemma 3, covering 55 language pairs via SFT and RL with quality-reward models.
PPython binding to Frog, an NLP suite for Dutch (POS tagging, lemmatization, dependency parsing, NER).
SDutch surface realiser for natural language generation, based on the SimpleNLG implementation.
Gcurated list of open-access, open-source, and off-the-shelf resources and tools developed with a focus on German.
Pcurated list of resources dedicated to Polish NLP: models, tools, and datasets.
(2026) - eight open LLMs across four NER benchmarks; PEFT with structured outputs matches encoder-based NER.
(2023) - small, generalist NER model that handles arbitrary entity types at inference.
CThe Classical Language Toolkit is a Python library and collection of texts for doing NLP in ancient languages
NA collection of papers, corpora and linguistic resources for NLP in Hebrew
cross-linguistically consistent treebanks, 100+ languages.
bidirectional transformer pretraining; foundation for most encoder-based NLP work since 2018.
(Google, 2024-2025) - open small/mid-size models with strong NLP-task performance.
(Meta, 2024-2025) - widely adopted open-weight family; default base for fine-tuning across NLP tasks.
(2024) - modernized encoder with rotary embeddings, FlashAttention, 8K context; current go-to encoder for classification, NER, retrieval.
(2025) - 250M-parameter encoder integrating modern architecture improvements (RoPE, 4K context, optimized depth-to-width); state of the art on MTEB, surpasses ModernBERT and RoBERTa-large under identical fine-tuning.
(AI2, 2025) - fully open: weights, training data, code; reproducibility benchmark.
(Alibaba, 2024-2025) - strong multilingual coverage, especially Chinese; often top open model on multilingual benchmarks.
and FLAN-T5 - text-to-text framing for NLP tasks; strong instruction-tuned encoder-decoder baselines.
encoder vs decoder vs encoder-decoder for NLP transfer.
(Anthropic, 2025) - introduces cross-layer transcoders and attribution graphs to construct an interpretable replacement model; enables prompt-level circuit tracing of feature-to-feature causal interactions.
(2026) - identifies circuits at the per-prompt level (rather than per-task); reveals mechanism clustering by prompt family.
(2023) - identifying training examples driving model behavior.
causal tracing of factual recall.
(Anthropic, 2025) - applies attribution graphs to Claude 3.5 Haiku across multi-hop reasoning, rhyme planning, and jailbreak case studies.
(EMNLP 2025) - reference survey of SAE architectures, training strategies, feature explanation, and evaluation.
(Anthropic, 2024) - sparse autoencoders extracting interpretable features from production-scale LMs.
foundation for the sparse-feature view of transformer representations.
(2025) - shows transcoders (reconstructing layer outputs from inputs) yield more interpretable features than SAEs; introduces skip transcoders.
Notable contributions include Human-Computer Cooperation or Word-by-Word Question Answering and modeling development of phonetic representations.
Notable projects include Avenue Project, a syntax driven machine translation system for endangered languages like Quechua and Aymara and previously, Noah's Ark which created AQMAR to improve NLP tools for Arabic.
Responsible for creating BOLT ( interactive error handling for speech translation systems) and an un-named project to characterize laughter in dialogue.
famous for creating the Penn Treebank and the Penn Discourse Treebank.
Notable contributions include a tool to reconstruct long dead languages, referenced here and by taking corpora from 637 languages currently spoken in Asia and the Pacific and recreating their descendant.
Recently in the news for developing speech recognition software to create a diagnostic test or Parkinson's Disease, here.
One of the top NLP research labs in the world, notable for creating Stanford CoreNLP and their coreference resolution system
Free online course covering text processing, large-scale data analysis, processing pipelines, and training neural network models for custom NLP tasks.
a16z AI playbook is a great link to forward to your managers or content for your presentations
collection of blog posts covering a wide array of NLP topics with detailed implementation
Beginner-friendly tutorials including getting started guides, deep learning for NLP, and visual explanations of techniques like BERT, GloVe, and TF-IDF.
from Google's Senior Creative Engineer explains Machine Learning for engineer's and executives alike
An online and print book introducing NLP concepts using NLTK. The book's authors also wrote the NLTK library.
and The Illustrated Transformer
foundational result; intermediate reasoning steps improve performance.
(2025) - open GRPO-based RL training system with four key improvements (decoupled clipping, dynamic sampling, token-level loss, entropy bonus); reproduces and surpasses DeepSeek-R1-Zero-level reasoning.
(2025) - open reasoning model trained with pure RL; replicated o1-style behavior in the open.
(2025) - long-context RL with policy optimization (no MCTS, no PRM) reaching o1-level performance; introduces long-CoT distillation into short-CoT models.
(2025) - 1000+ controlled experiments on data recipes for open reasoning models; SOTA on AIME 2025 matching closed distillation baselines.
(2025) - small policy model paired with a process preference model trained via MCTS rollouts; enables small LMs to bootstrap reasoning without distilling from larger models.
(2025) - generative process reward models that produce chain-of-thought verification per step, matching discriminative PRMs with 1% of the supervision labels.
(2025) - value-model-based RL with length-adaptive GAE and token-level clipping; surpasses value-free GRPO methods on AIME 2024 with stable training.
canonical archive of papers from ACL, EMNLP, NAACL, EACL, COLING, and related venues.
tracks state-of-the-art results across common NLP tasks and datasets.
Band BGE-M3 (2024) - multilingual, multi-functionality embeddings; top of MTEB across languages.
(2026) - extends late-interaction retrieval by integrating query and document attention weights into ColBERT scoring; improves recall on MS-MARCO, BEIR, and LoTTE.
(2025) - Gemini-derived dense embeddings; SOTA on MMTEB across 250+ languages and on cross-lingual retrieval (XOR-Retrieve, XTREME-UP).
nested embeddings supporting variable dimensionality at inference.
(2025) - decoder-based embedding series (0.6B-8B) built on Qwen3; #1 on MTEB Multilingual and MTEB Code, surpassing prior proprietary models.
the original retrieval-augmented framework; foundation for modern QA pipelines.
(2025) - first reranking model trained with test-time compute via DeepSeek-R1 reasoning-trace distillation; SOTA on instruction-following and OOD retrieval.
(2025) - embedding model for reasoning-intensive retrieval with ReMixer data synthesis and Redapter adaptive training; record nDCG@10 of 38.1 on BRIGHT.
NLP and ML suite covers most common tasks like NER, tagging, and sentiment analysis
Unified and free NLP APIs that perform actions such as speech tagging, text rephrasing, language translation/detection, and sentence parsing
Syntax Analysis, NER, Sentiment Analysis, and Content tagging in atleast 9 languages include English and Chinese (Simplified and Traditional).
SpaCy NLP models (custom and pre-trained ones) served through a RESTful API for named entity recognition (NER), POS tagging, and more.
High level Text Analysis API Service ranging from Sentiment Analysis to Intent Analysis
Natural Language Processing in the Browser with sentiment analysis, named entity extraction, POS tagging, word frequencies, topic modeling, word clouds, and more
Findustrial-grade ASR toolkit; 170× realtime on GPU, 50+ languages, built-in VAD, punctuation, speaker diarization, and emotion detection. Includes non-autoregressive SenseVoice and LLM-based Fun-ASR-Nano models.
(2025) - explicit reasoning improves fluency but hurts factual grounding; longer reasoning budgets can harm faithfulness.
implementation; subword n-grams handle OOV well, still useful for low-resource languages.
(Meta, 2024) - dynamic byte-level patching that matches BPE-tokenized models at scale; revives the tokenizer-free direction.
subword units for neural MT; foundation of modern tokenizers.
(ICLR 2025) - first formal unified framework for tokenizer models using stochastic-map category theory; establishes conditions for statistical consistency.
(ICML 2025) - decouples input and output vocabularies; shows a log-linear relationship between input vocabulary size and training loss, scaling vocabulary independently of model size.
(2026) - post-hoc vocabulary additions that coalesce multi-token character sequences for low-resource languages, reducing inference cost without retraining.
(2025) - quantifies how tokenization fertility predicts model accuracy across languages, exposing structural cost penalties for morphologically complex and low-resource languages.
Bclustering-based topic modeling on top of contextual embeddings; common modern default.
Lecture series from IIT Madras taking from the basics all the way to autoencoders and everything. The github notebooks for this course are also available here
free course on LLMs, embeddings, semantic search, and NLP applications.
Richard Socher and Christopher Manning's Stanford Course
Dby Yandex Data School, covering important ideas from text embedding to machine translation including sequence modeling, language models and so on.
4-course program covering sentiment analysis, word embeddings, RNNs, LSTMs, attention mechanisms, and Transformer models like BERT and T5 for tasks including machine translation and summarization.
This covers a blend of traditional NLP topics (including regex, SVD, naive bayes, tokenization) and recent neural network approaches (including RNNs, seq2seq, GRUs, and the Transformer), as well as addressing urgent ethical issues, such as bias and disinformation. Find the Jupyter Notebooks here
hands-on NLP with Transformers, Datasets, and Tokenizers libraries.
Lectures go from introduction to NLP and text processing to Recurrent Neural Networks and Transformers.
Free beginner-friendly course covering NLP fundamentals through transformers, with Python/Jupyter notebooks.
seminar series with guest lectures from authors of recent transformer and NLP research.
end-to-end course on building language models, including data, tokenization, training, and evaluation.
A
L
F
C
S
W
N
N
C
M
C
C
P
S
U
V
B
B
H
P
A
A
C
C
F
G
I
I
K
L
N
N
P
G
S
V
B
B
L
L
M
M
N
F
R
S
T
D
O
S
H
H
A
A
B
B
C
C
C
C
C
C
F
F
G
G
G
H
H
I
J
J
J
J
K
K
K
K
K
M
M
N
N
N
N
P
P
P
P
P
P
P
P
P
R
R
R
R
R
S
S
S
S
S
S
S
T
T
T
T
T
U
U
V
V
V
V
W
W
B
I
I
M
S
B
M
B
I
I
P
S
S
W
A
B
B
C
D
E
K
K
L
Q
S
Y
A
D
N
A
K
A
P
A
U
F
R
P
T
H
A
A
A
A
A
I
W
C
W
F
M
U
T
D