contract RareToken is ERC20Token {
    // ------------------------------------------------------------------------
    // 100,000,000 tokens that will be populated by the fill, 8 decimal places
    // ------------------------------------------------------------------------
    function RareToken() ERC20Token ("RARE", "RARE", 8, 0) {
    }

    function burnTokens(uint256 value) onlyOwner {
        if (balances[owner] < value) throw;
        balances[owner] -= value;
        totalSupply -= value;
        Transfer(owner, 0, value);
    }

    // ------------------------------------------------------------------------
    // Fill - to populate tokens from the old token contract
    // ------------------------------------------------------------------------
    // From https://github.com/BitySA/whetcwithdraw/tree/master/daobalance
    bool public sealed;
    // The compiler will warn that this constant does not match the address checksum
    uint256 constant D160 = 0x010000000000000000000000000000000000000000;
    // The 160 LSB is the address of the balance
    // The 96 MSB is the balance of that address.
    function fill(uint256[] data) onlyOwner {
        if (sealed) throw;
        for (uint256 i = 0; i < data.length; i++) {
            address account = address(data[i] & (D160-1));
            uint256 amount = data[i] / D160;
            // Prevent duplicates
            if (balances[account] == 0) {
                balances[account] = amount;
                totalSupply += amount;
                Transfer(0x0, account, amount);
            }
        }
    }

    // ------------------------------------------------------------------------
    // After sealing, no more filling is possible
    // ------------------------------------------------------------------------
    function seal() onlyOwner {
        if (sealed) throw;
        sealed = true;
    }
}
function seal() onlyOwner {
        if (sealed) throw;
        sealed = true;
    }
// ------------------------------------------------------------------------
// After sealing, no more filling is possible
// ------------------------------------------------------------------------