diff --git a/_static/changelog-2023.4.0.png b/_static/changelog-2023.4.0.png
new file mode 100644
index 000000000..38b113300
Binary files /dev/null and b/_static/changelog-2023.4.0.png differ
diff --git a/changelog/2023.4.0.rst b/changelog/2023.4.0.rst
new file mode 100644
index 000000000..aa863df17
--- /dev/null
+++ b/changelog/2023.4.0.rst
@@ -0,0 +1,245 @@
+ESPHome 2023.4.0 - 19th April 2023
+==================================
+
+.. seo::
+ :description: Changelog for ESPHome 2023.4.0.
+ :image: /_static/changelog-2023.4.0.png
+ :author: Jesse Hills
+ :author_twitter: @jesserockz
+
+.. imgtable::
+ :columns: 3
+
+ Voice Assistant, components/voice_assistant, voice-assistant.svg
+ Microphone Core, components/microphone/index, microphone.svg
+ I2S Microphone, components/microphone/i2s_audio, i2s_audio.svg
+ MMC5603, components/sensor/mmc5603, mmc5603.jpg
+ KSZ8081 Ethernet, components/ethernet, ethernet.svg
+
+
+Voice Assistant
+---------------
+
+This year is the Year of the Voice for Home Assistant, and ESPHome is charging ahead with this in mind.
+We've added a new :doc:`/components/voice_assistant` component that allows you to use ESPHome devices as an input
+for `assist `__ in Home Assistant.
+
+With this also comes preliminary :doc:`microphone ` support, which has been built in a way that multiple
+components, like ``voice_assistant`` can request start / stop of the microphone and get the data. We
+hope this leads to more interesting use cases for the microphone in the future.
+
+Home Assistant is hosting a live stream all about the Year of the Voice - Chapter 2.
+
+.. raw:: html
+
+
+
+
+Keith joins Nabu Casa
+---------------------
+
+Nabu Casa is pleased to annouce that long time contributor Keith Burzinski (:ghuser:`kbx81`) is joining the
+team as a full time developer to help out on ESPHome. Keith created the :doc:`/components/sprinkler`,
+:doc:`/components/climate/thermostat`, a bunch of the ``ssd`` display components and a few other components
+as well as fixing many bug along the way. I expect his house climate and garden area are kept well in line.
+
+Looking forward to working with you Keith.
+
+Breaking Changes
+----------------
+
+I²S Media Player
+^^^^^^^^^^^^^^^^
+
+With the introduction of the :doc:`/components/microphone/i2s_audio`, the media player platform has some
+required breaking changes to the YAML configuration. This involves moving the ``i2s_lrclk_pin`` and
+``i2s_bclk_pin`` to a new :doc:`/components/i2s_audio` component.
+
+.. code-block:: yaml
+
+ # Before
+ media_player:
+ - platform: i2s_audio
+ name: ESPHome I2S Media Player
+ dac_type: external
+ i2s_lrclk_pin: GPIO33
+ i2s_bclk_pin: GPIO19
+ i2s_dout_pin: GPIO22
+ mode: mono
+
+ # After
+ i2s_audio:
+ i2s_lrclk_pin: GPIO33
+ i2s_bclk_pin: GPIO19
+
+ media_player:
+ - platform: i2s_audio
+ name: ESPHome I2S Media Player
+ dac_type: external
+ i2s_dout_pin: GPIO22
+ mode: mono
+
+Default restore mode for Switches, Fans and Lights
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+The default ``restore_mode`` for switches, fans and lights has been changed
+from ``RESTORE_DEFAULT_OFF`` to ``ALWAYS_OFF`` with the intention that restoring values
+from flash should be manually specified by a user if desired in their YAML configuration.
+
+Number ``step``
+^^^^^^^^^^^^^^^
+
+The ``number`` components have always internally set a ``step`` required in config,
+but allowed it to be not specified at all. This caused issues on the Home Assistant side
+of things. This is only a breaking change for external components that have a ``number`` platform.
+
+UART ids
+^^^^^^^^
+
+Due to ``uart0`` / ``uart1`` / ``uart2`` being defined in some of the platform code ESPHome uses,
+ESPHome will now disallow these ids from being used in the config. You can simply change them to
+``uart_0`` to continue using.
+
+Full list of changes
+--------------------
+
+New Components
+^^^^^^^^^^^^^^
+
+- Added in mmc5603 code :esphomepr:`4175` by :ghuser:`benhoff` (new-integration)
+- Add push to talk voice assistant :esphomepr:`4648` by :ghuser:`jesserockz` (new-integration)
+
+Breaking Changes
+^^^^^^^^^^^^^^^^
+
+- Disallow uart0/1/2 as ids in config :esphomepr:`4446` by :ghuser:`jesserockz` (breaking-change)
+- Require step to be set when calling register_number :esphomepr:`4622` by :ghuser:`jesserockz` (breaking-change)
+- Fix restore :esphomepr:`4655` by :ghuser:`spacemanspiff2007` (breaking-change)
+
+Beta Changes
+^^^^^^^^^^^^
+
+- debug component, allow without debug logging :esphomepr:`4685` by :ghuser:`jesserockz`
+- Fixed dns2 for ethernet :esphomepr:`4698` by :ghuser:`HeMan`
+- Add timeout to i2c write error logs :esphomepr:`4697` by :ghuser:`Szewcson`
+- Add event triggers to voice_assistant :esphomepr:`4699` by :ghuser:`jesserockz`
+- Call on_error if no api client connected that handles voice :esphomepr:`4709` by :ghuser:`jesserockz`
+- Add ethernet powerdown (fixes esphome/issues#4420) :esphomepr:`4706` by :ghuser:`tracestep`
+- Bump arduino platform version to 5.3.0 :esphomepr:`4713` by :ghuser:`jesserockz`
+
+All changes
+^^^^^^^^^^^
+
+- Mark unique_id() virtual method as deprecated :esphomepr:`4538` by :ghuser:`oxan`
+- Drop deprecated entity property base methods :esphomepr:`4539` by :ghuser:`oxan`
+- Format test files :esphomepr:`4541` by :ghuser:`jesserockz`
+- EntityBase: Icon string can stay in flash. :esphomepr:`4566` by :ghuser:`Fabian-Schmidt`
+- Update the delta filter to be able to take a percentage change :esphomepr:`4391` by :ghuser:`TrentHouliston`
+- Added missing PM_1_0 and PM_10_0 for PMS5003T and PMS5003ST :esphomepr:`4560` by :ghuser:`genestealer`
+- Add an option to force SPI into software mode :esphomepr:`4556` by :ghuser:`wupeka`
+- allow using a binary output for the status led :esphomepr:`4532` by :ghuser:`ssieb`
+- Add option flip_x :esphomepr:`4555` by :ghuser:`rafal83`
+- Bump aioesphomeapi from 13.5.0 to 13.5.1 :esphomepr:`4572` by :ghuser:`dependabot[bot]`
+- Verbose output of define. :esphomepr:`4576` by :ghuser:`Fabian-Schmidt`
+- Add support for ESP32 CAM 3MP and 5MP resolutions and arbitrary camera clock. :esphomepr:`4580` by :ghuser:`peterhalicky`
+- Add a simple 'skip_initial' filter :esphomepr:`4582` by :ghuser:`sybrenstuvel`
+- Fix outdated filter string in platformio_api :esphomepr:`4587` by :ghuser:`LordMike`
+- Split test3.yaml :esphomepr:`4591` by :ghuser:`jesserockz`
+- Disallow uart0/1/2 as ids in config :esphomepr:`4446` by :ghuser:`jesserockz` (breaking-change)
+- Upgrade clang-format to v13 :esphomepr:`4535` by :ghuser:`oxan`
+- B/W support for GooDisplay GDEY029T94 (as used on Adafruit MagTag) :esphomepr:`4222` by :ghuser:`AaronJackson`
+- Fix negative sqrt root in ct_clamp_sensor.cpp :esphomepr:`4236` by :ghuser:`jerome992`
+- Wrap ipv6 code a bit more :esphomepr:`4574` by :ghuser:`jesserockz`
+- Remove EntityBase from sprinkler :esphomepr:`4606` by :ghuser:`jesserockz`
+- Fix wrong port multiplexer name in dump GPIO function of sx1509 :esphomepr:`4592` by :ghuser:`skaldo`
+- Bump zeroconf from 0.47.3 to 0.47.4 :esphomepr:`4597` by :ghuser:`dependabot[bot]`
+- Bump pytest-asyncio from 0.20.3 to 0.21.0 :esphomepr:`4599` by :ghuser:`dependabot[bot]`
+- Limit range on filter time period for remote_receiver :esphomepr:`4604` by :ghuser:`RoboMagus`
+- add select_schema to select component :esphomepr:`4545` by :ghuser:`regevbr`
+- Add ability to clear the gatt cache :esphomepr:`4621` by :ghuser:`bdraco`
+- Bump actions/stale from 7 to 8 :esphomepr:`4615` by :ghuser:`dependabot[bot]`
+- Require step to be set when calling register_number :esphomepr:`4622` by :ghuser:`jesserockz` (breaking-change)
+- Lower range of CONF_FREQUENCY :esphomepr:`4619` by :ghuser:`berendhaan`
+- Allow entity names to be set to None :esphomepr:`4607` by :ghuser:`jesserockz`
+- Fix platform restriction for bme680_bsec :esphomepr:`4616` by :ghuser:`jesserockz`
+- Fix EzoCommandType enum :esphomepr:`4593` by :ghuser:`alfredopironti`
+- `EntityBase` Name can stay in flash. :esphomepr:`4594` by :ghuser:`Fabian-Schmidt`
+- feat: Add support to unsubscribe from BLE advertisements :esphomepr:`4620` by :ghuser:`richardhopton`
+- EntityBase: Move ObjectId to Flash :esphomepr:`4569` by :ghuser:`Fabian-Schmidt`
+- Add workflow to sync device classes with HA dev :esphomepr:`4629` by :ghuser:`jesserockz`
+- Synchronise Device Classes from Home Assistant :esphomepr:`4633` by :ghuser:`github-actions[bot]`
+- Remove AUTO_LOAD from as3935 :esphomepr:`4630` by :ghuser:`jesserockz`
+- Add ifdef to new bt proxy unsubscribe :esphomepr:`4634` by :ghuser:`jesserockz`
+- add bluetooth mac address in dump_config() :esphomepr:`4628` by :ghuser:`felixlungu`
+- Binary map bugfixes :esphomepr:`4636` by :ghuser:`kahrendt`
+- entity_base avoid padding bytes. :esphomepr:`4637` by :ghuser:`Fabian-Schmidt`
+- Avoid sensor padding. :esphomepr:`4638` by :ghuser:`Fabian-Schmidt`
+- Support advanced UART customization :esphomepr:`4465` by :ghuser:`Fabian-Schmidt`
+- Log calibration results at level INFO :esphomepr:`4240` by :ghuser:`Duckle29`
+- Number step not optional :esphomepr:`4649` by :ghuser:`RoboMagus`
+- VSCode / devcontainer updates :esphomepr:`4647` by :ghuser:`jesserockz`
+- Retry PN532_COMMAND_VERSION_DATA on setup() (fixes esphome/issues#3823) :esphomepr:`4651` by :ghuser:`tracestep`
+- Bump pylint from 2.16.4 to 2.17.2 :esphomepr:`4650` by :ghuser:`dependabot[bot]`
+- Bump black from 23.1.0 to 23.3.0 :esphomepr:`4635` by :ghuser:`dependabot[bot]`
+- Added in mmc5603 code :esphomepr:`4175` by :ghuser:`benhoff` (new-integration)
+- fix compilation with latest esp-idf :esphomepr:`4671` by :ghuser:`Mic92`
+- Bump zeroconf from 0.47.4 to 0.56.0 :esphomepr:`4674` by :ghuser:`dependabot[bot]`
+- Bump pytest from 7.2.2 to 7.3.0 :esphomepr:`4673` by :ghuser:`dependabot[bot]`
+- Add push to talk voice assistant :esphomepr:`4648` by :ghuser:`jesserockz` (new-integration)
+- Fix ESP32 SPI hardware assignment in Arduino fw :esphomepr:`4669` by :ghuser:`kbx81`
+- Fix some NFC/PN532 crashes :esphomepr:`4678` by :ghuser:`kbx81`
+- Add support for SSD1306 72x40 displays :esphomepr:`4659` by :ghuser:`johnsto`
+- Fix pin schema for i2s microphone :esphomepr:`4680` by :ghuser:`jesserockz`
+- Fix BedJet setup priority [fixes esphome/issues#3807] :esphomepr:`4677` by :ghuser:`jhansche`
+- Add always trigger stop :esphomepr:`4249` by :ghuser:`X-Ryl669`
+- Fix graph limits for negative values and other corner cases :esphomepr:`4253` by :ghuser:`unhold`
+- Fix cut-off on 2.13" waveshare/ttgo epaper displays :esphomepr:`4255` by :ghuser:`unhold`
+- [Ethernet] Add PHY KSZ8081 support :esphomepr:`4668` by :ghuser:`Fabian-Schmidt`
+- Fix restore :esphomepr:`4655` by :ghuser:`spacemanspiff2007` (breaking-change)
+- debug component, allow without debug logging :esphomepr:`4685` by :ghuser:`jesserockz`
+- Fixed dns2 for ethernet :esphomepr:`4698` by :ghuser:`HeMan`
+- Add timeout to i2c write error logs :esphomepr:`4697` by :ghuser:`Szewcson`
+- Add event triggers to voice_assistant :esphomepr:`4699` by :ghuser:`jesserockz`
+- Call on_error if no api client connected that handles voice :esphomepr:`4709` by :ghuser:`jesserockz`
+- Add ethernet powerdown (fixes esphome/issues#4420) :esphomepr:`4706` by :ghuser:`tracestep`
+- Bump arduino platform version to 5.3.0 :esphomepr:`4713` by :ghuser:`jesserockz`
+
+Past Changelogs
+---------------
+
+- :doc:`2023.3.0`
+- :doc:`2023.2.0`
+- :doc:`2022.12.0`
+- :doc:`2022.11.0`
+- :doc:`2022.10.0`
+- :doc:`2022.9.0`
+- :doc:`2022.8.0`
+- :doc:`2022.6.0`
+- :doc:`2022.5.0`
+- :doc:`2022.4.0`
+- :doc:`2022.3.0`
+- :doc:`2022.2.0`
+- :doc:`2022.1.0`
+- :doc:`2021.12.0`
+- :doc:`2021.11.0`
+- :doc:`2021.10.0`
+- :doc:`2021.9.0`
+- :doc:`2021.8.0`
+- :doc:`v1.20.0`
+- :doc:`v1.19.0`
+- :doc:`v1.18.0`
+- :doc:`v1.17.0`
+- :doc:`v1.16.0`
+- :doc:`v1.15.0`
+- :doc:`v1.14.0`
+- :doc:`v1.13.0`
+- :doc:`v1.12.0`
+- :doc:`v1.11.0`
+- :doc:`v1.10.0`
+- :doc:`v1.9.0`
+- :doc:`v1.8.0`
+- :doc:`v1.7.0`
diff --git a/changelog/index.rst b/changelog/index.rst
index 697efc4d3..432d05582 100644
--- a/changelog/index.rst
+++ b/changelog/index.rst
@@ -2,7 +2,7 @@ Changelog
=========
.. redirect::
- :url: /changelog/2023.3.0.html
+ :url: /changelog/2023.4.0.html
.. toctree::
:glob:
diff --git a/components/display/max7219.rst b/components/display/max7219.rst
index b60386cae..4959dbb10 100644
--- a/components/display/max7219.rst
+++ b/components/display/max7219.rst
@@ -104,7 +104,7 @@ segment of the previous position will be enabled.
// Print the current time
it.print(" ");
- it.strftime("%H.%M.%S");
+ it.strftime("%H.%M.%S", id(esptime).now());
// Result for 10:06:42 -> "10.06.42 "
// Change the display intnsity based on another id.
diff --git a/components/number/index.rst b/components/number/index.rst
index 20f8253a4..34e82cec9 100644
--- a/components/number/index.rst
+++ b/components/number/index.rst
@@ -284,7 +284,7 @@ using a generic templatable action call.
- number.operation:
id: my_number
operation: !lambda "return NUMBER_OP_INCREMENT;"
- cycle: !lambda: "return true;"
+ cycle: !lambda "return true;"
Configuration variables:
diff --git a/guides/supporters.rst b/guides/supporters.rst
index 78fc2f687..4c0d6ef55 100644
--- a/guides/supporters.rst
+++ b/guides/supporters.rst
@@ -16,6 +16,7 @@ Contributors
(in alphabetical order)
+- `007hacky007 (@007hacky007) `__
- `0hax (@0hax) `__
- `0x0a11c0de (@0x0a11c0de) `__
- `Denis Bodor (aka Lefinnois) (@0xDRRB) `__
@@ -26,10 +27,12 @@ Contributors
- `Alessandro Campolo (@a13ssandr0) `__
- `Aalian Khan (@AalianKhan) `__
- `Adam Liddell (@aaliddell) `__
+- `Aaron Gamble (@aarongamble) `__
- `Aaron S. Jackson (@AaronJackson) `__
- `Abel Matser (@abelmatser) `__
- `Abílio Costa (@abmantis) `__
- `Antonio (@acarvajalperez) `__
+- `Avula Chandra Kiran Reddy (@ackr-8) `__
- `Zhenyu Wu (@Adam5Wu) `__
- `Chris Byrne (@adapt0) `__
- `Attila Darazs (@adarazs) `__
@@ -41,9 +44,12 @@ Contributors
- `Stefan Agner (@agners) `__
- `Anders (@ahd71) `__
- `Alexander Pohl (@ahpohl) `__
+- `aidbish (@aidbish) `__
- `Airy André (@airy10) `__
+- `Airyzz (@Airyzz) `__
- `Adam Jacques (@ajacques) `__
- `Andrej Friesen (@ajfriesen) `__
+- `akennerly (@akennerly) `__
- `akoivist (@akoivist) `__
- `Andrej Komelj (@akomelj) `__
- `Alex Konradi (@akonradi) `__
@@ -58,13 +64,17 @@ Contributors
- `Alex Iribarren (@alexiri) `__
- `Alex Mekkering (@AlexMekkering) `__
- `Alex (@alexyao2015) `__
+- `Alfredo (@alfredopironti) `__
- `Andreas Mandel (@amandel) `__
- `Amish Vishwakarma (@amishv) `__
+- `Amit Keret (@amitkeret) `__
- `Jason Nader (@ammgws) `__
- `Branden Cash (@ammmze) `__
- `Alexander Momchilov (@amomchilov) `__
- `anatoly-savchenkov (@anatoly-savchenkov) `__
- `andig (@andig) `__
+- `Andi Egli (@andilge) `__
+- `Kieren (@ando023) `__
- `András Bíró (@andrasbiro) `__
- `Andreas Hergert (@andreashergert1984) `__
- `Andrew J.Swan (@andrewjswan) `__
@@ -73,14 +83,17 @@ Contributors
- `Andrzej (@andriej) `__
- `Andreas (@anduchs) `__
- `Andy2No (@Andy2No) `__
+- `AndyRPH (@AndyRPH) `__
- `Vegetto (@angelnu) `__
- `Sergey Anisimov (@anisimovsergey) `__
- `Nikolay Vasilchuk (@Anonym-tsk) `__
- `Anthony Keane (@anthonykeane) `__
+- `Rémi K. (@antibill51) `__
- `Antonio Fiol (@antonio-fiol) `__
- `Adriaan Peeters (@apeeters) `__
- `apendley (@apendley) `__
- `Darius Ratkevičius (@aphex008) `__
+- `aquaticus (@aquaticus) `__
- `Andy Allsopp (@arallsopp) `__
- `arantius (@arantius) `__
- `arturo182 (@arturo182) `__
@@ -88,33 +101,45 @@ Contributors
- `Arya (@Arya11111) `__
- `Borys Pierov (@ashald) `__
- `Ash McKenzie (@ashmckenzie) `__
+- `ashp8i (@ashp8i) `__
- `Ashton Kemerling (@AshtonKem) `__
- `杨成锴 (@asjdf) `__
- `Pavel Pletenev (@ASMfreaK) `__
- `Andreas Soehlke (@asoehlke) `__
- `Mike Dunston (@atanisoft) `__
+- `Glenn Morrison (@atomicpapa) `__
- `Alexander Turlov (@aturlov) `__
+- `aus (@aus) `__
- `AustinMorris (@AustinMorris) `__
- `Avirsaam (@Avirsaam) `__
- `Arsène von Wyss (@avonwyss) `__
+- `Andrew Weddle (@aweddle2) `__
- `Achilleas Pipinellis (@axilleas) `__
- `Kamil Trzciński (@ayufan) `__
- `Nicholas Peters (@Azimath) `__
- `Daniel (@azrael783) `__
- `B48D81EFCC (@B48D81EFCC) `__
- `Florian Mösch (@badbadc0ffee) `__
+- `Baden (@baden03) `__
- `Marco Tombesi (@baggior) `__
- `balk77 (@balk77) `__
- `Paulus Schoutsen (@balloob) `__
- `Andrew Zaborowski (@balrog-kun) `__
- `BarryMar (@BarryMar) `__
+- `bartoszpierzchlewicz (@bartoszpierzchlewicz) `__
+- `BartoszPierzchlewiczMacrix (@BartoszPierzchlewiczMacrix) `__
- `Bascht74 (@Bascht74) `__
- `Viktr (@BbIKTOP) `__
- `J. Nick Koston (@bdraco) `__
- `Maxim Ocheretianko (@bearpawmaxim) `__
+- `beaudeanadams (@beaudeanadams) `__
- `Benjamin Freeman (@Beetix) `__
+- `beikeland (@beikeland) `__
+- `Ben-Schwabe (@Ben-Schwabe) `__
+- `Ben Hoff (@benhoff) `__
- `Benno Pütz (@bennop) `__
- `Benoit3 (@Benoit3) `__
+- `Ben Shaner (@bens545) `__
- `Ben Suffolk (@bensuffolk) `__
- `Berend Haan (@berendhaan) `__
- `Arturo Casal (@berfenger) `__
@@ -122,22 +147,29 @@ Contributors
- `Bert Hertogen (@berthertogen) `__
- `Ivan Bessarabov (@bessarabov) `__
- `Brandon (@bgulla) `__
+- `Benedikt Hübschen (@bhuebschen) `__
- `Bierchermuesli (@Bierchermuesli) `__
- `Bill Church (@billchurch) `__
- `Brian Kaufman (@bkaufx) `__
- `JDavid (@blackhack) `__
- `blakadder (@blakadder) `__
- `Branimir Lambov (@blambov) `__
+- `bleeisme (@bleeisme) `__
- `Jim Ekman (@blejdfist) `__
- `Scott Smith (@blurfl) `__
- `Bob (@Bmooij) `__
- `Benjamin Klotz (@bnw) `__
+- `Bob Kersten (@bobkersten) `__
- `Bodmer (@Bodmer) `__
+- `Anthony Todd (@bohregard) `__
+- `Bomaker (@Bomaker) `__
- `Mauricio Bonani (@bonanitech) `__
- `Casey Olson (@bookcasey) `__
+- `Borja Burgos (@borjaburgos) `__
- `BoukeHaarsma23 (@BoukeHaarsma23) `__
- `brambo123 (@brambo123) `__
- `Bram Kragten (@bramkragten) `__
+- `Brandan Cotton (@Brando47) `__
- `Brad Davidson (@brandond) `__
- `Daniel H Brown (@brauhausdc) `__
- `Jens Bretschneider (@breti) `__
@@ -147,36 +179,52 @@ Contributors
- `brianrjones69 (@brianrjones69) `__
- `Ben Brooks (@brooksben11) `__
- `buddydvd (@buddydvd) `__
+- `Matt Burke (@burkemw3) `__
- `Jon Little (@burundiocibu) `__
- `buxtronix (@buxtronix) `__
- `bvansambeek (@bvansambeek) `__
+- `c0ffeeca7 (@c0ffeeca7) `__
+- `Captain Haddock (@ca-haddock) `__
- `Cal Howard (@calhoward) `__
+- `callacomp (@callacomp) `__
+- `Callum Gare (@callumgare) `__
- `Carlos Gustavo Sarmiento (@carlos-sarmiento) `__
- `Carlos Garcia Saura (@CarlosGS) `__
- `Carlos Ruiz (@CarlosRDomin) `__
+- `carlywarly (@carlywarly) `__
- `carstenschroeder (@carstenschroeder) `__
- `Valentin Ochs (@Cat-Ion) `__
- `Stroe Andrei Catalin (@catalin2402) `__
- `cbialobos (@cbialobos) `__
+- `Cameron Bulock (@cbulock) `__
- `Ciprian Constantinescu (@cciprian5) `__
+- `cdmonk (@cdmonk) `__
+- `ceaswaran (@ceaswaran) `__
- `Cellie (@CelliesProjects) `__
- `Chris Feenstra (@cfeenstra1024) `__
+- `cg089 (@cg089) `__
- `Kostas Chatzikokolakis (@chatziko) `__
+- `Audric Schiltknecht (@chemicalstorm) `__
- `chris-jennings (@chris-jennings) `__
- `Chris (@chrismaki) `__
- `Christoph Wagner (@Christoph-Wagner) `__
- `Christian Taedcke (@chrta) `__
- `Pavel Skuratovich (@Chupaka) `__
- `Chris Johnson (@ciband) `__
+- `CircuitGuy (@CircuitGuy) `__
- `John (@CircuitSetup) `__
- `Colby Rome (@cisasteelersfan) `__
- `Chris Debenham (@cjd) `__
- `Chester (@clowrey) `__
+- `Colin McCambridge (@cmccambridge) `__
- `Clifford Roche (@cmroche) `__
- `Casey Burnett (@codeangler) `__
- `CODeRUS (@CODeRUS) `__
+- `Alex Miller (@Codex-) `__
- `Cody James (@codyjamestechnical) `__
+- `Ashton Lafferty (@cogneato) `__
- `Colin Leroy-Mira (@colinleroy) `__
+- `Max (@coltoncat) `__
- `Conclusio (@Conclusio) `__
- `John Coggeshall (@coogle) `__
- `James Crook (@cooljimy84) `__
@@ -189,20 +237,28 @@ Contributors
- `Connor Prussin (@cprussin) `__
- `Corey Rice (@crice009) `__
- `cryptelli (@cryptelli) `__
+- `Christian Schwarzgruber (@cslux) `__
- `cstaahl (@cstaahl) `__
- `Chris Talkington (@ctalkington) `__
- `Massimo Cetra (@ctrix) `__
- `cvwillegen (@cvwillegen) `__
- `Christoph Wempe (@CWempe) `__
+- `Steven Webb (@cy1701) `__
- `Alex Solomaha (@CyanoFresh) `__
- `Luar Roji (@cyberplant) `__
+- `Petr Diviš (@czechdude) `__
- `Aleš Komárek (@cznewt) `__
+- `d-rez (@d-rez) `__
- `Dale Higgs (@dale3h) `__
- `damanti-me (@damanti-me) `__
+- `Dan C Williams (@dancwilliams) `__
- `Daniel Bjørnbakk (@danibjor) `__
- `Daniel Kucera (@danielkucera) `__
+- `Daniel O'Connor (@DanielO) `__
- `Daniel Rheinbay (@danielrheinbay) `__
- `Daniel Schramm (@danielschramm) `__
+- `Daniel Martin Gonzalez (@danimart1991) `__
+- `danlimlu (@danlimlu) `__
- `Chris (@darthsebulba04) `__
- `Dan Gentry (@dashdrum) `__
- `Aliasghar Dashkhaneh (@dashkhaneh) `__
@@ -215,13 +271,16 @@ Contributors
- `David De Sloovere (@DavidDeSloovere) `__
- `David Beitey (@davidjb) `__
- `David Newgas (@davidn) `__
+- `David Noyes (@davidnoyes) `__
- `David Zovko (@davidzovko) `__
- `Davy Landman (@DavyLandman) `__
+- `Dawid Cieszyński (@dawidcieszynski) `__
- `Darren Tucker (@daztucker) `__
- `Donovan Baarda (@dbaarda) `__
- `David Buezas (@dbuezas) `__
- `dckiller51 (@dckiller51) `__
- `Daniel Correa Lobato (@dclobato) `__
+- `DeadEnd (@DeadEnded) `__
- `Debashish Sahu (@debsahu) `__
- `declanshanaghy (@declanshanaghy) `__
- `Maximilian (@DeerMaximum) `__
@@ -237,7 +296,9 @@ Contributors
- `Deun Lee (@deunlee) `__
- `Develo (@devyte) `__
- `Dezorian (@Dezorian) `__
+- `Damian Gołda (@dgolda) `__
- `Dan Halbert (@dhalbert) `__
+- `Dustin L. Howett (@DHowett) `__
- `Alain Turbide (@Dilbert66) `__
- `Mark (@Diramu) `__
- `Dirk Heinke (@DirkHeinke) `__
@@ -254,19 +315,24 @@ Contributors
- `Dorian Zedler (@dorianim) `__
- `Mark Dietzer (@Doridian) `__
- `Jiang Sheng (@doskoi) `__
+- `Artem Sheremet (@dotdoom) `__
- `Robert Schütz (@dotlambda) `__
- `Daniel Hyles (@DotNetDann) `__
- `dr-oblivium (@dr-oblivium) `__
- `Drew Perttula (@drewp) `__
- `drmpf (@drmpf) `__
+- `drogfild (@drogfild) `__
- `DrRob (@DrRob) `__
- `Daniel Müller (@dtmuller) `__
+- `Tom Soer (@dtx3k) `__
- `dubit0 (@dubit0)