We are currently solving the following issue within our repository. Here is the issue text:
--- BEGIN ISSUE ---
Logitech receiver not found/Unpairable peripherals
- Solaar version : 1.0.2
- Distribution: Kali Linux
- Kernel version (ex. `uname -srmo`): Linux 5.5.0-kali2-amd64 x86_64 GNU/Linux
- Output of `solaar show`: 
```
OUTPUT HERE
```
 solaar: error: Logitech receiver not found

**Describe the bug**
I'm using a Logitech G915TKL Keyboard along with it's Lightspeed USB receiver. Solaar  doesn't seem to be realizing the G915TKL's receiver other than to allow direct connection from the keyboard (non-bluetooth). I also have unifying and nano receivers. They are recognized by solaar, but won't pick up any other devices than the ones that are connected to each respective receiver by default. If there's a way that I can drop a log please let me know because I'd love to pair my Logitech peripherals.

**To Reproduce**
Steps to reproduce the behavior:
1. Go to Solaar icon
2. Click on the Solaar icon
3. It says no Logitech receiver found

--- END ISSUE ---

Below are some code segments, each from a relevant file. One or more of these files may contain bugs.
--- BEGIN FILES ---
Path: `lib/logitech_receiver/base_usb.py`
Content:
```
1 # -*- python-mode -*-
2 # -*- coding: UTF-8 -*-
3 
4 ## Copyright (C) 2012-2013  Daniel Pavel
5 ##
6 ## This program is free software; you can redistribute it and/or modify
7 ## it under the terms of the GNU General Public License as published by
8 ## the Free Software Foundation; either version 2 of the License, or
9 ## (at your option) any later version.
10 ##
11 ## This program is distributed in the hope that it will be useful,
12 ## but WITHOUT ANY WARRANTY; without even the implied warranty of
13 ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14 ## GNU General Public License for more details.
15 ##
16 ## You should have received a copy of the GNU General Public License along
17 ## with this program; if not, write to the Free Software Foundation, Inc.,
18 ## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
19 
20 # USB ids of Logitech wireless receivers.
21 # Only receivers supporting the HID++ protocol can go in here.
22 
23 from __future__ import absolute_import, division, print_function, unicode_literals
24 
25 # max_devices is only used for receivers that do not support reading from _R.receiver_info offset 0x03, default to 1
26 # may_unpair is only used for receivers that do not support reading from _R.receiver_info offset 0x03, default to False
27 ## should this last be changed so that may_unpair is used for all receivers? writing to _R.receiver_pairing doesn't seem right
28 # re_pairs determines whether a receiver pairs by replacing existing pairings, default to False
29 ## currently only one receiver is so marked - should there be more?
30 # ex100_wpid_fix enable workarounds for EX100 and possible other old 27Mhz receivers
31 
32 _DRIVER = ('hid-generic', 'generic-usb', 'logitech-djreceiver')
33 
34 _unifying_receiver = lambda product_id: {
35     'vendor_id': 0x046d,
36     'product_id': product_id,
37     'usb_interface': 2,
38     'hid_driver': _DRIVER,  # noqa: F821
39     'name': 'Unifying Receiver'
40 }
41 
42 _nano_receiver = lambda product_id: {
43     'vendor_id': 0x046d,
44     'product_id': product_id,
45     'usb_interface': 1,
46     'hid_driver': _DRIVER,  # noqa: F821
47     'name': 'Nano Receiver',
48     'may_unpair': False,
49     're_pairs': True
50 }
51 
52 _nano_receiver_max2 = lambda product_id: {
53     'vendor_id': 0x046d,
54     'product_id': product_id,
55     'usb_interface': 1,
56     'hid_driver': _DRIVER,  # noqa: F821
57     'name': 'Nano Receiver',
58     'max_devices': 2,
59     'may_unpair': False,
60     're_pairs': True
61 }
62 
63 _nano_receiver_maxn = lambda product_id, max: {
64     'vendor_id': 0x046d,
65     'product_id': product_id,
66     'usb_interface': 1,
67     'hid_driver': _DRIVER,  # noqa: F821
68     'name': 'Nano Receiver',
69     'max_devices': max,
70     'may_unpair': False,
71     're_pairs': True
72 }
73 
74 _lenovo_receiver = lambda product_id: {
75     'vendor_id': 0x17ef,
76     'product_id': product_id,
77     'usb_interface': 1,
78     'hid_driver': _DRIVER,  # noqa: F821
79     'name': 'Nano Receiver'
80 }
81 
82 _lightspeed_receiver = lambda product_id: {
83     'vendor_id': 0x046d,
84     'product_id': product_id,
85     'usb_interface': 2,
86     'hid_driver': _DRIVER,  # noqa: F821
87     'name': 'Lightspeed Receiver'
88 }
89 
90 _ex100_receiver = lambda product_id: {
91     'vendor_id': 0x046d,
92     'product_id': product_id,
93     'usb_interface': 1,
94     'hid_driver': _DRIVER,  # noqa: F821
95     'name': 'EX100 Receiver 27 Mhz',
96     'max_devices': 4,
97     'may_unpair': False,
98     're_pairs': True,
99     'ex100_wpid_fix': True
100 }
101 
102 # standard Unifying receivers (marked with the orange Unifying logo)
103 UNIFYING_RECEIVER_C52B = _unifying_receiver(0xc52b)
104 UNIFYING_RECEIVER_C532 = _unifying_receiver(0xc532)
105 
106 # Nano receviers that support the Unifying protocol
107 NANO_RECEIVER_ADVANCED = _nano_receiver(0xc52f)
108 
109 # ex100 old style receiver pre-unifyimg protocol
110 EX100_27MHZ_RECEIVER_C517 = _ex100_receiver(0xc517)
111 
112 # Nano receivers that don't support the Unifying protocol
113 NANO_RECEIVER_C518 = _nano_receiver(0xc518)
114 NANO_RECEIVER_C51A = _nano_receiver(0xc51a)
115 NANO_RECEIVER_C51B = _nano_receiver(0xc51b)
116 NANO_RECEIVER_C521 = _nano_receiver(0xc521)
117 NANO_RECEIVER_C525 = _nano_receiver(0xc525)
118 NANO_RECEIVER_C526 = _nano_receiver(0xc526)
119 NANO_RECEIVER_C52e = _nano_receiver(0xc52e)
120 NANO_RECEIVER_C531 = _nano_receiver(0xc531)
121 NANO_RECEIVER_C534 = _nano_receiver_max2(0xc534)
122 NANO_RECEIVER_C537 = _nano_receiver(0xc537)
123 NANO_RECEIVER_6042 = _lenovo_receiver(0x6042)
124 
125 # Lightspeed receivers
126 LIGHTSPEED_RECEIVER_C539 = _lightspeed_receiver(0xc539)
127 LIGHTSPEED_RECEIVER_C53a = _lightspeed_receiver(0xc53a)
128 LIGHTSPEED_RECEIVER_C53f = _lightspeed_receiver(0xc53f)
129 LIGHTSPEED_RECEIVER_C53d = _lightspeed_receiver(0xc53d)
130 
131 del _DRIVER, _unifying_receiver, _nano_receiver, _lenovo_receiver, _lightspeed_receiver
132 
133 ALL = (
134     UNIFYING_RECEIVER_C52B,
135     UNIFYING_RECEIVER_C532,
136     NANO_RECEIVER_ADVANCED,
137     EX100_27MHZ_RECEIVER_C517,
138     NANO_RECEIVER_C518,
139     NANO_RECEIVER_C51A,
140     NANO_RECEIVER_C51B,
141     NANO_RECEIVER_C521,
142     NANO_RECEIVER_C525,
143     NANO_RECEIVER_C526,
144     NANO_RECEIVER_C52e,
145     NANO_RECEIVER_C531,
146     NANO_RECEIVER_C534,
147     NANO_RECEIVER_C537,
148     NANO_RECEIVER_6042,
149     LIGHTSPEED_RECEIVER_C539,
150     LIGHTSPEED_RECEIVER_C53a,
151     LIGHTSPEED_RECEIVER_C53f,
152     LIGHTSPEED_RECEIVER_C53d,
153 )
154 
155 
156 def product_information(usb_id):
157     if isinstance(usb_id, str):
158         usb_id = int(usb_id, 16)
159     for r in ALL:
160         if usb_id == r.get('product_id'):
161             return r
162     return {}
163
```
--- END FILES ---

Please first localize the bug based on the issue statement, and then generate a patch according to the `git diff` format fenced by three backticks.

Here is an example:

```diff
diff --git a/examples/server_async.py b/examples/server_async.py
--- a/examples/server_async.py
+++ b/examples/server_async.py
@@ -313,4 +313,4 @@
 
 
 if __name__ == "__main__":
-    asyncio.run(run_async_server("."), debug=True)
+    asyncio.run(run_async_server(), debug=True)
diff --git a/examples/server_sync.py b/examples/server_sync.py
--- a/examples/server_sync.py
+++ b/examples/server_sync.py
@@ -313,5 +313,5 @@
 
 
 if __name__ == "__main__":
-    server = run_sync_server(".")
+    server = run_sync_server()
     server.shutdown()

```

diff --git a/lib/logitech_receiver/base_usb.py b/lib/logitech_receiver/base_usb.py
--- a/lib/logitech_receiver/base_usb.py
+++ b/lib/logitech_receiver/base_usb.py
@@ -127,6 +127,7 @@
 LIGHTSPEED_RECEIVER_C53a = _lightspeed_receiver(0xc53a)
 LIGHTSPEED_RECEIVER_C53f = _lightspeed_receiver(0xc53f)
 LIGHTSPEED_RECEIVER_C53d = _lightspeed_receiver(0xc53d)
+LIGHTSPEED_RECEIVER_C545 = _lightspeed_receiver(0xc545)
 
 del _DRIVER, _unifying_receiver, _nano_receiver, _lenovo_receiver, _lightspeed_receiver
 
@@ -150,6 +151,7 @@
     LIGHTSPEED_RECEIVER_C53a,
     LIGHTSPEED_RECEIVER_C53f,
     LIGHTSPEED_RECEIVER_C53d,
+    LIGHTSPEED_RECEIVER_C545,
 )

{"golden_diff": "diff --git a/lib/logitech_receiver/base_usb.py b/lib/logitech_receiver/base_usb.py\n--- a/lib/logitech_receiver/base_usb.py\n+++ b/lib/logitech_receiver/base_usb.py\n@@ -127,6 +127,7 @@\n LIGHTSPEED_RECEIVER_C53a = _lightspeed_receiver(0xc53a)\n LIGHTSPEED_RECEIVER_C53f = _lightspeed_receiver(0xc53f)\n LIGHTSPEED_RECEIVER_C53d = _lightspeed_receiver(0xc53d)\n+LIGHTSPEED_RECEIVER_C545 = _lightspeed_receiver(0xc545)\n \n del _DRIVER, _unifying_receiver, _nano_receiver, _lenovo_receiver, _lightspeed_receiver\n \n@@ -150,6 +151,7 @@\n     LIGHTSPEED_RECEIVER_C53a,\n     LIGHTSPEED_RECEIVER_C53f,\n     LIGHTSPEED_RECEIVER_C53d,\n+    LIGHTSPEED_RECEIVER_C545,\n )\n", "issue": "Logitech receiver not found/Unpairable peripherals\n- Solaar version : 1.0.2\r\n- Distribution: Kali Linux\r\n- Kernel version (ex. `uname -srmo`): Linux 5.5.0-kali2-amd64 x86_64 GNU/Linux\r\n- Output of `solaar show`: \r\n```\r\nOUTPUT HERE\r\n```\r\n solaar: error: Logitech receiver not found\r\n\r\n**Describe the bug**\r\nI'm using a Logitech G915TKL Keyboard along with it's Lightspeed USB receiver. Solaar  doesn't seem to be realizing the G915TKL's receiver other than to allow direct connection from the keyboard (non-bluetooth). I also have unifying and nano receivers. They are recognized by solaar, but won't pick up any other devices than the ones that are connected to each respective receiver by default. If there's a way that I can drop a log please let me know because I'd love to pair my Logitech peripherals.\r\n\r\n**To Reproduce**\r\nSteps to reproduce the behavior:\r\n1. Go to Solaar icon\r\n2. Click on the Solaar icon\r\n3. It says no Logitech receiver found\n", "before_files": [{"content": "# -*- python-mode -*-\n# -*- coding: UTF-8 -*-\n\n## Copyright (C) 2012-2013  Daniel Pavel\n##\n## This program is free software; you can redistribute it and/or modify\n## it under the terms of the GNU General Public License as published by\n## the Free Software Foundation; either version 2 of the License, or\n## (at your option) any later version.\n##\n## This program is distributed in the hope that it will be useful,\n## but WITHOUT ANY WARRANTY; without even the implied warranty of\n## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n## GNU General Public License for more details.\n##\n## You should have received a copy of the GNU General Public License along\n## with this program; if not, write to the Free Software Foundation, Inc.,\n## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n\n# USB ids of Logitech wireless receivers.\n# Only receivers supporting the HID++ protocol can go in here.\n\nfrom __future__ import absolute_import, division, print_function, unicode_literals\n\n# max_devices is only used for receivers that do not support reading from _R.receiver_info offset 0x03, default to 1\n# may_unpair is only used for receivers that do not support reading from _R.receiver_info offset 0x03, default to False\n## should this last be changed so that may_unpair is used for all receivers? writing to _R.receiver_pairing doesn't seem right\n# re_pairs determines whether a receiver pairs by replacing existing pairings, default to False\n## currently only one receiver is so marked - should there be more?\n# ex100_wpid_fix enable workarounds for EX100 and possible other old 27Mhz receivers\n\n_DRIVER = ('hid-generic', 'generic-usb', 'logitech-djreceiver')\n\n_unifying_receiver = lambda product_id: {\n    'vendor_id': 0x046d,\n    'product_id': product_id,\n    'usb_interface': 2,\n    'hid_driver': _DRIVER,  # noqa: F821\n    'name': 'Unifying Receiver'\n}\n\n_nano_receiver = lambda product_id: {\n    'vendor_id': 0x046d,\n    'product_id': product_id,\n    'usb_interface': 1,\n    'hid_driver': _DRIVER,  # noqa: F821\n    'name': 'Nano Receiver',\n    'may_unpair': False,\n    're_pairs': True\n}\n\n_nano_receiver_max2 = lambda product_id: {\n    'vendor_id': 0x046d,\n    'product_id': product_id,\n    'usb_interface': 1,\n    'hid_driver': _DRIVER,  # noqa: F821\n    'name': 'Nano Receiver',\n    'max_devices': 2,\n    'may_unpair': False,\n    're_pairs': True\n}\n\n_nano_receiver_maxn = lambda product_id, max: {\n    'vendor_id': 0x046d,\n    'product_id': product_id,\n    'usb_interface': 1,\n    'hid_driver': _DRIVER,  # noqa: F821\n    'name': 'Nano Receiver',\n    'max_devices': max,\n    'may_unpair': False,\n    're_pairs': True\n}\n\n_lenovo_receiver = lambda product_id: {\n    'vendor_id': 0x17ef,\n    'product_id': product_id,\n    'usb_interface': 1,\n    'hid_driver': _DRIVER,  # noqa: F821\n    'name': 'Nano Receiver'\n}\n\n_lightspeed_receiver = lambda product_id: {\n    'vendor_id': 0x046d,\n    'product_id': product_id,\n    'usb_interface': 2,\n    'hid_driver': _DRIVER,  # noqa: F821\n    'name': 'Lightspeed Receiver'\n}\n\n_ex100_receiver = lambda product_id: {\n    'vendor_id': 0x046d,\n    'product_id': product_id,\n    'usb_interface': 1,\n    'hid_driver': _DRIVER,  # noqa: F821\n    'name': 'EX100 Receiver 27 Mhz',\n    'max_devices': 4,\n    'may_unpair': False,\n    're_pairs': True,\n    'ex100_wpid_fix': True\n}\n\n# standard Unifying receivers (marked with the orange Unifying logo)\nUNIFYING_RECEIVER_C52B = _unifying_receiver(0xc52b)\nUNIFYING_RECEIVER_C532 = _unifying_receiver(0xc532)\n\n# Nano receviers that support the Unifying protocol\nNANO_RECEIVER_ADVANCED = _nano_receiver(0xc52f)\n\n# ex100 old style receiver pre-unifyimg protocol\nEX100_27MHZ_RECEIVER_C517 = _ex100_receiver(0xc517)\n\n# Nano receivers that don't support the Unifying protocol\nNANO_RECEIVER_C518 = _nano_receiver(0xc518)\nNANO_RECEIVER_C51A = _nano_receiver(0xc51a)\nNANO_RECEIVER_C51B = _nano_receiver(0xc51b)\nNANO_RECEIVER_C521 = _nano_receiver(0xc521)\nNANO_RECEIVER_C525 = _nano_receiver(0xc525)\nNANO_RECEIVER_C526 = _nano_receiver(0xc526)\nNANO_RECEIVER_C52e = _nano_receiver(0xc52e)\nNANO_RECEIVER_C531 = _nano_receiver(0xc531)\nNANO_RECEIVER_C534 = _nano_receiver_max2(0xc534)\nNANO_RECEIVER_C537 = _nano_receiver(0xc537)\nNANO_RECEIVER_6042 = _lenovo_receiver(0x6042)\n\n# Lightspeed receivers\nLIGHTSPEED_RECEIVER_C539 = _lightspeed_receiver(0xc539)\nLIGHTSPEED_RECEIVER_C53a = _lightspeed_receiver(0xc53a)\nLIGHTSPEED_RECEIVER_C53f = _lightspeed_receiver(0xc53f)\nLIGHTSPEED_RECEIVER_C53d = _lightspeed_receiver(0xc53d)\n\ndel _DRIVER, _unifying_receiver, _nano_receiver, _lenovo_receiver, _lightspeed_receiver\n\nALL = (\n    UNIFYING_RECEIVER_C52B,\n    UNIFYING_RECEIVER_C532,\n    NANO_RECEIVER_ADVANCED,\n    EX100_27MHZ_RECEIVER_C517,\n    NANO_RECEIVER_C518,\n    NANO_RECEIVER_C51A,\n    NANO_RECEIVER_C51B,\n    NANO_RECEIVER_C521,\n    NANO_RECEIVER_C525,\n    NANO_RECEIVER_C526,\n    NANO_RECEIVER_C52e,\n    NANO_RECEIVER_C531,\n    NANO_RECEIVER_C534,\n    NANO_RECEIVER_C537,\n    NANO_RECEIVER_6042,\n    LIGHTSPEED_RECEIVER_C539,\n    LIGHTSPEED_RECEIVER_C53a,\n    LIGHTSPEED_RECEIVER_C53f,\n    LIGHTSPEED_RECEIVER_C53d,\n)\n\n\ndef product_information(usb_id):\n    if isinstance(usb_id, str):\n        usb_id = int(usb_id, 16)\n    for r in ALL:\n        if usb_id == r.get('product_id'):\n            return r\n    return {}\n", "path": "lib/logitech_receiver/base_usb.py"}], "after_files": [{"content": "# -*- python-mode -*-\n# -*- coding: UTF-8 -*-\n\n## Copyright (C) 2012-2013  Daniel Pavel\n##\n## This program is free software; you can redistribute it and/or modify\n## it under the terms of the GNU General Public License as published by\n## the Free Software Foundation; either version 2 of the License, or\n## (at your option) any later version.\n##\n## This program is distributed in the hope that it will be useful,\n## but WITHOUT ANY WARRANTY; without even the implied warranty of\n## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n## GNU General Public License for more details.\n##\n## You should have received a copy of the GNU General Public License along\n## with this program; if not, write to the Free Software Foundation, Inc.,\n## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n\n# USB ids of Logitech wireless receivers.\n# Only receivers supporting the HID++ protocol can go in here.\n\nfrom __future__ import absolute_import, division, print_function, unicode_literals\n\n# max_devices is only used for receivers that do not support reading from _R.receiver_info offset 0x03, default to 1\n# may_unpair is only used for receivers that do not support reading from _R.receiver_info offset 0x03, default to False\n## should this last be changed so that may_unpair is used for all receivers? writing to _R.receiver_pairing doesn't seem right\n# re_pairs determines whether a receiver pairs by replacing existing pairings, default to False\n## currently only one receiver is so marked - should there be more?\n# ex100_wpid_fix enable workarounds for EX100 and possible other old 27Mhz receivers\n\n_DRIVER = ('hid-generic', 'generic-usb', 'logitech-djreceiver')\n\n_unifying_receiver = lambda product_id: {\n    'vendor_id': 0x046d,\n    'product_id': product_id,\n    'usb_interface': 2,\n    'hid_driver': _DRIVER,  # noqa: F821\n    'name': 'Unifying Receiver'\n}\n\n_nano_receiver = lambda product_id: {\n    'vendor_id': 0x046d,\n    'product_id': product_id,\n    'usb_interface': 1,\n    'hid_driver': _DRIVER,  # noqa: F821\n    'name': 'Nano Receiver',\n    'may_unpair': False,\n    're_pairs': True\n}\n\n_nano_receiver_max2 = lambda product_id: {\n    'vendor_id': 0x046d,\n    'product_id': product_id,\n    'usb_interface': 1,\n    'hid_driver': _DRIVER,  # noqa: F821\n    'name': 'Nano Receiver',\n    'max_devices': 2,\n    'may_unpair': False,\n    're_pairs': True\n}\n\n_nano_receiver_maxn = lambda product_id, max: {\n    'vendor_id': 0x046d,\n    'product_id': product_id,\n    'usb_interface': 1,\n    'hid_driver': _DRIVER,  # noqa: F821\n    'name': 'Nano Receiver',\n    'max_devices': max,\n    'may_unpair': False,\n    're_pairs': True\n}\n\n_lenovo_receiver = lambda product_id: {\n    'vendor_id': 0x17ef,\n    'product_id': product_id,\n    'usb_interface': 1,\n    'hid_driver': _DRIVER,  # noqa: F821\n    'name': 'Nano Receiver'\n}\n\n_lightspeed_receiver = lambda product_id: {\n    'vendor_id': 0x046d,\n    'product_id': product_id,\n    'usb_interface': 2,\n    'hid_driver': _DRIVER,  # noqa: F821\n    'name': 'Lightspeed Receiver'\n}\n\n_ex100_receiver = lambda product_id: {\n    'vendor_id': 0x046d,\n    'product_id': product_id,\n    'usb_interface': 1,\n    'hid_driver': _DRIVER,  # noqa: F821\n    'name': 'EX100 Receiver 27 Mhz',\n    'max_devices': 4,\n    'may_unpair': False,\n    're_pairs': True,\n    'ex100_wpid_fix': True\n}\n\n# standard Unifying receivers (marked with the orange Unifying logo)\nUNIFYING_RECEIVER_C52B = _unifying_receiver(0xc52b)\nUNIFYING_RECEIVER_C532 = _unifying_receiver(0xc532)\n\n# Nano receviers that support the Unifying protocol\nNANO_RECEIVER_ADVANCED = _nano_receiver(0xc52f)\n\n# ex100 old style receiver pre-unifyimg protocol\nEX100_27MHZ_RECEIVER_C517 = _ex100_receiver(0xc517)\n\n# Nano receivers that don't support the Unifying protocol\nNANO_RECEIVER_C518 = _nano_receiver(0xc518)\nNANO_RECEIVER_C51A = _nano_receiver(0xc51a)\nNANO_RECEIVER_C51B = _nano_receiver(0xc51b)\nNANO_RECEIVER_C521 = _nano_receiver(0xc521)\nNANO_RECEIVER_C525 = _nano_receiver(0xc525)\nNANO_RECEIVER_C526 = _nano_receiver(0xc526)\nNANO_RECEIVER_C52e = _nano_receiver(0xc52e)\nNANO_RECEIVER_C531 = _nano_receiver(0xc531)\nNANO_RECEIVER_C534 = _nano_receiver_max2(0xc534)\nNANO_RECEIVER_C537 = _nano_receiver(0xc537)\nNANO_RECEIVER_6042 = _lenovo_receiver(0x6042)\n\n# Lightspeed receivers\nLIGHTSPEED_RECEIVER_C539 = _lightspeed_receiver(0xc539)\nLIGHTSPEED_RECEIVER_C53a = _lightspeed_receiver(0xc53a)\nLIGHTSPEED_RECEIVER_C53f = _lightspeed_receiver(0xc53f)\nLIGHTSPEED_RECEIVER_C53d = _lightspeed_receiver(0xc53d)\nLIGHTSPEED_RECEIVER_C545 = _lightspeed_receiver(0xc545)\n\ndel _DRIVER, _unifying_receiver, _nano_receiver, _lenovo_receiver, _lightspeed_receiver\n\nALL = (\n    UNIFYING_RECEIVER_C52B,\n    UNIFYING_RECEIVER_C532,\n    NANO_RECEIVER_ADVANCED,\n    EX100_27MHZ_RECEIVER_C517,\n    NANO_RECEIVER_C518,\n    NANO_RECEIVER_C51A,\n    NANO_RECEIVER_C51B,\n    NANO_RECEIVER_C521,\n    NANO_RECEIVER_C525,\n    NANO_RECEIVER_C526,\n    NANO_RECEIVER_C52e,\n    NANO_RECEIVER_C531,\n    NANO_RECEIVER_C534,\n    NANO_RECEIVER_C537,\n    NANO_RECEIVER_6042,\n    LIGHTSPEED_RECEIVER_C539,\n    LIGHTSPEED_RECEIVER_C53a,\n    LIGHTSPEED_RECEIVER_C53f,\n    LIGHTSPEED_RECEIVER_C53d,\n    LIGHTSPEED_RECEIVER_C545,\n)\n\n\ndef product_information(usb_id):\n    if isinstance(usb_id, str):\n        usb_id = int(usb_id, 16)\n    for r in ALL:\n        if usb_id == r.get('product_id'):\n            return r\n    return {}\n", "path": "lib/logitech_receiver/base_usb.py"}]}