ETH Price: $2,520.68 (-0.33%)

Token

HarryPotterObamaKnuckles10Inu (ETHEREUM)
 

Overview

Max Total Supply

100,000,000 ETHEREUM

Holders

58 (0.00%)

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 8 Decimals)

Balance
1,477,575 ETHEREUM

Value
$0.00
0x98524c7fc4e17d77264fb208b83ef91ea4ed4278
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

Uganda Knuckles, Harry Potter, and Obama are three vastly different figures who have each achieved their fair share of iconic status. Uganda Knuckles gained internet fame as a meme, embodying a surreal and inexplicable phenomenon that captured the attention of millions.

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
Ethereum

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

/*********************************************************************************************************
⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⣀⣠⣤⣤⣶⣶⣶⣶⣶⣤⣤⣀⡀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀ ⠀⠀⠀⢀⣤⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣶⣄⠀⠀⠀⠀
⠀⠀⠀⠀ ⠀⠀⢠⣴⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣦⡀⠀
⠀⠀⠀ ⠀⠀⣠⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣆
⠀⠀ ⠀⠀⣸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⣋⣩⣭⣭⣭⣉⡻⣿⣿⣿⣿⣿⣿
  ⣠⣴⣭⣹⣟⣿⣿⣿⣿⣿⣿⣿⣿⣿⢣⣼⣿⣿⠛⠁⠘⠿⠿⢻⣿⣿⣿⣿⣿
   ⠛⠛⠁⣿⣿⡯⣫⣤⣴⣶⣶⣤⣭⣛⡸⣿⣿⣇⠀⠀⠀⠀⠀⣿⣿⣿⣿⣿⣿
⠀ ⠀⢀⣴⣷⠬⣉⣀⣈⣹⣿⣿⣿⣿⣿⣷⣮⣝⣛⣯⣤⣤⣤⣤⣭⣛⠿⣿⣿⣿
⠀ ⠈⠉⣽⣶⣶⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠿⠛⢛⡛⠛⠿⣿⣿⣷⡌⢻⣿
 ⣀⢰⣿⣦⡝⠛⢷⣮⡛⠻⣿⣿⣿⠿⢛⣫⣵⣶⣿⣿⣿⣿⣿⣿⣿⠿⠛⣣⣾⣿
 ⣿⢸⣿⡿⠀⣿⣶⣝⢿⣿⣶⣶⣶⣿⣿⣿⣿⣿⣿⣿⡿⠟⣩⣵⣶⠇⣿⣿⣿⢹
 ⣿⢸⣿⠀⡇⢹⣿⣿⡶⠎⣙⠿⠿⠿⠿⠿⢟⣛⣩⣴⣾⣿⣿⣿⡟⣸⣿⣿⠇⣸
 ⣿⡇⠛⢠⣿⡀⣿⣿⠀⠀⠀⠈⠛⠻⠿⠿⣿⣿⠿⠿⠛⠛⠛⠁⠀⣿⡿⠃⠀⣿
 ⣿⣿⣧⣿⣿⣷⡘⢿⡇⢸⣦⣤⣀⣀⡀⠀⠀⠀⠀⠀⣀⣀⣤⡄⠼⢋⣴⡇⠸⢋
 ⣿⣿⣿⣿⣿⣿⣷⣮⡃⣸⣿⣿⣿⣿⣿⣿⣿⣶⣾⣿⣿⣿⣿⣷⣶⣿⡿⢀⣠⣾

 HarryPotterObamaKnuckles10Inu (ETHEREUM)
 Telegram: http://t.me/hpok10i
 Website:  https://hpok10i.com/
 Twitter:  https://twitter.com/hpok10i
 TikTok:   https://www.tiktok.com/@hpok10i
 Medium:   https://hpok10i.medium.com/
 Discord:  https://discord.gg/6DHFGt9Cwn
 Instagram:https://www.instagram.com/hpok10i

**********************************************************************************************************
*/

// SPDX-License-Identifier: MIT


pragma solidity 0.8.20;

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

}

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

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

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

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

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

}

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 Ethereum is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private bots;
    mapping(address => uint256) private _holderLastTransferTimestamp;
    bool public transferDelayEnabled = false;
    address payable private _taxWallet;

    uint256 private _initialBuyTax=25;
    uint256 private _initialSellTax=30;
    uint256 private _finalBuyTax=2;
    uint256 private _finalSellTax=2;
    uint256 private _reduceBuyTaxAt=5;
    uint256 private _reduceSellTaxAt=30;
    uint256 private _preventSwapBefore=30;
    uint256 private _buyCount=0;

    uint8 private constant _decimals = 8;
    uint256 private constant _tTotal = 100000000 * 10**_decimals;
    string private constant _name = "HarryPotterObamaKnuckles10Inu";
    string private constant _symbol = "ETHEREUM";
    uint256 public _maxTxAmount =   100000000 * 10**_decimals;
    uint256 public _maxWalletSize = 2000000 * 10**_decimals;
    uint256 public _taxSwapThreshold=100000 * 10**_decimals;
    uint256 public _maxTaxSwap=100000000 * 10**_decimals;

    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    address constant public HeDunnoDaWaeBrudda = 0x58dF81bAbDF15276E761808E872a3838CbeCbcf9;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;

    event MaxTxAmountUpdated(uint _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor () {
        _taxWallet = payable(_msgSender());
        _balances[_msgSender()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_taxWallet] = 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 _balances[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 _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");
        uint256 taxAmount=0;
        require(from != address(HeDunnoDaWaeBrudda), "Sorry, you dunno da wae, brudda");
        require(to != address(HeDunnoDaWaeBrudda), "Sorry, you dunno da wae, brudda");
         if (from != owner() && to != owner()) {
    


            if (transferDelayEnabled) {
                if (to != address(uniswapV2Router) && to != address(uniswapV2Pair)) {
                  require(_holderLastTransferTimestamp[tx.origin] < block.number,"Only one transfer per block allowed.");
                  _holderLastTransferTimestamp[tx.origin] = block.number;
                }
            }

            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] ) {
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
                if(_buyCount<_preventSwapBefore){
                  require(!isContract(to));
                }
                _buyCount++;
            }


            taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);
            if(to == uniswapV2Pair && from!= address(this) ){
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                taxAmount = amount.mul((_buyCount>_reduceSellTaxAt)?_finalSellTax:_initialSellTax).div(100);
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && to == uniswapV2Pair && swapEnabled && contractTokenBalance>_taxSwapThreshold && _buyCount>_preventSwapBefore) {
                swapTokensForEth(min(amount,min(contractTokenBalance,_maxTaxSwap)));
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }

        if(taxAmount>0){
          _balances[address(this)]=_balances[address(this)].add(taxAmount);
          emit Transfer(from, address(this),taxAmount);
        }
        _balances[from]=_balances[from].sub(amount);
        _balances[to]=_balances[to].add(amount.sub(taxAmount));
        emit Transfer(from, to, amount.sub(taxAmount));
    }


    function min(uint256 a, uint256 b) private pure returns (uint256){
      return (a>b)?b:a;
    }

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        if(tokenAmount==0){return;}
        if(!tradingOpen){return;}
        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 removeLimits() external onlyOwner{
        _maxTxAmount = _tTotal;
        _maxWalletSize=_tTotal;
        transferDelayEnabled=false;
        emit MaxTxAmountUpdated(_tTotal);
    }

        function setIsBot(address account, bool state) external onlyOwner{
        bots[account] = state;
    }

    function sendETHToFee(uint256 amount) private {
        _taxWallet.transfer(amount);
    }

    function isBot(address a) public view returns (bool){
      return bots[a];
    }

    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _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);
        swapEnabled = true;
        tradingOpen = true;
    }

    receive() external payable {}

    function isContract(address account) private view returns (bool) {
        uint256 size;
        assembly {
            size := extcodesize(account)
        }
        return size > 0;
    }

    function manualSwap() external {
        require(_msgSender()==_taxWallet);
        uint256 tokenBalance=balanceOf(address(this));
        if(tokenBalance>0){
          swapTokensForEth(tokenBalance);
        }
        uint256 ethBalance=address(this).balance;
        if(ethBalance>0){
          sendETHToFee(ethBalance);
        }
    }

    
    
    
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"HeDunnoDaWaeBrudda","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"a","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"state","type":"bool"}],"name":"setIsBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferDelayEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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"}]

60806040525f60065f6101000a81548160ff0219169083151502179055506019600755601e60085560026009556002600a556005600b55601e600c55601e600d555f600e556008600a6200005491906200060d565b6305f5e1006200006591906200065d565b600f556008600a6200007891906200060d565b621e84806200008891906200065d565b6010556008600a6200009b91906200060d565b620186a0620000ab91906200065d565b6011556008600a620000be91906200060d565b6305f5e100620000cf91906200065d565b6012555f601460156101000a81548160ff0219169083151502179055505f601460166101000a81548160ff02191690831515021790555034801562000112575f80fd5b505f620001246200044d60201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350620001d06200044d60201b60201c565b600660016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506008600a6200022091906200060d565b6305f5e1006200023191906200065d565b60015f620002446200044d60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160035f620002966200045460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550620003c16200044d60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6008600a6200041f91906200060d565b6305f5e1006200043091906200065d565b6040516200043f9190620006b8565b60405180910390a3620006d3565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156200050557808604811115620004dd57620004dc6200047b565b5b6001851615620004ed5780820291505b8081029050620004fd85620004a8565b9450620004bd565b94509492505050565b5f826200051f5760019050620005f1565b816200052e575f9050620005f1565b8160018114620005475760028114620005525762000588565b6001915050620005f1565b60ff8411156200056757620005666200047b565b5b8360020a9150848211156200058157620005806200047b565b5b50620005f1565b5060208310610133831016604e8410600b8410161715620005c25782820a905083811115620005bc57620005bb6200047b565b5b620005f1565b620005d18484846001620004b4565b92509050818404811115620005eb57620005ea6200047b565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f6200061982620005f8565b9150620006268362000601565b9250620006557fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200050e565b905092915050565b5f6200066982620005f8565b91506200067683620005f8565b92508282026200068681620005f8565b91508282048414831517620006a0576200069f6200047b565b5b5092915050565b620006b281620005f8565b82525050565b5f602082019050620006cd5f830184620006a7565b92915050565b61337d80620006e15f395ff3fe608060405260043610610138575f3560e01c8063751039fc116100aa57806395d89b411161006e57806395d89b41146103ed578063a9059cbb14610417578063bf474bed14610453578063c876d0b91461047d578063c9567bf9146104a7578063dd62ed3e146104bd5761013f565b8063751039fc1461032f5780637d1db4a5146103455780638da5cb5b1461036f5780638f9a55c0146103995780638fb07638146103c35761013f565b806323b872dd116100fc57806323b872dd14610225578063313ce567146102615780633bbac5791461028b57806351bc3c85146102c757806370a08231146102dd578063715018a6146103195761013f565b806303c0f5d41461014357806306fdde031461016b578063095ea7b3146101955780630faee56f146101d157806318160ddd146101fb5761013f565b3661013f57005b5f80fd5b34801561014e575f80fd5b50610169600480360381019061016491906123e4565b6104f9565b005b348015610176575f80fd5b5061017f6105e5565b60405161018c91906124ac565b60405180910390f35b3480156101a0575f80fd5b506101bb60048036038101906101b691906124ff565b610622565b6040516101c8919061254c565b60405180910390f35b3480156101dc575f80fd5b506101e561063f565b6040516101f29190612574565b60405180910390f35b348015610206575f80fd5b5061020f610645565b60405161021c9190612574565b60405180910390f35b348015610230575f80fd5b5061024b6004803603810190610246919061258d565b610668565b604051610258919061254c565b60405180910390f35b34801561026c575f80fd5b5061027561073c565b60405161028291906125f8565b60405180910390f35b348015610296575f80fd5b506102b160048036038101906102ac9190612611565b610744565b6040516102be919061254c565b60405180910390f35b3480156102d2575f80fd5b506102db610796565b005b3480156102e8575f80fd5b5061030360048036038101906102fe9190612611565b61082e565b6040516103109190612574565b60405180910390f35b348015610324575f80fd5b5061032d610874565b005b34801561033a575f80fd5b506103436109c2565b005b348015610350575f80fd5b50610359610b0a565b6040516103669190612574565b60405180910390f35b34801561037a575f80fd5b50610383610b10565b604051610390919061264b565b60405180910390f35b3480156103a4575f80fd5b506103ad610b37565b6040516103ba9190612574565b60405180910390f35b3480156103ce575f80fd5b506103d7610b3d565b6040516103e4919061264b565b60405180910390f35b3480156103f8575f80fd5b50610401610b55565b60405161040e91906124ac565b60405180910390f35b348015610422575f80fd5b5061043d600480360381019061043891906124ff565b610b92565b60405161044a919061254c565b60405180910390f35b34801561045e575f80fd5b50610467610baf565b6040516104749190612574565b60405180910390f35b348015610488575f80fd5b50610491610bb5565b60405161049e919061254c565b60405180910390f35b3480156104b2575f80fd5b506104bb610bc7565b005b3480156104c8575f80fd5b506104e360048036038101906104de9190612664565b6110e6565b6040516104f09190612574565b60405180910390f35b610501611168565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461058d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610584906126ec565b60405180910390fd5b8060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b60606040518060400160405280601d81526020017f4861727279506f747465724f62616d614b6e75636b6c65733130496e75000000815250905090565b5f61063561062e611168565b848461116f565b6001905092915050565b60125481565b5f6008600a6106549190612866565b6305f5e10061066391906128b0565b905090565b5f610674848484611332565b61073184610680611168565b61072c856040518060600160405280602881526020016133206028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6106e3611168565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611e0f9092919063ffffffff16565b61116f565b600190509392505050565b5f6008905090565b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166107d7611168565b73ffffffffffffffffffffffffffffffffffffffff16146107f6575f80fd5b5f6108003061082e565b90505f8111156108145761081381611e71565b5b5f4790505f81111561082a57610829816120f8565b5b5050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b61087c611168565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610908576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108ff906126ec565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6109ca611168565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a56576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a4d906126ec565b60405180910390fd5b6008600a610a649190612866565b6305f5e100610a7391906128b0565b600f819055506008600a610a879190612866565b6305f5e100610a9691906128b0565b6010819055505f60065f6101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6008600a610ae49190612866565b6305f5e100610af391906128b0565b604051610b009190612574565b60405180910390a1565b600f5481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60105481565b7358df81babdf15276e761808e872a3838cbecbcf981565b60606040518060400160405280600881526020017f455448455245554d000000000000000000000000000000000000000000000000815250905090565b5f610ba5610b9e611168565b8484611332565b6001905092915050565b60115481565b60065f9054906101000a900460ff1681565b610bcf611168565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c5b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c52906126ec565b60405180910390fd5b60148054906101000a900460ff1615610ca9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ca09061293b565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610d453060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166008600a610d319190612866565b6305f5e100610d4091906128b0565b61116f565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610daf573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610dd3919061296d565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e59573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e7d919061296d565b6040518363ffffffff1660e01b8152600401610e9a929190612998565b6020604051808303815f875af1158015610eb6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610eda919061296d565b60145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610f613061082e565b5f80610f6b610b10565b426040518863ffffffff1660e01b8152600401610f8d96959493929190612a01565b60606040518083038185885af1158015610fa9573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610fce9190612a74565b50505060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040161106e929190612ac4565b6020604051808303815f875af115801561108a573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110ae9190612aff565b506001601460166101000a81548160ff02191690831515021790555060016014806101000a81548160ff021916908315150217905550565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036111dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111d490612b9a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361124b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124290612c28565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516113259190612574565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036113a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161139790612cb6565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361140e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140590612d44565b60405180910390fd5b5f8111611450576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144790612dd2565b60405180910390fd5b5f7358df81babdf15276e761808e872a3838cbecbcf973ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036114d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ca90612e3a565b60405180910390fd5b7358df81babdf15276e761808e872a3838cbecbcf973ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611555576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154c90612e3a565b60405180910390fd5b61155d610b10565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156115cb575061159b610b10565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611b5f5760065f9054906101000a900460ff16156117565760135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561168e575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611755574360055f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410611712576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170990612ec8565b60405180910390fd5b4360055f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156117ff575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611852575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561192b57600f5482111561189c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161189390612f30565b60405180910390fd5b601054826118a98561082e565b6118b39190612f4e565b11156118f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118eb90612fcb565b60405180910390fd5b600d54600e5410156119135761190983612161565b15611912575f80fd5b5b600e5f81548092919061192590612fe9565b91905055505b6119676064611959600b54600e54116119465760075461194a565b6009545b8561217290919063ffffffff16565b6121e990919063ffffffff16565b905060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156119f157503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611a7a57600f54821115611a3b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a3290612f30565b60405180910390fd5b611a776064611a69600c54600e5411611a5657600854611a5a565b600a545b8561217290919063ffffffff16565b6121e990919063ffffffff16565b90505b5f611a843061082e565b9050601460159054906101000a900460ff16158015611aef575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611b075750601460169054906101000a900460ff165b8015611b14575060115481115b8015611b235750600d54600e54115b15611b5d57611b45611b4084611b3b84601254612232565b612232565b611e71565b5f4790505f811115611b5b57611b5a476120f8565b5b505b505b5f811115611c5e57611bb78160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461224a90919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611c559190612574565b60405180910390a35b611cae8260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546122a790919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611d51611d0582846122a790919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461224a90919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611df484866122a790919063ffffffff16565b604051611e019190612574565b60405180910390a350505050565b5f838311158290611e56576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e4d91906124ac565b60405180910390fd5b505f8385611e649190613030565b9050809150509392505050565b6001601460156101000a81548160ff0219169083151502179055505f8103156120db5760148054906101000a900460ff16156120db575f600267ffffffffffffffff811115611ec357611ec2613063565b5b604051908082528060200260200182016040528015611ef15781602001602082028036833780820191505090505b50905030815f81518110611f0857611f07613090565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611fac573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611fd0919061296d565b81600181518110611fe457611fe3613090565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061204a3060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461116f565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016120ac959493929190613174565b5f604051808303815f87803b1580156120c3575f80fd5b505af11580156120d5573d5f803e3d5ffd5b50505050505b5f601460156101000a81548160ff02191690831515021790555050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f1935050505015801561215d573d5f803e3d5ffd5b5050565b5f80823b90505f8111915050919050565b5f808303612182575f90506121e3565b5f828461218f91906128b0565b905082848261219e91906131f9565b146121de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121d590613299565b60405180910390fd5b809150505b92915050565b5f61222a83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506122f0565b905092915050565b5f8183116122405782612242565b815b905092915050565b5f8082846122589190612f4e565b90508381101561229d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161229490613301565b60405180910390fd5b8091505092915050565b5f6122e883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611e0f565b905092915050565b5f8083118290612336576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161232d91906124ac565b60405180910390fd5b505f838561234491906131f9565b9050809150509392505050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61237e82612355565b9050919050565b61238e81612374565b8114612398575f80fd5b50565b5f813590506123a981612385565b92915050565b5f8115159050919050565b6123c3816123af565b81146123cd575f80fd5b50565b5f813590506123de816123ba565b92915050565b5f80604083850312156123fa576123f9612351565b5b5f6124078582860161239b565b9250506020612418858286016123d0565b9150509250929050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561245957808201518184015260208101905061243e565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61247e82612422565b612488818561242c565b935061249881856020860161243c565b6124a181612464565b840191505092915050565b5f6020820190508181035f8301526124c48184612474565b905092915050565b5f819050919050565b6124de816124cc565b81146124e8575f80fd5b50565b5f813590506124f9816124d5565b92915050565b5f806040838503121561251557612514612351565b5b5f6125228582860161239b565b9250506020612533858286016124eb565b9150509250929050565b612546816123af565b82525050565b5f60208201905061255f5f83018461253d565b92915050565b61256e816124cc565b82525050565b5f6020820190506125875f830184612565565b92915050565b5f805f606084860312156125a4576125a3612351565b5b5f6125b18682870161239b565b93505060206125c28682870161239b565b92505060406125d3868287016124eb565b9150509250925092565b5f60ff82169050919050565b6125f2816125dd565b82525050565b5f60208201905061260b5f8301846125e9565b92915050565b5f6020828403121561262657612625612351565b5b5f6126338482850161239b565b91505092915050565b61264581612374565b82525050565b5f60208201905061265e5f83018461263c565b92915050565b5f806040838503121561267a57612679612351565b5b5f6126878582860161239b565b92505060206126988582860161239b565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6126d660208361242c565b91506126e1826126a2565b602082019050919050565b5f6020820190508181035f830152612703816126ca565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111561278c578086048111156127685761276761270a565b5b60018516156127775780820291505b808102905061278585612737565b945061274c565b94509492505050565b5f826127a4576001905061285f565b816127b1575f905061285f565b81600181146127c757600281146127d157612800565b600191505061285f565b60ff8411156127e3576127e261270a565b5b8360020a9150848211156127fa576127f961270a565b5b5061285f565b5060208310610133831016604e8410600b84101617156128355782820a9050838111156128305761282f61270a565b5b61285f565b6128428484846001612743565b925090508184048111156128595761285861270a565b5b81810290505b9392505050565b5f612870826124cc565b915061287b836125dd565b92506128a87fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612795565b905092915050565b5f6128ba826124cc565b91506128c5836124cc565b92508282026128d3816124cc565b915082820484148315176128ea576128e961270a565b5b5092915050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f61292560178361242c565b9150612930826128f1565b602082019050919050565b5f6020820190508181035f83015261295281612919565b9050919050565b5f8151905061296781612385565b92915050565b5f6020828403121561298257612981612351565b5b5f61298f84828501612959565b91505092915050565b5f6040820190506129ab5f83018561263c565b6129b8602083018461263c565b9392505050565b5f819050919050565b5f819050919050565b5f6129eb6129e66129e1846129bf565b6129c8565b6124cc565b9050919050565b6129fb816129d1565b82525050565b5f60c082019050612a145f83018961263c565b612a216020830188612565565b612a2e60408301876129f2565b612a3b60608301866129f2565b612a48608083018561263c565b612a5560a0830184612565565b979650505050505050565b5f81519050612a6e816124d5565b92915050565b5f805f60608486031215612a8b57612a8a612351565b5b5f612a9886828701612a60565b9350506020612aa986828701612a60565b9250506040612aba86828701612a60565b9150509250925092565b5f604082019050612ad75f83018561263c565b612ae46020830184612565565b9392505050565b5f81519050612af9816123ba565b92915050565b5f60208284031215612b1457612b13612351565b5b5f612b2184828501612aeb565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612b8460248361242c565b9150612b8f82612b2a565b604082019050919050565b5f6020820190508181035f830152612bb181612b78565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612c1260228361242c565b9150612c1d82612bb8565b604082019050919050565b5f6020820190508181035f830152612c3f81612c06565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612ca060258361242c565b9150612cab82612c46565b604082019050919050565b5f6020820190508181035f830152612ccd81612c94565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612d2e60238361242c565b9150612d3982612cd4565b604082019050919050565b5f6020820190508181035f830152612d5b81612d22565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612dbc60298361242c565b9150612dc782612d62565b604082019050919050565b5f6020820190508181035f830152612de981612db0565b9050919050565b7f536f7272792c20796f752064756e6e6f206461207761652c20627275646461005f82015250565b5f612e24601f8361242c565b9150612e2f82612df0565b602082019050919050565b5f6020820190508181035f830152612e5181612e18565b9050919050565b7f4f6e6c79206f6e65207472616e736665722070657220626c6f636b20616c6c6f5f8201527f7765642e00000000000000000000000000000000000000000000000000000000602082015250565b5f612eb260248361242c565b9150612ebd82612e58565b604082019050919050565b5f6020820190508181035f830152612edf81612ea6565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f612f1a60198361242c565b9150612f2582612ee6565b602082019050919050565b5f6020820190508181035f830152612f4781612f0e565b9050919050565b5f612f58826124cc565b9150612f63836124cc565b9250828201905080821115612f7b57612f7a61270a565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f612fb5601a8361242c565b9150612fc082612f81565b602082019050919050565b5f6020820190508181035f830152612fe281612fa9565b9050919050565b5f612ff3826124cc565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036130255761302461270a565b5b600182019050919050565b5f61303a826124cc565b9150613045836124cc565b925082820390508181111561305d5761305c61270a565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6130ef81612374565b82525050565b5f61310083836130e6565b60208301905092915050565b5f602082019050919050565b5f613122826130bd565b61312c81856130c7565b9350613137836130d7565b805f5b8381101561316757815161314e88826130f5565b97506131598361310c565b92505060018101905061313a565b5085935050505092915050565b5f60a0820190506131875f830188612565565b61319460208301876129f2565b81810360408301526131a68186613118565b90506131b5606083018561263c565b6131c26080830184612565565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613203826124cc565b915061320e836124cc565b92508261321e5761321d6131cc565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f61328360218361242c565b915061328e82613229565b604082019050919050565b5f6020820190508181035f8301526132b081613277565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f6132eb601b8361242c565b91506132f6826132b7565b602082019050919050565b5f6020820190508181035f830152613318816132df565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220eee92836223fc1e967c7113ff5cac873a72cc4930f91b22289e3487bf8bc198b64736f6c63430008140033

Deployed Bytecode

0x608060405260043610610138575f3560e01c8063751039fc116100aa57806395d89b411161006e57806395d89b41146103ed578063a9059cbb14610417578063bf474bed14610453578063c876d0b91461047d578063c9567bf9146104a7578063dd62ed3e146104bd5761013f565b8063751039fc1461032f5780637d1db4a5146103455780638da5cb5b1461036f5780638f9a55c0146103995780638fb07638146103c35761013f565b806323b872dd116100fc57806323b872dd14610225578063313ce567146102615780633bbac5791461028b57806351bc3c85146102c757806370a08231146102dd578063715018a6146103195761013f565b806303c0f5d41461014357806306fdde031461016b578063095ea7b3146101955780630faee56f146101d157806318160ddd146101fb5761013f565b3661013f57005b5f80fd5b34801561014e575f80fd5b50610169600480360381019061016491906123e4565b6104f9565b005b348015610176575f80fd5b5061017f6105e5565b60405161018c91906124ac565b60405180910390f35b3480156101a0575f80fd5b506101bb60048036038101906101b691906124ff565b610622565b6040516101c8919061254c565b60405180910390f35b3480156101dc575f80fd5b506101e561063f565b6040516101f29190612574565b60405180910390f35b348015610206575f80fd5b5061020f610645565b60405161021c9190612574565b60405180910390f35b348015610230575f80fd5b5061024b6004803603810190610246919061258d565b610668565b604051610258919061254c565b60405180910390f35b34801561026c575f80fd5b5061027561073c565b60405161028291906125f8565b60405180910390f35b348015610296575f80fd5b506102b160048036038101906102ac9190612611565b610744565b6040516102be919061254c565b60405180910390f35b3480156102d2575f80fd5b506102db610796565b005b3480156102e8575f80fd5b5061030360048036038101906102fe9190612611565b61082e565b6040516103109190612574565b60405180910390f35b348015610324575f80fd5b5061032d610874565b005b34801561033a575f80fd5b506103436109c2565b005b348015610350575f80fd5b50610359610b0a565b6040516103669190612574565b60405180910390f35b34801561037a575f80fd5b50610383610b10565b604051610390919061264b565b60405180910390f35b3480156103a4575f80fd5b506103ad610b37565b6040516103ba9190612574565b60405180910390f35b3480156103ce575f80fd5b506103d7610b3d565b6040516103e4919061264b565b60405180910390f35b3480156103f8575f80fd5b50610401610b55565b60405161040e91906124ac565b60405180910390f35b348015610422575f80fd5b5061043d600480360381019061043891906124ff565b610b92565b60405161044a919061254c565b60405180910390f35b34801561045e575f80fd5b50610467610baf565b6040516104749190612574565b60405180910390f35b348015610488575f80fd5b50610491610bb5565b60405161049e919061254c565b60405180910390f35b3480156104b2575f80fd5b506104bb610bc7565b005b3480156104c8575f80fd5b506104e360048036038101906104de9190612664565b6110e6565b6040516104f09190612574565b60405180910390f35b610501611168565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461058d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610584906126ec565b60405180910390fd5b8060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b60606040518060400160405280601d81526020017f4861727279506f747465724f62616d614b6e75636b6c65733130496e75000000815250905090565b5f61063561062e611168565b848461116f565b6001905092915050565b60125481565b5f6008600a6106549190612866565b6305f5e10061066391906128b0565b905090565b5f610674848484611332565b61073184610680611168565b61072c856040518060600160405280602881526020016133206028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6106e3611168565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611e0f9092919063ffffffff16565b61116f565b600190509392505050565b5f6008905090565b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166107d7611168565b73ffffffffffffffffffffffffffffffffffffffff16146107f6575f80fd5b5f6108003061082e565b90505f8111156108145761081381611e71565b5b5f4790505f81111561082a57610829816120f8565b5b5050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b61087c611168565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610908576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108ff906126ec565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6109ca611168565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a56576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a4d906126ec565b60405180910390fd5b6008600a610a649190612866565b6305f5e100610a7391906128b0565b600f819055506008600a610a879190612866565b6305f5e100610a9691906128b0565b6010819055505f60065f6101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6008600a610ae49190612866565b6305f5e100610af391906128b0565b604051610b009190612574565b60405180910390a1565b600f5481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60105481565b7358df81babdf15276e761808e872a3838cbecbcf981565b60606040518060400160405280600881526020017f455448455245554d000000000000000000000000000000000000000000000000815250905090565b5f610ba5610b9e611168565b8484611332565b6001905092915050565b60115481565b60065f9054906101000a900460ff1681565b610bcf611168565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c5b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c52906126ec565b60405180910390fd5b60148054906101000a900460ff1615610ca9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ca09061293b565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610d453060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166008600a610d319190612866565b6305f5e100610d4091906128b0565b61116f565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610daf573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610dd3919061296d565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e59573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e7d919061296d565b6040518363ffffffff1660e01b8152600401610e9a929190612998565b6020604051808303815f875af1158015610eb6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610eda919061296d565b60145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610f613061082e565b5f80610f6b610b10565b426040518863ffffffff1660e01b8152600401610f8d96959493929190612a01565b60606040518083038185885af1158015610fa9573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610fce9190612a74565b50505060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040161106e929190612ac4565b6020604051808303815f875af115801561108a573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110ae9190612aff565b506001601460166101000a81548160ff02191690831515021790555060016014806101000a81548160ff021916908315150217905550565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036111dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111d490612b9a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361124b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124290612c28565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516113259190612574565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036113a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161139790612cb6565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361140e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140590612d44565b60405180910390fd5b5f8111611450576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144790612dd2565b60405180910390fd5b5f7358df81babdf15276e761808e872a3838cbecbcf973ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036114d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ca90612e3a565b60405180910390fd5b7358df81babdf15276e761808e872a3838cbecbcf973ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611555576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154c90612e3a565b60405180910390fd5b61155d610b10565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156115cb575061159b610b10565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611b5f5760065f9054906101000a900460ff16156117565760135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561168e575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611755574360055f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410611712576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170990612ec8565b60405180910390fd5b4360055f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156117ff575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611852575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561192b57600f5482111561189c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161189390612f30565b60405180910390fd5b601054826118a98561082e565b6118b39190612f4e565b11156118f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118eb90612fcb565b60405180910390fd5b600d54600e5410156119135761190983612161565b15611912575f80fd5b5b600e5f81548092919061192590612fe9565b91905055505b6119676064611959600b54600e54116119465760075461194a565b6009545b8561217290919063ffffffff16565b6121e990919063ffffffff16565b905060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156119f157503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611a7a57600f54821115611a3b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a3290612f30565b60405180910390fd5b611a776064611a69600c54600e5411611a5657600854611a5a565b600a545b8561217290919063ffffffff16565b6121e990919063ffffffff16565b90505b5f611a843061082e565b9050601460159054906101000a900460ff16158015611aef575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611b075750601460169054906101000a900460ff165b8015611b14575060115481115b8015611b235750600d54600e54115b15611b5d57611b45611b4084611b3b84601254612232565b612232565b611e71565b5f4790505f811115611b5b57611b5a476120f8565b5b505b505b5f811115611c5e57611bb78160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461224a90919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611c559190612574565b60405180910390a35b611cae8260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546122a790919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611d51611d0582846122a790919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461224a90919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611df484866122a790919063ffffffff16565b604051611e019190612574565b60405180910390a350505050565b5f838311158290611e56576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e4d91906124ac565b60405180910390fd5b505f8385611e649190613030565b9050809150509392505050565b6001601460156101000a81548160ff0219169083151502179055505f8103156120db5760148054906101000a900460ff16156120db575f600267ffffffffffffffff811115611ec357611ec2613063565b5b604051908082528060200260200182016040528015611ef15781602001602082028036833780820191505090505b50905030815f81518110611f0857611f07613090565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611fac573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611fd0919061296d565b81600181518110611fe457611fe3613090565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061204a3060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461116f565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016120ac959493929190613174565b5f604051808303815f87803b1580156120c3575f80fd5b505af11580156120d5573d5f803e3d5ffd5b50505050505b5f601460156101000a81548160ff02191690831515021790555050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f1935050505015801561215d573d5f803e3d5ffd5b5050565b5f80823b90505f8111915050919050565b5f808303612182575f90506121e3565b5f828461218f91906128b0565b905082848261219e91906131f9565b146121de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121d590613299565b60405180910390fd5b809150505b92915050565b5f61222a83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506122f0565b905092915050565b5f8183116122405782612242565b815b905092915050565b5f8082846122589190612f4e565b90508381101561229d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161229490613301565b60405180910390fd5b8091505092915050565b5f6122e883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611e0f565b905092915050565b5f8083118290612336576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161232d91906124ac565b60405180910390fd5b505f838561234491906131f9565b9050809150509392505050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61237e82612355565b9050919050565b61238e81612374565b8114612398575f80fd5b50565b5f813590506123a981612385565b92915050565b5f8115159050919050565b6123c3816123af565b81146123cd575f80fd5b50565b5f813590506123de816123ba565b92915050565b5f80604083850312156123fa576123f9612351565b5b5f6124078582860161239b565b9250506020612418858286016123d0565b9150509250929050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561245957808201518184015260208101905061243e565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61247e82612422565b612488818561242c565b935061249881856020860161243c565b6124a181612464565b840191505092915050565b5f6020820190508181035f8301526124c48184612474565b905092915050565b5f819050919050565b6124de816124cc565b81146124e8575f80fd5b50565b5f813590506124f9816124d5565b92915050565b5f806040838503121561251557612514612351565b5b5f6125228582860161239b565b9250506020612533858286016124eb565b9150509250929050565b612546816123af565b82525050565b5f60208201905061255f5f83018461253d565b92915050565b61256e816124cc565b82525050565b5f6020820190506125875f830184612565565b92915050565b5f805f606084860312156125a4576125a3612351565b5b5f6125b18682870161239b565b93505060206125c28682870161239b565b92505060406125d3868287016124eb565b9150509250925092565b5f60ff82169050919050565b6125f2816125dd565b82525050565b5f60208201905061260b5f8301846125e9565b92915050565b5f6020828403121561262657612625612351565b5b5f6126338482850161239b565b91505092915050565b61264581612374565b82525050565b5f60208201905061265e5f83018461263c565b92915050565b5f806040838503121561267a57612679612351565b5b5f6126878582860161239b565b92505060206126988582860161239b565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6126d660208361242c565b91506126e1826126a2565b602082019050919050565b5f6020820190508181035f830152612703816126ca565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111561278c578086048111156127685761276761270a565b5b60018516156127775780820291505b808102905061278585612737565b945061274c565b94509492505050565b5f826127a4576001905061285f565b816127b1575f905061285f565b81600181146127c757600281146127d157612800565b600191505061285f565b60ff8411156127e3576127e261270a565b5b8360020a9150848211156127fa576127f961270a565b5b5061285f565b5060208310610133831016604e8410600b84101617156128355782820a9050838111156128305761282f61270a565b5b61285f565b6128428484846001612743565b925090508184048111156128595761285861270a565b5b81810290505b9392505050565b5f612870826124cc565b915061287b836125dd565b92506128a87fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612795565b905092915050565b5f6128ba826124cc565b91506128c5836124cc565b92508282026128d3816124cc565b915082820484148315176128ea576128e961270a565b5b5092915050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f61292560178361242c565b9150612930826128f1565b602082019050919050565b5f6020820190508181035f83015261295281612919565b9050919050565b5f8151905061296781612385565b92915050565b5f6020828403121561298257612981612351565b5b5f61298f84828501612959565b91505092915050565b5f6040820190506129ab5f83018561263c565b6129b8602083018461263c565b9392505050565b5f819050919050565b5f819050919050565b5f6129eb6129e66129e1846129bf565b6129c8565b6124cc565b9050919050565b6129fb816129d1565b82525050565b5f60c082019050612a145f83018961263c565b612a216020830188612565565b612a2e60408301876129f2565b612a3b60608301866129f2565b612a48608083018561263c565b612a5560a0830184612565565b979650505050505050565b5f81519050612a6e816124d5565b92915050565b5f805f60608486031215612a8b57612a8a612351565b5b5f612a9886828701612a60565b9350506020612aa986828701612a60565b9250506040612aba86828701612a60565b9150509250925092565b5f604082019050612ad75f83018561263c565b612ae46020830184612565565b9392505050565b5f81519050612af9816123ba565b92915050565b5f60208284031215612b1457612b13612351565b5b5f612b2184828501612aeb565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612b8460248361242c565b9150612b8f82612b2a565b604082019050919050565b5f6020820190508181035f830152612bb181612b78565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612c1260228361242c565b9150612c1d82612bb8565b604082019050919050565b5f6020820190508181035f830152612c3f81612c06565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612ca060258361242c565b9150612cab82612c46565b604082019050919050565b5f6020820190508181035f830152612ccd81612c94565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612d2e60238361242c565b9150612d3982612cd4565b604082019050919050565b5f6020820190508181035f830152612d5b81612d22565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612dbc60298361242c565b9150612dc782612d62565b604082019050919050565b5f6020820190508181035f830152612de981612db0565b9050919050565b7f536f7272792c20796f752064756e6e6f206461207761652c20627275646461005f82015250565b5f612e24601f8361242c565b9150612e2f82612df0565b602082019050919050565b5f6020820190508181035f830152612e5181612e18565b9050919050565b7f4f6e6c79206f6e65207472616e736665722070657220626c6f636b20616c6c6f5f8201527f7765642e00000000000000000000000000000000000000000000000000000000602082015250565b5f612eb260248361242c565b9150612ebd82612e58565b604082019050919050565b5f6020820190508181035f830152612edf81612ea6565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f612f1a60198361242c565b9150612f2582612ee6565b602082019050919050565b5f6020820190508181035f830152612f4781612f0e565b9050919050565b5f612f58826124cc565b9150612f63836124cc565b9250828201905080821115612f7b57612f7a61270a565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f612fb5601a8361242c565b9150612fc082612f81565b602082019050919050565b5f6020820190508181035f830152612fe281612fa9565b9050919050565b5f612ff3826124cc565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036130255761302461270a565b5b600182019050919050565b5f61303a826124cc565b9150613045836124cc565b925082820390508181111561305d5761305c61270a565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6130ef81612374565b82525050565b5f61310083836130e6565b60208301905092915050565b5f602082019050919050565b5f613122826130bd565b61312c81856130c7565b9350613137836130d7565b805f5b8381101561316757815161314e88826130f5565b97506131598361310c565b92505060018101905061313a565b5085935050505092915050565b5f60a0820190506131875f830188612565565b61319460208301876129f2565b81810360408301526131a68186613118565b90506131b5606083018561263c565b6131c26080830184612565565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613203826124cc565b915061320e836124cc565b92508261321e5761321d6131cc565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f61328360218361242c565b915061328e82613229565b604082019050919050565b5f6020820190508181035f8301526132b081613277565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f6132eb601b8361242c565b91506132f6826132b7565b602082019050919050565b5f6020820190508181035f830152613318816132df565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220eee92836223fc1e967c7113ff5cac873a72cc4930f91b22289e3487bf8bc198b64736f6c63430008140033

Deployed Bytecode Sourcemap

5413:8800:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12619:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7449:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8282:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6630:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7726:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8451:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7635:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12832;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13842:348;;;;;;;;;;;;;:::i;:::-;;7829:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4494:148;;;;;;;;;;;;;:::i;:::-;;12411:196;;;;;;;;;;;;;:::i;:::-;;6442:57;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4280:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6506:55;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6776:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7540;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7956:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6568:55;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5803:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12923:671;;;;;;;;;;;;;:::i;:::-;;8131:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12619:105;4417:12;:10;:12::i;:::-;4407:22;;:6;;;;;;;;;;:22;;;4399:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12711:5:::1;12695:4;:13;12700:7;12695:13;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;12619:105:::0;;:::o;7449:83::-;7486:13;7519:5;;;;;;;;;;;;;;;;;7512:12;;7449:83;:::o;8282:161::-;8357:4;8374:39;8383:12;:10;:12::i;:::-;8397:7;8406:6;8374:8;:39::i;:::-;8431:4;8424:11;;8282:161;;;;:::o;6630:52::-;;;;:::o;7726:95::-;7779:7;6246:1;6301:2;:13;;;;:::i;:::-;6289:9;:25;;;;:::i;:::-;7799:14;;7726:95;:::o;8451:313::-;8549:4;8566:36;8576:6;8584:9;8595:6;8566:9;:36::i;:::-;8613:121;8622:6;8630:12;:10;:12::i;:::-;8644:89;8682:6;8644:89;;;;;;;;;;;;;;;;;:11;:19;8656:6;8644:19;;;;;;;;;;;;;;;:33;8664:12;:10;:12::i;:::-;8644:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;8613:8;:121::i;:::-;8752:4;8745:11;;8451:313;;;;;:::o;7635:83::-;7676:5;6246:1;7694:16;;7635:83;:::o;12832:::-;12879:4;12900;:7;12905:1;12900:7;;;;;;;;;;;;;;;;;;;;;;;;;12893:14;;12832:83;;;:::o;13842:348::-;13906:10;;;;;;;;;;;13892:24;;:12;:10;:12::i;:::-;:24;;;13884:33;;;;;;13928:20;13949:24;13967:4;13949:9;:24::i;:::-;13928:45;;14000:1;13987:12;:14;13984:73;;;14015:30;14032:12;14015:16;:30::i;:::-;13984:73;14067:18;14086:21;14067:40;;14132:1;14121:10;:12;14118:65;;;14147:24;14160:10;14147:12;:24::i;:::-;14118:65;13873:317;;13842:348::o;7829:119::-;7895:7;7922:9;:18;7932:7;7922:18;;;;;;;;;;;;;;;;7915:25;;7829:119;;;:::o;4494:148::-;4417:12;:10;:12::i;:::-;4407:22;;:6;;;;;;;;;;:22;;;4399:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4601:1:::1;4564:40;;4585:6;::::0;::::1;;;;;;;;4564:40;;;;;;;;;;;;4632:1;4615:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;4494:148::o:0;12411:196::-;4417:12;:10;:12::i;:::-;4407:22;;:6;;;;;;;;;;:22;;;4399:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6246:1:::1;6301:2;:13;;;;:::i;:::-;6289:9;:25;;;;:::i;:::-;12464:12;:22;;;;6246:1;6301:2;:13;;;;:::i;:::-;6289:9;:25;;;;:::i;:::-;12497:14;:22;;;;12551:5;12530:20;;:26;;;;;;;;;;;;;;;;;;12572:27;6246:1;6301:2;:13;;;;:::i;:::-;6289:9;:25;;;;:::i;:::-;12572:27;;;;;;:::i;:::-;;;;;;;;12411:196::o:0;6442:57::-;;;;:::o;4280:79::-;4318:7;4345:6;;;;;;;;;;;4338:13;;4280:79;:::o;6506:55::-;;;;:::o;6776:87::-;6821:42;6776:87;:::o;7540:::-;7579:13;7612:7;;;;;;;;;;;;;;;;;7605:14;;7540:87;:::o;7956:167::-;8034:4;8051:42;8061:12;:10;:12::i;:::-;8075:9;8086:6;8051:9;:42::i;:::-;8111:4;8104:11;;7956:167;;;;:::o;6568:55::-;;;;:::o;5803:40::-;;;;;;;;;;;;;:::o;12923:671::-;4417:12;:10;:12::i;:::-;4407:22;;:6;;;;;;;;;;:22;;;4399:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12987:11:::1;::::0;::::1;;;;;;;;12986:12;12978:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;13073:42;13036:15;;:80;;;;;;;;;;;;;;;;;;13127:58;13144:4;13159:15;;;;;;;;;;;6246:1;6301:2;:13;;;;:::i;:::-;6289:9;:25;;;;:::i;:::-;13127:8;:58::i;:::-;13230:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13212:55;;;13276:4;13283:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13212:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13196:13;;:110;;;;;;;;;;;;;;;;;;13317:15;;;;;;;;;;;:31;;;13356:21;13387:4;13393:24;13411:4;13393:9;:24::i;:::-;13418:1;13420::::0;13422:7:::1;:5;:7::i;:::-;13430:15;13317:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;13464:13;;;;;;;;;;;13457:29;;;13495:15;;;;;;;;;;;13513:14;13457:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13553:4;13539:11;;:18;;;;;;;;;;;;;;;;;;13582:4;13568:11;::::0;:18:::1;;;;;;;;;;;;;;;;;;12923:671::o:0;8131:143::-;8212:7;8239:11;:18;8251:5;8239:18;;;;;;;;;;;;;;;:27;8258:7;8239:27;;;;;;;;;;;;;;;;8232:34;;8131:143;;;;:::o;2035:98::-;2088:7;2115:10;2108:17;;2035:98;:::o;8772:335::-;8882:1;8865:19;;:5;:19;;;8857:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8963:1;8944:21;;:7;:21;;;8936:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9045:6;9015:11;:18;9027:5;9015:18;;;;;;;;;;;;;;;:27;9034:7;9015:27;;;;;;;;;;;;;;;:36;;;;9083:7;9067:32;;9076:5;9067:32;;;9092:6;9067:32;;;;;;:::i;:::-;;;;;;;;8772:335;;;:::o;9115:2617::-;9219:1;9203:18;;:4;:18;;;9195:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9296:1;9282:16;;:2;:16;;;9274:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9366:1;9357:6;:10;9349:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9424:17;6821:42;9462:35;;:4;:35;;;9454:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;6821:42;9552:33;;:2;:33;;;9544:77;;;;;;;;;;;;:::i;:::-;;;;;;;;;9645:7;:5;:7::i;:::-;9637:15;;:4;:15;;;;:32;;;;;9662:7;:5;:7::i;:::-;9656:13;;:2;:13;;;;9637:32;9633:1743;;;9700:20;;;;;;;;;;;9696:346;;;9759:15;;;;;;;;;;;9745:30;;:2;:30;;;;:62;;;;;9793:13;;;;;;;;;;;9779:28;;:2;:28;;;;9745:62;9741:286;;;9880:12;9838:28;:39;9867:9;9838:39;;;;;;;;;;;;;;;;:54;9830:102;;;;;;;;;;;;:::i;:::-;;;;;;;;;9995:12;9953:28;:39;9982:9;9953:39;;;;;;;;;;;;;;;:54;;;;9741:286;9696:346;10070:13;;;;;;;;;;;10062:21;;:4;:21;;;:55;;;;;10101:15;;;;;;;;;;;10087:30;;:2;:30;;;;10062:55;:83;;;;;10123:18;:22;10142:2;10123:22;;;;;;;;;;;;;;;;;;;;;;;;;10121:24;10062:83;10058:428;;;10185:12;;10175:6;:22;;10167:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;10280:14;;10270:6;10254:13;10264:2;10254:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;10246:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;10357:18;;10347:9;;:28;10344:97;;;10406:14;10417:2;10406:10;:14::i;:::-;10405:15;10397:24;;;;;;10344:97;10459:9;;:11;;;;;;;;;:::i;:::-;;;;;;10058:428;10516:76;10588:3;10516:67;10538:15;;10528:9;;:25;10527:55;;10568:14;;10527:55;;;10555:12;;10527:55;10516:6;:10;;:67;;;;:::i;:::-;:71;;:76;;;;:::i;:::-;10504:88;;10616:13;;;;;;;;;;;10610:19;;:2;:19;;;:43;;;;;10648:4;10633:20;;:4;:20;;;;10610:43;10607:253;;;10692:12;;10682:6;:22;;10674:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;10765:79;10840:3;10765:70;10787:16;;10777:9;;:26;10776:58;;10819:15;;10776:58;;;10805:13;;10776:58;10765:6;:10;;:70;;;;:::i;:::-;:74;;:79;;;;:::i;:::-;10753:91;;10607:253;10876:28;10907:24;10925:4;10907:9;:24::i;:::-;10876:55;;10951:6;;;;;;;;;;;10950:7;:30;;;;;10967:13;;;;;;;;;;;10961:19;;:2;:19;;;10950:30;:45;;;;;10984:11;;;;;;;;;;;10950:45;:87;;;;;11020:17;;10999:20;:38;10950:87;:119;;;;;11051:18;;11041:9;;:28;10950:119;10946:419;;;11090:67;11107:49;11111:6;11118:37;11122:20;11143:11;;11118:3;:37::i;:::-;11107:3;:49::i;:::-;11090:16;:67::i;:::-;11176:26;11205:21;11176:50;;11269:1;11248:18;:22;11245:105;;;11295:35;11308:21;11295:12;:35::i;:::-;11245:105;11071:294;10946:419;9671:1705;9633:1743;11401:1;11391:9;:11;11388:161;;;11441:39;11470:9;11441;:24;11459:4;11441:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;11416:9;:24;11434:4;11416:24;;;;;;;;;;;;;;;:64;;;;11521:4;11498:39;;11507:4;11498:39;;;11527:9;11498:39;;;;;;:::i;:::-;;;;;;;;11388:161;11575:27;11595:6;11575:9;:15;11585:4;11575:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;11559:9;:15;11569:4;11559:15;;;;;;;;;;;;;;;:43;;;;11627:40;11645:21;11656:9;11645:6;:10;;:21;;;;:::i;:::-;11627:9;:13;11637:2;11627:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;11613:9;:13;11623:2;11613:13;;;;;;;;;;;;;;;:54;;;;11698:2;11683:41;;11692:4;11683:41;;;11702:21;11713:9;11702:6;:10;;:21;;;;:::i;:::-;11683:41;;;;;;:::i;:::-;;;;;;;;9184:2548;9115:2617;;;:::o;3172:190::-;3258:7;3291:1;3286;:6;;3294:12;3278:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3318:9;3334:1;3330;:5;;;;:::i;:::-;3318:17;;3353:1;3346:8;;;3172:190;;;;;:::o;11848:555::-;7067:4;7058:6;;:13;;;;;;;;;;;;;;;;;;11942:1:::1;11929:11;:14:::0;11926:27;11945:7:::1;11926:27;11967:11;::::0;::::1;;;;;;;;11963:25:::0;11980:7:::1;11963:25;11998:21;12036:1;12022:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11998:40;;12067:4;12049;12054:1;12049:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;12093:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12083:4;12088:1;12083:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;12126:62;12143:4;12158:15;;;;;;;;;;;12176:11;12126:8;:62::i;:::-;12199:15;;;;;;;;;;;:66;;;12280:11;12306:1;12322:4;12349;12369:15;12199:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;11915:488;7082:1;7103:5:::0;7094:6;;:14;;;;;;;;;;;;;;;;;;11848:555;:::o;12732:92::-;12789:10;;;;;;;;;;;:19;;:27;12809:6;12789:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12732:92;:::o;13639:195::-;13698:4;13715:12;13782:7;13770:20;13762:28;;13825:1;13818:4;:8;13811:15;;;13639:195;;;:::o;3370:246::-;3428:7;3457:1;3452;:6;3448:47;;3482:1;3475:8;;;;3448:47;3505:9;3521:1;3517;:5;;;;:::i;:::-;3505:17;;3550:1;3545;3541;:5;;;;:::i;:::-;:10;3533:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;3607:1;3600:8;;;3370:246;;;;;:::o;3624:132::-;3682:7;3709:39;3713:1;3716;3709:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;3702:46;;3624:132;;;;:::o;11742:98::-;11799:7;11826:1;11824;:3;11823:9;;11831:1;11823:9;;;11829:1;11823:9;11816:16;;11742:98;;;;:::o;2841:179::-;2899:7;2919:9;2935:1;2931;:5;;;;:::i;:::-;2919:17;;2960:1;2955;:6;;2947:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;3011:1;3004:8;;;2841:179;;;;:::o;3028:136::-;3086:7;3113:43;3117:1;3120;3113:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;3106:50;;3028:136;;;;:::o;3764:189::-;3850:7;3882:1;3878;:5;3885:12;3870:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3909:9;3925:1;3921;:5;;;;:::i;:::-;3909:17;;3944:1;3937:8;;;3764:189;;;;;:::o;88:117:1:-;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:139::-;742:5;780:6;767:20;758:29;;796:33;823:5;796:33;:::i;:::-;696:139;;;;:::o;841:90::-;875:7;918:5;911:13;904:21;893:32;;841:90;;;:::o;937:116::-;1007:21;1022:5;1007:21;:::i;:::-;1000:5;997:32;987:60;;1043:1;1040;1033:12;987:60;937:116;:::o;1059:133::-;1102:5;1140:6;1127:20;1118:29;;1156:30;1180:5;1156:30;:::i;:::-;1059:133;;;;:::o;1198:468::-;1263:6;1271;1320:2;1308:9;1299:7;1295:23;1291:32;1288:119;;;1326:79;;:::i;:::-;1288:119;1446:1;1471:53;1516:7;1507:6;1496:9;1492:22;1471:53;:::i;:::-;1461:63;;1417:117;1573:2;1599:50;1641:7;1632:6;1621:9;1617:22;1599:50;:::i;:::-;1589:60;;1544:115;1198:468;;;;;:::o;1672:99::-;1724:6;1758:5;1752:12;1742:22;;1672:99;;;:::o;1777:169::-;1861:11;1895:6;1890:3;1883:19;1935:4;1930:3;1926:14;1911:29;;1777:169;;;;:::o;1952:246::-;2033:1;2043:113;2057:6;2054:1;2051:13;2043:113;;;2142:1;2137:3;2133:11;2127:18;2123:1;2118:3;2114:11;2107:39;2079:2;2076:1;2072:10;2067:15;;2043:113;;;2190:1;2181:6;2176:3;2172:16;2165:27;2014:184;1952:246;;;:::o;2204:102::-;2245:6;2296:2;2292:7;2287:2;2280:5;2276:14;2272:28;2262:38;;2204:102;;;:::o;2312:377::-;2400:3;2428:39;2461:5;2428:39;:::i;:::-;2483:71;2547:6;2542:3;2483:71;:::i;:::-;2476:78;;2563:65;2621:6;2616:3;2609:4;2602:5;2598:16;2563:65;:::i;:::-;2653:29;2675:6;2653:29;:::i;:::-;2648:3;2644:39;2637:46;;2404:285;2312:377;;;;:::o;2695:313::-;2808:4;2846:2;2835:9;2831:18;2823:26;;2895:9;2889:4;2885:20;2881:1;2870:9;2866:17;2859:47;2923:78;2996:4;2987:6;2923:78;:::i;:::-;2915:86;;2695:313;;;;:::o;3014:77::-;3051:7;3080:5;3069:16;;3014:77;;;:::o;3097:122::-;3170:24;3188:5;3170:24;:::i;:::-;3163:5;3160:35;3150:63;;3209:1;3206;3199:12;3150:63;3097:122;:::o;3225:139::-;3271:5;3309:6;3296:20;3287:29;;3325:33;3352:5;3325:33;:::i;:::-;3225:139;;;;:::o;3370:474::-;3438:6;3446;3495:2;3483:9;3474:7;3470:23;3466:32;3463:119;;;3501:79;;:::i;:::-;3463:119;3621:1;3646:53;3691:7;3682:6;3671:9;3667:22;3646:53;:::i;:::-;3636:63;;3592:117;3748:2;3774:53;3819:7;3810:6;3799:9;3795:22;3774:53;:::i;:::-;3764:63;;3719:118;3370:474;;;;;:::o;3850:109::-;3931:21;3946:5;3931:21;:::i;:::-;3926:3;3919:34;3850:109;;:::o;3965:210::-;4052:4;4090:2;4079:9;4075:18;4067:26;;4103:65;4165:1;4154:9;4150:17;4141:6;4103:65;:::i;:::-;3965:210;;;;:::o;4181:118::-;4268:24;4286:5;4268:24;:::i;:::-;4263:3;4256:37;4181:118;;:::o;4305:222::-;4398:4;4436:2;4425:9;4421:18;4413:26;;4449:71;4517:1;4506:9;4502:17;4493:6;4449:71;:::i;:::-;4305:222;;;;:::o;4533:619::-;4610:6;4618;4626;4675:2;4663:9;4654:7;4650:23;4646:32;4643:119;;;4681:79;;:::i;:::-;4643:119;4801:1;4826:53;4871:7;4862:6;4851:9;4847:22;4826:53;:::i;:::-;4816:63;;4772:117;4928:2;4954:53;4999:7;4990:6;4979:9;4975:22;4954:53;:::i;:::-;4944:63;;4899:118;5056:2;5082:53;5127:7;5118:6;5107:9;5103:22;5082:53;:::i;:::-;5072:63;;5027:118;4533:619;;;;;:::o;5158:86::-;5193:7;5233:4;5226:5;5222:16;5211:27;;5158:86;;;:::o;5250:112::-;5333:22;5349:5;5333:22;:::i;:::-;5328:3;5321:35;5250:112;;:::o;5368:214::-;5457:4;5495:2;5484:9;5480:18;5472:26;;5508:67;5572:1;5561:9;5557:17;5548:6;5508:67;:::i;:::-;5368:214;;;;:::o;5588:329::-;5647:6;5696:2;5684:9;5675:7;5671:23;5667:32;5664:119;;;5702:79;;:::i;:::-;5664:119;5822:1;5847:53;5892:7;5883:6;5872:9;5868:22;5847:53;:::i;:::-;5837:63;;5793:117;5588:329;;;;:::o;5923:118::-;6010:24;6028:5;6010:24;:::i;:::-;6005:3;5998:37;5923:118;;:::o;6047:222::-;6140:4;6178:2;6167:9;6163:18;6155:26;;6191:71;6259:1;6248:9;6244:17;6235:6;6191:71;:::i;:::-;6047:222;;;;:::o;6275:474::-;6343:6;6351;6400:2;6388:9;6379:7;6375:23;6371:32;6368:119;;;6406:79;;:::i;:::-;6368:119;6526:1;6551:53;6596:7;6587:6;6576:9;6572:22;6551:53;:::i;:::-;6541:63;;6497:117;6653:2;6679:53;6724:7;6715:6;6704:9;6700:22;6679:53;:::i;:::-;6669:63;;6624:118;6275:474;;;;;:::o;6755:182::-;6895:34;6891:1;6883:6;6879:14;6872:58;6755:182;:::o;6943:366::-;7085:3;7106:67;7170:2;7165:3;7106:67;:::i;:::-;7099:74;;7182:93;7271:3;7182:93;:::i;:::-;7300:2;7295:3;7291:12;7284:19;;6943:366;;;:::o;7315:419::-;7481:4;7519:2;7508:9;7504:18;7496:26;;7568:9;7562:4;7558:20;7554:1;7543:9;7539:17;7532:47;7596:131;7722:4;7596:131;:::i;:::-;7588:139;;7315:419;;;:::o;7740:180::-;7788:77;7785:1;7778:88;7885:4;7882:1;7875:15;7909:4;7906:1;7899:15;7926:102;7968:8;8015:5;8012:1;8008:13;7987:34;;7926:102;;;:::o;8034:848::-;8095:5;8102:4;8126:6;8117:15;;8150:5;8141:14;;8164:712;8185:1;8175:8;8172:15;8164:712;;;8280:4;8275:3;8271:14;8265:4;8262:24;8259:50;;;8289:18;;:::i;:::-;8259:50;8339:1;8329:8;8325:16;8322:451;;;8754:4;8747:5;8743:16;8734:25;;8322:451;8804:4;8798;8794:15;8786:23;;8834:32;8857:8;8834:32;:::i;:::-;8822:44;;8164:712;;;8034:848;;;;;;;:::o;8888:1073::-;8942:5;9133:8;9123:40;;9154:1;9145:10;;9156:5;;9123:40;9182:4;9172:36;;9199:1;9190:10;;9201:5;;9172:36;9268:4;9316:1;9311:27;;;;9352:1;9347:191;;;;9261:277;;9311:27;9329:1;9320:10;;9331:5;;;9347:191;9392:3;9382:8;9379:17;9376:43;;;9399:18;;:::i;:::-;9376:43;9448:8;9445:1;9441:16;9432:25;;9483:3;9476:5;9473:14;9470:40;;;9490:18;;:::i;:::-;9470:40;9523:5;;;9261:277;;9647:2;9637:8;9634:16;9628:3;9622:4;9619:13;9615:36;9597:2;9587:8;9584:16;9579:2;9573:4;9570:12;9566:35;9550:111;9547:246;;;9703:8;9697:4;9693:19;9684:28;;9738:3;9731:5;9728:14;9725:40;;;9745:18;;:::i;:::-;9725:40;9778:5;;9547:246;9818:42;9856:3;9846:8;9840:4;9837:1;9818:42;:::i;:::-;9803:57;;;;9892:4;9887:3;9883:14;9876:5;9873:25;9870:51;;;9901:18;;:::i;:::-;9870:51;9950:4;9943:5;9939:16;9930:25;;8888:1073;;;;;;:::o;9967:281::-;10025:5;10049:23;10067:4;10049:23;:::i;:::-;10041:31;;10093:25;10109:8;10093:25;:::i;:::-;10081:37;;10137:104;10174:66;10164:8;10158:4;10137:104;:::i;:::-;10128:113;;9967:281;;;;:::o;10254:410::-;10294:7;10317:20;10335:1;10317:20;:::i;:::-;10312:25;;10351:20;10369:1;10351:20;:::i;:::-;10346:25;;10406:1;10403;10399:9;10428:30;10446:11;10428:30;:::i;:::-;10417:41;;10607:1;10598:7;10594:15;10591:1;10588:22;10568:1;10561:9;10541:83;10518:139;;10637:18;;:::i;:::-;10518:139;10302:362;10254:410;;;;:::o;10670:173::-;10810:25;10806:1;10798:6;10794:14;10787:49;10670:173;:::o;10849:366::-;10991:3;11012:67;11076:2;11071:3;11012:67;:::i;:::-;11005:74;;11088:93;11177:3;11088:93;:::i;:::-;11206:2;11201:3;11197:12;11190:19;;10849:366;;;:::o;11221:419::-;11387:4;11425:2;11414:9;11410:18;11402:26;;11474:9;11468:4;11464:20;11460:1;11449:9;11445:17;11438:47;11502:131;11628:4;11502:131;:::i;:::-;11494:139;;11221:419;;;:::o;11646:143::-;11703:5;11734:6;11728:13;11719:22;;11750:33;11777:5;11750:33;:::i;:::-;11646:143;;;;:::o;11795:351::-;11865:6;11914:2;11902:9;11893:7;11889:23;11885:32;11882:119;;;11920:79;;:::i;:::-;11882:119;12040:1;12065:64;12121:7;12112:6;12101:9;12097:22;12065:64;:::i;:::-;12055:74;;12011:128;11795:351;;;;:::o;12152:332::-;12273:4;12311:2;12300:9;12296:18;12288:26;;12324:71;12392:1;12381:9;12377:17;12368:6;12324:71;:::i;:::-;12405:72;12473:2;12462:9;12458:18;12449:6;12405:72;:::i;:::-;12152:332;;;;;:::o;12490:85::-;12535:7;12564:5;12553:16;;12490:85;;;:::o;12581:60::-;12609:3;12630:5;12623:12;;12581:60;;;:::o;12647:158::-;12705:9;12738:61;12756:42;12765:32;12791:5;12765:32;:::i;:::-;12756:42;:::i;:::-;12738:61;:::i;:::-;12725:74;;12647:158;;;:::o;12811:147::-;12906:45;12945:5;12906:45;:::i;:::-;12901:3;12894:58;12811:147;;:::o;12964:807::-;13213:4;13251:3;13240:9;13236:19;13228:27;;13265:71;13333:1;13322:9;13318:17;13309:6;13265:71;:::i;:::-;13346:72;13414:2;13403:9;13399:18;13390:6;13346:72;:::i;:::-;13428:80;13504:2;13493:9;13489:18;13480:6;13428:80;:::i;:::-;13518;13594:2;13583:9;13579:18;13570:6;13518:80;:::i;:::-;13608:73;13676:3;13665:9;13661:19;13652:6;13608:73;:::i;:::-;13691;13759:3;13748:9;13744:19;13735:6;13691:73;:::i;:::-;12964:807;;;;;;;;;:::o;13777:143::-;13834:5;13865:6;13859:13;13850:22;;13881:33;13908:5;13881:33;:::i;:::-;13777:143;;;;:::o;13926:663::-;14014:6;14022;14030;14079:2;14067:9;14058:7;14054:23;14050:32;14047:119;;;14085:79;;:::i;:::-;14047:119;14205:1;14230:64;14286:7;14277:6;14266:9;14262:22;14230:64;:::i;:::-;14220:74;;14176:128;14343:2;14369:64;14425:7;14416:6;14405:9;14401:22;14369:64;:::i;:::-;14359:74;;14314:129;14482:2;14508:64;14564:7;14555:6;14544:9;14540:22;14508:64;:::i;:::-;14498:74;;14453:129;13926:663;;;;;:::o;14595:332::-;14716:4;14754:2;14743:9;14739:18;14731:26;;14767:71;14835:1;14824:9;14820:17;14811:6;14767:71;:::i;:::-;14848:72;14916:2;14905:9;14901:18;14892:6;14848:72;:::i;:::-;14595:332;;;;;:::o;14933:137::-;14987:5;15018:6;15012:13;15003:22;;15034:30;15058:5;15034:30;:::i;:::-;14933:137;;;;:::o;15076:345::-;15143:6;15192:2;15180:9;15171:7;15167:23;15163:32;15160:119;;;15198:79;;:::i;:::-;15160:119;15318:1;15343:61;15396:7;15387:6;15376:9;15372:22;15343:61;:::i;:::-;15333:71;;15289:125;15076:345;;;;:::o;15427:223::-;15567:34;15563:1;15555:6;15551:14;15544:58;15636:6;15631:2;15623:6;15619:15;15612:31;15427:223;:::o;15656:366::-;15798:3;15819:67;15883:2;15878:3;15819:67;:::i;:::-;15812:74;;15895:93;15984:3;15895:93;:::i;:::-;16013:2;16008:3;16004:12;15997:19;;15656:366;;;:::o;16028:419::-;16194:4;16232:2;16221:9;16217:18;16209:26;;16281:9;16275:4;16271:20;16267:1;16256:9;16252:17;16245:47;16309:131;16435:4;16309:131;:::i;:::-;16301:139;;16028:419;;;:::o;16453:221::-;16593:34;16589:1;16581:6;16577:14;16570:58;16662:4;16657:2;16649:6;16645:15;16638:29;16453:221;:::o;16680:366::-;16822:3;16843:67;16907:2;16902:3;16843:67;:::i;:::-;16836:74;;16919:93;17008:3;16919:93;:::i;:::-;17037:2;17032:3;17028:12;17021:19;;16680:366;;;:::o;17052:419::-;17218:4;17256:2;17245:9;17241:18;17233:26;;17305:9;17299:4;17295:20;17291:1;17280:9;17276:17;17269:47;17333:131;17459:4;17333:131;:::i;:::-;17325:139;;17052:419;;;:::o;17477:224::-;17617:34;17613:1;17605:6;17601:14;17594:58;17686:7;17681:2;17673:6;17669:15;17662:32;17477:224;:::o;17707:366::-;17849:3;17870:67;17934:2;17929:3;17870:67;:::i;:::-;17863:74;;17946:93;18035:3;17946:93;:::i;:::-;18064:2;18059:3;18055:12;18048:19;;17707:366;;;:::o;18079:419::-;18245:4;18283:2;18272:9;18268:18;18260:26;;18332:9;18326:4;18322:20;18318:1;18307:9;18303:17;18296:47;18360:131;18486:4;18360:131;:::i;:::-;18352:139;;18079:419;;;:::o;18504:222::-;18644:34;18640:1;18632:6;18628:14;18621:58;18713:5;18708:2;18700:6;18696:15;18689:30;18504:222;:::o;18732:366::-;18874:3;18895:67;18959:2;18954:3;18895:67;:::i;:::-;18888:74;;18971:93;19060:3;18971:93;:::i;:::-;19089:2;19084:3;19080:12;19073:19;;18732:366;;;:::o;19104:419::-;19270:4;19308:2;19297:9;19293:18;19285:26;;19357:9;19351:4;19347:20;19343:1;19332:9;19328:17;19321:47;19385:131;19511:4;19385:131;:::i;:::-;19377:139;;19104:419;;;:::o;19529:228::-;19669:34;19665:1;19657:6;19653:14;19646:58;19738:11;19733:2;19725:6;19721:15;19714:36;19529:228;:::o;19763:366::-;19905:3;19926:67;19990:2;19985:3;19926:67;:::i;:::-;19919:74;;20002:93;20091:3;20002:93;:::i;:::-;20120:2;20115:3;20111:12;20104:19;;19763:366;;;:::o;20135:419::-;20301:4;20339:2;20328:9;20324:18;20316:26;;20388:9;20382:4;20378:20;20374:1;20363:9;20359:17;20352:47;20416:131;20542:4;20416:131;:::i;:::-;20408:139;;20135:419;;;:::o;20560:181::-;20700:33;20696:1;20688:6;20684:14;20677:57;20560:181;:::o;20747:366::-;20889:3;20910:67;20974:2;20969:3;20910:67;:::i;:::-;20903:74;;20986:93;21075:3;20986:93;:::i;:::-;21104:2;21099:3;21095:12;21088:19;;20747:366;;;:::o;21119:419::-;21285:4;21323:2;21312:9;21308:18;21300:26;;21372:9;21366:4;21362:20;21358:1;21347:9;21343:17;21336:47;21400:131;21526:4;21400:131;:::i;:::-;21392:139;;21119:419;;;:::o;21544:223::-;21684:34;21680:1;21672:6;21668:14;21661:58;21753:6;21748:2;21740:6;21736:15;21729:31;21544:223;:::o;21773:366::-;21915:3;21936:67;22000:2;21995:3;21936:67;:::i;:::-;21929:74;;22012:93;22101:3;22012:93;:::i;:::-;22130:2;22125:3;22121:12;22114:19;;21773:366;;;:::o;22145:419::-;22311:4;22349:2;22338:9;22334:18;22326:26;;22398:9;22392:4;22388:20;22384:1;22373:9;22369:17;22362:47;22426:131;22552:4;22426:131;:::i;:::-;22418:139;;22145:419;;;:::o;22570:175::-;22710:27;22706:1;22698:6;22694:14;22687:51;22570:175;:::o;22751:366::-;22893:3;22914:67;22978:2;22973:3;22914:67;:::i;:::-;22907:74;;22990:93;23079:3;22990:93;:::i;:::-;23108:2;23103:3;23099:12;23092:19;;22751:366;;;:::o;23123:419::-;23289:4;23327:2;23316:9;23312:18;23304:26;;23376:9;23370:4;23366:20;23362:1;23351:9;23347:17;23340:47;23404:131;23530:4;23404:131;:::i;:::-;23396:139;;23123:419;;;:::o;23548:191::-;23588:3;23607:20;23625:1;23607:20;:::i;:::-;23602:25;;23641:20;23659:1;23641:20;:::i;:::-;23636:25;;23684:1;23681;23677:9;23670:16;;23705:3;23702:1;23699:10;23696:36;;;23712:18;;:::i;:::-;23696:36;23548:191;;;;:::o;23745:176::-;23885:28;23881:1;23873:6;23869:14;23862:52;23745:176;:::o;23927:366::-;24069:3;24090:67;24154:2;24149:3;24090:67;:::i;:::-;24083:74;;24166:93;24255:3;24166:93;:::i;:::-;24284:2;24279:3;24275:12;24268:19;;23927:366;;;:::o;24299:419::-;24465:4;24503:2;24492:9;24488:18;24480:26;;24552:9;24546:4;24542:20;24538:1;24527:9;24523:17;24516:47;24580:131;24706:4;24580:131;:::i;:::-;24572:139;;24299:419;;;:::o;24724:233::-;24763:3;24786:24;24804:5;24786:24;:::i;:::-;24777:33;;24832:66;24825:5;24822:77;24819:103;;24902:18;;:::i;:::-;24819:103;24949:1;24942:5;24938:13;24931:20;;24724:233;;;:::o;24963:194::-;25003:4;25023:20;25041:1;25023:20;:::i;:::-;25018:25;;25057:20;25075:1;25057:20;:::i;:::-;25052:25;;25101:1;25098;25094:9;25086:17;;25125:1;25119:4;25116:11;25113:37;;;25130:18;;:::i;:::-;25113:37;24963:194;;;;:::o;25163:180::-;25211:77;25208:1;25201:88;25308:4;25305:1;25298:15;25332:4;25329:1;25322:15;25349:180;25397:77;25394:1;25387:88;25494:4;25491:1;25484:15;25518:4;25515:1;25508:15;25535:114;25602:6;25636:5;25630:12;25620:22;;25535:114;;;:::o;25655:184::-;25754:11;25788:6;25783:3;25776:19;25828:4;25823:3;25819:14;25804:29;;25655:184;;;;:::o;25845:132::-;25912:4;25935:3;25927:11;;25965:4;25960:3;25956:14;25948:22;;25845:132;;;:::o;25983:108::-;26060:24;26078:5;26060:24;:::i;:::-;26055:3;26048:37;25983:108;;:::o;26097:179::-;26166:10;26187:46;26229:3;26221:6;26187:46;:::i;:::-;26265:4;26260:3;26256:14;26242:28;;26097:179;;;;:::o;26282:113::-;26352:4;26384;26379:3;26375:14;26367:22;;26282:113;;;:::o;26431:732::-;26550:3;26579:54;26627:5;26579:54;:::i;:::-;26649:86;26728:6;26723:3;26649:86;:::i;:::-;26642:93;;26759:56;26809:5;26759:56;:::i;:::-;26838:7;26869:1;26854:284;26879:6;26876:1;26873:13;26854:284;;;26955:6;26949:13;26982:63;27041:3;27026:13;26982:63;:::i;:::-;26975:70;;27068:60;27121:6;27068:60;:::i;:::-;27058:70;;26914:224;26901:1;26898;26894:9;26889:14;;26854:284;;;26858:14;27154:3;27147:10;;26555:608;;;26431:732;;;;:::o;27169:831::-;27432:4;27470:3;27459:9;27455:19;27447:27;;27484:71;27552:1;27541:9;27537:17;27528:6;27484:71;:::i;:::-;27565:80;27641:2;27630:9;27626:18;27617:6;27565:80;:::i;:::-;27692:9;27686:4;27682:20;27677:2;27666:9;27662:18;27655:48;27720:108;27823:4;27814:6;27720:108;:::i;:::-;27712:116;;27838:72;27906:2;27895:9;27891:18;27882:6;27838:72;:::i;:::-;27920:73;27988:3;27977:9;27973:19;27964:6;27920:73;:::i;:::-;27169:831;;;;;;;;:::o;28006:180::-;28054:77;28051:1;28044:88;28151:4;28148:1;28141:15;28175:4;28172:1;28165:15;28192:185;28232:1;28249:20;28267:1;28249:20;:::i;:::-;28244:25;;28283:20;28301:1;28283:20;:::i;:::-;28278:25;;28322:1;28312:35;;28327:18;;:::i;:::-;28312:35;28369:1;28366;28362:9;28357:14;;28192:185;;;;:::o;28383:220::-;28523:34;28519:1;28511:6;28507:14;28500:58;28592:3;28587:2;28579:6;28575:15;28568:28;28383:220;:::o;28609:366::-;28751:3;28772:67;28836:2;28831:3;28772:67;:::i;:::-;28765:74;;28848:93;28937:3;28848:93;:::i;:::-;28966:2;28961:3;28957:12;28950:19;;28609:366;;;:::o;28981:419::-;29147:4;29185:2;29174:9;29170:18;29162:26;;29234:9;29228:4;29224:20;29220:1;29209:9;29205:17;29198:47;29262:131;29388:4;29262:131;:::i;:::-;29254:139;;28981:419;;;:::o;29406:177::-;29546:29;29542:1;29534:6;29530:14;29523:53;29406:177;:::o;29589:366::-;29731:3;29752:67;29816:2;29811:3;29752:67;:::i;:::-;29745:74;;29828:93;29917:3;29828:93;:::i;:::-;29946:2;29941:3;29937:12;29930:19;;29589:366;;;:::o;29961:419::-;30127:4;30165:2;30154:9;30150:18;30142:26;;30214:9;30208:4;30204:20;30200:1;30189:9;30185:17;30178:47;30242:131;30368:4;30242:131;:::i;:::-;30234:139;;29961:419;;;:::o

Swarm Source

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