CyanogenMod
===========

Maintainers (CyanogenMod 13.0):
-----------------------------
* __Acer A700:__ pawitp
* __Amazon Kindle Fire 1st Edition:__ Hashcode, FuZZ__
* __Amazon Kindle Fire 2nd Edition:__ Hashcode, FuZZ__
* __Asus EeePad Transformer (TF101):__ Bumble-Bee, EnJens
* __Asus EeePad Transformer Prime (TF201):__ Bumble-Bee, EnJens
* __Asus EeePad Transformer Pad TF300T:__  chrmhoffmann
* __Asus EeePad Transformer Pad Infinity TF700T:__ dasunsrule32
* __Asus EeePad Transformer Pad TF701T:__ pershoot
* __Asus Zenfone 2 ZE550ML (Z008):__ crpalmer, jrior001
* __Asus Zenfone 2 ZE551ML (Z00A):__ crpalmer, jrior001
* __Asus Zenfone 2 ZE550KL (Z00L):__ LuK1337, luca020400
* __Asus Zenfone 2 ZE551KL/ZD551KL (Z00T):__ LuK1337, luca020400
* __B&N NookColor (encore):__ eyeballer, fattire, keyodi, krylon360, sluo (NookieDevs)
* __B&N Nook Tablet (acclaim):__  chrmhoffmann
* __Google Android One:__ varunchitre15
* __Google Galaxy Nexus:__ bekit, Bumble-Bee, burnsra, KalimochoAz, something15525
* __Google Nexus S:__ burnsra, KalimochoAz, klusark
* __Google Nexus 4:__ ciwrl
* __Google Nexus 5:__ ciwrl
* __Google Nexus 5X:__ ciwrl, jakew02
* __Google Nexus 6:__ dhacker29
* __Google Nexus 6P:__ ciwrl, dhacker29, Sam Mortimer
* __Google Nexus 7:__ burnsra, fattire, Thömy, nemith, JoeyRizzoli (GSM)
* __Google Nexus 9:__ simonsickle, ciwrl
* __Google Nexus 10:__ Tortel, ciwrl
* __Google Nexus Player:__ dhacker29, bmc08gt
* __HTC Desire 601(zara/zaracl):__ uberlaggydarwin, PatrikKT
* __HTC Desire 816:__ Grarak, v_superuser
* __HTC Desire Eye:__ uberlaggydarwin
* __HTC Droid DNA:__ crpalmer, invisiblek
* __HTC Droid Incredible 4G LTE:__ intervigil, mdmower
* __HTC Evo 4G LTE:__ kushdeck, toastcfh
* __HTC One (GSM):__ h8rift
* __HTC One M8:__ deck, h8rift, invisblek, toastcfh, u-ra, uberlaggydarwin
* __HTC One M8 Dual SIM (m8dug):__ bgcngm
* __HTC One M9 (hima):__ cyanogen, Rashed97, varunchitre15
* __HTC One Max (T6):__ Flyhalf205
* __HTC One (Sprint):__ kushdeck, toastcfh
* __HTC One (Verizon):__ flyhalf205, mdmower
* __HTC One S:__ intervigil, xkonni
* __HTC One X:__ gorbi16, mdeejay, tbalden, Thömy
* __HTC One X+:__ Lloir, tombriden
* __HTC One XL:__ h8rift, intervigil, jrior001
* __Huawei Ascend Mate 2:__ mdmower, u-ra
* __Huawei Honor 4/4X (cherry):__ dianlujitao, surdupetru, desalesouche
* __LG G2 (AT&T) (D800):__ arcee, Rashed97, Shelnutt2
* __LG G2 (T-Mobile) (D801):__ arcee, Rashed97, Shelnutt2
* __LG G2 (International) (D802):__ arcee, Rashed97, Shelnutt2
* __LG G2 (Canada) (D803):__ arcee, Rashed97, Shelnutt2
* __LG G2 (Sprint) (LS980):__ arcee, Rashed97, Shelnutt2
* __LG G2 (Verizon) (VS980):__ arcee, Rashed97, Shelnutt2
* __LG G3 (AT&T) (D850):__
* __LG G3 (T-Mobile) (D851):__ bryan2894
* __LG G3 (Canada) (D852):__ cuzz1369
* __LG G3 (International) (D855):__ finnq
* __LG G3 (Korea) (F400):__ TheNoFace
* __LG G3 (Sprint) (LS990):__ Kasual
* __LG G3 (Verizon) (VS985):__ invisiblek
* __LG G4 (T-Mobile) (H811):__ codeworkx, genesixxbf3
* __LG G4 (International) (H815):__ codeworkx, genesixxbf3
* __LG Optimus LTE (P930) / LG Nitro HD {P935):__ arcee
* __LG Optimus LTE (SK Telecom) (SU640):__ arcee
* __LG V10 (T-Mobile) (H901):__ genesixxbf3
* __Moto E 2014 (xt1021,xt1022,xt1023/condor):__
* __Moto G 2014 (xt1063,xt1064,xt1068,xt1069/titan):__ LuK1337, luca020400
* __Moto G 4G (xt1039,xt1040,xt1042,xt1045/peregrine):__ somcom3x, intervigil
* __Moto G 4G 2014 (xt1072,xt1077,xt1078,xt1079/thea):__ LuK1337, luca020400
* __Moto X (xt1053,xt1055,xt1056,xt1058,xt1060/ghost):__ Hashcode, Skrilax_CZ
* __Moto X 2014 (victara):__ crpalmer, invisiblek
* __Motorola Moto MAXX(quark) :__ Skrilax_CZ
* __Motorola Atrix HD (MB886/qinara):__ epinter, Hashcode, Skrilax_CZ, nadlabak
* __Motorola Droid 3 (solana):__ Hashcode, stargo
* __Motorola Droid 4 (maserati):__ Hashcode, stargo
* __Motorola Droid Bionic (targa):__ Hashcode, stargo
* __Motorola Droid Maxx (obake-maxx):__ Skrilax_CZ
* __Motorola Droid RAZR/RAZR Maxx (spyder) (CDMA):__ Hashcode, stargo
* __Motorola Droid RAZR HD/HD Maxx (xt926/vanquish) (CDMA):__ Hashcode,  epinter, Skrilax_CZ, nadlabak
* __Motorola Droid RAZR M (xt907/scorpion_mini):__ Hashcode, epinter, Skrilax_CZ, nadlabak
* __Motorola Photon Q (xt897/asanti) (GSM):__ Skrilax_CZ, nadlabak, epinter, Hashcode
* __Motorola Photon Q (xt897c/asanti_c) (CDMA):__ nadlabak, Skrilax_CZ, epinter, Hashcode
* __Motorola RAZR/RAZR Maxx (umts_spyder) (GSM):__ Hashcode, stargo
* __Motorola RAZR HD(xt925/vanquish) (GSM):__ epinter, Hashcode, Skrilax_CZ, nadlabak
* __Motorola Xoom (WiFi):__ bazar, SteadyHawkin, TDR (Team Rogue)
* __Motorola Xoom 3G (UMTS):__ bazar, SteadyHawkin, TDR (Team Rogue)
* __Motorola Xoom 4G LTE (Verizon):__ bazar, SteadyHawkin, TDR (Team Rogue)
* __OnePlus One:__ cyanogen, intervigil, inwotep, arcee
* __OnePlus X:__ ashwin007, MasterAwesome
* __Oppo Find 5:__ intervigil, nebkat, raymanfx
* __Oppo Find 7:__ intervigil, tdm, inwotep, mikeioannina
* __Oppo N1:__ raymanfx
* __Oppo N3:__ jrior001
* __Oppo R7:__ maniac103, mikeioannina, Rashed97
* __Oppo R7 Plus:__ maniac103, mikeioannina, Rashed97
* __Samsung Captivate (SGH-I896 / SGH-I897):__ pawitp
* __Samsung Epic 4G (SPH-D700):__ bbelos
* __Samsung Exhilarate (SGH-I577):__ mikeyman77, carvsdriver
* __Samsung Fascinate / Mesmerize (SCH-I500):__ jt1134, sbrissen
* __Samsung Galaxy Note (GT-N7000):__ Espenfjo
* __Samsung Galaxy Note II (GT-N7100):__ nebkat
* __Samsung Galaxy Note II LTE (AT&T) (SGH-I317):__ cyanogen, rogersb11
* __Samsung Galaxy Note II LTE (Verizon) (SCH-I605):__ sbrissen, rogersb11
* __Samsung Galaxy Note II LTE (Sprint) (SPH-L900):__ sbrissen, rogersb11
* __Samsung Galaxy Note II LTE (USCC) (SCH-R950):__ sbrissen, rogersb11
* __Samsung Galaxy Note III (hlte):__ cyanogen, noobnl, slayher
* __Samsung Galaxy Note IV Exynos (trelte):__ raymanfx
* __Samsung Galaxy Note IV Exynos (trhplte):__ raymanfx
* __Samsung Galaxy Note 8.0 3G (GT-N5100):__ sbrissen
* __Samsung Galaxy Note 8.0 WiFi (GT-N5110):__ sbrissen
* __Samsung Galaxy Note 10.1 (GT-N80XX):__ Espenfjo
* __Samsung Galaxy Note 10.1 LTE (Verizon) (SCH-I925):__ sbrissen
* __Samsung Galaxy Premier (GT-I9260):__ ljzyal
* __Samsung Galaxy R (GT-I9103):__ Adam77Root, Epsylon3
* __Samsung Galaxy S Blaze 4G (SGH-T769):__ UberPinguin
* __Samsung Galaxy S (GT-I9000):__ pawitp
* __Samsung Galaxy S (GT-I9000B):__ helvio88
* __Samsung Galaxy S II (GT-I9100):__ Caio Schnepper
* __Samsung Galaxy S II (intl) (GT-I9100G):__ Jiangyi, Ryuinferno
* __Samsung Galaxy S II (T-Mobile) (SGH-T989):__ mikeyman77
* __Samsung Galaxy S II (AT&T) (SGH-I727):__ topprospect
* __Samsung Galaxy S III (AT&T) (SGH-I747):__ nardholio
* __Samsung Galaxy S III (intl) (GT-I9300):__ forkbomb
* __Samsung Galaxy S III (Sprint) (SPH-L710):__ noobnl
* __Samsung Galaxy S III (Verizon) (SCH-I535):__ invisiblek
* __Samsung Galaxy S III LTE (GT-I9305):__ mcampbellsmith
* __Samsung Galaxy S IV 3G (GT-I9500):__ intervigil, Alberto96
* __Samsung Galaxy S IV (AT&T) (SGH-I337):__ FarmGeek4Life
* __Samsung Galaxy S IV (Sprint) (SPH-L720):__ noobnl
* __Samsung Galaxy S IV (T-Mobile) (SGH-M919):__ dcd
* __Samsung Galaxy S IV (Verizon) (SCH-I545):__ invisiblek
* __Samsung Galaxy S IV LTE (GT-I9505):__ AntaresOne
* __Samsung Galaxy S IV LTE-A (GT-I9506):__ solk2
* __Samsung Galaxy S IV Mini 3G (GT-I9190):__ arco
* __Samsung Galaxy S IV Mini LTE (GT-I9195):__ arco
* __Samsung Galaxy S V (AU) (SCL23):__ scoty755
* __Samsung Galaxy S V (Vodafone) (SM-G900I):__ Regi24
* __Samsung Galaxy S V LTE (SM-G900F):__ Albinoman887
* __Samsung Galaxy Tab 7" (GSM):__ cdesai, humberos
* __Samsung Galaxy Tab 7" (CDMA):__ jt1134
* __Samsung Galaxy Tab 2 7" (GT-P31xx):__ codyf86
* __Samsung Galaxy Tab 2 10.1" (GT-P51xx):__ codyf86
* __Samsung Galaxy Tab Pro 8.4" (SM-T320):__ crpalmer
* __Samsung Galaxy Tab S2 9.7" (SM-T810):__ raymanfx
* __Samsung Galaxy Tab S2 9.7 (LTE)" (SM-T815):__ raymanfx
* __Samsung Vibrant (SGH-T959):__ FaultException
* __Sony Xperia E3  (flamingo):__ FreeXperia Team
* __Sony Xperia L (taoshan):__ olivieer, FreeXperia Team
* __Sony Xperia M (nicki):__ RonG, FreeXperia Team
* __Sony Xperia M2 (eagle):__ FreeXperia Team
* __Sony Xperia SP (huashan):__ AdrianDC
* __Sony Xperia T (mint):__ FreeXperia Team, tilal6991, uberlaggydarwin
* __Sony Xperia T2 Ultra  (tianchi):__ FreeXperia Team
* __Sony Xperia T3  (seagull):__ FreeXperia Team
* __Sony Xperia V (tsubasa):__ FreeXperia Team, tilal6991, championswimmer, uberlaggydarwin
* __Sony Xperia Z (yuga):__ FreeXperia Team, Turl, olivieer
* __Sony Xperia ZL (odin):__  FreeXperia Team
* __Sony Xperia ZR (dogo):__  FreeXperia Team
* __Sony Xperia Tablet Z LTE (pollux):__ FreeXperia Team, snc
* __Sony Xperia Tablet Z WiFi (pollux_windy):__ FreeXperia Team, snc
* __Sony Xperia Tablet Z2 LTE (castor):__ FreeXperia Team
* __Sony Xperia Tablet Z2 WiFi (castor_windy):__ FreeXperia Team
* __Sony Xperia Z3 Tablet Compact LTE (scorpion):__ FreeXperia Team
* __Sony Xperia Z Ultra (togari):__ FreeXperia Team
* __Sony Xperia Z1 (honami):__ FreeXperia Team
* __Sony Xperia Z1 compact (amami):__ FreeXperia Team, intervigil, championswimmer
* __Sony Xperia Z2 (sirius):__  FreeXperia Team
* __Sony Xperia Z3 (z3):__  FreeXperia Team
* __Sony Xperia Z3 Compact (z3c):__ FreeXperia Team
* __Sony Z Ultra GPE (togari_gpe):__ FreeXperia Team
* __Xiaomi Mi2(s) (aries):__ Michael Zimmermann
* __Xiaomi Mi3/4 (cancro):__ JoeyRizzoli
* __ZTE Nubia Z9 Max (nx510j):__ dianlujitao

FreeXperia Team:
-------------------
Team: Jerpelea, Bin4ry, Kali-, codeworkx, Bumble-Bee, cdesai, AdFad666, tilal6991, kholk

General developers:
-------------------
* __UI Team:__ blunden, prash
* __UX Team:__ blunden, ciwrl, daneshm, DvTonder, jackmu95, maniac103, Kaik541
* __Other:__ jruesga

Translators:
------------
* __Afrikaans:__ David van Tonder (DvTonder), Corrie Meyer (isimobile)
* __Arabic:__ Umar Omar (uomar8)
* __Asturian:__ esbardu (esbardu), ivarela (malditoastur), Xandru Martino Ruz (Xandru), Xuacu Saturio (Xuacu)
* __Catalan:__ Arnau (Arnau), Pau Galindo (Pau_Galindo)
* __Chinese Simplified:__ Matthew Humphrey (775405984), Contactfront (Contactfront), Easeman Wang (easeman9), jiveking (jiveking), Yun Liu (liuyun97), Hexchain Tong (richard0053), Ryan Chan (smartryan), Thomas Wang (ts0516)
* __Chinese Traditional:__ Hsiang Jung, CHENG (HJCHENG), Kelvin Cheong (kelvincheong), Bing-Hua Wang (louiswpf), npes87184 (npes87184), Ryan Chan (smartryan)
* __Chinese Traditional, Hong Kong:__ Kelvin Cheong (kelvincheong), Ryan Chan (smartryan), Li Chi Tung (tonyli1357)
* __Croatian:__ David Boca (davidboca), markan (markan), Robert Rozić (Rox), Josip Volf (Wuk)
* __Czech:__ Radovan Kepák (bckp), Štěpán Dalecký (daleckystepan), engy (engy), Keltek (Keltek), ScArSVK (ScArSVK), Snoop05 (Snoop05)
* __Danish:__ Morten Jørgensen (Fidoble), Jacob_DK (Jacob_DK), Ole Ingeman Christensen (OIChristensen)
* __Dutch:__ Eddy Witkamp (eddywitkamp), Frank Baeten (frankbaeten), Tom Heisterkamp (HappyFlow), Martin Coulon (martinusbe), Timo Viveen (Nadermane), ray1618 (ray1618), Marco Brohet (therbom)
* __Estonian:__ Rudolf Tammekivi (rtammekivi)
* __Finnish:__ Eero Hyrsky (EnergySnail), Jani Kinnunen (jkinnunen), Niko Koivu (niko0o), Sasu Lehtonen (zazza)
* __French:__ DelPETER (DelPETER), humpf (humpf), Julien Stephan (julienstephan29), laddass (laddass), .... (lemachinbidule), math Matmutant (matmutant), Micks29 (Micks29), opengillou (opengillou), Alexandre Bertrand (trandbert)
* __Galician:__ Daniel (canu7), Isaac Álvarez Veiga (Erithrym)
* __Georgian:__ Alexander (alexander_9)
* __German:__ Sascha Schroeder (c1ph4), Kim Le (elektroschmock78), Jacob Müller (jackmu95), Kilian von Pflugk (kilianvonpflugk), Kilowatt.W (kilowatt), Benjamin Huschle (kolsms), Danny Baumann (maniac103), Mardon (markusmenzel), maxee (maxee), michelsberg (michelsberg), Roman Ettlinger (romanett98), Stefan O. (stefanao), Thomas Reinhardt (tarreas), unpublished (unpublished), Yannik (yanniks)
* __Greek:__ Vasilis Akritas (billak75), Michael Bestas (mikeioannina)
* __Hebrew:__ Arthur Zamarin (arthurzam), evyatark2 (evyatark2), Mr_Guy (Mr_Guy), Oren Cohen (orenc17), sagi232123 (sagi232123)
* __Hindi:__ c0d3ripp3r (c0d3ripp3r), Solomon Sunder (solomonsunder)
* __Hungarian:__ Bálint Czobor (balint), Buga Dániel (BugaDániel), fischerandris (fischerandris), lazajnd (lazajnd), Tamás Tóth (tothtamassyman)
* __Indonesian:__ Vicky Sofyan (Arch9), famihyypia (famihyypia), Ilham Ibrahim (iiibrahim89), Ruswan Efendi (RuswanWu7), tohenk (tohenk)
* __Italian:__ Alessandro Preti (alessandropreti), Francesco Foresta (francescoforesta), Joey Rizzoli (linuxx), Lorenzo Faccini (lo97), rheeze (rheeze), Valdevies (Valdevies)
* __Japanese:__ Black Zigong (blackzigong), jiveking (jiveking), おたっく (otack), Sena Endo (senaforandroid), stmay30 (stmay30)
* __Korean:__ 이승렬 (toy0605)
* __Kurdish:__ falah (Dylan2785)
* __Latvian:__ Māris Rēdmanis (maaris)
* __Lithuanian:__ Liudas Ališauskas (liudas.alisauskas), Edmundas Plentauskas (plentauskas1992), HardLight (polizplz), Saulius Vyšniauskas (SauliusVy)
* __Luxembourgish:__ Michel Weimerskirch (michel_weimerskirch), soued031 (soued031)
* __Malay:__ tanakwagu (tanakwagu)
* __Norwegian Bokmal:__ Vegard Fladby (Allram), Sten Eikrem (Storesteinen)
* __Persian:__ Ali Niki (alinik), Mehdi HosseinZade (Arshen) (Arshen-2014), Yaser Rajabi (yrajabi)
* __Polish:__ Dawid (dawidohs), Kamil Jarosław (devloz1996), Michał Gątkowski (IreuN), Andrzej Ressel (jereksel), Michał Kamień (kamykowsky), lozohcum M (lozohcum), Tomasz Popielarczyk (popielarczyktomasz), Michał Jakubowski (revanmj)
* __Portuguese:__ João Pedro Luís (joaopluis), Sergio Borges (sergioborges99), André Pinela (sheffzor), Tercio Carvalho (tercioc)
* __Portuguese, Brazilian:__ Carlos Henrique Brendler Cabral (carloshbcabral), Gafanhotz (Gafanhotz), Gustavo Rosa (gustavogyn), Tercio Carvalho (tercioc)
* __Romanian:__ apolodor (apolodor), azzureux (azzureux), Marian-Mina Mihai (bboylalu), mihaitaus (mihaitaus)
* __Russian:__ Vladislav Koldobskiy (NeverGone), Alexey Kuznetsov (eeepc1016p), Artem Leshchev (matshch), Maxim Perepelitsa (N0xFF), Yaroslav Yadrishnikov (MrYadro)
* __Serbian (Cyrillic):__ Dragan Milenkovic (gagy187), Sava Mikalački (mikalackis), Драган (WD40)
* __Sinhala:__ Rananga Suraweera (rananga)
* __Slovak:__ Martin (mato), Bohuslav Oršula (orsulab), Peter Malík (PeterM), pyler (pyler), Snoop05 (Snoop05)
* __Spanish:__ Isaac Álvarez Veiga (Erithrym), Jorge Ruesga (jruesga), Lorenzo M (Lorenzo_M), luchomacedo92 (LuchoMacedo), Pau Galindo (Pau_Galindo)
* __Swedish:__ Simon Bäck (backsimon), elelinux (elelinux), Simon Danielsson (sad_88), Ted Lundwall (TedLundwall)
* __Tamil:__ Kishore Sheik Ahamed (kishoreinme), Solomon Sunder (solomonsunder), Stars Soft (starssoft), அருண் குமார் - Arun Kumar (thangamani-arun)
* __Thai:__ pureexe (pureexe)
* __Turkish:__ Arif GÜLER (ArF), Mesut Öztürk (doktormesut), Murat KOŞAK (muratkosak), okirat (okirat), Şenol (senoleker)
* __Ukrainian:__ Andriy Poznakhovskyy (Andrulko), Nazar Sokolovsky (nazar_sokolovsky), Maks (probil), xalich (xalich)
* __Uyghur:__ jiveking (jiveking)
* __Vietnamese:__ Bảo Quân (quan221295), Triet Bui Minh (x3cafe)

Graphics and Assets:
--------------------
* __Wallpapers:__ Matthew Hanley, Henry Mason
* __Icons:__ Bjorn Lunden, Henry Mason
* __Bootanimation:__ Dima Skvarskyi

Former Contributors:
--------------------
* __Devices:__ Entropy512, xplodwild
* __Features:__ mad-murdock, wysie, Ander Webbs, ChainsDD, xplodwild
