iimran commited on
Commit
1294687
·
verified ·
1 Parent(s): 7e3a83e

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +822 -14
app.py CHANGED
@@ -13,6 +13,9 @@ class ONNXInferencePipeline:
13
  if hf_token is None:
14
  raise ValueError("HF_TOKEN environment variable is not set.")
15
 
 
 
 
16
  # Download files from Hugging Face Hub using the token
17
  self.onnx_path = hf_hub_download(repo_id=repo_id, filename="model.onnx", use_auth_token=hf_token)
18
  self.tokenizer_path = hf_hub_download(repo_id=repo_id, filename="train_bpe_tokenizer.json", use_auth_token=hf_token)
@@ -33,6 +36,796 @@ class ONNXInferencePipeline:
33
  self.providers = ['CUDAExecutionProvider']
34
  self.session.set_providers(self.providers)
35
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
36
  def preprocess(self, text):
37
  encoding = self.tokenizer.encode(text)
38
  ids = encoding.ids[:self.max_len]
@@ -40,6 +833,16 @@ class ONNXInferencePipeline:
40
  return np.array(ids + padding, dtype=np.int64).reshape(1, -1)
41
 
42
  def predict(self, text):
 
 
 
 
 
 
 
 
 
 
43
  # Preprocess
44
  input_array = self.preprocess(text)
45
 
@@ -59,7 +862,8 @@ class ONNXInferencePipeline:
59
  return {
60
  'label': class_labels[predicted_class],
61
  'confidence': float(probabilities[0][predicted_class]),
62
- 'probabilities': probabilities[0].tolist()
 
63
  }
64
 
65
  # Example usage
@@ -69,23 +873,27 @@ if __name__ == "__main__":
69
 
70
  # Example texts for testing
71
  example_texts = [
72
- "You're a worthless piece of garbage who should die"
 
73
  ]
74
 
75
  for text in example_texts:
76
  result = pipeline.predict(text)
77
  print(f"Input: {text}")
78
- print(f"Prediction: {result['label']} ")
79
- #print(f"Probabilities: Inappropriate={result['probabilities'][0]:.2%}, Not Inappropriate={result['probabilities'][1]:.2%}")
 
 
 
80
  print("-" * 80)
81
 
82
  # Define a function for Gradio to use
83
  def gradio_predict(text):
84
  result = pipeline.predict(text)
85
- return (
86
- f"Prediction: {result['label']} \n"
87
- #f"Probabilities: Inappropriate={result['probabilities'][0]:.2%}, Not Inappropriate={result['probabilities'][1]:.2%}"
88
- )
89
 
90
  # Create a Gradio interface
91
  iface = gr.Interface(
@@ -101,17 +909,17 @@ if __name__ == "__main__":
101
  ),
102
  examples=[
103
  # Explicitly offensive examples
104
- "Congrats, you fuckbrain arsehole, youve outdone yourself in stupidity. A real cock-up of a human—should we clap for your bollocks-faced greatness or just pity you?",
105
- "Youre a mad bastard, but Id still grab a beer with you! Fuck around all you like, you cockheaded legend—your arsehole antics are bloody brilliant.",
106
  "Your mother should have done better raising such a useless idiot.",
107
 
108
  # Neutral or appropriate examples
109
- "Hello HR, I hope this message finds you well. Im writing to express my gratitude for the opportunity to interview for the Financial Analyst position last week. It was a pleasure to meet you and learn more about the role and your team.",
110
- "Thank you for your time and consideration. Please dont hesitate to reach out if you need additional information—Id be happy to discuss further. Looking forward to hearing from you soon!",
111
- "The weather today is lovely, and Im looking forward to a productive day at work.",
112
 
113
  # Mixed examples (some offensive, some neutral)
114
- "I appreciate your help, but honestly, youre such a clueless idiot sometimes. Still, thanks for trying."
115
  ]
116
  )
117
 
 
13
  if hf_token is None:
14
  raise ValueError("HF_TOKEN environment variable is not set.")
15
 
16
+ # Load banned keywords list
17
+ self.banned_keywords = self.load_banned_keywords()
18
+
19
  # Download files from Hugging Face Hub using the token
20
  self.onnx_path = hf_hub_download(repo_id=repo_id, filename="model.onnx", use_auth_token=hf_token)
21
  self.tokenizer_path = hf_hub_download(repo_id=repo_id, filename="train_bpe_tokenizer.json", use_auth_token=hf_token)
 
36
  self.providers = ['CUDAExecutionProvider']
37
  self.session.set_providers(self.providers)
38
 
39
+ def load_banned_keywords(self):
40
+ # Define a list of banned keywords
41
+ # This can be loaded from a file or defined directly here
42
+ # For this example, I'm using a shortened list from your document
43
+ return [
44
+ # Original banned keywords
45
+ "fuck", "shit", "bitch", "cunt", "asshole", "faggot", "nigger", "bastard", "damn", "crap",
46
+ "arse", "bollocks", "cock", "dick", "piss", "wanker", "whore", "slut", "motherfucker", "son of a bitch",
47
+ "chink", "gook", "kike", "spic", "wog", "coon", "negro", "tar baby", "bimbo", "skank", "hoe", "twat",
48
+ "pagal", "mad", "bloody", "blood", "tranny", "dyke", "queer", "fudge packer", "muff diver",
49
+ "retard", "cripple", "spaz", "mongoloid", "idiot", "rocket", "killing", "pistol",
50
+ "infidel", "heathen", "blasphemy", "heretic", "islam", "religion", "relegious", "ak47",
51
+ "kill yourself", "go to hell", "rape", "murder", "terrorist", "terror",
52
+ "pedo", "nazi", "devil", "shithead", "asswipe", "blast", "islamist",
53
+ "bomb", "poison", "stab", "shoot", "assassinate", "strangle", "torture", "harm", "injure",
54
+ "terrorism", "extremist", "radical", "suicide", "explosion", "grenade", "weapon", "gun", "rifle",
55
+ "ammunition", "bombing", "massacre", "genocide",
56
+ "threaten", "intimidate", "destroy", "obliterate", "exterminate", "eliminate", "annihilate", "violence",
57
+ "attack", "raid", "ambush", "hostage", "kidnap",
58
+ "war", "bloodshed", "slaughter", "brutality", "carnage", "vengeance", "revenge", "punish", "execute",
59
+ "decapitate", "maim", "hell", "poo", "turd",
60
+ "douche", "dumbass", "jerk", "prick", "scumbag", "screw", "sodomize",
61
+ "beaner", "camel jockey", "gypsy", "haji", "jap", "paki", "raghead", "sambo", "wetback", "yid",
62
+ "gold digger", "hooker", "milf", "porn", "prostitute", "sex worker", "thot",
63
+ "gender bender", "hermaphrodite", "ladyboy", "she-male", "sissy",
64
+ "blind", "deaf", "dumb", "lame", "psycho", "schizo", "stupid", "buddha fart", "jesus h christ", "pastafarian",
65
+ "abuse", "behead", "choke", "crucify", "dismember", "electrocute", "gaslight",
66
+ "hang", "lynch", "smother", "strangle", "taser",
67
+ "al qaeda", "isis", "taliban", "chemical weapon", "biological weapon", "nuclear bomb", "dirty bomb",
68
+ "suicide vest", "car bomb", "drone strike",
69
+ "burn", "castrate", "cutthroat", "gang bang", "gangster", "hitman", "mafia", "mob", "noose",
70
+ "poison gas", "sniper", "vengeful",
71
+ "anarchy", "apocalypse", "chaos", "doom", "evil", "hate", "insanity", "madness", "plague", "riot",
72
+ "slaughterhouse", "zombie", "bund", "gand", "gandu", "chod", "behenchod", "behen chod", "lora", "lund", "loda",
73
+ # Additional banned keywords from the new list
74
+ "2g1c", "2 girls 1 cup", "acrotomophilia", "alabama hot pocket", "alaskan pipeline", "anal", "anilingus", "anus",
75
+ "arsehole", "ass", "assmunch", "auto erotic", "autoerotic", "babeland", "baby batter", "baby juice",
76
+ "ball gag", "ball gravy", "ball kicking", "ball licking", "ball sack", "ball sucking", "bangbros",
77
+ "bareback", "barely legal", "barenaked", "bastardo", "bastinado", "bbw", "bdsm", "beaver cleaver", "beaver lips",
78
+ "bestiality", "bi curious", "big black", "big breasts", "big knockers", "big tits", "bimbos", "birdlock",
79
+ "black cock", "blonde action", "blonde on blonde action", "blowjob", "blow job", "blow your load",
80
+ "blue waffle", "blumpkin", "bondage", "boner", "boob", "boobs", "booty call", "brown showers",
81
+ "brunette action", "bukkake", "bulldyke", "bullet vibe", "bung hole", "bunghole", "busty", "butt",
82
+ "buttcheeks", "butthole", "camel toe", "camgirl", "camslut", "camwhore", "carpet muncher", "carpetmuncher",
83
+ "chocolate rosebuds", "circlejerk", "cleveland steamer", "clit", "clitoris", "clover clamps", "clusterfuck",
84
+ "cocks", "coprolagnia", "coprophilia", "cornhole", "creampie", "cum", "cumming", "cunnilingus",
85
+ "cunt", "darkie", "date rape", "daterape", "deep throat", "deepthroat", "dendrophilia", "dick", "dildo",
86
+ "dirty pillows", "dirty sanchez", "doggie style", "doggiestyle", "doggy style", "doggystyle", "dog style",
87
+ "dolcett", "domination", "dominatrix", "dommes", "donkey punch", "double dong", "double penetration",
88
+ "dp action", "dry hump", "dvda", "eat my ass", "ecchi", "ejaculation", "erotic", "erotism", "escort",
89
+ "ethical slut", "eunuch", "faggot", "fecal", "felch", "fellatio", "feltch", "female squirting", "femdom",
90
+ "figging", "fingerbang", "fingering", "fisting", "foot fetish", "footjob", "frotting", "fuck buttons",
91
+ "fudge packer", "fudgepacker", "futanari", "gay sex", "genitals", "giant cock", "girl on", "girl on top",
92
+ "girls gone wild", "goatcx", "goatse", "gokkun", "gold digger", "golden shower", "goo girl", "goodpoop",
93
+ "gook", "goregasm", "grenade", "grope", "group sex", "gun", "guro", "gypsy", "hand job", "handjob",
94
+ "hard core", "hardcore", "hentai", "homoerotic", "honkey", "hooker", "hostage", "hot carl",
95
+ "hot chick", "how to kill", "how to murder", "huge fat", "humping", "jack off", "jail bait", "jailbait",
96
+ "jap", "jelly donut", "jerk", "jerk off", "jesus h christ", "jigaboo", "jiggaboo", "jiggerboo", "jizz",
97
+ "juggs", "kidnap", "kike", "kill yourself", "killing", "kinbaku", "kinkster", "kinky", "knobbing",
98
+ "ladyboy", "leather restraint", "leather straight jacket", "lemon party", "lolita", "lora", "lovemaking",
99
+ "make me come", "male squirting", "massacre", "masturbate", "menage a trois", "milf", "mob", "motherfucker",
100
+ "mound of venus", "mr hands", "muff diver", "muffdiving", "murder", "nambla", "nawashi", "nazi", "negro",
101
+ "nigger", "nimphomania", "nipple", "noose", "nuclear bomb", "obliterate", "pagal", "paki",
102
+ "pastafarian", "pedo", "piss", "pistol", "plague", "poison", "poison gas", "poo", "porn", "prick",
103
+ "prostitute", "psycho", "punish", "queer", "radical", "raghead", "raid", "rape", "relegious", "religion",
104
+ "retard", "revenge", "rifle", "riot", "rocket", "sambo", "schizo", "screw", "scumbag", "sex worker",
105
+ "she-male", "shit", "shithead", "shoot", "sissy", "skank", "slaughter", "slaughterhouse", "slut",
106
+ "smother", "sniper", "sodomize", "son of a bitch", "spaz", "spic", "stab", "strangle", "stupid",
107
+ "suicide", "suicide vest", "taliban", "tar baby", "taser", "terror", "terrorism", "terrorist", "thot",
108
+ "threaten", "torture", "tranny", "turd", "twat", "vengeance", "vengeful", "violence", "wanker",
109
+ "war", "weapon", "wetback", "whore", "wog", "yid", "zombie",
110
+ # Additional variations for "stupid"
111
+ "stupid", "sstupid", "stupidd", "stuupid", "stuppidd", "sttupid", "stupiid", "sttuppid",
112
+ # Additional variations for "idiot"
113
+ "idiot", "idiott", "idioot", "idit", "id0t",
114
+ # Additional variations for "fuck"
115
+ "fuck", "f*ck", "f**ck", "fck", "fukk", "fucc", "f u c k",
116
+ # Additional variations for "shit"
117
+ "shit", "sh1t", "sh!t", "sht", "shiit",
118
+ # Additional variations for "bitch"
119
+ "bitch", "btch", "b1tch", "biatch", "b*tch",
120
+ # Additional variations for "asshole"
121
+ "asshole", "ashole", "asshol", "a$$hole", "a**hole",
122
+ # Additional variations for "dumb"
123
+ "dumb", "dumm", "dum", "dumbass", "dumass",
124
+ # Additional variations for "faggot"
125
+ "faggot", "fag", "fagg0t", "faaggot",
126
+ # Additional variations for "nigger"
127
+ "nigger", "nigga", "niggar", "niggah", "n*gger",
128
+ # Additional variations for "cunt"
129
+ "cunt", "c*nt", "c0nt",
130
+ # Additional variations for "whore"
131
+ "whore", "wh0re", "w*h*re", "whoore",
132
+ # Additional variations for "slut"
133
+ "slut", "sluut", "sllut", "slutty", "slu*t",
134
+ # Additional variations for "bastard"
135
+ "bastard", "basturd", "bastrd", "bastar",
136
+ # Additional variations for "dick"
137
+ "dick", "d1ck", "d!ck", "dicc", "d!k",
138
+ # Additional variations for "cock"
139
+ "cock", "c0ck", "c*ck",
140
+ # Additional variations for "ass"
141
+ "ass", "a$$", "azz", "a s s", "a$$s", "a55",
142
+ # Additional banned keywords from extended lists
143
+ "wop", "dago", "cracker", "mick", "libtard",
144
+ "asshat", "dickhead", "fuckhead", "fuckwit", "shithead", "dumbfuck", "jackass",
145
+ "assclown", "dickwad", "scumbucket", "prickface", "cocknose", "pissflap",
146
+ "cocksucker", "cum dumpster", "cum guzzler", "cum slut", "suck my dick", "suck my cock",
147
+ "pussy-whipped", "whorebag", "snowflake", "chav", "Karen", "fascist", "chod", "fukr", "idiott",
148
+ # New keywords from the additional list
149
+ "16+", "18+", "a$$", "alcohol", "amerifag",
150
+ "assault", "b!tch", "bstard", "burn yourself", "c!nt", "christfucker", "cnt", "cocaine",
151
+ "cracker", "creep", "cut yourself", "d!ck", "die in a hole", "die now", "dipshit", "drink bleach",
152
+ "drop dead", "dumbfuck", "dyke", "explosion", "fag", "fck", "fuck off", "fucker", "fucking idiot",
153
+ "fuk", "genocide", "get drunk", "go hang yourself", "gook", "gypsy", "handjob", "heroin",
154
+ "ho", "hymie", "i will ban you", "i will bomb the place", "i will fuck you", "i will kill you",
155
+ "jew", "jewboy", "kike", "kill", "kill yourself", "loser", "marijuana", "massacre", "meth",
156
+ "molest", "moslemfucker", "murder", "naked", "obongo", "orgy", "overdose", "p0rn", "penis",
157
+ "perv", "pervert", "rape", "rape you", "rat poison", "retard", "s3x", "sandnigger",
158
+ "screw you", "scumbag", "secks", "self-harm", "sex offender", "sexual predator", "sx",
159
+ "take pills", "terrorist", "tits", "tranny", "twat", "vag", "vagina", "vodka", "x", "xxx",
160
+ "you will get raped", "you're a piece of shit", "you're banned forever", "you're crazy",
161
+ "you're hallucinating", "you're such a cunt", "you're worthless",
162
+ # New Sexually Explicit keywords and variations
163
+ "p0rn", "nu|)e", "nud3", "5ex", "$ex", "s3x", "hardc0re", "h@rdcore", "hardcor3", "#ardcore",
164
+ "har|)core", "hard(ore", "h4rdcore", "adu1t", "adul7", "adu|t", "@dult", "adult", "4dult",
165
+ "a|)ult", "erot1c", "erot|c", "erot!c", "ero7ic", "eroti(", "er0tic", "3rotic", "str!p",
166
+ "s7rip", "str1p", "$trip", "strip", "str|p", "5trip", "c@mgirl", "camg|rl", "camg1rl",
167
+ "(amgirl", "cam9irl", "c4mgirl", "camgir1", "camgir|", "camg!rl", "feti$h", "fet1sh", "feti5h",
168
+ "fetis#", "f3tish", "fe7ish", "fetish", "fet!sh", "fet|sh",
169
+ "orgy", "or9y", "0rgy", "3scort", "escor7", "e$cort", "es(ort", "esc0rt", "e5cort", "escort",
170
+ "#ookup", "h00kup", "hookup", "8dsm", "bd5m", "bd$m", "bdsm", "b|)sm", "masturbat3", "m@sturb@te",
171
+ "ma$turbate", "m4sturb4te", "ma5turbate", "mas7urba7e", "mastur8ate",
172
+ "inc3st", "|ncest", "in(est", "ince$t", "ince5t", "!ncest", "inces7", "1ncest",
173
+ "ta8oo", "tab00", "t@boo", "taboo", "t4boo", "7aboo",
174
+ "blowjob", "bl0wj0b", "8lowjo8", "b|owjob", "b1owjob", "cumsh0t", "cums#ot", "cum5hot",
175
+ "cumshot", "cum$hot", "(umshot", "cumsho7", "deepthr0at", "deept#roat", "d33pthroat",
176
+ "deepthro@t", "deepthro4t", "|)eepthroat", "deep7hroa7",
177
+ # New Sexual Harassment keywords and variations
178
+ "perv", "p3rv", "(reep", "creep", "cr33p", "mo1est", "molest", "mole$t", "m0lest",
179
+ "mo|est", "mol3st", "moles7", "mole5t", "gr0pe", "9rope", "grop3", "grope", "h@r@ss",
180
+ "harass", "hara55", "h4r4ss", "#arass", "hara$$", "c4tc4ll", "ca7call", "catca11",
181
+ "catca||", "c@tc@ll", "(at(all", "catcall", "pre|)ator", "pred4tor", "pred@tor", "preda7or",
182
+ "pr3dator", "predat0r", "predator", "sta1ker", "st@lker", "stalk3r", "$talker", "st4lker",
183
+ "s7alker", "5talker", "stalker", "sta|ker", "m1sogyn1st", "misogynis7", "misogynist",
184
+ "m|sogyn|st", "m!sogyn!st", "mi$ogyni$t", "miso9ynist", "mis0gynist", "mi5ogyni5t",
185
+ "exp0se", "expose", "3xpos3", "expo$e", "expo5e",
186
+ # New Dangerous Content keywords and variations
187
+ "b0mb", "8om8", "k!ll", "k1ll", "ki||", "ki11", "k|ll", "kill", "atta(k", "a77ack",
188
+ "@tt@ck", "4tt4ck", "terr0r", "t3rror", "7error", "shoo7", "sh00t", "$hoot", "5hoot",
189
+ "s#oot", "$tab", "st4b", "st@b", "5tab", "sta8", "s7ab", "exp|osive", "expl0sive",
190
+ "explosive", "3xplosiv3", "explos!ve", "explos1ve", "explo5ive", "explos|ve", "explo$ive",
191
+ "exp1osive", "assass|nate", "assassinat3", "assass!nate", "assass1nate", "a55a55inate",
192
+ "assassina7e", "assassinate", "@ss@ssin@te", "4ss4ssin4te", "a$$a$$inate", "massacr3",
193
+ "massa(re", "ma$$acre", "m4ss4cre", "m@ss@cre", "ma55acre", "massacre", "$uicide",
194
+ "suicide", "su1c1de", "suicid3", "su|c|de", "sui(ide", "suici|)e", "5uicide", "su!c!de",
195
+ "#omicide", "hom!c!de", "hom|c|de", "homicid3", "homicide", "h0micide", "homi(ide",
196
+ "homici|)e", "hom1c1de", "7or7ure", "torture", "tortur3", "t0rture", "ra|)ical", "r4dic4l",
197
+ "rad1cal", "radica1", "radica|", "rad!cal", "rad|cal", "radical", "radi(al", "r@dic@l",
198
+ "beheadin9", "8eheading", "behea|)ing", "b3h3ading", "behead|ng", "beheading", "behead!ng",
199
+ "be#eading", "behe4ding", "behe@ding", "behead1ng", "extrem|st", "extrem!st", "3xtr3mist",
200
+ "extremi$t", "ex7remis7", "extremist", "extrem1st", "extremi5t", "r|ot", "r1ot", "rio7",
201
+ "r!ot", "ri0t", "traff|ck|ng", "tr@fficking", "traff!ck!ng", "traff1ck1ng", "7rafficking",
202
+ "tr4fficking", "traffi(king", "trafficking", "traffickin9", "k|dnap", "ki|)nap", "kidn@p",
203
+ "kidn4p", "k!dnap", "k1dnap", "arson", "ar5on", "ar$on", "4rson", "ars0n",
204
+ # New Harmful Content keywords and variations
205
+ "s3lf-harm", "se|f-harm", "self-h4rm", "self-h@rm", "5elf-harm", "self-#arm", "$elf-harm",
206
+ "se1f-harm", "self-harm", "cutting", "cuttin9", "cutt!ng", "(utting", "cutt1ng", "cu77ing",
207
+ "cutt|ng", "burn1ng", "burnin9", "burn!ng", "8urning", "burn|ng", "burning",
208
+ "pa!n", "p4in", "p@in", "pain", "pa1n", "pa|n", "s7arva7ion", "5tarvation",
209
+ "st4rv4tion", "starvat1on", "starvat!on", "starvation", "starvat|on", "starvati0n",
210
+ "$tarvation", "st@rv@tion", "overdose", "0verd0se", "ov3rdos3", "over|)ose", "overdo5e",
211
+ "overdo$e", "|)epresse|)", "d3pr3ss3d", "depre55ed", "depressed", "depre$$ed", "d|e",
212
+ "die", "d!e", "di3", "|)ie", "d1e", "jump", "hang", "#ang", "h4ng", "han9", "h@ng",
213
+ "poison", "po!son", "p0is0n", "poi5on", "poi$on", "po1son", "po|son", "(hloroform", "chloroform",
214
+ "ch|oroform", "ch1oroform", "c#loroform", "chl0r0f0rm", "drug abu5e", "dru9 abuse", "drug abuse",
215
+ "|)rug abuse", "drug abu$e", "drug 4buse", "drug abus3", "drug @buse", "drug a8use", "@ddict",
216
+ "4ddict", "add!ct", "addict", "a|)|)ict", "addic7", "add1ct", "add|ct", "addi(t", "opioid",
217
+ "0pi0id", "op1o1d", "op|o|d", "opioi|)", "op!o!d", "fentanyl", "f3ntanyl", "fentany|",
218
+ "fen7anyl", "fent@nyl", "fent4nyl", "fentany1", "meth", "met#", "m3th", "me7h", "coca1ne",
219
+ "cocain3", "cocaine", "coc4ine", "(o(aine", "coc@ine", "coca!ne", "coca|ne", "c0caine",
220
+ "h3roin", "her0in", "heroin", "#eroin", "hero|n", "hero!n", "hero1n",
221
+ # New Hate Speech keywords and variations
222
+ "n@zi", "naz1", "naz!", "nazi", "na2i", "naz|", "n4zi", "kkk", "suprema(y", "$upremacy",
223
+ "suprem4cy", "suprem@cy", "supr3macy", "5upremacy", "supremacy", "gen0cide", "genoc1de",
224
+ "genoci|)e", "genocide", "genoc|de", "geno(ide", "9enocide", "g3nocid3", "genoc!de", "big0t",
225
+ "bigot", "b|got", "bi9ot", "bigo7", "b!got", "8igot", "b1got", "#omop#obe", "homophobe",
226
+ "homophob3", "homopho8e", "h0m0ph0be", "xenophobe", "xenopho8e", "xenop#obe", "x3nophob3",
227
+ "xen0ph0be", "antifa", "bootlicker", "tankie", "baiter", "griefer", "kek", "pepe", "zoomer",
228
+ # New Slang Abuses & Offensive Insults
229
+ "bit(h", "8itch", "b|tch", "b1tch", "bi7ch", "bastar|", "b@st@rd", "ba5tard", "bas7ard",
230
+ "ba$tard", "b4st4rd", "8astard", "assho1e", "assho|e", "a$$hole", "ass#ole", "asshol3", "4sshole",
231
+ "a55hole", "assh0le", "pr1ck", "pr|ck", "pr!ck", "prick", "|)umbass", "dumba55", "dumb4ss",
232
+ "dumba$$", "dum8ass", "dumb@ss", "retar|", "r3tard", "re7ard", "ret@rd", "ret4rd", "|)ipshit",
233
+ "d|psh|t", "dipshi7", "dip5hit", "dips#it", "d!psh!t", "dipshit", "dip$hit", "d1psh1t",
234
+ "j@ck@ss", "wank3r", "w@nker", "w4nker", "tw4t", "tw@t", "7wa7", "shi7head", "shithe@d",
235
+ "shith3ad", "5hithead", "s#it#ead", "sh!thead", "sh1thead", "shithea|", "shithe4d", "$hithead",
236
+ # New General Abuses
237
+ "|d|ot", "idi0t", "1d1ot", "idio7", "idiot", "i|)iot", "!d!ot", "m0r0n", "moron", "lo5er",
238
+ "|oser", "1oser", "loser", "l0ser", "los3r", "5cum", "s(um", "$cum", "worthl3ss", "wort#less",
239
+ "worth|ess", "worthle$$", "wor7hless", "worthless", "worthle55", "worth1ess", "w0rthless",
240
+ # New additional keywords from your latest list
241
+ "16+", "18+", "alcohol", "amerifag", "assault", "b!tch", "bstard", "burn yourself", "c!nt",
242
+ "christfucker", "cnt", "cocaine", "creep", "cut yourself", "die in a hole", "die now", "dipshit",
243
+ "drink bleach", "drop dead", "dumbfuck", "fuck off", "fucker", "fucking idiot", "genocide",
244
+ "get drunk", "go hang yourself", "gook", "hymie", "i will ban you", "i will bomb the place",
245
+ "i will fuck you", "i will kill you", "jew", "jewboy", "kike", "kill", "kill yourself",
246
+ "loser", "marijuana", "massacre", "meth", "molest", "moslemfucker", "murder", "naked", "obongo",
247
+ "overdose", "penis", "perv", "pervert", "rape you", "rat poison", "s3x", "sandnigger",
248
+ "screw you", "secks", "self-harm", "sex offender", "sexual predator", "sx", "take pills",
249
+ "terrorist", "tits", "tranny", "twat", "vag", "vagina", "vodka", "x", "xxx",
250
+ "you will get raped", "you're a piece of shit", "you're banned forever", "you're crazy",
251
+ "you're hallucinating", "you're such a cunt", "you're worthless",
252
+ # New Sexually Explicit keywords and variations
253
+ "p0rn", "nu|)e", "nud3", "5ex", "$ex", "s3x", "hardc0re", "h@rdcore", "hardcor3", "#ardcore",
254
+ "har|)core", "hard(ore", "h4rdcore", "adu1t", "adul7", "adu|t", "@dult", "adult", "4dult",
255
+ "a|)ult", "erot1c", "erot|c", "erot!c", "ero7ic", "eroti(", "er0tic", "3rotic", "str!p",
256
+ "s7rip", "str1p", "$trip", "strip", "str|p", "5trip", "c@mgirl", "camg|rl", "camg1rl",
257
+ "(amgirl", "cam9irl", "c4mgirl", "camgir1", "camgir|", "camg!rl", "feti$h", "fet1sh", "feti5h",
258
+ "fetis#", "f3tish", "fe7ish", "fetish", "fet!sh", "fet|sh",
259
+ # New Sexual Harassment keywords and variations
260
+ "perv", "p3rv", "(reep", "creep", "cr33p", "mo1est", "molest", "mole$t", "m0lest",
261
+ "mo|est", "mol3st", "moles7", "mole5t", "gr0pe", "9rope", "grop3", "grope", "h@r@ss",
262
+ "harass", "hara55", "h4r4ss", "#arass", "hara$$", "c4tc4ll", "ca7call", "catca11",
263
+ "catca||", "c@tc@ll", "(at(all", "catcall", "pre|)ator", "pred4tor", "pred@tor", "preda7or",
264
+ "pr3dator", "predat0r", "predator", "sta1ker", "st@lker", "stalk3r", "$talker", "st4lker",
265
+ "s7alker", "5talker", "stalker", "sta|ker", "m1sogyn1st", "misogynis7", "misogynist", "m|sogyn|st",
266
+ "m!sogyn!st", "mi$ogyni$t", "miso9ynist", "mis0gynist", "mi5ogyni5t",
267
+ "exp0se", "expose", "3xpos3", "expo$e", "expo5e",
268
+ # New Dangerous Content keywords and variations
269
+ "b0mb", "8om8", "k!ll", "k1ll", "ki||", "ki11", "k|ll", "kill", "atta(k", "a77ack",
270
+ "@tt@ck", "4tt4ck", "terr0r", "t3rror", "7error", "shoo7", "sh00t", "$hoot", "5hoot",
271
+ "s#oot", "$tab", "st4b", "st@b", "5tab", "sta8", "s7ab", "exp|osive", "expl0sive",
272
+ "explosive", "3xplosiv3", "explos!ve", "explos1ve", "explo5ive", "explos|ve", "explo$ive",
273
+ "exp1osive", "assass|nate", "assassinat3", "assass!nate", "assass1nate", "a55a55inate",
274
+ "assassina7e", "assassinate", "@ss@ssin@te", "4ss4ssin4te", "a$$a$$inate", "massacr3",
275
+ "massa(re", "ma$$acre", "m4ss4cre", "m@ss@cre", "ma55acre", "massacre", "$uicide", "suicide",
276
+ "su1c1de", "suicid3", "su|c|de", "sui(ide", "suici|)e", "5uicide", "su!c!de", "#omicide",
277
+ "hom!c!de", "hom|c|de", "homicid3", "homicide", "h0micide", "homi(ide", "homici|)e", "hom1c1de",
278
+ "7or7ure", "torture", "tortur3", "t0rture", "ra|)ical", "r4dic4l", "rad1cal", "radica1",
279
+ "radica|", "rad!cal", "rad|cal", "radical", "radi(al", "r@dic@l", "beheadin9",
280
+ "8eheading", "behea|)ing", "b3h3ading", "behead|ng", "beheading", "behead!ng",
281
+ "be#eading", "behe4ding", "behe@ding", "behead1ng", "extrem|st", "extrem!st", "3xtr3mist",
282
+ "extremi$t", "ex7remis7", "extremist", "extrem1st", "extremi5t", "r|ot", "r1ot", "rio7",
283
+ "r!ot", "ri0t", "traff|ck|ng", "tr@fficking", "traff!ck!ng", "traff1ck1ng", "7rafficking",
284
+ "tr4fficking", "traffi(king", "trafficking", "traffickin9", "k|dnap", "ki|)nap", "kidn@p",
285
+ "kidn4p", "k!dnap", "k1dnap", "arson", "ar5on", "ar$on", "4rson", "ars0n",
286
+ # New Harmful Content keywords and variations
287
+ "s3lf-harm", "se|f-harm", "self-h4rm", "self-h@rm", "5elf-harm", "self-#arm", "$elf-harm",
288
+ "se1f-harm", "self-harm", "cutting", "cuttin9", "cutt!ng", "(utting", "cutt1ng", "cu77ing",
289
+ "cutt|ng", "burn1ng", "burnin9", "burn!ng", "8urning", "burn|ng", "burning",
290
+ "pa!n", "p4in", "p@in", "pain", "pa1n", "pa|n", "s7arva7ion", "5tarvation",
291
+ "st4rv4tion", "starvat1on", "starvat!on", "starvation", "starvat|on", "starvati0n",
292
+ "$tarvation", "st@rv@tion", "overdose", "0verd0se", "ov3rdos3", "over|)ose", "overdo5e",
293
+ "overdo$e", "|)epresse|)", "d3pr3ss3d", "depre55ed", "depressed", "depre$$ed", "d|e",
294
+ "die", "d!e", "di3", "|)ie", "d1e", "jump", "hang", "#ang", "h4ng", "han9", "h@ng",
295
+ "poison", "po!son", "p0is0n", "poi5on", "poi$on", "po1son", "po|son", "(hloroform", "chloroform",
296
+ "ch|oroform", "ch1oroform", "c#loroform", "chl0r0f0rm", "drug abu5e", "dru9 abuse", "drug abuse",
297
+ "|)rug abuse", "drug abu$e", "drug 4buse", "drug abus3", "drug @buse", "drug a8use", "@ddict",
298
+ "4ddict", "add!ct", "addict", "a|)|)ict", "addic7", "add1ct", "add|ct", "addi(t", "opioid",
299
+ "0pi0id", "op1o1d", "op|o|d", "opioi|)", "op!o!d", "fentanyl", "f3ntanyl", "fentany|",
300
+ "fen7anyl", "fent@nyl", "fent4nyl", "fentany1", "meth", "met#", "m3th", "me7h", "coca1ne",
301
+ "cocain3", "cocaine", "coc4ine", "(o(aine", "coc@ine", "coca!ne", "coca|ne", "c0caine",
302
+ "h3roin", "her0in", "heroin", "#eroin", "hero|n", "hero!n", "hero1n",
303
+ # New Hate Speech keywords and variations
304
+ "n@zi", "naz1", "naz!", "nazi", "na2i", "naz|", "n4zi", "kkk", "suprema(y", "$upremacy",
305
+ "suprem4cy", "suprem@cy", "supr3macy", "5upremacy", "supremacy", "gen0cide", "genoc1de",
306
+ "genoci|)e", "genocide", "genoc|de", "geno(ide", "9enocide", "g3nocid3", "genoc!de", "big0t",
307
+ "bigot", "b|got", "bi9ot", "bigo7", "b!got", "8igot", "b1got", "#omop#obe", "homophobe",
308
+ "homophob3", "homopho8e", "h0m0ph0be", "xenophobe", "xenopho8e", "xenop#obe", "x3nophob3",
309
+ "xen0ph0be", "antifa", "bootlicker", "tankie", "baiter", "griefer", "kek", "pepe", "zoomer",
310
+ # New Slang Abuses & Offensive Insults
311
+ "bit(h", "8itch", "b|tch", "b1tch", "bi7ch", "bastar|", "b@st@rd", "ba5tard", "bas7ard",
312
+ "ba$tard", "b4st4rd", "8astard", "assho1e", "assho|e", "a$$hole", "ass#ole", "asshol3", "4sshole",
313
+ "a55hole", "assh0le", "pr1ck", "pr|ck", "pr!ck", "prick", "|)umbass", "dumba55", "dumb4ss",
314
+ "dumba$$", "dum8ass", "dumb@ss", "retar|", "r3tard", "re7ard", "ret@rd", "ret4rd", "|)ipshit",
315
+ "d|psh|t", "dipshi7", "dip5hit", "dips#it", "d!psh!t", "dipshit", "dip$hit", "d1psh1t",
316
+ "j@ck@ss", "wank3r", "w@nker", "w4nker", "tw4t", "tw@t", "7wa7", "shi7head", "shithe@d",
317
+ "shith3ad", "5hithead", "s#it#ead", "sh!thead", "sh1thead", "shithea|", "shithe4d", "$hithead",
318
+ # New General Abuses
319
+ "|d|ot", "idi0t", "1d1ot", "idio7", "idiot", "i|)iot", "!d!ot", "m0r0n", "moron", "lo5er",
320
+ "|oser", "1oser", "loser", "l0ser", "los3r", "5cum", "s(um", "$cum", "worthl3ss", "wort#less",
321
+ "worth|ess", "worthle$$", "wor7hless", "worthless", "worthle55", "worth1ess", "w0rthless",
322
+ # Additional new keywords from the latest list
323
+ "16+", "18+", "alcohol", "amerifag", "assault", "b!tch", "bstard", "burn yourself", "c!nt",
324
+ "christfucker", "cnt", "cocaine", "creep", "cut yourself", "die in a hole", "die now", "dipshit",
325
+ "drink bleach", "drop dead", "dumbfuck", "fuck off", "fucker", "fucking idiot", "fuk", "get drunk",
326
+ "go hang yourself", "hymie", "i will ban you", "i will bomb the place", "i will fuck you",
327
+ "i will kill you", "jew", "jewboy", "moslemfucker", "marijuana", "meth", "molest", "naked",
328
+ "obongo", "overdose", "perv", "pervert", "rape you", "rat poison", "screw you", "secks",
329
+ "self-harm", "sex offender", "sexual predator", "sx", "take pills", "terrorist", "tits", "twat",
330
+ "vag", "vodka", "x", "you will get raped", "you're a piece of shit", "you're banned forever",
331
+ "you're crazy", "you're hallucinating", "you're such a cunt", "you're worthless",
332
+ # New Sexually Explicit keywords and variations (second block)
333
+ "p0rn", "nu|)e", "nud3", "5ex", "$ex", "s3x", "xxx", "hardc0re", "h@rdcore", "hardcor3", "#ardcore",
334
+ "har|)core", "hard(ore", "h4rdcore", "adu1t", "adul7", "adu|t", "@dult", "adult", "4dult",
335
+ "a|)ult", "erot1c", "erot|c", "erot!c", "ero7ic", "eroti(", "er0tic", "3rotic", "str!p",
336
+ "s7rip", "str1p", "$trip", "strip", "str|p", "5trip", "c@mgirl", "camg|rl", "camg1rl",
337
+ "(amgirl", "cam9irl", "c4mgirl", "camgir1", "camgir|", "camg!rl", "feti$h", "fet1sh", "feti5h",
338
+ "fetis#", "f3tish", "fe7ish", "fetish", "fet!sh", "fet|sh",
339
+ # New Sexual Harassment keywords and variations (second block)
340
+ "perv", "p3rv", "(reep", "creep", "cr33p", "mo1est", "molest", "mole$t", "m0lest",
341
+ "mo|est", "mol3st", "moles7", "mole5t", "gr0pe", "9rope", "grop3", "grope", "h@r@ss",
342
+ "harass", "hara55", "h4r4ss", "#arass", "hara$$", "c4tc4ll", "ca7call", "catca11", "catca||",
343
+ "c@tc@ll", "(at(all", "catcall", "pre|)ator", "pred4tor", "pred@tor", "preda7or", "pr3dator",
344
+ "predat0r", "predator", "sta1ker", "st@lker", "stalk3r", "$talker", "st4lker", "s7alker",
345
+ "5talker", "stalker", "sta|ker", "m1sogyn1st", "misogynis7", "misogynist", "m|sogyn|st",
346
+ "m!sogyn!st", "mi$ogyni$t", "miso9ynist", "mis0gynist", "mi5ogyni5t", "exp0se", "expose",
347
+ "3xpos3", "expo$e", "expo5e",
348
+ # New Dangerous Content keywords and variations (second block)
349
+ "b0mb", "8om8", "k!ll", "k1ll", "ki||", "ki11", "k|ll", "kill", "atta(k", "a77ack",
350
+ "@tt@ck", "4tt4ck", "terr0r", "t3rror", "7error", "shoo7", "sh00t", "$hoot", "5hoot",
351
+ "s#oot", "$tab", "st4b", "st@b", "5tab", "sta8", "s7ab", "exp|osive", "expl0sive",
352
+ "explosive", "3xplosiv3", "explos!ve", "explos1ve", "explo5ive", "explos|ve", "explo$ive",
353
+ "exp1osive", "assass|nate", "assassinat3", "assass!nate", "assass1nate", "a55a55inate",
354
+ "assassina7e", "assassinate", "@ss@ssin@te", "4ss4ssin4te", "a$$a$$inate", "massacr3", "massa(re",
355
+ "ma$$acre", "m4ss4cre", "m@ss@cre", "ma55acre", "massacre", "$uicide", "suicide", "su1c1de",
356
+ "suicid3", "su|c|de", "sui(ide", "suici|)e", "5uicide", "su!c!de", "#omicide", "hom!c!de",
357
+ "hom|c|de", "homicid3", "homicide", "h0micide", "homi(ide", "homici|)e", "hom1c1de", "7or7ure",
358
+ "torture", "tortur3", "t0rture", "ra|)ical", "r4dic4l", "rad1cal", "radica1", "radica|",
359
+ "rad!cal", "rad|cal", "radical", "radi(al", "r@dic@l", "beheadin9", "8eheading",
360
+ "behea|)ing", "b3h3ading", "behead|ng", "beheading", "behead!ng", "be#eading", "behe4ding",
361
+ "behe@ding", "behead1ng", "extrem|st", "extrem!st", "3xtr3mist", "extremi$t", "ex7remis7",
362
+ "extremist", "extrem1st", "extremi5t", "r|ot", "r1ot", "rio7", "r!ot", "ri0t", "traff|ck|ng",
363
+ "tr@fficking", "traff!ck!ng", "traff1ck1ng", "7rafficking", "tr4fficking", "traffi(king",
364
+ "trafficking", "traffickin9", "k|dnap", "ki|)nap", "kidn@p", "kidn4p", "k!dnap", "k1dnap",
365
+ "arson", "ar5on", "ar$on", "4rson", "ars0n",
366
+ # New Harmful Content keywords and variations (second block)
367
+ "s3lf-harm", "se|f-harm", "self-h4rm", "self-h@rm", "5elf-harm", "self-#arm", "$elf-harm",
368
+ "se1f-harm", "self-harm", "cutting", "cuttin9", "cutt!ng", "(utting", "cutt1ng", "cu77ing",
369
+ "cutt|ng", "burn1ng", "burnin9", "burn!ng", "8urning", "burn|ng", "burning", "pa!n",
370
+ "p4in", "p@in", "pain", "pa1n", "pa|n", "s7arva7ion", "5tarvation", "st4rv4tion", "starvat1on",
371
+ "starvat!on", "starvation", "starvat|on", "starvati0n", "$tarvation", "st@rv@tion", "overdose",
372
+ "0verd0se", "ov3rdos3", "over|)ose", "overdo5e", "overdo$e", "|)epresse|)", "d3pr3ss3d",
373
+ "depre55ed", "depressed", "depre$$ed", "d|e", "die", "d!e", "di3", "|)ie", "d1e", "jump",
374
+ "hang", "#ang", "h4ng", "han9", "h@ng", "poison", "po!son", "p0is0n", "poi5on", "poi$on",
375
+ "po1son", "po|son", "(hloroform", "chloroform", "ch|oroform", "ch1oroform", "c#loroform",
376
+ "chl0r0f0rm", "drug abu5e", "dru9 abuse", "drug abuse", "|)rug abuse", "drug abu$e", "drug 4buse",
377
+ "drug abus3", "drug @buse", "drug a8use", "@ddict", "4ddict", "add!ct", "addict", "a|)|)ict",
378
+ "addic7", "add1ct", "add|ct", "addi(t", "opioid", "0pi0id", "op1o1d", "op|o|d", "opioi|)",
379
+ "op!o!d", "fentanyl", "f3ntanyl", "fentany|", "fen7anyl", "fent@nyl", "fent4nyl", "fentany1",
380
+ "meth", "met#", "m3th", "me7h", "coca1ne", "cocain3", "cocaine", "coc4ine", "(o(aine",
381
+ "coc@ine", "coca!ne", "coca|ne", "c0caine", "h3roin", "her0in", "heroin", "#eroin", "hero|n",
382
+ "hero!n", "hero1n",
383
+ # New Hate Speech keywords and variations (second block)
384
+ "n@zi", "naz1", "naz!", "nazi", "na2i", "naz|", "n4zi", "kkk", "suprema(y", "$upremacy",
385
+ "suprem4cy", "suprem@cy", "supr3macy", "5upremacy", "supremacy", "gen0cide", "genoc1de",
386
+ "genoci|)e", "genocide", "genoc|de", "geno(ide", "9enocide", "g3nocid3", "genoc!de",
387
+ "big0t", "bigot", "b|got", "bi9ot", "bigo7", "b!got", "8igot", "b1got", "#omop#obe", "homophobe",
388
+ "homophob3", "homopho8e", "h0m0ph0be", "xenophobe", "xenopho8e", "xenop#obe", "x3nophob3",
389
+ "xen0ph0be", "antifa", "bootlicker", "tankie", "baiter", "griefer", "kek", "pepe", "zoomer",
390
+ # New Slang Abuses & Offensive Insults (second block)
391
+ "bit(h", "8itch", "b|tch", "b1tch", "bi7ch", "bastar|", "b@st@rd", "ba5tard", "bas7ard",
392
+ "ba$tard", "b4st4rd", "8astard", "assho1e", "assho|e", "a$$hole", "ass#ole", "asshol3",
393
+ "4sshole", "a55hole", "assh0le", "pr1ck", "pr|ck", "pr!ck", "prick", "|)umbass", "dumba55",
394
+ "dumb4ss", "dumba$$", "dum8ass", "dumb@ss", "retar|", "r3tard", "re7ard", "ret@rd", "ret4rd",
395
+ "|)ipshit", "d|psh|t", "dipshi7", "dip5hit", "dips#it", "d!psh!t", "dipshit", "dip$hit",
396
+ "d1psh1t", "j@ck@ss", "wank3r", "w@nker", "w4nker", "tw4t", "tw@t", "7wa7", "shi7head",
397
+ "shithe@d", "shith3ad", "5hithead", "s#it#ead", "sh!thead", "sh1thead", "shithea|", "shithe4d",
398
+ "$hithead",
399
+ # New General Abuses (second block)
400
+ "|d|ot", "idi0t", "1d1ot", "idio7", "idiot", "i|)iot", "!d!ot", "m0r0n", "moron", "lo5er",
401
+ "|oser", "1oser", "loser", "l0ser", "los3r", "5cum", "s(um", "$cum", "worthl3ss", "wort#less",
402
+ "worth|ess", "worthle$$", "wor7hless", "worthless", "worthle55", "worth1ess", "w0rthless",
403
+ # Additional new keywords from the latest list
404
+ "16+", "18+", "alcohol", "amerifag", "assault", "b!tch", "bstard", "burn yourself", "c!nt",
405
+ "christfucker", "cnt", "cocaine", "creep", "cut yourself", "die in a hole", "die now", "dipshit",
406
+ "drink bleach", "drop dead", "dumbfuck", "fuck off", "fucker", "fucking idiot", "fuk", "get drunk",
407
+ "go hang yourself", "hymie", "i will ban you", "i will bomb the place", "i will fuck you",
408
+ "i will kill you", "jew", "jewboy", "moslemfucker", "marijuana", "massacre", "meth", "molest",
409
+ "naked", "obongo", "overdose", "penis", "perv", "pervert", "rape you", "rat poison", "s3x",
410
+ "sandnigger", "screw you", "secks", "self-harm", "sex offender", "sexual predator", "sx",
411
+ "take pills", "terrorist", "tits", "tranny", "twat", "vag", "vagina", "vodka", "x", "xxx",
412
+ "you will get raped", "you're a piece of shit", "you're banned forever", "you're crazy",
413
+ "you're hallucinating", "you're such a cunt", "you're worthless",
414
+ # New Sexually Explicit keywords and variations (second block)
415
+ "p0rn", "nu|)e", "nud3", "5ex", "$ex", "s3x", "xxx", "hardc0re", "h@rdcore", "hardcor3", "#ardcore",
416
+ "har|)core", "hard(ore", "h4rdcore", "adu1t", "adul7", "adu|t", "@dult", "adult", "4dult",
417
+ "a|)ult", "erot1c", "erot|c", "erot!c", "ero7ic", "eroti(", "er0tic", "3rotic", "str!p",
418
+ "s7rip", "str1p", "$trip", "strip", "str|p", "5trip", "c@mgirl", "camg|rl", "camg1rl",
419
+ "(amgirl", "cam9irl", "c4mgirl", "camgir1", "camgir|", "camg!rl", "feti$h", "fet1sh", "feti5h",
420
+ "fetis#", "f3tish", "fe7ish", "fetish", "fet!sh", "fet|sh",
421
+ # New Sexual Harassment keywords and variations (second block)
422
+ "perv", "p3rv", "(reep", "creep", "cr33p", "mo1est", "molest", "mole$t", "m0lest",
423
+ "mo|est", "mol3st", "moles7", "mole5t", "gr0pe", "9rope", "grop3", "grope", "h@r@ss",
424
+ "harass", "hara55", "h4r4ss", "#arass", "hara$$", "c4tc4ll", "ca7call", "catca11", "catca||",
425
+ "c@tc@ll", "(at(all", "catcall", "pre|)ator", "pred4tor", "pred@tor", "preda7or", "pr3dator",
426
+ "predat0r", "predator", "sta1ker", "st@lker", "stalk3r", "$talker", "st4lker", "s7alker",
427
+ "5talker", "stalker", "sta|ker", "m1sogyn1st", "misogynis7", "misogynist", "m|sogyn|st",
428
+ "m!sogyn!st", "mi$ogyni$t", "miso9ynist", "mis0gynist", "mi5ogyni5t", "exp0se", "expose",
429
+ "3xpos3", "expo$e", "expo5e",
430
+ # New Dangerous Content keywords and variations (second block)
431
+ "b0mb", "8om8", "k!ll", "k1ll", "ki||", "ki11", "k|ll", "kill", "atta(k", "a77ack",
432
+ "@tt@ck", "4tt4ck", "terr0r", "t3rror", "7error", "shoo7", "sh00t", "$hoot", "5hoot",
433
+ "s#oot", "$tab", "st4b", "st@b", "5tab", "sta8", "s7ab", "exp|osive", "expl0sive",
434
+ "explosive", "3xplosiv3", "explos!ve", "explos1ve", "explo5ive", "explos|ve", "explo$ive",
435
+ "exp1osive", "assass|nate", "assassinat3", "assass!nate", "assass1nate", "a55a55inate",
436
+ "assassina7e", "assassinate", "@ss@ssin@te", "4ss4ssin4te", "a$$a$$inate", "massacr3", "massa(re",
437
+ "ma$$acre", "m4ss4cre", "m@ss@cre", "ma55acre", "massacre", "$uicide", "suicide", "su1c1de",
438
+ "suicid3", "su|c|de", "sui(ide", "suici|)e", "5uicide", "su!c!de", "#omicide", "hom!c!de",
439
+ "hom|c|de", "homicid3", "homicide", "h0micide", "homi(ide", "homici|)e", "hom1c1de", "7or7ure",
440
+ "torture", "tortur3", "t0rture", "ra|)ical", "r4dic4l", "rad1cal", "radica1", "radica|",
441
+ "rad!cal", "rad|cal", "radical", "radi(al", "r@dic@l", "beheadin9", "8eheading",
442
+ "behea|)ing", "b3h3ading", "behead|ng", "beheading", "behead!ng", "be#eading", "behe4ding",
443
+ "behe@ding", "behead1ng", "extrem|st", "extrem!st", "3xtr3mist", "extremi$t", "ex7remis7",
444
+ "extremist", "extrem1st", "extremi5t", "r|ot", "r1ot", "rio7", "r!ot", "ri0t", "traff|ck|ng",
445
+ "tr@fficking", "traff!ck!ng", "traff1ck1ng", "7rafficking", "tr4fficking", "traffi(king",
446
+ "trafficking", "traffickin9", "k|dnap", "ki|)nap", "kidn@p", "kidn4p", "k!dnap", "k1dnap",
447
+ "arson", "ar5on", "ar$on", "4rson", "ars0n",
448
+ # New Harmful Content keywords and variations (second block)
449
+ "s3lf-harm", "se|f-harm", "self-h4rm", "self-h@rm", "5elf-harm", "self-#arm", "$elf-harm",
450
+ "se1f-harm", "self-harm", "cutting", "cuttin9", "cutt!ng", "(utting", "cutt1ng", "cu77ing",
451
+ "cutt|ng", "burn1ng", "burnin9", "burn!ng", "8urning", "burn|ng", "burning", "pa!n",
452
+ "p4in", "p@in", "pain", "pa1n", "pa|n", "s7arva7ion", "5tarvation", "st4rv4tion", "starvat1on",
453
+ "starvat!on", "starvation", "starvat|on", "starvati0n", "$tarvation", "st@rv@tion", "overdose",
454
+ "0verd0se", "ov3rdos3", "over|)ose", "overdo5e", "overdo$e", "|)epresse|)", "d3pr3ss3d",
455
+ "depre55ed", "depressed", "depre$$ed", "d|e", "die", "d!e", "di3", "|)ie", "d1e", "jump",
456
+ "hang", "#ang", "h4ng", "han9", "h@ng", "poison", "po!son", "p0is0n", "poi5on", "poi$on",
457
+ "po1son", "po|son", "(hloroform", "chloroform", "ch|oroform", "ch1oroform", "c#loroform",
458
+ "chl0r0f0rm", "drug abu5e", "dru9 abuse", "drug abuse", "|)rug abuse", "drug abu$e", "drug 4buse",
459
+ "drug abus3", "drug @buse", "drug a8use", "@ddict", "4ddict", "add!ct", "addict", "a|)|)ict",
460
+ "addic7", "add1ct", "add|ct", "addi(t", "opioid", "0pi0id", "op1o1d", "op|o|d", "opioi|)",
461
+ "op!o!d", "fentanyl", "f3ntanyl", "fentany|", "fen7anyl", "fent@nyl", "fent4nyl", "fentany1",
462
+ "meth", "met#", "m3th", "me7h", "coca1ne", "cocain3", "cocaine", "coc4ine", "(o(aine",
463
+ "coc@ine", "coca!ne", "coca|ne", "c0caine", "h3roin", "her0in", "heroin", "#eroin", "hero|n",
464
+ "hero!n", "hero1n",
465
+ # New Hate Speech keywords and variations (second block)
466
+ "n@zi", "naz1", "naz!", "nazi", "na2i", "naz|", "n4zi", "kkk", "suprema(y", "$upremacy",
467
+ "suprem4cy", "suprem@cy", "supr3macy", "5upremacy", "supremacy", "gen0cide", "genoc1de",
468
+ "genoci|)e", "genocide", "genoc|de", "geno(ide", "9enocide", "g3nocid3", "genoc!de", "big0t",
469
+ "bigot", "b|got", "bi9ot", "bigo7", "b!got", "8igot", "b1got", "#omop#obe", "homophobe",
470
+ "homophob3", "homopho8e", "h0m0ph0be", "xenophobe", "xenopho8e", "xenop#obe", "x3nophob3",
471
+ "xen0ph0be", "antifa", "bootlicker", "tankie", "baiter", "griefer", "kek", "pepe", "zoomer",
472
+ # New Slang Abuses & Offensive Insults (second block)
473
+ "bit(h", "8itch", "b|tch", "b1tch", "bi7ch", "bastar|", "b@st@rd", "ba5tard", "bas7ard",
474
+ "ba$tard", "b4st4rd", "8astard", "assho1e", "assho|e", "a$$hole", "ass#ole", "asshol3", "4sshole",
475
+ "a55hole", "assh0le", "pr1ck", "pr|ck", "pr!ck", "prick", "|)umbass", "dumba55", "dumb4ss",
476
+ "dumba$$", "dum8ass", "dumb@ss", "retar|", "r3tard", "re7ard", "ret@rd", "ret4rd", "|)ipshit",
477
+ "d|psh|t", "dipshi7", "dip5hit", "dips#it", "d!psh!t", "dipshit", "dip$hit", "d1psh1t", "j@ck@ss",
478
+ "wank3r", "w@nker", "w4nker", "tw4t", "tw@t", "7wa7", "shi7head", "shithe@d", "shith3ad",
479
+ "5hithead", "s#it#ead", "sh!thead", "sh1thead", "shithea|", "shithe4d", "$hithead",
480
+ # New General Abuses (second block)
481
+ "|d|ot", "idi0t", "1d1ot", "idio7", "idiot", "i|)iot", "!d!ot", "m0r0n", "moron", "lo5er",
482
+ "|oser", "1oser", "loser", "l0ser", "los3r", "5cum", "s(um", "$cum", "worthl3ss", "wort#less",
483
+ "worth|ess", "worthle$$", "wor7hless", "worthless", "worthle55", "worth1ess", "w0rthless",
484
+ # Additional new keywords from the latest list
485
+ "16+", "18+", "alcohol", "amerifag", "assault", "b!tch", "bstard", "burn yourself", "c!nt",
486
+ "christfucker", "cnt", "cocaine", "creep", "cut yourself", "die in a hole", "die now", "dipshit",
487
+ "drink bleach", "drop dead", "dumbfuck", "fuck off", "fucker", "fucking idiot", "fuk", "get drunk",
488
+ "go hang yourself", "hymie", "i will ban you", "i will bomb the place", "i will fuck you",
489
+ "i will kill you", "jew", "jewboy", "moslemfucker", "marijuana", "massacre", "meth", "molest",
490
+ "naked", "obongo", "overdose", "penis", "perv", "pervert", "rape you", "rat poison", "s3x",
491
+ "sandnigger", "screw you", "secks", "self-harm", "sex offender", "sexual predator", "sx",
492
+ "take pills", "terrorist", "tits", "tranny", "twat", "vag", "vagina", "vodka", "x", "xxx",
493
+ "you will get raped", "you're a piece of shit", "you're banned forever", "you're crazy",
494
+ "you're hallucinating", "you're such a cunt", "you're worthless",
495
+ # New Sexually Explicit keywords and variations (second block)
496
+ "p0rn", "nu|)e", "nud3", "5ex", "$ex", "s3x", "xxx", "hardc0re", "h@rdcore", "hardcor3", "#ardcore",
497
+ "har|)core", "hard(ore", "h4rdcore", "adu1t", "adul7", "adu|t", "@dult", "adult", "4dult",
498
+ "a|)ult", "erot1c", "erot|c", "erot!c", "ero7ic", "eroti(", "er0tic", "3rotic", "str!p",
499
+ "s7rip", "str1p", "$trip", "strip", "str|p", "5trip", "c@mgirl", "camg|rl", "camg1rl",
500
+ "(amgirl", "cam9irl", "c4mgirl", "camgir1", "camgir|", "camg!rl", "feti$h", "fet1sh", "feti5h",
501
+ "fetis#", "f3tish", "fe7ish", "fetish", "fet!sh", "fet|sh",
502
+ # New Sexual Harassment keywords and variations (second block)
503
+ "perv", "p3rv", "(reep", "creep", "cr33p", "mo1est", "molest", "mole$t", "m0lest",
504
+ "mo|est", "mol3st", "moles7", "mole5t", "gr0pe", "9rope", "grop3", "grope", "h@r@ss",
505
+ "harass", "hara55", "h4r4ss", "#arass", "hara$$", "c4tc4ll", "ca7call", "catca11", "catca||",
506
+ "c@tc@ll", "(at(all", "catcall", "pre|)ator", "pred4tor", "pred@tor", "preda7or", "pr3dator",
507
+ "predat0r", "predator", "sta1ker", "st@lker", "stalk3r", "$talker", "st4lker", "s7alker",
508
+ "5talker", "stalker", "sta|ker", "m1sogyn1st", "misogynis7", "misogynist", "m|sogyn|st",
509
+ "m!sogyn!st", "mi$ogyni$t", "miso9ynist", "mis0gynist", "mi5ogyni5t", "exp0se", "expose",
510
+ "3xpos3", "expo$e", "expo5e",
511
+ # New Dangerous Content keywords and variations (second block)
512
+ "b0mb", "8om8", "k!ll", "k1ll", "ki||", "ki11", "k|ll", "kill", "atta(k", "a77ack",
513
+ "@tt@ck", "4tt4ck", "terr0r", "t3rror", "7error", "shoo7", "sh00t", "$hoot", "5hoot",
514
+ "s#oot", "$tab", "st4b", "st@b", "5tab", "sta8", "s7ab", "exp|osive", "expl0sive",
515
+ "explosive", "3xplosiv3", "explos!ve", "explos1ve", "explo5ive", "explos|ve", "explo$ive",
516
+ "exp1osive", "assass|nate", "assassinat3", "assass!nate", "assass1nate", "a55a55inate",
517
+ "assassina7e", "assassinate", "@ss@ssin@te", "4ss4ssin4te", "a$$a$$inate", "massacr3", "massa(re",
518
+ "ma$$acre", "m4ss4cre", "m@ss@cre", "ma55acre", "massacre", "$uicide", "suicide", "su1c1de",
519
+ "suicid3", "su|c|de", "sui(ide", "suici|)e", "5uicide", "su!c!de", "#omicide", "hom!c!de",
520
+ "hom|c|de", "homicid3", "homicide", "h0micide", "homi(ide", "homici|)e", "hom1c1de", "7or7ure",
521
+ "torture", "tortur3", "t0rture", "ra|)ical", "r4dic4l", "rad1cal", "radica1", "radica|",
522
+ "rad!cal", "rad|cal", "radical", "radi(al", "r@dic@l", "beheadin9", "8eheading",
523
+ "behea|)ing", "b3h3ading", "behead|ng", "beheading", "behead!ng", "be#eading", "behe4ding",
524
+ "behe@ding", "behead1ng", "extrem|st", "extrem!st", "3xtr3mist", "extremi$t", "ex7remis7",
525
+ "extremist", "extrem1st", "extremi5t", "r|ot", "r1ot", "rio7", "r!ot", "ri0t", "traff|ck|ng",
526
+ "tr@fficking", "traff!ck!ng", "traff1ck1ng", "7rafficking", "tr4fficking", "traffi(king",
527
+ "trafficking", "traffickin9", "k|dnap", "ki|)nap", "kidn@p", "kidn4p", "k!dnap", "k1dnap",
528
+ "arson", "ar5on", "ar$on", "4rson", "ars0n",
529
+ # New Harmful Content keywords and variations (third block)
530
+ "s3lf-harm", "se|f-harm", "self-h4rm", "self-h@rm", "5elf-harm", "self-#arm", "$elf-harm",
531
+ "se1f-harm", "self-harm", "cutting", "cuttin9", "cutt!ng", "(utting", "cutt1ng", "cu77ing",
532
+ "cutt|ng", "burn1ng", "burnin9", "burn!ng", "8urning", "burn|ng", "burning", "pa!n",
533
+ "p4in", "p@in", "pain", "pa1n", "pa|n", "s7arva7ion", "5tarvation", "st4rv4tion", "starvat1on",
534
+ "starvat!on", "starvation", "starvat|on", "starvati0n", "$tarvation", "st@rv@tion", "overdose",
535
+ "0verd0se", "ov3rdos3", "over|)ose", "overdo5e", "overdo$e", "|)epresse|)", "d3pr3ss3d",
536
+ "depre55ed", "depressed", "depre$$ed", "d|e", "die", "d!e", "di3", "|)ie", "d1e", "jump",
537
+ "hang", "#ang", "h4ng", "han9", "h@ng", "poison", "po!son", "p0is0n", "poi5on", "poi$on",
538
+ "po1son", "po|son", "(hloroform", "chloroform", "ch|oroform", "ch1oroform", "c#loroform",
539
+ "chl0r0f0rm", "drug abu5e", "dru9 abuse", "drug abuse", "|)rug abuse", "drug abu$e", "drug 4buse",
540
+ "drug abus3", "drug @buse", "drug a8use", "@ddict", "4ddict", "add!ct", "addict", "a|)|)ict",
541
+ "addic7", "add1ct", "add|ct", "addi(t", "opioid", "0pi0id", "op1o1d", "op|o|d", "opioi|)",
542
+ "op!o!d", "fentanyl", "f3ntanyl", "fentany|", "fen7anyl", "fent@nyl", "fent4nyl", "fentany1",
543
+ "meth", "met#", "m3th", "me7h", "coca1ne", "cocain3", "cocaine", "coc4ine", "(o(aine",
544
+ "coc@ine", "coca!ne", "coca|ne", "c0caine", "h3roin", "her0in", "heroin", "#eroin", "hero|n",
545
+ "hero!n", "hero1n",
546
+ # New Hate Speech keywords and variations (third block)
547
+ "n@zi", "naz1", "naz!", "nazi", "na2i", "naz|", "n4zi", "kkk", "suprema(y", "$upremacy",
548
+ "suprem4cy", "suprem@cy", "supr3macy", "5upremacy", "supremacy", "gen0cide", "genoc1de",
549
+ "genoci|)e", "genocide", "genoc|de", "geno(ide", "9enocide", "g3nocid3", "genoc!de", "big0t",
550
+ "bigot", "b|got", "bi9ot", "bigo7", "b!got", "8igot", "b1got", "#omop#obe", "homophobe",
551
+ "homophob3", "homopho8e", "h0m0ph0be", "xenophobe", "xenopho8e", "xenop#obe", "x3nophob3",
552
+ "xen0ph0be", "antifa", "bootlicker", "tankie", "baiter", "griefer", "kek", "pepe", "zoomer",
553
+ # New Slang Abuses & Offensive Insults (third block)
554
+ "bit(h", "8itch", "b|tch", "b1tch", "bi7ch", "bastar|", "b@st@rd", "ba5tard", "bas7ard",
555
+ "ba$tard", "b4st4rd", "8astard", "assho1e", "assho|e", "a$$hole", "ass#ole", "asshol3", "4sshole",
556
+ "a55hole", "assh0le", "pr1ck", "pr|ck", "pr!ck", "prick", "|)umbass", "dumba55", "dumb4ss",
557
+ "dumba$$", "dum8ass", "dumb@ss", "retar|", "r3tard", "re7ard", "ret@rd", "ret4rd", "|)ipshit",
558
+ "d|psh|t", "dipshi7", "dip5hit", "dips#it", "d!psh!t", "dipshit", "dip$hit", "d1psh1t", "j@ck@ss",
559
+ "wank3r", "w@nker", "w4nker", "tw4t", "tw@t", "7wa7", "shi7head", "shithe@d", "shith3ad",
560
+ "5hithead", "s#it#ead", "sh!thead", "sh1thead", "shithea|", "shithe4d", "$hithead",
561
+ # New General Abuses (third block)
562
+ "|d|ot", "idi0t", "1d1ot", "idio7", "idiot", "i|)iot", "!d!ot", "m0r0n", "moron", "lo5er",
563
+ "|oser", "1oser", "loser", "l0ser", "los3r", "5cum", "s(um", "$cum", "worthl3ss", "wort#less",
564
+ "worth|ess", "worthle$$", "wor7hless", "worthless", "worthle55", "worth1ess", "w0rthless",
565
+ # Additional new keywords from the latest list (General Abusive Language)
566
+ "16+", "18+", "alcohol", "amerifag", "assault", "b!tch", "bstard", "burn yourself", "c!nt",
567
+ "christfucker", "cnt", "cocaine", "creep", "cut yourself", "die in a hole", "die now", "dipshit",
568
+ "drink bleach", "drop dead", "dumbfuck", "fuck off", "fucker", "fucking idiot", "fuk", "get drunk",
569
+ "go hang yourself", "hymie", "i will ban you", "i will bomb the place", "i will fuck you",
570
+ "i will kill you", "jew", "jewboy", "moslemfucker", "marijuana", "massacre", "meth", "molest",
571
+ "naked", "obongo", "overdose", "penis", "perv", "pervert", "rape you", "rat poison", "s3x",
572
+ "sandnigger", "screw you", "secks", "self-harm", "sex offender", "sexual predator", "sx",
573
+ "take pills", "terrorist", "tits", "tranny", "twat", "vag", "vagina", "vodka", "x", "xxx",
574
+ "you will get raped", "you're a piece of shit", "you're banned forever", "you're crazy",
575
+ "you're hallucinating", "you're such a cunt", "you're worthless",
576
+ # New Sexually Explicit keywords and variations (third block)
577
+ "p0rn", "nu|)e", "nud3", "5ex", "$ex", "s3x", "xxx", "hardc0re", "h@rdcore", "hardcor3", "#ardcore",
578
+ "har|)core", "hard(ore", "h4rdcore", "adu1t", "adul7", "adu|t", "@dult", "adult", "4dult",
579
+ "a|)ult", "erot1c", "erot|c", "erot!c", "ero7ic", "eroti(", "er0tic", "3rotic", "str!p",
580
+ "s7rip", "str1p", "$trip", "strip", "str|p", "5trip", "c@mgirl", "camg|rl", "camg1rl",
581
+ "(amgirl", "cam9irl", "c4mgirl", "camgir1", "camgir|", "camg!rl", "feti$h", "fet1sh", "feti5h",
582
+ "fetis#", "f3tish", "fe7ish", "fetish", "fet!sh", "fet|sh",
583
+ # New Sexual Harassment keywords and variations (third block)
584
+ "perv", "p3rv", "(reep", "creep", "cr33p", "mo1est", "molest", "mole$t", "m0lest",
585
+ "mo|est", "mol3st", "moles7", "mole5t", "gr0pe", "9rope", "grop3", "grope", "h@r@ss",
586
+ "harass", "hara55", "h4r4ss", "#arass", "hara$$", "c4tc4ll", "ca7call", "catca11", "catca||",
587
+ "c@tc@ll", "(at(all", "catcall", "pre|)ator", "pred4tor", "pred@tor", "preda7or", "pr3dator",
588
+ "predat0r", "predator", "sta1ker", "st@lker", "stalk3r", "$talker", "st4lker", "s7alker",
589
+ "5talker", "stalker", "sta|ker", "m1sogyn1st", "misogynis7", "misogynist", "m|sogyn|st",
590
+ "m!sogyn!st", "mi$ogyni$t", "miso9ynist", "mis0gynist", "mi5ogyni5t", "exp0se", "expose",
591
+ "3xpos3", "expo$e", "expo5e",
592
+ # New Dangerous Content keywords and variations (third block)
593
+ "b0mb", "8om8", "k!ll", "k1ll", "ki||", "ki11", "k|ll", "kill", "atta(k", "a77ack",
594
+ "@tt@ck", "4tt4ck", "terr0r", "t3rror", "7error", "shoo7", "sh00t", "$hoot", "5hoot",
595
+ "s#oot", "$tab", "st4b", "st@b", "5tab", "sta8", "s7ab", "exp|osive", "expl0sive",
596
+ "explosive", "3xplosiv3", "explos!ve", "explos1ve", "explo5ive", "explos|ve", "explo$ive",
597
+ "exp1osive", "assass|nate", "assassinat3", "assass!nate", "assass1nate", "a55a55inate",
598
+ "assassina7e", "assassinate", "@ss@ssin@te", "4ss4ssin4te", "a$$a$$inate", "massacr3", "massa(re",
599
+ "ma$$acre", "m4ss4cre", "m@ss@cre", "ma55acre", "massacre", "$uicide", "suicide", "su1c1de",
600
+ "suicid3", "su|c|de", "sui(ide", "suici|)e", "5uicide", "su!c!de", "#omicide", "hom!c!de",
601
+ "hom|c|de", "homicid3", "homicide", "h0micide", "homi(ide", "homici|)e", "hom1c1de", "7or7ure",
602
+ "torture", "tortur3", "t0rture", "ra|)ical", "r4dic4l", "rad1cal", "radica1", "radica|",
603
+ "rad!cal", "rad|cal", "radical", "radi(al", "r@dic@l", "beheadin9", "8eheading",
604
+ "behea|)ing", "b3h3ading", "behead|ng", "beheading", "behead!ng", "be#eading", "behe4ding",
605
+ "behe@ding", "behead1ng", "extrem|st", "extrem!st", "3xtr3mist", "extremi$t", "ex7remis7",
606
+ "extremist", "extrem1st", "extremi5t", "r|ot", "r1ot", "rio7", "r!ot", "ri0t", "traff|ck|ng",
607
+ "tr@fficking", "traff!ck!ng", "traff1ck1ng", "7rafficking", "tr4fficking", "traffi(king",
608
+ "trafficking", "traffickin9", "k|dnap", "ki|)nap", "kidn@p", "kidn4p", "k!dnap", "k1dnap",
609
+ "arson", "ar5on", "ar$on", "4rson", "ars0n",
610
+ # New Harmful Content keywords and variations (fourth block)
611
+ "s3lf-harm", "se|f-harm", "self-h4rm", "self-h@rm", "5elf-harm", "self-#arm", "$elf-harm",
612
+ "se1f-harm", "self-harm", "cutting", "cuttin9", "cutt!ng", "(utting", "cutt1ng", "cu77ing",
613
+ "cutt|ng", "burn1ng", "burnin9", "burn!ng", "8urning", "burn|ng", "burning", "pa!n",
614
+ "p4in", "p@in", "pain", "pa1n", "pa|n", "s7arva7ion", "5starvation", "st4rv4tion", "starvat1on",
615
+ "starvat!on", "starvation", "starvat|on", "starvati0n", "$tarvation", "st@rv@tion", "overdose",
616
+ "0verd0se", "ov3rdos3", "over|)ose", "overdo5e", "overdo$e", "|)epresse|)", "d3pr3ss3d",
617
+ "depre55ed", "depressed", "depre$$ed", "d|e", "die", "d!e", "di3", "|)ie", "d1e", "jump",
618
+ "hang", "#ang", "h4ng", "han9", "h@ng", "poison", "po!son", "p0is0n", "poi5on", "poi$on",
619
+ "po1son", "po|son", "(hloroform", "chloroform", "ch|oroform", "ch1oroform", "c#loroform",
620
+ "chl0r0f0rm", "drug abu5e", "dru9 abuse", "drug abuse", "|)rug abuse", "drug abu$e", "drug 4buse",
621
+ "drug abus3", "drug @buse", "drug a8use", "@ddict", "4ddict", "add!ct", "addict", "a|)|)ict",
622
+ "addic7", "add1ct", "add|ct", "addi(t", "opioid", "0pi0id", "op1o1d", "op|o|d", "opioi|)",
623
+ "op!o!d", "fentanyl", "f3ntanyl", "fentany|", "fen7anyl", "fent@nyl", "fent4nyl", "fentany1",
624
+ "meth", "met#", "m3th", "me7h", "coca1ne", "cocain3", "cocaine", "coc4ine", "(o(aine",
625
+ "coc@ine", "coca!ne", "coca|ne", "c0caine", "h3roin", "her0in", "heroin", "#eroin", "hero|n",
626
+ "hero!n", "hero1n",
627
+ # New Hate Speech keywords and variations (fourth block)
628
+ "n@zi", "naz1", "naz!", "nazi", "na2i", "naz|", "n4zi", "kkk", "suprema(y", "$upremacy",
629
+ "suprem4cy", "suprem@cy", "supr3macy", "5upremacy", "supremacy", "gen0cide", "genoc1de",
630
+ "genoci|)e", "genocide", "genoc|de", "geno(ide", "9enocide", "g3nocid3", "genoc!de", "big0t",
631
+ "bigot", "b|got", "bi9ot", "bigo7", "b!got", "8igot", "b1got", "#omop#obe", "homophobe",
632
+ "homophob3", "homopho8e", "h0m0ph0be", "xenophobe", "xenopho8e", "xenop#obe", "x3nophob3",
633
+ "xen0ph0be", "antifa", "bootlicker", "tankie", "baiter", "griefer", "kek", "pepe", "zoomer",
634
+ # New Slang Abuses & Offensive Insults (fourth block)
635
+ "bit(h", "8itch", "b|tch", "b1tch", "bi7ch", "bastar|", "b@st@rd", "ba5tard", "bas7ard",
636
+ "ba$tard", "b4st4rd", "8astard", "assho1e", "assho|e", "a$$hole", "ass#ole", "asshol3", "4sshole",
637
+ "a55hole", "assh0le", "pr1ck", "pr|ck", "pr!ck", "prick", "|)umbass", "dumba55", "dumb4ss",
638
+ "dumba$$", "dum8ass", "dumb@ss", "retar|", "r3tard", "re7ard", "ret@rd", "ret4rd", "|)ipshit",
639
+ "d|psh|t", "dipshi7", "dip5hit", "dips#it", "d!psh!t", "dipshit", "dip$hit", "d1psh1t", "j@ck@ss",
640
+ "wank3r", "w@nker", "w4nker", "tw4t", "tw@t", "7wa7", "shi7head", "shithe@d", "shith3ad",
641
+ "5hithead", "s#it#ead", "sh!thead", "sh1thead", "shithea|", "shithe4d", "$hithead",
642
+ # New General Abuses (fourth block)
643
+ "|d|ot", "idi0t", "1d1ot", "idio7", "idiot", "i|)iot", "!d!ot", "m0r0n", "moron", "lo5er",
644
+ "|oser", "1oser", "loser", "l0ser", "los3r", "5cum", "s(um", "$cum", "worthl3ss", "wort#less",
645
+ "worth|ess", "worthle$$", "wor7hless", "worthless", "worthle55", "worth1ess", "w0rthless",
646
+ # Additional new keywords from the latest list (General Abusive Language)
647
+ "16+", "18+", "alcohol", "amerifag", "assault", "b!tch", "bstard", "burn yourself", "c!nt",
648
+ "christfucker", "cnt", "cocaine", "creep", "cut yourself", "die in a hole", "die now", "dipshit",
649
+ "drink bleach", "drop dead", "dumbfuck", "fuck off", "fucker", "fucking idiot", "fuk", "get drunk",
650
+ "go hang yourself", "hymie", "i will ban you", "i will bomb the place", "i will fuck you",
651
+ "i will kill you", "jew", "jewboy", "moslemfucker", "marijuana", "massacre", "meth", "molest",
652
+ "naked", "obongo", "overdose", "penis", "perv", "pervert", "rape you", "rat poison", "s3x",
653
+ "sandnigger", "screw you", "secks", "self-harm", "sex offender", "sexual predator", "sx",
654
+ "take pills", "terrorist", "tits", "tranny", "twat", "vag", "vagina", "vodka", "x", "xxx",
655
+ "you will get raped", "you're a piece of shit", "you're banned forever", "you're crazy",
656
+ "you're hallucinating", "you're such a cunt", "you're worthless",
657
+ # New Sexually Explicit keywords and variations (fourth block)
658
+ "p0rn", "nu|)e", "nud3", "5ex", "$ex", "s3x", "xxx", "hardc0re", "h@rdcore", "hardcor3", "#ardcore",
659
+ "har|)core", "hard(ore", "h4rdcore", "adu1t", "adul7", "adu|t", "@dult", "adult", "4dult",
660
+ "a|)ult", "erot1c", "erot|c", "erot!c", "ero7ic", "eroti(", "er0tic", "3rotic", "str!p",
661
+ "s7rip", "str1p", "$trip", "strip", "str|p", "5trip", "c@mgirl", "camg|rl", "camg1rl",
662
+ "(amgirl", "cam9irl", "c4mgirl", "camgir1", "camgir|", "camg!rl", "feti$h", "fet1sh", "feti5h",
663
+ "fetis#", "f3tish", "fe7ish", "fetish", "fet!sh", "fet|sh",
664
+ # New Sexual Harassment keywords and variations (fourth block)
665
+ "perv", "p3rv", "(reep", "creep", "cr33p", "mo1est", "molest", "mole$t", "m0lest",
666
+ "mo|est", "mol3st", "moles7", "mole5t", "gr0pe", "9rope", "grop3", "grope", "h@r@ss",
667
+ "harass", "hara55", "h4r4ss", "#arass", "hara$$", "c4tc4ll", "ca7call", "catca11", "catca||",
668
+ "c@tc@ll", "(at(all", "catcall", "pre|)ator", "pred4tor", "pred@tor", "preda7or", "pr3dator",
669
+ "predat0r", "predator", "sta1ker", "st@lker", "stalk3r", "$talker", "st4lker", "s7alker",
670
+ "5talker", "stalker", "sta|ker", "m1sogyn1st", "misogynis7", "misogynist", "m|sogyn|st",
671
+ "m!sogyn!st", "mi$ogyni$t", "miso9ynist", "mis0gynist", "mi5ogyni5t", "exp0se", "expose",
672
+ "3xpos3", "expo$e", "expo5e",
673
+ # New Dangerous Content keywords and variations (fourth block)
674
+ "b0mb", "8om8", "k!ll", "k1ll", "ki||", "ki11", "k|ll", "kill", "atta(k", "a77ack",
675
+ "@tt@ck", "4tt4ck", "terr0r", "t3rror", "7error", "shoo7", "sh00t", "$hoot", "5hoot",
676
+ "s#oot", "$tab", "st4b", "st@b", "5tab", "sta8", "s7ab", "exp|osive", "expl0sive",
677
+ "explosive", "3xplosiv3", "explos!ve", "explos1ve", "explo5ive", "explos|ve", "explo$ive",
678
+ "exp1osive", "assass|nate", "assassinat3", "assass!nate", "assass1nate", "a55a55inate",
679
+ "assassina7e", "assassinate", "@ss@ssin@te", "4ss4ssin4te", "a$$a$$inate", "massacr3", "massa(re",
680
+ "ma$$acre", "m4ss4cre", "m@ss@cre", "ma55acre", "massacre", "$uicide", "suicide", "su1c1de",
681
+ "suicid3", "su|c|de", "sui(ide", "suici|)e", "5uicide", "su!c!de", "#omicide", "hom!c!de",
682
+ "hom|c|de", "homicid3", "homicide", "h0micide", "homi(ide", "homici|)e", "hom1c1de", "7or7ure",
683
+ "torture", "tortur3", "t0rture", "ra|)ical", "r4dic4l", "rad1cal", "radica1", "radica|",
684
+ "rad!cal", "rad|cal", "radical", "radi(al", "r@dic@l", "beheadin9", "8eheading",
685
+ "behea|)ing", "b3h3ading", "behead|ng", "beheading", "behead!ng", "be#eading", "behe4ding",
686
+ "behe@ding", "behead1ng", "extrem|st", "extrem!st", "3xtr3mist", "extremi$t", "ex7remis7",
687
+ "extremist", "extrem1st", "extremi5t", "r|ot", "r1ot", "rio7", "r!ot", "ri0t", "traff|ck|ng",
688
+ "tr@fficking", "traff!ck!ng", "traff1ck1ng", "7rafficking", "tr4fficking", "traffi(king",
689
+ "trafficking", "traffickin9", "k|dnap", "ki|)nap", "kidn@p", "kidn4p", "k!dnap", "k1dnap",
690
+ "arson", "ar5on", "ar$on", "4rson", "ars0n",
691
+ # New Harmful Content keywords and variations (fifth block)
692
+ "s3lf-harm", "se|f-harm", "self-h4rm", "self-h@rm", "5elf-harm", "self-#arm", "$elf-harm",
693
+ "se1f-harm", "self-harm", "cutting", "cuttin9", "cutt!ng", "(utting", "cutt1ng", "cu77ing",
694
+ "cutt|ng", "burn1ng", "burnin9", "burn!ng", "8urning", "burn|ng", "burning", "pa!n",
695
+ "p4in", "p@in", "pain", "pa1n", "pa|n", "s7arva7ion", "5starvation", "st4rv4tion", "starvat1on",
696
+ "starvat!on", "starvation", "starvat|on", "starvati0n", "$tarvation", "st@rv@tion", "overdose",
697
+ "0verd0se", "ov3rdos3", "over|)ose", "overdo5e", "overdo$e", "|)epresse|)", "d3pr3ss3d",
698
+ "depre55ed", "depressed", "depre$$ed", "d|e", "die", "d!e", "di3", "|)ie", "d1e", "jump",
699
+ "hang", "#ang", "h4ng", "han9", "h@ng", "poison", "po!son", "p0is0n", "poi5on", "poi$on",
700
+ "po1son", "po|son", "(hloroform", "chloroform", "ch|oroform", "ch1oroform", "c#loroform",
701
+ "chl0r0f0rm", "drug abu5e", "dru9 abuse", "drug abuse", "|)rug abuse", "drug abu$e", "drug 4buse",
702
+ "drug abus3", "drug @buse", "drug a8use", "@ddict", "4ddict", "add!ct", "addict", "a|)|)ict",
703
+ "addic7", "add1ct", "add|ct", "addi(t", "opioid", "0pi0id", "op1o1d", "op|o|d", "opioi|)",
704
+ "op!o!d", "fentanyl", "f3ntanyl", "fentany|", "fen7anyl", "fent@nyl", "fent4nyl", "fentany1",
705
+ "meth", "met#", "m3th", "me7h", "coca1ne", "cocain3", "cocaine", "coc4ine", "(o(aine",
706
+ "coc@ine", "coca!ne", "coca|ne", "c0caine", "h3roin", "her0in", "heroin", "#eroin", "hero|n",
707
+ "hero!n", "hero1n",
708
+ # New Hate Speech keywords and variations (fifth block)
709
+ "n@zi", "naz1", "naz!", "nazi", "na2i", "naz|", "n4zi", "kkk", "suprema(y", "$upremacy",
710
+ "suprem4cy", "suprem@cy", "supr3macy", "5upremacy", "supremacy", "gen0cide", "genoc1de",
711
+ "genoci|)e", "genocide", "genoc|de", "geno(ide", "9enocide", "g3nocid3", "genoc!de", "big0t",
712
+ "bigot", "b|got", "bi9ot", "bigo7", "b!got", "8igot", "b1got", "#omop#obe", "homophobe",
713
+ "homophob3", "homopho8e", "h0m0ph0be", "xenophobe", "xenopho8e", "xenop#obe", "x3nophob3",
714
+ "xen0ph0be", "antifa", "bootlicker", "tankie", "baiter", "griefer", "kek", "pepe", "zoomer",
715
+ # New Slang Abuses & Offensive Insults (fifth block)
716
+ "bit(h", "8itch", "b|tch", "b1tch", "bi7ch", "bastar|", "b@st@rd", "ba5tard", "bas7ard",
717
+ "ba$tard", "b4st4rd", "8astard", "assho1e", "assho|e", "a$$hole", "ass#ole", "asshol3", "4sshole",
718
+ "a55hole", "assh0le", "pr1ck", "pr|ck", "pr!ck", "prick", "|)umbass", "dumba55", "dumb4ss",
719
+ "dumba$$", "dum8ass", "dumb@ss", "retar|", "r3tard", "re7ard", "ret@rd", "ret4rd", "|)ipshit",
720
+ "d|psh|t", "dipshi7", "dip5hit", "dips#it", "d!psh!t", "dipshit", "dip$hit", "d1psh1t", "j@ck@ss",
721
+ "wank3r", "w@nker", "w4nker", "tw4t", "tw@t", "7wa7", "shi7head", "shithe@d", "shith3ad",
722
+ "5hithead", "s#it#ead", "sh!thead", "sh1thead", "shithea|", "shithe4d", "$hithead",
723
+ # New General Abuses (fifth block)
724
+ "|d|ot", "idi0t", "1d1ot", "idio7", "idiot", "i|)iot", "!d!ot", "m0r0n", "moron", "lo5er",
725
+ "|oser", "1oser", "loser", "l0ser", "los3r", "5cum", "s(um", "$cum", "worthl3ss", "wort#less",
726
+ "worth|ess", "worthle$$", "wor7hless", "worthless", "worthle55", "worth1ess", "w0rthless",
727
+ # Additional new keywords from the latest list (General Abusive Language)
728
+ "16+", "18+", "alcohol", "amerifag", "assault", "b!tch", "bstard", "burn yourself", "c!nt",
729
+ "christfucker", "cnt", "cocaine", "creep", "cut yourself", "die in a hole", "die now", "dipshit",
730
+ "drink bleach", "drop dead", "dumbfuck", "fuck off", "fucker", "fucking idiot", "fuk", "get drunk",
731
+ "go hang yourself", "hymie", "i will ban you", "i will bomb the place", "i will fuck you",
732
+ "i will kill you", "jew", "jewboy", "moslemfucker", "marijuana", "massacre", "meth", "molest",
733
+ "naked", "obongo", "overdose", "penis", "perv", "pervert", "rape you", "rat poison", "s3x",
734
+ "sandnigger", "screw you", "secks", "self-harm", "sex offender", "sexual predator", "sx",
735
+ "take pills", "terrorist", "tits", "tranny", "twat", "vag", "vagina", "vodka", "x", "xxx",
736
+ "you will get raped", "you're a piece of shit", "you're banned forever", "you're crazy",
737
+ "you're hallucinating", "you're such a cunt", "you're worthless",
738
+ # New Sexually Explicit keywords and variations (fifth block)
739
+ "p0rn", "nu|)e", "nud3", "5ex", "$ex", "s3x", "xxx", "hardc0re", "h@rdcore", "hardcor3", "#ardcore",
740
+ "har|)core", "hard(ore", "h4rdcore", "adu1t", "adul7", "adu|t", "@dult", "adult", "4dult",
741
+ "a|)ult", "erot1c", "erot|c", "erot!c", "ero7ic", "eroti(", "er0tic", "3rotic", "str!p",
742
+ "s7rip", "str1p", "$trip", "strip", "str|p", "5trip", "c@mgirl", "camg|rl", "camg1rl",
743
+ "(amgirl", "cam9irl", "c4mgirl", "camgir1", "camgir|", "camg!rl", "feti$h", "fet1sh", "feti5h",
744
+ "fetis#", "f3tish", "fe7ish", "fetish", "fet!sh", "fet|sh",
745
+ # New Sexual Harassment keywords and variations (fifth block)
746
+ "perv", "p3rv", "(reep", "creep", "cr33p", "mo1est", "molest", "mole$t", "m0lest",
747
+ "mo|est", "mol3st", "moles7", "mole5t", "gr0pe", "9rope", "grop3", "grope", "h@r@ss",
748
+ "harass", "hara55", "h4r4ss", "#arass", "hara$$", "c4tc4ll", "ca7call", "catca11", "catca||",
749
+ "c@tc@ll", "(at(all", "catcall", "pre|)ator", "pred4tor", "pred@tor", "preda7or", "pr3dator",
750
+ "predat0r", "predator", "sta1ker", "st@lker", "stalk3r", "$talker", "st4lker", "s7alker",
751
+ "5talker", "stalker", "sta|ker", "m1sogyn1st", "misogynis7", "misogynist", "m|sogyn|st",
752
+ "m!sogyn!st", "mi$ogyni$t", "miso9ynist", "mis0gynist", "mi5ogyni5t", "exp0se", "expose",
753
+ "3xpos3", "expo$e", "expo5e",
754
+ # New Dangerous Content keywords and variations (fifth block)
755
+ "b0mb", "8om8", "k!ll", "k1ll", "ki||", "ki11", "k|ll", "kill", "atta(k", "a77ack",
756
+ "@tt@ck", "4tt4ck", "terr0r", "t3rror", "7error", "shoo7", "sh00t", "$hoot", "5hoot",
757
+ "s#oot", "$tab", "st4b", "st@b", "5tab", "sta8", "s7ab", "exp|osive", "expl0sive",
758
+ "explosive", "3xplosiv3", "explos!ve", "explos1ve", "explo5ive", "explos|ve", "explo$ive",
759
+ "exp1osive", "assass|nate", "assassinat3", "assass!nate", "assass1nate", "a55a55inate",
760
+ "assassina7e", "assassinate", "@ss@ssin@te", "4ss4ssin4te", "a$$a$$inate", "massacr3", "massa(re",
761
+ "ma$$acre", "m4ss4cre", "m@ss@cre", "ma55acre", "massacre", "$uicide", "suicide", "su1c1de",
762
+ "suicid3", "su|c|de", "sui(ide", "suici|)e", "5uicide", "su!c!de", "#omicide", "hom!c!de",
763
+ "hom|c|de", "homicid3", "homicide", "h0micide", "homi(ide", "homici|)e", "hom1c1de", "7or7ure",
764
+ "torture", "tortur3", "t0rture", "ra|)ical", "r4dic4l", "rad1cal", "radica1", "radica|",
765
+ "rad!cal", "rad|cal", "radical", "radi(al", "r@dic@l", "beheadin9", "8eheading",
766
+ "behea|)ing", "b3h3ading", "behead|ng", "beheading", "behead!ng", "be#eading", "behe4ding",
767
+ "behe@ding", "behead1ng", "extrem|st", "extrem!st", "3xtr3mist", "extremi$t", "ex7remis7",
768
+ "extremist", "extrem1st", "extremi5t", "r|ot", "r1ot", "rio7", "r!ot", "ri0t", "traff|ck|ng",
769
+ "tr@fficking", "traff!ck!ng", "traff1ck1ng", "7rafficking", "tr4fficking", "traffi(king",
770
+ "trafficking", "traffickin9", "k|dnap", "ki|)nap", "kidn@p", "kidn4p", "k!dnap", "k1dnap",
771
+ "arson", "ar5on", "ar$on", "4rson", "ars0n",
772
+ # New Harmful Content keywords and variations (sixth block)
773
+ "s3lf-harm", "se|f-harm", "self-h4rm", "self-h@rm", "5elf-harm", "self-#arm", "$elf-harm",
774
+ "se1f-harm", "self-harm", "cutting", "cuttin9", "cutt!ng", "(utting", "cutt1ng", "cu77ing",
775
+ "cutt|ng", "burn1ng", "burnin9", "burn!ng", "8urning", "burn|ng", "burning", "pa!n",
776
+ "p4in", "p@in", "pain", "pa1n", "pa|n", "s7arva7ion", "5starvation", "st4rv4tion", "starvat1on",
777
+ "starvat!on", "starvation", "starvat|on", "starvati0n", "$tarvation", "st@rv@tion", "overdose",
778
+ "0verd0se", "ov3rdos3", "over|)ose", "overdo5e", "overdo$e", "|)epresse|)", "d3pr3ss3d",
779
+ "depre55ed", "depressed", "depre$$ed", "d|e", "die", "d!e", "di3", "|)ie", "d1e", "jump",
780
+ "hang", "#ang", "h4ng", "han9", "h@ng", "poison", "po!son", "p0is0n", "poi5on", "poi$on",
781
+ "po1son", "po|son", "(hloroform", "chloroform", "ch|oroform", "ch1oroform", "c#loroform",
782
+ "chl0r0f0rm", "drug abu5e", "dru9 abuse", "drug abuse", "|)rug abuse", "drug abu$e", "drug 4buse",
783
+ "drug abus3", "drug @buse", "drug a8use", "@ddict", "4ddict", "add!ct", "addict", "a|)|)ict",
784
+ "addic7", "add1ct", "add|ct", "addi(t", "opioid", "0pi0id", "op1o1d", "op|o|d", "opioi|)",
785
+ "op!o!d", "fentanyl", "f3ntanyl", "fentany|", "fen7anyl", "fent@nyl", "fent4nyl", "fentany1",
786
+ "meth", "met#", "m3th", "me7h", "coca1ne", "cocain3", "cocaine", "coc4ine", "(o(aine",
787
+ "coc@ine", "coca!ne", "coca|ne", "c0caine", "h3roin", "her0in", "heroin", "#eroin", "hero|n",
788
+ "hero!n", "hero1n",
789
+ # New Hate Speech keywords and variations (sixth block)
790
+ "n@zi", "naz1", "naz!", "nazi", "na2i", "naz|", "n4zi", "kkk", "suprema(y", "$upremacy",
791
+ "suprem4cy", "suprem@cy", "supr3macy", "5upremacy", "supremacy", "gen0cide", "genoc1de",
792
+ "genoci|)e", "genocide", "genoc|de", "geno(ide", "9enocide", "g3nocid3", "genoc!de", "big0t",
793
+ "bigot", "b|got", "bi9ot", "bigo7", "b!got", "8igot", "b1got", "#omop#obe", "homophobe",
794
+ "homophob3", "homopho8e", "h0m0ph0be", "xenophobe", "xenopho8e", "xenop#obe", "x3nophob3",
795
+ "xen0ph0be", "antifa", "bootlicker", "tankie", "baiter", "griefer", "kek", "pepe", "zoomer",
796
+ # New Slang Abuses & Offensive Insults (sixth block)
797
+ "bit(h", "8itch", "b|tch", "b1tch", "bi7ch", "bastar|", "b@st@rd", "ba5tard", "bas7ard",
798
+ "ba$tard", "b4st4rd", "8astard", "assho1e", "assho|e", "a$$hole", "ass#ole", "asshol3", "4sshole",
799
+ "a55hole", "assh0le", "pr1ck", "pr|ck", "pr!ck", "prick", "|)umbass", "dumba55", "dumb4ss",
800
+ "dumba$$", "dum8ass", "dumb@ss", "retar|", "r3tard", "re7ard", "ret@rd", "ret4rd", "|)ipshit",
801
+ "d|psh|t", "dipshi7", "dip5hit", "dips#it", "d!psh!t", "dipshit", "dip$hit", "d1psh1t", "j@ck@ss",
802
+ "wank3r", "w@nker", "w4nker", "tw4t", "tw@t", "7wa7", "shi7head", "shithe@d", "shith3ad",
803
+ "5hithead", "s#it#ead", "sh!thead", "sh1thead", "shithea|", "shithe4d", "$hithead",
804
+ # New General Abuses (sixth block)
805
+ "|d|ot", "idi0t", "1d1ot", "idio7", "idiot", "i|)iot", "!d!ot", "m0r0n", "moron", "lo5er",
806
+ "|oser", "1oser", "loser", "l0ser", "los3r", "5cum", "s(um", "$cum", "worthl3ss", "wort#less",
807
+ "worth|ess", "worthle$$", "wor7hless", "worthless", "worthle55", "worth1ess", "w0rthless",
808
+ # Additional new keywords from the latest list (General Abusive Language)
809
+ "16+", "18+", "alcohol", "amerifag", "assault", "b!tch", "bstard", "burn yourself", "c!nt",
810
+ "christfucker", "cnt", "cocaine", "creep", "cut yourself", "die in a hole", "die now", "dipshit",
811
+ "drink bleach", "drop dead", "dumbfuck", "fuck off", "fucker", "fucking idiot", "fuk", "get drunk",
812
+ "go hang yourself", "hymie", "i will ban you", "i will bomb the place", "i will fuck you",
813
+ "i will kill you", "jew", "jewboy", "moslemfucker", "marijuana", "massacre", "meth", "molest",
814
+ "naked", "obongo", "overdose", "penis", "perv", "pervert", "rape you", "rat poison", "s3x",
815
+ "sandnigger", "screw you", "secks", "self-harm", "sex offender", "sexual predator", "sx",
816
+ "take pills", "terrorist", "tits", "tranny", "twat", "vag", "vagina", "vodka", "x", "xxx",
817
+ "you will get raped", "you're a piece of shit", "you're banned forever", "you're crazy",
818
+ "you're hallucinating", "you're such a cunt", "you're worthless"
819
+ ]
820
+
821
+ def contains_banned_keyword(self, text):
822
+ """Check if the input text contains any banned keywords."""
823
+ text_lower = text.lower()
824
+ for keyword in self.banned_keywords:
825
+ if keyword in text_lower:
826
+ return True
827
+ return False
828
+
829
  def preprocess(self, text):
830
  encoding = self.tokenizer.encode(text)
831
  ids = encoding.ids[:self.max_len]
 
833
  return np.array(ids + padding, dtype=np.int64).reshape(1, -1)
834
 
835
  def predict(self, text):
836
+ # First check if the text contains any banned keywords
837
+ if self.contains_banned_keyword(text):
838
+ return {
839
+ 'label': 'Inappropriate Content',
840
+ 'confidence': 1.0,
841
+ 'probabilities': [1.0, 0.0], # Assuming [inappropriate, appropriate]
842
+ 'keyword_matched': True # Flag to indicate keyword match
843
+ }
844
+
845
+ # If no banned keywords, proceed with model prediction
846
  # Preprocess
847
  input_array = self.preprocess(text)
848
 
 
862
  return {
863
  'label': class_labels[predicted_class],
864
  'confidence': float(probabilities[0][predicted_class]),
865
+ 'probabilities': probabilities[0].tolist(),
866
+ 'keyword_matched': False # Flag to indicate model prediction
867
  }
868
 
869
  # Example usage
 
873
 
874
  # Example texts for testing
875
  example_texts = [
876
+ "You're a worthless piece of garbage who should die",
877
+ "Hello, how are you doing today?"
878
  ]
879
 
880
  for text in example_texts:
881
  result = pipeline.predict(text)
882
  print(f"Input: {text}")
883
+ print(f"Prediction: {result['label']}")
884
+ if result['keyword_matched']:
885
+ print("(Detected by keyword filter)")
886
+ else:
887
+ print(f"Confidence: {result['confidence']:.2%}")
888
  print("-" * 80)
889
 
890
  # Define a function for Gradio to use
891
  def gradio_predict(text):
892
  result = pipeline.predict(text)
893
+ if result['keyword_matched']:
894
+ return f"Prediction: {result['label']} (Detected by keyword filter)"
895
+ else:
896
+ return f"Prediction: {result['label']} (Confidence: {result['confidence']:.2%})"
897
 
898
  # Create a Gradio interface
899
  iface = gr.Interface(
 
909
  ),
910
  examples=[
911
  # Explicitly offensive examples
912
+ "Congrats, you fuckbrain arsehole, you've outdone yourself in stupidity. A real cock-up of a human—should we clap for your bollocks-faced greatness or just pity you?",
913
+ "You're a mad bastard, but I'd still grab a beer with you! Fuck around all you like, you cockheaded legend—your arsehole antics are bloody brilliant.",
914
  "Your mother should have done better raising such a useless idiot.",
915
 
916
  # Neutral or appropriate examples
917
+ "Hello HR, I hope this message finds you well. I'm writing to express my gratitude for the opportunity to interview for the Financial Analyst position last week. It was a pleasure to meet you and learn more about the role and your team.",
918
+ "Thank you for your time and consideration. Please don't hesitate to reach out if you need additional information—I'd be happy to discuss further. Looking forward to hearing from you soon!",
919
+ "The weather today is lovely, and I'm looking forward to a productive day at work.",
920
 
921
  # Mixed examples (some offensive, some neutral)
922
+ "I appreciate your help, but honestly, you're such a clueless idiot sometimes. Still, thanks for trying."
923
  ]
924
  )
925