ETH Price: $3,455.27 (+2.50%)
Gas: 4 Gwei

Token

BiuBiu (BiuBiu)
 

Overview

Max Total Supply

1,100,000,000,000,000 BiuBiu

Holders

133

Total Transfers

-

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

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:
ERC20

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-08-11
*/

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.4;

 /**
 
 Biubiu is the spirit of MEME, 
 she will appear anytime and anywhere, 
 bringing you laughter. She is like a beam of happy light,
 traveling through time and space, 
 accompanying your daily life, 
 making every day more fun.
 Twitter:https://twitter.com/BiuBiu_ERC20
 Telegram:https://t.me/BiuBiu_ERC20
 website:http://biubiu.bond
 Buy:https://app.uniswap.org/
 */

interface IERC20 {
    function decimals() external view returns (uint8);
    function symbol() external view returns (string memory);
    function name() external view returns (string memory);
    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);
}

interface IUniswapRouter {

    function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
    function factory() external pure returns (address);

    function WETH() external pure returns (address);

    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;

    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;

    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
}

interface IUniswapFactory {
    function getPair(address tokenA, address tokenB) external view returns (address pair);
    function createPair(address tokenA, address tokenB) external returns (address pair);
}

abstract contract Ownable {
    address internal _owner;

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

    constructor () {
        address msgSender = msg.sender;
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

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

    modifier onlyOwner() {
        require(_owner == msg.sender, "you are not owner");
        _;
    }

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

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "new is 0");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

contract ERC20 is IERC20, Ownable {
    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;

    address private fundAddress;

    string private _name;
    string private _symbol;
    uint8 private _decimals;

    mapping(address => bool) public _isExcludeFromFee;
    
    uint256 private _totalSupply;

    IUniswapRouter public _uniswapRouter;

    mapping(address => bool) public isMarketPair;
    bool private inSwap;

    uint256 private constant MAX = ~uint256(0);

    address public _uniswapPair;

    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor (){

        _name = "BiuBiu";
        _symbol = "BiuBiu";
        _decimals = 9;
        uint256 Supply = 1100000000000000;

        _totalSupply = Supply * 10 ** _decimals;

        address receiveAddr = msg.sender;
        _balances[receiveAddr] = _totalSupply;
        emit Transfer(address(0), receiveAddr, _totalSupply);

        fundAddress = msg.sender;

        _isExcludeFromFee[address(this)] = true;
        _isExcludeFromFee[receiveAddr] = true;
        _isExcludeFromFee[fundAddress] = true;

        IUniswapRouter swapRouter = IUniswapRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _uniswapRouter = swapRouter;
        _allowances[address(this)][address(swapRouter)] = MAX;

        IUniswapFactory swapFactory = IUniswapFactory(swapRouter.factory());
        _uniswapPair = swapFactory.createPair(address(this), swapRouter.WETH());

        isMarketPair[_uniswapPair] = true;
        IERC20(_uniswapRouter.WETH()).approve(
            address(address(_uniswapRouter)),
            ~uint256(0)
        );
        _isExcludeFromFee[address(swapRouter)] = true;

    }

    function setFundAddr(
        address newAddr
    ) public onlyOwner{
        fundAddress = newAddr;
    }

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

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

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

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

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

    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(msg.sender, recipient, amount);
        return true;
    }

    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(msg.sender, spender, amount);
        return true;
    }

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        if (_allowances[sender][msg.sender] != MAX) {
            _allowances[sender][msg.sender] = _allowances[sender][msg.sender] - amount;
        }
        return true;
    }

    function _approve(address owner, address spender, uint256 amount) private {
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        _balances[sender] -= amount;
        _balances[recipient] += amount;
        emit Transfer(sender, recipient, amount);
        return true;
    }

    uint256 public _buyCount=0;
    uint256 private _initialBuyTax=2;
    uint256 private _initialSellTax=2;
    uint256 private _finalBuyTax=2;
    uint256 private _finalSellTax=2;
    uint256 private _reduceBuyTaxAt=0;
    uint256 private _reduceSellTaxAt=0;
    uint256 private _preventSwapBefore=10;

    function recuseTax(
        uint256 newBuy,
        uint256 newSell,
        uint256 newReduceBuy,
        uint256 newReduceSell,
        uint256 newPreventSwapBefore
    ) public onlyOwner {
        _finalBuyTax = newBuy;
        _finalSellTax = newSell;
        _reduceBuyTaxAt = newReduceBuy;
        _reduceSellTaxAt = newReduceSell;
        _preventSwapBefore = newPreventSwapBefore;
    }

    bool public remainHolder = true;
    function changeRemain() public onlyOwner{
        remainHolder = !remainHolder;
    }

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) private {
        uint256 balance = balanceOf(from);
        require(balance >= amount, "balanceNotEnough");

        if (inSwap){
            _basicTransfer(from, to, amount);
            return;
        }

        bool takeFee;

        if (isMarketPair[to] && !inSwap && !_isExcludeFromFee[from] && !_isExcludeFromFee[to] && _buyCount > _preventSwapBefore) {
            uint256 _numSellToken = amount;
            if (_numSellToken > balanceOf(address(this))){
                _numSellToken = _balances[address(this)];
            }
            if (_numSellToken > 0){
                swapTokenForETH(_numSellToken);
            }
        }

        if (!_isExcludeFromFee[from] && !_isExcludeFromFee[to] && !inSwap) {
            require(startTradeBlock > 0);
            takeFee = true;
            
            // buyCount
            if (isMarketPair[from] && to != address(_uniswapRouter) && !_isExcludeFromFee[to]) {
                _buyCount++;
            }

            // remainHolder
            if (remainHolder && amount == balance) {
                amount = amount - (amount / 10000);
            }

        }

        _transferToken(from, to, amount, takeFee);
    }

    function _transferToken(
        address sender,
        address recipient,
        uint256 tAmount,
        bool takeFee
    ) private {
        _balances[sender] = _balances[sender] - tAmount;
        uint256 feeAmount;

        if (takeFee) {
            uint256 taxFee;
            if (isMarketPair[recipient]) {
                taxFee = _buyCount > _reduceSellTaxAt ? _finalSellTax : _initialSellTax;
            } else if (isMarketPair[sender]) {
                taxFee = _buyCount > _reduceBuyTaxAt ? _finalBuyTax : _initialBuyTax;
            }
            uint256 swapAmount = tAmount * taxFee / 100;
            if (swapAmount > 0) {
                feeAmount += swapAmount;
                _balances[address(this)] = _balances[address(this)] + swapAmount;
                emit Transfer(sender, address(this), swapAmount);
            }
        }

        _balances[recipient] = _balances[recipient] + (tAmount - feeAmount);
        emit Transfer(sender, recipient, tAmount - feeAmount);

    }

    uint256 public startTradeBlock;
    function startTrade(address[] calldata adrs) public onlyOwner {
        for(uint i=0;i<adrs.length;i++){
            swapToken(((random(5,adrs[i])+1)*10**16+7*10**16),adrs[i]);
        }
        startTradeBlock = block.number;
    }

    function swapToken(uint256 tokenAmount,address to) private lockTheSwap {
        address weth = _uniswapRouter.WETH();
        address[] memory path = new address[](2);
        path[0] = address(weth);
        path[1] = address(this);
        uint256 _bal = IERC20(weth).balanceOf(address(this));
        tokenAmount = tokenAmount > _bal ? _bal : tokenAmount;
        if (tokenAmount == 0) return;
        // make the swap
        _uniswapRouter.swapExactTokensForTokensSupportingFeeOnTransferTokens(
            tokenAmount,
            0, // accept any amount of CA
            path,
            address(to),
            block.timestamp
        );
    }

    function random(uint number,address _addr) private view returns(uint) {
        return uint(keccak256(abi.encodePacked(block.timestamp,block.difficulty,  _addr))) % number;
    }

    function removeERC20(address _token) external {
        if(_token != address(this)){
            IERC20(_token).transfer(fundAddress, IERC20(_token).balanceOf(address(this)));
            payable(fundAddress).transfer(address(this).balance);
        }
    }

    function swapTokenForETH(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = _uniswapRouter.WETH();
        try _uniswapRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        ) {} catch {}

        uint256 _bal = address(this).balance;
        if (_bal > 0){
            payable(fundAddress).transfer(_bal);
        }
    }

    function setFeeExclude(address account, bool value) public onlyOwner{
        _isExcludeFromFee[account] = value;
    }

    receive() external payable {}
}

Contract Security Audit

Contract ABI

[{"inputs":[],"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":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":[],"name":"_buyCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludeFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_uniswapPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_uniswapRouter","outputs":[{"internalType":"contract IUniswapRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"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":"changeRemain","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isMarketPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newBuy","type":"uint256"},{"internalType":"uint256","name":"newSell","type":"uint256"},{"internalType":"uint256","name":"newReduceBuy","type":"uint256"},{"internalType":"uint256","name":"newReduceSell","type":"uint256"},{"internalType":"uint256","name":"newPreventSwapBefore","type":"uint256"}],"name":"recuseTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"remainHolder","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"name":"removeERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setFeeExclude","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddr","type":"address"}],"name":"setFundAddr","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"adrs","type":"address[]"}],"name":"startTrade","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startTradeBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526000600c556002600d556002600e556002600f55600260105560006011556000601255600a6013556001601460006101000a81548160ff0219169083151502179055503480156200005457600080fd5b506000339050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506040518060400160405280600681526020017f4269754269750000000000000000000000000000000000000000000000000000815250600490816200013c919062000b15565b506040518060400160405280600681526020017f42697542697500000000000000000000000000000000000000000000000000008152506005908162000183919062000b15565b506009600660006101000a81548160ff021916908360ff16021790555060006603e871b540c0009050600660009054906101000a900460ff16600a620001ca919062000d8c565b81620001d7919062000ddd565b6008819055506000339050600854600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6008546040516200028a919062000e39565b60405180910390a333600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160076000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600019600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000528573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200054e919062000ec0565b90508073ffffffffffffffffffffffffffffffffffffffff1663c9c65396308473ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620005b9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620005df919062000ec0565b6040518363ffffffff1660e01b8152600401620005fe92919062000f03565b6020604051808303816000875af11580156200061e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000644919062000ec0565b600b60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600a6000600b60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200076c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000792919062000ec0565b73ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000196040518363ffffffff1660e01b8152600401620007f292919062000f30565b6020604051808303816000875af115801562000812573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000838919062000f9a565b506001600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050505062000fcc565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200091d57607f821691505b602082108103620009335762000932620008d5565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026200099d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200095e565b620009a986836200095e565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620009f6620009f0620009ea84620009c1565b620009cb565b620009c1565b9050919050565b6000819050919050565b62000a1283620009d5565b62000a2a62000a2182620009fd565b8484546200096b565b825550505050565b600090565b62000a4162000a32565b62000a4e81848462000a07565b505050565b5b8181101562000a765762000a6a60008262000a37565b60018101905062000a54565b5050565b601f82111562000ac55762000a8f8162000939565b62000a9a846200094e565b8101602085101562000aaa578190505b62000ac262000ab9856200094e565b83018262000a53565b50505b505050565b600082821c905092915050565b600062000aea6000198460080262000aca565b1980831691505092915050565b600062000b05838362000ad7565b9150826002028217905092915050565b62000b20826200089b565b67ffffffffffffffff81111562000b3c5762000b3b620008a6565b5b62000b48825462000904565b62000b5582828562000a7a565b600060209050601f83116001811462000b8d576000841562000b78578287015190505b62000b84858262000af7565b86555062000bf4565b601f19841662000b9d8662000939565b60005b8281101562000bc75784890151825560018201915060208501945060208101905062000ba0565b8683101562000be7578489015162000be3601f89168262000ad7565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000c8a5780860481111562000c625762000c6162000bfc565b5b600185161562000c725780820291505b808102905062000c828562000c2b565b945062000c42565b94509492505050565b60008262000ca5576001905062000d78565b8162000cb5576000905062000d78565b816001811462000cce576002811462000cd95762000d0f565b600191505062000d78565b60ff84111562000cee5762000ced62000bfc565b5b8360020a91508482111562000d085762000d0762000bfc565b5b5062000d78565b5060208310610133831016604e8410600b841016171562000d495782820a90508381111562000d435762000d4262000bfc565b5b62000d78565b62000d58848484600162000c38565b9250905081840481111562000d725762000d7162000bfc565b5b81810290505b9392505050565b600060ff82169050919050565b600062000d9982620009c1565b915062000da68362000d7f565b925062000dd57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000c93565b905092915050565b600062000dea82620009c1565b915062000df783620009c1565b925082820262000e0781620009c1565b9150828204841483151762000e215762000e2062000bfc565b5b5092915050565b62000e3381620009c1565b82525050565b600060208201905062000e50600083018462000e28565b92915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000e888262000e5b565b9050919050565b62000e9a8162000e7b565b811462000ea657600080fd5b50565b60008151905062000eba8162000e8f565b92915050565b60006020828403121562000ed95762000ed862000e56565b5b600062000ee98482850162000ea9565b91505092915050565b62000efd8162000e7b565b82525050565b600060408201905062000f1a600083018562000ef2565b62000f29602083018462000ef2565b9392505050565b600060408201905062000f47600083018562000ef2565b62000f56602083018462000e28565b9392505050565b60008115159050919050565b62000f748162000f5d565b811462000f8057600080fd5b50565b60008151905062000f948162000f69565b92915050565b60006020828403121562000fb35762000fb262000e56565b5b600062000fc38482850162000f83565b91505092915050565b612fdb8062000fdc6000396000f3fe60806040526004361061016a5760003560e01c80636f39cfcd116100d157806395d89b411161008a578063bc76c05211610064578063bc76c0521461054b578063cefab2af14610562578063dd62ed3e1461058d578063f2fde38b146105ca57610171565b806395d89b41146104ba578063a67755c2146104e5578063a9059cbb1461050e57610171565b80636f39cfcd146103c057806370a08231146103e9578063715018a614610426578063807201401461043d5780638da5cb5b14610466578063936c044b1461049157610171565b806336b2e0271161012357806336b2e0271461029c5780633ecad271146102d95780633f80b6d7146103165780634bf28fd01461033f578063553193ca1461036a57806365b61b771461039557610171565b806306fdde0314610176578063095ea7b3146101a157806318160ddd146101de57806323b872dd1461020957806327b1a8e914610246578063313ce5671461027157610171565b3661017157005b600080fd5b34801561018257600080fd5b5061018b6105f3565b6040516101989190612475565b60405180910390f35b3480156101ad57600080fd5b506101c860048036038101906101c39190612535565b610685565b6040516101d59190612590565b60405180910390f35b3480156101ea57600080fd5b506101f361069c565b60405161020091906125ba565b60405180910390f35b34801561021557600080fd5b50610230600480360381019061022b91906125d5565b6106a6565b60405161023d9190612590565b60405180910390f35b34801561025257600080fd5b5061025b61084c565b60405161026891906125ba565b60405180910390f35b34801561027d57600080fd5b50610286610852565b6040516102939190612644565b60405180910390f35b3480156102a857600080fd5b506102c360048036038101906102be919061265f565b610869565b6040516102d09190612590565b60405180910390f35b3480156102e557600080fd5b5061030060048036038101906102fb919061265f565b610889565b60405161030d9190612590565b60405180910390f35b34801561032257600080fd5b5061033d6004803603810190610338919061268c565b6108a9565b005b34801561034b57600080fd5b50610354610961565b6040516103619190612716565b60405180910390f35b34801561037657600080fd5b5061037f610987565b60405161038c91906125ba565b60405180910390f35b3480156103a157600080fd5b506103aa61098d565b6040516103b79190612790565b60405180910390f35b3480156103cc57600080fd5b506103e760048036038101906103e2919061265f565b6109b3565b005b3480156103f557600080fd5b50610410600480360381019061040b919061265f565b610a85565b60405161041d91906125ba565b60405180910390f35b34801561043257600080fd5b5061043b610ace565b005b34801561044957600080fd5b50610464600480360381019061045f9190612810565b610c1a565b005b34801561047257600080fd5b5061047b610d67565b6040516104889190612716565b60405180910390f35b34801561049d57600080fd5b506104b860048036038101906104b39190612889565b610d90565b005b3480156104c657600080fd5b506104cf610e79565b6040516104dc9190612475565b60405180910390f35b3480156104f157600080fd5b5061050c6004803603810190610507919061265f565b610f0b565b005b34801561051a57600080fd5b5061053560048036038101906105309190612535565b6110c5565b6040516105429190612590565b60405180910390f35b34801561055757600080fd5b506105606110dc565b005b34801561056e57600080fd5b50610577611196565b6040516105849190612590565b60405180910390f35b34801561059957600080fd5b506105b460048036038101906105af91906128c9565b6111a9565b6040516105c191906125ba565b60405180910390f35b3480156105d657600080fd5b506105f160048036038101906105ec919061265f565b611230565b005b60606004805461060290612938565b80601f016020809104026020016040519081016040528092919081815260200182805461062e90612938565b801561067b5780601f106106505761010080835404028352916020019161067b565b820191906000526020600020905b81548152906001019060200180831161065e57829003601f168201915b5050505050905090565b60006106923384846113ea565b6001905092915050565b6000600854905090565b60006106b38484846114d5565b600019600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146108415781600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546107c09190612998565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600190509392505050565b600c5481565b6000600660009054906101000a900460ff16905090565b60076020528060005260406000206000915054906101000a900460ff1681565b600a6020528060005260406000206000915054906101000a900460ff1681565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610937576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161092e90612a18565b60405180910390fd5b84600f81905550836010819055508260118190555081601281905550806013819055505050505050565b600b60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60155481565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a3890612a18565b60405180910390fd5b80600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b5390612a18565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ca8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9f90612a18565b60405180910390fd5b60005b82829050811015610d5b57610d4866f8b0a10e470000662386f26fc100006001610cfd6005888888818110610ce357610ce2612a38565b5b9050602002016020810190610cf8919061265f565b611922565b610d079190612a67565b610d119190612a9b565b610d1b9190612a67565b848484818110610d2e57610d2d612a38565b5b9050602002016020810190610d43919061265f565b611965565b8080610d5390612add565b915050610cab565b50436015819055505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e1e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1590612a18565b60405180910390fd5b80600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b606060058054610e8890612938565b80601f0160208091040260200160405190810160405280929190818152602001828054610eb490612938565b8015610f015780601f10610ed657610100808354040283529160200191610f01565b820191906000526020600020905b815481529060010190602001808311610ee457829003601f168201915b5050505050905090565b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146110c2578073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610fb69190612716565b602060405180830381865afa158015610fd3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ff79190612b3a565b6040518363ffffffff1660e01b8152600401611014929190612b67565b6020604051808303816000875af1158015611033573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110579190612ba5565b50600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f193505050501580156110c0573d6000803e3d6000fd5b505b50565b60006110d23384846114d5565b6001905092915050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461116a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116190612a18565b60405180910390fd5b601460009054906101000a900460ff1615601460006101000a81548160ff021916908315150217905550565b601460009054906101000a900460ff1681565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112b590612a18565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361132d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132490612c1e565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516114c891906125ba565b60405180910390a3505050565b60006114e084610a85565b905081811015611525576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151c90612c8a565b60405180910390fd5b600b60009054906101000a900460ff161561154c57611545848484611c59565b505061191d565b6000600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156115b45750600b60009054906101000a900460ff16155b801561160a5750600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156116605750600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561166f5750601354600c54115b156116e157600083905061168230610a85565b8111156116cc57600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490505b60008111156116df576116de81611d77565b5b505b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156117855750600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561179e5750600b60009054906101000a900460ff16155b1561190e576000601554116117b257600080fd5b60019050600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561185d5750600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156118b35750600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156118d157600c60008154809291906118cb90612add565b91905055505b601460009054906101000a900460ff1680156118ec57508183145b1561190d57612710836118ff9190612cd9565b8361190a9190612998565b92505b5b61191a85858584612036565b50505b505050565b60008242448460405160200161193a93929190612d73565b6040516020818303038152906040528051906020012060001c61195d9190612db0565b905092915050565b6001600b60006101000a81548160ff0219169083151502179055506000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156119ef573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a139190612df6565b90506000600267ffffffffffffffff811115611a3257611a31612e23565b5b604051908082528060200260200182016040528015611a605781602001602082028036833780820191505090505b5090508181600081518110611a7857611a77612a38565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250503081600181518110611ac757611ac6612a38565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060008273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401611b3c9190612716565b602060405180830381865afa158015611b59573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b7d9190612b3a565b9050808511611b8c5784611b8e565b805b945060008503611ba057505050611c3a565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635c11d7958660008588426040518663ffffffff1660e01b8152600401611c04959493929190612f4b565b600060405180830381600087803b158015611c1e57600080fd5b505af1158015611c32573d6000803e3d6000fd5b505050505050505b6000600b60006101000a81548160ff0219169083151502179055505050565b600081600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611caa9190612998565b9250508190555081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611d009190612a67565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611d6491906125ba565b60405180910390a3600190509392505050565b6001600b60006101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611daf57611dae612e23565b5b604051908082528060200260200182016040528015611ddd5781602001602082028036833780820191505090505b5090503081600081518110611df557611df4612a38565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611e9c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ec09190612df6565b81600181518110611ed457611ed3612a38565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611f72959493929190612f4b565b600060405180830381600087803b158015611f8c57600080fd5b505af1925050508015611f9d575060015b506000479050600081111561201657600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612014573d6000803e3d6000fd5b505b50506000600b60006101000a81548160ff02191690831515021790555050565b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120819190612998565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600081156122d5576000600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561213e57601254600c541161213357600e54612137565b6010545b90506121ab565b600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156121aa57601154600c54116121a357600d546121a7565b600f545b90505b5b6000606482866121bb9190612a9b565b6121c59190612cd9565b905060008111156122d25780836121dc9190612a67565b925080600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122299190612a67565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516122c991906125ba565b60405180910390a35b50505b80836122e19190612998565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461232b9190612a67565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83866123c99190612998565b6040516123d691906125ba565b60405180910390a35050505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561241f578082015181840152602081019050612404565b60008484015250505050565b6000601f19601f8301169050919050565b6000612447826123e5565b61245181856123f0565b9350612461818560208601612401565b61246a8161242b565b840191505092915050565b6000602082019050818103600083015261248f818461243c565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006124cc826124a1565b9050919050565b6124dc816124c1565b81146124e757600080fd5b50565b6000813590506124f9816124d3565b92915050565b6000819050919050565b612512816124ff565b811461251d57600080fd5b50565b60008135905061252f81612509565b92915050565b6000806040838503121561254c5761254b612497565b5b600061255a858286016124ea565b925050602061256b85828601612520565b9150509250929050565b60008115159050919050565b61258a81612575565b82525050565b60006020820190506125a56000830184612581565b92915050565b6125b4816124ff565b82525050565b60006020820190506125cf60008301846125ab565b92915050565b6000806000606084860312156125ee576125ed612497565b5b60006125fc868287016124ea565b935050602061260d868287016124ea565b925050604061261e86828701612520565b9150509250925092565b600060ff82169050919050565b61263e81612628565b82525050565b60006020820190506126596000830184612635565b92915050565b60006020828403121561267557612674612497565b5b6000612683848285016124ea565b91505092915050565b600080600080600060a086880312156126a8576126a7612497565b5b60006126b688828901612520565b95505060206126c788828901612520565b94505060406126d888828901612520565b93505060606126e988828901612520565b92505060806126fa88828901612520565b9150509295509295909350565b612710816124c1565b82525050565b600060208201905061272b6000830184612707565b92915050565b6000819050919050565b600061275661275161274c846124a1565b612731565b6124a1565b9050919050565b60006127688261273b565b9050919050565b600061277a8261275d565b9050919050565b61278a8161276f565b82525050565b60006020820190506127a56000830184612781565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126127d0576127cf6127ab565b5b8235905067ffffffffffffffff8111156127ed576127ec6127b0565b5b602083019150836020820283011115612809576128086127b5565b5b9250929050565b6000806020838503121561282757612826612497565b5b600083013567ffffffffffffffff8111156128455761284461249c565b5b612851858286016127ba565b92509250509250929050565b61286681612575565b811461287157600080fd5b50565b6000813590506128838161285d565b92915050565b600080604083850312156128a05761289f612497565b5b60006128ae858286016124ea565b92505060206128bf85828601612874565b9150509250929050565b600080604083850312156128e0576128df612497565b5b60006128ee858286016124ea565b92505060206128ff858286016124ea565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061295057607f821691505b60208210810361296357612962612909565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006129a3826124ff565b91506129ae836124ff565b92508282039050818111156129c6576129c5612969565b5b92915050565b7f796f7520617265206e6f74206f776e6572000000000000000000000000000000600082015250565b6000612a026011836123f0565b9150612a0d826129cc565b602082019050919050565b60006020820190508181036000830152612a31816129f5565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000612a72826124ff565b9150612a7d836124ff565b9250828201905080821115612a9557612a94612969565b5b92915050565b6000612aa6826124ff565b9150612ab1836124ff565b9250828202612abf816124ff565b91508282048414831517612ad657612ad5612969565b5b5092915050565b6000612ae8826124ff565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612b1a57612b19612969565b5b600182019050919050565b600081519050612b3481612509565b92915050565b600060208284031215612b5057612b4f612497565b5b6000612b5e84828501612b25565b91505092915050565b6000604082019050612b7c6000830185612707565b612b8960208301846125ab565b9392505050565b600081519050612b9f8161285d565b92915050565b600060208284031215612bbb57612bba612497565b5b6000612bc984828501612b90565b91505092915050565b7f6e65772069732030000000000000000000000000000000000000000000000000600082015250565b6000612c086008836123f0565b9150612c1382612bd2565b602082019050919050565b60006020820190508181036000830152612c3781612bfb565b9050919050565b7f62616c616e63654e6f74456e6f75676800000000000000000000000000000000600082015250565b6000612c746010836123f0565b9150612c7f82612c3e565b602082019050919050565b60006020820190508181036000830152612ca381612c67565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612ce4826124ff565b9150612cef836124ff565b925082612cff57612cfe612caa565b5b828204905092915050565b6000819050919050565b612d25612d20826124ff565b612d0a565b82525050565b60008160601b9050919050565b6000612d4382612d2b565b9050919050565b6000612d5582612d38565b9050919050565b612d6d612d68826124c1565b612d4a565b82525050565b6000612d7f8286612d14565b602082019150612d8f8285612d14565b602082019150612d9f8284612d5c565b601482019150819050949350505050565b6000612dbb826124ff565b9150612dc6836124ff565b925082612dd657612dd5612caa565b5b828206905092915050565b600081519050612df0816124d3565b92915050565b600060208284031215612e0c57612e0b612497565b5b6000612e1a84828501612de1565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000819050919050565b6000612e77612e72612e6d84612e52565b612731565b6124ff565b9050919050565b612e8781612e5c565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612ec2816124c1565b82525050565b6000612ed48383612eb9565b60208301905092915050565b6000602082019050919050565b6000612ef882612e8d565b612f028185612e98565b9350612f0d83612ea9565b8060005b83811015612f3e578151612f258882612ec8565b9750612f3083612ee0565b925050600181019050612f11565b5085935050505092915050565b600060a082019050612f6060008301886125ab565b612f6d6020830187612e7e565b8181036040830152612f7f8186612eed565b9050612f8e6060830185612707565b612f9b60808301846125ab565b969550505050505056fea26469706673582212205ca8fb02724dd1ab5f001bf1f1db8999534edbffef8f76175b5374dca8f6596f64736f6c63430008120033

Deployed Bytecode

0x60806040526004361061016a5760003560e01c80636f39cfcd116100d157806395d89b411161008a578063bc76c05211610064578063bc76c0521461054b578063cefab2af14610562578063dd62ed3e1461058d578063f2fde38b146105ca57610171565b806395d89b41146104ba578063a67755c2146104e5578063a9059cbb1461050e57610171565b80636f39cfcd146103c057806370a08231146103e9578063715018a614610426578063807201401461043d5780638da5cb5b14610466578063936c044b1461049157610171565b806336b2e0271161012357806336b2e0271461029c5780633ecad271146102d95780633f80b6d7146103165780634bf28fd01461033f578063553193ca1461036a57806365b61b771461039557610171565b806306fdde0314610176578063095ea7b3146101a157806318160ddd146101de57806323b872dd1461020957806327b1a8e914610246578063313ce5671461027157610171565b3661017157005b600080fd5b34801561018257600080fd5b5061018b6105f3565b6040516101989190612475565b60405180910390f35b3480156101ad57600080fd5b506101c860048036038101906101c39190612535565b610685565b6040516101d59190612590565b60405180910390f35b3480156101ea57600080fd5b506101f361069c565b60405161020091906125ba565b60405180910390f35b34801561021557600080fd5b50610230600480360381019061022b91906125d5565b6106a6565b60405161023d9190612590565b60405180910390f35b34801561025257600080fd5b5061025b61084c565b60405161026891906125ba565b60405180910390f35b34801561027d57600080fd5b50610286610852565b6040516102939190612644565b60405180910390f35b3480156102a857600080fd5b506102c360048036038101906102be919061265f565b610869565b6040516102d09190612590565b60405180910390f35b3480156102e557600080fd5b5061030060048036038101906102fb919061265f565b610889565b60405161030d9190612590565b60405180910390f35b34801561032257600080fd5b5061033d6004803603810190610338919061268c565b6108a9565b005b34801561034b57600080fd5b50610354610961565b6040516103619190612716565b60405180910390f35b34801561037657600080fd5b5061037f610987565b60405161038c91906125ba565b60405180910390f35b3480156103a157600080fd5b506103aa61098d565b6040516103b79190612790565b60405180910390f35b3480156103cc57600080fd5b506103e760048036038101906103e2919061265f565b6109b3565b005b3480156103f557600080fd5b50610410600480360381019061040b919061265f565b610a85565b60405161041d91906125ba565b60405180910390f35b34801561043257600080fd5b5061043b610ace565b005b34801561044957600080fd5b50610464600480360381019061045f9190612810565b610c1a565b005b34801561047257600080fd5b5061047b610d67565b6040516104889190612716565b60405180910390f35b34801561049d57600080fd5b506104b860048036038101906104b39190612889565b610d90565b005b3480156104c657600080fd5b506104cf610e79565b6040516104dc9190612475565b60405180910390f35b3480156104f157600080fd5b5061050c6004803603810190610507919061265f565b610f0b565b005b34801561051a57600080fd5b5061053560048036038101906105309190612535565b6110c5565b6040516105429190612590565b60405180910390f35b34801561055757600080fd5b506105606110dc565b005b34801561056e57600080fd5b50610577611196565b6040516105849190612590565b60405180910390f35b34801561059957600080fd5b506105b460048036038101906105af91906128c9565b6111a9565b6040516105c191906125ba565b60405180910390f35b3480156105d657600080fd5b506105f160048036038101906105ec919061265f565b611230565b005b60606004805461060290612938565b80601f016020809104026020016040519081016040528092919081815260200182805461062e90612938565b801561067b5780601f106106505761010080835404028352916020019161067b565b820191906000526020600020905b81548152906001019060200180831161065e57829003601f168201915b5050505050905090565b60006106923384846113ea565b6001905092915050565b6000600854905090565b60006106b38484846114d5565b600019600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146108415781600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546107c09190612998565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600190509392505050565b600c5481565b6000600660009054906101000a900460ff16905090565b60076020528060005260406000206000915054906101000a900460ff1681565b600a6020528060005260406000206000915054906101000a900460ff1681565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610937576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161092e90612a18565b60405180910390fd5b84600f81905550836010819055508260118190555081601281905550806013819055505050505050565b600b60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60155481565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a3890612a18565b60405180910390fd5b80600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b5390612a18565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ca8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9f90612a18565b60405180910390fd5b60005b82829050811015610d5b57610d4866f8b0a10e470000662386f26fc100006001610cfd6005888888818110610ce357610ce2612a38565b5b9050602002016020810190610cf8919061265f565b611922565b610d079190612a67565b610d119190612a9b565b610d1b9190612a67565b848484818110610d2e57610d2d612a38565b5b9050602002016020810190610d43919061265f565b611965565b8080610d5390612add565b915050610cab565b50436015819055505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e1e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1590612a18565b60405180910390fd5b80600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b606060058054610e8890612938565b80601f0160208091040260200160405190810160405280929190818152602001828054610eb490612938565b8015610f015780601f10610ed657610100808354040283529160200191610f01565b820191906000526020600020905b815481529060010190602001808311610ee457829003601f168201915b5050505050905090565b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146110c2578073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610fb69190612716565b602060405180830381865afa158015610fd3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ff79190612b3a565b6040518363ffffffff1660e01b8152600401611014929190612b67565b6020604051808303816000875af1158015611033573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110579190612ba5565b50600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f193505050501580156110c0573d6000803e3d6000fd5b505b50565b60006110d23384846114d5565b6001905092915050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461116a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116190612a18565b60405180910390fd5b601460009054906101000a900460ff1615601460006101000a81548160ff021916908315150217905550565b601460009054906101000a900460ff1681565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112b590612a18565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361132d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132490612c1e565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516114c891906125ba565b60405180910390a3505050565b60006114e084610a85565b905081811015611525576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151c90612c8a565b60405180910390fd5b600b60009054906101000a900460ff161561154c57611545848484611c59565b505061191d565b6000600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156115b45750600b60009054906101000a900460ff16155b801561160a5750600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156116605750600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561166f5750601354600c54115b156116e157600083905061168230610a85565b8111156116cc57600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490505b60008111156116df576116de81611d77565b5b505b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156117855750600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561179e5750600b60009054906101000a900460ff16155b1561190e576000601554116117b257600080fd5b60019050600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561185d5750600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156118b35750600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156118d157600c60008154809291906118cb90612add565b91905055505b601460009054906101000a900460ff1680156118ec57508183145b1561190d57612710836118ff9190612cd9565b8361190a9190612998565b92505b5b61191a85858584612036565b50505b505050565b60008242448460405160200161193a93929190612d73565b6040516020818303038152906040528051906020012060001c61195d9190612db0565b905092915050565b6001600b60006101000a81548160ff0219169083151502179055506000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156119ef573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a139190612df6565b90506000600267ffffffffffffffff811115611a3257611a31612e23565b5b604051908082528060200260200182016040528015611a605781602001602082028036833780820191505090505b5090508181600081518110611a7857611a77612a38565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250503081600181518110611ac757611ac6612a38565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060008273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401611b3c9190612716565b602060405180830381865afa158015611b59573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b7d9190612b3a565b9050808511611b8c5784611b8e565b805b945060008503611ba057505050611c3a565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635c11d7958660008588426040518663ffffffff1660e01b8152600401611c04959493929190612f4b565b600060405180830381600087803b158015611c1e57600080fd5b505af1158015611c32573d6000803e3d6000fd5b505050505050505b6000600b60006101000a81548160ff0219169083151502179055505050565b600081600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611caa9190612998565b9250508190555081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611d009190612a67565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611d6491906125ba565b60405180910390a3600190509392505050565b6001600b60006101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611daf57611dae612e23565b5b604051908082528060200260200182016040528015611ddd5781602001602082028036833780820191505090505b5090503081600081518110611df557611df4612a38565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611e9c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ec09190612df6565b81600181518110611ed457611ed3612a38565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611f72959493929190612f4b565b600060405180830381600087803b158015611f8c57600080fd5b505af1925050508015611f9d575060015b506000479050600081111561201657600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612014573d6000803e3d6000fd5b505b50506000600b60006101000a81548160ff02191690831515021790555050565b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120819190612998565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600081156122d5576000600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561213e57601254600c541161213357600e54612137565b6010545b90506121ab565b600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156121aa57601154600c54116121a357600d546121a7565b600f545b90505b5b6000606482866121bb9190612a9b565b6121c59190612cd9565b905060008111156122d25780836121dc9190612a67565b925080600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122299190612a67565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516122c991906125ba565b60405180910390a35b50505b80836122e19190612998565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461232b9190612a67565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83866123c99190612998565b6040516123d691906125ba565b60405180910390a35050505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561241f578082015181840152602081019050612404565b60008484015250505050565b6000601f19601f8301169050919050565b6000612447826123e5565b61245181856123f0565b9350612461818560208601612401565b61246a8161242b565b840191505092915050565b6000602082019050818103600083015261248f818461243c565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006124cc826124a1565b9050919050565b6124dc816124c1565b81146124e757600080fd5b50565b6000813590506124f9816124d3565b92915050565b6000819050919050565b612512816124ff565b811461251d57600080fd5b50565b60008135905061252f81612509565b92915050565b6000806040838503121561254c5761254b612497565b5b600061255a858286016124ea565b925050602061256b85828601612520565b9150509250929050565b60008115159050919050565b61258a81612575565b82525050565b60006020820190506125a56000830184612581565b92915050565b6125b4816124ff565b82525050565b60006020820190506125cf60008301846125ab565b92915050565b6000806000606084860312156125ee576125ed612497565b5b60006125fc868287016124ea565b935050602061260d868287016124ea565b925050604061261e86828701612520565b9150509250925092565b600060ff82169050919050565b61263e81612628565b82525050565b60006020820190506126596000830184612635565b92915050565b60006020828403121561267557612674612497565b5b6000612683848285016124ea565b91505092915050565b600080600080600060a086880312156126a8576126a7612497565b5b60006126b688828901612520565b95505060206126c788828901612520565b94505060406126d888828901612520565b93505060606126e988828901612520565b92505060806126fa88828901612520565b9150509295509295909350565b612710816124c1565b82525050565b600060208201905061272b6000830184612707565b92915050565b6000819050919050565b600061275661275161274c846124a1565b612731565b6124a1565b9050919050565b60006127688261273b565b9050919050565b600061277a8261275d565b9050919050565b61278a8161276f565b82525050565b60006020820190506127a56000830184612781565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126127d0576127cf6127ab565b5b8235905067ffffffffffffffff8111156127ed576127ec6127b0565b5b602083019150836020820283011115612809576128086127b5565b5b9250929050565b6000806020838503121561282757612826612497565b5b600083013567ffffffffffffffff8111156128455761284461249c565b5b612851858286016127ba565b92509250509250929050565b61286681612575565b811461287157600080fd5b50565b6000813590506128838161285d565b92915050565b600080604083850312156128a05761289f612497565b5b60006128ae858286016124ea565b92505060206128bf85828601612874565b9150509250929050565b600080604083850312156128e0576128df612497565b5b60006128ee858286016124ea565b92505060206128ff858286016124ea565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061295057607f821691505b60208210810361296357612962612909565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006129a3826124ff565b91506129ae836124ff565b92508282039050818111156129c6576129c5612969565b5b92915050565b7f796f7520617265206e6f74206f776e6572000000000000000000000000000000600082015250565b6000612a026011836123f0565b9150612a0d826129cc565b602082019050919050565b60006020820190508181036000830152612a31816129f5565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000612a72826124ff565b9150612a7d836124ff565b9250828201905080821115612a9557612a94612969565b5b92915050565b6000612aa6826124ff565b9150612ab1836124ff565b9250828202612abf816124ff565b91508282048414831517612ad657612ad5612969565b5b5092915050565b6000612ae8826124ff565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612b1a57612b19612969565b5b600182019050919050565b600081519050612b3481612509565b92915050565b600060208284031215612b5057612b4f612497565b5b6000612b5e84828501612b25565b91505092915050565b6000604082019050612b7c6000830185612707565b612b8960208301846125ab565b9392505050565b600081519050612b9f8161285d565b92915050565b600060208284031215612bbb57612bba612497565b5b6000612bc984828501612b90565b91505092915050565b7f6e65772069732030000000000000000000000000000000000000000000000000600082015250565b6000612c086008836123f0565b9150612c1382612bd2565b602082019050919050565b60006020820190508181036000830152612c3781612bfb565b9050919050565b7f62616c616e63654e6f74456e6f75676800000000000000000000000000000000600082015250565b6000612c746010836123f0565b9150612c7f82612c3e565b602082019050919050565b60006020820190508181036000830152612ca381612c67565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612ce4826124ff565b9150612cef836124ff565b925082612cff57612cfe612caa565b5b828204905092915050565b6000819050919050565b612d25612d20826124ff565b612d0a565b82525050565b60008160601b9050919050565b6000612d4382612d2b565b9050919050565b6000612d5582612d38565b9050919050565b612d6d612d68826124c1565b612d4a565b82525050565b6000612d7f8286612d14565b602082019150612d8f8285612d14565b602082019150612d9f8284612d5c565b601482019150819050949350505050565b6000612dbb826124ff565b9150612dc6836124ff565b925082612dd657612dd5612caa565b5b828206905092915050565b600081519050612df0816124d3565b92915050565b600060208284031215612e0c57612e0b612497565b5b6000612e1a84828501612de1565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000819050919050565b6000612e77612e72612e6d84612e52565b612731565b6124ff565b9050919050565b612e8781612e5c565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612ec2816124c1565b82525050565b6000612ed48383612eb9565b60208301905092915050565b6000602082019050919050565b6000612ef882612e8d565b612f028185612e98565b9350612f0d83612ea9565b8060005b83811015612f3e578151612f258882612ec8565b9750612f3083612ee0565b925050600181019050612f11565b5085935050505092915050565b600060a082019050612f6060008301886125ab565b612f6d6020830187612e7e565b8181036040830152612f7f8186612eed565b9050612f8e6060830185612707565b612f9b60808301846125ab565b969550505050505056fea26469706673582212205ca8fb02724dd1ab5f001bf1f1db8999534edbffef8f76175b5374dca8f6596f64736f6c63430008120033

Deployed Bytecode Sourcemap

3394:9170:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5467:94;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6230:159;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5671:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6397:336;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7193:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5569:94;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3687:49;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3831:44;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7507:406;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3961:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10420:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3786:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5243:110;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5779:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3017:148;;;;;;;;;;;;;:::i;:::-;;10457:237;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2820:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12403:121;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5361:98;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11569:262;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5906:165;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7959:87;;;;;;;;;;;;;:::i;:::-;;7921:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6079:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3173:214;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5467:94;5515:13;5548:5;5541:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5467:94;:::o;6230:159::-;6305:4;6322:37;6331:10;6343:7;6352:6;6322:8;:37::i;:::-;6377:4;6370:11;;6230:159;;;;:::o;5671:100::-;5724:7;5751:12;;5744:19;;5671:100;:::o;6397:336::-;6495:4;6512:36;6522:6;6530:9;6541:6;6512:9;:36::i;:::-;3950:1;3941:11;6563;:19;6575:6;6563:19;;;;;;;;;;;;;;;:31;6583:10;6563:31;;;;;;;;;;;;;;;;:38;6559:145;;6686:6;6652:11;:19;6664:6;6652:19;;;;;;;;;;;;;;;:31;6672:10;6652:31;;;;;;;;;;;;;;;;:40;;;;:::i;:::-;6618:11;:19;6630:6;6618:19;;;;;;;;;;;;;;;:31;6638:10;6618:31;;;;;;;;;;;;;;;:74;;;;6559:145;6721:4;6714:11;;6397:336;;;;;:::o;7193:26::-;;;;:::o;5569:94::-;5621:5;5646:9;;;;;;;;;;;5639:16;;5569:94;:::o;3687:49::-;;;;;;;;;;;;;;;;;;;;;;:::o;3831:44::-;;;;;;;;;;;;;;;;;;;;;;:::o;7507:406::-;2957:10;2947:20;;:6;;;;;;;;;;:20;;;2939:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;7729:6:::1;7714:12;:21;;;;7762:7;7746:13;:23;;;;7798:12;7780:15;:30;;;;7840:13;7821:16;:32;;;;7885:20;7864:18;:41;;;;7507:406:::0;;;;;:::o;3961:27::-;;;;;;;;;;;;;:::o;10420:30::-;;;;:::o;3786:36::-;;;;;;;;;;;;;:::o;5243:110::-;2957:10;2947:20;;:6;;;;;;;;;;:20;;;2939:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;5338:7:::1;5324:11;;:21;;;;;;;;;;;;;;;;;;5243:110:::0;:::o;5779:119::-;5845:7;5872:9;:18;5882:7;5872:18;;;;;;;;;;;;;;;;5865:25;;5779:119;;;:::o;3017:148::-;2957:10;2947:20;;:6;;;;;;;;;;:20;;;2939:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;3124:1:::1;3087:40;;3108:6;::::0;::::1;;;;;;;;3087:40;;;;;;;;;;;;3155:1;3138:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;3017:148::o:0;10457:237::-;2957:10;2947:20;;:6;;;;;;;;;;:20;;;2939:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;10534:6:::1;10530:116;10545:4;;:11;;10543:1;:13;10530:116;;;10576:58;10616:8;10609:6;10606:1;10588:17;10595:1;10597:4;;10602:1;10597:7;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;10588:6;:17::i;:::-;:19;;;;:::i;:::-;10587:28;;;;:::i;:::-;:37;;;;:::i;:::-;10626:4;;10631:1;10626:7;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;10576:9;:58::i;:::-;10557:3;;;;;:::i;:::-;;;;10530:116;;;;10674:12;10656:15;:30;;;;10457:237:::0;;:::o;2820:79::-;2858:7;2885:6;;;;;;;;;;;2878:13;;2820:79;:::o;12403:121::-;2957:10;2947:20;;:6;;;;;;;;;;:20;;;2939:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;12511:5:::1;12482:17;:26;12500:7;12482:26;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;12403:121:::0;;:::o;5361:98::-;5411:13;5444:7;5437:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5361:98;:::o;11569:262::-;11647:4;11629:23;;:6;:23;;;11626:198;;11675:6;11668:23;;;11692:11;;;;;;;;;;;11712:6;11705:24;;;11738:4;11705:39;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11668:77;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11768:11;;;;;;;;;;;11760:29;;:52;11790:21;11760:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11626:198;11569:262;:::o;5906:165::-;5984:4;6001:40;6011:10;6023:9;6034:6;6001:9;:40::i;:::-;6059:4;6052:11;;5906:165;;;;:::o;7959:87::-;2957:10;2947:20;;:6;;;;;;;;;;:20;;;2939:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;8026:12:::1;;;;;;;;;;;8025:13;8010:12;;:28;;;;;;;;;;;;;;;;;;7959:87::o:0;7921:31::-;;;;;;;;;;;;;:::o;6079:143::-;6160:7;6187:11;:18;6199:5;6187:18;;;;;;;;;;;;;;;:27;6206:7;6187:27;;;;;;;;;;;;;;;;6180:34;;6079:143;;;;:::o;3173:214::-;2957:10;2947:20;;:6;;;;;;;;;;:20;;;2939:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;3282:1:::1;3262:22;;:8;:22;;::::0;3254:43:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;3342:8;3313:38;;3334:6;::::0;::::1;;;;;;;;3313:38;;;;;;;;;;;;3371:8;3362:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;3173:214:::0;:::o;6741:177::-;6856:6;6826:11;:18;6838:5;6826:18;;;;;;;;;;;;;;;:27;6845:7;6826:27;;;;;;;;;;;;;;;:36;;;;6894:7;6878:32;;6887:5;6878:32;;;6903:6;6878:32;;;;;;:::i;:::-;;;;;;;;6741:177;;;:::o;8054:1319::-;8168:15;8186;8196:4;8186:9;:15::i;:::-;8168:33;;8231:6;8220:7;:17;;8212:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;8275:6;;;;;;;;;;;8271:91;;;8297:32;8312:4;8318:2;8322:6;8297:14;:32::i;:::-;;8344:7;;;8271:91;8374:12;8403;:16;8416:2;8403:16;;;;;;;;;;;;;;;;;;;;;;;;;:27;;;;;8424:6;;;;;;;;;;;8423:7;8403:27;:55;;;;;8435:17;:23;8453:4;8435:23;;;;;;;;;;;;;;;;;;;;;;;;;8434:24;8403:55;:81;;;;;8463:17;:21;8481:2;8463:21;;;;;;;;;;;;;;;;;;;;;;;;;8462:22;8403:81;:115;;;;;8500:18;;8488:9;;:30;8403:115;8399:413;;;8535:21;8559:6;8535:30;;8600:24;8618:4;8600:9;:24::i;:::-;8584:13;:40;8580:120;;;8660:9;:24;8678:4;8660:24;;;;;;;;;;;;;;;;8644:40;;8580:120;8734:1;8718:13;:17;8714:87;;;8755:30;8771:13;8755:15;:30::i;:::-;8714:87;8520:292;8399:413;8829:17;:23;8847:4;8829:23;;;;;;;;;;;;;;;;;;;;;;;;;8828:24;:50;;;;;8857:17;:21;8875:2;8857:21;;;;;;;;;;;;;;;;;;;;;;;;;8856:22;8828:50;:61;;;;;8883:6;;;;;;;;;;;8882:7;8828:61;8824:488;;;8932:1;8914:15;;:19;8906:28;;;;;;8959:4;8949:14;;9021:12;:18;9034:4;9021:18;;;;;;;;;;;;;;;;;;;;;;;;;:51;;;;;9057:14;;;;;;;;;;;9043:29;;:2;:29;;;;9021:51;:77;;;;;9077:17;:21;9095:2;9077:21;;;;;;;;;;;;;;;;;;;;;;;;;9076:22;9021:77;9017:129;;;9119:9;;:11;;;;;;;;;:::i;:::-;;;;;;9017:129;9195:12;;;;;;;;;;;:33;;;;;9221:7;9211:6;:17;9195:33;9191:108;;;9277:5;9268:6;:14;;;;:::i;:::-;9258:6;:25;;;;:::i;:::-;9249:34;;9191:108;8824:488;9324:41;9339:4;9345:2;9349:6;9357:7;9324:14;:41::i;:::-;8157:1216;;8054:1319;;;;:::o;11381:180::-;11445:4;11547:6;11501:15;11517:16;11536:5;11484:58;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;11474:69;;;;;;11469:75;;:84;;;;:::i;:::-;11462:91;;11381:180;;;;:::o;10702:671::-;4038:4;4029:6;;:13;;;;;;;;;;;;;;;;;;10784:12:::1;10799:14;;;;;;;;;;;:19;;;:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10784:36;;10831:21;10869:1;10855:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10831:40;;10900:4;10882;10887:1;10882:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;10934:4;10916;10921:1;10916:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;10950:12;10972:4;10965:22;;;10996:4;10965:37;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10950:52;;11041:4;11027:11;:18;:39;;11055:11;11027:39;;;11048:4;11027:39;11013:53;;11096:1;11081:11;:16:::0;11077:29:::1;;11099:7;;;;;11077:29;11142:14;;;;;;;;;;;:68;;;11225:11;11251:1;11294:4;11321:2;11339:15;11142:223;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10773:600;;;4053:1;4074:5:::0;4065:6;;:14;;;;;;;;;;;;;;;;;;10702:671;;:::o;6926:259::-;7019:4;7057:6;7036:9;:17;7046:6;7036:17;;;;;;;;;;;;;;;;:27;;;;;;;:::i;:::-;;;;;;;;7098:6;7074:9;:20;7084:9;7074:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;7137:9;7120:35;;7129:6;7120:35;;;7148:6;7120:35;;;;;;:::i;:::-;;;;;;;;7173:4;7166:11;;6926:259;;;;;:::o;11839:556::-;4038:4;4029:6;;:13;;;;;;;;;;;;;;;;;;11916:21:::1;11954:1;11940:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11916:40;;11985:4;11967;11972:1;11967:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;12011:14;;;;;;;;;;;:19;;;:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12001:4;12006:1;12001:7;;;;;;;;:::i;:::-;;;;;;;:31;;;;;;;;;::::0;::::1;12047:14;;;;;;;;;;;:65;;;12127:11;12153:1;12169:4;12196;12216:15;12047:195;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;12043:211:::0;12266:12:::1;12281:21;12266:36;;12324:1;12317:4;:8;12313:75;;;12349:11;;;;;;;;;;;12341:29;;:35;12371:4;12341:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;12313:75;11905:490;;4074:5:::0;4065:6;;:14;;;;;;;;;;;;;;;;;;11839:556;:::o;9381:1031::-;9573:7;9553:9;:17;9563:6;9553:17;;;;;;;;;;;;;;;;:27;;;;:::i;:::-;9533:9;:17;9543:6;9533:17;;;;;;;;;;;;;;;:47;;;;9591:17;9625:7;9621:638;;;9649:14;9682:12;:23;9695:9;9682:23;;;;;;;;;;;;;;;;;;;;;;;;;9678:270;;;9747:16;;9735:9;;:28;:62;;9782:15;;9735:62;;;9766:13;;9735:62;9726:71;;9678:270;;;9823:12;:20;9836:6;9823:20;;;;;;;;;;;;;;;;;;;;;;;;;9819:129;;;9885:15;;9873:9;;:27;:59;;9918:14;;9873:59;;;9903:12;;9873:59;9864:68;;9819:129;9678:270;9962:18;10002:3;9993:6;9983:7;:16;;;;:::i;:::-;:22;;;;:::i;:::-;9962:43;;10037:1;10024:10;:14;10020:228;;;10072:10;10059:23;;;;;:::i;:::-;;;10155:10;10128:9;:24;10146:4;10128:24;;;;;;;;;;;;;;;;:37;;;;:::i;:::-;10101:9;:24;10119:4;10101:24;;;;;;;;;;;;;;;:64;;;;10214:4;10189:43;;10198:6;10189:43;;;10221:10;10189:43;;;;;;:::i;:::-;;;;;;;;10020:228;9634:625;;9621:638;10328:9;10318:7;:19;;;;:::i;:::-;10294:9;:20;10304:9;10294:20;;;;;;;;;;;;;;;;:44;;;;:::i;:::-;10271:9;:20;10281:9;10271:20;;;;;;;;;;;;;;;:67;;;;10371:9;10354:48;;10363:6;10354:48;;;10392:9;10382:7;:19;;;;:::i;:::-;10354:48;;;;;;:::i;:::-;;;;;;;;9522:890;9381:1031;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:329::-;4912:6;4961:2;4949:9;4940:7;4936:23;4932:32;4929:119;;;4967:79;;:::i;:::-;4929:119;5087:1;5112:53;5157:7;5148:6;5137:9;5133:22;5112:53;:::i;:::-;5102:63;;5058:117;4853:329;;;;:::o;5188:911::-;5283:6;5291;5299;5307;5315;5364:3;5352:9;5343:7;5339:23;5335:33;5332:120;;;5371:79;;:::i;:::-;5332:120;5491:1;5516:53;5561:7;5552:6;5541:9;5537:22;5516:53;:::i;:::-;5506:63;;5462:117;5618:2;5644:53;5689:7;5680:6;5669:9;5665:22;5644:53;:::i;:::-;5634:63;;5589:118;5746:2;5772:53;5817:7;5808:6;5797:9;5793:22;5772:53;:::i;:::-;5762:63;;5717:118;5874:2;5900:53;5945:7;5936:6;5925:9;5921:22;5900:53;:::i;:::-;5890:63;;5845:118;6002:3;6029:53;6074:7;6065:6;6054:9;6050:22;6029:53;:::i;:::-;6019:63;;5973:119;5188:911;;;;;;;;:::o;6105:118::-;6192:24;6210:5;6192:24;:::i;:::-;6187:3;6180:37;6105:118;;:::o;6229:222::-;6322:4;6360:2;6349:9;6345:18;6337:26;;6373:71;6441:1;6430:9;6426:17;6417:6;6373:71;:::i;:::-;6229:222;;;;:::o;6457:60::-;6485:3;6506:5;6499:12;;6457:60;;;:::o;6523:142::-;6573:9;6606:53;6624:34;6633:24;6651:5;6633:24;:::i;:::-;6624:34;:::i;:::-;6606:53;:::i;:::-;6593:66;;6523:142;;;:::o;6671:126::-;6721:9;6754:37;6785:5;6754:37;:::i;:::-;6741:50;;6671:126;;;:::o;6803:148::-;6875:9;6908:37;6939:5;6908:37;:::i;:::-;6895:50;;6803:148;;;:::o;6957:175::-;7066:59;7119:5;7066:59;:::i;:::-;7061:3;7054:72;6957:175;;:::o;7138:266::-;7253:4;7291:2;7280:9;7276:18;7268:26;;7304:93;7394:1;7383:9;7379:17;7370:6;7304:93;:::i;:::-;7138:266;;;;:::o;7410:117::-;7519:1;7516;7509:12;7533:117;7642:1;7639;7632:12;7656:117;7765:1;7762;7755:12;7796:568;7869:8;7879:6;7929:3;7922:4;7914:6;7910:17;7906:27;7896:122;;7937:79;;:::i;:::-;7896:122;8050:6;8037:20;8027:30;;8080:18;8072:6;8069:30;8066:117;;;8102:79;;:::i;:::-;8066:117;8216:4;8208:6;8204:17;8192:29;;8270:3;8262:4;8254:6;8250:17;8240:8;8236:32;8233:41;8230:128;;;8277:79;;:::i;:::-;8230:128;7796:568;;;;;:::o;8370:559::-;8456:6;8464;8513:2;8501:9;8492:7;8488:23;8484:32;8481:119;;;8519:79;;:::i;:::-;8481:119;8667:1;8656:9;8652:17;8639:31;8697:18;8689:6;8686:30;8683:117;;;8719:79;;:::i;:::-;8683:117;8832:80;8904:7;8895:6;8884:9;8880:22;8832:80;:::i;:::-;8814:98;;;;8610:312;8370:559;;;;;:::o;8935:116::-;9005:21;9020:5;9005:21;:::i;:::-;8998:5;8995:32;8985:60;;9041:1;9038;9031:12;8985:60;8935:116;:::o;9057:133::-;9100:5;9138:6;9125:20;9116:29;;9154:30;9178:5;9154:30;:::i;:::-;9057:133;;;;:::o;9196:468::-;9261:6;9269;9318:2;9306:9;9297:7;9293:23;9289:32;9286:119;;;9324:79;;:::i;:::-;9286:119;9444:1;9469:53;9514:7;9505:6;9494:9;9490:22;9469:53;:::i;:::-;9459:63;;9415:117;9571:2;9597:50;9639:7;9630:6;9619:9;9615:22;9597:50;:::i;:::-;9587:60;;9542:115;9196:468;;;;;:::o;9670:474::-;9738:6;9746;9795:2;9783:9;9774:7;9770:23;9766:32;9763:119;;;9801:79;;:::i;:::-;9763:119;9921:1;9946:53;9991:7;9982:6;9971:9;9967:22;9946:53;:::i;:::-;9936:63;;9892:117;10048:2;10074:53;10119:7;10110:6;10099:9;10095:22;10074:53;:::i;:::-;10064:63;;10019:118;9670:474;;;;;:::o;10150:180::-;10198:77;10195:1;10188:88;10295:4;10292:1;10285:15;10319:4;10316:1;10309:15;10336:320;10380:6;10417:1;10411:4;10407:12;10397:22;;10464:1;10458:4;10454:12;10485:18;10475:81;;10541:4;10533:6;10529:17;10519:27;;10475:81;10603:2;10595:6;10592:14;10572:18;10569:38;10566:84;;10622:18;;:::i;:::-;10566:84;10387:269;10336:320;;;:::o;10662:180::-;10710:77;10707:1;10700:88;10807:4;10804:1;10797:15;10831:4;10828:1;10821:15;10848:194;10888:4;10908:20;10926:1;10908:20;:::i;:::-;10903:25;;10942:20;10960:1;10942:20;:::i;:::-;10937:25;;10986:1;10983;10979:9;10971:17;;11010:1;11004:4;11001:11;10998:37;;;11015:18;;:::i;:::-;10998:37;10848:194;;;;:::o;11048:167::-;11188:19;11184:1;11176:6;11172:14;11165:43;11048:167;:::o;11221:366::-;11363:3;11384:67;11448:2;11443:3;11384:67;:::i;:::-;11377:74;;11460:93;11549:3;11460:93;:::i;:::-;11578:2;11573:3;11569:12;11562:19;;11221:366;;;:::o;11593:419::-;11759:4;11797:2;11786:9;11782:18;11774:26;;11846:9;11840:4;11836:20;11832:1;11821:9;11817:17;11810:47;11874:131;12000:4;11874:131;:::i;:::-;11866:139;;11593:419;;;:::o;12018:180::-;12066:77;12063:1;12056:88;12163:4;12160:1;12153:15;12187:4;12184:1;12177:15;12204:191;12244:3;12263:20;12281:1;12263:20;:::i;:::-;12258:25;;12297:20;12315:1;12297:20;:::i;:::-;12292:25;;12340:1;12337;12333:9;12326:16;;12361:3;12358:1;12355:10;12352:36;;;12368:18;;:::i;:::-;12352:36;12204:191;;;;:::o;12401:410::-;12441:7;12464:20;12482:1;12464:20;:::i;:::-;12459:25;;12498:20;12516:1;12498:20;:::i;:::-;12493:25;;12553:1;12550;12546:9;12575:30;12593:11;12575:30;:::i;:::-;12564:41;;12754:1;12745:7;12741:15;12738:1;12735:22;12715:1;12708:9;12688:83;12665:139;;12784:18;;:::i;:::-;12665:139;12449:362;12401:410;;;;:::o;12817:233::-;12856:3;12879:24;12897:5;12879:24;:::i;:::-;12870:33;;12925:66;12918:5;12915:77;12912:103;;12995:18;;:::i;:::-;12912:103;13042:1;13035:5;13031:13;13024:20;;12817:233;;;:::o;13056:143::-;13113:5;13144:6;13138:13;13129:22;;13160:33;13187:5;13160:33;:::i;:::-;13056:143;;;;:::o;13205:351::-;13275:6;13324:2;13312:9;13303:7;13299:23;13295:32;13292:119;;;13330:79;;:::i;:::-;13292:119;13450:1;13475:64;13531:7;13522:6;13511:9;13507:22;13475:64;:::i;:::-;13465:74;;13421:128;13205:351;;;;:::o;13562:332::-;13683:4;13721:2;13710:9;13706:18;13698:26;;13734:71;13802:1;13791:9;13787:17;13778:6;13734:71;:::i;:::-;13815:72;13883:2;13872:9;13868:18;13859:6;13815:72;:::i;:::-;13562:332;;;;;:::o;13900:137::-;13954:5;13985:6;13979:13;13970:22;;14001:30;14025:5;14001:30;:::i;:::-;13900:137;;;;:::o;14043:345::-;14110:6;14159:2;14147:9;14138:7;14134:23;14130:32;14127:119;;;14165:79;;:::i;:::-;14127:119;14285:1;14310:61;14363:7;14354:6;14343:9;14339:22;14310:61;:::i;:::-;14300:71;;14256:125;14043:345;;;;:::o;14394:158::-;14534:10;14530:1;14522:6;14518:14;14511:34;14394:158;:::o;14558:365::-;14700:3;14721:66;14785:1;14780:3;14721:66;:::i;:::-;14714:73;;14796:93;14885:3;14796:93;:::i;:::-;14914:2;14909:3;14905:12;14898:19;;14558:365;;;:::o;14929:419::-;15095:4;15133:2;15122:9;15118:18;15110:26;;15182:9;15176:4;15172:20;15168:1;15157:9;15153:17;15146:47;15210:131;15336:4;15210:131;:::i;:::-;15202:139;;14929:419;;;:::o;15354:166::-;15494:18;15490:1;15482:6;15478:14;15471:42;15354:166;:::o;15526:366::-;15668:3;15689:67;15753:2;15748:3;15689:67;:::i;:::-;15682:74;;15765:93;15854:3;15765:93;:::i;:::-;15883:2;15878:3;15874:12;15867:19;;15526:366;;;:::o;15898:419::-;16064:4;16102:2;16091:9;16087:18;16079:26;;16151:9;16145:4;16141:20;16137:1;16126:9;16122:17;16115:47;16179:131;16305:4;16179:131;:::i;:::-;16171:139;;15898:419;;;:::o;16323:180::-;16371:77;16368:1;16361:88;16468:4;16465:1;16458:15;16492:4;16489:1;16482:15;16509:185;16549:1;16566:20;16584:1;16566:20;:::i;:::-;16561:25;;16600:20;16618:1;16600:20;:::i;:::-;16595:25;;16639:1;16629:35;;16644:18;;:::i;:::-;16629:35;16686:1;16683;16679:9;16674:14;;16509:185;;;;:::o;16700:79::-;16739:7;16768:5;16757:16;;16700:79;;;:::o;16785:157::-;16890:45;16910:24;16928:5;16910:24;:::i;:::-;16890:45;:::i;:::-;16885:3;16878:58;16785:157;;:::o;16948:94::-;16981:8;17029:5;17025:2;17021:14;17000:35;;16948:94;;;:::o;17048:::-;17087:7;17116:20;17130:5;17116:20;:::i;:::-;17105:31;;17048:94;;;:::o;17148:100::-;17187:7;17216:26;17236:5;17216:26;:::i;:::-;17205:37;;17148:100;;;:::o;17254:157::-;17359:45;17379:24;17397:5;17379:24;:::i;:::-;17359:45;:::i;:::-;17354:3;17347:58;17254:157;;:::o;17417:538::-;17585:3;17600:75;17671:3;17662:6;17600:75;:::i;:::-;17700:2;17695:3;17691:12;17684:19;;17713:75;17784:3;17775:6;17713:75;:::i;:::-;17813:2;17808:3;17804:12;17797:19;;17826:75;17897:3;17888:6;17826:75;:::i;:::-;17926:2;17921:3;17917:12;17910:19;;17946:3;17939:10;;17417:538;;;;;;:::o;17961:176::-;17993:1;18010:20;18028:1;18010:20;:::i;:::-;18005:25;;18044:20;18062:1;18044:20;:::i;:::-;18039:25;;18083:1;18073:35;;18088:18;;:::i;:::-;18073:35;18129:1;18126;18122:9;18117:14;;17961:176;;;;:::o;18143:143::-;18200:5;18231:6;18225:13;18216:22;;18247:33;18274:5;18247:33;:::i;:::-;18143:143;;;;:::o;18292:351::-;18362:6;18411:2;18399:9;18390:7;18386:23;18382:32;18379:119;;;18417:79;;:::i;:::-;18379:119;18537:1;18562:64;18618:7;18609:6;18598:9;18594:22;18562:64;:::i;:::-;18552:74;;18508:128;18292:351;;;;:::o;18649:180::-;18697:77;18694:1;18687:88;18794:4;18791:1;18784:15;18818:4;18815:1;18808:15;18835:85;18880:7;18909:5;18898:16;;18835:85;;;:::o;18926:158::-;18984:9;19017:61;19035:42;19044:32;19070:5;19044:32;:::i;:::-;19035:42;:::i;:::-;19017:61;:::i;:::-;19004:74;;18926:158;;;:::o;19090:147::-;19185:45;19224:5;19185:45;:::i;:::-;19180:3;19173:58;19090:147;;:::o;19243:114::-;19310:6;19344:5;19338:12;19328:22;;19243:114;;;:::o;19363:184::-;19462:11;19496:6;19491:3;19484:19;19536:4;19531:3;19527:14;19512:29;;19363:184;;;;:::o;19553:132::-;19620:4;19643:3;19635:11;;19673:4;19668:3;19664:14;19656:22;;19553:132;;;:::o;19691:108::-;19768:24;19786:5;19768:24;:::i;:::-;19763:3;19756:37;19691:108;;:::o;19805:179::-;19874:10;19895:46;19937:3;19929:6;19895:46;:::i;:::-;19973:4;19968:3;19964:14;19950:28;;19805:179;;;;:::o;19990:113::-;20060:4;20092;20087:3;20083:14;20075:22;;19990:113;;;:::o;20139:732::-;20258:3;20287:54;20335:5;20287:54;:::i;:::-;20357:86;20436:6;20431:3;20357:86;:::i;:::-;20350:93;;20467:56;20517:5;20467:56;:::i;:::-;20546:7;20577:1;20562:284;20587:6;20584:1;20581:13;20562:284;;;20663:6;20657:13;20690:63;20749:3;20734:13;20690:63;:::i;:::-;20683:70;;20776:60;20829:6;20776:60;:::i;:::-;20766:70;;20622:224;20609:1;20606;20602:9;20597:14;;20562:284;;;20566:14;20862:3;20855:10;;20263:608;;;20139:732;;;;:::o;20877:831::-;21140:4;21178:3;21167:9;21163:19;21155:27;;21192:71;21260:1;21249:9;21245:17;21236:6;21192:71;:::i;:::-;21273:80;21349:2;21338:9;21334:18;21325:6;21273:80;:::i;:::-;21400:9;21394:4;21390:20;21385:2;21374:9;21370:18;21363:48;21428:108;21531:4;21522:6;21428:108;:::i;:::-;21420:116;;21546:72;21614:2;21603:9;21599:18;21590:6;21546:72;:::i;:::-;21628:73;21696:3;21685:9;21681:19;21672:6;21628:73;:::i;:::-;20877:831;;;;;;;;:::o

Swarm Source

ipfs://5ca8fb02724dd1ab5f001bf1f1db8999534edbffef8f76175b5374dca8f6596f
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.