======================
Added
-----
* Added ``BleakCharacteristicNotFoundError`` which is raised if a device does not support a characteristic.
* Added utility function to work around ``pywin32`` setting threading model to STA on Windows.
Changed
-------
* Updated PyObjC dependency on macOS to v10.x.
* Updated missing Bluetooth SIG characteristics and service UUIDs.
* Updated ``BlueZManager`` to remove empty interfaces from `_properties` during InterfacesRemoved message.
* Updated PyWinRT dependency to v2. Fixes 1529.
* Raise exception when trying to scan while in a single-treaded apartment (STA) on Windows. Fixes 1132.
Fixed
-----
* Fixed BlueZ version in passive scanning error message. Fixes 1433.
* Fixed mypy requiring ``Unpack[ExtraArgs]`` that were intended to be optional. Fixes 1487.
* Fixed ``KeyError`` in BlueZ ``is_connected()`` and ``get_global_bluez_manager()`` when device is not present. Fixes 1507.
* Fixed BlueZ ``_wait_removed`` completion on invalid object path. Fixes 1489.
* Fixed rare unhandled exception when scanning on macOS when using ``use_bdaddr``. Fixes 1523.
* Fixed scanning silently failing on Windows when Bluetooth is off. Fixes 1535.
* Fixed using wrong value for ``tx_power`` in Android backend. Fixes 1532.
* Fixed 4-character UUIDs not working on ``BleakClient.*_gatt_char`` methods. Fixes 1498.
* Fixed race condition with getting max PDU size on Windows. Fixes 1497.
* Fixed filtering advertisement data by service UUID when multiple apps are scanning. Fixes 1534.