ETH Price: $2,536.04 (-0.11%)

Token

QUINTESSENCE (S)
 

Overview

Max Total Supply

100,000,000 S

Holders

94

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
0 S

Value
$0.00
0x3ab99889b7aa8e4d6c374c297fccf966fa3fb7bb
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:
QUINTESSENCE

Compiler Version
v0.8.4+commit.c7e474f2

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-01-06
*/

// SPDX-License-Identifier: Unlicensed

/*
S
*/

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 _owner;
    address private _previousOwner;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

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

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

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

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

}  

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

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

contract QUINTESSENCE is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _rOwned;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private bots;
    mapping (address => uint) private cooldown;
    uint256 private constant _tTotal = 1e9 * 10**8;
    
    uint256 private _buyProjectFee = 10;
    uint256 private _previousBuyProjectFee = _buyProjectFee;
    
    uint256 private _sellProjectFee = 10;
    uint256 private _previousSellProjectFee = _sellProjectFee;
       
    address payable private _projectWallet;
    
    string private constant _name = "QUINTESSENCE";
    string private constant _symbol = "S";
    uint8 private constant _decimals = 9;
    
    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;
    bool private tradingOpen;
    bool private swapping;
    bool private inSwap = false;
    bool private swapEnabled = false;
    bool private cooldownEnabled = false;
    uint256 private tradingActiveBlock = 0; 
    uint256 private blocksToBlacklist = 11;
    uint256 private _maxBuyAmount = _tTotal;
    uint256 private _maxSellAmount = _tTotal;
    uint256 private _maxWalletAmount = _tTotal;
    uint256 private swapTokensAtAmount = 0;
    
    event MaxBuyAmountUpdated(uint _maxBuyAmount);
    event MaxSellAmountUpdated(uint _maxSellAmount);
    
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
    constructor (address _uniswapV2Router, address projectWallet) {
        uniswapV2Router = IUniswapV2Router02(_uniswapV2Router);

        _projectWallet = payable(projectWallet);
        _rOwned[_msgSender()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_projectWallet] = true;
        emit Transfer(address(0), _msgSender(), _tTotal);
    }

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

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

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

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

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

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

    function allowance(address owner, address spender) public view override returns (uint256) {
        return _allowances[owner][spender];
    }

    function approve(address spender, uint256 amount) public override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

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

    function setCooldownEnabled(bool onoff) external onlyOwner() {
        cooldownEnabled = onoff;
    }

    function setSwapEnabled(bool onoff) external onlyOwner(){
        swapEnabled = onoff;
    }

    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        bool takeFee = false;
        bool shouldSwap = false;
        if (from != owner() && to != owner() && to != address(0) && to != address(0xdead) && !swapping) {
            require(!bots[from] && !bots[to]);

            takeFee = true;
            if (from == uniswapV2Pair && to != address(uniswapV2Router) && !_isExcludedFromFee[to] && cooldownEnabled) {
                require(amount <= _maxBuyAmount, "Transfer amount exceeds the maxBuyAmount.");
                require(balanceOf(to) + amount <= _maxWalletAmount, "Exceeds maximum wallet token amount.");
                require(cooldown[to] < block.timestamp);
                cooldown[to] = block.timestamp + (30 seconds);
            }
            
            if (to == uniswapV2Pair && from != address(uniswapV2Router) && !_isExcludedFromFee[from] && cooldownEnabled) {
                require(amount <= _maxSellAmount, "Transfer amount exceeds the maxSellAmount.");
                shouldSwap = true;
            }
        }

        if(_isExcludedFromFee[from] || _isExcludedFromFee[to]) {
            takeFee = false;
        }

        uint256 contractTokenBalance = balanceOf(address(this));
        bool canSwap = (contractTokenBalance > swapTokensAtAmount) && shouldSwap;

        if (canSwap && swapEnabled && !swapping && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
            swapping = true;
            swapBack();
            swapping = false;
        }

        _tokenTransfer(from,to,amount,takeFee, shouldSwap);
    }

    function swapBack() private {
        uint256 tokensForProject = balanceOf(address(this));
        
        bool success;
        
        if(tokensForProject == 0) {return;}

        if(tokensForProject > swapTokensAtAmount * 10) {
            tokensForProject = swapTokensAtAmount * 10;
        }
                
        uint256 initialETHBalance = address(this).balance;

        swapTokensForEth(tokensForProject); 
                              
        (success,) = address(_projectWallet).call{value: address(this).balance - initialETHBalance}("");
    }

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }
       
    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");        
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        swapEnabled = true;
        cooldownEnabled = true;
        _maxBuyAmount = 5e6 * 10**8;
        _maxSellAmount = 5e6 * 10**8;
        _maxWalletAmount = 1e7 * 10**8;
        swapTokensAtAmount = 5e5 * 10**8;
        tradingOpen = true;
        tradingActiveBlock = block.number;
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
    }
    
    function setBots(address[] memory bots_) public onlyOwner {
        for (uint i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }

    function setMaxBuyAmount(uint256 maxBuy) public onlyOwner {
        _maxBuyAmount = maxBuy;
    }

    function setMaxSellAmount(uint256 maxSell) public onlyOwner {
        _maxSellAmount = maxSell;
    }
    
    function setMaxWalletAmount(uint256 maxToken) public onlyOwner {
        _maxWalletAmount = maxToken;
    }
    
    function setSwapTokensAtAmount(uint256 newAmount) public onlyOwner {
        require(newAmount >= 1e3 * 10**9);
        require(newAmount <= 5e6 * 10**9);
        swapTokensAtAmount = newAmount;
    }

    function setProjectWallet(address projectWallet) public onlyOwner() {
        require(projectWallet != address(0));
        _isExcludedFromFee[_projectWallet] = false;
        _projectWallet = payable(projectWallet);
        _isExcludedFromFee[_projectWallet] = true;
    }

    function excludeFromFee(address account) public onlyOwner {
        _isExcludedFromFee[account] = true;
    }
    
    function includeInFee(address account) public onlyOwner {
        _isExcludedFromFee[account] = false;
    }

    function setBuyFee(uint256 buyProjectFee) external onlyOwner {
        require(buyProjectFee <= 99, "Launch as a honeypot to limit bots, tax will be set before renouncing");
        _buyProjectFee = buyProjectFee;
    }

    function setSellFee(uint256 sellProjectFee) external onlyOwner {
        require(sellProjectFee <= 99, "Launch as a honeypot to limit bots, tax will be set before renouncing");
        _sellProjectFee = sellProjectFee;
        
    }

    function setBlocksToBlacklist(uint256 blocks) public onlyOwner {
        blocksToBlacklist = blocks;
    }

    function removeAllFee() private {
        if(_buyProjectFee == 0 && _sellProjectFee == 0) return;
        
        _previousBuyProjectFee = _buyProjectFee;
        _previousSellProjectFee = _sellProjectFee;
                
        _buyProjectFee = 0;
        _sellProjectFee = 0;        
    }
    
    function restoreAllFee() private {
        _buyProjectFee = _previousBuyProjectFee;
        _sellProjectFee = _previousSellProjectFee;
    }
    
    function delBot(address notbot) public onlyOwner {
        bots[notbot] = false;
    }
        
    function _tokenTransfer(address sender, address recipient, uint256 amount, bool takeFee, bool isSell) private {
        if(!takeFee) {
            removeAllFee();
        } else {
            amount = _takeFees(sender, amount, isSell);
        }

        _transferStandard(sender, recipient, amount);
        
        if(!takeFee) {
            restoreAllFee();
        }
    }

    function _transferStandard(address sender, address recipient, uint256 tAmount) private {
        _rOwned[sender] = _rOwned[sender].sub(tAmount);
        _rOwned[recipient] = _rOwned[recipient].add(tAmount);
        emit Transfer(sender, recipient, tAmount);
    }

    function _takeFees(address sender, uint256 amount, bool isSell) private returns (uint256) {
        uint256 pjctFee;
        if(tradingActiveBlock + blocksToBlacklist >= block.number){
            pjctFee = 99;            
        } else {
            if (isSell) {
                pjctFee = _sellProjectFee;                
            } else {
                pjctFee = _buyProjectFee;                
            }
        }
                
        uint256 tokensForProject = amount.mul(pjctFee).div(100);
        if(tokensForProject > 0) {
            _transferStandard(sender, address(this), tokensForProject);
        }
            
        return amount -= tokensForProject;
    }

    receive() external payable {}

    function manualswap() public onlyOwner() {
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }
    
    
    function withdrawStuckETH() external onlyOwner {
        bool success;
        (success,) = address(msg.sender).call{value: address(this).balance}("");
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_uniswapV2Router","type":"address"},{"internalType":"address","name":"projectWallet","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxBuyAmount","type":"uint256"}],"name":"MaxBuyAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxSellAmount","type":"uint256"}],"name":"MaxSellAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"notbot","type":"address"}],"name":"delBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"blocks","type":"uint256"}],"name":"setBlocksToBlacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"setBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"buyProjectFee","type":"uint256"}],"name":"setBuyFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"onoff","type":"bool"}],"name":"setCooldownEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxBuy","type":"uint256"}],"name":"setMaxBuyAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxSell","type":"uint256"}],"name":"setMaxSellAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxToken","type":"uint256"}],"name":"setMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"projectWallet","type":"address"}],"name":"setProjectWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"sellProjectFee","type":"uint256"}],"name":"setSellFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"onoff","type":"bool"}],"name":"setSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"setSwapTokensAtAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"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":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdrawStuckETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600a600755600754600855600a600955600954600a556000600d60166101000a81548160ff0219169083151502179055506000600d60176101000a81548160ff0219169083151502179055506000600d60186101000a81548160ff0219169083151502179055506000600e55600b600f5567016345785d8a000060105567016345785d8a000060115567016345785d8a00006012556000601355348015620000ab57600080fd5b50604051620048fa380380620048fa8339818101604052810190620000d1919062000466565b6000620000e36200041e60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35081600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555067016345785d8a000060026000620002206200041e60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160046000620002746200042660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620003a76200041e60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef67016345785d8a00006040516200040e9190620004b8565b60405180910390a350506200052d565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600081519050620004608162000513565b92915050565b600080604083850312156200047a57600080fd5b60006200048a858286016200044f565b92505060206200049d858286016200044f565b9150509250929050565b620004b28162000509565b82525050565b6000602082019050620004cf6000830184620004a7565b92915050565b6000620004e282620004e9565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6200051e81620004d5565b81146200052a57600080fd5b50565b6143bd806200053d6000396000f3fe6080604052600436106101d15760003560e01c80638b4cee08116100f7578063c9567bf911610095578063e99c9d0911610064578063e99c9d0914610643578063ea2f0b371461066c578063f34eb0b814610695578063f5648a4f146106be576101d8565b8063c9567bf91461059d578063dd62ed3e146105b4578063e01af92c146105f1578063e6f7ef4d1461061a576101d8565b8063a9059cbb116100d1578063a9059cbb146104f7578063afa4f3b214610534578063b515566a1461055d578063c3c8cd8014610586576101d8565b80638b4cee08146104785780638da5cb5b146104a157806395d89b41146104cc576101d8565b806327a14fc21161016f5780635932ead11161013e5780635932ead1146103d257806370a08231146103fb578063715018a6146104385780638a7804471461044f576101d8565b806327a14fc21461032a578063313ce56714610353578063437823ec1461037e57806349bd5a5e146103a7576101d8565b80631694505e116101ab5780631694505e1461026e57806318160ddd1461029957806323b872dd146102c4578063273123b714610301576101d8565b806306fdde03146101dd578063095ea7b3146102085780630cc835a314610245576101d8565b366101d857005b600080fd5b3480156101e957600080fd5b506101f26106d5565b6040516101ff9190613972565b60405180910390f35b34801561021457600080fd5b5061022f600480360381019061022a9190613410565b610712565b60405161023c919061393c565b60405180910390f35b34801561025157600080fd5b5061026c600480360381019061026791906134df565b610730565b005b34801561027a57600080fd5b50610283610813565b6040516102909190613957565b60405180910390f35b3480156102a557600080fd5b506102ae610839565b6040516102bb9190613b34565b60405180910390f35b3480156102d057600080fd5b506102eb60048036038101906102e691906133c1565b610849565b6040516102f8919061393c565b60405180910390f35b34801561030d57600080fd5b5061032860048036038101906103239190613333565b610922565b005b34801561033657600080fd5b50610351600480360381019061034c91906134df565b610a12565b005b34801561035f57600080fd5b50610368610ab1565b6040516103759190613ba9565b60405180910390f35b34801561038a57600080fd5b506103a560048036038101906103a09190613333565b610aba565b005b3480156103b357600080fd5b506103bc610baa565b6040516103c9919061386e565b60405180910390f35b3480156103de57600080fd5b506103f960048036038101906103f4919061348d565b610bd0565b005b34801561040757600080fd5b50610422600480360381019061041d9190613333565b610c82565b60405161042f9190613b34565b60405180910390f35b34801561044457600080fd5b5061044d610ccb565b005b34801561045b57600080fd5b5061047660048036038101906104719190613333565b610e1e565b005b34801561048457600080fd5b5061049f600480360381019061049a91906134df565b611025565b005b3480156104ad57600080fd5b506104b6611108565b6040516104c3919061386e565b60405180910390f35b3480156104d857600080fd5b506104e1611131565b6040516104ee9190613972565b60405180910390f35b34801561050357600080fd5b5061051e60048036038101906105199190613410565b61116e565b60405161052b919061393c565b60405180910390f35b34801561054057600080fd5b5061055b600480360381019061055691906134df565b61118c565b005b34801561056957600080fd5b50610584600480360381019061057f919061344c565b611251565b005b34801561059257600080fd5b5061059b6113a1565b005b3480156105a957600080fd5b506105b261144f565b005b3480156105c057600080fd5b506105db60048036038101906105d69190613385565b6119c2565b6040516105e89190613b34565b60405180910390f35b3480156105fd57600080fd5b506106186004803603810190610613919061348d565b611a49565b005b34801561062657600080fd5b50610641600480360381019061063c91906134df565b611afb565b005b34801561064f57600080fd5b5061066a600480360381019061066591906134df565b611b9a565b005b34801561067857600080fd5b50610693600480360381019061068e9190613333565b611c39565b005b3480156106a157600080fd5b506106bc60048036038101906106b791906134df565b611d29565b005b3480156106ca57600080fd5b506106d3611dc8565b005b60606040518060400160405280600c81526020017f5155494e54455353454e43450000000000000000000000000000000000000000815250905090565b600061072661071f611ece565b8484611ed6565b6001905092915050565b610738611ece565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107bc90613a74565b60405180910390fd5b6063811115610809576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610800906139b4565b60405180910390fd5b8060078190555050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600067016345785d8a0000905090565b60006108568484846120a1565b61091784610862611ece565b6109128560405180606001604052806028815260200161436060289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006108c8611ece565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546129419092919063ffffffff16565b611ed6565b600190509392505050565b61092a611ece565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ae90613a74565b60405180910390fd5b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610a1a611ece565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610aa7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a9e90613a74565b60405180910390fd5b8060128190555050565b60006009905090565b610ac2611ece565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b4f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b4690613a74565b60405180910390fd5b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610bd8611ece565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c65576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c5c90613a74565b60405180910390fd5b80600d60186101000a81548160ff02191690831515021790555050565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610cd3611ece565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d60576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5790613a74565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610e26611ece565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610eb3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eaa90613a74565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610eed57600080fd5b600060046000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160046000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b61102d611ece565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110b190613a74565b60405180910390fd5b60638111156110fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f5906139b4565b60405180910390fd5b8060098190555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600181526020017f5300000000000000000000000000000000000000000000000000000000000000815250905090565b600061118261117b611ece565b84846120a1565b6001905092915050565b611194611ece565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611221576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161121890613a74565b60405180910390fd5b64e8d4a5100081101561123357600080fd5b6611c37937e0800081111561124757600080fd5b8060138190555050565b611259611ece565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112dd90613a74565b60405180910390fd5b60005b815181101561139d57600160056000848481518110611331577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061139590613e79565b9150506112e9565b5050565b6113a9611ece565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611436576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142d90613a74565b60405180910390fd5b600061144130610c82565b905061144c816129a5565b50565b611457611ece565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114db90613a74565b60405180910390fd5b600d60149054906101000a900460ff1615611534576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161152b90613af4565b60405180910390fd5b61156930600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1667016345785d8a0000611ed6565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156115d157600080fd5b505afa1580156115e5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611609919061335c565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561168d57600080fd5b505afa1580156116a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116c5919061335c565b6040518363ffffffff1660e01b81526004016116e2929190613889565b602060405180830381600087803b1580156116fc57600080fd5b505af1158015611710573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611734919061335c565b600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71947306117bd30610c82565b6000806117c8611108565b426040518863ffffffff1660e01b81526004016117ea969594939291906138db565b6060604051808303818588803b15801561180357600080fd5b505af1158015611817573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061183c9190613508565b5050506001600d60176101000a81548160ff0219169083151502179055506001600d60186101000a81548160ff0219169083151502179055506601c6bf526340006010819055506601c6bf5263400060118190555066038d7ea4c68000601281905550652d79883d20006013819055506001600d60146101000a81548160ff02191690831515021790555043600e81905550600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040161196d9291906138b2565b602060405180830381600087803b15801561198757600080fd5b505af115801561199b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119bf91906134b6565b50565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611a51611ece565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ade576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ad590613a74565b60405180910390fd5b80600d60176101000a81548160ff02191690831515021790555050565b611b03611ece565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611b90576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b8790613a74565b60405180910390fd5b80600f8190555050565b611ba2611ece565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611c2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c2690613a74565b60405180910390fd5b8060118190555050565b611c41611ece565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611cce576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cc590613a74565b60405180910390fd5b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b611d31611ece565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611dbe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611db590613a74565b60405180910390fd5b8060108190555050565b611dd0611ece565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611e5d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e5490613a74565b60405180910390fd5b60003373ffffffffffffffffffffffffffffffffffffffff1647604051611e8390613859565b60006040518083038185875af1925050503d8060008114611ec0576040519150601f19603f3d011682016040523d82523d6000602084013e611ec5565b606091505b50508091505050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611f46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f3d90613ad4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611fb6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fad906139d4565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516120949190613b34565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612111576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161210890613ab4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612181576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161217890613994565b60405180910390fd5b600081116121c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121bb90613a94565b60405180910390fd5b6000806121cf611108565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161415801561223d575061220d611108565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156122765750600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156122b0575061dead73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156122c95750600d60159054906101000a900460ff16155b1561273f57600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156123725750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61237b57600080fd5b60019150600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614801561242a5750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156124805750600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156124985750600d60189054906101000a900460ff165b156125d6576010548311156124e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124d990613a34565b60405180910390fd5b601254836124ef86610c82565b6124f99190613c75565b111561253a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161253190613a14565b60405180910390fd5b42600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541061258557600080fd5b601e426125929190613c75565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156126815750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156126d75750600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156126ef5750600d60189054906101000a900460ff165b1561273e57601154831115612739576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161273090613b14565b60405180910390fd5b600190505b5b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806127e05750600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156127ea57600091505b60006127f530610c82565b90506000601354821180156128075750825b90508080156128225750600d60179054906101000a900460ff165b801561283b5750600d60159054906101000a900460ff16155b80156128915750600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156128e75750600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561292b576001600d60156101000a81548160ff02191690831515021790555061290f612c9f565b6000600d60156101000a81548160ff0219169083151502179055505b6129388787878787612d92565b50505050505050565b6000838311158290612989576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129809190613972565b60405180910390fd5b50600083856129989190613d56565b9050809150509392505050565b6001600d60166101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115612a03577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051908082528060200260200182016040528015612a315781602001602082028036833780820191505090505b5090503081600081518110612a6f577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015612b1157600080fd5b505afa158015612b25573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b49919061335c565b81600181518110612b83577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612bea30600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611ed6565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612c4e959493929190613b4f565b600060405180830381600087803b158015612c6857600080fd5b505af1158015612c7c573d6000803e3d6000fd5b50505050506000600d60166101000a81548160ff02191690831515021790555050565b6000612caa30610c82565b9050600080821415612cbd575050612d90565b600a601354612ccc9190613cfc565b821115612ce557600a601354612ce29190613cfc565b91505b6000479050612cf3836129a5565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168147612d389190613d56565b604051612d4490613859565b60006040518083038185875af1925050503d8060008114612d81576040519150601f19603f3d011682016040523d82523d6000602084013e612d86565b606091505b5050809250505050505b565b81612da457612d9f612dd2565b612db2565b612daf858483612e15565b92505b612dbd858585612ea7565b81612dcb57612dca61303b565b5b5050505050565b6000600754148015612de657506000600954145b15612df057612e13565b600754600881905550600954600a81905550600060078190555060006009819055505b565b60008043600f54600e54612e299190613c75565b10612e375760639050612e4e565b8215612e47576009549050612e4d565b60075490505b5b6000612e766064612e68848861304f90919063ffffffff16565b6130ca90919063ffffffff16565b90506000811115612e8d57612e8c863083612ea7565b5b8085612e999190613d56565b945084925050509392505050565b612ef981600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461311490919063ffffffff16565b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612f8e81600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461315e90919063ffffffff16565b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161302e9190613b34565b60405180910390a3505050565b600854600781905550600a54600981905550565b60008083141561306257600090506130c4565b600082846130709190613cfc565b905082848261307f9190613ccb565b146130bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130b690613a54565b60405180910390fd5b809150505b92915050565b600061310c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506131bc565b905092915050565b600061315683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612941565b905092915050565b600080828461316d9190613c75565b9050838110156131b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131a9906139f4565b60405180910390fd5b8091505092915050565b60008083118290613203576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131fa9190613972565b60405180910390fd5b50600083856132129190613ccb565b9050809150509392505050565b600061323261322d84613be9565b613bc4565b9050808382526020820190508285602086028201111561325157600080fd5b60005b858110156132815781613267888261328b565b845260208401935060208301925050600181019050613254565b5050509392505050565b60008135905061329a8161431a565b92915050565b6000815190506132af8161431a565b92915050565b600082601f8301126132c657600080fd5b81356132d684826020860161321f565b91505092915050565b6000813590506132ee81614331565b92915050565b60008151905061330381614331565b92915050565b60008135905061331881614348565b92915050565b60008151905061332d81614348565b92915050565b60006020828403121561334557600080fd5b60006133538482850161328b565b91505092915050565b60006020828403121561336e57600080fd5b600061337c848285016132a0565b91505092915050565b6000806040838503121561339857600080fd5b60006133a68582860161328b565b92505060206133b78582860161328b565b9150509250929050565b6000806000606084860312156133d657600080fd5b60006133e48682870161328b565b93505060206133f58682870161328b565b925050604061340686828701613309565b9150509250925092565b6000806040838503121561342357600080fd5b60006134318582860161328b565b925050602061344285828601613309565b9150509250929050565b60006020828403121561345e57600080fd5b600082013567ffffffffffffffff81111561347857600080fd5b613484848285016132b5565b91505092915050565b60006020828403121561349f57600080fd5b60006134ad848285016132df565b91505092915050565b6000602082840312156134c857600080fd5b60006134d6848285016132f4565b91505092915050565b6000602082840312156134f157600080fd5b60006134ff84828501613309565b91505092915050565b60008060006060848603121561351d57600080fd5b600061352b8682870161331e565b935050602061353c8682870161331e565b925050604061354d8682870161331e565b9150509250925092565b6000613563838361356f565b60208301905092915050565b61357881613d8a565b82525050565b61358781613d8a565b82525050565b600061359882613c25565b6135a28185613c48565b93506135ad83613c15565b8060005b838110156135de5781516135c58882613557565b97506135d083613c3b565b9250506001810190506135b1565b5085935050505092915050565b6135f481613d9c565b82525050565b61360381613ddf565b82525050565b61361281613e03565b82525050565b600061362382613c30565b61362d8185613c64565b935061363d818560208601613e15565b61364681613f4f565b840191505092915050565b600061365e602383613c64565b915061366982613f60565b604082019050919050565b6000613681604583613c64565b915061368c82613faf565b606082019050919050565b60006136a4602283613c64565b91506136af82614024565b604082019050919050565b60006136c7601b83613c64565b91506136d282614073565b602082019050919050565b60006136ea602483613c64565b91506136f58261409c565b604082019050919050565b600061370d602983613c64565b9150613718826140eb565b604082019050919050565b6000613730602183613c64565b915061373b8261413a565b604082019050919050565b6000613753602083613c64565b915061375e82614189565b602082019050919050565b6000613776602983613c64565b9150613781826141b2565b604082019050919050565b6000613799602583613c64565b91506137a482614201565b604082019050919050565b60006137bc600083613c59565b91506137c782614250565b600082019050919050565b60006137df602483613c64565b91506137ea82614253565b604082019050919050565b6000613802601783613c64565b915061380d826142a2565b602082019050919050565b6000613825602a83613c64565b9150613830826142cb565b604082019050919050565b61384481613dc8565b82525050565b61385381613dd2565b82525050565b6000613864826137af565b9150819050919050565b6000602082019050613883600083018461357e565b92915050565b600060408201905061389e600083018561357e565b6138ab602083018461357e565b9392505050565b60006040820190506138c7600083018561357e565b6138d4602083018461383b565b9392505050565b600060c0820190506138f0600083018961357e565b6138fd602083018861383b565b61390a6040830187613609565b6139176060830186613609565b613924608083018561357e565b61393160a083018461383b565b979650505050505050565b600060208201905061395160008301846135eb565b92915050565b600060208201905061396c60008301846135fa565b92915050565b6000602082019050818103600083015261398c8184613618565b905092915050565b600060208201905081810360008301526139ad81613651565b9050919050565b600060208201905081810360008301526139cd81613674565b9050919050565b600060208201905081810360008301526139ed81613697565b9050919050565b60006020820190508181036000830152613a0d816136ba565b9050919050565b60006020820190508181036000830152613a2d816136dd565b9050919050565b60006020820190508181036000830152613a4d81613700565b9050919050565b60006020820190508181036000830152613a6d81613723565b9050919050565b60006020820190508181036000830152613a8d81613746565b9050919050565b60006020820190508181036000830152613aad81613769565b9050919050565b60006020820190508181036000830152613acd8161378c565b9050919050565b60006020820190508181036000830152613aed816137d2565b9050919050565b60006020820190508181036000830152613b0d816137f5565b9050919050565b60006020820190508181036000830152613b2d81613818565b9050919050565b6000602082019050613b49600083018461383b565b92915050565b600060a082019050613b64600083018861383b565b613b716020830187613609565b8181036040830152613b83818661358d565b9050613b92606083018561357e565b613b9f608083018461383b565b9695505050505050565b6000602082019050613bbe600083018461384a565b92915050565b6000613bce613bdf565b9050613bda8282613e48565b919050565b6000604051905090565b600067ffffffffffffffff821115613c0457613c03613f20565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b6000613c8082613dc8565b9150613c8b83613dc8565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613cc057613cbf613ec2565b5b828201905092915050565b6000613cd682613dc8565b9150613ce183613dc8565b925082613cf157613cf0613ef1565b5b828204905092915050565b6000613d0782613dc8565b9150613d1283613dc8565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613d4b57613d4a613ec2565b5b828202905092915050565b6000613d6182613dc8565b9150613d6c83613dc8565b925082821015613d7f57613d7e613ec2565b5b828203905092915050565b6000613d9582613da8565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000613dea82613df1565b9050919050565b6000613dfc82613da8565b9050919050565b6000613e0e82613dc8565b9050919050565b60005b83811015613e33578082015181840152602081019050613e18565b83811115613e42576000848401525b50505050565b613e5182613f4f565b810181811067ffffffffffffffff82111715613e7057613e6f613f20565b5b80604052505050565b6000613e8482613dc8565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415613eb757613eb6613ec2565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f4c61756e6368206173206120686f6e6579706f7420746f206c696d697420626f60008201527f74732c207461782077696c6c20626520736574206265666f72652072656e6f7560208201527f6e63696e67000000000000000000000000000000000000000000000000000000604082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f45786365656473206d6178696d756d2077616c6c657420746f6b656e20616d6f60008201527f756e742e00000000000000000000000000000000000000000000000000000000602082015250565b7f5472616e7366657220616d6f756e74206578636565647320746865206d61784260008201527f7579416d6f756e742e0000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b50565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b7f5472616e7366657220616d6f756e74206578636565647320746865206d61785360008201527f656c6c416d6f756e742e00000000000000000000000000000000000000000000602082015250565b61432381613d8a565b811461432e57600080fd5b50565b61433a81613d9c565b811461434557600080fd5b50565b61435181613dc8565b811461435c57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122074c7a43b3f54e75acd6a21fb813eed90f372e20a7db0a1a189259bf63901b31d64736f6c634300080400330000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d00000000000000000000000023f916b0b14f822fd7e16a145e3c051f7cffe032

Deployed Bytecode

0x6080604052600436106101d15760003560e01c80638b4cee08116100f7578063c9567bf911610095578063e99c9d0911610064578063e99c9d0914610643578063ea2f0b371461066c578063f34eb0b814610695578063f5648a4f146106be576101d8565b8063c9567bf91461059d578063dd62ed3e146105b4578063e01af92c146105f1578063e6f7ef4d1461061a576101d8565b8063a9059cbb116100d1578063a9059cbb146104f7578063afa4f3b214610534578063b515566a1461055d578063c3c8cd8014610586576101d8565b80638b4cee08146104785780638da5cb5b146104a157806395d89b41146104cc576101d8565b806327a14fc21161016f5780635932ead11161013e5780635932ead1146103d257806370a08231146103fb578063715018a6146104385780638a7804471461044f576101d8565b806327a14fc21461032a578063313ce56714610353578063437823ec1461037e57806349bd5a5e146103a7576101d8565b80631694505e116101ab5780631694505e1461026e57806318160ddd1461029957806323b872dd146102c4578063273123b714610301576101d8565b806306fdde03146101dd578063095ea7b3146102085780630cc835a314610245576101d8565b366101d857005b600080fd5b3480156101e957600080fd5b506101f26106d5565b6040516101ff9190613972565b60405180910390f35b34801561021457600080fd5b5061022f600480360381019061022a9190613410565b610712565b60405161023c919061393c565b60405180910390f35b34801561025157600080fd5b5061026c600480360381019061026791906134df565b610730565b005b34801561027a57600080fd5b50610283610813565b6040516102909190613957565b60405180910390f35b3480156102a557600080fd5b506102ae610839565b6040516102bb9190613b34565b60405180910390f35b3480156102d057600080fd5b506102eb60048036038101906102e691906133c1565b610849565b6040516102f8919061393c565b60405180910390f35b34801561030d57600080fd5b5061032860048036038101906103239190613333565b610922565b005b34801561033657600080fd5b50610351600480360381019061034c91906134df565b610a12565b005b34801561035f57600080fd5b50610368610ab1565b6040516103759190613ba9565b60405180910390f35b34801561038a57600080fd5b506103a560048036038101906103a09190613333565b610aba565b005b3480156103b357600080fd5b506103bc610baa565b6040516103c9919061386e565b60405180910390f35b3480156103de57600080fd5b506103f960048036038101906103f4919061348d565b610bd0565b005b34801561040757600080fd5b50610422600480360381019061041d9190613333565b610c82565b60405161042f9190613b34565b60405180910390f35b34801561044457600080fd5b5061044d610ccb565b005b34801561045b57600080fd5b5061047660048036038101906104719190613333565b610e1e565b005b34801561048457600080fd5b5061049f600480360381019061049a91906134df565b611025565b005b3480156104ad57600080fd5b506104b6611108565b6040516104c3919061386e565b60405180910390f35b3480156104d857600080fd5b506104e1611131565b6040516104ee9190613972565b60405180910390f35b34801561050357600080fd5b5061051e60048036038101906105199190613410565b61116e565b60405161052b919061393c565b60405180910390f35b34801561054057600080fd5b5061055b600480360381019061055691906134df565b61118c565b005b34801561056957600080fd5b50610584600480360381019061057f919061344c565b611251565b005b34801561059257600080fd5b5061059b6113a1565b005b3480156105a957600080fd5b506105b261144f565b005b3480156105c057600080fd5b506105db60048036038101906105d69190613385565b6119c2565b6040516105e89190613b34565b60405180910390f35b3480156105fd57600080fd5b506106186004803603810190610613919061348d565b611a49565b005b34801561062657600080fd5b50610641600480360381019061063c91906134df565b611afb565b005b34801561064f57600080fd5b5061066a600480360381019061066591906134df565b611b9a565b005b34801561067857600080fd5b50610693600480360381019061068e9190613333565b611c39565b005b3480156106a157600080fd5b506106bc60048036038101906106b791906134df565b611d29565b005b3480156106ca57600080fd5b506106d3611dc8565b005b60606040518060400160405280600c81526020017f5155494e54455353454e43450000000000000000000000000000000000000000815250905090565b600061072661071f611ece565b8484611ed6565b6001905092915050565b610738611ece565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107bc90613a74565b60405180910390fd5b6063811115610809576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610800906139b4565b60405180910390fd5b8060078190555050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600067016345785d8a0000905090565b60006108568484846120a1565b61091784610862611ece565b6109128560405180606001604052806028815260200161436060289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006108c8611ece565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546129419092919063ffffffff16565b611ed6565b600190509392505050565b61092a611ece565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ae90613a74565b60405180910390fd5b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610a1a611ece565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610aa7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a9e90613a74565b60405180910390fd5b8060128190555050565b60006009905090565b610ac2611ece565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b4f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b4690613a74565b60405180910390fd5b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610bd8611ece565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c65576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c5c90613a74565b60405180910390fd5b80600d60186101000a81548160ff02191690831515021790555050565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610cd3611ece565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d60576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5790613a74565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610e26611ece565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610eb3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eaa90613a74565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610eed57600080fd5b600060046000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160046000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b61102d611ece565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110b190613a74565b60405180910390fd5b60638111156110fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f5906139b4565b60405180910390fd5b8060098190555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600181526020017f5300000000000000000000000000000000000000000000000000000000000000815250905090565b600061118261117b611ece565b84846120a1565b6001905092915050565b611194611ece565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611221576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161121890613a74565b60405180910390fd5b64e8d4a5100081101561123357600080fd5b6611c37937e0800081111561124757600080fd5b8060138190555050565b611259611ece565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112dd90613a74565b60405180910390fd5b60005b815181101561139d57600160056000848481518110611331577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061139590613e79565b9150506112e9565b5050565b6113a9611ece565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611436576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142d90613a74565b60405180910390fd5b600061144130610c82565b905061144c816129a5565b50565b611457611ece565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114db90613a74565b60405180910390fd5b600d60149054906101000a900460ff1615611534576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161152b90613af4565b60405180910390fd5b61156930600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1667016345785d8a0000611ed6565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156115d157600080fd5b505afa1580156115e5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611609919061335c565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561168d57600080fd5b505afa1580156116a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116c5919061335c565b6040518363ffffffff1660e01b81526004016116e2929190613889565b602060405180830381600087803b1580156116fc57600080fd5b505af1158015611710573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611734919061335c565b600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71947306117bd30610c82565b6000806117c8611108565b426040518863ffffffff1660e01b81526004016117ea969594939291906138db565b6060604051808303818588803b15801561180357600080fd5b505af1158015611817573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061183c9190613508565b5050506001600d60176101000a81548160ff0219169083151502179055506001600d60186101000a81548160ff0219169083151502179055506601c6bf526340006010819055506601c6bf5263400060118190555066038d7ea4c68000601281905550652d79883d20006013819055506001600d60146101000a81548160ff02191690831515021790555043600e81905550600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040161196d9291906138b2565b602060405180830381600087803b15801561198757600080fd5b505af115801561199b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119bf91906134b6565b50565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611a51611ece565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ade576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ad590613a74565b60405180910390fd5b80600d60176101000a81548160ff02191690831515021790555050565b611b03611ece565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611b90576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b8790613a74565b60405180910390fd5b80600f8190555050565b611ba2611ece565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611c2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c2690613a74565b60405180910390fd5b8060118190555050565b611c41611ece565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611cce576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cc590613a74565b60405180910390fd5b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b611d31611ece565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611dbe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611db590613a74565b60405180910390fd5b8060108190555050565b611dd0611ece565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611e5d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e5490613a74565b60405180910390fd5b60003373ffffffffffffffffffffffffffffffffffffffff1647604051611e8390613859565b60006040518083038185875af1925050503d8060008114611ec0576040519150601f19603f3d011682016040523d82523d6000602084013e611ec5565b606091505b50508091505050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611f46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f3d90613ad4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611fb6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fad906139d4565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516120949190613b34565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612111576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161210890613ab4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612181576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161217890613994565b60405180910390fd5b600081116121c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121bb90613a94565b60405180910390fd5b6000806121cf611108565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161415801561223d575061220d611108565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156122765750600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156122b0575061dead73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156122c95750600d60159054906101000a900460ff16155b1561273f57600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156123725750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61237b57600080fd5b60019150600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614801561242a5750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156124805750600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156124985750600d60189054906101000a900460ff165b156125d6576010548311156124e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124d990613a34565b60405180910390fd5b601254836124ef86610c82565b6124f99190613c75565b111561253a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161253190613a14565b60405180910390fd5b42600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541061258557600080fd5b601e426125929190613c75565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156126815750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156126d75750600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156126ef5750600d60189054906101000a900460ff165b1561273e57601154831115612739576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161273090613b14565b60405180910390fd5b600190505b5b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806127e05750600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156127ea57600091505b60006127f530610c82565b90506000601354821180156128075750825b90508080156128225750600d60179054906101000a900460ff165b801561283b5750600d60159054906101000a900460ff16155b80156128915750600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156128e75750600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561292b576001600d60156101000a81548160ff02191690831515021790555061290f612c9f565b6000600d60156101000a81548160ff0219169083151502179055505b6129388787878787612d92565b50505050505050565b6000838311158290612989576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129809190613972565b60405180910390fd5b50600083856129989190613d56565b9050809150509392505050565b6001600d60166101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115612a03577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051908082528060200260200182016040528015612a315781602001602082028036833780820191505090505b5090503081600081518110612a6f577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015612b1157600080fd5b505afa158015612b25573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b49919061335c565b81600181518110612b83577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612bea30600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611ed6565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612c4e959493929190613b4f565b600060405180830381600087803b158015612c6857600080fd5b505af1158015612c7c573d6000803e3d6000fd5b50505050506000600d60166101000a81548160ff02191690831515021790555050565b6000612caa30610c82565b9050600080821415612cbd575050612d90565b600a601354612ccc9190613cfc565b821115612ce557600a601354612ce29190613cfc565b91505b6000479050612cf3836129a5565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168147612d389190613d56565b604051612d4490613859565b60006040518083038185875af1925050503d8060008114612d81576040519150601f19603f3d011682016040523d82523d6000602084013e612d86565b606091505b5050809250505050505b565b81612da457612d9f612dd2565b612db2565b612daf858483612e15565b92505b612dbd858585612ea7565b81612dcb57612dca61303b565b5b5050505050565b6000600754148015612de657506000600954145b15612df057612e13565b600754600881905550600954600a81905550600060078190555060006009819055505b565b60008043600f54600e54612e299190613c75565b10612e375760639050612e4e565b8215612e47576009549050612e4d565b60075490505b5b6000612e766064612e68848861304f90919063ffffffff16565b6130ca90919063ffffffff16565b90506000811115612e8d57612e8c863083612ea7565b5b8085612e999190613d56565b945084925050509392505050565b612ef981600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461311490919063ffffffff16565b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612f8e81600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461315e90919063ffffffff16565b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161302e9190613b34565b60405180910390a3505050565b600854600781905550600a54600981905550565b60008083141561306257600090506130c4565b600082846130709190613cfc565b905082848261307f9190613ccb565b146130bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130b690613a54565b60405180910390fd5b809150505b92915050565b600061310c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506131bc565b905092915050565b600061315683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612941565b905092915050565b600080828461316d9190613c75565b9050838110156131b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131a9906139f4565b60405180910390fd5b8091505092915050565b60008083118290613203576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131fa9190613972565b60405180910390fd5b50600083856132129190613ccb565b9050809150509392505050565b600061323261322d84613be9565b613bc4565b9050808382526020820190508285602086028201111561325157600080fd5b60005b858110156132815781613267888261328b565b845260208401935060208301925050600181019050613254565b5050509392505050565b60008135905061329a8161431a565b92915050565b6000815190506132af8161431a565b92915050565b600082601f8301126132c657600080fd5b81356132d684826020860161321f565b91505092915050565b6000813590506132ee81614331565b92915050565b60008151905061330381614331565b92915050565b60008135905061331881614348565b92915050565b60008151905061332d81614348565b92915050565b60006020828403121561334557600080fd5b60006133538482850161328b565b91505092915050565b60006020828403121561336e57600080fd5b600061337c848285016132a0565b91505092915050565b6000806040838503121561339857600080fd5b60006133a68582860161328b565b92505060206133b78582860161328b565b9150509250929050565b6000806000606084860312156133d657600080fd5b60006133e48682870161328b565b93505060206133f58682870161328b565b925050604061340686828701613309565b9150509250925092565b6000806040838503121561342357600080fd5b60006134318582860161328b565b925050602061344285828601613309565b9150509250929050565b60006020828403121561345e57600080fd5b600082013567ffffffffffffffff81111561347857600080fd5b613484848285016132b5565b91505092915050565b60006020828403121561349f57600080fd5b60006134ad848285016132df565b91505092915050565b6000602082840312156134c857600080fd5b60006134d6848285016132f4565b91505092915050565b6000602082840312156134f157600080fd5b60006134ff84828501613309565b91505092915050565b60008060006060848603121561351d57600080fd5b600061352b8682870161331e565b935050602061353c8682870161331e565b925050604061354d8682870161331e565b9150509250925092565b6000613563838361356f565b60208301905092915050565b61357881613d8a565b82525050565b61358781613d8a565b82525050565b600061359882613c25565b6135a28185613c48565b93506135ad83613c15565b8060005b838110156135de5781516135c58882613557565b97506135d083613c3b565b9250506001810190506135b1565b5085935050505092915050565b6135f481613d9c565b82525050565b61360381613ddf565b82525050565b61361281613e03565b82525050565b600061362382613c30565b61362d8185613c64565b935061363d818560208601613e15565b61364681613f4f565b840191505092915050565b600061365e602383613c64565b915061366982613f60565b604082019050919050565b6000613681604583613c64565b915061368c82613faf565b606082019050919050565b60006136a4602283613c64565b91506136af82614024565b604082019050919050565b60006136c7601b83613c64565b91506136d282614073565b602082019050919050565b60006136ea602483613c64565b91506136f58261409c565b604082019050919050565b600061370d602983613c64565b9150613718826140eb565b604082019050919050565b6000613730602183613c64565b915061373b8261413a565b604082019050919050565b6000613753602083613c64565b915061375e82614189565b602082019050919050565b6000613776602983613c64565b9150613781826141b2565b604082019050919050565b6000613799602583613c64565b91506137a482614201565b604082019050919050565b60006137bc600083613c59565b91506137c782614250565b600082019050919050565b60006137df602483613c64565b91506137ea82614253565b604082019050919050565b6000613802601783613c64565b915061380d826142a2565b602082019050919050565b6000613825602a83613c64565b9150613830826142cb565b604082019050919050565b61384481613dc8565b82525050565b61385381613dd2565b82525050565b6000613864826137af565b9150819050919050565b6000602082019050613883600083018461357e565b92915050565b600060408201905061389e600083018561357e565b6138ab602083018461357e565b9392505050565b60006040820190506138c7600083018561357e565b6138d4602083018461383b565b9392505050565b600060c0820190506138f0600083018961357e565b6138fd602083018861383b565b61390a6040830187613609565b6139176060830186613609565b613924608083018561357e565b61393160a083018461383b565b979650505050505050565b600060208201905061395160008301846135eb565b92915050565b600060208201905061396c60008301846135fa565b92915050565b6000602082019050818103600083015261398c8184613618565b905092915050565b600060208201905081810360008301526139ad81613651565b9050919050565b600060208201905081810360008301526139cd81613674565b9050919050565b600060208201905081810360008301526139ed81613697565b9050919050565b60006020820190508181036000830152613a0d816136ba565b9050919050565b60006020820190508181036000830152613a2d816136dd565b9050919050565b60006020820190508181036000830152613a4d81613700565b9050919050565b60006020820190508181036000830152613a6d81613723565b9050919050565b60006020820190508181036000830152613a8d81613746565b9050919050565b60006020820190508181036000830152613aad81613769565b9050919050565b60006020820190508181036000830152613acd8161378c565b9050919050565b60006020820190508181036000830152613aed816137d2565b9050919050565b60006020820190508181036000830152613b0d816137f5565b9050919050565b60006020820190508181036000830152613b2d81613818565b9050919050565b6000602082019050613b49600083018461383b565b92915050565b600060a082019050613b64600083018861383b565b613b716020830187613609565b8181036040830152613b83818661358d565b9050613b92606083018561357e565b613b9f608083018461383b565b9695505050505050565b6000602082019050613bbe600083018461384a565b92915050565b6000613bce613bdf565b9050613bda8282613e48565b919050565b6000604051905090565b600067ffffffffffffffff821115613c0457613c03613f20565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b6000613c8082613dc8565b9150613c8b83613dc8565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613cc057613cbf613ec2565b5b828201905092915050565b6000613cd682613dc8565b9150613ce183613dc8565b925082613cf157613cf0613ef1565b5b828204905092915050565b6000613d0782613dc8565b9150613d1283613dc8565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613d4b57613d4a613ec2565b5b828202905092915050565b6000613d6182613dc8565b9150613d6c83613dc8565b925082821015613d7f57613d7e613ec2565b5b828203905092915050565b6000613d9582613da8565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000613dea82613df1565b9050919050565b6000613dfc82613da8565b9050919050565b6000613e0e82613dc8565b9050919050565b60005b83811015613e33578082015181840152602081019050613e18565b83811115613e42576000848401525b50505050565b613e5182613f4f565b810181811067ffffffffffffffff82111715613e7057613e6f613f20565b5b80604052505050565b6000613e8482613dc8565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415613eb757613eb6613ec2565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f4c61756e6368206173206120686f6e6579706f7420746f206c696d697420626f60008201527f74732c207461782077696c6c20626520736574206265666f72652072656e6f7560208201527f6e63696e67000000000000000000000000000000000000000000000000000000604082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f45786365656473206d6178696d756d2077616c6c657420746f6b656e20616d6f60008201527f756e742e00000000000000000000000000000000000000000000000000000000602082015250565b7f5472616e7366657220616d6f756e74206578636565647320746865206d61784260008201527f7579416d6f756e742e0000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b50565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b7f5472616e7366657220616d6f756e74206578636565647320746865206d61785360008201527f656c6c416d6f756e742e00000000000000000000000000000000000000000000602082015250565b61432381613d8a565b811461432e57600080fd5b50565b61433a81613d9c565b811461434557600080fd5b50565b61435181613dc8565b811461435c57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122074c7a43b3f54e75acd6a21fb813eed90f372e20a7db0a1a189259bf63901b31d64736f6c63430008040033

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

0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d00000000000000000000000023f916b0b14f822fd7e16a145e3c051f7cffe032

-----Decoded View---------------
Arg [0] : _uniswapV2Router (address): 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
Arg [1] : projectWallet (address): 0x23F916B0B14f822fd7e16A145e3c051F7CFfE032

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d
Arg [1] : 00000000000000000000000023f916b0b14f822fd7e16a145e3c051f7cffe032


Deployed Bytecode Sourcemap

3532:11879:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5578:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6409:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12489:222;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4384:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5855:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6578:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13549:88;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11629:109;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5764:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12248:111;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4432:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6899:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5958:117;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2611:148;;;;;;;;;;;;;:::i;:::-;;11962:278;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12719:237;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2397:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5669:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6083:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11750:204;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11235:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15076:154;;;;;;;;;;;;;:::i;:::-;;10397:826;;;;;;;;;;;;;:::i;:::-;;6258:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7010:94;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12964:108;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11514:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12371:110;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11407:99;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15248:160;;;;;;;;;;;;;:::i;:::-;;5578:83;5615:13;5648:5;;;;;;;;;;;;;;;;;5641:12;;5578:83;:::o;6409:161::-;6484:4;6501:39;6510:12;:10;:12::i;:::-;6524:7;6533:6;6501:8;:39::i;:::-;6558:4;6551:11;;6409:161;;;;:::o;12489:222::-;2534:12;:10;:12::i;:::-;2524:22;;:6;;;;;;;;;;:22;;;2516:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12586:2:::1;12569:13;:19;;12561:101;;;;;;;;;;;;:::i;:::-;;;;;;;;;12690:13;12673:14;:30;;;;12489:222:::0;:::o;4384:41::-;;;;;;;;;;;;;:::o;5855:95::-;5908:7;3937:11;5928:14;;5855:95;:::o;6578:313::-;6676:4;6693:36;6703:6;6711:9;6722:6;6693:9;:36::i;:::-;6740:121;6749:6;6757:12;:10;:12::i;:::-;6771:89;6809:6;6771:89;;;;;;;;;;;;;;;;;:11;:19;6783:6;6771:19;;;;;;;;;;;;;;;:33;6791:12;:10;:12::i;:::-;6771:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6740:8;:121::i;:::-;6879:4;6872:11;;6578:313;;;;;:::o;13549:88::-;2534:12;:10;:12::i;:::-;2524:22;;:6;;;;;;;;;;:22;;;2516:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13624:5:::1;13609:4;:12;13614:6;13609:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;13549:88:::0;:::o;11629:109::-;2534:12;:10;:12::i;:::-;2524:22;;:6;;;;;;;;;;:22;;;2516:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11722:8:::1;11703:16;:27;;;;11629:109:::0;:::o;5764:83::-;5805:5;4370:1;5823:16;;5764:83;:::o;12248:111::-;2534:12;:10;:12::i;:::-;2524:22;;:6;;;;;;;;;;:22;;;2516:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12347:4:::1;12317:18;:27;12336:7;12317:27;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;12248:111:::0;:::o;4432:28::-;;;;;;;;;;;;;:::o;6899:103::-;2534:12;:10;:12::i;:::-;2524:22;;:6;;;;;;;;;;:22;;;2516:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6989:5:::1;6971:15;;:23;;;;;;;;;;;;;;;;;;6899:103:::0;:::o;5958:117::-;6024:7;6051;:16;6059:7;6051:16;;;;;;;;;;;;;;;;6044:23;;5958:117;;;:::o;2611:148::-;2534:12;:10;:12::i;:::-;2524:22;;:6;;;;;;;;;;:22;;;2516:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2718:1:::1;2681:40;;2702:6;::::0;::::1;;;;;;;;2681:40;;;;;;;;;;;;2749:1;2732:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2611:148::o:0;11962:278::-;2534:12;:10;:12::i;:::-;2524:22;;:6;;;;;;;;;;:22;;;2516:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12074:1:::1;12049:27;;:13;:27;;;;12041:36;;;::::0;::::1;;12125:5;12088:18;:34;12107:14;;;;;;;;;;;12088:34;;;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;12166:13;12141:14;;:39;;;;;;;;;;;;;;;;;;12228:4;12191:18;:34;12210:14;;;;;;;;;;;12191:34;;;;;;;;;;;;;;;;:41;;;;;;;;;;;;;;;;;;11962:278:::0;:::o;12719:237::-;2534:12;:10;:12::i;:::-;2524:22;;:6;;;;;;;;;;:22;;;2516:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12819:2:::1;12801:14;:20;;12793:102;;;;;;;;;;;;:::i;:::-;;;;;;;;;12924:14;12906:15;:32;;;;12719:237:::0;:::o;2397:79::-;2435:7;2462:6;;;;;;;;;;;2455:13;;2397:79;:::o;5669:87::-;5708:13;5741:7;;;;;;;;;;;;;;;;;5734:14;;5669:87;:::o;6083:167::-;6161:4;6178:42;6188:12;:10;:12::i;:::-;6202:9;6213:6;6178:9;:42::i;:::-;6238:4;6231:11;;6083:167;;;;:::o;11750:204::-;2534:12;:10;:12::i;:::-;2524:22;;:6;;;;;;;;;;:22;;;2516:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11849:11:::1;11836:9;:24;;11828:33;;;::::0;::::1;;11893:11;11880:9;:24;;11872:33;;;::::0;::::1;;11937:9;11916:18;:30;;;;11750:204:::0;:::o;11235:164::-;2534:12;:10;:12::i;:::-;2524:22;;:6;;;;;;;;;;:22;;;2516:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11309:6:::1;11304:88;11325:5;:12;11321:1;:16;11304:88;;;11376:4;11359;:14;11364:5;11370:1;11364:8;;;;;;;;;;;;;;;;;;;;;;11359:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;11339:3;;;;;:::i;:::-;;;;11304:88;;;;11235:164:::0;:::o;15076:154::-;2534:12;:10;:12::i;:::-;2524:22;;:6;;;;;;;;;;:22;;;2516:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15128:23:::1;15154:24;15172:4;15154:9;:24::i;:::-;15128:50;;15189:33;15206:15;15189:16;:33::i;:::-;2594:1;15076:154::o:0;10397:826::-;2534:12;:10;:12::i;:::-;2524:22;;:6;;;;;;;;;;:22;;;2516:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10461:11:::1;;;;;;;;;;;10460:12;10452:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;10518:58;10535:4;10550:15;;;;;;;;;;;3937:11;10518:8;:58::i;:::-;10621:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10603:55;;;10667:4;10674:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10603:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10587:13;;:110;;;;;;;;;;;;;;;;;;10708:15;;;;;;;;;;;:31;;;10747:21;10778:4;10784:24;10802:4;10784:9;:24::i;:::-;10809:1;10811::::0;10813:7:::1;:5;:7::i;:::-;10821:15;10708:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;10862:4;10848:11;;:18;;;;;;;;;;;;;;;;;;10895:4;10877:15;;:22;;;;;;;;;;;;;;;;;;10926:11;10910:13;:27;;;;10965:11;10948:14;:28;;;;11006:11;10987:16;:30;;;;11049:11;11028:18;:32;;;;11085:4;11071:11;;:18;;;;;;;;;;;;;;;;;;11121:12;11100:18;:33;;;;11151:13;;;;;;;;;;;11144:29;;;11182:15;;;;;;;;;;;11200:14;11144:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;10397:826::o:0;6258:143::-;6339:7;6366:11;:18;6378:5;6366:18;;;;;;;;;;;;;;;:27;6385:7;6366:27;;;;;;;;;;;;;;;;6359:34;;6258:143;;;;:::o;7010:94::-;2534:12;:10;:12::i;:::-;2524:22;;:6;;;;;;;;;;:22;;;2516:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;7091:5:::1;7077:11;;:19;;;;;;;;;;;;;;;;;;7010:94:::0;:::o;12964:108::-;2534:12;:10;:12::i;:::-;2524:22;;:6;;;;;;;;;;:22;;;2516:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13058:6:::1;13038:17;:26;;;;12964:108:::0;:::o;11514:103::-;2534:12;:10;:12::i;:::-;2524:22;;:6;;;;;;;;;;:22;;;2516:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11602:7:::1;11585:14;:24;;;;11514:103:::0;:::o;12371:110::-;2534:12;:10;:12::i;:::-;2524:22;;:6;;;;;;;;;;:22;;;2516:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12468:5:::1;12438:18;:27;12457:7;12438:27;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;12371:110:::0;:::o;11407:99::-;2534:12;:10;:12::i;:::-;2524:22;;:6;;;;;;;;;;:22;;;2516:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11492:6:::1;11476:13;:22;;;;11407:99:::0;:::o;15248:160::-;2534:12;:10;:12::i;:::-;2524:22;;:6;;;;;;;;;;:22;;;2516:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15306:12:::1;15350:10;15342:24;;15374:21;15342:58;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15329:71;;;;;2594:1;15248:160::o:0;115:98::-;168:7;195:10;188:17;;115:98;:::o;7112:335::-;7222:1;7205:19;;:5;:19;;;;7197:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7303:1;7284:21;;:7;:21;;;;7276:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7385:6;7355:11;:18;7367:5;7355:18;;;;;;;;;;;;;;;:27;7374:7;7355:27;;;;;;;;;;;;;;;:36;;;;7423:7;7407:32;;7416:5;7407:32;;;7432:6;7407:32;;;;;;:::i;:::-;;;;;;;;7112:335;;;:::o;7455:1850::-;7559:1;7543:18;;:4;:18;;;;7535:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7636:1;7622:16;;:2;:16;;;;7614:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7706:1;7697:6;:10;7689:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7764:12;7795:15;7841:7;:5;:7::i;:::-;7833:15;;:4;:15;;;;:32;;;;;7858:7;:5;:7::i;:::-;7852:13;;:2;:13;;;;7833:32;:52;;;;;7883:1;7869:16;;:2;:16;;;;7833:52;:77;;;;;7903:6;7889:21;;:2;:21;;;;7833:77;:90;;;;;7915:8;;;;;;;;;;;7914:9;7833:90;7829:939;;;7949:4;:10;7954:4;7949:10;;;;;;;;;;;;;;;;;;;;;;;;;7948:11;:24;;;;;7964:4;:8;7969:2;7964:8;;;;;;;;;;;;;;;;;;;;;;;;;7963:9;7948:24;7940:33;;;;;;8000:4;7990:14;;8031:13;;;;;;;;;;;8023:21;;:4;:21;;;:55;;;;;8062:15;;;;;;;;;;;8048:30;;:2;:30;;;;8023:55;:82;;;;;8083:18;:22;8102:2;8083:22;;;;;;;;;;;;;;;;;;;;;;;;;8082:23;8023:82;:101;;;;;8109:15;;;;;;;;;;;8023:101;8019:451;;;8163:13;;8153:6;:23;;8145:77;;;;;;;;;;;;:::i;:::-;;;;;;;;;8275:16;;8265:6;8249:13;8259:2;8249:9;:13::i;:::-;:22;;;;:::i;:::-;:42;;8241:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;8374:15;8359:8;:12;8368:2;8359:12;;;;;;;;;;;;;;;;:30;8351:39;;;;;;8443:10;8424:15;:30;;;;:::i;:::-;8409:8;:12;8418:2;8409:12;;;;;;;;;;;;;;;:45;;;;8019:451;8508:13;;;;;;;;;;;8502:19;;:2;:19;;;:55;;;;;8541:15;;;;;;;;;;;8525:32;;:4;:32;;;;8502:55;:84;;;;;8562:18;:24;8581:4;8562:24;;;;;;;;;;;;;;;;;;;;;;;;;8561:25;8502:84;:103;;;;;8590:15;;;;;;;;;;;8502:103;8498:259;;;8644:14;;8634:6;:24;;8626:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;8737:4;8724:17;;8498:259;7829:939;8783:18;:24;8802:4;8783:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;8811:18;:22;8830:2;8811:22;;;;;;;;;;;;;;;;;;;;;;;;;8783:50;8780:97;;;8860:5;8850:15;;8780:97;8889:28;8920:24;8938:4;8920:9;:24::i;:::-;8889:55;;8955:12;8994:18;;8971:20;:41;8970:57;;;;;9017:10;8970:57;8955:72;;9044:7;:22;;;;;9055:11;;;;;;;;;;;9044:22;:35;;;;;9071:8;;;;;;;;;;;9070:9;9044:35;:64;;;;;9084:18;:24;9103:4;9084:24;;;;;;;;;;;;;;;;;;;;;;;;;9083:25;9044:64;:91;;;;;9113:18;:22;9132:2;9113:22;;;;;;;;;;;;;;;;;;;;;;;;;9112:23;9044:91;9040:195;;;9163:4;9152:8;;:15;;;;;;;;;;;;;;;;;;9182:10;:8;:10::i;:::-;9218:5;9207:8;;:16;;;;;;;;;;;;;;;;;;9040:195;9247:50;9262:4;9267:2;9270:6;9277:7;9286:10;9247:14;:50::i;:::-;7455:1850;;;;;;;:::o;1252:190::-;1338:7;1371:1;1366;:6;;1374:12;1358:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1398:9;1414:1;1410;:5;;;;:::i;:::-;1398:17;;1433:1;1426:8;;;1252:190;;;;;:::o;9899:483::-;5079:4;5070:6;;:13;;;;;;;;;;;;;;;;;;9977:21:::1;10015:1;10001:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9977:40;;10046:4;10028;10033:1;10028:7;;;;;;;;;;;;;;;;;;;;;:23;;;;;;;;;::::0;::::1;10072:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10062:4;10067:1;10062:7;;;;;;;;;;;;;;;;;;;;;:32;;;;;;;;;::::0;::::1;10105:62;10122:4;10137:15;;;;;;;;;;;10155:11;10105:8;:62::i;:::-;10178:15;;;;;;;;;;;:66;;;10259:11;10285:1;10301:4;10328;10348:15;10178:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;5094:1;5115:5:::0;5106:6;;:14;;;;;;;;;;;;;;;;;;9899:483;:::o;9313:578::-;9352:24;9379;9397:4;9379:9;:24::i;:::-;9352:51;;9424:12;9480:1;9460:16;:21;9457:35;;;9484:7;;;;9457:35;9547:2;9526:18;;:23;;;;:::i;:::-;9507:16;:42;9504:116;;;9606:2;9585:18;;:23;;;;:::i;:::-;9566:42;;9504:116;9648:25;9676:21;9648:49;;9710:34;9727:16;9710;:34::i;:::-;9809:14;;;;;;;;;;;9801:28;;9861:17;9837:21;:41;;;;:::i;:::-;9801:82;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9788:95;;;;;9313:578;;;;:::o;13653:389::-;13778:7;13774:129;;13802:14;:12;:14::i;:::-;13774:129;;;13858:33;13868:6;13876;13884;13858:9;:33::i;:::-;13849:42;;13774:129;13915:44;13933:6;13941:9;13952:6;13915:17;:44::i;:::-;13984:7;13980:55;;14008:15;:13;:15::i;:::-;13980:55;13653:389;;;;;:::o;13080:302::-;13144:1;13126:14;;:19;:43;;;;;13168:1;13149:15;;:20;13126:43;13123:55;;;13171:7;;13123:55;13223:14;;13198:22;:39;;;;13274:15;;13248:23;:41;;;;13335:1;13318:14;:18;;;;13365:1;13347:15;:19;;;;13080:302;:::o;14325:706::-;14406:7;14426:15;14497:12;14476:17;;14455:18;;:38;;;;:::i;:::-;:54;14452:310;;14535:2;14525:12;;14452:310;;;14586:6;14582:169;;;14623:15;;14613:25;;14582:169;;;14705:14;;14695:24;;14582:169;14452:310;14790:24;14817:28;14841:3;14817:19;14828:7;14817:6;:10;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;14790:55;;14878:1;14859:16;:20;14856:110;;;14896:58;14914:6;14930:4;14937:16;14896:17;:58::i;:::-;14856:110;15007:16;14997:26;;;;;:::i;:::-;;;;14990:33;;;;14325:706;;;;;:::o;14050:267::-;14166:28;14186:7;14166;:15;14174:6;14166:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;14148:7;:15;14156:6;14148:15;;;;;;;;;;;;;;;:46;;;;14226:31;14249:7;14226;:18;14234:9;14226:18;;;;;;;;;;;;;;;;:22;;:31;;;;:::i;:::-;14205:7;:18;14213:9;14205:18;;;;;;;;;;;;;;;:52;;;;14290:9;14273:36;;14282:6;14273:36;;;14301:7;14273:36;;;;;;:::i;:::-;;;;;;;;14050:267;;;:::o;13394:143::-;13455:22;;13438:14;:39;;;;13506:23;;13488:15;:41;;;;13394:143::o;1450:246::-;1508:7;1537:1;1532;:6;1528:47;;;1562:1;1555:8;;;;1528:47;1585:9;1601:1;1597;:5;;;;:::i;:::-;1585:17;;1630:1;1625;1621;:5;;;;:::i;:::-;:10;1613:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1687:1;1680:8;;;1450:246;;;;;:::o;1704:132::-;1762:7;1789:39;1793:1;1796;1789:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1782:46;;1704:132;;;;:::o;1108:136::-;1166:7;1193:43;1197:1;1200;1193:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1186:50;;1108:136;;;;:::o;921:179::-;979:7;999:9;1015:1;1011;:5;;;;:::i;:::-;999:17;;1040:1;1035;:6;;1027:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1091:1;1084:8;;;921:179;;;;:::o;1844:189::-;1930:7;1962:1;1958;:5;1965:12;1950:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1989:9;2005:1;2001;:5;;;;:::i;:::-;1989:17;;2024:1;2017:8;;;1844:189;;;;;:::o;24:655:1:-;120:5;145:81;161:64;218:6;161:64;:::i;:::-;145:81;:::i;:::-;136:90;;246:5;275:6;268:5;261:21;309:4;302:5;298:16;291:23;;335:6;385:3;377:4;369:6;365:17;360:3;356:27;353:36;350:2;;;414:1;411;404:12;350:2;450:1;435:238;460:6;457:1;454:13;435:238;;;528:3;557:37;590:3;578:10;557:37;:::i;:::-;552:3;545:50;624:4;619:3;615:14;608:21;;658:4;653:3;649:14;642:21;;495:178;482:1;479;475:9;470:14;;435:238;;;439:14;126:553;;;;;;;:::o;685:139::-;731:5;769:6;756:20;747:29;;785:33;812:5;785:33;:::i;:::-;737:87;;;;:::o;830:143::-;887:5;918:6;912:13;903:22;;934:33;961:5;934:33;:::i;:::-;893:80;;;;:::o;996:303::-;1067:5;1116:3;1109:4;1101:6;1097:17;1093:27;1083:2;;1134:1;1131;1124:12;1083:2;1174:6;1161:20;1199:94;1289:3;1281:6;1274:4;1266:6;1262:17;1199:94;:::i;:::-;1190:103;;1073:226;;;;;:::o;1305:133::-;1348:5;1386:6;1373:20;1364:29;;1402:30;1426:5;1402:30;:::i;:::-;1354:84;;;;:::o;1444:137::-;1498:5;1529:6;1523:13;1514:22;;1545:30;1569:5;1545:30;:::i;:::-;1504:77;;;;:::o;1587:139::-;1633:5;1671:6;1658:20;1649:29;;1687:33;1714:5;1687:33;:::i;:::-;1639:87;;;;:::o;1732:143::-;1789:5;1820:6;1814:13;1805:22;;1836:33;1863:5;1836:33;:::i;:::-;1795:80;;;;:::o;1881:262::-;1940:6;1989:2;1977:9;1968:7;1964:23;1960:32;1957:2;;;2005:1;2002;1995:12;1957:2;2048:1;2073:53;2118:7;2109:6;2098:9;2094:22;2073:53;:::i;:::-;2063:63;;2019:117;1947:196;;;;:::o;2149:284::-;2219:6;2268:2;2256:9;2247:7;2243:23;2239:32;2236:2;;;2284:1;2281;2274:12;2236:2;2327:1;2352:64;2408:7;2399:6;2388:9;2384:22;2352:64;:::i;:::-;2342:74;;2298:128;2226:207;;;;:::o;2439:407::-;2507:6;2515;2564:2;2552:9;2543:7;2539:23;2535:32;2532:2;;;2580:1;2577;2570:12;2532:2;2623:1;2648:53;2693:7;2684:6;2673:9;2669:22;2648:53;:::i;:::-;2638:63;;2594:117;2750:2;2776:53;2821:7;2812:6;2801:9;2797:22;2776:53;:::i;:::-;2766:63;;2721:118;2522:324;;;;;:::o;2852:552::-;2929:6;2937;2945;2994:2;2982:9;2973:7;2969:23;2965:32;2962:2;;;3010:1;3007;3000:12;2962:2;3053:1;3078:53;3123:7;3114:6;3103:9;3099:22;3078:53;:::i;:::-;3068:63;;3024:117;3180:2;3206:53;3251:7;3242:6;3231:9;3227:22;3206:53;:::i;:::-;3196:63;;3151:118;3308:2;3334:53;3379:7;3370:6;3359:9;3355:22;3334:53;:::i;:::-;3324:63;;3279:118;2952:452;;;;;:::o;3410:407::-;3478:6;3486;3535:2;3523:9;3514:7;3510:23;3506:32;3503:2;;;3551:1;3548;3541:12;3503:2;3594:1;3619:53;3664:7;3655:6;3644:9;3640:22;3619:53;:::i;:::-;3609:63;;3565:117;3721:2;3747:53;3792:7;3783:6;3772:9;3768:22;3747:53;:::i;:::-;3737:63;;3692:118;3493:324;;;;;:::o;3823:405::-;3907:6;3956:2;3944:9;3935:7;3931:23;3927:32;3924:2;;;3972:1;3969;3962:12;3924:2;4043:1;4032:9;4028:17;4015:31;4073:18;4065:6;4062:30;4059:2;;;4105:1;4102;4095:12;4059:2;4133:78;4203:7;4194:6;4183:9;4179:22;4133:78;:::i;:::-;4123:88;;3986:235;3914:314;;;;:::o;4234:256::-;4290:6;4339:2;4327:9;4318:7;4314:23;4310:32;4307:2;;;4355:1;4352;4345:12;4307:2;4398:1;4423:50;4465:7;4456:6;4445:9;4441:22;4423:50;:::i;:::-;4413:60;;4369:114;4297:193;;;;:::o;4496:278::-;4563:6;4612:2;4600:9;4591:7;4587:23;4583:32;4580:2;;;4628:1;4625;4618:12;4580:2;4671:1;4696:61;4749:7;4740:6;4729:9;4725:22;4696:61;:::i;:::-;4686:71;;4642:125;4570:204;;;;:::o;4780:262::-;4839:6;4888:2;4876:9;4867:7;4863:23;4859:32;4856:2;;;4904:1;4901;4894:12;4856:2;4947:1;4972:53;5017:7;5008:6;4997:9;4993:22;4972:53;:::i;:::-;4962:63;;4918:117;4846:196;;;;:::o;5048:596::-;5136:6;5144;5152;5201:2;5189:9;5180:7;5176:23;5172:32;5169:2;;;5217:1;5214;5207:12;5169:2;5260:1;5285:64;5341:7;5332:6;5321:9;5317:22;5285:64;:::i;:::-;5275:74;;5231:128;5398:2;5424:64;5480:7;5471:6;5460:9;5456:22;5424:64;:::i;:::-;5414:74;;5369:129;5537:2;5563:64;5619:7;5610:6;5599:9;5595:22;5563:64;:::i;:::-;5553:74;;5508:129;5159:485;;;;;:::o;5650:179::-;5719:10;5740:46;5782:3;5774:6;5740:46;:::i;:::-;5818:4;5813:3;5809:14;5795:28;;5730:99;;;;:::o;5835:108::-;5912:24;5930:5;5912:24;:::i;:::-;5907:3;5900:37;5890:53;;:::o;5949:118::-;6036:24;6054:5;6036:24;:::i;:::-;6031:3;6024:37;6014:53;;:::o;6103:732::-;6222:3;6251:54;6299:5;6251:54;:::i;:::-;6321:86;6400:6;6395:3;6321:86;:::i;:::-;6314:93;;6431:56;6481:5;6431:56;:::i;:::-;6510:7;6541:1;6526:284;6551:6;6548:1;6545:13;6526:284;;;6627:6;6621:13;6654:63;6713:3;6698:13;6654:63;:::i;:::-;6647:70;;6740:60;6793:6;6740:60;:::i;:::-;6730:70;;6586:224;6573:1;6570;6566:9;6561:14;;6526:284;;;6530:14;6826:3;6819:10;;6227:608;;;;;;;:::o;6841:109::-;6922:21;6937:5;6922:21;:::i;:::-;6917:3;6910:34;6900:50;;:::o;6956:183::-;7069:63;7126:5;7069:63;:::i;:::-;7064:3;7057:76;7047:92;;:::o;7145:147::-;7240:45;7279:5;7240:45;:::i;:::-;7235:3;7228:58;7218:74;;:::o;7298:364::-;7386:3;7414:39;7447:5;7414:39;:::i;:::-;7469:71;7533:6;7528:3;7469:71;:::i;:::-;7462:78;;7549:52;7594:6;7589:3;7582:4;7575:5;7571:16;7549:52;:::i;:::-;7626:29;7648:6;7626:29;:::i;:::-;7621:3;7617:39;7610:46;;7390:272;;;;;:::o;7668:366::-;7810:3;7831:67;7895:2;7890:3;7831:67;:::i;:::-;7824:74;;7907:93;7996:3;7907:93;:::i;:::-;8025:2;8020:3;8016:12;8009:19;;7814:220;;;:::o;8040:366::-;8182:3;8203:67;8267:2;8262:3;8203:67;:::i;:::-;8196:74;;8279:93;8368:3;8279:93;:::i;:::-;8397:2;8392:3;8388:12;8381:19;;8186:220;;;:::o;8412:366::-;8554:3;8575:67;8639:2;8634:3;8575:67;:::i;:::-;8568:74;;8651:93;8740:3;8651:93;:::i;:::-;8769:2;8764:3;8760:12;8753:19;;8558:220;;;:::o;8784:366::-;8926:3;8947:67;9011:2;9006:3;8947:67;:::i;:::-;8940:74;;9023:93;9112:3;9023:93;:::i;:::-;9141:2;9136:3;9132:12;9125:19;;8930:220;;;:::o;9156:366::-;9298:3;9319:67;9383:2;9378:3;9319:67;:::i;:::-;9312:74;;9395:93;9484:3;9395:93;:::i;:::-;9513:2;9508:3;9504:12;9497:19;;9302:220;;;:::o;9528:366::-;9670:3;9691:67;9755:2;9750:3;9691:67;:::i;:::-;9684:74;;9767:93;9856:3;9767:93;:::i;:::-;9885:2;9880:3;9876:12;9869:19;;9674:220;;;:::o;9900:366::-;10042:3;10063:67;10127:2;10122:3;10063:67;:::i;:::-;10056:74;;10139:93;10228:3;10139:93;:::i;:::-;10257:2;10252:3;10248:12;10241:19;;10046:220;;;:::o;10272:366::-;10414:3;10435:67;10499:2;10494:3;10435:67;:::i;:::-;10428:74;;10511:93;10600:3;10511:93;:::i;:::-;10629:2;10624:3;10620:12;10613:19;;10418:220;;;:::o;10644:366::-;10786:3;10807:67;10871:2;10866:3;10807:67;:::i;:::-;10800:74;;10883:93;10972:3;10883:93;:::i;:::-;11001:2;10996:3;10992:12;10985:19;;10790:220;;;:::o;11016:366::-;11158:3;11179:67;11243:2;11238:3;11179:67;:::i;:::-;11172:74;;11255:93;11344:3;11255:93;:::i;:::-;11373:2;11368:3;11364:12;11357:19;;11162:220;;;:::o;11388:398::-;11547:3;11568:83;11649:1;11644:3;11568:83;:::i;:::-;11561:90;;11660:93;11749:3;11660:93;:::i;:::-;11778:1;11773:3;11769:11;11762:18;;11551:235;;;:::o;11792:366::-;11934:3;11955:67;12019:2;12014:3;11955:67;:::i;:::-;11948:74;;12031:93;12120:3;12031:93;:::i;:::-;12149:2;12144:3;12140:12;12133:19;;11938:220;;;:::o;12164:366::-;12306:3;12327:67;12391:2;12386:3;12327:67;:::i;:::-;12320:74;;12403:93;12492:3;12403:93;:::i;:::-;12521:2;12516:3;12512:12;12505:19;;12310:220;;;:::o;12536:366::-;12678:3;12699:67;12763:2;12758:3;12699:67;:::i;:::-;12692:74;;12775:93;12864:3;12775:93;:::i;:::-;12893:2;12888:3;12884:12;12877:19;;12682:220;;;:::o;12908:118::-;12995:24;13013:5;12995:24;:::i;:::-;12990:3;12983:37;12973:53;;:::o;13032:112::-;13115:22;13131:5;13115:22;:::i;:::-;13110:3;13103:35;13093:51;;:::o;13150:379::-;13334:3;13356:147;13499:3;13356:147;:::i;:::-;13349:154;;13520:3;13513:10;;13338:191;;;:::o;13535:222::-;13628:4;13666:2;13655:9;13651:18;13643:26;;13679:71;13747:1;13736:9;13732:17;13723:6;13679:71;:::i;:::-;13633:124;;;;:::o;13763:332::-;13884:4;13922:2;13911:9;13907:18;13899:26;;13935:71;14003:1;13992:9;13988:17;13979:6;13935:71;:::i;:::-;14016:72;14084:2;14073:9;14069:18;14060:6;14016:72;:::i;:::-;13889:206;;;;;:::o;14101:332::-;14222:4;14260:2;14249:9;14245:18;14237:26;;14273:71;14341:1;14330:9;14326:17;14317:6;14273:71;:::i;:::-;14354:72;14422:2;14411:9;14407:18;14398:6;14354:72;:::i;:::-;14227:206;;;;;:::o;14439:807::-;14688:4;14726:3;14715:9;14711:19;14703:27;;14740:71;14808:1;14797:9;14793:17;14784:6;14740:71;:::i;:::-;14821:72;14889:2;14878:9;14874:18;14865:6;14821:72;:::i;:::-;14903:80;14979:2;14968:9;14964:18;14955:6;14903:80;:::i;:::-;14993;15069:2;15058:9;15054:18;15045:6;14993:80;:::i;:::-;15083:73;15151:3;15140:9;15136:19;15127:6;15083:73;:::i;:::-;15166;15234:3;15223:9;15219:19;15210:6;15166:73;:::i;:::-;14693:553;;;;;;;;;:::o;15252:210::-;15339:4;15377:2;15366:9;15362:18;15354:26;;15390:65;15452:1;15441:9;15437:17;15428:6;15390:65;:::i;:::-;15344:118;;;;:::o;15468:274::-;15587:4;15625:2;15614:9;15610:18;15602:26;;15638:97;15732:1;15721:9;15717:17;15708:6;15638:97;:::i;:::-;15592:150;;;;:::o;15748:313::-;15861:4;15899:2;15888:9;15884:18;15876:26;;15948:9;15942:4;15938:20;15934:1;15923:9;15919:17;15912:47;15976:78;16049:4;16040:6;15976:78;:::i;:::-;15968:86;;15866:195;;;;:::o;16067:419::-;16233:4;16271:2;16260:9;16256:18;16248:26;;16320:9;16314:4;16310:20;16306:1;16295:9;16291:17;16284:47;16348:131;16474:4;16348:131;:::i;:::-;16340:139;;16238:248;;;:::o;16492:419::-;16658:4;16696:2;16685:9;16681:18;16673:26;;16745:9;16739:4;16735:20;16731:1;16720:9;16716:17;16709:47;16773:131;16899:4;16773:131;:::i;:::-;16765:139;;16663:248;;;:::o;16917:419::-;17083:4;17121:2;17110:9;17106:18;17098:26;;17170:9;17164:4;17160:20;17156:1;17145:9;17141:17;17134:47;17198:131;17324:4;17198:131;:::i;:::-;17190:139;;17088:248;;;:::o;17342:419::-;17508:4;17546:2;17535:9;17531:18;17523:26;;17595:9;17589:4;17585:20;17581:1;17570:9;17566:17;17559:47;17623:131;17749:4;17623:131;:::i;:::-;17615:139;;17513:248;;;:::o;17767:419::-;17933:4;17971:2;17960:9;17956:18;17948:26;;18020:9;18014:4;18010:20;18006:1;17995:9;17991:17;17984:47;18048:131;18174:4;18048:131;:::i;:::-;18040:139;;17938:248;;;:::o;18192:419::-;18358:4;18396:2;18385:9;18381:18;18373:26;;18445:9;18439:4;18435:20;18431:1;18420:9;18416:17;18409:47;18473:131;18599:4;18473:131;:::i;:::-;18465:139;;18363:248;;;:::o;18617:419::-;18783:4;18821:2;18810:9;18806:18;18798:26;;18870:9;18864:4;18860:20;18856:1;18845:9;18841:17;18834:47;18898:131;19024:4;18898:131;:::i;:::-;18890:139;;18788:248;;;:::o;19042:419::-;19208:4;19246:2;19235:9;19231:18;19223:26;;19295:9;19289:4;19285:20;19281:1;19270:9;19266:17;19259:47;19323:131;19449:4;19323:131;:::i;:::-;19315:139;;19213:248;;;:::o;19467:419::-;19633:4;19671:2;19660:9;19656:18;19648:26;;19720:9;19714:4;19710:20;19706:1;19695:9;19691:17;19684:47;19748:131;19874:4;19748:131;:::i;:::-;19740:139;;19638:248;;;:::o;19892:419::-;20058:4;20096:2;20085:9;20081:18;20073:26;;20145:9;20139:4;20135:20;20131:1;20120:9;20116:17;20109:47;20173:131;20299:4;20173:131;:::i;:::-;20165:139;;20063:248;;;:::o;20317:419::-;20483:4;20521:2;20510:9;20506:18;20498:26;;20570:9;20564:4;20560:20;20556:1;20545:9;20541:17;20534:47;20598:131;20724:4;20598:131;:::i;:::-;20590:139;;20488:248;;;:::o;20742:419::-;20908:4;20946:2;20935:9;20931:18;20923:26;;20995:9;20989:4;20985:20;20981:1;20970:9;20966:17;20959:47;21023:131;21149:4;21023:131;:::i;:::-;21015:139;;20913:248;;;:::o;21167:419::-;21333:4;21371:2;21360:9;21356:18;21348:26;;21420:9;21414:4;21410:20;21406:1;21395:9;21391:17;21384:47;21448:131;21574:4;21448:131;:::i;:::-;21440:139;;21338:248;;;:::o;21592:222::-;21685:4;21723:2;21712:9;21708:18;21700:26;;21736:71;21804:1;21793:9;21789:17;21780:6;21736:71;:::i;:::-;21690:124;;;;:::o;21820:831::-;22083:4;22121:3;22110:9;22106:19;22098:27;;22135:71;22203:1;22192:9;22188:17;22179:6;22135:71;:::i;:::-;22216:80;22292:2;22281:9;22277:18;22268:6;22216:80;:::i;:::-;22343:9;22337:4;22333:20;22328:2;22317:9;22313:18;22306:48;22371:108;22474:4;22465:6;22371:108;:::i;:::-;22363:116;;22489:72;22557:2;22546:9;22542:18;22533:6;22489:72;:::i;:::-;22571:73;22639:3;22628:9;22624:19;22615:6;22571:73;:::i;:::-;22088:563;;;;;;;;:::o;22657:214::-;22746:4;22784:2;22773:9;22769:18;22761:26;;22797:67;22861:1;22850:9;22846:17;22837:6;22797:67;:::i;:::-;22751:120;;;;:::o;22877:129::-;22911:6;22938:20;;:::i;:::-;22928:30;;22967:33;22995:4;22987:6;22967:33;:::i;:::-;22918:88;;;:::o;23012:75::-;23045:6;23078:2;23072:9;23062:19;;23052:35;:::o;23093:311::-;23170:4;23260:18;23252:6;23249:30;23246:2;;;23282:18;;:::i;:::-;23246:2;23332:4;23324:6;23320:17;23312:25;;23392:4;23386;23382:15;23374:23;;23175:229;;;:::o;23410:132::-;23477:4;23500:3;23492:11;;23530:4;23525:3;23521:14;23513:22;;23482:60;;;:::o;23548:114::-;23615:6;23649:5;23643:12;23633:22;;23622:40;;;:::o;23668:99::-;23720:6;23754:5;23748:12;23738:22;;23727:40;;;:::o;23773:113::-;23843:4;23875;23870:3;23866:14;23858:22;;23848:38;;;:::o;23892:184::-;23991:11;24025:6;24020:3;24013:19;24065:4;24060:3;24056:14;24041:29;;24003:73;;;;:::o;24082:147::-;24183:11;24220:3;24205:18;;24195:34;;;;:::o;24235:169::-;24319:11;24353:6;24348:3;24341:19;24393:4;24388:3;24384:14;24369:29;;24331:73;;;;:::o;24410:305::-;24450:3;24469:20;24487:1;24469:20;:::i;:::-;24464:25;;24503:20;24521:1;24503:20;:::i;:::-;24498:25;;24657:1;24589:66;24585:74;24582:1;24579:81;24576:2;;;24663:18;;:::i;:::-;24576:2;24707:1;24704;24700:9;24693:16;;24454:261;;;;:::o;24721:185::-;24761:1;24778:20;24796:1;24778:20;:::i;:::-;24773:25;;24812:20;24830:1;24812:20;:::i;:::-;24807:25;;24851:1;24841:2;;24856:18;;:::i;:::-;24841:2;24898:1;24895;24891:9;24886:14;;24763:143;;;;:::o;24912:348::-;24952:7;24975:20;24993:1;24975:20;:::i;:::-;24970:25;;25009:20;25027:1;25009:20;:::i;:::-;25004:25;;25197:1;25129:66;25125:74;25122:1;25119:81;25114:1;25107:9;25100:17;25096:105;25093:2;;;25204:18;;:::i;:::-;25093:2;25252:1;25249;25245:9;25234:20;;24960:300;;;;:::o;25266:191::-;25306:4;25326:20;25344:1;25326:20;:::i;:::-;25321:25;;25360:20;25378:1;25360:20;:::i;:::-;25355:25;;25399:1;25396;25393:8;25390:2;;;25404:18;;:::i;:::-;25390:2;25449:1;25446;25442:9;25434:17;;25311:146;;;;:::o;25463:96::-;25500:7;25529:24;25547:5;25529:24;:::i;:::-;25518:35;;25508:51;;;:::o;25565:90::-;25599:7;25642:5;25635:13;25628:21;25617:32;;25607:48;;;:::o;25661:126::-;25698:7;25738:42;25731:5;25727:54;25716:65;;25706:81;;;:::o;25793:77::-;25830:7;25859:5;25848:16;;25838:32;;;:::o;25876:86::-;25911:7;25951:4;25944:5;25940:16;25929:27;;25919:43;;;:::o;25968:178::-;26044:9;26077:63;26134:5;26077:63;:::i;:::-;26064:76;;26054:92;;;:::o;26152:139::-;26228:9;26261:24;26279:5;26261:24;:::i;:::-;26248:37;;26238:53;;;:::o;26297:121::-;26355:9;26388:24;26406:5;26388:24;:::i;:::-;26375:37;;26365:53;;;:::o;26424:307::-;26492:1;26502:113;26516:6;26513:1;26510:13;26502:113;;;26601:1;26596:3;26592:11;26586:18;26582:1;26577:3;26573:11;26566:39;26538:2;26535:1;26531:10;26526:15;;26502:113;;;26633:6;26630:1;26627:13;26624:2;;;26713:1;26704:6;26699:3;26695:16;26688:27;26624:2;26473:258;;;;:::o;26737:281::-;26820:27;26842:4;26820:27;:::i;:::-;26812:6;26808:40;26950:6;26938:10;26935:22;26914:18;26902:10;26899:34;26896:62;26893:2;;;26961:18;;:::i;:::-;26893:2;27001:10;26997:2;26990:22;26780:238;;;:::o;27024:233::-;27063:3;27086:24;27104:5;27086:24;:::i;:::-;27077:33;;27132:66;27125:5;27122:77;27119:2;;;27202:18;;:::i;:::-;27119:2;27249:1;27242:5;27238:13;27231:20;;27067:190;;;:::o;27263:180::-;27311:77;27308:1;27301:88;27408:4;27405:1;27398:15;27432:4;27429:1;27422:15;27449:180;27497:77;27494:1;27487:88;27594:4;27591:1;27584:15;27618:4;27615:1;27608:15;27635:180;27683:77;27680:1;27673:88;27780:4;27777:1;27770:15;27804:4;27801:1;27794:15;27821:102;27862:6;27913:2;27909:7;27904:2;27897:5;27893:14;27889:28;27879:38;;27869:54;;;:::o;27929:222::-;28069:34;28065:1;28057:6;28053:14;28046:58;28138:5;28133:2;28125:6;28121:15;28114:30;28035:116;:::o;28157:293::-;28297:34;28293:1;28285:6;28281:14;28274:58;28366:34;28361:2;28353:6;28349:15;28342:59;28435:7;28430:2;28422:6;28418:15;28411:32;28263:187;:::o;28456:221::-;28596:34;28592:1;28584:6;28580:14;28573:58;28665:4;28660:2;28652:6;28648:15;28641:29;28562:115;:::o;28683:177::-;28823:29;28819:1;28811:6;28807:14;28800:53;28789:71;:::o;28866:223::-;29006:34;29002:1;28994:6;28990:14;28983:58;29075:6;29070:2;29062:6;29058:15;29051:31;28972:117;:::o;29095:228::-;29235:34;29231:1;29223:6;29219:14;29212:58;29304:11;29299:2;29291:6;29287:15;29280:36;29201:122;:::o;29329:220::-;29469:34;29465:1;29457:6;29453:14;29446:58;29538:3;29533:2;29525:6;29521:15;29514:28;29435:114;:::o;29555:182::-;29695:34;29691:1;29683:6;29679:14;29672:58;29661:76;:::o;29743:228::-;29883:34;29879:1;29871:6;29867:14;29860:58;29952:11;29947:2;29939:6;29935:15;29928:36;29849:122;:::o;29977:224::-;30117:34;30113:1;30105:6;30101:14;30094:58;30186:7;30181:2;30173:6;30169:15;30162:32;30083:118;:::o;30207:114::-;30313:8;:::o;30327:223::-;30467:34;30463:1;30455:6;30451:14;30444:58;30536:6;30531:2;30523:6;30519:15;30512:31;30433:117;:::o;30556:173::-;30696:25;30692:1;30684:6;30680:14;30673:49;30662:67;:::o;30735:229::-;30875:34;30871:1;30863:6;30859:14;30852:58;30944:12;30939:2;30931:6;30927:15;30920:37;30841:123;:::o;30970:122::-;31043:24;31061:5;31043:24;:::i;:::-;31036:5;31033:35;31023:2;;31082:1;31079;31072:12;31023:2;31013:79;:::o;31098:116::-;31168:21;31183:5;31168:21;:::i;:::-;31161:5;31158:32;31148:2;;31204:1;31201;31194:12;31148:2;31138:76;:::o;31220:122::-;31293:24;31311:5;31293:24;:::i;:::-;31286:5;31283:35;31273:2;;31332:1;31329;31322:12;31273:2;31263:79;:::o

Swarm Source

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