ETH Price: $3,483.03 (+3.60%)
Gas: 2 Gwei

Token

Bangkaew🦴🐕🐾 (BANGK🐾)
 

Overview

Max Total Supply

1,000,000,000,000 BANGK🐾

Holders

153

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Filtered by Token Holder
Fake_Phishing308852
Balance
141,248.78113351 BANGK🐾

Value
$0.00
0xeef114d114f1947ba4a2979159818e4171e91d14
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:
Bangkaew

Compiler Version
v0.8.5+commit.a4f2e591

Optimization Enabled:
Yes with 2000 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2021-06-14
*/

/*
Bangkaew🦴🐕🐾
https://t.me/officialbangkaewtoken


SPDX-License-Identifier: M̧͖̪̬͚͕̘̻̙̫͎̉̾͑̽͌̓̏̅͌̕͘ĩ̢͎̥̦̼͖̾̀͒̚͠n̺̼̳̩̝̐͒̑̄̕͢͞è̫̦̬͙̌͗͡ş̣̞̤̲̳̭̫̬̦͗́͂̅̉̒̍͑̑̒̈́̏͟͜™͍͙͆̒̏ͅ®̳̻̋̿©͕̅
*/

// Latest as of this contract
// See https://github.com/ethereum/solidity/releases/latest
pragma solidity ^0.8.5;

abstract contract Context {
    // The reason for _msgSender() here is that if you instead reference msg.sender later (say, in the transfer() function),
    // then msg.sender might not be the actual address that sent the transaction, since there's several 
    // meta-transactions that happen within transfer() and we need to accurately define the sender in that function.
    // See https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/utils/Context.sol
    // and https://docs.soliditylang.org/en/develop/units-and-global-variables.html?highlight=msg.sender#block-and-transaction-properties
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
    // Don't need the _msgData() function from OpenZeppelin's Context.sol here since we never use it or msg.data.
}

// https://eips.ethereum.org/EIPS/eip-20
// These functions/events are part of the ERC20 standard.
// Although technically optional, name(), symbol(), and decimals() are still defined later.
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);
}

// We're not using SafeMath here anymore since it stopped being necessary in Solidity 0.8.0
// https://blog.soliditylang.org/2020/12/16/solidity-v0.8.0-release-announcement/ -
//  ..."arithmetic operations are now checked by default, which means that overflow and underflow will cause a revert"
// and we've been using versions > 0.8.0 for a while now


// This is https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/access/Ownable.sol
// minus the transferOwnership() function since we don't use it.
contract Ownable is Context {
    address private _owner;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

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

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

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

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

// https://uniswap.org/docs/v2/smart-contracts/factory/#interface minus the stuff that's never used.
// We don't need the PairCreated event defined here since the Uniswap factory will do that when createPair() is called.
interface IUniswapV2Factory {
    function createPair(address tokenA, address tokenB) external returns (address pair);
}

// https://uniswap.org/docs/v2/smart-contracts/router02/#interface minus the stuff that's never used.
interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    ) external payable returns (uint256 amountToken, uint256 amountETH, uint256 liquidity);
}

// No more comments, just to screw with people who like to copy/paste my code 🖕😀🖕 now where's my cat...
contract Bangkaew is Context, IERC20, Ownable {
    string private constant _name = unicode"Bangkaew🦴🐕🐾";
    string private constant _symbol = unicode"BANGK🐾";
    mapping (address => uint256) private _rOwned;
    mapping (address => uint256) private _tOwned;
    mapping (address => mapping(address => uint256)) private _allowances;
    mapping (address => bool) private bots;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private _isExcluded;
    IUniswapV2Router02 private uniswapV2Router;
    address[] private _excluded;
    address private c = 0xBA95a8e84E5d9002d8d0557DbC4fbC9D023866E1;
    address private _t;
    address private _m;
    address private uniswapV2Pair;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 1000000000000 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    uint256 private _taxFee;
    uint256 private _LiquidityFee;
    uint64 private GlobalTXCounter = 0;
    uint8 private constant _decimals = 9;
    uint8 private maxTx = 3;
    bool private tradingOpen;
    bool private inSwap;
    bool private swapEnabled;
    event SwapAndLiquify(uint256 tokensSwapped, uint256 ethReceived, uint256 tokensIntoLiqudity);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
    constructor(address payable t, address payable m) {
        _t = t;
        _m = m;
        _rOwned[c] = _rTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[c] = true;
        _isExcludedFromFee[_t] = true;
        _isExcludedFromFee[_m] = true;
        excludeFromReward(c);
        excludeFromReward(_t);
        excludeFromReward(_m);
    }

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

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

    function decimals() public pure returns (uint8) {
        return _decimals;
    }
    
    function totalSupply() public pure override returns (uint256) {
        return _tTotal;
    }

    function balanceOf(address account) public view override returns (uint256) {
        if (_isExcluded[account]) return _tOwned[account];
        return tokenFromReflection(_rOwned[account]);
    }
    
    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }/*
                                               .--.
                                               `.  \
                                                 \  \
                                                  .  \
                                                  :   .
                                                  |    .
                                                  |    :
                                                  |    |
  ..._  ___                                       |    |
 `."".`''''""--..___                              |    |
 ,-\  \             ""-...__         _____________/    |
 / ` " '                    `""""""""                  .
 \                                                      L
 (>                                                      \
/                                                         \
\_    ___..---.                                            L
  `--'         '.                                           \
                 .                                           \_
                _/`.                                           `.._
             .'     -.                                             `.
            /     __.-Y     /''''''-...___,...--------.._            |
           /   _."    |    /                ' .      \   '---..._    |
          /   /      /    /                _,. '    ,/           |   |
          \_,'     _.'   /              /''     _,-'            _|   |
                  '     /               `-----''               /     |
                  `...-'                                       `...-'
    */function allowance(address owner, address spender) public view override returns (uint256) {
        return _allowances[owner][spender];
    }

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

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender,_msgSender(),_allowances[sender][_msgSender()] - amount);
        return true;
    }

    function tokenFromReflection(uint256 rAmount) private view returns (uint256) {
        require(rAmount <= _rTotal,"Amount must be less than total reflections");
        uint256 currentRate = _getRate();
        return rAmount / currentRate;
    }

    function nofees() private {
        _taxFee = 0;
        _LiquidityFee = 0;
    }
    
    function basefees() private {
        _taxFee = 1;
        _LiquidityFee = 14;
    }
    
    function setBots(address[] memory bots_) public onlyOwner {
        for (uint i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }
    
    function delBot(address notbot) public onlyOwner {
        bots[notbot] = false;
    }

    function _approve(address owner, address spender, uint256 amount) private {
        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 _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        require(!bots[from] && !bots[to]);
        basefees();
        if (from != owner() && to != owner() && tradingOpen) {
            if (from != c && to != c && from != address(uniswapV2Router) && to != address(uniswapV2Router)) {
                require(_msgSender() == address(uniswapV2Router) || _msgSender() == uniswapV2Pair,"ERR: Uniswap only");
            }
            if (from == uniswapV2Pair && to != address(uniswapV2Router) && !_isExcludedFromFee[to] && !inSwap) {
                if (GlobalTXCounter < 50)
                    require(amount <= _tTotal * maxTx / 100);
            }
            if (!inSwap)
                GlobalTXCounter++;
            if (!inSwap && from != uniswapV2Pair && swapEnabled) {
                uint256 contractTokenBalance = balanceOf(c);
                if (contractTokenBalance > balanceOf(uniswapV2Pair) * 1 / 10000) {
                    swapAndLiquify(contractTokenBalance);
                }
            }
        }
        
        bool takeFee = true;

        if (_isExcludedFromFee[from] || _isExcludedFromFee[to] || inSwap) {
            takeFee = false;
        }

        _tokenTransfer(from, to, amount, takeFee);
    }
    
     function swapAndLiquify(uint256 contractTokenBalance) private lockTheSwap {
        uint256 half = contractTokenBalance / 2;
        uint256 otherHalf = contractTokenBalance - half;
        swapTokensForEth(half);
        uint256 balance = c.balance / 2;
        sendETHToFee(balance);
        addLiquidity(otherHalf, balance);
        emit SwapAndLiquify(half, balance, otherHalf);
    }
    
    function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
        _approve(c, address(uniswapV2Router), tokenAmount);
        uniswapV2Router.addLiquidityETH{value: ethAmount}(
            c,
            tokenAmount,
            0,
            0,
            owner(),
            block.timestamp
        );
    }
    
    function swapTokensForEth(uint256 tokenAmount) private {
        address[] memory path = new address[](2);
        path[0] = c;
        path[1] = uniswapV2Router.WETH();
        _approve(c, address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount, 0, path, c, block.timestamp);
    }
    
    function sendETHToFee(uint256 ETHamount) private {
        payable(_t).transfer(ETHamount / 2);
        payable(_m).transfer(ETHamount / 2);
    }
    
    
    function openTrading() external onlyOwner() {
        require(!tradingOpen, "trading is already open");
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        _approve(c, address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(c, _uniswapV2Router.WETH());
        uniswapV2Router.addLiquidityETH{value: c.balance}(c,balanceOf(c),0,0,owner(),block.timestamp);
        swapEnabled = true;
        tradingOpen = true;
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router),type(uint256).max);
    }

    function manualswap() external {
        require(_msgSender() == _t);
        uint256 contractBalance = balanceOf(c);
        swapTokensForEth(contractBalance);
    }

    function manualsend() external {
        require(_msgSender() == _t);
        uint256 contractETHBalance = c.balance;
        sendETHToFee(contractETHBalance);
    }

    function _tokenTransfer(address sender, address recipient, uint256 amount, bool takeFee) private {
        if (!takeFee) nofees();
        if (_isExcluded[sender] && !_isExcluded[recipient]) {
            _transferFromExcluded(sender, recipient, amount);
        } else if (!_isExcluded[sender] && _isExcluded[recipient]) {
            _transferToExcluded(sender, recipient, amount);
        } else if (_isExcluded[sender] && _isExcluded[recipient]) {
            _transferBothExcluded(sender, recipient, amount);
        } else {
            _transferStandard(sender, recipient, amount);
        }
    }

    function _transferToExcluded(address sender, address recipient, uint256 tAmount) private {
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tLiquidity) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender] - rAmount;
        _tOwned[recipient] = _tOwned[recipient] + tTransferAmount;
        _rOwned[recipient] = _rOwned[recipient] + rTransferAmount;
        _takeLiquidity(tLiquidity);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _transferFromExcluded(address sender, address recipient, uint256 tAmount) private {
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tLiquidity) = _getValues(tAmount);
        _tOwned[sender] = _tOwned[sender] - tAmount;
        _rOwned[sender] = _rOwned[sender] - rAmount;
        _rOwned[recipient] = _rOwned[recipient] + rTransferAmount; 
        _takeLiquidity(tLiquidity);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _transferBothExcluded(address sender, address recipient, uint256 tAmount) private {
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tLiquidity) = _getValues(tAmount);
        _tOwned[sender] = _tOwned[sender] - tAmount;
        _rOwned[sender] = _rOwned[sender] - rAmount;
        _tOwned[recipient] = _tOwned[recipient] + tTransferAmount;
        _rOwned[recipient] = _rOwned[recipient] + rTransferAmount;
        _takeLiquidity(tLiquidity);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _transferStandard(address sender, address recipient, uint256 tAmount) private {
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tLiquidity) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender] - rAmount;
        _rOwned[recipient] = _rOwned[recipient] + rTransferAmount;
        _takeLiquidity(tLiquidity);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _takeLiquidity(uint256 tLiquidity) private {
        uint256 currentRate =  _getRate();
        uint256 rLiquidity = tLiquidity * currentRate;
        _rOwned[c] = _rOwned[c] + rLiquidity;
        _tOwned[c] = _tOwned[c] + tLiquidity;
    }
	
	function _reflectFee(uint256 rFee, uint256 tFee) private {
        _rTotal = _rTotal - rFee;
        _tFeeTotal = _tFeeTotal + tFee;
    }

    receive() external payable {}

    function _getValues(uint256 tAmount) private view returns (uint256, uint256, uint256, uint256, uint256, uint256) {
        (uint256 tTransferAmount, uint256 tFee, uint256 tLiquidity) = _getTValues(tAmount, _taxFee, _LiquidityFee);
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, tLiquidity, _getRate());
        return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tLiquidity);
    }

    function _getTValues(uint256 tAmount, uint256 taxFee, uint256 LiquidityFee) private pure returns (uint256, uint256, uint256) {
        uint256 tFee = tAmount * taxFee / 100;
        uint256 tLiquidity = tAmount * LiquidityFee / 100;
		uint256 tTransferAmount = tAmount - tFee - tLiquidity;
        return (tTransferAmount, tFee, tLiquidity);
    }

    function _getRValues(uint256 tAmount, uint256 tFee, uint256 tLiquidity, uint256 currentRate) private pure returns (uint256, uint256, uint256) {
        uint256 rAmount = tAmount * currentRate;
        uint256 rFee = tFee * currentRate;
        uint256 rLiquidity = tLiquidity * currentRate;
		uint256 rTransferAmount = rAmount - rFee - rLiquidity;
        return (rAmount, rTransferAmount, rFee);
    }

    function _getRate() private view returns (uint256) {
        (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
        return rSupply / tSupply;
    }

    function excludeFromReward(address addr) internal {
        require(addr != address(uniswapV2Router), 'ERR: Can\'t exclude Uniswap router');
        require(!_isExcluded[addr], "Account is already excluded");
        if(_rOwned[addr] > 0) {
            _tOwned[addr] = tokenFromReflection(_rOwned[addr]);
        }
        _isExcluded[addr] = true;
        _excluded.push(addr);
    }

    function _getCurrentSupply() private view returns (uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;      
        for (uint256 i = 0; i < _excluded.length; i++) {
            if (_rOwned[_excluded[i]] > rSupply || _tOwned[_excluded[i]] > tSupply) return (_rTotal, _tTotal);
            rSupply = rSupply - _rOwned[_excluded[i]];
            tSupply = tSupply - _tOwned[_excluded[i]];
        }
        if (rSupply < _rTotal / _tTotal) return (_rTotal, _tTotal);
        return (rSupply, tSupply);
    }
	
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address payable","name":"t","type":"address"},{"internalType":"address payable","name":"m","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"notbot","type":"address"}],"name":"delBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"setBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600980546001600160a01b03191673ba95a8e84e5d9002d8d0557dbc4fbc9d023866e117905562000041683635c9adc5dea0000060001962000699565b6200004f9060001962000661565b600d55601180546001600160481b031916680300000000000000001790553480156200007a57600080fd5b50604051620028e2380380620028e28339810160408190526200009d9162000612565b600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600a80546001600160a01b038085166001600160a01b031992831617909255600b80548484169216919091179055600d5460095490911660009081526001602081905260408220929092556005906200013f6000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff1996871617905560098054831682526005909452828120805486166001908117909155600a54831682528382208054871682179055600b5483168252929020805490941690911790925554620001bd9116620001f3565b600a54620001d4906001600160a01b0316620001f3565b600b54620001eb906001600160a01b0316620001f3565b5050620006f2565b6007546001600160a01b0382811691161415620002615760405162461bcd60e51b815260206004820152602160248201527f4552523a2043616e2774206578636c75646520556e697377617020726f7574656044820152603960f91b60648201526084015b60405180910390fd5b6001600160a01b03811660009081526006602052604090205460ff1615620002cc5760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c756465640000000000604482015260640162000258565b6001600160a01b0381166000908152600160205260409020541562000329576001600160a01b0381166000908152600160205260409020546200030f906200038f565b6001600160a01b0382166000908152600260205260409020555b6001600160a01b03166000818152600660205260408120805460ff191660019081179091556008805491820181559091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30180546001600160a01b0319169091179055565b6000600d54821115620003f85760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b606482015260840162000258565b60006200040462000419565b90506200041281846200064a565b9392505050565b60008080620004276200043f565b90925090506200043881836200064a565b9250505090565b600d546000908190683635c9adc5dea00000825b600854811015620005b457826001600060088481548110620004795762000479620006dc565b60009182526020808320909101546001600160a01b031683528201929092526040019020541180620004e85750816002600060088481548110620004c157620004c1620006dc565b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b1562000505575050600d5493683635c9adc5dea000009350915050565b60016000600883815481106200051f576200051f620006dc565b60009182526020808320909101546001600160a01b0316835282019290925260400190205462000550908462000661565b925060026000600883815481106200056c576200056c620006dc565b60009182526020808320909101546001600160a01b031683528201929092526040019020546200059d908362000661565b915080620005ab816200067b565b91505062000453565b50683635c9adc5dea00000600d54620005ce91906200064a565b821015620005ec575050600d5492683635c9adc5dea0000092509050565b90939092509050565b80516001600160a01b03811681146200060d57600080fd5b919050565b600080604083850312156200062657600080fd5b6200063183620005f5565b91506200064160208401620005f5565b90509250929050565b6000826200065c576200065c620006c6565b500490565b600082821015620006765762000676620006b0565b500390565b6000600019821415620006925762000692620006b0565b5060010190565b600082620006ab57620006ab620006c6565b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6121e080620007026000396000f3fe6080604052600436106100f75760003560e01c8063715018a61161008a578063b515566a11610059578063b515566a146102e7578063c3c8cd8014610307578063c9567bf91461031c578063dd62ed3e1461033157600080fd5b8063715018a6146102445780638da5cb5b1461025957806395d89b4114610281578063a9059cbb146102c757600080fd5b8063273123b7116100c6578063273123b7146101d1578063313ce567146101f35780636fc3eaec1461020f57806370a082311461022457600080fd5b806306fdde0314610103578063095ea7b31461015b57806318160ddd1461018b57806323b872dd146101b157600080fd5b366100fe57005b600080fd5b34801561010f57600080fd5b5060408051808201909152601481527f42616e676b616577f09fa6b4f09f9095f09f90be00000000000000000000000060208201525b6040516101529190611fda565b60405180910390f35b34801561016757600080fd5b5061017b610176366004611e92565b610377565b6040519015158152602001610152565b34801561019757600080fd5b50683635c9adc5dea000005b604051908152602001610152565b3480156101bd57600080fd5b5061017b6101cc366004611e51565b61038d565b3480156101dd57600080fd5b506101f16101ec366004611dde565b6103df565b005b3480156101ff57600080fd5b5060405160098152602001610152565b34801561021b57600080fd5b506101f161045f565b34801561023057600080fd5b506101a361023f366004611dde565b610498565b34801561025057600080fd5b506101f16104fd565b34801561026557600080fd5b506000546040516001600160a01b039091168152602001610152565b34801561028d57600080fd5b5060408051808201909152600981527f42414e474bf09f90be00000000000000000000000000000000000000000000006020820152610145565b3480156102d357600080fd5b5061017b6102e2366004611e92565b6105ae565b3480156102f357600080fd5b506101f1610302366004611ebe565b6105bb565b34801561031357600080fd5b506101f1610681565b34801561032857600080fd5b506101f16106c4565b34801561033d57600080fd5b506101a361034c366004611e18565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b6000610384338484610b5c565b50600192915050565b600061039a848484610cb4565b6001600160a01b0384166000908152600360209081526040808320338085529252909120546103d59186916103d09086906120f9565b610b5c565b5060019392505050565b6000546001600160a01b0316331461043e5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b6001600160a01b03166000908152600460205260409020805460ff19169055565b600a546001600160a01b0316336001600160a01b03161461047f57600080fd5b6009546001600160a01b031631610495816111f3565b50565b6001600160a01b03811660009081526006602052604081205460ff16156104d557506001600160a01b031660009081526002602052604090205490565b6001600160a01b0382166000908152600160205260409020546104f790611278565b92915050565b6000546001600160a01b031633146105575760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610435565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a36000805473ffffffffffffffffffffffffffffffffffffffff19169055565b6000610384338484610cb4565b6000546001600160a01b031633146106155760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610435565b60005b815181101561067d5760016004600084848151811061063957610639612169565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061067581612110565b915050610618565b5050565b600a546001600160a01b0316336001600160a01b0316146106a157600080fd5b6009546000906106b9906001600160a01b0316610498565b90506104958161130f565b6000546001600160a01b0316331461071e5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610435565b6011546901000000000000000000900460ff161561077e5760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610435565b6007805473ffffffffffffffffffffffffffffffffffffffff1916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556009546107d4906001600160a01b031682683635c9adc5dea00000610b5c565b806001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561080d57600080fd5b505afa158015610821573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108459190611dfb565b6001600160a01b031663c9c65396600960009054906101000a90046001600160a01b0316836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156108a257600080fd5b505afa1580156108b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108da9190611dfb565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b15801561093a57600080fd5b505af115801561094e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109729190611dfb565b600c805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039283161790556007546009549082169163f305d71991168031906109b881610498565b6000806109cd6000546001600160a01b031690565b60405160e088901b7fffffffff000000000000000000000000000000000000000000000000000000001681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c4016060604051808303818588803b158015610a4857600080fd5b505af1158015610a5c573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610a819190611fac565b5050601180547fffffffffffffffffffffffffffffffffffffffff00ff00ffffffffffffffffff166b01000100000000000000000017905550600c546007546040517f095ea7b30000000000000000000000000000000000000000000000000000000081526001600160a01b039182166004820152600019602482015291169063095ea7b390604401602060405180830381600087803b158015610b2457600080fd5b505af1158015610b38573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061067d9190611f8a565b6001600160a01b038316610bd75760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f72657373000000000000000000000000000000000000000000000000000000006064820152608401610435565b6001600160a01b038216610c535760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f73730000000000000000000000000000000000000000000000000000000000006064820152608401610435565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610d305760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f64726573730000000000000000000000000000000000000000000000000000006064820152608401610435565b6001600160a01b038216610dac5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f65737300000000000000000000000000000000000000000000000000000000006064820152608401610435565b60008111610e225760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d75737420626520677265617465722060448201527f7468616e207a65726f00000000000000000000000000000000000000000000006064820152608401610435565b6001600160a01b03831660009081526004602052604090205460ff16158015610e6457506001600160a01b03821660009081526004602052604090205460ff16155b610e6d57600080fd5b610e7c6001600f55600e601055565b6000546001600160a01b03848116911614801590610ea857506000546001600160a01b03838116911614155b8015610ec357506011546901000000000000000000900460ff165b1561117b576009546001600160a01b03848116911614801590610ef457506009546001600160a01b03838116911614155b8015610f0e57506007546001600160a01b03848116911614155b8015610f2857506007546001600160a01b03838116911614155b15610fae576007546001600160a01b0316336001600160a01b03161480610f625750600c546001600160a01b0316336001600160a01b0316145b610fae5760405162461bcd60e51b815260206004820152601160248201527f4552523a20556e6973776170206f6e6c790000000000000000000000000000006044820152606401610435565b600c546001600160a01b038481169116148015610fd957506007546001600160a01b03838116911614155b8015610ffe57506001600160a01b03821660009081526005602052604090205460ff16155b801561101b57506011546a0100000000000000000000900460ff16155b1561107557601154603267ffffffffffffffff90911610156110755760115460649061105f9068010000000000000000900460ff16683635c9adc5dea000006120da565b61106991906120b8565b81111561107557600080fd5b6011546a0100000000000000000000900460ff166110cf576011805467ffffffffffffffff169060006110a78361212b565b91906101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550505b6011546a0100000000000000000000900460ff161580156110fe5750600c546001600160a01b03848116911614155b801561111b57506011546b010000000000000000000000900460ff165b1561117b57600954600090611138906001600160a01b0316610498565b600c5490915061271090611154906001600160a01b0316610498565b61115f9060016120da565b61116991906120b8565b81111561117957611179816114bf565b505b6001600160a01b03831660009081526005602052604090205460019060ff16806111bd57506001600160a01b03831660009081526005602052604090205460ff165b806111d857506011546a0100000000000000000000900460ff165b156111e1575060005b6111ed84848484611592565b50505050565b600a546001600160a01b03166108fc61120d6002846120b8565b6040518115909202916000818181858888f19350505050158015611235573d6000803e3d6000fd5b50600b546001600160a01b03166108fc6112506002846120b8565b6040518115909202916000818181858888f1935050505015801561067d573d6000803e3d6000fd5b6000600d548211156112f25760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201527f65666c656374696f6e73000000000000000000000000000000000000000000006064820152608401610435565b60006112fc6116a8565b905061130881846120b8565b9392505050565b604080516002808252606082018352600092602083019080368337505060095482519293506001600160a01b03169183915060009061135057611350612169565b6001600160a01b03928316602091820292909201810191909152600754604080517fad5c46480000000000000000000000000000000000000000000000000000000081529051919093169263ad5c4648926004808301939192829003018186803b1580156113bd57600080fd5b505afa1580156113d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113f59190611dfb565b8160018151811061140857611408612169565b6001600160a01b03928316602091820292909201015260095460075461143392918216911684610b5c565b6007546009546040517f791ac9470000000000000000000000000000000000000000000000000000000081526001600160a01b039283169263791ac947926114899287926000928892911690429060040161202f565b600060405180830381600087803b1580156114a357600080fd5b505af11580156114b7573d6000803e3d6000fd5b505050505050565b601180546aff0000000000000000000019166a010000000000000000000017905560006114ed6002836120b8565b905060006114fb82846120f9565b90506115068261130f565b600954600090611522906002906001600160a01b0316316120b8565b905061152d816111f3565b61153782826116cb565b60408051848152602081018390529081018390527f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb5619060600160405180910390a15050601180546aff00000000000000000000191690555050565b806115a6576115a66000600f819055601055565b6001600160a01b03841660009081526006602052604090205460ff1680156115e757506001600160a01b03831660009081526006602052604090205460ff16155b156115fc576115f78484846117d4565b6111ed565b6001600160a01b03841660009081526006602052604090205460ff1615801561163d57506001600160a01b03831660009081526006602052604090205460ff165b1561164d576115f78484846118fd565b6001600160a01b03841660009081526006602052604090205460ff16801561168d57506001600160a01b03831660009081526006602052604090205460ff165b1561169d576115f78484846119a9565b6111ed848484611a1e565b60008060006116b5611a63565b90925090506116c481836120b8565b9250505090565b6009546007546116e8916001600160a01b03908116911684610b5c565b6007546009546001600160a01b039182169163f305d71991849116856000806117196000546001600160a01b031690565b60405160e088901b7fffffffff000000000000000000000000000000000000000000000000000000001681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c4016060604051808303818588803b15801561179457600080fd5b505af11580156117a8573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906117cd9190611fac565b5050505050565b6000806000806000806117e687611c00565b6001600160a01b038f16600090815260026020526040902054959b509399509197509550935091506118199088906120f9565b6001600160a01b038a166000908152600260209081526040808320939093556001905220546118499087906120f9565b6001600160a01b03808b1660009081526001602052604080822093909355908a16815220546118799086906120a0565b6001600160a01b03891660009081526001602052604090205561189b81611c55565b6118a58483611cf3565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516118ea91815260200190565b60405180910390a3505050505050505050565b60008060008060008061190f87611c00565b6001600160a01b038f16600090815260016020526040902054959b509399509197509550935091506119429087906120f9565b6001600160a01b03808b16600090815260016020908152604080832094909455918b168152600290915220546119799084906120a0565b6001600160a01b0389166000908152600260209081526040808320939093556001905220546118799086906120a0565b6000806000806000806119bb87611c00565b6001600160a01b038f16600090815260026020526040902054959b509399509197509550935091506119ee9088906120f9565b6001600160a01b038a166000908152600260209081526040808320939093556001905220546119429087906120f9565b600080600080600080611a3087611c00565b6001600160a01b038f16600090815260016020526040902054959b509399509197509550935091506118499087906120f9565b600d546000908190683635c9adc5dea00000825b600854811015611bc257826001600060088481548110611a9957611a99612169565b60009182526020808320909101546001600160a01b031683528201929092526040019020541180611b045750816002600060088481548110611add57611add612169565b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b15611b20575050600d5493683635c9adc5dea000009350915050565b6001600060088381548110611b3757611b37612169565b60009182526020808320909101546001600160a01b03168352820192909252604001902054611b6690846120f9565b92506002600060088381548110611b7f57611b7f612169565b60009182526020808320909101546001600160a01b03168352820192909252604001902054611bae90836120f9565b915080611bba81612110565b915050611a77565b50683635c9adc5dea00000600d54611bda91906120b8565b821015611bf7575050600d5492683635c9adc5dea0000092509050565b90939092509050565b6000806000806000806000806000611c1d8a600f54601054611d19565b9250925092506000806000611c3b8d8686611c366116a8565b611d77565b919f909e50909c50959a5093985091965092945050505050565b6000611c5f6116a8565b90506000611c6d82846120da565b6009546001600160a01b0316600090815260016020526040902054909150611c969082906120a0565b600980546001600160a01b039081166000908152600160209081526040808320959095559254909116815260029091522054611cd39084906120a0565b6009546001600160a01b0316600090815260026020526040902055505050565b81600d54611d0191906120f9565b600d55600e54611d129082906120a0565b600e555050565b60008080806064611d2a87896120da565b611d3491906120b8565b905060006064611d44878a6120da565b611d4e91906120b8565b9050600081611d5d848b6120f9565b611d6791906120f9565b9992985090965090945050505050565b6000808080611d8685896120da565b90506000611d9486896120da565b90506000611da287896120da565b9050600081611db184866120f9565b611dbb91906120f9565b939b939a50919850919650505050505050565b8035611dd981612195565b919050565b600060208284031215611df057600080fd5b813561130881612195565b600060208284031215611e0d57600080fd5b815161130881612195565b60008060408385031215611e2b57600080fd5b8235611e3681612195565b91506020830135611e4681612195565b809150509250929050565b600080600060608486031215611e6657600080fd5b8335611e7181612195565b92506020840135611e8181612195565b929592945050506040919091013590565b60008060408385031215611ea557600080fd5b8235611eb081612195565b946020939093013593505050565b60006020808385031215611ed157600080fd5b823567ffffffffffffffff80821115611ee957600080fd5b818501915085601f830112611efd57600080fd5b813581811115611f0f57611f0f61217f565b8060051b604051601f19603f83011681018181108582111715611f3457611f3461217f565b604052828152858101935084860182860187018a1015611f5357600080fd5b600095505b83861015611f7d57611f6981611dce565b855260019590950194938601938601611f58565b5098975050505050505050565b600060208284031215611f9c57600080fd5b8151801515811461130857600080fd5b600080600060608486031215611fc157600080fd5b8351925060208401519150604084015190509250925092565b600060208083528351808285015260005b8181101561200757858101830151858201604001528201611feb565b81811115612019576000604083870101525b50601f01601f1916929092016040019392505050565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561207f5784516001600160a01b03168352938301939183019160010161205a565b50506001600160a01b03969096166060850152505050608001529392505050565b600082198211156120b3576120b3612153565b500190565b6000826120d557634e487b7160e01b600052601260045260246000fd5b500490565b60008160001904831182151516156120f4576120f4612153565b500290565b60008282101561210b5761210b612153565b500390565b600060001982141561212457612124612153565b5060010190565b600067ffffffffffffffff8083168181141561214957612149612153565b6001019392505050565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461049557600080fdfea2646970667358221220030864f4263eabc6d7fe51108b20665f69767f0de56827c761e4990418bfd05c64736f6c63430008050033000000000000000000000000ff047ea558ea2b61bc2ca18ec90fb134963de0830000000000000000000000005bcd69b4eecc446f12e75ce74a49ffe19ad118d8

Deployed Bytecode

0x6080604052600436106100f75760003560e01c8063715018a61161008a578063b515566a11610059578063b515566a146102e7578063c3c8cd8014610307578063c9567bf91461031c578063dd62ed3e1461033157600080fd5b8063715018a6146102445780638da5cb5b1461025957806395d89b4114610281578063a9059cbb146102c757600080fd5b8063273123b7116100c6578063273123b7146101d1578063313ce567146101f35780636fc3eaec1461020f57806370a082311461022457600080fd5b806306fdde0314610103578063095ea7b31461015b57806318160ddd1461018b57806323b872dd146101b157600080fd5b366100fe57005b600080fd5b34801561010f57600080fd5b5060408051808201909152601481527f42616e676b616577f09fa6b4f09f9095f09f90be00000000000000000000000060208201525b6040516101529190611fda565b60405180910390f35b34801561016757600080fd5b5061017b610176366004611e92565b610377565b6040519015158152602001610152565b34801561019757600080fd5b50683635c9adc5dea000005b604051908152602001610152565b3480156101bd57600080fd5b5061017b6101cc366004611e51565b61038d565b3480156101dd57600080fd5b506101f16101ec366004611dde565b6103df565b005b3480156101ff57600080fd5b5060405160098152602001610152565b34801561021b57600080fd5b506101f161045f565b34801561023057600080fd5b506101a361023f366004611dde565b610498565b34801561025057600080fd5b506101f16104fd565b34801561026557600080fd5b506000546040516001600160a01b039091168152602001610152565b34801561028d57600080fd5b5060408051808201909152600981527f42414e474bf09f90be00000000000000000000000000000000000000000000006020820152610145565b3480156102d357600080fd5b5061017b6102e2366004611e92565b6105ae565b3480156102f357600080fd5b506101f1610302366004611ebe565b6105bb565b34801561031357600080fd5b506101f1610681565b34801561032857600080fd5b506101f16106c4565b34801561033d57600080fd5b506101a361034c366004611e18565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b6000610384338484610b5c565b50600192915050565b600061039a848484610cb4565b6001600160a01b0384166000908152600360209081526040808320338085529252909120546103d59186916103d09086906120f9565b610b5c565b5060019392505050565b6000546001600160a01b0316331461043e5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b6001600160a01b03166000908152600460205260409020805460ff19169055565b600a546001600160a01b0316336001600160a01b03161461047f57600080fd5b6009546001600160a01b031631610495816111f3565b50565b6001600160a01b03811660009081526006602052604081205460ff16156104d557506001600160a01b031660009081526002602052604090205490565b6001600160a01b0382166000908152600160205260409020546104f790611278565b92915050565b6000546001600160a01b031633146105575760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610435565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a36000805473ffffffffffffffffffffffffffffffffffffffff19169055565b6000610384338484610cb4565b6000546001600160a01b031633146106155760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610435565b60005b815181101561067d5760016004600084848151811061063957610639612169565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061067581612110565b915050610618565b5050565b600a546001600160a01b0316336001600160a01b0316146106a157600080fd5b6009546000906106b9906001600160a01b0316610498565b90506104958161130f565b6000546001600160a01b0316331461071e5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610435565b6011546901000000000000000000900460ff161561077e5760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610435565b6007805473ffffffffffffffffffffffffffffffffffffffff1916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556009546107d4906001600160a01b031682683635c9adc5dea00000610b5c565b806001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561080d57600080fd5b505afa158015610821573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108459190611dfb565b6001600160a01b031663c9c65396600960009054906101000a90046001600160a01b0316836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156108a257600080fd5b505afa1580156108b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108da9190611dfb565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b15801561093a57600080fd5b505af115801561094e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109729190611dfb565b600c805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039283161790556007546009549082169163f305d71991168031906109b881610498565b6000806109cd6000546001600160a01b031690565b60405160e088901b7fffffffff000000000000000000000000000000000000000000000000000000001681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c4016060604051808303818588803b158015610a4857600080fd5b505af1158015610a5c573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610a819190611fac565b5050601180547fffffffffffffffffffffffffffffffffffffffff00ff00ffffffffffffffffff166b01000100000000000000000017905550600c546007546040517f095ea7b30000000000000000000000000000000000000000000000000000000081526001600160a01b039182166004820152600019602482015291169063095ea7b390604401602060405180830381600087803b158015610b2457600080fd5b505af1158015610b38573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061067d9190611f8a565b6001600160a01b038316610bd75760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f72657373000000000000000000000000000000000000000000000000000000006064820152608401610435565b6001600160a01b038216610c535760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f73730000000000000000000000000000000000000000000000000000000000006064820152608401610435565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610d305760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f64726573730000000000000000000000000000000000000000000000000000006064820152608401610435565b6001600160a01b038216610dac5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f65737300000000000000000000000000000000000000000000000000000000006064820152608401610435565b60008111610e225760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d75737420626520677265617465722060448201527f7468616e207a65726f00000000000000000000000000000000000000000000006064820152608401610435565b6001600160a01b03831660009081526004602052604090205460ff16158015610e6457506001600160a01b03821660009081526004602052604090205460ff16155b610e6d57600080fd5b610e7c6001600f55600e601055565b6000546001600160a01b03848116911614801590610ea857506000546001600160a01b03838116911614155b8015610ec357506011546901000000000000000000900460ff165b1561117b576009546001600160a01b03848116911614801590610ef457506009546001600160a01b03838116911614155b8015610f0e57506007546001600160a01b03848116911614155b8015610f2857506007546001600160a01b03838116911614155b15610fae576007546001600160a01b0316336001600160a01b03161480610f625750600c546001600160a01b0316336001600160a01b0316145b610fae5760405162461bcd60e51b815260206004820152601160248201527f4552523a20556e6973776170206f6e6c790000000000000000000000000000006044820152606401610435565b600c546001600160a01b038481169116148015610fd957506007546001600160a01b03838116911614155b8015610ffe57506001600160a01b03821660009081526005602052604090205460ff16155b801561101b57506011546a0100000000000000000000900460ff16155b1561107557601154603267ffffffffffffffff90911610156110755760115460649061105f9068010000000000000000900460ff16683635c9adc5dea000006120da565b61106991906120b8565b81111561107557600080fd5b6011546a0100000000000000000000900460ff166110cf576011805467ffffffffffffffff169060006110a78361212b565b91906101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550505b6011546a0100000000000000000000900460ff161580156110fe5750600c546001600160a01b03848116911614155b801561111b57506011546b010000000000000000000000900460ff165b1561117b57600954600090611138906001600160a01b0316610498565b600c5490915061271090611154906001600160a01b0316610498565b61115f9060016120da565b61116991906120b8565b81111561117957611179816114bf565b505b6001600160a01b03831660009081526005602052604090205460019060ff16806111bd57506001600160a01b03831660009081526005602052604090205460ff165b806111d857506011546a0100000000000000000000900460ff165b156111e1575060005b6111ed84848484611592565b50505050565b600a546001600160a01b03166108fc61120d6002846120b8565b6040518115909202916000818181858888f19350505050158015611235573d6000803e3d6000fd5b50600b546001600160a01b03166108fc6112506002846120b8565b6040518115909202916000818181858888f1935050505015801561067d573d6000803e3d6000fd5b6000600d548211156112f25760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201527f65666c656374696f6e73000000000000000000000000000000000000000000006064820152608401610435565b60006112fc6116a8565b905061130881846120b8565b9392505050565b604080516002808252606082018352600092602083019080368337505060095482519293506001600160a01b03169183915060009061135057611350612169565b6001600160a01b03928316602091820292909201810191909152600754604080517fad5c46480000000000000000000000000000000000000000000000000000000081529051919093169263ad5c4648926004808301939192829003018186803b1580156113bd57600080fd5b505afa1580156113d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113f59190611dfb565b8160018151811061140857611408612169565b6001600160a01b03928316602091820292909201015260095460075461143392918216911684610b5c565b6007546009546040517f791ac9470000000000000000000000000000000000000000000000000000000081526001600160a01b039283169263791ac947926114899287926000928892911690429060040161202f565b600060405180830381600087803b1580156114a357600080fd5b505af11580156114b7573d6000803e3d6000fd5b505050505050565b601180546aff0000000000000000000019166a010000000000000000000017905560006114ed6002836120b8565b905060006114fb82846120f9565b90506115068261130f565b600954600090611522906002906001600160a01b0316316120b8565b905061152d816111f3565b61153782826116cb565b60408051848152602081018390529081018390527f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb5619060600160405180910390a15050601180546aff00000000000000000000191690555050565b806115a6576115a66000600f819055601055565b6001600160a01b03841660009081526006602052604090205460ff1680156115e757506001600160a01b03831660009081526006602052604090205460ff16155b156115fc576115f78484846117d4565b6111ed565b6001600160a01b03841660009081526006602052604090205460ff1615801561163d57506001600160a01b03831660009081526006602052604090205460ff165b1561164d576115f78484846118fd565b6001600160a01b03841660009081526006602052604090205460ff16801561168d57506001600160a01b03831660009081526006602052604090205460ff165b1561169d576115f78484846119a9565b6111ed848484611a1e565b60008060006116b5611a63565b90925090506116c481836120b8565b9250505090565b6009546007546116e8916001600160a01b03908116911684610b5c565b6007546009546001600160a01b039182169163f305d71991849116856000806117196000546001600160a01b031690565b60405160e088901b7fffffffff000000000000000000000000000000000000000000000000000000001681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c4016060604051808303818588803b15801561179457600080fd5b505af11580156117a8573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906117cd9190611fac565b5050505050565b6000806000806000806117e687611c00565b6001600160a01b038f16600090815260026020526040902054959b509399509197509550935091506118199088906120f9565b6001600160a01b038a166000908152600260209081526040808320939093556001905220546118499087906120f9565b6001600160a01b03808b1660009081526001602052604080822093909355908a16815220546118799086906120a0565b6001600160a01b03891660009081526001602052604090205561189b81611c55565b6118a58483611cf3565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516118ea91815260200190565b60405180910390a3505050505050505050565b60008060008060008061190f87611c00565b6001600160a01b038f16600090815260016020526040902054959b509399509197509550935091506119429087906120f9565b6001600160a01b03808b16600090815260016020908152604080832094909455918b168152600290915220546119799084906120a0565b6001600160a01b0389166000908152600260209081526040808320939093556001905220546118799086906120a0565b6000806000806000806119bb87611c00565b6001600160a01b038f16600090815260026020526040902054959b509399509197509550935091506119ee9088906120f9565b6001600160a01b038a166000908152600260209081526040808320939093556001905220546119429087906120f9565b600080600080600080611a3087611c00565b6001600160a01b038f16600090815260016020526040902054959b509399509197509550935091506118499087906120f9565b600d546000908190683635c9adc5dea00000825b600854811015611bc257826001600060088481548110611a9957611a99612169565b60009182526020808320909101546001600160a01b031683528201929092526040019020541180611b045750816002600060088481548110611add57611add612169565b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b15611b20575050600d5493683635c9adc5dea000009350915050565b6001600060088381548110611b3757611b37612169565b60009182526020808320909101546001600160a01b03168352820192909252604001902054611b6690846120f9565b92506002600060088381548110611b7f57611b7f612169565b60009182526020808320909101546001600160a01b03168352820192909252604001902054611bae90836120f9565b915080611bba81612110565b915050611a77565b50683635c9adc5dea00000600d54611bda91906120b8565b821015611bf7575050600d5492683635c9adc5dea0000092509050565b90939092509050565b6000806000806000806000806000611c1d8a600f54601054611d19565b9250925092506000806000611c3b8d8686611c366116a8565b611d77565b919f909e50909c50959a5093985091965092945050505050565b6000611c5f6116a8565b90506000611c6d82846120da565b6009546001600160a01b0316600090815260016020526040902054909150611c969082906120a0565b600980546001600160a01b039081166000908152600160209081526040808320959095559254909116815260029091522054611cd39084906120a0565b6009546001600160a01b0316600090815260026020526040902055505050565b81600d54611d0191906120f9565b600d55600e54611d129082906120a0565b600e555050565b60008080806064611d2a87896120da565b611d3491906120b8565b905060006064611d44878a6120da565b611d4e91906120b8565b9050600081611d5d848b6120f9565b611d6791906120f9565b9992985090965090945050505050565b6000808080611d8685896120da565b90506000611d9486896120da565b90506000611da287896120da565b9050600081611db184866120f9565b611dbb91906120f9565b939b939a50919850919650505050505050565b8035611dd981612195565b919050565b600060208284031215611df057600080fd5b813561130881612195565b600060208284031215611e0d57600080fd5b815161130881612195565b60008060408385031215611e2b57600080fd5b8235611e3681612195565b91506020830135611e4681612195565b809150509250929050565b600080600060608486031215611e6657600080fd5b8335611e7181612195565b92506020840135611e8181612195565b929592945050506040919091013590565b60008060408385031215611ea557600080fd5b8235611eb081612195565b946020939093013593505050565b60006020808385031215611ed157600080fd5b823567ffffffffffffffff80821115611ee957600080fd5b818501915085601f830112611efd57600080fd5b813581811115611f0f57611f0f61217f565b8060051b604051601f19603f83011681018181108582111715611f3457611f3461217f565b604052828152858101935084860182860187018a1015611f5357600080fd5b600095505b83861015611f7d57611f6981611dce565b855260019590950194938601938601611f58565b5098975050505050505050565b600060208284031215611f9c57600080fd5b8151801515811461130857600080fd5b600080600060608486031215611fc157600080fd5b8351925060208401519150604084015190509250925092565b600060208083528351808285015260005b8181101561200757858101830151858201604001528201611feb565b81811115612019576000604083870101525b50601f01601f1916929092016040019392505050565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561207f5784516001600160a01b03168352938301939183019160010161205a565b50506001600160a01b03969096166060850152505050608001529392505050565b600082198211156120b3576120b3612153565b500190565b6000826120d557634e487b7160e01b600052601260045260246000fd5b500490565b60008160001904831182151516156120f4576120f4612153565b500290565b60008282101561210b5761210b612153565b500390565b600060001982141561212457612124612153565b5060010190565b600067ffffffffffffffff8083168181141561214957612149612153565b6001019392505050565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461049557600080fdfea2646970667358221220030864f4263eabc6d7fe51108b20665f69767f0de56827c761e4990418bfd05c64736f6c63430008050033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

000000000000000000000000ff047ea558ea2b61bc2ca18ec90fb134963de0830000000000000000000000005bcd69b4eecc446f12e75ce74a49ffe19ad118d8

-----Decoded View---------------
Arg [0] : t (address): 0xFf047Ea558Ea2B61bC2CA18eC90fb134963DE083
Arg [1] : m (address): 0x5Bcd69B4eeCC446F12e75CE74a49FFe19aD118d8

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000ff047ea558ea2b61bc2ca18ec90fb134963de083
Arg [1] : 0000000000000000000000005bcd69b4eecc446f12e75ce74a49ffe19ad118d8


Deployed Bytecode Sourcemap

4582:15419:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6387:83;;;;;;;;;;-1:-1:-1;6457:5:0;;;;;;;;;;;;;;;;;6387:83;;;;;;;:::i;:::-;;;;;;;;8931:161;;;;;;;;;;-1:-1:-1;8931:161:0;;;;;:::i;:::-;;:::i;:::-;;;5289:14:1;;5282:22;5264:41;;5252:2;5237:18;8931:161:0;5219:92:1;6668:95:0;;;;;;;;;;-1:-1:-1;5417:21:0;6668:95;;;9621:25:1;;;9609:2;9594:18;6668:95:0;9576:76:1;9100:264:0;;;;;;;;;;-1:-1:-1;9100:264:0;;;;;:::i;:::-;;:::i;10001:88::-;;;;;;;;;;-1:-1:-1;10001:88:0;;;;;:::i;:::-;;:::i;:::-;;6573:83;;;;;;;;;;-1:-1:-1;6573:83:0;;5676:1;11154:36:1;;11142:2;11127:18;6573:83:0;11109:87:1;14129:169:0;;;;;;;;;;;;;:::i;6771:198::-;;;;;;;;;;-1:-1:-1;6771:198:0;;;;;:::i;:::-;;:::i;3195:148::-;;;;;;;;;;;;;:::i;2981:79::-;;;;;;;;;;-1:-1:-1;3019:7:0;3046:6;2981:79;;-1:-1:-1;;;;;3046:6:0;;;3770:74:1;;3758:2;3743:18;2981:79:0;3725:125:1;6478:87:0;;;;;;;;;;-1:-1:-1;6550:7:0;;;;;;;;;;;;;;;;;6478:87;;6981:167;;;;;;;;;;-1:-1:-1;6981:167:0;;;;;:::i;:::-;;:::i;9825:164::-;;;;;;;;;;-1:-1:-1;9825:164:0;;;;;:::i;:::-;;:::i;13951:170::-;;;;;;;;;;;;;:::i;13262:681::-;;;;;;;;;;;;;:::i;8780:143::-;;;;;;;;;;-1:-1:-1;8780:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;8888:18:0;;;8861:7;8888:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;8780:143;8931:161;9006:4;9023:39;1119:10;9046:7;9055:6;9023:8;:39::i;:::-;-1:-1:-1;9080:4:0;8931:161;;;;:::o;9100:264::-;9198:4;9215:36;9225:6;9233:9;9244:6;9215:9;:36::i;:::-;-1:-1:-1;;;;;9291:19:0;;;;;;:11;:19;;;;;;;;1119:10;9291:33;;;;;;;;;9262:72;;9271:6;;9291:42;;9327:6;;9291:42;:::i;:::-;9262:8;:72::i;:::-;-1:-1:-1;9352:4:0;9100:264;;;;;:::o;10001:88::-;3108:6;;-1:-1:-1;;;;;3108:6:0;1119:10;3108:22;3100:67;;;;-1:-1:-1;;;3100:67:0;;7397:2:1;3100:67:0;;;7379:21:1;;;7416:18;;;7409:30;7475:34;7455:18;;;7448:62;7527:18;;3100:67:0;;;;;;;;;-1:-1:-1;;;;;10061:12:0::1;10076:5;10061:12:::0;;;:4:::1;:12;::::0;;;;:20;;-1:-1:-1;;10061:20:0::1;::::0;;10001:88::o;14129:169::-;14195:2;;-1:-1:-1;;;;;14195:2:0;1119:10;-1:-1:-1;;;;;14179:18:0;;14171:27;;;;;;14238:1;;-1:-1:-1;;;;;14238:1:0;:9;14258:32;14238:9;14258:12;:32::i;:::-;14160:138;14129:169::o;6771:198::-;-1:-1:-1;;;;;6861:20:0;;6837:7;6861:20;;;:11;:20;;;;;;;;6857:49;;;-1:-1:-1;;;;;;6890:16:0;;;;;:7;:16;;;;;;;6771:198::o;6857:49::-;-1:-1:-1;;;;;6944:16:0;;;;;;:7;:16;;;;;;6924:37;;:19;:37::i;:::-;6917:44;6771:198;-1:-1:-1;;6771:198:0:o;3195:148::-;3108:6;;-1:-1:-1;;;;;3108:6:0;1119:10;3108:22;3100:67;;;;-1:-1:-1;;;3100:67:0;;7397:2:1;3100:67:0;;;7379:21:1;;;7416:18;;;7409:30;7475:34;7455:18;;;7448:62;7527:18;;3100:67:0;7369:182:1;3100:67:0;3302:1:::1;3286:6:::0;;3265:40:::1;::::0;-1:-1:-1;;;;;3286:6:0;;::::1;::::0;3265:40:::1;::::0;3302:1;;3265:40:::1;3333:1;3316:19:::0;;-1:-1:-1;;3316:19:0::1;::::0;;3195:148::o;6981:167::-;7059:4;7076:42;1119:10;7100:9;7111:6;7076:9;:42::i;9825:164::-;3108:6;;-1:-1:-1;;;;;3108:6:0;1119:10;3108:22;3100:67;;;;-1:-1:-1;;;3100:67:0;;7397:2:1;3100:67:0;;;7379:21:1;;;7416:18;;;7409:30;7475:34;7455:18;;;7448:62;7527:18;;3100:67:0;7369:182:1;3100:67:0;9899:6:::1;9894:88;9915:5;:12;9911:1;:16;9894:88;;;9966:4;9949;:14;9954:5;9960:1;9954:8;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;9949:14:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;9949:14:0;:21;;-1:-1:-1;;9949:21:0::1;::::0;::::1;;::::0;;;::::1;::::0;;9929:3;::::1;::::0;::::1;:::i;:::-;;;;9894:88;;;;9825:164:::0;:::o;13951:170::-;14017:2;;-1:-1:-1;;;;;14017:2:0;1119:10;-1:-1:-1;;;;;14001:18:0;;13993:27;;;;;;14067:1;;14031:23;;14057:12;;-1:-1:-1;;;;;14067:1:0;14057:9;:12::i;:::-;14031:38;;14080:33;14097:15;14080:16;:33::i;13262:681::-;3108:6;;-1:-1:-1;;;;;3108:6:0;1119:10;3108:22;3100:67;;;;-1:-1:-1;;;3100:67:0;;7397:2:1;3100:67:0;;;7379:21:1;;;7416:18;;;7409:30;7475:34;7455:18;;;7448:62;7527:18;;3100:67:0;7369:182:1;3100:67:0;13326:11:::1;::::0;;;::::1;;;13325:12;13317:48;;;::::0;-1:-1:-1;;;13317:48:0;;8979:2:1;13317:48:0::1;::::0;::::1;8961:21:1::0;9018:2;8998:18;;;8991:30;9057:25;9037:18;;;9030:53;9100:18;;13317:48:0::1;8951:173:1::0;13317:48:0::1;13487:15;:34:::0;;-1:-1:-1;;13487:34:0::1;13433:42;13487:34:::0;;::::1;::::0;;;13541:1:::1;::::0;13532:46:::1;::::0;-1:-1:-1;;;;;13541:1:0::1;13433:42:::0;5417:21:::1;13532:8;:46::i;:::-;13623:16;-1:-1:-1::0;;;;;13623:24:0::1;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;13605:56:0::1;;13662:1;;;;;;;;;-1:-1:-1::0;;;;;13662:1:0::1;13665:16;-1:-1:-1::0;;;;;13665:21:0::1;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13605:84;::::0;;::::1;::::0;;;;;;-1:-1:-1;;;;;4108:15:1;;;13605:84:0::1;::::0;::::1;4090:34:1::0;4160:15;;4140:18;;;4133:43;4002:18;;13605:84:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13589:13;:100:::0;;-1:-1:-1;;13589:100:0::1;-1:-1:-1::0;;;;;13589:100:0;;::::1;;::::0;;13700:15:::1;::::0;13739:1:::1;::::0;13700:15;;::::1;::::0;:31:::1;::::0;13739:1:::1;:9:::0;::::1;::::0;13752:12:::1;13739:1:::0;13752:9:::1;:12::i;:::-;13765:1;13767::::0;13769:7:::1;3019::::0;3046:6;-1:-1:-1;;;;;3046:6:0;;2981:79;13769:7:::1;13700:93;::::0;::::1;::::0;;;;;;;-1:-1:-1;;;;;4871:15:1;;;13700:93:0::1;::::0;::::1;4853:34:1::0;4903:18;;;4896:34;;;;4946:18;;;4939:34;;;;4989:18;;;4982:34;5053:15;;;5032:19;;;5025:44;13777:15:0::1;5085:19:1::0;;;5078:35;4764:19;;13700:93:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;13804:11:0::1;:18:::0;;13833;;;;;;-1:-1:-1;13869:13:0::1;::::0;13900:15:::1;::::0;13862:73:::1;::::0;;;;-1:-1:-1;;;;;13900:15:0;;::::1;13862:73;::::0;::::1;4361:74:1::0;-1:-1:-1;;4451:18:1;;;4444:34;13869:13:0;::::1;::::0;13862:29:::1;::::0;4334:18:1;;13862:73:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;10097:335::-:0;-1:-1:-1;;;;;10190:19:0;;10182:68;;;;-1:-1:-1;;;10182:68:0;;8574:2:1;10182:68:0;;;8556:21:1;8613:2;8593:18;;;8586:30;8652:34;8632:18;;;8625:62;8723:6;8703:18;;;8696:34;8747:19;;10182:68:0;8546:226:1;10182:68:0;-1:-1:-1;;;;;10269:21:0;;10261:68;;;;-1:-1:-1;;;10261:68:0;;6994:2:1;10261:68:0;;;6976:21:1;7033:2;7013:18;;;7006:30;7072:34;7052:18;;;7045:62;7143:4;7123:18;;;7116:32;7165:19;;10261:68:0;6966:224:1;10261:68:0;-1:-1:-1;;;;;10340:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;10392:32;;9621:25:1;;;10392:32:0;;9594:18:1;10392:32:0;;;;;;;10097:335;;;:::o;10444:1511::-;-1:-1:-1;;;;;10532:18:0;;10524:68;;;;-1:-1:-1;;;10524:68:0;;8168:2:1;10524:68:0;;;8150:21:1;8207:2;8187:18;;;8180:30;8246:34;8226:18;;;8219:62;8317:7;8297:18;;;8290:35;8342:19;;10524:68:0;8140:227:1;10524:68:0;-1:-1:-1;;;;;10611:16:0;;10603:64;;;;-1:-1:-1;;;10603:64:0;;6179:2:1;10603:64:0;;;6161:21:1;6218:2;6198:18;;;6191:30;6257:34;6237:18;;;6230:62;6328:5;6308:18;;;6301:33;6351:19;;10603:64:0;6151:225:1;10603:64:0;10695:1;10686:6;:10;10678:64;;;;-1:-1:-1;;;10678:64:0;;7758:2:1;10678:64:0;;;7740:21:1;7797:2;7777:18;;;7770:30;7836:34;7816:18;;;7809:62;7907:11;7887:18;;;7880:39;7936:19;;10678:64:0;7730:231:1;10678:64:0;-1:-1:-1;;;;;10762:10:0;;;;;;:4;:10;;;;;;;;10761:11;:24;;;;-1:-1:-1;;;;;;10777:8:0;;;;;;:4;:8;;;;;;;;10776:9;10761:24;10753:33;;;;;;10797:10;9775:1;9765:7;:11;9803:2;9787:13;:18;9726:87;10797:10;3019:7;3046:6;-1:-1:-1;;;;;10822:15:0;;;3046:6;;10822:15;;;;:32;;-1:-1:-1;3019:7:0;3046:6;-1:-1:-1;;;;;10841:13:0;;;3046:6;;10841:13;;10822:32;:47;;;;-1:-1:-1;10858:11:0;;;;;;;10822:47;10818:916;;;10898:1;;-1:-1:-1;;;;;10890:9:0;;;10898:1;;10890:9;;;;:20;;-1:-1:-1;10909:1:0;;-1:-1:-1;;;;;10903:7:0;;;10909:1;;10903:7;;10890:20;:56;;;;-1:-1:-1;10930:15:0;;-1:-1:-1;;;;;10914:32:0;;;10930:15;;10914:32;;10890:56;:90;;;;-1:-1:-1;10964:15:0;;-1:-1:-1;;;;;10950:30:0;;;10964:15;;10950:30;;10890:90;10886:233;;;11033:15;;-1:-1:-1;;;;;11033:15:0;1119:10;-1:-1:-1;;;;;11009:40:0;;:73;;;-1:-1:-1;11069:13:0;;-1:-1:-1;;;;;11069:13:0;1119:10;-1:-1:-1;;;;;11053:29:0;;11009:73;11001:102;;;;-1:-1:-1;;;11001:102:0;;9331:2:1;11001:102:0;;;9313:21:1;9370:2;9350:18;;;9343:30;9409:19;9389:18;;;9382:47;9446:18;;11001:102:0;9303:167:1;11001:102:0;11145:13;;-1:-1:-1;;;;;11137:21:0;;;11145:13;;11137:21;:55;;;;-1:-1:-1;11176:15:0;;-1:-1:-1;;;;;11162:30:0;;;11176:15;;11162:30;;11137:55;:82;;;;-1:-1:-1;;;;;;11197:22:0;;;;;;:18;:22;;;;;;;;11196:23;11137:82;:93;;;;-1:-1:-1;11224:6:0;;;;;;;11223:7;11137:93;11133:221;;;11255:15;;11273:2;11255:15;;;;:20;11251:87;;;11326:5;;11334:3;;11316:15;;11326:5;;;;;5417:21;11316:15;:::i;:::-;:21;;;;:::i;:::-;11306:6;:31;;11298:40;;;;;;11373:6;;;;;;;11368:47;;11398:15;:17;;;;;:15;:17;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;11368:47;11435:6;;;;;;;11434:7;:32;;;;-1:-1:-1;11453:13:0;;-1:-1:-1;;;;;11445:21:0;;;11453:13;;11445:21;;11434:32;:47;;;;-1:-1:-1;11470:11:0;;;;;;;11434:47;11430:293;;;11543:1;;11502:28;;11533:12;;-1:-1:-1;;;;;11543:1:0;11533:9;:12::i;:::-;11601:13;;11502:43;;-1:-1:-1;11622:5:0;;11591:24;;-1:-1:-1;;;;;11601:13:0;11591:9;:24::i;:::-;:28;;11618:1;11591:28;:::i;:::-;:36;;;;:::i;:::-;11568:20;:59;11564:144;;;11652:36;11667:20;11652:14;:36::i;:::-;11483:240;11430:293;-1:-1:-1;;;;;11790:24:0;;11754:12;11790:24;;;:18;:24;;;;;;11769:4;;11790:24;;;:50;;-1:-1:-1;;;;;;11818:22:0;;;;;;:18;:22;;;;;;;;11790:50;:60;;;-1:-1:-1;11844:6:0;;;;;;;11790:60;11786:108;;;-1:-1:-1;11877:5:0;11786:108;11906:41;11921:4;11927:2;11931:6;11939:7;11906:14;:41::i;:::-;10513:1442;10444:1511;;;:::o;13095:149::-;13163:2;;-1:-1:-1;;;;;13163:2:0;13155:35;13176:13;13188:1;13176:9;:13;:::i;:::-;13155:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;13209:2:0;;-1:-1:-1;;;;;13209:2:0;13201:35;13222:13;13234:1;13222:9;:13;:::i;:::-;13201:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9372:250;9440:7;9479;;9468;:18;;9460:72;;;;-1:-1:-1;;;9460:72:0;;6583:2:1;9460:72:0;;;6565:21:1;6622:2;6602:18;;;6595:30;6661:34;6641:18;;;6634:62;6732:12;6712:18;;;6705:40;6762:19;;9460:72:0;6555:232:1;9460:72:0;9543:19;9565:10;:8;:10::i;:::-;9543:32;-1:-1:-1;9593:21:0;9543:32;9593:7;:21;:::i;:::-;9586:28;9372:250;-1:-1:-1;;;9372:250:0:o;12724:359::-;12814:16;;;12828:1;12814:16;;;;;;;;12790:21;;12814:16;;;;;;;;-1:-1:-1;;12851:1:0;;12841:7;;;;-1:-1:-1;;;;;;12851:1:0;;12841:7;;-1:-1:-1;12851:1:0;;12841:7;;;;:::i;:::-;-1:-1:-1;;;;;12841:11:0;;;:7;;;;;;;;;;:11;;;;12873:15;;:22;;;;;;;;:15;;;;;:20;;:22;;;;;12841:7;;12873:22;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12863:4;12868:1;12863:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;12863:32:0;;;:7;;;;;;;;;:32;12915:1;;12926:15;;12906:50;;12915:1;;;;12926:15;12944:11;12906:8;:50::i;:::-;12967:15;;13056:1;;12967:108;;;;;-1:-1:-1;;;;;12967:15:0;;;;:66;;:108;;13034:11;;12967:15;;13050:4;;13056:1;;;13059:15;;12967:108;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12779:304;12724:359;:::o;11968:396::-;5933:6;:13;;-1:-1:-1;;5933:13:0;;;;;;12068:24:::1;12091:1;12068:20:::0;:24:::1;:::i;:::-;12053:39:::0;-1:-1:-1;12103:17:0::1;12123:27;12053:39:::0;12123:20;:27:::1;:::i;:::-;12103:47;;12161:22;12178:4;12161:16;:22::i;:::-;12212:1;::::0;12194:15:::1;::::0;12212:13:::1;::::0;12224:1:::1;::::0;-1:-1:-1;;;;;12212:1:0::1;:9;:13;:::i;:::-;12194:31;;12236:21;12249:7;12236:12;:21::i;:::-;12268:32;12281:9;12292:7;12268:12;:32::i;:::-;12316:40;::::0;;10890:25:1;;;10946:2;10931:18;;10924:34;;;10974:18;;;10967:34;;;12316:40:0::1;::::0;10878:2:1;10863:18;12316:40:0::1;;;;;;;-1:-1:-1::0;;5969:6:0;:14;;-1:-1:-1;;5969:14:0;;;-1:-1:-1;;11968:396:0:o;14306:615::-;14419:7;14414:22;;14428:8;9677:1;9667:7;:11;;;9689:13;:17;9630:84;14428:8;-1:-1:-1;;;;;14451:19:0;;;;;;:11;:19;;;;;;;;:46;;;;-1:-1:-1;;;;;;14475:22:0;;;;;;:11;:22;;;;;;;;14474:23;14451:46;14447:467;;;14514:48;14536:6;14544:9;14555:6;14514:21;:48::i;:::-;14447:467;;;-1:-1:-1;;;;;14585:19:0;;;;;;:11;:19;;;;;;;;14584:20;:46;;;;-1:-1:-1;;;;;;14608:22:0;;;;;;:11;:22;;;;;;;;14584:46;14580:334;;;14647:46;14667:6;14675:9;14686:6;14647:19;:46::i;14580:334::-;-1:-1:-1;;;;;14715:19:0;;;;;;:11;:19;;;;;;;;:45;;;;-1:-1:-1;;;;;;14738:22:0;;;;;;:11;:22;;;;;;;;14715:45;14711:203;;;14777:48;14799:6;14807:9;14818:6;14777:21;:48::i;14711:203::-;14858:44;14876:6;14884:9;14895:6;14858:17;:44::i;18873:161::-;18915:7;18936:15;18953;18972:19;:17;:19::i;:::-;18935:56;;-1:-1:-1;18935:56:0;-1:-1:-1;19009:17:0;18935:56;;19009:17;:::i;:::-;19002:24;;;;18873:161;:::o;12376:336::-;12466:1;;12477:15;;12457:50;;-1:-1:-1;;;;;12466:1:0;;;;12477:15;12495:11;12457:8;:50::i;:::-;12518:15;;12582:1;;-1:-1:-1;;;;;12518:15:0;;;;:31;;12557:9;;12582:1;12598:11;12518:15;;12656:7;3019;3046:6;-1:-1:-1;;;;;3046:6:0;;2981:79;12656:7;12518:186;;;;;;;;;;-1:-1:-1;;;;;4871:15:1;;;12518:186:0;;;4853:34:1;4903:18;;;4896:34;;;;4946:18;;;4939:34;;;;4989:18;;;4982:34;5053:15;;;5032:19;;;5025:44;12678:15:0;5085:19:1;;;5078:35;4764:19;;12518:186:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;12376:336;;:::o;15503:555::-;15606:15;15623:23;15648:12;15662:23;15687:12;15701:18;15723:19;15734:7;15723:10;:19::i;:::-;-1:-1:-1;;;;;15771:15:0;;;;;;:7;:15;;;;;;15605:137;;-1:-1:-1;15605:137:0;;-1:-1:-1;15605:137:0;;-1:-1:-1;15605:137:0;-1:-1:-1;15605:137:0;-1:-1:-1;15605:137:0;-1:-1:-1;15771:25:0;;15789:7;;15771:25;:::i;:::-;-1:-1:-1;;;;;15753:15:0;;;;;;:7;:15;;;;;;;;:43;;;;15825:7;:15;;;;:25;;15843:7;;15825:25;:::i;:::-;-1:-1:-1;;;;;15807:15:0;;;;;;;:7;:15;;;;;;:43;;;;15882:18;;;;;;;:36;;15903:15;;15882:36;:::i;:::-;-1:-1:-1;;;;;15861:18:0;;;;;;:7;:18;;;;;:57;15930:26;15945:10;15930:14;:26::i;:::-;15967:23;15979:4;15985;15967:11;:23::i;:::-;16023:9;-1:-1:-1;;;;;16006:44:0;16015:6;-1:-1:-1;;;;;16006:44:0;;16034:15;16006:44;;;;9621:25:1;;9609:2;9594:18;;9576:76;16006:44:0;;;;;;;;15594:464;;;;;;15503:555;;;:::o;14929:566::-;15030:15;15047:23;15072:12;15086:23;15111:12;15125:18;15147:19;15158:7;15147:10;:19::i;:::-;-1:-1:-1;;;;;15195:15:0;;;;;;:7;:15;;;;;;15029:137;;-1:-1:-1;15029:137:0;;-1:-1:-1;15029:137:0;;-1:-1:-1;15029:137:0;-1:-1:-1;15029:137:0;-1:-1:-1;15029:137:0;-1:-1:-1;15195:25:0;;15029:137;;15195:25;:::i;:::-;-1:-1:-1;;;;;15177:15:0;;;;;;;:7;:15;;;;;;;;:43;;;;15252:18;;;;;:7;:18;;;;;:36;;15273:15;;15252:36;:::i;:::-;-1:-1:-1;;;;;15231:18:0;;;;;;:7;:18;;;;;;;;:57;;;;15320:7;:18;;;;:36;;15341:15;;15320:36;:::i;16066:622::-;16169:15;16186:23;16211:12;16225:23;16250:12;16264:18;16286:19;16297:7;16286:10;:19::i;:::-;-1:-1:-1;;;;;16334:15:0;;;;;;:7;:15;;;;;;16168:137;;-1:-1:-1;16168:137:0;;-1:-1:-1;16168:137:0;;-1:-1:-1;16168:137:0;-1:-1:-1;16168:137:0;-1:-1:-1;16168:137:0;-1:-1:-1;16334:25:0;;16352:7;;16334:25;:::i;:::-;-1:-1:-1;;;;;16316:15:0;;;;;;:7;:15;;;;;;;;:43;;;;16388:7;:15;;;;:25;;16406:7;;16388:25;:::i;16696:496::-;16795:15;16812:23;16837:12;16851:23;16876:12;16890:18;16912:19;16923:7;16912:10;:19::i;:::-;-1:-1:-1;;;;;16960:15:0;;;;;;:7;:15;;;;;;16794:137;;-1:-1:-1;16794:137:0;;-1:-1:-1;16794:137:0;;-1:-1:-1;16794:137:0;-1:-1:-1;16794:137:0;-1:-1:-1;16794:137:0;-1:-1:-1;16960:25:0;;16794:137;;16960:25;:::i;19442:553::-;19540:7;;19493;;;;5417:21;19493:7;19600:283;19624:9;:16;19620:20;;19600:283;;;19690:7;19666;:21;19674:9;19684:1;19674:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;19674:12:0;19666:21;;;;;;;;;;;;;:31;;:66;;;19725:7;19701;:21;19709:9;19719:1;19709:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;19709:12:0;19701:21;;;;;;;;;;;;;:31;19666:66;19662:97;;;-1:-1:-1;;19742:7:0;;;5417:21;;-1:-1:-1;19442:553:0;-1:-1:-1;;19442:553:0:o;19662:97::-;19794:7;:21;19802:9;19812:1;19802:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;19802:12:0;19794:21;;;;;;;;;;;;;19784:31;;:7;:31;:::i;:::-;19774:41;;19850:7;:21;19858:9;19868:1;19858:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;19858:12:0;19850:21;;;;;;;;;;;;;19840:31;;:7;:31;:::i;:::-;19830:41;-1:-1:-1;19642:3:0;;;;:::i;:::-;;;;19600:283;;;;5417:21;19907:7;;:17;;;;:::i;:::-;19897:7;:27;19893:58;;;-1:-1:-1;;19934:7:0;;;5417:21;;-1:-1:-1;19442:553:0;-1:-1:-1;19442:553:0:o;19893:58::-;19970:7;;19979;;-1:-1:-1;19442:553:0;-1:-1:-1;19442:553:0:o;17646:443::-;17705:7;17714;17723;17732;17741;17750;17771:23;17796:12;17810:18;17832:44;17844:7;17853;;17862:13;;17832:11;:44::i;:::-;17770:106;;;;;;17888:15;17905:23;17930:12;17946:50;17958:7;17967:4;17973:10;17985;:8;:10::i;:::-;17946:11;:50::i;:::-;17887:109;;;;-1:-1:-1;17887:109:0;;-1:-1:-1;18047:15:0;;-1:-1:-1;18064:4:0;;-1:-1:-1;18070:10:0;;-1:-1:-1;17646:443:0;;-1:-1:-1;;;;;17646:443:0:o;17200:254::-;17263:19;17286:10;:8;:10::i;:::-;17263:33;-1:-1:-1;17307:18:0;17328:24;17263:33;17328:10;:24;:::i;:::-;17384:1;;-1:-1:-1;;;;;17384:1:0;17376:10;;;;:7;:10;;;;;;17307:45;;-1:-1:-1;17376:23:0;;17307:45;;17376:23;:::i;:::-;17371:1;;;-1:-1:-1;;;;;17371:1:0;;;17363:10;;;;:7;:10;;;;;;;;:36;;;;17431:1;;;;;17423:10;;:7;:10;;;;;:23;;17436:10;;17423:23;:::i;:::-;17418:1;;-1:-1:-1;;;;;17418:1:0;17410:10;;;;:7;:10;;;;;:36;-1:-1:-1;;;17200:254:0:o;17460:141::-;17548:4;17538:7;;:14;;;;:::i;:::-;17528:7;:24;17576:10;;:17;;17589:4;;17576:17;:::i;:::-;17563:10;:30;-1:-1:-1;;17460:141:0:o;18097:352::-;18195:7;;;;18267:3;18248:16;18258:6;18248:7;:16;:::i;:::-;:22;;;;:::i;:::-;18233:37;-1:-1:-1;18281:18:0;18327:3;18302:22;18312:12;18302:7;:22;:::i;:::-;:28;;;;:::i;:::-;18281:49;-1:-1:-1;18335:23:0;18281:49;18361:14;18371:4;18361:7;:14;:::i;:::-;:27;;;;:::i;:::-;18335:53;18424:4;;-1:-1:-1;18430:10:0;;-1:-1:-1;18097:352:0;;-1:-1:-1;;;;;18097:352:0:o;18457:408::-;18572:7;;;;18628:21;18638:11;18628:7;:21;:::i;:::-;18610:39;-1:-1:-1;18660:12:0;18675:18;18682:11;18675:4;:18;:::i;:::-;18660:33;-1:-1:-1;18704:18:0;18725:24;18738:11;18725:10;:24;:::i;:::-;18704:45;-1:-1:-1;18754:23:0;18704:45;18780:14;18790:4;18780:7;:14;:::i;:::-;:27;;;;:::i;:::-;18826:7;;;;-1:-1:-1;18852:4:0;;-1:-1:-1;18457:408:0;;-1:-1:-1;;;;;;;18457:408:0:o;14:134:1:-;82:20;;111:31;82:20;111:31;:::i;:::-;63:85;;;:::o;153:247::-;212:6;265:2;253:9;244:7;240:23;236:32;233:2;;;281:1;278;271:12;233:2;320:9;307:23;339:31;364:5;339:31;:::i;405:251::-;475:6;528:2;516:9;507:7;503:23;499:32;496:2;;;544:1;541;534:12;496:2;576:9;570:16;595:31;620:5;595:31;:::i;661:388::-;729:6;737;790:2;778:9;769:7;765:23;761:32;758:2;;;806:1;803;796:12;758:2;845:9;832:23;864:31;889:5;864:31;:::i;:::-;914:5;-1:-1:-1;971:2:1;956:18;;943:32;984:33;943:32;984:33;:::i;:::-;1036:7;1026:17;;;748:301;;;;;:::o;1054:456::-;1131:6;1139;1147;1200:2;1188:9;1179:7;1175:23;1171:32;1168:2;;;1216:1;1213;1206:12;1168:2;1255:9;1242:23;1274:31;1299:5;1274:31;:::i;:::-;1324:5;-1:-1:-1;1381:2:1;1366:18;;1353:32;1394:33;1353:32;1394:33;:::i;:::-;1158:352;;1446:7;;-1:-1:-1;;;1500:2:1;1485:18;;;;1472:32;;1158:352::o;1515:315::-;1583:6;1591;1644:2;1632:9;1623:7;1619:23;1615:32;1612:2;;;1660:1;1657;1650:12;1612:2;1699:9;1686:23;1718:31;1743:5;1718:31;:::i;:::-;1768:5;1820:2;1805:18;;;;1792:32;;-1:-1:-1;;;1602:228:1:o;1835:1191::-;1919:6;1950:2;1993;1981:9;1972:7;1968:23;1964:32;1961:2;;;2009:1;2006;1999:12;1961:2;2049:9;2036:23;2078:18;2119:2;2111:6;2108:14;2105:2;;;2135:1;2132;2125:12;2105:2;2173:6;2162:9;2158:22;2148:32;;2218:7;2211:4;2207:2;2203:13;2199:27;2189:2;;2240:1;2237;2230:12;2189:2;2276;2263:16;2298:2;2294;2291:10;2288:2;;;2304:18;;:::i;:::-;2350:2;2347:1;2343:10;2382:2;2376:9;-1:-1:-1;;2436:2:1;2432;2428:11;2424:84;2416:6;2412:97;2559:6;2547:10;2544:22;2539:2;2527:10;2524:18;2521:46;2518:2;;;2570:18;;:::i;:::-;2606:2;2599:22;2656:18;;;2690:15;;;;-1:-1:-1;2725:11:1;;;2755;;;2751:20;;2748:33;-1:-1:-1;2745:2:1;;;2794:1;2791;2784:12;2745:2;2816:1;2807:10;;2826:169;2840:2;2837:1;2834:9;2826:169;;;2897:23;2916:3;2897:23;:::i;:::-;2885:36;;2858:1;2851:9;;;;;2941:12;;;;2973;;2826:169;;;-1:-1:-1;3014:6:1;1930:1096;-1:-1:-1;;;;;;;;1930:1096:1:o;3031:277::-;3098:6;3151:2;3139:9;3130:7;3126:23;3122:32;3119:2;;;3167:1;3164;3157:12;3119:2;3199:9;3193:16;3252:5;3245:13;3238:21;3231:5;3228:32;3218:2;;3274:1;3271;3264:12;3313:306;3401:6;3409;3417;3470:2;3458:9;3449:7;3445:23;3441:32;3438:2;;;3486:1;3483;3476:12;3438:2;3515:9;3509:16;3499:26;;3565:2;3554:9;3550:18;3544:25;3534:35;;3609:2;3598:9;3594:18;3588:25;3578:35;;3428:191;;;;;:::o;5316:656::-;5428:4;5457:2;5486;5475:9;5468:21;5518:6;5512:13;5561:6;5556:2;5545:9;5541:18;5534:34;5586:1;5596:140;5610:6;5607:1;5604:13;5596:140;;;5705:14;;;5701:23;;5695:30;5671:17;;;5690:2;5667:26;5660:66;5625:10;;5596:140;;;5754:6;5751:1;5748:13;5745:2;;;5824:1;5819:2;5810:6;5799:9;5795:22;5791:31;5784:42;5745:2;-1:-1:-1;5888:2:1;5876:15;-1:-1:-1;;5872:88:1;5857:104;;;;5963:2;5853:113;;5437:535;-1:-1:-1;;;5437:535:1:o;9657:1026::-;9919:4;9967:3;9956:9;9952:19;9998:6;9987:9;9980:25;10024:2;10062:6;10057:2;10046:9;10042:18;10035:34;10105:3;10100:2;10089:9;10085:18;10078:31;10129:6;10164;10158:13;10195:6;10187;10180:22;10233:3;10222:9;10218:19;10211:26;;10272:2;10264:6;10260:15;10246:29;;10293:1;10303:218;10317:6;10314:1;10311:13;10303:218;;;10382:13;;-1:-1:-1;;;;;10378:62:1;10366:75;;10496:15;;;;10461:12;;;;10339:1;10332:9;10303:218;;;-1:-1:-1;;;;;;;10577:55:1;;;;10572:2;10557:18;;10550:83;-1:-1:-1;;;10664:3:1;10649:19;10642:35;10538:3;9928:755;-1:-1:-1;;;9928:755:1:o;11201:128::-;11241:3;11272:1;11268:6;11265:1;11262:13;11259:2;;;11278:18;;:::i;:::-;-1:-1:-1;11314:9:1;;11249:80::o;11334:274::-;11374:1;11400;11390:2;;-1:-1:-1;;;11432:1:1;11425:88;11536:4;11533:1;11526:15;11564:4;11561:1;11554:15;11390:2;-1:-1:-1;11593:9:1;;11380:228::o;11613:::-;11653:7;11779:1;-1:-1:-1;;11707:74:1;11704:1;11701:81;11696:1;11689:9;11682:17;11678:105;11675:2;;;11786:18;;:::i;:::-;-1:-1:-1;11826:9:1;;11665:176::o;11846:125::-;11886:4;11914:1;11911;11908:8;11905:2;;;11919:18;;:::i;:::-;-1:-1:-1;11956:9:1;;11895:76::o;11976:195::-;12015:3;-1:-1:-1;;12039:5:1;12036:77;12033:2;;;12116:18;;:::i;:::-;-1:-1:-1;12163:1:1;12152:13;;12023:148::o;12176:209::-;12214:3;12242:18;12295:2;12288:5;12284:14;12322:2;12313:7;12310:15;12307:2;;;12328:18;;:::i;:::-;12377:1;12364:15;;12222:163;-1:-1:-1;;;12222:163:1:o;12390:184::-;-1:-1:-1;;;12439:1:1;12432:88;12539:4;12536:1;12529:15;12563:4;12560:1;12553:15;12579:184;-1:-1:-1;;;12628:1:1;12621:88;12728:4;12725:1;12718:15;12752:4;12749:1;12742:15;12768:184;-1:-1:-1;;;12817:1:1;12810:88;12917:4;12914:1;12907:15;12941:4;12938:1;12931:15;12957:154;-1:-1:-1;;;;;13036:5:1;13032:54;13025:5;13022:65;13012:2;;13101:1;13098;13091:12

Swarm Source

ipfs://030864f4263eabc6d7fe51108b20665f69767f0de56827c761e4990418bfd05c
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.