Add blacklist for email domains and usernames
3 files changed, 1269 insertions(+), 1 deletions(-)

A => accounts/blacklists.go
M go.mod
M go.sum
A => accounts/blacklists.go +1263 -0
@@ 0,0 1,1263 @@ 
+package accounts
+
+import (
+	"strings"
+
+	"golang.org/x/exp/slices"
+)
+
+// EmailSafe will verify an email domain is not in the blacklist
+func EmailSafe(email string) bool {
+	at := strings.LastIndex(email, "@")
+	if at <= 0 {
+		return false
+	}
+	domain := email[at+1:]
+	return true != slices.Contains(emailBlacklist, domain)
+}
+
+// UsernameSafe will verify a username is not in the blacklist
+func UsernameSafe(username string) bool {
+	return true != slices.Contains(usernameBlacklist, username)
+}
+
+// https://git.sr.ht/~sircmpwn/meta.sr.ht/tree/master/item/metasrht/blacklist.py
+var emailBlacklist = []string{
+	"0815.ru",
+	"0wnd.net",
+	"0wnd.org",
+	"10minutemail.co.za",
+	"10minutemail.com",
+	"123-m.com",
+	"1fsdfdsfsdf.tk",
+	"1pad.de",
+	"20minutemail.com",
+	"21cn.com",
+	"2fdgdfgdfgdf.tk",
+	"2prong.com",
+	"30minutemail.com",
+	"33mail.com",
+	"3trtretgfrfe.tk",
+	"4gfdsgfdgfd.tk",
+	"4warding.com",
+	"5ghgfhfghfgh.tk",
+	"6hjgjhgkilkj.tk",
+	"6paq.com",
+	"7tags.com",
+	"9ox.net",
+	"a-bc.net",
+	"agedmail.com",
+	"ama-trade.de",
+	"amilegit.com",
+	"amiri.net",
+	"amiriindustries.com",
+	"anonmails.de",
+	"anonymbox.com",
+	"antichef.com",
+	"antichef.net",
+	"antireg.ru",
+	"antispam.de",
+	"antispammail.de",
+	"armyspy.com",
+	"artman-conception.com",
+	"awdrt.net",
+	"azmeil.tk",
+	"baxomale.ht.cx",
+	"beefmilk.com",
+	"bigstring.com",
+	"binkmail.com",
+	"bio-muesli.net",
+	"bobmail.info",
+	"bodhi.lawlita.com",
+	"bofthew.com",
+	"bootybay.de",
+	"boun.cr",
+	"bouncr.com",
+	"breakthru.com",
+	"brefmail.com",
+	"bsnow.net",
+	"bspamfree.org",
+	"bugmenot.com",
+	"bund.us",
+	"burstmail.info",
+	"buymoreplays.com",
+	"byom.de",
+	"c2.hu",
+	"card.zp.ua",
+	"casualdx.com",
+	"cek.pm",
+	"centermail.com",
+	"centermail.net",
+	"chammy.info",
+	"childsavetrust.org",
+	"chogmail.com",
+	"choicemail1.com",
+	"clixser.com",
+	"cmail.net",
+	"cmail.org",
+	"coldemail.info",
+	"cool.fr.nf",
+	"courriel.fr.nf",
+	"courrieltemporaire.com",
+	"crapmail.org",
+	"cust.in",
+	"cuvox.de",
+	"d3p.dk",
+	"dacoolest.com",
+	"dandikmail.com",
+	"dayrep.com",
+	"dcemail.com",
+	"deadaddress.com",
+	"deadspam.com",
+	"delikkt.de",
+	"despam.it",
+	"despammed.com",
+	"devnullmail.com",
+	"dfgh.net",
+	"digitalsanctuary.com",
+	"dingbone.com",
+	"disposableaddress.com",
+	"disposableemailaddresses.com",
+	"disposableinbox.com",
+	"dispose.it",
+	"dispostable.com",
+	"dodgeit.com",
+	"dodgit.com",
+	"donemail.ru",
+	"dontreg.com",
+	"dontsendmespam.de",
+	"drdrb.net",
+	"dump-email.info",
+	"dumpandjunk.com",
+	"dumpyemail.com",
+	"e-mail.com",
+	"e-mail.org",
+	"e4ward.com",
+	"easytrashmail.com",
+	"einmalmail.de",
+	"einrot.com",
+	"eintagsmail.de",
+	"emailgo.de",
+	"emailias.com",
+	"emaillime.com",
+	"emailsensei.com",
+	"emailtemporanea.com",
+	"emailtemporanea.net",
+	"emailtemporar.ro",
+	"emailtemporario.com.br",
+	"emailthe.net",
+	"emailtmp.com",
+	"emailwarden.com",
+	"emailx.at.hm",
+	"emailxfer.com",
+	"emeil.in",
+	"emeil.ir",
+	"emz.net",
+	"ero-tube.org",
+	"evopo.com",
+	"explodemail.com",
+	"express.net.ua",
+	"eyepaste.com",
+	"fakeinbox.com",
+	"fakeinformation.com",
+	"fansworldwide.de",
+	"fantasymail.de",
+	"fightallspam.com",
+	"filzmail.com",
+	"fivemail.de",
+	"fleckens.hu",
+	"frapmail.com",
+	"friendlymail.co.uk",
+	"fuckingduh.com",
+	"fudgerub.com",
+	"fyii.de",
+	"garliclife.com",
+	"gehensiemirnichtaufdensack.de",
+	"get2mail.fr",
+	"getairmail.com",
+	"getmails.eu",
+	"getonemail.com",
+	"giantmail.de",
+	"girlsundertheinfluence.com",
+	"gishpuppy.com",
+	"gmial.com",
+	"goemailgo.com",
+	"gotmail.net",
+	"gotmail.org",
+	"gotti.otherinbox.com",
+	"great-host.in",
+	"greensloth.com",
+	"grr.la",
+	"gsrv.co.uk",
+	"guerillamail.biz",
+	"guerillamail.com",
+	"guerrillamail.biz",
+	"guerrillamail.com",
+	"guerrillamail.de",
+	"guerrillamail.info",
+	"guerrillamail.net",
+	"guerrillamail.org",
+	"guerrillamailblock.com",
+	"gustr.com",
+	"harakirimail.com",
+	"hat-geld.de",
+	"hatespam.org",
+	"herp.in",
+	"hidemail.de",
+	"hidzz.com",
+	"hmamail.com",
+	"hopemail.biz",
+	"ieh-mail.de",
+	"ikbenspamvrij.nl",
+	"imails.info",
+	"inbax.tk",
+	"inbox.si",
+	"inboxalias.com",
+	"inboxclean.com",
+	"inboxclean.org",
+	"infocom.zp.ua",
+	"instant-mail.de",
+	"ip6.li",
+	"irish2me.com",
+	"iwi.net",
+	"jetable.com",
+	"jetable.fr.nf",
+	"jetable.net",
+	"jetable.org",
+	"jnxjn.com",
+	"jourrapide.com",
+	"jsrsolutions.com",
+	"kasmail.com",
+	"kaspop.com",
+	"killmail.com",
+	"killmail.net",
+	"klassmaster.com",
+	"klzlk.com",
+	"koszmail.pl",
+	"kurzepost.de",
+	"lawlita.com",
+	"letthemeatspam.com",
+	"lhsdv.com",
+	"lifebyfood.com",
+	"link2mail.net",
+	"litedrop.com",
+	"lol.ovpn.to",
+	"lolfreak.net",
+	"lookugly.com",
+	"lortemail.dk",
+	"lr78.com",
+	"lroid.com",
+	"lukop.dk",
+	"m21.cc",
+	"mail-filter.com",
+	"mail-temporaire.fr",
+	"mail.by",
+	"mail.mezimages.net",
+	"mail.zp.ua",
+	"mail1a.de",
+	"mail21.cc",
+	"mail2rss.org",
+	"mail333.com",
+	"mailbidon.com",
+	"mailbiz.biz",
+	"mailblocks.com",
+	"mailbucket.org",
+	"mailcat.biz",
+	"mailcatch.com",
+	"mailde.de",
+	"mailde.info",
+	"maildrop.cc",
+	"maileimer.de",
+	"mailexpire.com",
+	"mailfa.tk",
+	"mailforspam.com",
+	"mailfreeonline.com",
+	"mailguard.me",
+	"mailin8r.com",
+	"mailinater.com",
+	"mailinator.com",
+	"mailinator.net",
+	"mailinator.org",
+	"mailinator2.com",
+	"mailincubator.com",
+	"mailismagic.com",
+	"mailme.lv",
+	"mailme24.com",
+	"mailmetrash.com",
+	"mailmoat.com",
+	"mailms.com",
+	"mailnesia.com",
+	"mailnull.com",
+	"mailorg.org",
+	"mailpick.biz",
+	"mailrock.biz",
+	"mailscrap.com",
+	"mailshell.com",
+	"mailsiphon.com",
+	"mailtemp.info",
+	"mailtome.de",
+	"mailtothis.com",
+	"mailtrash.net",
+	"mailtv.net",
+	"mailtv.tv",
+	"mailzilla.com",
+	"makemetheking.com",
+	"manybrain.com",
+	"mbx.cc",
+	"mega.zik.dj",
+	"meinspamschutz.de",
+	"meltmail.com",
+	"messagebeamer.de",
+	"mezimages.net",
+	"ministry-of-silly-walks.de",
+	"mintemail.com",
+	"misterpinball.de",
+	"moncourrier.fr.nf",
+	"monemail.fr.nf",
+	"monmail.fr.nf",
+	"monumentmail.com",
+	"mt2009.com",
+	"mt2014.com",
+	"mycard.net.ua",
+	"mycleaninbox.net",
+	"mymail-in.net",
+	"mypacks.net",
+	"mypartyclip.de",
+	"myphantomemail.com",
+	"mysamp.de",
+	"mytempemail.com",
+	"mytempmail.com",
+	"mytrashmail.com",
+	"nabuma.com",
+	"neomailbox.com",
+	"nepwk.com",
+	"nervmich.net",
+	"nervtmich.net",
+	"netmails.com",
+	"netmails.net",
+	"neverbox.com",
+	"nice-4u.com",
+	"nincsmail.hu",
+	"nnh.com",
+	"no-spam.ws",
+	"noblepioneer.com",
+	"nomail.pw",
+	"nomail.xl.cx",
+	"nomail2me.com",
+	"nomorespamemails.com",
+	"nospam.ze.tc",
+	"nospam4.us",
+	"nospamfor.us",
+	"nospammail.net",
+	"notmailinator.com",
+	"nowhere.org",
+	"nowmymail.com",
+	"nurfuerspam.de",
+	"nus.edu.sg",
+	"objectmail.com",
+	"obobbo.com",
+	"odnorazovoe.ru",
+	"oneoffemail.com",
+	"onewaymail.com",
+	"onlatedotcom.info",
+	"online.ms",
+	"opayq.com",
+	"ordinaryamerican.net",
+	"otherinbox.com",
+	"ovpn.to",
+	"owlpic.com",
+	"pancakemail.com",
+	"pcusers.otherinbox.com",
+	"pjjkp.com",
+	"plexolan.de",
+	"poczta.onet.pl",
+	"politikerclub.de",
+	"poofy.org",
+	"pookmail.com",
+	"privacy.net",
+	"privatdemail.net",
+	"proxymail.eu",
+	"prtnx.com",
+	"putthisinyourspamdatabase.com",
+	"putthisinyourspamdatabase.com",
+	"qq.com",
+	"quickinbox.com",
+	"rcpt.at",
+	"reallymymail.com",
+	"realtyalerts.ca",
+	"recode.me",
+	"recursor.net",
+	"reliable-mail.com",
+	"rhyta.com",
+	"rmqkr.net",
+	"royal.net",
+	"rtrtr.com",
+	"s0ny.net",
+	"safe-mail.net",
+	"safersignup.de",
+	"safetymail.info",
+	"safetypost.de",
+	"saynotospams.com",
+	"schafmail.de",
+	"schrott-email.de",
+	"secretemail.de",
+	"secure-mail.biz",
+	"senseless-entertainment.com",
+	"services391.com",
+	"sharklasers.com",
+	"shieldemail.com",
+	"shiftmail.com",
+	"shitmail.me",
+	"shitware.nl",
+	"shmeriously.com",
+	"shortmail.net",
+	"sibmail.com",
+	"sinnlos-mail.de",
+	"slapsfromlastnight.com",
+	"slaskpost.se",
+	"smashmail.de",
+	"smellfear.com",
+	"snakemail.com",
+	"sneakemail.com",
+	"sneakmail.de",
+	"snkmail.com",
+	"sofimail.com",
+	"solvemail.info",
+	"sogetthis.com",
+	"soodonims.com",
+	"spam4.me",
+	"spamail.de",
+	"spamarrest.com",
+	"spambob.net",
+	"spambog.ru",
+	"spambox.us",
+	"spamcannon.com",
+	"spamcannon.net",
+	"spamcon.org",
+	"spamcorptastic.com",
+	"spamcowboy.com",
+	"spamcowboy.net",
+	"spamcowboy.org",
+	"spamday.com",
+	"spamex.com",
+	"spamfree.eu",
+	"spamfree24.com",
+	"spamfree24.de",
+	"spamfree24.org",
+	"spamgoes.in",
+	"spamgourmet.com",
+	"spamgourmet.net",
+	"spamgourmet.org",
+	"spamherelots.com",
+	"spamherelots.com",
+	"spamhereplease.com",
+	"spamhereplease.com",
+	"spamhole.com",
+	"spamify.com",
+	"spaml.de",
+	"spammotel.com",
+	"spamobox.com",
+	"spamslicer.com",
+	"spamspot.com",
+	"spamthis.co.uk",
+	"spamtroll.net",
+	"speed.1s.fr",
+	"spoofmail.de",
+	"stuffmail.de",
+	"super-auswahl.de",
+	"supergreatmail.com",
+	"supermailer.jp",
+	"superrito.com",
+	"superstachel.de",
+	"suremail.info",
+	"talkinator.com",
+	"teewars.org",
+	"teleworm.com",
+	"teleworm.us",
+	"temp-mail.org",
+	"temp-mail.ru",
+	"tempe-mail.com",
+	"tempemail.co.za",
+	"tempemail.com",
+	"tempemail.net",
+	"tempemail.net",
+	"tempinbox.co.uk",
+	"tempinbox.com",
+	"tempmail.eu",
+	"tempmaildemo.com",
+	"tempmailer.com",
+	"tempmailer.de",
+	"tempomail.fr",
+	"temporaryemail.net",
+	"temporaryforwarding.com",
+	"temporaryinbox.com",
+	"temporarymailaddress.com",
+	"tempthe.net",
+	"thankyou2010.com",
+	"thc.st",
+	"thelimestones.com",
+	"thisisnotmyrealemail.com",
+	"thismail.net",
+	"throwawayemailaddress.com",
+	"tilien.com",
+	"tittbit.in",
+	"tizi.com",
+	"tmailinator.com",
+	"toomail.biz",
+	"topranklist.de",
+	"tradermail.info",
+	"trash-mail.at",
+	"trash-mail.com",
+	"trash-mail.de",
+	"trash2009.com",
+	"trashdevil.com",
+	"trashemail.de",
+	"trashmail.at",
+	"trashmail.com",
+	"trashmail.de",
+	"trashmail.me",
+	"trashmail.net",
+	"trashmail.org",
+	"trashymail.com",
+	"trialmail.de",
+	"trillianpro.com",
+	"twinmail.de",
+	"tyldd.com",
+	"uggsrock.com",
+	"umail.net",
+	"uroid.com",
+	"us.af",
+	"venompen.com",
+	"veryrealemail.com",
+	"viditag.com",
+	"viralplays.com",
+	"vpn.st",
+	"vsimcard.com",
+	"vubby.com",
+	"wasteland.rfc822.org",
+	"webemail.me",
+	"weg-werf-email.de",
+	"wegwerf-emails.de",
+	"wegwerfadresse.de",
+	"wegwerfemail.com",
+	"wegwerfemail.de",
+	"wegwerfmail.de",
+	"wegwerfmail.info",
+	"wegwerfmail.net",
+	"wegwerfmail.org",
+	"wh4f.org",
+	"whyspam.me",
+	"willhackforfood.biz",
+	"willselfdestruct.com",
+	"winemaven.info",
+	"wronghead.com",
+	"www.e4ward.com",
+	"www.mailinator.com",
+	"wwwnew.eu",
+	"x.ip6.li",
+	"xagloo.com",
+	"xemaps.com",
+	"xents.com",
+	"xmaily.com",
+	"xoxy.net",
+	"yep.it",
+	"yogamaven.com",
+	"yopmail.com",
+	"yopmail.fr",
+	"yopmail.net",
+	"yourdomain.com",
+	"yuurok.com",
+	"z1p.biz",
+	"za.com",
+	"zehnminuten.de",
+	"zehnminutenmail.de",
+	"zippymail.info",
+	"zoemail.net",
+	"zomg.info",
+
+	// Additions:
+	"mailto.plus",
+	"fexpost.com",
+	"fexbos.ru",
+	"fexbox.org",
+	"rover.info",
+	"inpwa.com",
+	"intopwa.org",
+	"intopwa.net",
+	"intopwa.com",
+	"mailbox.in.ua",
+	"btc.glass",
+	"1secmail.com",
+	"1secmail.org",
+	"1secmail.net",
+	"relay.firefox.com",
+	"miucce.com",
+	"upived.o",
+	"biyac.com",
+	"nucleant.org",
+	"temporary-mail.net",
+	"tempr.email",
+	"discard.email",
+	"discardmail.com",
+	"discardmail.de",
+	"spambog.com",
+	"spambog.de",
+	"spambog.ru",
+	"0815.ru",
+	"knol-power.nl",
+	"freundin.ru",
+	"smashmail.de",
+	"s0ny.net",
+	"pecinan.net",
+	"budaya-tionghoa.com",
+	"lajoska.pe.hu",
+	"1mail.x24hr.com",
+	"from.onmypc.info",
+	"now.mefound.com",
+	"mowgli.jungleheart.com",
+	"pecinan.org",
+	"budayationghoa.com",
+	"CR.cloudns.asia",
+	"TLS.cloudns.asia",
+	"MSFT.cloudns.asia",
+	"B.cr.cloUdnS.asia",
+	"ssl.tls.cloudns.ASIA",
+	"sweetxxx.de",
+	"DVD.dns-cloud.net",
+	"DVD.dnsabr.com",
+	"BD.dns-cloud.net",
+	"YX.dns-cloud.net",
+	"SHIT.dns-cloud.net",
+	"SHIT.dnsabr.com",
+	"eu.dns-cloud.net",
+	"eu.dnsabr.com",
+	"asia.dnsabr.com",
+	"8.dnsabr.com",
+	"pw.8.dnsabr.com",
+	"mm.8.dnsabr.com",
+	"23.8.dnsabr.com",
+	"pecinan.com",
+	"disposable-email.ml",
+	"pw.epac.to",
+	"postheo.de",
+	"sexy.camdvr.org",
+	"Disposable.ml",
+	"888.dnS-clouD.NET",
+	"adult-work.info",
+	"trap-mail.de",
+	"gmaile.design",
+	"tempes.gq",
+	"cpmail.life",
+	"tempemail.info",
+	"coolmailcool.com",
+	"notmyemail.tech",
+	"m.cloudns.cl",
+	"twitter-sign-in.cf",
+	"anonymized.org",
+	"you.has.dating",
+	"t.woeishyang.com",
+	"blackturtle.xyz",
+	"mailg.ml",
+	"media.motornation.buzz",
+	"badlion.co.uk",
+	"mrdeeps.ml",
+	"fouadps.cf",
+	"fshare.ootech.vn",
+	"pflege-schoene-haut.de",
+	"corona.is.bullsht.dedyn.io",
+	"dristypat.com",
+	"smack.email",
+	"techwizardent.me",
+	"mrgamin.ml",
+	"mrgamin.gq",
+	"mrgamin.cf",
+	"tempmail.wizardmail.tech",
+	"mail.mrgamin.ml",
+	"kaaaxcreators.tk",
+	"mail.kaaaxcreators.tk",
+	"mail.igosad.me",
+	"maa.567map.xyz",
+	"32core.live",
+	"tokyoto.site",
+	"hidemyass.fun",
+	"solpatu.space",
+	"igosad.tech",
+	"99email.xyz",
+	"ketoblazepro.com",
+	"kost.party",
+	"0hio0ak.com",
+	"4dentalsolutions.com",
+	"ondemandemail.top",
+	"kittenemail.xyz",
+	"geneseeit.com",
+	"safeemail.xyz",
+	"virtual-generations.com",
+	"historictheology.com",
+	"speedfocus.biz",
+	"chapedia.net",
+	"meantinc.com",
+	"powerencry.com",
+	"chapedia.org",
+	"truthfinderlogin.com",
+	"chasefreedomactivate.com",
+	"wellsfargocomcardholders.com",
+	"qq.com",
+	"hostux.ninja",
+	"chitthi.in",
+	"bvhrk.com",
+	"bvhrs.com",
+	"kvhrr.com",
+	"kvhrs.com",
+	"nthrl.com",
+	"nvhrw.com",
+	"sinaite.net",
+	"1secmail.com",
+	"1secmail.org",
+	"1secmail.net",
+	"xojxe.com",
+	"yoggm.com",
+	"wwjmp.com",
+	"esiix.com",
+	"oosln.com",
+	"vddaz.com",
+	"instance-email.com",
+	"nthrw.com",
+}
+
+// https://github.com/marteinn/The-Big-Username-Blacklist
+var usernameBlacklist = []string{
+	"srht",
+	"sirhat",
+	"sourcehut",
+	"sirhit",
+	"srcht",
+	"srchut",
+
+	".htaccess",
+	".htpasswd",
+	".well_known",
+	"400",
+	"401",
+	"403",
+	"404",
+	"405",
+	"406",
+	"407",
+	"408",
+	"409",
+	"410",
+	"411",
+	"412",
+	"413",
+	"414",
+	"415",
+	"416",
+	"417",
+	"421",
+	"422",
+	"423",
+	"424",
+	"426",
+	"428",
+	"429",
+	"431",
+	"500",
+	"501",
+	"502",
+	"503",
+	"504",
+	"505",
+	"506",
+	"507",
+	"508",
+	"509",
+	"510",
+	"511",
+	"about",
+	"about_us",
+	"abuse",
+	"access",
+	"account",
+	"accounts",
+	"ad",
+	"add",
+	"admin",
+	"administration",
+	"administrator",
+	"ads",
+	"advertise",
+	"advertising",
+	"aes128_ctr",
+	"aes128_gcm",
+	"aes192_ctr",
+	"aes256_ctr",
+	"aes256_gcm",
+	"affiliate",
+	"affiliates",
+	"ajax",
+	"alert",
+	"alerts",
+	"alpha",
+	"amp",
+	"analytics",
+	"api",
+	"app",
+	"apps",
+	"asc",
+	"assets",
+	"atom",
+	"auth",
+	"authentication",
+	"authorize",
+	"autoconfig",
+	"autodiscover",
+	"avatar",
+	"backup",
+	"banner",
+	"banners",
+	"beta",
+	"billing",
+	"billings",
+	"blog",
+	"blogs",
+	"board",
+	"bookmark",
+	"bookmarks",
+	"broadcasthost",
+	"business",
+	"buy",
+	"cache",
+	"calendar",
+	"campaign",
+	"captcha",
+	"careers",
+	"cart",
+	"cas",
+	"categories",
+	"category",
+	"cdn",
+	"cgi",
+	"cgi_bin",
+	"chacha20_poly1305",
+	"change",
+	"channel",
+	"channels",
+	"chart",
+	"chat",
+	"checkout",
+	"clear",
+	"client",
+	"close",
+	"cms",
+	"com",
+	"comment",
+	"comments",
+	"community",
+	"compare",
+	"compose",
+	"config",
+	"connect",
+	"contact",
+	"contest",
+	"cookies",
+	"copy",
+	"copyright",
+	"count",
+	"create",
+	"crossdomain.xml",
+	"css",
+	"curve25519_sha256",
+	"customer",
+	"customers",
+	"customize",
+	"dashboard",
+	"db",
+	"deals",
+	"debug",
+	"delete",
+	"desc",
+	"dev",
+	"developer",
+	"developers",
+	"diffie_hellman_group_exchange_sha256",
+	"diffie_hellman_group14_sha1",
+	"disconnect",
+	"discuss",
+	"dns",
+	"dns0",
+	"dns1",
+	"dns2",
+	"dns3",
+	"dns4",
+	"docs",
+	"documentation",
+	"domain",
+	"download",
+	"downloads",
+	"downvote",
+	"draft",
+	"drop",
+	"ecdh_sha2_nistp256",
+	"ecdh_sha2_nistp384",
+	"ecdh_sha2_nistp521",
+	"edit",
+	"editor",
+	"email",
+	"enterprise",
+	"error",
+	"errors",
+	"event",
+	"events",
+	"example",
+	"exception",
+	"exit",
+	"explore",
+	"export",
+	"extensions",
+	"false",
+	"family",
+	"faq",
+	"faqs",
+	"favicon.ico",
+	"features",
+	"feed",
+	"feedback",
+	"feeds",
+	"file",
+	"files",
+	"filter",
+	"follow",
+	"follower",
+	"followers",
+	"following",
+	"fonts",
+	"forgot",
+	"forgot_password",
+	"forgotpassword",
+	"form",
+	"forms",
+	"forum",
+	"forums",
+	"friend",
+	"friends",
+	"ftp",
+	"get",
+	"git",
+	"go",
+	"group",
+	"groups",
+	"guest",
+	"guidelines",
+	"guides",
+	"head",
+	"header",
+	"help",
+	"hide",
+	"hmac_sha",
+	"hmac_sha1",
+	"hmac_sha1_etm",
+	"hmac_sha2_256",
+	"hmac_sha2_256_etm",
+	"hmac_sha2_512",
+	"hmac_sha2_512_etm",
+	"home",
+	"host",
+	"hosting",
+	"hostmaster",
+	"htpasswd",
+	"http",
+	"httpd",
+	"https",
+	"humans.txt",
+	"icons",
+	"images",
+	"imap",
+	"img",
+	"import",
+	"info",
+	"insert",
+	"investors",
+	"invitations",
+	"invite",
+	"invites",
+	"invoice",
+	"is",
+	"isatap",
+	"issues",
+	"it",
+	"jobs",
+	"join",
+	"js",
+	"json",
+	"keybase.txt",
+	"learn",
+	"legal",
+	"license",
+	"licensing",
+	"limit",
+	"live",
+	"load",
+	"local",
+	"localdomain",
+	"localhost",
+	"lock",
+	"login",
+	"logout",
+	"lost_password",
+	"mail",
+	"mail0",
+	"mail1",
+	"mail2",
+	"mail3",
+	"mail4",
+	"mail5",
+	"mail6",
+	"mail7",
+	"mail8",
+	"mail9",
+	"mailer_daemon",
+	"mailerdaemon",
+	"map",
+	"marketing",
+	"marketplace",
+	"master",
+	"me",
+	"media",
+	"member",
+	"members",
+	"message",
+	"messages",
+	"metrics",
+	"mis",
+	"mobile",
+	"moderator",
+	"modify",
+	"more",
+	"mx",
+	"my",
+	"net",
+	"network",
+	"new",
+	"news",
+	"newsletter",
+	"newsletters",
+	"next",
+	"nil",
+	"no_reply",
+	"nobody",
+	"noc",
+	"none",
+	"noreply",
+	"notification",
+	"notifications",
+	"ns",
+	"ns0",
+	"ns1",
+	"ns2",
+	"ns3",
+	"ns4",
+	"ns5",
+	"ns6",
+	"ns7",
+	"ns8",
+	"ns9",
+	"null",
+	"oauth",
+	"oauth2",
+	"offer",
+	"offers",
+	"online",
+	"openid",
+	"order",
+	"orders",
+	"overview",
+	"owner",
+	"page",
+	"pages",
+	"partners",
+	"passwd",
+	"password",
+	"pay",
+	"payment",
+	"payments",
+	"photo",
+	"photos",
+	"pixel",
+	"plans",
+	"plugins",
+	"policies",
+	"policy",
+	"pop",
+	"pop3",
+	"popular",
+	"portfolio",
+	"post",
+	"postfix",
+	"postmaster",
+	"poweruser",
+	"preferences",
+	"premium",
+	"press",
+	"previous",
+	"pricing",
+	"print",
+	"privacy",
+	"privacy_policy",
+	"private",
+	"prod",
+	"product",
+	"production",
+	"profile",
+	"profiles",
+	"project",
+	"projects",
+	"public",
+	"purchase",
+	"put",
+	"quota",
+	"redirect",
+	"reduce",
+	"refund",
+	"refunds",
+	"register",
+	"registration",
+	"remove",
+	"replies",
+	"reply",
+	"report",
+	"request",
+	"request_password",
+	"reset",
+	"reset_password",
+	"response",
+	"return",
+	"returns",
+	"review",
+	"reviews",
+	"robots.txt",
+	"root",
+	"rootuser",
+	"rsa_sha2_2",
+	"rsa_sha2_512",
+	"rss",
+	"rules",
+	"sales",
+	"save",
+	"script",
+	"sdk",
+	"search",
+	"secure",
+	"security",
+	"select",
+	"services",
+	"session",
+	"sessions",
+	"settings",
+	"setup",
+	"share",
+	"shift",
+	"shop",
+	"signin",
+	"signup",
+	"site",
+	"sitemap",
+	"sites",
+	"smtp",
+	"sort",
+	"source",
+	"sql",
+	"ssh",
+	"ssh_rsa",
+	"ssl",
+	"ssladmin",
+	"ssladministrator",
+	"sslwebmaster",
+	"stage",
+	"staging",
+	"stat",
+	"static",
+	"statistics",
+	"stats",
+	"status",
+	"store",
+	"style",
+	"styles",
+	"stylesheet",
+	"stylesheets",
+	"subdomain",
+	"subscribe",
+	"sudo",
+	"super",
+	"superuser",
+	"support",
+	"survey",
+	"sync",
+	"sysadmin",
+	"system",
+	"tablet",
+	"tag",
+	"tags",
+	"team",
+	"telnet",
+	"terms",
+	"terms_of_use",
+	"test",
+	"testimonials",
+	"theme",
+	"themes",
+	"today",
+	"tools",
+	"topic",
+	"topics",
+	"tour",
+	"training",
+	"translate",
+	"translations",
+	"trending",
+	"trial",
+	"true",
+	"umac_128",
+	"umac_128_etm",
+	"umac_64",
+	"umac_64_etm",
+	"undefined",
+	"unfollow",
+	"unsubscribe",
+	"update",
+	"upgrade",
+	"usenet",
+	"user",
+	"username",
+	"users",
+	"uucp",
+	"var",
+	"verify",
+	"video",
+	"view",
+	"void",
+	"vote",
+	"webmail",
+	"webmaster",
+	"website",
+	"widget",
+	"widgets",
+	"wiki",
+	"wpad",
+	"write",
+	"www",
+	"www_data",
+	"www1",
+	"www2",
+	"www3",
+	"www4",
+	"you",
+	"yourname",
+	"yourusername",
+	"zlib",
+	"bwk",
+	"dmr",
+	"esr",
+	"rms",
+	"ritchie",
+	"torvalds",
+}

          
M go.mod +2 -1
@@ 64,8 64,9 @@ require (
 	github.com/valyala/bytebufferpool v1.0.0 // indirect
 	github.com/valyala/fasttemplate v1.2.2 // indirect
 	github.com/vektah/gqlparser/v2 v2.5.1 // indirect
+	golang.org/x/exp v0.0.0-20231110203233-9a3e6036ecaa // indirect
 	golang.org/x/net v0.8.0 // indirect
-	golang.org/x/sys v0.6.0 // indirect
+	golang.org/x/sys v0.14.0 // indirect
 	golang.org/x/time v0.3.0 // indirect
 	google.golang.org/protobuf v1.28.1 // indirect
 	gopkg.in/ini.v1 v1.57.0 // indirect

          
M go.sum +4 -0
@@ 339,6 339,8 @@ golang.org/x/exp v0.0.0-20191227195350-d
 golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4=
 golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM=
 golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU=
+golang.org/x/exp v0.0.0-20231110203233-9a3e6036ecaa h1:FRnLl4eNAQl8hwxVVC17teOw8kdjVDVAiFMtgUdTSRQ=
+golang.org/x/exp v0.0.0-20231110203233-9a3e6036ecaa/go.mod h1:zk2irFbV9DP96SEBUUAy67IdHUaZuSnrz1n472HUCLE=
 golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js=
 golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=
 golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=

          
@@ 455,6 457,8 @@ golang.org/x/sys v0.0.0-20220114195835-d
 golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/sys v0.6.0 h1:MVltZSvRTcU2ljQOhs94SXPftV6DCNnZViHeQps87pQ=
 golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.14.0 h1:Vz7Qs629MkJkGyHxUlRHizWJRG2j8fbQKjELVSNhy7Q=
+golang.org/x/sys v0.14.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
 golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
 golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
 golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=