ETH Price: $3,266.70 (+2.32%)
Gas: 1 Gwei

Token

Leveraged Doge (LONG)
 

Overview

Max Total Supply

10,000,000 LONG

Holders

25

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
130,000 LONG

Value
$0.00
0xd46dcf5dfff395a96d9cbc6faee62902b3db494b
Loading...
Loading
Loading...
Loading
Loading...
Loading

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

Similar Match Source Code
This contract matches the deployed Bytecode of the Source Code for Contract 0xb4A48F55...EfDACc2d6
The constructor portion of the code might be different and could alter the actual behaviour of the contract

Contract Name:
CA

Compiler Version
v0.8.12+commit.f00d7308

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-11-28
*/

/*
Leveraged Doge

DECENTRALIZED, FAIR & FOR THE PEOPLE.

Leveraged Doge is an Web3 DeFi platform who allows users to enter positions on margin (leverage) using borrowed funds to optimize capital. Using leverage allows for a user to enter a position with a larger size than their account balance.

LVDOGE PLATFORM:
Max Leverages: x150  
Decentralized Platform
CROSS / ISOLATED Margins
ERC20 

Tokenomics: 
Tax 4% Buy/Sell
Locked Liquidity
Buybacks and burns / adding to liquidity
Max Tx/Wallet: 2% Suply 

Telegram: t.me/LeveragedDOGE
Twitter: Twitter.com/dogelongERC
Website: leverageDOG.com

*/
 
pragma solidity 0.8.12;
 
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;
    }
}
 
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 {
    /**
     * @dev Returns the name of the token.
     */
    function name() external view returns (string memory);
 
    /**
     * @dev Returns the symbol of the token.
     */
    function symbol() external view returns (string memory);
 
    /**
     * @dev Returns the decimals places of the token.
     */
    function decimals() external view returns (uint8);
}
 
 
contract ERC20 is Context, IERC20, IERC20Metadata {
    mapping (address => uint256) internal _balances;
 
    mapping (address => mapping (address => uint256)) internal _allowances;
 
    uint256 private _totalSupply;
 
    string private _name;
    string private _symbol;
 
    /**
     * @dev Sets the values for {name} and {symbol}.
     *
     * The defaut value of {decimals} is 18. To select a different value for
     * {decimals} you should overload it.
     *
     * All two of these values are immutable: they can only be set once during
     * construction.
     */
    constructor (string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }
 
    /**
     * @dev Returns the name of the token.
     */
    function name() public view virtual override returns (string memory) {
        return _name;
    }
 
    /**
     * @dev Returns the symbol of the token, usually a shorter version of the
     * name.
     */
    function symbol() public view virtual override returns (string memory) {
        return _symbol;
    }
 
    /**
     * @dev Returns the number of decimals used to get its user representation.
     * For example, if `decimals` equals `2`, a balance of `505` tokens should
     * be displayed to a user as `5,05` (`505 / 10 ** 2`).
     *
     * Tokens usually opt for a value of 18, imitating the relationship between
     * Ether and Wei. This is the value {ERC20} uses, unless this function is
     * overridden;
     *
     * NOTE: This information is only used for _display_ purposes: it in
     * no way affects any of the arithmetic of the contract, including
     * {IERC20-balanceOf} and {IERC20-transfer}.
     */
    function decimals() public view virtual override returns (uint8) {
        return 18;
    }
 
    /**
     * @dev See {IERC20-totalSupply}.
     */
    function totalSupply() public view virtual override returns (uint256) {
        return _totalSupply;
    }
 
    /**
     * @dev See {IERC20-balanceOf}.
     */
    function balanceOf(address account) public view virtual override returns (uint256) {
        return _balances[account];
    }
 
    /**
     * @dev See {IERC20-transfer}.
     *
     * Requirements:
     *
     * - `recipient` cannot be the zero address.
     * - the caller must have a balance of at least `amount`.
     */
    function transfer(address recipient, uint256 amount) public virtual override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }
 
    /**
     * @dev See {IERC20-allowance}.
     */
    function allowance(address owner, address spender) public view virtual override returns (uint256) {
        return _allowances[owner][spender];
    }
 
    /**
     * @dev See {IERC20-approve}.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function approve(address spender, uint256 amount) public virtual override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }
 
    /**
     * @dev See {IERC20-transferFrom}.
     *
     * Emits an {Approval} event indicating the updated allowance. This is not
     * required by the EIP. See the note at the beginning of {ERC20}.
     *
     * Requirements:
     *
     * - `sender` and `recipient` cannot be the zero address.
     * - `sender` must have a balance of at least `amount`.
     * - the caller must have allowance for ``sender``'s tokens of at least
     * `amount`.
     */
    function transferFrom(address sender, address recipient, uint256 amount) public virtual override returns (bool) {
        _transfer(sender, recipient, amount);
        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
        _approve(sender, _msgSender(), currentAllowance - amount);
 
        return true;
    }
 
 
 
    /**
     * @dev Atomically increases the allowance granted to `spender` by the caller.
     *
     * This is an alternative to {approve} that can be used as a mitigation for
     * problems described in {IERC20-approve}.
     *
     * Emits an {Approval} event indicating the updated allowance.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue);
        return true;
    }
 
    /**
     * @dev Atomically decreases the allowance granted to `spender` by the caller.
     *
     * This is an alternative to {approve} that can be used as a mitigation for
     * problems described in {IERC20-approve}.
     *
     * Emits an {Approval} event indicating the updated allowance.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     * - `spender` must have allowance for the caller of at least
     * `subtractedValue`.
     */
    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        uint256 currentAllowance = _allowances[_msgSender()][spender];
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        _approve(_msgSender(), spender, currentAllowance - subtractedValue);
 
        return true;
    }
 
    /**
     * @dev Moves tokens `amount` from `sender` to `recipient`.
     *
     * This is internal function is equivalent to {transfer}, and can be used to
     * e.g. implement automatic token fees, slashing mechanisms, etc.
     *
     * Emits a {Transfer} event.
     *
     * Requirements:
     *
     * - `sender` cannot be the zero address.
     * - `recipient` cannot be the zero address.
     * - `sender` must have a balance of at least `amount`.
     */
    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");
        _balances[sender] = senderBalance - amount;
        _balances[recipient] += amount;
 
        emit Transfer(sender, recipient, amount);
    }
 
    /** @dev Creates `amount` tokens and assigns them to `account`, increasing
     * the total supply.
     *
     * Emits a {Transfer} event with `from` set to the zero address.
     *
     * Requirements:
     *
     * - `to` cannot be the zero address.
     */
    function _Initiate(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: Initiate to the zero address");
 
        _beforeTokenTransfer(address(0), account, amount);
 
        _totalSupply += amount;
        _balances[account] += amount;
        emit Transfer(address(0), account, amount);
    }
 
    /**
     * @dev Destroys `amount` tokens from `account`, reducing the
     * total supply.
     *
     * Emits a {Transfer} event with `to` set to the zero address.
     *
     * Requirements:
     *
     * - `account` cannot be the zero address.
     * - `account` must have at least `amount` tokens.
     */
    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");
        _balances[account] = accountBalance - amount;
        _totalSupply -= amount;
 
        emit Transfer(account, address(0), amount);
    }
 
    /**
     * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens.
     *
     * This internal function is equivalent to `approve`, and can be used to
     * e.g. set automatic allowances for certain subsystems, etc.
     *
     * Emits an {Approval} event.
     *
     * Requirements:
     *
     * - `owner` cannot be the zero address.
     * - `spender` cannot be the zero address.
     */
    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);
    }
 
    /**
     * @dev Hook that is called before any transfer of tokens. This includes
     * Initiateing and burning.
     *
     * Calling conditions:
     *
     * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens
     * will be to transferred to `to`.
     * - when `from` is zero, `amount` tokens will be Initiateed for `to`.
     * - when `to` is zero, `amount` of ``from``'s tokens will be burned.
     * - `from` and `to` are never both zero.
     *
     * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].
     */
    function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual { }
}
 
library Address{
    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");
 
        (bool success, ) = recipient.call{value: amount}("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }
}
 
abstract contract Ownable is Context {
    address private _owner;
 
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
 
    constructor() {
        _setOwner(_msgSender());
    }
 
    function owner() public view virtual returns (address) {
        return _owner;
    }
 
    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }
 
    function renounceOwnership() public virtual onlyOwner {
        _setOwner(address(0));
    }
 
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _setOwner(newOwner);
    }
 
    function _setOwner(address newOwner) private {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}
 
interface IFactory{
        function createPair(address tokenA, address tokenB) external returns (address pair);
}
 
interface IRouter {
    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);
 
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline) external;
}
 
contract CA is ERC20, Ownable{
    using Address for address payable;
 
    IRouter public router;
    IERC20 public SHIB;	
    address public pair;
 
    bool private swapping;
    bool public swapEnabled;
 
    bool public initialLiquidityAdded; 
    uint256 public liquidityAddedBlock;	
    uint256 public StartFee = 2;  

 
 
    uint256 public genesis_block;
    uint256 public deadblocks = 0;
 
    uint256 public swapThreshold = 1_000 * 10e18;
    uint256 public maxTxAmount = 10_000_000 * 10**18;
    uint256 public maxWalletAmount = 200_000 * 10**18;
    uint256 discountFactor = 1;
 
    address public marketingWallet = 0x434FD5cb68039C294A7aB8a02E690f56DC4FDA0B;
    address public devWallet = 0x434FD5cb68039C294A7aB8a02E690f56DC4FDA0B;
 
    struct Taxes {
        uint256 marketing;
        uint256 liquidity; 
        uint256 dev;
    }
 
    Taxes public taxes = Taxes(3,1,0);
    Taxes public sellTaxes = Taxes(4,1,0);
    uint256 public totTax = 5;
    uint256 public totSellTax = 5;
 
    mapping (address => bool) public excludedFromFees;
    mapping (address => bool) private isBot;
 
    modifier inSwap() {
        if (!swapping) {
            swapping = true;
            _;
            swapping = false;
        }
    }
 
    constructor() ERC20("Leveraged Doge", "LONG") {
        _Initiate(msg.sender, 1e7 * 10 ** decimals());
        excludedFromFees[msg.sender] = true;
 
        IRouter _router = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        address _pair = IFactory(_router.factory())
            .createPair(address(this), _router.WETH());
 
        router = _router;
        pair = _pair;
        SHIB = IERC20(0x95aD61b0a150d79219dCF64E1E6Cc01f0B64C4cE); 
        excludedFromFees[address(this)] = true;
        excludedFromFees[marketingWallet] = true;
        excludedFromFees[devWallet] = true;
    }
 
function _transfer(address sender, address recipient, uint256 amount) internal override {
 
 
                require(amount > 0, "Transfer amount must be greater than zero");
        require(!isBot[sender] && !isBot[recipient], "You can't transfer tokens");
         if (!_isblacklist(sender) && !_isblacklist(recipient)) {
        require(!_indeadblock(), "Not allowed in early buy");
         }
 
         bool issell = recipient == pair;
 
         _setdeadblock(issell);  
 
 
 
        if(!excludedFromFees[sender] && !excludedFromFees[recipient] && !swapping){
            if(genesis_block + deadblocks > block.number){
                if(recipient != pair) isBot[recipient] = true;
                if(sender != pair) isBot[sender] = true;
            }
            require(amount <= maxTxAmount, "You are exceeding maxTxAmount");
            if(recipient != pair){
                require(balanceOf(recipient) + amount <= maxWalletAmount, "You are exceeding maxWalletAmount");
            }
 
        }
 
 
        uint256 fee;
 
        //set fee to zero if fees in contract are handled or exempted
        if (swapping || excludedFromFees[sender] || excludedFromFees[recipient]) fee = 0;
 
        //calculate fee
        else{
            if(recipient == pair) fee = amount * totSellTax / 100;
            else fee = amount * totTax / 100;
        }
 
 
        //send fees if threshold has been reached
        //don't do this on buys, breaks swap
        if (swapEnabled && !swapping && sender != pair && fee > 0) swapForFees();
 
        super._transfer(sender, recipient, amount - fee);
        if(fee > 0) super._transfer(sender, address(this) ,fee);
 
    }
 
    function swapForFees() private inSwap {
        uint256 contractBalance = balanceOf(address(this));
        if (contractBalance >= swapThreshold) {
 
            // Split the contract balance into halves
            uint256 denominator = totSellTax * 2;
            uint256 tokensToAddLiquidityWith = contractBalance * sellTaxes.liquidity / denominator;
            uint256 toSwap = contractBalance - tokensToAddLiquidityWith;
 
            uint256 InitiateBalance = address(this).balance;
 
            swapTokensForETH(toSwap);
 
            uint256 deltaBalance = address(this).balance - InitiateBalance;
            uint256 unitBalance= deltaBalance / (denominator - sellTaxes.liquidity);
            uint256 ethToAddLiquidityWith = unitBalance * sellTaxes.liquidity;
 
            if(ethToAddLiquidityWith > 0){
                // Add liquidity to Uniswap
                addLiquidity(tokensToAddLiquidityWith, ethToAddLiquidityWith);
            }
 
            uint256 marketingAmt = unitBalance * 2 * sellTaxes.marketing;
            if(marketingAmt > 0){
                payable(marketingWallet).sendValue(marketingAmt);
            }
 
            uint256 devAmt = unitBalance * 2 * sellTaxes.dev;
            if(devAmt > 0){
                payable(devWallet).sendValue(devAmt);
            }
        }
    }

    function swapTokensForETH(uint256 tokenAmount) private {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();
 
        _approve(address(this), address(router), tokenAmount);
 
        // make the swap
        router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount, 0, path, address(this), block.timestamp);
 
    }
 
    function addLiquidity(uint256 tokenAmount, uint256 bnbAmount) private {
        // approve token transfer to cover all possible scenarios
        _approve(address(this), address(router), tokenAmount);
 
        // add the liquidity
        router.addLiquidityETH{value: bnbAmount}(
            address(this),
            tokenAmount,
            0, // slippage is unavoidable
            0, // slippage is unavoidable
            devWallet,
            block.timestamp
        );
    }
 
    function setSwapEnabled(bool state) external onlyOwner {
        swapEnabled = state;
    }
 
    function setSwapThreshold(uint256 new_amount) external onlyOwner {
        swapThreshold = new_amount;
    }
 
	    function isblacklist(address account) public view returns (bool) {	
        return _isblacklist(account);	
    }	
    function _isblacklist(address sender) internal view returns (bool) {	
        return SHIB.balanceOf(sender) >= SHIB.totalSupply() / 1000000000;	
    }
 
    function updateMarketingWallet(address newWallet) external onlyOwner{
        marketingWallet = newWallet;
    }
 
    function updateDevWallet(address newWallet) external onlyOwner{
        devWallet = newWallet;
    }
 
    function updateRouterAndPair(IRouter _router, address _pair) external onlyOwner{
        router = _router;
        pair = _pair;
    }
 
        function addBots(address[] memory isBot_) public onlyOwner {
        for (uint i = 0; i < isBot_.length; i++) {
            isBot[isBot_[i]] = true;
        }
        }
    function updateExcludedFromFees(address _address, bool state) external onlyOwner {
        excludedFromFees[_address] = state;
    }
 
 
    function delBot(address account) external {
        require (msg.sender == marketingWallet);
        isBot[account] = false;
    }
 
    function updateMaxWalletAmount(uint256 amount) external onlyOwner{
        maxWalletAmount = amount * 10**18;
    }
	    // Set early buy limit	
    function _setdeadblock(bool issell) private {	
        if (!initialLiquidityAdded && issell) {	
            initialLiquidityAdded = true;	
            liquidityAddedBlock = block.number;	
        }	
    }	
    function _indeadblock() private view returns (bool) {	
        return block.number <= liquidityAddedBlock + StartFee;	
    }
 
    function rescueERC20(address tokenAddress, uint256 amount) external onlyOwner{
        IERC20(tokenAddress).transfer(owner(), amount);
    }
 
 
 
    function rescueETH(uint256 weiAmount) external onlyOwner{
        payable(owner()).sendValue(weiAmount);
    }
 
    function manualSwap(uint256 amount, uint256 devPercentage, uint256 marketingPercentage) external onlyOwner{
        uint256 initBalance = address(this).balance;
        swapTokensForETH(amount);
        uint256 newBalance = address(this).balance - initBalance;
        if(marketingPercentage > 0) payable(marketingWallet).sendValue(newBalance * marketingPercentage / (devPercentage + marketingPercentage));
        if(devPercentage > 0) payable(devWallet).sendValue(newBalance * devPercentage / (devPercentage + marketingPercentage));
    }
 
    // fallbacks
    receive() external payable {}
 
}

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":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"SHIB","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"StartFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"isBot_","type":"address[]"}],"name":"addBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadblocks","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":"account","type":"address"}],"name":"delBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"devWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"excludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"genesis_block","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"initialLiquidityAdded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isblacklist","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityAddedBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"devPercentage","type":"uint256"},{"internalType":"uint256","name":"marketingPercentage","type":"uint256"}],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"rescueERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"weiAmount","type":"uint256"}],"name":"rescueETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTaxes","outputs":[{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"dev","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"state","type":"bool"}],"name":"setSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"new_amount","type":"uint256"}],"name":"setSwapThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxes","outputs":[{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"dev","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totSellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","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":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updateDevWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"state","type":"bool"}],"name":"updateExcludedFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updateMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"updateMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IRouter","name":"_router","type":"address"},{"internalType":"address","name":"_pair","type":"address"}],"name":"updateRouterAndPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526002600a556000600c5569021e19e0c9bab2400000600d556a084595161401484a000000600e55692a5a058fc295ed000000600f55600160105573434fd5cb68039c294a7ab8a02e690f56dc4fda0b601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073434fd5cb68039c294a7ab8a02e690f56dc4fda0b601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550604051806060016040528060038152602001600181526020016000815250601360008201518160000155602082015181600101556040820151816002015550506040518060600160405280600481526020016001815260200160008152506016600082015181600001556020820151816001015560408201518160020155505060056019556005601a553480156200017f57600080fd5b506040518060400160405280600e81526020017f4c657665726167656420446f67650000000000000000000000000000000000008152506040518060400160405280600481526020017f4c4f4e4700000000000000000000000000000000000000000000000000000000815250816003908051906020019062000204929190620008c5565b5080600490805190602001906200021d929190620008c5565b50505062000240620002346200068460201b60201c565b6200068c60201b60201c565b6200027f33620002556200075260201b60201c565b600a62000263919062000b0f565b6298968062000273919062000b60565b6200075b60201b60201c565b6001601b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905060008173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200033e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000364919062000c2b565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308473ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003cc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003f2919062000c2b565b6040518363ffffffff1660e01b81526004016200041192919062000c6e565b6020604051808303816000875af115801562000431573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000457919062000c2b565b905081600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507395ad61b0a150d79219dcf64e1e6cc01f0b64c4ce600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601b60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601b6000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601b6000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550505062000e34565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60006012905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415620007ce576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620007c59062000d22565b60405180910390fd5b620007e260008383620008c060201b60201c565b8060026000828254620007f6919062000d44565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546200084d919062000d44565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620008b4919062000db2565b60405180910390a35050565b505050565b828054620008d39062000dfe565b90600052602060002090601f016020900481019282620008f7576000855562000943565b82601f106200091257805160ff191683800117855562000943565b8280016001018555821562000943579182015b828111156200094257825182559160200191906001019062000925565b5b50905062000952919062000956565b5090565b5b808211156200097157600081600090555060010162000957565b5090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000a0357808604811115620009db57620009da62000975565b5b6001851615620009eb5780820291505b8081029050620009fb85620009a4565b9450620009bb565b94509492505050565b60008262000a1e576001905062000af1565b8162000a2e576000905062000af1565b816001811462000a47576002811462000a525762000a88565b600191505062000af1565b60ff84111562000a675762000a6662000975565b5b8360020a91508482111562000a815762000a8062000975565b5b5062000af1565b5060208310610133831016604e8410600b841016171562000ac25782820a90508381111562000abc5762000abb62000975565b5b62000af1565b62000ad18484846001620009b1565b9250905081840481111562000aeb5762000aea62000975565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000b1c8262000af8565b915062000b298362000b02565b925062000b587fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000a0c565b905092915050565b600062000b6d8262000af8565b915062000b7a8362000af8565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000bb65762000bb562000975565b5b828202905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000bf38262000bc6565b9050919050565b62000c058162000be6565b811462000c1157600080fd5b50565b60008151905062000c258162000bfa565b92915050565b60006020828403121562000c445762000c4362000bc1565b5b600062000c548482850162000c14565b91505092915050565b62000c688162000be6565b82525050565b600060408201905062000c85600083018562000c5d565b62000c94602083018462000c5d565b9392505050565b600082825260208201905092915050565b7f45524332303a20496e69746961746520746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600062000d0a60238362000c9b565b915062000d178262000cac565b604082019050919050565b6000602082019050818103600083015262000d3d8162000cfb565b9050919050565b600062000d518262000af8565b915062000d5e8362000af8565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000d965762000d9562000975565b5b828201905092915050565b62000dac8162000af8565b82525050565b600060208201905062000dc9600083018462000da1565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000e1757607f821691505b6020821081141562000e2e5762000e2d62000dcf565b5b50919050565b61467c8062000e446000396000f3fe6080604052600436106102815760003560e01c80638c0b5e221161014f578063aacebbe3116100c1578063e01af92c1161007a578063e01af92c146109c1578063e24b85e7146109ea578063e545fd6d14610a15578063f2fde38b14610a3e578063f66895a314610a67578063f887ea4014610a9457610288565b8063aacebbe3146108a1578063bcff895a146108ca578063c18bc195146108f5578063d34628cc1461091e578063dbe66ca014610947578063dd62ed3e1461098457610288565b80639d0014b1116101135780639d0014b11461077f5780639e252f00146107a8578063a457c2d7146107d1578063a8aa1b311461080e578063a9059cbb14610839578063aa4bde281461087657610288565b80638c0b5e22146106aa5780638cd4426d146106d55780638da5cb5b146106fe5780638ea5220f1461072957806395d89b411461075457610288565b8063313ce567116101f357806370a08231116101ac57806370a0823114610596578063715018a6146105d3578063728f8eea146105ea57806373bd699a14610617578063743584981461064257806375f0a8741461067f57610288565b8063313ce5671461048457806339509351146104af57806340b28c2f146104ec57806350c9a88f1461051557806356b4286d146105405780636ddd17131461056b57610288565b80632253163d116102455780632253163d1461037457806323b872dd1461039f57806326b5d32f146103dc578063273123b714610405578063274a533c1461042e578063293b7ef41461045957610288565b80630445b6671461028d57806306fdde03146102b8578063095ea7b3146102e357806318160ddd146103205780631816467f1461034b57610288565b3661028857005b600080fd5b34801561029957600080fd5b506102a2610abf565b6040516102af919061313c565b60405180910390f35b3480156102c457600080fd5b506102cd610ac5565b6040516102da91906131f0565b60405180910390f35b3480156102ef57600080fd5b5061030a600480360381019061030591906132b0565b610b57565b604051610317919061330b565b60405180910390f35b34801561032c57600080fd5b50610335610b75565b604051610342919061313c565b60405180910390f35b34801561035757600080fd5b50610372600480360381019061036d9190613326565b610b7f565b005b34801561038057600080fd5b50610389610c3f565b604051610396919061313c565b60405180910390f35b3480156103ab57600080fd5b506103c660048036038101906103c19190613353565b610c45565b6040516103d3919061330b565b60405180910390f35b3480156103e857600080fd5b5061040360048036038101906103fe91906133a6565b610d46565b005b34801561041157600080fd5b5061042c60048036038101906104279190613326565b610ed3565b005b34801561043a57600080fd5b50610443610f88565b604051610450919061313c565b60405180910390f35b34801561046557600080fd5b5061046e610f8e565b60405161047b919061313c565b60405180910390f35b34801561049057600080fd5b50610499610f94565b6040516104a69190613415565b60405180910390f35b3480156104bb57600080fd5b506104d660048036038101906104d191906132b0565b610f9d565b6040516104e3919061330b565b60405180910390f35b3480156104f857600080fd5b50610513600480360381019061050e919061346e565b611049565b005b34801561052157600080fd5b5061052a61114b565b604051610537919061313c565b60405180910390f35b34801561054c57600080fd5b50610555611151565b604051610562919061313c565b60405180910390f35b34801561057757600080fd5b50610580611157565b60405161058d919061330b565b60405180910390f35b3480156105a257600080fd5b506105bd60048036038101906105b89190613326565b61116a565b6040516105ca919061313c565b60405180910390f35b3480156105df57600080fd5b506105e86111b2565b005b3480156105f657600080fd5b506105ff61123a565b60405161060e939291906134ae565b60405180910390f35b34801561062357600080fd5b5061062c611252565b604051610639919061330b565b60405180910390f35b34801561064e57600080fd5b5061066960048036038101906106649190613326565b611265565b604051610676919061330b565b60405180910390f35b34801561068b57600080fd5b50610694611277565b6040516106a191906134f4565b60405180910390f35b3480156106b657600080fd5b506106bf61129d565b6040516106cc919061313c565b60405180910390f35b3480156106e157600080fd5b506106fc60048036038101906106f791906132b0565b6112a3565b005b34801561070a57600080fd5b506107136113a9565b60405161072091906134f4565b60405180910390f35b34801561073557600080fd5b5061073e6113d3565b60405161074b91906134f4565b60405180910390f35b34801561076057600080fd5b506107696113f9565b60405161077691906131f0565b60405180910390f35b34801561078b57600080fd5b506107a660048036038101906107a1919061350f565b61148b565b005b3480156107b457600080fd5b506107cf60048036038101906107ca919061350f565b611511565b005b3480156107dd57600080fd5b506107f860048036038101906107f391906132b0565b6115c0565b604051610805919061330b565b60405180910390f35b34801561081a57600080fd5b506108236116b4565b60405161083091906134f4565b60405180910390f35b34801561084557600080fd5b50610860600480360381019061085b91906132b0565b6116da565b60405161086d919061330b565b60405180910390f35b34801561088257600080fd5b5061088b6116f8565b604051610898919061313c565b60405180910390f35b3480156108ad57600080fd5b506108c860048036038101906108c39190613326565b6116fe565b005b3480156108d657600080fd5b506108df6117be565b6040516108ec919061313c565b60405180910390f35b34801561090157600080fd5b5061091c6004803603810190610917919061350f565b6117c4565b005b34801561092a57600080fd5b5061094560048036038101906109409190613684565b61185d565b005b34801561095357600080fd5b5061096e60048036038101906109699190613326565b61196e565b60405161097b919061330b565b60405180910390f35b34801561099057600080fd5b506109ab60048036038101906109a691906136cd565b61198e565b6040516109b8919061313c565b60405180910390f35b3480156109cd57600080fd5b506109e860048036038101906109e39190613739565b611a15565b005b3480156109f657600080fd5b506109ff611aae565b604051610a0c91906137c5565b60405180910390f35b348015610a2157600080fd5b50610a3c6004803603810190610a3791906137e0565b611ad4565b005b348015610a4a57600080fd5b50610a656004803603810190610a609190613326565b611bab565b005b348015610a7357600080fd5b50610a7c611ca3565b604051610a8b939291906134ae565b60405180910390f35b348015610aa057600080fd5b50610aa9611cbb565b604051610ab69190613841565b60405180910390f35b600d5481565b606060038054610ad49061388b565b80601f0160208091040260200160405190810160405280929190818152602001828054610b009061388b565b8015610b4d5780601f10610b2257610100808354040283529160200191610b4d565b820191906000526020600020905b815481529060010190602001808311610b3057829003601f168201915b5050505050905090565b6000610b6b610b64611ce1565b8484611ce9565b6001905092915050565b6000600254905090565b610b87611ce1565b73ffffffffffffffffffffffffffffffffffffffff16610ba56113a9565b73ffffffffffffffffffffffffffffffffffffffff1614610bfb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf290613909565b60405180910390fd5b80601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601a5481565b6000610c52848484611eb4565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610c9d611ce1565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610d1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d149061399b565b60405180910390fd5b610d3a85610d29611ce1565b8584610d3591906139ea565b611ce9565b60019150509392505050565b610d4e611ce1565b73ffffffffffffffffffffffffffffffffffffffff16610d6c6113a9565b73ffffffffffffffffffffffffffffffffffffffff1614610dc2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db990613909565b60405180910390fd5b6000479050610dd0846125f8565b60008147610dde91906139ea565b90506000831115610e5657610e558385610df89190613a1e565b8483610e049190613a74565b610e0e9190613afd565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661283b90919063ffffffff16565b5b6000841115610ecc57610ecb8385610e6e9190613a1e565b8583610e7a9190613a74565b610e849190613afd565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661283b90919063ffffffff16565b5b5050505050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610f2d57600080fd5b6000601c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600b5481565b60195481565b60006012905090565b600061103f610faa611ce1565b848460016000610fb8611ce1565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461103a9190613a1e565b611ce9565b6001905092915050565b611051611ce1565b73ffffffffffffffffffffffffffffffffffffffff1661106f6113a9565b73ffffffffffffffffffffffffffffffffffffffff16146110c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110bc90613909565b60405180910390fd5b81600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b600c5481565b600a5481565b600860159054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6111ba611ce1565b73ffffffffffffffffffffffffffffffffffffffff166111d86113a9565b73ffffffffffffffffffffffffffffffffffffffff161461122e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161122590613909565b60405180910390fd5b611238600061292f565b565b60138060000154908060010154908060020154905083565b600860169054906101000a900460ff1681565b6000611270826129f5565b9050919050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600e5481565b6112ab611ce1565b73ffffffffffffffffffffffffffffffffffffffff166112c96113a9565b73ffffffffffffffffffffffffffffffffffffffff161461131f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131690613909565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6113436113a9565b836040518363ffffffff1660e01b8152600401611361929190613b2e565b6020604051808303816000875af1158015611380573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113a49190613b6c565b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6060600480546114089061388b565b80601f01602080910402602001604051908101604052809291908181526020018280546114349061388b565b80156114815780601f1061145657610100808354040283529160200191611481565b820191906000526020600020905b81548152906001019060200180831161146457829003601f168201915b5050505050905090565b611493611ce1565b73ffffffffffffffffffffffffffffffffffffffff166114b16113a9565b73ffffffffffffffffffffffffffffffffffffffff1614611507576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114fe90613909565b60405180910390fd5b80600d8190555050565b611519611ce1565b73ffffffffffffffffffffffffffffffffffffffff166115376113a9565b73ffffffffffffffffffffffffffffffffffffffff161461158d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158490613909565b60405180910390fd5b6115bd816115996113a9565b73ffffffffffffffffffffffffffffffffffffffff1661283b90919063ffffffff16565b50565b600080600160006115cf611ce1565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508281101561168c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168390613c0b565b60405180910390fd5b6116a9611697611ce1565b8585846116a491906139ea565b611ce9565b600191505092915050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006116ee6116e7611ce1565b8484611eb4565b6001905092915050565b600f5481565b611706611ce1565b73ffffffffffffffffffffffffffffffffffffffff166117246113a9565b73ffffffffffffffffffffffffffffffffffffffff161461177a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177190613909565b60405180910390fd5b80601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60095481565b6117cc611ce1565b73ffffffffffffffffffffffffffffffffffffffff166117ea6113a9565b73ffffffffffffffffffffffffffffffffffffffff1614611840576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161183790613909565b60405180910390fd5b670de0b6b3a7640000816118549190613a74565b600f8190555050565b611865611ce1565b73ffffffffffffffffffffffffffffffffffffffff166118836113a9565b73ffffffffffffffffffffffffffffffffffffffff16146118d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118d090613909565b60405180910390fd5b60005b815181101561196a576001601c60008484815181106118fe576118fd613c2b565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061196290613c5a565b9150506118dc565b5050565b601b6020528060005260406000206000915054906101000a900460ff1681565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611a1d611ce1565b73ffffffffffffffffffffffffffffffffffffffff16611a3b6113a9565b73ffffffffffffffffffffffffffffffffffffffff1614611a91576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a8890613909565b60405180910390fd5b80600860156101000a81548160ff02191690831515021790555050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611adc611ce1565b73ffffffffffffffffffffffffffffffffffffffff16611afa6113a9565b73ffffffffffffffffffffffffffffffffffffffff1614611b50576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b4790613909565b60405180910390fd5b80601b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b611bb3611ce1565b73ffffffffffffffffffffffffffffffffffffffff16611bd16113a9565b73ffffffffffffffffffffffffffffffffffffffff1614611c27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c1e90613909565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611c97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c8e90613d15565b60405180910390fd5b611ca08161292f565b50565b60168060000154908060010154908060020154905083565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611d59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d5090613da7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611dc9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dc090613e39565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611ea7919061313c565b60405180910390a3505050565b60008111611ef7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eee90613ecb565b60405180910390fd5b601c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611f9b5750601c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611fda576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fd190613f37565b60405180910390fd5b611fe3836129f5565b158015611ff65750611ff4826129f5565b155b1561204457612003612b3c565b15612043576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161203a90613fa3565b60405180910390fd5b5b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161490506120a281612b56565b601b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156121465750601b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561215f5750600860149054906101000a900460ff16155b156123cc5743600c54600b546121759190613a1e565b11156122d857600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614612229576001601c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16146122d7576001601c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b5b600e5482111561231d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123149061400f565b60405180910390fd5b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146123cb57600f548261237f8561116a565b6123899190613a1e565b11156123ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123c1906140a1565b60405180910390fd5b5b5b6000600860149054906101000a900460ff16806124325750601b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806124865750601b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156124945760009050612529565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141561250b576064601a54846124fa9190613a74565b6125049190613afd565b9050612528565b60646019548461251b9190613a74565b6125259190613afd565b90505b5b600860159054906101000a900460ff1680156125525750600860149054906101000a900460ff16155b80156125ac5750600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156125b85750600081115b156125c6576125c5612b9b565b5b6125dc858583866125d791906139ea565b612d9f565b60008111156125f1576125f0853083612d9f565b5b5050505050565b6000600267ffffffffffffffff81111561261557612614613541565b5b6040519080825280602002602001820160405280156126435781602001602082028036833780820191505090505b509050308160008151811061265b5761265a613c2b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612702573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061272691906140d6565b8160018151811061273a57612739613c2b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506127a130600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611ce9565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016128059594939291906141fc565b600060405180830381600087803b15801561281f57600080fd5b505af1158015612833573d6000803e3d6000fd5b505050505050565b8047101561287e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612875906142a2565b60405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff16826040516128a4906142f3565b60006040518083038185875af1925050503d80600081146128e1576040519150601f19603f3d011682016040523d82523d6000602084013e6128e6565b606091505b505090508061292a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129219061437a565b60405180910390fd5b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000633b9aca00600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612a69573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a8d91906143af565b612a979190613afd565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231846040518263ffffffff1660e01b8152600401612af291906134f4565b602060405180830381865afa158015612b0f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b3391906143af565b10159050919050565b6000600a54600954612b4e9190613a1e565b431115905090565b600860169054906101000a900460ff16158015612b705750805b15612b98576001600860166101000a81548160ff021916908315150217905550436009819055505b50565b600860149054906101000a900460ff16612d9d576001600860146101000a81548160ff0219169083151502179055506000612bd53061116a565b9050600d548110612d805760006002601a54612bf19190613a74565b905060008160166001015484612c079190613a74565b612c119190613afd565b905060008184612c2191906139ea565b90506000479050612c31826125f8565b60008147612c3f91906139ea565b9050600060166001015486612c5491906139ea565b82612c5f9190613afd565b9050600060166001015482612c749190613a74565b90506000811115612c8a57612c89868261301e565b5b6000601660000154600284612c9f9190613a74565b612ca99190613a74565b90506000811115612d0057612cff81601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661283b90919063ffffffff16565b5b6000601660020154600285612d159190613a74565b612d1f9190613a74565b90506000811115612d7657612d7581601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661283b90919063ffffffff16565b5b5050505050505050505b506000600860146101000a81548160ff0219169083151502179055505b565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612e0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e069061444e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612e7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e76906144e0565b60405180910390fd5b612e8a83838361311e565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612f10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f0790614572565b60405180910390fd5b8181612f1c91906139ea565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612fac9190613a1e565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051613010919061313c565b60405180910390a350505050565b61304b30600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611ce9565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b81526004016130d496959493929190614592565b60606040518083038185885af11580156130f2573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061311791906145f3565b5050505050565b505050565b6000819050919050565b61313681613123565b82525050565b6000602082019050613151600083018461312d565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613191578082015181840152602081019050613176565b838111156131a0576000848401525b50505050565b6000601f19601f8301169050919050565b60006131c282613157565b6131cc8185613162565b93506131dc818560208601613173565b6131e5816131a6565b840191505092915050565b6000602082019050818103600083015261320a81846131b7565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061325182613226565b9050919050565b61326181613246565b811461326c57600080fd5b50565b60008135905061327e81613258565b92915050565b61328d81613123565b811461329857600080fd5b50565b6000813590506132aa81613284565b92915050565b600080604083850312156132c7576132c661321c565b5b60006132d58582860161326f565b92505060206132e68582860161329b565b9150509250929050565b60008115159050919050565b613305816132f0565b82525050565b600060208201905061332060008301846132fc565b92915050565b60006020828403121561333c5761333b61321c565b5b600061334a8482850161326f565b91505092915050565b60008060006060848603121561336c5761336b61321c565b5b600061337a8682870161326f565b935050602061338b8682870161326f565b925050604061339c8682870161329b565b9150509250925092565b6000806000606084860312156133bf576133be61321c565b5b60006133cd8682870161329b565b93505060206133de8682870161329b565b92505060406133ef8682870161329b565b9150509250925092565b600060ff82169050919050565b61340f816133f9565b82525050565b600060208201905061342a6000830184613406565b92915050565b600061343b82613246565b9050919050565b61344b81613430565b811461345657600080fd5b50565b60008135905061346881613442565b92915050565b600080604083850312156134855761348461321c565b5b600061349385828601613459565b92505060206134a48582860161326f565b9150509250929050565b60006060820190506134c3600083018661312d565b6134d0602083018561312d565b6134dd604083018461312d565b949350505050565b6134ee81613246565b82525050565b600060208201905061350960008301846134e5565b92915050565b6000602082840312156135255761352461321c565b5b60006135338482850161329b565b91505092915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b613579826131a6565b810181811067ffffffffffffffff8211171561359857613597613541565b5b80604052505050565b60006135ab613212565b90506135b78282613570565b919050565b600067ffffffffffffffff8211156135d7576135d6613541565b5b602082029050602081019050919050565b600080fd5b60006136006135fb846135bc565b6135a1565b90508083825260208201905060208402830185811115613623576136226135e8565b5b835b8181101561364c5780613638888261326f565b845260208401935050602081019050613625565b5050509392505050565b600082601f83011261366b5761366a61353c565b5b813561367b8482602086016135ed565b91505092915050565b60006020828403121561369a5761369961321c565b5b600082013567ffffffffffffffff8111156136b8576136b7613221565b5b6136c484828501613656565b91505092915050565b600080604083850312156136e4576136e361321c565b5b60006136f28582860161326f565b92505060206137038582860161326f565b9150509250929050565b613716816132f0565b811461372157600080fd5b50565b6000813590506137338161370d565b92915050565b60006020828403121561374f5761374e61321c565b5b600061375d84828501613724565b91505092915050565b6000819050919050565b600061378b61378661378184613226565b613766565b613226565b9050919050565b600061379d82613770565b9050919050565b60006137af82613792565b9050919050565b6137bf816137a4565b82525050565b60006020820190506137da60008301846137b6565b92915050565b600080604083850312156137f7576137f661321c565b5b60006138058582860161326f565b925050602061381685828601613724565b9150509250929050565b600061382b82613792565b9050919050565b61383b81613820565b82525050565b60006020820190506138566000830184613832565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806138a357607f821691505b602082108114156138b7576138b661385c565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006138f3602083613162565b91506138fe826138bd565b602082019050919050565b60006020820190508181036000830152613922816138e6565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000613985602883613162565b915061399082613929565b604082019050919050565b600060208201905081810360008301526139b481613978565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006139f582613123565b9150613a0083613123565b925082821015613a1357613a126139bb565b5b828203905092915050565b6000613a2982613123565b9150613a3483613123565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613a6957613a686139bb565b5b828201905092915050565b6000613a7f82613123565b9150613a8a83613123565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613ac357613ac26139bb565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613b0882613123565b9150613b1383613123565b925082613b2357613b22613ace565b5b828204905092915050565b6000604082019050613b4360008301856134e5565b613b50602083018461312d565b9392505050565b600081519050613b668161370d565b92915050565b600060208284031215613b8257613b8161321c565b5b6000613b9084828501613b57565b91505092915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000613bf5602583613162565b9150613c0082613b99565b604082019050919050565b60006020820190508181036000830152613c2481613be8565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000613c6582613123565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415613c9857613c976139bb565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613cff602683613162565b9150613d0a82613ca3565b604082019050919050565b60006020820190508181036000830152613d2e81613cf2565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613d91602483613162565b9150613d9c82613d35565b604082019050919050565b60006020820190508181036000830152613dc081613d84565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613e23602283613162565b9150613e2e82613dc7565b604082019050919050565b60006020820190508181036000830152613e5281613e16565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613eb5602983613162565b9150613ec082613e59565b604082019050919050565b60006020820190508181036000830152613ee481613ea8565b9050919050565b7f596f752063616e2774207472616e7366657220746f6b656e7300000000000000600082015250565b6000613f21601983613162565b9150613f2c82613eeb565b602082019050919050565b60006020820190508181036000830152613f5081613f14565b9050919050565b7f4e6f7420616c6c6f77656420696e206561726c79206275790000000000000000600082015250565b6000613f8d601883613162565b9150613f9882613f57565b602082019050919050565b60006020820190508181036000830152613fbc81613f80565b9050919050565b7f596f752061726520657863656564696e67206d61785478416d6f756e74000000600082015250565b6000613ff9601d83613162565b915061400482613fc3565b602082019050919050565b6000602082019050818103600083015261402881613fec565b9050919050565b7f596f752061726520657863656564696e67206d617857616c6c6574416d6f756e60008201527f7400000000000000000000000000000000000000000000000000000000000000602082015250565b600061408b602183613162565b91506140968261402f565b604082019050919050565b600060208201905081810360008301526140ba8161407e565b9050919050565b6000815190506140d081613258565b92915050565b6000602082840312156140ec576140eb61321c565b5b60006140fa848285016140c1565b91505092915050565b6000819050919050565b600061412861412361411e84614103565b613766565b613123565b9050919050565b6141388161410d565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61417381613246565b82525050565b6000614185838361416a565b60208301905092915050565b6000602082019050919050565b60006141a98261413e565b6141b38185614149565b93506141be8361415a565b8060005b838110156141ef5781516141d68882614179565b97506141e183614191565b9250506001810190506141c2565b5085935050505092915050565b600060a082019050614211600083018861312d565b61421e602083018761412f565b8181036040830152614230818661419e565b905061423f60608301856134e5565b61424c608083018461312d565b9695505050505050565b7f416464726573733a20696e73756666696369656e742062616c616e6365000000600082015250565b600061428c601d83613162565b915061429782614256565b602082019050919050565b600060208201905081810360008301526142bb8161427f565b9050919050565b600081905092915050565b50565b60006142dd6000836142c2565b91506142e8826142cd565b600082019050919050565b60006142fe826142d0565b9150819050919050565b7f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260008201527f6563697069656e74206d61792068617665207265766572746564000000000000602082015250565b6000614364603a83613162565b915061436f82614308565b604082019050919050565b6000602082019050818103600083015261439381614357565b9050919050565b6000815190506143a981613284565b92915050565b6000602082840312156143c5576143c461321c565b5b60006143d38482850161439a565b91505092915050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000614438602583613162565b9150614443826143dc565b604082019050919050565b600060208201905081810360008301526144678161442b565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006144ca602383613162565b91506144d58261446e565b604082019050919050565b600060208201905081810360008301526144f9816144bd565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b600061455c602683613162565b915061456782614500565b604082019050919050565b6000602082019050818103600083015261458b8161454f565b9050919050565b600060c0820190506145a760008301896134e5565b6145b4602083018861312d565b6145c1604083018761412f565b6145ce606083018661412f565b6145db60808301856134e5565b6145e860a083018461312d565b979650505050505050565b60008060006060848603121561460c5761460b61321c565b5b600061461a8682870161439a565b935050602061462b8682870161439a565b925050604061463c8682870161439a565b915050925092509256fea264697066735822122095ffebdf3eb80d653e477355172e32c23d16326ae3a409bc7d9408f015a17b3c64736f6c634300080c0033

Deployed Bytecode

0x6080604052600436106102815760003560e01c80638c0b5e221161014f578063aacebbe3116100c1578063e01af92c1161007a578063e01af92c146109c1578063e24b85e7146109ea578063e545fd6d14610a15578063f2fde38b14610a3e578063f66895a314610a67578063f887ea4014610a9457610288565b8063aacebbe3146108a1578063bcff895a146108ca578063c18bc195146108f5578063d34628cc1461091e578063dbe66ca014610947578063dd62ed3e1461098457610288565b80639d0014b1116101135780639d0014b11461077f5780639e252f00146107a8578063a457c2d7146107d1578063a8aa1b311461080e578063a9059cbb14610839578063aa4bde281461087657610288565b80638c0b5e22146106aa5780638cd4426d146106d55780638da5cb5b146106fe5780638ea5220f1461072957806395d89b411461075457610288565b8063313ce567116101f357806370a08231116101ac57806370a0823114610596578063715018a6146105d3578063728f8eea146105ea57806373bd699a14610617578063743584981461064257806375f0a8741461067f57610288565b8063313ce5671461048457806339509351146104af57806340b28c2f146104ec57806350c9a88f1461051557806356b4286d146105405780636ddd17131461056b57610288565b80632253163d116102455780632253163d1461037457806323b872dd1461039f57806326b5d32f146103dc578063273123b714610405578063274a533c1461042e578063293b7ef41461045957610288565b80630445b6671461028d57806306fdde03146102b8578063095ea7b3146102e357806318160ddd146103205780631816467f1461034b57610288565b3661028857005b600080fd5b34801561029957600080fd5b506102a2610abf565b6040516102af919061313c565b60405180910390f35b3480156102c457600080fd5b506102cd610ac5565b6040516102da91906131f0565b60405180910390f35b3480156102ef57600080fd5b5061030a600480360381019061030591906132b0565b610b57565b604051610317919061330b565b60405180910390f35b34801561032c57600080fd5b50610335610b75565b604051610342919061313c565b60405180910390f35b34801561035757600080fd5b50610372600480360381019061036d9190613326565b610b7f565b005b34801561038057600080fd5b50610389610c3f565b604051610396919061313c565b60405180910390f35b3480156103ab57600080fd5b506103c660048036038101906103c19190613353565b610c45565b6040516103d3919061330b565b60405180910390f35b3480156103e857600080fd5b5061040360048036038101906103fe91906133a6565b610d46565b005b34801561041157600080fd5b5061042c60048036038101906104279190613326565b610ed3565b005b34801561043a57600080fd5b50610443610f88565b604051610450919061313c565b60405180910390f35b34801561046557600080fd5b5061046e610f8e565b60405161047b919061313c565b60405180910390f35b34801561049057600080fd5b50610499610f94565b6040516104a69190613415565b60405180910390f35b3480156104bb57600080fd5b506104d660048036038101906104d191906132b0565b610f9d565b6040516104e3919061330b565b60405180910390f35b3480156104f857600080fd5b50610513600480360381019061050e919061346e565b611049565b005b34801561052157600080fd5b5061052a61114b565b604051610537919061313c565b60405180910390f35b34801561054c57600080fd5b50610555611151565b604051610562919061313c565b60405180910390f35b34801561057757600080fd5b50610580611157565b60405161058d919061330b565b60405180910390f35b3480156105a257600080fd5b506105bd60048036038101906105b89190613326565b61116a565b6040516105ca919061313c565b60405180910390f35b3480156105df57600080fd5b506105e86111b2565b005b3480156105f657600080fd5b506105ff61123a565b60405161060e939291906134ae565b60405180910390f35b34801561062357600080fd5b5061062c611252565b604051610639919061330b565b60405180910390f35b34801561064e57600080fd5b5061066960048036038101906106649190613326565b611265565b604051610676919061330b565b60405180910390f35b34801561068b57600080fd5b50610694611277565b6040516106a191906134f4565b60405180910390f35b3480156106b657600080fd5b506106bf61129d565b6040516106cc919061313c565b60405180910390f35b3480156106e157600080fd5b506106fc60048036038101906106f791906132b0565b6112a3565b005b34801561070a57600080fd5b506107136113a9565b60405161072091906134f4565b60405180910390f35b34801561073557600080fd5b5061073e6113d3565b60405161074b91906134f4565b60405180910390f35b34801561076057600080fd5b506107696113f9565b60405161077691906131f0565b60405180910390f35b34801561078b57600080fd5b506107a660048036038101906107a1919061350f565b61148b565b005b3480156107b457600080fd5b506107cf60048036038101906107ca919061350f565b611511565b005b3480156107dd57600080fd5b506107f860048036038101906107f391906132b0565b6115c0565b604051610805919061330b565b60405180910390f35b34801561081a57600080fd5b506108236116b4565b60405161083091906134f4565b60405180910390f35b34801561084557600080fd5b50610860600480360381019061085b91906132b0565b6116da565b60405161086d919061330b565b60405180910390f35b34801561088257600080fd5b5061088b6116f8565b604051610898919061313c565b60405180910390f35b3480156108ad57600080fd5b506108c860048036038101906108c39190613326565b6116fe565b005b3480156108d657600080fd5b506108df6117be565b6040516108ec919061313c565b60405180910390f35b34801561090157600080fd5b5061091c6004803603810190610917919061350f565b6117c4565b005b34801561092a57600080fd5b5061094560048036038101906109409190613684565b61185d565b005b34801561095357600080fd5b5061096e60048036038101906109699190613326565b61196e565b60405161097b919061330b565b60405180910390f35b34801561099057600080fd5b506109ab60048036038101906109a691906136cd565b61198e565b6040516109b8919061313c565b60405180910390f35b3480156109cd57600080fd5b506109e860048036038101906109e39190613739565b611a15565b005b3480156109f657600080fd5b506109ff611aae565b604051610a0c91906137c5565b60405180910390f35b348015610a2157600080fd5b50610a3c6004803603810190610a3791906137e0565b611ad4565b005b348015610a4a57600080fd5b50610a656004803603810190610a609190613326565b611bab565b005b348015610a7357600080fd5b50610a7c611ca3565b604051610a8b939291906134ae565b60405180910390f35b348015610aa057600080fd5b50610aa9611cbb565b604051610ab69190613841565b60405180910390f35b600d5481565b606060038054610ad49061388b565b80601f0160208091040260200160405190810160405280929190818152602001828054610b009061388b565b8015610b4d5780601f10610b2257610100808354040283529160200191610b4d565b820191906000526020600020905b815481529060010190602001808311610b3057829003601f168201915b5050505050905090565b6000610b6b610b64611ce1565b8484611ce9565b6001905092915050565b6000600254905090565b610b87611ce1565b73ffffffffffffffffffffffffffffffffffffffff16610ba56113a9565b73ffffffffffffffffffffffffffffffffffffffff1614610bfb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf290613909565b60405180910390fd5b80601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601a5481565b6000610c52848484611eb4565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610c9d611ce1565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610d1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d149061399b565b60405180910390fd5b610d3a85610d29611ce1565b8584610d3591906139ea565b611ce9565b60019150509392505050565b610d4e611ce1565b73ffffffffffffffffffffffffffffffffffffffff16610d6c6113a9565b73ffffffffffffffffffffffffffffffffffffffff1614610dc2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db990613909565b60405180910390fd5b6000479050610dd0846125f8565b60008147610dde91906139ea565b90506000831115610e5657610e558385610df89190613a1e565b8483610e049190613a74565b610e0e9190613afd565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661283b90919063ffffffff16565b5b6000841115610ecc57610ecb8385610e6e9190613a1e565b8583610e7a9190613a74565b610e849190613afd565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661283b90919063ffffffff16565b5b5050505050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610f2d57600080fd5b6000601c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600b5481565b60195481565b60006012905090565b600061103f610faa611ce1565b848460016000610fb8611ce1565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461103a9190613a1e565b611ce9565b6001905092915050565b611051611ce1565b73ffffffffffffffffffffffffffffffffffffffff1661106f6113a9565b73ffffffffffffffffffffffffffffffffffffffff16146110c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110bc90613909565b60405180910390fd5b81600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b600c5481565b600a5481565b600860159054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6111ba611ce1565b73ffffffffffffffffffffffffffffffffffffffff166111d86113a9565b73ffffffffffffffffffffffffffffffffffffffff161461122e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161122590613909565b60405180910390fd5b611238600061292f565b565b60138060000154908060010154908060020154905083565b600860169054906101000a900460ff1681565b6000611270826129f5565b9050919050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600e5481565b6112ab611ce1565b73ffffffffffffffffffffffffffffffffffffffff166112c96113a9565b73ffffffffffffffffffffffffffffffffffffffff161461131f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131690613909565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6113436113a9565b836040518363ffffffff1660e01b8152600401611361929190613b2e565b6020604051808303816000875af1158015611380573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113a49190613b6c565b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6060600480546114089061388b565b80601f01602080910402602001604051908101604052809291908181526020018280546114349061388b565b80156114815780601f1061145657610100808354040283529160200191611481565b820191906000526020600020905b81548152906001019060200180831161146457829003601f168201915b5050505050905090565b611493611ce1565b73ffffffffffffffffffffffffffffffffffffffff166114b16113a9565b73ffffffffffffffffffffffffffffffffffffffff1614611507576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114fe90613909565b60405180910390fd5b80600d8190555050565b611519611ce1565b73ffffffffffffffffffffffffffffffffffffffff166115376113a9565b73ffffffffffffffffffffffffffffffffffffffff161461158d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158490613909565b60405180910390fd5b6115bd816115996113a9565b73ffffffffffffffffffffffffffffffffffffffff1661283b90919063ffffffff16565b50565b600080600160006115cf611ce1565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508281101561168c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168390613c0b565b60405180910390fd5b6116a9611697611ce1565b8585846116a491906139ea565b611ce9565b600191505092915050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006116ee6116e7611ce1565b8484611eb4565b6001905092915050565b600f5481565b611706611ce1565b73ffffffffffffffffffffffffffffffffffffffff166117246113a9565b73ffffffffffffffffffffffffffffffffffffffff161461177a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177190613909565b60405180910390fd5b80601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60095481565b6117cc611ce1565b73ffffffffffffffffffffffffffffffffffffffff166117ea6113a9565b73ffffffffffffffffffffffffffffffffffffffff1614611840576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161183790613909565b60405180910390fd5b670de0b6b3a7640000816118549190613a74565b600f8190555050565b611865611ce1565b73ffffffffffffffffffffffffffffffffffffffff166118836113a9565b73ffffffffffffffffffffffffffffffffffffffff16146118d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118d090613909565b60405180910390fd5b60005b815181101561196a576001601c60008484815181106118fe576118fd613c2b565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061196290613c5a565b9150506118dc565b5050565b601b6020528060005260406000206000915054906101000a900460ff1681565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611a1d611ce1565b73ffffffffffffffffffffffffffffffffffffffff16611a3b6113a9565b73ffffffffffffffffffffffffffffffffffffffff1614611a91576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a8890613909565b60405180910390fd5b80600860156101000a81548160ff02191690831515021790555050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611adc611ce1565b73ffffffffffffffffffffffffffffffffffffffff16611afa6113a9565b73ffffffffffffffffffffffffffffffffffffffff1614611b50576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b4790613909565b60405180910390fd5b80601b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b611bb3611ce1565b73ffffffffffffffffffffffffffffffffffffffff16611bd16113a9565b73ffffffffffffffffffffffffffffffffffffffff1614611c27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c1e90613909565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611c97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c8e90613d15565b60405180910390fd5b611ca08161292f565b50565b60168060000154908060010154908060020154905083565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611d59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d5090613da7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611dc9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dc090613e39565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611ea7919061313c565b60405180910390a3505050565b60008111611ef7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eee90613ecb565b60405180910390fd5b601c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611f9b5750601c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611fda576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fd190613f37565b60405180910390fd5b611fe3836129f5565b158015611ff65750611ff4826129f5565b155b1561204457612003612b3c565b15612043576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161203a90613fa3565b60405180910390fd5b5b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161490506120a281612b56565b601b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156121465750601b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561215f5750600860149054906101000a900460ff16155b156123cc5743600c54600b546121759190613a1e565b11156122d857600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614612229576001601c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16146122d7576001601c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b5b600e5482111561231d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123149061400f565b60405180910390fd5b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146123cb57600f548261237f8561116a565b6123899190613a1e565b11156123ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123c1906140a1565b60405180910390fd5b5b5b6000600860149054906101000a900460ff16806124325750601b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806124865750601b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156124945760009050612529565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141561250b576064601a54846124fa9190613a74565b6125049190613afd565b9050612528565b60646019548461251b9190613a74565b6125259190613afd565b90505b5b600860159054906101000a900460ff1680156125525750600860149054906101000a900460ff16155b80156125ac5750600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156125b85750600081115b156125c6576125c5612b9b565b5b6125dc858583866125d791906139ea565b612d9f565b60008111156125f1576125f0853083612d9f565b5b5050505050565b6000600267ffffffffffffffff81111561261557612614613541565b5b6040519080825280602002602001820160405280156126435781602001602082028036833780820191505090505b509050308160008151811061265b5761265a613c2b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612702573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061272691906140d6565b8160018151811061273a57612739613c2b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506127a130600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611ce9565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016128059594939291906141fc565b600060405180830381600087803b15801561281f57600080fd5b505af1158015612833573d6000803e3d6000fd5b505050505050565b8047101561287e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612875906142a2565b60405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff16826040516128a4906142f3565b60006040518083038185875af1925050503d80600081146128e1576040519150601f19603f3d011682016040523d82523d6000602084013e6128e6565b606091505b505090508061292a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129219061437a565b60405180910390fd5b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000633b9aca00600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612a69573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a8d91906143af565b612a979190613afd565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231846040518263ffffffff1660e01b8152600401612af291906134f4565b602060405180830381865afa158015612b0f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b3391906143af565b10159050919050565b6000600a54600954612b4e9190613a1e565b431115905090565b600860169054906101000a900460ff16158015612b705750805b15612b98576001600860166101000a81548160ff021916908315150217905550436009819055505b50565b600860149054906101000a900460ff16612d9d576001600860146101000a81548160ff0219169083151502179055506000612bd53061116a565b9050600d548110612d805760006002601a54612bf19190613a74565b905060008160166001015484612c079190613a74565b612c119190613afd565b905060008184612c2191906139ea565b90506000479050612c31826125f8565b60008147612c3f91906139ea565b9050600060166001015486612c5491906139ea565b82612c5f9190613afd565b9050600060166001015482612c749190613a74565b90506000811115612c8a57612c89868261301e565b5b6000601660000154600284612c9f9190613a74565b612ca99190613a74565b90506000811115612d0057612cff81601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661283b90919063ffffffff16565b5b6000601660020154600285612d159190613a74565b612d1f9190613a74565b90506000811115612d7657612d7581601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661283b90919063ffffffff16565b5b5050505050505050505b506000600860146101000a81548160ff0219169083151502179055505b565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612e0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e069061444e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612e7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e76906144e0565b60405180910390fd5b612e8a83838361311e565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612f10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f0790614572565b60405180910390fd5b8181612f1c91906139ea565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612fac9190613a1e565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051613010919061313c565b60405180910390a350505050565b61304b30600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611ce9565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b81526004016130d496959493929190614592565b60606040518083038185885af11580156130f2573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061311791906145f3565b5050505050565b505050565b6000819050919050565b61313681613123565b82525050565b6000602082019050613151600083018461312d565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613191578082015181840152602081019050613176565b838111156131a0576000848401525b50505050565b6000601f19601f8301169050919050565b60006131c282613157565b6131cc8185613162565b93506131dc818560208601613173565b6131e5816131a6565b840191505092915050565b6000602082019050818103600083015261320a81846131b7565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061325182613226565b9050919050565b61326181613246565b811461326c57600080fd5b50565b60008135905061327e81613258565b92915050565b61328d81613123565b811461329857600080fd5b50565b6000813590506132aa81613284565b92915050565b600080604083850312156132c7576132c661321c565b5b60006132d58582860161326f565b92505060206132e68582860161329b565b9150509250929050565b60008115159050919050565b613305816132f0565b82525050565b600060208201905061332060008301846132fc565b92915050565b60006020828403121561333c5761333b61321c565b5b600061334a8482850161326f565b91505092915050565b60008060006060848603121561336c5761336b61321c565b5b600061337a8682870161326f565b935050602061338b8682870161326f565b925050604061339c8682870161329b565b9150509250925092565b6000806000606084860312156133bf576133be61321c565b5b60006133cd8682870161329b565b93505060206133de8682870161329b565b92505060406133ef8682870161329b565b9150509250925092565b600060ff82169050919050565b61340f816133f9565b82525050565b600060208201905061342a6000830184613406565b92915050565b600061343b82613246565b9050919050565b61344b81613430565b811461345657600080fd5b50565b60008135905061346881613442565b92915050565b600080604083850312156134855761348461321c565b5b600061349385828601613459565b92505060206134a48582860161326f565b9150509250929050565b60006060820190506134c3600083018661312d565b6134d0602083018561312d565b6134dd604083018461312d565b949350505050565b6134ee81613246565b82525050565b600060208201905061350960008301846134e5565b92915050565b6000602082840312156135255761352461321c565b5b60006135338482850161329b565b91505092915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b613579826131a6565b810181811067ffffffffffffffff8211171561359857613597613541565b5b80604052505050565b60006135ab613212565b90506135b78282613570565b919050565b600067ffffffffffffffff8211156135d7576135d6613541565b5b602082029050602081019050919050565b600080fd5b60006136006135fb846135bc565b6135a1565b90508083825260208201905060208402830185811115613623576136226135e8565b5b835b8181101561364c5780613638888261326f565b845260208401935050602081019050613625565b5050509392505050565b600082601f83011261366b5761366a61353c565b5b813561367b8482602086016135ed565b91505092915050565b60006020828403121561369a5761369961321c565b5b600082013567ffffffffffffffff8111156136b8576136b7613221565b5b6136c484828501613656565b91505092915050565b600080604083850312156136e4576136e361321c565b5b60006136f28582860161326f565b92505060206137038582860161326f565b9150509250929050565b613716816132f0565b811461372157600080fd5b50565b6000813590506137338161370d565b92915050565b60006020828403121561374f5761374e61321c565b5b600061375d84828501613724565b91505092915050565b6000819050919050565b600061378b61378661378184613226565b613766565b613226565b9050919050565b600061379d82613770565b9050919050565b60006137af82613792565b9050919050565b6137bf816137a4565b82525050565b60006020820190506137da60008301846137b6565b92915050565b600080604083850312156137f7576137f661321c565b5b60006138058582860161326f565b925050602061381685828601613724565b9150509250929050565b600061382b82613792565b9050919050565b61383b81613820565b82525050565b60006020820190506138566000830184613832565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806138a357607f821691505b602082108114156138b7576138b661385c565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006138f3602083613162565b91506138fe826138bd565b602082019050919050565b60006020820190508181036000830152613922816138e6565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000613985602883613162565b915061399082613929565b604082019050919050565b600060208201905081810360008301526139b481613978565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006139f582613123565b9150613a0083613123565b925082821015613a1357613a126139bb565b5b828203905092915050565b6000613a2982613123565b9150613a3483613123565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613a6957613a686139bb565b5b828201905092915050565b6000613a7f82613123565b9150613a8a83613123565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613ac357613ac26139bb565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613b0882613123565b9150613b1383613123565b925082613b2357613b22613ace565b5b828204905092915050565b6000604082019050613b4360008301856134e5565b613b50602083018461312d565b9392505050565b600081519050613b668161370d565b92915050565b600060208284031215613b8257613b8161321c565b5b6000613b9084828501613b57565b91505092915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000613bf5602583613162565b9150613c0082613b99565b604082019050919050565b60006020820190508181036000830152613c2481613be8565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000613c6582613123565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415613c9857613c976139bb565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613cff602683613162565b9150613d0a82613ca3565b604082019050919050565b60006020820190508181036000830152613d2e81613cf2565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613d91602483613162565b9150613d9c82613d35565b604082019050919050565b60006020820190508181036000830152613dc081613d84565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613e23602283613162565b9150613e2e82613dc7565b604082019050919050565b60006020820190508181036000830152613e5281613e16565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613eb5602983613162565b9150613ec082613e59565b604082019050919050565b60006020820190508181036000830152613ee481613ea8565b9050919050565b7f596f752063616e2774207472616e7366657220746f6b656e7300000000000000600082015250565b6000613f21601983613162565b9150613f2c82613eeb565b602082019050919050565b60006020820190508181036000830152613f5081613f14565b9050919050565b7f4e6f7420616c6c6f77656420696e206561726c79206275790000000000000000600082015250565b6000613f8d601883613162565b9150613f9882613f57565b602082019050919050565b60006020820190508181036000830152613fbc81613f80565b9050919050565b7f596f752061726520657863656564696e67206d61785478416d6f756e74000000600082015250565b6000613ff9601d83613162565b915061400482613fc3565b602082019050919050565b6000602082019050818103600083015261402881613fec565b9050919050565b7f596f752061726520657863656564696e67206d617857616c6c6574416d6f756e60008201527f7400000000000000000000000000000000000000000000000000000000000000602082015250565b600061408b602183613162565b91506140968261402f565b604082019050919050565b600060208201905081810360008301526140ba8161407e565b9050919050565b6000815190506140d081613258565b92915050565b6000602082840312156140ec576140eb61321c565b5b60006140fa848285016140c1565b91505092915050565b6000819050919050565b600061412861412361411e84614103565b613766565b613123565b9050919050565b6141388161410d565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61417381613246565b82525050565b6000614185838361416a565b60208301905092915050565b6000602082019050919050565b60006141a98261413e565b6141b38185614149565b93506141be8361415a565b8060005b838110156141ef5781516141d68882614179565b97506141e183614191565b9250506001810190506141c2565b5085935050505092915050565b600060a082019050614211600083018861312d565b61421e602083018761412f565b8181036040830152614230818661419e565b905061423f60608301856134e5565b61424c608083018461312d565b9695505050505050565b7f416464726573733a20696e73756666696369656e742062616c616e6365000000600082015250565b600061428c601d83613162565b915061429782614256565b602082019050919050565b600060208201905081810360008301526142bb8161427f565b9050919050565b600081905092915050565b50565b60006142dd6000836142c2565b91506142e8826142cd565b600082019050919050565b60006142fe826142d0565b9150819050919050565b7f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260008201527f6563697069656e74206d61792068617665207265766572746564000000000000602082015250565b6000614364603a83613162565b915061436f82614308565b604082019050919050565b6000602082019050818103600083015261439381614357565b9050919050565b6000815190506143a981613284565b92915050565b6000602082840312156143c5576143c461321c565b5b60006143d38482850161439a565b91505092915050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000614438602583613162565b9150614443826143dc565b604082019050919050565b600060208201905081810360008301526144678161442b565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006144ca602383613162565b91506144d58261446e565b604082019050919050565b600060208201905081810360008301526144f9816144bd565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b600061455c602683613162565b915061456782614500565b604082019050919050565b6000602082019050818103600083015261458b8161454f565b9050919050565b600060c0820190506145a760008301896134e5565b6145b4602083018861312d565b6145c1604083018761412f565b6145ce606083018661412f565b6145db60808301856134e5565b6145e860a083018461312d565b979650505050505050565b60008060006060848603121561460c5761460b61321c565b5b600061461a8682870161439a565b935050602061462b8682870161439a565b925050604061463c8682870161439a565b915050925092509256fea264697066735822122095ffebdf3eb80d653e477355172e32c23d16326ae3a409bc7d9408f015a17b3c64736f6c634300080c0033

Deployed Bytecode Sourcemap

13845:8674:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14269:44;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2988:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5162:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4111:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20402:102;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14853:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5814:421;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21911:546;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20987:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14195:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14821:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3952:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6651:215;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20513:137;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14230:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14151:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14035:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4283:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12616:94;;;;;;;;;;;;;:::i;:::-;;14737:33;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;14068;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19997:114;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14467:75;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14320:48;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21633:142;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12391:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14549:69;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3208:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19877:110;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21790:112;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7370:378;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13978:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4624:175;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14375:49;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20279:114;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14109:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21129:117;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20663:172;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14892:49;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4863:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19775:93;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13952:18;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20841:134;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12719:192;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14777:37;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;13924:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14269:44;;;;:::o;2988:100::-;3042:13;3075:5;3068:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2988:100;:::o;5162:169::-;5245:4;5262:39;5271:12;:10;:12::i;:::-;5285:7;5294:6;5262:8;:39::i;:::-;5319:4;5312:11;;5162:169;;;;:::o;4111:108::-;4172:7;4199:12;;4192:19;;4111:108;:::o;20402:102::-;12538:12;:10;:12::i;:::-;12527:23;;:7;:5;:7::i;:::-;:23;;;12519:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20487:9:::1;20475;;:21;;;;;;;;;;;;;;;;;;20402:102:::0;:::o;14853:29::-;;;;:::o;5814:421::-;5920:4;5937:36;5947:6;5955:9;5966:6;5937:9;:36::i;:::-;5984:24;6011:11;:19;6023:6;6011:19;;;;;;;;;;;;;;;:33;6031:12;:10;:12::i;:::-;6011:33;;;;;;;;;;;;;;;;5984:60;;6083:6;6063:16;:26;;6055:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;6145:57;6154:6;6162:12;:10;:12::i;:::-;6195:6;6176:16;:25;;;;:::i;:::-;6145:8;:57::i;:::-;6223:4;6216:11;;;5814:421;;;;;:::o;21911:546::-;12538:12;:10;:12::i;:::-;12527:23;;:7;:5;:7::i;:::-;:23;;;12519:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22028:19:::1;22050:21;22028:43;;22082:24;22099:6;22082:16;:24::i;:::-;22117:18;22162:11;22138:21;:35;;;;:::i;:::-;22117:56;;22209:1;22187:19;:23;22184:136;;;22212:108;22299:19;22283:13;:35;;;;:::i;:::-;22260:19;22247:10;:32;;;;:::i;:::-;:72;;;;:::i;:::-;22220:15;;;;;;;;;;;22212:34;;;;:108;;;;:::i;:::-;22184:136;22350:1;22334:13;:17;22331:118;;;22353:96;22428:19;22412:13;:35;;;;:::i;:::-;22395:13;22382:10;:26;;;;:::i;:::-;:66;;;;:::i;:::-;22361:9;;;;;;;;;;;22353:28;;;;:96;;;;:::i;:::-;22331:118;22017:440;;21911:546:::0;;;:::o;20987:133::-;21063:15;;;;;;;;;;;21049:29;;:10;:29;;;21040:39;;;;;;21107:5;21090;:14;21096:7;21090:14;;;;;;;;;;;;;;;;:22;;;;;;;;;;;;;;;;;;20987:133;:::o;14195:28::-;;;;:::o;14821:25::-;;;;:::o;3952:93::-;4010:5;4035:2;4028:9;;3952:93;:::o;6651:215::-;6739:4;6756:80;6765:12;:10;:12::i;:::-;6779:7;6825:10;6788:11;:25;6800:12;:10;:12::i;:::-;6788:25;;;;;;;;;;;;;;;:34;6814:7;6788:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;6756:8;:80::i;:::-;6854:4;6847:11;;6651:215;;;;:::o;20513:137::-;12538:12;:10;:12::i;:::-;12527:23;;:7;:5;:7::i;:::-;:23;;;12519:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20612:7:::1;20603:6;;:16;;;;;;;;;;;;;;;;;;20637:5;20630:4;;:12;;;;;;;;;;;;;;;;;;20513:137:::0;;:::o;14230:29::-;;;;:::o;14151:27::-;;;;:::o;14035:23::-;;;;;;;;;;;;;:::o;4283:127::-;4357:7;4384:9;:18;4394:7;4384:18;;;;;;;;;;;;;;;;4377:25;;4283:127;;;:::o;12616:94::-;12538:12;:10;:12::i;:::-;12527:23;;:7;:5;:7::i;:::-;:23;;;12519:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12681:21:::1;12699:1;12681:9;:21::i;:::-;12616:94::o:0;14737:33::-;;;;;;;;;;;;;;;;;;;:::o;14068:::-;;;;;;;;;;;;;:::o;19997:114::-;20056:4;20081:21;20094:7;20081:12;:21::i;:::-;20074:28;;19997:114;;;:::o;14467:75::-;;;;;;;;;;;;;:::o;14320:48::-;;;;:::o;21633:142::-;12538:12;:10;:12::i;:::-;12527:23;;:7;:5;:7::i;:::-;:23;;;12519:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21728:12:::1;21721:29;;;21751:7;:5;:7::i;:::-;21760:6;21721:46;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;21633:142:::0;;:::o;12391:87::-;12437:7;12464:6;;;;;;;;;;;12457:13;;12391:87;:::o;14549:69::-;;;;;;;;;;;;;:::o;3208:104::-;3264:13;3297:7;3290:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3208:104;:::o;19877:110::-;12538:12;:10;:12::i;:::-;12527:23;;:7;:5;:7::i;:::-;:23;;;12519:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19969:10:::1;19953:13;:26;;;;19877:110:::0;:::o;21790:112::-;12538:12;:10;:12::i;:::-;12527:23;;:7;:5;:7::i;:::-;:23;;;12519:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21857:37:::1;21884:9;21865:7;:5;:7::i;:::-;21857:26;;;;:37;;;;:::i;:::-;21790:112:::0;:::o;7370:378::-;7463:4;7480:24;7507:11;:25;7519:12;:10;:12::i;:::-;7507:25;;;;;;;;;;;;;;;:34;7533:7;7507:34;;;;;;;;;;;;;;;;7480:61;;7580:15;7560:16;:35;;7552:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;7648:67;7657:12;:10;:12::i;:::-;7671:7;7699:15;7680:16;:34;;;;:::i;:::-;7648:8;:67::i;:::-;7736:4;7729:11;;;7370:378;;;;:::o;13978:19::-;;;;;;;;;;;;;:::o;4624:175::-;4710:4;4727:42;4737:12;:10;:12::i;:::-;4751:9;4762:6;4727:9;:42::i;:::-;4787:4;4780:11;;4624:175;;;;:::o;14375:49::-;;;;:::o;20279:114::-;12538:12;:10;:12::i;:::-;12527:23;;:7;:5;:7::i;:::-;:23;;;12519:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20376:9:::1;20358:15;;:27;;;;;;;;;;;;;;;;;;20279:114:::0;:::o;14109:34::-;;;;:::o;21129:117::-;12538:12;:10;:12::i;:::-;12527:23;;:7;:5;:7::i;:::-;:23;;;12519:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21232:6:::1;21223;:15;;;;:::i;:::-;21205;:33;;;;21129:117:::0;:::o;20663:172::-;12538:12;:10;:12::i;:::-;12527:23;;:7;:5;:7::i;:::-;:23;;;12519:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20738:6:::1;20733:91;20754:6;:13;20750:1;:17;20733:91;;;20808:4;20789:5;:16;20795:6;20802:1;20795:9;;;;;;;;:::i;:::-;;;;;;;;20789:16;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;20769:3;;;;;:::i;:::-;;;;20733:91;;;;20663:172:::0;:::o;14892:49::-;;;;;;;;;;;;;;;;;;;;;;:::o;4863:151::-;4952:7;4979:11;:18;4991:5;4979:18;;;;;;;;;;;;;;;:27;4998:7;4979:27;;;;;;;;;;;;;;;;4972:34;;4863:151;;;;:::o;19775:93::-;12538:12;:10;:12::i;:::-;12527:23;;:7;:5;:7::i;:::-;:23;;;12519:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19855:5:::1;19841:11;;:19;;;;;;;;;;;;;;;;;;19775:93:::0;:::o;13952:18::-;;;;;;;;;;;;;:::o;20841:134::-;12538:12;:10;:12::i;:::-;12527:23;;:7;:5;:7::i;:::-;:23;;;12519:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20962:5:::1;20933:16;:26;20950:8;20933:26;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;20841:134:::0;;:::o;12719:192::-;12538:12;:10;:12::i;:::-;12527:23;;:7;:5;:7::i;:::-;:23;;;12519:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12828:1:::1;12808:22;;:8;:22;;;;12800:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;12884:19;12894:8;12884:9;:19::i;:::-;12719:192:::0;:::o;14777:37::-;;;;;;;;;;;;;;;;;;;:::o;13924:21::-;;;;;;;;;;;;;:::o;685:98::-;738:7;765:10;758:17;;685:98;:::o;10750:347::-;10869:1;10852:19;;:5;:19;;;;10844:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10950:1;10931:21;;:7;:21;;;;10923:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11035:6;11005:11;:18;11017:5;11005:18;;;;;;;;;;;;;;;:27;11024:7;11005:27;;;;;;;;;;;;;;;:36;;;;11073:7;11057:32;;11066:5;11057:32;;;11082:6;11057:32;;;;;;:::i;:::-;;;;;;;;10750:347;;;:::o;15767:1721::-;15897:1;15888:6;:10;15880:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;15964:5;:13;15970:6;15964:13;;;;;;;;;;;;;;;;;;;;;;;;;15963:14;:35;;;;;15982:5;:16;15988:9;15982:16;;;;;;;;;;;;;;;;;;;;;;;;;15981:17;15963:35;15955:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;16045:20;16058:6;16045:12;:20::i;:::-;16044:21;:49;;;;;16070:23;16083:9;16070:12;:23::i;:::-;16069:24;16044:49;16040:131;;;16115:14;:12;:14::i;:::-;16114:15;16106:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;16040:131;16185:11;16212:4;;;;;;;;;;;16199:17;;:9;:17;;;16185:31;;16231:21;16245:6;16231:13;:21::i;:::-;16278:16;:24;16295:6;16278:24;;;;;;;;;;;;;;;;;;;;;;;;;16277:25;:57;;;;;16307:16;:27;16324:9;16307:27;;;;;;;;;;;;;;;;;;;;;;;;;16306:28;16277:57;:70;;;;;16339:8;;;;;;;;;;;16338:9;16277:70;16274:528;;;16395:12;16382:10;;16366:13;;:26;;;;:::i;:::-;:41;16363:183;;;16443:4;;;;;;;;;;;16430:17;;:9;:17;;;16427:45;;16468:4;16449:5;:16;16455:9;16449:16;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;16427:45;16504:4;;;;;;;;;;;16494:14;;:6;:14;;;16491:39;;16526:4;16510:5;:13;16516:6;16510:13;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;16491:39;16363:183;16578:11;;16568:6;:21;;16560:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;16654:4;;;;;;;;;;;16641:17;;:9;:17;;;16638:150;;16719:15;;16709:6;16686:20;16696:9;16686;:20::i;:::-;:29;;;;:::i;:::-;:48;;16678:94;;;;;;;;;;;;:::i;:::-;;;;;;;;;16638:150;16274:528;16818:11;16918:8;;;;;;;;;;;:36;;;;16930:16;:24;16947:6;16930:24;;;;;;;;;;;;;;;;;;;;;;;;;16918:36;:67;;;;16958:16;:27;16975:9;16958:27;;;;;;;;;;;;;;;;;;;;;;;;;16918:67;16914:250;;;16993:1;16987:7;;16914:250;;;17068:4;;;;;;;;;;;17055:17;;:9;:17;;;17052:100;;;17102:3;17089:10;;17080:6;:19;;;;:::i;:::-;:25;;;;:::i;:::-;17074:31;;17052:100;;;17149:3;17140:6;;17131;:15;;;;:::i;:::-;:21;;;;:::i;:::-;17125:27;;17052:100;16914:250;17281:11;;;;;;;;;;;:24;;;;;17297:8;;;;;;;;;;;17296:9;17281:24;:42;;;;;17319:4;;;;;;;;;;;17309:14;;:6;:14;;;;17281:42;:53;;;;;17333:1;17327:3;:7;17281:53;17277:72;;;17336:13;:11;:13::i;:::-;17277:72;17363:48;17379:6;17387:9;17407:3;17398:6;:12;;;;:::i;:::-;17363:15;:48::i;:::-;17431:1;17425:3;:7;17422:55;;;17434:43;17450:6;17466:4;17473:3;17434:15;:43::i;:::-;17422:55;15855:1633;;15767:1721;;;:::o;18856:403::-;18922:21;18960:1;18946:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18922:40;;18991:4;18973;18978:1;18973:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;19017:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19007:4;19012:1;19007:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;19044:53;19061:4;19076:6;;;;;;;;;;;19085:11;19044:8;:53::i;:::-;19137:6;;;;;;;;;;;:57;;;19195:11;19208:1;19211:4;19225;19232:15;19137:111;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18911:348;18856:403;:::o;11831:318::-;11946:6;11921:21;:31;;11913:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;12001:12;12019:9;:14;;12041:6;12019:33;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12000:52;;;12071:7;12063:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;11902:247;11831:318;;:::o;12920:173::-;12976:16;12995:6;;;;;;;;;;;12976:25;;13021:8;13012:6;;:17;;;;;;;;;;;;;;;;;;13076:8;13045:40;;13066:8;13045:40;;;;;;;;;;;;12965:128;12920:173;:::o;20118:152::-;20179:4;20251:10;20230:4;;;;;;;;;;;:16;;;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:31;;;;:::i;:::-;20204:4;;;;;;;;;;;:14;;;20219:6;20204:22;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:57;;20197:64;;20118:152;;;:::o;21498:126::-;21544:4;21607:8;;21585:19;;:30;;;;:::i;:::-;21569:12;:46;;21562:53;;21498:126;:::o;21282:209::-;21343:21;;;;;;;;;;;21342:22;:32;;;;;21368:6;21342:32;21338:145;;;21416:4;21392:21;;:28;;;;;;;;;;;;;;;;;;21458:12;21436:19;:34;;;;21338:145;21282:209;:::o;17497:1351::-;15031:8;;;;;;;;;;;15026:104;;15067:4;15056:8;;:15;;;;;;;;;;;;;;;;;;17546:23:::1;17572:24;17590:4;17572:9;:24::i;:::-;17546:50;;17630:13;;17611:15;:32;17607:1234;;17718:19;17753:1;17740:10;;:14;;;;:::i;:::-;17718:36;;17769:32;17844:11;17822:9;:19;;;17804:15;:37;;;;:::i;:::-;:51;;;;:::i;:::-;17769:86;;17870:14;17905:24;17887:15;:42;;;;:::i;:::-;17870:59;;17947:23;17973:21;17947:47;;18012:24;18029:6;18012:16;:24::i;:::-;18054:20;18101:15;18077:21;:39;;;;:::i;:::-;18054:62;;18131:19;18182:9;:19;;;18168:11;:33;;;;:::i;:::-;18152:12;:50;;;;:::i;:::-;18131:71;;18217:29;18263:9;:19;;;18249:11;:33;;;;:::i;:::-;18217:65;;18327:1;18303:21;:25;18300:170;;;18393:61;18406:24;18432:21;18393:12;:61::i;:::-;18300:170;18487:20;18528:9;:19;;;18524:1;18510:11;:15;;;;:::i;:::-;:37;;;;:::i;:::-;18487:60;;18580:1;18565:12;:16;18562:103;;;18601:48;18636:12;18609:15;;;;;;;;;;;18601:34;;;;:48;;;;:::i;:::-;18562:103;18682:14;18717:9;:13;;;18713:1;18699:11;:15;;;;:::i;:::-;:31;;;;:::i;:::-;18682:48;;18757:1;18748:6;:10;18745:85;;;18778:36;18807:6;18786:9;;;;;;;;;;;18778:28;;;;:36;;;;:::i;:::-;18745:85;17645:1196;;;;;;;;;17607:1234;17535:1313;15113:5:::0;15102:8;;:16;;;;;;;;;;;;;;;;;;15026:104;17497:1351::o;8239:610::-;8363:1;8345:20;;:6;:20;;;;8337:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;8447:1;8426:23;;:9;:23;;;;8418:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;8506:47;8527:6;8535:9;8546:6;8506:20;:47::i;:::-;8567:21;8591:9;:17;8601:6;8591:17;;;;;;;;;;;;;;;;8567:41;;8644:6;8627:13;:23;;8619:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;8740:6;8724:13;:22;;;;:::i;:::-;8704:9;:17;8714:6;8704:17;;;;;;;;;;;;;;;:42;;;;8781:6;8757:9;:20;8767:9;8757:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;8823:9;8806:35;;8815:6;8806:35;;;8834:6;8806:35;;;;;;:::i;:::-;;;;;;;;8326:523;8239:610;;;:::o;19268:498::-;19416:53;19433:4;19448:6;;;;;;;;;;;19457:11;19416:8;:53::i;:::-;19513:6;;;;;;;;;;;:22;;;19543:9;19576:4;19596:11;19622:1;19665;19708:9;;;;;;;;;;;19732:15;19513:245;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;19268:498;;:::o;11709:92::-;;;;:::o;7:77:1:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;442:99::-;494:6;528:5;522:12;512:22;;442:99;;;:::o;547:169::-;631:11;665:6;660:3;653:19;705:4;700:3;696:14;681:29;;547:169;;;;:::o;722:307::-;790:1;800:113;814:6;811:1;808:13;800:113;;;899:1;894:3;890:11;884:18;880:1;875:3;871:11;864:39;836:2;833:1;829:10;824:15;;800:113;;;931:6;928:1;925:13;922:101;;;1011:1;1002:6;997:3;993:16;986:27;922:101;771:258;722:307;;;:::o;1035:102::-;1076:6;1127:2;1123:7;1118:2;1111:5;1107:14;1103:28;1093:38;;1035:102;;;:::o;1143:364::-;1231:3;1259:39;1292:5;1259:39;:::i;:::-;1314:71;1378:6;1373:3;1314:71;:::i;:::-;1307:78;;1394:52;1439:6;1434:3;1427:4;1420:5;1416:16;1394:52;:::i;:::-;1471:29;1493:6;1471:29;:::i;:::-;1466:3;1462:39;1455:46;;1235:272;1143:364;;;;:::o;1513:313::-;1626:4;1664:2;1653:9;1649:18;1641:26;;1713:9;1707:4;1703:20;1699:1;1688:9;1684:17;1677:47;1741:78;1814:4;1805:6;1741:78;:::i;:::-;1733:86;;1513:313;;;;:::o;1832:75::-;1865:6;1898:2;1892:9;1882:19;;1832:75;:::o;1913:117::-;2022:1;2019;2012:12;2036:117;2145:1;2142;2135:12;2159:126;2196:7;2236:42;2229:5;2225:54;2214:65;;2159:126;;;:::o;2291:96::-;2328:7;2357:24;2375:5;2357:24;:::i;:::-;2346:35;;2291:96;;;:::o;2393:122::-;2466:24;2484:5;2466:24;:::i;:::-;2459:5;2456:35;2446:63;;2505:1;2502;2495:12;2446:63;2393:122;:::o;2521:139::-;2567:5;2605:6;2592:20;2583:29;;2621:33;2648:5;2621:33;:::i;:::-;2521:139;;;;:::o;2666:122::-;2739:24;2757:5;2739:24;:::i;:::-;2732:5;2729:35;2719:63;;2778:1;2775;2768:12;2719:63;2666:122;:::o;2794:139::-;2840:5;2878:6;2865:20;2856:29;;2894:33;2921:5;2894:33;:::i;:::-;2794:139;;;;:::o;2939:474::-;3007:6;3015;3064:2;3052:9;3043:7;3039:23;3035:32;3032:119;;;3070:79;;:::i;:::-;3032:119;3190:1;3215:53;3260:7;3251:6;3240:9;3236:22;3215:53;:::i;:::-;3205:63;;3161:117;3317:2;3343:53;3388:7;3379:6;3368:9;3364:22;3343:53;:::i;:::-;3333:63;;3288:118;2939:474;;;;;:::o;3419:90::-;3453:7;3496:5;3489:13;3482:21;3471:32;;3419:90;;;:::o;3515:109::-;3596:21;3611:5;3596:21;:::i;:::-;3591:3;3584:34;3515:109;;:::o;3630:210::-;3717:4;3755:2;3744:9;3740:18;3732:26;;3768:65;3830:1;3819:9;3815:17;3806:6;3768:65;:::i;:::-;3630:210;;;;:::o;3846:329::-;3905:6;3954:2;3942:9;3933:7;3929:23;3925:32;3922:119;;;3960:79;;:::i;:::-;3922:119;4080:1;4105:53;4150:7;4141:6;4130:9;4126:22;4105:53;:::i;:::-;4095:63;;4051:117;3846:329;;;;:::o;4181:619::-;4258:6;4266;4274;4323:2;4311:9;4302:7;4298:23;4294:32;4291:119;;;4329:79;;:::i;:::-;4291:119;4449:1;4474:53;4519:7;4510:6;4499:9;4495:22;4474:53;:::i;:::-;4464:63;;4420:117;4576:2;4602:53;4647:7;4638:6;4627:9;4623:22;4602:53;:::i;:::-;4592:63;;4547:118;4704:2;4730:53;4775:7;4766:6;4755:9;4751:22;4730:53;:::i;:::-;4720:63;;4675:118;4181:619;;;;;:::o;4806:::-;4883:6;4891;4899;4948:2;4936:9;4927:7;4923:23;4919:32;4916:119;;;4954:79;;:::i;:::-;4916:119;5074:1;5099:53;5144:7;5135:6;5124:9;5120:22;5099:53;:::i;:::-;5089:63;;5045:117;5201:2;5227:53;5272:7;5263:6;5252:9;5248:22;5227:53;:::i;:::-;5217:63;;5172:118;5329:2;5355:53;5400:7;5391:6;5380:9;5376:22;5355:53;:::i;:::-;5345:63;;5300:118;4806:619;;;;;:::o;5431:86::-;5466:7;5506:4;5499:5;5495:16;5484:27;;5431:86;;;:::o;5523:112::-;5606:22;5622:5;5606:22;:::i;:::-;5601:3;5594:35;5523:112;;:::o;5641:214::-;5730:4;5768:2;5757:9;5753:18;5745:26;;5781:67;5845:1;5834:9;5830:17;5821:6;5781:67;:::i;:::-;5641:214;;;;:::o;5861:111::-;5913:7;5942:24;5960:5;5942:24;:::i;:::-;5931:35;;5861:111;;;:::o;5978:152::-;6066:39;6099:5;6066:39;:::i;:::-;6059:5;6056:50;6046:78;;6120:1;6117;6110:12;6046:78;5978:152;:::o;6136:169::-;6197:5;6235:6;6222:20;6213:29;;6251:48;6293:5;6251:48;:::i;:::-;6136:169;;;;:::o;6311:504::-;6394:6;6402;6451:2;6439:9;6430:7;6426:23;6422:32;6419:119;;;6457:79;;:::i;:::-;6419:119;6577:1;6602:68;6662:7;6653:6;6642:9;6638:22;6602:68;:::i;:::-;6592:78;;6548:132;6719:2;6745:53;6790:7;6781:6;6770:9;6766:22;6745:53;:::i;:::-;6735:63;;6690:118;6311:504;;;;;:::o;6821:442::-;6970:4;7008:2;6997:9;6993:18;6985:26;;7021:71;7089:1;7078:9;7074:17;7065:6;7021:71;:::i;:::-;7102:72;7170:2;7159:9;7155:18;7146:6;7102:72;:::i;:::-;7184;7252:2;7241:9;7237:18;7228:6;7184:72;:::i;:::-;6821:442;;;;;;:::o;7269:118::-;7356:24;7374:5;7356:24;:::i;:::-;7351:3;7344:37;7269:118;;:::o;7393:222::-;7486:4;7524:2;7513:9;7509:18;7501:26;;7537:71;7605:1;7594:9;7590:17;7581:6;7537:71;:::i;:::-;7393:222;;;;:::o;7621:329::-;7680:6;7729:2;7717:9;7708:7;7704:23;7700:32;7697:119;;;7735:79;;:::i;:::-;7697:119;7855:1;7880:53;7925:7;7916:6;7905:9;7901:22;7880:53;:::i;:::-;7870:63;;7826:117;7621:329;;;;:::o;7956:117::-;8065:1;8062;8055:12;8079:180;8127:77;8124:1;8117:88;8224:4;8221:1;8214:15;8248:4;8245:1;8238:15;8265:281;8348:27;8370:4;8348:27;:::i;:::-;8340:6;8336:40;8478:6;8466:10;8463:22;8442:18;8430:10;8427:34;8424:62;8421:88;;;8489:18;;:::i;:::-;8421:88;8529:10;8525:2;8518:22;8308:238;8265:281;;:::o;8552:129::-;8586:6;8613:20;;:::i;:::-;8603:30;;8642:33;8670:4;8662:6;8642:33;:::i;:::-;8552:129;;;:::o;8687:311::-;8764:4;8854:18;8846:6;8843:30;8840:56;;;8876:18;;:::i;:::-;8840:56;8926:4;8918:6;8914:17;8906:25;;8986:4;8980;8976:15;8968:23;;8687:311;;;:::o;9004:117::-;9113:1;9110;9103:12;9144:710;9240:5;9265:81;9281:64;9338:6;9281:64;:::i;:::-;9265:81;:::i;:::-;9256:90;;9366:5;9395:6;9388:5;9381:21;9429:4;9422:5;9418:16;9411:23;;9482:4;9474:6;9470:17;9462:6;9458:30;9511:3;9503:6;9500:15;9497:122;;;9530:79;;:::i;:::-;9497:122;9645:6;9628:220;9662:6;9657:3;9654:15;9628:220;;;9737:3;9766:37;9799:3;9787:10;9766:37;:::i;:::-;9761:3;9754:50;9833:4;9828:3;9824:14;9817:21;;9704:144;9688:4;9683:3;9679:14;9672:21;;9628:220;;;9632:21;9246:608;;9144:710;;;;;:::o;9877:370::-;9948:5;9997:3;9990:4;9982:6;9978:17;9974:27;9964:122;;10005:79;;:::i;:::-;9964:122;10122:6;10109:20;10147:94;10237:3;10229:6;10222:4;10214:6;10210:17;10147:94;:::i;:::-;10138:103;;9954:293;9877:370;;;;:::o;10253:539::-;10337:6;10386:2;10374:9;10365:7;10361:23;10357:32;10354:119;;;10392:79;;:::i;:::-;10354:119;10540:1;10529:9;10525:17;10512:31;10570:18;10562:6;10559:30;10556:117;;;10592:79;;:::i;:::-;10556:117;10697:78;10767:7;10758:6;10747:9;10743:22;10697:78;:::i;:::-;10687:88;;10483:302;10253:539;;;;:::o;10798:474::-;10866:6;10874;10923:2;10911:9;10902:7;10898:23;10894:32;10891:119;;;10929:79;;:::i;:::-;10891:119;11049:1;11074:53;11119:7;11110:6;11099:9;11095:22;11074:53;:::i;:::-;11064:63;;11020:117;11176:2;11202:53;11247:7;11238:6;11227:9;11223:22;11202:53;:::i;:::-;11192:63;;11147:118;10798:474;;;;;:::o;11278:116::-;11348:21;11363:5;11348:21;:::i;:::-;11341:5;11338:32;11328:60;;11384:1;11381;11374:12;11328:60;11278:116;:::o;11400:133::-;11443:5;11481:6;11468:20;11459:29;;11497:30;11521:5;11497:30;:::i;:::-;11400:133;;;;:::o;11539:323::-;11595:6;11644:2;11632:9;11623:7;11619:23;11615:32;11612:119;;;11650:79;;:::i;:::-;11612:119;11770:1;11795:50;11837:7;11828:6;11817:9;11813:22;11795:50;:::i;:::-;11785:60;;11741:114;11539:323;;;;:::o;11868:60::-;11896:3;11917:5;11910:12;;11868:60;;;:::o;11934:142::-;11984:9;12017:53;12035:34;12044:24;12062:5;12044:24;:::i;:::-;12035:34;:::i;:::-;12017:53;:::i;:::-;12004:66;;11934:142;;;:::o;12082:126::-;12132:9;12165:37;12196:5;12165:37;:::i;:::-;12152:50;;12082:126;;;:::o;12214:139::-;12277:9;12310:37;12341:5;12310:37;:::i;:::-;12297:50;;12214:139;;;:::o;12359:157::-;12459:50;12503:5;12459:50;:::i;:::-;12454:3;12447:63;12359:157;;:::o;12522:248::-;12628:4;12666:2;12655:9;12651:18;12643:26;;12679:84;12760:1;12749:9;12745:17;12736:6;12679:84;:::i;:::-;12522:248;;;;:::o;12776:468::-;12841:6;12849;12898:2;12886:9;12877:7;12873:23;12869:32;12866:119;;;12904:79;;:::i;:::-;12866:119;13024:1;13049:53;13094:7;13085:6;13074:9;13070:22;13049:53;:::i;:::-;13039:63;;12995:117;13151:2;13177:50;13219:7;13210:6;13199:9;13195:22;13177:50;:::i;:::-;13167:60;;13122:115;12776:468;;;;;:::o;13250:141::-;13315:9;13348:37;13379:5;13348:37;:::i;:::-;13335:50;;13250:141;;;:::o;13397:161::-;13499:52;13545:5;13499:52;:::i;:::-;13494:3;13487:65;13397:161;;:::o;13564:252::-;13672:4;13710:2;13699:9;13695:18;13687:26;;13723:86;13806:1;13795:9;13791:17;13782:6;13723:86;:::i;:::-;13564:252;;;;:::o;13822:180::-;13870:77;13867:1;13860:88;13967:4;13964:1;13957:15;13991:4;13988:1;13981:15;14008:320;14052:6;14089:1;14083:4;14079:12;14069:22;;14136:1;14130:4;14126:12;14157:18;14147:81;;14213:4;14205:6;14201:17;14191:27;;14147:81;14275:2;14267:6;14264:14;14244:18;14241:38;14238:84;;;14294:18;;:::i;:::-;14238:84;14059:269;14008:320;;;:::o;14334:182::-;14474:34;14470:1;14462:6;14458:14;14451:58;14334:182;:::o;14522:366::-;14664:3;14685:67;14749:2;14744:3;14685:67;:::i;:::-;14678:74;;14761:93;14850:3;14761:93;:::i;:::-;14879:2;14874:3;14870:12;14863:19;;14522:366;;;:::o;14894:419::-;15060:4;15098:2;15087:9;15083:18;15075:26;;15147:9;15141:4;15137:20;15133:1;15122:9;15118:17;15111:47;15175:131;15301:4;15175:131;:::i;:::-;15167:139;;14894:419;;;:::o;15319:227::-;15459:34;15455:1;15447:6;15443:14;15436:58;15528:10;15523:2;15515:6;15511:15;15504:35;15319:227;:::o;15552:366::-;15694:3;15715:67;15779:2;15774:3;15715:67;:::i;:::-;15708:74;;15791:93;15880:3;15791:93;:::i;:::-;15909:2;15904:3;15900:12;15893:19;;15552:366;;;:::o;15924:419::-;16090:4;16128:2;16117:9;16113:18;16105:26;;16177:9;16171:4;16167:20;16163:1;16152:9;16148:17;16141:47;16205:131;16331:4;16205:131;:::i;:::-;16197:139;;15924:419;;;:::o;16349:180::-;16397:77;16394:1;16387:88;16494:4;16491:1;16484:15;16518:4;16515:1;16508:15;16535:191;16575:4;16595:20;16613:1;16595:20;:::i;:::-;16590:25;;16629:20;16647:1;16629:20;:::i;:::-;16624:25;;16668:1;16665;16662:8;16659:34;;;16673:18;;:::i;:::-;16659:34;16718:1;16715;16711:9;16703:17;;16535:191;;;;:::o;16732:305::-;16772:3;16791:20;16809:1;16791:20;:::i;:::-;16786:25;;16825:20;16843:1;16825:20;:::i;:::-;16820:25;;16979:1;16911:66;16907:74;16904:1;16901:81;16898:107;;;16985:18;;:::i;:::-;16898:107;17029:1;17026;17022:9;17015:16;;16732:305;;;;:::o;17043:348::-;17083:7;17106:20;17124:1;17106:20;:::i;:::-;17101:25;;17140:20;17158:1;17140:20;:::i;:::-;17135:25;;17328:1;17260:66;17256:74;17253:1;17250:81;17245:1;17238:9;17231:17;17227:105;17224:131;;;17335:18;;:::i;:::-;17224:131;17383:1;17380;17376:9;17365:20;;17043:348;;;;:::o;17397:180::-;17445:77;17442:1;17435:88;17542:4;17539:1;17532:15;17566:4;17563:1;17556:15;17583:185;17623:1;17640:20;17658:1;17640:20;:::i;:::-;17635:25;;17674:20;17692:1;17674:20;:::i;:::-;17669:25;;17713:1;17703:35;;17718:18;;:::i;:::-;17703:35;17760:1;17757;17753:9;17748:14;;17583:185;;;;:::o;17774:332::-;17895:4;17933:2;17922:9;17918:18;17910:26;;17946:71;18014:1;18003:9;17999:17;17990:6;17946:71;:::i;:::-;18027:72;18095:2;18084:9;18080:18;18071:6;18027:72;:::i;:::-;17774:332;;;;;:::o;18112:137::-;18166:5;18197:6;18191:13;18182:22;;18213:30;18237:5;18213:30;:::i;:::-;18112:137;;;;:::o;18255:345::-;18322:6;18371:2;18359:9;18350:7;18346:23;18342:32;18339:119;;;18377:79;;:::i;:::-;18339:119;18497:1;18522:61;18575:7;18566:6;18555:9;18551:22;18522:61;:::i;:::-;18512:71;;18468:125;18255:345;;;;:::o;18606:224::-;18746:34;18742:1;18734:6;18730:14;18723:58;18815:7;18810:2;18802:6;18798:15;18791:32;18606:224;:::o;18836:366::-;18978:3;18999:67;19063:2;19058:3;18999:67;:::i;:::-;18992:74;;19075:93;19164:3;19075:93;:::i;:::-;19193:2;19188:3;19184:12;19177:19;;18836:366;;;:::o;19208:419::-;19374:4;19412:2;19401:9;19397:18;19389:26;;19461:9;19455:4;19451:20;19447:1;19436:9;19432:17;19425:47;19489:131;19615:4;19489:131;:::i;:::-;19481:139;;19208:419;;;:::o;19633:180::-;19681:77;19678:1;19671:88;19778:4;19775:1;19768:15;19802:4;19799:1;19792:15;19819:233;19858:3;19881:24;19899:5;19881:24;:::i;:::-;19872:33;;19927:66;19920:5;19917:77;19914:103;;;19997:18;;:::i;:::-;19914:103;20044:1;20037:5;20033:13;20026:20;;19819:233;;;:::o;20058:225::-;20198:34;20194:1;20186:6;20182:14;20175:58;20267:8;20262:2;20254:6;20250:15;20243:33;20058:225;:::o;20289:366::-;20431:3;20452:67;20516:2;20511:3;20452:67;:::i;:::-;20445:74;;20528:93;20617:3;20528:93;:::i;:::-;20646:2;20641:3;20637:12;20630:19;;20289:366;;;:::o;20661:419::-;20827:4;20865:2;20854:9;20850:18;20842:26;;20914:9;20908:4;20904:20;20900:1;20889:9;20885:17;20878:47;20942:131;21068:4;20942:131;:::i;:::-;20934:139;;20661:419;;;:::o;21086:223::-;21226:34;21222:1;21214:6;21210:14;21203:58;21295:6;21290:2;21282:6;21278:15;21271:31;21086:223;:::o;21315:366::-;21457:3;21478:67;21542:2;21537:3;21478:67;:::i;:::-;21471:74;;21554:93;21643:3;21554:93;:::i;:::-;21672:2;21667:3;21663:12;21656:19;;21315:366;;;:::o;21687:419::-;21853:4;21891:2;21880:9;21876:18;21868:26;;21940:9;21934:4;21930:20;21926:1;21915:9;21911:17;21904:47;21968:131;22094:4;21968:131;:::i;:::-;21960:139;;21687:419;;;:::o;22112:221::-;22252:34;22248:1;22240:6;22236:14;22229:58;22321:4;22316:2;22308:6;22304:15;22297:29;22112:221;:::o;22339:366::-;22481:3;22502:67;22566:2;22561:3;22502:67;:::i;:::-;22495:74;;22578:93;22667:3;22578:93;:::i;:::-;22696:2;22691:3;22687:12;22680:19;;22339:366;;;:::o;22711:419::-;22877:4;22915:2;22904:9;22900:18;22892:26;;22964:9;22958:4;22954:20;22950:1;22939:9;22935:17;22928:47;22992:131;23118:4;22992:131;:::i;:::-;22984:139;;22711:419;;;:::o;23136:228::-;23276:34;23272:1;23264:6;23260:14;23253:58;23345:11;23340:2;23332:6;23328:15;23321:36;23136:228;:::o;23370:366::-;23512:3;23533:67;23597:2;23592:3;23533:67;:::i;:::-;23526:74;;23609:93;23698:3;23609:93;:::i;:::-;23727:2;23722:3;23718:12;23711:19;;23370:366;;;:::o;23742:419::-;23908:4;23946:2;23935:9;23931:18;23923:26;;23995:9;23989:4;23985:20;23981:1;23970:9;23966:17;23959:47;24023:131;24149:4;24023:131;:::i;:::-;24015:139;;23742:419;;;:::o;24167:175::-;24307:27;24303:1;24295:6;24291:14;24284:51;24167:175;:::o;24348:366::-;24490:3;24511:67;24575:2;24570:3;24511:67;:::i;:::-;24504:74;;24587:93;24676:3;24587:93;:::i;:::-;24705:2;24700:3;24696:12;24689:19;;24348:366;;;:::o;24720:419::-;24886:4;24924:2;24913:9;24909:18;24901:26;;24973:9;24967:4;24963:20;24959:1;24948:9;24944:17;24937:47;25001:131;25127:4;25001:131;:::i;:::-;24993:139;;24720:419;;;:::o;25145:174::-;25285:26;25281:1;25273:6;25269:14;25262:50;25145:174;:::o;25325:366::-;25467:3;25488:67;25552:2;25547:3;25488:67;:::i;:::-;25481:74;;25564:93;25653:3;25564:93;:::i;:::-;25682:2;25677:3;25673:12;25666:19;;25325:366;;;:::o;25697:419::-;25863:4;25901:2;25890:9;25886:18;25878:26;;25950:9;25944:4;25940:20;25936:1;25925:9;25921:17;25914:47;25978:131;26104:4;25978:131;:::i;:::-;25970:139;;25697:419;;;:::o;26122:179::-;26262:31;26258:1;26250:6;26246:14;26239:55;26122:179;:::o;26307:366::-;26449:3;26470:67;26534:2;26529:3;26470:67;:::i;:::-;26463:74;;26546:93;26635:3;26546:93;:::i;:::-;26664:2;26659:3;26655:12;26648:19;;26307:366;;;:::o;26679:419::-;26845:4;26883:2;26872:9;26868:18;26860:26;;26932:9;26926:4;26922:20;26918:1;26907:9;26903:17;26896:47;26960:131;27086:4;26960:131;:::i;:::-;26952:139;;26679:419;;;:::o;27104:220::-;27244:34;27240:1;27232:6;27228:14;27221:58;27313:3;27308:2;27300:6;27296:15;27289:28;27104:220;:::o;27330:366::-;27472:3;27493:67;27557:2;27552:3;27493:67;:::i;:::-;27486:74;;27569:93;27658:3;27569:93;:::i;:::-;27687:2;27682:3;27678:12;27671:19;;27330:366;;;:::o;27702:419::-;27868:4;27906:2;27895:9;27891:18;27883:26;;27955:9;27949:4;27945:20;27941:1;27930:9;27926:17;27919:47;27983:131;28109:4;27983:131;:::i;:::-;27975:139;;27702:419;;;:::o;28127:143::-;28184:5;28215:6;28209:13;28200:22;;28231:33;28258:5;28231:33;:::i;:::-;28127:143;;;;:::o;28276:351::-;28346:6;28395:2;28383:9;28374:7;28370:23;28366:32;28363:119;;;28401:79;;:::i;:::-;28363:119;28521:1;28546:64;28602:7;28593:6;28582:9;28578:22;28546:64;:::i;:::-;28536:74;;28492:128;28276:351;;;;:::o;28633:85::-;28678:7;28707:5;28696:16;;28633:85;;;:::o;28724:158::-;28782:9;28815:61;28833:42;28842:32;28868:5;28842:32;:::i;:::-;28833:42;:::i;:::-;28815:61;:::i;:::-;28802:74;;28724:158;;;:::o;28888:147::-;28983:45;29022:5;28983:45;:::i;:::-;28978:3;28971:58;28888:147;;:::o;29041:114::-;29108:6;29142:5;29136:12;29126:22;;29041:114;;;:::o;29161:184::-;29260:11;29294:6;29289:3;29282:19;29334:4;29329:3;29325:14;29310:29;;29161:184;;;;:::o;29351:132::-;29418:4;29441:3;29433:11;;29471:4;29466:3;29462:14;29454:22;;29351:132;;;:::o;29489:108::-;29566:24;29584:5;29566:24;:::i;:::-;29561:3;29554:37;29489:108;;:::o;29603:179::-;29672:10;29693:46;29735:3;29727:6;29693:46;:::i;:::-;29771:4;29766:3;29762:14;29748:28;;29603:179;;;;:::o;29788:113::-;29858:4;29890;29885:3;29881:14;29873:22;;29788:113;;;:::o;29937:732::-;30056:3;30085:54;30133:5;30085:54;:::i;:::-;30155:86;30234:6;30229:3;30155:86;:::i;:::-;30148:93;;30265:56;30315:5;30265:56;:::i;:::-;30344:7;30375:1;30360:284;30385:6;30382:1;30379:13;30360:284;;;30461:6;30455:13;30488:63;30547:3;30532:13;30488:63;:::i;:::-;30481:70;;30574:60;30627:6;30574:60;:::i;:::-;30564:70;;30420:224;30407:1;30404;30400:9;30395:14;;30360:284;;;30364:14;30660:3;30653:10;;30061:608;;;29937:732;;;;:::o;30675:831::-;30938:4;30976:3;30965:9;30961:19;30953:27;;30990:71;31058:1;31047:9;31043:17;31034:6;30990:71;:::i;:::-;31071:80;31147:2;31136:9;31132:18;31123:6;31071:80;:::i;:::-;31198:9;31192:4;31188:20;31183:2;31172:9;31168:18;31161:48;31226:108;31329:4;31320:6;31226:108;:::i;:::-;31218:116;;31344:72;31412:2;31401:9;31397:18;31388:6;31344:72;:::i;:::-;31426:73;31494:3;31483:9;31479:19;31470:6;31426:73;:::i;:::-;30675:831;;;;;;;;:::o;31512:179::-;31652:31;31648:1;31640:6;31636:14;31629:55;31512:179;:::o;31697:366::-;31839:3;31860:67;31924:2;31919:3;31860:67;:::i;:::-;31853:74;;31936:93;32025:3;31936:93;:::i;:::-;32054:2;32049:3;32045:12;32038:19;;31697:366;;;:::o;32069:419::-;32235:4;32273:2;32262:9;32258:18;32250:26;;32322:9;32316:4;32312:20;32308:1;32297:9;32293:17;32286:47;32350:131;32476:4;32350:131;:::i;:::-;32342:139;;32069:419;;;:::o;32494:147::-;32595:11;32632:3;32617:18;;32494:147;;;;:::o;32647:114::-;;:::o;32767:398::-;32926:3;32947:83;33028:1;33023:3;32947:83;:::i;:::-;32940:90;;33039:93;33128:3;33039:93;:::i;:::-;33157:1;33152:3;33148:11;33141:18;;32767:398;;;:::o;33171:379::-;33355:3;33377:147;33520:3;33377:147;:::i;:::-;33370:154;;33541:3;33534:10;;33171:379;;;:::o;33556:245::-;33696:34;33692:1;33684:6;33680:14;33673:58;33765:28;33760:2;33752:6;33748:15;33741:53;33556:245;:::o;33807:366::-;33949:3;33970:67;34034:2;34029:3;33970:67;:::i;:::-;33963:74;;34046:93;34135:3;34046:93;:::i;:::-;34164:2;34159:3;34155:12;34148:19;;33807:366;;;:::o;34179:419::-;34345:4;34383:2;34372:9;34368:18;34360:26;;34432:9;34426:4;34422:20;34418:1;34407:9;34403:17;34396:47;34460:131;34586:4;34460:131;:::i;:::-;34452:139;;34179:419;;;:::o;34604:143::-;34661:5;34692:6;34686:13;34677:22;;34708:33;34735:5;34708:33;:::i;:::-;34604:143;;;;:::o;34753:351::-;34823:6;34872:2;34860:9;34851:7;34847:23;34843:32;34840:119;;;34878:79;;:::i;:::-;34840:119;34998:1;35023:64;35079:7;35070:6;35059:9;35055:22;35023:64;:::i;:::-;35013:74;;34969:128;34753:351;;;;:::o;35110:224::-;35250:34;35246:1;35238:6;35234:14;35227:58;35319:7;35314:2;35306:6;35302:15;35295:32;35110:224;:::o;35340:366::-;35482:3;35503:67;35567:2;35562:3;35503:67;:::i;:::-;35496:74;;35579:93;35668:3;35579:93;:::i;:::-;35697:2;35692:3;35688:12;35681:19;;35340:366;;;:::o;35712:419::-;35878:4;35916:2;35905:9;35901:18;35893:26;;35965:9;35959:4;35955:20;35951:1;35940:9;35936:17;35929:47;35993:131;36119:4;35993:131;:::i;:::-;35985:139;;35712:419;;;:::o;36137:222::-;36277:34;36273:1;36265:6;36261:14;36254:58;36346:5;36341:2;36333:6;36329:15;36322:30;36137:222;:::o;36365:366::-;36507:3;36528:67;36592:2;36587:3;36528:67;:::i;:::-;36521:74;;36604:93;36693:3;36604:93;:::i;:::-;36722:2;36717:3;36713:12;36706:19;;36365:366;;;:::o;36737:419::-;36903:4;36941:2;36930:9;36926:18;36918:26;;36990:9;36984:4;36980:20;36976:1;36965:9;36961:17;36954:47;37018:131;37144:4;37018:131;:::i;:::-;37010:139;;36737:419;;;:::o;37162:225::-;37302:34;37298:1;37290:6;37286:14;37279:58;37371:8;37366:2;37358:6;37354:15;37347:33;37162:225;:::o;37393:366::-;37535:3;37556:67;37620:2;37615:3;37556:67;:::i;:::-;37549:74;;37632:93;37721:3;37632:93;:::i;:::-;37750:2;37745:3;37741:12;37734:19;;37393:366;;;:::o;37765:419::-;37931:4;37969:2;37958:9;37954:18;37946:26;;38018:9;38012:4;38008:20;38004:1;37993:9;37989:17;37982:47;38046:131;38172:4;38046:131;:::i;:::-;38038:139;;37765:419;;;:::o;38190:807::-;38439:4;38477:3;38466:9;38462:19;38454:27;;38491:71;38559:1;38548:9;38544:17;38535:6;38491:71;:::i;:::-;38572:72;38640:2;38629:9;38625:18;38616:6;38572:72;:::i;:::-;38654:80;38730:2;38719:9;38715:18;38706:6;38654:80;:::i;:::-;38744;38820:2;38809:9;38805:18;38796:6;38744:80;:::i;:::-;38834:73;38902:3;38891:9;38887:19;38878:6;38834:73;:::i;:::-;38917;38985:3;38974:9;38970:19;38961:6;38917:73;:::i;:::-;38190:807;;;;;;;;;:::o;39003:663::-;39091:6;39099;39107;39156:2;39144:9;39135:7;39131:23;39127:32;39124:119;;;39162:79;;:::i;:::-;39124:119;39282:1;39307:64;39363:7;39354:6;39343:9;39339:22;39307:64;:::i;:::-;39297:74;;39253:128;39420:2;39446:64;39502:7;39493:6;39482:9;39478:22;39446:64;:::i;:::-;39436:74;;39391:129;39559:2;39585:64;39641:7;39632:6;39621:9;39617:22;39585:64;:::i;:::-;39575:74;;39530:129;39003:663;;;;;:::o

Swarm Source

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