def parse_kv(text: str) -> dict:
    """Parse lines of the form 'key=value' into a dict.
    Blank lines are ignored. Values that consist only of digits are converted to int.
    """
    result = {}
    for line in text.splitlines():
        line = line.strip()
        if not line:
            continue
        if '=' not in line:
            continue
        key, value = line.split('=', 1)
        key = key.strip()
        value = value.strip()
        if value.isdigit():
            value = int(value)
        result[key] = value
    return result

if __name__ == "__main__":
    # Test case
    test_input = "a=1\nb=hello\n\nc=42"
    expected = {'a': 1, 'b': 'hello', 'c': 42}
    assert parse_kv(test_input) == expected, f"Test failed: got {parse_kv(test_input)}"
    print("All tests passed.")
