interface mscInterface
{
    function doPay(uint256 _networkId,uint256 _poolIndex, uint256 _amount,address payable _userId) external returns(bool);
    //  baseUserId, user, parentId, referrerId, childCount, lastBoughtLevel, referralCount, levelExpiry
    function userInfos(uint256 _networkId,uint256 _planIndex,bool mainTree, uint256 _userId) external view returns(uint256,address payable,uint256,uint256,uint256,uint256,uint256,uint256);
    function regUserViaContract(uint256 _networkId,uint256 _referrerId,uint256 _parentId, uint256 amount) external returns(bool);
    function buyLevelViaContract(uint256 _networkId,uint256 _planIndex, uint256 _userId, uint256 amount) external returns(bool);
    function addToPool(uint256 _networkId,uint256 _poolIndex, uint256 _amount) external returns(bool);
    //function userIndex(uint256 _networkId, uint256 _planIndex,bool mainTree, address payable _user) external view returns(uint256[] memory);
    function subUserId(uint256 _networkId, uint256 _planIndex, bool mainTree, uint256  _baseUserId ) external view returns(uint256);
}
function userInfos(uint256 _networkId,uint256 _planIndex,bool mainTree, uint256 _userId) external view returns(uint256,address payable,uint256,uint256,uint256,uint256,uint256,uint256);
//  baseUserId, user, parentId, referrerId, childCount, lastBoughtLevel, referralCount, levelExpiry