Contract 0x59c24b4903676cbbb3a8f1077ef0029e6419cef2

 

TxHash Block Age From To Value [TxFee]
0xe47ee470eb895ba09aaa21e20a35053661814de3d84b52b5f513cc77e917bdb4724941213 hrs 16 mins ago0x82dd6813454eee12c110d43f5927be7ed320cd27 IN  0x59c24b4903676cbbb3a8f1077ef0029e6419cef20 Ether0.00031572
0x3016ae1e0c34315d6fedfe59d6ae9b89bc5804fe7ca565f751ef97dce1dd1d74724810620 hrs 47 mins ago0x813871cfd6e726c25f941e122e86894b9e322539 IN  0x59c24b4903676cbbb3a8f1077ef0029e6419cef20 Ether0.00022572
0x5c7e709999952b0217f9c213b5bdc3719d1e165536d720d3ed129085566d9435724796321 hrs 37 mins ago0x813871cfd6e726c25f941e122e86894b9e322539 IN  0x59c24b4903676cbbb3a8f1077ef0029e6419cef20 Ether0.000225336
0x4d54549ccfa0e70665760595611054419967b56eb217b342e71ff5e9e0fd3caa724782522 hrs 24 mins ago0x82dd6813454eee12c110d43f5927be7ed320cd27 IN  0x59c24b4903676cbbb3a8f1077ef0029e6419cef20 Ether0.00022572
0xa372fa535ad1a0286cbe61d5403811d5c60d6e387a066f4fd3d37ddd7566f51872466651 day 4 hrs ago0xf09ab79b8d033d43339ea90ea37f7b8f2f43b173 IN  0x59c24b4903676cbbb3a8f1077ef0029e6419cef20 Ether0.000225336
0xee5a2b351f59a01ff50556bc4cbeae8bec6a8423d9b2e41ac8b9a2ab2e5f0c8772449651 day 14 hrs ago0x811a5773658efcafeaa845828255afc16e18be65 IN  0x59c24b4903676cbbb3a8f1077ef0029e6419cef20 Ether0.00022572
0x8190cddfdd37b1b100287b00a6a2af518e37cc95c373e46357cb2970228ce4b072442951 day 18 hrs ago0xec769226b81436eeebd80925f178eb61ef479380 IN  0x59c24b4903676cbbb3a8f1077ef0029e6419cef20 Ether0.00022572
0xeaeae90686523d5b52a6e21d8e46c548dcd352c2cb42e6b9bb939b68bc85a92f72441521 day 19 hrs ago0xec769226b81436eeebd80925f178eb61ef479380 IN  0x59c24b4903676cbbb3a8f1077ef0029e6419cef20 Ether0.00063144
0x8527a046a5e5e085b2a84c80cc1878bdb7f9d303fd5baf812633ccbe17470dee72439231 day 20 hrs ago0x813871cfd6e726c25f941e122e86894b9e322539 IN  0x59c24b4903676cbbb3a8f1077ef0029e6419cef20 Ether0.00013572
0x861425bad578cecbe6193ff3d288e3c468838847a9568debb69038cdc802e13072439231 day 20 hrs ago0x82dd6813454eee12c110d43f5927be7ed320cd27 IN  0x59c24b4903676cbbb3a8f1077ef0029e6419cef20 Ether0.000225336
0xa634bdf283c4e628b61b29405fe121b2e6a571e9d610d751cbafda2df33fa2d872437491 day 21 hrs ago0x82dd6813454eee12c110d43f5927be7ed320cd27 IN  0x59c24b4903676cbbb3a8f1077ef0029e6419cef20 Ether0.000225336
0x4509e8215119b6c1cf88e28509b1f8cbd1a95fad68b2120212473ab15140140b72437061 day 21 hrs ago0x82dd6813454eee12c110d43f5927be7ed320cd27 IN  0x59c24b4903676cbbb3a8f1077ef0029e6419cef20 Ether0.00022572
0x79099d82b434d72036488c254a99334435e3db666d6a931edca2cffac868f49d72435461 day 22 hrs ago0x82dd6813454eee12c110d43f5927be7ed320cd27 IN  0x59c24b4903676cbbb3a8f1077ef0029e6419cef20 Ether0.000225336
0x374e7279cef111b547c32f4a1d04e9f2a78eb06da35795cd3d73528a2fa1c11672433092 days ago0x82dd6813454eee12c110d43f5927be7ed320cd27 IN  0x59c24b4903676cbbb3a8f1077ef0029e6419cef20 Ether0.00031572
0x15bd41a6b908fa528945b052e80ab13a97bdbac14cf5cfa23cebb636fcd39ce072421142 days 6 hrs ago0xec769226b81436eeebd80925f178eb61ef479380 IN  0x59c24b4903676cbbb3a8f1077ef0029e6419cef20 Ether0.00022572
0x6ebc02b208dee7d356fe1f0720e0016c935fc7f043605c93eaa8c17e4904708972419372 days 7 hrs ago0xec769226b81436eeebd80925f178eb61ef479380 IN  0x59c24b4903676cbbb3a8f1077ef0029e6419cef20 Ether0.00022572
0xc5fca790855b90498dc84ec471e970cc2c1d71a0cda22fbba9a6d114115e059a72419352 days 7 hrs ago0xec769226b81436eeebd80925f178eb61ef479380 IN  0x59c24b4903676cbbb3a8f1077ef0029e6419cef20 Ether0.00022572
0xe71e98eb33c06444e7b51648ae545fac2ed4d51338687ab3a20544cbcaa982cd72419252 days 7 hrs ago0x82dd6813454eee12c110d43f5927be7ed320cd27 IN  0x59c24b4903676cbbb3a8f1077ef0029e6419cef20 Ether0.00022572
0x2b08a2e3049ca63d2c09a4b3b240478d441ed459e7b63ec7d93076da60b2ca3572414912 days 10 hrs ago0xec769226b81436eeebd80925f178eb61ef479380 IN  0x59c24b4903676cbbb3a8f1077ef0029e6419cef20 Ether0.00022572
0x81ac6778517a44a630ef5f6232985a91d95cadeaccb4e2b37efcd21bd71702b572414102 days 10 hrs ago0x813871cfd6e726c25f941e122e86894b9e322539 IN  0x59c24b4903676cbbb3a8f1077ef0029e6419cef20 Ether0.000135336
0xe859fbd3cdc78767395ddf4abe6bc96e7e2e61202d838e8532a2bc83b1897b8772412212 days 11 hrs ago0xec769226b81436eeebd80925f178eb61ef479380 IN  0x59c24b4903676cbbb3a8f1077ef0029e6419cef20 Ether0.00022572
0xc875b1cf02dd8fb3e5de321d522fda8b82396467752f801cc1ae6acb4662e08072411892 days 11 hrs ago0x82dd6813454eee12c110d43f5927be7ed320cd27 IN  0x59c24b4903676cbbb3a8f1077ef0029e6419cef20 Ether0.000225336
0xf50e61338835519edfc82542a3dcf1176d078deddea9da0cf959b0017ab6383572409112 days 13 hrs ago0x82dd6813454eee12c110d43f5927be7ed320cd27 IN  0x59c24b4903676cbbb3a8f1077ef0029e6419cef20 Ether0.000225336
0x8dca195ccb0f40760abf6744d0ceb57cabe2293ed06ce071c9deb8072d52615272408602 days 13 hrs ago0xec769226b81436eeebd80925f178eb61ef479380 IN  0x59c24b4903676cbbb3a8f1077ef0029e6419cef20 Ether0.00022572
0xaa5755f71e9f29c496f4bc8c9cccab46ab8c0b3725c6156185f3421fb87afc6972408002 days 14 hrs ago0xec769226b81436eeebd80925f178eb61ef479380 IN  0x59c24b4903676cbbb3a8f1077ef0029e6419cef20 Ether0.000226104
[ Download CSV Export 

Internal Transactions as a result of Contract Execution

Parent TxHash Block Age From To Value
Contract Source Code Verified (Exact Match)
Contract Name: NIA
Compiler Version: v0.5.2+commit.1df8f40c
Optimization Enabled: Yes
Runs (Optimizer):  200


Contract Source Code
pragma solidity ^0.5.0;

// File: contracts/NIA.sol

library SafeMath {
    /**
    * @dev Multiplies two unsigned integers, reverts on overflow.
    */
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
        // benefit is lost if 'b' is also tested.
        // See: https://github.com/OpenZeppelin/openzeppelin-solidity/pull/522
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b);

        return c;
    }

    /**
    * @dev Integer division of two unsigned integers truncating the quotient, reverts on division by zero.
    */
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        // Solidity only automatically asserts when dividing by 0
        require(b > 0);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }

    /**
    * @dev Subtracts two unsigned integers, reverts on overflow (i.e. if subtrahend is greater than minuend).
    */
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b <= a);
        uint256 c = a - b;

        return c;
    }

    /**
    * @dev Adds two unsigned integers, reverts on overflow.
    */
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a);

        return c;
    }

    /**
    * @dev Divides two unsigned integers and returns the remainder (unsigned integer modulo),
    * reverts when dividing by zero.
    */
    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b != 0);
        return a % b;
    }
}

library Roles {
    struct Role {
        mapping (address => bool) bearer;
    }

    /**
     * @dev give an account access to this role
     */
    function add(Role storage role, address account) internal {
        require(account != address(0));
        require(!has(role, account));

        role.bearer[account] = true;
    }

    /**
     * @dev remove an account's access to this role
     */
    function remove(Role storage role, address account) internal {
        require(account != address(0));
        require(has(role, account));

        role.bearer[account] = false;
    }

    /**
     * @dev check if an account has this role
     * @return bool
     */
    function has(Role storage role, address account) internal view returns (bool) {
        require(account != address(0));
        return role.bearer[account];
    }
}

contract Ownable {
    address public owner;
    address public newOwner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor() public {
        owner = msg.sender;
        newOwner = address(0);
    }

    modifier onlyOwner() {
        require(msg.sender == owner);
        _;
    }
    modifier onlyNewOwner() {
        require(msg.sender != address(0));
        require(msg.sender == newOwner);
        _;
    }
    
    function isOwner(address account) public view returns (bool) {
        if( account == owner ){
            return true;
        }
        else {
            return false;
        }
    }

    function transferOwnership(address _newOwner) public onlyOwner {
        require(_newOwner != address(0));
        newOwner = _newOwner;
    }

    function acceptOwnership() public onlyNewOwner returns(bool) {
        emit OwnershipTransferred(owner, newOwner);        
        owner = newOwner;
        newOwner = address(0);
    }
}

contract MinterRole is Ownable{
    using Roles for Roles.Role;

    event MinterAdded(address indexed account);
    event MinterRemoved(address indexed account);

    Roles.Role private _minters;

    constructor () internal {
        _addMinter(msg.sender);
    }

    modifier onlyMinter() {
        require(isMinter(msg.sender) || isOwner(msg.sender));
        _;
    }

    function isMinter(address account) public view returns (bool) {
        return _minters.has(account);
    }

    function addMinter(address account) public onlyMinter {
        _addMinter(account);
    }
    
    function removeMinter(address account) public onlyOwner {
        _removeMinter(account);
    }

    function renounceMinter() public {
        _removeMinter(msg.sender);
    }

    function _addMinter(address account) internal {
        _minters.add(account);
        emit MinterAdded(account);
    }

    function _removeMinter(address account) internal {
        _minters.remove(account);
        emit MinterRemoved(account);
    }
}

contract PauserRole is Ownable{
    using Roles for Roles.Role;

    event PauserAdded(address indexed account);
    event PauserRemoved(address indexed account);

    Roles.Role private _pausers;

    constructor () internal {
        _addPauser(msg.sender);
    }

    modifier onlyPauser() {
        require(isPauser(msg.sender)|| isOwner(msg.sender));
        _;
    }

    function isPauser(address account) public view returns (bool) {
        return _pausers.has(account);
    }

    function addPauser(address account) public onlyPauser {
        _addPauser(account);
    }
    
    function removePauser(address account) public onlyOwner {
        _removePauser(account);
    }

    function renouncePauser() public {
        _removePauser(msg.sender);
    }

    function _addPauser(address account) internal {
        _pausers.add(account);
        emit PauserAdded(account);
    }

    function _removePauser(address account) internal {
        _pausers.remove(account);
        emit PauserRemoved(account);
    }
}


contract Pausable is PauserRole {
    event Paused(address account);
    event Unpaused(address account);

    bool private _paused;

    constructor () internal {
        _paused = false;
    }

    /**
     * @return true if the contract is paused, false otherwise.
     */
    function paused() public view returns (bool) {
        return _paused;
    }

    /**
     * @dev Modifier to make a function callable only when the contract is not paused.
     */
    modifier whenNotPaused() {
        require(!_paused);
        _;
    }

    /**
     * @dev Modifier to make a function callable only when the contract is paused.
     */
    modifier whenPaused() {
        require(_paused);
        _;
    }

    /**
     * @dev called by the owner to pause, triggers stopped state
     */
    function pause() public onlyPauser whenNotPaused {
        _paused = true;
        emit Paused(msg.sender);
    }

    /**
     * @dev called by the owner to unpause, returns to normal state
     */
    function unpause() public onlyPauser whenPaused {
        _paused = false;
        emit Unpaused(msg.sender);
    }
}

interface IERC20 {
    function transfer(address to, uint256 value) external returns (bool);

    function approve(address spender, uint256 value) external returns (bool);

    function transferFrom(address from, address to, uint256 value) external returns (bool);

    function totalSupply() external view returns (uint256);

    function balanceOf(address who) external view returns (uint256);

    function allowance(address owner, address spender) external view returns (uint256);

    event Transfer(address indexed from, address indexed to, uint256 value);

    event Approval(address indexed owner, address indexed spender, uint256 value);
}

contract ERC20 is IERC20 {
    using SafeMath for uint256;

    mapping (address => uint256) internal _balances;

    mapping (address => mapping (address => uint256)) internal _allowed;

    uint256 private _totalSupply;

    /**
    * @dev Total number of tokens in existence
    */
    function totalSupply() public view returns (uint256) {
        return _totalSupply;
    }

    /**
    * @dev Gets the balance of the specified address.
    * @param owner The address to query the balance of.
    * @return An uint256 representing the amount owned by the passed address.
    */
    function balanceOf(address owner) public view returns (uint256) {
        return _balances[owner];
    }

    /**
     * @dev Function to check the amount of tokens that an owner allowed to a spender.
     * @param owner address The address which owns the funds.
     * @param spender address The address which will spend the funds.
     * @return A uint256 specifying the amount of tokens still available for the spender.
     */
    function allowance(address owner, address spender) public view returns (uint256) {
        return _allowed[owner][spender];
    }

    /**
    * @dev Transfer token for a specified address
    * @param to The address to transfer to.
    * @param value The amount to be transferred.
    */
    function transfer(address to, uint256 value) public returns (bool) {
        _transfer(msg.sender, to, value);
        return true;
    }

    /**
     * @dev Approve the passed address to spend the specified amount of tokens on behalf of msg.sender.
     * Beware that changing an allowance with this method brings the risk that someone may use both the old
     * and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this
     * race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards:
     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
     * @param spender The address which will spend the funds.
     * @param value The amount of tokens to be spent.
     */
    function approve(address spender, uint256 value) public returns (bool) {
        require(spender != address(0));

        _allowed[msg.sender][spender] = value;
        emit Approval(msg.sender, spender, value);
        return true;
    }

    /**
     * @dev Transfer tokens from one address to another.
     * Note that while this function emits an Approval event, this is not required as per the specification,
     * and other compliant implementations may not emit the event.
     * @param from address The address which you want to send tokens from
     * @param to address The address which you want to transfer to
     * @param value uint256 the amount of tokens to be transferred
     */
    function transferFrom(address from, address to, uint256 value) public returns (bool) {
        _allowed[from][msg.sender] = _allowed[from][msg.sender].sub(value);
        _transfer(from, to, value);
        emit Approval(from, msg.sender, _allowed[from][msg.sender]);
        return true;
    }

    /**
     * @dev Increase the amount of tokens that an owner allowed to a spender.
     * approve should be called when allowed_[_spender] == 0. To increment
     * allowed value is better to use this function to avoid 2 calls (and wait until
     * the first transaction is mined)
     * From MonolithDAO Token.sol
     * Emits an Approval event.
     * @param spender The address which will spend the funds.
     * @param addedValue The amount of tokens to increase the allowance by.
     */
    function increaseAllowance(address spender, uint256 addedValue) public returns (bool) {
        require(spender != address(0));

        _allowed[msg.sender][spender] = _allowed[msg.sender][spender].add(addedValue);
        emit Approval(msg.sender, spender, _allowed[msg.sender][spender]);
        return true;
    }

    /**
     * @dev Decrease the amount of tokens that an owner allowed to a spender.
     * approve should be called when allowed_[_spender] == 0. To decrement
     * allowed value is better to use this function to avoid 2 calls (and wait until
     * the first transaction is mined)
     * From MonolithDAO Token.sol
     * Emits an Approval event.
     * @param spender The address which will spend the funds.
     * @param subtractedValue The amount of tokens to decrease the allowance by.
     */
    function decreaseAllowance(address spender, uint256 subtractedValue) public returns (bool) {
        require(spender != address(0));

        _allowed[msg.sender][spender] = _allowed[msg.sender][spender].sub(subtractedValue);
        emit Approval(msg.sender, spender, _allowed[msg.sender][spender]);
        return true;
    }

    /**
    * @dev Transfer token for a specified addresses
    * @param from The address to transfer from.
    * @param to The address to transfer to.
    * @param value The amount to be transferred.
    */
    function _transfer(address from, address to, uint256 value) internal {
        require(to != address(0));

        _balances[from] = _balances[from].sub(value);
        _balances[to] = _balances[to].add(value);
        emit Transfer(from, to, value);
    }

    /**
     * @dev Internal function that mints an amount of the token and assigns it to
     * an account. This encapsulates the modification of balances such that the
     * proper events are emitted.
     * @param account The account that will receive the created tokens.
     * @param value The amount that will be created.
     */
    function _mint(address account, uint256 value) internal {
        require(account != address(0));

        _totalSupply = _totalSupply.add(value);
        _balances[account] = _balances[account].add(value);
        emit Transfer(address(0), account, value);
    }

    /**
     * @dev Internal function that burns an amount of the token of a given
     * account.
     * @param account The account whose tokens will be burnt.
     * @param value The amount that will be burnt.
     */
    function _burn(address account, uint256 value) internal {
        require(account != address(0));

        _totalSupply = _totalSupply.sub(value);
        _balances[account] = _balances[account].sub(value);
        emit Transfer(account, address(0), value);
    }

    /**
     * @dev Internal function that burns an amount of the token of a given
     * account, deducting from the sender's allowance for said account. Uses the
     * internal burn function.
     * Emits an Approval event (reflecting the reduced allowance).
     * @param account The account whose tokens will be burnt.
     * @param value The amount that will be burnt.
     */
    function _burnFrom(address account, uint256 value) internal {
        _allowed[account][msg.sender] = _allowed[account][msg.sender].sub(value);
        _burn(account, value);
        emit Approval(account, msg.sender, _allowed[account][msg.sender]);
    }
}

contract ERC20Mintable is ERC20, MinterRole {
    /**
     * @dev Function to mint tokens
     * @param to The address that will receive the minted tokens.
     * @param value The amount of tokens to mint.
     * @return A boolean that indicates if the operation was successful.
     */
    function mint(address to, uint256 value) public onlyMinter returns (bool) {
        _mint(to, value);
        return true;
    }
}

contract ERC20Capped is ERC20Mintable {
    uint256 internal _cap;

    constructor (uint256 cap) public {
        require(cap > 0);
        _cap = cap;
    }

    /**
     * @return the cap for the token minting.
     */
    function cap() public view returns (uint256) {
        return _cap;
    }

    function _mint(address account, uint256 value) internal {
        require(totalSupply().add(value) <= _cap);
        super._mint(account, value);
    }
}

contract ERC20Burnable is ERC20 {
    /**
     * @dev Burns a specific amount of tokens.
     * @param value The amount of token to be burned.
     */
    function burn(uint256 value) public {
        _burn(msg.sender, value);
    }

    /**
     * @dev Burns a specific amount of tokens from the target address and decrements allowance
     * @param from address The address which you want to send tokens from
     * @param value uint256 The amount of token to be burned
     */
    function burnFrom(address from, uint256 value) public {
        _burnFrom(from, value);
    }
}

contract ERC20Pausable is ERC20, Pausable {
    function transfer(address to, uint256 value) public whenNotPaused returns (bool) {
        return super.transfer(to, value);
    }

    function transferFrom(address from, address to, uint256 value) public whenNotPaused returns (bool) {
        return super.transferFrom(from, to, value);
    }

    function approve(address spender, uint256 value) public whenNotPaused returns (bool) {
        return super.approve(spender, value);
    }

    function increaseAllowance(address spender, uint addedValue) public whenNotPaused returns (bool success) {
        return super.increaseAllowance(spender, addedValue);
    }

    function decreaseAllowance(address spender, uint subtractedValue) public whenNotPaused returns (bool success) {
        return super.decreaseAllowance(spender, subtractedValue);
    }
}

contract ERC20Detailed is IERC20 {
    string private _name;
    string private _symbol;
    uint8 private _decimals;

    constructor (string memory name, string memory symbol, uint8 decimals) public {
        _name = name;
        _symbol = symbol;
        _decimals = decimals;
    }

    /**
     * @return the name of the token.
     */
    function name() public view returns (string memory) {
        return _name;
    }

    /**
     * @return the symbol of the token.
     */
    function symbol() public view returns (string memory) {
        return _symbol;
    }

    /**
     * @return the number of decimals of the token.
     */
    function decimals() public view returns (uint8) {
        return _decimals;
    }
}

contract NIA is ERC20Detailed, ERC20Pausable, ERC20Capped, ERC20Burnable {
    
    struct LockInfo {
        uint256 _releaseTime;
        uint256 _amount;
    }
    
    address public implementation;

    mapping (address => LockInfo[]) public timelockList;
    mapping (address => bool) public frozenAccount;
    
    event Freeze(address indexed holder);
    event Unfreeze(address indexed holder);
    event Lock(address indexed holder, uint256 value, uint256 releaseTime);
    event Unlock(address indexed holder, uint256 value);

    modifier notFrozen(address _holder) {
        require(!frozenAccount[_holder]);
        _;
    }
    
    constructor() ERC20Detailed("NIAToken", "NIA", 18) ERC20Capped(800000000 * 10 ** 18) public  {
        
        _mint(msg.sender, 320000000 * (10 ** 18));
    }
    
    function balanceOf(address owner) public view returns (uint256) {
        
        uint256 totalBalance = super.balanceOf(owner);
        if( timelockList[owner].length >0 ){
            for(uint i=0; i<timelockList[owner].length;i++){
                totalBalance = totalBalance.add(timelockList[owner][i]._amount);
            }
        }
        
        return totalBalance;
    }
    
    function transfer(address to, uint256 value) public notFrozen(msg.sender) returns (bool) {
        if (timelockList[msg.sender].length > 0 ) {
            _autoUnlock(msg.sender);            
        }
        return super.transfer(to, value);
    }

    function transferFrom(address from, address to, uint256 value) public notFrozen(from) returns (bool) {
        if (timelockList[from].length > 0) {
            _autoUnlock(msg.sender);            
        }
        return super.transferFrom(from, to, value);
    }
    
    function freezeAccount(address holder) public onlyPauser returns (bool) {
        require(!frozenAccount[holder]);
        frozenAccount[holder] = true;
        emit Freeze(holder);
        return true;
    }

    function unfreezeAccount(address holder) public onlyPauser returns (bool) {
        require(frozenAccount[holder]);
        frozenAccount[holder] = false;
        emit Unfreeze(holder);
        return true;
    }
    
    function lock(address holder, uint256 value, uint256 releaseTime) public onlyPauser returns (bool) {
        require(_balances[holder] >= value,"There is not enough balances of holder.");
        _lock(holder,value,releaseTime);
        
        
        return true;
    }
    
    function transferWithLock(address holder, uint256 value, uint256 releaseTime) public onlyPauser returns (bool) {
        _transfer(msg.sender, holder, value);
        _lock(holder,value,releaseTime);
        return true;
    }
    
    function unlock(address holder, uint256 idx) public onlyPauser returns (bool) {
        require( timelockList[holder].length > idx, "There is not lock info.");
        _unlock(holder,idx);
        return true;
    }
    
    /**
     * @dev Upgrades the implementation address
     * @param _newImplementation address of the new implementation
     */
    function upgradeTo(address _newImplementation) public onlyOwner {
        require(implementation != _newImplementation);
        _setImplementation(_newImplementation);
    }
    
    function _lock(address holder, uint256 value, uint256 releaseTime) internal returns(bool) {
        _balances[holder] = _balances[holder].sub(value);
        timelockList[holder].push( LockInfo(releaseTime, value) );
        
        emit Lock(holder, value, releaseTime);
        return true;
    }
    
    function _unlock(address holder, uint256 idx) internal returns(bool) {
        LockInfo storage lockinfo = timelockList[holder][idx];
        uint256 releaseAmount = lockinfo._amount;

        delete timelockList[holder][idx];
        timelockList[holder][idx] = timelockList[holder][timelockList[holder].length.sub(1)];
        timelockList[holder].length -=1;
        
        emit Unlock(holder, releaseAmount);
        _balances[holder] = _balances[holder].add(releaseAmount);
        
        return true;
    }
    
    function _autoUnlock(address holder) internal returns(bool) {
        for(uint256 idx =0; idx < timelockList[holder].length ; idx++ ) {
            if (timelockList[holder][idx]._releaseTime <= now) {
                // If lockupinfo was deleted, loop restart at same position.
                if( _unlock(holder, idx) ) {
                    idx -=1;
                }
            }
        }
        return true;
    }
    
    /**
     * @dev Sets the address of the current implementation
     * @param _newImp address of the new implementation
     */
    function _setImplementation(address _newImp) internal {
        implementation = _newImp;
    }
    
    /**
     * @dev Fallback function allowing to perform a delegatecall 
     * to the given implementation. This function will return 
     * whatever the implementation call returns
     */
    function () payable external {
        address impl = implementation;
        require(impl != address(0));
        assembly {
            let ptr := mload(0x40)
            calldatacopy(ptr, 0, calldatasize)
            let result := delegatecall(gas, impl, ptr, calldatasize, 0, 0)
            let size := returndatasize
            returndatacopy(ptr, 0, size)
            
            switch result
            case 0 { revert(ptr, size) }
            default { return(ptr, size) }
        }
    }
}

Contract ABI
[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"spender","type":"address"},{"name":"value","type":"uint256"}],"name":"approve","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"from","type":"address"},{"name":"to","type":"address"},{"name":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"account","type":"address"}],"name":"isOwner","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"account","type":"address"}],"name":"removeMinter","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"cap","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newImplementation","type":"address"}],"name":"upgradeTo","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"spender","type":"address"},{"name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"unpause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"to","type":"address"},{"name":"value","type":"uint256"}],"name":"mint","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"value","type":"uint256"}],"name":"burn","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"account","type":"address"}],"name":"isPauser","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"implementation","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"paused","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"account","type":"address"}],"name":"removePauser","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"renouncePauser","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"holder","type":"address"}],"name":"unfreezeAccount","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"acceptOwnership","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"from","type":"address"},{"name":"value","type":"uint256"}],"name":"burnFrom","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"holder","type":"address"},{"name":"idx","type":"uint256"}],"name":"unlock","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"account","type":"address"}],"name":"addPauser","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"pause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"account","type":"address"}],"name":"addMinter","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"renounceMinter","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"spender","type":"address"},{"name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"to","type":"address"},{"name":"value","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"account","type":"address"}],"name":"isMinter","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"frozenAccount","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"},{"name":"","type":"uint256"}],"name":"timelockList","outputs":[{"name":"_releaseTime","type":"uint256"},{"name":"_amount","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"newOwner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"owner","type":"address"},{"name":"spender","type":"address"}],"name":"allowance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"holder","type":"address"},{"name":"value","type":"uint256"},{"name":"releaseTime","type":"uint256"}],"name":"transferWithLock","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"holder","type":"address"},{"name":"value","type":"uint256"},{"name":"releaseTime","type":"uint256"}],"name":"lock","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"holder","type":"address"}],"name":"freezeAccount","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"holder","type":"address"}],"name":"Freeze","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"holder","type":"address"}],"name":"Unfreeze","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"holder","type":"address"},{"indexed":false,"name":"value","type":"uint256"},{"indexed":false,"name":"releaseTime","type":"uint256"}],"name":"Lock","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"holder","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Unlock","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"account","type":"address"}],"name":"MinterAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"account","type":"address"}],"name":"MinterRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"account","type":"address"}],"name":"PauserAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"account","type":"address"}],"name":"PauserRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":true,"name":"spender","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Approval","type":"event"}]

Contract Creation Code
60806040523480156200001157600080fd5b50604080518082018252600881527f4e4941546f6b656e00000000000000000000000000000000000000000000000060208083019182528351808501909452600384527f4e494100000000000000000000000000000000000000000000000000000000009084015281516b0295be96e64066972000000093916012916200009b91600091620003c4565b508151620000b1906001906020850190620003c4565b506002805460ff191660ff9290921691909117905550506006805433600160a060020a03199182168117909255600780549091169055620000fb9064010000000062000151810204565b6009805460ff191690556200011933640100000000620001a3810204565b600081116200012757600080fd5b600b556200014b336b0108b2a2c280290940000000640100000000620001f5810204565b62000466565b6200016c60088264010000000062001e536200024f82021704565b604051600160a060020a038216907f6719d08c1888103bea251a4ed56406bd0c3e69723c8a1686e017e7bbe159b6f890600090a250565b620001be600a8264010000000062001e536200024f82021704565b604051600160a060020a038216907f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f690600090a250565b600b54620002258262000210640100000000620002aa810204565b9064010000000062001776620002b182021704565b11156200023157600080fd5b6200024b828264010000000062001d92620002cb82021704565b5050565b600160a060020a03811615156200026557600080fd5b6200027a82826401000000006200038c810204565b156200028557600080fd5b600160a060020a0316600090815260209190915260409020805460ff19166001179055565b6005545b90565b600082820183811015620002c457600080fd5b9392505050565b600160a060020a0382161515620002e157600080fd5b600554620002fe908264010000000062001776620002b182021704565b600555600160a060020a03821660009081526003602052604090205462000334908264010000000062001776620002b182021704565b600160a060020a03831660008181526003602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b6000600160a060020a0382161515620003a457600080fd5b50600160a060020a03166000908152602091909152604090205460ff1690565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200040757805160ff191683800117855562000437565b8280016001018555821562000437579182015b82811115620004375782518255916020019190600101906200041a565b506200044592915062000449565b5090565b620002ae91905b8082111562000445576000815560010162000450565b611f7680620004766000396000f3fe608060405260043610610258576000357c01000000000000000000000000000000000000000000000000000000009004806379ba50971161014b578063a9059cbb116100c8578063dd62ed3e1161008c578063dd62ed3e14610909578063de6baccb14610944578063e2ab691d14610983578063f26c159f146109c2578063f2fde38b146109f557610258565b8063a9059cbb14610803578063aa271e1a1461083c578063b414d4b61461086f578063d26c4a76146108a2578063d4ee1d90146108f457610258565b80638da5cb5b1161010f5780638da5cb5b1461075857806395d89b411461076d578063983b2d561461078257806398650275146107b5578063a457c2d7146107ca57610258565b806379ba50971461068957806379cc67901461069e5780637eee288d146106d757806382dc1ec4146107105780638456cb591461074357610258565b80633f4ba83a116101d95780635c975abb1161019d5780635c975abb146105c65780636b2c0f55146105db5780636ef8d66d1461060e57806370a0823114610623578063788649ea1461065657610258565b80633f4ba83a146104ea57806340c10f19146104ff57806342966c681461053857806346fbf68e146105625780635c60da1b1461059557610258565b80633092afd5116102205780633092afd514610409578063313ce5671461043e578063355274ea146104695780633659cfe61461047e57806339509351146104b157610258565b806306fdde0314610295578063095ea7b31461031f57806318160ddd1461036c57806323b872dd146103935780632f54bf6e146103d6575b600c54600160a060020a031680151561027057600080fd5b60405136600082376000803683855af43d806000843e818015610291578184f35b8184fd5b3480156102a157600080fd5b506102aa610a28565b6040805160208082528351818301528351919283929083019185019080838360005b838110156102e45781810151838201526020016102cc565b50505050905090810190601f1680156103115780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561032b57600080fd5b506103586004803603604081101561034257600080fd5b50600160a060020a038135169060200135610abf565b604080519115158252519081900360200190f35b34801561037857600080fd5b50610381610ae3565b60408051918252519081900360200190f35b34801561039f57600080fd5b50610358600480360360608110156103b657600080fd5b50600160a060020a03813581169160208101359091169060400135610ae9565b3480156103e257600080fd5b50610358600480360360208110156103f957600080fd5b5035600160a060020a0316610b4f565b34801561041557600080fd5b5061043c6004803603602081101561042c57600080fd5b5035600160a060020a0316610b79565b005b34801561044a57600080fd5b50610453610b9c565b6040805160ff9092168252519081900360200190f35b34801561047557600080fd5b50610381610ba5565b34801561048a57600080fd5b5061043c600480360360208110156104a157600080fd5b5035600160a060020a0316610bab565b3480156104bd57600080fd5b50610358600480360360408110156104d457600080fd5b50600160a060020a038135169060200135610be6565b3480156104f657600080fd5b5061043c610c03565b34801561050b57600080fd5b506103586004803603604081101561052257600080fd5b50600160a060020a038135169060200135610c76565b34801561054457600080fd5b5061043c6004803603602081101561055b57600080fd5b5035610cae565b34801561056e57600080fd5b506103586004803603602081101561058557600080fd5b5035600160a060020a0316610cb8565b3480156105a157600080fd5b506105aa610cd1565b60408051600160a060020a039092168252519081900360200190f35b3480156105d257600080fd5b50610358610ce0565b3480156105e757600080fd5b5061043c600480360360208110156105fe57600080fd5b5035600160a060020a0316610ce9565b34801561061a57600080fd5b5061043c610d09565b34801561062f57600080fd5b506103816004803603602081101561064657600080fd5b5035600160a060020a0316610d14565b34801561066257600080fd5b506103586004803603602081101561067957600080fd5b5035600160a060020a0316610dc0565b34801561069557600080fd5b50610358610e5a565b3480156106aa57600080fd5b5061043c600480360360408110156106c157600080fd5b50600160a060020a038135169060200135610ef3565b3480156106e357600080fd5b50610358600480360360408110156106fa57600080fd5b50600160a060020a038135169060200135610f01565b34801561071c57600080fd5b5061043c6004803603602081101561073357600080fd5b5035600160a060020a0316610fc0565b34801561074f57600080fd5b5061043c610fec565b34801561076457600080fd5b506105aa611061565b34801561077957600080fd5b506102aa611070565b34801561078e57600080fd5b5061043c600480360360208110156107a557600080fd5b5035600160a060020a03166110d0565b3480156107c157600080fd5b5061043c6110fc565b3480156107d657600080fd5b50610358600480360360408110156107ed57600080fd5b50600160a060020a038135169060200135611105565b34801561080f57600080fd5b506103586004803603604081101561082657600080fd5b50600160a060020a038135169060200135611122565b34801561084857600080fd5b506103586004803603602081101561085f57600080fd5b5035600160a060020a0316611175565b34801561087b57600080fd5b506103586004803603602081101561089257600080fd5b5035600160a060020a0316611188565b3480156108ae57600080fd5b506108db600480360360408110156108c557600080fd5b50600160a060020a03813516906020013561119d565b6040805192835260208301919091528051918290030190f35b34801561090057600080fd5b506105aa6111d8565b34801561091557600080fd5b506103816004803603604081101561092c57600080fd5b50600160a060020a03813581169160200135166111e7565b34801561095057600080fd5b506103586004803603606081101561096757600080fd5b50600160a060020a038135169060208101359060400135611212565b34801561098f57600080fd5b50610358600480360360608110156109a657600080fd5b50600160a060020a038135169060208101359060400135611258565b3480156109ce57600080fd5b50610358600480360360208110156109e557600080fd5b5035600160a060020a03166112ee565b348015610a0157600080fd5b5061043c60048036036020811015610a1857600080fd5b5035600160a060020a031661138a565b60008054604080516020601f6002600019610100600188161502019095169490940493840181900481028201810190925282815260609390929091830182828015610ab45780601f10610a8957610100808354040283529160200191610ab4565b820191906000526020600020905b815481529060010190602001808311610a9757829003601f168201915b505050505090505b90565b60095460009060ff1615610ad257600080fd5b610adc83836113e5565b9392505050565b60055490565b600160a060020a0383166000908152600e6020526040812054849060ff1615610b1157600080fd5b600160a060020a0385166000908152600d60205260408120541115610b3b57610b3933611451565b505b610b468585856114ce565b95945050505050565b600654600090600160a060020a0383811691161415610b7057506001610b74565b5060005b919050565b600654600160a060020a03163314610b9057600080fd5b610b99816114ec565b50565b60025460ff1690565b600b5490565b600654600160a060020a03163314610bc257600080fd5b600c54600160a060020a0382811691161415610bdd57600080fd5b610b9981611534565b60095460009060ff1615610bf957600080fd5b610adc8383611563565b610c0c33610cb8565b80610c1b5750610c1b33610b4f565b1515610c2657600080fd5b60095460ff161515610c3757600080fd5b6009805460ff191690556040805133815290517f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa9181900360200190a1565b6000610c8133611175565b80610c905750610c9033610b4f565b1515610c9b57600080fd5b610ca58383611601565b50600192915050565b610b993382611631565b6000610ccb60088363ffffffff6116dc16565b92915050565b600c54600160a060020a031681565b60095460ff1690565b600654600160a060020a03163314610d0057600080fd5b610b9981611713565b610d1233611713565b565b600080610d208361175b565b600160a060020a0384166000908152600d60205260408120549192501015610ccb5760005b600160a060020a0384166000908152600d6020526040902054811015610db957600160a060020a0384166000908152600d602052604090208054610daf919083908110610d8e57fe5b9060005260206000209060020201600101548361177690919063ffffffff16565b9150600101610d45565b5092915050565b6000610dcb33610cb8565b80610dda5750610dda33610b4f565b1515610de557600080fd5b600160a060020a0382166000908152600e602052604090205460ff161515610e0c57600080fd5b600160a060020a0382166000818152600e6020526040808220805460ff19169055517fca5069937e68fd197927055037f59d7c90bf75ac104e6e375539ef480c3ad6ee9190a2506001919050565b6000331515610e6857600080fd5b600754600160a060020a03163314610e7f57600080fd5b600754600654604051600160a060020a0392831692909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600780546006805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a0384161790915516905590565b610efd8282611788565b5050565b6000610f0c33610cb8565b80610f1b5750610f1b33610b4f565b1515610f2657600080fd5b600160a060020a0383166000908152600d60205260409020548210610fac57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f5468657265206973206e6f74206c6f636b20696e666f2e000000000000000000604482015290519081900360640190fd5b610fb68383611838565b5060019392505050565b610fc933610cb8565b80610fd85750610fd833610b4f565b1515610fe357600080fd5b610b9981611a03565b610ff533610cb8565b80611004575061100433610b4f565b151561100f57600080fd5b60095460ff161561101f57600080fd5b6009805460ff191660011790556040805133815290517f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2589181900360200190a1565b600654600160a060020a031681565b60018054604080516020601f60026000196101008789161502019095169490940493840181900481028201810190925282815260609390929091830182828015610ab45780601f10610a8957610100808354040283529160200191610ab4565b6110d933611175565b806110e857506110e833610b4f565b15156110f357600080fd5b610b9981611a4b565b610d12336114ec565b60095460009060ff161561111857600080fd5b610adc8383611a93565b336000818152600e602052604081205490919060ff161561114257600080fd5b336000908152600d602052604081205411156111635761116133611451565b505b61116d8484611ade565b949350505050565b6000610ccb600a8363ffffffff6116dc16565b600e6020526000908152604090205460ff1681565b600d602052816000526040600020818154811015156111b857fe5b600091825260209091206002909102018054600190910154909250905082565b600754600160a060020a031681565b600160a060020a03918216600090815260046020908152604080832093909416825291909152205490565b600061121d33610cb8565b8061122c575061122c33610b4f565b151561123757600080fd5b611242338585611afb565b61124d848484611bca565b506001949350505050565b600061126333610cb8565b80611272575061127233610b4f565b151561127d57600080fd5b600160a060020a038416600090815260036020526040902054831115611242576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526027815260200180611f046027913960400191505060405180910390fd5b60006112f933610cb8565b80611308575061130833610b4f565b151561131357600080fd5b600160a060020a0382166000908152600e602052604090205460ff161561133957600080fd5b600160a060020a0382166000818152600e6020526040808220805460ff19166001179055517faf85b60d26151edd11443b704d424da6c43d0468f2235ebae3d1904dbc3230499190a2506001919050565b600654600160a060020a031633146113a157600080fd5b600160a060020a03811615156113b657600080fd5b6007805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6000600160a060020a03831615156113fc57600080fd5b336000818152600460209081526040808320600160a060020a0388168085529083529281902086905580518681529051929392600080516020611f2b833981519152929181900390910190a350600192915050565b6000805b600160a060020a0383166000908152600d6020526040902054811015610ca557600160a060020a0383166000908152600d6020526040902080544291908390811061149c57fe5b6000918252602090912060029091020154116114c6576114bc8382611838565b156114c657600019015b600101611455565b60095460009060ff16156114e157600080fd5b61116d848484611c8f565b6114fd600a8263ffffffff611d4616565b604051600160a060020a038216907fe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb6669290600090a250565b600c805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6000600160a060020a038316151561157a57600080fd5b336000908152600460209081526040808320600160a060020a03871684529091529020546115ae908363ffffffff61177616565b336000818152600460209081526040808320600160a060020a038916808552908352928190208590558051948552519193600080516020611f2b833981519152929081900390910190a350600192915050565b600b5461161c82611610610ae3565b9063ffffffff61177616565b111561162757600080fd5b610efd8282611d92565b600160a060020a038216151561164657600080fd5b600554611659908263ffffffff611e3e16565b600555600160a060020a038216600090815260036020526040902054611685908263ffffffff611e3e16565b600160a060020a0383166000818152600360209081526040808320949094558351858152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a35050565b6000600160a060020a03821615156116f357600080fd5b50600160a060020a03166000908152602091909152604090205460ff1690565b61172460088263ffffffff611d4616565b604051600160a060020a038216907fcd265ebaf09df2871cc7bd4133404a235ba12eff2041bb89d9c714a2621c7c7e90600090a250565b600160a060020a031660009081526003602052604090205490565b600082820183811015610adc57600080fd5b600160a060020a03821660009081526004602090815260408083203384529091529020546117bc908263ffffffff611e3e16565b600160a060020a03831660009081526004602090815260408083203384529091529020556117ea8282611631565b600160a060020a038216600081815260046020908152604080832033808552908352928190205481519081529051929392600080516020611f2b833981519152929181900390910190a35050565b600160a060020a0382166000908152600d6020526040812080548291908490811061185f57fe5b60009182526020808320600160029093020191820154600160a060020a0388168452600d90915260409092208054919350908590811061189b57fe5b6000918252602080832060029092029091018281556001908101839055600160a060020a0388168352600d9091526040909120805490916118e2919063ffffffff611e3e16565b815481106118ec57fe5b9060005260206000209060020201600d600087600160a060020a0316600160a060020a031681526020019081526020016000208581548110151561192c57fe5b6000918252602080832084546002909302019182556001938401549390910192909255600160a060020a0387168152600d90915260409020805460001901906119759082611eae565b50604080518281529051600160a060020a038716917f6381d9813cabeb57471b5a7e05078e64845ccdb563146a6911d536f24ce960f1919081900360200190a2600160a060020a0385166000908152600360205260409020546119de908263ffffffff61177616565b600160a060020a03861660009081526003602052604090205550600191505092915050565b611a1460088263ffffffff611e5316565b604051600160a060020a038216907f6719d08c1888103bea251a4ed56406bd0c3e69723c8a1686e017e7bbe159b6f890600090a250565b611a5c600a8263ffffffff611e5316565b604051600160a060020a038216907f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f690600090a250565b6000600160a060020a0383161515611aaa57600080fd5b336000908152600460209081526040808320600160a060020a03871684529091529020546115ae908363ffffffff611e3e16565b60095460009060ff1615611af157600080fd5b610adc8383611ea1565b600160a060020a0382161515611b1057600080fd5b600160a060020a038316600090815260036020526040902054611b39908263ffffffff611e3e16565b600160a060020a038085166000908152600360205260408082209390935590841681522054611b6e908263ffffffff61177616565b600160a060020a0380841660008181526003602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600160a060020a038316600090815260036020526040812054611bf3908463ffffffff611e3e16565b600160a060020a038516600081815260036020908152604080832094909455600d8152838220845180860186528781528083018981528254600181810185559386529484902091516002909502909101938455519201919091558251868152908101859052825191927f49eaf4942f1237055eb4cfa5f31c9dfe50d5b4ade01e021f7de8be2fbbde557b92918290030190a25060019392505050565b600160a060020a0383166000908152600460209081526040808320338452909152812054611cc3908363ffffffff611e3e16565b600160a060020a0385166000908152600460209081526040808320338452909152902055611cf2848484611afb565b600160a060020a038416600081815260046020908152604080832033808552908352928190205481519081529051929392600080516020611f2b833981519152929181900390910190a35060019392505050565b600160a060020a0381161515611d5b57600080fd5b611d6582826116dc565b1515611d7057600080fd5b600160a060020a0316600090815260209190915260409020805460ff19169055565b600160a060020a0382161515611da757600080fd5b600554611dba908263ffffffff61177616565b600555600160a060020a038216600090815260036020526040902054611de6908263ffffffff61177616565b600160a060020a03831660008181526003602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b600082821115611e4d57600080fd5b50900390565b600160a060020a0381161515611e6857600080fd5b611e7282826116dc565b15611e7c57600080fd5b600160a060020a0316600090815260209190915260409020805460ff19166001179055565b6000610ca5338484611afb565b815481835581811115611eda57600202816002028360005260206000209182019101611eda9190611edf565b505050565b610abc91905b80821115611eff5760008082556001820155600201611ee5565b509056fe5468657265206973206e6f7420656e6f7567682062616c616e636573206f6620686f6c6465722e8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925a165627a7a72305820fc0b3acad26bcf886a68e6fe17f7d9de5f11ef3b0625eb3626054ff2377b74420029


   Swarm Source:
bzzr://fc0b3acad26bcf886a68e6fe17f7d9de5f11ef3b0625eb3626054ff2377b7442
Block Age transaction Difficulty GasUsed Reward
Block Age Uncle Number Difficulty GasUsed Reward
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.