Как реализованы словари в CPython? Какие структуры данных используются для хранения ключей и значений, и как решаются коллизии?