I transpose the source code, you transpose the input! Rip-off of a rip-off of a rip-off of a rip-off. Go upvote those!

Your task, if you wish to accept it, is to write a program/function that outputs/returns its input/argument¹. The tricky part is that if I transpose your source code², the output/result must be transposed too.


You may choose which kind of 2D data your solution can accept. For example a list of lists, a matrix, a list of strings, etc. State which one(s) it handles. You may assume that the input will always be rectangular and will have a length of 1 or more along each dimension.
For the purposes of transposing, short lines in your source code will be considered as padded with trailing spaces until it is rectangular, however, these padded trailing spaces do not contribute to your code length.


Since this is code-golf, the target is to optimize the byte count of the original source code (not the transposed version).

Examples

Let's say your solution takes a numeric matrix and your source code is

AB
DEF


and its input/argument is [[1,2],[3,4],[5,6]]. If I write

AD
BE
 F


instead and run it, the output/result must be [[1,3,5],[2,4,6]].

Let's say your solution takes a linefeed-separated string and your source code is

ABC


and its input/argument is "96\n". If I write

A
B
C


instead and run it, the output/result must be "9\n6\n".
Python 3 + numpy, 45 bytes



lambda\
a:a
ma= """
b.    "
dT"   "
a "
\ """


Try it online!

Thanks to @EriktheOutgolfer pointing out a bug of the previous version

Transposed:



lambda\
a:a.T  
ma= """
b     "
d "   "
a "    
\ """  


Try it online!

The functions take a numpy matrix as input and output a numpy matrix. The solution does not rely on comments like many other solutions do but instead exploits multi-line strings.