SLOPSHOPPER

tokprobe

Measures Claude token counts via model.complete usage

newcommandmodel
v0.1.0no licenseupdated 2026-10-10HEAPTRASH/plusplus/bench/tokprobe
A shopper browsing a rack in a slop shop
Preview · a replayed session in a sandbox
claude · ~/work/app · tokprobe
› fix the failing auth test and add an audit log call ⏺ Read(src/auth.ts) ⎿ Read 6 lines ⏺ Update(src/auth.ts) ⎿ Added 2 lines, removed 1 line ⏺ Bash(bun test) ⎿ 3 pass, 1 fail ● Done. refresh now rejects expired claims and logs an audit event. ✻ Worked for 42s · done 4:20 PM › /tokprobe ⎿ tokprobe: : 3611/3611 sampled anchor words are single tokens; extra tokens per line by format ⎿ tokprobe: {} ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── › ? for shortcuts
README

plusplus

A Claude Code mod that makes sessions cheaper in tokens, turns and dollars. Four parts, each usable by itself:

Anchored read and edit

  • Stable line IDs. read returns ID§code lines. The IDs are numeric, permuted, and always above the file's line count, so a line number is never mistaken for one. A Myers diff keeps them stable across edits made by any tool.
  • Locate once. read has three modes: pattern (a regex over a file or directory), symbol (a definition plus every reference, with the definition found through the code graph), and ranges. Everything it returns carries IDs, so the agent edits straight from the results.
  • Edit once. One edit call can change many files, and create, delete or rename them (those three only inside the project). Every part is checked first, and nothing is changed if any of them fails. Edits can replace or insert lines by ID, or do find/replace within a range, a file or a directory. Results show only the new lines plus their neighbours, a syntax check, and warnings for duplicated boundary lines and lost indentation.
  • Shell edits steered back. Models often rewrite files with a sed -i or a Python one-liner. The shellEdits setting decides what happens then: warn (default) lets the command run and tells the model to use edit next time, enforce refuses it with the edit call to make instead, off does nothing. Detection reads the command's text, so it is best effort: on a 217-command test set it flagged no ordinary command and missed some rarer spellings.
  • Live code graph via CodeGraph:
  • It is downloaded only after you agree in a first-run dialog (/codegraph-setup reopens it), then pinned to v1.6.2 and SHA-256 verified.
  • It installs to ~/.local/share/plusplus/codegraph.
  • It is re-synced after every change: this mod's edits, built-in Edit/Write, and Bash commands that write.
  • Projects are only synced if they already have a .codegraph/ folder; the mod never indexes a project itself.

Model router

Each task is graded for how much reasoning it needs (mechanical, routine, involved, hard) and sent to the cheapest model trusted with it: Haiku, Sonnet, Opus, or wherever you put the session for hard work. It never goes above your own model or effort.

  • Where it acts. A thread picks its model once, as it starts, and afterwards only moves up: a model's prompt cache is its own, so moving a long conversation down would make the new model write the whole context again. Effort follows each task freely, since changing it costs no cache. The savings therefore come from threads that start fresh: one-shot runs, subagents, and the agents of a dynamic workflow (Ultracode), each graded by its own task while the orchestrating thread keeps your seat.
  • What it leaves alone. An agent whose model or effort was set explicitly, a custom agent type, a fork, verdict stages (verify, judge, review), and any turn you ask to think hard.
  • The grader is the session's own small model by default (two short requests per task, about $0.0001). jev uses TypeSafe's Jev instead, which sends each task's text to api.typesafe.ai and needs a key.
  • Controls. /router setup opens the settings pane (mode, floor, grader, Jev key, live figures); /router prints what was routed and what it cost at list price; /router on | shadow | off; /router redo asks the last prompt again on your own model. shadow decides and reports without changing anything.
  • It can cost correctness. On the RefactorBench quick subset one wide multi-file rename that Opus solved was sent to Haiku and failed. Use shadow or the sonnet floor where that matters.

Spec and decision tracker

A per-project tree of records (areas, specs, decisions) that the model consults before it touches governed code and adds to when it makes a decision later sessions must respect. Nothing exists until you run /spec init.

  • Records surface on their own: the first time a thread reads or edits a file, the records governing it are attached to the tool result, one line each.
  • The spec tool reads the tree, looks up a file or an id, searches, and adds records. A record an agent adds is proposed until a person accepts it.
  • Storage is .plusplus/specs/ in the repository, made of immutable files named by the hash of their content. A change lands as a small text segment (one JSON line per change, readable in a pull request); /spec compact seals segments into compressed binary packs (raw DEFLATE; mod/tools/aesp.py reads them with nothing but Python). Files are only ever added or sealed, so branches merge through git without conflicts.
  • Commands work like git's: /spec status, /spec log [id], /spec show <id>, /spec diff [git ref], plus /spec accept, /spec drop, /spec export, /spec browse (a tree browser) and /spec stats. Branches, commits and merges stay git's.
  • /spec init asks the agent to survey the codebase and propose a first tree, or to interview you when the repository is empty; /spec init --bare does neither.

Install

At a Claude Code prompt in a terminal:

/plugin install plusplus --marketplace HEAPTRASH/plusplus

Answer y to add the marketplace, then pick a scope.

Settings (in the config menu, or under pluginConfigs in managed settings):

  • codegraph: ask or off. off means no prompt and no download.
  • codegraphMirror: a URL to download releases from instead of GitHub.
  • shellEdits: warn, enforce or off.
  • router: on, shadow or off; routerFloor: the cheapest model it may use; routerGrader: haiku or jev.
  • specs: auto, read (agents may read but not add) or off.

Develop

claude --plugin-dir mod          # run a session with the mod loaded from this folder
claude plugin validate mod       # what the engine would refuse
claude plugin test mod           # hooks/*.test.ts

mod/hooks/register.tsx is the hooks module; it wires in routing.tsx (router), specs.ts (tracker) and the panes in panes.tsx and ui.tsx. The pure logic is in core.ts (Myers diff, IDs, edits, the shell-edit judge), router.ts, spec.ts, pack.ts and deflate.ts.

Benchmarks (bench/)

bench/run.py runs one public suite under headless Claude, once per arm, and checks every run without a model.

python3 bench/fetch.py refactorbench            # download a suite's data into bench/data/, at a pinned revision
python3 bench/run.py refactorbench --selftest   # no model: each task must fail untouched and pass with its reference solution
python3 bench/run.py refactorbench --arms standard,anchored,routed

Main flags of run.py, with their defaults:

  • --arms standard,anchored: which arms to compare (below).
  • --tasks quick: the suite's fixed quick subset. Also all, a number N (the first N), or a comma-separated list of task ids.
  • --model sonnet, --effort (unset), --reps 2 (runs per task and arm), --jobs 3 (runs in parallel).
  • --budget 2 (dollars per run), --timeout 900 (seconds per run).
  • --tag v1: names the output folder, bench/runs/<suite>-<model>-<tag>/, which gets one transcript per run and rows.json.

Arms:

  • standard: the built-in Read and Edit.
  • anchored: the mod, router off.
  • routed: the mod with the router on, graded by the session's small model.
  • jev: the router graded by TypeSafe's Jev. Needs TYPESAFE_API_KEY in the environment.

Every arm also gets Grep and Glob, plus any built-in tool a task needs.

Suites (bench/suites/):

  • click: 5 hand-written edit tasks on click 8.1.7 (renames, replacements and two small changes). A pass is the task's own Python check, and every file still compiles.
  • orchestrate: 2 tasks that hand three of the click edits to subagents, or run them as a workflow with a verifier, so the router has agents to seat. A pass is all three edits passing their click checks. Uses the click data.
  • quixbugs: 40 classic algorithms from QuixBugs (Python half), each with a one-line defect; 14 in the quick subset. A pass is upstream's pytest file for that program.
  • canitedit: CanItEdit, edit one small Python file as instructed. 98 of the 105 problems, each as two tasks (descriptive and terse instruction); 15 in the quick subset. A pass is the edited file with the hidden tests appended exiting 0 within 15 seconds.
  • polyglot: the Python and JavaScript part of Aider's polyglot benchmark, 82 Exercism exercises to implement from a one-file stub; 16 in the quick subset. A pass is the exercise's own unit tests (pytest or jest), which the agent never sees, in one attempt.
  • refactor: Aider's refactoring benchmark, 88 tasks that move a method out of its class into a top-level function in one real Python file of 91 to 22,390 lines; 16 in the quick subset. A pass is upstream's syntax-tree node-count test, plus a check that the method was moved rather than copied and the file compiles.
  • refactorbench: RefactorBench, 100 multi-file refactorings of nine Python repositories; 18 in the quick subset. A pass is the authors' test, which parses the edited source for the expected shape, and no rewritten file has stopped compiling.
  • swebench: SWE-bench Verified, real GitHub issues from Python projects, without the psf/requests ones; 10 in the quick subset. A pass is "resolved" from the official harness in Docker. Every instance pulls its own image of about 1 GB, so run the quick subset or named ids, not all.

The checks of quixbugs, canitedit, polyglot, refactorbench and swebench run through uv; polyglot also needs node and npm, and swebench needs git and a running Docker.

Also in bench/:

  • static.ts: replays real commits through both edit formats and counts tokens. It uses o200k as a proxy tokenizer, not Claude's.
  • tokprobe/: a small mod that measures token counts with Claude's real tokenizer (via model.complete usage).

Downloaded data (bench/data/) and agent transcripts (bench/runs/) are not committed.

Results

RefactorBench quick subset: 18 multi-file refactoring tasks, one run per arm. Logs are in bench/results/.

Session modelBuilt-in toolsThe modMod + routerMod + router graded by Jev
Sonnet 5.513/18 for $1.3614/18 for $0.7713/18 for $0.61not run
Opus 5.515/18 for $2.4815/18 for $1.8214/18 for $1.1413/18 for $1.03
  • The mod alone is 43% (Sonnet) and 27% (Opus) cheaper than the built-in tools at the same or a better score.
  • The router takes a further 21% to 37% off and lost one task in each run: a multi-file rename sent to Haiku that the session's own model solves.
  • This is a single repetition, so a one-task difference between arms is noise; three tasks fail on every arm.
  • The earlier click runs (bench/results/live-*.log) predate the router.
Source 2 files
hooks/register.ts 77 lines
1// /tokprobe <model> <out.json> <sample N, 0 = all> [files...]: counts tokens with the real Claude tokenizer
2// (input_tokens of a 1-token completion), since Claude's tokenizer is not public.
3import type { EngineInterface, Register } from 'claude-code'
4import { WORDS } from './words'
5
6const gcd = (a: number, b: number): number => (b ? gcd(b, a % b) : a)
7
8async function tok($: EngineInterface, model: string, prompt: string): Promise<number> {
9  const r = await $.model.complete({ model, prompt, maxTokens: 1 })
10  if (!r.usage) throw new Error(`no usage: ${JSON.stringify(r)}`)
11  return r.usage.input_tokens
12}
13
14// extra tokens the words cost over single-token "A", split down until each word is known
15async function extra($: EngineInterface, model: string, ws: string[], out: Record<string, number>): Promise<void> {
16  const body = (f: (w: string) => string) => 'Ok\n' + ws.map(w => f(w) + '§x = 1').join('\n')
17  const [t, ref] = await Promise.all([tok($, model, body(w => w)), tok($, model, body(() => 'A'))])
18  const d = t - ref
19  if (d === 0 || ws.length === 1) return void ws.forEach(w => (out[w] = ws.length === 1 ? d : 0))
20  const half = ws.length >> 1
21  await extra($, model, ws.slice(0, half), out)
22  await extra($, model, ws.slice(half), out)
23}
24
25export const register: Register = on => {
26  on('session.start', async ($, e, next) => {
27    await $.command.register({ name: 'tokprobe', description: 'Count Claude tokens of anchor words and read formats' })
28    return next(e)
29  })
30
31  on('command.run', { command: 'tokprobe' }, async ($, e) => {
32    const [model = 'claude-opus-5-5', outPath = 'tokprobe.json', sample = '0', ...files] = e.args.trim().split(/\s+/)
33    // sample=N probes every (len/N)-th word only, for a quick estimate
34    const pick = sample === 'fmt' ? [] : Number(sample) ? WORDS.filter((_, i) => i % Math.ceil(WORDS.length / Number(sample)) === 0) : WORDS
35    const words: Record<string, number> = {}
36    const batches = []
37    for (let i = 0; i < pick.length; i += 16) batches.push(pick.slice(i, i + 16))
38    for (let i = 0; i < batches.length; i += 8) // ponytail: 8 batches at a time, gentle on rate limits
39      await Promise.all(batches.slice(i, i + 8).map(b => extra($, model, b, words)))
40
41    if (sample.startsWith('items:')) { // per-item cost at line start, before the delimiter
42      const items = sample.slice(6).split(',')
43      const base = await tok($, model, 'Ok\n§x = 1\n§y = 2')
44      const cost: Record<string, number> = {}
45      for (let i = 0; i < items.length; i += 16)
46        await Promise.all(items.slice(i, i + 16).map(async x => {
47          cost[x] = ((await tok($, model, `Ok\n${x}§x = 1\n${x}§y = 2`)) - base) / 2
48        }))
49      await $.fs.write(outPath, JSON.stringify(cost, null, 1))
50      return { text: JSON.stringify(cost) }
51    }
52    const formats: Record<string, Record<string, number>> = {}
53    const W = (i: number) => WORDS[(i * 1013) % WORDS.length]!
54    for (const f of files) {
55      const lines = (await $.fs.read(f)).replace(/\n$/, '').split('\n')
56      const pre = (p: (i: number) => string) => lines.map((l, i) => p(i) + l).join('\n')
57      const L = lines.length, from = L + Math.max(L, 100) + 1 // same scheme as the mod's fresh()
58      let st = Math.max(1, Math.floor(L * 0.618))
59      while (gcd(st, L) !== 1) st++
60      const fmt: Record<string, string> = {
61        raw: lines.join('\n'),
62        'Read (cat -n)': pre(i => `${String(i + 1).padStart(6)}\t`),
63        'Word§ (v1-v3)': pre(i => `${W(i)}§`),
64        'ID§ (v4)': pre(i => `${from + ((i * st) % L)}§`),
65        'no indent': lines.map(l => l.trimStart()).join('\n'),
66        'tabs': lines.map(l => l.replace(/^( {4})+/, m => '\t'.repeat(m.length / 4))).join('\n'),
67      }
68      const raw = await tok($, model, fmt.raw!)
69      formats[f] = Object.fromEntries(await Promise.all(Object.entries(fmt).map(async ([k, s]) =>
70        [k, k === 'raw' ? raw : +(((await tok($, model, s)) - raw) / lines.length).toFixed(2)])))
71    }
72    const single = Object.values(words).filter(x => x === 0).length
73    await $.fs.write(outPath, JSON.stringify({ model, single, total: pick.length, words, formats }, null, 1))
74    return { text: `${model}: ${single}/${pick.length} sampled anchor words are single tokens; extra tokens per line by format\n${JSON.stringify(formats, null, 1)}` }
75  })
76}
77
hooks/words.ts 3 lines
1// Single-token words under o200k_base (tiktoken), from /usr/share/dict/words. Regenerate, do not edit.
2export const WORDS: readonly string[] = ["Ability", "Able", "Abort", "About", "Above", "Absent", "Absolute", "Abstract", "Academic", "Accent", "Accept", "Accepted", "Access", "Accessory", "According", "Accordion", "Account", "Accuracy", "Ache", "Acquire", "Across", "Action", "Activate", "Activator", "Active", "Activity", "Actor", "Actual", "Actually", "Adapt", "Adapter", "Adaptive", "Adaptor", "Added", "Adder", "Addition", "Address", "Adjacent", "Adjust", "Admin", "Admission", "Adobe", "Adornment", "Adult", "Advance", "Advanced", "Adventure", "Advert", "Advice", "Advisor", "Affected", "Affiliate", "Affine", "Affinity", "After", "Again", "Against", "Agency", "Agenda", "Agent", "Aggregate", "Agora", "Agree", "Agreement", "Ahead", "Aircraft", "Airport", "Alan", "Alarm", "Album", "Alchemy", "Alcohol", "Alert", "Algorithm", "Alias", "Alien", "Align", "Alignment", "Alive", "Alliance", "Allocate", "Allocator", "Allow", "Allowance", "Almost", "Along", "Alpha", "Alphabet", "Already", "Alright", "Also", "Alter", "Altern", "Alternate", "Although", "Altitude", "Always", "Amazing", "Amber", "Ambient", "Amen", "Ammo", "Among", "Amount", "Amplitude", "Anal", "Analyse", "Analysis", "Analytics", "Analyze", "Analyzer", "Ancestor", "Anchor", "Anda", "Android", "Angel", "Angle", "Angular", "Animal", "Animate", "Animated", "Animating", "Animation", "Animator", "Anime", "Anna", "Annual", "Anon", "Anonymous", "Another", "Answer", "Ante", "Anterior", "Antes", "Anti", "Anybody", "Anyone", "Anything", "Anyway", "Anywhere", "Apache", "Apart", "Apartment", "Appear", "Append", "Apple", "Applicant", "Applied", "Apply", "Approval", "Approve", "Arch", "Architect", "Archive", "Area", "Arena", "Argument", "Armor", "Army", "Around", "Arrange", "Array", "Arrival", "Arrow", "Article", "Artifact", "Artist", "Ascending", "Ascii", "Aside", "Aspect", "Assembler", "Assembly", "Assert", "Assertion", "Assess", "Asset", "Assets", "Assign", "Assigned", "Assist", "Assistant", "Associate", "Atlantic", "Atlas", "Atmos", "Atom", "Atomic", "Attach", "Attached", "Attack", "Attempt", "Attend", "Attention", "Attorney", "Attribute", "Auction", "Audience", "Audio", "Audit", "August", "Aura", "Author", "Authority", "Authorize", "Auto", "Automatic", "Avail", "Available", "Aval", "Average", "Avoid", "Await", "Award", "Aware", "Away", "Awesome", "Axes", "Axis", "Azure", "Baby", "Bachelor", "Back", "Backdrop", "Backing", "Backup", "Backward", "Badge", "Bake", "Balance", "Balanced", "Balancer", "Ball", "Banco", "Band", "Bang", "Bank", "Banner", "Barcelona", "Bare", "Barn", "Barrier", "Barry", "Base", "Based", "Bases", "Basic", "Basically", "Basis", "Basket", "Bass", "Batch", "Bath", "Bathroom", "Batman", "Batt", "Battery", "Battle", "Beach", "Beacon", "Beam", "Bean", "Bear", "Bearer", "Bearing", "Beat", "Beaut", "Beautiful", "Beauty", "Because", "Become", "Bedroom", "Been", "Beer", "Before", "Begin", "Beginning", "Behavior", "Behind", "Being", "Believe", "Bell", "Belle", "Below", "Bench", "Benefit", "Benjamin", "Bent", "Bere", "Berlin", "Berry", "Besides", "Best", "Beta", "Beth", "Better", "Between", "Beyond", "Bias", "Bien", "Bike", "Bill", "Billing", "Billy", "Binary", "Bind", "Binder", "Binding", "Biography", "Biome", "Bird", "Birth", "Birthday", "Black", "Blade", "Blank", "Blast", "Blend", "Bless", "Blind", "Blink", "Blob", "Bloc", "Block", "Blocked", "Blocking", "Blood", "Bloom", "Blue", "Blueprint", "Blur", "Board", "Boat", "Body", "Bold", "Bolt", "Bomb", "Bond", "Bone", "Bonus", "Book", "Booked", "Booking", "Bookmark", "Bool", "Boom", "Boost", "Boot", "Bootstrap", "Border", "Born", "Borrow", "Boss", "Boston", "Both", "Bottle", "Bottom", "Bought", "Bounce", "Bound", "Boundary", "Bounding", "Bout", "Brace", "Bracket", "Brad", "Brain", "Brains", "Brake", "Branch", "Brand", "Bravo", "Brazil", "Bread", "Break", "Breaker", "Breakfast", "Breaking", "Breed", "Brick", "Bride", "Bridge", "Brief", "Bright", "Bring", "Brit", "Broad", "Broadcast", "Broken", "Broker", "Brook", "Brother", "Brown", "Browse", "Browser", "Browsing", "Brush", "Bubble", "Buck", "Bucket", "Buddy", "Budget", "Buff", "Buffer", "Build", "Builder", "Building", "Built", "Bulk", "Bull", "Bullet", "Bund", "Bundle", "Burn", "Burst", "Bush", "Business", "Bust", "Busy", "Butter", "Button", "Buttons", "Buyer", "Buzz", "Cable", "Cache", "Cain", "Cake", "Calculate", "Calendar", "Call", "Callable", "Caller", "Calling", "Camb", "Camel", "Camera", "Camp", "Campaign", "Campo", "Campus", "Canada", "Cancel", "Cancer", "Cand", "Candidate", "Candy", "Cannot", "Canon", "Canonical", "Cant", "Canvas", "Capacity", "Cape", "Capital", "Captain", "Caption", "Captor", "Capture", "Caracter", "Carbon", "Card", "Care", "Career", "Caret", "Carga", "Cargo", "Carl", "Carol", "Carr", "Carrier", "Carry", "Cart", "Carte", "Cascade", "Case", "Cash", "Casino", "Cass", "Cast", "Caster", "Casting", "Castle", "Catalogue", "Catch", "Cate", "Category", "Caught", "Cause", "Celebrate", "Celebrity", "Cell", "Cent", "Center", "Centered", "Central", "Century", "Certain", "Certainly", "Certified", "Chain", "Chair", "Challenge", "Cham", "Champ", "Champion", "Chance", "Chang", "Change", "Changer", "Channel", "Chaos", "Chap", "Chapter", "Char", "Character", "Charge", "Charging", "Charm", "Chart", "Chat", "Cheap", "Check", "Checked", "Checker", "Checkout", "Chef", "Chemical", "Cheque", "Cherry", "Chess", "Chest", "Chevron", "Chicken", "Chief", "Child", "Children", "Chile", "China", "Chip", "Chocolate", "Choice", "Choose", "Chooser", "Choosing", "Chord", "Chosen", "Chrome", "Chuck", "Chunk", "Church", "Cinema", "Cipher", "Circle", "Circuit", "Circular", "Cisco", "Citation", "Citizen", "City", "Civil", "Claim", "Clamp", "Clan", "Clark", "Claro", "Class", "Classes", "Classic", "Clause", "Clave", "Clay", "Clean", "Cleaner", "Cleaning", "Cleanup", "Clear", "Clearly", "Click", "Client", "Climate", "Clinic", "Clinical", "Clip", "Clique", "Clock", "Clone", "Closable", "Close", "Closed", "Closer", "Closure", "Cloud", "Club", "Cluster", "Coach", "Coal", "Cock", "Code", "Coder", "Coffee", "Coin", "Cold", "Cole", "Coll", "Collapse", "Collect", "Collected", "Collector", "College", "Collision", "Colon", "Color", "Colorado", "Colored", "Colors", "Column", "Comb", "Combat", "Combine", "Combined", "Come", "Comedy", "Comfort", "Comic", "Coming", "Comma", "Command", "Commander", "Comment", "Commerce", "Commit", "Committee", "Commodity", "Common", "Commons", "Community", "Compact", "Company", "Compare", "Comparer", "Compart", "Compass", "Compile", "Compiler", "Complaint", "Complete", "Complex", "Component", "Compose", "Composer", "Composite", "Compound", "Compress", "Compute", "Computer", "Concept", "Concern", "Concert", "Concrete", "Cond", "Condition", "Conduct", "Cone", "Configure", "Confirm", "Confirmed", "Conflict", "Congress", "Conn", "Connect", "Connected", "Connector", "Connexion", "Consensus", "Consent", "Consider", "Console", "Constant", "Construct", "Consult", "Consume", "Consumer", "Contact", "Contain", "Container", "Conte", "Content", "Contents", "Contest", "Context", "Continue", "Contour", "Contra", "Contract", "Contrast", "Control", "Convert", "Converted", "Converter", "Cook", "Cooking", "Cool", "Cooling", "Copied", "Copper", "Copy", "Copyright", "Cord", "Core", "Corm", "Corn", "Corner", "Corona", "Corp", "Corporate", "Corpus", "Correct", "Cost", "Costa", "Could", "Council", "Count", "Counter", "Counting", "Country", "County", "Coupon", "Courier", "Course", "Court", "Courtesy", "Cover", "Coverage", "Covered", "Covid", "Craft", "Crash", "Crawler", "Crazy", "Cream", "Creat", "Create", "Creation", "Creative", "Creator", "Creature", "Credit", "Crew", "Crime", "Criteria", "Criterion", "Critical", "Crop", "Cross", "Crow", "Crunch", "Crusher", "Crypt", "Crystal", "Cube", "Cubit", "Cuisine", "Cull", "Cult", "Culture", "Curl", "Curr", "Currency", "Current", "Currently", "Cursor", "Curt", "Curve", "Custom", "Customer", "Cute", "Cycle", "Cylinder", "Daddy", "Daemon", "Daily", "Damage", "Dance", "Dang", "Danger", "Dank", "Dark", "Dash", "Dashboard", "Data", "Date", "Dating", "Datum", "Days", "Dead", "Deadline", "Deal", "Dealer", "Dean", "Dear", "Death", "Debit", "Debt", "Decay", "Decimal", "Decision", "Deck", "Declare", "Declared", "Decode", "Decorator", "Decrease", "Deep", "Default", "Defense", "Deferred", "Define", "Defined", "Degree", "Delay", "Delegate", "Delete", "Deletion", "Delimiter", "Deliver", "Delivery", "Dell", "Delta", "Demand", "Dense", "Density", "Dent", "Dental", "Depart", "Departure", "Depend", "Dependent", "Depending", "Deploy", "Deposit", "Depot", "Depth", "Dere", "Derived", "Derm", "Dern", "Describe", "Design", "Designed", "Designer", "Desired", "Desk", "Despite", "Dess", "Destroy", "Detach", "Detached", "Detail", "Detailed", "Detect", "Detection", "Detector", "Determine", "Develop", "Developer", "Deviation", "Device", "Diagnosis", "Diagonal", "Diagram", "Dial", "Dialect", "Dialogue", "Diameter", "Diamond", "Diary", "Dice", "Dick", "Diet", "Differ", "Different", "Diffuse", "Digest", "Digit", "Digital", "Dimension", "Dining", "Dinner", "Dire", "Direct", "Directed", "Direction", "Directive", "Director", "Directory", "Dirty", "Disable", "Disabled", "Disappear", "Disc", "Discard", "Discord", "Discount", "Discover", "Discovery", "Discrete", "Discuss", "Disease", "Dish", "Disk", "Dismiss", "Dispatch", "Display", "Displayed", "Dispose", "Disposed", "Distance", "Distinct", "District", "Dive", "Divers", "Divide", "Dividend", "Divider", "Division", "Dock", "Docker", "Doctor", "Doctrine", "Document", "Does", "Dogs", "Doing", "Dollar", "Domain", "Domestic", "Donate", "Donation", "Done", "Dong", "Donna", "Dont", "Door", "Dorm", "Dose", "Double", "Down", "Draft", "Drag", "Dragged", "Dragging", "Dragon", "Drain", "Drama", "Draw", "Drawable", "Drawer", "Drawing", "Dream", "Dress", "Drink", "Drive", "Driven", "Driver", "Driving", "Drone", "Drop", "Drug", "Drupal", "Dual", "Duck", "Duff", "Dummy", "Dump", "Dung", "Dungeon", "Duplicate", "Duration", "During", "Dust", "Dutch", "Duty", "Dynamic", "Dynamics", "Each", "Early", "Earn", "Earth", "Ease", "East", "Eastern", "Easy", "Eating", "Echo", "Economic", "Edge", "Edit", "Edition", "Editor", "Editorial", "Education", "Effect", "Effective", "Effects", "Eight", "Either", "Elastic", "Elect", "Election", "Electric", "Electron", "Elegant", "Element", "Elevation", "Eligible", "Elite", "Elle", "Ellipse", "Else", "Embed", "Emergency", "Emission", "Emit", "Emitter", "Emma", "Emotion", "Empire", "Employ", "Employee", "Employer", "Empty", "Enable", "Enchant", "Encode", "Encore", "Encounter", "Encrypt", "Ended", "Ending", "Enemy", "Energy", "Engine", "Engineer", "Enhanced", "Enjoy", "Enough", "Enroll", "Ensure", "Enter", "Entering", "Entire", "Entity", "Entrance", "Entropy", "Entry", "Envelope", "Epic", "Episode", "Epoch", "Equal", "Equality", "Equation", "Equip", "Equipment", "Erase", "Eric", "Error", "Escape", "Escort", "Especial", "Essay", "Essential", "Estado", "Estate", "Estimate", "Estimator", "Ether", "Evaluate", "Even", "Event", "Ever", "Every", "Everybody", "Everyone", "Evidence", "Evolution", "Exact", "Exactly", "Exam", "Example", "Excel", "Excelente", "Excellent", "Except", "Exception", "Excerpt", "Exchange", "Exclude", "Exclusive", "Execute", "Executed", "Execution", "Executive", "Executor", "Exercise", "Exist", "Exit", "Expand", "Expanded", "Expansion", "Expect", "Expense", "Expert", "Expire", "Expiry", "Explain", "Explicit", "Explore", "Explorer", "Explosion", "Exponent", "Export", "Exporter", "Expose", "Exposure", "Express", "Extend", "Extended", "Extension", "Extent", "Exterior", "Extern", "External", "Extra", "Extract", "Extractor", "Extreme", "Fabric", "Facade", "Face", "Facet", "Facility", "Facing", "Fact", "Faction", "Factor", "Factory", "Faculty", "Fade", "Fail", "Failure", "Fair", "Faith", "Fake", "Fall", "Fallback", "False", "Family", "Fancy", "Fant", "Fantastic", "Fantasy", "Fare", "Farm", "Fashion", "Fast", "Fatal", "Father", "Fault", "Favor", "Favorite", "Fear", "Feat", "Feature", "Featured", "Federal", "Feed", "Feedback", "Feel", "Feeling", "Feign", "Female", "Fence", "Fern", "Fest", "Festival", "Fetch", "Fetched", "Fetcher", "Fetching", "Fiber", "Field", "Fight", "Figure", "File", "Fill", "Filled", "Film", "Filter", "Filtering", "Final", "Finalize", "Finally", "Finance", "Financial", "Find", "Finder", "Finding", "Fine", "Finger", "Finish", "Finished", "Finite", "Fire", "Firewall", "Firm", "First", "Firstly", "Fiscal", "Fish", "Fishing", "Fitness", "Five", "Fixed", "Fixture", "Fizz", "Flag", "Flash", "Flat", "Flatten", "Flavor", "Fleet", "Flex", "Flexible", "Flight", "Flip", "Float", "Floating", "Flood", "Floor", "Flow", "Flower", "Fluid", "Flush", "Flutter", "Flux", "Flying", "Focus", "Focusable", "Fold", "Folder", "Follow", "Follower", "Following", "Fond", "Font", "Food", "Foot", "Football", "Footer", "Forbidden", "Force", "Forced", "Ford", "Fore", "Forecast", "Foreign", "Forest", "Forever", "Forge", "Forgery", "Forget", "Forgot", "Fork", "Form", "Formal", "Format", "Formation", "Former", "Formula", "Fort", "Forum", "Forward", "Found", "Founder", "Four", "Fourth", "Fraction", "Fragment", "Frame", "Framework", "Franc", "Frank", "Free", "Freedom", "Freeze", "Frequency", "Fresh", "Friend", "Friendly", "From", "Front", "Frozen", "Fruit", "Fuel", "Full", "Fully", "Function", "Fund", "Funds", "Funny", "Furniture", "Further", "Fuse", "Fusion", "Future", "Gain", "Galaxy", "Gall", "Gallery", "Game", "Gaming", "Gamma", "Gang", "Garage", "Garden", "Gast", "Gate", "Gateway", "Gather", "Gauge", "Gear", "Geek", "Gender", "Gene", "General", "Generally", "Generate", "Generator", "Generic", "Genesis", "Genome", "Genre", "Gent", "Geometry", "German", "Gest", "Gestion", "Gesture", "Getter", "Getting", "Ghost", "Gift", "Gill", "Girl", "Give", "Given", "Giving", "Glad", "Glass", "Global", "Gloss", "Glow", "Glue", "Glyph", "Goal", "Going", "Gold", "Golden", "Golf", "Gone", "Good", "Goods", "Govern", "Governor", "Grab", "Grace", "Grad", "Grade", "Gradient", "Graduate", "Gram", "Grammar", "Grand", "Grant", "Graph", "Graphic", "Graphics", "Grass", "Gratis", "Gravity", "Gray", "Great", "Greater", "Green", "Greeting", "Grey", "Grid", "Grinding", "Grip", "Gross", "Ground", "Group", "Grouped", "Grouping", "Grow", "Growing", "Growth", "Guard", "Guardian", "Guess", "Guest", "Guide", "Guild", "Guru", "Habit", "Hack", "Hair", "Half", "Hall", "Halo", "Hammer", "Hand", "Handle", "Handled", "Handler", "Handling", "Handshake", "Happy", "Hard", "Hardware", "Harmony", "Harness", "Harry", "Hart", "Harvest", "Hash", "Hasher", "Hasta", "Have", "Head", "Header", "Heading", "Headline", "Heal", "Healing", "Health", "Healthy", "Heap", "Hear", "Heart", "Heartbeat", "Heat", "Heather", "Heating", "Heavy", "Heel", "Height", "Hell", "Hello", "Helmet", "Help", "Helper", "Helpful", "Helping", "Hence", "Henry", "Here", "Hero", "Hibernate", "Hidden", "Hide", "Hierarchy", "High", "Higher", "Highest", "Highlight", "Highly", "Hill", "Hint", "Hire", "Hist", "Histogram", "Historic", "History", "Hive", "Hold", "Holder", "Holding", "Hole", "Holiday", "Holy", "Home", "Homework", "Honda", "Honestly", "Honey", "Hong", "Honor", "Hook", "Hope", "Hopefully", "Hora", "Horn", "Horse", "Hospital", "Host", "Hosting", "Hotel", "Hour", "Hourly", "House", "Housing", "Hover", "Howdy", "However", "Huge", "Hull", "Human", "Humidity", "Hung", "Hybrid", "Hyper", "Icon", "Idea", "Ideal", "Identify", "Identity", "Idle", "Ignore", "Illegal", "Image", "Imagine", "Immediate", "Immutable", "Impact", "Implement", "Implicit", "Import", "Important", "Importer", "Improve", "Impulse", "Inactive", "Inbound", "Incident", "Include", "Included", "Inclusive", "Income", "Incoming", "Incorrect", "Increase", "Increment", "Indeed", "Indent", "Indented", "Index", "Indexed", "Indexer", "Indic", "Indicator", "Indices", "Indirect", "Indoor", "Industry", "Infer", "Inference", "Infinite", "Infinity", "Inflater", "Inform", "Informer", "Infra", "Ingress", "Initial", "Initially", "Inject", "Injection", "Injector", "Inner", "Input", "Inquiry", "Insert", "Inserted", "Insertion", "Inset", "Inside", "Insight", "Inspect", "Inspector", "Inspired", "Install", "Installer", "Instance", "Instant", "Instead", "Institute", "Insurance", "Integer", "Integral", "Integrity", "Intensity", "Intent", "Inter", "Interact", "Intercept", "Interest", "Interface", "Interior", "Intern", "Internal", "Interpret", "Interrupt", "Intersect", "Interval", "Interview", "Into", "Intrinsic", "Introduce", "Invalid", "Invariant", "Invent", "Inventory", "Inverse", "Invert", "Invest", "Investor", "Invisible", "Invite", "Invoice", "Invoke", "Invoker", "Iron", "Island", "Isolation", "Issue", "Issuer", "Item", "Iter", "Iterable", "Iteration", "Jack", "Jake", "Jane", "Japan", "Jazz", "Jean", "Jeff", "Jenny", "Jerry", "Jess", "Jimmy", "Join", "Joining", "Joint", "Jordan", "Josh", "Journal", "Journey", "Judge", "Jump", "June", "Junior", "Just", "Justice", "Kala", "Kana", "Kath", "Keep", "Keeper", "Keeping", "Kelly", "Kent", "Kernel", "Keyboard", "Kick", "Kill", "Kind", "King", "Kitchen", "Knife", "Knight", "Know", "Knowing", "Knowledge", "Known", "Kung", "Kyle", "Label", "Labor", "Ladies", "Lady", "Lake", "Lambda", "Lamp", "Land", "Landing", "Landscape", "Lane", "Language", "Large", "Larry", "Laser", "Last", "Lastly", "Latch", "Late", "Latency", "Later", "Latest", "Latitude", "Laugh", "Launch", "Launcher", "Laundry", "Laur", "Laura", "Layer", "Layout", "Lazy", "Lead", "Leader", "Leading", "Leaf", "League", "Leak", "Lean", "Leap", "Lear", "Learn", "Learning", "Lease", "Least", "Leather", "Leave", "Leaves", "Leaving", "Lecture", "Ledger", "Leer", "Lees", "Left", "Legacy", "Legal", "Legend", "Legenda", "Lemma", "Length", "Lens", "Less", "Lesson", "Letter", "Level", "Lever", "Lewis", "Liber", "Library", "License", "Licensed", "Lien", "Lieu", "Life", "Lifetime", "Lift", "Light", "Lighting", "Lightning", "Like", "Limit", "Limited", "Limiter", "Line", "Linea", "Linear", "Ling", "Linha", "Link", "Linked", "Links", "Lint", "Lion", "Liquid", "Liquidity", "Lire", "List", "Listed", "Listen", "Listener", "Listening", "Lister", "Listing", "Lite", "Liter", "Literal", "Lith", "Little", "Live", "Living", "Livre", "Load", "Loaded", "Loader", "Loading", "Loan", "Lobby", "Local", "Locale", "Locate", "Location", "Locator", "Lock", "Locked", "Locker", "Logged", "Logger", "Logging", "Logic", "Logical", "Login", "Logo", "Long", "Longitude", "Look", "Looking", "Lookup", "Loop", "Looper", "Loose", "Loot", "Lord", "Lore", "Lors", "Lose", "Loss", "Lost", "Lots", "Lottery", "Love", "Lovely", "Lower", "Luck", "Luckily", "Lucky", "Lucy", "Luke", "Lunch", "Luxury", "Machine", "Macro", "Made", "Magazine", "Mage", "Magic", "Magnitude", "Mail", "Mailbox", "Mailer", "Main", "Maint", "Maintain", "Major", "Make", "Maker", "Making", "Male", "Malformed", "Mall", "Mana", "Manage", "Manager", "Mand", "Mandatory", "Mang", "Manifest", "Mant", "Manual", "Many", "Mapper", "Marc", "March", "Marco", "Margin", "Maria", "Marine", "Mark", "Markdown", "Marked", "Marker", "Market", "Marketing", "Markup", "Marriage", "Marshal", "Mart", "Martin", "Marvel", "Mary", "Mash", "Mask", "Masked", "Mass", "Massage", "Master", "Match", "Matcher", "Matching", "Mate", "Mater", "Material", "Math", "Matrices", "Matrix", "Matter", "Maximum", "Maybe", "Mayor", "Maze", "Meal", "Mean", "Meaning", "Meanwhile", "Measure", "Measured", "Media", "Median", "Mediator", "Medic", "Medical", "Medicine", "Medium", "Meet", "Meeting", "Mein", "Member", "Memo", "Memory", "Meng", "Mental", "Mention", "Menu", "Merchant", "Merge", "Merk", "Mesa", "Mesh", "Mess", "Message", "Messenger", "Meta", "Metal", "Meteor", "Meter", "Method", "Metric", "Metrics", "Michigan", "Micro", "Middle", "Migration", "Mike", "Mileage", "Military", "Milk", "Mill", "Million", "Millions", "Mime", "Mind", "Mine", "Miner", "Minimal", "Minimum", "Mining", "Minister", "Minor", "Mint", "Minus", "Minute", "Mirror", "Mismatch", "Miss", "Missing", "Mission", "Mist", "Mitt", "Mixed", "Mixer", "Mnemonic", "Mobile", "Mock", "Modal", "Mode", "Model", "Moderator", "Modern", "Modifier", "Modify", "Module", "Modulo", "Moment", "Momentum", "Monad", "Money", "Monitor", "Monkey", "Mono", "Monster", "Monte", "Month", "Monthly", "Mood", "Moon", "More", "Moreover", "Morgan", "Morning", "Morph", "Mort", "Mortgage", "Most", "Mostly", "Mother", "Motion", "Motor", "Mount", "Mountain", "Mounted", "Mouse", "Move", "Movement", "Mover", "Movie", "Moving", "Much", "Mult", "Multiple", "Multiply", "Muse", "Museum", "Music", "Must", "Mutable", "Mutation", "Mute", "Myst", "Naam", "Nach", "Name", "Naming", "Nancy", "Narr", "Natal", "Nation", "National", "Native", "Natural", "Nature", "Navigate", "Navigator", "Near", "Nearby", "Nearest", "Nearly", "Necessary", "Need", "Needs", "Neem", "Negative", "Neighbor", "Neither", "Nest", "Network", "Neuron", "Neutral", "Never", "News", "Newton", "Next", "Nice", "Nick", "Nickname", "Night", "Nimbus", "Nine", "Nobody", "Node", "Noise", "Nome", "Nonce", "None", "Norm", "Normal", "Normalize", "Normally", "North", "Northern", "Notation", "Note", "Notebook", "Nothing", "Notice", "Notifier", "Notify", "Nous", "Nova", "Novel", "Nowadays", "Null", "Nullable", "Number", "Numero", "Nutrition", "Object", "Objective", "Observe", "Observer", "Obstacle", "Obviously", "Ocean", "Odds", "Offer", "Offering", "Office", "Officer", "Official", "Offset", "Often", "Older", "Omega", "Once", "Only", "Ontology", "Opacity", "Opaque", "Open", "Opening", "Opera", "Operand", "Operate", "Operating", "Operation", "Operator", "Opinion", "Opponent", "Optimal", "Optimize", "Option", "Optional", "Oracle", "Orange", "Orbit", "Order", "Ordered", "Ordinal", "Organ", "Organic", "Organizer", "Orient", "Origin", "Original", "Other", "Otherwise", "Outbound", "Outcome", "Outdoor", "Outer", "Outgoing", "Outlet", "Outline", "Outlined", "Output", "Outside", "Oval", "Over", "Overall", "Overflow", "Overlap", "Overlay", "Override", "Overview", "Overwrite", "Owner", "Ownership", "Pacific", "Pack", "Package", "Packet", "Padding", "Page", "Pager", "Pagina", "Pain", "Paint", "Painter", "Painting", "Pair", "Pais", "Palette", "Palm", "Pand", "Pane", "Panel", "Pant", "Papa", "Paper", "Paperback", "Para", "Paragraph", "Parallel", "Param", "Parameter", "Parcel", "Pare", "Paren", "Parent", "Parity", "Park", "Parking", "Parse", "Parser", "Part", "Partial", "Particle", "Partition", "Partner", "Party", "Pass", "Passe", "Passenger", "Passing", "Passive", "Passport", "Password", "Past", "Paste", "Patch", "Patent", "Path", "Patient", "Pattern", "Pause", "Pawn", "Payment", "Payroll", "Peace", "Peak", "Pear", "Pedro", "Peek", "Peer", "Penalty", "Pend", "Pendant", "Pending", "Pent", "People", "Percent", "Perfect", "Perform", "Perhaps", "Period", "Periodic", "Perm", "Permanent", "Permit", "Persist", "Person", "Persona", "Personal", "Personnel", "Pert", "Peso", "Pete", "Peter", "Petit", "Phase", "Phoenix", "Phone", "Phot", "Photo", "Photon", "Phrase", "Physical", "Physics", "Pick", "Picked", "Picker", "Pickup", "Picture", "Piece", "Pier", "Pile", "Pilot", "Ping", "Pink", "Pinned", "Pipe", "Pipeline", "Pitch", "Pivot", "Pizza", "Place", "Placement", "Plain", "Plan", "Plane", "Planet", "Planner", "Plant", "Plastic", "Plat", "Plate", "Platform", "Play", "Playable", "Playback", "Player", "Please", "Plot", "Plug", "Plural", "Plus", "Pocket", "Point", "Pointer", "Poker", "Polar", "Pole", "Police", "Policy", "Political", "Politics", "Poll", "Polling", "Poly", "Polygon", "Pont", "Pool", "Poor", "Popover", "Popular", "Populate", "Port", "Portable", "Portal", "Portfolio", "Portlet", "Portrait", "Pose", "Position", "Positive", "Poss", "Possible", "Post", "Postal", "Posted", "Poster", "Posting", "Potential", "Potion", "Pour", "Power", "Powered", "Practice", "Praise", "Prayer", "Precis", "Precision", "Predicate", "Predict", "Prefab", "Prefer", "Preferred", "Prefix", "Prelude", "Premier", "Premium", "Prep", "Prepare", "Prepared", "Presence", "Present", "Presenter", "Preset", "President", "Press", "Pressure", "Prest", "Pretty", "Prevent", "Preview", "Previous", "Price", "Prim", "Prima", "Primary", "Prime", "Primer", "Primitive", "Prince", "Princess", "Principal", "Print", "Printable", "Printed", "Printer", "Printing", "Prior", "Priority", "Privacy", "Private", "Privilege", "Prize", "Prob", "Probably", "Probe", "Problem", "Procedure", "Proceed", "Process", "Processor", "Prod", "Produce", "Produced", "Producer", "Product", "Prof", "Professor", "Profile", "Profiler", "Profit", "Prog", "Program", "Progress", "Project", "Promise", "Promotion", "Prompt", "Proof", "Prop", "Proper", "Property", "Proposal", "Props", "Prote", "Protect", "Protein", "Proto", "Protocol", "Prototype", "Provide", "Provided", "Provider", "Providing", "Province", "Provision", "Proxy", "Psalm", "Pseudo", "Psych", "Public", "Publish", "Publisher", "Pull", "Pulse", "Pump", "Punch", "Purchase", "Pure", "Purple", "Purpose", "Push", "Puzzle", "Python", "Quad", "Qualified", "Qualifier", "Quality", "Quan", "Quant", "Quantity", "Quantum", "Quart", "Quarter", "Quartz", "Quat", "Queen", "Query", "Quest", "Question", "Queue", "Quick", "Quiet", "Quit", "Quite", "Quiz", "Quota", "Quotation", "Quote", "Rabbit", "Race", "Rack", "Radar", "Radio", "Radius", "Raid", "Rail", "Rain", "Rainbow", "Raise", "Raised", "Ramp", "Rand", "Random", "Range", "Rank", "Rapid", "Rare", "Raster", "Rate", "Rated", "Rather", "Rating", "Ratio", "Reach", "React", "Reaction", "Reactive", "Read", "Readable", "Reader", "Reading", "Ready", "Real", "Reality", "Really", "Realm", "Rear", "Reason", "Recall", "Receipt", "Receive", "Received", "Receiver", "Recent", "Recently", "Reception", "Recharge", "Recherche", "Recipe", "Recipient", "Recommend", "Recon", "Reconnect", "Record", "Recorder", "Recording", "Recover", "Recovery", "Recruit", "Rect", "Rectangle", "Recurring", "Recursive", "Recycle", "Rede", "Redirect", "Redo", "Reduce", "Reduced", "Reducer", "Reduction", "Redux", "Refer", "Reference", "Referral", "Reflect", "Refresh", "Refund", "Regarding", "Region", "Regional", "Register", "Registrar", "Registry", "Regular", "Reject", "Related", "Relation", "Relative", "Relax", "Relay", "Release", "Relevant", "Reliable", "Religion", "Reload", "Remain", "Remark", "Remember", "Reminder", "Remote", "Removal", "Remove", "Removed", "Removing", "Rename", "Render", "Renderer", "Rendering", "Renew", "Rent", "Rental", "Repair", "Repeat", "Repeated", "Replace", "Replay", "Replica", "Reply", "Report", "Reporter", "Represent", "Republic", "Request", "Requester", "Require", "Research", "Reserve", "Reserved", "Reset", "Residence", "Resident", "Residual", "Resize", "Resolve", "Resolved", "Resolver", "Resource", "Resp", "Respect", "Respond", "Responder", "Response", "Rest", "Restart", "Restore", "Result", "Resume", "Retail", "Retention", "Retour", "Retrieve", "Retriever", "Retry", "Return", "Returned", "Reuse", "Reveal", "Revenue", "Reverse", "Review", "Reviewer", "Revision", "Reward", "Rewrite", "Ribbon", "Rice", "Rich", "Rick", "Ride", "Right", "Rigid", "Ring", "Ripple", "Rise", "Risk", "River", "Road", "Robin", "Robot", "Rock", "Rocket", "Roger", "Role", "Roll", "Rollback", "Rolling", "Roof", "Room", "Root", "Rose", "Ross", "Roster", "Rotate", "Rotation", "Rotor", "Round", "Rounded", "Route", "Router", "Routine", "Routing", "Royal", "Ruby", "Rule", "Rune", "Runnable", "Runner", "Running", "Rush", "Russia", "Rust", "Sadly", "Safari", "Safe", "Safety", "Saga", "Saint", "Salary", "Sale", "Salle", "Salon", "Salt", "Same", "Samen", "Sample", "Sampler", "Sampling", "Sand", "Sandbox", "Sans", "Sant", "Satellite", "Satisfied", "Save", "Saved", "Saver", "Saving", "Saya", "Scala", "Scalar", "Scale", "Scaled", "Scaler", "Scaling", "Scan", "Scanner", "Scanning", "Scar", "Scatter", "Scenario", "Scene", "Schedule", "Schema", "Scheme", "Scholar", "School", "Science", "Scient", "Scope", "Score", "Scout", "Scratch", "Screen", "Script", "Scroll", "Scrolled", "Seal", "Search", "Searcher", "Searching", "Season", "Seat", "Second", "Secondary", "Secondly", "Secret", "Secretary", "Sect", "Section", "Sector", "Secure", "Security", "Seed", "Seeder", "Seeing", "Seek", "Seeking", "Seen", "Segment", "Segue", "Seit", "Sele", "Select", "Selected", "Selection", "Selective", "Selector", "Self", "Sell", "Seller", "Selling", "Semantic", "Semaphore", "Semester", "Semi", "Send", "Sender", "Sending", "Senior", "Sense", "Sensitive", "Sensor", "Sent", "Sentence", "Separate", "Separator", "Sept", "Sequence", "Serial", "Serialize", "Series", "Seriously", "Serve", "Server", "Service", "Servidor", "Serving", "Servo", "Sess", "Session", "Sessions", "Sett", "Setter", "Setting", "Setup", "Seven", "Several", "Severity", "Sexy", "Shade", "Shader", "Shadow", "Shake", "Shanghai", "Shape", "Shard", "Share", "Sharp", "Sharper", "Sheet", "Shelf", "Shell", "Sher", "Shield", "Shift", "Shim", "Ship", "Shipment", "Shipping", "Shock", "Shoot", "Shop", "Shopping", "Short", "Shot", "Should", "Show", "Showing", "Shown", "Shrink", "Shuffle", "Shutdown", "Sibling", "Side", "Sides", "Sight", "Sigma", "Sign", "Signal", "Signature", "Signer", "Silent", "Silver", "Similar", "Similarly", "Simple", "Simply", "Simulator", "Since", "Sind", "Sing", "Singer", "Single", "Singles", "Singleton", "Sinh", "Sink", "Site", "Situated", "Situation", "Size", "Sized", "Sizer", "Sizes", "Sizing", "Skeleton", "Sketch", "Skill", "Skin", "Skip", "Skipping", "Slack", "Slash", "Slate", "Slave", "Slee", "Sleep", "Sleeping", "Slice", "Slide", "Slider", "Sliding", "Slim", "Slinky", "Slip", "Slope", "Slot", "Slow", "Slug", "Small", "Smart", "Smarty", "Smile", "Smith", "Smoke", "Smoking", "Smooth", "Snack", "Snake", "Snap", "Snapshot", "Snippet", "Snow", "Soap", "Social", "Sock", "Socket", "Soft", "Software", "Solar", "Sold", "Solid", "Solo", "Solution", "Solve", "Solver", "Some", "Someone", "Something", "Sometimes", "Song", "Soon", "Soph", "Sorry", "Sort", "Sortable", "Sorted", "Sorter", "Soul", "Sound", "Soup", "Source", "South", "Southern", "Space", "Spacer", "Spacing", "Spam", "Span", "Spark", "Sparse", "Spatial", "Spawn", "Spawner", "Speak", "Speaker", "Speaking", "Spec", "Special", "Species", "Specific", "Specifier", "Specify", "Specs", "Spectrum", "Speech", "Speed", "Spell", "Spend", "Spent", "Sphere", "Spider", "Spiel", "Spike", "Spin", "Spinner", "Spirit", "Splash", "Spline", "Split", "Splitter", "Sponsor", "Sport", "Sports", "Spot", "Spread", "Spring", "Sprint", "Sprite", "Square", "Squared", "Stable", "Stack", "Staff", "Stage", "Stake", "Stamp", "Stand", "Standard", "Standing", "Stap", "Star", "Start", "Starter", "Starting", "State", "Statement", "Static", "Statics", "Station", "Statistic", "Status", "Stay", "Stayed", "Steam", "Steel", "Stem", "Stencil", "Step", "Stepper", "Stereo", "Steven", "Stick", "Sticker", "Sticky", "Still", "Stim", "Stock", "Stocks", "Stone", "Stop", "Stopped", "Stopping", "Storage", "Store", "Storm", "Story", "Stra", "Straight", "Strategy", "Stream", "Streamer", "Streaming", "Street", "Strength", "Stress", "Stretch", "Strict", "Stride", "Strike", "String", "Strip", "Stripe", "Stroke", "Strong", "Structure", "Stub", "Stud", "Student", "Studio", "Study", "Stuff", "Style", "Subclass", "Subject", "Submit", "Subscribe", "Subset", "Subsystem", "Subtitle", "Subtotal", "Subtract", "Subtype", "Success", "Such", "Suffix", "Sugar", "Suggest", "Suit", "Suitable", "Suite", "Summary", "Summer", "Sunny", "Super", "Superior", "Supplier", "Supply", "Support", "Suppress", "Sure", "Surf", "Surface", "Surname", "Survey", "Suspend", "Swagger", "Swap", "Sweep", "Sweet", "Swift", "Swimming", "Swing", "Swipe", "Swiper", "Swiss", "Switch", "Switcher", "Sword", "Symbol", "Sync", "Synopsis", "Syntax", "Synthetic", "System", "Tabla", "Table", "Tables", "Tablet", "Tagged", "Tail", "Take", "Taken", "Taking", "Talent", "Talk", "Talking", "Tall", "Tang", "Tank", "Tape", "Target", "Task", "Taste", "Taxi", "Teach", "Teacher", "Teaching", "Team", "Tech", "Technical", "Technique", "Teen", "Teil", "Tele", "Telegram", "Telemetry", "Telephone", "Tell", "Temp", "Temper", "Template", "Temple", "Tempo", "Temporal", "Temporary", "Tenant", "Tender", "Tensor", "Tent", "Term", "Termin", "Terminal", "Terminate", "Terrain", "Test", "Teste", "Tester", "Testing", "Text", "Texture", "Than", "Thank", "Thanks", "That", "Their", "Them", "Theme", "Then", "Theory", "There", "Therefore", "These", "Theta", "They", "Thickness", "Thin", "Thing", "Think", "Thinking", "Third", "Thirty", "This", "Thong", "Those", "Though", "Thought", "Thread", "Threat", "Three", "Thresh", "Threshold", "Throttle", "Through", "Throw", "Thrown", "Thumb", "Thumbnail", "Thunder", "Thus", "Tick", "Ticker", "Ticket", "Tien", "Tier", "Tiger", "Tile", "Till", "Tilt", "Time", "Timed", "Timer", "Times", "Timing", "Tint", "Tiny", "Title", "Titre", "Toast", "Today", "Together", "Toggle", "Token", "Tolerance", "Tomorrow", "Tone", "Tong", "Tonight", "Tony", "Tool", "Topic", "Topo", "Topology", "Torch", "Toro", "Torque", "Torrent", "Total", "Touch", "Touchable", "Touched", "Tour", "Tout", "Towards", "Tower", "Town", "Trace", "Tracer", "Tracing", "Track", "Tracked", "Tracker", "Trade", "Trademark", "Trader", "Trading", "Traffic", "Trail", "Trailer", "Trailing", "Train", "Trainer", "Training", "Trait", "Transfer", "Transform", "Transient", "Transit", "Translate", "Transmit", "Transport", "Transpose", "Trap", "Trash", "Travel", "Traveler", "Traveller", "Traversal", "Traverse", "Tray", "Treat", "Treatment", "Tree", "Trend", "Trial", "Triangle", "Trig", "Trigger", "Triggered", "Trim", "Trip", "Triple", "Trivia", "Truck", "True", "Trump", "Trust", "Truth", "Truthy", "Trying", "Tube", "Tune", "Tunnel", "Turbo", "Turkey", "Turn", "Turning", "Turns", "Tutor", "Tutorial", "Tween", "Tweet", "Twenty", "Twig", "Twin", "Twitter", "Type", "Typical", "Typically", "Ultimate", "Ultra", "Unable", "Unary", "Unchecked", "Undefined", "Under", "Underline", "Undo", "Unhandled", "Unified", "Uniform", "Union", "Unique", "Unit", "United", "Unity", "Universal", "Universe", "Unknown", "Unless", "Unlike", "Unlimited", "Unload", "Unlock", "Unlocked", "Unmount", "Unnamed", "Unread", "Unsafe", "Unset", "Unsigned", "Until", "Unused", "Upcoming", "Update", "Upgrade", "Upload", "Upon", "Upper", "Urban", "Usage", "Used", "Useful", "User", "Usually", "Utility", "Vacation", "Vale", "Valid", "Validate", "Validity", "Valor", "Value", "Valve", "Vari", "Variable", "Variance", "Variant", "Variation", "Various", "Vault", "Vector", "Vehicle", "Velocity", "Vend", "Vendor", "Vent", "Venue", "Verb", "Verbose", "Verd", "Verifier", "Verify", "Verse", "Version", "Vert", "Vertex", "Vertical", "Vertices", "Very", "Vest", "Vice", "Victor", "Victory", "Video", "Vier", "View", "Viewer", "Vill", "Villa", "Village", "Ville", "Vintage", "Viol", "Violation", "Virgin", "Virtual", "Virus", "Visa", "Visible", "Vision", "Visit", "Visitor", "Vista", "Visual", "Vital", "Vitals", "Vitamin", "Voice", "Void", "Volley", "Volt", "Voltage", "Volume", "Volunteer", "Vote", "Voting", "Voucher", "Waar", "Wait", "Waiting", "Wake", "Walk", "Walker", "Walking", "Wall", "Wallet", "Wallpaper", "Walter", "Want", "Ward", "Ware", "Warehouse", "Warm", "Warn", "Warning", "Warp", "Warranty", "Wash", "Waste", "Watch", "Watcher", "Watching", "Water", "Wave", "Ways", "Weak", "Weapon", "Wear", "Weather", "Wedding", "Week", "Weekend", "Weekly", "Weight", "Weighted", "Welcome", "Well", "Went", "Were", "West", "Western", "What", "Whatever", "Whats", "Wheel", "When", "Whenever", "Where", "Whether", "Which", "While", "Whilst", "Whit", "White", "Whoa", "Whole", "Wholesale", "Wide", "Width", "Wild", "Will", "Wilt", "Wind", "Window", "Wine", "Wing", "Winner", "Winning", "Winter", "Wire", "Wireless", "Wise", "Wish", "With", "Withdraw", "Within", "Without", "Witness", "Wizard", "Wolf", "Woman", "Wonder", "Wonderful", "Wood", "Word", "Work", "Workbench", "Workbook", "Worked", "Worker", "Working", "Workout", "Works", "Workshop", "World", "Worst", "Worth", "Would", "Wrap", "Wrapped", "Wrapper", "Wrapping", "Writable", "Write", "Writer", "Writing", "Written", "Wrong", "Yahoo", "Yang", "Yeah", "Year", "Yellow", "Yeni", "Yesterday", "Yield", "Yoga", "York", "Young", "Your", "Youth", "Zero", "Zimbabwe", "Zombie", "Zone", "Zoom"]
3