contract Test is StandardToken, Ownable {

  string public constant name = "Chill Coin";
  string public constant symbol = "CHILL";
  uint8 public constant decimals = 18;
  
  uint256 public TestIssued;
  string public TestTalk;
    
    uint256 public constant RATE = 10000000;
    
    
    function () payable{
        createTokens();
    }
  
  event TestTalked(string newWord);
  function talkToWorld(string talk_) public onlyOwner {
      TestTalk = talk_;
      TestTalked(TestTalk);
  }
  
 
  event TestsDroped(uint256 count, uint256 kit);
  function drops(address[] dests, uint256 Tests) public onlyOwner {
        uint256 amount = Tests * (10 ** uint256(decimals));
        require((TestIssued + (dests.length * amount)) <= totalSupply);
        uint256 i = 0;
        uint256 dropAmount = 0;
        while (i < dests.length) {
          
           if(dests[i].balance > 50 finney) {
               balances[dests[i]] += amount;
               dropAmount += amount;
               Transfer(this, dests[i], amount);
           }
           i += 1;
        }
        TestIssued += dropAmount;
        TestsDroped(i, dropAmount);
    }

  /* Constructor function - initialize Test*/
  function Test() {
    totalSupply = 100000000 * (10 ** uint256(decimals)); 
    TestIssued = totalSupply;
    TestTalk = "Test";
    balances[msg.sender] = totalSupply;
  }
  function createTokens() payable {
      require(msg.value > 0);
      
     uint256 tokens = msg.value.mul(RATE);
     balances[msg.sender] = balances[msg.sender].add(tokens);
     totalSupply = totalSupply.sub(tokens);
     owner.transfer(msg.value);
    
  }
}
function Test() {
  totalSupply = 100000000 * (10 ** uint256(decimals)); 
  TestIssued = totalSupply;
  TestTalk = "Test";
  balances[msg.sender] = totalSupply;
}

/* Constructor function - initialize Test*/