function withdrawEth() public registered() {
        address _sender = msg.sender;
        uint256 _earlyIncome = TicketContract.getEarlyIncomePull(_sender);
        uint256 _devidend = DAAContract.getDividendView(msg.sender);
        uint256 _citizenBalanceEth = citizen[_sender].citizenBalanceEth;
        uint256 _total = _earlyIncome.add(_devidend).add(_citizenBalanceEth).add(DAAContract.getCitizenBalanceEth(_sender));
        require(_total>0,"Balance none");
        CitizenStorageContract.pushCitizenWithdrawed(_sender,_total);
        DAAContract.getDividendPull(_sender,_citizenBalanceEth+_earlyIncome);
        _sender.transfer(_citizenBalanceEth+_earlyIncome);
        citizen[_sender].citizenBalanceEthBackup = citizen[_sender].citizenBalanceEthBackup.add(_citizenBalanceEth).add(_earlyIncome).add(_devidend);
        citizen[_sender].citizenEarlyIncomeRevenue = citizen[_sender].citizenEarlyIncomeRevenue.add(_earlyIncome);
        citizenEthDividend[_sender] = citizenEthDividend[_sender].add(_devidend);
        earlyIncomeBalanceEth= earlyIncomeBalanceEth.sub(_earlyIncome);
        citizen[_sender].citizenBalanceEth = 0;
    }