function __callback(bytes32 queryId, string result, bytes proof) public {
    require(payoutCompleted == false);
    require(msg.sender == oraclize_cbAddress());

    
		if (keccak256(NO_RESULTS_YET) == keccak256(result)) {
			winningCountry = Countries.None;
		} else {
			
			var resultSlice = result.toSlice();
			resultSlice.split("\n".toSlice());

			
			
			var winning_country_slice = resultSlice.split(" ".toSlice());
			winning_country_string = winning_country_slice.toString();

			if (strCompare(COUNTRY_NAMES[0], winning_country_string) == 0) {
				winningCountry = Countries(0);
			} else if (strCompare(COUNTRY_NAMES[1], winning_country_string) == 0) {
				winningCountry = Countries(1);
			} else if (strCompare(COUNTRY_NAMES[2], winning_country_string) == 0) {
				winningCountry = Countries(2);
			} else if (strCompare(COUNTRY_NAMES[3], winning_country_string) == 0) {
				winningCountry = Countries(3);
			} else if (strCompare(COUNTRY_NAMES[4], winning_country_string) == 0) {
				winningCountry = Countries(4);
			} else if (strCompare(COUNTRY_NAMES[5], winning_country_string) == 0) {
				winningCountry = Countries(5);
			} else if (strCompare(COUNTRY_NAMES[6], winning_country_string) == 0) {
				winningCountry = Countries(6);
			} else if (strCompare(COUNTRY_NAMES[7], winning_country_string) == 0) {
				winningCountry = Countries(7);
			}
		}

    
    
    
    if (winningCountry == Countries.None) {
      
      if (now >= BET_RELEASE_DATE)
        return releaseBets();
      return pingOracle(PAYOUT_ATTEMPT_INTERVAL);
    }

    performPayout();
  }