ETH Price: $3,593.33 (+4.07%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Transfer98004522020-04-03 17:40:101736 days ago1585935610IN
0x339Da9e0...7e6315545
0 ETH0.0017748330
Transfer97621682020-03-28 20:29:341742 days ago1585427374IN
0x339Da9e0...7e6315545
0 ETH0.0017755530
Transfer97010252020-03-19 8:28:001751 days ago1584606480IN
0x339Da9e0...7e6315545
0 ETH0.0029592550
Transfer95882972020-03-02 0:02:091769 days ago1583107329IN
0x339Da9e0...7e6315545
0 ETH0.0004416110
Transfer93097512020-01-19 5:00:471812 days ago1579410047IN
0x339Da9e0...7e6315545
0 ETH0.000132483
Transfer92678522020-01-12 18:51:131818 days ago1578855073IN
0x339Da9e0...7e6315545
0 ETH0.000044141
Transfer91674712019-12-26 20:44:221835 days ago1577393062IN
0x339Da9e0...7e6315545
0 ETH0.0012423821
Transfer90086442019-11-27 7:31:511864 days ago1574839911IN
0x339Da9e0...7e6315545
0 ETH0.0011858421
Transfer89715412019-11-21 1:08:251871 days ago1574298505IN
0x339Da9e0...7e6315545
0 ETH0.000270226.52644798
Transfer89383822019-11-15 12:19:291876 days ago1573820369IN
0x339Da9e0...7e6315545
0 ETH0.0008721921
Transfer86766842019-10-04 16:14:471918 days ago1570205687IN
0x339Da9e0...7e6315545
0 ETH0.000237649
Transfer86533842019-10-01 0:48:531922 days ago1569890933IN
0x339Da9e0...7e6315545
0 ETH0.0007464418
Transfer84202392019-08-25 15:42:361958 days ago1566747756IN
0x339Da9e0...7e6315545
0 ETH0.000176994.28125
Transfer84201322019-08-25 15:21:011958 days ago1566746461IN
0x339Da9e0...7e6315545
0 ETH0.000161982.875
Transfer84186732019-08-25 9:53:211958 days ago1566726801IN
0x339Da9e0...7e6315545
0 ETH0.000109161.9375
Transfer84180652019-08-25 7:38:471958 days ago1566718727IN
0x339Da9e0...7e6315545
0 ETH0.000135572.40625
Transfer84179052019-08-25 7:07:391958 days ago1566716859IN
0x339Da9e0...7e6315545
0 ETH0.000135572.40625
Transfer84178652019-08-25 6:59:061958 days ago1566716346IN
0x339Da9e0...7e6315545
0 ETH0.000135572.40625
Approve84085592019-08-23 19:59:581960 days ago1566590398IN
0x339Da9e0...7e6315545
0 ETH0.000096893
Approve84085382019-08-23 19:57:121960 days ago1566590232IN
0x339Da9e0...7e6315545
0 ETH0.000141893
Approve84085312019-08-23 19:55:331960 days ago1566590133IN
0x339Da9e0...7e6315545
0 ETH0.000045743
Approve84084912019-08-23 19:42:521960 days ago1566589372IN
0x339Da9e0...7e6315545
0 ETH0.000425679
Transfer84054942019-08-23 8:33:561960 days ago1566549236IN
0x339Da9e0...7e6315545
0 ETH0.000869521
Transfer84053882019-08-23 8:09:521960 days ago1566547792IN
0x339Da9e0...7e6315545
0 ETH0.000554521
Transfer84053782019-08-23 8:07:441960 days ago1566547664IN
0x339Da9e0...7e6315545
0 ETH0.000451248
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
ZENI

Compiler Version
v0.5.2+commit.1df8f40c

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2019-05-11
*/

pragma solidity ^0.5.2;

/**
 * @title SafeMath
 * @dev Unsigned math operations with safety checks that revert on error
 */
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;
    }
}

/**
 * @title Ownable
 * @dev The Ownable contract has an owner address, and provides basic authorization
 *      control functions, this simplifies the implementation of "user permissions".
 */
contract Ownable {
    address public owner;

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

    /**
     * @dev The Ownable constructor sets the original `owner` of the contract to the
     *      sender account.
     */
    constructor() public {
        owner = msg.sender;
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        require(msg.sender == owner);
        _;
    }

    /**
     * @dev Allows the current owner to transfer control of the contract to a newOwner.
     * @param newOwner The address to transfer ownership to.
     */
    function transferOwnership(address newOwner) onlyOwner public {
        require(newOwner != address(0));
        emit OwnershipTransferred(owner, newOwner);
        owner = newOwner;
    }
}

/**
 * @title ERC223
 * @dev ERC223 contract interface with ERC20 functions and events
 *      Fully backward compatible with ERC20
 *      Recommended implementation used at https://github.com/Dexaran/ERC223-token-standard/tree/Recommended
 */
contract ERC223 {
    using SafeMath for uint256;

    // ERC223 and ERC20 functions and events
    function balanceOf(address who) public view returns (uint256);
    function totalSupply() public view returns (uint256);
    function transfer(address to, uint value) public returns (bool);
    function transfer(address to, uint value, bytes memory data) public returns (bool);
    event Transfer(address indexed from, address indexed to, uint value, bytes indexed data);

    // ERC223 functions
    function name() public view returns (string memory);
    function symbol() public view returns (string memory);
    function decimals() public view returns (uint8);

    // ERC20 functions and events
    function transferFrom(address from, address to, uint256 value) public returns (bool);
    function approve(address spender, uint256 value) public returns (bool);
    function allowance(address owner, address spender) public view returns (uint256);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint value);
}

/**
 * @title ContractReceiver
 * @dev Contract that is working with ERC223 tokens
 */
contract ContractReceiver {
    /**
    * @dev Standard ERC223 function that will handle incoming token transfers.
    *
    * @param _from  Token sender address.
    * @param _value Amount of tokens.
    * @param _data  Transaction metadata.
    */
    function tokenFallback(address _from, uint _value, bytes memory _data) public;
}

/**
 * @title ZENI
 * @author ZENI
 * @dev ZENI is an ERC223 Token with ERC20 functions and events
 *      Fully backward compatible with ERC20
 */
contract ZENI is ERC223, Ownable {
    using SafeMath for uint256;

    string private _name = "ZENI";
    string private _symbol = "ZENI";
    uint8 private _decimals = 8;
    uint256 private _initialSupply = 60e9 * 1e8;

    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowed;
    uint private _totalSupply;

    bool public mintingFinished = false;
    mapping (address => bool) public frozenAccount;
    mapping (address => uint256) public unlockUnixTime;

    event FrozenFunds(address indexed target, bool frozen);
    event LockedFunds(address indexed target, uint256 locked);
    event Burn(address indexed from, uint256 amount);
    event Mint(address indexed to, uint256 amount);
    event MintFinished();

    /**
     * @dev Constructor is called only once and can not be called again
     */
    constructor() public {
        _totalSupply = _initialSupply;
        _balances[msg.sender] = _totalSupply;
    }


    function name() public view returns (string memory) {
        return _name;
    }

    function symbol() public view returns (string memory) {
        return _symbol;
    }

    function decimals() public view returns (uint8) {
        return _decimals;
    }

    function totalSupply() public view returns (uint256) {
        return _totalSupply;
    }

    function balanceOf(address _owner) public view returns (uint256) {
        return _balances[_owner];
    }

    /**
     * @dev Prevent targets from sending or receiving tokens
     * @param targets Addresses to be frozen
     * @param isFrozen either to freeze it or not
     */
    function freezeAccounts(address[] memory targets, bool isFrozen) public onlyOwner {
        require(targets.length > 0);

        for (uint j = 0; j < targets.length; j++) {
            require(targets[j] != address(0));
            frozenAccount[targets[j]] = isFrozen;
            emit FrozenFunds(targets[j], isFrozen);
        }
    }

    /**
     * @dev Prevent targets from sending or receiving tokens by setting Unix times
     * @param targets Addresses to be locked funds
     * @param unixTimes Unix times when locking up will be finished
     */
    function lockupAccounts(address[] memory targets, uint[] memory unixTimes) public onlyOwner {
        require(
            targets.length > 0 &&
            targets.length == unixTimes.length
        );

        for(uint i = 0; i < targets.length; i++){
            require(unlockUnixTime[targets[i]] < unixTimes[i]);
            unlockUnixTime[targets[i]] = unixTimes[i];
            emit LockedFunds(targets[i], unixTimes[i]);
        }
    }

    // Function that is called when a user or another contract wants to transfer funds .
    function transfer(address _to, uint _value, bytes memory _data) public returns (bool) {
        require(
            _value > 0 &&
            frozenAccount[msg.sender] == false &&
            frozenAccount[_to] == false &&
            now > unlockUnixTime[msg.sender] &&
            now > unlockUnixTime[_to]
        );

        if(isContract(_to)) {
            return transferToContract(_to, _value, _data);
        }
        else {
            return transferToAddress(_to, _value, _data);
        }
    }

    /**
     * @dev Standard function transfer similar to ERC20 transfer with no _data
     *      Added due to backwards compatibility reasons
     */
    function transfer(address _to, uint _value) public returns (bool) {
        require(
            _value > 0 &&
            frozenAccount[msg.sender] == false &&
            frozenAccount[_to] == false &&
            now > unlockUnixTime[msg.sender] &&
            now > unlockUnixTime[_to]
        );

        bytes memory empty;
        if (isContract(_to)) {
            return transferToContract(_to, _value, empty);
        } else {
            return transferToAddress(_to, _value, empty);
        }
    }

    // assemble the given address bytecode. If bytecode exists then the _addr is a contract.
    function isContract(address _addr) private view returns (bool) {
        uint length;
        assembly {
            //retrieve the size of the code on target address, this needs assembly
            length := extcodesize(_addr)
        }
        return (length > 0);
    }

    // function that is called when transaction target is an address
    function transferToAddress(address _to, uint _value, bytes memory _data) private returns (bool) {
        require(balanceOf(msg.sender) >= _value);
        _balances[msg.sender] = _balances[msg.sender].sub(_value);
        _balances[_to] = _balances[_to].add(_value);
        emit Transfer(msg.sender, _to, _value, _data);
        emit Transfer(msg.sender, _to, _value);
        return true;
    }

    // function that is called when transaction target is a contract
    function transferToContract(address _to, uint _value, bytes memory _data) private returns (bool) {
        require(balanceOf(msg.sender) >= _value);
        ContractReceiver receiver = ContractReceiver(_to);
        receiver.tokenFallback(msg.sender, _value, _data);
        emit Transfer(msg.sender, _to, _value, _data);
        emit Transfer(msg.sender, _to, _value);
        return true;
    }

    /**
     * @dev Transfer tokens from one address to another
     *      Added due to backwards compatibility with ERC20
     * @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) {
        require(
            _to != address(0) &&
            _value > 0 &&
            _balances[_from] >= _value &&
            _allowed[_from][msg.sender] >= _value &&
            frozenAccount[_from] == false &&
            frozenAccount[_to] == false &&
            now > unlockUnixTime[_from] &&
            now > unlockUnixTime[_to]
        );

        _balances[_from] = _balances[_from].sub(_value);
        _balances[_to] = _balances[_to].add(_value);
        _allowed[_from][msg.sender] = _allowed[_from][msg.sender].sub(_value);
        emit Transfer(_from, _to, _value);
        return true;
    }

    /**
     * @dev Allows _spender to spend no more than _value tokens in your behalf
     *      Added due to backwards compatibility with ERC20
     * @param _spender The address authorized to spend
     * @param _value the max amount they can spend
     */
    function approve(address _spender, uint256 _value) public returns (bool) {
        _allowed[msg.sender][_spender] = _value;
        emit Approval(msg.sender, _spender, _value);
        return true;
    }

    /**
     * @dev Function to check the amount of tokens that an owner allowed to a spender
     *      Added due to backwards compatibility with ERC20
     * @param _owner address The address which owns the funds
     * @param _spender address The address which will spend the funds
     */
    function allowance(address _owner, address _spender) public view returns (uint256) {
        return _allowed[_owner][_spender];
    }

    /**
     * @dev Burns a specific amount of tokens.
     * @param _from The address that will burn the tokens.
     * @param _unitAmount The amount of token to be burned.
     */
    function burn(address _from, uint256 _unitAmount) public onlyOwner {
        require(
            _unitAmount > 0 &&
            balanceOf(_from) >= _unitAmount
        );

        _balances[_from] = _balances[_from].sub(_unitAmount);
        _totalSupply = _totalSupply.sub(_unitAmount);
        emit Burn(_from, _unitAmount);
    }


    modifier canMint() {
        require(!mintingFinished);
        _;
    }

    /**
     * @dev Function to mint tokens
     * @param _to The address that will receive the minted tokens.
     * @param _unitAmount The amount of tokens to mint.
     */
    function mint(address _to, uint256 _unitAmount) public onlyOwner canMint returns (bool) {
        require(_unitAmount > 0);

        _totalSupply = _totalSupply.add(_unitAmount);
        _balances[_to] = _balances[_to].add(_unitAmount);
        emit Mint(_to, _unitAmount);
        emit Transfer(address(0), _to, _unitAmount);
        return true;
    }

    /**
     * @dev Function to stop minting new tokens.
     */
    function finishMinting() public onlyOwner canMint returns (bool) {
        mintingFinished = true;
        emit MintFinished();
        return true;
    }

    /**
     * @dev Function to distribute tokens to the list of addresses by the provided amount
     */
    function distributeAirdrop(address[] memory addresses, uint256 amount) public returns (bool) {
        require(
            amount > 0 &&
            addresses.length > 0 &&
            frozenAccount[msg.sender] == false &&
            now > unlockUnixTime[msg.sender]
        );

        uint256 mulAmount = amount.mul(1e8);
        uint256 totalAmount = mulAmount.mul(addresses.length);
        require(_balances[msg.sender] >= totalAmount);

        for (uint i = 0; i < addresses.length; i++) {
            require(
                addresses[i] != address(0) &&
                frozenAccount[addresses[i]] == false &&
                now > unlockUnixTime[addresses[i]]
            );

            _balances[addresses[i]] = _balances[addresses[i]].add(mulAmount);
            emit Transfer(msg.sender, addresses[i], mulAmount);
        }
        _balances[msg.sender] = _balances[msg.sender].sub(totalAmount);
        return true;
    }

    function distributeAirdrop(address[] memory addresses, uint[] memory amounts) public returns (bool) {
        require(
            addresses.length > 0 &&
            addresses.length == amounts.length &&
            frozenAccount[msg.sender] == false &&
            now > unlockUnixTime[msg.sender]
        );

        uint256 totalAmount = 0;

        for(uint i = 0; i < addresses.length; i++){
            require(
                amounts[i] > 0 &&
                addresses[i] != address(0) &&
                frozenAccount[addresses[i]] == false &&
                now > unlockUnixTime[addresses[i]]
            );

            amounts[i] = amounts[i].mul(1e8);
            totalAmount = totalAmount.add(amounts[i]);
        }
        require(_balances[msg.sender] >= totalAmount);

        for (uint j = 0; j < addresses.length; j++) {
            _balances[addresses[j]] = _balances[addresses[j]].add(amounts[j]);
            emit Transfer(msg.sender, addresses[j], amounts[j]);
        }
        _balances[msg.sender] = _balances[msg.sender].sub(totalAmount);
        return true;
    }

    /**
     * @dev Function to collect tokens from the list of addresses
     */
    function collectTokens(address[] memory addresses, uint[] memory amounts) public onlyOwner returns (bool) {
        require(
            addresses.length > 0 &&
            addresses.length == amounts.length
        );

        uint256 totalAmount = 0;

        for (uint i = 0; i < addresses.length; i++) {
            require(
                amounts[i] > 0 &&
                addresses[i] != address(0) &&
                frozenAccount[addresses[i]] == false &&
                now > unlockUnixTime[addresses[i]]
            );

            amounts[i] = amounts[i].mul(1e8);
            require(_balances[addresses[i]] >= amounts[i]);
            _balances[addresses[i]] = _balances[addresses[i]].sub(amounts[i]);
            totalAmount = totalAmount.add(amounts[i]);
            emit Transfer(addresses[i], msg.sender, amounts[i]);
        }
        _balances[msg.sender] = _balances[msg.sender].add(totalAmount);
        return true;
    }

    /**
     * @dev fallback function
     */
    function() external {
        revert();
    }

    /**
     * @dev Reject all ERC223 compatible tokens
     * @param from_ address The address that is transferring the tokens
     * @param value_ uint256 the amount of the specified token
     * @param data_ Bytes The data passed from the caller.
     */
    function tokenFallback(address from_, uint256 value_, bytes memory data_) public pure {
        from_;
        value_;
        data_;
        revert();
    }
}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[],"name":"mintingFinished","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"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":false,"inputs":[{"name":"_to","type":"address"},{"name":"_unitAmount","type":"uint256"}],"name":"mint","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"targets","type":"address[]"},{"name":"unixTimes","type":"uint256[]"}],"name":"lockupAccounts","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":"finishMinting","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addresses","type":"address[]"},{"name":"amount","type":"uint256"}],"name":"distributeAirdrop","outputs":[{"name":"","type":"bool"}],"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":"_from","type":"address"},{"name":"_unitAmount","type":"uint256"}],"name":"burn","outputs":[],"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":"","type":"address"}],"name":"frozenAccount","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"},{"name":"_data","type":"bytes"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"from_","type":"address"},{"name":"value_","type":"uint256"},{"name":"data_","type":"bytes"}],"name":"tokenFallback","outputs":[],"payable":false,"stateMutability":"pure","type":"function"},{"constant":false,"inputs":[{"name":"targets","type":"address[]"},{"name":"isFrozen","type":"bool"}],"name":"freezeAccounts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"unlockUnixTime","outputs":[{"name":"","type":"uint256"}],"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":"addresses","type":"address[]"},{"name":"amounts","type":"uint256[]"}],"name":"distributeAirdrop","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addresses","type":"address[]"},{"name":"amounts","type":"uint256[]"}],"name":"collectTokens","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":false,"stateMutability":"nonpayable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"target","type":"address"},{"indexed":false,"name":"frozen","type":"bool"}],"name":"FrozenFunds","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"target","type":"address"},{"indexed":false,"name":"locked","type":"uint256"}],"name":"LockedFunds","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Burn","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Mint","type":"event"},{"anonymous":false,"inputs":[],"name":"MintFinished","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"},{"indexed":true,"name":"data","type":"bytes"}],"name":"Transfer","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"}]

60806040526040805190810160405280600481526020017f5a454e4900000000000000000000000000000000000000000000000000000000815250600190805190602001906200005192919062000186565b506040805190810160405280600481526020017f5a454e4900000000000000000000000000000000000000000000000000000000815250600290805190602001906200009f92919062000186565b506008600360006101000a81548160ff021916908360ff1602179055506753444835ec5800006004556000600860006101000a81548160ff021916908315150217905550348015620000f057600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600454600781905550600754600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555062000235565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620001c957805160ff1916838001178555620001fa565b82800160010185558215620001fa579182015b82811115620001f9578251825591602001919060010190620001dc565b5b5090506200020991906200020d565b5090565b6200023291905b808211156200022e57600081600090555060010162000214565b5090565b90565b6137f380620002456000396000f3fe608060405234801561001057600080fd5b5060043610610175576000357c01000000000000000000000000000000000000000000000000000000009004806395d89b41116100e0578063c341b9f611610099578063c341b9f614610a12578063cbbe974b14610ad6578063dd62ed3e14610b2e578063dd92459414610ba6578063f0dc417114610d0a578063f2fde38b14610e6e57610175565b806395d89b411461069d5780639dc29fac14610720578063a9059cbb1461076e578063b414d4b6146107d4578063be45fd6214610830578063c0ee0b8a1461092d57610175565b806340c10f191161013257806340c10f191461034d57806364ddc605146103b357806370a08231146104ff5780637d64bcb4146105575780638da5cb5b1461057957806394594625146105c357610175565b806305d2035b1461017a57806306fdde031461019c578063095ea7b31461021f57806318160ddd1461028557806323b872dd146102a3578063313ce56714610329575b600080fd5b610182610eb2565b604051808215151515815260200191505060405180910390f35b6101a4610ec5565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101e45780820151818401526020810190506101c9565b50505050905090810190601f1680156102115780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61026b6004803603604081101561023557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610f67565b604051808215151515815260200191505060405180910390f35b61028d611059565b6040518082815260200191505060405180910390f35b61030f600480360360608110156102b957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611063565b604051808215151515815260200191505060405180910390f35b610331611574565b604051808260ff1660ff16815260200191505060405180910390f35b6103996004803603604081101561036357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061158b565b604051808215151515815260200191505060405180910390f35b6104fd600480360360408110156103c957600080fd5b81019080803590602001906401000000008111156103e657600080fd5b8201836020820111156103f857600080fd5b8035906020019184602083028401116401000000008311171561041a57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f8201169050808301925050505050505091929192908035906020019064010000000081111561047a57600080fd5b82018360208201111561048c57600080fd5b803590602001918460208302840111640100000000831117156104ae57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050509192919290505050611781565b005b6105416004803603602081101561051557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611983565b6040518082815260200191505060405180910390f35b61055f6119cc565b604051808215151515815260200191505060405180910390f35b610581611a93565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610683600480360360408110156105d957600080fd5b81019080803590602001906401000000008111156105f657600080fd5b82018360208201111561060857600080fd5b8035906020019184602083028401116401000000008311171561062a57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f82011690508083019250505050505050919291929080359060200190929190505050611ab8565b604051808215151515815260200191505060405180910390f35b6106a5611f20565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156106e55780820151818401526020810190506106ca565b50505050905090810190601f1680156107125780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61076c6004803603604081101561073657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611fc2565b005b6107ba6004803603604081101561078457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612142565b604051808215151515815260200191505060405180910390f35b610816600480360360208110156107ea57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506122d6565b604051808215151515815260200191505060405180910390f35b6109136004803603606081101561084657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019064010000000081111561088d57600080fd5b82018360208201111561089f57600080fd5b803590602001918460018302840111640100000000831117156108c157600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192905050506122f6565b604051808215151515815260200191505060405180910390f35b610a106004803603606081101561094357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019064010000000081111561098a57600080fd5b82018360208201111561099c57600080fd5b803590602001918460018302840111640100000000831117156109be57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050612487565b005b610ad460048036036040811015610a2857600080fd5b8101908080359060200190640100000000811115610a4557600080fd5b820183602082011115610a5757600080fd5b80359060200191846020830284011164010000000083111715610a7957600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f82011690508083019250505050505050919291929080351515906020019092919050505061248c565b005b610b1860048036036020811015610aec57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612642565b6040518082815260200191505060405180910390f35b610b9060048036036040811015610b4457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061265a565b6040518082815260200191505060405180910390f35b610cf060048036036040811015610bbc57600080fd5b8101908080359060200190640100000000811115610bd957600080fd5b820183602082011115610beb57600080fd5b80359060200191846020830284011164010000000083111715610c0d57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f82011690508083019250505050505050919291929080359060200190640100000000811115610c6d57600080fd5b820183602082011115610c7f57600080fd5b80359060200191846020830284011164010000000083111715610ca157600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f8201169050808301925050505050505091929192905050506126e1565b604051808215151515815260200191505060405180910390f35b610e5460048036036040811015610d2057600080fd5b8101908080359060200190640100000000811115610d3d57600080fd5b820183602082011115610d4f57600080fd5b80359060200191846020830284011164010000000083111715610d7157600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f82011690508083019250505050505050919291929080359060200190640100000000811115610dd157600080fd5b820183602082011115610de357600080fd5b80359060200191846020830284011164010000000083111715610e0557600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050509192919290505050612bff565b604051808215151515815260200191505060405180910390f35b610eb060048036036020811015610e8457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506130e4565b005b600860009054906101000a900460ff1681565b606060018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610f5d5780601f10610f3257610100808354040283529160200191610f5d565b820191906000526020600020905b815481529060010190602001808311610f4057829003601f168201915b5050505050905090565b600081600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000600754905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156110a15750600082115b80156110ec575081600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b8015611174575081600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b80156111d0575060001515600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515145b801561122c575060001515600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515145b80156112765750600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205442115b80156112c05750600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205442115b15156112cb57600080fd5b61131d82600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461323990919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506113b282600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461325b90919063ffffffff16565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061148482600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461323990919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b6000600360009054906101000a900460ff16905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156115e857600080fd5b600860009054906101000a900460ff1615151561160457600080fd5b60008211151561161357600080fd5b6116288260075461325b90919063ffffffff16565b60078190555061168082600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461325b90919063ffffffff16565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885836040518082815260200191505060405180910390a28273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156117dc57600080fd5b600082511180156117ee575080518251145b15156117f957600080fd5b60008090505b825181101561197e57818181518110151561181657fe5b90602001906020020151600a6000858481518110151561183257fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410151561188357600080fd5b818181518110151561189157fe5b90602001906020020151600a600085848151811015156118ad57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550828181518110151561190357fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff167f1bd6fb9fa2c39ce5d0d2afa1eaba998963eb5f553fd862c94f131aa9e35c1577838381518110151561195257fe5b906020019060200201516040518082815260200191505060405180910390a280806001019150506117ff565b505050565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611a2957600080fd5b600860009054906101000a900460ff16151515611a4557600080fd5b6001600860006101000a81548160ff0219169083151502179055507fae5184fba832cb2b1f702aca6117b8d265eaf03ad33eb133f19dde0f5920fa0860405160405180910390a16001905090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008082118015611aca575060008351115b8015611b26575060001515600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515145b8015611b705750600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205442115b1515611b7b57600080fd5b6000611b946305f5e1008461327c90919063ffffffff16565b90506000611bac85518361327c90919063ffffffff16565b905080600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410151515611bfc57600080fd5b60008090505b8551811015611e7e57600073ffffffffffffffffffffffffffffffffffffffff168682815181101515611c3157fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1614158015611cc6575060001515600960008884815181101515611c7057fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515145b8015611d275750600a60008783815181101515611cdf57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205442115b1515611d3257600080fd5b611d9b83600560008985815181101515611d4857fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461325b90919063ffffffff16565b600560008884815181101515611dad57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508581815181101515611e0357fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a38080600101915050611c02565b50611ed181600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461323990919063ffffffff16565b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060019250505092915050565b606060028054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611fb85780601f10611f8d57610100808354040283529160200191611fb8565b820191906000526020600020905b815481529060010190602001808311611f9b57829003601f168201915b5050505050905090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561201d57600080fd5b60008111801561203557508061203283611983565b10155b151561204057600080fd5b61209281600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461323990919063ffffffff16565b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506120ea8160075461323990919063ffffffff16565b6007819055508173ffffffffffffffffffffffffffffffffffffffff167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5826040518082815260200191505060405180910390a25050565b600080821180156121a3575060001515600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515145b80156121ff575060001515600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515145b80156122495750600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205442115b80156122935750600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205442115b151561229e57600080fd5b60606122a9846132ba565b156122c1576122b98484836132cd565b9150506122d0565b6122cc84848361354c565b9150505b92915050565b60096020528060005260406000206000915054906101000a900460ff1681565b60008083118015612357575060001515600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515145b80156123b3575060001515600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515145b80156123fd5750600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205442115b80156124475750600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205442115b151561245257600080fd5b61245b846132ba565b156124725761246b8484846132cd565b9050612480565b61247d84848461354c565b90505b9392505050565b600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156124e757600080fd5b600082511115156124f757600080fd5b60008090505b825181101561263d57600073ffffffffffffffffffffffffffffffffffffffff16838281518110151561252c57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff161415151561255957600080fd5b8160096000858481518110151561256c57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555082818151811015156125d557fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff167f48335238b4855f35377ed80f164e8c6f3c366e54ac00b96a6402d4a9814a03a583604051808215151515815260200191505060405180910390a280806001019150506124fd565b505050565b600a6020528060005260406000206000915090505481565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60008083511180156126f4575081518351145b8015612750575060001515600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515145b801561279a5750600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205442115b15156127a557600080fd5b600080905060008090505b845181101561298657600084828151811015156127c957fe5b906020019060200201511180156128245750600073ffffffffffffffffffffffffffffffffffffffff16858281518110151561280157fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1614155b801561289757506000151560096000878481518110151561284157fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515145b80156128f85750600a600086838151811015156128b057fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205442115b151561290357600080fd5b6129316305f5e100858381518110151561291957fe5b9060200190602002015161327c90919063ffffffff16565b848281518110151561293f57fe5b9060200190602002018181525050612977848281518110151561295e57fe5b906020019060200201518361325b90919063ffffffff16565b915080806001019150506127b0565b5080600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101515156129d557600080fd5b60008090505b8451811015612b5e57612a6484828151811015156129f557fe5b90602001906020020151600560008885815181101515612a1157fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461325b90919063ffffffff16565b600560008784815181101515612a7657fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508481815181101515612acc57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8684815181101515612b3257fe5b906020019060200201516040518082815260200191505060405180910390a380806001019150506129db565b50612bb181600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461323990919063ffffffff16565b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600191505092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612c5c57600080fd5b60008351118015612c6e575081518351145b1515612c7957600080fd5b600080905060008090505b84518110156130435760008482815181101515612c9d57fe5b90602001906020020151118015612cf85750600073ffffffffffffffffffffffffffffffffffffffff168582815181101515612cd557fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1614155b8015612d6b575060001515600960008784815181101515612d1557fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515145b8015612dcc5750600a60008683815181101515612d8457fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205442115b1515612dd757600080fd5b612e056305f5e1008583815181101515612ded57fe5b9060200190602002015161327c90919063ffffffff16565b8482815181101515612e1357fe5b90602001906020020181815250508381815181101515612e2f57fe5b90602001906020020151600560008784815181101515612e4b57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410151515612e9d57600080fd5b612f1d8482815181101515612eae57fe5b90602001906020020151600560008885815181101515612eca57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461323990919063ffffffff16565b600560008784815181101515612f2f57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612fa18482815181101515612f8857fe5b906020019060200201518361325b90919063ffffffff16565b91503373ffffffffffffffffffffffffffffffffffffffff168582815181101515612fc857fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef868481518110151561301757fe5b906020019060200201516040518082815260200191505060405180910390a38080600101915050612c84565b5061309681600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461325b90919063ffffffff16565b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600191505092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561313f57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561317b57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600082821115151561324a57600080fd5b600082840390508091505092915050565b600080828401905083811015151561327257600080fd5b8091505092915050565b60008083141561328f57600090506132b4565b600082840290508284828115156132a257fe5b041415156132af57600080fd5b809150505b92915050565b600080823b905060008111915050919050565b6000826132d933611983565b101515156132e657600080fd5b60008490508073ffffffffffffffffffffffffffffffffffffffff1663c0ee0b8a3386866040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b838110156133ad578082015181840152602081019050613392565b50505050905090810190601f1680156133da5780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b1580156133fb57600080fd5b505af115801561340f573d6000803e3d6000fd5b50505050826040518082805190602001908083835b6020831015156134495780518252602082019150602081019050602083039250613424565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390208573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fe19260aff97b920c7df27010903aeb9c8d2be5d310a2c67824cf3f15396e4c16876040518082815260200191505060405180910390a48473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a360019150509392505050565b60008261355833611983565b1015151561356557600080fd5b6135b783600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461323990919063ffffffff16565b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061364c83600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461325b90919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816040518082805190602001908083835b6020831015156136c557805182526020820191506020810190506020830392506136a0565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390208473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fe19260aff97b920c7df27010903aeb9c8d2be5d310a2c67824cf3f15396e4c16866040518082815260200191505060405180910390a48373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a360019050939250505056fea165627a7a723058202a8d3a96f546097ac2414643c2cc281cfd05555ebff16a74eb5240da457e3e0a0029

Deployed Bytecode

0x608060405234801561001057600080fd5b5060043610610175576000357c01000000000000000000000000000000000000000000000000000000009004806395d89b41116100e0578063c341b9f611610099578063c341b9f614610a12578063cbbe974b14610ad6578063dd62ed3e14610b2e578063dd92459414610ba6578063f0dc417114610d0a578063f2fde38b14610e6e57610175565b806395d89b411461069d5780639dc29fac14610720578063a9059cbb1461076e578063b414d4b6146107d4578063be45fd6214610830578063c0ee0b8a1461092d57610175565b806340c10f191161013257806340c10f191461034d57806364ddc605146103b357806370a08231146104ff5780637d64bcb4146105575780638da5cb5b1461057957806394594625146105c357610175565b806305d2035b1461017a57806306fdde031461019c578063095ea7b31461021f57806318160ddd1461028557806323b872dd146102a3578063313ce56714610329575b600080fd5b610182610eb2565b604051808215151515815260200191505060405180910390f35b6101a4610ec5565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101e45780820151818401526020810190506101c9565b50505050905090810190601f1680156102115780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61026b6004803603604081101561023557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610f67565b604051808215151515815260200191505060405180910390f35b61028d611059565b6040518082815260200191505060405180910390f35b61030f600480360360608110156102b957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611063565b604051808215151515815260200191505060405180910390f35b610331611574565b604051808260ff1660ff16815260200191505060405180910390f35b6103996004803603604081101561036357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061158b565b604051808215151515815260200191505060405180910390f35b6104fd600480360360408110156103c957600080fd5b81019080803590602001906401000000008111156103e657600080fd5b8201836020820111156103f857600080fd5b8035906020019184602083028401116401000000008311171561041a57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f8201169050808301925050505050505091929192908035906020019064010000000081111561047a57600080fd5b82018360208201111561048c57600080fd5b803590602001918460208302840111640100000000831117156104ae57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050509192919290505050611781565b005b6105416004803603602081101561051557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611983565b6040518082815260200191505060405180910390f35b61055f6119cc565b604051808215151515815260200191505060405180910390f35b610581611a93565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610683600480360360408110156105d957600080fd5b81019080803590602001906401000000008111156105f657600080fd5b82018360208201111561060857600080fd5b8035906020019184602083028401116401000000008311171561062a57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f82011690508083019250505050505050919291929080359060200190929190505050611ab8565b604051808215151515815260200191505060405180910390f35b6106a5611f20565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156106e55780820151818401526020810190506106ca565b50505050905090810190601f1680156107125780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61076c6004803603604081101561073657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611fc2565b005b6107ba6004803603604081101561078457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612142565b604051808215151515815260200191505060405180910390f35b610816600480360360208110156107ea57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506122d6565b604051808215151515815260200191505060405180910390f35b6109136004803603606081101561084657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019064010000000081111561088d57600080fd5b82018360208201111561089f57600080fd5b803590602001918460018302840111640100000000831117156108c157600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192905050506122f6565b604051808215151515815260200191505060405180910390f35b610a106004803603606081101561094357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019064010000000081111561098a57600080fd5b82018360208201111561099c57600080fd5b803590602001918460018302840111640100000000831117156109be57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050612487565b005b610ad460048036036040811015610a2857600080fd5b8101908080359060200190640100000000811115610a4557600080fd5b820183602082011115610a5757600080fd5b80359060200191846020830284011164010000000083111715610a7957600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f82011690508083019250505050505050919291929080351515906020019092919050505061248c565b005b610b1860048036036020811015610aec57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612642565b6040518082815260200191505060405180910390f35b610b9060048036036040811015610b4457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061265a565b6040518082815260200191505060405180910390f35b610cf060048036036040811015610bbc57600080fd5b8101908080359060200190640100000000811115610bd957600080fd5b820183602082011115610beb57600080fd5b80359060200191846020830284011164010000000083111715610c0d57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f82011690508083019250505050505050919291929080359060200190640100000000811115610c6d57600080fd5b820183602082011115610c7f57600080fd5b80359060200191846020830284011164010000000083111715610ca157600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f8201169050808301925050505050505091929192905050506126e1565b604051808215151515815260200191505060405180910390f35b610e5460048036036040811015610d2057600080fd5b8101908080359060200190640100000000811115610d3d57600080fd5b820183602082011115610d4f57600080fd5b80359060200191846020830284011164010000000083111715610d7157600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f82011690508083019250505050505050919291929080359060200190640100000000811115610dd157600080fd5b820183602082011115610de357600080fd5b80359060200191846020830284011164010000000083111715610e0557600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050509192919290505050612bff565b604051808215151515815260200191505060405180910390f35b610eb060048036036020811015610e8457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506130e4565b005b600860009054906101000a900460ff1681565b606060018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610f5d5780601f10610f3257610100808354040283529160200191610f5d565b820191906000526020600020905b815481529060010190602001808311610f4057829003601f168201915b5050505050905090565b600081600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000600754905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156110a15750600082115b80156110ec575081600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b8015611174575081600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b80156111d0575060001515600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515145b801561122c575060001515600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515145b80156112765750600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205442115b80156112c05750600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205442115b15156112cb57600080fd5b61131d82600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461323990919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506113b282600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461325b90919063ffffffff16565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061148482600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461323990919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b6000600360009054906101000a900460ff16905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156115e857600080fd5b600860009054906101000a900460ff1615151561160457600080fd5b60008211151561161357600080fd5b6116288260075461325b90919063ffffffff16565b60078190555061168082600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461325b90919063ffffffff16565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885836040518082815260200191505060405180910390a28273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156117dc57600080fd5b600082511180156117ee575080518251145b15156117f957600080fd5b60008090505b825181101561197e57818181518110151561181657fe5b90602001906020020151600a6000858481518110151561183257fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410151561188357600080fd5b818181518110151561189157fe5b90602001906020020151600a600085848151811015156118ad57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550828181518110151561190357fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff167f1bd6fb9fa2c39ce5d0d2afa1eaba998963eb5f553fd862c94f131aa9e35c1577838381518110151561195257fe5b906020019060200201516040518082815260200191505060405180910390a280806001019150506117ff565b505050565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611a2957600080fd5b600860009054906101000a900460ff16151515611a4557600080fd5b6001600860006101000a81548160ff0219169083151502179055507fae5184fba832cb2b1f702aca6117b8d265eaf03ad33eb133f19dde0f5920fa0860405160405180910390a16001905090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008082118015611aca575060008351115b8015611b26575060001515600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515145b8015611b705750600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205442115b1515611b7b57600080fd5b6000611b946305f5e1008461327c90919063ffffffff16565b90506000611bac85518361327c90919063ffffffff16565b905080600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410151515611bfc57600080fd5b60008090505b8551811015611e7e57600073ffffffffffffffffffffffffffffffffffffffff168682815181101515611c3157fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1614158015611cc6575060001515600960008884815181101515611c7057fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515145b8015611d275750600a60008783815181101515611cdf57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205442115b1515611d3257600080fd5b611d9b83600560008985815181101515611d4857fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461325b90919063ffffffff16565b600560008884815181101515611dad57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508581815181101515611e0357fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a38080600101915050611c02565b50611ed181600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461323990919063ffffffff16565b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060019250505092915050565b606060028054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611fb85780601f10611f8d57610100808354040283529160200191611fb8565b820191906000526020600020905b815481529060010190602001808311611f9b57829003601f168201915b5050505050905090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561201d57600080fd5b60008111801561203557508061203283611983565b10155b151561204057600080fd5b61209281600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461323990919063ffffffff16565b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506120ea8160075461323990919063ffffffff16565b6007819055508173ffffffffffffffffffffffffffffffffffffffff167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5826040518082815260200191505060405180910390a25050565b600080821180156121a3575060001515600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515145b80156121ff575060001515600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515145b80156122495750600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205442115b80156122935750600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205442115b151561229e57600080fd5b60606122a9846132ba565b156122c1576122b98484836132cd565b9150506122d0565b6122cc84848361354c565b9150505b92915050565b60096020528060005260406000206000915054906101000a900460ff1681565b60008083118015612357575060001515600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515145b80156123b3575060001515600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515145b80156123fd5750600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205442115b80156124475750600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205442115b151561245257600080fd5b61245b846132ba565b156124725761246b8484846132cd565b9050612480565b61247d84848461354c565b90505b9392505050565b600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156124e757600080fd5b600082511115156124f757600080fd5b60008090505b825181101561263d57600073ffffffffffffffffffffffffffffffffffffffff16838281518110151561252c57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff161415151561255957600080fd5b8160096000858481518110151561256c57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555082818151811015156125d557fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff167f48335238b4855f35377ed80f164e8c6f3c366e54ac00b96a6402d4a9814a03a583604051808215151515815260200191505060405180910390a280806001019150506124fd565b505050565b600a6020528060005260406000206000915090505481565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60008083511180156126f4575081518351145b8015612750575060001515600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515145b801561279a5750600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205442115b15156127a557600080fd5b600080905060008090505b845181101561298657600084828151811015156127c957fe5b906020019060200201511180156128245750600073ffffffffffffffffffffffffffffffffffffffff16858281518110151561280157fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1614155b801561289757506000151560096000878481518110151561284157fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515145b80156128f85750600a600086838151811015156128b057fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205442115b151561290357600080fd5b6129316305f5e100858381518110151561291957fe5b9060200190602002015161327c90919063ffffffff16565b848281518110151561293f57fe5b9060200190602002018181525050612977848281518110151561295e57fe5b906020019060200201518361325b90919063ffffffff16565b915080806001019150506127b0565b5080600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101515156129d557600080fd5b60008090505b8451811015612b5e57612a6484828151811015156129f557fe5b90602001906020020151600560008885815181101515612a1157fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461325b90919063ffffffff16565b600560008784815181101515612a7657fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508481815181101515612acc57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8684815181101515612b3257fe5b906020019060200201516040518082815260200191505060405180910390a380806001019150506129db565b50612bb181600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461323990919063ffffffff16565b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600191505092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612c5c57600080fd5b60008351118015612c6e575081518351145b1515612c7957600080fd5b600080905060008090505b84518110156130435760008482815181101515612c9d57fe5b90602001906020020151118015612cf85750600073ffffffffffffffffffffffffffffffffffffffff168582815181101515612cd557fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1614155b8015612d6b575060001515600960008784815181101515612d1557fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515145b8015612dcc5750600a60008683815181101515612d8457fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205442115b1515612dd757600080fd5b612e056305f5e1008583815181101515612ded57fe5b9060200190602002015161327c90919063ffffffff16565b8482815181101515612e1357fe5b90602001906020020181815250508381815181101515612e2f57fe5b90602001906020020151600560008784815181101515612e4b57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410151515612e9d57600080fd5b612f1d8482815181101515612eae57fe5b90602001906020020151600560008885815181101515612eca57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461323990919063ffffffff16565b600560008784815181101515612f2f57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612fa18482815181101515612f8857fe5b906020019060200201518361325b90919063ffffffff16565b91503373ffffffffffffffffffffffffffffffffffffffff168582815181101515612fc857fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef868481518110151561301757fe5b906020019060200201516040518082815260200191505060405180910390a38080600101915050612c84565b5061309681600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461325b90919063ffffffff16565b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600191505092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561313f57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561317b57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600082821115151561324a57600080fd5b600082840390508091505092915050565b600080828401905083811015151561327257600080fd5b8091505092915050565b60008083141561328f57600090506132b4565b600082840290508284828115156132a257fe5b041415156132af57600080fd5b809150505b92915050565b600080823b905060008111915050919050565b6000826132d933611983565b101515156132e657600080fd5b60008490508073ffffffffffffffffffffffffffffffffffffffff1663c0ee0b8a3386866040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b838110156133ad578082015181840152602081019050613392565b50505050905090810190601f1680156133da5780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b1580156133fb57600080fd5b505af115801561340f573d6000803e3d6000fd5b50505050826040518082805190602001908083835b6020831015156134495780518252602082019150602081019050602083039250613424565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390208573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fe19260aff97b920c7df27010903aeb9c8d2be5d310a2c67824cf3f15396e4c16876040518082815260200191505060405180910390a48473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a360019150509392505050565b60008261355833611983565b1015151561356557600080fd5b6135b783600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461323990919063ffffffff16565b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061364c83600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461325b90919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816040518082805190602001908083835b6020831015156136c557805182526020820191506020810190506020830392506136a0565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390208473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fe19260aff97b920c7df27010903aeb9c8d2be5d310a2c67824cf3f15396e4c16866040518082815260200191505060405180910390a48373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a360019050939250505056fea165627a7a723058202a8d3a96f546097ac2414643c2cc281cfd05555ebff16a74eb5240da457e3e0a0029

Deployed Bytecode Sourcemap

4994:12605:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4994:12605:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17146:8;;;5389:35;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;6022:83;;;:::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;6022:83:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11729:207;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;11729:207:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;6299:91;;;:::i;:::-;;;;;;;;;;;;;;;;;;;10737:717;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;10737:717:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;6208:83;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;13189:361;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;13189:361:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;7268:455;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7268:455:0;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;7268:455:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;7268:455:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;7268:455:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;7268:455:0;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;7268:455:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;7268:455:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;7268:455:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;7268:455:0;;;;;;;;;;;;;;;:::i;:::-;;6398:108;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6398:108:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;13626:158;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;2154:20;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;13901:963;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;13901:963:0;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;13901:963:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;13901:963:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;13901:963:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;13901:963:0;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;6113:87;;;:::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;6113:87:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12574:342;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;12574:342:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;8509:525;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8509:525:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;5431:46;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5431:46:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;7821:524;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7821:524:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;7821:524:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;7821:524:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;7821:524:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;7821:524:0;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;17434:162;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;17434:162:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;17434:162:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;17434:162:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;17434:162:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;17434:162:0;;;;;;;;;;;;;;;:::i;:::-;;6691:346;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6691:346:0;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;6691:346:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;6691:346:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;6691:346:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;6691:346:0;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;5484:50;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5484:50:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;12244:135;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;12244:135:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;14872:1124;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;14872:1124:0;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;14872:1124:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;14872:1124:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;14872:1124:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;14872:1124:0;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;14872:1124:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;14872:1124:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;14872:1124:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;14872:1124:0;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;16089:969;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;16089:969:0;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;16089:969:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;16089:969:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;16089:969:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;16089:969:0;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;16089:969:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;16089:969:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;16089:969:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;16089:969:0;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;2816:192;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2816:192:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;5389:35;;;;;;;;;;;;;:::o;6022:83::-;6059:13;6092:5;6085:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6022:83;:::o;11729:207::-;11796:4;11846:6;11813:8;:20;11822:10;11813:20;;;;;;;;;;;;;;;:30;11834:8;11813:30;;;;;;;;;;;;;;;:39;;;;11889:8;11868:38;;11877:10;11868:38;;;11899:6;11868:38;;;;;;;;;;;;;;;;;;11924:4;11917:11;;11729:207;;;;:::o;6299:91::-;6343:7;6370:12;;6363:19;;6299:91;:::o;10737:717::-;10819:4;10873:1;10858:17;;:3;:17;;;;:44;;;;;10901:1;10892:6;:10;10858:44;:87;;;;;10939:6;10919:9;:16;10929:5;10919:16;;;;;;;;;;;;;;;;:26;;10858:87;:141;;;;;10993:6;10962:8;:15;10971:5;10962:15;;;;;;;;;;;;;;;:27;10978:10;10962:27;;;;;;;;;;;;;;;;:37;;10858:141;:187;;;;;11040:5;11016:29;;:13;:20;11030:5;11016:20;;;;;;;;;;;;;;;;;;;;;;;;;:29;;;10858:187;:231;;;;;11084:5;11062:27;;:13;:18;11076:3;11062:18;;;;;;;;;;;;;;;;;;;;;;;;;:27;;;10858:231;:275;;;;;11112:14;:21;11127:5;11112:21;;;;;;;;;;;;;;;;11106:3;:27;10858:275;:317;;;;;11156:14;:19;11171:3;11156:19;;;;;;;;;;;;;;;;11150:3;:25;10858:317;10836:350;;;;;;;;11218:28;11239:6;11218:9;:16;11228:5;11218:16;;;;;;;;;;;;;;;;:20;;:28;;;;:::i;:::-;11199:9;:16;11209:5;11199:16;;;;;;;;;;;;;;;:47;;;;11274:26;11293:6;11274:9;:14;11284:3;11274:14;;;;;;;;;;;;;;;;:18;;:26;;;;:::i;:::-;11257:9;:14;11267:3;11257:14;;;;;;;;;;;;;;;:43;;;;11341:39;11373:6;11341:8;:15;11350:5;11341:15;;;;;;;;;;;;;;;:27;11357:10;11341:27;;;;;;;;;;;;;;;;:31;;:39;;;;:::i;:::-;11311:8;:15;11320:5;11311:15;;;;;;;;;;;;;;;:27;11327:10;11311:27;;;;;;;;;;;;;;;:69;;;;11412:3;11396:28;;11405:5;11396:28;;;11417:6;11396:28;;;;;;;;;;;;;;;;;;11442:4;11435:11;;10737:717;;;;;:::o;6208:83::-;6249:5;6274:9;;;;;;;;;;;6267:16;;6208:83;:::o;13189:361::-;13271:4;2613:5;;;;;;;;;;;2599:19;;:10;:19;;;2591:28;;;;;;;;12965:15;;;;;;;;;;;12964:16;12956:25;;;;;;;;13310:1;13296:11;:15;13288:24;;;;;;;;13340:29;13357:11;13340:12;;:16;;:29;;;;:::i;:::-;13325:12;:44;;;;13397:31;13416:11;13397:9;:14;13407:3;13397:14;;;;;;;;;;;;;;;;:18;;:31;;;;:::i;:::-;13380:9;:14;13390:3;13380:14;;;;;;;;;;;;;;;:48;;;;13449:3;13444:22;;;13454:11;13444:22;;;;;;;;;;;;;;;;;;13503:3;13482:38;;13499:1;13482:38;;;13508:11;13482:38;;;;;;;;;;;;;;;;;;13538:4;13531:11;;13189:361;;;;:::o;7268:455::-;2613:5;;;;;;;;;;;2599:19;;:10;:19;;;2591:28;;;;;;;;7410:1;7393:7;:14;:18;:69;;;;;7446:9;:16;7428:7;:14;:34;7393:69;7371:102;;;;;;;;7490:6;7499:1;7490:10;;7486:230;7506:7;:14;7502:1;:18;7486:230;;;7578:9;7588:1;7578:12;;;;;;;;;;;;;;;;;;7549:14;:26;7564:7;7572:1;7564:10;;;;;;;;;;;;;;;;;;7549:26;;;;;;;;;;;;;;;;:41;7541:50;;;;;;;;7635:9;7645:1;7635:12;;;;;;;;;;;;;;;;;;7606:14;:26;7621:7;7629:1;7621:10;;;;;;;;;;;;;;;;;;7606:26;;;;;;;;;;;;;;;:41;;;;7679:7;7687:1;7679:10;;;;;;;;;;;;;;;;;;7667:37;;;7691:9;7701:1;7691:12;;;;;;;;;;;;;;;;;;7667:37;;;;;;;;;;;;;;;;;;7522:3;;;;;;;7486:230;;;;7268:455;;:::o;6398:108::-;6454:7;6481:9;:17;6491:6;6481:17;;;;;;;;;;;;;;;;6474:24;;6398:108;;;:::o;13626:158::-;13685:4;2613:5;;;;;;;;;;;2599:19;;:10;:19;;;2591:28;;;;;;;;12965:15;;;;;;;;;;;12964:16;12956:25;;;;;;;;13720:4;13702:15;;:22;;;;;;;;;;;;;;;;;;13740:14;;;;;;;;;;13772:4;13765:11;;13626:158;:::o;2154:20::-;;;;;;;;;;;;;:::o;13901:963::-;13988:4;14036:1;14027:6;:10;:47;;;;;14073:1;14054:9;:16;:20;14027:47;:98;;;;;14120:5;14091:34;;:13;:25;14105:10;14091:25;;;;;;;;;;;;;;;;;;;;;;;;;:34;;;14027:98;:147;;;;;14148:14;:26;14163:10;14148:26;;;;;;;;;;;;;;;;14142:3;:32;14027:147;14005:180;;;;;;;;14198:17;14218:15;14229:3;14218:6;:10;;:15;;;;:::i;:::-;14198:35;;14244:19;14266:31;14280:9;:16;14266:9;:13;;:31;;;;:::i;:::-;14244:53;;14341:11;14316:9;:21;14326:10;14316:21;;;;;;;;;;;;;;;;:36;;14308:45;;;;;;;;14371:6;14380:1;14371:10;;14366:396;14387:9;:16;14383:1;:20;14366:396;;;14475:1;14451:26;;:9;14461:1;14451:12;;;;;;;;;;;;;;;;;;:26;;;;:83;;;;;14529:5;14498:36;;:13;:27;14512:9;14522:1;14512:12;;;;;;;;;;;;;;;;;;14498:27;;;;;;;;;;;;;;;;;;;;;;;;;:36;;;14451:83;:138;;;;;14561:14;:28;14576:9;14586:1;14576:12;;;;;;;;;;;;;;;;;;14561:28;;;;;;;;;;;;;;;;14555:3;:34;14451:138;14425:179;;;;;;;;14647:38;14675:9;14647;:23;14657:9;14667:1;14657:12;;;;;;;;;;;;;;;;;;14647:23;;;;;;;;;;;;;;;;:27;;:38;;;;:::i;:::-;14621:9;:23;14631:9;14641:1;14631:12;;;;;;;;;;;;;;;;;;14621:23;;;;;;;;;;;;;;;:64;;;;14726:9;14736:1;14726:12;;;;;;;;;;;;;;;;;;14705:45;;14714:10;14705:45;;;14740:9;14705:45;;;;;;;;;;;;;;;;;;14405:3;;;;;;;14366:396;;;;14796:38;14822:11;14796:9;:21;14806:10;14796:21;;;;;;;;;;;;;;;;:25;;:38;;;;:::i;:::-;14772:9;:21;14782:10;14772:21;;;;;;;;;;;;;;;:62;;;;14852:4;14845:11;;;;13901:963;;;;:::o;6113:87::-;6152:13;6185:7;6178:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6113:87;:::o;12574:342::-;2613:5;;;;;;;;;;;2599:19;;:10;:19;;;2591:28;;;;;;;;12688:1;12674:11;:15;:63;;;;;12726:11;12706:16;12716:5;12706:9;:16::i;:::-;:31;;12674:63;12652:96;;;;;;;;12780:33;12801:11;12780:9;:16;12790:5;12780:16;;;;;;;;;;;;;;;;:20;;:33;;;;:::i;:::-;12761:9;:16;12771:5;12761:16;;;;;;;;;;;;;;;:52;;;;12839:29;12856:11;12839:12;;:16;;:29;;;;:::i;:::-;12824:12;:44;;;;12889:5;12884:24;;;12896:11;12884:24;;;;;;;;;;;;;;;;;;12574:342;;:::o;8509:525::-;8569:4;8617:1;8608:6;:10;:61;;;;;8664:5;8635:34;;:13;:25;8649:10;8635:25;;;;;;;;;;;;;;;;;;;;;;;;;:34;;;8608:61;:105;;;;;8708:5;8686:27;;:13;:18;8700:3;8686:18;;;;;;;;;;;;;;;;;;;;;;;;;:27;;;8608:105;:154;;;;;8736:14;:26;8751:10;8736:26;;;;;;;;;;;;;;;;8730:3;:32;8608:154;:196;;;;;8785:14;:19;8800:3;8785:19;;;;;;;;;;;;;;;;8779:3;:25;8608:196;8586:229;;;;;;;;8828:18;8861:15;8872:3;8861:10;:15::i;:::-;8857:170;;;8900:38;8919:3;8924:6;8932:5;8900:18;:38::i;:::-;8893:45;;;;;8857:170;8978:37;8996:3;9001:6;9009:5;8978:17;:37::i;:::-;8971:44;;;8509:525;;;;;:::o;5431:46::-;;;;;;;;;;;;;;;;;;;;;;:::o;7821:524::-;7901:4;7949:1;7940:6;:10;:61;;;;;7996:5;7967:34;;:13;:25;7981:10;7967:25;;;;;;;;;;;;;;;;;;;;;;;;;:34;;;7940:61;:105;;;;;8040:5;8018:27;;:13;:18;8032:3;8018:18;;;;;;;;;;;;;;;;;;;;;;;;;:27;;;7940:105;:154;;;;;8068:14;:26;8083:10;8068:26;;;;;;;;;;;;;;;;8062:3;:32;7940:154;:196;;;;;8117:14;:19;8132:3;8117:19;;;;;;;;;;;;;;;;8111:3;:25;7940:196;7918:229;;;;;;;;8163:15;8174:3;8163:10;:15::i;:::-;8160:178;;;8202:38;8221:3;8226:6;8234:5;8202:18;:38::i;:::-;8195:45;;;;8160:178;8289:37;8307:3;8312:6;8320:5;8289:17;:37::i;:::-;8282:44;;7821:524;;;;;;:::o;17434:162::-;17580:8;;;6691:346;2613:5;;;;;;;;;;;2599:19;;:10;:19;;;2591:28;;;;;;;;6809:1;6792:7;:14;:18;6784:27;;;;;;;;6829:6;6838:1;6829:10;;6824:206;6845:7;:14;6841:1;:18;6824:206;;;6911:1;6889:24;;:7;6897:1;6889:10;;;;;;;;;;;;;;;;;;:24;;;;6881:33;;;;;;;;6957:8;6929:13;:25;6943:7;6951:1;6943:10;;;;;;;;;;;;;;;;;;6929:25;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;6997:7;7005:1;6997:10;;;;;;;;;;;;;;;;;;6985:33;;;7009:8;6985:33;;;;;;;;;;;;;;;;;;;;;;6861:3;;;;;;;6824:206;;;;6691:346;;:::o;5484:50::-;;;;;;;;;;;;;;;;;:::o;12244:135::-;12318:7;12345:8;:16;12354:6;12345:16;;;;;;;;;;;;;;;:26;12362:8;12345:26;;;;;;;;;;;;;;;;12338:33;;12244:135;;;;:::o;14872:1124::-;14966:4;15024:1;15005:9;:16;:20;:71;;;;;15062:7;:14;15042:9;:16;:34;15005:71;:122;;;;;15122:5;15093:34;;:13;:25;15107:10;15093:25;;;;;;;;;;;;;;;;;;;;;;;;;:34;;;15005:122;:171;;;;;15150:14;:26;15165:10;15150:26;;;;;;;;;;;;;;;;15144:3;:32;15005:171;14983:204;;;;;;;;15200:19;15222:1;15200:23;;15240:6;15249:1;15240:10;;15236:388;15256:9;:16;15252:1;:20;15236:388;;;15332:1;15319:7;15327:1;15319:10;;;;;;;;;;;;;;;;;;:14;:61;;;;;15378:1;15354:26;;:9;15364:1;15354:12;;;;;;;;;;;;;;;;;;:26;;;;15319:61;:118;;;;;15432:5;15401:36;;:13;:27;15415:9;15425:1;15415:12;;;;;;;;;;;;;;;;;;15401:27;;;;;;;;;;;;;;;;;;;;;;;;;:36;;;15319:118;:173;;;;;15464:14;:28;15479:9;15489:1;15479:12;;;;;;;;;;;;;;;;;;15464:28;;;;;;;;;;;;;;;;15458:3;:34;15319:173;15293:214;;;;;;;;15537:19;15552:3;15537:7;15545:1;15537:10;;;;;;;;;;;;;;;;;;:14;;:19;;;;:::i;:::-;15524:7;15532:1;15524:10;;;;;;;;;;;;;;;;;:32;;;;;15585:27;15601:7;15609:1;15601:10;;;;;;;;;;;;;;;;;;15585:11;:15;;:27;;;;:::i;:::-;15571:41;;15274:3;;;;;;;15236:388;;;;15667:11;15642:9;:21;15652:10;15642:21;;;;;;;;;;;;;;;;:36;;15634:45;;;;;;;;15697:6;15706:1;15697:10;;15692:202;15713:9;:16;15709:1;:20;15692:202;;;15777:39;15805:7;15813:1;15805:10;;;;;;;;;;;;;;;;;;15777:9;:23;15787:9;15797:1;15787:12;;;;;;;;;;;;;;;;;;15777:23;;;;;;;;;;;;;;;;:27;;:39;;;;:::i;:::-;15751:9;:23;15761:9;15771:1;15761:12;;;;;;;;;;;;;;;;;;15751:23;;;;;;;;;;;;;;;:65;;;;15857:9;15867:1;15857:12;;;;;;;;;;;;;;;;;;15836:46;;15845:10;15836:46;;;15871:7;15879:1;15871:10;;;;;;;;;;;;;;;;;;15836:46;;;;;;;;;;;;;;;;;;15731:3;;;;;;;15692:202;;;;15928:38;15954:11;15928:9;:21;15938:10;15928:21;;;;;;;;;;;;;;;;:25;;:38;;;;:::i;:::-;15904:9;:21;15914:10;15904:21;;;;;;;;;;;;;;;:62;;;;15984:4;15977:11;;;14872:1124;;;;:::o;16089:969::-;16189:4;2613:5;;;;;;;;;;;2599:19;;:10;:19;;;2591:28;;;;;;;;16247:1;16228:9;:16;:20;:71;;;;;16285:7;:14;16265:9;:16;:34;16228:71;16206:104;;;;;;;;16323:19;16345:1;16323:23;;16364:6;16373:1;16364:10;;16359:597;16380:9;:16;16376:1;:20;16359:597;;;16457:1;16444:7;16452:1;16444:10;;;;;;;;;;;;;;;;;;:14;:61;;;;;16503:1;16479:26;;:9;16489:1;16479:12;;;;;;;;;;;;;;;;;;:26;;;;16444:61;:118;;;;;16557:5;16526:36;;:13;:27;16540:9;16550:1;16540:12;;;;;;;;;;;;;;;;;;16526:27;;;;;;;;;;;;;;;;;;;;;;;;;:36;;;16444:118;:173;;;;;16589:14;:28;16604:9;16614:1;16604:12;;;;;;;;;;;;;;;;;;16589:28;;;;;;;;;;;;;;;;16583:3;:34;16444:173;16418:214;;;;;;;;16662:19;16677:3;16662:7;16670:1;16662:10;;;;;;;;;;;;;;;;;;:14;;:19;;;;:::i;:::-;16649:7;16657:1;16649:10;;;;;;;;;;;;;;;;;:32;;;;;16731:7;16739:1;16731:10;;;;;;;;;;;;;;;;;;16704:9;:23;16714:9;16724:1;16714:12;;;;;;;;;;;;;;;;;;16704:23;;;;;;;;;;;;;;;;:37;;16696:46;;;;;;;;16783:39;16811:7;16819:1;16811:10;;;;;;;;;;;;;;;;;;16783:9;:23;16793:9;16803:1;16793:12;;;;;;;;;;;;;;;;;;16783:23;;;;;;;;;;;;;;;;:27;;:39;;;;:::i;:::-;16757:9;:23;16767:9;16777:1;16767:12;;;;;;;;;;;;;;;;;;16757:23;;;;;;;;;;;;;;;:65;;;;16851:27;16867:7;16875:1;16867:10;;;;;;;;;;;;;;;;;;16851:11;:15;;:27;;;;:::i;:::-;16837:41;;16921:10;16898:46;;16907:9;16917:1;16907:12;;;;;;;;;;;;;;;;;;16898:46;;;16933:7;16941:1;16933:10;;;;;;;;;;;;;;;;;;16898:46;;;;;;;;;;;;;;;;;;16398:3;;;;;;;16359:597;;;;16990:38;17016:11;16990:9;:21;17000:10;16990:21;;;;;;;;;;;;;;;;:25;;:38;;;;:::i;:::-;16966:9;:21;16976:10;16966:21;;;;;;;;;;;;;;;:62;;;;17046:4;17039:11;;;16089:969;;;;:::o;2816:192::-;2613:5;;;;;;;;;;;2599:19;;:10;:19;;;2591:28;;;;;;;;2917:1;2897:22;;:8;:22;;;;2889:31;;;;;;;;2964:8;2936:37;;2957:5;;;;;;;;;;;2936:37;;;;;;;;;;;;2992:8;2984:5;;:16;;;;;;;;;;;;;;;;;;2816:192;:::o;1250:150::-;1308:7;1341:1;1336;:6;;1328:15;;;;;;;;1354:9;1370:1;1366;:5;1354:17;;1391:1;1384:8;;;1250:150;;;;:::o;1488:::-;1546:7;1566:9;1582:1;1578;:5;1566:17;;1607:1;1602;:6;;1594:15;;;;;;;;1629:1;1622:8;;;1488:150;;;;:::o;241:433::-;299:7;548:1;543;:6;539:47;;;573:1;566:8;;;;539:47;598:9;614:1;610;:5;598:17;;643:1;638;634;:5;;;;;;;;:10;626:19;;;;;;;;665:1;658:8;;;241:433;;;;;:::o;9136:280::-;9193:4;9210:11;9362:5;9350:18;9340:28;;9406:1;9397:6;:10;9389:19;;;9136:280;;;:::o;9976:403::-;10067:4;10117:6;10092:21;10102:10;10092:9;:21::i;:::-;:31;;10084:40;;;;;;;;10135:25;10180:3;10135:49;;10195:8;:22;;;10218:10;10230:6;10238:5;10195:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;10195:49:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10195:49:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10195:49:0;;;;10294:5;10260:40;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;10260:40:0;;;;;;;;;;;;;;;;10281:3;10260:40;;10269:10;10260:40;;;10286:6;10260:40;;;;;;;;;;;;;;;;;;10337:3;10316:33;;10325:10;10316:33;;;10342:6;10316:33;;;;;;;;;;;;;;;;;;10367:4;10360:11;;;9976:403;;;;;:::o;9494:404::-;9584:4;9634:6;9609:21;9619:10;9609:9;:21::i;:::-;:31;;9601:40;;;;;;;;9676:33;9702:6;9676:9;:21;9686:10;9676:21;;;;;;;;;;;;;;;;:25;;:33;;;;:::i;:::-;9652:9;:21;9662:10;9652:21;;;;;;;;;;;;;;;:57;;;;9737:26;9756:6;9737:9;:14;9747:3;9737:14;;;;;;;;;;;;;;;;:18;;:26;;;;:::i;:::-;9720:9;:14;9730:3;9720:14;;;;;;;;;;;;;;;:43;;;;9813:5;9779:40;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;9779:40:0;;;;;;;;;;;;;;;;9800:3;9779:40;;9788:10;9779:40;;;9805:6;9779:40;;;;;;;;;;;;;;;;;;9856:3;9835:33;;9844:10;9835:33;;;9861:6;9835:33;;;;;;;;;;;;;;;;;;9886:4;9879:11;;9494:404;;;;;:::o

Swarm Source

bzzr://2a8d3a96f546097ac2414643c2cc281cfd05555ebff16a74eb5240da457e3e0a

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.