This file is a list of the people responsible for ensuring that patches for a
particular part of LLDB are reviewed, either by themself or by someone else.
They are also the gatekeepers for their part of LLDB, with the final word on
what goes in or not.

The list is sorted by surname and formatted to allow easy grepping and
beautification by scripts.  The fields are: name (N), email (E), web-address
(W), PGP key ID and fingerprint (P), description (D), and snail-mail address
(S).

N: Sean Callanan
E: scallanan@apple.com
D: Expression evaluator, IR interpreter, Clang integration

N: Greg Clayton
E: clayborg@gmail.com
D: Overall LLDB architecture, Host (common+macosx), Symbol, API, ABI, Mac-specific code, 
D: DynamicLoader, ObjectFile, IOHandler, EditLine, Core/Value*, Watchpoints, debugserver
D: Build scripts, Test suite, Platform, gdb-remote, Anything not covered by this file

N: Jim Ingham
E: jingham@apple.com
D: Overall LLDB architecture, Thread plans, Expression parser, ValueObject, Breakpoints, ABI
D: Watchpoints, Trampolines, Target, Command Interpreter, C++ / Objective C Language runtime
D: Data Formatters

N: Ilia K
E: ki.stfu@gmail.com
D: lldb-mi

N: Ed Maste
E: emaste@freebsd.org
D: FreeBSD

N: Jason Molenda
E: jmolenda@apple.com
D: ABI, Disassembler, Unwinding, iOS, debugserver, Platform, ObjectFile, SymbolFile, 
D: SymbolVendor, DWARF, gdb-remote

N: Hafiz Abid Qadeer
E: abidh.haq@gmail.com
D: lldb-mi

N: Kamil Rytarowski
E: kamil@netbsd.org
D: NetBSD

N: Zachary Turner
E: zturner@google.com
D: CMake build, Host (common+windows), Plugins/Process/Windows, Anything Windows-specific
D: Test suite

N: Pavel Labath
E: labath@google.com
D: Linux, Android
