This file lists people who have contributed to libpcap.

The current maintainers (in alphabetical order):
    Denis Ovsienko                <denis at ovsienko dot info>
    Francois-Xavier Le Bail       <devel dot fx dot lebail at orange dot fr>
    Guy Harris                    <gharris at sonic dot net>
    Michael Richardson            <mcr at sandelman dot ottawa dot on dot ca>

Additional people who have contributed patches (in alphabetical order):
    Adrian Budau                  <adbudau at bitdefender dot com>
    Akos Vandra                   <axos88 at gmail dot com>
    Alan Bawden                   <Alan at LCS dot MIT dot EDU>
    Albert Chin                   <china at thewrittenword dot com>
    Alexander Galanin             <al at galanin dot nnov dot ru>
    Alexander 'Leo' Bergolth      <Leo dot Bergolth at wu-wien dot ac dot at>
    Alexey Kuznetsov              <kuznet at ms2 dot inr dot ac dot ru>
    Alex Smith                    <44322503+MadAlexUK at users dot noreply dot github dot com>
    Alfredo Alvarez Fernandez     <alfredoalvarezernandez at gmail dot com>
    Ali Abdulkadir                <autostart dot ini at gmail dot com>
    Alon Bar-Lev                  <alonbl at sourceforge dot net>
    Anders Broman                 <anders dot broman at ericsson dot com>
    Andres Perera                 <andres dot p at zoho dot com>
    Andrew Brown                  <atatat at atatdot dot net>
                                  <andy-1 at sourceforge dot net>
    Ani Sinha                     <ani at aristanetworks dot com>
    Anthony Kirby                 <Anthony dot Kirby at nominet dot uk>
    Antti Kantee                  <pooka at netbsd dot org>
    Arien Vijn                    <arienvijn at sourceforge dot net>
    Arkadiusz Miskiewicz          <misiek at pld dot org dot pl>
    Armando L. Caro Jr.           <acaro at mail dot eecis dot udel dot edu>
    Assar Westerlund              <assar at sics dot se>
    Atzm Watanabe                 <atzm at atzm dot org>
    Baptiste Peugnez              <baptiste dot peugnez at cea dot fr>
    Baruch Siach                  <baruch at tkos dot co dot il>
    Bill Parker                   <wp02855 at gmail dot com>
    Biswapriyo Nath               <nathbappai at gmail dot com>
    blazeable                     <blazeable at blazeable dot eu>
    bleader                       <bleader at ratonland dot org>
    Brent Cook                    <brent at boundary dot com>
    Brian Ginsbach                <ginsbach at cray dot com>
    B. Scott Michel               <scooter dot phd at gmail dot com>
    Cedric Cellier                <rixed at happyleptic dot org>
    Charles M. Hannum             <mycroft at netbsd dot org>
    Chris G. Demetriou            <cgd at netbsd dot org>
    Chris Lightfoot               <cwrl at users dot sourceforge dot net>
    Chris Maynard                 <Chris dot Maynard at gtech dot com>
    Chris Pepper                  <pepper at mail dot reppep dot com>
    Christian Bell                <csbell at myri dot com>
    Christian Peron               <csjp at freebsd dot org>
    Christian Svensson            <blue at cmd dot nu>
    Christopher K Lee             <christopher dot lee at cspi dot com>
    Daniel Borkmann               <dborkman at redhat dot com>
    Daniele Orlandi               <daniele at orlandi dot com>
    Daniel Lublin                 <daniel at lublin dot se>
    Daniel Miller                 <dmiller at nmap dot org>
    Dario Lombardo                <lomato at gmail dot com>
    Darren Lim                    <darren dot lim at endace dot com>
    Darren Reed                   <darrenr at sun dot com>
    Dave Barach                   <dave at barachs dot net>
    David Clark                   <david dot clark at datasoft dot com>
    David Kaelbling               <drk at sgi dot com>
    David Karoly                  <david dot karoly at outlook dot com>
    David Ward                    <david dot ward at ll dot mit dot edu>
    David Young                   <dyoung at ojctech dot com>
    Dean Gaudet                   <dean at arctic dot org>
    dhruv                         <rsrivat at sourceforge dot net>
    Dmytro Ovdiienko              <dmitriy dot ovdienko at gmail dot com>
    Don Ebright                   <Don dot Ebright at compuware dot com>
    Dug Song                      <dugsong at monkey dot org>
    Dustin Spicuzza               <dustin at virtualroadside dot com>
    dzejarczech                   <dzejarczech at sourceforge dot net>
    Edward Sheldrake              <ejs1920 at sourceforge dot net>
    Eli Schwartz                  <eschwartz93 at gmail dot com>
    Eric Anderson                 <anderse at hpl dot hp dot com>
    Erik de Castro Lopo           <erik dot de dot castro dot lopo at sensorynetworks dot com>
    Fedor Sakharov                <fedor dot sakharov at gmail dot com>
    Felix Janda                   <felix dot janda at posteo dot de>
    Felix Obenhuber               <felix at obenhuber dot de>
    fghzxm                        <fghzxm at outlook dot com>
    Florent Drouin                <Florent dot Drouin at alcatel-lucent dot fr>
    Florian Fainelli              <f dot fainelli at gmail dot com>
    François Revol                <revol at free dot fr>
    Franz Schaefer                <schaefer at mond dot at>
    frederich                     <frederich at sourceforge dot net>
    Fulko Hew                     <fulko dot hew at gmail dot com>
    Fumiyuki Shimizu              <fumifumi at abacustech dot jp>
    Gabor Tatarka                 <gabor dot tatarka at ericsson dot com>
    Garrett Cooper                <yaberauneya at sourceforge dot net>
    George Neville-Neil           <gnn at freebsd dot org>
    Gerald Combs                  <gerald at zing dot org>
    Gerard Garcia                 <nouboh at gmail dot com>
    Gianluca Varenni              <gianluca dot varenni at gmail dot com>
    Gilbert Hoyek                 <gil_hoyek at hotmail dot com>
    Gisle Vanem                   <gvanem at yahoo dot no>
    Graeme Hewson                 <ghewson at cix dot compulink dot co dot uk>
    Gregor Maier                  <gregor at net dot in dot tum dot de>
    Greg Stark                    <gsstark at mit dot edu>
    Greg Troxel                   <gdt at ir dot bbn dot com>
    Guillaume Pelat               <endymion_ at users dot sourceforge dot net>
    Gustavo Zacarias              <gustavo at zacarias dot com dot ar>
    Hagen Paul Pfeifer            <hagen at jauu dot net>
    Henri Doreau                  <hdoreau at sourceforge dot net>
    Hiroaki KAWAI                 <kawai at stratosphere dot co dot jp>
    Hyung Sik Yoon                <hsyn at kr dot ibm dot com>
    Igor Khristophorov            <igor at atdot dot org>
    Jakub Sitnicki                <jsitnicki at gmail dot com>
    Jakub Zawadzki                <darkjames at darkjames dot pl>
    James Ko                      <jck at exegin dot com>
    Jan-Philip Velders            <jpv at veldersjes dot net>
    Jason R. Thorpe               <thorpej at netbsd dot org>
    Javier Achirica               <achirica at ttd dot net>
    Jean-Louis Charton            <Jean-Louis dot CHARTON at oikialog dot com>
    Jean Tourrilhes               <jt at hpl dot hp dot com>
    Jefferson Ogata               <jogata at nodc dot noaa dot gov>
    Jerome Duval                  <jerome dot duval at gmail dot com>
    Jesper Dangaard Brouer        <hawk at comx dot dk>
    Jesper Peterson               <jesper at endace dot com>
    Jesse Gross                   <jesse at nicira dot com>
    JHA                           <jon dot anderson at oracle dot com>
    jingyu yang                   <jingleyang at users dot noreply dot github dot com>
    Jiri Slaby                    <jirislaby at gmail dot com>
    João Valverde                 <joao dot valverde at tecnico dot ulisboa dot pt>
    Joerg Mayer                   <jmayer at loplof dot de>
    John Bankier                  <jbankier at rainfinity dot com>
    Jon Lindgren                  <jonl at yubyub dot net>
    Jon Smirl                     <jonsmirl at gmail dot com>
    Jorge Boncompte [DTI2]        <jorge at dti2 dot net>
    jromanr                       <jromanr at hotmail dot com>
    Juergen Schoenwaelder         <schoenw at ibr dot cs dot tu-bs dot de>
    Julien Moutinho               <julm at savines dot alpes dot fr dot eu dot org>
    Jung-uk Kim                   <jkim at FreeBSD dot org>
    Kazushi Sugyo                 <sugyo at pb dot jp dot nec dot com>
    Kevin Boulain                 <kevin dot boulain at securactive dot net>
    Klaus Klein                   <kleink at netbsd dot org>
    Koryn Grant                   <koryn at endace dot com>
    Kris Katterjohn               <katterjohn at gmail dot com>
    Krzysztof Halasa              <khc at pm dot waw dot pl>
    Lennert Buytenhek             <buytenh at wantstofly dot org>
    Li kunyu                      <kunyu at nfschina dot com>
    lixiaoyan                     <lixiaoyan at google dot com>
    Lorenzo Cavallaro             <sullivan at sikurezza dot org>
    Loris Degioanni               <loris at netgroup-serv dot polito dot it>
    Love Hörnquist-Åstrand        <lha at stacken dot kth dot se>
    Luis MartinGarcia             <luis dot mgarc at gmail dot com>
    lxy                           <391861737 at qq dot com>
    Maciej W. Rozycki             <macro at ds2 dot pg dot gda dot pl>
    Mansour Behabadi              <mansour at oxplot dot com>
    Marcus Felipe Pereira         <marcus at task dot com dot br>
    Mario J. Rugiero              <mrugiero at gmail dot com>
    Mark C. Brown                 <mbrown at hp dot com>
    Mark Johnston                 <markjdb at gmail dot com>
    Mark Marshall                 <mark dot marshall at omicronenergy dot com>
    Mark Pizzolato                <List-tcpdump-workers at subscriptions dot pizzolato dot net>
    Markus Mayer                  <markus_mayer at sourceforge dot net>
    Martin Husemann               <martin at netbsd dot org>
    Márton Németh                 <nm127 at freemail dot hu>
    Matt Eaton                    <agnosticdev at gmail dot com>
    Matthew Luckie                <mjl at luckie dot org dot nz>
    Matthias Hannig               <matthias at hannig dot cc>
    Matwey V. Kornilov            <matwey dot kornilov at gmail dot com>
    maxice8                       <thinkabit dot ukim at gmail dot com>
    Max Laier                     <max at love2party dot net>
    Michal Kubecek                <mkubecek at suse dot cz>
    Michal Labedzki               <michal dot labedzki at tieto dot com>
    Michal Ruprich                <michalruprich at gmail dot com>
    Michal Sekletar               <msekleta at redhat dot com>
    Mike Frysinger                <vapier at gmail dot com>
    Mike Kershaw                  <dragorn at kismetwireless dot net>
    Mike Wiacek                   <mike at iroot dot net>
    Milosz Kaniewski              <milosz dot kaniewski at gmail dot com>
    Miroslav Lichvar              <mlichvar at redhat dot com>
    Monroe Williams               <monroe at pobox dot com>
    Myricom Help                  <myri at users dot noreply dot github dot com>
    Nan Xiao                      <nan at chinadtrace dot org>
    nic-kaczinsky                 <68271784+nic-kaczinsky at users dot noreply dot github dot com>
    Nick Kelsey                   <nickk at silicondust dot com>
    Nicolas Dade                  <ndade at nsd dot dyndns dot org>
    Niko Delarich                 <niko dot delarich at gmail dot com>
    N. Leiten                     <nleiten at sourceforge dot net>
    nnposter                      <nnposter at users dot noreply dot github dot com>
                                  <nvercamm at sourceforge dot net>
    Octavian Cerna                <tavy at ylabs dot com>
    Olaf Kirch                    <okir at caldera dot de>
    Ollie Wild                    <aaw at users dot sourceforge dot net>
    Ondřej Hošek                  <ondra dot hosek at gmail dot com>
    Onno van der Linden           <onno at simplex dot nl>
    Orgad Shaneh                  <orgad dot shaneh at audiocodes dot com>
    Ørjan Malde                   <red at foxi dot me>
    Paolo Abeni                   <pabeni at redhat dot com>
    Patrick Marie                 <mycroft at virgaria dot org>
    Patrick McHardy               <kaber at trash dot net>
    Paul Mundt                    <lethal at linux-sh dot org>
    Pavel Kankovsky               <kan at dcit dot cz>
    Pawel Brzezinski              <pawel dot brzezinski at harman dot com>
    Pawel Pokrywka                <publicpp at gmail dot com>
    Peter Fales                   <peter at fales-lorenz dot net>
    Peter Jeremy                  <peter dot jeremy at alcatel dot com dot au>
    Peter Volkov                  <pva at gentoo dot org>
    Petr Vorel                    <pvorel at suse dot cz>
    Philippe Antoine              <contact at catenacyber dot fr>
    Phil Wood                     <cpw at lanl dot gov>
    Rafal Maszkowski              <rzm at icm dot edu dot pl>
    ramin                         <lordrasmus at gmail dot com>
                                  <rcb-isis at users dot sourceforge dot net>
    Richard Stearn                <richard at rns-stearn dot demon dot co dot uk>
    Rick Jones                    <raj at cup dot hp dot com>
    Robert Edmonds                <stu-42 at sourceforge dot net>
    Roberto Mariani               <jelot-tcpdump at jelot dot it>
    Roland Dreier                 <roland at purestorage dot com>
    Romain Francoise              <rfrancoise at debian dot org>
    Rongxi Li                     <rongxi dot li at chaitin dot com>
    Sagun Shakya                  <sagun dot shakya at sun dot com>
    Scott Barron                  <sb125499 at ohiou dot edu>
    Scott Gifford                 <sgifford at tir dot com>
    Scott Mcmillan                <scott dot a dot mcmillan at intel dot com>
    Sebastian Krahmer             <krahmer at cs dot uni-potsdam dot de>
    Sebastien Roy                 <Sebastien dot Roy at Sun dot COM>
    Sepherosa Ziehau              <sepherosa at gmail dot com>
    Shane Kerr                    <shane at time-travellers dot org>
    Shaun Clowes                  <delius at progsoc dot uts dot edu dot au>
    solofox                       <wensg100 at sina dot com>
    Solomon Peachy                <pizza at shaftnet dot org>
    Stefan Hudson                 <hudson at mbay dot net>
    Stephen Donnelly              <stephen at endace dot com>
    Steve Karg                    <skarg at users dot sourceforge dot net>
    stubbfel                      <stubbfel at gmail dot com>
    Takashi Yamamoto              <yamt at mwd dot biglobe dot ne dot jp>
    Tanaka Shin-ya                <zstanaka at archer dot livedoor dot com>
    Thomas Habets                 <habets at google dot com>
    Thomas Petazzoni              <thomas dot petazzoni at free-electrons dot com>
    Tobias Poschwatta             <posch at sourceforge dot net>
    Tomasz Moń                    <desowin at gmail dot com>
    Tommy Beadle                  <tbeadle at arbor dot net>
    Tony Li                       <tli at procket dot com>
    Torsten Landschoff            <torsten at debian dot org>
    Tymoteusz Blazejczyk          <tymoteusz dot blazejczyk at intel dot com>
    Uns Lider                     <unslider at miranda dot org>
    Uwe Girlich                   <Uwe dot Girlich at philosys dot de>
    Vitaly Lavrov                 <vel21ripn at gmail dot com>
    Vivien Didelot                <vivien dot didelot at gmail dot com>
    Vladimir Gladkov              <vovkos at gmail dot com>
    Vladimir Marek                <vlmarek at volny dot cz>
    Walter Schell                 <walterschell at users dot noreply dot github dot com>
    Wesley Shields                <wxs at FreeBSD dot org>
    Xianjie Zhang                 <xzhang at cup dot hp dot com>
    Xin Li                        <delphij at FreeBSD dot org>
    Xue Jiang Qing                <xuejianqing at star-net dot cn>
    Yang Luo                      <hsluoyz at qq dot com>
    Yen Yen Lim
    Yoann Vandoorselaere          <yoann at prelude-ids dot org>
    Yogesh Prasad                 <yogesh dot prasad at rockwellcollins dot com>
    Yvan Vanhullebus              <vanhu at sourceforge dot net>

The original LBL crew:
    Steve McCanne
    Craig Leres
    Van Jacobson

Past maintainers (in alphabetical order):
    Bill Fenner                   <fenner at research dot att dot com>
    Fulvio Risso                  <risso at polito dot it>
    Hannes Gredler                <hannes at gredler dot at>
    Jun-ichiro itojun Hagino      <itojun at iijlab dot net>		Also see: http://www.wide.ad.jp/itojun-award/
