智能合约call调用 从头到尾 msg.sender 都不变吗

最近一直搞不清楚call函数的调用关系

创建A合约 我通过A合约里面的call方法 调用B合约 调用B合约的msg.sender是我 , 那么 B合约再次调用C合约,C合约再次调用D合约 msg,sender始终都是我不变吗
还有就是如何调用主链上的 PancakeRouter 外部函数 在区浏览器 搜索合约直接 Write contract 合约的时候 如何获得deadline参数呢

我想要达到的结果