From: Richard Earnshaw <[email protected]>

Convert the existing MAINTAINERS data to YAML and add a script to
rebuild the MAINTAINERS file from it.  We'll add the regenerated file
shortly.

ChangeLog:

        * MAINTAINERS.yml: New file.

contrib/ChangeLog:

        * gen-MAINTAINERS.py: New file.
        * maintainer_utils.py: New file.
---
 MAINTAINERS.yml             | 6131 +++++++++++++++++++++++++++++++++++
 contrib/gen-MAINTAINERS.py  |  268 ++
 contrib/maintainer_utils.py |  276 ++
 3 files changed, 6675 insertions(+)
 create mode 100644 MAINTAINERS.yml
 create mode 100755 contrib/gen-MAINTAINERS.py
 create mode 100755 contrib/maintainer_utils.py

diff --git a/MAINTAINERS.yml b/MAINTAINERS.yml
new file mode 100644
index 000000000000..95dedfd3c7ae
--- /dev/null
+++ b/MAINTAINERS.yml
@@ -0,0 +1,6131 @@
+users:
+- sn: Abson
+  cn: Spencer Abson
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: sabson
+- sn: Adams
+  cn: Mark G. Adams
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: mgadams
+  inactive: true
+- sn: Agarwal
+  cn: Ajit Kumar Agarwal
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: aagarwa
+- sn: Alves
+  cn: Pedro Alves
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: palves
+  inactive: true
+- sn: Anglin
+  cn: John David Anglin
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - Maintainer: hppa port
+  - Maintainer: hpux
+  - WriteAfter
+  account: danglin
+- sn: Anlauf
+  cn: Harald Anlauf
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - Reviewer: Fortran
+  - WriteAfter
+  account: anlauf
+- sn: AR
+  cn: Soumya AR
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  - DCO: [email protected]
+  account: soumyaa
+- sn: Arras
+  cn: Paul-Antoine Arras
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: parras
+- sn: Arsenović
+  cn: Arsen Arsenović
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: arsen
+- sn: Ashok
+  cn: Raksit Ashok
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: raksit
+  inactive: true
+- sn: Augustine
+  cn: Sterling Augustine
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - Maintainer: xtensa port
+  - WriteAfter
+  account: sterling
+- sn: Austern
+  cn: Matt Austern
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: austern
+  inactive: true
+- sn: Ayers
+  cn: David Ayers
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: ayers
+  inactive: true
+- sn: Bahuguna
+  cn: Prakhar Bahuguna
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: prakhar
+  inactive: true
+- sn: Bajo
+  cn: Giovanni Bajo
+  email:
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: giovannibajo
+  inactive: true
+- sn: Baldwin
+  cn: Simon Baldwin
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: simonb
+  inactive: true
+- sn: Ball
+  cn: Richard Ball
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: ricbal02
+- sn: Bambrough
+  cn: Scott Bambrough
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: scottb
+  inactive: true
+- sn: Bangerth
+  cn: Wolfgang Bangerth
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: bangerth
+  inactive: true
+- sn: Bantaloukas
+  cn: Claudio Bantaloukas
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - Maintainer: forge integration
+  - WriteAfter
+  account: rdfm
+- sn: Barany
+  cn: Gergö Barany
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: gergo
+  inactive: true
+- sn: Barboza
+  cn: Daniel Barboza
+  email:
+  - [email protected]
+  - [email protected]
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  - DCO: [email protected]
+  - DCO: [email protected]
+  account: dbarboza
+  aliases:
+  - Daniel Henrique Barboza
+- sn: Bauermann
+  cn: Thiago Jung Bauermann
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: bauermann
+- sn: Baylis
+  cn: Charles Baylis
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: cbaylis
+  inactive: true
+- sn: Bazley
+  cn: Christopher Bazley
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: chrbaz01
+  aliases:
+  - Chris Bazley
+- sn: Belagod
+  cn: Tejas Belagod
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: belagod
+- sn: Belevantsev
+  cn: Andrey Belevantsev
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - Reviewer: selective scheduling
+  - WriteAfter
+  account: abel
+  inactive: true
+- sn: Beliveau
+  cn: Matthew Beliveau
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: mbelivea
+  inactive: true
+- sn: Belyshev
+  cn: Serge Belyshev
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: ssb
+  inactive: true
+- sn: Beniston
+  cn: Jon Beniston
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: jbeniston
+  inactive: true
+- sn: Bennett
+  cn: Andrew Bennett
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: abennett
+- sn: Benson
+  cn: Andrew Benson
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: abensonca
+  inactive: true
+- sn: Bergner
+  cn: Peter Bergner
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - Reviewer: register allocation
+  - WriteAfter
+  - DCO: [email protected]
+  account: bergner
+- sn: Berlin
+  cn: Daniel Berlin
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: dberlin
+  inactive: true
+- sn: Bernardi
+  cn: Pat Bernardi
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: pbernardi
+  inactive: true
+- sn: Beulich
+  cn: Jan Beulich
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: jbeulich
+- sn: Bhagat
+  cn: Indu Bhagat
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - Reviewer: CTF, BTF
+  - WriteAfter
+  account: ibhagat
+- sn: Biener
+  cn: Richard Biener
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - Global
+  - Maintainer: middle-end
+  - Maintainer: vectorizer (+ tree-if-conv)
+  - Reviewer: LTO
+  - WriteAfter
+  account: rguenth
+- sn: Billinghurst
+  cn: David Billinghurst
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: billingd
+  inactive: true
+- sn: Bily
+  cn: Tomas Bily
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: tomby
+  inactive: true
+- sn: Biveinis
+  cn: Laurynas Biveinis
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: lauras
+  inactive: true
+- sn: Bizjak
+  cn: Uros Bizjak
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - Maintainer: i386 port
+  - WriteAfter
+  account: uros
+- sn: Blake
+  cn: Eric Blake
+  email:
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: ericb
+  inactive: true
+- sn: Blomqvist
+  cn: Janne Blomqvist
+  email:
+  - [email protected]
+  roles:
+  - Reviewer: Fortran
+  - WriteAfter
+  account: jb
+  inactive: true
+- sn: Blundell
+  cn: Phil Blundell
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: pb
+  inactive: true
+- sn: Boehm
+  cn: Hans Boehm
+  email:
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: hboehm
+  inactive: true
+- sn: Boessenkool
+  cn: Segher Boessenkool
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - Maintainer: rs6000/powerpc port
+  - Maintainer: instruction combiner
+  - WriteAfter
+  account: segher
+- sn: Boger
+  cn: Lynn Boger
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: boger
+  inactive: true
+- sn: Bolton
+  cn: Ian Bolton
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: ibolton
+  inactive: true
+- sn: Bona
+  cn: Andrea Bona
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: andreabo
+  inactive: true
+- sn: Bonzini
+  cn: Paolo Bonzini
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - Maintainer: build machinery (*.in)
+  - Reviewer: dataflow
+  - WriteAfter
+  account: bonzini
+- sn: Booth
+  cn: Neil Booth
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: neil
+  inactive: true
+- sn: Bosscher
+  cn: Steven Bosscher
+  email:
+  - [email protected]
+  roles:
+  - Reviewer: RTL optimizers
+  - WriteAfter
+  account: steven
+  inactive: true
+- sn: Botcazou
+  cn: Eric Botcazou
+  email:
+  - [email protected]
+  - [email protected]
+  - [email protected]
+  roles:
+  - Maintainer: sparc port
+  - Maintainer: visium port
+  - Maintainer: Ada front end
+  - Maintainer: RTL optimizers
+  - WriteAfter
+  account: ebotcazou
+- sn: Bothner
+  cn: Per Bothner
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - Maintainer: libcpp
+  - WriteAfter
+  account: bothner
+  inactive: true
+- sn: Boucher
+  cn: Antoni Boucher
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: antoyo
+- sn: Bourdeauducq
+  cn: Sebastien Bourdeauducq
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - Maintainer: lm32 port
+  - WriteAfter
+  account: lekernel
+  inactive: true
+- sn: Bowdidge
+  cn: Robert Bowdidge
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: bowdidge
+  inactive: true
+- sn: Bowman
+  cn: James Bowman
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - Maintainer: ft32 port
+  - WriteAfter
+  account: jamesbowman
+  inactive: true
+- sn: Brobecker
+  cn: Joel Brobecker
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: brobecke
+  inactive: true
+- sn: Brolley
+  cn: Dave Brolley
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: brolley
+  inactive: true
+- sn: Brown
+  cn: Julian Brown
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - Maintainer: amdgcn port
+  - WriteAfter
+  account: jules
+- sn: Bruel
+  cn: Christian Bruel
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: chrbr
+  inactive: true
+- sn: Buclaw
+  cn: Iain Buclaw
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - Maintainer: D front end
+  - Maintainer: libphobos
+  - WriteAfter
+  account: ibuclaw
+- sn: Buettner
+  cn: Kevin Buettner
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: kevinb
+- sn: Burgess
+  cn: Andrew Burgess
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: aburgess
+- sn: Burnus
+  cn: Tobias Burnus
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - Maintainer: libgomp
+  - Maintainer: libquadmath
+  - Maintainer: OpenACC
+  - Maintainer: OpenMP
+  - Reviewer: Fortran
+  - WriteAfter
+  account: burnus
+- sn: Butcher
+  cn: Adam Butcher
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: abutcher
+  inactive: true
+- sn: Cagney
+  cn: Andrew Cagney
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: cagney
+  inactive: true
+- sn: Carlini
+  cn: Paolo Carlini
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - Maintainer: c++ runtime libs
+  - WriteAfter
+  account: paolo
+  inactive: true
+- sn: Carlotti
+  cn: Alice Carlotti
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - Reviewer: aarch64 port
+  - WriteAfter
+  account: acarlotti
+- sn: Carrera
+  cn: Daniel Carrera
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: dcarrera
+  inactive: true
+- sn: Carrez
+  cn: Stephane Carrez
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: ciceron
+  inactive: true
+- sn: Charette
+  cn: Gabriel Charette
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: gchare
+  inactive: true
+- sn: Charlet
+  cn: Arnaud Charlet
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - Maintainer: Ada front end
+  - WriteAfter
+  account: charlet
+- sn: Chavva
+  cn: Chandra Chavva
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: cchavva
+  inactive: true
+- sn: Chawla
+  cn: Dhruv Chawla
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  - DCO: [email protected]
+  account: dhruvc
+- sn: Chen
+  cn: Dehao Chen
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: dehao
+  inactive: true
+- sn: Chen
+  cn: Zhongyao Chen
+  email:
+  - [email protected]
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  - DCO: [email protected]
+  - DCO: [email protected]
+  account: zhongyao
+  aliases:
+  - zhongyao
+- sn: Chêne
+  cn: Fabien Chêne
+  email:
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: fabien
+  inactive: true
+- sn: Cheng
+  cn: Bin Cheng
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - Maintainer: loop ivopts
+  - Maintainer: loop optimizer
+  - WriteAfter
+  account: amker
+  inactive: true
+- sn: Cheng
+  cn: Kito Cheng
+  email:
+  - [email protected]
+  - [email protected]
+  - [email protected]
+  roles:
+  - Maintainer: riscv port
+  - WriteAfter
+  account: kito
+- sn: Cheng
+  cn: Lulu Cheng
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - Maintainer: LoongArch port
+  - WriteAfter
+  account: chenglulu
+  aliases:
+  - ChengLulu
+- sn: Chertykov
+  cn: Denis Chertykov
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - Maintainer: avr port
+  - WriteAfter
+  account: denisc
+- sn: Chiang
+  cn: Monk Chiang
+  email:
+  - [email protected]
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: monkc
+- sn: Chigot
+  cn: Clément Chigot
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: helflym
+- sn: Chopra
+  cn: Harshit Chopra
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: harshit
+  inactive: true
+- sn: Christ
+  cn: Juergen Christ
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  - DCO: [email protected]
+  account: jchrist
+- sn: Christina
+  cn: Tamar Christina
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - Maintainer: aarch64 port
+  - Maintainer: vectorizer (+ tree-if-conv)
+  - WriteAfter
+  account: tnfchris
+- sn: Christopher
+  cn: Eric Christopher
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: echristo
+  inactive: true
+- sn: Clarke
+  cn: Paul Clarke
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: pc
+  inactive: true
+- sn: Clifton
+  cn: Nick Clifton
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - Maintainer: arm port
+  - Maintainer: fr30 port
+  - Maintainer: frv port
+  - Maintainer: iq2000 port
+  - Maintainer: m32r port
+  - Maintainer: mcore port
+  - Maintainer: msp430 port
+  - Maintainer: rx port
+  - Maintainer: v850 port
+  - Maintainer: xstormy16 port
+  - WriteAfter
+  account: nickc
+- sn: Cohen
+  cn: Arthur Cohen
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - Maintainer: Rust
+  - WriteAfter
+  account: cohenarthur
+- sn: Cohen
+  cn: William Cohen
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: wcohen
+  inactive: true
+- sn: Collison
+  cn: Michael Collison
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: collison
+  inactive: true
+- sn: Colomar
+  cn: Alejandro Colomar
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  - DCO: [email protected]
+  account: alx
+- sn: Conner
+  cn: Josh Conner
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: jconner
+  inactive: true
+- sn: Cook
+  cn: R. Kelley Cook
+  email:
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: kcook
+  inactive: true
+- sn: Coplan
+  cn: Alex Coplan
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - Maintainer: aarch64 ldp/stp
+  - Maintainer: pair fusion
+  - Reviewer: aarch64 port
+  - WriteAfter
+  account: acoplan
+- sn: Corallo
+  cn: Andrea Corallo
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: akrl
+- sn: Cornelssen
+  cn: Christian Cornelssen
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: ccorn
+  inactive: true
+- sn: Corsepius
+  cn: Ralf Corsepius
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - Maintainer: RTEMS Ports
+  - WriteAfter
+  account: corsepiu
+  inactive: true
+- sn: Coudert
+  cn: François-Xavier Coudert
+  email:
+  - [email protected]
+  roles:
+  - Reviewer: Fortran
+  - WriteAfter
+  account: fxcoudert
+- sn: Courtès
+  cn: Ludovic Courtès
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: ludo
+  inactive: true
+- sn: Coutant
+  cn: Cary Coutant
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - Maintainer: dwarf debugging code
+  - Reviewer: LTO plugin
+  - WriteAfter
+  account: ccoutant
+  inactive: true
+- sn: Crowl
+  cn: Lawrence Crowl
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: crowl
+  inactive: true
+- sn: Cui
+  cn: Lili Cui
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: cuilili
+  aliases:
+  - Cui, Lili
+- sn: D'Angelo
+  cn: Giuseppe D'Angelo
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  - DCO: [email protected]
+  account: peppe
+- sn: Dabbelt
+  cn: Palmer Dabbelt
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - Maintainer: riscv port
+  - WriteAfter
+  account: palmer
+- sn: Dall
+  cn: Ian Dall
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: iandall
+  inactive: true
+- sn: Daney
+  cn: David Daney
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: daney
+  inactive: true
+- sn: Dapp
+  cn: Robin Dapp
+  email:
+  - [email protected]
+  - [email protected]
+  - [email protected]
+  - [email protected]
+  - [email protected]
+  roles:
+  - Maintainer: riscv port
+  - Reviewer: vectorizer (+ tree-if-conv)
+  - WriteAfter
+  - DCO: [email protected]
+  - DCO: [email protected]
+  - DCO: [email protected]
+  account: rdapp
+- sn: Dardis
+  cn: Simon Dardis
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: dardiss
+  inactive: true
+- sn: Das
+  cn: Sudakshina Das
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: sudi
+  inactive: true
+- sn: Davis
+  cn: Bud Davis
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: bdavis
+  inactive: true
+- sn: DeLisle
+  cn: Jerry DeLisle
+  email:
+  - [email protected]
+  roles:
+  - Reviewer: Fortran
+  - WriteAfter
+  account: jvdelisle
+- sn: Delorie
+  cn: DJ Delorie
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - Maintainer: DJGPP
+  - WriteAfter
+  account: dj
+  inactive: true
+- sn: Demetriou
+  cn: Chris Demetriou
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: cgd
+  inactive: true
+- sn: Dennett
+  cn: James Dennett
+  email:
+  - [email protected]
+  roles:
+  - BZ
+  inactive: true
+- sn: Deshpande
+  cn: Sameera Deshpande
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: sameerad
+  inactive: true
+- sn: Dijkstra
+  cn: Wilco Dijkstra
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - Reviewer: aarch64 port
+  - WriteAfter
+  account: wilco
+- sn: Dimitrov
+  cn: Dimitar Dimitrov
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - Maintainer: pru port
+  - WriteAfter
+  account: dimitar
+- sn: Dinechin
+  cn: Benoit Dupont de Dinechin
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: bd3
+  inactive: true
+- sn: Ding
+  cn: Lehua Ding
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: lhtin
+- sn: Drepper
+  cn: Ulrich Drepper
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - Maintainer: c++ runtime libs
+  - WriteAfter
+  account: drepper
+- sn: Dubner
+  cn: Robert Dubner
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - Maintainer: COBOL front end
+  - WriteAfter
+  account: rdubner
+  aliases:
+  - Bob Dubner
+- sn: Dumont
+  cn: François Dumont
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - Maintainer: c++ runtime libs special modes
+  - WriteAfter
+  account: fdumont
+- sn: Dvorak
+  cn: Zdenek Dvorak
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - Maintainer: loop infrastructure
+  - Maintainer: vectorizer (+ tree-if-conv)
+  - Reviewer: loop optimizer
+  - WriteAfter
+  account: rakdver
+  inactive: true
+- sn: Eager
+  cn: Michael Eager
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - Maintainer: microblaze
+  - WriteAfter
+  account: eager
+  aliases:
+  - Michael J. Eager
+- sn: Earnshaw
+  cn: Richard Earnshaw
+  email:
+  - [email protected]
+  - [email protected]
+  - [email protected]
+  roles:
+  - Global
+  - Maintainer: aarch64 port
+  - Maintainer: arm port
+  - WriteAfter
+  account: rearnsha
+- sn: Eckhardt
+  cn: Jason Eckhardt
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: jle
+  inactive: true
+- sn: Edelmann
+  cn: Erik Edelmann
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - Reviewer: Fortran
+  - WriteAfter
+  account: eedelman
+  inactive: true
+- sn: Edelsohn
+  cn: David Edelsohn
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - Maintainer: rs6000/powerpc port
+  - Maintainer: aix
+  - WriteAfter
+  account: dje
+- sn: Edlinger
+  cn: Bernd Edlinger
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: edlinger
+- sn: Edwards
+  cn: Phil Edwards
+  email:
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: pme
+  inactive: true
+- sn: Eggleston
+  cn: Mark Eggleston
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: markeggleston
+  inactive: true
+- sn: Ehrhardt
+  cn: Christian Ehrhardt
+  email:
+  - [email protected]
+  roles:
+  - BZ
+  inactive: true
+- sn: Ellcey
+  cn: Steve Ellcey
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: sje
+  inactive: true
+- sn: Elliston
+  cn: Ben Elliston
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - Maintainer: config.sub/config.guess
+  - WriteAfter
+  account: bje
+  inactive: true
+- sn: Embar
+  cn: Mohan Embar
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: membar
+  inactive: true
+- sn: Endo
+  cn: Oleg Endo
+  email:
+  - [email protected]
+  roles:
+  - Maintainer: sh port
+  - WriteAfter
+  account: olegendo
+- sn: Eres
+  cn: Revital Eres
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: revitale
+  inactive: true
+- sn: Espie
+  cn: Marc Espie
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: espie
+  inactive: true
+- sn: Esztermann
+  cn: Ansgar Esztermann
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: ansgar
+  inactive: true
+- sn: Evans
+  cn: Doug Evans
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: devans
+  inactive: true
+- sn: Fairles
+  cn: Chris Fairles
+  email:
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: cfairles
+  inactive: true
+- sn: Fanfarillo
+  cn: Alessandro Fanfarillo
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: afanfa
+  inactive: true
+- sn: Fang
+  cn: Changpeng Fang
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: cfang
+  inactive: true
+- sn: Faust
+  cn: David Faust
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - Reviewer: CTF, BTF, bpf port
+  - WriteAfter
+  account: dfaust
+- sn: Feifer
+  cn: Sam Feifer
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: sfeifer
+  inactive: true
+- sn: Feng
+  cn: Eric Feng
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: efric
+- sn: Feng
+  cn: Li Feng
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: lifeng
+  inactive: true
+- sn: Filippov
+  cn: Max Filippov
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - Maintainer: xtensa port
+  - WriteAfter
+  account: jcmvbkbc
+- sn: Fitzsimmons
+  cn: Thomas Fitzsimmons
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: fitzsim
+  inactive: true
+- sn: Fomin
+  cn: Alexander Fomin
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: afomin
+  inactive: true
+- sn: Ford
+  cn: Brian Ford
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: ford
+  inactive: true
+- sn: Fortune
+  cn: Matthew Fortune
+  email:
+  - [email protected]
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: mpf
+- sn: Franke
+  cn: Daniel Franke
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - Reviewer: Fortran
+  - WriteAfter
+  account: dfranke
+  inactive: true
+- sn: Freeman
+  cn: John Freeman
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: jfreeman
+  inactive: true
+- sn: Froyd
+  cn: Nathan Froyd
+  email:
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: froydnj
+  inactive: true
+- sn: Fu
+  cn: Chao-ying Fu
+  email:
+  - [email protected]
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: chaoyingfu
+- sn: Funck
+  cn: Gary Funck
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: gfunck
+  inactive: true
+- sn: Gadad
+  cn: Pompapathi V Gadad
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: pompa
+  inactive: true
+- sn: Gallager
+  cn: Eric Gallager
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: egallager
+- sn: Ganesh
+  cn: Gopalasubramanian Ganesh
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: gganesh
+  inactive: true
+- sn: Gao
+  cn: Fei Gao
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: feigao
+- sn: Ghazi
+  cn: Kaveh Ghazi
+  email:
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: ghazi
+  inactive: true
+- sn: Gilmore
+  cn: Doug Gilmore
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: dgilmore
+  inactive: true
+- sn: Gingell
+  cn: Matthew Gingell
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: gingell
+  inactive: true
+- sn: Gingold
+  cn: Tristan Gingold
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - Maintainer: VMS
+  - WriteAfter
+  account: gingold
+  inactive: true
+- sn: Glaw
+  cn: Jan-Benedict Glaw
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: jbglaw
+- sn: Glisse
+  cn: Marc Glisse
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: glisse
+- sn: Godbole
+  cn: Prachi Godbole
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  - DCO: [email protected]
+  account: pgodbole
+- sn: Granlund
+  cn: Torbjorn Granlund
+  email:
+  - [email protected]
+  roles:
+  - WriteAfter
+  inactive: true
+- sn: Green
+  cn: Anthony Green
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - Maintainer: moxie port
+  - WriteAfter
+  account: green
+  inactive: true
+- sn: Greenhalgh
+  cn: James Greenhalgh
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: jgreenhalgh
+  inactive: true
+- sn: Gregor
+  cn: Doug Gregor
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: dgregor
+  inactive: true
+- sn: Gretton-Dann
+  cn: Matthew Gretton-Dann
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: mgretton
+  inactive: true
+- sn: Gribov
+  cn: Yury Gribov
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: ygribov
+  inactive: true
+- sn: Grimm
+  cn: Jon Grimm
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: jgrimm
+  inactive: true
+- sn: Grosser
+  cn: Tobias Grosser
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - Reviewer: Graphite
+  - WriteAfter
+  account: grosser
+  inactive: true
+- sn: Guerby
+  cn: Laurent Guerby
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: guerby
+  inactive: true
+- sn: Gui
+  cn: Haochen Gui
+  email:
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: guihaoc
+  inactive: true
+- sn: Guo
+  cn: Jiufu Guo
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: guojiufu
+- sn: Guo
+  cn: Xuepeng Guo
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: xguo
+  inactive: true
+- sn: Guozhi
+  cn: Wei Guozhi
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: carrot
+  inactive: true
+- sn: Gupta
+  cn: Vineet Gupta
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: vineetg
+- sn: H.S
+  cn: Naveen H.S
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  - DCO: [email protected]
+  account: naveenh
+  aliases:
+  - Naveen Gowda
+  - Naveen
+- sn: Hagog
+  cn: Mostafa Hagog
+  email:
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: hagog
+  inactive: true
+- sn: Hainque
+  cn: Olivier Hainque
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - Maintainer: VxWorks ports
+  - WriteAfter
+  account: hainque
+- sn: Hakobyan
+  cn: Jivan Hakobyan
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: jivan
+- sn: Haley
+  cn: Andrew Haley
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: aph
+  inactive: true
+- sn: Han
+  cn: Demin Han
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: deminhan
+- sn: Harmstone
+  cn: Mark Harmstone
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: maharmstone
+- sn: Harwath
+  cn: Frederik Harwath
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: frederik
+- sn: Hastings
+  cn: Stuart Hastings
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: stuart
+  inactive: true
+- sn: Haubenwallner
+  cn: Michael Haubenwallner
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: haubi
+  inactive: true
+- sn: Haugen
+  cn: Pat Haugen
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: pthaugen
+  inactive: true
+- sn: Hayes
+  cn: Michael Hayes
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: m.hayes
+  inactive: true
+- sn: Hayward
+  cn: Alan Hayward
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: alahay01
+  inactive: true
+- sn: Hazeghi
+  cn: Dara Hazeghi
+  email:
+  - [email protected]
+  roles:
+  - BZ
+  inactive: true
+- sn: He
+  cn: Li Jia He
+  email:
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: helijia
+  inactive: true
+- sn: Heffernan
+  cn: Mark Heffernan
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: meheff
+  inactive: true
+- sn: Helffrich
+  cn: George Helffrich
+  email:
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: george
+  inactive: true
+- sn: Hellstrom
+  cn: Daniel Hellstrom
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: danielh
+  inactive: true
+- sn: Henderson
+  cn: Fergus Henderson
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: fjh
+  inactive: true
+- sn: Henderson
+  cn: Richard Henderson
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - Maintainer: alpha port
+  - WriteAfter
+  account: rth
+- sn: Henderson
+  cn: Stuart Henderson
+  email:
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: shenders
+  inactive: true
+- sn: Hernandez
+  cn: Aldy Hernandez
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - Maintainer: rs6000 vector extns
+  - Maintainer: '*gimpl*'
+  - Maintainer: '*vrp, ranger'
+  - WriteAfter
+  - DCO: [email protected]
+  account: aldyh
+- sn: Herron
+  cn: Philip Herron
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - Maintainer: Rust
+  - WriteAfter
+  account: redbrain
+- sn: Hillenbrand
+  cn: Marius Hillenbrand
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: mhillen
+  inactive: true
+- sn: Hiller
+  cn: Matthew Hiller
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: hiller
+  inactive: true
+- sn: Hirata
+  cn: Kazu Hirata
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: kazu
+  inactive: true
+- sn: Hollstein
+  cn: Manfred Hollstein
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: manfred
+  inactive: true
+- sn: Horne
+  cn: Stafford Horne
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - Maintainer: or1k port
+  - WriteAfter
+  account: shorne
+- sn: Hou
+  cn: Cong Hou
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: congh
+  inactive: true
+- sn: Hsu
+  cn: Levy Hsu
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: xlwxlw7969
+- sn: Hu
+  cn: Lin Hu
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: hulin
+  aliases:
+  - Hu, Lin1
+- sn: Huber
+  cn: Sebastian Huber
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - Maintainer: RTEMS Ports
+  - WriteAfter
+  account: sh
+- sn: Hubicka
+  cn: Jan Hubicka
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - Maintainer: i386 port
+  - Maintainer: x86-64 port
+  - Maintainer: callgraph
+  - Maintainer: gcov
+  - Maintainer: predict.def
+  - Maintainer: profile feedback
+  - WriteAfter
+  account: hubicka
+- sn: Hueffner
+  cn: Falk Hueffner
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: falk
+  inactive: true
+- sn: Hughes
+  cn: Andrew John Hughes
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: gandalf
+  inactive: true
+- sn: Humieres
+  cn: Dominique d'Humieres
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: dominiq
+  inactive: true
+- sn: Hutchinson
+  cn: Andy Hutchinson
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: hutchinsonandy
+  inactive: true
+- sn: Hutton
+  cn: Joel Hutton
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: joelh
+  inactive: true
+- sn: Hyatt
+  cn: Lewis Hyatt
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: lhyatt
+- sn: Iannetta
+  cn: Paul Iannetta
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: piannetta
+- sn: Illig
+  cn: Roland Illig
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: rillig
+  inactive: true
+- sn: Inge
+  cn: Meador Inge
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: meadori
+  inactive: true
+- sn: Innocenti
+  cn: Bernardo Innocenti
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: bernie
+  inactive: true
+- sn: Ionescu
+  cn: Mihail Ionescu
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: mionescu
+  inactive: true
+- sn: Ivanishin
+  cn: Vladislav Ivanishin
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: vlad
+  inactive: true
+- sn: Ivchenko
+  cn: Alexander Ivchenko
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: aivchenk
+  inactive: true
+- sn: Iyer
+  cn: Balaji V. Iyer
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: bviyer
+  inactive: true
+- sn: Jääskeläinen
+  cn: Pekka Jääskeläinen
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: visit0r
+  inactive: true
+- sn: Jacobowitz
+  cn: Daniel Jacobowitz
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: drow
+  inactive: true
+- sn: Jaeger
+  cn: Andreas Jaeger
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: aj
+  inactive: true
+- sn: Jagasia
+  cn: Harsha Jagasia
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: hjagasia
+  inactive: true
+- sn: Jahanian
+  cn: Fariborz Jahanian
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: fjahanian
+  inactive: true
+- sn: Jambor
+  cn: Martin Jambor
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - Reviewer: callgraph
+  - WriteAfter
+  account: jamborm
+- sn: James
+  cn: Sam James
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: sjames
+- sn: Jangala
+  cn: Surya Kumari Jangala
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: jskumari
+- sn: Jayakar
+  cn: Avinash Jayakar
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: avinashd
+- sn: Jelinek
+  cn: Jakub Jelinek
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - Global
+  - Maintainer: '*gimpl*'
+  - Maintainer: libgomp
+  - Maintainer: libquadmath
+  - Maintainer: OpenMP
+  - Reviewer: libsanitizer, asan.cc
+  - WriteAfter
+  account: jakub
+- sn: Jenner
+  cn: Andrew Jenner
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - Maintainer: powerpcspe port
+  - WriteAfter
+  account: andrewjenner
+  inactive: true
+- sn: Jha
+  cn: Saurabh Jha
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: saurabhjha
+- sn: Jiang
+  cn: Haochen Jiang
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: jianghc
+- sn: Jianhua
+  cn: Qian Jianhua
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: qianjh
+  inactive: true
+- sn: Jires
+  cn: Michal Jires
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  - DCO: [email protected]
+  account: mjires
+- sn: Johnson
+  cn: Janis Johnson
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: janis
+  inactive: true
+- sn: Johnson
+  cn: Teresa Johnson
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: tejohnson
+  inactive: true
+- sn: Johnston
+  cn: Kean Johnston
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: jkj
+  inactive: true
+- sn: Jordan
+  cn: Phillip Jordan
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: pmj
+  inactive: true
+- sn: Josling
+  cn: Tim Josling
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: timjosling
+  inactive: true
+- sn: Kamiński
+  cn: Tomasz Kamiński
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: tkaminsk
+- sn: Kaplansky
+  cn: Victor Kaplansky
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: victork
+  inactive: true
+- sn: Karpov
+  cn: Evgeny Karpov
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: eukarpov
+- sn: Kastl
+  cn: Filip Kastl
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: pheeck
+- sn: Keating
+  cn: Geoffrey Keating
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: geoffk
+  inactive: true
+- sn: Kehoe
+  cn: Brendan Kehoe
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: brendan
+  inactive: true
+- sn: Kenner
+  cn: Richard Kenner
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - Global
+  - WriteAfter
+  account: kenner
+  inactive: true
+- sn: Khrustalev
+  cn: Yury Khrustalev
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: ykhrustalev
+- sn: Kleen
+  cn: Andi Kleen
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: ak
+- sn: Klose
+  cn: Matthias Klose
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: doko
+- sn: Knaggs
+  cn: Jeff Knaggs
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: jknaggs
+  inactive: true
+- sn: Koch
+  cn: Michael Koch
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: mkoch
+  inactive: true
+- sn: Koenig
+  cn: Nicolas Koenig
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: koenigni
+  inactive: true
+- sn: Kojima
+  cn: Kaz Kojima
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - Maintainer: sh-linux-gnu
+  - WriteAfter
+  account: kkojima
+- sn: Kolpackov
+  cn: Boris Kolpackov
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: boris
+- sn: Kong
+  cn: Lingling Kong
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: konglin1
+- sn: König
+  cn: Thomas König
+  email:
+  - [email protected]
+  roles:
+  - Reviewer: Fortran
+  - WriteAfter
+  account: tkoenig
+  aliases:
+  - Thomas Koenig
+- sn: Koning
+  cn: Paul Koning
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - Maintainer: pdp11 port
+  - WriteAfter
+  account: pkoning
+  inactive: true
+- sn: Korb
+  cn: Bruce Korb
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - Maintainer: fixincludes
+  - WriteAfter
+  account: korbb
+- sn: Korn
+  cn: Dave Korn
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: davek
+  inactive: true
+- sn: Kosnik
+  cn: Benjamin De Kosnik
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - Maintainer: c++ runtime libs
+  - WriteAfter
+  account: bkoz
+  inactive: true
+- sn: Koval
+  cn: Julia Koval
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: jkoval
+  inactive: true
+- sn: Kraai
+  cn: Matt Kraai
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: kraai
+  inactive: true
+- sn: Kraft
+  cn: Daniel Kraft
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - Reviewer: Fortran
+  - WriteAfter
+  account: domob
+  inactive: true
+- sn: Kratochvil
+  cn: Jan Kratochvil
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: jkratoch
+  inactive: true
+- sn: Krebbel
+  cn: Andreas Krebbel
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - Maintainer: s390 port
+  - WriteAfter
+  account: krebbel
+- sn: Kretz
+  cn: Matthias Kretz
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  - DCO: [email protected]
+  account: mkretz
+- sn: Krupp
+  cn: Louis Krupp
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: lkrupp
+  inactive: true
+- sn: Kulkarni
+  cn: Prathamesh Kulkarni
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  - DCO: [email protected]
+  account: prathamesh3492
+- sn: Kumar
+  cn: Venkataramanan Kumar
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: vekumar
+  aliases:
+  - vekumar
+- sn: Kuvyrkov
+  cn: Maxim Kuvyrkov
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - Maintainer: Android sub-port
+  - WriteAfter
+  account: mkuvyrkov
+- sn: Kwan
+  cn: Doug Kwan
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: dougkwan
+  inactive: true
+- sn: Ladd
+  cn: Scott Robert Ladd
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: srladd
+  inactive: true
+- sn: Ladelsky
+  cn: Razya Ladelsky
+  email:
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: razya
+  inactive: true
+- sn: Lafage
+  cn: Thierry Lafage
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: tlafage
+  inactive: true
+- sn: LaFramboise
+  cn: Aaron W. LaFramboise
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: aaronwl
+  inactive: true
+- sn: Lambertsen
+  cn: Rask Ingemann Lambertsen
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: rask
+  inactive: true
+- sn: Lambourg
+  cn: Jerome Lambourg
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: lambourg
+  inactive: true
+- sn: Lange
+  cn: Tim Lange
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  - DCO: [email protected]
+  account: tlange
+  inactive: true
+- sn: Langton
+  cn: Asher Langton
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: langton
+  inactive: true
+- sn: Lattner
+  cn: Chris Lattner
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: sabre
+  inactive: true
+- sn: Laurenzo
+  cn: Terry Laurenzo
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: tlaurenzo
+  inactive: true
+- sn: Law
+  cn: Jeff Law
+  email:
+  - [email protected]
+  - [email protected]
+  - [email protected]
+  - [email protected]
+  - [email protected]
+  - [email protected]
+  roles:
+  - Global
+  - Maintainer: h8 port
+    email: [email protected]
+  - Maintainer: hppa port
+    email: [email protected]
+  - Maintainer: m68k port (?)
+    email: [email protected]
+  - Maintainer: mn10300 port
+    email: [email protected]
+  - Maintainer: caller-save.cc
+    email: [email protected]
+  - Maintainer: gcse.cc
+    email: [email protected]
+  - Maintainer: global opt framework
+    email: [email protected]
+  - Maintainer: middle-end
+    email: [email protected]
+  - Maintainer: reorg
+    email: [email protected]
+  - Maintainer: scheduler (+ haifa)
+    email: [email protected]
+  - WriteAfter: [email protected]
+  - DCO: [email protected]
+  - DCO: [email protected]
+  - DCO: [email protected]
+  - DCO: [email protected]
+  - DCO: [email protected]
+  account: law
+  aliases:
+  - jlaw
+- sn: Lawrence
+  cn: Alan Lawrence
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: alalaw01
+  inactive: true
+- sn: Lawrynowicz
+  cn: Jozef Lawrynowicz
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: jozefl
+  inactive: true
+- sn: Lay
+  cn: Georg-Johann Lay
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: gjl
+- sn: Lazar
+  cn: Vlad Lazar
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: vladlazar
+  inactive: true
+- sn: Lehmann
+  cn: Marc Lehmann
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: pcg
+  inactive: true
+- sn: Lei
+  cn: Bohan Lei
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  - DCO: [email protected]
+  account: garthlei
+- sn: Lemke
+  cn: James Lemke
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: jwlemke
+  inactive: true
+- sn: Leoshkevich
+  cn: Ilya Leoshkevich
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: iii
+- sn: Lerdsuwanakij
+  cn: Kriang Lerdsuwanakij
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: lerdsuwa
+  inactive: true
+- sn: Li
+  cn: Pan Li
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: panli
+- sn: Li
+  cn: Pengfei Li
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: pfustc
+- sn: Li
+  cn: Renlin Li
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: renlin
+  inactive: true
+- sn: Li
+  cn: Xinliang David Li
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: davidxl
+  inactive: true
+- sn: Lin
+  cn: Kewen Lin
+  email:
+  - [email protected]
+  roles:
+  - Maintainer: rs6000/powerpc port
+  - WriteAfter
+  account: linkw
+- sn: Liqin
+  cn: Chen Liqin
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: liqin
+  inactive: true
+- sn: Liska
+  cn: Martin Liska
+  email:
+  - [email protected]
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  - DCO: [email protected]
+  account: marxin
+- sn: Liu
+  cn: Hao Liu
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: hliu
+- sn: Liu
+  cn: Hongtao Liu
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - Maintainer: i386 vector ISA extns
+  - WriteAfter
+  account: liuhongt
+  aliases:
+  - liuhongt
+  - hongtao.liu
+- sn: Liu
+  cn: Jiangning Liu
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: liujiangning
+  inactive: true
+- sn: Liu
+  cn: Sa Liu
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: saliu
+  inactive: true
+- sn: Loader
+  cn: Ralph Loader
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: ralph
+  inactive: true
+- sn: Lobo
+  cn: Sheldon Lobo
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: smlobo
+  inactive: true
+- sn: Loki
+  cn: Gabor Loki
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: loki
+  inactive: true
+- sn: Longo
+  cn: Matthieu Longo
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: mlongo
+- sn: Loosemore
+  cn: Sandra Loosemore
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - Maintainer: docs co-maintainer
+  - WriteAfter
+  account: sandra
+- sn: López-Ibáñez
+  cn: Manuel López-Ibáñez
+  email:
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: manu
+  inactive: true
+- sn: Love
+  cn: Carl Love
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: carll
+- sn: Lowden
+  cn: James K. Lowden
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - Maintainer: COBOL front end
+  - WriteAfter
+  account: jklowden
+- sn: Löwis
+  cn: Martin v. Löwis
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: loewis
+  inactive: true
+- sn: Lu
+  cn: Edwin Lu
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: ewlu
+- sn: Lu
+  cn: H.J. Lu
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  - DCO: [email protected]
+  account: hjl
+- sn: Luo
+  cn: Xiong Hu Luo
+  email:
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: luoxhu
+  inactive: true
+- sn: Lv
+  cn: Bin Bin Lv
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: shlb
+  inactive: true
+- sn: Lyon
+  cn: Christophe Lyon
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - Reviewer: arm port (MVE)
+  - WriteAfter
+  account: clyon
+- sn: Ma
+  cn: Jin Ma
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: majin
+- sn: Ma
+  cn: Jun Ma
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: junma
+  inactive: true
+- sn: Ma
+  cn: Yuao Ma
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  - DCO: [email protected]
+  account: yuao
+- sn: Machado
+  cn: Luis Machado
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: luisgpm
+- sn: MacLeod
+  cn: Andrew MacLeod
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - Maintainer: '*vrp, ranger'
+  - Maintainer: tree-ssa
+  - WriteAfter
+  account: amacleod
+- sn: Mahkovec
+  cn: Ziga Mahkovec
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: ziga
+  inactive: true
+- sn: Makarov
+  cn: Vladimir Makarov
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - Maintainer: register allocation
+  - Maintainer: scheduler (+ haifa)
+  - WriteAfter
+  account: vmakarov
+  aliases:
+  - Vladimir N. Makarov
+- sn: Malcolm
+  cn: David Malcolm
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - Maintainer: diagnostic messages
+  - Maintainer: gdbhooks.py
+  - Maintainer: jit
+  - Maintainer: libcpp
+  - Maintainer: static analyzer
+  - WriteAfter
+  account: dmalcolm
+- sn: Malcomson
+  cn: Matthew Malcomson
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  - DCO: [email protected]
+  account: matmal01
+- sn: Maltsev
+  cn: Mikhail Maltsev
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: miyuki
+  inactive: true
+- sn: Marchesi
+  cn: Jose E. Marchesi
+  email:
+  - [email protected]
+  - [email protected]
+  - [email protected]
+  roles:
+  - Maintainer: bpf port
+  - Maintainer: Algol 68
+    email: [email protected]
+  - Maintainer: libga68
+    email: [email protected]
+  - WriteAfter
+  - DCO: [email protected]
+  account: jemarch
+- sn: Markianos-Wright
+  cn: Stamatis Markianos-Wright
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: stammark
+  inactive: true
+- sn: Marlier
+  cn: Patrick Marlier
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: pmarlier
+  inactive: true
+- sn: Martin
+  cn: Simon Martin
+  email:
+  - [email protected]
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: simartin
+- sn: Martinez
+  cn: Alejandro Martinez
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: alejandro
+  inactive: true
+- sn: Mathew
+  cn: Ranjit Mathew
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: rmathew
+  inactive: true
+- sn: Matos
+  cn: Paulo Matos
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: pmatos
+  inactive: true
+- sn: Matsui
+  cn: Ken Matsui
+  email:
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: kmatsui
+- sn: Matz
+  cn: Michael Matz
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: matz
+- sn: McGary
+  cn: Greg McGary
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: gkm
+  inactive: true
+- sn: McGrath
+  cn: Roland McGrath
+  email:
+  - [email protected]
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: roland
+- sn: McKinlay
+  cn: Bryce McKinlay
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: bryce
+  inactive: true
+- sn: Meakin
+  cn: Karl Meakin
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: karmea01
+- sn: Megacz
+  cn: Adam Megacz
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: megacz
+  inactive: true
+- sn: Mei
+  cn: Bingfeng Mei
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: meibf
+  inactive: true
+- sn: Meissner
+  cn: Michael Meissner
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - Global
+  - Maintainer: scheduler (+ haifa)
+  - WriteAfter
+  account: meissner
+  inactive: true
+- sn: Melcr
+  cn: Josef Melcr
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: jmelcr
+- sn: Merrill
+  cn: Jason Merrill
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - Global
+  - Maintainer: c++
+  - Maintainer: '*gimpl*'
+  - Maintainer: dwarf debugging code
+  - WriteAfter
+  account: jason
+- sn: Meyering
+  cn: Jim Meyering
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: meyering
+  inactive: true
+- sn: Michlmayr
+  cn: Martin Michlmayr
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: tbm
+  inactive: true
+- sn: Miller
+  cn: David S. Miller
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - Global
+  - Maintainer: sparc port
+  - Maintainer: jump.cc
+  - WriteAfter
+  account: davem
+  inactive: true
+- sn: Millward
+  cn: Lee Millward
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: lmillward
+  inactive: true
+- sn: Mir
+  cn: Immad Mir
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  - DCO: [email protected]
+  account: mir
+  inactive: true
+- sn: Miranda
+  cn: Cupertino Miranda
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: cupermir
+- sn: Mladjenovic
+  cn: Dragan Mladjenovic
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: draganm
+  inactive: true
+- sn: Modra
+  cn: Alan Modra
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: amodra
+- sn: Moene
+  cn: Toon Moene
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - Reviewer: Fortran
+  - WriteAfter
+  account: toon
+- sn: Monakov
+  cn: Alexander Monakov
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - Reviewer: selective scheduling
+  - WriteAfter
+  account: amonakov
+- sn: Monteiro
+  cn: Pietro Monteiro
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: pietro
+- sn: Moore
+  cn: Catherine Moore
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: clm
+  inactive: true
+- sn: Morin
+  cn: Mikael Morin
+  email:
+  - [email protected]
+  roles:
+  - Reviewer: Fortran
+  - WriteAfter
+  account: mikael
+- sn: Morrison
+  cn: James A. Morrison
+  email:
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: phython
+  inactive: true
+- sn: Moses
+  cn: Brooks Moses
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: brooks
+  inactive: true
+- sn: Mueller
+  cn: Dirk Mueller
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: mueller
+  inactive: true
+- sn: Muldoon
+  cn: Phil Muldoon
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: pmuldoon
+  inactive: true
+- sn: Mulley
+  cn: Gaius Mulley
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - Maintainer: Modula-2 front end
+  - WriteAfter
+  - DCO: [email protected]
+  account: gaius
+- sn: Müllner
+  cn: Christoph Müllner
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: cmuellner
+- sn: Munnangi
+  cn: Shreya Munnangi
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - DCO: [email protected]
+  - DCO: [email protected]
+- sn: Munroe
+  cn: Steven Munroe
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: munroesj
+- sn: Muyter
+  cn: Philippe De Muyter
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - Maintainer: m68k-motorola-sysv port
+  - WriteAfter
+  account: phdm
+  inactive: true
+- sn: Myers
+  cn: Joseph Myers
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - Global
+  - Maintainer: C front end/ISO C99
+  - Maintainer: docs co-maintainer
+  - Maintainer: docstring relicensing
+  - Maintainer: i18n
+  - Maintainer: option handling
+  - Maintainer: soft-fp
+  - Reviewer: driver
+  - WriteAfter
+  account: jsm28
+- sn: Myers
+  cn: Nathan Myers
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: ncm
+- sn: Nagy
+  cn: Szabolcs Nagy
+  email:
+  - [email protected]
+  roles:
+  - WriteAfter
+  - DCO: [email protected]
+  account: nsz
+  inactive: true
+- sn: Nascimento
+  cn: Victor Do Nascimento
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: victorldn
+- sn: Neill
+  cn: Quentin Neill
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: qneill
+  inactive: true
+- sn: Nemet
+  cn: Adam Nemet
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: nemet
+  inactive: true
+- sn: Nerode
+  cn: Nathanael Nerode
+  email:
+  - [email protected]
+  roles:
+  - Maintainer: build machinery (*.in)
+  - WriteAfter
+  account: neroden
+  inactive: true
+- sn: Neumann
+  cn: Thomas Neumann
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: tneumann
+  inactive: true
+- sn: Nicolaescu
+  cn: Dan Nicolaescu
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: dann
+  inactive: true
+- sn: Nilsen
+  cn: Kelvin Nilsen
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: kelvin
+  inactive: true
+- sn: Nilsson
+  cn: Hans-Peter Nilsson
+  email:
+  - [email protected]
+  - [email protected]
+  - [email protected]
+  roles:
+  - Maintainer: cris port
+  - Maintainer: mmix port
+    email: [email protected]
+  - WriteAfter
+  account: hp
+- sn: Norris
+  cn: James Norris
+  email:
+  - ''
+  roles:
+  - WriteAfter
+  inactive: true
+- sn: Novillo
+  cn: Diego Novillo
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: dnovillo
+  inactive: true
+- sn: Nuzman
+  cn: Dorit Nuzman
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: dorit
+  inactive: true
+- sn: O'Brien
+  cn: David O'Brien
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: obrien
+  inactive: true
+- sn: O'Donell
+  cn: Carlos O'Donell
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: carlos
+- sn: O'Gorman
+  cn: Peter O'Gorman
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: pogma
+  inactive: true
+- sn: O'Neill
+  cn: Patrick O'Neill
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: poneill
+- sn: Obrzut
+  cn: Braden Obrzut
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: blzut3
+  inactive: true
+- sn: Oi
+  cn: Tsukasa Oi
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: a4lg
+- sn: Oliva
+  cn: Alexandre Oliva
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - Maintainer: frv port
+  - Maintainer: mn10300 port
+  - Maintainer: sh port
+  - Maintainer: build machinery (*.in)
+  - WriteAfter
+  account: aoliva
+- sn: Ornstein
+  cn: Andrea Ornstein
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: andreao
+  inactive: true
+- sn: Orth
+  cn: Rainer Orth
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - Maintainer: solaris
+  - Maintainer: testsuite
+  - WriteAfter
+  account: ro
+- sn: Ostapenko
+  cn: Maxim Ostapenko
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: chefmax
+  inactive: true
+- sn: Palanisamy
+  cn: Jeevitha Palanisamy
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: jeevitha
+  aliases:
+  - Jeevitha
+- sn: Palka
+  cn: Patrick Palka
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - Reviewer: c++
+  - WriteAfter
+  account: ppalka
+- sn: Park
+  cn: Seongbae Park
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - Reviewer: dataflow
+  - Reviewer: register allocation
+  - WriteAfter
+  account: spark
+  inactive: true
+- sn: Parmar
+  cn: Kishan Parmar
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: kishan
+- sn: Parvathaneni
+  cn: Srinath Parvathaneni
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: sripar01
+- sn: Patel
+  cn: Devang Patel
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: dpatel
+  inactive: true
+- sn: Patry
+  cn: Pierre-Emmanuel Patry
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  - DCO: [email protected]
+  account: pep
+- sn: Pavenis
+  cn: Andris Pavenis
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: andris
+  inactive: true
+- sn: Pereira
+  cn: Fernando Pereira
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: pronesto
+  inactive: true
+- sn: Pero
+  cn: Nicola Pero
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - Maintainer: libobjc
+  - WriteAfter
+  account: nicola
+  inactive: true
+- sn: Perta
+  cn: Sebastian Perta
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: sebastianperta
+  inactive: true
+- sn: Peryt
+  cn: Sebastian Peryt
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: speryt
+  inactive: true
+- sn: Pettersson
+  cn: Mikael Pettersson
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  - DCO: [email protected]
+  account: mikpe
+- sn: Pfau
+  cn: Johannes Pfau
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: jpfau
+  inactive: true
+- sn: Pfeifer
+  cn: Gerald Pfeifer
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - Maintainer: docs co-maintainer
+  - Maintainer: docstring relicensing
+  - Maintainer: web pages
+  - WriteAfter
+  account: gerald
+- sn: Phatak
+  cn: Kaushik Phatak
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: kaushikp
+  inactive: true
+- sn: Pinski
+  cn: Andrew Pinski
+  email:
+  - [email protected]
+  - [email protected]
+  - [email protected]
+  - [email protected]
+  - [email protected]
+  roles:
+  - Global
+  - Maintainer: libobjc
+    email: [email protected]
+  - Reviewer: aarch64 port
+  - WriteAfter: [email protected]
+  - DCO: [email protected]
+  - DCO: [email protected]
+  account: pinskia
+- sn: Pitre
+  cn: Nicolas Pitre
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: nico
+  inactive: true
+- sn: Ploujnikov
+  cn: Michael Ploujnikov
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: plouj
+  inactive: true
+- sn: Pluzhnikov
+  cn: Paul Pluzhnikov
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: ppluzhnikov
+  inactive: true
+- sn: Polacek
+  cn: Marek Polacek
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - Reviewer: C front end
+  - WriteAfter
+  account: mpolacek
+- sn: Pop
+  cn: Antoniu Pop
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: apop
+  inactive: true
+- sn: Pop
+  cn: Sebastian Pop
+  email:
+  - [email protected]
+  - [email protected]
+  - [email protected]
+  roles:
+  - Maintainer: scev, data dependence
+  - Maintainer: tree browser/unparser
+  - Reviewer: Graphite
+  - WriteAfter
+  account: spop
+- sn: Poulhiès
+  cn: Marc Poulhiès
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - Maintainer: Ada front end
+  - WriteAfter
+  account: dkm
+- sn: Poyarekar
+  cn: Siddhesh Poyarekar
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  - DCO: [email protected]
+  account: siddhesh
+- sn: Praveen
+  cn: Vidya Praveen
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: vp
+  inactive: true
+- sn: Preud'homme
+  cn: Thomas Preud'homme
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: thopre01
+  inactive: true
+- sn: Priour
+  cn: Benjamin Priour
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: vultkayn
+- sn: Prus
+  cn: Vladimir Prus
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: vprus
+  inactive: true
+- sn: Qadeer
+  cn: Hafiz Abid Qadeer
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: abidh
+- sn: Qi
+  cn: Yao Qi
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: qiyao
+  inactive: true
+- sn: Qu
+  cn: Xianmiao Qu
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - Maintainer: c-sky port
+  - WriteAfter
+  account: xianmiao
+- sn: Quinn
+  cn: Jerry Quinn
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: jlquinn
+  inactive: true
+- sn: Radhakrishnan
+  cn: Ramana Radhakrishnan
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - Maintainer: arm port
+  - WriteAfter
+  - DCO: [email protected]
+  account: ramana
+- sn: Rahimi
+  cn: Navid Rahimi
+  email:
+  - [email protected]
+  roles:
+  - WriteAfter
+  - DCO: [email protected]
+  account: navidr
+  inactive: true
+- sn: Raj
+  cn: Rishi Raj
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  - DCO: [email protected]
+  account: rshraj45035
+  inactive: true
+- sn: Raman
+  cn: Easwaran Raman
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: eraman
+  inactive: true
+- sn: Ramsay
+  cn: Joe Ramsay
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: joeramsay
+- sn: Rasmussen
+  cn: Rolf Rasmussen
+  email:
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: rolfwr
+  inactive: true
+- sn: Reese
+  cn: Fritz Reese
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: foreese
+  inactive: true
+- sn: Reichelt
+  cn: Volker Reichelt
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: reichelt
+  inactive: true
+- sn: Rennecke
+  cn: Joern Rennecke
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: amylaar
+- sn: Reutner-Fischer
+  cn: Bernhard Reutner-Fischer
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: aldot
+- sn: Richards
+  cn: Alfie Richards
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: alfierichards
+- sn: Riegel
+  cn: Torvald Riegel
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - Maintainer: libitm
+  - WriteAfter
+  account: torvald
+  inactive: true
+- sn: Rix
+  cn: Tom Rix
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: trix
+  inactive: true
+- sn: Rodat
+  cn: Pierre-Marie de Rodat
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - Maintainer: Ada front end
+  - WriteAfter
+  account: pmderodat
+  aliases:
+  - Pierre Marie de Rodat
+- sn: Rodgers
+  cn: Thomas Rodgers
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: rodgertq
+- sn: Rodrigues
+  cn: Craig Rodrigues
+  email:
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: rodrigc
+  inactive: true
+- sn: Rohou
+  cn: Erven Rohou
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: erven
+  inactive: true
+- sn: Rosen
+  cn: Ira Rosen
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: irar
+  inactive: true
+- sn: Roux
+  cn: Yvan Roux
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: yroux
+  inactive: true
+- sn: Rozenfeld
+  cn: Eugene Rozenfeld
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - Maintainer: AutoFDO
+  - WriteAfter
+  account: erozen
+- sn: Rozycki
+  cn: Maciej W. Rozycki
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - Maintainer: vax port
+  - WriteAfter
+  account: macro
+- sn: Rupp
+  cn: Douglas Rupp
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - Maintainer: VMS
+  - WriteAfter
+  account: rupp
+  inactive: true
+- sn: Rus
+  cn: Silvius Rus
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: rus
+  inactive: true
+- sn: Sachs
+  cn: Matthew Sachs
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: matthewg
+  inactive: true
+- sn: Saini
+  cn: Ankur Saini
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: arsenic
+  inactive: true
+- sn: Sandanagobalane
+  cn: Hariharan Sandanagobalane
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: hariharans
+  inactive: true
+- sn: Sandiford
+  cn: Richard Sandiford
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - Global
+  - Maintainer: gen* on machine desc
+  - Reviewer: wide-int
+  - WriteAfter
+  account: rsandifo
+- sn: Sandoe
+  cn: Iain Sandoe
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - Maintainer: darwin port
+  - Maintainer: objective-c/c++
+  - WriteAfter
+  account: iains
+- sn: Sands
+  cn: Duncan Sands
+  email:
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: baldrick
+  inactive: true
+- sn: Saraswati
+  cn: Sujoy Saraswati
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: ssaraswati
+  inactive: true
+- sn: Saunders
+  cn: Trevor Saunders
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  - DCO: [email protected]
+  account: tbsaunde
+  inactive: true
+- sn: Sawdey
+  cn: Aaron Sawdey
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: acsawdey
+  inactive: true
+- sn: Sayle
+  cn: Roger Sayle
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: sayle
+- sn: Schlüter
+  cn: Tobias Schlüter
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - Reviewer: Fortran
+  - WriteAfter
+  account: tobi
+  inactive: true
+- sn: Schmidt
+  cn: Bernd Schmidt
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - Global
+  - Maintainer: c6x port
+  - WriteAfter
+  account: bernds
+  inactive: true
+- sn: Schmidt
+  cn: Bill Schmidt
+  email:
+  - [email protected]
+  roles:
+  - DCO: [email protected]
+  inactive: true
+- sn: Schmidt
+  cn: Will Schmidt
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: willschm
+  inactive: true
+- sn: Schmitz
+  cn: Jennifer Schmitz
+  email:
+  - [email protected]
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: jschmitz
+- sn: Schulze Frielinghaus
+  cn: Stefan Schulze Frielinghaus
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - Maintainer: s390 port
+  - WriteAfter
+  account: stefansf
+- sn: Schwab
+  cn: Andreas Schwab
+  email:
+  - [email protected]
+  - [email protected]
+  - [email protected]
+  roles:
+  - Maintainer: m68k port
+  - WriteAfter
+  account: schwab
+- sn: Schwarz
+  cn: Tilo Schwarz
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: tiloschwarz
+  inactive: true
+- sn: Schwinge
+  cn: Thomas Schwinge
+  email:
+  - [email protected]
+  - [email protected]
+  - [email protected]
+  roles:
+  - Maintainer: nvptx port
+  - Maintainer: GNU/Hurd
+    email: [email protected]
+  - Maintainer: libgomp (OpenACC)
+  - Maintainer: OpenACC
+  - WriteAfter: [email protected]
+  account: tschwinge
+- sn: Sebor
+  cn: Martin Sebor
+  email:
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: msebor
+  inactive: true
+- sn: Seketeli
+  cn: Dodji Seketeli
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - Maintainer: diagnostic messages
+  - Maintainer: line map
+  - Reviewer: libsanitizer, asan.cc
+  - WriteAfter
+  account: dodji
+  inactive: true
+- sn: Seldal
+  cn: Svein Seldal
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: sveinse
+  inactive: true
+- sn: Selvaraj
+  cn: Senthil Kumar Selvaraj
+  email:
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: saaadhu
+- sn: Serebryany
+  cn: Kostya Serebryany
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - Reviewer: libsanitizer, asan.cc
+  - WriteAfter
+  account: kcc
+  inactive: true
+- sn: Seufer
+  cn: Thiemo Seufer
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: ths
+  inactive: true
+- sn: Seurer
+  cn: Bill Seurer
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: seurer
+  inactive: true
+- sn: Shang
+  cn: Yunhai Shang
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - Maintainer: c-sky port
+  - WriteAfter
+  account: shangyunhai
+  inactive: true
+- sn: Shead
+  cn: Nathaniel Shead
+  email:
+  - [email protected]
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  - DCO: [email protected]
+  account: nshead
+- sn: Shen
+  cn: Tim Shen
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: timshen
+  inactive: true
+- sn: Sherrill
+  cn: Joel Sherrill
+  email:
+  - [email protected]
+  - [email protected]
+  - [email protected]
+  roles:
+  - Maintainer: RTEMS Ports
+  - WriteAfter
+  account: joel
+- sn: Sherwood
+  cn: David Sherwood
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: davids
+  inactive: true
+- sn: Sidwell
+  cn: Nathan Sidwell
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - Maintainer: c++
+  - Maintainer: gcov
+  - WriteAfter
+  - DCO: [email protected]
+  account: nathan
+- sn: Singhai
+  cn: Sharad Singhai
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: singhai
+  inactive: true
+- sn: Singler
+  cn: Johannes Singler
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: singler
+  inactive: true
+- sn: Sirl
+  cn: Franz Sirl
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: sirl
+- sn: Sjodin
+  cn: Jan Sjodin
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: jsjodin
+  inactive: true
+- sn: Smigiel
+  cn: Trevor Smigiel
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: tsmigiel
+  inactive: true
+- sn: Smith-Rowland
+  cn: Edward Smith-Rowland
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  - DCO: [email protected]
+  account: emsr
+  inactive: true
+- sn: Sokolov
+  cn: Anatoly Sokolov
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: aesok
+  inactive: true
+- sn: Sokolov
+  cn: Michael Sokolov
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: msokolov
+  inactive: true
+- sn: Sonar
+  cn: Jayant Sonar
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: jayants
+  inactive: true
+- sn: Song
+  cn: Fangrui Song
+  email:
+  - [email protected]
+  roles:
+  - WriteAfter
+  - DCO: [email protected]
+  account: maskray
+- sn: Stallman
+  cn: Richard Stallman
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: rms
+  inactive: true
+- sn: Starynkevitch
+  cn: Basile Starynkevitch
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: bstarynk
+- sn: Staszak
+  cn: Jakub Staszak
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: kuba
+  inactive: true
+- sn: Stott
+  cn: Graham Stott
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: grahams
+  inactive: true
+- sn: Stubbs
+  cn: Andrew Stubbs
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - Maintainer: amdgcn port
+  - WriteAfter
+  account: ams
+- sn: Stump
+  cn: Mike Stump
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - Maintainer: darwin port
+  - Maintainer: objective-c/c++
+  - Maintainer: testsuite
+  - Reviewer: wide-int
+  - WriteAfter
+  account: mrs
+- sn: Sturm
+  cn: Jeff Sturm
+  email:
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: jsturm
+  inactive: true
+- sn: Su
+  cn: YunQiang Su
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - Maintainer: mips port
+  - WriteAfter
+  account: syq
+- sn: Suchanek
+  cn: Robert Suchanek
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: rts
+  inactive: true
+- sn: Supers1ngular
+  cn: Supers1ngular
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: supers1ngular
+- sn: Sutton
+  cn: Andrew Sutton
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: asutton
+  inactive: true
+- sn: Svelto
+  cn: Gabriele Svelto
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: gsvelto
+  inactive: true
+- sn: Svensson
+  cn: Torbjörn Svensson
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: azoff
+- sn: Tabacu
+  cn: Toma Tabacu
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: tomtab
+  inactive: true
+- sn: Tahir
+  cn: Omar Tahir
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: omatah
+  inactive: true
+- sn: Tallam
+  cn: Sriraman Tallam
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: tmsriram
+  inactive: true
+- sn: Tang
+  cn: Chung-Lin Tang
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: cltang
+- sn: Tardieu
+  cn: Samuel Tardieu
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: sam
+  inactive: true
+- sn: Taylor
+  cn: Ian Lance Taylor
+  email:
+  - [email protected]
+  - [email protected]
+  - [email protected]
+  roles:
+  - Global
+  - Maintainer: go
+  - Maintainer: fp-bit
+  - Maintainer: libbacktrace
+  - Maintainer: libgcc
+  - Maintainer: libgo
+  - Maintainer: libiberty
+  - Maintainer: middle-end
+  - WriteAfter
+  account: ian
+- sn: Tebbs
+  cn: Sam Tebbs
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: samtebbs
+  inactive: true
+- sn: Telidevulapalli
+  cn: Vijay Telidevulapalli
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: vtelidev
+  aliases:
+  - Vijay Shankar
+- sn: Temirbulatov
+  cn: Dinar Temirbulatov
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: dinar
+  inactive: true
+- sn: Thomas
+  cn: Matt Thomas
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - Maintainer: vax port
+  - WriteAfter
+  account: matt
+  inactive: true
+- sn: Thomas
+  cn: Paul Thomas
+  email:
+  - [email protected]
+  roles:
+  - Reviewer: Fortran
+  - WriteAfter
+  account: pault
+- sn: Thomas
+  cn: Philipp Thomas
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - Maintainer: i18n
+  - WriteAfter
+  account: pthomas
+  inactive: true
+- sn: Thorpe
+  cn: Jason Thorpe
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - Maintainer: netbsd
+  - WriteAfter
+  account: thorpej
+  inactive: true
+- sn: Thorup
+  cn: Kresten Krab Thorup
+  email:
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: krab
+  inactive: true
+- sn: Tice
+  cn: Caroline Tice
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - Maintainer: libvtv
+  - WriteAfter
+  account: ctice
+  inactive: true
+- sn: Tietz
+  cn: Kai Tietz
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: ktietz
+  inactive: true
+- sn: Tkachov
+  cn: Kyrylo Tkachov
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - Maintainer: aarch64 port
+  - WriteAfter
+  - DCO: [email protected]
+  account: ktkachov
+- sn: Tobler
+  cn: Andreas Tobler
+  email:
+  - [email protected]
+  roles:
+  - Maintainer: freebsd
+  - WriteAfter
+  account: andreast
+  inactive: true
+- sn: Tocar
+  cn: Ilya Tocar
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: tocarip
+  inactive: true
+- sn: Tomner
+  cn: Petter Tomner
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  - DCO: [email protected]
+  account: tomner
+  inactive: true
+- sn: Tomsich
+  cn: Philipp Tomsich
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: ptomsich
+- sn: Towner
+  cn: Daniel Towner
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: dwtowner
+  inactive: true
+- sn: Trifunovic
+  cn: Konrad Trifunovic
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: trifunovic
+  inactive: true
+- sn: Trippelsdorf
+  cn: Markus Trippelsdorf
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: trippels
+  inactive: true
+- sn: Trofimovich
+  cn: Sergei Trofimovich
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: slyfox
+- sn: Tromey
+  cn: Tom Tromey
+  email:
+  - [email protected]
+  - [email protected]
+  - [email protected]
+  roles:
+  - Reviewer: libcpp
+  - WriteAfter
+  account: tromey
+- sn: Tsimbalist
+  cn: Igor Tsimbalist
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: itsimbal
+  inactive: true
+- sn: Uecker
+  cn: Martin Uecker
+  email:
+  - [email protected]
+  roles:
+  - WriteAfter
+  - DCO: [email protected]
+  account: uecker
+- sn: Ung
+  cn: David Ung
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: davidu
+  inactive: true
+- sn: Vachharajani
+  cn: Neil Vachharajani
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: nvachhar
+  inactive: true
+- sn: Van Hees
+  cn: Kris Van Hees
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: kvanhees
+  inactive: true
+- sn: VandeVondele
+  cn: Joost VandeVondele
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: vondele
+  inactive: true
+- sn: Vehreschild
+  cn: Andre Vehreschild
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: vehre
+- sn: Velenko
+  cn: Alex Velenko
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: avelenko
+  inactive: true
+- sn: Verbin
+  cn: Ilya Verbin
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: iverbin
+  inactive: true
+- sn: Vieira
+  cn: Andre Vieira
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: avieira
+  aliases:
+  - Andre Simoes Dias Vieira
+- sn: Villemoes
+  cn: Rasmus Villemoes
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: villemoes
+- sn: Vivekanandarajah
+  cn: Kugan Vivekanandarajah
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  - DCO: [email protected]
+  account: kugan
+- sn: Volkov
+  cn: Artemiy Volkov
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: artemiyv
+- sn: Vollweiler
+  cn: Marcel Vollweiler
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: marcel
+  inactive: true
+- sn: Voutilainen
+  cn: Ville Voutilainen
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: ville
+- sn: Vries
+  cn: Tom de Vries
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - Maintainer: nvptx port
+  - WriteAfter
+  account: vries
+- sn: Vukicevic
+  cn: Nenad Vukicevic
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: nenadv
+  inactive: true
+- sn: Vyukov
+  cn: Dmitry Vyukov
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - Reviewer: libsanitizer, asan.cc
+  - WriteAfter
+  account: dvyukov
+  inactive: true
+- sn: Waffl3x
+  cn: Waffl3x
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: waffl3x
+- sn: Wakely
+  cn: Jonathan Wakely
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - Maintainer: c++ runtime libs
+  - WriteAfter
+  - DCO: [email protected]
+  account: redi
+- sn: Walfridsson
+  cn: Krister Walfridsson
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - Maintainer: netbsd
+  - WriteAfter
+  account: kristerw
+- sn: Wang
+  cn: Feng Wang
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: fengwang
+  inactive: true
+- sn: Wang
+  cn: Feng Wang
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: fengwang1792
+- sn: Wang
+  cn: Hongyu Wang
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: hongyuw
+- sn: Wang
+  cn: Jiong Wang
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: jiwang
+  inactive: true
+- sn: Waterman
+  cn: Andrew Waterman
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - Maintainer: riscv port
+  - WriteAfter
+  account: aswaterman
+- sn: Webb
+  cn: Stephen M. Webb
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: smw
+  inactive: true
+- sn: Wehle
+  cn: John Wehle
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: wehle
+  inactive: true
+- sn: Weigand
+  cn: Ulrich Weigand
+  email:
+  - [email protected]
+  - [email protected]
+  - [email protected]
+  roles:
+  - Maintainer: s390 port
+  - Maintainer: reload
+  - WriteAfter
+  account: uweigand
+- sn: Weil
+  cn: Janus Weil
+  email:
+  - [email protected]
+  roles:
+  - Reviewer: Fortran
+  - WriteAfter
+  account: janus
+  inactive: true
+- sn: Weimer
+  cn: Florian Weimer
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: fw
+- sn: Weinberg
+  cn: Zack Weinberg
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: zack
+  inactive: true
+- sn: Westbrooks
+  cn: Alexander Westbrooks
+  email:
+  - [email protected]
+  roles:
+  - WriteAfter
+  - DCO: [email protected]
+  account: alexanderw
+  inactive: true
+- sn: Wielaard
+  cn: Mark Wielaard
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: mark
+- sn: Wienskoski
+  cn: Edmar Wienskoski
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: edmarwjr
+  inactive: true
+- sn: Wild
+  cn: Ollie Wild
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: aaw
+  inactive: true
+- sn: Wildenhues
+  cn: Ralf Wildenhues
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - Maintainer: build machinery (*.in)
+  - WriteAfter
+  account: rwild
+  inactive: true
+- sn: Williams
+  cn: Kevin Williams
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: kwilliam
+  inactive: true
+- sn: Wilson
+  cn: Jim Wilson
+  email:
+  - [email protected]
+  - [email protected]
+  - [email protected]
+  roles:
+  - Global
+  - Maintainer: riscv port
+    email: [email protected]
+  - Maintainer: debugging code
+  - Maintainer: scheduler (+ haifa)
+  - WriteAfter: [email protected]
+  account: wilson
+  inactive: true
+- sn: Wirkus
+  cn: Przemyslaw Wirkus
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: wirkus
+  inactive: true
+- sn: Wood
+  cn: Carlo Wood
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: carlo
+  inactive: true
+- sn: Woodruff
+  cn: Jackson Woodruff
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: jcw
+  inactive: true
+- sn: Wright
+  cn: Jonathan Wright
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: jonwri01
+  inactive: true
+- sn: Wu
+  cn: Chung-Ju Wu
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - Maintainer: nds32 port
+  - WriteAfter
+  - DCO: [email protected]
+  account: jasonwucj
+- sn: Wu
+  cn: Le-Chun Wu
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - Reviewer: Plugin
+  - WriteAfter
+  account: lcwu
+  inactive: true
+- sn: Xi
+  cn: Ruoyao Xi
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: xry111
+  aliases:
+  - Xi Ruoyao
+- sn: Xing
+  cn: Mingjie Xing
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: xmj
+  inactive: true
+- sn: Xu
+  cn: Chenghua Xu
+  email:
+  - [email protected]
+  - [email protected]
+  - [email protected]
+  roles:
+  - Maintainer: LoongArch port
+  - WriteAfter: [email protected]
+  account: paulhua
+  inactive: true
+- sn: Xu
+  cn: Li Xu
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: xuli
+  aliases:
+  - xuli
+- sn: Xue
+  cn: Feng Xue
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: fxue
+- sn: Yang
+  cn: Canqun Yang
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: canqun
+  inactive: true
+- sn: Yang
+  cn: Fei Yang
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: fyang
+  inactive: true
+- sn: Yasskin
+  cn: Jeffrey Yasskin
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: jyasskin
+  inactive: true
+- sn: Ye
+  cn: Joey Ye
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: jye2
+  inactive: true
+- sn: Yeung
+  cn: Kwok Cheung Yeung
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: kcy
+- sn: Yong
+  cn: Jonathan Yong
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - Maintainer: cygwin, mingw-w64
+  - WriteAfter
+  account: jyong
+- sn: Yorsh
+  cn: Greta Yorsh
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: gretay
+  inactive: true
+- sn: Yukhin
+  cn: Kirill Yukhin
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - Maintainer: i386 vector ISA extns
+  - WriteAfter
+  account: kyukhin
+  inactive: true
+- sn: Yuste
+  cn: David Yuste
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: dyuste
+  inactive: true
+- sn: Zadeck
+  cn: Kenneth Zadeck
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - Reviewer: dataflow
+  - Reviewer: register allocation
+  - Reviewer: wide-int
+  - WriteAfter
+  account: zadeck
+  inactive: true
+- sn: Zanella
+  cn: Adhemerval Zanella
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: azanella
+  inactive: true
+- sn: Zeng
+  cn: Xiao Zeng
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: zeng
+- sn: Zhang
+  cn: Dennis Zhang
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: xczhang
+  inactive: true
+- sn: Zhang
+  cn: Jie Zhang
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - Maintainer: bfin port
+  - WriteAfter
+  account: jiez
+  inactive: true
+- sn: Zhang
+  cn: Yufeng Zhang
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: yufeng
+  inactive: true
+- sn: Zhao
+  cn: Qing Zhao
+  email:
+  - [email protected]
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: qinzhao
+- sn: Zhao
+  cn: Shujing Zhao
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: pzhao
+  inactive: true
+- sn: Zheng
+  cn: Pengxuan Zheng
+  email:
+  - [email protected]
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  - DCO: [email protected]
+  - DCO: [email protected]
+  account: pzheng
+- sn: Zhong
+  cn: Juzhe Zhong
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - Reviewer: riscv port
+  - WriteAfter
+  account: juzhe
+- sn: Zhuykov
+  cn: Roman Zhuykov
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - Maintainer: modulo-scheduler
+  - WriteAfter
+  account: zhroma
+  inactive: true
+- sn: Ziegler
+  cn: Jon Ziegler
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: jonz
+  inactive: true
+- sn: Zinsly
+  cn: Raphael Zinsly
+  email:
+  - [email protected]
+  - [email protected]
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  - DCO: [email protected]
+  - DCO: [email protected]
+  account: rzinsly
+  aliases:
+  - Raphael Moreira Zinsly
+- sn: Zippel
+  cn: Roman Zippel
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: zippel
+  inactive: true
+- sn: Zissulescu
+  cn: Claudiu Zissulescu
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - Maintainer: arc port
+  - WriteAfter
+  account: claziss
+- sn: Zlomek
+  cn: Josef Zlomek
+  email:
+  - [email protected]
+  - [email protected]
+  roles:
+  - WriteAfter
+  account: zlomek
+  inactive: true
+subsystems:
+- name: '*gimpl*'
+  class: Subsystem
+  labels: []
+- name: '*vrp, ranger'
+  class: Subsystem
+  labels: []
+- name: Ada front end
+  class: Lang
+  labels: []
+- name: Algol 68
+  class: Lang
+  labels: []
+- name: Android sub-port
+  class: OS
+  labels: []
+- name: AutoFDO
+  class: Subsystem
+  labels: []
+- name: C front end
+  labels: []
+- name: C front end/ISO C99
+  class: Lang
+  labels: []
+- name: COBOL front end
+  class: Lang
+  labels: []
+- name: CTF, BTF
+  labels: []
+- name: CTF, BTF, bpf port
+  labels: []
+- name: D front end
+  class: Lang
+  labels: []
+- name: DJGPP
+  class: OS
+  labels: []
+- name: Fortran
+  labels: []
+- name: GNU/Hurd
+  class: OS
+  labels: []
+- name: Graphite
+  labels: []
+- name: LTO
+  labels: []
+- name: LTO plugin
+  labels: []
+- name: LoongArch port
+  class: CPU
+  labels: []
+- name: Modula-2 front end
+  class: Lang
+  labels: []
+- name: OpenACC
+  class: Subsystem
+  labels: []
+- name: OpenMP
+  class: Subsystem
+  labels: []
+- name: Plugin
+  labels: []
+- name: RTEMS Ports
+  class: OS
+  labels: []
+- name: RTL optimizers
+  class: Subsystem
+  labels: []
+- name: Rust
+  class: Lang
+  labels: []
+- name: VMS
+  class: OS
+  labels: []
+- name: VxWorks ports
+  class: OS
+  labels: []
+- name: aarch64 ldp/stp
+  class: CPU
+  labels: []
+- name: aarch64 port
+  class: CPU
+  labels: []
+- name: aix
+  class: OS
+  labels: []
+- name: alpha port
+  class: CPU
+  labels: []
+- name: amdgcn port
+  class: CPU
+  labels: []
+- name: arc port
+  class: CPU
+  labels: []
+- name: arm port
+  class: CPU
+  labels: []
+- name: arm port (MVE)
+  labels: []
+- name: avr port
+  class: CPU
+  labels: []
+- name: bfin port
+  class: CPU
+  labels: []
+- name: bpf port
+  class: CPU
+  labels: []
+- name: build machinery (*.in)
+  class: Subsystem
+  labels: []
+- name: c++
+  class: Lang
+  labels: []
+- name: c++ runtime libs
+  class: Subsystem
+  labels: []
+- name: c++ runtime libs special modes
+  class: Subsystem
+  labels: []
+- name: c-sky port
+  class: CPU
+  labels: []
+- name: c6x port
+  class: CPU
+  labels: []
+- name: caller-save.cc
+  class: Subsystem
+  labels: []
+- name: callgraph
+  class: Subsystem
+  labels: []
+- name: config.sub/config.guess
+  class: Subsystem
+  labels: []
+- name: cris port
+  class: CPU
+  labels: []
+- name: cygwin, mingw-w64
+  class: OS
+  labels: []
+- name: darwin port
+  class: OS
+  labels: []
+- name: dataflow
+  labels: []
+- name: debugging code
+  class: Subsystem
+  labels: []
+- name: diagnostic messages
+  class: Subsystem
+  labels: []
+- name: docs co-maintainer
+  class: Subsystem
+  labels: []
+- name: docstring relicensing
+  class: Subsystem
+  labels: []
+- name: driver
+  labels: []
+- name: dwarf debugging code
+  class: Subsystem
+  labels: []
+- name: fixincludes
+  class: Subsystem
+  labels: []
+- name: forge integration
+  class: Subsystem
+  labels: []
+- name: fp-bit
+  class: Subsystem
+  labels: []
+- name: fr30 port
+  class: CPU
+  labels: []
+- name: freebsd
+  class: OS
+  labels: []
+- name: frv port
+  class: CPU
+  labels: []
+- name: ft32 port
+  class: CPU
+  labels: []
+- name: gcov
+  class: Subsystem
+  labels: []
+- name: gcse.cc
+  class: Subsystem
+  labels: []
+- name: gdbhooks.py
+  class: Subsystem
+  labels: []
+- name: gen* on machine desc
+  class: Subsystem
+  labels: []
+- name: global opt framework
+  class: Subsystem
+  labels: []
+- name: go
+  class: Lang
+  labels: []
+- name: h8 port
+  class: CPU
+  labels: []
+- name: hppa port
+  class: CPU
+  labels: []
+- name: hpux
+  class: OS
+  labels: []
+- name: i18n
+  class: Subsystem
+  labels: []
+- name: i386 port
+  class: CPU
+  labels: []
+- name: i386 vector ISA extns
+  class: CPU
+  labels: []
+- name: instruction combiner
+  class: Subsystem
+  labels: []
+- name: iq2000 port
+  class: CPU
+  labels: []
+- name: jit
+  class: Subsystem
+  labels: []
+- name: jump.cc
+  class: Subsystem
+  labels: []
+- name: libbacktrace
+  class: Subsystem
+  labels: []
+- name: libcpp
+  class: Subsystem
+  labels: []
+- name: libga68
+  class: Subsystem
+  labels: []
+- name: libgcc
+  class: Subsystem
+  labels: []
+- name: libgo
+  class: Subsystem
+  labels: []
+- name: libgomp
+  class: Subsystem
+  labels: []
+- name: libgomp (OpenACC)
+  class: Subsystem
+  labels: []
+- name: libiberty
+  class: Subsystem
+  labels: []
+- name: libitm
+  class: Subsystem
+  labels: []
+- name: libobjc
+  class: Subsystem
+  labels: []
+- name: libphobos
+  class: Subsystem
+  labels: []
+- name: libquadmath
+  class: Subsystem
+  labels: []
+- name: libsanitizer, asan.cc
+  labels: []
+- name: libvtv
+  class: Subsystem
+  labels: []
+- name: line map
+  class: Subsystem
+  labels: []
+- name: lm32 port
+  class: CPU
+  labels: []
+- name: loop infrastructure
+  class: Subsystem
+  labels: []
+- name: loop ivopts
+  class: Subsystem
+  labels: []
+- name: loop optimizer
+  class: Subsystem
+  labels: []
+- name: m32r port
+  class: CPU
+  labels: []
+- name: m68k port
+  class: CPU
+  labels: []
+- name: m68k port (?)
+  class: CPU
+  labels: []
+- name: m68k-motorola-sysv port
+  class: CPU
+  labels: []
+- name: mcore port
+  class: CPU
+  labels: []
+- name: microblaze
+  class: CPU
+  labels: []
+- name: middle-end
+  class: Subsystem
+  labels: []
+- name: mips port
+  class: CPU
+  labels: []
+- name: mmix port
+  class: CPU
+  labels: []
+- name: mn10300 port
+  class: CPU
+  labels: []
+- name: modulo-scheduler
+  class: Subsystem
+  labels: []
+- name: moxie port
+  class: CPU
+  labels: []
+- name: msp430 port
+  class: CPU
+  labels: []
+- name: nds32 port
+  class: CPU
+  labels: []
+- name: netbsd
+  class: OS
+  labels: []
+- name: nvptx port
+  class: CPU
+  labels: []
+- name: objective-c/c++
+  class: Lang
+  labels: []
+- name: option handling
+  class: Subsystem
+  labels: []
+- name: or1k port
+  class: CPU
+  labels: []
+- name: pair fusion
+  class: Subsystem
+  labels: []
+- name: pdp11 port
+  class: CPU
+  labels: []
+- name: powerpcspe port
+  class: CPU
+  labels: []
+- name: predict.def
+  class: Subsystem
+  labels: []
+- name: profile feedback
+  class: Subsystem
+  labels: []
+- name: pru port
+  class: CPU
+  labels: []
+- name: register allocation
+  class: Subsystem
+  labels: []
+- name: reload
+  class: Subsystem
+  labels: []
+- name: reorg
+  class: Subsystem
+  labels: []
+- name: riscv port
+  class: CPU
+  labels: []
+- name: rs6000 vector extns
+  class: CPU
+  labels: []
+- name: rs6000/powerpc port
+  class: CPU
+  labels: []
+- name: rx port
+  class: CPU
+  labels: []
+- name: s390 port
+  class: CPU
+  labels: []
+- name: scev, data dependence
+  class: Subsystem
+  labels: []
+- name: scheduler (+ haifa)
+  class: Subsystem
+  labels: []
+- name: selective scheduling
+  labels: []
+- name: sh port
+  class: CPU
+  labels: []
+- name: sh-linux-gnu
+  class: OS
+  labels: []
+- name: soft-fp
+  class: Subsystem
+  labels: []
+- name: solaris
+  class: OS
+  labels: []
+- name: sparc port
+  class: CPU
+  labels: []
+- name: static analyzer
+  class: Subsystem
+  labels: []
+- name: testsuite
+  class: Subsystem
+  labels: []
+- name: tree browser/unparser
+  class: Subsystem
+  labels: []
+- name: tree-ssa
+  class: Subsystem
+  labels: []
+- name: v850 port
+  class: CPU
+  labels: []
+- name: vax port
+  class: CPU
+  labels: []
+- name: vectorizer (+ tree-if-conv)
+  class: Subsystem
+  labels: []
+- name: visium port
+  class: CPU
+  labels: []
+- name: web pages
+  class: Subsystem
+  labels: []
+- name: wide-int
+  labels: []
+- name: x86-64 port
+  class: CPU
+  labels: []
+- name: xstormy16 port
+  class: CPU
+  labels: []
+- name: xtensa port
+  class: CPU
+  labels: []
diff --git a/contrib/gen-MAINTAINERS.py b/contrib/gen-MAINTAINERS.py
new file mode 100755
index 000000000000..2ffe998594ae
--- /dev/null
+++ b/contrib/gen-MAINTAINERS.py
@@ -0,0 +1,268 @@
+#!/usr/bin/env python3
+
+# Regenerate the MAINTAINERS file from the YAML data.
+
+# Copyright (C) 2026 Free Software Foundation, Inc.
+#
+# This file is part of GCC.
+#
+# GCC is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3, or (at your option)
+# any later version.
+#
+# GCC is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with GCC; see the file COPYING.  If not, write to
+# the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+# Boston, MA 02110-1301, USA.
+
+
+import locale
+import sys
+
+from operator import itemgetter
+from optparse import OptionParser
+
+import unidecode
+
+import maintainer_utils as maintutils
+
+opts = None
+verbose = False
+active_only = False
+
+boilerplate = {
+    'intro': {
+        'preamble': """Note
+====
+
+This file is autogenerated.  DO NOT EDIT or your changes will be lost.
+Instead, add your details to contrib/MAINTAINERS.yml and run
+
+        contrib/gen-MAINTAINERS.py -o MAINTAINERS MAINTAINERS.yml
+
+This file contains information about people who are permitted to make
+changes to various parts of the compiler and associated libraries.
+
+Please do not contact the people in this file directly to report
+problems in GCC.
+
+For general information about GCC, please visit:
+
+  http://gcc.gnu.org
+
+To report problems in GCC, please visit:
+
+  http://gcc.gnu.org/bugs/
+
+If you'd like to CC a maintainer in bugzilla, please add @gcc.gnu.org
+to the account name given in the Write After Approval section below.
+Please use the email address given in <...> for direct email communication.
+
+Note: when adding someone who has commit access to a more specific section,
+please also ensure that there is a corresponding entry in the Write After
+Approval list, since that list contains the gcc.gnu.org account name.
+
+Maintainers
+===========""",
+    },
+    'global': {
+        'preamble': """
+                        Global Reviewers
+""",
+        'template': "{u[cn]:{w[cn]}} <{u[email]}>",
+        'widths': [('cn', 47)],
+        'filter': {'role': "Global", 'order': ['sn', 'cn', 'email']},
+        'posttext': """
+Note that while global reviewers can approve changes to any part of
+the compiler or associated libraries, they still need approval for
+their own patches from other maintainers or reviewers.
+
+Also note that maintainership of any area covers changes to web pages,
+docs, and the testsuite related to that.""",
+    },
+    'cpu': {
+        'preamble': """
+                        CPU Port Maintainers    (CPU alphabetical order)
+""",
+        'template': "{u[subsystem]:{w[subsystem]}} {u[cn]:{w[cn]}} 
<{u[email]}>",
+        'widths': [('subsystem', 23), ('cn', 23)],
+        'filter': {'role': "Maintainer", 'subclass': "CPU",
+                   'order': ['subsystem', 'sn', 'cn', 'email']},
+    },
+    'os': {
+        'preamble': """
+                        OS Port Maintainers     (OS alphabetical order)
+""",
+        'template': "{u[subsystem]:{w[subsystem]}} {u[cn]:{w[cn]}} 
<{u[email]}>",
+        'widths': [('subsystem', 23), ('cn', 23)],
+        'filter': {'role': "Maintainer", 'subclass': "OS",
+                   'order': ['subsystem', 'sn', 'cn', 'email']},
+    },
+    'lang': {
+        'preamble': """
+                        Language Front Ends Maintainers
+""",
+        'template': "{u[subsystem]:{w[subsystem]}} {u[cn]:{w[cn]}} 
<{u[email]}>",
+        'widths': [('subsystem', 23), ('cn', 23)],
+        'filter': {'role': "Maintainer", 'subclass': "Lang",
+                   'order': ['subsystem', 'sn', 'cn', 'email']},
+    },
+    'various': {
+        'preamble': """
+                        Various Maintainers   (Area alphabetical order)
+""",
+        'template': "{u[subsystem]:{w[subsystem]}}  {u[cn]:{w[cn]}} 
<{u[email]}>",
+        'widths': [('subsystem', 22), ('cn', 23)],
+        'filter': {'role': "Maintainer", 'subclass': "Subsystem",
+                   'order': ['subsystem', 'sn', 'cn', 'email']},
+        'posttext': """
+Note that individuals who maintain parts of the compiler need approval to
+check in changes outside of the parts of the compiler they maintain.""",
+    },
+    'reviewers': {
+        'preamble': """
+                        Reviewers
+""",
+        'template': "{u[subsystem]:{w[subsystem]}}  {u[cn]:{w[cn]}} 
<{u[email]}>",
+        'widths': [('subsystem', 22), ('cn', 23)],
+        'filter': {'role': "Reviewer",
+                   'order': ['subsystem', 'sn', 'cn', 'email']},
+        'posttext': """
+Note that while reviewers can approve changes to parts of the compiler
+that they maintain, they still need approval for their own patches
+from other maintainers or reviewers.""",
+    },
+    'writeafter': {
+        'preamble': """
+                        Write After Approval    (last name alphabetical order)
+
+Name                            BZ account      Email
+""",
+        'template': "{u[cn]:{w[cn]}} {u[account]:{w[account]}} <{u[email]}>",
+        'widths': [('cn', 31), ('account', 15)],
+        'filter': {'role': "WriteAfter",
+                   'order': ['sn', 'cn', 'account']},
+    },
+    'bz': {
+        'preamble': """
+                        Bug database only accounts
+""",
+        'template': "{u[cn]:{w[cn]}} <{u[email]}>",
+        'widths': [('cn', 47)],
+        'filter': {'role': "BZ",
+                   'order': ['sn', 'cn', 'email']},
+    },
+    'dco': {
+        'preamble': """
+                        Contributing under the DCO
+
+By adding your name and email to this section, you certify that all your
+subsequent contributions to GCC are made under the terms of the Developer's
+Certificate of Origin Version 1.1.  See https://gcc.gnu.org/dco.html for more
+information.
+
+""",
+        'template': "{u[cn]:{w[cn]}} <{u[email]}>",
+        'widths': [('cn', 47)],
+        'filter': {'role': "DCO",
+                   'order': ['sn', 'cn', 'email']},
+    },
+}
+
+def debug(msg):
+    global verbose
+    if verbose:
+        print(msg, file=sys.stderr)
+    return
+
+def mylower(txt):
+    return unidecode.unidecode(txt).lower()
+
+def format_output(outfile, data):
+    global active_only
+    all_users = data['users']
+    if active_only:
+        all_users = [u for u in filter(lambda x: not x.get('inactive', False),
+                                       data['users'])]
+    for section in boilerplate.values():
+        if 'preamble' in section:
+            print(section['preamble'], file=outfile)
+        if 'filter' in section:
+            l = []
+            role = section['filter']['role']
+            subclass = section['filter'].get('subclass')
+            for u in all_users:
+                for r in filter(lambda x: role in x, u['roles']):
+                    if subclass:
+                        sc = [s for s in filter(lambda x: x['name'] == r[role],
+                                                data['subsystems'])]
+                        if len(sc) > 1:
+                            verbose(f"multiple matches for {r[role]}")
+                        if not 'class' in sc[0] or sc[0]['class'] != subclass:
+                            continue
+                    d = {
+                        'email': u['email'][0],
+                        'account': u.get('account', '-'),
+                        'sn': u['sn'],
+                        'cn': u['cn'],
+                        'subsystem': r[role] if type(r) == dict else None,
+                    }
+                    if role == 'DCO':
+                        d['email'] = r['DCO']
+                    if role == 'WriteAfter' and type(r) == dict:
+                        d['email'] = r['WriteAfter']
+                    elif type(r) == dict and 'email' in r:
+                        d['email'] = r['email']
+                    w = dict()
+                    col = 0
+                    overrun = 0
+                    for field, width in section['widths']:
+                        width -= overrun
+                        w[field] = max(width, 1)
+                        overrun = max(len(d[field]) - width, 0)
+                    d['w'] = w
+                    l.append(d)
+            kfn = itemgetter(*section['filter']['order'])
+            for u in sorted(l,
+                            key=lambda x: tuple(mylower(v) for v in kfn(x))):
+                debug(str(u))
+                print (section['template'].format(u=u, w=u['w']), file=outfile)
+        if 'posttext' in section:
+            print(section['posttext'], file=outfile)
+    return
+
+def main():
+    global opts, verbose, active_only
+    optp = OptionParser(usage="Usage: %prog [<options>] user-data")
+    optp.add_option("-v", "--verbose", action="store_true",
+                    default=False, dest="verbose",
+                    help="Print some diagnostic messages")
+    optp.add_option("-a", "--active", action="store_true",
+                    default=False, dest="active_only",
+                    help="Omit inactive users")
+    optp.add_option("-o", "--output", metavar="FILE",
+                    default=None, dest="outfilename",
+                    help="Write to FILE instead of stdout")
+    opts, args = optp.parse_args()
+    if len(args) != 1:
+        optp.print_help()
+        sys.exit(1)
+    verbose = opts.verbose
+    active_only = opts.active_only
+    data = maintutils.load(args[0])
+    maintutils.validate(data)
+    if opts.outfilename:
+        out_file = open(opts.outfilename, "w", encoding="utf-8")
+    else:
+        out_file = sys.stdout
+    format_output(out_file, data)
+    return 0
+
+if __name__ == "__main__":
+    sys.exit (main())
diff --git a/contrib/maintainer_utils.py b/contrib/maintainer_utils.py
new file mode 100755
index 000000000000..a40c411392e8
--- /dev/null
+++ b/contrib/maintainer_utils.py
@@ -0,0 +1,276 @@
+#!/usr/bin/env python3
+
+# Utilities for manipulating/testing the MAINTAINERS.yml data.
+
+# Copyright (C) 2026 Free Software Foundation, Inc.
+#
+# This file is part of GCC.
+#
+# GCC is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3, or (at your option)
+# any later version.
+#
+# GCC is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with GCC; see the file COPYING.  If not, write to
+# the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+# Boston, MA 02110-1301, USA.
+
+import json
+import jsonschema
+import sys
+import unidecode
+import yaml
+# Prefer the libYAML implementations if available.  Fall back to the
+# pure python versions as a backup.
+try:
+    from yaml import CLoader as Loader, CDumper as Dumper
+except:
+    from yaml import Loader, Dumper
+
+maintainer_schema = {
+    '$schema': 'https://json-schema.org/draft/2020-12/schema',
+    'type': 'object',
+    'properties': {
+        'users': {
+            'type': 'array',
+            'items': {
+                'type': 'object',
+                'properties': {
+                    'sn': {
+                        'type': 'string',
+                        'minlength': 1,
+                    },
+                    'cn': {
+                        'type': 'string',
+                        'minlength': 1,
+                    },
+                    'email': {
+                        'type': 'array',
+                        'items': {
+                            'type': 'string',
+                            'format': 'email',
+                        },
+                    },
+                    'roles': {
+                        'type': 'array',
+                        'items': {
+                            'oneOf': [
+                                {
+                                    'type': 'string',
+                                    'enum': ['Global', 'WriteAfter', 'BZ'],
+                                },
+                                {
+                                    'type': 'object',
+                                    'properties': {
+                                        'WriteAfter': {
+                                            'type': 'string',
+                                            'format': 'email',
+                                        },
+                                        'DCO': {
+                                            'type': 'string',
+                                            'format': 'email',
+                                        },
+                                    },
+                                    'additionalProperties': False,
+                                },
+                                {
+                                    'type': 'object',
+                                    'properties': {
+                                        'Maintainer': {
+                                            'type': 'string',
+                                        },
+                                        'Reviewer': {
+                                            'type': 'string',
+                                        },
+                                        'email': {
+                                            'type': 'string',
+                                            'format': 'email',
+                                        },
+                                    },
+                                    'additionalProperties': False,
+                                    'oneOf': [
+                                        {'required': ["Maintainer"] },
+                                        {'required': ["Reviewer"] },
+                                    ],
+                                },
+                            ],
+                        },
+                        'minlength': 1,
+                    },
+                    'account': {
+                        'type': 'string',
+                        'minlength': 1,
+                        'pattern': '[a-zA-Z][a-zA-Z0-9]*',
+                    },
+                    'aliases': {
+                        'type': 'array',
+                        'minlength': 1,
+                        'items': {
+                            'type': 'string',
+                            'minlength': 1,
+                        },
+                    },
+                    'inactive': {
+                        'type': 'boolean',
+                    }
+                },
+                'additionalProperties': False,
+                'required': ['sn', 'cn', 'email', 'roles'],
+            },
+        },
+        'subsystems': {
+            'type': 'array',
+            'items': {
+                'type': 'object',
+                'properties': {
+                    'name': {
+                        'type': 'string',
+                        'minlength': 1,
+                    },
+                    'class': {
+                        'type': 'string',
+                        'minlength': 1,
+                    },
+                    'labels': {
+                        'type': 'array',
+                        # Disabled until we populate the labels
+                        # 'minlength': 1,
+                        'items': {
+                            'type': 'string',
+                            'minlength': 3,
+                            'pattern': 
'[a-zA-Z][-+a-zA-Z0-9]*(/[a-zA-Z][-+a-zA-Z0-9]*)+',
+                        },
+                    },
+                },
+                'additionalProperties': False,
+                'required': ['name', 'labels'],
+            },
+        },
+    },
+}
+
+error_count = 0
+warning_count = 0
+
+def _fatal (msg):
+    print (f"fatal: {msg}", file=sys.stderr)
+    sys.exit (1)
+
+def _error (msg):
+    global error_count
+    print (f"error: {msg}", file=sys.stderr)
+    error_count += 1
+
+def _warning (msg):
+    global warning_count
+    print (f"warning: {msg}", file=sys.stderr)
+    warning_count += 1
+
+def _format_path (path, data):
+    """Try to turn a validation error path into something more readable"""
+    elts = [""]
+    cur = data
+    try:
+        for elt in path:
+            if isinstance (cur, list) and isinstance (elt, int):
+                item = cur[elt]
+                if isinstance (item, dict) and 'cn' in item:
+                    elts[-1] += f"[cn = {item['cn']}]"
+                elif isinstance (item, dict) and 'name' in item:
+                    elts[-1] += f"[name = {item['name']}]"
+                else:
+                    elts[-1] += f"[(anon index): {elt}]"
+                cur = item
+            else:
+                cur = cur[elt]
+                elts.append (str (elt))
+    except Exception as e:
+        print ('/'.join(elts))
+        raise e
+    if elts[0] == "":
+        elts = elts[1:]
+    return '/'.join(elts)
+
+def _check_schema(data):
+    try:
+        schema = jsonschema.validators.Draft202012Validator(maintainer_schema)
+        errors = sorted(schema.iter_errors(data), key=lambda e: e.path)
+        for err in errors:
+            _error (f"{_format_path (err.path, data)}: {err.message}")
+    except jsonschema.exceptions.SchemaError as e:
+        _fatal (str (e))
+    return
+
+def validate(data):
+    """Check the data against the schema and our own consistency checks"""
+    _check_schema(data)
+    # The data conforms to the expected schema, so now run some data
+    # validation checks.
+
+    # Maintainer and Reviewer roles need to match entries in the
+    # subsystems list; Maintainer entires must also have a class entry, though
+    # that is optional for Reviewers.
+    for u in data['users']:
+        # Users with the 'BZ' role should not have any other roles; we
+        # can quickly skip the additional checks if that is the case.
+        if (len(u['roles']) == 1
+            and u['roles'][0] == 'BZ'):
+            continue
+        seen_writeafter = False
+        only_dco = True
+        for r in u['roles']:
+            if isinstance (r, str):
+                if r == 'BZ':
+                    _error(
+                        f"User '{u['cn']}' has 'BZ' role as well as others.")
+                if r == 'WriteAfter':
+                    seen_writeafter = True
+                only_dco = False
+                continue
+            if 'WriteAfter' in r:
+                seen_writeafter = True
+            need_class = True
+            if 'DCO' in r:
+                continue
+            only_dco = False
+            n = r.get('Maintainer')
+            if not n:
+                need_class = False
+                n = r.get('Reviewer')
+            if n:
+                subsystems = list(filter (lambda s: s['name'] == n,
+                                          data['subsystems']))
+                if len(subsystems) == 1:
+                    if (need_class
+                        and not 'class' in subsystems[0]):
+                        _error (f"subsystem '{n}' missing a class.")
+                elif len(subsystems) == 0:
+                    _error (f"No subsystem entry for '{n}'.")
+                else:
+                    _error (f"Multiple subsystem entries for '{n}'.")
+        if not seen_writeafter and not only_dco:
+            _error(f"User '{u['cn']}' lacks WriteAfter role.")
+    if error_count:
+        sys.exit(1)
+    return
+
+def load(file):
+    with open(file, "r", encoding="utf-8") as f:
+        data = yaml.load (f, Loader=Loader)
+    return data
+
+def main():
+    if len(sys.argv) != 2:
+        print(f"Usage: {sys.argv[0]} path-to-MAINTAINERS.yml")
+        return 1
+    validate (load (sys.argv[1]))
+    return 0
+
+if __name__ == "__main__":
+    sys.exit(main())
-- 
2.54.0

Reply via email to