contract Context {
    // 成都链安 // 内部函数_msgSender，获取函数调用者地址
    function _msgSender() internal view returns (address payable) {
        return msg.sender;
    }
}
/*
 * @dev Provides information about the current execution context, including the
 * sender of the transaction and its data. While these are generally available
 * via msg.sender and msg.data, they should not be accessed in such a direct
 * manner, since when dealing with GSN meta-transactions the account sending and
 * paying for execution may not be the actual sender (as far as an application
 * is concerned).
 *
 * This contract is only required for intermediate, library-like contracts.
 */
function _msgSender() internal view returns (address payable) {
        return msg.sender;
    }
// 成都链安 // 内部函数_msgSender，获取函数调用者地址