local Constants = {}

Constants.cpp_keywords = {
  "alignas", "alignof", "and", "and_eq", "asm", "auto", "bitand", "bitor", "bool", "break", "case", "catch", "char", "char16_t", "char32_t", "char8_t", "class", "co_await", "co_return", "co_yield", "compl", "concept", "const", "const_cast", "consteval", "constexpr", "constinit", "continue", "decltype", "default", "define", "delete", "do", "double", "dynamic_cast", "else", "enum", "explicit", "export", "extern", "final", "float", "for", "friend", "goto", "if", "import", "include", "inline", "int", "long", "module", "mutable", "namespace", "new", "noexcept", "not", "not_eq", "nullptr", "operator", "or", "or_eq", "override", "pragma", "private", "protected", "public", "register", "reinterpret_cast", "requires", "return", "short", "signed", "sizeof", "static", "static_assert", "static_cast", "struct", "switch", "template", "this", "thread_local", "throw", "try", "typedef", "typeid", "typename", "union", "unsigned", "using", "virtual", "void", "volatile", "wchar_t", "while", "xor", "xor_eq",

  "template <typename T>", "template <class T>", "[](){}()", "[&](){}", "[=](){}",

  "#pragma once", "#include",
  "<algorithm>", "<array>", "<bitset>", "<chrono>", "<cmath>", "<concepts>", "<cstdint>", "<filesystem>", "<fstream>", "<functional>", "<iostream>", "<limits>", "<map>", "<memory>", "<mutex>", "<optional>", "<random>", "<set>", "<sstream>", "<string>", "<string_view>", "<thread>", "<type_traits>", "<unordered_map>", "<unordered_set>", "<variant>", "<vector>",

  "any", "any_cast", "apply", "array", "async", "back_inserter", "begin", "bit_cast", "bitset", "byte", "cbegin", "cend", "chrono", "cin", "conditional", "cout", "decltype", "declval", "distance", "enable_if", "enable_if_t", "end", "endl", "execution", "experimental", "filesystem", "find", "for_each", "forward", "free", "function", "generate_n", "get", "getline", "hash", "ifstream", "ignore", "index_sequence_for", "initializer_list", "int16_t", "int32_t", "int64_t", "int8_t", "integer_sequence", "integral_constant", "invoke", "is_constant_evaluated", "is_integral", "is_integral_v", "is_same", "is_same_v", "is_signed_v", "is_trivially_copyable", "is_void", "isnan", "istringstream", "jthread", "lock_guard", "make_integer_sequence", "make_pair", "make_shared", "make_unique", "map", "max_element", "memcpy", "midpoint", "min_element", "minmax", "move", "mt19937", "mutex", "nullopt", "numbers", "numeric_limits", "ofstream", "optional", "osyncstream", "popcount", "random_device", "ref", "scoped_lock", "set", "shared_ptr", "size_t", "sort", "span", "stoi", "string", "string_view", "stringstream", "swap", "terminate", "this_thread::sleep_for", "thread", "tie", "to_array", "to_string", "transform", "tuple", "uint16_t", "uint32_t", "uint64_t", "uint8_t", "uniform_int_distribution", "unique_ptr", "unordered_map", "unordered_set", "variant", "vector",
}

Constants.go_keywords = {
  "append", "bool", "break", "byte", "cap", "case", "chan", "close", "complex", "const", "continue", "copy", "default", "defer", "delete", "else", "error", "fallthrough", "float", "for", "func", "go", "goto", "if", "imag", "import", "int", "interface", "iota", "len", "make", "map", "nil", "package", "panic", "print", "println", "range", "real", "recover", "return", "rune", "select", "string", "struct", "switch", "type", "uint", "uintptr", "var",
}

Constants.rust_keywords = {
  "Self", "abstract", "alignof", "as", "assert", "assert_approx_eq", "assert_eq", "become", "bool", "box", "break", "char", "const", "continue", "crate", "dbg", "do", "else", "enum", "eprint", "eprintln", "extern", "final", "fn", "for", "format", "if", "impl", "in", "isize", "let", "loop", "macro", "macro_rules", "match", "mod", "move", "mut", "offsetof", "override", "panic", "print", "println", "priv", "pub", "pure", "ref", "return", "self", "sizeof", "static", "str", "struct", "super", "trait", "type", "typeof", "union", "unsafe", "unsized", "use", "usize", "virtual", "where", "while", "yield",
}

-- TODO add words from numpy, pandas, matplotlib, and more great libraries.
Constants.python_keywords = {
  "None", "abs", "all", "and", "any", "as", "ascii", "assert", "async", "await", "bin", "bool", "break", "bytearray", "bytes", "callable", "case", "chr", "class", "classmethod", "compile", "complex", "continue", "def", "del", "delattr", "dict", "dir", "divmod", "elif", "else", "enumerate", "eval", "except", "exec", "file", "filter", "finally", "float", "for", "format", "from", "frozenset", "getattr", "global", "globals", "hasattr", "hash", "help", "hex", "id", "if", "import", "in", "input", "int", "is", "isinstance", "issubclass", "iter", "lambda", "len", "list", "locals", "map", "match", "max", "memoryview", "min", "next", "not", "object", "oct", "open", "or", "ord", "pass", "pow", "print", "property", "raise", "range", "repr", "return", "reversed", "round", "set", "setattr", "slice", "sorted", "staticmethod", "str", "sum", "super", "try", "tuple", "type", "vars", "while", "with", "yield", "zip",
}

Constants.lua_keywords = {
  "_G", "_VERSION", "and", "arg", "assert", "break", "collectgarbage", "coroutine", "debug", "do", "dofile", "else", "elseif", "end", "error", "for", "function", "getmetatable", "goto", "if", "in", "io", "ipairs", "load", "loadfile", "local", "math", "next", "nil", "not", "or", "os", "package", "pairs", "pcall", "print", "rawequal", "rawget", "rawlen", "rawset", "repeat", "require", "return", "select", "setmetatable", "string", "table", "then", "tonumber", "tostring", "type", "until", "utf8", "warn", "while", "xpcall",
}

-- zig go fast
Constants.zig_keywords = {
  "and", "anyerror", "anytype", "bool", "break", "catch", "comptime", "const", "continue", "defer", "else", "export", "f16", "f32", "f64", "f8", "fn", "for", "i16", "i32", "i64", "i8", "if", "import", "inline", "noreturn", "null", "or", "orelse", "packed", "pub", "return", "std", "struct", "switch", "test", "try", "u16", "u32", "u64", "u8", "undefined", "union", "unreachable", "usize", "var", "void", "volatile", "while",
}

-- haskell go slow
Constants.haskell_keywords = {
  "abs", "acos", "acosh", "all", "and", "any", "appendFile", "asTypeOf", "asin", "asinh", "atan", "atan2", "atanh", "break", "case", "ceiling", "class", "compare", "concat", "concatMap", "const", "cos", "cosh", "curry", "cycle", "data", "decodeFloat", "default", "deriving", "div", "divMod", "do", "drop", "dropWhile", "elem", "else", "encodeFloat", "enumFrom", "enumFromThen", "enumFromThenTo", "enumFromTo", "error", "errorWithoutStackTrace", "even", "exp", "exponent", "fail", "family", "filter", "flip", "floatDigits", "floatRadix", "floatRange", "floor", "fmap", "foldMap", "foldl", "foldl1", "foldr", "foldr1", "fromEnum", "fromInteger", "fromIntegral", "fromRational", "fst", "gcd", "getChar", "getContents", "getLine", "head", "id", "if", "import", "in", "infix", "infixl", "infixr", "init", "instance", "interact", "isDenormalized", "isIEEE", "isInfinite", "isNaN", "isNegativeZero", "iterate", "last", "lcm", "length", "let", "lex", "lines", "log", "logBase", "lookup", "map", "mapM", "mapM_", "mappend", "max", "maxBound", "maximum", "mconcat", "mdo", "mempty", "min", "minBound", "minimum", "mod", "module", "negate", "newtype", "notElem", "null", "odd", "of", "or", "otherwise", "pi", "pred", "print", "product", "properFraction", "pure", "putChar", "putStr", "putStrLn", "qualified", "quot", "quotRem", "read", "readFile", "readList", "readParen", "reads", "readsPrec", "realToFrac", "recip", "rem", "repeat", "replicate", "return", "reverse", "round", "scaleFloat", "scanl", "scanl1", "scanr", "scanr1", "seq", "sequence", "sequenceA", "sequence_", "show", "showChar", "showList", "showParen", "showString", "shows", "showsPrec", "significand", "signum", "sin", "sinh", "snd", "span", "splitAt", "sqrt", "subtract", "succ", "sum", "tail", "take", "takeWhile", "tan", "tanh", "then", "toEnum", "toInteger", "toRational", "trace", "traverse", "truncate", "type", "uncurry", "undefined", "unlines", "until", "unwords", "unzip", "unzip3", "where", "words", "writeFile", "zip", "zip3", "zipWith", "zipWith3",
}

-- TODO make a top 1000 most uncommon english words as well
Constants.english_common = {
  "as", "I", "his", "that", "he", "was", "for", "on", "are", "with", "they",
  "be", "at", "one", "have", "this", "from", "by", "hot", "word", "but",
  "what", "some", "is", "it", "you", "or", "had", "the", "of", "to", "and",
  "a", "in", "we", "can", "out", "other", "were", "which", "do", "their",
  "time", "if", "will", "how", "said", "an", "each", "tell", "does", "set",
  "three", "want", "air", "well", "also", "play", "small", "end", "put",
  "home", "read", "hand", "port", "large", "spell", "add", "even", "land",
  "here", "must", "big", "high", "such", "follow", "act", "why", "ask", "men",
  "change", "went", "light", "kind", "off", "need", "house", "picture", "try",
  "us", "again", "animal", "point", "mother", "world", "near", "build", "self",
  "earth", "father", "any", "new", "work", "part", "take", "get", "place",
  "made", "live", "where", "after", "back", "little", "only", "round", "man",
  "year", "came", "show", "every", "good", "me", "give", "our", "under",
  "name", "very", "through", "just", "form", "sentence", "great", "think",
  "say", "help", "low", "line", "differ", "turn", "cause", "much", "mean",
  "before", "move", "right", "boy", "old", "too", "same", "she", "all",
  "there", "when", "up", "use", "your", "way", "about", "many", "then", "them",
  "write", "would", "like", "so", "these", "her", "long", "make", "thing",
  "see", "him", "two", "has", "look", "more", "day", "could", "go", "come",
  "did", "number", "sound", "no", "most", "people", "my", "over", "know",
  "water", "than", "call", "first", "who", "may", "down", "side", "been",
  "now", "find", "head", "stand", "own", "page", "should", "country", "found",
  "answer", "school", "grow", "study", "still", "learn", "plant", "cover",
  "food", "sun", "four", "between", "state", "keep", "eye", "never", "last",
  "let", "thought", "city", "tree", "cross", "farm", "hard", "start", "might",
  "story", "saw", "far", "sea", "draw", "left", "late", "run", "quack",
  "while", "press", "close", "night", "real", "life", "few", "north", "book",
  "carry", "took", "science", "eat", "room", "friend", "began", "idea", "fish",
  "mountain", "stop", "once", "base", "hear", "horse", "cut", "sure", "watch",
  "color", "face", "wood", "main", "open", "seem", "together", "next", "white",
  "children", "begin", "got", "walk", "example", "ease", "paper", "group",
  "always", "music", "those", "both", "mark", "often", "letter", "until",
  "mile", "river", "car", "feet", "care", "second", "enough", "plain", "girl",
  "usual", "young", "ready", "above", "ever", "red", "list", "though", "feel",
  "talk", "bird", "soon", "body", "dog", "family", "direct", "pose", "leave",
  "song", "measure", "door", "product", "black", "short", "numeral", "class",
  "wind", "question", "happen", "complete", "ship", "area", "half", "rock",
  "order", "fire", "south", "problem", "piece", "told", "knew", "pass",
  "since", "top", "whole", "king", "street", "inch", "multiply", "nothing",
  "course", "stay", "wheel", "full", "force", "blue", "object", "decide",
  "surface", "deep", "moon", "island", "foot", "system", "busy", "test",
  "record", "boat", "common", "gold", "possible", "plane", "stead", "dry",
  "wonder", "laugh", "thousand", "ago", "ran", "check", "game", "shape",
  "equate", "hot", "miss", "brought", "heat", "snow", "tire", "bring", "yes",
  "distant", "fill", "east", "paint", "language", "among", "unit", "power",
  "town", "fine", "certain", "fly", "fall", "lead", "cry", "dark", "machine",
  "note", "wait", "plan", "figure", "star", "box", "noun", "field", "rest",
  "correct", "able", "pound", "done", "beauty", "drive", "stood", "contain",
  "front", "teach", "week", "final", "gave", "green", "oh", "quick", "develop",
  "ocean", "warm", "free", "minute", "strong", "special", "mind", "behind",
  "clear", "tail", "produce", "fact", "space", "heard", "best", "hour",
  "better", "true", "during", "hundred", "five", "remember", "step", "early",
  "hold", "west", "ground", "interest", "reach", "fast", "verb", "sing",
  "listen", "six", "table", "travel", "less", "morning", "ten", "simple",
  "several", "vowel", "toward", "war", "lay", "against", "pattern", "slow",
  "center", "love", "person", "money", "serve", "appear", "road", "map",
  "rain", "rule", "govern", "pull", "cold", "notice", "voice", "energy",
  "hunt", "probable", "bed", "brother", "egg", "ride", "cell", "believe",
  "perhaps", "pick", "sudden", "count", "square", "reason", "length",
  "represent", "art", "subject", "region", "size", "vary", "settle", "speak",
  "weight", "general", "ice", "matter", "circle", "pair", "include", "divide",
  "syllable", "felt", "grand", "ball", "yet", "wave", "drop", "heart", "am",
  "present", "heavy", "dance", "engine", "position", "arm", "wide", "sail",
  "material", "fraction", "forest", "sit", "race", "window", "store", "summer",
  "train", "sleep", "prove", "lone", "leg", "exercise", "wall", "catch",
  "mount", "wish", "sky", "board", "joy", "winter", "sat", "written", "wild",
  "instrument", "kept", "glass", "grass", "cow", "job", "edge", "sign",
  "visit", "past", "soft", "fun", "bright", "gas", "weather", "month",
  "million", "bear", "finish", "happy", "hope", "flower", "clothe", "strange",
  "gone", "trade", "melody", "trip", "office", "receive", "row", "mouth",
  "exact", "symbol", "die", "least", "trouble", "shout", "except", "wrote",
  "seed", "tone", "join", "suggest", "clean", "break", "lady", "yard", "rise",
  "bad", "blow", "oil", "blood", "touch", "grew", "cent", "mix", "team",
  "wire", "cost", "lost", "brown", "wear", "garden", "equal", "sent", "choose",
  "fell", "fit", "flow", "fair", "bank", "collect", "save", "control",
  "decimal", "ear", "else", "quite", "broke", "case", "middle", "kill", "son",
  "lake", "moment", "scale", "loud", "spring", "observe", "child", "straight",
  "consonant", "nation", "dictionary", "milk", "speed", "method", "organ",
  "pay", "age", "section", "dress", "cloud", "surprise", "quiet", "stone",
  "tiny", "climb", "cool", "design", "poor", "lot", "experiment", "bottom",
  "key", "iron", "single", "stick", "flat", "twenty", "skin", "smile",
  "crease", "hole", "jump", "baby", "eight", "village", "meet", "root", "buy",
  "raise", "solve", "metal", "whether", "push", "seven", "paragraph", "third",
  "shall", "held", "hair", "describe", "cook", "floor", "either", "result",
  "burn", "hill", "safe", "cat", "century", "consider", "type", "law", "bit",
  "coast", "copy", "phrase", "silent", "tall", "sand", "soil", "roll",
  "temperature", "finger", "industry", "value", "fight", "lie", "beat",
  "excite", "natural", "view", "sense", "capital", "chair", "danger",
  "fruit", "rich", "thick", "soldier", "process", "operate", "practice",
  "separate", "difficult", "doctor", "please", "protect", "noon", "crop",
  "modern", "element", "hit", "student", "corner", "party", "supply", "whose",
  "locate", "ring", "character", "insect", "caught", "period", "indicate",
  "radio", "spoke", "atom", "human", "history", "effect", "electric", "expect",
  "bone", "rail", "imagine", "provide", "agree", "thus", "gentle", "woman",
  "captain", "guess", "necessary", "sharp", "wing", "create", "neighbor",
  "wash", "bat", "rather", "crowd", "corn", "compare", "poem", "string",
  "bell", "depend", "meat", "rub", "tube", "famous", "dollar", "stream",
  "fear", "sight", "thin", "triangle", "planet", "hurry", "chief", "colony",
  "clock", "mine", "tie", "enter", "major", "fresh", "search", "send",
  "yellow", "gun", "allow", "print", "dead", "spot", "desert", "suit",
  "current", "lift", "rose", "arrive", "master", "track", "parent", "shore",
  "division", "sheet", "substance", "favor", "connect", "post", "spend",
  "chord", "fat", "glad", "original", "share", "station", "dad", "bread",
  "charge", "proper", "bar", "offer", "segment", "slave", "duck", "instant",
  "market", "degree", "populate", "chick", "dear", "enemy", "reply", "drink",
  "occur", "support", "speech", "nature", "range", "steam", "motion", "path",
  "liquid", "log", "meant", "quotient", "teeth", "shell", "neck", "oxygen",
  "sugar", "death", "pretty", "skill", "women", "season", "solution", "magnet",
  "silver", "thank", "branch", "match", "suffix", "especially", "fig",
  "afraid", "huge", "sister", "steel", "discuss", "forward", "similar",
  "guide", "experience", "score", "apple", "bought", "led", "pitch", "coat",
  "mass", "card", "band", "rope", "slip", "win", "dream", "evening",
  "condition", "feed", "tool", "total", "basic", "smell", "valley", "nor",
  "double", "seat", "continue", "block", "chart", "hat", "sell", "success",
  "company", "subtract", "event", "particular", "deal", "swim", "term",
  "opposite", "wife", "shoe", "shoulder", "spread", "arrange", "camp",
  "invent", "cotton", "born", "determine", "quart", "nine", "truck", "noise",
  "level", "chance", "gather", "shop", "stretch", "throw", "shine", "property",
  "column", "molecule", "select", "wrong", "gray", "repeat", "require",
  "broad", "prepare", "salt", "nose", "plural", "anger", "claim", "continent",
}

-- TODO: figure out how to fix, if at all possible
-- highlighting incorrectly typed russian will result in weird texts
Constants.russian_common = {
  "и", "в", "не", "на", "я", "он", "что", "с", "это", "быть", "а", "весь",
  "они", "она", "как", "мы", "к", "у", "вы", "этот", "за", "тот", "но", "ты",
  "по", "из", "о", "свой", "так", "один", "вот", "который", "наш", "только",
  "ещё", "от", "такой", "мочь", "говорить", "говорить", "сказать", "для",
  "уже", "знать", "да", "какой", "когда", "другой", "первый", "чтобы", "его",
  "год", "кто", "дело", "нет", "её", "очень", "большой", "новый",
  "становиться", "стать", "работа", "сейчас", "время", "человек", "идти",
  "пойти", "если", "два", "мой", "жизнь", "до", "где", "каждый", "самый",
  "хотеть", "здесь", "надо", "люди", "теперь", "дом", "раз", "день", "или",
  "город", "там", "слово", "глаз", "потом", "видеть", "их", "под", "даже",
  "думать", "хорошо", "можно", "тут", "тысяча", "ли", "вода", "ничто",
  "ничего", "много", "рука", "себя", "молодой", "тоже", "спрашивать",
  "спросить", "без", "делать", "три", "всё", "то", "жить", "труд", "сам",
  "хороший", "второй", "через", "место", "после", "страна", "двадцать",
  "должен", "больше", "ваш", "дверь", "друг", "машина", "комната", "учиться",
  "над", "голова", "почему", "земля", "стол", "давать", "дать", "перед",
  "тогда", "сидеть", "мальчик", "девушка", "лето", "сегодня", "сторона",
  "совсем", "маленький", "несколько", "вдруг", "ни", "лицо", "конечно",
  "народ", "начинать", "начать", "пять", "ведь", "вопрос", "писать", "письмо",
  "при", "мать", "нужно", "смотреть", "сила", "вместе", "выходить", "выйти",
  "любить", "дорога", "старый", "улица", "решать", "решить", "книга", "всегда",
  "голос", "значить", "сразу", "лишь", "минута", "снова", "окно", "бы",
  "уходить", "уйти", "девятьсот", "последний", "проходить", "пройти", "отец",
  "час", "просто", "видеть", "увидеть", "же", "третий", "потому", "никто",
  "ждать", "сколько", "высокий", "лучше", "получать", "получить", "почти",
  "лес", "конец", "нога", "собственный", "сто", "художник", "четыре", "пока",
  "пока не", "слушать", "путь", "белый", "республика", "быстро", "куда",
  "главный", "дети", "рассказывать", "рассказать", "совет", "газета",
  "понимать", "понять", "пора", "твой", "бывать", "находить", "найти", "песня",
  "имя", "партия", "вечер", "опять", "иметь", "между", "настоящий", "план",
  "правда", "сорок", "ходить", "ходить", "узнавать", "узнать", "поле", "ночь",
  "входить", "войти", "красный", "более", "урок", "нельзя", "тело", "рядом",
  "лежать", "про", "интересный", "никогда", "район", "нужный", "особенно",
  "отвечать", "ответить", "начальник", "разный", "тридцать", "десять", "мир",
  "картина", "комитет", "мысль", "гость", "старший", "вид", "среди", "случай",
  "народный", "помнить", "просить", "пусть", "разговор", "двор", "долго",
  "месяц", "возвращаться", "вернуться", "союз", "война", "хотя", "берег",
  "целый", "группа", "скоро", "студент", "товарищ", "часть", "спать", "полный",
  "сюда", "приезжать", "приехать", "оно", "женщина", "собрание", "подходить",
  "подойти", "дерево", "сад", "чуть", "бояться", "заниматься", "папа",
  "помощь", "прошлый", "прямо", "лучший", "мастер", "секретарь", "стена",
  "оказываться", "оказаться", "сын", "брат", "зачем", "играть", "сыграть",
  "институт", "пятый", "раньше", "тихо", "чёрный", "великий", "завтра",
  "широкий", "мало", "наконец", "плечо", "разве", "разве… не", "снег",
  "будущий", "сердце", "трудно", "язык", "приходить", "прийти", "русский",
  "недавно", "советский", "некоторый", "продолжать", "продолжить", "член",
  "поэтому", "замечать", "заметить", "квартира", "уметь", "свет", "назад",
  "школьник", "домой", "право", "сильный", "средний", "дальше", "задача",
  "бежать", "ветер", "помогать", "помочь", "словно", "дорогой", "история",
  "молчать", "солнце", "дома", "море", "огромный", "ученик", "чувство", "петь",
  "борьба", "речь", "ехать", "хлеб", "движение", "праздник", "внимание",
  "считать", "счесть", "считать", "иногда", "кричать", "фабрика", "успевать",
  "успеть", "действительно", "именно", "общий", "всякий", "директор",
  "красивый", "номер", "около", "парень", "хозяйство", "вокруг", "душа",
  "четвёртый", "шесть", "поднимать", "поднять", "взгляд", "инженер", "также",
  "тяжёлый", "цветок", "брать", "взять", "видно", "воздух", "давно",
  "забывать", "забыть", "из-за", "опыт", "звать", "стройка", "жена", "молоко",
  "ставить", "однако", "угол", "бумага", "принимать", "принять", "длинный",
  "занятие", "чистый", "садиться", "сесть", "часто", "шестой", "военный",
  "вставать", "встать", "игра", "кружок", "хозяин", "никакой", "дядя", "живой",
  "деревня", "образ", "порядок", "строитель", "успех", "приносить", "принести",
  "слишком", "добрый", "прежде", "рассказ", "семья", "утро", "лагерь",
  "знакомый", "армия", "нос", "пожалуйста", "собираться", "собраться",
  "сначала", "техника", "деньги", "доклад", "оба", "седьмой", "поздно",
  "попадать", "попасть", "встреча", "возможность", "культура", "следовать",
  "команда", "ну", "очередь", "личный", "школа", "расти", "колхоз", "причина",
  "ребята", "девочка", "многий", "организация", "мама", "станция", "туда",
  "уж", "уже", "совершенно", "спокойно", "хотеться", "всё-таки", "чем",
  "будто", "мнение", "впервые", "любой", "медленно", "друг друга",
  "приходиться", "прийтись", "начало", "похожий", "зал", "держать",
  "предприятие", "спортивный", "весёлый", "здравствовать", "Здравствуй",
  "вперёд", "зелёный", "нёбо", "встречать", "встретить", "отношение",
  "бабушка", "детский", "останавливаться", "остановиться", "ответ", "восемь",
  "доска", "появляться", "появиться", "неделя", "завод", "форма", "являться",
  "вещь", "герой", "кроме", "подниматься", "подняться", "съезд", "точно",
  "ход", "равно", "шаг", "клуб", "крупный", "вспоминать", "вспомнить",
  "небольшой", "художественный", "кто-то", "нравиться", "школьный",
  "государство", "американский", "строить", "восьмой", "немного", "пауза",
  "показывать", "показать", "далеко", "затем", "здание", "однажды", "птица",
  "самолёт", "семь", "шофёр", "двести", "известный", "правильно", "решение",
  "вечером", "готовый", "стараться", "например", "простой", "произведение",
  "учить", "учить", "иной", "результат", "доктор", "случаться", "случиться",
  "называть", "назвать", "важный", "знание", "улыбаться", "улыбнуться",
  "плохо", "учиться", "открывать", "открыть", "оставаться", "остаться",
  "наука", "камень", "против", "развитие", "бог", "общество", "ничего",
  "условие", "господин", "солдат", "революция", "начинаться", "начаться",
  "область", "что-то", "власть", "судьба", "действие", "мера", "энергия",
  "ряд", "находиться", "найтись", "положение", "глядеть", "век", "миллион",
  "общественный", "основной", "генерал", "интерес", "легко", "материал",
  "цель", "огонь", "закон", "природа", "масса", "бой", "политический", "луч",
  "волна", "процесс", "научный", "различный", "мировой", "система", "лист",
  "хоть", "ребёнок", "связь", "вообще", "верить", "мужчина", "что-нибудь",
  "представлять", "представить", "искать", "писатель", "промышленность",
  "учёный", "верно", "служить", "правительство", "экономический", "есть",
  "рабочий", "современный", "работник", "чёрт", "качество", "международный",
  "офицер", "проблема", "требовать", "коммунизм", "корабль", "класс",
  "километр", "число", "база", "палец", "количество", "коммунист", "победа",
  "река", "пить", "человеческий", "гора", "милый", "политика", "производство",
  "национальный", "холодный", "государственный", "откуда", "сложный",
  "богатый", "бросать", "бросить", "строительство", "значение", "председатель",
  "характер", "необходимый", "смеяться", "бороться", "изделие", "особый",
  "смерть", "статья", "счёт", "весьма", "сельский", "средство", "подобный",
  "пример", "революционный", "скорость", "факт", "малый", "чай", "тёмный",
  "явление", "состоять", "ясно", "точка", "стоить", "ум", "вполне", "событие",
  "существовать", "кабинет", "спасибо", "враг", "глубокий", "французский",
  "близкий", "ах", "деятельность", "приводить", "привести", "трубка",
  "английский", "сей", "температура", "состояние", "счастье", "смысл", "рубль",
  "вчера", "правый", "автор", "большинство", "известно", "мелкий", "течение",
  "оружие", "муж", "происходить", "произойти", "свободный", "идея", "усилие",
  "линия", "искусство", "состав", "капитализм", "литература", "страница",
  "бить", "иначе", "читатель", "наиболее", "рост", "американец", "корень",
  "немец", "небо", "свойство", "взглядывать", "взглянуть", "высоко",
  "население", "стекло", "театр", "надежда", "довольно", "край", "мужик",
  "степь", "цвет", "дед", "основа", "рано", "технический", "счастливый",
  "круг", "момент", "необходимо", "строй", "дочь", "использовать", "министр",
  "синий", "передавать", "передать", "программа", "десяток", "кровь",
  "отдавать", "отдать", "отдельный", "свобода", "хватать", "хватить",
  "внутренний", "выступать", "выступить", "как-то", "занимать", "занять",
  "представитель", "фронт", "богатство", "желать", "какой-нибудь", "глубина",
  "мимо", "управление", "слава", "сотня", "страшный", "тем", "весна",
  "действовать", "пол", "процент", "родина", "сцена", "значительный", "метр",
  "чужой", "воля", "зуб", "менее", "метод", "прощать", "простить", "связывать",
  "связать", "яркий", "песок", "уровень", "исторический", "источник",
  "половина", "служба", "ладно", "мешать", "село", "впрочем", "горячий",
  "образование", "тонна", "вызывать", "вызвать", "зрение", "морской",
  "остальной", "семя", "сильно", "тонкий", "флот", "беседа", "данный",
  "достаточно", "единственный", "лампа", "продукция", "центр", "вовсе",
  "западный", "корреспондент", "пожалуй", "приём", "прочий", "страшно",
  "возле", "вон", "партийный", "телефон", "удаваться", "удаться", "быстрый",
  "крестьянин", "выход", "пытаться", "по-", "стих", "период", "убивать",
  "убить", "дружба", "едва", "неужели", "степень", "боевой", "войска", "карта",
  "направление", "человечество", "вроде", "громадный", "лёгкий",
  "пользоваться", "предложение", "элемент", "являться", "явиться", "вероятно",
  "печь", "печь", "казаться", "умный", "глава", "плакать", "сквозь", "способ",
  "способный", "церковь", "часы", "честь", "открытый", "память", "понятно",
  "совещание", "замечательный", "знаменитый", "предмет", "слеза", "где-то",
  "дно", "магазин", "вещество́", "создание", "старуха", "карман", "музей",
  "падать", "пасть", "ясный", "поверхность", "близко", "заявлять", "заявить",
  "золотой", "колено", "равный", "следующий", "снимать", "снять", "страх",
  "тёплый", "высота", "музыка", "остров", "относиться", "отнестись",
  "переставать", "перестать", "столь", "мирный", "трудный", "долгий",
  "железный", "прямой", "социальный", "волос", "воспитание", "дитя",
  "покупать", "купить", "луна", "пускать", "пустить", "вместо", "несмотря",
  "кулак", "кухня", "любовь", "рисунок", "слой", "тема", "цена", "конь",
  "материальный", "теория", "баба", "терять", "прекрасный", "род", "голубой",
  "господь", "губа", "посылать", "послать", "руководитель", "специальный",
  "тётя", "центральный", "всего", "вывод", "выполнять", "выполнить", "зерно",
  "молодёжь", "эх", "возможно", "глубоко", "добиваться", "добиться", "местный",
  "растение", "старик", "поход", "спина", "судить", "умирать", "умереть",
  "экономика", "больной", "дух", "ниже", "океан", "запас", "земной",
  "министерство", "обязательно", "польза", "предлагать", "предложить",
  "создавать", "создать", "вновь", "зависеть", "плод", "радио",
  "разнообразный", "существование", "бывший", "касаться", "коснуться", "никак",
  "основание", "приказывать", "приказать", "родной", "солнечный", "стремиться",
  "газ", "орудие", "радость", "том", "честный", "исследование", "ладонь",
  "определённый", "позиция", "ради", "срок",
}

return Constants
