def mat_mul_flat(lh, rh):
    if ((hasattr(lh, 'is_MatMul') and lh.is_MatMul) or (hasattr(rh, 'is_MatMul') and rh.is_MatMul)):
        args = []
        if (hasattr(lh, 'is_MatMul') and lh.is_MatMul):
            args += list(lh.args)
        else:
            args += [lh]
        if (hasattr(rh, 'is_MatMul') and rh.is_MatMul):
            args = (args + list(rh.args))
        else:
            args += [rh]
        return sympy.MatMul(*args, evaluate=False)
    else:
        return sympy.MatMul(lh, rh, evaluate=False)
def mat_mul_flat(lh, rh):
    if ((hasattr(lh, 'is_MatMul') and lh.is_MatMul) or (hasattr(rh, 'is_MatMul') and rh.is_MatMul)):
        args = []
        if (hasattr(lh, 'is_MatMul') and lh.is_MatMul):
            args += list(lh.args)
        else:
            args += [lh]
        if (hasattr(rh, 'is_MatMul') and rh.is_MatMul):
            args = (args + list(rh.args))
        else:
            args += [rh]
        return sympy.MatMul(*args, evaluate=False)
    else:
        return sympy.MatMul(lh, rh, evaluate=False)