I am trading india stock and i wanted to download data from NSE stock exchange. NSE gives data in RAW unadjusted format. However in source code, i see that Lean automatically adjusts the data for splits when backtesting - how does it do that ? I mean how does it know the split ratio by itself ? If we do have to provide split ratios or dividends to it, what is the format of that file ?

Also do we have data regarding a performance penalty at runtime when adjusting splits at runtime versus using the adjusted data ?