Contract 0xA982F29F6D542A32e2415dfCDeD300547b42438A

 

Contract Overview

Balance:
0 BNB

BNB Value:
$0.00

Token:
Txn Hash
Block
From
To
Value [Txn Fee]
0xc1518acd3f79ce7dc0e12b27971fd6ba23d06462d5ea3040509ed1448df8a0bd81249882021-06-08 18:16:097 days 15 hrs ago0x3a09b41e44104fa4dcb9f4a76606b13a21130859 IN  0xa982f29f6d542a32e2415dfcded300547b42438a0 BNB0.00022675
0x27241f94da3b02632ecd8876b7eb21ac0a3cbe2ec359d264b967e637eaf2cb3578021952021-05-28 12:29:0718 days 21 hrs ago0x0c35fdb4093182fbb5377fe9fa5d885ecda6e6b9 IN  0xa982f29f6d542a32e2415dfcded300547b42438a0 BNB0.00022675
0xcad0e81c49e9bd4195d7f79c01362079e92c8d96bb0e59f3edf64950ab2e5d7777957642021-05-28 7:07:2419 days 2 hrs ago0xd72cdc874a8e5a0f571e9d001ffd6c289665bddc IN  0xa982f29f6d542a32e2415dfcded300547b42438a0 BNB0.00018583
0x663cf21634f809813130d561716e5c5582442b959144c289fb474c06e954563f77224182021-05-25 17:33:1521 days 16 hrs ago0xb8741cfe12f4ff8a978325610ec04ae1fb774304 IN  0xa982f29f6d542a32e2415dfcded300547b42438a0 BNB0.00018577
0x7fa33bb92a2c111ee49ef0e1d6a32f3d9161db05c3b6dc515e0a77770ed0d79877221352021-05-25 17:19:0021 days 16 hrs ago0xc9f24d8f1e0cb6f656fea8599a250da4c1cb20d4 IN  0xa982f29f6d542a32e2415dfcded300547b42438a0 BNB0.00018577
0xe6a4438b1679fd0b1831f598f7cb791007fe1b56abea43833d010b9732b9872477216502021-05-25 16:54:3521 days 17 hrs ago0xb8741cfe12f4ff8a978325610ec04ae1fb774304 IN  0xa982f29f6d542a32e2415dfcded300547b42438a0 BNB0.00018577
0xa148c4411ae0fedf0ce0f15b490d3cc0ff38def3418b95198e321d174d885b6a77179102021-05-25 13:47:3221 days 20 hrs ago0x31f5557f802f320c2a31db91440606685b9a3f06 IN  0xa982f29f6d542a32e2415dfcded300547b42438a0 BNB0.0005442
0x47f6aefd9f9d40b156a4ce26fa950afbc6111a998e6b6e34d2aeedab5f6f909576606152021-05-23 13:49:3723 days 20 hrs ago0xb7f9ebbf62d179fc8ecb23b084b749a963354c4b IN  0xa982f29f6d542a32e2415dfcded300547b42438a0 BNB0.00022675
0x6507c28aaae7a325911e74e6c570c6e4aefa0ec704903781c85b91d13f907de576200082021-05-22 3:53:5625 days 6 hrs ago0x89d2e1f8c3f3b8798741c0a9cad851a7eae75702 IN  0xa982f29f6d542a32e2415dfcded300547b42438a0 BNB0.00022675
0x0341efbc5a236c1b4167692bb174be112a8e841a50062faa89164a790562725475829892021-05-20 20:52:4426 days 13 hrs ago0xd389b33b962fbcbb7b1241fcb0d936fb43534d64 IN  0xa982f29f6d542a32e2415dfcded300547b42438a0 BNB0.00022675
0x441c5dca6c98d983c641ea65c9eefa960b4b93fe92a6f7ad71c8f600a68737c775769652021-05-20 15:51:1526 days 18 hrs ago0x81dbbe856080aca04de62c6233e9e6b979d24270 IN  0xa982f29f6d542a32e2415dfcded300547b42438a0 BNB0.00013075
0x6b01b3b187eb02b6ff75f7cf5af489bd8327462602eaef2a8553aa3b98459b9d75768902021-05-20 15:47:3026 days 18 hrs ago0x81dbbe856080aca04de62c6233e9e6b979d24270 IN  0xa982f29f6d542a32e2415dfcded300547b42438a0 BNB0.00022675
0xee98abd7692fd58b582357b70f4ba9109d60342e4b7d3213070469a048794d5175726812021-05-20 12:15:4526 days 21 hrs ago0x6098cd2e98e3daed053542784d7e375978d21349 IN  0xa982f29f6d542a32e2415dfcded300547b42438a0 BNB0.00022675
0xc41104520867d4a46f07dd60fde40a9b8a04cb6c9dad2b05bd3216687bdcbc7a75696792021-05-20 9:44:1227 days 14 mins ago0x81a8a629d5752a401101d6b518a85d426d0dc0ee IN  0xa982f29f6d542a32e2415dfcded300547b42438a0 BNB0.00022675
0x61e7ef4e61293edc48a320503358bd12dc9bd39ab2e076e7db3f850496dfed0175696702021-05-20 9:43:4527 days 14 mins ago0x68e855dc11a331d68c794bed95d525897a33d93b IN  0xa982f29f6d542a32e2415dfcded300547b42438a0 BNB0.00022675
0x5200b9512f616ab165ccf76c8149028d5da7b36714171fbaa0f99d56ebd2cbe375663362021-05-20 6:55:1127 days 3 hrs ago0x75f32df79a936c636eb47215654b5d86e28e447d IN  0xa982f29f6d542a32e2415dfcded300547b42438a0 BNB0.00022675
0x0dc2d631314158119f8bbafbb1b1070fbfc520b955493475867d4294e682bc2775404622021-05-19 9:14:1928 days 44 mins ago0xc04736e8e9da12eab8d8970bc62b5bed97d3a337 IN  0xa982f29f6d542a32e2415dfcded300547b42438a0 BNB0.00022675
0x69e8a540044a120cbc7563117882638b2fadeadd33ecdf952dadf8ba10ce3f0075304902021-05-19 0:38:1628 days 9 hrs ago0x09563e4c368b318c6ffa728de4be76b11fbae870 IN  0xa982f29f6d542a32e2415dfcded300547b42438a0 BNB0.00018577
0xf49a7772dc10b773424eadac3ae59e684595ec5bcf53ccef7c7843cf238fcde175274152021-05-18 22:04:3128 days 11 hrs ago0x493e09ffbdf84c5929b2c069fab4a425699ff691 IN  0xa982f29f6d542a32e2415dfcded300547b42438a0 BNB0.00022675
0x301a551f030ef381e60f6ecd4fed720a70df5356055a7f9e3a573e98ada7077975239692021-05-18 19:12:1028 days 14 hrs ago0xe703c0fdae881ae01acc03a0b54aa68022821432 IN  0xa982f29f6d542a32e2415dfcded300547b42438a0 BNB0.00022675
0x4ad6e2ef6050cc434014aa7a47a13a223c6001d8f2279a4b01491474394ce13574051192021-05-14 14:21:5132 days 19 hrs ago0x0298aee91820ef89fbf5242bba5315e92118dd5b IN  0xa982f29f6d542a32e2415dfcded300547b42438a0 BNB0.00018589
0xc46cd723e732e80841bcc407a53e96bb6e90fe20ca57853d31618367a759f07473824002021-05-13 19:14:1833 days 14 hrs ago0xe44b83bb639b590360cfefa00efab1a0cc1f6c0c IN  0xa982f29f6d542a32e2415dfcded300547b42438a0 BNB0.00018577
0xd9b4cff5d90d7056229906b3e95cda69a1ff9c10ca5a22b91cf20e38ad0690f573712152021-05-13 9:44:1034 days 14 mins ago0x2ad7cfbebcd0f1968261b182a78a058ac98e2f51 IN  0xa982f29f6d542a32e2415dfcded300547b42438a0 BNB0.00018577
0xee41a6c731be9183ee8bf6e2016d1889179508a5d51fd5e07025b50cb81fa75a73709382021-05-13 9:30:1734 days 28 mins ago0x194253d00d66390a63c2a07759a51436ac93d06c IN  0xa982f29f6d542a32e2415dfcded300547b42438a0 BNB0.00011077
0xf998c319c343920b80403127a0787fc0b1a66abaf37d33d610e18fb2d718287173707822021-05-13 9:22:2134 days 36 mins ago0x194253d00d66390a63c2a07759a51436ac93d06c IN  0xa982f29f6d542a32e2415dfcded300547b42438a0 BNB0.00026065
[ Download CSV Export 
Latest 1 internal transaction
Parent Txn Hash Block From To Value
0x7734798d8680703fc59c29026d05ca33d6e80fea72c38658f018e23a76b40b4866671932021-04-18 7:18:5759 days 2 hrs ago 0x29cdfd505b908d3e2d02b411e86550bec7c8dec1  Contract Creation0 BNB
[ Download CSV Export 
Loading

Contract Source Code Verified (Similar Match)
Note: This contract matches the deployed ByteCode of the Source Code for Contract 0xfAF4cF39d4Fe6ecb908B4344b402D0A7DFb76De4

Contract Name:
ERC20Chocolate

Compiler Version
v0.5.7+commit.6da8b019

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at BscScan.com on 2021-06-02
*/

/**

WPSmartContracts.com

Blockchain Made Easy

http://wpsmartcontracts.com/

*/

pragma solidity ^0.5.7;

/**
 * @title SafeMath
 * @dev Math operations with safety checks that revert on error
 */
library SafeMath {
    
    int256 constant private INT256_MIN = -2**255;

    /**
    * @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 Multiplies two signed integers, reverts on overflow.
    */
    function mul(int256 a, int256 b) internal pure returns (int256) {
        // 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;
        }

        require(!(a == -1 && b == INT256_MIN)); // This is the only case of overflow not detected by the check below

        int256 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 Integer division of two signed integers truncating the quotient, reverts on division by zero.
    */
    function div(int256 a, int256 b) internal pure returns (int256) {
        require(b != 0); // Solidity only automatically asserts when dividing by 0
        require(!(b == -1 && a == INT256_MIN)); // This is the only case of overflow

        int256 c = a / b;

        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 Subtracts two signed integers, reverts on overflow.
    */
    function sub(int256 a, int256 b) internal pure returns (int256) {
        int256 c = a - b;
        require((b >= 0 && c <= a) || (b < 0 && c > a));

        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 Adds two signed integers, reverts on overflow.
    */
    function add(int256 a, int256 b) internal pure returns (int256) {
        int256 c = a + b;
        require((b >= 0 && c >= a) || (b < 0 && 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;
    }
}


/**
 * @title ERC20 interface
 * @dev see https://github.com/ethereum/EIPs/issues/20
 */
interface IERC20 {
    function totalSupply() external view returns (uint256);

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

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

    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);

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

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

contract ERC20Pistachio is IERC20 {

    using SafeMath for uint256;

    mapping (address => uint256) private _balances;

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

    uint256 private _totalSupply;

    /**
    * @dev Public parameters to define the token
    */

    // Token symbol (short)
    string public symbol;

    // Token name (Long)
    string public  name;

    // Decimals (18 maximum)
    uint8 public decimals;

    /**
    * @dev Public functions to make the contract accesible
    */
    constructor (address initialAccount, string memory _tokenSymbol, string memory _tokenName, uint256 initialBalance) public {

        // Initialize Contract Parameters
        symbol = _tokenSymbol;
        name = _tokenName;
        decimals = 18;  // default decimals is going to be 18 always

        _mint(initialAccount, initialBalance);

    }

    /**
    * @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]);
    }

}

/**
 * @title Burnable Token
 * @dev Token that can be irreversibly burned (destroyed).
 */
contract ERC20Burnable is ERC20Pistachio {

    bool private _burnableActive;

    /**
     * @dev Burns a specific amount of tokens.
     * @param value The amount of token to be burned.
     */
    function burn(uint256 value) public whenBurnableActive {
        _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 whenBurnableActive {
        _burnFrom(from, value);
    }

    /**
     * @dev Options to activate or deactivate Burn ability
     */

    function _setBurnableActive(bool _active) internal {
        _burnableActive = _active;
    }

    modifier whenBurnableActive() {
        require(_burnableActive);
        _;
    }

}

/**
 * @title Roles
 * @dev Library for managing addresses assigned to a Role.
 */
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 MinterRole {
    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));
        _;
    }

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

    function addMinter(address account) public onlyMinter {
        _addMinter(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);
    }
}

/**
 * @title ERC20Mintable
 * @dev ERC20 minting logic
 */
contract ERC20Mintable is ERC20Pistachio, MinterRole {

    bool private _mintableActive;
    /**
     * @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 whenMintableActive returns (bool) {
        _mint(to, value);
        return true;
    }

    /**
     * @dev Options to activate or deactivate Burn ability
     */

    function _setMintableActive(bool _active) internal {
        _mintableActive = _active;
    }

    modifier whenMintableActive() {
        require(_mintableActive);
        _;
    }

}

contract PauserRole {
    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));
        _;
    }

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

    function addPauser(address account) public onlyPauser {
        _addPauser(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);
    }
}

/**
 * @title Pausable
 * @dev Base contract which allows children to implement an emergency stop mechanism.
 */
contract Pausable is PauserRole {
    event Paused(address account);
    event Unpaused(address account);

    bool private _pausableActive;
    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 whenPausableActive {
        _paused = true;
        emit Paused(msg.sender);
    }

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

    /**
     * @dev Options to activate or deactivate Pausable ability
     */

    function _setPausableActive(bool _active) internal {
        _pausableActive = _active;
    }

    modifier whenPausableActive() {
        require(_pausableActive);
        _;
    }

}

/**
 * @title Advanced ERC20 token
 *
 * @dev Implementation of the basic standard token plus mint and burn public functions.
 *
 * Version 2. This version delegates the minter and pauser renounce to parent-factory contract
 * that allows ICOs to be minter for token selling
 *
 */
contract ERC20Chocolate is ERC20Pistachio, ERC20Burnable, ERC20Mintable, Pausable {

    // maximum capital, if defined > 0
    uint256 private _cap;

    constructor (
        address initialAccount, string memory _tokenSymbol, string memory _tokenName, uint256 initialBalance, uint256 cap,
        bool _burnableOption, bool _mintableOption, bool _pausableOption
    ) public
        ERC20Pistachio(initialAccount, _tokenSymbol, _tokenName, initialBalance) {

        // we must add customer account as the first minter
        addMinter(initialAccount);

        // add customer as pauser
        addPauser(initialAccount);

        if (cap > 0) {
            _cap = cap; // maximum capitalization limited
        } else {
            _cap = 0; // unlimited capitalization
        }

        // activate or deactivate options
        _setBurnableActive(_burnableOption);
        _setMintableActive(_mintableOption);
        _setPausableActive(_pausableOption);

    }

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

    /**
     * limit the mint to a maximum cap only if cap is defined
     */
    function _mint(address account, uint256 value) internal {
        if (_cap > 0) {
            require(totalSupply().add(value) <= _cap);
        }
        super._mint(account, value);
    }

    /**
     * Pausable options
     */
    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 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":"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":"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":"paused","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","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":"from","type":"address"},{"name":"value","type":"uint256"}],"name":"burnFrom","outputs":[],"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":"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":"owner","type":"address"},{"name":"spender","type":"address"}],"name":"allowance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"initialAccount","type":"address"},{"name":"_tokenSymbol","type":"string"},{"name":"_tokenName","type":"string"},{"name":"initialBalance","type":"uint256"},{"name":"cap","type":"uint256"},{"name":"_burnableOption","type":"bool"},{"name":"_mintableOption","type":"bool"},{"name":"_pausableOption","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"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":"account","type":"address"}],"name":"MinterAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"account","type":"address"}],"name":"MinterRemoved","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"}]

60806040523480156200001157600080fd5b50604051620028083803806200280883398101806040526101008110156200003857600080fd5b810190808051906020019092919080516401000000008111156200005b57600080fd5b828101905060208101848111156200007257600080fd5b81518560018202830111640100000000821117156200009057600080fd5b50509291906020018051640100000000811115620000ad57600080fd5b82810190506020810184811115620000c457600080fd5b8151856001820283011164010000000082111715620000e257600080fd5b505092919060200180519060200190929190805190602001909291908051906020019092919080519060200190929190805190602001909291905050508787878782600390805190602001906200013b9291906200073a565b508160049080519060200190620001549291906200073a565b506012600560006101000a81548160ff021916908360ff1602179055506200018384826200024760201b60201c565b505050506200019833620002a760201b60201c565b620001a9336200030860201b60201c565b6000600960016101000a81548160ff021916908315150217905550620001d5886200036960201b60201c565b620001e6886200039860201b60201c565b6000841115620001fd5783600a8190555062000206565b6000600a819055505b6200021783620003c760201b60201c565b6200022882620003e460201b60201c565b62000239816200040160201b60201c565b5050505050505050620007e9565b6000600a5411156200028c57600a546200027f826200026b6200041e60201b60201c565b6200042860201b62001d1b1790919060201c565b11156200028b57600080fd5b5b620002a382826200044860201b62001d3a1760201c565b5050565b620002c2816006620005a960201b62001f371790919060201c565b8073ffffffffffffffffffffffffffffffffffffffff167f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f660405160405180910390a250565b62000323816008620005a960201b62001f371790919060201c565b8073ffffffffffffffffffffffffffffffffffffffff167f6719d08c1888103bea251a4ed56406bd0c3e69723c8a1686e017e7bbe159b6f860405160405180910390a250565b6200037a336200065f60201b60201c565b6200038457600080fd5b6200039581620002a760201b60201c565b50565b620003a9336200068360201b60201c565b620003b357600080fd5b620003c4816200030860201b60201c565b50565b80600560016101000a81548160ff02191690831515021790555050565b80600760006101000a81548160ff02191690831515021790555050565b80600960006101000a81548160ff02191690831515021790555050565b6000600254905090565b6000808284019050838110156200043e57600080fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156200048357600080fd5b6200049f816002546200042860201b62001d1b1790919060201c565b600281905550620004fd816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546200042860201b62001d1b1790919060201c565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415620005e457600080fd5b620005f68282620006a760201b60201c565b156200060157600080fd5b60018260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60006200067c826006620006a760201b620014ed1790919060201c565b9050919050565b6000620006a0826008620006a760201b620014ed1790919060201c565b9050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415620006e357600080fd5b8260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200077d57805160ff1916838001178555620007ae565b82800160010185558215620007ae579182015b82811115620007ad57825182559160200191906001019062000790565b5b509050620007bd9190620007c1565b5090565b620007e691905b80821115620007e2576000816000905550600101620007c8565b5090565b90565b61200f80620007f96000396000f3fe608060405234801561001057600080fd5b50600436106101585760003560e01c80636ef8d66d116100c3578063983b2d561161007c578063983b2d561461062f5780639865027514610673578063a457c2d71461067d578063a9059cbb146106e3578063aa271e1a14610749578063dd62ed3e146107a557610158565b80636ef8d66d146104ae57806370a08231146104b857806379cc67901461051057806382dc1ec41461055e5780638456cb59146105a257806395d89b41146105ac57610158565b80633950935111610115578063395093511461032c5780633f4ba83a1461039257806340c10f191461039c57806342966c681461040257806346fbf68e146104305780635c975abb1461048c57610158565b806306fdde031461015d578063095ea7b3146101e057806318160ddd1461024657806323b872dd14610264578063313ce567146102ea578063355274ea1461030e575b600080fd5b61016561081d565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101a557808201518184015260208101905061018a565b50505050905090810190601f1680156101d25780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61022c600480360360408110156101f657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506108bb565b604051808215151515815260200191505060405180910390f35b61024e6108e9565b6040518082815260200191505060405180910390f35b6102d06004803603606081101561027a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506108f3565b604051808215151515815260200191505060405180910390f35b6102f2610923565b604051808260ff1660ff16815260200191505060405180910390f35b610316610936565b6040518082815260200191505060405180910390f35b6103786004803603604081101561034257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610940565b604051808215151515815260200191505060405180910390f35b61039a61096e565b005b6103e8600480360360408110156103b257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a32565b604051808215151515815260200191505060405180910390f35b61042e6004803603602081101561041857600080fd5b8101908080359060200190929190505050610a73565b005b6104726004803603602081101561044657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610a99565b604051808215151515815260200191505060405180910390f35b610494610ab6565b604051808215151515815260200191505060405180910390f35b6104b6610acd565b005b6104fa600480360360208110156104ce57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ad8565b6040518082815260200191505060405180910390f35b61055c6004803603604081101561052657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b20565b005b6105a06004803603602081101561057457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610b47565b005b6105aa610b65565b005b6105b4610c2a565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156105f45780820151818401526020810190506105d9565b50505050905090810190601f1680156106215780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6106716004803603602081101561064557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610cc8565b005b61067b610ce6565b005b6106c96004803603604081101561069357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610cf1565b604051808215151515815260200191505060405180910390f35b61072f600480360360408110156106f957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610d1f565b604051808215151515815260200191505060405180910390f35b61078b6004803603602081101561075f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d4d565b604051808215151515815260200191505060405180910390f35b610807600480360360408110156107bb57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d6a565b6040518082815260200191505060405180910390f35b60048054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156108b35780601f10610888576101008083540402835291602001916108b3565b820191906000526020600020905b81548152906001019060200180831161089657829003601f168201915b505050505081565b6000600960019054906101000a900460ff16156108d757600080fd5b6108e18383610df1565b905092915050565b6000600254905090565b6000600960019054906101000a900460ff161561090f57600080fd5b61091a848484610f1c565b90509392505050565b600560009054906101000a900460ff1681565b6000600a54905090565b6000600960019054906101000a900460ff161561095c57600080fd5b6109668383611124565b905092915050565b61097733610a99565b61098057600080fd5b600960019054906101000a900460ff1661099957600080fd5b600960009054906101000a900460ff166109b257600080fd5b6000600960016101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa33604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1565b6000610a3d33610d4d565b610a4657600080fd5b600760009054906101000a900460ff16610a5f57600080fd5b610a698383611359565b6001905092915050565b600560019054906101000a900460ff16610a8c57600080fd5b610a96338261139b565b50565b6000610aaf8260086114ed90919063ffffffff16565b9050919050565b6000600960019054906101000a900460ff16905090565b610ad63361157f565b565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600560019054906101000a900460ff16610b3957600080fd5b610b4382826115d9565b5050565b610b5033610a99565b610b5957600080fd5b610b62816117d7565b50565b610b6e33610a99565b610b7757600080fd5b600960019054906101000a900460ff1615610b9157600080fd5b600960009054906101000a900460ff16610baa57600080fd5b6001600960016101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25833604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1565b60038054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610cc05780601f10610c9557610100808354040283529160200191610cc0565b820191906000526020600020905b815481529060010190602001808311610ca357829003601f168201915b505050505081565b610cd133610d4d565b610cda57600080fd5b610ce381611831565b50565b610cef3361188b565b565b6000600960019054906101000a900460ff1615610d0d57600080fd5b610d1783836118e5565b905092915050565b6000600960019054906101000a900460ff1615610d3b57600080fd5b610d458383611b1a565b905092915050565b6000610d638260066114ed90919063ffffffff16565b9050919050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610e2c57600080fd5b81600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000610fad82600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b3190919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611038848484611b51565b3373ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600190509392505050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561115f57600080fd5b6111ee82600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d1b90919063ffffffff16565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b6000600a54111561138d57600a54611381826113736108e9565b611d1b90919063ffffffff16565b111561138c57600080fd5b5b6113978282611d3a565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156113d557600080fd5b6113ea81600254611b3190919063ffffffff16565b600281905550611441816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b3190919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561152857600080fd5b8260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b611593816008611e8c90919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167fcd265ebaf09df2871cc7bd4133404a235ba12eff2041bb89d9c714a2621c7c7e60405160405180910390a250565b61166881600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b3190919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506116f2828261139b565b3373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a35050565b6117eb816008611f3790919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167f6719d08c1888103bea251a4ed56406bd0c3e69723c8a1686e017e7bbe159b6f860405160405180910390a250565b611845816006611f3790919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f660405160405180910390a250565b61189f816006611e8c90919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167fe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb6669260405160405180910390a250565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561192057600080fd5b6119af82600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b3190919063ffffffff16565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b6000611b27338484611b51565b6001905092915050565b600082821115611b4057600080fd5b600082840390508091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611b8b57600080fd5b611bdc816000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b3190919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611c6f816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d1b90919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b600080828401905083811015611d3057600080fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611d7457600080fd5b611d8981600254611d1b90919063ffffffff16565b600281905550611de0816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d1b90919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611ec657600080fd5b611ed082826114ed565b611ed957600080fd5b60008260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611f7157600080fd5b611f7b82826114ed565b15611f8557600080fd5b60018260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550505056fea165627a7a72305820848a6fa410baa57e55049401a8a434236ad9f06ed1bf3911a9a1823a391f8e620029000000000000000000000000bf112617bf6de09aa276249356a74e456226fe4e000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001400000000000000000000000000000000000000000000000000de0b6b3a764000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001310000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000013100000000000000000000000000000000000000000000000000000000000000

Deployed ByteCode Sourcemap

18893:2308:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18893:2308:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4814:19;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;4814:19:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20680:140;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;20680:140:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;5409:91;;;:::i;:::-;;;;;;;;;;;;;;;;;;;20513:159;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;20513:159:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;4872:21;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;19964:75;;;:::i;:::-;;;;;;;;;;;;;;;;;;;20828:175;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;20828:175:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;18176:137;;;:::i;:::-;;15598:150;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;15598:150:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;12536:98;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;12536:98:0;;;;;;;;;;;;;;;;;:::i;:::-;;16396:109;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;16396:109:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;17410:78;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;16613:77;;;:::i;:::-;;5716:106;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5716:106:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;12893:114;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;12893:114:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;16513:92;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;16513:92:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;17946:135;;;:::i;:::-;;4759:20;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;4759:20:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14738:92;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;14738:92:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;14838:77;;;:::i;:::-;;21011:185;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;21011:185:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;20373:132;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;20373:132:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;14621:109;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;14621:109:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;6161:131;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6161:131:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;4814:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;20680:140::-;20759:4;17647:7;;;;;;;;;;;17646:8;17638:17;;;;;;20783:29;20797:7;20806:5;20783:13;:29::i;:::-;20776:36;;20680:140;;;;:::o;5409:91::-;5453:7;5480:12;;5473:19;;5409:91;:::o;20513:159::-;20605:4;17647:7;;;;;;;;;;;17646:8;17638:17;;;;;;20629:35;20648:4;20654:2;20658:5;20629:18;:35::i;:::-;20622:42;;20513:159;;;;;:::o;4872:21::-;;;;;;;;;;;;;:::o;19964:75::-;20000:7;20027:4;;20020:11;;19964:75;:::o;20828:175::-;20919:12;17647:7;;;;;;;;;;;17646:8;17638:17;;;;;;20951:44;20975:7;20984:10;20951:23;:44::i;:::-;20944:51;;20828:175;;;;:::o;18176:137::-;16347:20;16356:10;16347:8;:20::i;:::-;16339:29;;;;;;17826:7;;;;;;;;;;;17818:16;;;;;;18557:15;;;;;;;;;;;18549:24;;;;;;18264:5;18254:7;;:15;;;;;;;;;;;;;;;;;;18285:20;18294:10;18285:20;;;;;;;;;;;;;;;;;;;;;;18176:137::o;15598:150::-;15685:4;14572:20;14581:10;14572:8;:20::i;:::-;14564:29;;;;;;15988:15;;;;;;;;;;;15980:24;;;;;;15702:16;15708:2;15712:5;15702;:16::i;:::-;15736:4;15729:11;;15598:150;;;;:::o;12536:98::-;13247:15;;;;;;;;;;;13239:24;;;;;;12602;12608:10;12620:5;12602;:24::i;:::-;12536:98;:::o;16396:109::-;16452:4;16476:21;16489:7;16476:8;:12;;:21;;;;:::i;:::-;16469:28;;16396:109;;;:::o;17410:78::-;17449:4;17473:7;;;;;;;;;;;17466:14;;17410:78;:::o;16613:77::-;16657:25;16671:10;16657:13;:25::i;:::-;16613:77::o;5716:106::-;5771:7;5798:9;:16;5808:5;5798:16;;;;;;;;;;;;;;;;5791:23;;5716:106;;;:::o;12893:114::-;13247:15;;;;;;;;;;;13239:24;;;;;;12977:22;12987:4;12993:5;12977:9;:22::i;:::-;12893:114;;:::o;16513:92::-;16347:20;16356:10;16347:8;:20::i;:::-;16339:29;;;;;;16578:19;16589:7;16578:10;:19::i;:::-;16513:92;:::o;17946:135::-;16347:20;16356:10;16347:8;:20::i;:::-;16339:29;;;;;;17647:7;;;;;;;;;;;17646:8;17638:17;;;;;;18557:15;;;;;;;;;;;18549:24;;;;;;18035:4;18025:7;;:14;;;;;;;;;;;;;;;;;;18055:18;18062:10;18055:18;;;;;;;;;;;;;;;;;;;;;;17946:135::o;4759:20::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14738:92::-;14572:20;14581:10;14572:8;:20::i;:::-;14564:29;;;;;;14803:19;14814:7;14803:10;:19::i;:::-;14738:92;:::o;14838:77::-;14882:25;14896:10;14882:13;:25::i;:::-;14838:77::o;21011:185::-;21107:12;17647:7;;;;;;;;;;;17646:8;17638:17;;;;;;21139:49;21163:7;21172:15;21139:23;:49::i;:::-;21132:56;;21011:185;;;;:::o;20373:132::-;20448:4;17647:7;;;;;;;;;;;17646:8;17638:17;;;;;;20472:25;20487:2;20491:5;20472:14;:25::i;:::-;20465:32;;20373:132;;;;:::o;14621:109::-;14677:4;14701:21;14714:7;14701:8;:12;;:21;;;;:::i;:::-;14694:28;;14621:109;;;:::o;6161:131::-;6233:7;6260:8;:15;6269:5;6260:15;;;;;;;;;;;;;;;:24;6276:7;6260:24;;;;;;;;;;;;;;;;6253:31;;6161:131;;;;:::o;7250:244::-;7315:4;7359:1;7340:21;;:7;:21;;;;7332:30;;;;;;7407:5;7375:8;:20;7384:10;7375:20;;;;;;;;;;;;;;;:29;7396:7;7375:29;;;;;;;;;;;;;;;:37;;;;7449:7;7428:36;;7437:10;7428:36;;;7458:5;7428:36;;;;;;;;;;;;;;;;;;7482:4;7475:11;;7250:244;;;;:::o;7967:299::-;8046:4;8092:37;8123:5;8092:8;:14;8101:4;8092:14;;;;;;;;;;;;;;;:26;8107:10;8092:26;;;;;;;;;;;;;;;;:30;;:37;;;;:::i;:::-;8063:8;:14;8072:4;8063:14;;;;;;;;;;;;;;;:26;8078:10;8063:26;;;;;;;;;;;;;;;:66;;;;8140:26;8150:4;8156:2;8160:5;8140:9;:26::i;:::-;8197:10;8182:54;;8191:4;8182:54;;;8209:8;:14;8218:4;8209:14;;;;;;;;;;;;;;;:26;8224:10;8209:26;;;;;;;;;;;;;;;;8182:54;;;;;;;;;;;;;;;;;;8254:4;8247:11;;7967:299;;;;;:::o;8781:323::-;8861:4;8905:1;8886:21;;:7;:21;;;;8878:30;;;;;;8953:45;8987:10;8953:8;:20;8962:10;8953:20;;;;;;;;;;;;;;;:29;8974:7;8953:29;;;;;;;;;;;;;;;;:33;;:45;;;;:::i;:::-;8921:8;:20;8930:10;8921:20;;;;;;;;;;;;;;;:29;8942:7;8921:29;;;;;;;;;;;;;;;:77;;;;9035:7;9014:60;;9023:10;9014:60;;;9044:8;:20;9053:10;9044:20;;;;;;;;;;;;;;;:29;9065:7;9044:29;;;;;;;;;;;;;;;;9014:60;;;;;;;;;;;;;;;;;;9092:4;9085:11;;8781:323;;;;:::o;20128:194::-;20206:1;20199:4;;:8;20195:82;;;20260:4;;20232:24;20250:5;20232:13;:11;:13::i;:::-;:17;;:24;;;;:::i;:::-;:32;;20224:41;;;;;;20195:82;20287:27;20299:7;20308:5;20287:11;:27::i;:::-;20128:194;;:::o;11296:269::-;11390:1;11371:21;;:7;:21;;;;11363:30;;;;;;11421:23;11438:5;11421:12;;:16;;:23;;;;:::i;:::-;11406:12;:38;;;;11476:29;11499:5;11476:9;:18;11486:7;11476:18;;;;;;;;;;;;;;;;:22;;:29;;;;:::i;:::-;11455:9;:18;11465:7;11455:18;;;;;;;;;;;;;;;:50;;;;11547:1;11521:36;;11530:7;11521:36;;;11551:5;11521:36;;;;;;;;;;;;;;;;;;11296:269;;:::o;14086:165::-;14158:4;14202:1;14183:21;;:7;:21;;;;14175:30;;;;;;14223:4;:11;;:20;14235:7;14223:20;;;;;;;;;;;;;;;;;;;;;;;;;14216:27;;14086:165;;;;:::o;16828:130::-;16888:24;16904:7;16888:8;:15;;:24;;;;:::i;:::-;16942:7;16928:22;;;;;;;;;;;;16828:130;:::o;11964:259::-;12067:40;12101:5;12067:8;:17;12076:7;12067:17;;;;;;;;;;;;;;;:29;12085:10;12067:29;;;;;;;;;;;;;;;;:33;;:40;;;;:::i;:::-;12035:8;:17;12044:7;12035:17;;;;;;;;;;;;;;;:29;12053:10;12035:29;;;;;;;;;;;;;;;:72;;;;12118:21;12124:7;12133:5;12118;:21::i;:::-;12173:10;12155:60;;12164:7;12155:60;;;12185:8;:17;12194:7;12185:17;;;;;;;;;;;;;;;:29;12203:10;12185:29;;;;;;;;;;;;;;;;12155:60;;;;;;;;;;;;;;;;;;11964:259;;:::o;16698:122::-;16755:21;16768:7;16755:8;:12;;:21;;;;:::i;:::-;16804:7;16792:20;;;;;;;;;;;;16698:122;:::o;14923:::-;14980:21;14993:7;14980:8;:12;;:21;;;;:::i;:::-;15029:7;15017:20;;;;;;;;;;;;14923:122;:::o;15053:130::-;15113:24;15129:7;15113:8;:15;;:24;;;;:::i;:::-;15167:7;15153:22;;;;;;;;;;;;15053:130;:::o;9624:333::-;9709:4;9753:1;9734:21;;:7;:21;;;;9726:30;;;;;;9801:50;9835:15;9801:8;:20;9810:10;9801:20;;;;;;;;;;;;;;;:29;9822:7;9801:29;;;;;;;;;;;;;;;;:33;;:50;;;;:::i;:::-;9769:8;:20;9778:10;9769:20;;;;;;;;;;;;;;;:29;9790:7;9769:29;;;;;;;;;;;;;;;:82;;;;9888:7;9867:60;;9876:10;9867:60;;;9897:8;:20;9906:10;9897:20;;;;;;;;;;;;;;;:29;9918:7;9897:29;;;;;;;;;;;;;;;;9867:60;;;;;;;;;;;;;;;;;;9945:4;9938:11;;9624:333;;;;:::o;6463:140::-;6524:4;6541:32;6551:10;6563:2;6567:5;6541:9;:32::i;:::-;6591:4;6584:11;;6463:140;;;;:::o;2449:150::-;2507:7;2540:1;2535;:6;;2527:15;;;;;;2553:9;2569:1;2565;:5;2553:17;;2590:1;2583:8;;;2449:150;;;;:::o;10179:262::-;10281:1;10267:16;;:2;:16;;;;10259:25;;;;;;10315:26;10335:5;10315:9;:15;10325:4;10315:15;;;;;;;;;;;;;;;;:19;;:26;;;;:::i;:::-;10297:9;:15;10307:4;10297:15;;;;;;;;;;;;;;;:44;;;;10368:24;10386:5;10368:9;:13;10378:2;10368:13;;;;;;;;;;;;;;;;:17;;:24;;;;:::i;:::-;10352:9;:13;10362:2;10352:13;;;;;;;;;;;;;;;:40;;;;10423:2;10408:25;;10417:4;10408:25;;;10427:5;10408:25;;;;;;;;;;;;;;;;;;10179:262;;;:::o;2952:150::-;3010:7;3030:9;3046:1;3042;:5;3030:17;;3071:1;3066;:6;;3058:15;;;;;;3093:1;3086:8;;;2952:150;;;;:::o;10793:269::-;10887:1;10868:21;;:7;:21;;;;10860:30;;;;;;10918:23;10935:5;10918:12;;:16;;:23;;;;:::i;:::-;10903:12;:38;;;;10973:29;10996:5;10973:9;:18;10983:7;10973:18;;;;;;;;;;;;;;;;:22;;:29;;;;:::i;:::-;10952:9;:18;10962:7;10952:18;;;;;;;;;;;;;;;:50;;;;11039:7;11018:36;;11035:1;11018:36;;;11048:5;11018:36;;;;;;;;;;;;;;;;;;10793:269;;:::o;13803:189::-;13902:1;13883:21;;:7;:21;;;;13875:30;;;;;;13924:18;13928:4;13934:7;13924:3;:18::i;:::-;13916:27;;;;;;13979:5;13956:4;:11;;:20;13968:7;13956:20;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;13803:189;;:::o;13538:186::-;13634:1;13615:21;;:7;:21;;;;13607:30;;;;;;13657:18;13661:4;13667:7;13657:3;:18::i;:::-;13656:19;13648:28;;;;;;13712:4;13689;:11;;:20;13701:7;13689:20;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;13538:186;;:::o

Swarm Source

bzzr://848a6fa410baa57e55049401a8a434236ad9f06ed1bf3911a9a1823a391f8e62
Block Transaction Gas Used Reward
Age Block Fee Address BC Fee Address Voting Power Jailed Incoming
Block Uncle Number Difficulty Gas Used Reward
Loading
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.