ETH Price: $3,673.83 (+0.79%)
 

Overview

Max Total Supply

27,777,777 STL

Holders

2,393

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
200 STL

Value
$0.00
0xa18de3cedf3453b1e01c2ce9041fb436ddc5c35c
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
Sestrel

Compiler Version
v0.5.2+commit.1df8f40c

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2019-12-08
*/

pragma solidity >=0.4.21 <0.6.0;


library SafeMath {
    
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }

    
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;

        return c;
    }

    
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        
        
        
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");

        return c;
    }

    
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        
        require(b > 0, errorMessage);
        uint256 c = a / b;
        

        return c;
    }

    
    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return mod(a, b, "SafeMath: modulo by zero");
    }

    
    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}

contract Context {
    
    
    constructor () internal { }
    

    function _msgSender() internal view returns (address payable) {
        return msg.sender;
    }

    function _msgData() internal view returns (bytes memory) {
        this; 
        return msg.data;
    }
}

contract Ownable is Context {
    address private _owner;

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

    
    constructor () internal {
        _owner = _msgSender();
        emit OwnershipTransferred(address(0), _owner);
    }

    
    function owner() public view returns (address) {
        return _owner;
    }

    
    modifier onlyOwner() {
        require(isOwner(), "Ownable: caller is not the owner");
        _;
    }

    
    function isOwner() public view returns (bool) {
        return _msgSender() == _owner;
    }

    
    function renounceOwnership() public onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

    
    function transferOwnership(address newOwner) public onlyOwner {
        _transferOwnership(newOwner);
    }

    
    function _transferOwnership(address newOwner) internal {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

interface IERC20 {
    
    function totalSupply() external view returns (uint256);

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

    
    function transfer(address recipient, uint256 amount) external returns (bool);

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

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

    
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);

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

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

contract ERC20 is Context, IERC20 {
    using SafeMath for uint256;

    mapping (address => uint256) private _balances;

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

    uint256 private _totalSupply;

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

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

    
    function transfer(address recipient, uint256 amount) public returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    
    function allowance(address owner, address spender) public view returns (uint256) {
        return _allowances[owner][spender];
    }

    
    function approve(address spender, uint256 amount) public returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    
    function transferFrom(address sender, address recipient, uint256 amount) public returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }

    
    function increaseAllowance(address spender, uint256 addedValue) public returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue));
        return true;
    }

    
    function decreaseAllowance(address spender, uint256 subtractedValue) public returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero"));
        return true;
    }

    
    function _transfer(address sender, address recipient, uint256 amount) internal {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");

        _balances[sender] = _balances[sender].sub(amount, "ERC20: transfer amount exceeds balance");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
    }

    
    function _mint(address account, uint256 amount) internal {
        require(account != address(0), "ERC20: mint to the zero address");

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

     
    function _burn(address account, uint256 amount) internal {
        require(account != address(0), "ERC20: burn from the zero address");

        _balances[account] = _balances[account].sub(amount, "ERC20: burn amount exceeds balance");
        _totalSupply = _totalSupply.sub(amount);
        emit Transfer(account, address(0), amount);
    }

    
    function _approve(address owner, address spender, uint256 amount) internal {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    
    function _burnFrom(address account, uint256 amount) internal {
        _burn(account, amount);
        _approve(account, _msgSender(), _allowances[account][_msgSender()].sub(amount, "ERC20: burn amount exceeds allowance"));
    }
}

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

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

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

library DateTime {

    uint constant SECONDS_PER_DAY = 24 * 60 * 60;
    uint constant SECONDS_PER_HOUR = 60 * 60;
    uint constant SECONDS_PER_MINUTE = 60;
    int constant OFFSET19700101 = 2440588;

    uint constant DOW_MON = 1;
    uint constant DOW_TUE = 2;
    uint constant DOW_WED = 3;
    uint constant DOW_THU = 4;
    uint constant DOW_FRI = 5;
    uint constant DOW_SAT = 6;
    uint constant DOW_SUN = 7;

    
    
    
    
    
    
    
    
    
    
    
    
    
    function _daysFromDate(uint year, uint month, uint day) internal pure returns (uint _days) {
        require(year >= 1970);
        int _year = int(year);
        int _month = int(month);
        int _day = int(day);

        int __days = _day
          - 32075
          + 1461 * (_year + 4800 + (_month - 14) / 12) / 4
          + 367 * (_month - 2 - (_month - 14) / 12 * 12) / 12
          - 3 * ((_year + 4900 + (_month - 14) / 12) / 100) / 4
          - OFFSET19700101;

        _days = uint(__days);
    }

    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    function _daysToDate(uint _days) internal pure returns (uint year, uint month, uint day) {
        int __days = int(_days);

        int L = __days + 68569 + OFFSET19700101;
        int N = 4 * L / 146097;
        L = L - (146097 * N + 3) / 4;
        int _year = 4000 * (L + 1) / 1461001;
        L = L - 1461 * _year / 4 + 31;
        int _month = 80 * L / 2447;
        int _day = L - 2447 * _month / 80;
        L = _month / 11;
        _month = _month + 2 - 12 * L;
        _year = 100 * (N - 49) + _year + L;

        year = uint(_year);
        month = uint(_month);
        day = uint(_day);
    }

    function timestampFromDate(uint year, uint month, uint day) internal pure returns (uint timestamp) {
        timestamp = _daysFromDate(year, month, day) * SECONDS_PER_DAY;
    }
    function timestampFromDateTime(uint year, uint month, uint day, uint hour, uint minute, uint second) internal pure returns (uint timestamp) {
        timestamp = _daysFromDate(year, month, day) * SECONDS_PER_DAY + hour * SECONDS_PER_HOUR + minute * SECONDS_PER_MINUTE + second;
    }
    function timestampToDate(uint timestamp) internal pure returns (uint year, uint month, uint day) {
        (year, month, day) = _daysToDate(timestamp / SECONDS_PER_DAY);
    }
    function timestampToDateTime(uint timestamp) internal pure returns (uint year, uint month, uint day, uint hour, uint minute, uint second) {
        (year, month, day) = _daysToDate(timestamp / SECONDS_PER_DAY);
        uint secs = timestamp % SECONDS_PER_DAY;
        hour = secs / SECONDS_PER_HOUR;
        secs = secs % SECONDS_PER_HOUR;
        minute = secs / SECONDS_PER_MINUTE;
        second = secs % SECONDS_PER_MINUTE;
    }

    function isValidDate(uint year, uint month, uint day) internal pure returns (bool valid) {
        if (year >= 1970 && month > 0 && month <= 12) {
            uint daysInMonth = _getDaysInMonth(year, month);
            if (day > 0 && day <= daysInMonth) {
                valid = true;
            }
        }
    }
    function isValidDateTime(uint year, uint month, uint day, uint hour, uint minute, uint second) internal pure returns (bool valid) {
        if (isValidDate(year, month, day)) {
            if (hour < 24 && minute < 60 && second < 60) {
                valid = true;
            }
        }
    }
    function isLeapYear(uint timestamp) internal pure returns (bool leapYear) {
        uint year;
        uint month;
        uint day;
        (year, month, day) = _daysToDate(timestamp / SECONDS_PER_DAY);
        leapYear = _isLeapYear(year);
    }
    function _isLeapYear(uint year) internal pure returns (bool leapYear) {
        leapYear = ((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0);
    }
    function isWeekDay(uint timestamp) internal pure returns (bool weekDay) {
        weekDay = getDayOfWeek(timestamp) <= DOW_FRI;
    }
    function isWeekEnd(uint timestamp) internal pure returns (bool weekEnd) {
        weekEnd = getDayOfWeek(timestamp) >= DOW_SAT;
    }
    function getDaysInMonth(uint timestamp) internal pure returns (uint daysInMonth) {
        uint year;
        uint month;
        uint day;
        (year, month, day) = _daysToDate(timestamp / SECONDS_PER_DAY);
        daysInMonth = _getDaysInMonth(year, month);
    }
    function _getDaysInMonth(uint year, uint month) internal pure returns (uint daysInMonth) {
        if (month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12) {
            daysInMonth = 31;
        } else if (month != 2) {
            daysInMonth = 30;
        } else {
            daysInMonth = _isLeapYear(year) ? 29 : 28;
        }
    }
    
    function getDayOfWeek(uint timestamp) internal pure returns (uint dayOfWeek) {
        uint _days = timestamp / SECONDS_PER_DAY;
        dayOfWeek = (_days + 3) % 7 + 1;
    }

    function getYear(uint timestamp) internal pure returns (uint year) {
        uint month;
        uint day;
        (year, month, day) = _daysToDate(timestamp / SECONDS_PER_DAY);
    }
    function getMonth(uint timestamp) internal pure returns (uint month) {
        uint year;
        uint day;
        (year, month, day) = _daysToDate(timestamp / SECONDS_PER_DAY);
    }
    function getDay(uint timestamp) internal pure returns (uint day) {
        uint year;
        uint month;
        (year, month, day) = _daysToDate(timestamp / SECONDS_PER_DAY);
    }
    function getHour(uint timestamp) internal pure returns (uint hour) {
        uint secs = timestamp % SECONDS_PER_DAY;
        hour = secs / SECONDS_PER_HOUR;
    }
    function getMinute(uint timestamp) internal pure returns (uint minute) {
        uint secs = timestamp % SECONDS_PER_HOUR;
        minute = secs / SECONDS_PER_MINUTE;
    }
    function getSecond(uint timestamp) internal pure returns (uint second) {
        second = timestamp % SECONDS_PER_MINUTE;
    }

    function addYears(uint timestamp, uint _years) internal pure returns (uint newTimestamp) {
        uint year;
        uint month;
        uint day;
        (year, month, day) = _daysToDate(timestamp / SECONDS_PER_DAY);
        year += _years;
        uint daysInMonth = _getDaysInMonth(year, month);
        if (day > daysInMonth) {
            day = daysInMonth;
        }
        newTimestamp = _daysFromDate(year, month, day) * SECONDS_PER_DAY + timestamp % SECONDS_PER_DAY;
        require(newTimestamp >= timestamp);
    }
    function addMonths(uint timestamp, uint _months) internal pure returns (uint newTimestamp) {
        uint year;
        uint month;
        uint day;
        (year, month, day) = _daysToDate(timestamp / SECONDS_PER_DAY);
        month += _months;
        year += (month - 1) / 12;
        month = (month - 1) % 12 + 1;
        uint daysInMonth = _getDaysInMonth(year, month);
        if (day > daysInMonth) {
            day = daysInMonth;
        }
        newTimestamp = _daysFromDate(year, month, day) * SECONDS_PER_DAY + timestamp % SECONDS_PER_DAY;
        require(newTimestamp >= timestamp);
    }
    function addDays(uint timestamp, uint _days) internal pure returns (uint newTimestamp) {
        newTimestamp = timestamp + _days * SECONDS_PER_DAY;
        require(newTimestamp >= timestamp);
    }
    function addHours(uint timestamp, uint _hours) internal pure returns (uint newTimestamp) {
        newTimestamp = timestamp + _hours * SECONDS_PER_HOUR;
        require(newTimestamp >= timestamp);
    }
    function addMinutes(uint timestamp, uint _minutes) internal pure returns (uint newTimestamp) {
        newTimestamp = timestamp + _minutes * SECONDS_PER_MINUTE;
        require(newTimestamp >= timestamp);
    }
    function addSeconds(uint timestamp, uint _seconds) internal pure returns (uint newTimestamp) {
        newTimestamp = timestamp + _seconds;
        require(newTimestamp >= timestamp);
    }

    function subYears(uint timestamp, uint _years) internal pure returns (uint newTimestamp) {
        uint year;
        uint month;
        uint day;
        (year, month, day) = _daysToDate(timestamp / SECONDS_PER_DAY);
        year -= _years;
        uint daysInMonth = _getDaysInMonth(year, month);
        if (day > daysInMonth) {
            day = daysInMonth;
        }
        newTimestamp = _daysFromDate(year, month, day) * SECONDS_PER_DAY + timestamp % SECONDS_PER_DAY;
        require(newTimestamp <= timestamp);
    }
    function subMonths(uint timestamp, uint _months) internal pure returns (uint newTimestamp) {
        uint year;
        uint month;
        uint day;
        (year, month, day) = _daysToDate(timestamp / SECONDS_PER_DAY);
        uint yearMonth = year * 12 + (month - 1) - _months;
        year = yearMonth / 12;
        month = yearMonth % 12 + 1;
        uint daysInMonth = _getDaysInMonth(year, month);
        if (day > daysInMonth) {
            day = daysInMonth;
        }
        newTimestamp = _daysFromDate(year, month, day) * SECONDS_PER_DAY + timestamp % SECONDS_PER_DAY;
        require(newTimestamp <= timestamp);
    }
    function subDays(uint timestamp, uint _days) internal pure returns (uint newTimestamp) {
        newTimestamp = timestamp - _days * SECONDS_PER_DAY;
        require(newTimestamp <= timestamp);
    }
    function subHours(uint timestamp, uint _hours) internal pure returns (uint newTimestamp) {
        newTimestamp = timestamp - _hours * SECONDS_PER_HOUR;
        require(newTimestamp <= timestamp);
    }
    function subMinutes(uint timestamp, uint _minutes) internal pure returns (uint newTimestamp) {
        newTimestamp = timestamp - _minutes * SECONDS_PER_MINUTE;
        require(newTimestamp <= timestamp);
    }
    function subSeconds(uint timestamp, uint _seconds) internal pure returns (uint newTimestamp) {
        newTimestamp = timestamp - _seconds;
        require(newTimestamp <= timestamp);
    }

    function diffYears(uint fromTimestamp, uint toTimestamp) internal pure returns (uint _years) {
        require(fromTimestamp <= toTimestamp);
        uint fromYear;
        uint fromMonth;
        uint fromDay;
        uint toYear;
        uint toMonth;
        uint toDay;
        (fromYear, fromMonth, fromDay) = _daysToDate(fromTimestamp / SECONDS_PER_DAY);
        (toYear, toMonth, toDay) = _daysToDate(toTimestamp / SECONDS_PER_DAY);
        _years = toYear - fromYear;
    }
    function diffMonths(uint fromTimestamp, uint toTimestamp) internal pure returns (uint _months) {
        require(fromTimestamp <= toTimestamp);
        uint fromYear;
        uint fromMonth;
        uint fromDay;
        uint toYear;
        uint toMonth;
        uint toDay;
        (fromYear, fromMonth, fromDay) = _daysToDate(fromTimestamp / SECONDS_PER_DAY);
        (toYear, toMonth, toDay) = _daysToDate(toTimestamp / SECONDS_PER_DAY);
        _months = toYear * 12 + toMonth - fromYear * 12 - fromMonth;
    }
    function diffDays(uint fromTimestamp, uint toTimestamp) internal pure returns (uint _days) {
        require(fromTimestamp <= toTimestamp);
        _days = (toTimestamp - fromTimestamp) / SECONDS_PER_DAY;
    }
    function diffHours(uint fromTimestamp, uint toTimestamp) internal pure returns (uint _hours) {
        require(fromTimestamp <= toTimestamp);
        _hours = (toTimestamp - fromTimestamp) / SECONDS_PER_HOUR;
    }
    function diffMinutes(uint fromTimestamp, uint toTimestamp) internal pure returns (uint _minutes) {
        require(fromTimestamp <= toTimestamp);
        _minutes = (toTimestamp - fromTimestamp) / SECONDS_PER_MINUTE;
    }
    function diffSeconds(uint fromTimestamp, uint toTimestamp) internal pure returns (uint _seconds) {
        require(fromTimestamp <= toTimestamp);
        _seconds = toTimestamp - fromTimestamp;
    }
}

contract Sestrel is Ownable, ERC20, ERC20Detailed {
    using SafeMath for uint;
    using DateTime for uint;

    uint private TOTAL_TOKENS = 27777777;

    uint private _decimalsMul;

    
    uint private _deployedAt;

    
    uint private _frozenUntil;

    
    mapping (address => bool) private _ambassadors;

    event AmbassadorAdded(address addr, uint amount);

    constructor () public ERC20Detailed("Sestrel", "STL", 18) {

        _decimalsMul = 10 ** uint(decimals());

        _deployedAt = now;
        _frozenUntil = _deployedAt.addMonths(18);

        
        _mint(owner(), TOTAL_TOKENS.mul(_decimalsMul));
    }

    function renounceOwnership() public onlyOwner {
        revert("Sestrel: renouncing is not allowed");
    }

    
    function transferOwnership(address newOwner) public onlyOwner {
        transfer(newOwner, balanceOf(owner()));
        super.transferOwnership(newOwner);
    }

    function deployedAt() public view
        returns (uint year, uint month, uint day) {

        return DateTime.timestampToDate(_deployedAt);
    }
    function frozenUntil() public view
        returns (uint year, uint month, uint day) {

        return DateTime.timestampToDate(_frozenUntil);
    }

    
    
    
    
    

    
    function addAmbassador(address addr, uint amount) public onlyOwner
        returns (bool) {

        require(addr != address(0), "Sestrel: the zero address (0x) can not be an ambassador");
        require(addr != owner(), "Sestrel: the owner can not be an ambassador");
        require(!_ambassadors[addr], "Sestrel: this address is already owned by an ambassador");

        _transfer(owner(), addr, amount);

        _ambassadors[addr] = true;

        emit AmbassadorAdded(addr, amount);

        return true;
    }
    function isAmbassador(address addr) public view returns (bool) {
        return _ambassadors[addr];
    }

    function _limitAmbassador() internal view {
        require(
            !_ambassadors[_msgSender()]
            || now >= _frozenUntil, "Sestrel: ambassador action currently frozen"
        );
    }
    function transfer(address recipient, uint amount) public
        returns (bool) {

        _limitAmbassador();
        return super.transfer(recipient, amount);
    }
    
    function increaseAllowance(address spender, uint256 addedValue) public
        returns (bool) {

        _limitAmbassador();
        return super.increaseAllowance(spender, addedValue);
    }

    function authorHash() public pure returns (string memory) {
        return "b0b00f105d7755713edb705b6635ac5cf12d97702a65d16e1dba22dfddb65e27";
    }
}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"spender","type":"address"},{"name":"amount","type":"uint256"}],"name":"approve","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"amount","type":"uint256"}],"name":"addAmbassador","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":"sender","type":"address"},{"name":"recipient","type":"address"},{"name":"amount","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":"spender","type":"address"},{"name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"frozenUntil","outputs":[{"name":"year","type":"uint256"},{"name":"month","type":"uint256"},{"name":"day","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"account","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"renounceOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isOwner","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isAmbassador","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"spender","type":"address"},{"name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"recipient","type":"address"},{"name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","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":true,"inputs":[],"name":"authorHash","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[],"name":"deployedAt","outputs":[{"name":"year","type":"uint256"},{"name":"month","type":"uint256"},{"name":"day","type":"uint256"}],"payable":false,"stateMutability":"view","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"},{"anonymous":false,"inputs":[{"indexed":false,"name":"addr","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"AmbassadorAdded","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"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"}]

60806040526301a7daf16007553480156200001957600080fd5b506040805190810160405280600781526020017f5365737472656c000000000000000000000000000000000000000000000000008152506040805190810160405280600381526020017f53544c00000000000000000000000000000000000000000000000000000000008152506012620000a162000263640100000000026401000000009004565b6000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a382600490805190602001906200017492919062000932565b5081600590805190602001906200018d92919062000932565b5080600660006101000a81548160ff021916908360ff160217905550505050620001c56200026b640100000000026401000000009004565b60ff16600a0a60088190555042600981905550620001fe6012600954620002826401000000000262001c41179091906401000000009004565b600a819055506200025d6200022162000367640100000000026401000000009004565b62000248600854600754620003906401000000000262001ced179091906401000000009004565b6200041f640100000000026401000000009004565b620009e1565b600033905090565b6000600660009054906101000a900460ff16905090565b600080600080620002b162015180878115156200029b57fe5b04620005ff640100000000026401000000009004565b8093508194508295505050508482019150600c60018303811515620002d257fe5b04830192506001600c60018403811515620002e957fe5b0601915060006200030a8484620006e8640100000000026401000000009004565b90508082111562000319578091505b62015180878115156200032857fe5b06620151806200034986868662000792640100000000026401000000009004565b020194508685101515156200035d57600080fd5b5050505092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600080831415620003a5576000905062000419565b60008284029050828482811515620003b957fe5b0414151562000414576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602181526020018062002b976021913960400191505060405180910390fd5b809150505b92915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515620004c5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f45524332303a206d696e7420746f20746865207a65726f20616464726573730081525060200191505060405180910390fd5b620004ea8160035462000859640100000000026200198f179091906401000000009004565b6003819055506200055281600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205462000859640100000000026200198f179091906401000000009004565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b600080600080849050600062253d8c62010bd98301019050600062023ab1826004028115156200062b57fe5b059050600460038262023ab102018115156200064357fe5b0582039150600062164b0960018401610fa0028115156200066057fe5b059050601f6004826105b5028115156200067657fe5b058403019250600061098f846050028115156200068f57fe5b059050600060508261098f02811515620006a557fe5b0585039050600b82811515620006b757fe5b05945084600c0260028301039150848360318603606402010192508298508197508096505050505050509193909250565b60006001821480620006fa5750600382145b80620007065750600582145b80620007125750600782145b806200071e5750600882145b806200072a5750600a82145b80620007365750600c82145b156200074657601f90506200078c565b6002821415156200075b57601e90506200078b565b6200077583620008e4640100000000026401000000009004565b6200078257601c62000785565b601d5b60ff1690505b5b92915050565b60006107b28410151515620007a657600080fd5b600084905060008490506000849050600062253d8c60046064600c600e8703811515620007cf57fe5b05611324880101811515620007e057fe5b05600302811515620007ee57fe5b05600c80600c600e88038115156200080257fe5b0502600287030361016f028115156200081757fe5b056004600c600e88038115156200082a57fe5b056112c08901016105b5028115156200083f57fe5b05617d4b8603010103039050809450505050509392505050565b6000808284019050838110151515620008da576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600080600483811515620008f457fe5b0614801562000911575060006064838115156200090d57fe5b0614155b806200092b57506000610190838115156200092857fe5b06145b9050919050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200097557805160ff1916838001178555620009a6565b82800160010185558215620009a6579182015b82811115620009a557825182559160200191906001019062000988565b5b509050620009b59190620009b9565b5090565b620009de91905b80821115620009da576000816000905550600101620009c0565b5090565b90565b6121a680620009f16000396000f3fe608060405234801561001057600080fd5b5060043610610149576000357c0100000000000000000000000000000000000000000000000000000000900480638da5cb5b116100ca578063a9059cbb1161008e578063a9059cbb1461060a578063dd62ed3e14610670578063e4913642146106e8578063eae4c19f1461076b578063f2fde38b1461079757610149565b80638da5cb5b146104595780638f32d59b146104a357806395d89b41146104c55780639ac0c6ac14610548578063a457c2d7146105a457610149565b8063313ce56711610111578063313ce5671461034157806339509351146103655780636b47ffd7146103cb57806370a08231146103f7578063715018a61461044f57610149565b806306fdde031461014e578063095ea7b3146101d15780630ffe02111461023757806318160ddd1461029d57806323b872dd146102bb575b600080fd5b6101566107db565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561019657808201518184015260208101905061017b565b50505050905090810190601f1680156101c35780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61021d600480360360408110156101e757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061087d565b604051808215151515815260200191505060405180910390f35b6102836004803603604081101561024d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061089b565b604051808215151515815260200191505060405180910390f35b6102a5610bb3565b6040518082815260200191505060405180910390f35b610327600480360360608110156102d157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610bbd565b604051808215151515815260200191505060405180910390f35b610349610c97565b604051808260ff1660ff16815260200191505060405180910390f35b6103b16004803603604081101561037b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610cae565b604051808215151515815260200191505060405180910390f35b6103d3610cca565b60405180848152602001838152602001828152602001935050505060405180910390f35b6104396004803603602081101561040d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ce5565b6040518082815260200191505060405180910390f35b610457610d2e565b005b610461610dfb565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6104ab610e24565b604051808215151515815260200191505060405180910390f35b6104cd610e82565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561050d5780820151818401526020810190506104f2565b50505050905090810190601f16801561053a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61058a6004803603602081101561055e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610f24565b604051808215151515815260200191505060405180910390f35b6105f0600480360360408110156105ba57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610f7a565b604051808215151515815260200191505060405180910390f35b6106566004803603604081101561062057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611048565b604051808215151515815260200191505060405180910390f35b6106d26004803603604081101561068657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611064565b6040518082815260200191505060405180910390f35b6106f06110eb565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610730578082015181840152602081019050610715565b50505050905090810190601f16801561075d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61077361110b565b60405180848152602001838152602001828152602001935050505060405180910390f35b6107d9600480360360208110156107ad57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611126565b005b606060048054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156108735780601f1061084857610100808354040283529160200191610873565b820191906000526020600020905b81548152906001019060200180831161085657829003601f168201915b5050505050905090565b600061089161088a6111c8565b84846111d0565b6001905092915050565b60006108a5610e24565b1515610919576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156109a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603781526020018061211f6037913960400191505060405180910390fd5b6109a9610dfb565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515610a2f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180612009602b913960400191505060405180910390fd5b600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151515610ad4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603781526020018061207d6037913960400191505060405180910390fd5b610ae6610adf610dfb565b84846113cb565b6001600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507fe1251c072332ef9e802da051c08ec46fea13d09f0e9bd12f07f836fdd7ed54bc8383604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a16001905092915050565b6000600354905090565b6000610bca8484846113cb565b610c8c84610bd66111c8565b610c87856060604051908101604052806028815260200161205560289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610c3d6111c8565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461168a9092919063ffffffff16565b6111d0565b600190509392505050565b6000600660009054906101000a900460ff16905090565b6000610cb861174c565b610cc28383611807565b905092915050565b6000806000610cda600a546118ba565b925092509250909192565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610d36610e24565b1515610daa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806120fd6022913960400191505060405180910390fd5b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610e666111c8565b73ffffffffffffffffffffffffffffffffffffffff1614905090565b606060058054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610f1a5780601f10610eef57610100808354040283529160200191610f1a565b820191906000526020600020905b815481529060010190602001808311610efd57829003601f168201915b5050505050905090565b6000600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600061103e610f876111c8565b8461103985606060405190810160405280602581526020016121566025913960026000610fb26111c8565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461168a9092919063ffffffff16565b6111d0565b6001905092915050565b600061105261174c565b61105c83836118e9565b905092915050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6060806040519081016040528060408152602001611fc960409139905090565b600080600061111b6009546118ba565b925092509250909192565b61112e610e24565b15156111a2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6111bb816111b66111b1610dfb565b610ce5565b611048565b506111c581611907565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515611258576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806120d96024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515156112e0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180611f566022913960400191505060405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515611453576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806120b46025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515156114db576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180611f0d6023913960400191505060405180910390fd5b6115488160606040519081016040528060268152602001611fa360269139600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461168a9092919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506115dd81600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461198f90919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b60008383111582901515611739576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156116fe5780820151818401526020810190506116e3565b50505050905090810190601f16801561172b5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b600b60006117586111c8565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615806117ae5750600a544210155b1515611805576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180611f78602b913960400191505060405180910390fd5b565b60006118b06118146111c8565b846118ab85600260006118256111c8565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461198f90919063ffffffff16565b6111d0565b6001905092915050565b60008060006118d662015180858115156118d057fe5b04611a19565b8093508194508295505050509193909250565b60006118fd6118f66111c8565b84846113cb565b6001905092915050565b61190f610e24565b1515611983576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b61198c81611afb565b50565b6000808284019050838110151515611a0f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600080600080849050600062253d8c62010bd98301019050600062023ab182600402811515611a4457fe5b059050600460038262023ab10201811515611a5b57fe5b0582039150600062164b0960018401610fa002811515611a7757fe5b059050601f6004826105b502811515611a8c57fe5b058403019250600061098f84605002811515611aa457fe5b059050600060508261098f02811515611ab957fe5b0585039050600b82811515611aca57fe5b05945084600c0260028301039150848360318603606402010192508298508197508096505050505050509193909250565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611b83576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180611f306026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600080600080611c5e6201518087811515611c5857fe5b04611a19565b8093508194508295505050508482019150600c60018303811515611c7e57fe5b04830192506001600c60018403811515611c9457fe5b060191506000611ca48484611d77565b905080821115611cb2578091505b6201518087811515611cc057fe5b0662015180611cd0868686611e04565b02019450868510151515611ce357600080fd5b5050505092915050565b600080831415611d005760009050611d71565b60008284029050828482811515611d1357fe5b04141515611d6c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806120346021913960400191505060405180910390fd5b809150505b92915050565b60006001821480611d885750600382145b80611d935750600582145b80611d9e5750600782145b80611da95750600882145b80611db45750600a82145b80611dbf5750600c82145b15611dcd57601f9050611dfe565b600282141515611de057601e9050611dfd565b611de983611ec3565b611df457601c611df7565b601d5b60ff1690505b5b92915050565b60006107b28410151515611e1757600080fd5b600084905060008490506000849050600062253d8c60046064600c600e8703811515611e3f57fe5b05611324880101811515611e4f57fe5b05600302811515611e5c57fe5b05600c80600c600e8803811515611e6f57fe5b0502600287030361016f02811515611e8357fe5b056004600c600e8803811515611e9557fe5b056112c08901016105b502811515611ea957fe5b05617d4b8603010103039050809450505050509392505050565b600080600483811515611ed257fe5b06148015611eed57506000606483811515611ee957fe5b0614155b80611f055750600061019083811515611f0257fe5b06145b905091905056fe45524332303a207472616e7366657220746f20746865207a65726f20616464726573734f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f20616464726573735365737472656c3a20616d6261737361646f7220616374696f6e2063757272656e746c792066726f7a656e45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365623062303066313035643737353537313365646237303562363633356163356366313264393737303261363564313665316462613232646664646236356532375365737472656c3a20746865206f776e65722063616e206e6f7420626520616e20616d6261737361646f72536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63655365737472656c3a2074686973206164647265737320697320616c7265616479206f776e656420627920616e20616d6261737361646f7245524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f20616464726573735365737472656c3a2072656e6f756e63696e67206973206e6f7420616c6c6f7765645365737472656c3a20746865207a65726f206164647265737320283078292063616e206e6f7420626520616e20616d6261737361646f7245524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa165627a7a72305820f56690d8a13e279646d0f5f621696ffcdbea17e53bc6fc18c23fe5f2ffebd6860029536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77

Deployed Bytecode

0x608060405234801561001057600080fd5b5060043610610149576000357c0100000000000000000000000000000000000000000000000000000000900480638da5cb5b116100ca578063a9059cbb1161008e578063a9059cbb1461060a578063dd62ed3e14610670578063e4913642146106e8578063eae4c19f1461076b578063f2fde38b1461079757610149565b80638da5cb5b146104595780638f32d59b146104a357806395d89b41146104c55780639ac0c6ac14610548578063a457c2d7146105a457610149565b8063313ce56711610111578063313ce5671461034157806339509351146103655780636b47ffd7146103cb57806370a08231146103f7578063715018a61461044f57610149565b806306fdde031461014e578063095ea7b3146101d15780630ffe02111461023757806318160ddd1461029d57806323b872dd146102bb575b600080fd5b6101566107db565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561019657808201518184015260208101905061017b565b50505050905090810190601f1680156101c35780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61021d600480360360408110156101e757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061087d565b604051808215151515815260200191505060405180910390f35b6102836004803603604081101561024d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061089b565b604051808215151515815260200191505060405180910390f35b6102a5610bb3565b6040518082815260200191505060405180910390f35b610327600480360360608110156102d157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610bbd565b604051808215151515815260200191505060405180910390f35b610349610c97565b604051808260ff1660ff16815260200191505060405180910390f35b6103b16004803603604081101561037b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610cae565b604051808215151515815260200191505060405180910390f35b6103d3610cca565b60405180848152602001838152602001828152602001935050505060405180910390f35b6104396004803603602081101561040d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ce5565b6040518082815260200191505060405180910390f35b610457610d2e565b005b610461610dfb565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6104ab610e24565b604051808215151515815260200191505060405180910390f35b6104cd610e82565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561050d5780820151818401526020810190506104f2565b50505050905090810190601f16801561053a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61058a6004803603602081101561055e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610f24565b604051808215151515815260200191505060405180910390f35b6105f0600480360360408110156105ba57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610f7a565b604051808215151515815260200191505060405180910390f35b6106566004803603604081101561062057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611048565b604051808215151515815260200191505060405180910390f35b6106d26004803603604081101561068657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611064565b6040518082815260200191505060405180910390f35b6106f06110eb565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610730578082015181840152602081019050610715565b50505050905090810190601f16801561075d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61077361110b565b60405180848152602001838152602001828152602001935050505060405180910390f35b6107d9600480360360208110156107ad57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611126565b005b606060048054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156108735780601f1061084857610100808354040283529160200191610873565b820191906000526020600020905b81548152906001019060200180831161085657829003601f168201915b5050505050905090565b600061089161088a6111c8565b84846111d0565b6001905092915050565b60006108a5610e24565b1515610919576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156109a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603781526020018061211f6037913960400191505060405180910390fd5b6109a9610dfb565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515610a2f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180612009602b913960400191505060405180910390fd5b600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151515610ad4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603781526020018061207d6037913960400191505060405180910390fd5b610ae6610adf610dfb565b84846113cb565b6001600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507fe1251c072332ef9e802da051c08ec46fea13d09f0e9bd12f07f836fdd7ed54bc8383604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a16001905092915050565b6000600354905090565b6000610bca8484846113cb565b610c8c84610bd66111c8565b610c87856060604051908101604052806028815260200161205560289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610c3d6111c8565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461168a9092919063ffffffff16565b6111d0565b600190509392505050565b6000600660009054906101000a900460ff16905090565b6000610cb861174c565b610cc28383611807565b905092915050565b6000806000610cda600a546118ba565b925092509250909192565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610d36610e24565b1515610daa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806120fd6022913960400191505060405180910390fd5b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610e666111c8565b73ffffffffffffffffffffffffffffffffffffffff1614905090565b606060058054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610f1a5780601f10610eef57610100808354040283529160200191610f1a565b820191906000526020600020905b815481529060010190602001808311610efd57829003601f168201915b5050505050905090565b6000600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600061103e610f876111c8565b8461103985606060405190810160405280602581526020016121566025913960026000610fb26111c8565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461168a9092919063ffffffff16565b6111d0565b6001905092915050565b600061105261174c565b61105c83836118e9565b905092915050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6060806040519081016040528060408152602001611fc960409139905090565b600080600061111b6009546118ba565b925092509250909192565b61112e610e24565b15156111a2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6111bb816111b66111b1610dfb565b610ce5565b611048565b506111c581611907565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515611258576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806120d96024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515156112e0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180611f566022913960400191505060405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515611453576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806120b46025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515156114db576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180611f0d6023913960400191505060405180910390fd5b6115488160606040519081016040528060268152602001611fa360269139600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461168a9092919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506115dd81600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461198f90919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b60008383111582901515611739576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156116fe5780820151818401526020810190506116e3565b50505050905090810190601f16801561172b5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b600b60006117586111c8565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615806117ae5750600a544210155b1515611805576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180611f78602b913960400191505060405180910390fd5b565b60006118b06118146111c8565b846118ab85600260006118256111c8565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461198f90919063ffffffff16565b6111d0565b6001905092915050565b60008060006118d662015180858115156118d057fe5b04611a19565b8093508194508295505050509193909250565b60006118fd6118f66111c8565b84846113cb565b6001905092915050565b61190f610e24565b1515611983576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b61198c81611afb565b50565b6000808284019050838110151515611a0f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600080600080849050600062253d8c62010bd98301019050600062023ab182600402811515611a4457fe5b059050600460038262023ab10201811515611a5b57fe5b0582039150600062164b0960018401610fa002811515611a7757fe5b059050601f6004826105b502811515611a8c57fe5b058403019250600061098f84605002811515611aa457fe5b059050600060508261098f02811515611ab957fe5b0585039050600b82811515611aca57fe5b05945084600c0260028301039150848360318603606402010192508298508197508096505050505050509193909250565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611b83576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180611f306026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600080600080611c5e6201518087811515611c5857fe5b04611a19565b8093508194508295505050508482019150600c60018303811515611c7e57fe5b04830192506001600c60018403811515611c9457fe5b060191506000611ca48484611d77565b905080821115611cb2578091505b6201518087811515611cc057fe5b0662015180611cd0868686611e04565b02019450868510151515611ce357600080fd5b5050505092915050565b600080831415611d005760009050611d71565b60008284029050828482811515611d1357fe5b04141515611d6c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806120346021913960400191505060405180910390fd5b809150505b92915050565b60006001821480611d885750600382145b80611d935750600582145b80611d9e5750600782145b80611da95750600882145b80611db45750600a82145b80611dbf5750600c82145b15611dcd57601f9050611dfe565b600282141515611de057601e9050611dfd565b611de983611ec3565b611df457601c611df7565b601d5b60ff1690505b5b92915050565b60006107b28410151515611e1757600080fd5b600084905060008490506000849050600062253d8c60046064600c600e8703811515611e3f57fe5b05611324880101811515611e4f57fe5b05600302811515611e5c57fe5b05600c80600c600e8803811515611e6f57fe5b0502600287030361016f02811515611e8357fe5b056004600c600e8803811515611e9557fe5b056112c08901016105b502811515611ea957fe5b05617d4b8603010103039050809450505050509392505050565b600080600483811515611ed257fe5b06148015611eed57506000606483811515611ee957fe5b0614155b80611f055750600061019083811515611f0257fe5b06145b905091905056fe45524332303a207472616e7366657220746f20746865207a65726f20616464726573734f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f20616464726573735365737472656c3a20616d6261737361646f7220616374696f6e2063757272656e746c792066726f7a656e45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365623062303066313035643737353537313365646237303562363633356163356366313264393737303261363564313665316462613232646664646236356532375365737472656c3a20746865206f776e65722063616e206e6f7420626520616e20616d6261737361646f72536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63655365737472656c3a2074686973206164647265737320697320616c7265616479206f776e656420627920616e20616d6261737361646f7245524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f20616464726573735365737472656c3a2072656e6f756e63696e67206973206e6f7420616c6c6f7765645365737472656c3a20746865207a65726f206164647265737320283078292063616e206e6f7420626520616e20616d6261737361646f7245524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa165627a7a72305820f56690d8a13e279646d0f5f621696ffcdbea17e53bc6fc18c23fe5f2ffebd6860029

Deployed Bytecode Sourcemap

20039:2720:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;20039:2720:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7629: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;7629:83:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4570:152;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4570:152:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;21356:532;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;21356:532:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;4021:91;;;:::i;:::-;;;;;;;;;;;;;;;;;;;4736:304;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4736:304:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;7827:83;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;22402:196;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;22402:196:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;21158:152;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4126:110;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4126:110:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;20708:109;;;:::i;:::-;;2196:79;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;2409:94;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;7726: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;7726:87:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21894:107;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;21894:107:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;5278:261;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5278:261:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;22219:171;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;22219:171:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;4422:134;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4422:134:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;22606:150;;;:::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;22606:150:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21002;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20831:163;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;20831:163:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;7629:83;7666:13;7699:5;7692:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7629:83;:::o;4570:152::-;4636:4;4653:39;4662:12;:10;:12::i;:::-;4676:7;4685:6;4653:8;:39::i;:::-;4710:4;4703:11;;4570:152;;;;:::o;21356:532::-;21441:4;2329:9;:7;:9::i;:::-;2321:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21484:1;21468:18;;:4;:18;;;;21460:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21573:7;:5;:7::i;:::-;21565:15;;:4;:15;;;;21557:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21648:12;:18;21661:4;21648:18;;;;;;;;;;;;;;;;;;;;;;;;;21647:19;21639:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21739:32;21749:7;:5;:7::i;:::-;21758:4;21764:6;21739:9;:32::i;:::-;21805:4;21784:12;:18;21797:4;21784:18;;;;;;;;;;;;;;;;:25;;;;;;;;;;;;;;;;;;21827:29;21843:4;21849:6;21827:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;21876:4;21869:11;;21356:532;;;;:::o;4021:91::-;4065:7;4092:12;;4085:19;;4021:91;:::o;4736:304::-;4825:4;4842:36;4852:6;4860:9;4871:6;4842:9;:36::i;:::-;4889:121;4898:6;4906:12;:10;:12::i;:::-;4920:89;4958:6;4920:89;;;;;;;;;;;;;;;;;;:11;:19;4932:6;4920:19;;;;;;;;;;;;;;;:33;4940:12;:10;:12::i;:::-;4920:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;4889:8;:121::i;:::-;5028:4;5021:11;;4736:304;;;;;:::o;7827:83::-;7868:5;7893:9;;;;;;;;;;;7886:16;;7827:83;:::o;22402:196::-;22491:4;22510:18;:16;:18::i;:::-;22546:44;22570:7;22579:10;22546:23;:44::i;:::-;22539:51;;22402:196;;;;:::o;21158:152::-;21211:9;21222:10;21234:8;21264:38;21289:12;;21264:24;:38::i;:::-;21257:45;;;;;;21158:152;;;:::o;4126:110::-;4183:7;4210:9;:18;4220:7;4210:18;;;;;;;;;;;;;;;;4203:25;;4126:110;;;:::o;20708:109::-;2329:9;:7;:9::i;:::-;2321:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20765:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2196:79;2234:7;2261:6;;;;;;;;;;;2254:13;;2196:79;:::o;2409:94::-;2449:4;2489:6;;;;;;;;;;;2473:22;;:12;:10;:12::i;:::-;:22;;;2466:29;;2409:94;:::o;7726:87::-;7765:13;7798:7;7791:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7726:87;:::o;21894:107::-;21951:4;21975:12;:18;21988:4;21975:18;;;;;;;;;;;;;;;;;;;;;;;;;21968:25;;21894:107;;;:::o;5278:261::-;5363:4;5380:129;5389:12;:10;:12::i;:::-;5403:7;5412:96;5451:15;5412:96;;;;;;;;;;;;;;;;;;:11;:25;5424:12;:10;:12::i;:::-;5412:25;;;;;;;;;;;;;;;:34;5438:7;5412:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;5380:8;:129::i;:::-;5527:4;5520:11;;5278:261;;;;:::o;22219:171::-;22294:4;22313:18;:16;:18::i;:::-;22349:33;22364:9;22375:6;22349:14;:33::i;:::-;22342:40;;22219:171;;;;:::o;4422:134::-;4494:7;4521:11;:18;4533:5;4521:18;;;;;;;;;;;;;;;:27;4540:7;4521:27;;;;;;;;;;;;;;;;4514:34;;4422:134;;;;:::o;22606:150::-;22649:13;22675:73;;;;;;;;;;;;;;;;;;;;22606:150;:::o;21002:::-;21054:9;21065:10;21077:8;21107:37;21132:11;;21107:24;:37::i;:::-;21100:44;;;;;;21002:150;;;:::o;20831:163::-;2329:9;:7;:9::i;:::-;2321:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20904:38;20913:8;20923:18;20933:7;:5;:7::i;:::-;20923:9;:18::i;:::-;20904:8;:38::i;:::-;;20953:33;20977:8;20953:23;:33::i;:::-;20831:163;:::o;1678:98::-;1723:15;1758:10;1751:17;;1678:98;:::o;6723:338::-;6834:1;6817:19;;:5;:19;;;;6809:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6915:1;6896:21;;:7;:21;;;;6888:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6999:6;6969:11;:18;6981:5;6969:18;;;;;;;;;;;;;;;:27;6988:7;6969:27;;;;;;;;;;;;;;;:36;;;;7037:7;7021:32;;7030:5;7021:32;;;7046:6;7021:32;;;;;;;;;;;;;;;;;;6723:338;;;:::o;5553:471::-;5669:1;5651:20;;:6;:20;;;;5643:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5753:1;5732:23;;:9;:23;;;;5724:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5828;5850:6;5828:71;;;;;;;;;;;;;;;;;;:9;:17;5838:6;5828:17;;;;;;;;;;;;;;;;:21;;:71;;;;;:::i;:::-;5808:9;:17;5818:6;5808:17;;;;;;;;;;;;;;;:91;;;;5933:32;5958:6;5933:9;:20;5943:9;5933:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;5910:9;:20;5920:9;5910:20;;;;;;;;;;;;;;;:55;;;;5998:9;5981:35;;5990:6;5981:35;;;6009:6;5981:35;;;;;;;;;;;;;;;;;;5553:471;;;:::o;413:192::-;499:7;532:1;527;:6;;535:12;519:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;519:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;559:9;575:1;571;:5;559:17;;596:1;589:8;;;413:192;;;;;:::o;22009:204::-;22085:12;:26;22098:12;:10;:12::i;:::-;22085:26;;;;;;;;;;;;;;;;;;;;;;;;;22084:27;:63;;;;22135:12;;22128:3;:19;;22084:63;22062:143;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22009:204::o;5054:210::-;5134:4;5151:83;5160:12;:10;:12::i;:::-;5174:7;5183:50;5222:10;5183:11;:25;5195:12;:10;:12::i;:::-;5183:25;;;;;;;;;;;;;;;:34;5209:7;5183:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;5151:8;:83::i;:::-;5252:4;5245:11;;5054:210;;;;:::o;10176:177::-;10240:9;10251:10;10263:8;10305:40;7975:12;10317:9;:27;;;;;;;;10305:11;:40::i;:::-;10284:61;;;;;;;;;;;;10176:177;;;;;:::o;4250:158::-;4319:4;4336:42;4346:12;:10;:12::i;:::-;4360:9;4371:6;4336:9;:42::i;:::-;4396:4;4389:11;;4250:158;;;;:::o;2671:109::-;2329:9;:7;:9::i;:::-;2321:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2744:28;2763:8;2744:18;:28::i;:::-;2671:109;:::o;68:181::-;126:7;146:9;162:1;158;:5;146:17;;187:1;182;:6;;174:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;240:1;233:8;;;68:181;;;;:::o;9070:622::-;9126:9;9137:10;9149:8;9170:10;9187:5;9170:23;;9206:5;8115:7;9223:5;9214:6;:14;:31;9206:39;;9256:5;9272:6;9268:1;9264;:5;:14;;;;;;;;9256:22;;9316:1;9311;9307;9298:6;:10;:14;9297:20;;;;;;;;9293:1;:24;9289:28;;9328:9;9357:7;9352:1;9348;:5;9340:4;:14;:24;;;;;;;;9328:36;;9402:2;9398:1;9390:5;9383:4;:12;:16;;;;;;;;9379:1;:20;:25;9375:29;;9415:10;9437:4;9433:1;9428:2;:6;:13;;;;;;;;9415:26;;9452:8;9483:2;9474:6;9467:4;:13;:18;;;;;;;;9463:1;:22;9452:33;;9509:2;9500:6;:11;;;;;;;;9496:15;;9549:1;9544:2;:6;9540:1;9531:6;:10;:19;9522:28;;9594:1;9586:5;9580:2;9576:1;:6;9569:3;:14;:22;:26;9561:34;;9620:5;9608:18;;9650:6;9637:20;;9679:4;9668:16;;9070:622;;;;;;;;;;;:::o;2794:229::-;2888:1;2868:22;;:8;:22;;;;2860:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2978:8;2949:38;;2970:6;;;;;;;;;;;2949:38;;;;;;;;;;;;3007:8;2998:6;;:17;;;;;;;;;;;;;;;;;;2794:229;:::o;14632:617::-;14704:17;14734:9;14754:10;14775:8;14815:40;7975:12;14827:9;:27;;;;;;;;14815:11;:40::i;:::-;14794:61;;;;;;;;;;;;14875:7;14866:16;;;;14915:2;14910:1;14902:5;:9;14901:16;;;;;;;;14893:24;;;;14955:1;14950:2;14945:1;14937:5;:9;14936:16;;;;;;;;:20;14928:28;;14967:16;14986:28;15002:4;15008:5;14986:15;:28::i;:::-;14967:47;;15035:11;15029:3;:17;15025:67;;;15069:11;15063:17;;15025:67;7975:12;15169:9;:27;;;;;;;;7975:12;15117:31;15131:4;15137:5;15144:3;15117:13;:31::i;:::-;:49;:79;15102:94;;15231:9;15215:12;:25;;15207:34;;;;;;;;14632:617;;;;;;;;:::o;619:280::-;677:7;736:1;731;:6;727:47;;;761:1;754:8;;;;727:47;786:9;802:1;798;:5;786:17;;831:1;826;822;:5;;;;;;;;:10;814:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;890:1;883:8;;;619:280;;;;;:::o;12429:391::-;12500:16;12542:1;12533:5;:10;:24;;;;12556:1;12547:5;:10;12533:24;:38;;;;12570:1;12561:5;:10;12533:38;:52;;;;12584:1;12575:5;:10;12533:52;:66;;;;12598:1;12589:5;:10;12533:66;:81;;;;12612:2;12603:5;:11;12533:81;:96;;;;12627:2;12618:5;:11;12533:96;12529:284;;;12660:2;12646:16;;12529:284;;;12693:1;12684:5;:10;;12680:133;;;12725:2;12711:16;;12680:133;;;12774:17;12786:4;12774:11;:17::i;:::-;:27;;12799:2;12774:27;;;12794:2;12774:27;12760:41;;;;12680:133;12529:284;12429:391;;;;:::o;8435:525::-;8514:10;8553:4;8545;:12;;8537:21;;;;;;;;8569:9;8585:4;8569:21;;8601:10;8618:5;8601:23;;8635:8;8650:3;8635:19;;8667:10;8115:7;8890:1;8883:3;8877:2;8871;8862:6;:11;8861:18;;;;;;;;8854:4;8846:5;:12;:33;8845:41;;;;;;;;8840:1;:47;:51;;;;;;;;8824:2;8818;8813;8807;8798:6;:11;8797:18;;;;;;;;:23;8793:1;8784:6;:10;:36;8777:3;:44;:49;;;;;;;;8762:1;8756:2;8750;8741:6;:11;8740:18;;;;;;;;8733:4;8725:5;:12;:33;8717:4;:42;:46;;;;;;;;8698:5;8680:4;:23;:83;:146;:211;:239;8667:252;;8945:6;8932:20;;8435:525;;;;;;;;;:::o;11702:159::-;11757:13;11808:1;11803;11796:4;:8;;;;;;;;:13;11795:36;;;;;11829:1;11822:3;11815:4;:10;;;;;;;;:15;;11795:36;11794:59;;;;11851:1;11844:3;11837:4;:10;;;;;;;;:15;11794:59;11783:70;;11702:159;;;:::o

Swarm Source

bzzr://f56690d8a13e279646d0f5f621696ffcdbea17e53bc6fc18c23fe5f2ffebd686
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.