ETH Price: $2,981.12 (+2.09%)
Gas: 1 Gwei

Token

Toking Inu (TOKING)
 

Overview

Max Total Supply

5,000,000,000,000 TOKING

Holders

168

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Filtered by Token Holder
platinumbot.eth
Balance
2,088,806,973.030599234 TOKING

Value
$0.00
0xff08d4d9ae7e2cd20a9c48c024b2e2a1dd8f7c85
Loading...
Loading
Loading...
Loading
Loading...
Loading

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

Contract Source Code Verified (Exact Match)

Contract Name:
TOKING

Compiler Version
v0.8.10+commit.fc410830

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-04-14
*/

/**

                     .                          
                     M                          
                    dM                          
                    MMr                         
                   4MMML                  .     
                   MMMMM.                xf     
   .              "MMMMM               .MM-     
    Mh..          +MMMMMM            .MMMM      
    .MMM.         .MMMMML.          MMMMMh      
     )MMMh.        MMMMMM         MMMMMMM       
      3MMMMx.     'MMMMMMf      xnMMMMMM"       
      '*MMMMM      MMMMMM.     nMMMMMMP"        
        *MMMMMx    "MMMMM\    .MMMMMMM=         
         *MMMMMh   "MMMMM"   JMMMMMMP           
           MMMMMM   3MMMM.  dMMMMMM            .
            MMMMMM  "MMMM  .MMMMM(        .nnMP"
=..          *MMMMx  MMM"  dMMMM"    .nnMMMMM*  
  "MMn...     'MMMMr 'MM   MMM"   .nMMMMMMM*"   
   "4MMMMnn..   *MMM  MM  MMP"  .dMMMMMMM""     
     ^MMMMMMMMx.  *ML "M .M*  .MMMMMM**"        
        *PMMMMMMhn. *x > M  .MMMM**""           
           ""**MMMMhx/.h/ .=*"                  
                    .3P"%....                   
                  nP"     "*MMnx

   (    (                                                          
 ( )\   )\      )          (                                       
 )((_) ((_)  ( /(   (     ))\                                      
((_)_   _    )(_))  )\   /((_)                                     
 | _ ) | |  ((_)_  ((_) (_))                                       
 | _ \ | |  / _` | |_ / / -_)                                      
 |___/ |_|  \__,_| /__| \___|                           
                                                                                                                      
    )              )      )                                        
 ( /(           ( /(   ( /(     (         )                        
 )\())   (      )\())  )\())   ))\       (       (     (     (     
(_))/    )\    (_))/  ((_)\   /((_)      )\  '   )\    )\    )\ )  
| |_    ((_)   | |_   | |(_) (_))      _((_))   ((_)  ((_)  _(_/(  
|  _|  / _ \   |  _|  | ' \  / -_)    | '  \() / _ \ / _ \ | ' \)) 
 \__|  \___/    \__|  |_||_| \___|    |_|_|_|  \___/ \___/ |_||_|


*/

// 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 TOKING 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 = 5e12 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    
    string private constant _name = unicode"Toking Inu";
    string private constant _symbol = unicode"TOKING";
    
    uint8 private constant _decimals = 9;
    uint256 private _taxFee = 1;
    uint256 private _teamFee = 3;
    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;
    struct User {
        uint256 buyCD;
        bool exists;
    }

    event MaxBuyAmountUpdated(uint _maxBuyAmount);
    event CooldownEnabledUpdated(bool _cooldown);
    event FeeMultiplierUpdated(uint _multiplier);
    event FeeRateUpdated(uint _rate);

    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 <= 7);
        _teamFee = team;
    }
        
    function setTaxFee(uint256 tax) external {
        require(_msgSender() == _FeeAddress);
        require(tax <= 1);
        _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":false,"internalType":"bool","name":"_cooldown","type":"bool"}],"name":"CooldownEnabledUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_multiplier","type":"uint256"}],"name":"FeeMultiplierUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_rate","type":"uint256"}],"name":"FeeRateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxBuyAmount","type":"uint256"}],"name":"MaxBuyAmountUpdated","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"}]

608060405269010f0cf064dd592000006000196200001e9190620004b3565b6000196200002d91906200051a565b60075560016009556003600a55600954600b55600a54600c556000601060146101000a81548160ff0219169083151502179055506000601060156101000a81548160ff0219169083151502179055506000601060166101000a81548160ff021916908315150217905550348015620000a457600080fd5b50604051620041ed380380620041ed8339818101604052810190620000ca9190620005bf565b6000620000dc6200044960201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35081600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060075460026000620002136200044960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160056000620002676200045160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620003d06200044960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef69010f0cf064dd5920000060405162000439919062000617565b60405180910390a3505062000634565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620004c0826200047a565b9150620004cd836200047a565b925082620004e057620004df62000484565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000527826200047a565b915062000534836200047a565b9250828210156200054a5762000549620004eb565b5b828203905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000587826200055a565b9050919050565b62000599816200057a565b8114620005a557600080fd5b50565b600081519050620005b9816200058e565b92915050565b60008060408385031215620005d957620005d862000555565b5b6000620005e985828601620005a8565b9250506020620005fc85828601620005a8565b9150509250929050565b62000611816200047a565b82525050565b60006020820190506200062e600083018462000606565b92915050565b613ba980620006446000396000f3fe60806040526004361061016a5760003560e01c806370a08231116100d1578063c3c8cd801161008a578063cf0848f711610064578063cf0848f7146104fb578063db92dbb614610524578063dd62ed3e1461054f578063e6ec64ec1461058c57610171565b8063c3c8cd80146104a4578063c4081a4c146104bb578063c9567bf9146104e457610171565b806370a0823114610394578063715018a6146103d15780638da5cb5b146103e857806395d89b4114610413578063a9059cbb1461043e578063b515566a1461047b57610171565b8063313ce56711610123578063313ce5671461029a5780633bbac579146102c5578063437823ec146103025780634b740b161461032b5780635d098b38146103545780636fc3eaec1461037d57610171565b806306fdde0314610176578063095ea7b3146101a157806318160ddd146101de57806323b872dd14610209578063273123b71461024657806327f3a72a1461026f57610171565b3661017157005b600080fd5b34801561018257600080fd5b5061018b6105b5565b6040516101989190612ba9565b60405180910390f35b3480156101ad57600080fd5b506101c860048036038101906101c39190612c73565b6105f2565b6040516101d59190612cce565b60405180910390f35b3480156101ea57600080fd5b506101f3610610565b6040516102009190612cf8565b60405180910390f35b34801561021557600080fd5b50610230600480360381019061022b9190612d13565b610622565b60405161023d9190612cce565b60405180910390f35b34801561025257600080fd5b5061026d60048036038101906102689190612d66565b6106fb565b005b34801561027b57600080fd5b506102846107eb565b6040516102919190612cf8565b60405180910390f35b3480156102a657600080fd5b506102af6107fb565b6040516102bc9190612daf565b60405180910390f35b3480156102d157600080fd5b506102ec60048036038101906102e79190612d66565b610804565b6040516102f99190612cce565b60405180910390f35b34801561030e57600080fd5b5061032960048036038101906103249190612e08565b61085a565b005b34801561033757600080fd5b50610352600480360381019061034d9190612e61565b610916565b005b34801561036057600080fd5b5061037b60048036038101906103769190612e08565b610994565b005b34801561038957600080fd5b50610392610b0b565b005b3480156103a057600080fd5b506103bb60048036038101906103b69190612d66565b610b7d565b6040516103c89190612cf8565b60405180910390f35b3480156103dd57600080fd5b506103e6610bce565b005b3480156103f457600080fd5b506103fd610d21565b60405161040a9190612e9d565b60405180910390f35b34801561041f57600080fd5b50610428610d4a565b6040516104359190612ba9565b60405180910390f35b34801561044a57600080fd5b5061046560048036038101906104609190612c73565b610d87565b6040516104729190612cce565b60405180910390f35b34801561048757600080fd5b506104a2600480360381019061049d9190613000565b610da5565b005b3480156104b057600080fd5b506104b9610fb5565b005b3480156104c757600080fd5b506104e260048036038101906104dd9190613049565b61102f565b005b3480156104f057600080fd5b506104f96110a8565b005b34801561050757600080fd5b50610522600480360381019061051d9190612e08565b611589565b005b34801561053057600080fd5b50610539611645565b6040516105469190612cf8565b60405180910390f35b34801561055b57600080fd5b5061057660048036038101906105719190613076565b611677565b6040516105839190612cf8565b60405180910390f35b34801561059857600080fd5b506105b360048036038101906105ae9190613049565b6116fe565b005b60606040518060400160405280600a81526020017f546f6b696e6720496e7500000000000000000000000000000000000000000000815250905090565b60006106066105ff611777565b848461177f565b6001905092915050565b600069010f0cf064dd59200000905090565b600061062f84848461194a565b6106f08461063b611777565b6106eb85604051806060016040528060288152602001613b4c60289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006106a1611777565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f9d9092919063ffffffff16565b61177f565b600190509392505050565b610703611777565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610790576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161078790613102565b60405180910390fd5b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60006107f630610b7d565b905090565b60006009905090565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661089b611777565b73ffffffffffffffffffffffffffffffffffffffff16146108bb57600080fd5b6001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610957611777565b73ffffffffffffffffffffffffffffffffffffffff161461097757600080fd5b80601060156101000a81548160ff02191690831515021790555050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166109d5611777565b73ffffffffffffffffffffffffffffffffffffffff16146109f557600080fd5b600060056000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610b4c611777565b73ffffffffffffffffffffffffffffffffffffffff1614610b6c57600080fd5b6000479050610b7a81612001565b50565b6000610bc7600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120fc565b9050919050565b610bd6611777565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c63576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c5a90613102565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600681526020017f544f4b494e470000000000000000000000000000000000000000000000000000815250905090565b6000610d9b610d94611777565b848461194a565b6001905092915050565b610dad611777565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3190613102565b60405180910390fd5b60005b8151811015610fb157601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16828281518110610e9257610e91613122565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614158015610f265750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16828281518110610f0557610f04613122565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614155b15610f9e57600160066000848481518110610f4457610f43613122565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b8080610fa990613180565b915050610e3d565b5050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610ff6611777565b73ffffffffffffffffffffffffffffffffffffffff161461101657600080fd5b600061102130610b7d565b905061102c8161216a565b50565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611070611777565b73ffffffffffffffffffffffffffffffffffffffff161461109057600080fd5b600181111561109e57600080fd5b8060098190555050565b6110b0611777565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461113d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113490613102565b60405180910390fd5b601060149054906101000a900460ff161561118d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118490613215565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061121e30600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1669010f0cf064dd5920000061177f565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611269573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061128d919061324a565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112f4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611318919061324a565b6040518363ffffffff1660e01b8152600401611335929190613277565b6020604051808303816000875af1158015611354573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611378919061324a565b601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061140130610b7d565b60008061140c610d21565b426040518863ffffffff1660e01b815260040161142e969594939291906132e5565b60606040518083038185885af115801561144c573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611471919061335b565b505050601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016115139291906133ae565b6020604051808303816000875af1158015611532573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061155691906133ec565b506001601060146101000a81548160ff021916908315150217905550610e10426115809190613419565b60118190555050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166115ca611777565b73ffffffffffffffffffffffffffffffffffffffff16146115ea57600080fd5b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000611672601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610b7d565b905090565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661173f611777565b73ffffffffffffffffffffffffffffffffffffffff161461175f57600080fd5b600781111561176d57600080fd5b80600a8190555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156117ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117e6906134e1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561185f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161185690613573565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161193d9190612cf8565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156119ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119b190613605565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611a2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a2190613697565b60405180910390fd5b60008111611a6d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a6490613729565b60405180910390fd5b611a75610d21565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611ae35750611ab3610d21565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611ec357600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611b8c5750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611b9557600080fd5b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611c405750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611c965750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611d5357601060149054906101000a900460ff16611cea576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ce190613795565b60405180910390fd5b426011541115611d52576000611cff83610b7d565b9050611d326064611d24600269010f0cf064dd592000006123e390919063ffffffff16565b61245e90919063ffffffff16565b611d4582846124a890919063ffffffff16565b1115611d5057600080fd5b505b5b6000611d5e30610b7d565b9050601060169054906101000a900460ff16158015611dcb5750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611de35750601060149054906101000a900460ff165b15611ec1576000811115611ea757611e426064611e346005611e26601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610b7d565b6123e390919063ffffffff16565b61245e90919063ffffffff16565b811115611e9d57611e9a6064611e8c6005611e7e601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610b7d565b6123e390919063ffffffff16565b61245e90919063ffffffff16565b90505b611ea68161216a565b5b60004790506000811115611ebf57611ebe47612001565b5b505b505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611f6a5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611f815750601060159054906101000a900460ff165b15611f8b57600090505b611f9784848484612506565b50505050565b6000838311158290611fe5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fdc9190612ba9565b60405180910390fd5b5060008385611ff491906137b5565b9050809150509392505050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc61205160028461245e90919063ffffffff16565b9081150290604051600060405180830381858888f1935050505015801561207c573d6000803e3d6000fd5b50600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6120cd60028461245e90919063ffffffff16565b9081150290604051600060405180830381858888f193505050501580156120f8573d6000803e3d6000fd5b5050565b6000600754821115612143576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161213a9061385b565b60405180910390fd5b600061214d612533565b9050612162818461245e90919063ffffffff16565b915050919050565b6001601060166101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156121a2576121a1612ebd565b5b6040519080825280602002602001820160405280156121d05781602001602082028036833780820191505090505b50905030816000815181106121e8576121e7613122565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561228f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122b3919061324a565b816001815181106122c7576122c6613122565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061232e30600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461177f565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612392959493929190613939565b600060405180830381600087803b1580156123ac57600080fd5b505af11580156123c0573d6000803e3d6000fd5b50505050506000601060166101000a81548160ff02191690831515021790555050565b6000808314156123f65760009050612458565b600082846124049190613993565b90508284826124139190613a1c565b14612453576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161244a90613abf565b60405180910390fd5b809150505b92915050565b60006124a083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061255e565b905092915050565b60008082846124b79190613419565b9050838110156124fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124f390613b2b565b60405180910390fd5b8091505092915050565b80612514576125136125c1565b5b61251f848484612604565b8061252d5761252c6127cf565b5b50505050565b60008060006125406127e3565b91509150612557818361245e90919063ffffffff16565b9250505090565b600080831182906125a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161259c9190612ba9565b60405180910390fd5b50600083856125b49190613a1c565b9050809150509392505050565b60006009541480156125d557506000600a54145b156125df57612602565b600954600b81905550600a54600c8190555060006009819055506000600a819055505b565b60008060008060008061261687612848565b95509550955095509550955061267486600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128b090919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061270985600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124a890919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612755816128fa565b61275f84836129b7565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516127bc9190612cf8565b60405180910390a3505050505050505050565b600b54600981905550600c54600a81905550565b60008060006007549050600069010f0cf064dd59200000905061281b69010f0cf064dd5920000060075461245e90919063ffffffff16565b82101561283b5760075469010f0cf064dd59200000935093505050612844565b81819350935050505b9091565b60008060008060008060008060006128658a600954600a546129f1565b9250925092506000612875612533565b905060008060006128888e878787612a87565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b60006128f283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611f9d565b905092915050565b6000612904612533565b9050600061291b82846123e390919063ffffffff16565b905061296f81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124a890919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b6129cc826007546128b090919063ffffffff16565b6007819055506129e7816008546124a890919063ffffffff16565b6008819055505050565b600080600080612a1d6064612a0f888a6123e390919063ffffffff16565b61245e90919063ffffffff16565b90506000612a476064612a39888b6123e390919063ffffffff16565b61245e90919063ffffffff16565b90506000612a7082612a62858c6128b090919063ffffffff16565b6128b090919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080612aa085896123e390919063ffffffff16565b90506000612ab786896123e390919063ffffffff16565b90506000612ace87896123e390919063ffffffff16565b90506000612af782612ae985876128b090919063ffffffff16565b6128b090919063ffffffff16565b9050838184965096509650505050509450945094915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612b4a578082015181840152602081019050612b2f565b83811115612b59576000848401525b50505050565b6000601f19601f8301169050919050565b6000612b7b82612b10565b612b858185612b1b565b9350612b95818560208601612b2c565b612b9e81612b5f565b840191505092915050565b60006020820190508181036000830152612bc38184612b70565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612c0a82612bdf565b9050919050565b612c1a81612bff565b8114612c2557600080fd5b50565b600081359050612c3781612c11565b92915050565b6000819050919050565b612c5081612c3d565b8114612c5b57600080fd5b50565b600081359050612c6d81612c47565b92915050565b60008060408385031215612c8a57612c89612bd5565b5b6000612c9885828601612c28565b9250506020612ca985828601612c5e565b9150509250929050565b60008115159050919050565b612cc881612cb3565b82525050565b6000602082019050612ce36000830184612cbf565b92915050565b612cf281612c3d565b82525050565b6000602082019050612d0d6000830184612ce9565b92915050565b600080600060608486031215612d2c57612d2b612bd5565b5b6000612d3a86828701612c28565b9350506020612d4b86828701612c28565b9250506040612d5c86828701612c5e565b9150509250925092565b600060208284031215612d7c57612d7b612bd5565b5b6000612d8a84828501612c28565b91505092915050565b600060ff82169050919050565b612da981612d93565b82525050565b6000602082019050612dc46000830184612da0565b92915050565b6000612dd582612bdf565b9050919050565b612de581612dca565b8114612df057600080fd5b50565b600081359050612e0281612ddc565b92915050565b600060208284031215612e1e57612e1d612bd5565b5b6000612e2c84828501612df3565b91505092915050565b612e3e81612cb3565b8114612e4957600080fd5b50565b600081359050612e5b81612e35565b92915050565b600060208284031215612e7757612e76612bd5565b5b6000612e8584828501612e4c565b91505092915050565b612e9781612bff565b82525050565b6000602082019050612eb26000830184612e8e565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612ef582612b5f565b810181811067ffffffffffffffff82111715612f1457612f13612ebd565b5b80604052505050565b6000612f27612bcb565b9050612f338282612eec565b919050565b600067ffffffffffffffff821115612f5357612f52612ebd565b5b602082029050602081019050919050565b600080fd5b6000612f7c612f7784612f38565b612f1d565b90508083825260208201905060208402830185811115612f9f57612f9e612f64565b5b835b81811015612fc85780612fb48882612c28565b845260208401935050602081019050612fa1565b5050509392505050565b600082601f830112612fe757612fe6612eb8565b5b8135612ff7848260208601612f69565b91505092915050565b60006020828403121561301657613015612bd5565b5b600082013567ffffffffffffffff81111561303457613033612bda565b5b61304084828501612fd2565b91505092915050565b60006020828403121561305f5761305e612bd5565b5b600061306d84828501612c5e565b91505092915050565b6000806040838503121561308d5761308c612bd5565b5b600061309b85828601612c28565b92505060206130ac85828601612c28565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006130ec602083612b1b565b91506130f7826130b6565b602082019050919050565b6000602082019050818103600083015261311b816130df565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061318b82612c3d565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156131be576131bd613151565b5b600182019050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b60006131ff601783612b1b565b915061320a826131c9565b602082019050919050565b6000602082019050818103600083015261322e816131f2565b9050919050565b60008151905061324481612c11565b92915050565b6000602082840312156132605761325f612bd5565b5b600061326e84828501613235565b91505092915050565b600060408201905061328c6000830185612e8e565b6132996020830184612e8e565b9392505050565b6000819050919050565b6000819050919050565b60006132cf6132ca6132c5846132a0565b6132aa565b612c3d565b9050919050565b6132df816132b4565b82525050565b600060c0820190506132fa6000830189612e8e565b6133076020830188612ce9565b61331460408301876132d6565b61332160608301866132d6565b61332e6080830185612e8e565b61333b60a0830184612ce9565b979650505050505050565b60008151905061335581612c47565b92915050565b60008060006060848603121561337457613373612bd5565b5b600061338286828701613346565b935050602061339386828701613346565b92505060406133a486828701613346565b9150509250925092565b60006040820190506133c36000830185612e8e565b6133d06020830184612ce9565b9392505050565b6000815190506133e681612e35565b92915050565b60006020828403121561340257613401612bd5565b5b6000613410848285016133d7565b91505092915050565b600061342482612c3d565b915061342f83612c3d565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561346457613463613151565b5b828201905092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006134cb602483612b1b565b91506134d68261346f565b604082019050919050565b600060208201905081810360008301526134fa816134be565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061355d602283612b1b565b915061356882613501565b604082019050919050565b6000602082019050818103600083015261358c81613550565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006135ef602583612b1b565b91506135fa82613593565b604082019050919050565b6000602082019050818103600083015261361e816135e2565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613681602383612b1b565b915061368c82613625565b604082019050919050565b600060208201905081810360008301526136b081613674565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613713602983612b1b565b915061371e826136b7565b604082019050919050565b6000602082019050818103600083015261374281613706565b9050919050565b7f54726164696e67206e6f742079657420656e61626c65642e0000000000000000600082015250565b600061377f601883612b1b565b915061378a82613749565b602082019050919050565b600060208201905081810360008301526137ae81613772565b9050919050565b60006137c082612c3d565b91506137cb83612c3d565b9250828210156137de576137dd613151565b5b828203905092915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b6000613845602a83612b1b565b9150613850826137e9565b604082019050919050565b6000602082019050818103600083015261387481613838565b9050919050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6138b081612bff565b82525050565b60006138c283836138a7565b60208301905092915050565b6000602082019050919050565b60006138e68261387b565b6138f08185613886565b93506138fb83613897565b8060005b8381101561392c57815161391388826138b6565b975061391e836138ce565b9250506001810190506138ff565b5085935050505092915050565b600060a08201905061394e6000830188612ce9565b61395b60208301876132d6565b818103604083015261396d81866138db565b905061397c6060830185612e8e565b6139896080830184612ce9565b9695505050505050565b600061399e82612c3d565b91506139a983612c3d565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156139e2576139e1613151565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613a2782612c3d565b9150613a3283612c3d565b925082613a4257613a416139ed565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613aa9602183612b1b565b9150613ab482613a4d565b604082019050919050565b60006020820190508181036000830152613ad881613a9c565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613b15601b83612b1b565b9150613b2082613adf565b602082019050919050565b60006020820190508181036000830152613b4481613b08565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220b90c4a0052183f48b1509f2f69c221ebf10708ad59122175a47f592fefd077e864736f6c634300080a00330000000000000000000000004051923ef545a3e8df3e48fb657d31a8f140dc53000000000000000000000000616d8a132bfa6f2bdf347935a30ef6ce2ada8319

Deployed Bytecode

0x60806040526004361061016a5760003560e01c806370a08231116100d1578063c3c8cd801161008a578063cf0848f711610064578063cf0848f7146104fb578063db92dbb614610524578063dd62ed3e1461054f578063e6ec64ec1461058c57610171565b8063c3c8cd80146104a4578063c4081a4c146104bb578063c9567bf9146104e457610171565b806370a0823114610394578063715018a6146103d15780638da5cb5b146103e857806395d89b4114610413578063a9059cbb1461043e578063b515566a1461047b57610171565b8063313ce56711610123578063313ce5671461029a5780633bbac579146102c5578063437823ec146103025780634b740b161461032b5780635d098b38146103545780636fc3eaec1461037d57610171565b806306fdde0314610176578063095ea7b3146101a157806318160ddd146101de57806323b872dd14610209578063273123b71461024657806327f3a72a1461026f57610171565b3661017157005b600080fd5b34801561018257600080fd5b5061018b6105b5565b6040516101989190612ba9565b60405180910390f35b3480156101ad57600080fd5b506101c860048036038101906101c39190612c73565b6105f2565b6040516101d59190612cce565b60405180910390f35b3480156101ea57600080fd5b506101f3610610565b6040516102009190612cf8565b60405180910390f35b34801561021557600080fd5b50610230600480360381019061022b9190612d13565b610622565b60405161023d9190612cce565b60405180910390f35b34801561025257600080fd5b5061026d60048036038101906102689190612d66565b6106fb565b005b34801561027b57600080fd5b506102846107eb565b6040516102919190612cf8565b60405180910390f35b3480156102a657600080fd5b506102af6107fb565b6040516102bc9190612daf565b60405180910390f35b3480156102d157600080fd5b506102ec60048036038101906102e79190612d66565b610804565b6040516102f99190612cce565b60405180910390f35b34801561030e57600080fd5b5061032960048036038101906103249190612e08565b61085a565b005b34801561033757600080fd5b50610352600480360381019061034d9190612e61565b610916565b005b34801561036057600080fd5b5061037b60048036038101906103769190612e08565b610994565b005b34801561038957600080fd5b50610392610b0b565b005b3480156103a057600080fd5b506103bb60048036038101906103b69190612d66565b610b7d565b6040516103c89190612cf8565b60405180910390f35b3480156103dd57600080fd5b506103e6610bce565b005b3480156103f457600080fd5b506103fd610d21565b60405161040a9190612e9d565b60405180910390f35b34801561041f57600080fd5b50610428610d4a565b6040516104359190612ba9565b60405180910390f35b34801561044a57600080fd5b5061046560048036038101906104609190612c73565b610d87565b6040516104729190612cce565b60405180910390f35b34801561048757600080fd5b506104a2600480360381019061049d9190613000565b610da5565b005b3480156104b057600080fd5b506104b9610fb5565b005b3480156104c757600080fd5b506104e260048036038101906104dd9190613049565b61102f565b005b3480156104f057600080fd5b506104f96110a8565b005b34801561050757600080fd5b50610522600480360381019061051d9190612e08565b611589565b005b34801561053057600080fd5b50610539611645565b6040516105469190612cf8565b60405180910390f35b34801561055b57600080fd5b5061057660048036038101906105719190613076565b611677565b6040516105839190612cf8565b60405180910390f35b34801561059857600080fd5b506105b360048036038101906105ae9190613049565b6116fe565b005b60606040518060400160405280600a81526020017f546f6b696e6720496e7500000000000000000000000000000000000000000000815250905090565b60006106066105ff611777565b848461177f565b6001905092915050565b600069010f0cf064dd59200000905090565b600061062f84848461194a565b6106f08461063b611777565b6106eb85604051806060016040528060288152602001613b4c60289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006106a1611777565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f9d9092919063ffffffff16565b61177f565b600190509392505050565b610703611777565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610790576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161078790613102565b60405180910390fd5b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60006107f630610b7d565b905090565b60006009905090565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661089b611777565b73ffffffffffffffffffffffffffffffffffffffff16146108bb57600080fd5b6001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610957611777565b73ffffffffffffffffffffffffffffffffffffffff161461097757600080fd5b80601060156101000a81548160ff02191690831515021790555050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166109d5611777565b73ffffffffffffffffffffffffffffffffffffffff16146109f557600080fd5b600060056000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610b4c611777565b73ffffffffffffffffffffffffffffffffffffffff1614610b6c57600080fd5b6000479050610b7a81612001565b50565b6000610bc7600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120fc565b9050919050565b610bd6611777565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c63576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c5a90613102565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600681526020017f544f4b494e470000000000000000000000000000000000000000000000000000815250905090565b6000610d9b610d94611777565b848461194a565b6001905092915050565b610dad611777565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3190613102565b60405180910390fd5b60005b8151811015610fb157601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16828281518110610e9257610e91613122565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614158015610f265750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16828281518110610f0557610f04613122565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614155b15610f9e57600160066000848481518110610f4457610f43613122565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b8080610fa990613180565b915050610e3d565b5050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610ff6611777565b73ffffffffffffffffffffffffffffffffffffffff161461101657600080fd5b600061102130610b7d565b905061102c8161216a565b50565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611070611777565b73ffffffffffffffffffffffffffffffffffffffff161461109057600080fd5b600181111561109e57600080fd5b8060098190555050565b6110b0611777565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461113d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113490613102565b60405180910390fd5b601060149054906101000a900460ff161561118d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118490613215565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061121e30600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1669010f0cf064dd5920000061177f565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611269573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061128d919061324a565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112f4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611318919061324a565b6040518363ffffffff1660e01b8152600401611335929190613277565b6020604051808303816000875af1158015611354573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611378919061324a565b601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061140130610b7d565b60008061140c610d21565b426040518863ffffffff1660e01b815260040161142e969594939291906132e5565b60606040518083038185885af115801561144c573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611471919061335b565b505050601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016115139291906133ae565b6020604051808303816000875af1158015611532573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061155691906133ec565b506001601060146101000a81548160ff021916908315150217905550610e10426115809190613419565b60118190555050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166115ca611777565b73ffffffffffffffffffffffffffffffffffffffff16146115ea57600080fd5b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000611672601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610b7d565b905090565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661173f611777565b73ffffffffffffffffffffffffffffffffffffffff161461175f57600080fd5b600781111561176d57600080fd5b80600a8190555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156117ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117e6906134e1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561185f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161185690613573565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161193d9190612cf8565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156119ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119b190613605565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611a2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a2190613697565b60405180910390fd5b60008111611a6d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a6490613729565b60405180910390fd5b611a75610d21565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611ae35750611ab3610d21565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611ec357600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611b8c5750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611b9557600080fd5b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611c405750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611c965750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611d5357601060149054906101000a900460ff16611cea576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ce190613795565b60405180910390fd5b426011541115611d52576000611cff83610b7d565b9050611d326064611d24600269010f0cf064dd592000006123e390919063ffffffff16565b61245e90919063ffffffff16565b611d4582846124a890919063ffffffff16565b1115611d5057600080fd5b505b5b6000611d5e30610b7d565b9050601060169054906101000a900460ff16158015611dcb5750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611de35750601060149054906101000a900460ff165b15611ec1576000811115611ea757611e426064611e346005611e26601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610b7d565b6123e390919063ffffffff16565b61245e90919063ffffffff16565b811115611e9d57611e9a6064611e8c6005611e7e601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610b7d565b6123e390919063ffffffff16565b61245e90919063ffffffff16565b90505b611ea68161216a565b5b60004790506000811115611ebf57611ebe47612001565b5b505b505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611f6a5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611f815750601060159054906101000a900460ff165b15611f8b57600090505b611f9784848484612506565b50505050565b6000838311158290611fe5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fdc9190612ba9565b60405180910390fd5b5060008385611ff491906137b5565b9050809150509392505050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc61205160028461245e90919063ffffffff16565b9081150290604051600060405180830381858888f1935050505015801561207c573d6000803e3d6000fd5b50600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6120cd60028461245e90919063ffffffff16565b9081150290604051600060405180830381858888f193505050501580156120f8573d6000803e3d6000fd5b5050565b6000600754821115612143576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161213a9061385b565b60405180910390fd5b600061214d612533565b9050612162818461245e90919063ffffffff16565b915050919050565b6001601060166101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156121a2576121a1612ebd565b5b6040519080825280602002602001820160405280156121d05781602001602082028036833780820191505090505b50905030816000815181106121e8576121e7613122565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561228f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122b3919061324a565b816001815181106122c7576122c6613122565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061232e30600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461177f565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612392959493929190613939565b600060405180830381600087803b1580156123ac57600080fd5b505af11580156123c0573d6000803e3d6000fd5b50505050506000601060166101000a81548160ff02191690831515021790555050565b6000808314156123f65760009050612458565b600082846124049190613993565b90508284826124139190613a1c565b14612453576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161244a90613abf565b60405180910390fd5b809150505b92915050565b60006124a083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061255e565b905092915050565b60008082846124b79190613419565b9050838110156124fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124f390613b2b565b60405180910390fd5b8091505092915050565b80612514576125136125c1565b5b61251f848484612604565b8061252d5761252c6127cf565b5b50505050565b60008060006125406127e3565b91509150612557818361245e90919063ffffffff16565b9250505090565b600080831182906125a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161259c9190612ba9565b60405180910390fd5b50600083856125b49190613a1c565b9050809150509392505050565b60006009541480156125d557506000600a54145b156125df57612602565b600954600b81905550600a54600c8190555060006009819055506000600a819055505b565b60008060008060008061261687612848565b95509550955095509550955061267486600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128b090919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061270985600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124a890919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612755816128fa565b61275f84836129b7565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516127bc9190612cf8565b60405180910390a3505050505050505050565b600b54600981905550600c54600a81905550565b60008060006007549050600069010f0cf064dd59200000905061281b69010f0cf064dd5920000060075461245e90919063ffffffff16565b82101561283b5760075469010f0cf064dd59200000935093505050612844565b81819350935050505b9091565b60008060008060008060008060006128658a600954600a546129f1565b9250925092506000612875612533565b905060008060006128888e878787612a87565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b60006128f283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611f9d565b905092915050565b6000612904612533565b9050600061291b82846123e390919063ffffffff16565b905061296f81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124a890919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b6129cc826007546128b090919063ffffffff16565b6007819055506129e7816008546124a890919063ffffffff16565b6008819055505050565b600080600080612a1d6064612a0f888a6123e390919063ffffffff16565b61245e90919063ffffffff16565b90506000612a476064612a39888b6123e390919063ffffffff16565b61245e90919063ffffffff16565b90506000612a7082612a62858c6128b090919063ffffffff16565b6128b090919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080612aa085896123e390919063ffffffff16565b90506000612ab786896123e390919063ffffffff16565b90506000612ace87896123e390919063ffffffff16565b90506000612af782612ae985876128b090919063ffffffff16565b6128b090919063ffffffff16565b9050838184965096509650505050509450945094915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612b4a578082015181840152602081019050612b2f565b83811115612b59576000848401525b50505050565b6000601f19601f8301169050919050565b6000612b7b82612b10565b612b858185612b1b565b9350612b95818560208601612b2c565b612b9e81612b5f565b840191505092915050565b60006020820190508181036000830152612bc38184612b70565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612c0a82612bdf565b9050919050565b612c1a81612bff565b8114612c2557600080fd5b50565b600081359050612c3781612c11565b92915050565b6000819050919050565b612c5081612c3d565b8114612c5b57600080fd5b50565b600081359050612c6d81612c47565b92915050565b60008060408385031215612c8a57612c89612bd5565b5b6000612c9885828601612c28565b9250506020612ca985828601612c5e565b9150509250929050565b60008115159050919050565b612cc881612cb3565b82525050565b6000602082019050612ce36000830184612cbf565b92915050565b612cf281612c3d565b82525050565b6000602082019050612d0d6000830184612ce9565b92915050565b600080600060608486031215612d2c57612d2b612bd5565b5b6000612d3a86828701612c28565b9350506020612d4b86828701612c28565b9250506040612d5c86828701612c5e565b9150509250925092565b600060208284031215612d7c57612d7b612bd5565b5b6000612d8a84828501612c28565b91505092915050565b600060ff82169050919050565b612da981612d93565b82525050565b6000602082019050612dc46000830184612da0565b92915050565b6000612dd582612bdf565b9050919050565b612de581612dca565b8114612df057600080fd5b50565b600081359050612e0281612ddc565b92915050565b600060208284031215612e1e57612e1d612bd5565b5b6000612e2c84828501612df3565b91505092915050565b612e3e81612cb3565b8114612e4957600080fd5b50565b600081359050612e5b81612e35565b92915050565b600060208284031215612e7757612e76612bd5565b5b6000612e8584828501612e4c565b91505092915050565b612e9781612bff565b82525050565b6000602082019050612eb26000830184612e8e565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612ef582612b5f565b810181811067ffffffffffffffff82111715612f1457612f13612ebd565b5b80604052505050565b6000612f27612bcb565b9050612f338282612eec565b919050565b600067ffffffffffffffff821115612f5357612f52612ebd565b5b602082029050602081019050919050565b600080fd5b6000612f7c612f7784612f38565b612f1d565b90508083825260208201905060208402830185811115612f9f57612f9e612f64565b5b835b81811015612fc85780612fb48882612c28565b845260208401935050602081019050612fa1565b5050509392505050565b600082601f830112612fe757612fe6612eb8565b5b8135612ff7848260208601612f69565b91505092915050565b60006020828403121561301657613015612bd5565b5b600082013567ffffffffffffffff81111561303457613033612bda565b5b61304084828501612fd2565b91505092915050565b60006020828403121561305f5761305e612bd5565b5b600061306d84828501612c5e565b91505092915050565b6000806040838503121561308d5761308c612bd5565b5b600061309b85828601612c28565b92505060206130ac85828601612c28565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006130ec602083612b1b565b91506130f7826130b6565b602082019050919050565b6000602082019050818103600083015261311b816130df565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061318b82612c3d565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156131be576131bd613151565b5b600182019050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b60006131ff601783612b1b565b915061320a826131c9565b602082019050919050565b6000602082019050818103600083015261322e816131f2565b9050919050565b60008151905061324481612c11565b92915050565b6000602082840312156132605761325f612bd5565b5b600061326e84828501613235565b91505092915050565b600060408201905061328c6000830185612e8e565b6132996020830184612e8e565b9392505050565b6000819050919050565b6000819050919050565b60006132cf6132ca6132c5846132a0565b6132aa565b612c3d565b9050919050565b6132df816132b4565b82525050565b600060c0820190506132fa6000830189612e8e565b6133076020830188612ce9565b61331460408301876132d6565b61332160608301866132d6565b61332e6080830185612e8e565b61333b60a0830184612ce9565b979650505050505050565b60008151905061335581612c47565b92915050565b60008060006060848603121561337457613373612bd5565b5b600061338286828701613346565b935050602061339386828701613346565b92505060406133a486828701613346565b9150509250925092565b60006040820190506133c36000830185612e8e565b6133d06020830184612ce9565b9392505050565b6000815190506133e681612e35565b92915050565b60006020828403121561340257613401612bd5565b5b6000613410848285016133d7565b91505092915050565b600061342482612c3d565b915061342f83612c3d565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561346457613463613151565b5b828201905092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006134cb602483612b1b565b91506134d68261346f565b604082019050919050565b600060208201905081810360008301526134fa816134be565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061355d602283612b1b565b915061356882613501565b604082019050919050565b6000602082019050818103600083015261358c81613550565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006135ef602583612b1b565b91506135fa82613593565b604082019050919050565b6000602082019050818103600083015261361e816135e2565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613681602383612b1b565b915061368c82613625565b604082019050919050565b600060208201905081810360008301526136b081613674565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613713602983612b1b565b915061371e826136b7565b604082019050919050565b6000602082019050818103600083015261374281613706565b9050919050565b7f54726164696e67206e6f742079657420656e61626c65642e0000000000000000600082015250565b600061377f601883612b1b565b915061378a82613749565b602082019050919050565b600060208201905081810360008301526137ae81613772565b9050919050565b60006137c082612c3d565b91506137cb83612c3d565b9250828210156137de576137dd613151565b5b828203905092915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b6000613845602a83612b1b565b9150613850826137e9565b604082019050919050565b6000602082019050818103600083015261387481613838565b9050919050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6138b081612bff565b82525050565b60006138c283836138a7565b60208301905092915050565b6000602082019050919050565b60006138e68261387b565b6138f08185613886565b93506138fb83613897565b8060005b8381101561392c57815161391388826138b6565b975061391e836138ce565b9250506001810190506138ff565b5085935050505092915050565b600060a08201905061394e6000830188612ce9565b61395b60208301876132d6565b818103604083015261396d81866138db565b905061397c6060830185612e8e565b6139896080830184612ce9565b9695505050505050565b600061399e82612c3d565b91506139a983612c3d565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156139e2576139e1613151565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613a2782612c3d565b9150613a3283612c3d565b925082613a4257613a416139ed565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613aa9602183612b1b565b9150613ab482613a4d565b604082019050919050565b60006020820190508181036000830152613ad881613a9c565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613b15601b83612b1b565b9150613b2082613adf565b602082019050919050565b60006020820190508181036000830152613b4481613b08565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220b90c4a0052183f48b1509f2f69c221ebf10708ad59122175a47f592fefd077e864736f6c634300080a0033

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

0000000000000000000000004051923ef545a3e8df3e48fb657d31a8f140dc53000000000000000000000000616d8a132bfa6f2bdf347935a30ef6ce2ada8319

-----Decoded View---------------
Arg [0] : FeeAddress (address): 0x4051923eF545a3e8DF3E48FB657D31a8f140Dc53
Arg [1] : marketingWalletAddress (address): 0x616d8A132bfa6f2bDF347935a30EF6cE2aDa8319

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 0000000000000000000000004051923ef545a3e8df3e48fb657d31a8f140dc53
Arg [1] : 000000000000000000000000616d8a132bfa6f2bdf347935a30ef6ce2ada8319


Deployed Bytecode Sourcemap

6104:12699:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8198:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9050:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8475:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9219:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17988:89;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18591:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8384:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18089:89;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16917:149;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17238:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16595:314;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18393:190;;;;;;;;;;;;;:::i;:::-;;8578:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5183:148;;;;;;;;;;;;;:::i;:::-;;4969:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8289:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8724:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17706:270;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18190:191;;;;;;;;;;;;;:::i;:::-;;17546:148;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15811:772;;;;;;;;;;;;;:::i;:::-;;17078:148;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18699:101;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8899:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17377:153;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8198:83;8235:13;8268:5;;;;;;;;;;;;;;;;;8261:12;;8198:83;:::o;9050:161::-;9125:4;9142:39;9151:12;:10;:12::i;:::-;9165:7;9174:6;9142:8;:39::i;:::-;9199:4;9192:11;;9050:161;;;;:::o;8475:95::-;8528:7;6555:12;8548:14;;8475:95;:::o;9219:313::-;9317:4;9334:36;9344:6;9352:9;9363:6;9334:9;:36::i;:::-;9381:121;9390:6;9398:12;:10;:12::i;:::-;9412:89;9450:6;9412:89;;;;;;;;;;;;;;;;;:11;:19;9424:6;9412:19;;;;;;;;;;;;;;;:33;9432:12;:10;:12::i;:::-;9412:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;9381:8;:121::i;:::-;9520:4;9513:11;;9219:313;;;;;:::o;17988:89::-;5106:12;:10;:12::i;:::-;5096:22;;:6;;;;;;;;;;:22;;;5088:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18064:5:::1;18048;:13;18054:6;18048:13;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;17988:89:::0;:::o;18591:100::-;18635:4;18659:24;18677:4;18659:9;:24::i;:::-;18652:31;;18591:100;:::o;8384:83::-;8425:5;6824:1;8443:16;;8384:83;:::o;18089:89::-;18137:4;18161:5;:9;18167:2;18161:9;;;;;;;;;;;;;;;;;;;;;;;;;18154:16;;18089:89;;;:::o;16917:149::-;17006:11;;;;;;;;;;;16990:27;;:12;:10;:12::i;:::-;:27;;;16982:36;;;;;;17054:4;17029:18;:22;17048:2;17029:22;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;16917:149;:::o;17238:127::-;17316:11;;;;;;;;;;;17300:27;;:12;:10;:12::i;:::-;:27;;;17292:36;;;;;;17352:5;17339:10;;:18;;;;;;;;;;;;;;;;;;17238:127;:::o;16595:314::-;16708:11;;;;;;;;;;;16692:27;;:12;:10;:12::i;:::-;:27;;;16684:36;;;;;;16777:5;16731:18;:43;16750:23;;;;;;;;;;;16731:43;;;;;;;;;;;;;;;;:51;;;;;;;;;;;;;;;;;;16819:22;16793:23;;:48;;;;;;;;;;;;;;;;;;16897:4;16852:18;:42;16871:22;16852:42;;;;;;;;;;;;;;;;:49;;;;;;;;;;;;;;;;;;16595:314;:::o;18393:190::-;18459:11;;;;;;;;;;;18443:27;;:12;:10;:12::i;:::-;:27;;;18435:36;;;;;;18482:26;18511:21;18482:50;;18543:32;18556:18;18543:12;:32::i;:::-;18424:159;18393:190::o;8578:138::-;8644:7;8671:37;8691:7;:16;8699:7;8691:16;;;;;;;;;;;;;;;;8671:19;:37::i;:::-;8664:44;;8578:138;;;:::o;5183:148::-;5106:12;:10;:12::i;:::-;5096:22;;:6;;;;;;;;;;:22;;;5088:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;5290:1:::1;5253:40;;5274:6;::::0;::::1;;;;;;;;5253:40;;;;;;;;;;;;5321:1;5304:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;5183:148::o:0;4969:79::-;5007:7;5034:6;;;;;;;;;;;5027:13;;4969:79;:::o;8289:87::-;8328:13;8361:7;;;;;;;;;;;;;;;;;8354:14;;8289:87;:::o;8724:167::-;8802:4;8819:42;8829:12;:10;:12::i;:::-;8843:9;8854:6;8819:9;:42::i;:::-;8879:4;8872:11;;8724:167;;;;:::o;17706:270::-;5106:12;:10;:12::i;:::-;5096:22;;:6;;;;;;;;;;:22;;;5088:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17780:6:::1;17775:194;17796:5;:12;17792:1;:16;17775:194;;;17846:13;;;;;;;;;;;17834:25;;:5;17840:1;17834:8;;;;;;;;:::i;:::-;;;;;;;;:25;;;;:65;;;;;17883:15;;;;;;;;;;;17863:36;;:5;17869:1;17863:8;;;;;;;;:::i;:::-;;;;;;;;:36;;;;17834:65;17830:128;;;17938:4;17920:5;:15;17926:5;17932:1;17926:8;;;;;;;;:::i;:::-;;;;;;;;17920:15;;;;;;;;;;;;;;;;:22;;;;;;;;;;;;;;;;;;17830:128;17810:3;;;;;:::i;:::-;;;;17775:194;;;;17706:270:::0;:::o;18190:191::-;18256:11;;;;;;;;;;;18240:27;;:12;:10;:12::i;:::-;:27;;;18232:36;;;;;;18279:23;18305:24;18323:4;18305:9;:24::i;:::-;18279:50;;18340:33;18357:15;18340:16;:33::i;:::-;18221:160;18190:191::o;17546:148::-;17622:11;;;;;;;;;;;17606:27;;:12;:10;:12::i;:::-;:27;;;17598:36;;;;;;17660:1;17653:3;:8;;17645:17;;;;;;17683:3;17673:7;:13;;;;17546:148;:::o;15811:772::-;5106:12;:10;:12::i;:::-;5096:22;;:6;;;;;;;;;;:22;;;5088:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15875:11:::1;;;;;;;;;;;15874:12;15866:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;15924:35;15981:42;15924:100;;16053:16;16035:15;;:34;;;;;;;;;;;;;;;;;;16080:58;16097:4;16112:15;;;;;;;;;;;6555:12;16080:8;:58::i;:::-;16183:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16165:56;;;16230:4;16237:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16165:96;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16149:13;;:112;;;;;;;;;;;;;;;;;;16272:15;;;;;;;;;;;:31;;;16311:21;16342:4;16348:24;16366:4;16348:9;:24::i;:::-;16373:1;16375::::0;16377:7:::1;:5;:7::i;:::-;16385:15;16272:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;16419:13;;;;;;;;;;;16412:29;;;16450:15;;;;;;;;;;;16468:14;16412:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;16508:4;16494:11;;:18;;;;;;;;;;;;;;;;;;16564:10;16545:15;:30;;;;:::i;:::-;16523:19;:52;;;;15855:728;15811:772::o:0;17078:148::-;17165:11;;;;;;;;;;;17149:27;;:12;:10;:12::i;:::-;:27;;;17141:36;;;;;;17213:5;17188:18;:22;17207:2;17188:22;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;17078:148;:::o;18699:101::-;18744:4;18768:24;18778:13;;;;;;;;;;;18768:9;:24::i;:::-;18761:31;;18699:101;:::o;8899:143::-;8980:7;9007:11;:18;9019:5;9007:18;;;;;;;;;;;;;;;:27;9026:7;9007:27;;;;;;;;;;;;;;;;9000:34;;8899:143;;;;:::o;17377:153::-;17455:11;;;;;;;;;;;17439:27;;:12;:10;:12::i;:::-;:27;;;17431:36;;;;;;17494:1;17486:4;:9;;17478:18;;;;;;17518:4;17507:8;:15;;;;17377:153;:::o;2378:98::-;2431:7;2458:10;2451:17;;2378:98;:::o;10147:335::-;10257:1;10240:19;;:5;:19;;;;10232:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10338:1;10319:21;;:7;:21;;;;10311:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10420:6;10390:11;:18;10402:5;10390:18;;;;;;;;;;;;;;;:27;10409:7;10390:27;;;;;;;;;;;;;;;:36;;;;10458:7;10442:32;;10451:5;10442:32;;;10467:6;10442:32;;;;;;:::i;:::-;;;;;;;;10147:335;;;:::o;10494:1767::-;10598:1;10582:18;;:4;:18;;;;10574:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10675:1;10661:16;;:2;:16;;;;10653:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;10745:1;10736:6;:10;10728:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;10816:7;:5;:7::i;:::-;10808:15;;:4;:15;;;;:32;;;;;10833:7;:5;:7::i;:::-;10827:13;;:2;:13;;;;10808:32;10805:1238;;;10880:5;:11;10886:4;10880:11;;;;;;;;;;;;;;;;;;;;;;;;;10879:12;:26;;;;;10896:5;:9;10902:2;10896:9;;;;;;;;;;;;;;;;;;;;;;;;;10895:10;10879:26;10871:35;;;;;;10946:13;;;;;;;;;;;10938:21;;:4;:21;;;:55;;;;;10977:15;;;;;;;;;;;10963:30;;:2;:30;;;;10938:55;:82;;;;;10998:18;:22;11017:2;10998:22;;;;;;;;;;;;;;;;;;;;;;;;;10997:23;10938:82;10935:419;;;11049:11;;;;;;;;;;;11041:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;11152:15;11130:19;;:37;11126:213;;;11192:18;11213:22;11231:2;11213:9;:22::i;:::-;11192:43;;11295:23;11314:3;11295:14;11307:1;6555:12;11295:11;;:14;;;;:::i;:::-;:18;;:23;;;;:::i;:::-;11266:25;11277:13;11266:6;:10;;:25;;;;:::i;:::-;:52;;11258:61;;;;;;11169:170;11126:213;10935:419;11368:28;11399:24;11417:4;11399:9;:24::i;:::-;11368:55;;11444:6;;;;;;;;;;;11443:7;:32;;;;;11462:13;;;;;;;;;;;11454:21;;:4;:21;;;;11443:32;:47;;;;;11479:11;;;;;;;;;;;11443:47;11440:592;;;11537:1;11514:20;:24;11511:314;;;11589:40;11625:3;11589:31;11618:1;11589:24;11599:13;;;;;;;;;;;11589:9;:24::i;:::-;:28;;:31;;;;:::i;:::-;:35;;:40;;;;:::i;:::-;11566:20;:63;11563:182;;;11681:40;11717:3;11681:31;11710:1;11681:24;11691:13;;;;;;;;;;;11681:9;:24::i;:::-;:28;;:31;;;;:::i;:::-;:35;;:40;;;;:::i;:::-;11658:63;;11563:182;11767:38;11784:20;11767:16;:38::i;:::-;11511:314;11843:26;11872:21;11843:50;;11936:1;11915:18;:22;11912:105;;;11962:35;11975:21;11962:12;:35::i;:::-;11912:105;11492:540;11440:592;10842:1201;10805:1238;12053:12;12068:4;12053:19;;12088:18;:24;12107:4;12088:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;12116:18;:22;12135:2;12116:22;;;;;;;;;;;;;;;;;;;;;;;;;12088:50;:64;;;;12142:10;;;;;;;;;;;12088:64;12085:110;;;12178:5;12168:15;;12085:110;12215:38;12230:4;12235:2;12238:6;12245:7;12215:14;:38::i;:::-;10563:1698;10494:1767;;;:::o;3515:190::-;3601:7;3634:1;3629;:6;;3637:12;3621:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3661:9;3677:1;3673;:5;;;;:::i;:::-;3661:17;;3696:1;3689:8;;;3515:190;;;;;:::o;12768:158::-;12825:11;;;;;;;;;;;:20;;:35;12846:13;12857:1;12846:6;:10;;:13;;;;:::i;:::-;12825:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12871:23;;;;;;;;;;;:32;;:47;12904:13;12915:1;12904:6;:10;;:13;;;;:::i;:::-;12871:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12768:158;:::o;9540:254::-;9607:7;9646;;9635;:18;;9627:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;9711:19;9734:10;:8;:10::i;:::-;9711:33;;9762:24;9774:11;9762:7;:11;;:24;;;;:::i;:::-;9755:31;;;9540:254;;;:::o;12269:483::-;7643:4;7634:6;;:13;;;;;;;;;;;;;;;;;;12347:21:::1;12385:1;12371:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12347:40;;12416:4;12398;12403:1;12398:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;12442:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12432:4;12437:1;12432:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;12475:62;12492:4;12507:15;;;;;;;;;;;12525:11;12475:8;:62::i;:::-;12548:15;;;;;;;;;;;:66;;;12629:11;12655:1;12671:4;12698;12718:15;12548:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;12336:416;7679:5:::0;7670:6;;:14;;;;;;;;;;;;;;;;;;12269:483;:::o;3713:245::-;3771:7;3799:1;3794;:6;3791:46;;;3824:1;3817:8;;;;3791:46;3847:9;3863:1;3859;:5;;;;:::i;:::-;3847:17;;3892:1;3887;3883;:5;;;;:::i;:::-;:10;3875:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;3949:1;3942:8;;;3713:245;;;;;:::o;3966:132::-;4024:7;4051:39;4055:1;4058;4051:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;4044:46;;3966:132;;;;:::o;3184:179::-;3242:7;3262:9;3278:1;3274;:5;;;;:::i;:::-;3262:17;;3303:1;3298;:6;;3290:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;3354:1;3347:8;;;3184:179;;;;:::o;12938:263::-;13050:7;13046:40;;13072:14;:12;:14::i;:::-;13046:40;13097:44;13115:6;13123:9;13134:6;13097:17;:44::i;:::-;13156:7;13152:41;;13178:15;:13;:15::i;:::-;13152:41;12938:263;;;;:::o;14542:163::-;14583:7;14604:15;14621;14640:19;:17;:19::i;:::-;14603:56;;;;14677:20;14689:7;14677;:11;;:20;;;;:::i;:::-;14670:27;;;;14542:163;:::o;4106:189::-;4192:7;4224:1;4220;:5;4227:12;4212:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;4251:9;4267:1;4263;:5;;;;:::i;:::-;4251:17;;4286:1;4279:8;;;4106:189;;;;;:::o;9802:210::-;9859:1;9848:7;;:12;:29;;;;;9876:1;9864:8;;:13;9848:29;9845:41;;;9879:7;;9845:41;9914:7;;9896:15;:25;;;;9951:8;;9932:16;:27;;;;9980:1;9970:7;:11;;;;10003:1;9992:8;:12;;;;9802:210;:::o;13209:490::-;13308:15;13325:23;13350:12;13364:23;13389:12;13403:13;13420:19;13431:7;13420:10;:19::i;:::-;13307:132;;;;;;;;;;;;13468:28;13488:7;13468;:15;13476:6;13468:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;13450:7;:15;13458:6;13450:15;;;;;;;;;;;;;;;:46;;;;13528:39;13551:15;13528:7;:18;13536:9;13528:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;13507:7;:18;13515:9;13507:18;;;;;;;;;;;;;;;:60;;;;13581:16;13591:5;13581:9;:16::i;:::-;13608:23;13620:4;13626;13608:11;:23::i;:::-;13664:9;13647:44;;13656:6;13647:44;;;13675:15;13647:44;;;;;;:::i;:::-;;;;;;;;13296:403;;;;;;13209:490;;;:::o;10024:115::-;10078:15;;10068:7;:25;;;;10115:16;;10104:8;:27;;;;10024:115::o;14713:255::-;14763:7;14772;14792:15;14810:7;;14792:25;;14828:15;6555:12;14828:25;;14877:20;6555:12;14877:7;;:11;;:20;;;;:::i;:::-;14867:7;:30;14864:60;;;14907:7;;6555:12;14899:25;;;;;;;;14864:60;14943:7;14952;14935:25;;;;;;14713:255;;;:::o;13707:468::-;13766:7;13775;13784;13793;13802;13811;13832:23;13857:12;13871:13;13888:39;13900:7;13909;;13918:8;;13888:11;:39::i;:::-;13831:96;;;;;;13938:19;13961:10;:8;:10::i;:::-;13938:33;;13983:15;14000:23;14025:12;14041:46;14053:7;14062:4;14068:5;14075:11;14041;:46::i;:::-;13982:105;;;;;;14106:7;14115:15;14132:4;14138:15;14155:4;14161:5;14098:69;;;;;;;;;;;;;;;;;;;13707:468;;;;;;;:::o;3371:136::-;3429:7;3456:43;3460:1;3463;3456:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;3449:50;;3371:136;;;;:::o;15393:214::-;15446:19;15469:10;:8;:10::i;:::-;15446:33;;15490:13;15506:22;15516:11;15506:5;:9;;:22;;;;:::i;:::-;15490:38;;15566:33;15593:5;15566:7;:22;15582:4;15566:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;15541:7;:22;15557:4;15541:22;;;;;;;;;;;;;;;:58;;;;15435:172;;15393:214;:::o;15615:147::-;15693:17;15705:4;15693:7;;:11;;:17;;;;:::i;:::-;15683:7;:27;;;;15734:20;15749:4;15734:10;;:14;;:20;;;;:::i;:::-;15721:10;:33;;;;15615:147;;:::o;14183:351::-;14276:7;14285;14294;14314:12;14329:28;14353:3;14329:19;14341:6;14329:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;14314:43;;14368:13;14384:29;14409:3;14384:20;14396:7;14384;:11;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;14368:45;;14424:23;14450:28;14472:5;14450:17;14462:4;14450:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;14424:54;;14497:15;14514:4;14520:5;14489:37;;;;;;;;;14183:351;;;;;;;:::o;14976:409::-;15086:7;15095;15104;15124:15;15142:24;15154:11;15142:7;:11;;:24;;;;:::i;:::-;15124:42;;15177:12;15192:21;15201:11;15192:4;:8;;:21;;;;:::i;:::-;15177:36;;15224:13;15240:22;15250:11;15240:5;:9;;:22;;;;:::i;:::-;15224:38;;15273:23;15299:28;15321:5;15299:17;15311:4;15299:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;15273:54;;15346:7;15355:15;15372:4;15338:39;;;;;;;;;;14976:409;;;;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:307::-;355:1;365:113;379:6;376:1;373:13;365:113;;;464:1;459:3;455:11;449:18;445:1;440:3;436:11;429:39;401:2;398:1;394:10;389:15;;365:113;;;496:6;493:1;490:13;487:101;;;576:1;567:6;562:3;558:16;551:27;487:101;336:258;287:307;;;:::o;600:102::-;641:6;692:2;688:7;683:2;676:5;672:14;668:28;658:38;;600:102;;;:::o;708:364::-;796:3;824:39;857:5;824:39;:::i;:::-;879:71;943:6;938:3;879:71;:::i;:::-;872:78;;959:52;1004:6;999:3;992:4;985:5;981:16;959:52;:::i;:::-;1036:29;1058:6;1036:29;:::i;:::-;1031:3;1027:39;1020:46;;800:272;708:364;;;;:::o;1078:313::-;1191:4;1229:2;1218:9;1214:18;1206:26;;1278:9;1272:4;1268:20;1264:1;1253:9;1249:17;1242:47;1306:78;1379:4;1370:6;1306:78;:::i;:::-;1298:86;;1078:313;;;;:::o;1397:75::-;1430:6;1463:2;1457:9;1447:19;;1397:75;:::o;1478:117::-;1587:1;1584;1577:12;1601:117;1710:1;1707;1700:12;1724:126;1761:7;1801:42;1794:5;1790:54;1779:65;;1724:126;;;:::o;1856:96::-;1893:7;1922:24;1940:5;1922:24;:::i;:::-;1911:35;;1856:96;;;:::o;1958:122::-;2031:24;2049:5;2031:24;:::i;:::-;2024:5;2021:35;2011:63;;2070:1;2067;2060:12;2011:63;1958:122;:::o;2086:139::-;2132:5;2170:6;2157:20;2148:29;;2186:33;2213:5;2186:33;:::i;:::-;2086:139;;;;:::o;2231:77::-;2268:7;2297:5;2286:16;;2231:77;;;:::o;2314:122::-;2387:24;2405:5;2387:24;:::i;:::-;2380:5;2377:35;2367:63;;2426:1;2423;2416:12;2367:63;2314:122;:::o;2442:139::-;2488:5;2526:6;2513:20;2504:29;;2542:33;2569:5;2542:33;:::i;:::-;2442:139;;;;:::o;2587:474::-;2655:6;2663;2712:2;2700:9;2691:7;2687:23;2683:32;2680:119;;;2718:79;;:::i;:::-;2680:119;2838:1;2863:53;2908:7;2899:6;2888:9;2884:22;2863:53;:::i;:::-;2853:63;;2809:117;2965:2;2991:53;3036:7;3027:6;3016:9;3012:22;2991:53;:::i;:::-;2981:63;;2936:118;2587:474;;;;;:::o;3067:90::-;3101:7;3144:5;3137:13;3130:21;3119:32;;3067:90;;;:::o;3163:109::-;3244:21;3259:5;3244:21;:::i;:::-;3239:3;3232:34;3163:109;;:::o;3278:210::-;3365:4;3403:2;3392:9;3388:18;3380:26;;3416:65;3478:1;3467:9;3463:17;3454:6;3416:65;:::i;:::-;3278:210;;;;:::o;3494:118::-;3581:24;3599:5;3581:24;:::i;:::-;3576:3;3569:37;3494:118;;:::o;3618:222::-;3711:4;3749:2;3738:9;3734:18;3726:26;;3762:71;3830:1;3819:9;3815:17;3806:6;3762:71;:::i;:::-;3618:222;;;;:::o;3846:619::-;3923:6;3931;3939;3988:2;3976:9;3967:7;3963:23;3959:32;3956:119;;;3994:79;;:::i;:::-;3956:119;4114:1;4139:53;4184:7;4175:6;4164:9;4160:22;4139:53;:::i;:::-;4129:63;;4085:117;4241:2;4267:53;4312:7;4303:6;4292:9;4288:22;4267:53;:::i;:::-;4257:63;;4212:118;4369:2;4395:53;4440:7;4431:6;4420:9;4416:22;4395:53;:::i;:::-;4385:63;;4340:118;3846:619;;;;;:::o;4471:329::-;4530:6;4579:2;4567:9;4558:7;4554:23;4550:32;4547:119;;;4585:79;;:::i;:::-;4547:119;4705:1;4730:53;4775:7;4766:6;4755:9;4751:22;4730:53;:::i;:::-;4720:63;;4676:117;4471:329;;;;:::o;4806:86::-;4841:7;4881:4;4874:5;4870:16;4859:27;;4806:86;;;:::o;4898:112::-;4981:22;4997:5;4981:22;:::i;:::-;4976:3;4969:35;4898:112;;:::o;5016:214::-;5105:4;5143:2;5132:9;5128:18;5120:26;;5156:67;5220:1;5209:9;5205:17;5196:6;5156:67;:::i;:::-;5016:214;;;;:::o;5236:104::-;5281:7;5310:24;5328:5;5310:24;:::i;:::-;5299:35;;5236:104;;;:::o;5346:138::-;5427:32;5453:5;5427:32;:::i;:::-;5420:5;5417:43;5407:71;;5474:1;5471;5464:12;5407:71;5346:138;:::o;5490:155::-;5544:5;5582:6;5569:20;5560:29;;5598:41;5633:5;5598:41;:::i;:::-;5490:155;;;;:::o;5651:345::-;5718:6;5767:2;5755:9;5746:7;5742:23;5738:32;5735:119;;;5773:79;;:::i;:::-;5735:119;5893:1;5918:61;5971:7;5962:6;5951:9;5947:22;5918:61;:::i;:::-;5908:71;;5864:125;5651:345;;;;:::o;6002:116::-;6072:21;6087:5;6072:21;:::i;:::-;6065:5;6062:32;6052:60;;6108:1;6105;6098:12;6052:60;6002:116;:::o;6124:133::-;6167:5;6205:6;6192:20;6183:29;;6221:30;6245:5;6221:30;:::i;:::-;6124:133;;;;:::o;6263:323::-;6319:6;6368:2;6356:9;6347:7;6343:23;6339:32;6336:119;;;6374:79;;:::i;:::-;6336:119;6494:1;6519:50;6561:7;6552:6;6541:9;6537:22;6519:50;:::i;:::-;6509:60;;6465:114;6263:323;;;;:::o;6592:118::-;6679:24;6697:5;6679:24;:::i;:::-;6674:3;6667:37;6592:118;;:::o;6716:222::-;6809:4;6847:2;6836:9;6832:18;6824:26;;6860:71;6928:1;6917:9;6913:17;6904:6;6860:71;:::i;:::-;6716:222;;;;:::o;6944:117::-;7053:1;7050;7043:12;7067:180;7115:77;7112:1;7105:88;7212:4;7209:1;7202:15;7236:4;7233:1;7226:15;7253:281;7336:27;7358:4;7336:27;:::i;:::-;7328:6;7324:40;7466:6;7454:10;7451:22;7430:18;7418:10;7415:34;7412:62;7409:88;;;7477:18;;:::i;:::-;7409:88;7517:10;7513:2;7506:22;7296:238;7253:281;;:::o;7540:129::-;7574:6;7601:20;;:::i;:::-;7591:30;;7630:33;7658:4;7650:6;7630:33;:::i;:::-;7540:129;;;:::o;7675:311::-;7752:4;7842:18;7834:6;7831:30;7828:56;;;7864:18;;:::i;:::-;7828:56;7914:4;7906:6;7902:17;7894:25;;7974:4;7968;7964:15;7956:23;;7675:311;;;:::o;7992:117::-;8101:1;8098;8091:12;8132:710;8228:5;8253:81;8269:64;8326:6;8269:64;:::i;:::-;8253:81;:::i;:::-;8244:90;;8354:5;8383:6;8376:5;8369:21;8417:4;8410:5;8406:16;8399:23;;8470:4;8462:6;8458:17;8450:6;8446:30;8499:3;8491:6;8488:15;8485:122;;;8518:79;;:::i;:::-;8485:122;8633:6;8616:220;8650:6;8645:3;8642:15;8616:220;;;8725:3;8754:37;8787:3;8775:10;8754:37;:::i;:::-;8749:3;8742:50;8821:4;8816:3;8812:14;8805:21;;8692:144;8676:4;8671:3;8667:14;8660:21;;8616:220;;;8620:21;8234:608;;8132:710;;;;;:::o;8865:370::-;8936:5;8985:3;8978:4;8970:6;8966:17;8962:27;8952:122;;8993:79;;:::i;:::-;8952:122;9110:6;9097:20;9135:94;9225:3;9217:6;9210:4;9202:6;9198:17;9135:94;:::i;:::-;9126:103;;8942:293;8865:370;;;;:::o;9241:539::-;9325:6;9374:2;9362:9;9353:7;9349:23;9345:32;9342:119;;;9380:79;;:::i;:::-;9342:119;9528:1;9517:9;9513:17;9500:31;9558:18;9550:6;9547:30;9544:117;;;9580:79;;:::i;:::-;9544:117;9685:78;9755:7;9746:6;9735:9;9731:22;9685:78;:::i;:::-;9675:88;;9471:302;9241:539;;;;:::o;9786:329::-;9845:6;9894:2;9882:9;9873:7;9869:23;9865:32;9862:119;;;9900:79;;:::i;:::-;9862:119;10020:1;10045:53;10090:7;10081:6;10070:9;10066:22;10045:53;:::i;:::-;10035:63;;9991:117;9786:329;;;;:::o;10121:474::-;10189:6;10197;10246:2;10234:9;10225:7;10221:23;10217:32;10214:119;;;10252:79;;:::i;:::-;10214:119;10372:1;10397:53;10442:7;10433:6;10422:9;10418:22;10397:53;:::i;:::-;10387:63;;10343:117;10499:2;10525:53;10570:7;10561:6;10550:9;10546:22;10525:53;:::i;:::-;10515:63;;10470:118;10121:474;;;;;:::o;10601:182::-;10741:34;10737:1;10729:6;10725:14;10718:58;10601:182;:::o;10789:366::-;10931:3;10952:67;11016:2;11011:3;10952:67;:::i;:::-;10945:74;;11028:93;11117:3;11028:93;:::i;:::-;11146:2;11141:3;11137:12;11130:19;;10789:366;;;:::o;11161:419::-;11327:4;11365:2;11354:9;11350:18;11342:26;;11414:9;11408:4;11404:20;11400:1;11389:9;11385:17;11378:47;11442:131;11568:4;11442:131;:::i;:::-;11434:139;;11161:419;;;:::o;11586:180::-;11634:77;11631:1;11624:88;11731:4;11728:1;11721:15;11755:4;11752:1;11745:15;11772:180;11820:77;11817:1;11810:88;11917:4;11914:1;11907:15;11941:4;11938:1;11931:15;11958:233;11997:3;12020:24;12038:5;12020:24;:::i;:::-;12011:33;;12066:66;12059:5;12056:77;12053:103;;;12136:18;;:::i;:::-;12053:103;12183:1;12176:5;12172:13;12165:20;;11958:233;;;:::o;12197:173::-;12337:25;12333:1;12325:6;12321:14;12314:49;12197:173;:::o;12376:366::-;12518:3;12539:67;12603:2;12598:3;12539:67;:::i;:::-;12532:74;;12615:93;12704:3;12615:93;:::i;:::-;12733:2;12728:3;12724:12;12717:19;;12376:366;;;:::o;12748:419::-;12914:4;12952:2;12941:9;12937:18;12929:26;;13001:9;12995:4;12991:20;12987:1;12976:9;12972:17;12965:47;13029:131;13155:4;13029:131;:::i;:::-;13021:139;;12748:419;;;:::o;13173:143::-;13230:5;13261:6;13255:13;13246:22;;13277:33;13304:5;13277:33;:::i;:::-;13173:143;;;;:::o;13322:351::-;13392:6;13441:2;13429:9;13420:7;13416:23;13412:32;13409:119;;;13447:79;;:::i;:::-;13409:119;13567:1;13592:64;13648:7;13639:6;13628:9;13624:22;13592:64;:::i;:::-;13582:74;;13538:128;13322:351;;;;:::o;13679:332::-;13800:4;13838:2;13827:9;13823:18;13815:26;;13851:71;13919:1;13908:9;13904:17;13895:6;13851:71;:::i;:::-;13932:72;14000:2;13989:9;13985:18;13976:6;13932:72;:::i;:::-;13679:332;;;;;:::o;14017:85::-;14062:7;14091:5;14080:16;;14017:85;;;:::o;14108:60::-;14136:3;14157:5;14150:12;;14108:60;;;:::o;14174:158::-;14232:9;14265:61;14283:42;14292:32;14318:5;14292:32;:::i;:::-;14283:42;:::i;:::-;14265:61;:::i;:::-;14252:74;;14174:158;;;:::o;14338:147::-;14433:45;14472:5;14433:45;:::i;:::-;14428:3;14421:58;14338:147;;:::o;14491:807::-;14740:4;14778:3;14767:9;14763:19;14755:27;;14792:71;14860:1;14849:9;14845:17;14836:6;14792:71;:::i;:::-;14873:72;14941:2;14930:9;14926:18;14917:6;14873:72;:::i;:::-;14955:80;15031:2;15020:9;15016:18;15007:6;14955:80;:::i;:::-;15045;15121:2;15110:9;15106:18;15097:6;15045:80;:::i;:::-;15135:73;15203:3;15192:9;15188:19;15179:6;15135:73;:::i;:::-;15218;15286:3;15275:9;15271:19;15262:6;15218:73;:::i;:::-;14491:807;;;;;;;;;:::o;15304:143::-;15361:5;15392:6;15386:13;15377:22;;15408:33;15435:5;15408:33;:::i;:::-;15304:143;;;;:::o;15453:663::-;15541:6;15549;15557;15606:2;15594:9;15585:7;15581:23;15577:32;15574:119;;;15612:79;;:::i;:::-;15574:119;15732:1;15757:64;15813:7;15804:6;15793:9;15789:22;15757:64;:::i;:::-;15747:74;;15703:128;15870:2;15896:64;15952:7;15943:6;15932:9;15928:22;15896:64;:::i;:::-;15886:74;;15841:129;16009:2;16035:64;16091:7;16082:6;16071:9;16067:22;16035:64;:::i;:::-;16025:74;;15980:129;15453:663;;;;;:::o;16122:332::-;16243:4;16281:2;16270:9;16266:18;16258:26;;16294:71;16362:1;16351:9;16347:17;16338:6;16294:71;:::i;:::-;16375:72;16443:2;16432:9;16428:18;16419:6;16375:72;:::i;:::-;16122:332;;;;;:::o;16460:137::-;16514:5;16545:6;16539:13;16530:22;;16561:30;16585:5;16561:30;:::i;:::-;16460:137;;;;:::o;16603:345::-;16670:6;16719:2;16707:9;16698:7;16694:23;16690:32;16687:119;;;16725:79;;:::i;:::-;16687:119;16845:1;16870:61;16923:7;16914:6;16903:9;16899:22;16870:61;:::i;:::-;16860:71;;16816:125;16603:345;;;;:::o;16954:305::-;16994:3;17013:20;17031:1;17013:20;:::i;:::-;17008:25;;17047:20;17065:1;17047:20;:::i;:::-;17042:25;;17201:1;17133:66;17129:74;17126:1;17123:81;17120:107;;;17207:18;;:::i;:::-;17120:107;17251:1;17248;17244:9;17237:16;;16954:305;;;;:::o;17265:223::-;17405:34;17401:1;17393:6;17389:14;17382:58;17474:6;17469:2;17461:6;17457:15;17450:31;17265:223;:::o;17494:366::-;17636:3;17657:67;17721:2;17716:3;17657:67;:::i;:::-;17650:74;;17733:93;17822:3;17733:93;:::i;:::-;17851:2;17846:3;17842:12;17835:19;;17494:366;;;:::o;17866:419::-;18032:4;18070:2;18059:9;18055:18;18047:26;;18119:9;18113:4;18109:20;18105:1;18094:9;18090:17;18083:47;18147:131;18273:4;18147:131;:::i;:::-;18139:139;;17866:419;;;:::o;18291:221::-;18431:34;18427:1;18419:6;18415:14;18408:58;18500:4;18495:2;18487:6;18483:15;18476:29;18291:221;:::o;18518:366::-;18660:3;18681:67;18745:2;18740:3;18681:67;:::i;:::-;18674:74;;18757:93;18846:3;18757:93;:::i;:::-;18875:2;18870:3;18866:12;18859:19;;18518:366;;;:::o;18890:419::-;19056:4;19094:2;19083:9;19079:18;19071:26;;19143:9;19137:4;19133:20;19129:1;19118:9;19114:17;19107:47;19171:131;19297:4;19171:131;:::i;:::-;19163:139;;18890:419;;;:::o;19315:224::-;19455:34;19451:1;19443:6;19439:14;19432:58;19524:7;19519:2;19511:6;19507:15;19500:32;19315:224;:::o;19545:366::-;19687:3;19708:67;19772:2;19767:3;19708:67;:::i;:::-;19701:74;;19784:93;19873:3;19784:93;:::i;:::-;19902:2;19897:3;19893:12;19886:19;;19545:366;;;:::o;19917:419::-;20083:4;20121:2;20110:9;20106:18;20098:26;;20170:9;20164:4;20160:20;20156:1;20145:9;20141:17;20134:47;20198:131;20324:4;20198:131;:::i;:::-;20190:139;;19917:419;;;:::o;20342:222::-;20482:34;20478:1;20470:6;20466:14;20459:58;20551:5;20546:2;20538:6;20534:15;20527:30;20342:222;:::o;20570:366::-;20712:3;20733:67;20797:2;20792:3;20733:67;:::i;:::-;20726:74;;20809:93;20898:3;20809:93;:::i;:::-;20927:2;20922:3;20918:12;20911:19;;20570:366;;;:::o;20942:419::-;21108:4;21146:2;21135:9;21131:18;21123:26;;21195:9;21189:4;21185:20;21181:1;21170:9;21166:17;21159:47;21223:131;21349:4;21223:131;:::i;:::-;21215:139;;20942:419;;;:::o;21367:228::-;21507:34;21503:1;21495:6;21491:14;21484:58;21576:11;21571:2;21563:6;21559:15;21552:36;21367:228;:::o;21601:366::-;21743:3;21764:67;21828:2;21823:3;21764:67;:::i;:::-;21757:74;;21840:93;21929:3;21840:93;:::i;:::-;21958:2;21953:3;21949:12;21942:19;;21601:366;;;:::o;21973:419::-;22139:4;22177:2;22166:9;22162:18;22154:26;;22226:9;22220:4;22216:20;22212:1;22201:9;22197:17;22190:47;22254:131;22380:4;22254:131;:::i;:::-;22246:139;;21973:419;;;:::o;22398:174::-;22538:26;22534:1;22526:6;22522:14;22515:50;22398:174;:::o;22578:366::-;22720:3;22741:67;22805:2;22800:3;22741:67;:::i;:::-;22734:74;;22817:93;22906:3;22817:93;:::i;:::-;22935:2;22930:3;22926:12;22919:19;;22578:366;;;:::o;22950:419::-;23116:4;23154:2;23143:9;23139:18;23131:26;;23203:9;23197:4;23193:20;23189:1;23178:9;23174:17;23167:47;23231:131;23357:4;23231:131;:::i;:::-;23223:139;;22950:419;;;:::o;23375:191::-;23415:4;23435:20;23453:1;23435:20;:::i;:::-;23430:25;;23469:20;23487:1;23469:20;:::i;:::-;23464:25;;23508:1;23505;23502:8;23499:34;;;23513:18;;:::i;:::-;23499:34;23558:1;23555;23551:9;23543:17;;23375:191;;;;:::o;23572:229::-;23712:34;23708:1;23700:6;23696:14;23689:58;23781:12;23776:2;23768:6;23764:15;23757:37;23572:229;:::o;23807:366::-;23949:3;23970:67;24034:2;24029:3;23970:67;:::i;:::-;23963:74;;24046:93;24135:3;24046:93;:::i;:::-;24164:2;24159:3;24155:12;24148:19;;23807:366;;;:::o;24179:419::-;24345:4;24383:2;24372:9;24368:18;24360:26;;24432:9;24426:4;24422:20;24418:1;24407:9;24403:17;24396:47;24460:131;24586:4;24460:131;:::i;:::-;24452:139;;24179:419;;;:::o;24604:114::-;24671:6;24705:5;24699:12;24689:22;;24604:114;;;:::o;24724:184::-;24823:11;24857:6;24852:3;24845:19;24897:4;24892:3;24888:14;24873:29;;24724:184;;;;:::o;24914:132::-;24981:4;25004:3;24996:11;;25034:4;25029:3;25025:14;25017:22;;24914:132;;;:::o;25052:108::-;25129:24;25147:5;25129:24;:::i;:::-;25124:3;25117:37;25052:108;;:::o;25166:179::-;25235:10;25256:46;25298:3;25290:6;25256:46;:::i;:::-;25334:4;25329:3;25325:14;25311:28;;25166:179;;;;:::o;25351:113::-;25421:4;25453;25448:3;25444:14;25436:22;;25351:113;;;:::o;25500:732::-;25619:3;25648:54;25696:5;25648:54;:::i;:::-;25718:86;25797:6;25792:3;25718:86;:::i;:::-;25711:93;;25828:56;25878:5;25828:56;:::i;:::-;25907:7;25938:1;25923:284;25948:6;25945:1;25942:13;25923:284;;;26024:6;26018:13;26051:63;26110:3;26095:13;26051:63;:::i;:::-;26044:70;;26137:60;26190:6;26137:60;:::i;:::-;26127:70;;25983:224;25970:1;25967;25963:9;25958:14;;25923:284;;;25927:14;26223:3;26216:10;;25624:608;;;25500:732;;;;:::o;26238:831::-;26501:4;26539:3;26528:9;26524:19;26516:27;;26553:71;26621:1;26610:9;26606:17;26597:6;26553:71;:::i;:::-;26634:80;26710:2;26699:9;26695:18;26686:6;26634:80;:::i;:::-;26761:9;26755:4;26751:20;26746:2;26735:9;26731:18;26724:48;26789:108;26892:4;26883:6;26789:108;:::i;:::-;26781:116;;26907:72;26975:2;26964:9;26960:18;26951:6;26907:72;:::i;:::-;26989:73;27057:3;27046:9;27042:19;27033:6;26989:73;:::i;:::-;26238:831;;;;;;;;:::o;27075:348::-;27115:7;27138:20;27156:1;27138:20;:::i;:::-;27133:25;;27172:20;27190:1;27172:20;:::i;:::-;27167:25;;27360:1;27292:66;27288:74;27285:1;27282:81;27277:1;27270:9;27263:17;27259:105;27256:131;;;27367:18;;:::i;:::-;27256:131;27415:1;27412;27408:9;27397:20;;27075:348;;;;:::o;27429:180::-;27477:77;27474:1;27467:88;27574:4;27571:1;27564:15;27598:4;27595:1;27588:15;27615:185;27655:1;27672:20;27690:1;27672:20;:::i;:::-;27667:25;;27706:20;27724:1;27706:20;:::i;:::-;27701:25;;27745:1;27735:35;;27750:18;;:::i;:::-;27735:35;27792:1;27789;27785:9;27780:14;;27615:185;;;;:::o;27806:220::-;27946:34;27942:1;27934:6;27930:14;27923:58;28015:3;28010:2;28002:6;27998:15;27991:28;27806:220;:::o;28032:366::-;28174:3;28195:67;28259:2;28254:3;28195:67;:::i;:::-;28188:74;;28271:93;28360:3;28271:93;:::i;:::-;28389:2;28384:3;28380:12;28373:19;;28032:366;;;:::o;28404:419::-;28570:4;28608:2;28597:9;28593:18;28585:26;;28657:9;28651:4;28647:20;28643:1;28632:9;28628:17;28621:47;28685:131;28811:4;28685:131;:::i;:::-;28677:139;;28404:419;;;:::o;28829:177::-;28969:29;28965:1;28957:6;28953:14;28946:53;28829:177;:::o;29012:366::-;29154:3;29175:67;29239:2;29234:3;29175:67;:::i;:::-;29168:74;;29251:93;29340:3;29251:93;:::i;:::-;29369:2;29364:3;29360:12;29353:19;;29012:366;;;:::o;29384:419::-;29550:4;29588:2;29577:9;29573:18;29565:26;;29637:9;29631:4;29627:20;29623:1;29612:9;29608:17;29601:47;29665:131;29791:4;29665:131;:::i;:::-;29657:139;;29384:419;;;:::o

Swarm Source

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