#!/usr/bin/env python3
"""Auto-generated by AGI Loop cycle #1167
Task: \boxed{}

</think>

Write a Python function that converts a given nested dictionary into a flat dictionary with keys concatenated using a dot notation, where nested keys are represented as hierarchica
Generated: 2026-02-12T22:40:51.399822
"""

def flatten_dict(nested_dict, parent_key='', separator='.'):
    flat_dict = {}
    for key, value in nested_dict.items():
        new_key = f"{parent_key}{separator}{key}" if parent_key else key
        if isinstance(value, dict):
            flat_dict.update(flatten_dict(value, new_key, separator))
        else:
            flat_dict[new_key] = value
    return flat_dict

if __name__ == '__main__':
    example_data = {
        'a': 1,
        'b': {
            'c': 2,
            'd': {
                'e': 3
            }
        }
    }
    result = flatten_dict(example_data)
    for key, value in result.items():
        print(f"{key}: {value}")