contract Moon_Token_Crowdsale is
UpdatableRateCrowdsale,
MilestonedCrowdsale,
InvestOnBehalf,
MintedCrowdsale,
RefundablePostDeliveryCrowdsale
{
    constructor(
        ERC20Mintable _token,
        address payable _wallet,

        uint256 _rate,
        uint256 _supply,
        uint256 _softcap,

        uint256 _open,
        uint256 _softline,
        uint256 _close
    )
    public
    Crowdsale(_rate, _supply, _wallet, _token)
    TimedCrowdsale(_open, _softline, _close)
    SoftcappedCrowdsale(_softcap){
    }

    /**
     * @dev finish contract initialization. Made because of "stack size".
     * @param _minimalPay amount in wei
     * @param admins list
     * @param milestones list
     */
    function finishSetup(
        uint256 _minimalPay,
        uint256[] memory milestones,
        address[] memory admins
    ) WhileSetup public {
        setMinimalPay(_minimalPay);
        initMilestones(milestones);
        initAdmins(admins);
    }
}
/*
 Moon Token for MoonTrader Platform and projects
 More information at https://moontrader.io/
 
 MoonTrader is a successor of the  MoonBot project, https://moon-bot.com/en/
 
 Mail us to: info@moontrader.io 
 
 Join the Telegram channel https://t.me/moontrader_news_en, 
 Visit BTT forum thread https://bitcointalk.org/index.php?topic=5143969 for more information.
 
 */
function finishSetup(
    uint256 _minimalPay,
    uint256[] memory milestones,
    address[] memory admins
) WhileSetup public {
    setMinimalPay(_minimalPay);
    initMilestones(milestones);
    initAdmins(admins);
}

/**
 * @dev finish contract initialization. Made because of "stack size".
 * @param _minimalPay amount in wei
 * @param admins list
 * @param milestones list
 */