ETH Price: $3,102.63 (+1.18%)
Gas: 3 Gwei

Token

UniCat Token (UNICAT)
 

Overview

Max Total Supply

1,000,000,000,000 UNICAT

Holders

259

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
597,938,644.304709497 UNICAT

Value
$0.00
0x04aeb6E0dce1807bfa918D0B88bC5B2EF7481F01
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

UniCat will serve as a utility token around it's DEX.

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
UNICAT

Compiler Version
v0.8.4+commit.c7e474f2

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

/**
 *
 * UniCat token https://t.me/unicattoken
 * 
*/

// SPDX-License-Identifier: UNLICENSED 

pragma solidity ^0.8.4;

abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
}

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

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

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

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

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if(a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }

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

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

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

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

contract Ownable is Context {
    address private _owner;
    address private _previousOwner;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

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

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

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

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

}  

interface IUniswapV2Factory {
    function createPair(address tokenA, address tokenB) external returns (address pair);
}

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
}

contract UNICAT is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _rOwned;
    mapping (address => uint256) private _tOwned;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private _bots;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 1e12 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    
    string private constant _name = unicode"UniCat Token";
    string private constant _symbol = unicode"UNICAT";
    
    uint8 private constant _decimals = 9;
    uint256 private _taxFee = 2;
    uint256 private _teamFee = 6;
    uint256 private _previousTaxFee = _taxFee;
    uint256 private _previousteamFee = _teamFee;
    address payable private _FeeAddress;
    address payable private _marketingWalletAddress;
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen = false;
    bool private _noTaxMode = false;
    bool private inSwap = false;
    uint256 private walletLimitDuration;

    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
        constructor (address payable FeeAddress, address payable marketingWalletAddress) {
        _FeeAddress = FeeAddress;
        _marketingWalletAddress = marketingWalletAddress;
        _rOwned[_msgSender()] = _rTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[FeeAddress] = true;
        _isExcludedFromFee[marketingWalletAddress] = true;
        emit Transfer(address(0), _msgSender(), _tTotal);
    }

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

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

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

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

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

    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(_msgSender(), 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(_msgSender(), spender, amount);
        return true;
    }

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

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

    function removeAllFee() private {
        if(_taxFee == 0 && _teamFee == 0) return;
        _previousTaxFee = _taxFee;
        _previousteamFee = _teamFee;
        _taxFee = 0;
        _teamFee = 0;
    }
    
    function restoreAllFee() private {
        _taxFee = _previousTaxFee;
        _teamFee = _previousteamFee;
    }

    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }
    
    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");

        if(from != owner() && to != owner()) {
            
            require(!_bots[from] && !_bots[to]);
            
            if(from == uniswapV2Pair && to != address(uniswapV2Router) && !_isExcludedFromFee[to]) {
                require(tradingOpen, "Trading not yet enabled.");
                
                if (walletLimitDuration > block.timestamp) {
                    uint walletBalance = balanceOf(address(to));
                    require(amount.add(walletBalance) <= _tTotal.mul(2).div(100));
                }
            }
            uint256 contractTokenBalance = balanceOf(address(this));

            if(!inSwap && from != uniswapV2Pair && tradingOpen) {
                if(contractTokenBalance > 0) {
                    if(contractTokenBalance > balanceOf(uniswapV2Pair).mul(5).div(100)) {
                        contractTokenBalance = balanceOf(uniswapV2Pair).mul(5).div(100);
                    }
                    swapTokensForEth(contractTokenBalance);
                }
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }
        bool takeFee = true;

        if(_isExcludedFromFee[from] || _isExcludedFromFee[to] || _noTaxMode){
            takeFee = false;
        }
        
        _tokenTransfer(from,to,amount,takeFee);
    }

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }
        
    function sendETHToFee(uint256 amount) private {
        _FeeAddress.transfer(amount.div(2));
        _marketingWalletAddress.transfer(amount.div(2));
    }
    
    function _tokenTransfer(address sender, address recipient, uint256 amount, bool takeFee) private {
        if(!takeFee)
            removeAllFee();
        _transferStandard(sender, recipient, amount);
        if(!takeFee)
            restoreAllFee();
    }

    function _transferStandard(address sender, address recipient, uint256 tAmount) private {
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); 

        _takeTeam(tTeam);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }

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

    function _getTValues(uint256 tAmount, uint256 taxFee, uint256 TeamFee) private pure returns (uint256, uint256, uint256) {
        uint256 tFee = tAmount.mul(taxFee).div(100);
        uint256 tTeam = tAmount.mul(TeamFee).div(100);
        uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam);
        return (tTransferAmount, tFee, tTeam);
    }

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

    function _getCurrentSupply() private view returns(uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;
        if(rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
        return (rSupply, tSupply);
    }

    function _getRValues(uint256 tAmount, uint256 tFee, uint256 tTeam, uint256 currentRate) private pure returns (uint256, uint256, uint256) {
        uint256 rAmount = tAmount.mul(currentRate);
        uint256 rFee = tFee.mul(currentRate);
        uint256 rTeam = tTeam.mul(currentRate);
        uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam);
        return (rAmount, rTransferAmount, rFee);
    }

    function _takeTeam(uint256 tTeam) private {
        uint256 currentRate =  _getRate();
        uint256 rTeam = tTeam.mul(currentRate);

        _rOwned[address(this)] = _rOwned[address(this)].add(rTeam);
    }

    function _reflectFee(uint256 rFee, uint256 tFee) private {
        _rTotal = _rTotal.sub(rFee);
        _tFeeTotal = _tFeeTotal.add(tFee);
    }

    receive() external payable {}
    
    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
        tradingOpen = true;
        walletLimitDuration = block.timestamp + (60 minutes);
    }
    
    function setMarketingWallet (address payable marketingWalletAddress) external {
        require(_msgSender() == _FeeAddress);
        _isExcludedFromFee[_marketingWalletAddress] = false;
        _marketingWalletAddress = marketingWalletAddress;
        _isExcludedFromFee[marketingWalletAddress] = true;
    }

    function excludeFromFee (address payable ad) external {
        require(_msgSender() == _FeeAddress);
        _isExcludedFromFee[ad] = true;
    }
    
    function includeToFee (address payable ad) external {
        require(_msgSender() == _FeeAddress);
        _isExcludedFromFee[ad] = false;
    }
    
    function setNoTaxMode(bool onoff) external {
        require(_msgSender() == _FeeAddress);
        _noTaxMode = onoff;
    }
    
    function setTeamFee(uint256 team) external {
        require(_msgSender() == _FeeAddress);
        require(team <= 6);
        _teamFee = team;
    }
        
    function setTaxFee(uint256 tax) external {
        require(_msgSender() == _FeeAddress);
        require(tax <= 2);
        _taxFee = tax;
    }
    
    function setBots(address[] memory bots_) public onlyOwner {
        for (uint i = 0; i < bots_.length; i++) {
            if (bots_[i] != uniswapV2Pair && bots_[i] != address(uniswapV2Router)) {
                _bots[bots_[i]] = true;
            }
        }
    }
    
    function delBot(address notbot) public onlyOwner {
        _bots[notbot] = false;
    }
    
    function isBot(address ad) public view returns (bool) {
        return _bots[ad];
    }
    
    function manualswap() external {
        require(_msgSender() == _FeeAddress);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }
    
    function manualsend() external {
        require(_msgSender() == _FeeAddress);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }

    function thisBalance() public view returns (uint) {
        return balanceOf(address(this));
    }

    function amountInPool() public view returns (uint) {
        return balanceOf(uniswapV2Pair);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address payable","name":"FeeAddress","type":"address"},{"internalType":"address payable","name":"marketingWalletAddress","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"amountInPool","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"notbot","type":"address"}],"name":"delBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"ad","type":"address"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"ad","type":"address"}],"name":"includeToFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"ad","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"setBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"marketingWalletAddress","type":"address"}],"name":"setMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"onoff","type":"bool"}],"name":"setNoTaxMode","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tax","type":"uint256"}],"name":"setTaxFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"team","type":"uint256"}],"name":"setTeamFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"thisBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052683635c9adc5dea000006000196200001d919062000577565b6000196200002c9190620004fe565b60075560026009556006600a55600954600b55600a54600c556000601060146101000a81548160ff0219169083151502179055506000601060156101000a81548160ff0219169083151502179055506000601060166101000a81548160ff021916908315150217905550348015620000a357600080fd5b5060405162004280380380620042808339818101604052810190620000c991906200048f565b6000620000db6200044760201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35081600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060075460026000620002126200044760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160056000620002666200044f60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620003cf6200044760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef683635c9adc5dea00000604051620004379190620004e1565b60405180910390a3505062000627565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008151905062000489816200060d565b92915050565b60008060408385031215620004a357600080fd5b6000620004b38582860162000478565b9250506020620004c68582860162000478565b9150509250929050565b620004db816200056d565b82525050565b6000602082019050620004f86000830184620004d0565b92915050565b60006200050b826200056d565b915062000518836200056d565b9250828210156200052e576200052d620005af565b5b828203905092915050565b600062000546826200054d565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600062000584826200056d565b915062000591836200056d565b925082620005a457620005a3620005de565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b620006188162000539565b81146200062457600080fd5b50565b613c4980620006376000396000f3fe60806040526004361061016a5760003560e01c806370a08231116100d1578063c3c8cd801161008a578063cf0848f711610064578063cf0848f7146104fb578063db92dbb614610524578063dd62ed3e1461054f578063e6ec64ec1461058c57610171565b8063c3c8cd80146104a4578063c4081a4c146104bb578063c9567bf9146104e457610171565b806370a0823114610394578063715018a6146103d15780638da5cb5b146103e857806395d89b4114610413578063a9059cbb1461043e578063b515566a1461047b57610171565b8063313ce56711610123578063313ce5671461029a5780633bbac579146102c5578063437823ec146103025780634b740b161461032b5780635d098b38146103545780636fc3eaec1461037d57610171565b806306fdde0314610176578063095ea7b3146101a157806318160ddd146101de57806323b872dd14610209578063273123b71461024657806327f3a72a1461026f57610171565b3661017157005b600080fd5b34801561018257600080fd5b5061018b6105b5565b6040516101989190613331565b60405180910390f35b3480156101ad57600080fd5b506101c860048036038101906101c39190612e77565b6105f2565b6040516101d59190613316565b60405180910390f35b3480156101ea57600080fd5b506101f3610610565b60405161020091906134b3565b60405180910390f35b34801561021557600080fd5b50610230600480360381019061022b9190612e28565b610621565b60405161023d9190613316565b60405180910390f35b34801561025257600080fd5b5061026d60048036038101906102689190612d71565b6106fa565b005b34801561027b57600080fd5b506102846107ea565b60405161029191906134b3565b60405180910390f35b3480156102a657600080fd5b506102af6107fa565b6040516102bc9190613528565b60405180910390f35b3480156102d157600080fd5b506102ec60048036038101906102e79190612d71565b610803565b6040516102f99190613316565b60405180910390f35b34801561030e57600080fd5b5061032960048036038101906103249190612dc3565b610859565b005b34801561033757600080fd5b50610352600480360381019061034d9190612ef4565b610915565b005b34801561036057600080fd5b5061037b60048036038101906103769190612dc3565b610993565b005b34801561038957600080fd5b50610392610b0a565b005b3480156103a057600080fd5b506103bb60048036038101906103b69190612d71565b610b7c565b6040516103c891906134b3565b60405180910390f35b3480156103dd57600080fd5b506103e6610bcd565b005b3480156103f457600080fd5b506103fd610d20565b60405161040a9190613248565b60405180910390f35b34801561041f57600080fd5b50610428610d49565b6040516104359190613331565b60405180910390f35b34801561044a57600080fd5b5061046560048036038101906104609190612e77565b610d86565b6040516104729190613316565b60405180910390f35b34801561048757600080fd5b506104a2600480360381019061049d9190612eb3565b610da4565b005b3480156104b057600080fd5b506104b9611026565b005b3480156104c757600080fd5b506104e260048036038101906104dd9190612f46565b6110a0565b005b3480156104f057600080fd5b506104f9611119565b005b34801561050757600080fd5b50610522600480360381019061051d9190612dc3565b611644565b005b34801561053057600080fd5b50610539611700565b60405161054691906134b3565b60405180910390f35b34801561055b57600080fd5b5061057660048036038101906105719190612dec565b611732565b60405161058391906134b3565b60405180910390f35b34801561059857600080fd5b506105b360048036038101906105ae9190612f46565b6117b9565b005b60606040518060400160405280600c81526020017f556e6943617420546f6b656e0000000000000000000000000000000000000000815250905090565b60006106066105ff611832565b848461183a565b6001905092915050565b6000683635c9adc5dea00000905090565b600061062e848484611a05565b6106ef8461063a611832565b6106ea85604051806060016040528060288152602001613bec60289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006106a0611832565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120579092919063ffffffff16565b61183a565b600190509392505050565b610702611832565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461078f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610786906133f3565b60405180910390fd5b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60006107f530610b7c565b905090565b60006009905090565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661089a611832565b73ffffffffffffffffffffffffffffffffffffffff16146108ba57600080fd5b6001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610956611832565b73ffffffffffffffffffffffffffffffffffffffff161461097657600080fd5b80601060156101000a81548160ff02191690831515021790555050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166109d4611832565b73ffffffffffffffffffffffffffffffffffffffff16146109f457600080fd5b600060056000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610b4b611832565b73ffffffffffffffffffffffffffffffffffffffff1614610b6b57600080fd5b6000479050610b79816120bb565b50565b6000610bc6600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121b6565b9050919050565b610bd5611832565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c62576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c59906133f3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600681526020017f554e494341540000000000000000000000000000000000000000000000000000815250905090565b6000610d9a610d93611832565b8484611a05565b6001905092915050565b610dac611832565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e39576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e30906133f3565b60405180910390fd5b60005b815181101561102257601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16828281518110610eb7577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614158015610f715750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16828281518110610f50577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614155b1561100f57600160066000848481518110610fb5577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b808061101a906137db565b915050610e3c565b5050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611067611832565b73ffffffffffffffffffffffffffffffffffffffff161461108757600080fd5b600061109230610b7c565b905061109d81612224565b50565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166110e1611832565b73ffffffffffffffffffffffffffffffffffffffff161461110157600080fd5b600281111561110f57600080fd5b8060098190555050565b611121611832565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111a5906133f3565b60405180910390fd5b601060149054906101000a900460ff16156111fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111f590613473565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061128e30600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16683635c9adc5dea0000061183a565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156112d457600080fd5b505afa1580156112e8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061130c9190612d9a565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561136e57600080fd5b505afa158015611382573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113a69190612d9a565b6040518363ffffffff1660e01b81526004016113c3929190613263565b602060405180830381600087803b1580156113dd57600080fd5b505af11580156113f1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114159190612d9a565b601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061149e30610b7c565b6000806114a9610d20565b426040518863ffffffff1660e01b81526004016114cb969594939291906132b5565b6060604051808303818588803b1580156114e457600080fd5b505af11580156114f8573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061151d9190612f6f565b505050601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016115bf92919061328c565b602060405180830381600087803b1580156115d957600080fd5b505af11580156115ed573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116119190612f1d565b506001601060146101000a81548160ff021916908315150217905550610e104261163b91906135e9565b60118190555050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611685611832565b73ffffffffffffffffffffffffffffffffffffffff16146116a557600080fd5b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600061172d601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610b7c565b905090565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166117fa611832565b73ffffffffffffffffffffffffffffffffffffffff161461181a57600080fd5b600681111561182857600080fd5b80600a8190555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156118aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118a190613453565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561191a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161191190613393565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516119f891906134b3565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611a75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a6c90613433565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611ae5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611adc90613353565b60405180910390fd5b60008111611b28576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b1f90613413565b60405180910390fd5b611b30610d20565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611b9e5750611b6e610d20565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611f7d57600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611c475750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611c5057600080fd5b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611cfb5750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611d515750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611e0d57601060149054906101000a900460ff16611da5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d9c90613493565b60405180910390fd5b426011541115611e0c576000611dba83610b7c565b9050611dec6064611dde6002683635c9adc5dea0000061251e90919063ffffffff16565b61259990919063ffffffff16565b611dff82846125e390919063ffffffff16565b1115611e0a57600080fd5b505b5b6000611e1830610b7c565b9050601060169054906101000a900460ff16158015611e855750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611e9d5750601060149054906101000a900460ff165b15611f7b576000811115611f6157611efc6064611eee6005611ee0601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610b7c565b61251e90919063ffffffff16565b61259990919063ffffffff16565b811115611f5757611f546064611f466005611f38601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610b7c565b61251e90919063ffffffff16565b61259990919063ffffffff16565b90505b611f6081612224565b5b60004790506000811115611f7957611f78476120bb565b5b505b505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806120245750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b8061203b5750601060159054906101000a900460ff165b1561204557600090505b61205184848484612641565b50505050565b600083831115829061209f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120969190613331565b60405180910390fd5b50600083856120ae91906136ca565b9050809150509392505050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc61210b60028461259990919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015612136573d6000803e3d6000fd5b50600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc61218760028461259990919063ffffffff16565b9081150290604051600060405180830381858888f193505050501580156121b2573d6000803e3d6000fd5b5050565b60006007548211156121fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121f490613373565b60405180910390fd5b600061220761266e565b905061221c818461259990919063ffffffff16565b915050919050565b6001601060166101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115612282577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156122b05781602001602082028036833780820191505090505b50905030816000815181106122ee577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561239057600080fd5b505afa1580156123a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123c89190612d9a565b81600181518110612402577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061246930600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461183a565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016124cd9594939291906134ce565b600060405180830381600087803b1580156124e757600080fd5b505af11580156124fb573d6000803e3d6000fd5b50505050506000601060166101000a81548160ff02191690831515021790555050565b6000808314156125315760009050612593565b6000828461253f9190613670565b905082848261254e919061363f565b1461258e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612585906133d3565b60405180910390fd5b809150505b92915050565b60006125db83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612699565b905092915050565b60008082846125f291906135e9565b905083811015612637576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161262e906133b3565b60405180910390fd5b8091505092915050565b8061264f5761264e6126fc565b5b61265a84848461273f565b806126685761266761290a565b5b50505050565b600080600061267b61291e565b91509150612692818361259990919063ffffffff16565b9250505090565b600080831182906126e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126d79190613331565b60405180910390fd5b50600083856126ef919061363f565b9050809150509392505050565b600060095414801561271057506000600a54145b1561271a5761273d565b600954600b81905550600a54600c8190555060006009819055506000600a819055505b565b60008060008060008061275187612980565b9550955095509550955095506127af86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546129e890919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061284485600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125e390919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061289081612a32565b61289a8483612aef565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516128f791906134b3565b60405180910390a3505050505050505050565b600b54600981905550600c54600a81905550565b600080600060075490506000683635c9adc5dea000009050612954683635c9adc5dea0000060075461259990919063ffffffff16565b82101561297357600754683635c9adc5dea0000093509350505061297c565b81819350935050505b9091565b600080600080600080600080600061299d8a600954600a54612b29565b92509250925060006129ad61266e565b905060008060006129c08e878787612bbf565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000612a2a83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612057565b905092915050565b6000612a3c61266e565b90506000612a53828461251e90919063ffffffff16565b9050612aa781600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125e390919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b612b04826007546129e890919063ffffffff16565b600781905550612b1f816008546125e390919063ffffffff16565b6008819055505050565b600080600080612b556064612b47888a61251e90919063ffffffff16565b61259990919063ffffffff16565b90506000612b7f6064612b71888b61251e90919063ffffffff16565b61259990919063ffffffff16565b90506000612ba882612b9a858c6129e890919063ffffffff16565b6129e890919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080612bd8858961251e90919063ffffffff16565b90506000612bef868961251e90919063ffffffff16565b90506000612c06878961251e90919063ffffffff16565b90506000612c2f82612c2185876129e890919063ffffffff16565b6129e890919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000612c5b612c5684613568565b613543565b90508083825260208201905082856020860282011115612c7a57600080fd5b60005b85811015612caa5781612c908882612cb4565b845260208401935060208301925050600181019050612c7d565b5050509392505050565b600081359050612cc381613b8f565b92915050565b600081519050612cd881613b8f565b92915050565b600081359050612ced81613ba6565b92915050565b600082601f830112612d0457600080fd5b8135612d14848260208601612c48565b91505092915050565b600081359050612d2c81613bbd565b92915050565b600081519050612d4181613bbd565b92915050565b600081359050612d5681613bd4565b92915050565b600081519050612d6b81613bd4565b92915050565b600060208284031215612d8357600080fd5b6000612d9184828501612cb4565b91505092915050565b600060208284031215612dac57600080fd5b6000612dba84828501612cc9565b91505092915050565b600060208284031215612dd557600080fd5b6000612de384828501612cde565b91505092915050565b60008060408385031215612dff57600080fd5b6000612e0d85828601612cb4565b9250506020612e1e85828601612cb4565b9150509250929050565b600080600060608486031215612e3d57600080fd5b6000612e4b86828701612cb4565b9350506020612e5c86828701612cb4565b9250506040612e6d86828701612d47565b9150509250925092565b60008060408385031215612e8a57600080fd5b6000612e9885828601612cb4565b9250506020612ea985828601612d47565b9150509250929050565b600060208284031215612ec557600080fd5b600082013567ffffffffffffffff811115612edf57600080fd5b612eeb84828501612cf3565b91505092915050565b600060208284031215612f0657600080fd5b6000612f1484828501612d1d565b91505092915050565b600060208284031215612f2f57600080fd5b6000612f3d84828501612d32565b91505092915050565b600060208284031215612f5857600080fd5b6000612f6684828501612d47565b91505092915050565b600080600060608486031215612f8457600080fd5b6000612f9286828701612d5c565b9350506020612fa386828701612d5c565b9250506040612fb486828701612d5c565b9150509250925092565b6000612fca8383612fd6565b60208301905092915050565b612fdf816136fe565b82525050565b612fee816136fe565b82525050565b6000612fff826135a4565b61300981856135c7565b935061301483613594565b8060005b8381101561304557815161302c8882612fbe565b9750613037836135ba565b925050600181019050613018565b5085935050505092915050565b61305b81613722565b82525050565b61306a81613765565b82525050565b600061307b826135af565b61308581856135d8565b9350613095818560208601613777565b61309e816138b1565b840191505092915050565b60006130b66023836135d8565b91506130c1826138c2565b604082019050919050565b60006130d9602a836135d8565b91506130e482613911565b604082019050919050565b60006130fc6022836135d8565b915061310782613960565b604082019050919050565b600061311f601b836135d8565b915061312a826139af565b602082019050919050565b60006131426021836135d8565b915061314d826139d8565b604082019050919050565b60006131656020836135d8565b915061317082613a27565b602082019050919050565b60006131886029836135d8565b915061319382613a50565b604082019050919050565b60006131ab6025836135d8565b91506131b682613a9f565b604082019050919050565b60006131ce6024836135d8565b91506131d982613aee565b604082019050919050565b60006131f16017836135d8565b91506131fc82613b3d565b602082019050919050565b60006132146018836135d8565b915061321f82613b66565b602082019050919050565b6132338161374e565b82525050565b61324281613758565b82525050565b600060208201905061325d6000830184612fe5565b92915050565b60006040820190506132786000830185612fe5565b6132856020830184612fe5565b9392505050565b60006040820190506132a16000830185612fe5565b6132ae602083018461322a565b9392505050565b600060c0820190506132ca6000830189612fe5565b6132d7602083018861322a565b6132e46040830187613061565b6132f16060830186613061565b6132fe6080830185612fe5565b61330b60a083018461322a565b979650505050505050565b600060208201905061332b6000830184613052565b92915050565b6000602082019050818103600083015261334b8184613070565b905092915050565b6000602082019050818103600083015261336c816130a9565b9050919050565b6000602082019050818103600083015261338c816130cc565b9050919050565b600060208201905081810360008301526133ac816130ef565b9050919050565b600060208201905081810360008301526133cc81613112565b9050919050565b600060208201905081810360008301526133ec81613135565b9050919050565b6000602082019050818103600083015261340c81613158565b9050919050565b6000602082019050818103600083015261342c8161317b565b9050919050565b6000602082019050818103600083015261344c8161319e565b9050919050565b6000602082019050818103600083015261346c816131c1565b9050919050565b6000602082019050818103600083015261348c816131e4565b9050919050565b600060208201905081810360008301526134ac81613207565b9050919050565b60006020820190506134c8600083018461322a565b92915050565b600060a0820190506134e3600083018861322a565b6134f06020830187613061565b81810360408301526135028186612ff4565b90506135116060830185612fe5565b61351e608083018461322a565b9695505050505050565b600060208201905061353d6000830184613239565b92915050565b600061354d61355e565b905061355982826137aa565b919050565b6000604051905090565b600067ffffffffffffffff82111561358357613582613882565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b60006135f48261374e565b91506135ff8361374e565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561363457613633613824565b5b828201905092915050565b600061364a8261374e565b91506136558361374e565b92508261366557613664613853565b5b828204905092915050565b600061367b8261374e565b91506136868361374e565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156136bf576136be613824565b5b828202905092915050565b60006136d58261374e565b91506136e08361374e565b9250828210156136f3576136f2613824565b5b828203905092915050565b60006137098261372e565b9050919050565b600061371b8261372e565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006137708261374e565b9050919050565b60005b8381101561379557808201518184015260208101905061377a565b838111156137a4576000848401525b50505050565b6137b3826138b1565b810181811067ffffffffffffffff821117156137d2576137d1613882565b5b80604052505050565b60006137e68261374e565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561381957613818613824565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b7f54726164696e67206e6f742079657420656e61626c65642e0000000000000000600082015250565b613b98816136fe565b8114613ba357600080fd5b50565b613baf81613710565b8114613bba57600080fd5b50565b613bc681613722565b8114613bd157600080fd5b50565b613bdd8161374e565b8114613be857600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122048bde00ac24f810b69346f3cfd098d45887c64532ea5e1f0cce32d7a7e9c153764736f6c63430008040033000000000000000000000000c7b307689e67d28a6de158f9c2b36f956f340f6d000000000000000000000000535efd74a61da19c8fd38bd52bc331da15989ef4

Deployed Bytecode

0x60806040526004361061016a5760003560e01c806370a08231116100d1578063c3c8cd801161008a578063cf0848f711610064578063cf0848f7146104fb578063db92dbb614610524578063dd62ed3e1461054f578063e6ec64ec1461058c57610171565b8063c3c8cd80146104a4578063c4081a4c146104bb578063c9567bf9146104e457610171565b806370a0823114610394578063715018a6146103d15780638da5cb5b146103e857806395d89b4114610413578063a9059cbb1461043e578063b515566a1461047b57610171565b8063313ce56711610123578063313ce5671461029a5780633bbac579146102c5578063437823ec146103025780634b740b161461032b5780635d098b38146103545780636fc3eaec1461037d57610171565b806306fdde0314610176578063095ea7b3146101a157806318160ddd146101de57806323b872dd14610209578063273123b71461024657806327f3a72a1461026f57610171565b3661017157005b600080fd5b34801561018257600080fd5b5061018b6105b5565b6040516101989190613331565b60405180910390f35b3480156101ad57600080fd5b506101c860048036038101906101c39190612e77565b6105f2565b6040516101d59190613316565b60405180910390f35b3480156101ea57600080fd5b506101f3610610565b60405161020091906134b3565b60405180910390f35b34801561021557600080fd5b50610230600480360381019061022b9190612e28565b610621565b60405161023d9190613316565b60405180910390f35b34801561025257600080fd5b5061026d60048036038101906102689190612d71565b6106fa565b005b34801561027b57600080fd5b506102846107ea565b60405161029191906134b3565b60405180910390f35b3480156102a657600080fd5b506102af6107fa565b6040516102bc9190613528565b60405180910390f35b3480156102d157600080fd5b506102ec60048036038101906102e79190612d71565b610803565b6040516102f99190613316565b60405180910390f35b34801561030e57600080fd5b5061032960048036038101906103249190612dc3565b610859565b005b34801561033757600080fd5b50610352600480360381019061034d9190612ef4565b610915565b005b34801561036057600080fd5b5061037b60048036038101906103769190612dc3565b610993565b005b34801561038957600080fd5b50610392610b0a565b005b3480156103a057600080fd5b506103bb60048036038101906103b69190612d71565b610b7c565b6040516103c891906134b3565b60405180910390f35b3480156103dd57600080fd5b506103e6610bcd565b005b3480156103f457600080fd5b506103fd610d20565b60405161040a9190613248565b60405180910390f35b34801561041f57600080fd5b50610428610d49565b6040516104359190613331565b60405180910390f35b34801561044a57600080fd5b5061046560048036038101906104609190612e77565b610d86565b6040516104729190613316565b60405180910390f35b34801561048757600080fd5b506104a2600480360381019061049d9190612eb3565b610da4565b005b3480156104b057600080fd5b506104b9611026565b005b3480156104c757600080fd5b506104e260048036038101906104dd9190612f46565b6110a0565b005b3480156104f057600080fd5b506104f9611119565b005b34801561050757600080fd5b50610522600480360381019061051d9190612dc3565b611644565b005b34801561053057600080fd5b50610539611700565b60405161054691906134b3565b60405180910390f35b34801561055b57600080fd5b5061057660048036038101906105719190612dec565b611732565b60405161058391906134b3565b60405180910390f35b34801561059857600080fd5b506105b360048036038101906105ae9190612f46565b6117b9565b005b60606040518060400160405280600c81526020017f556e6943617420546f6b656e0000000000000000000000000000000000000000815250905090565b60006106066105ff611832565b848461183a565b6001905092915050565b6000683635c9adc5dea00000905090565b600061062e848484611a05565b6106ef8461063a611832565b6106ea85604051806060016040528060288152602001613bec60289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006106a0611832565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120579092919063ffffffff16565b61183a565b600190509392505050565b610702611832565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461078f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610786906133f3565b60405180910390fd5b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60006107f530610b7c565b905090565b60006009905090565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661089a611832565b73ffffffffffffffffffffffffffffffffffffffff16146108ba57600080fd5b6001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610956611832565b73ffffffffffffffffffffffffffffffffffffffff161461097657600080fd5b80601060156101000a81548160ff02191690831515021790555050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166109d4611832565b73ffffffffffffffffffffffffffffffffffffffff16146109f457600080fd5b600060056000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610b4b611832565b73ffffffffffffffffffffffffffffffffffffffff1614610b6b57600080fd5b6000479050610b79816120bb565b50565b6000610bc6600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121b6565b9050919050565b610bd5611832565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c62576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c59906133f3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600681526020017f554e494341540000000000000000000000000000000000000000000000000000815250905090565b6000610d9a610d93611832565b8484611a05565b6001905092915050565b610dac611832565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e39576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e30906133f3565b60405180910390fd5b60005b815181101561102257601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16828281518110610eb7577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614158015610f715750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16828281518110610f50577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614155b1561100f57600160066000848481518110610fb5577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b808061101a906137db565b915050610e3c565b5050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611067611832565b73ffffffffffffffffffffffffffffffffffffffff161461108757600080fd5b600061109230610b7c565b905061109d81612224565b50565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166110e1611832565b73ffffffffffffffffffffffffffffffffffffffff161461110157600080fd5b600281111561110f57600080fd5b8060098190555050565b611121611832565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111a5906133f3565b60405180910390fd5b601060149054906101000a900460ff16156111fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111f590613473565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061128e30600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16683635c9adc5dea0000061183a565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156112d457600080fd5b505afa1580156112e8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061130c9190612d9a565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561136e57600080fd5b505afa158015611382573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113a69190612d9a565b6040518363ffffffff1660e01b81526004016113c3929190613263565b602060405180830381600087803b1580156113dd57600080fd5b505af11580156113f1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114159190612d9a565b601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061149e30610b7c565b6000806114a9610d20565b426040518863ffffffff1660e01b81526004016114cb969594939291906132b5565b6060604051808303818588803b1580156114e457600080fd5b505af11580156114f8573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061151d9190612f6f565b505050601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016115bf92919061328c565b602060405180830381600087803b1580156115d957600080fd5b505af11580156115ed573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116119190612f1d565b506001601060146101000a81548160ff021916908315150217905550610e104261163b91906135e9565b60118190555050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611685611832565b73ffffffffffffffffffffffffffffffffffffffff16146116a557600080fd5b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600061172d601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610b7c565b905090565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166117fa611832565b73ffffffffffffffffffffffffffffffffffffffff161461181a57600080fd5b600681111561182857600080fd5b80600a8190555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156118aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118a190613453565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561191a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161191190613393565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516119f891906134b3565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611a75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a6c90613433565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611ae5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611adc90613353565b60405180910390fd5b60008111611b28576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b1f90613413565b60405180910390fd5b611b30610d20565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611b9e5750611b6e610d20565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611f7d57600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611c475750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611c5057600080fd5b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611cfb5750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611d515750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611e0d57601060149054906101000a900460ff16611da5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d9c90613493565b60405180910390fd5b426011541115611e0c576000611dba83610b7c565b9050611dec6064611dde6002683635c9adc5dea0000061251e90919063ffffffff16565b61259990919063ffffffff16565b611dff82846125e390919063ffffffff16565b1115611e0a57600080fd5b505b5b6000611e1830610b7c565b9050601060169054906101000a900460ff16158015611e855750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611e9d5750601060149054906101000a900460ff165b15611f7b576000811115611f6157611efc6064611eee6005611ee0601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610b7c565b61251e90919063ffffffff16565b61259990919063ffffffff16565b811115611f5757611f546064611f466005611f38601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610b7c565b61251e90919063ffffffff16565b61259990919063ffffffff16565b90505b611f6081612224565b5b60004790506000811115611f7957611f78476120bb565b5b505b505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806120245750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b8061203b5750601060159054906101000a900460ff165b1561204557600090505b61205184848484612641565b50505050565b600083831115829061209f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120969190613331565b60405180910390fd5b50600083856120ae91906136ca565b9050809150509392505050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc61210b60028461259990919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015612136573d6000803e3d6000fd5b50600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc61218760028461259990919063ffffffff16565b9081150290604051600060405180830381858888f193505050501580156121b2573d6000803e3d6000fd5b5050565b60006007548211156121fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121f490613373565b60405180910390fd5b600061220761266e565b905061221c818461259990919063ffffffff16565b915050919050565b6001601060166101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115612282577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156122b05781602001602082028036833780820191505090505b50905030816000815181106122ee577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561239057600080fd5b505afa1580156123a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123c89190612d9a565b81600181518110612402577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061246930600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461183a565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016124cd9594939291906134ce565b600060405180830381600087803b1580156124e757600080fd5b505af11580156124fb573d6000803e3d6000fd5b50505050506000601060166101000a81548160ff02191690831515021790555050565b6000808314156125315760009050612593565b6000828461253f9190613670565b905082848261254e919061363f565b1461258e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612585906133d3565b60405180910390fd5b809150505b92915050565b60006125db83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612699565b905092915050565b60008082846125f291906135e9565b905083811015612637576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161262e906133b3565b60405180910390fd5b8091505092915050565b8061264f5761264e6126fc565b5b61265a84848461273f565b806126685761266761290a565b5b50505050565b600080600061267b61291e565b91509150612692818361259990919063ffffffff16565b9250505090565b600080831182906126e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126d79190613331565b60405180910390fd5b50600083856126ef919061363f565b9050809150509392505050565b600060095414801561271057506000600a54145b1561271a5761273d565b600954600b81905550600a54600c8190555060006009819055506000600a819055505b565b60008060008060008061275187612980565b9550955095509550955095506127af86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546129e890919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061284485600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125e390919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061289081612a32565b61289a8483612aef565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516128f791906134b3565b60405180910390a3505050505050505050565b600b54600981905550600c54600a81905550565b600080600060075490506000683635c9adc5dea000009050612954683635c9adc5dea0000060075461259990919063ffffffff16565b82101561297357600754683635c9adc5dea0000093509350505061297c565b81819350935050505b9091565b600080600080600080600080600061299d8a600954600a54612b29565b92509250925060006129ad61266e565b905060008060006129c08e878787612bbf565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000612a2a83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612057565b905092915050565b6000612a3c61266e565b90506000612a53828461251e90919063ffffffff16565b9050612aa781600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125e390919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b612b04826007546129e890919063ffffffff16565b600781905550612b1f816008546125e390919063ffffffff16565b6008819055505050565b600080600080612b556064612b47888a61251e90919063ffffffff16565b61259990919063ffffffff16565b90506000612b7f6064612b71888b61251e90919063ffffffff16565b61259990919063ffffffff16565b90506000612ba882612b9a858c6129e890919063ffffffff16565b6129e890919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080612bd8858961251e90919063ffffffff16565b90506000612bef868961251e90919063ffffffff16565b90506000612c06878961251e90919063ffffffff16565b90506000612c2f82612c2185876129e890919063ffffffff16565b6129e890919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000612c5b612c5684613568565b613543565b90508083825260208201905082856020860282011115612c7a57600080fd5b60005b85811015612caa5781612c908882612cb4565b845260208401935060208301925050600181019050612c7d565b5050509392505050565b600081359050612cc381613b8f565b92915050565b600081519050612cd881613b8f565b92915050565b600081359050612ced81613ba6565b92915050565b600082601f830112612d0457600080fd5b8135612d14848260208601612c48565b91505092915050565b600081359050612d2c81613bbd565b92915050565b600081519050612d4181613bbd565b92915050565b600081359050612d5681613bd4565b92915050565b600081519050612d6b81613bd4565b92915050565b600060208284031215612d8357600080fd5b6000612d9184828501612cb4565b91505092915050565b600060208284031215612dac57600080fd5b6000612dba84828501612cc9565b91505092915050565b600060208284031215612dd557600080fd5b6000612de384828501612cde565b91505092915050565b60008060408385031215612dff57600080fd5b6000612e0d85828601612cb4565b9250506020612e1e85828601612cb4565b9150509250929050565b600080600060608486031215612e3d57600080fd5b6000612e4b86828701612cb4565b9350506020612e5c86828701612cb4565b9250506040612e6d86828701612d47565b9150509250925092565b60008060408385031215612e8a57600080fd5b6000612e9885828601612cb4565b9250506020612ea985828601612d47565b9150509250929050565b600060208284031215612ec557600080fd5b600082013567ffffffffffffffff811115612edf57600080fd5b612eeb84828501612cf3565b91505092915050565b600060208284031215612f0657600080fd5b6000612f1484828501612d1d565b91505092915050565b600060208284031215612f2f57600080fd5b6000612f3d84828501612d32565b91505092915050565b600060208284031215612f5857600080fd5b6000612f6684828501612d47565b91505092915050565b600080600060608486031215612f8457600080fd5b6000612f9286828701612d5c565b9350506020612fa386828701612d5c565b9250506040612fb486828701612d5c565b9150509250925092565b6000612fca8383612fd6565b60208301905092915050565b612fdf816136fe565b82525050565b612fee816136fe565b82525050565b6000612fff826135a4565b61300981856135c7565b935061301483613594565b8060005b8381101561304557815161302c8882612fbe565b9750613037836135ba565b925050600181019050613018565b5085935050505092915050565b61305b81613722565b82525050565b61306a81613765565b82525050565b600061307b826135af565b61308581856135d8565b9350613095818560208601613777565b61309e816138b1565b840191505092915050565b60006130b66023836135d8565b91506130c1826138c2565b604082019050919050565b60006130d9602a836135d8565b91506130e482613911565b604082019050919050565b60006130fc6022836135d8565b915061310782613960565b604082019050919050565b600061311f601b836135d8565b915061312a826139af565b602082019050919050565b60006131426021836135d8565b915061314d826139d8565b604082019050919050565b60006131656020836135d8565b915061317082613a27565b602082019050919050565b60006131886029836135d8565b915061319382613a50565b604082019050919050565b60006131ab6025836135d8565b91506131b682613a9f565b604082019050919050565b60006131ce6024836135d8565b91506131d982613aee565b604082019050919050565b60006131f16017836135d8565b91506131fc82613b3d565b602082019050919050565b60006132146018836135d8565b915061321f82613b66565b602082019050919050565b6132338161374e565b82525050565b61324281613758565b82525050565b600060208201905061325d6000830184612fe5565b92915050565b60006040820190506132786000830185612fe5565b6132856020830184612fe5565b9392505050565b60006040820190506132a16000830185612fe5565b6132ae602083018461322a565b9392505050565b600060c0820190506132ca6000830189612fe5565b6132d7602083018861322a565b6132e46040830187613061565b6132f16060830186613061565b6132fe6080830185612fe5565b61330b60a083018461322a565b979650505050505050565b600060208201905061332b6000830184613052565b92915050565b6000602082019050818103600083015261334b8184613070565b905092915050565b6000602082019050818103600083015261336c816130a9565b9050919050565b6000602082019050818103600083015261338c816130cc565b9050919050565b600060208201905081810360008301526133ac816130ef565b9050919050565b600060208201905081810360008301526133cc81613112565b9050919050565b600060208201905081810360008301526133ec81613135565b9050919050565b6000602082019050818103600083015261340c81613158565b9050919050565b6000602082019050818103600083015261342c8161317b565b9050919050565b6000602082019050818103600083015261344c8161319e565b9050919050565b6000602082019050818103600083015261346c816131c1565b9050919050565b6000602082019050818103600083015261348c816131e4565b9050919050565b600060208201905081810360008301526134ac81613207565b9050919050565b60006020820190506134c8600083018461322a565b92915050565b600060a0820190506134e3600083018861322a565b6134f06020830187613061565b81810360408301526135028186612ff4565b90506135116060830185612fe5565b61351e608083018461322a565b9695505050505050565b600060208201905061353d6000830184613239565b92915050565b600061354d61355e565b905061355982826137aa565b919050565b6000604051905090565b600067ffffffffffffffff82111561358357613582613882565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b60006135f48261374e565b91506135ff8361374e565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561363457613633613824565b5b828201905092915050565b600061364a8261374e565b91506136558361374e565b92508261366557613664613853565b5b828204905092915050565b600061367b8261374e565b91506136868361374e565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156136bf576136be613824565b5b828202905092915050565b60006136d58261374e565b91506136e08361374e565b9250828210156136f3576136f2613824565b5b828203905092915050565b60006137098261372e565b9050919050565b600061371b8261372e565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006137708261374e565b9050919050565b60005b8381101561379557808201518184015260208101905061377a565b838111156137a4576000848401525b50505050565b6137b3826138b1565b810181811067ffffffffffffffff821117156137d2576137d1613882565b5b80604052505050565b60006137e68261374e565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561381957613818613824565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b7f54726164696e67206e6f742079657420656e61626c65642e0000000000000000600082015250565b613b98816136fe565b8114613ba357600080fd5b50565b613baf81613710565b8114613bba57600080fd5b50565b613bc681613722565b8114613bd157600080fd5b50565b613bdd8161374e565b8114613be857600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122048bde00ac24f810b69346f3cfd098d45887c64532ea5e1f0cce32d7a7e9c153764736f6c63430008040033

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

000000000000000000000000c7b307689e67d28a6de158f9c2b36f956f340f6d000000000000000000000000535efd74a61da19c8fd38bd52bc331da15989ef4

-----Decoded View---------------
Arg [0] : FeeAddress (address): 0xc7b307689e67D28a6De158F9c2b36f956F340F6d
Arg [1] : marketingWalletAddress (address): 0x535efd74a61Da19C8fd38Bd52Bc331da15989ef4

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000c7b307689e67d28a6de158f9c2b36f956f340f6d
Arg [1] : 000000000000000000000000535efd74a61da19c8fd38bd52bc331da15989ef4


Deployed Bytecode Sourcemap

3891:12434:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5720:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6572:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5997:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6741:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15510:89;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16113:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5906:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15611:89;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14439:149;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14760:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14117:314;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15915:190;;;;;;;;;;;;;:::i;:::-;;6100:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2970:148;;;;;;;;;;;;;:::i;:::-;;2756:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5811:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6246:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15228:270;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15712:191;;;;;;;;;;;;;:::i;:::-;;15068:148;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13333:772;;;;;;;;;;;;;:::i;:::-;;14600:148;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16221:101;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6421:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14899:153;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5720:83;5757:13;5790:5;;;;;;;;;;;;;;;;;5783:12;;5720:83;:::o;6572:161::-;6647:4;6664:39;6673:12;:10;:12::i;:::-;6687:7;6696:6;6664:8;:39::i;:::-;6721:4;6714:11;;6572:161;;;;:::o;5997:95::-;6050:7;4342:12;6070:14;;5997:95;:::o;6741:313::-;6839:4;6856:36;6866:6;6874:9;6885:6;6856:9;:36::i;:::-;6903:121;6912:6;6920:12;:10;:12::i;:::-;6934:89;6972:6;6934:89;;;;;;;;;;;;;;;;;:11;:19;6946:6;6934:19;;;;;;;;;;;;;;;:33;6954:12;:10;:12::i;:::-;6934:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6903:8;:121::i;:::-;7042:4;7035:11;;6741:313;;;;;:::o;15510:89::-;2893:12;:10;:12::i;:::-;2883:22;;:6;;;;;;;;;;:22;;;2875:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15586:5:::1;15570;:13;15576:6;15570:13;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;15510:89:::0;:::o;16113:100::-;16157:4;16181:24;16199:4;16181:9;:24::i;:::-;16174:31;;16113:100;:::o;5906:83::-;5947:5;4613:1;5965:16;;5906:83;:::o;15611:89::-;15659:4;15683:5;:9;15689:2;15683:9;;;;;;;;;;;;;;;;;;;;;;;;;15676:16;;15611:89;;;:::o;14439:149::-;14528:11;;;;;;;;;;;14512:27;;:12;:10;:12::i;:::-;:27;;;14504:36;;;;;;14576:4;14551:18;:22;14570:2;14551:22;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;14439:149;:::o;14760:127::-;14838:11;;;;;;;;;;;14822:27;;:12;:10;:12::i;:::-;:27;;;14814:36;;;;;;14874:5;14861:10;;:18;;;;;;;;;;;;;;;;;;14760:127;:::o;14117:314::-;14230:11;;;;;;;;;;;14214:27;;:12;:10;:12::i;:::-;:27;;;14206:36;;;;;;14299:5;14253:18;:43;14272:23;;;;;;;;;;;14253:43;;;;;;;;;;;;;;;;:51;;;;;;;;;;;;;;;;;;14341:22;14315:23;;:48;;;;;;;;;;;;;;;;;;14419:4;14374:18;:42;14393:22;14374:42;;;;;;;;;;;;;;;;:49;;;;;;;;;;;;;;;;;;14117:314;:::o;15915:190::-;15981:11;;;;;;;;;;;15965:27;;:12;:10;:12::i;:::-;:27;;;15957:36;;;;;;16004:26;16033:21;16004:50;;16065:32;16078:18;16065:12;:32::i;:::-;15915:190;:::o;6100:138::-;6166:7;6193:37;6213:7;:16;6221:7;6213:16;;;;;;;;;;;;;;;;6193:19;:37::i;:::-;6186:44;;6100:138;;;:::o;2970:148::-;2893:12;:10;:12::i;:::-;2883:22;;:6;;;;;;;;;;:22;;;2875:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3077:1:::1;3040:40;;3061:6;::::0;::::1;;;;;;;;3040:40;;;;;;;;;;;;3108:1;3091:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2970:148::o:0;2756:79::-;2794:7;2821:6;;;;;;;;;;;2814:13;;2756:79;:::o;5811:87::-;5850:13;5883:7;;;;;;;;;;;;;;;;;5876:14;;5811:87;:::o;6246:167::-;6324:4;6341:42;6351:12;:10;:12::i;:::-;6365:9;6376:6;6341:9;:42::i;:::-;6401:4;6394:11;;6246:167;;;;:::o;15228:270::-;2893:12;:10;:12::i;:::-;2883:22;;:6;;;;;;;;;;:22;;;2875:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15302:6:::1;15297:194;15318:5;:12;15314:1;:16;15297:194;;;15368:13;;;;;;;;;;;15356:25;;:5;15362:1;15356:8;;;;;;;;;;;;;;;;;;;;;;:25;;;;:65;;;;;15405:15;;;;;;;;;;;15385:36;;:5;15391:1;15385:8;;;;;;;;;;;;;;;;;;;;;;:36;;;;15356:65;15352:128;;;15460:4;15442:5;:15;15448:5;15454:1;15448:8;;;;;;;;;;;;;;;;;;;;;;15442:15;;;;;;;;;;;;;;;;:22;;;;;;;;;;;;;;;;;;15352:128;15332:3;;;;;:::i;:::-;;;;15297:194;;;;15228:270:::0;:::o;15712:191::-;15778:11;;;;;;;;;;;15762:27;;:12;:10;:12::i;:::-;:27;;;15754:36;;;;;;15801:23;15827:24;15845:4;15827:9;:24::i;:::-;15801:50;;15862:33;15879:15;15862:16;:33::i;:::-;15712:191;:::o;15068:148::-;15144:11;;;;;;;;;;;15128:27;;:12;:10;:12::i;:::-;:27;;;15120:36;;;;;;15182:1;15175:3;:8;;15167:17;;;;;;15205:3;15195:7;:13;;;;15068:148;:::o;13333:772::-;2893:12;:10;:12::i;:::-;2883:22;;:6;;;;;;;;;;:22;;;2875:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13397:11:::1;;;;;;;;;;;13396:12;13388:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;13446:35;13503:42;13446:100;;13575:16;13557:15;;:34;;;;;;;;;;;;;;;;;;13602:58;13619:4;13634:15;;;;;;;;;;;4342:12;13602:8;:58::i;:::-;13705:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13687:56;;;13752:4;13759:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13687:96;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13671:13;;:112;;;;;;;;;;;;;;;;;;13794:15;;;;;;;;;;;:31;;;13833:21;13864:4;13870:24;13888:4;13870:9;:24::i;:::-;13895:1;13897::::0;13899:7:::1;:5;:7::i;:::-;13907:15;13794:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;13941:13;;;;;;;;;;;13934:29;;;13972:15;;;;;;;;;;;13990:14;13934:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;14030:4;14016:11;;:18;;;;;;;;;;;;;;;;;;14086:10;14067:15;:30;;;;:::i;:::-;14045:19;:52;;;;2953:1;13333:772::o:0;14600:148::-;14687:11;;;;;;;;;;;14671:27;;:12;:10;:12::i;:::-;:27;;;14663:36;;;;;;14735:5;14710:18;:22;14729:2;14710:22;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;14600:148;:::o;16221:101::-;16266:4;16290:24;16300:13;;;;;;;;;;;16290:9;:24::i;:::-;16283:31;;16221:101;:::o;6421:143::-;6502:7;6529:11;:18;6541:5;6529:18;;;;;;;;;;;;;;;:27;6548:7;6529:27;;;;;;;;;;;;;;;;6522:34;;6421:143;;;;:::o;14899:153::-;14977:11;;;;;;;;;;;14961:27;;:12;:10;:12::i;:::-;:27;;;14953:36;;;;;;15016:1;15008:4;:9;;15000:18;;;;;;15040:4;15029:8;:15;;;;14899:153;:::o;165:98::-;218:7;245:10;238:17;;165:98;:::o;7669:335::-;7779:1;7762:19;;:5;:19;;;;7754:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7860:1;7841:21;;:7;:21;;;;7833:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7942:6;7912:11;:18;7924:5;7912:18;;;;;;;;;;;;;;;:27;7931:7;7912:27;;;;;;;;;;;;;;;:36;;;;7980:7;7964:32;;7973:5;7964:32;;;7989:6;7964:32;;;;;;:::i;:::-;;;;;;;;7669:335;;;:::o;8016:1767::-;8120:1;8104:18;;:4;:18;;;;8096:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8197:1;8183:16;;:2;:16;;;;8175:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8267:1;8258:6;:10;8250:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8338:7;:5;:7::i;:::-;8330:15;;:4;:15;;;;:32;;;;;8355:7;:5;:7::i;:::-;8349:13;;:2;:13;;;;8330:32;8327:1238;;;8402:5;:11;8408:4;8402:11;;;;;;;;;;;;;;;;;;;;;;;;;8401:12;:26;;;;;8418:5;:9;8424:2;8418:9;;;;;;;;;;;;;;;;;;;;;;;;;8417:10;8401:26;8393:35;;;;;;8468:13;;;;;;;;;;;8460:21;;:4;:21;;;:55;;;;;8499:15;;;;;;;;;;;8485:30;;:2;:30;;;;8460:55;:82;;;;;8520:18;:22;8539:2;8520:22;;;;;;;;;;;;;;;;;;;;;;;;;8519:23;8460:82;8457:419;;;8571:11;;;;;;;;;;;8563:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;8674:15;8652:19;;:37;8648:213;;;8714:18;8735:22;8753:2;8735:9;:22::i;:::-;8714:43;;8817:23;8836:3;8817:14;8829:1;4342:12;8817:11;;:14;;;;:::i;:::-;:18;;:23;;;;:::i;:::-;8788:25;8799:13;8788:6;:10;;:25;;;;:::i;:::-;:52;;8780:61;;;;;;8648:213;;8457:419;8890:28;8921:24;8939:4;8921:9;:24::i;:::-;8890:55;;8966:6;;;;;;;;;;;8965:7;:32;;;;;8984:13;;;;;;;;;;;8976:21;;:4;:21;;;;8965:32;:47;;;;;9001:11;;;;;;;;;;;8965:47;8962:592;;;9059:1;9036:20;:24;9033:314;;;9111:40;9147:3;9111:31;9140:1;9111:24;9121:13;;;;;;;;;;;9111:9;:24::i;:::-;:28;;:31;;;;:::i;:::-;:35;;:40;;;;:::i;:::-;9088:20;:63;9085:182;;;9203:40;9239:3;9203:31;9232:1;9203:24;9213:13;;;;;;;;;;;9203:9;:24::i;:::-;:28;;:31;;;;:::i;:::-;:35;;:40;;;;:::i;:::-;9180:63;;9085:182;9289:38;9306:20;9289:16;:38::i;:::-;9033:314;9365:26;9394:21;9365:50;;9458:1;9437:18;:22;9434:105;;;9484:35;9497:21;9484:12;:35::i;:::-;9434:105;8962:592;;8327:1238;;9575:12;9590:4;9575:19;;9610:18;:24;9629:4;9610:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;9638:18;:22;9657:2;9638:22;;;;;;;;;;;;;;;;;;;;;;;;;9610:50;:64;;;;9664:10;;;;;;;;;;;9610:64;9607:110;;;9700:5;9690:15;;9607:110;9737:38;9752:4;9757:2;9760:6;9767:7;9737:14;:38::i;:::-;8016:1767;;;;:::o;1302:190::-;1388:7;1421:1;1416;:6;;1424:12;1408:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1448:9;1464:1;1460;:5;;;;:::i;:::-;1448:17;;1483:1;1476:8;;;1302:190;;;;;:::o;10290:158::-;10347:11;;;;;;;;;;;:20;;:35;10368:13;10379:1;10368:6;:10;;:13;;;;:::i;:::-;10347:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10393:23;;;;;;;;;;;:32;;:47;10426:13;10437:1;10426:6;:10;;:13;;;;:::i;:::-;10393:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10290:158;:::o;7062:254::-;7129:7;7168;;7157;:18;;7149:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;7233:19;7256:10;:8;:10::i;:::-;7233:33;;7284:24;7296:11;7284:7;:11;;:24;;;;:::i;:::-;7277:31;;;7062:254;;;:::o;9791:483::-;5165:4;5156:6;;:13;;;;;;;;;;;;;;;;;;9869:21:::1;9907:1;9893:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9869:40;;9938:4;9920;9925:1;9920:7;;;;;;;;;;;;;;;;;;;;;:23;;;;;;;;;::::0;::::1;9964:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9954:4;9959:1;9954:7;;;;;;;;;;;;;;;;;;;;;:32;;;;;;;;;::::0;::::1;9997:62;10014:4;10029:15;;;;;;;;;;;10047:11;9997:8;:62::i;:::-;10070:15;;;;;;;;;;;:66;;;10151:11;10177:1;10193:4;10220;10240:15;10070:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;5180:1;5201:5:::0;5192:6;;:14;;;;;;;;;;;;;;;;;;9791:483;:::o;1500:245::-;1558:7;1586:1;1581;:6;1578:46;;;1611:1;1604:8;;;;1578:46;1634:9;1650:1;1646;:5;;;;:::i;:::-;1634:17;;1679:1;1674;1670;:5;;;;:::i;:::-;:10;1662:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1736:1;1729:8;;;1500:245;;;;;:::o;1753:132::-;1811:7;1838:39;1842:1;1845;1838:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1831:46;;1753:132;;;;:::o;971:179::-;1029:7;1049:9;1065:1;1061;:5;;;;:::i;:::-;1049:17;;1090:1;1085;:6;;1077:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1141:1;1134:8;;;971:179;;;;:::o;10460:263::-;10572:7;10568:40;;10594:14;:12;:14::i;:::-;10568:40;10619:44;10637:6;10645:9;10656:6;10619:17;:44::i;:::-;10678:7;10674:41;;10700:15;:13;:15::i;:::-;10674:41;10460:263;;;;:::o;12064:163::-;12105:7;12126:15;12143;12162:19;:17;:19::i;:::-;12125:56;;;;12199:20;12211:7;12199;:11;;:20;;;;:::i;:::-;12192:27;;;;12064:163;:::o;1893:189::-;1979:7;2011:1;2007;:5;2014:12;1999:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2038:9;2054:1;2050;:5;;;;:::i;:::-;2038:17;;2073:1;2066:8;;;1893:189;;;;;:::o;7324:210::-;7381:1;7370:7;;:12;:29;;;;;7398:1;7386:8;;:13;7370:29;7367:41;;;7401:7;;7367:41;7436:7;;7418:15;:25;;;;7473:8;;7454:16;:27;;;;7502:1;7492:7;:11;;;;7525:1;7514:8;:12;;;;7324:210;:::o;10731:490::-;10830:15;10847:23;10872:12;10886:23;10911:12;10925:13;10942:19;10953:7;10942:10;:19::i;:::-;10829:132;;;;;;;;;;;;10990:28;11010:7;10990;:15;10998:6;10990:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;10972:7;:15;10980:6;10972:15;;;;;;;;;;;;;;;:46;;;;11050:39;11073:15;11050:7;:18;11058:9;11050:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;11029:7;:18;11037:9;11029:18;;;;;;;;;;;;;;;:60;;;;11103:16;11113:5;11103:9;:16::i;:::-;11130:23;11142:4;11148;11130:11;:23::i;:::-;11186:9;11169:44;;11178:6;11169:44;;;11197:15;11169:44;;;;;;:::i;:::-;;;;;;;;10731:490;;;;;;;;;:::o;7546:115::-;7600:15;;7590:7;:25;;;;7637:16;;7626:8;:27;;;;7546:115::o;12235:255::-;12285:7;12294;12314:15;12332:7;;12314:25;;12350:15;4342:12;12350:25;;12399:20;4342:12;12399:7;;:11;;:20;;;;:::i;:::-;12389:7;:30;12386:60;;;12429:7;;4342:12;12421:25;;;;;;;;12386:60;12465:7;12474;12457:25;;;;;;12235:255;;;:::o;11229:468::-;11288:7;11297;11306;11315;11324;11333;11354:23;11379:12;11393:13;11410:39;11422:7;11431;;11440:8;;11410:11;:39::i;:::-;11353:96;;;;;;11460:19;11483:10;:8;:10::i;:::-;11460:33;;11505:15;11522:23;11547:12;11563:46;11575:7;11584:4;11590:5;11597:11;11563;:46::i;:::-;11504:105;;;;;;11628:7;11637:15;11654:4;11660:15;11677:4;11683:5;11620:69;;;;;;;;;;;;;;;;;;;11229:468;;;;;;;:::o;1158:136::-;1216:7;1243:43;1247:1;1250;1243:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1236:50;;1158:136;;;;:::o;12915:214::-;12968:19;12991:10;:8;:10::i;:::-;12968:33;;13012:13;13028:22;13038:11;13028:5;:9;;:22;;;;:::i;:::-;13012:38;;13088:33;13115:5;13088:7;:22;13104:4;13088:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;13063:7;:22;13079:4;13063:22;;;;;;;;;;;;;;;:58;;;;12915:214;;;:::o;13137:147::-;13215:17;13227:4;13215:7;;:11;;:17;;;;:::i;:::-;13205:7;:27;;;;13256:20;13271:4;13256:10;;:14;;:20;;;;:::i;:::-;13243:10;:33;;;;13137:147;;:::o;11705:351::-;11798:7;11807;11816;11836:12;11851:28;11875:3;11851:19;11863:6;11851:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;11836:43;;11890:13;11906:29;11931:3;11906:20;11918:7;11906;:11;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;11890:45;;11946:23;11972:28;11994:5;11972:17;11984:4;11972:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;11946:54;;12019:15;12036:4;12042:5;12011:37;;;;;;;;;11705:351;;;;;;;:::o;12498:409::-;12608:7;12617;12626;12646:15;12664:24;12676:11;12664:7;:11;;:24;;;;:::i;:::-;12646:42;;12699:12;12714:21;12723:11;12714:4;:8;;:21;;;;:::i;:::-;12699:36;;12746:13;12762:22;12772:11;12762:5;:9;;:22;;;;:::i;:::-;12746:38;;12795:23;12821:28;12843:5;12821:17;12833:4;12821:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;12795:54;;12868:7;12877:15;12894:4;12860:39;;;;;;;;;;12498:409;;;;;;;;:::o;24:655:1:-;120:5;145:81;161:64;218:6;161:64;:::i;:::-;145:81;:::i;:::-;136:90;;246:5;275:6;268:5;261:21;309:4;302:5;298:16;291:23;;335:6;385:3;377:4;369:6;365:17;360:3;356:27;353:36;350:2;;;414:1;411;404:12;350:2;450:1;435:238;460:6;457:1;454:13;435:238;;;528:3;557:37;590:3;578:10;557:37;:::i;:::-;552:3;545:50;624:4;619:3;615:14;608:21;;658:4;653:3;649:14;642:21;;495:178;482:1;479;475:9;470:14;;435:238;;;439:14;126:553;;;;;;;:::o;685:139::-;731:5;769:6;756:20;747:29;;785:33;812:5;785:33;:::i;:::-;737:87;;;;:::o;830:143::-;887:5;918:6;912:13;903:22;;934:33;961:5;934:33;:::i;:::-;893:80;;;;:::o;979:155::-;1033:5;1071:6;1058:20;1049:29;;1087:41;1122:5;1087:41;:::i;:::-;1039:95;;;;:::o;1157:303::-;1228:5;1277:3;1270:4;1262:6;1258:17;1254:27;1244:2;;1295:1;1292;1285:12;1244:2;1335:6;1322:20;1360:94;1450:3;1442:6;1435:4;1427:6;1423:17;1360:94;:::i;:::-;1351:103;;1234:226;;;;;:::o;1466:133::-;1509:5;1547:6;1534:20;1525:29;;1563:30;1587:5;1563:30;:::i;:::-;1515:84;;;;:::o;1605:137::-;1659:5;1690:6;1684:13;1675:22;;1706:30;1730:5;1706:30;:::i;:::-;1665:77;;;;:::o;1748:139::-;1794:5;1832:6;1819:20;1810:29;;1848:33;1875:5;1848:33;:::i;:::-;1800:87;;;;:::o;1893:143::-;1950:5;1981:6;1975:13;1966:22;;1997:33;2024:5;1997:33;:::i;:::-;1956:80;;;;:::o;2042:262::-;2101:6;2150:2;2138:9;2129:7;2125:23;2121:32;2118:2;;;2166:1;2163;2156:12;2118:2;2209:1;2234:53;2279:7;2270:6;2259:9;2255:22;2234:53;:::i;:::-;2224:63;;2180:117;2108:196;;;;:::o;2310:284::-;2380:6;2429:2;2417:9;2408:7;2404:23;2400:32;2397:2;;;2445:1;2442;2435:12;2397:2;2488:1;2513:64;2569:7;2560:6;2549:9;2545:22;2513:64;:::i;:::-;2503:74;;2459:128;2387:207;;;;:::o;2600:278::-;2667:6;2716:2;2704:9;2695:7;2691:23;2687:32;2684:2;;;2732:1;2729;2722:12;2684:2;2775:1;2800:61;2853:7;2844:6;2833:9;2829:22;2800:61;:::i;:::-;2790:71;;2746:125;2674:204;;;;:::o;2884:407::-;2952:6;2960;3009:2;2997:9;2988:7;2984:23;2980:32;2977:2;;;3025:1;3022;3015:12;2977:2;3068:1;3093:53;3138:7;3129:6;3118:9;3114:22;3093:53;:::i;:::-;3083:63;;3039:117;3195:2;3221:53;3266:7;3257:6;3246:9;3242:22;3221:53;:::i;:::-;3211:63;;3166:118;2967:324;;;;;:::o;3297:552::-;3374:6;3382;3390;3439:2;3427:9;3418:7;3414:23;3410:32;3407:2;;;3455:1;3452;3445:12;3407:2;3498:1;3523:53;3568:7;3559:6;3548:9;3544:22;3523:53;:::i;:::-;3513:63;;3469:117;3625:2;3651:53;3696:7;3687:6;3676:9;3672:22;3651:53;:::i;:::-;3641:63;;3596:118;3753:2;3779:53;3824:7;3815:6;3804:9;3800:22;3779:53;:::i;:::-;3769:63;;3724:118;3397:452;;;;;:::o;3855:407::-;3923:6;3931;3980:2;3968:9;3959:7;3955:23;3951:32;3948:2;;;3996:1;3993;3986:12;3948:2;4039:1;4064:53;4109:7;4100:6;4089:9;4085:22;4064:53;:::i;:::-;4054:63;;4010:117;4166:2;4192:53;4237:7;4228:6;4217:9;4213:22;4192:53;:::i;:::-;4182:63;;4137:118;3938:324;;;;;:::o;4268:405::-;4352:6;4401:2;4389:9;4380:7;4376:23;4372:32;4369:2;;;4417:1;4414;4407:12;4369:2;4488:1;4477:9;4473:17;4460:31;4518:18;4510:6;4507:30;4504:2;;;4550:1;4547;4540:12;4504:2;4578:78;4648:7;4639:6;4628:9;4624:22;4578:78;:::i;:::-;4568:88;;4431:235;4359:314;;;;:::o;4679:256::-;4735:6;4784:2;4772:9;4763:7;4759:23;4755:32;4752:2;;;4800:1;4797;4790:12;4752:2;4843:1;4868:50;4910:7;4901:6;4890:9;4886:22;4868:50;:::i;:::-;4858:60;;4814:114;4742:193;;;;:::o;4941:278::-;5008:6;5057:2;5045:9;5036:7;5032:23;5028:32;5025:2;;;5073:1;5070;5063:12;5025:2;5116:1;5141:61;5194:7;5185:6;5174:9;5170:22;5141:61;:::i;:::-;5131:71;;5087:125;5015:204;;;;:::o;5225:262::-;5284:6;5333:2;5321:9;5312:7;5308:23;5304:32;5301:2;;;5349:1;5346;5339:12;5301:2;5392:1;5417:53;5462:7;5453:6;5442:9;5438:22;5417:53;:::i;:::-;5407:63;;5363:117;5291:196;;;;:::o;5493:596::-;5581:6;5589;5597;5646:2;5634:9;5625:7;5621:23;5617:32;5614:2;;;5662:1;5659;5652:12;5614:2;5705:1;5730:64;5786:7;5777:6;5766:9;5762:22;5730:64;:::i;:::-;5720:74;;5676:128;5843:2;5869:64;5925:7;5916:6;5905:9;5901:22;5869:64;:::i;:::-;5859:74;;5814:129;5982:2;6008:64;6064:7;6055:6;6044:9;6040:22;6008:64;:::i;:::-;5998:74;;5953:129;5604:485;;;;;:::o;6095:179::-;6164:10;6185:46;6227:3;6219:6;6185:46;:::i;:::-;6263:4;6258:3;6254:14;6240:28;;6175:99;;;;:::o;6280:108::-;6357:24;6375:5;6357:24;:::i;:::-;6352:3;6345:37;6335:53;;:::o;6394:118::-;6481:24;6499:5;6481:24;:::i;:::-;6476:3;6469:37;6459:53;;:::o;6548:732::-;6667:3;6696:54;6744:5;6696:54;:::i;:::-;6766:86;6845:6;6840:3;6766:86;:::i;:::-;6759:93;;6876:56;6926:5;6876:56;:::i;:::-;6955:7;6986:1;6971:284;6996:6;6993:1;6990:13;6971:284;;;7072:6;7066:13;7099:63;7158:3;7143:13;7099:63;:::i;:::-;7092:70;;7185:60;7238:6;7185:60;:::i;:::-;7175:70;;7031:224;7018:1;7015;7011:9;7006:14;;6971:284;;;6975:14;7271:3;7264:10;;6672:608;;;;;;;:::o;7286:109::-;7367:21;7382:5;7367:21;:::i;:::-;7362:3;7355:34;7345:50;;:::o;7401:147::-;7496:45;7535:5;7496:45;:::i;:::-;7491:3;7484:58;7474:74;;:::o;7554:364::-;7642:3;7670:39;7703:5;7670:39;:::i;:::-;7725:71;7789:6;7784:3;7725:71;:::i;:::-;7718:78;;7805:52;7850:6;7845:3;7838:4;7831:5;7827:16;7805:52;:::i;:::-;7882:29;7904:6;7882:29;:::i;:::-;7877:3;7873:39;7866:46;;7646:272;;;;;:::o;7924:366::-;8066:3;8087:67;8151:2;8146:3;8087:67;:::i;:::-;8080:74;;8163:93;8252:3;8163:93;:::i;:::-;8281:2;8276:3;8272:12;8265:19;;8070:220;;;:::o;8296:366::-;8438:3;8459:67;8523:2;8518:3;8459:67;:::i;:::-;8452:74;;8535:93;8624:3;8535:93;:::i;:::-;8653:2;8648:3;8644:12;8637:19;;8442:220;;;:::o;8668:366::-;8810:3;8831:67;8895:2;8890:3;8831:67;:::i;:::-;8824:74;;8907:93;8996:3;8907:93;:::i;:::-;9025:2;9020:3;9016:12;9009:19;;8814:220;;;:::o;9040:366::-;9182:3;9203:67;9267:2;9262:3;9203:67;:::i;:::-;9196:74;;9279:93;9368:3;9279:93;:::i;:::-;9397:2;9392:3;9388:12;9381:19;;9186:220;;;:::o;9412:366::-;9554:3;9575:67;9639:2;9634:3;9575:67;:::i;:::-;9568:74;;9651:93;9740:3;9651:93;:::i;:::-;9769:2;9764:3;9760:12;9753:19;;9558:220;;;:::o;9784:366::-;9926:3;9947:67;10011:2;10006:3;9947:67;:::i;:::-;9940:74;;10023:93;10112:3;10023:93;:::i;:::-;10141:2;10136:3;10132:12;10125:19;;9930:220;;;:::o;10156:366::-;10298:3;10319:67;10383:2;10378:3;10319:67;:::i;:::-;10312:74;;10395:93;10484:3;10395:93;:::i;:::-;10513:2;10508:3;10504:12;10497:19;;10302:220;;;:::o;10528:366::-;10670:3;10691:67;10755:2;10750:3;10691:67;:::i;:::-;10684:74;;10767:93;10856:3;10767:93;:::i;:::-;10885:2;10880:3;10876:12;10869:19;;10674:220;;;:::o;10900:366::-;11042:3;11063:67;11127:2;11122:3;11063:67;:::i;:::-;11056:74;;11139:93;11228:3;11139:93;:::i;:::-;11257:2;11252:3;11248:12;11241:19;;11046:220;;;:::o;11272:366::-;11414:3;11435:67;11499:2;11494:3;11435:67;:::i;:::-;11428:74;;11511:93;11600:3;11511:93;:::i;:::-;11629:2;11624:3;11620:12;11613:19;;11418:220;;;:::o;11644:366::-;11786:3;11807:67;11871:2;11866:3;11807:67;:::i;:::-;11800:74;;11883:93;11972:3;11883:93;:::i;:::-;12001:2;11996:3;11992:12;11985:19;;11790:220;;;:::o;12016:118::-;12103:24;12121:5;12103:24;:::i;:::-;12098:3;12091:37;12081:53;;:::o;12140:112::-;12223:22;12239:5;12223:22;:::i;:::-;12218:3;12211:35;12201:51;;:::o;12258:222::-;12351:4;12389:2;12378:9;12374:18;12366:26;;12402:71;12470:1;12459:9;12455:17;12446:6;12402:71;:::i;:::-;12356:124;;;;:::o;12486:332::-;12607:4;12645:2;12634:9;12630:18;12622:26;;12658:71;12726:1;12715:9;12711:17;12702:6;12658:71;:::i;:::-;12739:72;12807:2;12796:9;12792:18;12783:6;12739:72;:::i;:::-;12612:206;;;;;:::o;12824:332::-;12945:4;12983:2;12972:9;12968:18;12960:26;;12996:71;13064:1;13053:9;13049:17;13040:6;12996:71;:::i;:::-;13077:72;13145:2;13134:9;13130:18;13121:6;13077:72;:::i;:::-;12950:206;;;;;:::o;13162:807::-;13411:4;13449:3;13438:9;13434:19;13426:27;;13463:71;13531:1;13520:9;13516:17;13507:6;13463:71;:::i;:::-;13544:72;13612:2;13601:9;13597:18;13588:6;13544:72;:::i;:::-;13626:80;13702:2;13691:9;13687:18;13678:6;13626:80;:::i;:::-;13716;13792:2;13781:9;13777:18;13768:6;13716:80;:::i;:::-;13806:73;13874:3;13863:9;13859:19;13850:6;13806:73;:::i;:::-;13889;13957:3;13946:9;13942:19;13933:6;13889:73;:::i;:::-;13416:553;;;;;;;;;:::o;13975:210::-;14062:4;14100:2;14089:9;14085:18;14077:26;;14113:65;14175:1;14164:9;14160:17;14151:6;14113:65;:::i;:::-;14067:118;;;;:::o;14191:313::-;14304:4;14342:2;14331:9;14327:18;14319:26;;14391:9;14385:4;14381:20;14377:1;14366:9;14362:17;14355:47;14419:78;14492:4;14483:6;14419:78;:::i;:::-;14411:86;;14309:195;;;;:::o;14510:419::-;14676:4;14714:2;14703:9;14699:18;14691:26;;14763:9;14757:4;14753:20;14749:1;14738:9;14734:17;14727:47;14791:131;14917:4;14791:131;:::i;:::-;14783:139;;14681:248;;;:::o;14935:419::-;15101:4;15139:2;15128:9;15124:18;15116:26;;15188:9;15182:4;15178:20;15174:1;15163:9;15159:17;15152:47;15216:131;15342:4;15216:131;:::i;:::-;15208:139;;15106:248;;;:::o;15360:419::-;15526:4;15564:2;15553:9;15549:18;15541:26;;15613:9;15607:4;15603:20;15599:1;15588:9;15584:17;15577:47;15641:131;15767:4;15641:131;:::i;:::-;15633:139;;15531:248;;;:::o;15785:419::-;15951:4;15989:2;15978:9;15974:18;15966:26;;16038:9;16032:4;16028:20;16024:1;16013:9;16009:17;16002:47;16066:131;16192:4;16066:131;:::i;:::-;16058:139;;15956:248;;;:::o;16210:419::-;16376:4;16414:2;16403:9;16399:18;16391:26;;16463:9;16457:4;16453:20;16449:1;16438:9;16434:17;16427:47;16491:131;16617:4;16491:131;:::i;:::-;16483:139;;16381:248;;;:::o;16635:419::-;16801:4;16839:2;16828:9;16824:18;16816:26;;16888:9;16882:4;16878:20;16874:1;16863:9;16859:17;16852:47;16916:131;17042:4;16916:131;:::i;:::-;16908:139;;16806:248;;;:::o;17060:419::-;17226:4;17264:2;17253:9;17249:18;17241:26;;17313:9;17307:4;17303:20;17299:1;17288:9;17284:17;17277:47;17341:131;17467:4;17341:131;:::i;:::-;17333:139;;17231:248;;;:::o;17485:419::-;17651:4;17689:2;17678:9;17674:18;17666:26;;17738:9;17732:4;17728:20;17724:1;17713:9;17709:17;17702:47;17766:131;17892:4;17766:131;:::i;:::-;17758:139;;17656:248;;;:::o;17910:419::-;18076:4;18114:2;18103:9;18099:18;18091:26;;18163:9;18157:4;18153:20;18149:1;18138:9;18134:17;18127:47;18191:131;18317:4;18191:131;:::i;:::-;18183:139;;18081:248;;;:::o;18335:419::-;18501:4;18539:2;18528:9;18524:18;18516:26;;18588:9;18582:4;18578:20;18574:1;18563:9;18559:17;18552:47;18616:131;18742:4;18616:131;:::i;:::-;18608:139;;18506:248;;;:::o;18760:419::-;18926:4;18964:2;18953:9;18949:18;18941:26;;19013:9;19007:4;19003:20;18999:1;18988:9;18984:17;18977:47;19041:131;19167:4;19041:131;:::i;:::-;19033:139;;18931:248;;;:::o;19185:222::-;19278:4;19316:2;19305:9;19301:18;19293:26;;19329:71;19397:1;19386:9;19382:17;19373:6;19329:71;:::i;:::-;19283:124;;;;:::o;19413:831::-;19676:4;19714:3;19703:9;19699:19;19691:27;;19728:71;19796:1;19785:9;19781:17;19772:6;19728:71;:::i;:::-;19809:80;19885:2;19874:9;19870:18;19861:6;19809:80;:::i;:::-;19936:9;19930:4;19926:20;19921:2;19910:9;19906:18;19899:48;19964:108;20067:4;20058:6;19964:108;:::i;:::-;19956:116;;20082:72;20150:2;20139:9;20135:18;20126:6;20082:72;:::i;:::-;20164:73;20232:3;20221:9;20217:19;20208:6;20164:73;:::i;:::-;19681:563;;;;;;;;:::o;20250:214::-;20339:4;20377:2;20366:9;20362:18;20354:26;;20390:67;20454:1;20443:9;20439:17;20430:6;20390:67;:::i;:::-;20344:120;;;;:::o;20470:129::-;20504:6;20531:20;;:::i;:::-;20521:30;;20560:33;20588:4;20580:6;20560:33;:::i;:::-;20511:88;;;:::o;20605:75::-;20638:6;20671:2;20665:9;20655:19;;20645:35;:::o;20686:311::-;20763:4;20853:18;20845:6;20842:30;20839:2;;;20875:18;;:::i;:::-;20839:2;20925:4;20917:6;20913:17;20905:25;;20985:4;20979;20975:15;20967:23;;20768:229;;;:::o;21003:132::-;21070:4;21093:3;21085:11;;21123:4;21118:3;21114:14;21106:22;;21075:60;;;:::o;21141:114::-;21208:6;21242:5;21236:12;21226:22;;21215:40;;;:::o;21261:99::-;21313:6;21347:5;21341:12;21331:22;;21320:40;;;:::o;21366:113::-;21436:4;21468;21463:3;21459:14;21451:22;;21441:38;;;:::o;21485:184::-;21584:11;21618:6;21613:3;21606:19;21658:4;21653:3;21649:14;21634:29;;21596:73;;;;:::o;21675:169::-;21759:11;21793:6;21788:3;21781:19;21833:4;21828:3;21824:14;21809:29;;21771:73;;;;:::o;21850:305::-;21890:3;21909:20;21927:1;21909:20;:::i;:::-;21904:25;;21943:20;21961:1;21943:20;:::i;:::-;21938:25;;22097:1;22029:66;22025:74;22022:1;22019:81;22016:2;;;22103:18;;:::i;:::-;22016:2;22147:1;22144;22140:9;22133:16;;21894:261;;;;:::o;22161:185::-;22201:1;22218:20;22236:1;22218:20;:::i;:::-;22213:25;;22252:20;22270:1;22252:20;:::i;:::-;22247:25;;22291:1;22281:2;;22296:18;;:::i;:::-;22281:2;22338:1;22335;22331:9;22326:14;;22203:143;;;;:::o;22352:348::-;22392:7;22415:20;22433:1;22415:20;:::i;:::-;22410:25;;22449:20;22467:1;22449:20;:::i;:::-;22444:25;;22637:1;22569:66;22565:74;22562:1;22559:81;22554:1;22547:9;22540:17;22536:105;22533:2;;;22644:18;;:::i;:::-;22533:2;22692:1;22689;22685:9;22674:20;;22400:300;;;;:::o;22706:191::-;22746:4;22766:20;22784:1;22766:20;:::i;:::-;22761:25;;22800:20;22818:1;22800:20;:::i;:::-;22795:25;;22839:1;22836;22833:8;22830:2;;;22844:18;;:::i;:::-;22830:2;22889:1;22886;22882:9;22874:17;;22751:146;;;;:::o;22903:96::-;22940:7;22969:24;22987:5;22969:24;:::i;:::-;22958:35;;22948:51;;;:::o;23005:104::-;23050:7;23079:24;23097:5;23079:24;:::i;:::-;23068:35;;23058:51;;;:::o;23115:90::-;23149:7;23192:5;23185:13;23178:21;23167:32;;23157:48;;;:::o;23211:126::-;23248:7;23288:42;23281:5;23277:54;23266:65;;23256:81;;;:::o;23343:77::-;23380:7;23409:5;23398:16;;23388:32;;;:::o;23426:86::-;23461:7;23501:4;23494:5;23490:16;23479:27;;23469:43;;;:::o;23518:121::-;23576:9;23609:24;23627:5;23609:24;:::i;:::-;23596:37;;23586:53;;;:::o;23645:307::-;23713:1;23723:113;23737:6;23734:1;23731:13;23723:113;;;23822:1;23817:3;23813:11;23807:18;23803:1;23798:3;23794:11;23787:39;23759:2;23756:1;23752:10;23747:15;;23723:113;;;23854:6;23851:1;23848:13;23845:2;;;23934:1;23925:6;23920:3;23916:16;23909:27;23845:2;23694:258;;;;:::o;23958:281::-;24041:27;24063:4;24041:27;:::i;:::-;24033:6;24029:40;24171:6;24159:10;24156:22;24135:18;24123:10;24120:34;24117:62;24114:2;;;24182:18;;:::i;:::-;24114:2;24222:10;24218:2;24211:22;24001:238;;;:::o;24245:233::-;24284:3;24307:24;24325:5;24307:24;:::i;:::-;24298:33;;24353:66;24346:5;24343:77;24340:2;;;24423:18;;:::i;:::-;24340:2;24470:1;24463:5;24459:13;24452:20;;24288:190;;;:::o;24484:180::-;24532:77;24529:1;24522:88;24629:4;24626:1;24619:15;24653:4;24650:1;24643:15;24670:180;24718:77;24715:1;24708:88;24815:4;24812:1;24805:15;24839:4;24836:1;24829:15;24856:180;24904:77;24901:1;24894:88;25001:4;24998:1;24991:15;25025:4;25022:1;25015:15;25042:102;25083:6;25134:2;25130:7;25125:2;25118:5;25114:14;25110:28;25100:38;;25090:54;;;:::o;25150:222::-;25290:34;25286:1;25278:6;25274:14;25267:58;25359:5;25354:2;25346:6;25342:15;25335:30;25256:116;:::o;25378:229::-;25518:34;25514:1;25506:6;25502:14;25495:58;25587:12;25582:2;25574:6;25570:15;25563:37;25484:123;:::o;25613:221::-;25753:34;25749:1;25741:6;25737:14;25730:58;25822:4;25817:2;25809:6;25805:15;25798:29;25719:115;:::o;25840:177::-;25980:29;25976:1;25968:6;25964:14;25957:53;25946:71;:::o;26023:220::-;26163:34;26159:1;26151:6;26147:14;26140:58;26232:3;26227:2;26219:6;26215:15;26208:28;26129:114;:::o;26249:182::-;26389:34;26385:1;26377:6;26373:14;26366:58;26355:76;:::o;26437:228::-;26577:34;26573:1;26565:6;26561:14;26554:58;26646:11;26641:2;26633:6;26629:15;26622:36;26543:122;:::o;26671:224::-;26811:34;26807:1;26799:6;26795:14;26788:58;26880:7;26875:2;26867:6;26863:15;26856:32;26777:118;:::o;26901:223::-;27041:34;27037:1;27029:6;27025:14;27018:58;27110:6;27105:2;27097:6;27093:15;27086:31;27007:117;:::o;27130:173::-;27270:25;27266:1;27258:6;27254:14;27247:49;27236:67;:::o;27309:174::-;27449:26;27445:1;27437:6;27433:14;27426:50;27415:68;:::o;27489:122::-;27562:24;27580:5;27562:24;:::i;:::-;27555:5;27552:35;27542:2;;27601:1;27598;27591:12;27542:2;27532:79;:::o;27617:138::-;27698:32;27724:5;27698:32;:::i;:::-;27691:5;27688:43;27678:2;;27745:1;27742;27735:12;27678:2;27668:87;:::o;27761:116::-;27831:21;27846:5;27831:21;:::i;:::-;27824:5;27821:32;27811:2;;27867:1;27864;27857:12;27811:2;27801:76;:::o;27883:122::-;27956:24;27974:5;27956:24;:::i;:::-;27949:5;27946:35;27936:2;;27995:1;27992;27985:12;27936:2;27926:79;:::o

Swarm Source

ipfs://48bde00ac24f810b69346f3cfd098d45887c64532ea5e1f0cce32d7a7e9c1537
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.