The PRIMARY AUTHORS are (and/or have been):

  * Alex Afanasyev               <http://lasr.cs.ucla.edu/afanasyev/index.html>
  * Spyridon "Spyros" Mastorakis <http://cs.ucla.edu/~mastorakis/>
  * Ilya Moiseenko               <http://ilyamoiseenko.com/>

The following is an inevitably incomplete list of MUCH-APPRECIATED CONTRIBUTORS,
people who have reported bugs, submitted patches,and  implemented new features of ndnSIM:

  * Jiangzhe Wang (Lucas)       <lucas@cs.ucla.edu>
  * Cheng Yi                    <yic@email.arizona.edu>
  * Saeid Montazeri             <saeid.montazeri@gmail.com>
  * Xiaoke Jiang                <http://netarchlab.tsinghua.edu.cn/~shock/>
  * Saran Tarnoi                <sarantarnoi@gmail.com>
  * Hovaidi Ardestani Mohammad  <mohammad.hovaidi.ardestani@aalto.fi>
  * Michael Sweatt              <https://www.linkedin.com/in/michaelsweatt>
  * Wentao Shang                <http://irl.cs.ucla.edu/~wentao/>
  * Christian Kreuzberger       <christian.kreuzberger@itec.aau.at>
  * Yuanzhi Gao                 <billmaxwell@ucla.edu>
  * Mohammad Sabet              <mhasabet@gmail.com>
