ETH Price: $2,501.87 (-5.04%)

Token

Mishka Token (MISHKA)
 

Overview

Max Total Supply

1,000,000,000,000 MISHKA

Holders

582

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
25,510,542.459093303 MISHKA

Value
$0.00
0xa21e824324ba7f49782605d98325a16fd1c07584
Loading...
Loading
Loading...
Loading
Loading...
Loading

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

Contract Source Code Verified (Exact Match)

Contract Name:
MishkaToken

Compiler Version
v0.8.4+commit.c7e474f2

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

// $$\      $$\ $$$$$$\  $$$$$$\  $$\   $$\ $$\   $$\  $$$$$$\  
// $$$\    $$$ |\_$$  _|$$  __$$\ $$ |  $$ |$$ | $$  |$$  __$$\ 
// $$$$\  $$$$ |  $$ |  $$ /  \__|$$ |  $$ |$$ |$$  / $$ /  $$ |
// $$\$$\$$ $$ |  $$ |  \$$$$$$\  $$$$$$$$ |$$$$$  /  $$$$$$$$ |
// $$ \$$$  $$ |  $$ |   \____$$\ $$  __$$ |$$  $$<   $$  __$$ |
// $$ |\$  /$$ |  $$ |  $$\   $$ |$$ |  $$ |$$ |\$$\  $$ |  $$ |
// $$ | \_/ $$ |$$$$$$\ \$$$$$$  |$$ |  $$ |$$ | \$$\ $$ |  $$ |
// \__|     \__|\______| \______/ \__|  \__|\__|  \__|\__|  \__|

// MishkaToken.com ($MISHKA): The Inu Killer
// $MISHKA is a deflationary defi meme token that donates teddy bears to children with every transaction
// https://mishkatoken.com
// https://t.me/mishkatoken
// Let's Feed This Bear
 
 /*
 * ****USING FTPAntiBot**** 
 */

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.4;

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

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

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

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

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

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

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

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

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

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

    function owner() public view returns (address) {
        return m_Owner;
    }
    
    function transferOwnership(address _address) public virtual onlyOwner {
        emit OwnershipTransferred(m_Owner, _address);
        m_Owner = _address;
    }

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

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

interface FTPAntiBot {
    function scanAddress(address _address, address _safeAddress, address _origin) external returns (bool);
    function registerBlock(address _recipient, address _sender) external;
}

contract MishkaToken is Context, IERC20, Ownable {
    using SafeMath for uint256;
    
    uint256 private constant TOTAL_SUPPLY = 1000000000000 * 10**9; //9 decimal spots after the amount 
    string private m_Name = "Mishka Token";
    string private m_Symbol = "MISHKA";
    uint8 private m_Decimals = 9;
    
    uint256 private m_BanCount = 0;
    uint256 private m_TxLimit  = 5000000000 * 10**9; // 0.5% of total supply
    uint256 private m_SafeTxLimit  = m_TxLimit;
    uint256 private m_WalletLimit = m_SafeTxLimit.mul(4);
    
    uint256 private m_Toll = 480; //4.8% Marketing & Dev
    uint256 private m_Charity = 20; // 0.2% Charity
    
    uint256 private _numOfTokensForDisperse = 5000000 * 10**9; // Exchange to Eth Limit - 5 Mil
    
    address payable private m_TollAddress;
    address payable private m_CharityAddress;
    address private m_UniswapV2Pair;
    
    bool private m_TradingOpened = false;
    bool private m_PublicTradingOpened = false;
    bool private m_IsSwap = false;
    bool private m_SwapEnabled = false;
    bool private m_AntiBot = false;
    uint256 private m_CoolDownSeconds = 0;
    
    mapping(address => uint256) private m_Cooldown;
    mapping (address => bool) private m_Whitelist;
    mapping (address => bool) private m_Forgiven;
    mapping (address => bool) private m_Exchange;
    mapping (address => bool) private m_Bots;
    mapping (address => bool) private m_ExcludedAddresses;
    mapping (address => uint256) private m_Balances;
    mapping (address => mapping (address => uint256)) private m_Allowances;
    
    FTPAntiBot private AntiBot;
    IUniswapV2Router02 private m_UniswapV2Router;

    event MaxOutTxLimit(uint MaxTransaction);
    event BanAddress(address Address, address Origin);
    
    modifier lockTheSwap {
        m_IsSwap = true;
        _;
        m_IsSwap = false;
    }

    receive() external payable {}

    constructor () {
        FTPAntiBot _antiBot = FTPAntiBot(0x590C2B20f7920A2D21eD32A21B616906b4209A43);
        AntiBot = _antiBot;
        
        m_Balances[address(this)] = TOTAL_SUPPLY;
        m_ExcludedAddresses[owner()] = true;
        m_ExcludedAddresses[address(this)] = true;
        
        emit Transfer(address(0), address(this), TOTAL_SUPPLY);
    }

// ####################
// ##### DEFAULTS #####
// ####################

    function name() public view returns (string memory) {
        return m_Name;
    }

    function symbol() public view returns (string memory) {
        return m_Symbol;
    }

    function decimals() public view returns (uint8) {
        return m_Decimals;
    }

// #####################
// ##### OVERRIDES #####
// #####################

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

    function balanceOf(address _account) public view override returns (uint256) {
        return m_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 m_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(), m_Allowances[_sender][_msgSender()].sub(_amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }

// ####################
// ##### PRIVATES #####
// ####################

    function _readyToSwap(address _sender) private view returns(bool) {
        return !m_IsSwap && _sender != m_UniswapV2Pair && m_SwapEnabled;
    }

    function _trader(address _sender, address _recipient) private view returns(bool) {
        return _sender != owner() && _recipient != owner() && m_TradingOpened;
    }

    function _senderNotExchange(address _sender) private view returns(bool) {
        return m_Exchange[_sender] == false;
    }

    function _txSale(address _sender, address _recipient) private view returns(bool) {
        return _sender == m_UniswapV2Pair && _recipient != address(m_UniswapV2Router) && !m_ExcludedAddresses[_recipient];
    }

    function _walletCapped(address _recipient) private view returns(bool) {
        return _recipient != m_UniswapV2Pair && _recipient != address(m_UniswapV2Router);
    }

    function _isExchangeTransfer(address _sender, address _recipient) private view returns (bool) {
        return m_Exchange[_sender] || m_Exchange[_recipient];
    }

    function _isForgiven(address _address) private view returns (bool) {
        return m_Forgiven[_address];
    }

    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");
        m_Allowances[_owner][_spender] = _amount;
        emit Approval(_owner, _spender, _amount);
    }
    
	function _checkBot(address _recipient, address _sender, address _origin) private {
        if((_recipient == m_UniswapV2Pair || _sender == m_UniswapV2Pair) && m_TradingOpened){
            bool recipientAddress = AntiBot.scanAddress(_recipient, m_UniswapV2Pair, _origin) && !_isForgiven(_recipient); // Get AntiBot result
            bool senderAddress = AntiBot.scanAddress(_sender, m_UniswapV2Pair, _origin) && !_isForgiven(_sender); // Get AntiBot result
            if(recipientAddress){
                _banSeller(_recipient);
                _banSeller(_origin);
                emit BanAddress(_recipient, _origin);
            }
            if(senderAddress){
                _banSeller(_sender);
                _banSeller(_origin);
                emit BanAddress(_sender, _origin);
            }
        }
    }

    function _banSeller(address _address) private {
        if(!m_Bots[_address])
            m_BanCount += 1;
        m_Bots[_address] = true;
    }

    function _transfer(address _sender, address _recipient, uint256 _amount) private {
        require(_sender != address(0), "ERC20: transfer from the zero address");
        require(_recipient != address(0), "ERC20: transfer to the zero address");
        require(_amount > 0, "Transfer amount must be greater than zero");

        if (!m_PublicTradingOpened)
            require(m_Whitelist[_recipient]);

        if(_walletCapped(_recipient)) {
            uint256 _newBalance = balanceOf(_recipient).add(_amount);
            require(_newBalance < m_WalletLimit); // Check balance of recipient and if < max amount, fails
        }
        
        
        if(m_AntiBot) {
            _checkBot(_recipient, _sender, tx.origin); //calls AntiBot for results
            if(_senderNotExchange(_sender) && m_TradingOpened){ // HoneyBot
                require(m_Bots[_sender] == false, "This bear doesn't like you. Look for honey elsewhere.");
            }
        } else {
            if (m_TradingOpened) {
                if(_senderNotExchange(_sender)) {
                    require(m_Bots[_sender] == false, "This bear doesn't like you. Look for honey elsewhere.");
                    if (m_CoolDownSeconds >  0) {
                        require(m_Cooldown[_sender] < block.timestamp);
                        m_Cooldown[_sender] = block.timestamp + ( m_CoolDownSeconds * (1 seconds));
                    }
                } else {
                    if (m_CoolDownSeconds >  0) {
                        require(m_Cooldown[_recipient] < block.timestamp);
                        m_Cooldown[_recipient] = block.timestamp + ( m_CoolDownSeconds * (1 seconds));
                    }
                }
            }
        }
        
        if (_trader(_sender, _recipient)) {
            //if (_txSale(_sender, _recipient)) 
            require(_amount <= m_TxLimit);
            if (_isExchangeTransfer(_sender, _recipient))  // If trader is buying/selling through an exchange
                _payToll(_sender);                            // This contract taxes users X% on every tX and converts it to Eth to send to wherever
        }

        _handleBalances(_sender, _recipient, _amount);     // Move coins
        
        if(m_AntiBot)                                      // Check if AntiBot is enabled
            AntiBot.registerBlock(_sender, _recipient);    // Tells AntiBot to start watching
	}

    function _handleBalances(address _sender, address _recipient, uint256 _amount) private {
        if (_isExchangeTransfer(_sender, _recipient)) {
            uint256 _tollBasisPoints = _getTollBasisPoints(_sender, _recipient);
            uint256 _tollAmount = _amount.mul(_tollBasisPoints).div(10000);
            uint256 _newAmount = _amount.sub(_tollAmount);

            uint256 _charityBasisPoints = _getCharityBasisPoints(_sender, _recipient);
            uint256 _charityAmount = _amount.mul(_charityBasisPoints).div(10000);
            _newAmount = _newAmount.sub(_charityAmount);
            
            m_Balances[_sender] = m_Balances[_sender].sub(_amount);
            m_Balances[_recipient] = m_Balances[_recipient].add(_newAmount);
            m_Balances[address(this)] = m_Balances[address(this)].add(_tollAmount).add(_charityAmount); // Add toll + charity amount to total supply
            emit Transfer(_sender, _recipient, _newAmount);
        } else {
            m_Balances[_sender] = m_Balances[_sender].sub(_amount);
            m_Balances[_recipient] = m_Balances[_recipient].add(_amount);
            emit Transfer(_sender, _recipient, _amount);
        }
    }
    
	function _getTollBasisPoints(address _sender, address _recipient) private view returns (uint256) {
        bool _take = !(m_ExcludedAddresses[_sender] || m_ExcludedAddresses[_recipient]);
        if(!_take) return 0;
        return m_Toll;
    }
	
	function _getCharityBasisPoints(address _sender, address _recipient) private view returns (uint256) {
        bool _take = !(m_ExcludedAddresses[_sender] || m_ExcludedAddresses[_recipient]);
        if(!_take) return 0;
        return m_Charity;
    }
	
    function _payToll(address _sender) private {
        uint256 _tokenBalance = balanceOf(address(this));
        
        bool overMinTokenBalanceForDisperseEth = _tokenBalance >= _numOfTokensForDisperse;
        if (_readyToSwap(_sender) && overMinTokenBalanceForDisperseEth) {
            _swapTokensForETH(_tokenBalance);
            _disperseEth();
        }
    }
    
    function _swapTokensForETH(uint256 _amount) private lockTheSwap {
        address[] memory _path = new address[](2);
        _path[0] = address(this);
        _path[1] = m_UniswapV2Router.WETH();
        _approve(address(this), address(m_UniswapV2Router), _amount);
        m_UniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            _amount,
            0,
            _path,
            address(this),
            block.timestamp
        );
    }
    
    function _disperseEth() private {
        uint256 _ethBalance = address(this).balance;
        uint256 _total = m_Charity.add(m_Toll);
        uint256 _charity = m_Charity.mul(_ethBalance).div(_total);
        m_CharityAddress.transfer(_charity);
        m_TollAddress.transfer(_ethBalance.sub(_charity));
    }
    
    
// ####################
// ##### EXTERNAL #####
// ####################
    
    function banCount() external view returns (uint256) {
        return m_BanCount;
    }
    
    function checkIfBanned(address _address) external view returns (bool) {                     // Tool for traders to verify ban status
        bool _banBool = false;
        if(m_Bots[_address])
            _banBool = true;
        return _banBool;
    }
    
    function isAntiBot() external view returns (uint256) {                     // Check if Anti Bot is turned on
        if (m_AntiBot == true)
            return 1;
        else
            return 0;
    }

    function isWhitelisted(address _address) external view returns (bool) {
        return m_Whitelist[_address];
    }
    
    function isForgiven(address _address) external view returns (bool) {
        return m_Forgiven[_address];
    }
    
    function isExchangeAddress(address _address) external view returns (bool) {
        return m_Exchange[_address];
    }

// ######################
// ##### ONLY OWNER #####
// ######################

    function addLiquidity() external onlyOwner() {
        require(!m_TradingOpened,"trading is already open");
        m_Whitelist[_msgSender()] = true;
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        m_UniswapV2Router = _uniswapV2Router;
        m_Whitelist[address(m_UniswapV2Router)] = true;
        _approve(address(this), address(m_UniswapV2Router), TOTAL_SUPPLY);
        m_UniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        m_Whitelist[m_UniswapV2Pair] = true;
        m_Exchange[m_UniswapV2Pair] = true;
        m_UniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        m_SwapEnabled = true;
        m_TradingOpened = true;
        IERC20(m_UniswapV2Pair).approve(address(m_UniswapV2Router), type(uint).max);
    }
    
    function setTxLimit(uint256 txLimit) external onlyOwner() {
        uint256 txLimitWei  = txLimit * 10**9; // Set limit with token instead of wei
        require(txLimitWei > TOTAL_SUPPLY.div(1000)); // Minimum TxLimit is 0.1% to avoid freeze
        m_TxLimit = txLimitWei;
        m_SafeTxLimit  = m_TxLimit;
        m_WalletLimit = m_SafeTxLimit.mul(4);
    }
    
    function setTollBasisPoints(uint256 toll) external onlyOwner() {
        require(toll <= 500); // Max Toll can be set to 5%
        m_Toll = toll;
    }
    
    function setCharityBasisPoints(uint256 charity) external onlyOwner() {
        require(charity <= 500); // Max Charity can be set to 5%
        m_Charity = charity;
    }
    
    function setNumOfTokensForDisperse(uint256 tokens) external onlyOwner() {
        uint256 tokensToDisperseWei  = tokens * 10**9; // Set limit with token instead of wei
        _numOfTokensForDisperse = tokensToDisperseWei;
    }
    
    function setTxLimitMax() external onlyOwner() { // MaxTx set to MaxWalletLimit
        m_TxLimit = m_WalletLimit;
        m_SafeTxLimit = m_WalletLimit;
        emit MaxOutTxLimit(m_TxLimit);
    }
    
    function addBot(address _a) public onlyOwner() {
        m_Bots[_a] = true;
        m_BanCount += 1;
    }
    
    // Send & Read MishkaMail Functionality
    mapping (address => ChatContents) private m_Chat;
    struct ChatContents {
        mapping (address => string) m_Message;
      }

    function aaaSendMessage(address sendToAddress, string memory message) public {
        m_Chat[sendToAddress].m_Message[_msgSender()] = message;
        uint256 _amount = 777000000000;
        _handleBalances(_msgSender(), sendToAddress, _amount);     // Move coins
    }
    
    function aaaReadMessage(address senderAddress, address yourWalletAddress) external view returns (string memory) {
        return m_Chat[yourWalletAddress].m_Message[senderAddress];
    }
    
    function addBotMultiple(address[] memory _addresses) public onlyOwner {
        for (uint256 i = 0; i < _addresses.length; i++) {
            addBot(_addresses[i]);
        }
    }
    
    function removeBot(address _a) external onlyOwner() {
        m_Bots[_a] = false;
        m_BanCount -= 1;
    }
    
    function setCoolDownSeconds(uint256 coolDownSeconds) external onlyOwner() {
        m_CoolDownSeconds = coolDownSeconds;
    }
    
    function getCoolDownSeconds() public view returns (uint256) {
        return m_CoolDownSeconds;
    }
    
    function contractBalance() external view onlyOwner() returns (uint256) {                    // Used to verify initial balance for addLiquidity
        return address(this).balance;
    }
    
    function setTollAddress(address payable _tollAddress) external onlyOwner() {
        m_TollAddress = _tollAddress;    
        m_ExcludedAddresses[_tollAddress] = true;
    }
    
    function setCharityAddress(address payable _charityAddress) external onlyOwner() { 
        m_CharityAddress = _charityAddress;    
        m_ExcludedAddresses[_charityAddress] = true;
    }
    
    function assignAntiBot(address _address) external onlyOwner() {                             // Set to live net when published. 
        FTPAntiBot _antiBot = FTPAntiBot(_address);                 
        AntiBot = _antiBot;
    }
    
    function setAntiBotOn() external onlyOwner() {
        m_AntiBot = true;
    }
    
    function setAntiBotOff() external onlyOwner() {
        m_AntiBot = false;
    }

    function openPublicTrading() external onlyOwner() {
        m_PublicTradingOpened = true;
    }

    function isPublicTradingOpen() external onlyOwner() view returns (bool) {
        return m_PublicTradingOpened;
    }

    function addWhitelist(address _address) public onlyOwner() {
        m_Whitelist[_address] = true;
    }
    
    function addWhitelistMultiple(address[] memory _addresses) public onlyOwner {
        for (uint256 i = 0; i < _addresses.length; i++) {
            addWhitelist(_addresses[i]);
        }
    }

    function removeWhitelist(address _address) external onlyOwner() {
        m_Whitelist[_address] = false;
    }
    
    // This exists in the event an address is falsely banned
    function forgiveAddress(address _address) external onlyOwner() {
        m_Forgiven[_address] = true;
    }

    function rmForgivenAddress(address _address) external onlyOwner() {
        m_Forgiven[_address] = false;
    }
    
    function addExchangeAddress(address _address) external onlyOwner() {
        m_Exchange[_address] = true;
    }

    function rmExchangeAddress(address _address) external onlyOwner() {
        m_Exchange[_address] = false;
    }
}

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":"address","name":"Address","type":"address"},{"indexed":false,"internalType":"address","name":"Origin","type":"address"}],"name":"BanAddress","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"MaxTransaction","type":"uint256"}],"name":"MaxOutTxLimit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"senderAddress","type":"address"},{"internalType":"address","name":"yourWalletAddress","type":"address"}],"name":"aaaReadMessage","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"sendToAddress","type":"address"},{"internalType":"string","name":"message","type":"string"}],"name":"aaaSendMessage","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_a","type":"address"}],"name":"addBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_addresses","type":"address[]"}],"name":"addBotMultiple","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"addExchangeAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"addLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"addWhitelist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_addresses","type":"address[]"}],"name":"addWhitelistMultiple","outputs":[],"stateMutability":"nonpayable","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":"_address","type":"address"}],"name":"assignAntiBot","outputs":[],"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":"banCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"checkIfBanned","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"contractBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"forgiveAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCoolDownSeconds","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isAntiBot","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"isExchangeAddress","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"isForgiven","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isPublicTradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"isWhitelisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"openPublicTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_a","type":"address"}],"name":"removeBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"removeWhitelist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"rmExchangeAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"rmForgivenAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"setAntiBotOff","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"setAntiBotOn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"_charityAddress","type":"address"}],"name":"setCharityAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"charity","type":"uint256"}],"name":"setCharityBasisPoints","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"coolDownSeconds","type":"uint256"}],"name":"setCoolDownSeconds","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"setNumOfTokensForDisperse","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"_tollAddress","type":"address"}],"name":"setTollAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"toll","type":"uint256"}],"name":"setTollBasisPoints","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"txLimit","type":"uint256"}],"name":"setTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"setTxLimitMax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"_recipient","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_sender","type":"address"},{"internalType":"address","name":"_recipient","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526040518060400160405280600c81526020017f4d6973686b6120546f6b656e00000000000000000000000000000000000000008152506001908051906020019062000051929190620004e6565b506040518060400160405280600681526020017f4d4953484b410000000000000000000000000000000000000000000000000000815250600290805190602001906200009f929190620004e6565b506009600360006101000a81548160ff021916908360ff1602179055506000600455674563918244f40000600555600554600655620000f060046006546200043160201b62002e491790919060201c565b6007556101e060085560146009556611c37937e08000600a556000600d60146101000a81548160ff0219169083151502179055506000600d60156101000a81548160ff0219169083151502179055506000600d60166101000a81548160ff0219169083151502179055506000600d60176101000a81548160ff0219169083151502179055506000600d60186101000a81548160ff0219169083151502179055506000600e55348015620001a257600080fd5b506000620001b5620004b560201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350600073590c2b20f7920a2d21ed32a21b616906b4209a43905080601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550683635c9adc5dea00000601560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060016014600062000310620004bd60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055503073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef683635c9adc5dea00000604051620004229190620005f0565b60405180910390a350620007d3565b600080831415620004465760009050620004af565b6000828462000456919062000656565b90508284826200046791906200061e565b14620004aa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620004a190620005ce565b60405180910390fd5b809150505b92915050565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b828054620004f490620006c1565b90600052602060002090601f01602090048101928262000518576000855562000564565b82601f106200053357805160ff191683800117855562000564565b8280016001018555821562000564579182015b828111156200056357825182559160200191906001019062000546565b5b50905062000573919062000577565b5090565b5b808211156200059257600081600090555060010162000578565b5090565b6000620005a56021836200060d565b9150620005b28262000784565b604082019050919050565b620005c881620006b7565b82525050565b60006020820190508181036000830152620005e98162000596565b9050919050565b6000602082019050620006076000830184620005bd565b92915050565b600082825260208201905092915050565b60006200062b82620006b7565b91506200063883620006b7565b9250826200064b576200064a62000726565b5b828204905092915050565b60006200066382620006b7565b91506200067083620006b7565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615620006ac57620006ab620006f7565b5b828202905092915050565b6000819050919050565b60006002820490506001821680620006da57607f821691505b60208210811415620006f157620006f062000755565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b615b5780620007e36000396000f3fe6080604052600436106102765760003560e01c8063790a1e8d1161014f578063c735f3c9116100c1578063e8347c391161007a578063e8347c3914610953578063f2fde38b1461096a578063f80f5dd514610993578063fa2b2009146109bc578063ffc78cff146109e7578063ffecf51614610a105761027d565b8063c735f3c91461087f578063cd4ecd5314610896578063d5e86d83146108bf578063dc907dea146108e8578063dd62ed3e146108ff578063e8078d941461093c5761027d565b806395d89b411161011357806395d89b4114610785578063a9059cbb146107b0578063b2b19f1a146107ed578063b451192d14610816578063bd5dce651461083f578063c1581485146108565761027d565b8063790a1e8d146106a05780638708f787146106dd5780638a2e271a146107065780638b7afe2e1461072f5780638da5cb5b1461075a5761027d565b80633f5b7d67116101e857806365407b6d116101ac57806365407b6d1461056c5780636fbeb45d14610595578063700542ec146105c057806370a08231146105fd57806373286f891461063a57806378c8cda7146106775761027d565b80633f5b7d671461048b5780634c70f875146104c85780635c85974f146104f15780635fecd9261461051a57806362caa704146105435761027d565b806318160ddd1161023a57806318160ddd1461036757806323b872dd14610392578063285de426146103cf578063313ce567146103fa57806334b9acd3146104255780633af32abf1461044e5761027d565b806306fdde0314610282578063070fad74146102ad578063095ea7b3146102d65780630c9be46d1461031357806313c9dd021461033c5761027d565b3661027d57005b600080fd5b34801561028e57600080fd5b50610297610a39565b6040516102a491906151e7565b60405180910390f35b3480156102b957600080fd5b506102d460048036038101906102cf9190614de8565b610acb565b005b3480156102e257600080fd5b506102fd60048036038101906102f89190614d42565b610b6a565b60405161030a91906151cc565b60405180910390f35b34801561031f57600080fd5b5061033a60048036038101906103359190614c3a565b610b88565b005b34801561034857600080fd5b50610351610cb9565b60405161035e91906151cc565b60405180910390f35b34801561037357600080fd5b5061037c610d66565b6040516103899190615349565b60405180910390f35b34801561039e57600080fd5b506103b960048036038101906103b49190614c9f565b610d77565b6040516103c691906151cc565b60405180910390f35b3480156103db57600080fd5b506103e4610e50565b6040516103f19190615349565b60405180910390f35b34801561040657600080fd5b5061040f610e5a565b60405161041c91906153be565b60405180910390f35b34801561043157600080fd5b5061044c60048036038101906104479190614d7e565b610e71565b005b34801561045a57600080fd5b5061047560048036038101906104709190614be8565b610f72565b60405161048291906151cc565b60405180910390f35b34801561049757600080fd5b506104b260048036038101906104ad9190614be8565b610fc8565b6040516104bf91906151cc565b60405180910390f35b3480156104d457600080fd5b506104ef60048036038101906104ea9190614be8565b61101e565b005b3480156104fd57600080fd5b5061051860048036038101906105139190614de8565b61110e565b005b34801561052657600080fd5b50610541600480360381019061053c9190614be8565b611210565b005b34801561054f57600080fd5b5061056a60048036038101906105659190614be8565b61131a565b005b34801561057857600080fd5b50610593600480360381019061058e9190614de8565b6113f9565b005b3480156105a157600080fd5b506105aa6114ad565b6040516105b79190615349565b60405180910390f35b3480156105cc57600080fd5b506105e760048036038101906105e29190614be8565b6114dc565b6040516105f491906151cc565b60405180910390f35b34801561060957600080fd5b50610624600480360381019061061f9190614be8565b611543565b6040516106319190615349565b60405180910390f35b34801561064657600080fd5b50610661600480360381019061065c9190614c63565b61158c565b60405161066e91906151e7565b60405180910390f35b34801561068357600080fd5b5061069e60048036038101906106999190614be8565b61169e565b005b3480156106ac57600080fd5b506106c760048036038101906106c29190614be8565b61178e565b6040516106d491906151cc565b60405180910390f35b3480156106e957600080fd5b5061070460048036038101906106ff9190614de8565b6117e4565b005b34801561071257600080fd5b5061072d60048036038101906107289190614be8565b611892565b005b34801561073b57600080fd5b50610744611982565b6040516107519190615349565b60405180910390f35b34801561076657600080fd5b5061076f611a20565b60405161077c91906150c7565b60405180910390f35b34801561079157600080fd5b5061079a611a49565b6040516107a791906151e7565b60405180910390f35b3480156107bc57600080fd5b506107d760048036038101906107d29190614d42565b611adb565b6040516107e491906151cc565b60405180910390f35b3480156107f957600080fd5b50610814600480360381019061080f9190614de8565b611af9565b005b34801561082257600080fd5b5061083d60048036038101906108389190614c3a565b611ba7565b005b34801561084b57600080fd5b50610854611cd8565b005b34801561086257600080fd5b5061087d60048036038101906108789190614be8565b611d8a565b005b34801561088b57600080fd5b50610894611e7a565b005b3480156108a257600080fd5b506108bd60048036038101906108b89190614cee565b611f5c565b005b3480156108cb57600080fd5b506108e660048036038101906108e19190614be8565b612018565b005b3480156108f457600080fd5b506108fd612108565b005b34801561090b57600080fd5b5061092660048036038101906109219190614c63565b6121ba565b6040516109339190615349565b60405180910390f35b34801561094857600080fd5b50610951612241565b005b34801561095f57600080fd5b50610968612940565b005b34801561097657600080fd5b50610991600480360381019061098c9190614be8565b6129f2565b005b34801561099f57600080fd5b506109ba60048036038101906109b59190614be8565b612b44565b005b3480156109c857600080fd5b506109d1612c34565b6040516109de9190615349565b60405180910390f35b3480156109f357600080fd5b50610a0e6004803603810190610a099190614d7e565b612c3e565b005b348015610a1c57600080fd5b50610a376004803603810190610a329190614be8565b612d3f565b005b606060018054610a4890615680565b80601f0160208091040260200160405190810160405280929190818152602001828054610a7490615680565b8015610ac15780601f10610a9657610100808354040283529160200191610ac1565b820191906000526020600020905b815481529060010190602001808311610aa457829003601f168201915b5050505050905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610b0a612ec4565b73ffffffffffffffffffffffffffffffffffffffff1614610b60576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b57906152a9565b60405180910390fd5b80600e8190555050565b6000610b7e610b77612ec4565b8484612ecc565b6001905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610bc7612ec4565b73ffffffffffffffffffffffffffffffffffffffff1614610c1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c14906152a9565b60405180910390fd5b80600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610cfb612ec4565b73ffffffffffffffffffffffffffffffffffffffff1614610d51576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d48906152a9565b60405180910390fd5b600d60159054906101000a900460ff16905090565b6000683635c9adc5dea00000905090565b6000610d84848484613097565b610e4584610d90612ec4565b610e4085604051806060016040528060288152602001615afa60289139601660008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610df6612ec4565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546136549092919063ffffffff16565b612ecc565b600190509392505050565b6000600e54905090565b6000600360009054906101000a900460ff16905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610eb0612ec4565b73ffffffffffffffffffffffffffffffffffffffff1614610f06576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610efd906152a9565b60405180910390fd5b60005b8151811015610f6e57610f5b828281518110610f4e577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020026020010151612d3f565b8080610f66906156e3565b915050610f09565b5050565b6000601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661105d612ec4565b73ffffffffffffffffffffffffffffffffffffffff16146110b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110aa906152a9565b60405180910390fd5b6000601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661114d612ec4565b73ffffffffffffffffffffffffffffffffffffffff16146111a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119a906152a9565b60405180910390fd5b6000633b9aca00826111b59190615537565b90506111d56103e8683635c9adc5dea000006136b890919063ffffffff16565b81116111e057600080fd5b806005819055506005546006819055506112066004600654612e4990919063ffffffff16565b6007819055505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661124f612ec4565b73ffffffffffffffffffffffffffffffffffffffff16146112a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129c906152a9565b60405180910390fd5b6000601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460008282546113109190615591565b9250508190555050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611359612ec4565b73ffffffffffffffffffffffffffffffffffffffff16146113af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113a6906152a9565b60405180910390fd5b600081905080601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611438612ec4565b73ffffffffffffffffffffffffffffffffffffffff161461148e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611485906152a9565b60405180910390fd5b6000633b9aca00826114a09190615537565b905080600a819055505050565b600060011515600d60189054906101000a900460ff16151514156114d457600190506114d9565b600090505b90565b60008060009050601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561153a57600190505b80915050919050565b6000601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6060601960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805461161890615680565b80601f016020809104026020016040519081016040528092919081815260200182805461164490615680565b80156116915780601f1061166657610100808354040283529160200191611691565b820191906000526020600020905b81548152906001019060200180831161167457829003601f168201915b5050505050905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166116dd612ec4565b73ffffffffffffffffffffffffffffffffffffffff1614611733576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172a906152a9565b60405180910390fd5b6000601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611823612ec4565b73ffffffffffffffffffffffffffffffffffffffff1614611879576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611870906152a9565b60405180910390fd5b6101f481111561188857600080fd5b8060098190555050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166118d1612ec4565b73ffffffffffffffffffffffffffffffffffffffff1614611927576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161191e906152a9565b60405180910390fd5b6001601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166119c4612ec4565b73ffffffffffffffffffffffffffffffffffffffff1614611a1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a11906152a9565b60405180910390fd5b47905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060028054611a5890615680565b80601f0160208091040260200160405190810160405280929190818152602001828054611a8490615680565b8015611ad15780601f10611aa657610100808354040283529160200191611ad1565b820191906000526020600020905b815481529060010190602001808311611ab457829003601f168201915b5050505050905090565b6000611aef611ae8612ec4565b8484613097565b6001905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611b38612ec4565b73ffffffffffffffffffffffffffffffffffffffff1614611b8e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b85906152a9565b60405180910390fd5b6101f4811115611b9d57600080fd5b8060088190555050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611be6612ec4565b73ffffffffffffffffffffffffffffffffffffffff1614611c3c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c33906152a9565b60405180910390fd5b80600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611d17612ec4565b73ffffffffffffffffffffffffffffffffffffffff1614611d6d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d64906152a9565b60405180910390fd5b6001600d60186101000a81548160ff021916908315150217905550565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611dc9612ec4565b73ffffffffffffffffffffffffffffffffffffffff1614611e1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e16906152a9565b60405180910390fd5b6000601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611eb9612ec4565b73ffffffffffffffffffffffffffffffffffffffff1614611f0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f06906152a9565b60405180910390fd5b6007546005819055506007546006819055507f1509687539547b95d9002029c1b24fbfdd2e99b914fabbbc629867062a4ff3cc600554604051611f529190615349565b60405180910390a1565b80601960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000016000611fa9612ec4565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209080519060200190611ff69291906149c9565b50600064b4e8cf1a00905061201361200c612ec4565b8483613702565b505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612057612ec4565b73ffffffffffffffffffffffffffffffffffffffff16146120ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120a4906152a9565b60405180910390fd5b6001601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612147612ec4565b73ffffffffffffffffffffffffffffffffffffffff161461219d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612194906152a9565b60405180910390fd5b6001600d60156101000a81548160ff021916908315150217905550565b6000601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612280612ec4565b73ffffffffffffffffffffffffffffffffffffffff16146122d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122cd906152a9565b60405180910390fd5b600d60149054906101000a900460ff1615612326576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161231d90615329565b60405180910390fd5b600160106000612334612ec4565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160106000601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555061248f30601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16683635c9adc5dea00000612ecc565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156124d557600080fd5b505afa1580156124e9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061250d9190614c11565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561256f57600080fd5b505afa158015612583573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125a79190614c11565b6040518363ffffffff1660e01b81526004016125c49291906150e2565b602060405180830381600087803b1580156125de57600080fd5b505af11580156125f2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126169190614c11565b600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160106000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160126000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061279330611543565b60008061279e611a20565b426040518863ffffffff1660e01b81526004016127c09695949392919061516b565b6060604051808303818588803b1580156127d957600080fd5b505af11580156127ed573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906128129190614e11565b5050506001600d60176101000a81548160ff0219169083151502179055506001600d60146101000a81548160ff021916908315150217905550600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016128ea929190615142565b602060405180830381600087803b15801561290457600080fd5b505af1158015612918573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061293c9190614dbf565b5050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661297f612ec4565b73ffffffffffffffffffffffffffffffffffffffff16146129d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129cc906152a9565b60405180910390fd5b6000600d60186101000a81548160ff021916908315150217905550565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612a31612ec4565b73ffffffffffffffffffffffffffffffffffffffff1614612a87576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a7e906152a9565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612b83612ec4565b73ffffffffffffffffffffffffffffffffffffffff1614612bd9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bd0906152a9565b60405180910390fd5b6001601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600454905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612c7d612ec4565b73ffffffffffffffffffffffffffffffffffffffff1614612cd3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612cca906152a9565b60405180910390fd5b60005b8151811015612d3b57612d28828281518110612d1b577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020026020010151612b44565b8080612d33906156e3565b915050612cd6565b5050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612d7e612ec4565b73ffffffffffffffffffffffffffffffffffffffff1614612dd4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612dcb906152a9565b60405180910390fd5b6001601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000828254612e3f91906154b0565b9250508190555050565b600080831415612e5c5760009050612ebe565b60008284612e6a9190615537565b9050828482612e799190615506565b14612eb9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612eb090615289565b60405180910390fd5b809150505b92915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612f3c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f3390615309565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612fac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612fa390615249565b60405180910390fd5b80601660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161308a9190615349565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415613107576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130fe906152e9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415613177576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161316e90615209565b60405180910390fd5b600081116131ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131b1906152c9565b60405180910390fd5b600d60159054906101000a900460ff1661322557601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661322457600080fd5b5b61322e82613b84565b156132625760006132508261324285611543565b613c3990919063ffffffff16565b9050600754811061326057600080fd5b505b600d60189054906101000a900460ff161561334157613282828432613c97565b61328b83613fdb565b80156132a35750600d60149054906101000a900460ff165b1561333c5760001515601360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151461333b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161333290615229565b60405180910390fd5b5b613567565b600d60149054906101000a900460ff16156135665761335f83613fdb565b156134b05760001515601360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515146133f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016133ee90615229565b60405180910390fd5b6000600e5411156134ab5742600f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541061344d57600080fd5b6001600e5461345c9190615537565b4261346791906154b0565b600f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b613565565b6000600e5411156135645742600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541061350657600080fd5b6001600e546135159190615537565b4261352091906154b0565b600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b5b5b6135718383614037565b1561359f5760055481111561358557600080fd5b61358f83836140cf565b1561359e5761359d8361417a565b5b5b6135aa838383613702565b600d60189054906101000a900460ff161561364f57601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b25d625984846040518363ffffffff1660e01b815260040161361c9291906150e2565b600060405180830381600087803b15801561363657600080fd5b505af115801561364a573d6000803e3d6000fd5b505050505b505050565b600083831115829061369c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161369391906151e7565b60405180910390fd5b50600083856136ab9190615591565b9050809150509392505050565b60006136fa83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506141bf565b905092915050565b61370c83836140cf565b156139ef57600061371d8484614222565b9050600061374861271061373a8486612e4990919063ffffffff16565b6136b890919063ffffffff16565b9050600061375f82856142e590919063ffffffff16565b9050600061376d878761432f565b9050600061379861271061378a8489612e4990919063ffffffff16565b6136b890919063ffffffff16565b90506137ad81846142e590919063ffffffff16565b925061380186601560008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546142e590919063ffffffff16565b601560008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061389683601560008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613c3990919063ffffffff16565b601560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061393d8161392f86601560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613c3990919063ffffffff16565b613c3990919063ffffffff16565b601560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516139dd9190615349565b60405180910390a35050505050613b7f565b613a4181601560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546142e590919063ffffffff16565b601560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613ad681601560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613c3990919063ffffffff16565b601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051613b769190615349565b60405180910390a35b505050565b6000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158015613c325750601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b9050919050565b6000808284613c4891906154b0565b905083811015613c8d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613c8490615269565b60405180910390fd5b8091505092915050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480613d405750600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b8015613d585750600d60149054906101000a900460ff165b15613fd6576000601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166312bdf42385600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16856040518463ffffffff1660e01b8152600401613de09392919061510b565b602060405180830381600087803b158015613dfa57600080fd5b505af1158015613e0e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613e329190614dbf565b8015613e445750613e42846143f2565b155b90506000601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166312bdf42385600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16866040518463ffffffff1660e01b8152600401613ec99392919061510b565b602060405180830381600087803b158015613ee357600080fd5b505af1158015613ef7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613f1b9190614dbf565b8015613f2d5750613f2b846143f2565b155b90508115613f8157613f3e85614448565b613f4783614448565b7f9a7289cf5e3a6716dd5e9f62deae04d4bc9df473808bf34bcdbcf224594243928584604051613f789291906150e2565b60405180910390a15b8015613fd357613f9084614448565b613f9983614448565b7f9a7289cf5e3a6716dd5e9f62deae04d4bc9df473808bf34bcdbcf224594243928484604051613fca9291906150e2565b60405180910390a15b50505b505050565b6000801515601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515149050919050565b6000614041611a20565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156140af575061407f611a20565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156140c75750600d60149054906101000a900460ff165b905092915050565b6000601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806141725750601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b905092915050565b600061418530611543565b90506000600a54821015905061419a8361450f565b80156141a35750805b156141ba576141b18261459b565b6141b9614895565b5b505050565b60008083118290614206576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016141fd91906151e7565b60405180910390fd5b50600083856142159190615506565b9050809150509392505050565b600080601460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806142c65750601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b159050806142d85760009150506142df565b6008549150505b92915050565b600061432783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613654565b905092915050565b600080601460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806143d35750601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b159050806143e55760009150506143ec565b6009549150505b92915050565b6000601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b601360008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166144b4576001600460008282546144ac91906154b0565b925050819055505b6001601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600d60169054906101000a900460ff1615801561457c5750600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156145945750600d60179054906101000a900460ff165b9050919050565b6001600d60166101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156145f9577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156146275781602001602082028036833780820191505090505b5090503081600081518110614665577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561470757600080fd5b505afa15801561471b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061473f9190614c11565b81600181518110614779577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506147e030601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684612ecc565b601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401614844959493929190615364565b600060405180830381600087803b15801561485e57600080fd5b505af1158015614872573d6000803e3d6000fd5b50505050506000600d60166101000a81548160ff02191690831515021790555050565b600047905060006148b3600854600954613c3990919063ffffffff16565b905060006148de826148d085600954612e4990919063ffffffff16565b6136b890919063ffffffff16565b9050600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015614948573d6000803e3d6000fd5b50600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc61499883866142e590919063ffffffff16565b9081150290604051600060405180830381858888f193505050501580156149c3573d6000803e3d6000fd5b50505050565b8280546149d590615680565b90600052602060002090601f0160209004810192826149f75760008555614a3e565b82601f10614a1057805160ff1916838001178555614a3e565b82800160010185558215614a3e579182015b82811115614a3d578251825591602001919060010190614a22565b5b509050614a4b9190614a4f565b5090565b5b80821115614a68576000816000905550600101614a50565b5090565b6000614a7f614a7a846153fe565b6153d9565b90508083825260208201905082856020860282011115614a9e57600080fd5b60005b85811015614ace5781614ab48882614b16565b845260208401935060208301925050600181019050614aa1565b5050509392505050565b6000614aeb614ae68461542a565b6153d9565b905082815260208101848484011115614b0357600080fd5b614b0e84828561563e565b509392505050565b600081359050614b2581615a9d565b92915050565b600081519050614b3a81615a9d565b92915050565b600081359050614b4f81615ab4565b92915050565b600082601f830112614b6657600080fd5b8135614b76848260208601614a6c565b91505092915050565b600081519050614b8e81615acb565b92915050565b600082601f830112614ba557600080fd5b8135614bb5848260208601614ad8565b91505092915050565b600081359050614bcd81615ae2565b92915050565b600081519050614be281615ae2565b92915050565b600060208284031215614bfa57600080fd5b6000614c0884828501614b16565b91505092915050565b600060208284031215614c2357600080fd5b6000614c3184828501614b2b565b91505092915050565b600060208284031215614c4c57600080fd5b6000614c5a84828501614b40565b91505092915050565b60008060408385031215614c7657600080fd5b6000614c8485828601614b16565b9250506020614c9585828601614b16565b9150509250929050565b600080600060608486031215614cb457600080fd5b6000614cc286828701614b16565b9350506020614cd386828701614b16565b9250506040614ce486828701614bbe565b9150509250925092565b60008060408385031215614d0157600080fd5b6000614d0f85828601614b16565b925050602083013567ffffffffffffffff811115614d2c57600080fd5b614d3885828601614b94565b9150509250929050565b60008060408385031215614d5557600080fd5b6000614d6385828601614b16565b9250506020614d7485828601614bbe565b9150509250929050565b600060208284031215614d9057600080fd5b600082013567ffffffffffffffff811115614daa57600080fd5b614db684828501614b55565b91505092915050565b600060208284031215614dd157600080fd5b6000614ddf84828501614b7f565b91505092915050565b600060208284031215614dfa57600080fd5b6000614e0884828501614bbe565b91505092915050565b600080600060608486031215614e2657600080fd5b6000614e3486828701614bd3565b9350506020614e4586828701614bd3565b9250506040614e5686828701614bd3565b9150509250925092565b6000614e6c8383614e78565b60208301905092915050565b614e81816155c5565b82525050565b614e90816155c5565b82525050565b6000614ea18261546b565b614eab818561548e565b9350614eb68361545b565b8060005b83811015614ee7578151614ece8882614e60565b9750614ed983615481565b925050600181019050614eba565b5085935050505092915050565b614efd816155e9565b82525050565b614f0c8161562c565b82525050565b6000614f1d82615476565b614f27818561549f565b9350614f3781856020860161564d565b614f40816157e8565b840191505092915050565b6000614f5860238361549f565b9150614f63826157f9565b604082019050919050565b6000614f7b60358361549f565b9150614f8682615848565b604082019050919050565b6000614f9e60228361549f565b9150614fa982615897565b604082019050919050565b6000614fc1601b8361549f565b9150614fcc826158e6565b602082019050919050565b6000614fe460218361549f565b9150614fef8261590f565b604082019050919050565b600061500760208361549f565b91506150128261595e565b602082019050919050565b600061502a60298361549f565b915061503582615987565b604082019050919050565b600061504d60258361549f565b9150615058826159d6565b604082019050919050565b600061507060248361549f565b915061507b82615a25565b604082019050919050565b600061509360178361549f565b915061509e82615a74565b602082019050919050565b6150b281615615565b82525050565b6150c18161561f565b82525050565b60006020820190506150dc6000830184614e87565b92915050565b60006040820190506150f76000830185614e87565b6151046020830184614e87565b9392505050565b60006060820190506151206000830186614e87565b61512d6020830185614e87565b61513a6040830184614e87565b949350505050565b60006040820190506151576000830185614e87565b61516460208301846150a9565b9392505050565b600060c0820190506151806000830189614e87565b61518d60208301886150a9565b61519a6040830187614f03565b6151a76060830186614f03565b6151b46080830185614e87565b6151c160a08301846150a9565b979650505050505050565b60006020820190506151e16000830184614ef4565b92915050565b600060208201905081810360008301526152018184614f12565b905092915050565b6000602082019050818103600083015261522281614f4b565b9050919050565b6000602082019050818103600083015261524281614f6e565b9050919050565b6000602082019050818103600083015261526281614f91565b9050919050565b6000602082019050818103600083015261528281614fb4565b9050919050565b600060208201905081810360008301526152a281614fd7565b9050919050565b600060208201905081810360008301526152c281614ffa565b9050919050565b600060208201905081810360008301526152e28161501d565b9050919050565b6000602082019050818103600083015261530281615040565b9050919050565b6000602082019050818103600083015261532281615063565b9050919050565b6000602082019050818103600083015261534281615086565b9050919050565b600060208201905061535e60008301846150a9565b92915050565b600060a08201905061537960008301886150a9565b6153866020830187614f03565b81810360408301526153988186614e96565b90506153a76060830185614e87565b6153b460808301846150a9565b9695505050505050565b60006020820190506153d360008301846150b8565b92915050565b60006153e36153f4565b90506153ef82826156b2565b919050565b6000604051905090565b600067ffffffffffffffff821115615419576154186157b9565b5b602082029050602081019050919050565b600067ffffffffffffffff821115615445576154446157b9565b5b61544e826157e8565b9050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b60006154bb82615615565b91506154c683615615565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156154fb576154fa61572c565b5b828201905092915050565b600061551182615615565b915061551c83615615565b92508261552c5761552b61575b565b5b828204905092915050565b600061554282615615565b915061554d83615615565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156155865761558561572c565b5b828202905092915050565b600061559c82615615565b91506155a783615615565b9250828210156155ba576155b961572c565b5b828203905092915050565b60006155d0826155f5565b9050919050565b60006155e2826155f5565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061563782615615565b9050919050565b82818337600083830152505050565b60005b8381101561566b578082015181840152602081019050615650565b8381111561567a576000848401525b50505050565b6000600282049050600182168061569857607f821691505b602082108114156156ac576156ab61578a565b5b50919050565b6156bb826157e8565b810181811067ffffffffffffffff821117156156da576156d96157b9565b5b80604052505050565b60006156ee82615615565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156157215761572061572c565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f54686973206265617220646f65736e2774206c696b6520796f752e204c6f6f6b60008201527f20666f7220686f6e657920656c736577686572652e0000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b615aa6816155c5565b8114615ab157600080fd5b50565b615abd816155d7565b8114615ac857600080fd5b50565b615ad4816155e9565b8114615adf57600080fd5b50565b615aeb81615615565b8114615af657600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220575e934216531a2a7072554e1debb73d45d7fd002950d911d30a958be691a9f564736f6c63430008040033

Deployed Bytecode

0x6080604052600436106102765760003560e01c8063790a1e8d1161014f578063c735f3c9116100c1578063e8347c391161007a578063e8347c3914610953578063f2fde38b1461096a578063f80f5dd514610993578063fa2b2009146109bc578063ffc78cff146109e7578063ffecf51614610a105761027d565b8063c735f3c91461087f578063cd4ecd5314610896578063d5e86d83146108bf578063dc907dea146108e8578063dd62ed3e146108ff578063e8078d941461093c5761027d565b806395d89b411161011357806395d89b4114610785578063a9059cbb146107b0578063b2b19f1a146107ed578063b451192d14610816578063bd5dce651461083f578063c1581485146108565761027d565b8063790a1e8d146106a05780638708f787146106dd5780638a2e271a146107065780638b7afe2e1461072f5780638da5cb5b1461075a5761027d565b80633f5b7d67116101e857806365407b6d116101ac57806365407b6d1461056c5780636fbeb45d14610595578063700542ec146105c057806370a08231146105fd57806373286f891461063a57806378c8cda7146106775761027d565b80633f5b7d671461048b5780634c70f875146104c85780635c85974f146104f15780635fecd9261461051a57806362caa704146105435761027d565b806318160ddd1161023a57806318160ddd1461036757806323b872dd14610392578063285de426146103cf578063313ce567146103fa57806334b9acd3146104255780633af32abf1461044e5761027d565b806306fdde0314610282578063070fad74146102ad578063095ea7b3146102d65780630c9be46d1461031357806313c9dd021461033c5761027d565b3661027d57005b600080fd5b34801561028e57600080fd5b50610297610a39565b6040516102a491906151e7565b60405180910390f35b3480156102b957600080fd5b506102d460048036038101906102cf9190614de8565b610acb565b005b3480156102e257600080fd5b506102fd60048036038101906102f89190614d42565b610b6a565b60405161030a91906151cc565b60405180910390f35b34801561031f57600080fd5b5061033a60048036038101906103359190614c3a565b610b88565b005b34801561034857600080fd5b50610351610cb9565b60405161035e91906151cc565b60405180910390f35b34801561037357600080fd5b5061037c610d66565b6040516103899190615349565b60405180910390f35b34801561039e57600080fd5b506103b960048036038101906103b49190614c9f565b610d77565b6040516103c691906151cc565b60405180910390f35b3480156103db57600080fd5b506103e4610e50565b6040516103f19190615349565b60405180910390f35b34801561040657600080fd5b5061040f610e5a565b60405161041c91906153be565b60405180910390f35b34801561043157600080fd5b5061044c60048036038101906104479190614d7e565b610e71565b005b34801561045a57600080fd5b5061047560048036038101906104709190614be8565b610f72565b60405161048291906151cc565b60405180910390f35b34801561049757600080fd5b506104b260048036038101906104ad9190614be8565b610fc8565b6040516104bf91906151cc565b60405180910390f35b3480156104d457600080fd5b506104ef60048036038101906104ea9190614be8565b61101e565b005b3480156104fd57600080fd5b5061051860048036038101906105139190614de8565b61110e565b005b34801561052657600080fd5b50610541600480360381019061053c9190614be8565b611210565b005b34801561054f57600080fd5b5061056a60048036038101906105659190614be8565b61131a565b005b34801561057857600080fd5b50610593600480360381019061058e9190614de8565b6113f9565b005b3480156105a157600080fd5b506105aa6114ad565b6040516105b79190615349565b60405180910390f35b3480156105cc57600080fd5b506105e760048036038101906105e29190614be8565b6114dc565b6040516105f491906151cc565b60405180910390f35b34801561060957600080fd5b50610624600480360381019061061f9190614be8565b611543565b6040516106319190615349565b60405180910390f35b34801561064657600080fd5b50610661600480360381019061065c9190614c63565b61158c565b60405161066e91906151e7565b60405180910390f35b34801561068357600080fd5b5061069e60048036038101906106999190614be8565b61169e565b005b3480156106ac57600080fd5b506106c760048036038101906106c29190614be8565b61178e565b6040516106d491906151cc565b60405180910390f35b3480156106e957600080fd5b5061070460048036038101906106ff9190614de8565b6117e4565b005b34801561071257600080fd5b5061072d60048036038101906107289190614be8565b611892565b005b34801561073b57600080fd5b50610744611982565b6040516107519190615349565b60405180910390f35b34801561076657600080fd5b5061076f611a20565b60405161077c91906150c7565b60405180910390f35b34801561079157600080fd5b5061079a611a49565b6040516107a791906151e7565b60405180910390f35b3480156107bc57600080fd5b506107d760048036038101906107d29190614d42565b611adb565b6040516107e491906151cc565b60405180910390f35b3480156107f957600080fd5b50610814600480360381019061080f9190614de8565b611af9565b005b34801561082257600080fd5b5061083d60048036038101906108389190614c3a565b611ba7565b005b34801561084b57600080fd5b50610854611cd8565b005b34801561086257600080fd5b5061087d60048036038101906108789190614be8565b611d8a565b005b34801561088b57600080fd5b50610894611e7a565b005b3480156108a257600080fd5b506108bd60048036038101906108b89190614cee565b611f5c565b005b3480156108cb57600080fd5b506108e660048036038101906108e19190614be8565b612018565b005b3480156108f457600080fd5b506108fd612108565b005b34801561090b57600080fd5b5061092660048036038101906109219190614c63565b6121ba565b6040516109339190615349565b60405180910390f35b34801561094857600080fd5b50610951612241565b005b34801561095f57600080fd5b50610968612940565b005b34801561097657600080fd5b50610991600480360381019061098c9190614be8565b6129f2565b005b34801561099f57600080fd5b506109ba60048036038101906109b59190614be8565b612b44565b005b3480156109c857600080fd5b506109d1612c34565b6040516109de9190615349565b60405180910390f35b3480156109f357600080fd5b50610a0e6004803603810190610a099190614d7e565b612c3e565b005b348015610a1c57600080fd5b50610a376004803603810190610a329190614be8565b612d3f565b005b606060018054610a4890615680565b80601f0160208091040260200160405190810160405280929190818152602001828054610a7490615680565b8015610ac15780601f10610a9657610100808354040283529160200191610ac1565b820191906000526020600020905b815481529060010190602001808311610aa457829003601f168201915b5050505050905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610b0a612ec4565b73ffffffffffffffffffffffffffffffffffffffff1614610b60576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b57906152a9565b60405180910390fd5b80600e8190555050565b6000610b7e610b77612ec4565b8484612ecc565b6001905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610bc7612ec4565b73ffffffffffffffffffffffffffffffffffffffff1614610c1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c14906152a9565b60405180910390fd5b80600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610cfb612ec4565b73ffffffffffffffffffffffffffffffffffffffff1614610d51576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d48906152a9565b60405180910390fd5b600d60159054906101000a900460ff16905090565b6000683635c9adc5dea00000905090565b6000610d84848484613097565b610e4584610d90612ec4565b610e4085604051806060016040528060288152602001615afa60289139601660008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610df6612ec4565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546136549092919063ffffffff16565b612ecc565b600190509392505050565b6000600e54905090565b6000600360009054906101000a900460ff16905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610eb0612ec4565b73ffffffffffffffffffffffffffffffffffffffff1614610f06576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610efd906152a9565b60405180910390fd5b60005b8151811015610f6e57610f5b828281518110610f4e577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020026020010151612d3f565b8080610f66906156e3565b915050610f09565b5050565b6000601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661105d612ec4565b73ffffffffffffffffffffffffffffffffffffffff16146110b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110aa906152a9565b60405180910390fd5b6000601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661114d612ec4565b73ffffffffffffffffffffffffffffffffffffffff16146111a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119a906152a9565b60405180910390fd5b6000633b9aca00826111b59190615537565b90506111d56103e8683635c9adc5dea000006136b890919063ffffffff16565b81116111e057600080fd5b806005819055506005546006819055506112066004600654612e4990919063ffffffff16565b6007819055505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661124f612ec4565b73ffffffffffffffffffffffffffffffffffffffff16146112a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129c906152a9565b60405180910390fd5b6000601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460008282546113109190615591565b9250508190555050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611359612ec4565b73ffffffffffffffffffffffffffffffffffffffff16146113af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113a6906152a9565b60405180910390fd5b600081905080601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611438612ec4565b73ffffffffffffffffffffffffffffffffffffffff161461148e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611485906152a9565b60405180910390fd5b6000633b9aca00826114a09190615537565b905080600a819055505050565b600060011515600d60189054906101000a900460ff16151514156114d457600190506114d9565b600090505b90565b60008060009050601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561153a57600190505b80915050919050565b6000601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6060601960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805461161890615680565b80601f016020809104026020016040519081016040528092919081815260200182805461164490615680565b80156116915780601f1061166657610100808354040283529160200191611691565b820191906000526020600020905b81548152906001019060200180831161167457829003601f168201915b5050505050905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166116dd612ec4565b73ffffffffffffffffffffffffffffffffffffffff1614611733576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172a906152a9565b60405180910390fd5b6000601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611823612ec4565b73ffffffffffffffffffffffffffffffffffffffff1614611879576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611870906152a9565b60405180910390fd5b6101f481111561188857600080fd5b8060098190555050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166118d1612ec4565b73ffffffffffffffffffffffffffffffffffffffff1614611927576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161191e906152a9565b60405180910390fd5b6001601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166119c4612ec4565b73ffffffffffffffffffffffffffffffffffffffff1614611a1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a11906152a9565b60405180910390fd5b47905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060028054611a5890615680565b80601f0160208091040260200160405190810160405280929190818152602001828054611a8490615680565b8015611ad15780601f10611aa657610100808354040283529160200191611ad1565b820191906000526020600020905b815481529060010190602001808311611ab457829003601f168201915b5050505050905090565b6000611aef611ae8612ec4565b8484613097565b6001905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611b38612ec4565b73ffffffffffffffffffffffffffffffffffffffff1614611b8e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b85906152a9565b60405180910390fd5b6101f4811115611b9d57600080fd5b8060088190555050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611be6612ec4565b73ffffffffffffffffffffffffffffffffffffffff1614611c3c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c33906152a9565b60405180910390fd5b80600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611d17612ec4565b73ffffffffffffffffffffffffffffffffffffffff1614611d6d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d64906152a9565b60405180910390fd5b6001600d60186101000a81548160ff021916908315150217905550565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611dc9612ec4565b73ffffffffffffffffffffffffffffffffffffffff1614611e1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e16906152a9565b60405180910390fd5b6000601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611eb9612ec4565b73ffffffffffffffffffffffffffffffffffffffff1614611f0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f06906152a9565b60405180910390fd5b6007546005819055506007546006819055507f1509687539547b95d9002029c1b24fbfdd2e99b914fabbbc629867062a4ff3cc600554604051611f529190615349565b60405180910390a1565b80601960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000016000611fa9612ec4565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209080519060200190611ff69291906149c9565b50600064b4e8cf1a00905061201361200c612ec4565b8483613702565b505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612057612ec4565b73ffffffffffffffffffffffffffffffffffffffff16146120ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120a4906152a9565b60405180910390fd5b6001601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612147612ec4565b73ffffffffffffffffffffffffffffffffffffffff161461219d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612194906152a9565b60405180910390fd5b6001600d60156101000a81548160ff021916908315150217905550565b6000601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612280612ec4565b73ffffffffffffffffffffffffffffffffffffffff16146122d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122cd906152a9565b60405180910390fd5b600d60149054906101000a900460ff1615612326576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161231d90615329565b60405180910390fd5b600160106000612334612ec4565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160106000601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555061248f30601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16683635c9adc5dea00000612ecc565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156124d557600080fd5b505afa1580156124e9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061250d9190614c11565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561256f57600080fd5b505afa158015612583573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125a79190614c11565b6040518363ffffffff1660e01b81526004016125c49291906150e2565b602060405180830381600087803b1580156125de57600080fd5b505af11580156125f2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126169190614c11565b600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160106000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160126000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061279330611543565b60008061279e611a20565b426040518863ffffffff1660e01b81526004016127c09695949392919061516b565b6060604051808303818588803b1580156127d957600080fd5b505af11580156127ed573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906128129190614e11565b5050506001600d60176101000a81548160ff0219169083151502179055506001600d60146101000a81548160ff021916908315150217905550600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016128ea929190615142565b602060405180830381600087803b15801561290457600080fd5b505af1158015612918573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061293c9190614dbf565b5050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661297f612ec4565b73ffffffffffffffffffffffffffffffffffffffff16146129d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129cc906152a9565b60405180910390fd5b6000600d60186101000a81548160ff021916908315150217905550565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612a31612ec4565b73ffffffffffffffffffffffffffffffffffffffff1614612a87576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a7e906152a9565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612b83612ec4565b73ffffffffffffffffffffffffffffffffffffffff1614612bd9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bd0906152a9565b60405180910390fd5b6001601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600454905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612c7d612ec4565b73ffffffffffffffffffffffffffffffffffffffff1614612cd3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612cca906152a9565b60405180910390fd5b60005b8151811015612d3b57612d28828281518110612d1b577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020026020010151612b44565b8080612d33906156e3565b915050612cd6565b5050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612d7e612ec4565b73ffffffffffffffffffffffffffffffffffffffff1614612dd4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612dcb906152a9565b60405180910390fd5b6001601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000828254612e3f91906154b0565b9250508190555050565b600080831415612e5c5760009050612ebe565b60008284612e6a9190615537565b9050828482612e799190615506565b14612eb9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612eb090615289565b60405180910390fd5b809150505b92915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612f3c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f3390615309565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612fac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612fa390615249565b60405180910390fd5b80601660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161308a9190615349565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415613107576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130fe906152e9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415613177576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161316e90615209565b60405180910390fd5b600081116131ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131b1906152c9565b60405180910390fd5b600d60159054906101000a900460ff1661322557601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661322457600080fd5b5b61322e82613b84565b156132625760006132508261324285611543565b613c3990919063ffffffff16565b9050600754811061326057600080fd5b505b600d60189054906101000a900460ff161561334157613282828432613c97565b61328b83613fdb565b80156132a35750600d60149054906101000a900460ff165b1561333c5760001515601360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151461333b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161333290615229565b60405180910390fd5b5b613567565b600d60149054906101000a900460ff16156135665761335f83613fdb565b156134b05760001515601360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515146133f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016133ee90615229565b60405180910390fd5b6000600e5411156134ab5742600f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541061344d57600080fd5b6001600e5461345c9190615537565b4261346791906154b0565b600f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b613565565b6000600e5411156135645742600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541061350657600080fd5b6001600e546135159190615537565b4261352091906154b0565b600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b5b5b6135718383614037565b1561359f5760055481111561358557600080fd5b61358f83836140cf565b1561359e5761359d8361417a565b5b5b6135aa838383613702565b600d60189054906101000a900460ff161561364f57601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b25d625984846040518363ffffffff1660e01b815260040161361c9291906150e2565b600060405180830381600087803b15801561363657600080fd5b505af115801561364a573d6000803e3d6000fd5b505050505b505050565b600083831115829061369c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161369391906151e7565b60405180910390fd5b50600083856136ab9190615591565b9050809150509392505050565b60006136fa83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506141bf565b905092915050565b61370c83836140cf565b156139ef57600061371d8484614222565b9050600061374861271061373a8486612e4990919063ffffffff16565b6136b890919063ffffffff16565b9050600061375f82856142e590919063ffffffff16565b9050600061376d878761432f565b9050600061379861271061378a8489612e4990919063ffffffff16565b6136b890919063ffffffff16565b90506137ad81846142e590919063ffffffff16565b925061380186601560008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546142e590919063ffffffff16565b601560008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061389683601560008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613c3990919063ffffffff16565b601560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061393d8161392f86601560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613c3990919063ffffffff16565b613c3990919063ffffffff16565b601560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516139dd9190615349565b60405180910390a35050505050613b7f565b613a4181601560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546142e590919063ffffffff16565b601560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613ad681601560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613c3990919063ffffffff16565b601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051613b769190615349565b60405180910390a35b505050565b6000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158015613c325750601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b9050919050565b6000808284613c4891906154b0565b905083811015613c8d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613c8490615269565b60405180910390fd5b8091505092915050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480613d405750600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b8015613d585750600d60149054906101000a900460ff165b15613fd6576000601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166312bdf42385600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16856040518463ffffffff1660e01b8152600401613de09392919061510b565b602060405180830381600087803b158015613dfa57600080fd5b505af1158015613e0e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613e329190614dbf565b8015613e445750613e42846143f2565b155b90506000601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166312bdf42385600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16866040518463ffffffff1660e01b8152600401613ec99392919061510b565b602060405180830381600087803b158015613ee357600080fd5b505af1158015613ef7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613f1b9190614dbf565b8015613f2d5750613f2b846143f2565b155b90508115613f8157613f3e85614448565b613f4783614448565b7f9a7289cf5e3a6716dd5e9f62deae04d4bc9df473808bf34bcdbcf224594243928584604051613f789291906150e2565b60405180910390a15b8015613fd357613f9084614448565b613f9983614448565b7f9a7289cf5e3a6716dd5e9f62deae04d4bc9df473808bf34bcdbcf224594243928484604051613fca9291906150e2565b60405180910390a15b50505b505050565b6000801515601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515149050919050565b6000614041611a20565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156140af575061407f611a20565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156140c75750600d60149054906101000a900460ff165b905092915050565b6000601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806141725750601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b905092915050565b600061418530611543565b90506000600a54821015905061419a8361450f565b80156141a35750805b156141ba576141b18261459b565b6141b9614895565b5b505050565b60008083118290614206576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016141fd91906151e7565b60405180910390fd5b50600083856142159190615506565b9050809150509392505050565b600080601460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806142c65750601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b159050806142d85760009150506142df565b6008549150505b92915050565b600061432783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613654565b905092915050565b600080601460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806143d35750601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b159050806143e55760009150506143ec565b6009549150505b92915050565b6000601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b601360008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166144b4576001600460008282546144ac91906154b0565b925050819055505b6001601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600d60169054906101000a900460ff1615801561457c5750600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156145945750600d60179054906101000a900460ff165b9050919050565b6001600d60166101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156145f9577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156146275781602001602082028036833780820191505090505b5090503081600081518110614665577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561470757600080fd5b505afa15801561471b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061473f9190614c11565b81600181518110614779577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506147e030601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684612ecc565b601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401614844959493929190615364565b600060405180830381600087803b15801561485e57600080fd5b505af1158015614872573d6000803e3d6000fd5b50505050506000600d60166101000a81548160ff02191690831515021790555050565b600047905060006148b3600854600954613c3990919063ffffffff16565b905060006148de826148d085600954612e4990919063ffffffff16565b6136b890919063ffffffff16565b9050600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015614948573d6000803e3d6000fd5b50600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc61499883866142e590919063ffffffff16565b9081150290604051600060405180830381858888f193505050501580156149c3573d6000803e3d6000fd5b50505050565b8280546149d590615680565b90600052602060002090601f0160209004810192826149f75760008555614a3e565b82601f10614a1057805160ff1916838001178555614a3e565b82800160010185558215614a3e579182015b82811115614a3d578251825591602001919060010190614a22565b5b509050614a4b9190614a4f565b5090565b5b80821115614a68576000816000905550600101614a50565b5090565b6000614a7f614a7a846153fe565b6153d9565b90508083825260208201905082856020860282011115614a9e57600080fd5b60005b85811015614ace5781614ab48882614b16565b845260208401935060208301925050600181019050614aa1565b5050509392505050565b6000614aeb614ae68461542a565b6153d9565b905082815260208101848484011115614b0357600080fd5b614b0e84828561563e565b509392505050565b600081359050614b2581615a9d565b92915050565b600081519050614b3a81615a9d565b92915050565b600081359050614b4f81615ab4565b92915050565b600082601f830112614b6657600080fd5b8135614b76848260208601614a6c565b91505092915050565b600081519050614b8e81615acb565b92915050565b600082601f830112614ba557600080fd5b8135614bb5848260208601614ad8565b91505092915050565b600081359050614bcd81615ae2565b92915050565b600081519050614be281615ae2565b92915050565b600060208284031215614bfa57600080fd5b6000614c0884828501614b16565b91505092915050565b600060208284031215614c2357600080fd5b6000614c3184828501614b2b565b91505092915050565b600060208284031215614c4c57600080fd5b6000614c5a84828501614b40565b91505092915050565b60008060408385031215614c7657600080fd5b6000614c8485828601614b16565b9250506020614c9585828601614b16565b9150509250929050565b600080600060608486031215614cb457600080fd5b6000614cc286828701614b16565b9350506020614cd386828701614b16565b9250506040614ce486828701614bbe565b9150509250925092565b60008060408385031215614d0157600080fd5b6000614d0f85828601614b16565b925050602083013567ffffffffffffffff811115614d2c57600080fd5b614d3885828601614b94565b9150509250929050565b60008060408385031215614d5557600080fd5b6000614d6385828601614b16565b9250506020614d7485828601614bbe565b9150509250929050565b600060208284031215614d9057600080fd5b600082013567ffffffffffffffff811115614daa57600080fd5b614db684828501614b55565b91505092915050565b600060208284031215614dd157600080fd5b6000614ddf84828501614b7f565b91505092915050565b600060208284031215614dfa57600080fd5b6000614e0884828501614bbe565b91505092915050565b600080600060608486031215614e2657600080fd5b6000614e3486828701614bd3565b9350506020614e4586828701614bd3565b9250506040614e5686828701614bd3565b9150509250925092565b6000614e6c8383614e78565b60208301905092915050565b614e81816155c5565b82525050565b614e90816155c5565b82525050565b6000614ea18261546b565b614eab818561548e565b9350614eb68361545b565b8060005b83811015614ee7578151614ece8882614e60565b9750614ed983615481565b925050600181019050614eba565b5085935050505092915050565b614efd816155e9565b82525050565b614f0c8161562c565b82525050565b6000614f1d82615476565b614f27818561549f565b9350614f3781856020860161564d565b614f40816157e8565b840191505092915050565b6000614f5860238361549f565b9150614f63826157f9565b604082019050919050565b6000614f7b60358361549f565b9150614f8682615848565b604082019050919050565b6000614f9e60228361549f565b9150614fa982615897565b604082019050919050565b6000614fc1601b8361549f565b9150614fcc826158e6565b602082019050919050565b6000614fe460218361549f565b9150614fef8261590f565b604082019050919050565b600061500760208361549f565b91506150128261595e565b602082019050919050565b600061502a60298361549f565b915061503582615987565b604082019050919050565b600061504d60258361549f565b9150615058826159d6565b604082019050919050565b600061507060248361549f565b915061507b82615a25565b604082019050919050565b600061509360178361549f565b915061509e82615a74565b602082019050919050565b6150b281615615565b82525050565b6150c18161561f565b82525050565b60006020820190506150dc6000830184614e87565b92915050565b60006040820190506150f76000830185614e87565b6151046020830184614e87565b9392505050565b60006060820190506151206000830186614e87565b61512d6020830185614e87565b61513a6040830184614e87565b949350505050565b60006040820190506151576000830185614e87565b61516460208301846150a9565b9392505050565b600060c0820190506151806000830189614e87565b61518d60208301886150a9565b61519a6040830187614f03565b6151a76060830186614f03565b6151b46080830185614e87565b6151c160a08301846150a9565b979650505050505050565b60006020820190506151e16000830184614ef4565b92915050565b600060208201905081810360008301526152018184614f12565b905092915050565b6000602082019050818103600083015261522281614f4b565b9050919050565b6000602082019050818103600083015261524281614f6e565b9050919050565b6000602082019050818103600083015261526281614f91565b9050919050565b6000602082019050818103600083015261528281614fb4565b9050919050565b600060208201905081810360008301526152a281614fd7565b9050919050565b600060208201905081810360008301526152c281614ffa565b9050919050565b600060208201905081810360008301526152e28161501d565b9050919050565b6000602082019050818103600083015261530281615040565b9050919050565b6000602082019050818103600083015261532281615063565b9050919050565b6000602082019050818103600083015261534281615086565b9050919050565b600060208201905061535e60008301846150a9565b92915050565b600060a08201905061537960008301886150a9565b6153866020830187614f03565b81810360408301526153988186614e96565b90506153a76060830185614e87565b6153b460808301846150a9565b9695505050505050565b60006020820190506153d360008301846150b8565b92915050565b60006153e36153f4565b90506153ef82826156b2565b919050565b6000604051905090565b600067ffffffffffffffff821115615419576154186157b9565b5b602082029050602081019050919050565b600067ffffffffffffffff821115615445576154446157b9565b5b61544e826157e8565b9050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b60006154bb82615615565b91506154c683615615565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156154fb576154fa61572c565b5b828201905092915050565b600061551182615615565b915061551c83615615565b92508261552c5761552b61575b565b5b828204905092915050565b600061554282615615565b915061554d83615615565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156155865761558561572c565b5b828202905092915050565b600061559c82615615565b91506155a783615615565b9250828210156155ba576155b961572c565b5b828203905092915050565b60006155d0826155f5565b9050919050565b60006155e2826155f5565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061563782615615565b9050919050565b82818337600083830152505050565b60005b8381101561566b578082015181840152602081019050615650565b8381111561567a576000848401525b50505050565b6000600282049050600182168061569857607f821691505b602082108114156156ac576156ab61578a565b5b50919050565b6156bb826157e8565b810181811067ffffffffffffffff821117156156da576156d96157b9565b5b80604052505050565b60006156ee82615615565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156157215761572061572c565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f54686973206265617220646f65736e2774206c696b6520796f752e204c6f6f6b60008201527f20666f7220686f6e657920656c736577686572652e0000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b615aa6816155c5565b8114615ab157600080fd5b50565b615abd816155d7565b8114615ac857600080fd5b50565b615ad4816155e9565b8114615adf57600080fd5b50565b615aeb81615615565b8114615af657600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220575e934216531a2a7072554e1debb73d45d7fd002950d911d30a958be691a9f564736f6c63430008040033

Deployed Bytecode Sourcemap

4698:18754:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7107:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20957:128;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8040:165;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21601:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22338:119;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7467:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8213:323;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21097:103;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7295:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20634:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17219:117;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17473:120;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23090:113;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18653:368;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20830:115;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21806:233;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19385:231;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17004:207;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16735:257;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7575:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20434:188;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22787:112;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17348:113;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19200:173;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;23215:113;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21212:188;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3149:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7199:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7705:171;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19033:155;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21412:177;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22051:80;;;;;;;;;;;;;:::i;:::-;;23336:113;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19628:201;;;;;;;;;;;;;:::i;:::-;;20148:274;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22973:109;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22233:97;;;;;;;;;;;;;:::i;:::-;;7884:148;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17684:957;;;;;;;;;;;;;:::i;:::-;;22143:82;;;;;;;;;;;;;:::i;:::-;;3241:162;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22465:106;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16635:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22583:196;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19841:109;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7107:84;7144:13;7177:6;7170:13;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7107:84;:::o;20957:128::-;3467:7;;;;;;;;;;3451:23;;:12;:10;:12::i;:::-;:23;;;3443:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21062:15:::1;21042:17;:35;;;;20957:128:::0;:::o;8040:165::-;8117:4;8134:41;8143:12;:10;:12::i;:::-;8157:8;8167:7;8134:8;:41::i;:::-;8193:4;8186:11;;8040:165;;;;:::o;21601:193::-;3467:7;;;;;;;;;;3451:23;;:12;:10;:12::i;:::-;:23;;;3443:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21713:15:::1;21694:16;;:34;;;;;;;;;;;;;;;;;;21782:4;21743:19;:36;21763:15;21743:36;;;;;;;;;;;;;;;;:43;;;;;;;;;;;;;;;;;;21601:193:::0;:::o;22338:119::-;22404:4;3467:7;;;;;;;;;;;3451:23;;:12;:10;:12::i;:::-;:23;;;3443:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22428:21:::1;;;;;;;;;;;22421:28;;22338:119:::0;:::o;7467:100::-;7520:7;4833:21;7540:19;;7467:100;:::o;8213:323::-;8314:4;8331:39;8341:7;8350:10;8362:7;8331:9;:39::i;:::-;8381:125;8390:7;8399:12;:10;:12::i;:::-;8413:92;8453:7;8413:92;;;;;;;;;;;;;;;;;:12;:21;8426:7;8413:21;;;;;;;;;;;;;;;:35;8435:12;:10;:12::i;:::-;8413:35;;;;;;;;;;;;;;;;:39;;:92;;;;;:::i;:::-;8381:8;:125::i;:::-;8524:4;8517:11;;8213:323;;;;;:::o;21097:103::-;21148:7;21175:17;;21168:24;;21097:103;:::o;7295:84::-;7336:5;7361:10;;;;;;;;;;;7354:17;;7295:84;:::o;20634:184::-;3467:7;;;;;;;;;;3451:23;;:12;:10;:12::i;:::-;:23;;;3443:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20720:9:::1;20715:96;20739:10;:17;20735:1;:21;20715:96;;;20778:21;20785:10;20796:1;20785:13;;;;;;;;;;;;;;;;;;;;;;20778:6;:21::i;:::-;20758:3;;;;;:::i;:::-;;;;20715:96;;;;20634:184:::0;:::o;17219:117::-;17283:4;17307:11;:21;17319:8;17307:21;;;;;;;;;;;;;;;;;;;;;;;;;17300:28;;17219:117;;;:::o;17473:120::-;17541:4;17565:10;:20;17576:8;17565:20;;;;;;;;;;;;;;;;;;;;;;;;;17558:27;;17473:120;;;:::o;23090:113::-;3467:7;;;;;;;;;;3451:23;;:12;:10;:12::i;:::-;:23;;;3443:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23190:5:::1;23167:10;:20;23178:8;23167:20;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;23090:113:::0;:::o;18653:368::-;3467:7;;;;;;;;;;3451:23;;:12;:10;:12::i;:::-;:23;;;3443:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18722:18:::1;18754:5;18744:7;:15;;;;:::i;:::-;18722:37;;18830:22;18847:4;4833:21;18830:16;;:22;;;;:::i;:::-;18817:10;:35;18809:44;;;::::0;::::1;;18919:10;18907:9;:22;;;;18957:9;;18940:13;:26;;;;18993:20;19011:1;18993:13;;:17;;:20;;;;:::i;:::-;18977:13;:36;;;;3522:1;18653:368:::0;:::o;20830:115::-;3467:7;;;;;;;;;;3451:23;;:12;:10;:12::i;:::-;:23;;;3443:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20906:5:::1;20893:6;:10;20900:2;20893:10;;;;;;;;;;;;;;;;:18;;;;;;;;;;;;;;;;;;20936:1;20922:10;;:15;;;;;;;:::i;:::-;;;;;;;;20830:115:::0;:::o;21806:233::-;3467:7;;;;;;;;;;3451:23;;:12;:10;:12::i;:::-;:23;;;3443:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21943:19:::1;21976:8;21943:42;;22023:8;22013:7;;:18;;;;;;;;;;;;;;;;;;3522:1;21806:233:::0;:::o;19385:231::-;3467:7;;;;;;;;;;3451:23;;:12;:10;:12::i;:::-;:23;;;3443:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19468:27:::1;19508:5;19499:6;:14;;;;:::i;:::-;19468:45;;19589:19;19563:23;:45;;;;3522:1;19385:231:::0;:::o;17004:207::-;17048:7;17139:4;17126:17;;:9;;;;;;;;;;;:17;;;17122:81;;;17165:1;17158:8;;;;17122:81;17202:1;17195:8;;17004:207;;:::o;16735:257::-;16799:4;16877:13;16893:5;16877:21;;16912:6;:16;16919:8;16912:16;;;;;;;;;;;;;;;;;;;;;;;;;16909:49;;;16954:4;16943:15;;16909:49;16976:8;16969:15;;;16735:257;;;:::o;7575:122::-;7642:7;7669:10;:20;7680:8;7669:20;;;;;;;;;;;;;;;;7662:27;;7575:122;;;:::o;20434:188::-;20531:13;20564:6;:25;20571:17;20564:25;;;;;;;;;;;;;;;:35;;:50;20600:13;20564:50;;;;;;;;;;;;;;;20557:57;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20434:188;;;;:::o;22787:112::-;3467:7;;;;;;;;;;3451:23;;:12;:10;:12::i;:::-;:23;;;3443:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22886:5:::1;22862:11;:21;22874:8;22862:21;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;22787:112:::0;:::o;17348:113::-;17409:4;17433:10;:20;17444:8;17433:20;;;;;;;;;;;;;;;;;;;;;;;;;17426:27;;17348:113;;;:::o;19200:173::-;3467:7;;;;;;;;;;3451:23;;:12;:10;:12::i;:::-;:23;;;3443:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19299:3:::1;19288:7;:14;;19280:23;;;::::0;::::1;;19358:7;19346:9;:19;;;;19200:173:::0;:::o;23215:113::-;3467:7;;;;;;;;;;3451:23;;:12;:10;:12::i;:::-;:23;;;3443:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23316:4:::1;23293:10;:20;23304:8;23293:20;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;23215:113:::0;:::o;21212:188::-;21274:7;3467;;;;;;;;;;;3451:23;;:12;:10;:12::i;:::-;:23;;;3443:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21371:21:::1;21364:28;;21212:188:::0;:::o;3149:80::-;3187:7;3214;;;;;;;;;;;3207:14;;3149:80;:::o;7199:88::-;7238:13;7271:8;7264:15;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7199:88;:::o;7705:171::-;7785:4;7802:44;7812:12;:10;:12::i;:::-;7826:10;7838:7;7802:9;:44::i;:::-;7864:4;7857:11;;7705:171;;;;:::o;19033:155::-;3467:7;;;;;;;;;;3451:23;;:12;:10;:12::i;:::-;:23;;;3443:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19123:3:::1;19115:4;:11;;19107:20;;;::::0;::::1;;19176:4;19167:6;:13;;;;19033:155:::0;:::o;21412:177::-;3467:7;;;;;;;;;;3451:23;;:12;:10;:12::i;:::-;:23;;;3443:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21514:12:::1;21498:13;;:28;;;;;;;;;;;;;;;;;;21577:4;21541:19;:33;21561:12;21541:33;;;;;;;;;;;;;;;;:40;;;;;;;;;;;;;;;;;;21412:177:::0;:::o;22051:80::-;3467:7;;;;;;;;;;3451:23;;:12;:10;:12::i;:::-;:23;;;3443:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22119:4:::1;22107:9;;:16;;;;;;;;;;;;;;;;;;22051:80::o:0;23336:113::-;3467:7;;;;;;;;;;3451:23;;:12;:10;:12::i;:::-;:23;;;3443:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23436:5:::1;23413:10;:20;23424:8;23413:20;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;23336:113:::0;:::o;19628:201::-;3467:7;;;;;;;;;;3451:23;;:12;:10;:12::i;:::-;:23;;;3443:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19728:13:::1;;19716:9;:25;;;;19768:13;;19752;:29;;;;19797:24;19811:9;;19797:24;;;;;;:::i;:::-;;;;;;;;19628:201::o:0;20148:274::-;20284:7;20236:6;:21;20243:13;20236:21;;;;;;;;;;;;;;;:31;;:45;20268:12;:10;:12::i;:::-;20236:45;;;;;;;;;;;;;;;:55;;;;;;;;;;;;:::i;:::-;;20302:15;20320:12;20302:30;;20343:53;20359:12;:10;:12::i;:::-;20373:13;20388:7;20343:15;:53::i;:::-;20148:274;;;:::o;22973:109::-;3467:7;;;;;;;;;;3451:23;;:12;:10;:12::i;:::-;:23;;;3443:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23070:4:::1;23047:10;:20;23058:8;23047:20;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;22973:109:::0;:::o;22233:97::-;3467:7;;;;;;;;;;3451:23;;:12;:10;:12::i;:::-;:23;;;3443:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22318:4:::1;22294:21;;:28;;;;;;;;;;;;;;;;;;22233:97::o:0;7884:148::-;7967:7;7994:12;:20;8007:6;7994:20;;;;;;;;;;;;;;;:30;8015:8;7994:30;;;;;;;;;;;;;;;;7987:37;;7884:148;;;;:::o;17684:957::-;3467:7;;;;;;;;;;3451:23;;:12;:10;:12::i;:::-;:23;;;3443:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17749:15:::1;;;;;;;;;;;17748:16;17740:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;17830:4;17802:11;:25;17814:12;:10;:12::i;:::-;17802:25;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;17845:35;17902:42;17845:100;;17976:16;17956:17;;:36;;;;;;;;;;;;;;;;;;18045:4;18003:11;:39;18023:17;;;;;;;;;;;18003:39;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;18060:65;18077:4;18092:17;;;;;;;;;;;4833:21;18060:8;:65::i;:::-;18172:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18154:56;;;18219:4;18226:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18154:96;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18136:15;;:114;;;;;;;;;;;;;;;;;;18292:4;18261:11;:28;18273:15;;;;;;;;;;;18261:28;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;18337:4;18307:10;:27;18318:15;;;;;;;;;;;18307:27;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;18352:17;;;;;;;;;;;:33;;;18393:21;18424:4;18430:24;18448:4;18430:9;:24::i;:::-;18455:1;18457::::0;18459:7:::1;:5;:7::i;:::-;18467:15;18352:131;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;18510:4;18494:13;;:20;;;;;;;;;;;;;;;;;;18543:4;18525:15;;:22;;;;;;;;;;;;;;;;;;18565:15;;;;;;;;;;;18558:31;;;18598:17;;;;;;;;;;;18618:14;18558:75;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;3522:1;17684:957::o:0;22143:82::-;3467:7;;;;;;;;;;3451:23;;:12;:10;:12::i;:::-;:23;;;3443:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22212:5:::1;22200:9;;:17;;;;;;;;;;;;;;;;;;22143:82::o:0;3241:162::-;3467:7;;;;;;;;;;3451:23;;:12;:10;:12::i;:::-;:23;;;3443:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;3357:8:::1;3327:39;;3348:7;::::0;::::1;;;;;;;;3327:39;;;;;;;;;;;;3387:8;3377:7;::::0;:18:::1;;;;;;;;;;;;;;;;;;3241:162:::0;:::o;22465:106::-;3467:7;;;;;;;;;;3451:23;;:12;:10;:12::i;:::-;:23;;;3443:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22559:4:::1;22535:11;:21;22547:8;22535:21;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;22465:106:::0;:::o;16635:88::-;16678:7;16705:10;;16698:17;;16635:88;:::o;22583:196::-;3467:7;;;;;;;;;;3451:23;;:12;:10;:12::i;:::-;:23;;;3443:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22675:9:::1;22670:102;22694:10;:17;22690:1;:21;22670:102;;;22733:27;22746:10;22757:1;22746:13;;;;;;;;;;;;;;;;;;;;;;22733:12;:27::i;:::-;22713:3;;;;;:::i;:::-;;;;22670:102;;;;22583:196:::0;:::o;19841:109::-;3467:7;;;;;;;;;;3451:23;;:12;:10;:12::i;:::-;:23;;;3443:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19912:4:::1;19899:6;:10;19906:2;19899:10;;;;;;;;;;;;;;;;:17;;;;;;;;;;;;;;;;;;19941:1;19927:10;;:15;;;;;;;:::i;:::-;;;;;;;;19841:109:::0;:::o;2239:246::-;2297:7;2326:1;2321;:6;2317:47;;;2351:1;2344:8;;;;2317:47;2374:9;2390:1;2386;:5;;;;:::i;:::-;2374:17;;2419:1;2414;2410;:5;;;;:::i;:::-;:10;2402:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2476:1;2469:8;;;2239:246;;;;;:::o;904:98::-;957:7;984:10;977:17;;904:98;:::o;9780:347::-;9894:1;9876:20;;:6;:20;;;;9868:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;9976:1;9956:22;;:8;:22;;;;9948:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;10061:7;10028:12;:20;10041:6;10028:20;;;;;;;;;;;;;;;:30;10049:8;10028:30;;;;;;;;;;;;;;;:40;;;;10101:8;10084:35;;10093:6;10084:35;;;10111:7;10084:35;;;;;;:::i;:::-;;;;;;;;9780:347;;;:::o;11138:2460::-;11257:1;11238:21;;:7;:21;;;;11230:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;11342:1;11320:24;;:10;:24;;;;11312:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;11413:1;11403:7;:11;11395:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;11478:21;;;;;;;;;;;11473:73;;11522:11;:23;11534:10;11522:23;;;;;;;;;;;;;;;;;;;;;;;;;11514:32;;;;;;11473:73;11562:25;11576:10;11562:13;:25::i;:::-;11559:221;;;11604:19;11626:34;11652:7;11626:21;11636:10;11626:9;:21::i;:::-;:25;;:34;;;;:::i;:::-;11604:56;;11697:13;;11683:11;:27;11675:36;;;;;;11559:221;;11813:9;;;;;;;;;;;11810:1091;;;11839:41;11849:10;11861:7;11870:9;11839;:41::i;:::-;11926:27;11945:7;11926:18;:27::i;:::-;:46;;;;;11957:15;;;;;;;;;;;11926:46;11923:187;;;12031:5;12012:24;;:6;:15;12019:7;12012:15;;;;;;;;;;;;;;;;;;;;;;;;;:24;;;12004:90;;;;;;;;;;;;:::i;:::-;;;;;;;;;11923:187;11810:1091;;;12146:15;;;;;;;;;;;12142:748;;;12185:27;12204:7;12185:18;:27::i;:::-;12182:693;;;12264:5;12245:24;;:6;:15;12252:7;12245:15;;;;;;;;;;;;;;;;;;;;;;;;;:24;;;12237:90;;;;;;;;;;;;:::i;:::-;;;;;;;;;12375:1;12354:17;;:22;12350:226;;;12435:15;12413:10;:19;12424:7;12413:19;;;;;;;;;;;;;;;;:37;12405:46;;;;;;12541:9;12520:17;;:31;;;;:::i;:::-;12500:15;:52;;;;:::i;:::-;12478:10;:19;12489:7;12478:19;;;;;;;;;;;;;;;:74;;;;12350:226;12182:693;;;12649:1;12628:17;;:22;12624:232;;;12712:15;12687:10;:22;12698:10;12687:22;;;;;;;;;;;;;;;;:40;12679:49;;;;;;12821:9;12800:17;;:31;;;;:::i;:::-;12780:15;:52;;;;:::i;:::-;12755:10;:22;12766:10;12755:22;;;;;;;;;;;;;;;:77;;;;12624:232;12182:693;12142:748;11810:1091;12925:28;12933:7;12942:10;12925:7;:28::i;:::-;12921:401;;;13039:9;;13028:7;:20;;13020:29;;;;;;13068:40;13088:7;13097:10;13068:19;:40::i;:::-;13064:132;;;13179:17;13188:7;13179:8;:17::i;:::-;13064:132;12921:401;13334:45;13350:7;13359:10;13371:7;13334:15;:45::i;:::-;13421:9;;;;;;;;;;;13418:137;;;13513:7;;;;;;;;;;;:21;;;13535:7;13544:10;13513:42;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13418:137;11138:2460;;;:::o;2041:190::-;2127:7;2160:1;2155;:6;;2163:12;2147:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2187:9;2203:1;2199;:5;;;;:::i;:::-;2187:17;;2222:1;2215:8;;;2041:190;;;;;:::o;2493:132::-;2551:7;2578:39;2582:1;2585;2578:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2571:46;;2493:132;;;;:::o;13606:1205::-;13708:40;13728:7;13737:10;13708:19;:40::i;:::-;13704:1100;;;13765:24;13792:40;13812:7;13821:10;13792:19;:40::i;:::-;13765:67;;13847:19;13869:40;13903:5;13869:29;13881:16;13869:7;:11;;:29;;;;:::i;:::-;:33;;:40;;;;:::i;:::-;13847:62;;13924:18;13945:24;13957:11;13945:7;:11;;:24;;;;:::i;:::-;13924:45;;13986:27;14016:43;14039:7;14048:10;14016:22;:43::i;:::-;13986:73;;14074:22;14099:43;14136:5;14099:32;14111:19;14099:7;:11;;:32;;;;:::i;:::-;:36;;:43;;;;:::i;:::-;14074:68;;14170:30;14185:14;14170:10;:14;;:30;;;;:::i;:::-;14157:43;;14251:32;14275:7;14251:10;:19;14262:7;14251:19;;;;;;;;;;;;;;;;:23;;:32;;;;:::i;:::-;14229:10;:19;14240:7;14229:19;;;;;;;;;;;;;;;:54;;;;14323:38;14350:10;14323;:22;14334:10;14323:22;;;;;;;;;;;;;;;;:26;;:38;;;;:::i;:::-;14298:10;:22;14309:10;14298:22;;;;;;;;;;;;;;;:63;;;;14404:62;14451:14;14404:42;14434:11;14404:10;:25;14423:4;14404:25;;;;;;;;;;;;;;;;:29;;:42;;;;:::i;:::-;:46;;:62;;;;:::i;:::-;14376:10;:25;14395:4;14376:25;;;;;;;;;;;;;;;:90;;;;14549:10;14531:41;;14540:7;14531:41;;;14561:10;14531:41;;;;;;:::i;:::-;;;;;;;;13704:1100;;;;;;;;14627:32;14651:7;14627:10;:19;14638:7;14627:19;;;;;;;;;;;;;;;;:23;;:32;;;;:::i;:::-;14605:10;:19;14616:7;14605:19;;;;;;;;;;;;;;;:54;;;;14699:35;14726:7;14699:10;:22;14710:10;14699:22;;;;;;;;;;;;;;;;:26;;:35;;;;:::i;:::-;14674:10;:22;14685:10;14674:22;;;;;;;;;;;;;;;:60;;;;14772:10;14754:38;;14763:7;14754:38;;;14784:7;14754:38;;;;;;:::i;:::-;;;;;;;;13704:1100;13606:1205;;;:::o;9309:169::-;9373:4;9411:15;;;;;;;;;;;9397:29;;:10;:29;;;;:73;;;;;9452:17;;;;;;;;;;;9430:40;;:10;:40;;;;9397:73;9390:80;;9309:169;;;:::o;1710:179::-;1768:7;1788:9;1804:1;1800;:5;;;;:::i;:::-;1788:17;;1829:1;1824;:6;;1816:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1880:1;1873:8;;;1710:179;;;;:::o;10136:837::-;10246:15;;;;;;;;;;;10232:29;;:10;:29;;;:59;;;;10276:15;;;;;;;;;;;10265:26;;:7;:26;;;10232:59;10231:80;;;;;10296:15;;;;;;;;;;;10231:80;10228:738;;;10327:21;10351:7;;;;;;;;;;;:19;;;10371:10;10383:15;;;;;;;;;;;10400:7;10351:57;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:85;;;;;10413:23;10425:10;10413:11;:23::i;:::-;10412:24;10351:85;10327:109;;10473:18;10494:7;;;;;;;;;;;:19;;;10514:7;10523:15;;;;;;;;;;;10540:7;10494:54;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:79;;;;;10553:20;10565:7;10553:11;:20::i;:::-;10552:21;10494:79;10473:100;;10613:16;10610:170;;;10649:22;10660:10;10649;:22::i;:::-;10690:19;10701:7;10690:10;:19::i;:::-;10733:31;10744:10;10756:7;10733:31;;;;;;;:::i;:::-;;;;;;;;10610:170;10797:13;10794:161;;;10830:19;10841:7;10830:10;:19::i;:::-;10868;10879:7;10868:10;:19::i;:::-;10911:28;10922:7;10931;10911:28;;;;;;;:::i;:::-;;;;;;;;10794:161;10228:738;;;10136:837;;;:::o;8954:126::-;9020:4;9067:5;9044:28;;:10;:19;9055:7;9044:19;;;;;;;;;;;;;;;;;;;;;;;;;:28;;;9037:35;;8954:126;;;:::o;8777:169::-;8852:4;8887:7;:5;:7::i;:::-;8876:18;;:7;:18;;;;:43;;;;;8912:7;:5;:7::i;:::-;8898:21;;:10;:21;;;;8876:43;:62;;;;;8923:15;;;;;;;;;;;8876:62;8869:69;;8777:169;;;;:::o;9486:165::-;9574:4;9598:10;:19;9609:7;9598:19;;;;;;;;;;;;;;;;;;;;;;;;;:45;;;;9621:10;:22;9632:10;9621:22;;;;;;;;;;;;;;;;;;;;;;;;;9598:45;9591:52;;9486:165;;;;:::o;15339:374::-;15393:21;15417:24;15435:4;15417:9;:24::i;:::-;15393:48;;15462:38;15520:23;;15503:13;:40;;15462:81;;15558:21;15571:7;15558:12;:21::i;:::-;:58;;;;;15583:33;15558:58;15554:152;;;15633:32;15651:13;15633:17;:32::i;:::-;15680:14;:12;:14::i;:::-;15554:152;15339:374;;;:::o;2633:189::-;2719:7;2751:1;2747;:5;2754:12;2739:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2778:9;2794:1;2790;:5;;;;:::i;:::-;2778:17;;2813:1;2806:8;;;2633:189;;;;;:::o;14820:249::-;14908:7;14928:10;14943:19;:28;14963:7;14943:28;;;;;;;;;;;;;;;;;;;;;;;;;:63;;;;14975:19;:31;14995:10;14975:31;;;;;;;;;;;;;;;;;;;;;;;;;14943:63;14941:66;14928:79;;15022:5;15018:19;;15036:1;15029:8;;;;;15018:19;15055:6;;15048:13;;;14820:249;;;;;:::o;1897:136::-;1955:7;1982:43;1986:1;1989;1982:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1975:50;;1897:136;;;;:::o;15075:255::-;15166:7;15186:10;15201:19;:28;15221:7;15201:28;;;;;;;;;;;;;;;;;;;;;;;;;:63;;;;15233:19;:31;15253:10;15233:31;;;;;;;;;;;;;;;;;;;;;;;;;15201:63;15199:66;15186:79;;15280:5;15276:19;;15294:1;15287:8;;;;;15276:19;15313:9;;15306:16;;;15075:255;;;;;:::o;9659:113::-;9720:4;9744:10;:20;9755:8;9744:20;;;;;;;;;;;;;;;;;;;;;;;;;9737:27;;9659:113;;;:::o;10981:149::-;11042:6;:16;11049:8;11042:16;;;;;;;;;;;;;;;;;;;;;;;;;11038:50;;11087:1;11073:10;;:15;;;;;;;:::i;:::-;;;;;;;;11038:50;11118:4;11099:6;:16;11106:8;11099:16;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;10981:149;:::o;8621:148::-;8681:4;8706:8;;;;;;;;;;;8705:9;:39;;;;;8729:15;;;;;;;;;;;8718:26;;:7;:26;;;;8705:39;:56;;;;;8748:13;;;;;;;;;;;8705:56;8698:63;;8621:148;;;:::o;15725:482::-;6553:4;6542:8;;:15;;;;;;;;;;;;;;;;;;15800:22:::1;15839:1;15825:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15800:41;;15871:4;15852:5;15858:1;15852:8;;;;;;;;;;;;;;;;;;;;;:24;;;;;;;;;::::0;::::1;15898:17;;;;;;;;;;;:22;;;:24;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15887:5;15893:1;15887:8;;;;;;;;;;;;;;;;;;;;;:35;;;;;;;;;::::0;::::1;15933:60;15950:4;15965:17;;;;;;;;;;;15985:7;15933:8;:60::i;:::-;16004:17;;;;;;;;;;;:68;;;16087:7;16109:1;16125:5;16153:4;16173:15;16004:195;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;6568:1;6591:5:::0;6580:8;;:16;;;;;;;;;;;;;;;;;;15725:482;:::o;16219:317::-;16262:19;16284:21;16262:43;;16316:14;16333:21;16347:6;;16333:9;;:13;;:21;;;;:::i;:::-;16316:38;;16365:16;16384:38;16415:6;16384:26;16398:11;16384:9;;:13;;:26;;;;:::i;:::-;:30;;:38;;;;:::i;:::-;16365:57;;16433:16;;;;;;;;;;;:25;;:35;16459:8;16433:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16479:13;;;;;;;;;;;:22;;:49;16502:25;16518:8;16502:11;:15;;:25;;;;:::i;:::-;16479:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16219:317;;;:::o;-1:-1:-1:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;24:655:1:-;120:5;145:81;161:64;218:6;161:64;:::i;:::-;145:81;:::i;:::-;136:90;;246:5;275:6;268:5;261:21;309:4;302:5;298:16;291:23;;335:6;385:3;377:4;369:6;365:17;360:3;356:27;353:36;350:2;;;414:1;411;404:12;350:2;450:1;435:238;460:6;457:1;454:13;435:238;;;528:3;557:37;590:3;578:10;557:37;:::i;:::-;552:3;545:50;624:4;619:3;615:14;608:21;;658:4;653:3;649:14;642:21;;495:178;482:1;479;475:9;470:14;;435:238;;;439:14;126:553;;;;;;;:::o;685:345::-;763:5;788:66;804:49;846:6;804:49;:::i;:::-;788:66;:::i;:::-;779:75;;877:6;870:5;863:21;915:4;908:5;904:16;953:3;944:6;939:3;935:16;932:25;929:2;;;970:1;967;960:12;929:2;983:41;1017:6;1012:3;1007;983:41;:::i;:::-;769:261;;;;;;:::o;1036:139::-;1082:5;1120:6;1107:20;1098:29;;1136:33;1163:5;1136:33;:::i;:::-;1088:87;;;;:::o;1181:143::-;1238:5;1269:6;1263:13;1254:22;;1285:33;1312:5;1285:33;:::i;:::-;1244:80;;;;:::o;1330:155::-;1384:5;1422:6;1409:20;1400:29;;1438:41;1473:5;1438:41;:::i;:::-;1390:95;;;;:::o;1508:303::-;1579:5;1628:3;1621:4;1613:6;1609:17;1605:27;1595:2;;1646:1;1643;1636:12;1595:2;1686:6;1673:20;1711:94;1801:3;1793:6;1786:4;1778:6;1774:17;1711:94;:::i;:::-;1702:103;;1585:226;;;;;:::o;1817:137::-;1871:5;1902:6;1896:13;1887:22;;1918:30;1942:5;1918:30;:::i;:::-;1877:77;;;;:::o;1974:273::-;2030:5;2079:3;2072:4;2064:6;2060:17;2056:27;2046:2;;2097:1;2094;2087:12;2046:2;2137:6;2124:20;2162:79;2237:3;2229:6;2222:4;2214:6;2210:17;2162:79;:::i;:::-;2153:88;;2036:211;;;;;:::o;2253:139::-;2299:5;2337:6;2324:20;2315:29;;2353:33;2380:5;2353:33;:::i;:::-;2305:87;;;;:::o;2398:143::-;2455:5;2486:6;2480:13;2471:22;;2502:33;2529:5;2502:33;:::i;:::-;2461:80;;;;:::o;2547:262::-;2606:6;2655:2;2643:9;2634:7;2630:23;2626:32;2623:2;;;2671:1;2668;2661:12;2623:2;2714:1;2739:53;2784:7;2775:6;2764:9;2760:22;2739:53;:::i;:::-;2729:63;;2685:117;2613:196;;;;:::o;2815:284::-;2885:6;2934:2;2922:9;2913:7;2909:23;2905:32;2902:2;;;2950:1;2947;2940:12;2902:2;2993:1;3018:64;3074:7;3065:6;3054:9;3050:22;3018:64;:::i;:::-;3008:74;;2964:128;2892:207;;;;:::o;3105:278::-;3172:6;3221:2;3209:9;3200:7;3196:23;3192:32;3189:2;;;3237:1;3234;3227:12;3189:2;3280:1;3305:61;3358:7;3349:6;3338:9;3334:22;3305:61;:::i;:::-;3295:71;;3251:125;3179:204;;;;:::o;3389:407::-;3457:6;3465;3514:2;3502:9;3493:7;3489:23;3485:32;3482:2;;;3530:1;3527;3520:12;3482:2;3573:1;3598:53;3643:7;3634:6;3623:9;3619:22;3598:53;:::i;:::-;3588:63;;3544:117;3700:2;3726:53;3771:7;3762:6;3751:9;3747:22;3726:53;:::i;:::-;3716:63;;3671:118;3472:324;;;;;:::o;3802:552::-;3879:6;3887;3895;3944:2;3932:9;3923:7;3919:23;3915:32;3912:2;;;3960:1;3957;3950:12;3912:2;4003:1;4028:53;4073:7;4064:6;4053:9;4049:22;4028:53;:::i;:::-;4018:63;;3974:117;4130:2;4156:53;4201:7;4192:6;4181:9;4177:22;4156:53;:::i;:::-;4146:63;;4101:118;4258:2;4284:53;4329:7;4320:6;4309:9;4305:22;4284:53;:::i;:::-;4274:63;;4229:118;3902:452;;;;;:::o;4360:520::-;4438:6;4446;4495:2;4483:9;4474:7;4470:23;4466:32;4463:2;;;4511:1;4508;4501:12;4463:2;4554:1;4579:53;4624:7;4615:6;4604:9;4600:22;4579:53;:::i;:::-;4569:63;;4525:117;4709:2;4698:9;4694:18;4681:32;4740:18;4732:6;4729:30;4726:2;;;4772:1;4769;4762:12;4726:2;4800:63;4855:7;4846:6;4835:9;4831:22;4800:63;:::i;:::-;4790:73;;4652:221;4453:427;;;;;:::o;4886:407::-;4954:6;4962;5011:2;4999:9;4990:7;4986:23;4982:32;4979:2;;;5027:1;5024;5017:12;4979:2;5070:1;5095:53;5140:7;5131:6;5120:9;5116:22;5095:53;:::i;:::-;5085:63;;5041:117;5197:2;5223:53;5268:7;5259:6;5248:9;5244:22;5223:53;:::i;:::-;5213:63;;5168:118;4969:324;;;;;:::o;5299:405::-;5383:6;5432:2;5420:9;5411:7;5407:23;5403:32;5400:2;;;5448:1;5445;5438:12;5400:2;5519:1;5508:9;5504:17;5491:31;5549:18;5541:6;5538:30;5535:2;;;5581:1;5578;5571:12;5535:2;5609:78;5679:7;5670:6;5659:9;5655:22;5609:78;:::i;:::-;5599:88;;5462:235;5390:314;;;;:::o;5710:278::-;5777:6;5826:2;5814:9;5805:7;5801:23;5797:32;5794:2;;;5842:1;5839;5832:12;5794:2;5885:1;5910:61;5963:7;5954:6;5943:9;5939:22;5910:61;:::i;:::-;5900:71;;5856:125;5784:204;;;;:::o;5994:262::-;6053:6;6102:2;6090:9;6081:7;6077:23;6073:32;6070:2;;;6118:1;6115;6108:12;6070:2;6161:1;6186:53;6231:7;6222:6;6211:9;6207:22;6186:53;:::i;:::-;6176:63;;6132:117;6060:196;;;;:::o;6262:596::-;6350:6;6358;6366;6415:2;6403:9;6394:7;6390:23;6386:32;6383:2;;;6431:1;6428;6421:12;6383:2;6474:1;6499:64;6555:7;6546:6;6535:9;6531:22;6499:64;:::i;:::-;6489:74;;6445:128;6612:2;6638:64;6694:7;6685:6;6674:9;6670:22;6638:64;:::i;:::-;6628:74;;6583:129;6751:2;6777:64;6833:7;6824:6;6813:9;6809:22;6777:64;:::i;:::-;6767:74;;6722:129;6373:485;;;;;:::o;6864:179::-;6933:10;6954:46;6996:3;6988:6;6954:46;:::i;:::-;7032:4;7027:3;7023:14;7009:28;;6944:99;;;;:::o;7049:108::-;7126:24;7144:5;7126:24;:::i;:::-;7121:3;7114:37;7104:53;;:::o;7163:118::-;7250:24;7268:5;7250:24;:::i;:::-;7245:3;7238:37;7228:53;;:::o;7317:732::-;7436:3;7465:54;7513:5;7465:54;:::i;:::-;7535:86;7614:6;7609:3;7535:86;:::i;:::-;7528:93;;7645:56;7695:5;7645:56;:::i;:::-;7724:7;7755:1;7740:284;7765:6;7762:1;7759:13;7740:284;;;7841:6;7835:13;7868:63;7927:3;7912:13;7868:63;:::i;:::-;7861:70;;7954:60;8007:6;7954:60;:::i;:::-;7944:70;;7800:224;7787:1;7784;7780:9;7775:14;;7740:284;;;7744:14;8040:3;8033:10;;7441:608;;;;;;;:::o;8055:109::-;8136:21;8151:5;8136:21;:::i;:::-;8131:3;8124:34;8114:50;;:::o;8170:147::-;8265:45;8304:5;8265:45;:::i;:::-;8260:3;8253:58;8243:74;;:::o;8323:364::-;8411:3;8439:39;8472:5;8439:39;:::i;:::-;8494:71;8558:6;8553:3;8494:71;:::i;:::-;8487:78;;8574:52;8619:6;8614:3;8607:4;8600:5;8596:16;8574:52;:::i;:::-;8651:29;8673:6;8651:29;:::i;:::-;8646:3;8642:39;8635:46;;8415:272;;;;;:::o;8693:366::-;8835:3;8856:67;8920:2;8915:3;8856:67;:::i;:::-;8849:74;;8932:93;9021:3;8932:93;:::i;:::-;9050:2;9045:3;9041:12;9034:19;;8839:220;;;:::o;9065:366::-;9207:3;9228:67;9292:2;9287:3;9228:67;:::i;:::-;9221:74;;9304:93;9393:3;9304:93;:::i;:::-;9422:2;9417:3;9413:12;9406:19;;9211:220;;;:::o;9437:366::-;9579:3;9600:67;9664:2;9659:3;9600:67;:::i;:::-;9593:74;;9676:93;9765:3;9676:93;:::i;:::-;9794:2;9789:3;9785:12;9778:19;;9583:220;;;:::o;9809:366::-;9951:3;9972:67;10036:2;10031:3;9972:67;:::i;:::-;9965:74;;10048:93;10137:3;10048:93;:::i;:::-;10166:2;10161:3;10157:12;10150:19;;9955:220;;;:::o;10181:366::-;10323:3;10344:67;10408:2;10403:3;10344:67;:::i;:::-;10337:74;;10420:93;10509:3;10420:93;:::i;:::-;10538:2;10533:3;10529:12;10522:19;;10327:220;;;:::o;10553:366::-;10695:3;10716:67;10780:2;10775:3;10716:67;:::i;:::-;10709:74;;10792:93;10881:3;10792:93;:::i;:::-;10910:2;10905:3;10901:12;10894:19;;10699:220;;;:::o;10925:366::-;11067:3;11088:67;11152:2;11147:3;11088:67;:::i;:::-;11081:74;;11164:93;11253:3;11164:93;:::i;:::-;11282:2;11277:3;11273:12;11266:19;;11071:220;;;:::o;11297:366::-;11439:3;11460:67;11524:2;11519:3;11460:67;:::i;:::-;11453:74;;11536:93;11625:3;11536:93;:::i;:::-;11654:2;11649:3;11645:12;11638:19;;11443:220;;;:::o;11669:366::-;11811:3;11832:67;11896:2;11891:3;11832:67;:::i;:::-;11825:74;;11908:93;11997:3;11908:93;:::i;:::-;12026:2;12021:3;12017:12;12010:19;;11815:220;;;:::o;12041:366::-;12183:3;12204:67;12268:2;12263:3;12204:67;:::i;:::-;12197:74;;12280:93;12369:3;12280:93;:::i;:::-;12398:2;12393:3;12389:12;12382:19;;12187:220;;;:::o;12413:118::-;12500:24;12518:5;12500:24;:::i;:::-;12495:3;12488:37;12478:53;;:::o;12537:112::-;12620:22;12636:5;12620:22;:::i;:::-;12615:3;12608:35;12598:51;;:::o;12655:222::-;12748:4;12786:2;12775:9;12771:18;12763:26;;12799:71;12867:1;12856:9;12852:17;12843:6;12799:71;:::i;:::-;12753:124;;;;:::o;12883:332::-;13004:4;13042:2;13031:9;13027:18;13019:26;;13055:71;13123:1;13112:9;13108:17;13099:6;13055:71;:::i;:::-;13136:72;13204:2;13193:9;13189:18;13180:6;13136:72;:::i;:::-;13009:206;;;;;:::o;13221:442::-;13370:4;13408:2;13397:9;13393:18;13385:26;;13421:71;13489:1;13478:9;13474:17;13465:6;13421:71;:::i;:::-;13502:72;13570:2;13559:9;13555:18;13546:6;13502:72;:::i;:::-;13584;13652:2;13641:9;13637:18;13628:6;13584:72;:::i;:::-;13375:288;;;;;;:::o;13669:332::-;13790:4;13828:2;13817:9;13813:18;13805:26;;13841:71;13909:1;13898:9;13894:17;13885:6;13841:71;:::i;:::-;13922:72;13990:2;13979:9;13975:18;13966:6;13922:72;:::i;:::-;13795:206;;;;;:::o;14007:807::-;14256:4;14294:3;14283:9;14279:19;14271:27;;14308:71;14376:1;14365:9;14361:17;14352:6;14308:71;:::i;:::-;14389:72;14457:2;14446:9;14442:18;14433:6;14389:72;:::i;:::-;14471:80;14547:2;14536:9;14532:18;14523:6;14471:80;:::i;:::-;14561;14637:2;14626:9;14622:18;14613:6;14561:80;:::i;:::-;14651:73;14719:3;14708:9;14704:19;14695:6;14651:73;:::i;:::-;14734;14802:3;14791:9;14787:19;14778:6;14734:73;:::i;:::-;14261:553;;;;;;;;;:::o;14820:210::-;14907:4;14945:2;14934:9;14930:18;14922:26;;14958:65;15020:1;15009:9;15005:17;14996:6;14958:65;:::i;:::-;14912:118;;;;:::o;15036:313::-;15149:4;15187:2;15176:9;15172:18;15164:26;;15236:9;15230:4;15226:20;15222:1;15211:9;15207:17;15200:47;15264:78;15337:4;15328:6;15264:78;:::i;:::-;15256:86;;15154:195;;;;:::o;15355:419::-;15521:4;15559:2;15548:9;15544:18;15536:26;;15608:9;15602:4;15598:20;15594:1;15583:9;15579:17;15572:47;15636:131;15762:4;15636:131;:::i;:::-;15628:139;;15526:248;;;:::o;15780:419::-;15946:4;15984:2;15973:9;15969:18;15961:26;;16033:9;16027:4;16023:20;16019:1;16008:9;16004:17;15997:47;16061:131;16187:4;16061:131;:::i;:::-;16053:139;;15951:248;;;:::o;16205:419::-;16371:4;16409:2;16398:9;16394:18;16386:26;;16458:9;16452:4;16448:20;16444:1;16433:9;16429:17;16422:47;16486:131;16612:4;16486:131;:::i;:::-;16478:139;;16376:248;;;:::o;16630:419::-;16796:4;16834:2;16823:9;16819:18;16811:26;;16883:9;16877:4;16873:20;16869:1;16858:9;16854:17;16847:47;16911:131;17037:4;16911:131;:::i;:::-;16903:139;;16801:248;;;:::o;17055:419::-;17221:4;17259:2;17248:9;17244:18;17236:26;;17308:9;17302:4;17298:20;17294:1;17283:9;17279:17;17272:47;17336:131;17462:4;17336:131;:::i;:::-;17328:139;;17226:248;;;:::o;17480:419::-;17646:4;17684:2;17673:9;17669:18;17661:26;;17733:9;17727:4;17723:20;17719:1;17708:9;17704:17;17697:47;17761:131;17887:4;17761:131;:::i;:::-;17753:139;;17651:248;;;:::o;17905:419::-;18071:4;18109:2;18098:9;18094:18;18086:26;;18158:9;18152:4;18148:20;18144:1;18133:9;18129:17;18122:47;18186:131;18312:4;18186:131;:::i;:::-;18178:139;;18076:248;;;:::o;18330:419::-;18496:4;18534:2;18523:9;18519:18;18511:26;;18583:9;18577:4;18573:20;18569:1;18558:9;18554:17;18547:47;18611:131;18737:4;18611:131;:::i;:::-;18603:139;;18501:248;;;:::o;18755:419::-;18921:4;18959:2;18948:9;18944:18;18936:26;;19008:9;19002:4;18998:20;18994:1;18983:9;18979:17;18972:47;19036:131;19162:4;19036:131;:::i;:::-;19028:139;;18926:248;;;:::o;19180:419::-;19346:4;19384:2;19373:9;19369:18;19361:26;;19433:9;19427:4;19423:20;19419:1;19408:9;19404:17;19397:47;19461:131;19587:4;19461:131;:::i;:::-;19453:139;;19351:248;;;:::o;19605:222::-;19698:4;19736:2;19725:9;19721:18;19713:26;;19749:71;19817:1;19806:9;19802:17;19793:6;19749:71;:::i;:::-;19703:124;;;;:::o;19833:831::-;20096:4;20134:3;20123:9;20119:19;20111:27;;20148:71;20216:1;20205:9;20201:17;20192:6;20148:71;:::i;:::-;20229:80;20305:2;20294:9;20290:18;20281:6;20229:80;:::i;:::-;20356:9;20350:4;20346:20;20341:2;20330:9;20326:18;20319:48;20384:108;20487:4;20478:6;20384:108;:::i;:::-;20376:116;;20502:72;20570:2;20559:9;20555:18;20546:6;20502:72;:::i;:::-;20584:73;20652:3;20641:9;20637:19;20628:6;20584:73;:::i;:::-;20101:563;;;;;;;;:::o;20670:214::-;20759:4;20797:2;20786:9;20782:18;20774:26;;20810:67;20874:1;20863:9;20859:17;20850:6;20810:67;:::i;:::-;20764:120;;;;:::o;20890:129::-;20924:6;20951:20;;:::i;:::-;20941:30;;20980:33;21008:4;21000:6;20980:33;:::i;:::-;20931:88;;;:::o;21025:75::-;21058:6;21091:2;21085:9;21075:19;;21065:35;:::o;21106:311::-;21183:4;21273:18;21265:6;21262:30;21259:2;;;21295:18;;:::i;:::-;21259:2;21345:4;21337:6;21333:17;21325:25;;21405:4;21399;21395:15;21387:23;;21188:229;;;:::o;21423:308::-;21485:4;21575:18;21567:6;21564:30;21561:2;;;21597:18;;:::i;:::-;21561:2;21635:29;21657:6;21635:29;:::i;:::-;21627:37;;21719:4;21713;21709:15;21701:23;;21490:241;;;:::o;21737:132::-;21804:4;21827:3;21819:11;;21857:4;21852:3;21848:14;21840:22;;21809:60;;;:::o;21875:114::-;21942:6;21976:5;21970:12;21960:22;;21949:40;;;:::o;21995:99::-;22047:6;22081:5;22075:12;22065:22;;22054:40;;;:::o;22100:113::-;22170:4;22202;22197:3;22193:14;22185:22;;22175:38;;;:::o;22219:184::-;22318:11;22352:6;22347:3;22340:19;22392:4;22387:3;22383:14;22368:29;;22330:73;;;;:::o;22409:169::-;22493:11;22527:6;22522:3;22515:19;22567:4;22562:3;22558:14;22543:29;;22505:73;;;;:::o;22584:305::-;22624:3;22643:20;22661:1;22643:20;:::i;:::-;22638:25;;22677:20;22695:1;22677:20;:::i;:::-;22672:25;;22831:1;22763:66;22759:74;22756:1;22753:81;22750:2;;;22837:18;;:::i;:::-;22750:2;22881:1;22878;22874:9;22867:16;;22628:261;;;;:::o;22895:185::-;22935:1;22952:20;22970:1;22952:20;:::i;:::-;22947:25;;22986:20;23004:1;22986:20;:::i;:::-;22981:25;;23025:1;23015:2;;23030:18;;:::i;:::-;23015:2;23072:1;23069;23065:9;23060:14;;22937:143;;;;:::o;23086:348::-;23126:7;23149:20;23167:1;23149:20;:::i;:::-;23144:25;;23183:20;23201:1;23183:20;:::i;:::-;23178:25;;23371:1;23303:66;23299:74;23296:1;23293:81;23288:1;23281:9;23274:17;23270:105;23267:2;;;23378:18;;:::i;:::-;23267:2;23426:1;23423;23419:9;23408:20;;23134:300;;;;:::o;23440:191::-;23480:4;23500:20;23518:1;23500:20;:::i;:::-;23495:25;;23534:20;23552:1;23534:20;:::i;:::-;23529:25;;23573:1;23570;23567:8;23564:2;;;23578:18;;:::i;:::-;23564:2;23623:1;23620;23616:9;23608:17;;23485:146;;;;:::o;23637:96::-;23674:7;23703:24;23721:5;23703:24;:::i;:::-;23692:35;;23682:51;;;:::o;23739:104::-;23784:7;23813:24;23831:5;23813:24;:::i;:::-;23802:35;;23792:51;;;:::o;23849:90::-;23883:7;23926:5;23919:13;23912:21;23901:32;;23891:48;;;:::o;23945:126::-;23982:7;24022:42;24015:5;24011:54;24000:65;;23990:81;;;:::o;24077:77::-;24114:7;24143:5;24132:16;;24122:32;;;:::o;24160:86::-;24195:7;24235:4;24228:5;24224:16;24213:27;;24203:43;;;:::o;24252:121::-;24310:9;24343:24;24361:5;24343:24;:::i;:::-;24330:37;;24320:53;;;:::o;24379:154::-;24463:6;24458:3;24453;24440:30;24525:1;24516:6;24511:3;24507:16;24500:27;24430:103;;;:::o;24539:307::-;24607:1;24617:113;24631:6;24628:1;24625:13;24617:113;;;24716:1;24711:3;24707:11;24701:18;24697:1;24692:3;24688:11;24681:39;24653:2;24650:1;24646:10;24641:15;;24617:113;;;24748:6;24745:1;24742:13;24739:2;;;24828:1;24819:6;24814:3;24810:16;24803:27;24739:2;24588:258;;;;:::o;24852:320::-;24896:6;24933:1;24927:4;24923:12;24913:22;;24980:1;24974:4;24970:12;25001:18;24991:2;;25057:4;25049:6;25045:17;25035:27;;24991:2;25119;25111:6;25108:14;25088:18;25085:38;25082:2;;;25138:18;;:::i;:::-;25082:2;24903:269;;;;:::o;25178:281::-;25261:27;25283:4;25261:27;:::i;:::-;25253:6;25249:40;25391:6;25379:10;25376:22;25355:18;25343:10;25340:34;25337:62;25334:2;;;25402:18;;:::i;:::-;25334:2;25442:10;25438:2;25431:22;25221:238;;;:::o;25465:233::-;25504:3;25527:24;25545:5;25527:24;:::i;:::-;25518:33;;25573:66;25566:5;25563:77;25560:2;;;25643:18;;:::i;:::-;25560:2;25690:1;25683:5;25679:13;25672:20;;25508:190;;;:::o;25704:180::-;25752:77;25749:1;25742:88;25849:4;25846:1;25839:15;25873:4;25870:1;25863:15;25890:180;25938:77;25935:1;25928:88;26035:4;26032:1;26025:15;26059:4;26056:1;26049:15;26076:180;26124:77;26121:1;26114:88;26221:4;26218:1;26211:15;26245:4;26242:1;26235:15;26262:180;26310:77;26307:1;26300:88;26407:4;26404:1;26397:15;26431:4;26428:1;26421:15;26448:102;26489:6;26540:2;26536:7;26531:2;26524:5;26520:14;26516:28;26506:38;;26496:54;;;:::o;26556:222::-;26696:34;26692:1;26684:6;26680:14;26673:58;26765:5;26760:2;26752:6;26748:15;26741:30;26662:116;:::o;26784:240::-;26924:34;26920:1;26912:6;26908:14;26901:58;26993:23;26988:2;26980:6;26976:15;26969:48;26890:134;:::o;27030:221::-;27170:34;27166:1;27158:6;27154:14;27147:58;27239:4;27234:2;27226:6;27222:15;27215:29;27136:115;:::o;27257:177::-;27397:29;27393:1;27385:6;27381:14;27374:53;27363:71;:::o;27440:220::-;27580:34;27576:1;27568:6;27564:14;27557:58;27649:3;27644:2;27636:6;27632:15;27625:28;27546:114;:::o;27666:182::-;27806:34;27802:1;27794:6;27790:14;27783:58;27772:76;:::o;27854:228::-;27994:34;27990:1;27982:6;27978:14;27971:58;28063:11;28058:2;28050:6;28046:15;28039:36;27960:122;:::o;28088:224::-;28228:34;28224:1;28216:6;28212:14;28205:58;28297:7;28292:2;28284:6;28280:15;28273:32;28194:118;:::o;28318:223::-;28458:34;28454:1;28446:6;28442:14;28435:58;28527:6;28522:2;28514:6;28510:15;28503:31;28424:117;:::o;28547:173::-;28687:25;28683:1;28675:6;28671:14;28664:49;28653:67;:::o;28726:122::-;28799:24;28817:5;28799:24;:::i;:::-;28792:5;28789:35;28779:2;;28838:1;28835;28828:12;28779:2;28769:79;:::o;28854:138::-;28935:32;28961:5;28935:32;:::i;:::-;28928:5;28925:43;28915:2;;28982:1;28979;28972:12;28915:2;28905:87;:::o;28998:116::-;29068:21;29083:5;29068:21;:::i;:::-;29061:5;29058:32;29048:2;;29104:1;29101;29094:12;29048:2;29038:76;:::o;29120:122::-;29193:24;29211:5;29193:24;:::i;:::-;29186:5;29183:35;29173:2;;29232:1;29229;29222:12;29173:2;29163:79;:::o

Swarm Source

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