# Copyright (c) 2019, the Dart project authors.  Please see the AUTHORS file
# for details. All rights reserved. Use of this source code is governed by a
# BSD-style license that can be found in the LICENSE file.

# Blank lines and comments are ignored.
# Comments can also be inline like 'correct # this is ok'.
# Note that at least one space before the hash is required.

# Comments on a line by itself will be considered a header of the file and
# automatic tools might move it to the top of the file.

a0x
a1x
a2x
aa
aaa
abc
abcompile
adopted
albeit
allocations
allowlist
allowlisting
alt
amortized
analyses
animal
anon
aoo
approval
approximation
arbitrarily
asdf
asserter
assure
auth
authority
autobianchi
automatic
b0x
b1x
b2x
ba
baba
backed
background
bail
bailing
bailout
bash
bat
bbb
bc
bench
besides
beta
bigger
bitmask
bkonyi
bla
blah
blindly
blocked
blorp
bold
boo
bootstrap
bots
boundarykey
bowtie
boz
bq
brand
brave
brown
bt
bt3a
bt3b
bt4a
bt4b
btw
builddir
bulk2
bulkcompile
bye
c's
c59cdee365b94ce066344840f9e3412d642019b
ca
cafebabe
camel
capitalized
causal
cb
cc
ccc
cell
charset
checkme
checkout
cipd
circular
class1a
class1b
class2c
class2d
class2e
class2f
class3d
class5a
class5b
class5c
class5d
cloneable
cmd
cmp
cnn
coded
codepath
collisions
columns
commented
commit
companion
comparer
compilations
compiler's
complement
completers
complicated
confidence
confident
confirm
consecutive
considering
constrains
consts
contract
conversion
conversions
coo
corners
costly
cov
coverage
coverages
cp
csi
ct3a
ct3b
ct4a
ct4b
ctrl
cumulative
cursor
cx
dacoharkes
dadd
daemon
dartanalyzer
dartfile
dartfmt
dash
dashes
day
db
ddart
dds
debugger
decrease
decrements
dectcem
deduplication
defaulting
defintions
deleting
denylist
depended
depfile
desc
descriptors
detector
deviation
dfast
di
diagnosticable
dictionaries
dictionary
differences
differs
dijkstra
dijkstras
dillfile
dinteractive
dirname
disagree
disagreement
disallowed
disconnect
discovering
dispatcher
dispose
dist
div
divergent
doctype
doesnt
dog
donly
doo
downstream
draw
dumping
dumps
dupe
durations
dw
dyn
e's
e2e
ease
ec
echo
edits
elapse
ell
entrypoint
entrypoints
eoo
epoch
erase
erased
err
esc
everytime
evicting
exceed
excess
exe
execute
exercised
exercises
existence
exitcode
exiting
expanded
expansive
extern
fac
faking
falling
favors
fi
fibonacci
field1c
field2a
field2b
field2c
field3a
field3b
field3c
field4a
field4b
filesystem
filler
fisk
five
floor
fluctuate
foo"bar"baz
foo'bar'baz
foo1
foo10
foo12
foo13
foo14
foo15
foo2
foo4
foo5
foo6
foo7
foo8
foo9
foo\"bar'baz
foo\"bar\"baz
foo\"bar\'baz
foos
forbidden
forces
foreground
forrest
forty
foundation
fox
frozen
fulfill
func
futures
fx
gallery
gamma
gave
gc
gcd
getter1c
getter1d
getter1e
goo
google
graphic
greeting
gtgt
gulp
gunk
hackish
hardly
helper2
hest
heuristics
hi
hints
hits
home
hoo
hosted
hosting
hot
hotreload
hunk
hurray
i'm
ia
ideal
idle
ikg
illustrate
image
images
implementor
in1
in2
inclosure
increased
incrementally
increments
indents
initializer2
instance2
insufficient
intdiv
interactive
internet
interpolate
introducer
inv
invocation1a
invocation1b
invocation2a
invocation2b
invocation3a
invocation3b
invocation4a
invocation4b
invocation5a
invocation5b
invocation6a
invocation6b
invocation7a
invocation7b
invocation7c
invocation7d
invocation7e
ioo
isolate
isolates
issue41210b
issue41436c
issue41496b
issue41498b
issue41499b
it'll
italic
iter
jlcontreras
joo
jumped
kernels
kill
kitty
ko
koo
la
launch
launching
le
legs
lengths
lightly
likewise
lily
linebreaks
lints
linux
listening
listing
literal2
ln
local1a
local1b
local1c
local1d
local1e
local1f
local1g
local1h
local1i
local2a
local2b
local2c
local2d
local2e
local2f
local2g
local2h
local3a
local3b
local3c
local3d
local3e
local3f
local3g
local3h
logd
logs
loo
loopback
mac
maker
matters
mds
measured
method1d
metric
metrics
mf
micro
minimize
mintty
minutes
mismatched
misnamed
miss
misses
misspelled
mistake
mistakes
mod
modelled
month
moo
mul
mx
mysdk
naively
naturally
negatable
newworld
nil
ninja
noisy
nondefault
nonexisting
noo
numerator
ob
obool
observable
oh
okay
ol
onull
ooo
operate
ops
optimal
oracle
out1
out2
outbound
overlay
ox
pack
paging
paint
party
pause
paused
pc
periodic
periodically
person
phrase
pink
placement
plug
pointed
policy
pooled
population
portions
pp
preliminary
prematurely
press
pretends
producer
profile
profiler
propagated
property2a
property2b
property4a
property4b
property5a
property5b
property8a
property8b
protected
proved
provider
pseudocode
pubspec
pv
px
py
python
quicker
quit
quot
quux
quuz
qux
r"
r"\s
r"k
r"tools
rd
reachability
reality
recompile
recompiles
redir
redirections
reducer
referring
reflectee
refusing
regenerate
regressions
reify
reload
remap
remaps
rendition
repaint
repro
response
result1
result2
resuming
retaining
retainingpath
retains
rev
risky
rk
row
rows
runtimes
rv
scans
scheduler
screen
scripts
sdkroot
sdks
secondary
segment
selection
sensitive
services
setter1a
setter1b
setter1c
setter1d
setter1e
setups
severe
sheets
shipped
shortest
shot
sigint
signalled
sigwinch
slight
smoke
snull
somehow
spans
spawn
spell
spellcheck
spelled
spelling
spent
splay
splitting
spurious
sqrt
squared
sssp
stacks
stashed
stat
stats
stay
std
stress
string2
strip
strongest
stub's
stupid
subcommand
subdir
subfolder
subtool
subtools
subtyping1a
subtyping1b
subtyping2a
subtyping2b
successes
suite
summarization
summarized
supermixin
supplement
suspension
symbolic
t3a
t3b
t4a
t4b
t\b\f\u
t\u0008\f\u
tails
talk
templates
test3a
test3b
theoretically
thereof
timed
timeout
timer
timings
tinv
tpt
transitively
translators
triangle
triggers
trimming
tripped
tripping
trivially
truncated
tt
ttest
txt
typeargs
typeparam
typeparambounds
u250c
ugly
unassignment
unawaited
unbreak
unconverted
underline
unpacked
unpatched
unpaused
unregistered
untransformed
untrimmed
unusual
unversioned
upload
upward
usages
uses8
uuid
v1
v2
val
vars
verbatim
versioned
vp
vt
vte
waited
waiting
waits
walt
warmup
week
wherever
whiskers
wins
workflow
worlds
wrongly
ws
x's
xlate
xrequired
xxx
xxxxxxxx
xxxxxxxxxxxx
y's
year
yxxx
yy
