Help in understanding pytorch implementation of VAE

I am trying to implement a simple VAE. By reading theory I understood that encoder tries to learn Mu and Sigma for a distribution which is as close as the true distribution with unit variance and zero mean.
In the VAE implementation of here I am unable to understand how does the linear layer return mean and variance. (line number 51).

return self.fc21(h1), self.fc22(h1)

Also, does the line
self.fc21 = nn.Linear(400, 20) mean that we are trying to learn 20 mean’s or basically 20 distributions each for a specific feature in my latent space.