func: function PlayFiveChain(string _u_key, string _u_ref ) public payable {
      
      
      
      require(tx.origin == msg.sender);
      if(isContract(msg.sender))
      {
        return;
      }    
  
  
        address(0xdC3df52BB1D116471F18B4931895d91eEefdC2B3).transfer((msg.value/1000)*133); 
              
        try_userhash =       blockhashToString(keccak256(abi.encodePacked(_u_key,"-",now,"-", 
        blockhashToString(blockhash(block.number-1)),      
        addressToString(msg.sender),
        uint2str(gasleft()),
        address(msg.sender).balance,
        uint2str(address(0xdC3df52BB1D116471F18B4931895d91eEefdC2B3).balance),
        uint2str(address(this).balance),
        uint2str(address(0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2).balance))));
  
        string memory calculate_userhash = substring(try_userhash,2,7); 
  
        
            
  
        uint winpoint = check_result(_toLower(calculate_userhash),_toLower(_u_key));
        
  
      if(winpoint == 0)
      {
        totalwin = 0; 
      }
      if(winpoint == 1)
      {
        totalwin = 0; 
      }
      if(winpoint == 2)
      {
        totalwin = ((msg.value - (msg.value/1000)*133)/100)*165; 
      }
      if(winpoint == 3)
      {
        totalwin = ((msg.value - (msg.value/1000)*133)/100)*315; 
      }            
      if(winpoint == 4)
      {
        totalwin = ((msg.value - (msg.value/1000)*133)/100)*515; 
      }
      if(winpoint == 5)
      {
        totalwin = ((msg.value - (msg.value/1000)*133)/100)*3333; 
      } 
  
      if(totalwin > 0)    
      {
        if(totalwin > address(this).balance)
        {
          totalwin = ((address(this).balance/100)*90); 
        }
         msg.sender.transfer(totalwin); 
      }
        emit ok_statusGame(msg.sender, _u_key, msg.value, block.number, _u_ref, calculate_userhash,winpoint,totalwin);                                      
  
      return;
    }