func: function setState_(uint _stateNew) internal returns (bool) {
      uint _initialState = initialState_;
      uint _timeState = getTimeState_();
      uint _raisingState = getRaisingState_();
      uint8 _state = getState_(_initialState, _timeState, _raisingState);
      uint8 _role = getRole_();
  
      if (_stateNew == ST_RAISING) {
        if ((_role == RL_POOL_MANAGER) && (_state == ST_DEFAULT)) {
          launchTimestamp = getTimestamp_();
          initialState_ = ST_RAISING;
          return true;
        }
        revert();
      }
  
      if (_stateNew == ST_WAIT_FOR_ICO) {
        if ((_role == RL_POOL_MANAGER || _role == RL_ICO_MANAGER) && (_raisingState == RST_COLLECTED)) {
          initialState_ = ST_WAIT_FOR_ICO;
          return true;
        }
        revert();
      }
  
      if (_stateNew == ST_MONEY_BACK) {
        if ((_role == RL_POOL_MANAGER || _role == RL_ADMIN || _role == RL_PAYBOT) && (_state == ST_RAISING)) {
          initialState_ = ST_MONEY_BACK;
          return true;
        }
        revert();
      }
  
      if (_stateNew == ST_TOKEN_DISTRIBUTION) {
        if ((_role == RL_POOL_MANAGER || _role == RL_ADMIN || _role == RL_ICO_MANAGER || _role == RL_PAYBOT) && (_state == ST_WAIT_FOR_ICO)) {
          initialState_ = ST_TOKEN_DISTRIBUTION;
          return true;
        }
        revert();
      }
  
      revert();
      return true;
    }