ETH Price: $3,272.45 (+0.71%)
Gas: 1 Gwei

Token

Z5 (Z5Token)
 

Overview

Max Total Supply

1,000,000 Z5Token

Holders

17

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
0.000000000000000002 Z5Token

Value
$0.00
0x4d99ff6374217760a7051398b28ff17c67cbd579
Loading...
Loading
Loading...
Loading
Loading...
Loading

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

Contract Source Code Verified (Exact Match)

Contract Name:
Z1Token

Compiler Version
v0.8.16+commit.07a7930e

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: Unlicensed


// File: contracts/interfaces/ISaltzYard.sol


pragma solidity ^0.8.9;
interface ISaltzYard {
    
    function lastTimeRewardApplicable() external view returns (uint);

    function rewardPerToken() external view returns (uint);

    function stake(uint _amount) external ;
    
    function withdraw(uint _amount) external ;

    function earned(address _account) external view returns (uint) ;

    function getReward() external  ;
    
    function setRewardsDuration(uint _duration) external ;

    function notifyRewardAmount( uint _amount ) external ;

}
// File: contracts/zToken.sol



pragma solidity ^0.8.16;


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

pragma solidity ^0.8.9;
interface IVault {

function setUpdater(address _updater) external;
}

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        return a + b;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return a - b;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        return a * b;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return a / b;
    }

    function sub(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b <= a, errorMessage);
            return a - b;
        }
    }

    function div(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a / b;
        }
    }
}

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

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

abstract contract Ownable is Context {
    address internal _owner;
    address private _previousOwner;

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

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

    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 {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

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

interface IERC20Metadata is IERC20 {
    function name() external view returns (string memory);

    function symbol() external view returns (string memory);

    function decimals() external view returns (uint8);
}

// File: Vault.sol

pragma solidity ^0.8.9;

contract Vault is Ownable {
    IERC20 tokenAddress;
    address public updater;

    //address public owner;
    constructor(address _token) {
        tokenAddress = IERC20(_token);
    }

    modifier onlyUpdater() {
        require(msg.sender == updater, "you are not the updater");
        _;
    }

    function setUpdater(address _updater) public onlyOwner {
        updater = _updater;
    }

    function withdraw(uint amount, address _user) public onlyUpdater {
        tokenAddress.transfer(_user, amount);
    }
}

contract ERC20 is Context, Ownable, IERC20, IERC20Metadata {
    using SafeMath for uint256;

    mapping(address => uint256) private _balances;

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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

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

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

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

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

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

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

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

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

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

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

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

    function decreaseAllowance(
        address spender,
        uint256 subtractedValue
    ) public virtual returns (bool) {
        _approve(
            _msgSender(),
            spender,
            _allowances[_msgSender()][spender].sub(
                subtractedValue,
                "ERC20: decreased allowance below zero"
            )
        );
        return true;
    }

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

        _beforeTokenTransfer(sender, recipient, amount);

        _balances[sender] = _balances[sender].sub(
            amount,
            "ERC20: transfer amount exceeds balance"
        );
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
    }

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

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

        _totalSupply = _totalSupply.add(amount);
        _balances[account] = _balances[account].add(amount);
        emit Transfer(address(0), account, amount);
    }

    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

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

        _balances[account] = _balances[account].sub(
            amount,
            "ERC20: burn amount exceeds balance"
        );
        _totalSupply = _totalSupply.sub(amount);
        emit Transfer(account, address(0), amount);
    }

    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

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

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

interface IUniswapV2Pair {
    function factory() external view returns (address);
}

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

    function WETH() external pure returns (address);

    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    )
        external
        payable
        returns (uint amountToken, uint amountETH, uint liquidity);
}

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








contract Z1Token is ERC20 {
    using SafeMath for uint256;

    mapping(address => bool) private _isExcludedFromFee;
    mapping(address => bool) public isRegistered;
    mapping(uint8 => uint16) public commision; // for referals
    mapping(address => address) public parent;

    address[] public users;

    address public devWallet;
    address public vault;

    address constant _burnAddress = 0x000000000000000000000000000000000000dEaD;

    uint16 private totalTax = 1000;

    // percentage of totalTax(after referrals distributed , if any) that goes into burning mechanism
    uint16 private taxBurn = 4000;

    // percentage of transaction redistributed to all holders
    uint16 private taxReward = 3500;

    // percentage of transaction goes to developers
    uint16 private taxDev = 2500;

    uint256 public currentSupply;

    uint256 public transactionCount=1;

    IUniswapV2Router02 public uniswapV2Router;
    IVault Ivault;
    address public uniswapV2Pair;

    bool public tradingEnabled = false;


    uint256 public totalBurnt;
    uint256 public totalVaultSupply;
    uint256 private previousVaultSupply;

    uint256 public txDayLimit;

    ISaltzYard IsaltzYard;
    address saltzYard;

    struct ValuesOfAmount {
        uint256 amount;
        uint256 whaleFee;
        uint256 totalTax;
        uint256 transferAmount;
    }

    event UserRegistered(
        address indexed user,
        address indexed referer,
        uint256 timestamp
    );
    event RefTx(uint8 refIndex, address referer, uint256 amount);
    event Taxes(uint256 burnTax, uint256 devTax, uint256 rewardstax);
    event Burn(address account, uint256 amount, uint256 timestamp);

    constructor() ERC20("Z5", "Z5Token") {
        devWallet = 0x90b0813cb61E9729C7d226A0cb3C7b62F70A68a5; //my 3rd wallet

        _isExcludedFromFee[address(this)] = true;

        _mint(owner(), 1000000 * 10 ** decimals());

        currentSupply = totalSupply();

        includeAndExcludeFromFee(address(this), true);

        vault = address(new Vault(address(this)));

        Ivault = IVault(vault);

        commision[0] = 500;
        commision[1] = 300;
        commision[2] = 200;
        commision[3] = 100;
        commision[4] = 50;
    }

    function includeAndExcludeFromFee(
        address account,
        bool value
    ) public onlyOwner {
        _isExcludedFromFee[account] = value;
    }

    function isExcludedFromFee(address account) public view returns (bool) {
        return _isExcludedFromFee[account];
    }

    function enableTrading() external onlyOwner {
        tradingEnabled = true;
    }

    function setdevWallet(address _addr) external onlyOwner {
        devWallet = _addr;
    }

    receive() external payable {}

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

        if (from != owner() && !tradingEnabled) {
            require(tradingEnabled, "Trading is not enabled yet");
        }


        bool takeFee = true;
        if (_isExcludedFromFee[from] || _isExcludedFromFee[to]) {
            super._transfer(from, to, amount);
            takeFee = false;
        } else {
            ValuesOfAmount memory values = getValues(
                amount,
                _isExcludedFromFee[from],
                _isExcludedFromFee[to]
            );

            super._transfer(from, to, values.transferAmount); // amount transfer to recepient

            getTaxTransfer(values, from);
            transactionCount++;
        }
    }

    function getValues(
        uint256 amount,
        bool deductTransferFee,
        bool sender
    ) private view returns (ValuesOfAmount memory) {
        ValuesOfAmount memory values;
        values.amount = amount;
        if (!deductTransferFee && !sender) {
            // calculate fee
            uint16 taxWhale_ = taxWhale(values.amount);
            values.whaleFee = calculateTax(values.amount, taxWhale_);
            uint256 tempTotalTax = calculateTax(
                (values.amount - values.whaleFee),
                totalTax
            );
            values.totalTax = tempTotalTax + values.whaleFee;
            values.transferAmount = values.amount - values.totalTax;
        } else {
            values.whaleFee = 0;
            values.totalTax = 0;
            values.transferAmount = values.amount;
        }
        return values;
    }

    function calculateTax(
        uint256 amount,
        uint16 tax
    ) private pure returns (uint256) {
        return (amount * tax) / (10 ** 4);
    }

    function taxWhale(uint256 _amount) internal view returns (uint16) {
        uint256 i = (_amount * 100) / currentSupply;
        uint16 whaleTax;
        if (i < 1) {
            whaleTax = 0;
        } else if (i >= 1 && i < 2) {
            whaleTax = 500;
        } else if (i >= 2 && i < 3) {
            whaleTax = 1000;
        } else if (i >= 3 && i < 4) {
            whaleTax = 1500;
        } else if (i >= 4 && i < 5) {
            whaleTax = 2000;
        } else if (i >= 5 && i < 6) {
            whaleTax = 2500;
        } else if (i >= 6 && i < 7) {
            whaleTax = 3000;
        } else if (i >= 7 && i < 8) {
            whaleTax = 3500;
        } else if (i >= 8 && i < 9) {
            whaleTax = 4000;
        } else if (i >= 9 && i < 10) {
            whaleTax = 4500;
        } else if (i >= 10) {
            whaleTax = 5000;
        }
        return whaleTax;
    }

    function setRouter(address _router, address _pair) public onlyOwner {
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(_router);
        uniswapV2Pair = _pair;

        uniswapV2Router = _uniswapV2Router;
    }

    function getParent(address user) private view returns (address referer) {
        return parent[user];
    }

    function registerUser(address _user, address _referer) public {
        if (isRegistered[_user] == false) {
            _register(_user, _referer);
            emit UserRegistered(_user, _referer, block.timestamp);
        }
    }

    function _register(address _user, address _referer) internal {
        parent[_user] = _referer;
        isRegistered[_user] = true;
        users.push(_user);
    }

    function getTaxTransfer(
        ValuesOfAmount memory values,
        address sender
    ) private {
        uint8 i = 0;
        address parentAddress = getParent(sender);
        while (parentAddress != address(0) && i <= 4) {
            uint256 tAmount = calculateTax(values.totalTax, commision[i]);
            super._transfer(sender, parentAddress, tAmount); // sending commision to parents    += tAmount;
            values.totalTax -= tAmount;
            emit RefTx(i, parentAddress, tAmount);
            parentAddress = getParent(parentAddress);
            i++;
        }

        uint256 BurnFee = calculateTax(values.totalTax, taxBurn);
        uint256 RewardFee = calculateTax(values.totalTax, taxReward);
        uint256 DevFee = calculateTax(values.totalTax, taxDev);

        super._transfer(sender, devWallet, DevFee); //dev Wallet

        super._transfer(sender, vault, RewardFee); //to reward wallet
        totalVaultSupply += RewardFee;

        super._transfer(sender, _burnAddress, BurnFee); //burning tokens
        currentSupply -= BurnFee;
        emit Burn(sender, BurnFee, block.timestamp);

        if (transactionCount % getTrnx() == 0) {
            uint _amount = totalVaultSupply - previousVaultSupply; //recent changes
            IsaltzYard.notifyRewardAmount(_amount);
            previousVaultSupply = totalVaultSupply;
        }

        emit Taxes(BurnFee, DevFee, RewardFee);
    }

    function transferRewardToYard() external onlyOwner {
        uint _amount = totalVaultSupply - previousVaultSupply; //recent changes
        IsaltzYard.notifyRewardAmount(_amount);
        previousVaultSupply = totalVaultSupply;
    }

    function addYard(address _yard) external onlyOwner {
        saltzYard = _yard;
        IsaltzYard = ISaltzYard(_yard);
        Ivault.setUpdater(saltzYard);
    }

    function updateTrnx(uint256 _trnx) public onlyOwner {
        txDayLimit = _trnx;
    }

    function getTrnx() public view returns (uint256) {
        return txDayLimit;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"Burn","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"refIndex","type":"uint8"},{"indexed":false,"internalType":"address","name":"referer","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"RefTx","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"burnTax","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"devTax","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"rewardstax","type":"uint256"}],"name":"Taxes","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"address","name":"referer","type":"address"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"UserRegistered","type":"event"},{"inputs":[{"internalType":"address","name":"_yard","type":"address"}],"name":"addYard","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":[{"internalType":"uint8","name":"","type":"uint8"}],"name":"commision","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentSupply","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":[],"name":"devWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getTrnx","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"includeAndExcludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isRegistered","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"parent","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"},{"internalType":"address","name":"_referer","type":"address"}],"name":"registerUser","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_router","type":"address"},{"internalType":"address","name":"_pair","type":"address"}],"name":"setRouter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_addr","type":"address"}],"name":"setdevWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalBurnt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalVaultSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"transactionCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferRewardToYard","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"txDayLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_trnx","type":"uint256"}],"name":"updateTrnx","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"users","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"vault","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526103e8600d60146101000a81548161ffff021916908361ffff160217905550610fa0600d60166101000a81548161ffff021916908361ffff160217905550610dac600d60186101000a81548161ffff021916908361ffff1602179055506109c4600d601a6101000a81548161ffff021916908361ffff1602179055506001600f556000601260146101000a81548160ff021916908315150217905550348015620000ad57600080fd5b506040518060400160405280600281526020017f5a350000000000000000000000000000000000000000000000000000000000008152506040518060400160405280600781526020017f5a35546f6b656e000000000000000000000000000000000000000000000000008152506200012a6200051060201b60201c565b6000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a38160059081620001f5919062000a93565b50806006908162000207919062000a93565b5050507390b0813cb61e9729c7d226a0cb3c7b62f70a68a5600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000305620002cb6200051860201b60201c565b620002db6200054160201b60201c565b600a620002e9919062000d0a565b620f4240620002f9919062000d5b565b6200054a60201b60201c565b62000315620006fa60201b60201c565b600e819055506200032e3060016200070460201b60201c565b306040516200033d906200080b565b62000349919062000e01565b604051809103906000f08015801562000366573d6000803e3d6000fd5b50600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506101f4600960008060ff16815260200190815260200160002060006101000a81548161ffff021916908361ffff16021790555061012c60096000600160ff16815260200190815260200160002060006101000a81548161ffff021916908361ffff16021790555060c860096000600260ff16815260200190815260200160002060006101000a81548161ffff021916908361ffff160217905550606460096000600360ff16815260200190815260200160002060006101000a81548161ffff021916908361ffff160217905550603260096000600460ff16815260200190815260200160002060006101000a81548161ffff021916908361ffff16021790555062000f7c565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60006012905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620005bc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620005b39062000e7f565b60405180910390fd5b620005d060008383620007ee60201b60201c565b620005ec81600454620007f360201b62001a0a1790919060201c565b6004819055506200064b81600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054620007f360201b62001a0a1790919060201c565b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620006ee919062000eb2565b60405180910390a35050565b6000600454905090565b620007146200051060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff166200073a6200051860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff161462000793576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200078a9062000f1f565b60405180910390fd5b80600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b505050565b6000818362000803919062000f41565b905092915050565b610b94806200461683390190565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200089b57607f821691505b602082108103620008b157620008b062000853565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026200091b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620008dc565b620009278683620008dc565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620009746200096e62000968846200093f565b62000949565b6200093f565b9050919050565b6000819050919050565b620009908362000953565b620009a86200099f826200097b565b848454620008e9565b825550505050565b600090565b620009bf620009b0565b620009cc81848462000985565b505050565b5b81811015620009f457620009e8600082620009b5565b600181019050620009d2565b5050565b601f82111562000a435762000a0d81620008b7565b62000a1884620008cc565b8101602085101562000a28578190505b62000a4062000a3785620008cc565b830182620009d1565b50505b505050565b600082821c905092915050565b600062000a686000198460080262000a48565b1980831691505092915050565b600062000a83838362000a55565b9150826002028217905092915050565b62000a9e8262000819565b67ffffffffffffffff81111562000aba5762000ab962000824565b5b62000ac6825462000882565b62000ad3828285620009f8565b600060209050601f83116001811462000b0b576000841562000af6578287015190505b62000b02858262000a75565b86555062000b72565b601f19841662000b1b86620008b7565b60005b8281101562000b455784890151825560018201915060208501945060208101905062000b1e565b8683101562000b65578489015162000b61601f89168262000a55565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000c085780860481111562000be05762000bdf62000b7a565b5b600185161562000bf05780820291505b808102905062000c008562000ba9565b945062000bc0565b94509492505050565b60008262000c23576001905062000cf6565b8162000c33576000905062000cf6565b816001811462000c4c576002811462000c575762000c8d565b600191505062000cf6565b60ff84111562000c6c5762000c6b62000b7a565b5b8360020a91508482111562000c865762000c8562000b7a565b5b5062000cf6565b5060208310610133831016604e8410600b841016171562000cc75782820a90508381111562000cc15762000cc062000b7a565b5b62000cf6565b62000cd6848484600162000bb6565b9250905081840481111562000cf05762000cef62000b7a565b5b81810290505b9392505050565b600060ff82169050919050565b600062000d17826200093f565b915062000d248362000cfd565b925062000d537fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000c11565b905092915050565b600062000d68826200093f565b915062000d75836200093f565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000db15762000db062000b7a565b5b828202905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000de98262000dbc565b9050919050565b62000dfb8162000ddc565b82525050565b600060208201905062000e18600083018462000df0565b92915050565b600082825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062000e67601f8362000e1e565b915062000e748262000e2f565b602082019050919050565b6000602082019050818103600083015262000e9a8162000e58565b9050919050565b62000eac816200093f565b82525050565b600060208201905062000ec9600083018462000ea1565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600062000f0760208362000e1e565b915062000f148262000ecf565b602082019050919050565b6000602082019050818103600083015262000f3a8162000ef8565b9050919050565b600062000f4e826200093f565b915062000f5b836200093f565b925082820190508082111562000f765762000f7562000b7a565b5b92915050565b61368a8062000f8c6000396000f3fe6080604052600436106102285760003560e01c8063715018a611610123578063a9059cbb116100ab578063da7e2c7f1161006f578063da7e2c7f1461082d578063dd62ed3e14610856578063f1f9d8c914610893578063f2fde38b146108d0578063fbfa77cf146108f95761022f565b8063a9059cbb14610748578063b77bf60014610785578063c3c5a547146107b0578063d2fb3ddc146107ed578063d62f5dc0146108165761022f565b80638ea5220f116100f25780638ea5220f1461066157806395d89b411461068c57806395f4d088146106b7578063966ff650146106e0578063a457c2d71461070b5761022f565b8063715018a6146105dd578063771282f6146105f45780638a8c523c1461061f5780638da5cb5b146106365761022f565b8063365b98b2116101b15780634ada218b116101755780634ada218b146104e457806350e821831461050f5780635342acb41461053a5780635c7bf8e41461057757806370a08231146105a05761022f565b8063365b98b2146103eb57806339509351146104285780633d3dbdc71461046557806341d68b8f1461049057806349bd5a5e146104b95761022f565b806313daf283116101f857806313daf283146103025780631694505e1461032d57806318160ddd1461035857806323b872dd14610383578063313ce567146103c05761022f565b8062b5f123146102345780630354adb21461027157806306fdde031461029a578063095ea7b3146102c55761022f565b3661022f57005b600080fd5b34801561024057600080fd5b5061025b60048036038101906102569190612a33565b610924565b6040516102689190612a7d565b60405180910390f35b34801561027d57600080fd5b5061029860048036038101906102939190612af6565b610945565b005b3480156102a657600080fd5b506102af610a11565b6040516102bc9190612bc6565b60405180910390f35b3480156102d157600080fd5b506102ec60048036038101906102e79190612c1e565b610aa3565b6040516102f99190612c79565b60405180910390f35b34801561030e57600080fd5b50610317610ac1565b6040516103249190612ca3565b60405180910390f35b34801561033957600080fd5b50610342610ac7565b60405161034f9190612d1d565b60405180910390f35b34801561036457600080fd5b5061036d610aed565b60405161037a9190612ca3565b60405180910390f35b34801561038f57600080fd5b506103aa60048036038101906103a59190612d38565b610af7565b6040516103b79190612c79565b60405180910390f35b3480156103cc57600080fd5b506103d5610bd0565b6040516103e29190612d9a565b60405180910390f35b3480156103f757600080fd5b50610412600480360381019061040d9190612db5565b610bd9565b60405161041f9190612df1565b60405180910390f35b34801561043457600080fd5b5061044f600480360381019061044a9190612c1e565b610c18565b60405161045c9190612c79565b60405180910390f35b34801561047157600080fd5b5061047a610ccb565b6040516104879190612ca3565b60405180910390f35b34801561049c57600080fd5b506104b760048036038101906104b29190612af6565b610cd5565b005b3480156104c557600080fd5b506104ce610ddd565b6040516104db9190612df1565b60405180910390f35b3480156104f057600080fd5b506104f9610e03565b6040516105069190612c79565b60405180910390f35b34801561051b57600080fd5b50610524610e16565b6040516105319190612ca3565b60405180910390f35b34801561054657600080fd5b50610561600480360381019061055c9190612e0c565b610e1c565b60405161056e9190612c79565b60405180910390f35b34801561058357600080fd5b5061059e60048036038101906105999190612db5565b610e72565b005b3480156105ac57600080fd5b506105c760048036038101906105c29190612e0c565b610ef8565b6040516105d49190612ca3565b60405180910390f35b3480156105e957600080fd5b506105f2610f41565b005b34801561060057600080fd5b5061060961107b565b6040516106169190612ca3565b60405180910390f35b34801561062b57600080fd5b50610634611081565b005b34801561064257600080fd5b5061064b61111a565b6040516106589190612df1565b60405180910390f35b34801561066d57600080fd5b50610676611143565b6040516106839190612df1565b60405180910390f35b34801561069857600080fd5b506106a1611169565b6040516106ae9190612bc6565b60405180910390f35b3480156106c357600080fd5b506106de60048036038101906106d99190612e0c565b6111fb565b005b3480156106ec57600080fd5b506106f56112bb565b6040516107029190612ca3565b60405180910390f35b34801561071757600080fd5b50610732600480360381019061072d9190612c1e565b6112c1565b60405161073f9190612c79565b60405180910390f35b34801561075457600080fd5b5061076f600480360381019061076a9190612c1e565b61138e565b60405161077c9190612c79565b60405180910390f35b34801561079157600080fd5b5061079a6113ac565b6040516107a79190612ca3565b60405180910390f35b3480156107bc57600080fd5b506107d760048036038101906107d29190612e0c565b6113b2565b6040516107e49190612c79565b60405180910390f35b3480156107f957600080fd5b50610814600480360381019061080f9190612e0c565b6113d2565b005b34801561082257600080fd5b5061082b611582565b005b34801561083957600080fd5b50610854600480360381019061084f9190612e65565b6116ab565b005b34801561086257600080fd5b5061087d60048036038101906108789190612af6565b611782565b60405161088a9190612ca3565b60405180910390f35b34801561089f57600080fd5b506108ba60048036038101906108b59190612e0c565b611809565b6040516108c79190612df1565b60405180910390f35b3480156108dc57600080fd5b506108f760048036038101906108f29190612e0c565b61183c565b005b34801561090557600080fd5b5061090e6119e4565b60405161091b9190612df1565b60405180910390f35b60096020528060005260406000206000915054906101000a900461ffff1681565b60001515600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151503610a0d576109a78282611a20565b8073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f05345a91f639184e946e5aac384b1e9f74ae9ab08d775a7deddb3180cebecb2342604051610a049190612ca3565b60405180910390a35b5050565b606060058054610a2090612ed4565b80601f0160208091040260200160405190810160405280929190818152602001828054610a4c90612ed4565b8015610a995780601f10610a6e57610100808354040283529160200191610a99565b820191906000526020600020905b815481529060010190602001808311610a7c57829003601f168201915b5050505050905090565b6000610ab7610ab0611b5d565b8484611b65565b6001905092915050565b60165481565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600454905090565b6000610b04848484611d2e565b610bc584610b10611b5d565b610bc08560405180606001604052806028815260200161360860289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610b76611b5d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120949092919063ffffffff16565b611b65565b600190509392505050565b60006012905090565b600b8181548110610be957600080fd5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610cc1610c25611b5d565b84610cbc8560036000610c36611b5d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a0a90919063ffffffff16565b611b65565b6001905092915050565b6000601654905090565b610cdd611b5d565b73ffffffffffffffffffffffffffffffffffffffff16610cfb61111a565b73ffffffffffffffffffffffffffffffffffffffff1614610d51576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d4890612f51565b60405180910390fd5b600082905081601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601260149054906101000a900460ff1681565b60145481565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b610e7a611b5d565b73ffffffffffffffffffffffffffffffffffffffff16610e9861111a565b73ffffffffffffffffffffffffffffffffffffffff1614610eee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ee590612f51565b60405180910390fd5b8060168190555050565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610f49611b5d565b73ffffffffffffffffffffffffffffffffffffffff16610f6761111a565b73ffffffffffffffffffffffffffffffffffffffff1614610fbd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fb490612f51565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600e5481565b611089611b5d565b73ffffffffffffffffffffffffffffffffffffffff166110a761111a565b73ffffffffffffffffffffffffffffffffffffffff16146110fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f490612f51565b60405180910390fd5b6001601260146101000a81548160ff021916908315150217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60606006805461117890612ed4565b80601f01602080910402602001604051908101604052809291908181526020018280546111a490612ed4565b80156111f15780601f106111c6576101008083540402835291602001916111f1565b820191906000526020600020905b8154815290600101906020018083116111d457829003601f168201915b5050505050905090565b611203611b5d565b73ffffffffffffffffffffffffffffffffffffffff1661122161111a565b73ffffffffffffffffffffffffffffffffffffffff1614611277576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161126e90612f51565b60405180910390fd5b80600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60135481565b60006113846112ce611b5d565b8461137f8560405180606001604052806025815260200161363060259139600360006112f8611b5d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120949092919063ffffffff16565b611b65565b6001905092915050565b60006113a261139b611b5d565b8484611d2e565b6001905092915050565b600f5481565b60086020528060005260406000206000915054906101000a900460ff1681565b6113da611b5d565b73ffffffffffffffffffffffffffffffffffffffff166113f861111a565b73ffffffffffffffffffffffffffffffffffffffff161461144e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144590612f51565b60405180910390fd5b80601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639d54f419601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b815260040161154d9190612df1565b600060405180830381600087803b15801561156757600080fd5b505af115801561157b573d6000803e3d6000fd5b5050505050565b61158a611b5d565b73ffffffffffffffffffffffffffffffffffffffff166115a861111a565b73ffffffffffffffffffffffffffffffffffffffff16146115fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115f590612f51565b60405180910390fd5b60006015546014546116109190612fa0565b9050601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633c6b16ab826040518263ffffffff1660e01b815260040161166d9190612ca3565b600060405180830381600087803b15801561168757600080fd5b505af115801561169b573d6000803e3d6000fd5b5050505060145460158190555050565b6116b3611b5d565b73ffffffffffffffffffffffffffffffffffffffff166116d161111a565b73ffffffffffffffffffffffffffffffffffffffff1614611727576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171e90612f51565b60405180910390fd5b80600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600a6020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611844611b5d565b73ffffffffffffffffffffffffffffffffffffffff1661186261111a565b73ffffffffffffffffffffffffffffffffffffffff16146118b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118af90612f51565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611927576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161191e90613046565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008183611a189190613066565b905092915050565b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600b829080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611bd4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bcb9061310c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611c43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c3a9061319e565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611d219190612ca3565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611d9d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d9490613230565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611e0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e03906132c2565b60405180910390fd5b60008111611e4f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e4690613354565b60405180910390fd5b611e5761111a565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611e9f5750601260149054906101000a900460ff16155b15611ef457601260149054906101000a900460ff16611ef3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eea906133c0565b60405180910390fd5b5b600060019050600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611f9b5750600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611fb457611fab8484846120e9565b6000905061208e565b600061205983600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612380565b905061206a858583606001516120e9565b6120748186612471565b600f6000815480929190612087906133e0565b9190505550505b50505050565b60008383111582906120dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120d39190612bc6565b60405180910390fd5b5082840390509392505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612158576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161214f90613230565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036121c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121be906132c2565b60405180910390fd5b6121d28383836127c3565b61223e816040518060600160405280602681526020016135e260269139600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120949092919063ffffffff16565b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506122d381600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a0a90919063ffffffff16565b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516123739190612ca3565b60405180910390a3505050565b6123886129cd565b6123906129cd565b84816000018181525050831580156123a6575082155b156124415760006123ba82600001516127c8565b90506123ca82600001518261293d565b8260200181815250506000612402836020015184600001516123ec9190612fa0565b600d60149054906101000a900461ffff1661293d565b90508260200151816124149190613066565b836040018181525050826040015183600001516124319190612fa0565b8360600181815250505050612466565b6000816020018181525050600081604001818152505080600001518160600181815250505b809150509392505050565b60008061247d83612964565b90505b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141580156124c1575060048260ff1611155b1561257d5760006124fd8560400151600960008660ff1660ff16815260200190815260200160002060009054906101000a900461ffff1661293d565b905061250a8483836120e9565b808560400181815161251c9190612fa0565b915081815250507ff74199aa91980d1f5c2bc26886032b728856d5c22b748808ce3c6a910e5f537683838360405161255693929190613428565b60405180910390a161256782612964565b915082806125749061345f565b93505050612480565b600061259d8560400151600d60169054906101000a900461ffff1661293d565b905060006125bf8660400151600d60189054906101000a900461ffff1661293d565b905060006125e18760400151600d601a9054906101000a900461ffff1661293d565b905061261086600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836120e9565b61263d86600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846120e9565b816014600082825461264f9190613066565b925050819055506126638661dead856120e9565b82600e60008282546126759190612fa0565b925050819055507f49995e5dd6158cf69ad3e9777c46755a1a826a446c6416992167462dad033b2a8684426040516126af93929190613488565b60405180910390a160006126c1610ccb565b600f546126ce91906134ee565b0361277f5760006015546014546126e59190612fa0565b9050601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633c6b16ab826040518263ffffffff1660e01b81526004016127429190612ca3565b600060405180830381600087803b15801561275c57600080fd5b505af1158015612770573d6000803e3d6000fd5b50505050601454601581905550505b7f01db31d63c03dd2a4c9e29e54bf1375e47f0aabc07da1d4d013ed16535de54328382846040516127b29392919061351f565b60405180910390a150505050505050565b505050565b600080600e546064846127db9190613556565b6127e591906135b0565b9050600060018210156127fb5760009050612933565b6001821015801561280c5750600282105b1561281b576101f49050612932565b6002821015801561282c5750600382105b1561283b576103e89050612931565b6003821015801561284c5750600482105b1561285b576105dc9050612930565b6004821015801561286c5750600582105b1561287b576107d0905061292f565b6005821015801561288c5750600682105b1561289b576109c4905061292e565b600682101580156128ac5750600782105b156128bb57610bb8905061292d565b600782101580156128cc5750600882105b156128db57610dac905061292c565b600882101580156128ec5750600982105b156128fb57610fa0905061292b565b6009821015801561290c5750600a82105b1561291b57611194905061292a565b600a82106129295761138890505b5b5b5b5b5b5b5b5b5b5b8092505050919050565b60006127108261ffff16846129529190613556565b61295c91906135b0565b905092915050565b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6040518060800160405280600081526020016000815260200160008152602001600081525090565b600080fd5b600060ff82169050919050565b612a10816129fa565b8114612a1b57600080fd5b50565b600081359050612a2d81612a07565b92915050565b600060208284031215612a4957612a486129f5565b5b6000612a5784828501612a1e565b91505092915050565b600061ffff82169050919050565b612a7781612a60565b82525050565b6000602082019050612a926000830184612a6e565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612ac382612a98565b9050919050565b612ad381612ab8565b8114612ade57600080fd5b50565b600081359050612af081612aca565b92915050565b60008060408385031215612b0d57612b0c6129f5565b5b6000612b1b85828601612ae1565b9250506020612b2c85828601612ae1565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612b70578082015181840152602081019050612b55565b60008484015250505050565b6000601f19601f8301169050919050565b6000612b9882612b36565b612ba28185612b41565b9350612bb2818560208601612b52565b612bbb81612b7c565b840191505092915050565b60006020820190508181036000830152612be08184612b8d565b905092915050565b6000819050919050565b612bfb81612be8565b8114612c0657600080fd5b50565b600081359050612c1881612bf2565b92915050565b60008060408385031215612c3557612c346129f5565b5b6000612c4385828601612ae1565b9250506020612c5485828601612c09565b9150509250929050565b60008115159050919050565b612c7381612c5e565b82525050565b6000602082019050612c8e6000830184612c6a565b92915050565b612c9d81612be8565b82525050565b6000602082019050612cb86000830184612c94565b92915050565b6000819050919050565b6000612ce3612cde612cd984612a98565b612cbe565b612a98565b9050919050565b6000612cf582612cc8565b9050919050565b6000612d0782612cea565b9050919050565b612d1781612cfc565b82525050565b6000602082019050612d326000830184612d0e565b92915050565b600080600060608486031215612d5157612d506129f5565b5b6000612d5f86828701612ae1565b9350506020612d7086828701612ae1565b9250506040612d8186828701612c09565b9150509250925092565b612d94816129fa565b82525050565b6000602082019050612daf6000830184612d8b565b92915050565b600060208284031215612dcb57612dca6129f5565b5b6000612dd984828501612c09565b91505092915050565b612deb81612ab8565b82525050565b6000602082019050612e066000830184612de2565b92915050565b600060208284031215612e2257612e216129f5565b5b6000612e3084828501612ae1565b91505092915050565b612e4281612c5e565b8114612e4d57600080fd5b50565b600081359050612e5f81612e39565b92915050565b60008060408385031215612e7c57612e7b6129f5565b5b6000612e8a85828601612ae1565b9250506020612e9b85828601612e50565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612eec57607f821691505b602082108103612eff57612efe612ea5565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612f3b602083612b41565b9150612f4682612f05565b602082019050919050565b60006020820190508181036000830152612f6a81612f2e565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612fab82612be8565b9150612fb683612be8565b9250828203905081811115612fce57612fcd612f71565b5b92915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613030602683612b41565b915061303b82612fd4565b604082019050919050565b6000602082019050818103600083015261305f81613023565b9050919050565b600061307182612be8565b915061307c83612be8565b925082820190508082111561309457613093612f71565b5b92915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006130f6602483612b41565b91506131018261309a565b604082019050919050565b60006020820190508181036000830152613125816130e9565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613188602283612b41565b91506131938261312c565b604082019050919050565b600060208201905081810360008301526131b78161317b565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061321a602583612b41565b9150613225826131be565b604082019050919050565b600060208201905081810360008301526132498161320d565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006132ac602383612b41565b91506132b782613250565b604082019050919050565b600060208201905081810360008301526132db8161329f565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061333e602983612b41565b9150613349826132e2565b604082019050919050565b6000602082019050818103600083015261336d81613331565b9050919050565b7f54726164696e67206973206e6f7420656e61626c656420796574000000000000600082015250565b60006133aa601a83612b41565b91506133b582613374565b602082019050919050565b600060208201905081810360008301526133d98161339d565b9050919050565b60006133eb82612be8565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361341d5761341c612f71565b5b600182019050919050565b600060608201905061343d6000830186612d8b565b61344a6020830185612de2565b6134576040830184612c94565b949350505050565b600061346a826129fa565b915060ff820361347d5761347c612f71565b5b600182019050919050565b600060608201905061349d6000830186612de2565b6134aa6020830185612c94565b6134b76040830184612c94565b949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006134f982612be8565b915061350483612be8565b925082613514576135136134bf565b5b828206905092915050565b60006060820190506135346000830186612c94565b6135416020830185612c94565b61354e6040830184612c94565b949350505050565b600061356182612be8565b915061356c83612be8565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156135a5576135a4612f71565b5b828202905092915050565b60006135bb82612be8565b91506135c683612be8565b9250826135d6576135d56134bf565b5b82820490509291505056fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212209bae5cc6891369d425bf8b0fbf001bf3b3bf97aa002d44748c81755f5bf14b1564736f6c63430008100033608060405234801561001057600080fd5b50604051610b94380380610b94833981810160405281019061003291906101ac565b61004061014160201b60201c565b6000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506101d9565b600033905090565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006101798261014e565b9050919050565b6101898161016e565b811461019457600080fd5b50565b6000815190506101a681610180565b92915050565b6000602082840312156101c2576101c1610149565b5b60006101d084828501610197565b91505092915050565b6109ac806101e86000396000f3fe608060405234801561001057600080fd5b50600436106100615760003560e01c8062f714ce14610066578063715018a6146100825780638da5cb5b1461008c5780639d54f419146100aa578063df034cd0146100c6578063f2fde38b146100e4575b600080fd5b610080600480360381019061007b91906106c7565b610100565b005b61008a610235565b005b61009461036f565b6040516100a19190610716565b60405180910390f35b6100c460048036038101906100bf9190610731565b610398565b005b6100ce610458565b6040516100db9190610716565b60405180910390f35b6100fe60048036038101906100f99190610731565b61047e565b005b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610190576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610187906107bb565b60405180910390fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb82846040518363ffffffff1660e01b81526004016101ed9291906107ea565b6020604051808303816000875af115801561020c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610230919061084b565b505050565b61023d610626565b73ffffffffffffffffffffffffffffffffffffffff1661025b61036f565b73ffffffffffffffffffffffffffffffffffffffff16146102b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102a8906108c4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6103a0610626565b73ffffffffffffffffffffffffffffffffffffffff166103be61036f565b73ffffffffffffffffffffffffffffffffffffffff1614610414576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161040b906108c4565b60405180910390fd5b80600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610486610626565b73ffffffffffffffffffffffffffffffffffffffff166104a461036f565b73ffffffffffffffffffffffffffffffffffffffff16146104fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104f1906108c4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610569576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161056090610956565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600080fd5b6000819050919050565b61064681610633565b811461065157600080fd5b50565b6000813590506106638161063d565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061069482610669565b9050919050565b6106a481610689565b81146106af57600080fd5b50565b6000813590506106c18161069b565b92915050565b600080604083850312156106de576106dd61062e565b5b60006106ec85828601610654565b92505060206106fd858286016106b2565b9150509250929050565b61071081610689565b82525050565b600060208201905061072b6000830184610707565b92915050565b6000602082840312156107475761074661062e565b5b6000610755848285016106b2565b91505092915050565b600082825260208201905092915050565b7f796f7520617265206e6f74207468652075706461746572000000000000000000600082015250565b60006107a560178361075e565b91506107b08261076f565b602082019050919050565b600060208201905081810360008301526107d481610798565b9050919050565b6107e481610633565b82525050565b60006040820190506107ff6000830185610707565b61080c60208301846107db565b9392505050565b60008115159050919050565b61082881610813565b811461083357600080fd5b50565b6000815190506108458161081f565b92915050565b6000602082840312156108615761086061062e565b5b600061086f84828501610836565b91505092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006108ae60208361075e565b91506108b982610878565b602082019050919050565b600060208201905081810360008301526108dd816108a1565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061094060268361075e565b915061094b826108e4565b604082019050919050565b6000602082019050818103600083015261096f81610933565b905091905056fea2646970667358221220067f25e7b06f21aa48d01f5d23114c62ce75ab11727467707aae28a4bbe34f1864736f6c63430008100033

Deployed Bytecode

0x6080604052600436106102285760003560e01c8063715018a611610123578063a9059cbb116100ab578063da7e2c7f1161006f578063da7e2c7f1461082d578063dd62ed3e14610856578063f1f9d8c914610893578063f2fde38b146108d0578063fbfa77cf146108f95761022f565b8063a9059cbb14610748578063b77bf60014610785578063c3c5a547146107b0578063d2fb3ddc146107ed578063d62f5dc0146108165761022f565b80638ea5220f116100f25780638ea5220f1461066157806395d89b411461068c57806395f4d088146106b7578063966ff650146106e0578063a457c2d71461070b5761022f565b8063715018a6146105dd578063771282f6146105f45780638a8c523c1461061f5780638da5cb5b146106365761022f565b8063365b98b2116101b15780634ada218b116101755780634ada218b146104e457806350e821831461050f5780635342acb41461053a5780635c7bf8e41461057757806370a08231146105a05761022f565b8063365b98b2146103eb57806339509351146104285780633d3dbdc71461046557806341d68b8f1461049057806349bd5a5e146104b95761022f565b806313daf283116101f857806313daf283146103025780631694505e1461032d57806318160ddd1461035857806323b872dd14610383578063313ce567146103c05761022f565b8062b5f123146102345780630354adb21461027157806306fdde031461029a578063095ea7b3146102c55761022f565b3661022f57005b600080fd5b34801561024057600080fd5b5061025b60048036038101906102569190612a33565b610924565b6040516102689190612a7d565b60405180910390f35b34801561027d57600080fd5b5061029860048036038101906102939190612af6565b610945565b005b3480156102a657600080fd5b506102af610a11565b6040516102bc9190612bc6565b60405180910390f35b3480156102d157600080fd5b506102ec60048036038101906102e79190612c1e565b610aa3565b6040516102f99190612c79565b60405180910390f35b34801561030e57600080fd5b50610317610ac1565b6040516103249190612ca3565b60405180910390f35b34801561033957600080fd5b50610342610ac7565b60405161034f9190612d1d565b60405180910390f35b34801561036457600080fd5b5061036d610aed565b60405161037a9190612ca3565b60405180910390f35b34801561038f57600080fd5b506103aa60048036038101906103a59190612d38565b610af7565b6040516103b79190612c79565b60405180910390f35b3480156103cc57600080fd5b506103d5610bd0565b6040516103e29190612d9a565b60405180910390f35b3480156103f757600080fd5b50610412600480360381019061040d9190612db5565b610bd9565b60405161041f9190612df1565b60405180910390f35b34801561043457600080fd5b5061044f600480360381019061044a9190612c1e565b610c18565b60405161045c9190612c79565b60405180910390f35b34801561047157600080fd5b5061047a610ccb565b6040516104879190612ca3565b60405180910390f35b34801561049c57600080fd5b506104b760048036038101906104b29190612af6565b610cd5565b005b3480156104c557600080fd5b506104ce610ddd565b6040516104db9190612df1565b60405180910390f35b3480156104f057600080fd5b506104f9610e03565b6040516105069190612c79565b60405180910390f35b34801561051b57600080fd5b50610524610e16565b6040516105319190612ca3565b60405180910390f35b34801561054657600080fd5b50610561600480360381019061055c9190612e0c565b610e1c565b60405161056e9190612c79565b60405180910390f35b34801561058357600080fd5b5061059e60048036038101906105999190612db5565b610e72565b005b3480156105ac57600080fd5b506105c760048036038101906105c29190612e0c565b610ef8565b6040516105d49190612ca3565b60405180910390f35b3480156105e957600080fd5b506105f2610f41565b005b34801561060057600080fd5b5061060961107b565b6040516106169190612ca3565b60405180910390f35b34801561062b57600080fd5b50610634611081565b005b34801561064257600080fd5b5061064b61111a565b6040516106589190612df1565b60405180910390f35b34801561066d57600080fd5b50610676611143565b6040516106839190612df1565b60405180910390f35b34801561069857600080fd5b506106a1611169565b6040516106ae9190612bc6565b60405180910390f35b3480156106c357600080fd5b506106de60048036038101906106d99190612e0c565b6111fb565b005b3480156106ec57600080fd5b506106f56112bb565b6040516107029190612ca3565b60405180910390f35b34801561071757600080fd5b50610732600480360381019061072d9190612c1e565b6112c1565b60405161073f9190612c79565b60405180910390f35b34801561075457600080fd5b5061076f600480360381019061076a9190612c1e565b61138e565b60405161077c9190612c79565b60405180910390f35b34801561079157600080fd5b5061079a6113ac565b6040516107a79190612ca3565b60405180910390f35b3480156107bc57600080fd5b506107d760048036038101906107d29190612e0c565b6113b2565b6040516107e49190612c79565b60405180910390f35b3480156107f957600080fd5b50610814600480360381019061080f9190612e0c565b6113d2565b005b34801561082257600080fd5b5061082b611582565b005b34801561083957600080fd5b50610854600480360381019061084f9190612e65565b6116ab565b005b34801561086257600080fd5b5061087d60048036038101906108789190612af6565b611782565b60405161088a9190612ca3565b60405180910390f35b34801561089f57600080fd5b506108ba60048036038101906108b59190612e0c565b611809565b6040516108c79190612df1565b60405180910390f35b3480156108dc57600080fd5b506108f760048036038101906108f29190612e0c565b61183c565b005b34801561090557600080fd5b5061090e6119e4565b60405161091b9190612df1565b60405180910390f35b60096020528060005260406000206000915054906101000a900461ffff1681565b60001515600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151503610a0d576109a78282611a20565b8073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f05345a91f639184e946e5aac384b1e9f74ae9ab08d775a7deddb3180cebecb2342604051610a049190612ca3565b60405180910390a35b5050565b606060058054610a2090612ed4565b80601f0160208091040260200160405190810160405280929190818152602001828054610a4c90612ed4565b8015610a995780601f10610a6e57610100808354040283529160200191610a99565b820191906000526020600020905b815481529060010190602001808311610a7c57829003601f168201915b5050505050905090565b6000610ab7610ab0611b5d565b8484611b65565b6001905092915050565b60165481565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600454905090565b6000610b04848484611d2e565b610bc584610b10611b5d565b610bc08560405180606001604052806028815260200161360860289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610b76611b5d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120949092919063ffffffff16565b611b65565b600190509392505050565b60006012905090565b600b8181548110610be957600080fd5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610cc1610c25611b5d565b84610cbc8560036000610c36611b5d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a0a90919063ffffffff16565b611b65565b6001905092915050565b6000601654905090565b610cdd611b5d565b73ffffffffffffffffffffffffffffffffffffffff16610cfb61111a565b73ffffffffffffffffffffffffffffffffffffffff1614610d51576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d4890612f51565b60405180910390fd5b600082905081601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601260149054906101000a900460ff1681565b60145481565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b610e7a611b5d565b73ffffffffffffffffffffffffffffffffffffffff16610e9861111a565b73ffffffffffffffffffffffffffffffffffffffff1614610eee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ee590612f51565b60405180910390fd5b8060168190555050565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610f49611b5d565b73ffffffffffffffffffffffffffffffffffffffff16610f6761111a565b73ffffffffffffffffffffffffffffffffffffffff1614610fbd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fb490612f51565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600e5481565b611089611b5d565b73ffffffffffffffffffffffffffffffffffffffff166110a761111a565b73ffffffffffffffffffffffffffffffffffffffff16146110fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f490612f51565b60405180910390fd5b6001601260146101000a81548160ff021916908315150217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60606006805461117890612ed4565b80601f01602080910402602001604051908101604052809291908181526020018280546111a490612ed4565b80156111f15780601f106111c6576101008083540402835291602001916111f1565b820191906000526020600020905b8154815290600101906020018083116111d457829003601f168201915b5050505050905090565b611203611b5d565b73ffffffffffffffffffffffffffffffffffffffff1661122161111a565b73ffffffffffffffffffffffffffffffffffffffff1614611277576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161126e90612f51565b60405180910390fd5b80600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60135481565b60006113846112ce611b5d565b8461137f8560405180606001604052806025815260200161363060259139600360006112f8611b5d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120949092919063ffffffff16565b611b65565b6001905092915050565b60006113a261139b611b5d565b8484611d2e565b6001905092915050565b600f5481565b60086020528060005260406000206000915054906101000a900460ff1681565b6113da611b5d565b73ffffffffffffffffffffffffffffffffffffffff166113f861111a565b73ffffffffffffffffffffffffffffffffffffffff161461144e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144590612f51565b60405180910390fd5b80601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639d54f419601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b815260040161154d9190612df1565b600060405180830381600087803b15801561156757600080fd5b505af115801561157b573d6000803e3d6000fd5b5050505050565b61158a611b5d565b73ffffffffffffffffffffffffffffffffffffffff166115a861111a565b73ffffffffffffffffffffffffffffffffffffffff16146115fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115f590612f51565b60405180910390fd5b60006015546014546116109190612fa0565b9050601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633c6b16ab826040518263ffffffff1660e01b815260040161166d9190612ca3565b600060405180830381600087803b15801561168757600080fd5b505af115801561169b573d6000803e3d6000fd5b5050505060145460158190555050565b6116b3611b5d565b73ffffffffffffffffffffffffffffffffffffffff166116d161111a565b73ffffffffffffffffffffffffffffffffffffffff1614611727576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171e90612f51565b60405180910390fd5b80600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600a6020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611844611b5d565b73ffffffffffffffffffffffffffffffffffffffff1661186261111a565b73ffffffffffffffffffffffffffffffffffffffff16146118b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118af90612f51565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611927576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161191e90613046565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008183611a189190613066565b905092915050565b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600b829080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611bd4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bcb9061310c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611c43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c3a9061319e565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611d219190612ca3565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611d9d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d9490613230565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611e0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e03906132c2565b60405180910390fd5b60008111611e4f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e4690613354565b60405180910390fd5b611e5761111a565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611e9f5750601260149054906101000a900460ff16155b15611ef457601260149054906101000a900460ff16611ef3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eea906133c0565b60405180910390fd5b5b600060019050600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611f9b5750600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611fb457611fab8484846120e9565b6000905061208e565b600061205983600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612380565b905061206a858583606001516120e9565b6120748186612471565b600f6000815480929190612087906133e0565b9190505550505b50505050565b60008383111582906120dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120d39190612bc6565b60405180910390fd5b5082840390509392505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612158576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161214f90613230565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036121c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121be906132c2565b60405180910390fd5b6121d28383836127c3565b61223e816040518060600160405280602681526020016135e260269139600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120949092919063ffffffff16565b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506122d381600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a0a90919063ffffffff16565b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516123739190612ca3565b60405180910390a3505050565b6123886129cd565b6123906129cd565b84816000018181525050831580156123a6575082155b156124415760006123ba82600001516127c8565b90506123ca82600001518261293d565b8260200181815250506000612402836020015184600001516123ec9190612fa0565b600d60149054906101000a900461ffff1661293d565b90508260200151816124149190613066565b836040018181525050826040015183600001516124319190612fa0565b8360600181815250505050612466565b6000816020018181525050600081604001818152505080600001518160600181815250505b809150509392505050565b60008061247d83612964565b90505b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141580156124c1575060048260ff1611155b1561257d5760006124fd8560400151600960008660ff1660ff16815260200190815260200160002060009054906101000a900461ffff1661293d565b905061250a8483836120e9565b808560400181815161251c9190612fa0565b915081815250507ff74199aa91980d1f5c2bc26886032b728856d5c22b748808ce3c6a910e5f537683838360405161255693929190613428565b60405180910390a161256782612964565b915082806125749061345f565b93505050612480565b600061259d8560400151600d60169054906101000a900461ffff1661293d565b905060006125bf8660400151600d60189054906101000a900461ffff1661293d565b905060006125e18760400151600d601a9054906101000a900461ffff1661293d565b905061261086600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836120e9565b61263d86600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846120e9565b816014600082825461264f9190613066565b925050819055506126638661dead856120e9565b82600e60008282546126759190612fa0565b925050819055507f49995e5dd6158cf69ad3e9777c46755a1a826a446c6416992167462dad033b2a8684426040516126af93929190613488565b60405180910390a160006126c1610ccb565b600f546126ce91906134ee565b0361277f5760006015546014546126e59190612fa0565b9050601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633c6b16ab826040518263ffffffff1660e01b81526004016127429190612ca3565b600060405180830381600087803b15801561275c57600080fd5b505af1158015612770573d6000803e3d6000fd5b50505050601454601581905550505b7f01db31d63c03dd2a4c9e29e54bf1375e47f0aabc07da1d4d013ed16535de54328382846040516127b29392919061351f565b60405180910390a150505050505050565b505050565b600080600e546064846127db9190613556565b6127e591906135b0565b9050600060018210156127fb5760009050612933565b6001821015801561280c5750600282105b1561281b576101f49050612932565b6002821015801561282c5750600382105b1561283b576103e89050612931565b6003821015801561284c5750600482105b1561285b576105dc9050612930565b6004821015801561286c5750600582105b1561287b576107d0905061292f565b6005821015801561288c5750600682105b1561289b576109c4905061292e565b600682101580156128ac5750600782105b156128bb57610bb8905061292d565b600782101580156128cc5750600882105b156128db57610dac905061292c565b600882101580156128ec5750600982105b156128fb57610fa0905061292b565b6009821015801561290c5750600a82105b1561291b57611194905061292a565b600a82106129295761138890505b5b5b5b5b5b5b5b5b5b5b8092505050919050565b60006127108261ffff16846129529190613556565b61295c91906135b0565b905092915050565b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6040518060800160405280600081526020016000815260200160008152602001600081525090565b600080fd5b600060ff82169050919050565b612a10816129fa565b8114612a1b57600080fd5b50565b600081359050612a2d81612a07565b92915050565b600060208284031215612a4957612a486129f5565b5b6000612a5784828501612a1e565b91505092915050565b600061ffff82169050919050565b612a7781612a60565b82525050565b6000602082019050612a926000830184612a6e565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612ac382612a98565b9050919050565b612ad381612ab8565b8114612ade57600080fd5b50565b600081359050612af081612aca565b92915050565b60008060408385031215612b0d57612b0c6129f5565b5b6000612b1b85828601612ae1565b9250506020612b2c85828601612ae1565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612b70578082015181840152602081019050612b55565b60008484015250505050565b6000601f19601f8301169050919050565b6000612b9882612b36565b612ba28185612b41565b9350612bb2818560208601612b52565b612bbb81612b7c565b840191505092915050565b60006020820190508181036000830152612be08184612b8d565b905092915050565b6000819050919050565b612bfb81612be8565b8114612c0657600080fd5b50565b600081359050612c1881612bf2565b92915050565b60008060408385031215612c3557612c346129f5565b5b6000612c4385828601612ae1565b9250506020612c5485828601612c09565b9150509250929050565b60008115159050919050565b612c7381612c5e565b82525050565b6000602082019050612c8e6000830184612c6a565b92915050565b612c9d81612be8565b82525050565b6000602082019050612cb86000830184612c94565b92915050565b6000819050919050565b6000612ce3612cde612cd984612a98565b612cbe565b612a98565b9050919050565b6000612cf582612cc8565b9050919050565b6000612d0782612cea565b9050919050565b612d1781612cfc565b82525050565b6000602082019050612d326000830184612d0e565b92915050565b600080600060608486031215612d5157612d506129f5565b5b6000612d5f86828701612ae1565b9350506020612d7086828701612ae1565b9250506040612d8186828701612c09565b9150509250925092565b612d94816129fa565b82525050565b6000602082019050612daf6000830184612d8b565b92915050565b600060208284031215612dcb57612dca6129f5565b5b6000612dd984828501612c09565b91505092915050565b612deb81612ab8565b82525050565b6000602082019050612e066000830184612de2565b92915050565b600060208284031215612e2257612e216129f5565b5b6000612e3084828501612ae1565b91505092915050565b612e4281612c5e565b8114612e4d57600080fd5b50565b600081359050612e5f81612e39565b92915050565b60008060408385031215612e7c57612e7b6129f5565b5b6000612e8a85828601612ae1565b9250506020612e9b85828601612e50565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612eec57607f821691505b602082108103612eff57612efe612ea5565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612f3b602083612b41565b9150612f4682612f05565b602082019050919050565b60006020820190508181036000830152612f6a81612f2e565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612fab82612be8565b9150612fb683612be8565b9250828203905081811115612fce57612fcd612f71565b5b92915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613030602683612b41565b915061303b82612fd4565b604082019050919050565b6000602082019050818103600083015261305f81613023565b9050919050565b600061307182612be8565b915061307c83612be8565b925082820190508082111561309457613093612f71565b5b92915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006130f6602483612b41565b91506131018261309a565b604082019050919050565b60006020820190508181036000830152613125816130e9565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613188602283612b41565b91506131938261312c565b604082019050919050565b600060208201905081810360008301526131b78161317b565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061321a602583612b41565b9150613225826131be565b604082019050919050565b600060208201905081810360008301526132498161320d565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006132ac602383612b41565b91506132b782613250565b604082019050919050565b600060208201905081810360008301526132db8161329f565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061333e602983612b41565b9150613349826132e2565b604082019050919050565b6000602082019050818103600083015261336d81613331565b9050919050565b7f54726164696e67206973206e6f7420656e61626c656420796574000000000000600082015250565b60006133aa601a83612b41565b91506133b582613374565b602082019050919050565b600060208201905081810360008301526133d98161339d565b9050919050565b60006133eb82612be8565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361341d5761341c612f71565b5b600182019050919050565b600060608201905061343d6000830186612d8b565b61344a6020830185612de2565b6134576040830184612c94565b949350505050565b600061346a826129fa565b915060ff820361347d5761347c612f71565b5b600182019050919050565b600060608201905061349d6000830186612de2565b6134aa6020830185612c94565b6134b76040830184612c94565b949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006134f982612be8565b915061350483612be8565b925082613514576135136134bf565b5b828206905092915050565b60006060820190506135346000830186612c94565b6135416020830185612c94565b61354e6040830184612c94565b949350505050565b600061356182612be8565b915061356c83612be8565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156135a5576135a4612f71565b5b828202905092915050565b60006135bb82612be8565b91506135c683612be8565b9250826135d6576135d56134bf565b5b82820490509291505056fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212209bae5cc6891369d425bf8b0fbf001bf3b3bf97aa002d44748c81755f5bf14b1564736f6c63430008100033

Deployed Bytecode Sourcemap

10410:8751:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10587:41;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16667:235;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5096:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6076:194;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11590:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11326:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5417:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6278:454;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5316:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10701:22;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6740:293;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19073:85;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16310:231;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11394:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11431:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11508:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12908:124;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18976:89;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5533:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3379:148;;;;;;;;;;;;;:::i;:::-;;11247:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13040:84;;;;;;;;;;;;;:::i;:::-;;3156:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10732:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5204:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13132:92;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11476:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7041:393;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5684:200;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11284:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10536:44;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18801:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18555:238;;;;;;;;;;;;;:::i;:::-;;12741:159;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5892:176;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10651:41;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3535:281;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10763:20;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10587:41;;;;;;;;;;;;;;;;;;;;;;:::o;16667:235::-;16767:5;16744:28;;:12;:19;16757:5;16744:19;;;;;;;;;;;;;;;;;;;;;;;;;:28;;;16740:155;;16789:26;16799:5;16806:8;16789:9;:26::i;:::-;16857:8;16835:48;;16850:5;16835:48;;;16867:15;16835:48;;;;;;:::i;:::-;;;;;;;;16740:155;16667:235;;:::o;5096:100::-;5150:13;5183:5;5176:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5096:100;:::o;6076:194::-;6184:4;6201:39;6210:12;:10;:12::i;:::-;6224:7;6233:6;6201:8;:39::i;:::-;6258:4;6251:11;;6076:194;;;;:::o;11590:25::-;;;;:::o;11326:41::-;;;;;;;;;;;;;:::o;5417:108::-;5478:7;5505:12;;5498:19;;5417:108;:::o;6278:454::-;6418:4;6435:36;6445:6;6453:9;6464:6;6435:9;:36::i;:::-;6482:220;6505:6;6526:12;:10;:12::i;:::-;6553:138;6609:6;6553:138;;;;;;;;;;;;;;;;;:11;:19;6565:6;6553:19;;;;;;;;;;;;;;;:33;6573:12;:10;:12::i;:::-;6553:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;6482:8;:220::i;:::-;6720:4;6713:11;;6278:454;;;;;:::o;5316:93::-;5374:5;5399:2;5392:9;;5316:93;:::o;10701:22::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;6740:293::-;6853:4;6870:133;6893:12;:10;:12::i;:::-;6920:7;6942:50;6981:10;6942:11;:25;6954:12;:10;:12::i;:::-;6942:25;;;;;;;;;;;;;;;:34;6968:7;6942:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;6870:8;:133::i;:::-;7021:4;7014:11;;6740:293;;;;:::o;19073:85::-;19113:7;19140:10;;19133:17;;19073:85;:::o;16310:231::-;3302:12;:10;:12::i;:::-;3291:23;;:7;:5;:7::i;:::-;:23;;;3283:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16389:35:::1;16446:7;16389:65;;16481:5;16465:13;;:21;;;;;;;;;;;;;;;;;;16517:16;16499:15;;:34;;;;;;;;;;;;;;;;;;16378:163;16310:231:::0;;:::o;11394:28::-;;;;;;;;;;;;;:::o;11431:34::-;;;;;;;;;;;;;:::o;11508:31::-;;;;:::o;12908:124::-;12973:4;12997:18;:27;13016:7;12997:27;;;;;;;;;;;;;;;;;;;;;;;;;12990:34;;12908:124;;;:::o;18976:89::-;3302:12;:10;:12::i;:::-;3291:23;;:7;:5;:7::i;:::-;:23;;;3283:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19052:5:::1;19039:10;:18;;;;18976:89:::0;:::o;5533:143::-;5623:7;5650:9;:18;5660:7;5650:18;;;;;;;;;;;;;;;;5643:25;;5533:143;;;:::o;3379:148::-;3302:12;:10;:12::i;:::-;3291:23;;:7;:5;:7::i;:::-;:23;;;3283:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;3486:1:::1;3449:40;;3470:6;::::0;::::1;;;;;;;;3449:40;;;;;;;;;;;;3517:1;3500:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;3379:148::o:0;11247:28::-;;;;:::o;13040:84::-;3302:12;:10;:12::i;:::-;3291:23;;:7;:5;:7::i;:::-;:23;;;3283:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13112:4:::1;13095:14;;:21;;;;;;;;;;;;;;;;;;13040:84::o:0;3156:87::-;3202:7;3229:6;;;;;;;;;;;3222:13;;3156:87;:::o;10732:24::-;;;;;;;;;;;;;:::o;5204:104::-;5260:13;5293:7;5286:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5204:104;:::o;13132:92::-;3302:12;:10;:12::i;:::-;3291:23;;:7;:5;:7::i;:::-;:23;;;3283:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13211:5:::1;13199:9;;:17;;;;;;;;;;;;;;;;;;13132:92:::0;:::o;11476:25::-;;;;:::o;7041:393::-;7159:4;7176:228;7199:12;:10;:12::i;:::-;7226:7;7248:145;7305:15;7248:145;;;;;;;;;;;;;;;;;:11;:25;7260:12;:10;:12::i;:::-;7248:25;;;;;;;;;;;;;;;:34;7274:7;7248:34;;;;;;;;;;;;;;;;:38;;:145;;;;;:::i;:::-;7176:8;:228::i;:::-;7422:4;7415:11;;7041:393;;;;:::o;5684:200::-;5795:4;5812:42;5822:12;:10;:12::i;:::-;5836:9;5847:6;5812:9;:42::i;:::-;5872:4;5865:11;;5684:200;;;;:::o;11284:33::-;;;;:::o;10536:44::-;;;;;;;;;;;;;;;;;;;;;;:::o;18801:167::-;3302:12;:10;:12::i;:::-;3291:23;;:7;:5;:7::i;:::-;:23;;;3283:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18875:5:::1;18863:9;;:17;;;;;;;;;;;;;;;;;;18915:5;18891:10;;:30;;;;;;;;;;;;;;;;;;18932:6;;;;;;;;;;;:17;;;18950:9;;;;;;;;;;;18932:28;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;18801:167:::0;:::o;18555:238::-;3302:12;:10;:12::i;:::-;3291:23;;:7;:5;:7::i;:::-;:23;;;3283:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18617:12:::1;18651:19;;18632:16;;:38;;;;:::i;:::-;18617:53;;18698:10;;;;;;;;;;;:29;;;18728:7;18698:38;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;18769:16;;18747:19;:38;;;;18606:187;18555:238::o:0;12741:159::-;3302:12;:10;:12::i;:::-;3291:23;;:7;:5;:7::i;:::-;:23;;;3283:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12887:5:::1;12857:18;:27;12876:7;12857:27;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;12741:159:::0;;:::o;5892:176::-;6006:7;6033:11;:18;6045:5;6033:18;;;;;;;;;;;;;;;:27;6052:7;6033:27;;;;;;;;;;;;;;;;6026:34;;5892:176;;;;:::o;10651:41::-;;;;;;;;;;;;;;;;;;;;;;:::o;3535:281::-;3302:12;:10;:12::i;:::-;3291:23;;:7;:5;:7::i;:::-;:23;;;3283:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;3658:1:::1;3638:22;;:8;:22;;::::0;3616:110:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;3771:8;3742:38;;3763:6;::::0;::::1;;;;;;;;3742:38;;;;;;;;;;;;3800:8;3791:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;3535:281:::0;:::o;10763:20::-;;;;;;;;;;;;;:::o;1628:98::-;1686:7;1717:1;1713;:5;;;;:::i;:::-;1706:12;;1628:98;;;;:::o;16910:169::-;16998:8;16982:6;:13;16989:5;16982:13;;;;;;;;;;;;;;;;:24;;;;;;;;;;;;;;;;;;17039:4;17017:12;:19;17030:5;17017:19;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;17054:5;17065;17054:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16910:169;;:::o;2579:98::-;2632:7;2659:10;2652:17;;2579:98;:::o;8909:380::-;9062:1;9045:19;;:5;:19;;;9037:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9143:1;9124:21;;:7;:21;;;9116:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9227:6;9197:11;:18;9209:5;9197:18;;;;;;;;;;;;;;;:27;9216:7;9197:27;;;;;;;;;;;;;;;:36;;;;9265:7;9249:32;;9258:5;9249:32;;;9274:6;9249:32;;;;;;:::i;:::-;;;;;;;;8909:380;;;:::o;13269:1044::-;13417:1;13401:18;;:4;:18;;;13393:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13494:1;13480:16;;:2;:16;;;13472:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;13564:1;13555:6;:10;13547:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;13636:7;:5;:7::i;:::-;13628:15;;:4;:15;;;;:34;;;;;13648:14;;;;;;;;;;;13647:15;13628:34;13624:120;;;13687:14;;;;;;;;;;;13679:53;;;;;;;;;;;;:::i;:::-;;;;;;;;;13624:120;13758:12;13773:4;13758:19;;13792:18;:24;13811:4;13792:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;13820:18;:22;13839:2;13820:22;;;;;;;;;;;;;;;;;;;;;;;;;13792:50;13788:518;;;13859:33;13875:4;13881:2;13885:6;13859:15;:33::i;:::-;13917:5;13907:15;;13788:518;;;13955:28;13986:133;14014:6;14039:18;:24;14058:4;14039:24;;;;;;;;;;;;;;;;;;;;;;;;;14082:18;:22;14101:2;14082:22;;;;;;;;;;;;;;;;;;;;;;;;;13986:9;:133::i;:::-;13955:164;;14136:48;14152:4;14158:2;14162:6;:21;;;14136:15;:48::i;:::-;14233:28;14248:6;14256:4;14233:14;:28::i;:::-;14276:16;;:18;;;;;;;;;:::i;:::-;;;;;;13940:366;13788:518;13382:931;13269:1044;;;:::o;2052:240::-;2172:7;2230:1;2225;:6;;2233:12;2217:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2272:1;2268;:5;2261:12;;2052:240;;;;;:::o;7442:610::-;7600:1;7582:20;;:6;:20;;;7574:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;7684:1;7663:23;;:9;:23;;;7655:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;7739:47;7760:6;7768:9;7779:6;7739:20;:47::i;:::-;7819:108;7855:6;7819:108;;;;;;;;;;;;;;;;;:9;:17;7829:6;7819:17;;;;;;;;;;;;;;;;:21;;:108;;;;;:::i;:::-;7799:9;:17;7809:6;7799:17;;;;;;;;;;;;;;;:128;;;;7961:32;7986:6;7961:9;:20;7971:9;7961:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;7938:9;:20;7948:9;7938:20;;;;;;;;;;;;;;;:55;;;;8026:9;8009:35;;8018:6;8009:35;;;8037:6;8009:35;;;;;;:::i;:::-;;;;;;;;7442:610;;;:::o;14321:885::-;14449:21;;:::i;:::-;14483:28;;:::i;:::-;14538:6;14522;:13;;:22;;;;;14560:17;14559:18;:29;;;;;14582:6;14581:7;14559:29;14555:620;;;14635:16;14654:23;14663:6;:13;;;14654:8;:23::i;:::-;14635:42;;14710:38;14723:6;:13;;;14738:9;14710:12;:38::i;:::-;14692:6;:15;;:56;;;;;14763:20;14786:106;14834:6;:15;;;14818:6;:13;;;:31;;;;:::i;:::-;14869:8;;;;;;;;;;;14786:12;:106::i;:::-;14763:129;;14940:6;:15;;;14925:12;:30;;;;:::i;:::-;14907:6;:15;;:48;;;;;15010:6;:15;;;14994:6;:13;;;:31;;;;:::i;:::-;14970:6;:21;;:55;;;;;14590:447;;14555:620;;;15076:1;15058:6;:15;;:19;;;;;15110:1;15092:6;:15;;:19;;;;;15150:6;:13;;;15126:6;:21;;:37;;;;;14555:620;15192:6;15185:13;;;14321:885;;;;;:::o;17087:1460::-;17201:7;17223:21;17247:17;17257:6;17247:9;:17::i;:::-;17223:41;;17275:409;17307:1;17282:27;;:13;:27;;;;:37;;;;;17318:1;17313;:6;;;;17282:37;17275:409;;;17336:15;17354:43;17367:6;:15;;;17384:9;:12;17394:1;17384:12;;;;;;;;;;;;;;;;;;;;;;;;;17354;:43::i;:::-;17336:61;;17412:47;17428:6;17436:13;17451:7;17412:15;:47::i;:::-;17540:7;17521:6;:15;;:26;;;;;;;:::i;:::-;;;;;;;;17567:32;17573:1;17576:13;17591:7;17567:32;;;;;;;;:::i;:::-;;;;;;;;17630:24;17640:13;17630:9;:24::i;:::-;17614:40;;17669:3;;;;;:::i;:::-;;;;17321:363;17275:409;;;17696:15;17714:38;17727:6;:15;;;17744:7;;;;;;;;;;;17714:12;:38::i;:::-;17696:56;;17763:17;17783:40;17796:6;:15;;;17813:9;;;;;;;;;;;17783:12;:40::i;:::-;17763:60;;17834:14;17851:37;17864:6;:15;;;17881:6;;;;;;;;;;;17851:12;:37::i;:::-;17834:54;;17901:42;17917:6;17925:9;;;;;;;;;;;17936:6;17901:15;:42::i;:::-;17969:41;17985:6;17993:5;;;;;;;;;;;18000:9;17969:15;:41::i;:::-;18060:9;18040:16;;:29;;;;;;;:::i;:::-;;;;;;;;18082:46;18098:6;10824:42;18120:7;18082:15;:46::i;:::-;18173:7;18156:13;;:24;;;;;;;:::i;:::-;;;;;;;;18196:38;18201:6;18209:7;18218:15;18196:38;;;;;;;;:::i;:::-;;;;;;;;18283:1;18270:9;:7;:9::i;:::-;18251:16;;:28;;;;:::i;:::-;:33;18247:242;;18301:12;18335:19;;18316:16;;:38;;;;:::i;:::-;18301:53;;18386:10;;;;;;;;;;;:29;;;18416:7;18386:38;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18461:16;;18439:19;:38;;;;18286:203;18247:242;18506:33;18512:7;18521:6;18529:9;18506:33;;;;;;;;:::i;:::-;;;;;;;;17190:1357;;;;;17087:1460;;:::o;9297:125::-;;;;:::o;15380:922::-;15438:6;15457:9;15487:13;;15480:3;15470:7;:13;;;;:::i;:::-;15469:31;;;;:::i;:::-;15457:43;;15511:15;15545:1;15541;:5;15537:732;;;15574:1;15563:12;;15537:732;;;15602:1;15597;:6;;:15;;;;;15611:1;15607;:5;15597:15;15593:676;;;15640:3;15629:14;;15593:676;;;15670:1;15665;:6;;:15;;;;;15679:1;15675;:5;15665:15;15661:608;;;15708:4;15697:15;;15661:608;;;15739:1;15734;:6;;:15;;;;;15748:1;15744;:5;15734:15;15730:539;;;15777:4;15766:15;;15730:539;;;15808:1;15803;:6;;:15;;;;;15817:1;15813;:5;15803:15;15799:470;;;15846:4;15835:15;;15799:470;;;15877:1;15872;:6;;:15;;;;;15886:1;15882;:5;15872:15;15868:401;;;15915:4;15904:15;;15868:401;;;15946:1;15941;:6;;:15;;;;;15955:1;15951;:5;15941:15;15937:332;;;15984:4;15973:15;;15937:332;;;16015:1;16010;:6;;:15;;;;;16024:1;16020;:5;16010:15;16006:263;;;16053:4;16042:15;;16006:263;;;16084:1;16079;:6;;:15;;;;;16093:1;16089;:5;16079:15;16075:194;;;16122:4;16111:15;;16075:194;;;16153:1;16148;:6;;:16;;;;;16162:2;16158:1;:6;16148:16;16144:125;;;16192:4;16181:15;;16144:125;;;16223:2;16218:1;:7;16214:55;;16253:4;16242:15;;16214:55;16144:125;16075:194;16006:263;15937:332;15868:401;15799:470;15730:539;15661:608;15593:676;15537:732;16286:8;16279:15;;;;15380:922;;;:::o;15214:158::-;15311:7;15356;15348:3;15339:12;;:6;:12;;;;:::i;:::-;15338:26;;;;:::i;:::-;15331:33;;15214:158;;;;:::o;16549:110::-;16604:15;16639:6;:12;16646:4;16639:12;;;;;;;;;;;;;;;;;;;;;;;;;16632:19;;16549:110;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;88:117:1:-;197:1;194;187:12;334:86;369:7;409:4;402:5;398:16;387:27;;334:86;;;:::o;426:118::-;497:22;513:5;497:22;:::i;:::-;490:5;487:33;477:61;;534:1;531;524:12;477:61;426:118;:::o;550:135::-;594:5;632:6;619:20;610:29;;648:31;673:5;648:31;:::i;:::-;550:135;;;;:::o;691:325::-;748:6;797:2;785:9;776:7;772:23;768:32;765:119;;;803:79;;:::i;:::-;765:119;923:1;948:51;991:7;982:6;971:9;967:22;948:51;:::i;:::-;938:61;;894:115;691:325;;;;:::o;1022:89::-;1058:7;1098:6;1091:5;1087:18;1076:29;;1022:89;;;:::o;1117:115::-;1202:23;1219:5;1202:23;:::i;:::-;1197:3;1190:36;1117:115;;:::o;1238:218::-;1329:4;1367:2;1356:9;1352:18;1344:26;;1380:69;1446:1;1435:9;1431:17;1422:6;1380:69;:::i;:::-;1238:218;;;;:::o;1462:126::-;1499:7;1539:42;1532:5;1528:54;1517:65;;1462:126;;;:::o;1594:96::-;1631:7;1660:24;1678:5;1660:24;:::i;:::-;1649:35;;1594:96;;;:::o;1696:122::-;1769:24;1787:5;1769:24;:::i;:::-;1762:5;1759:35;1749:63;;1808:1;1805;1798:12;1749:63;1696:122;:::o;1824:139::-;1870:5;1908:6;1895:20;1886:29;;1924:33;1951:5;1924:33;:::i;:::-;1824:139;;;;:::o;1969:474::-;2037:6;2045;2094:2;2082:9;2073:7;2069:23;2065:32;2062:119;;;2100:79;;:::i;:::-;2062:119;2220:1;2245:53;2290:7;2281:6;2270:9;2266:22;2245:53;:::i;:::-;2235:63;;2191:117;2347:2;2373:53;2418:7;2409:6;2398:9;2394:22;2373:53;:::i;:::-;2363:63;;2318:118;1969:474;;;;;:::o;2449:99::-;2501:6;2535:5;2529:12;2519:22;;2449:99;;;:::o;2554:169::-;2638:11;2672:6;2667:3;2660:19;2712:4;2707:3;2703:14;2688:29;;2554:169;;;;:::o;2729:246::-;2810:1;2820:113;2834:6;2831:1;2828:13;2820:113;;;2919:1;2914:3;2910:11;2904:18;2900:1;2895:3;2891:11;2884:39;2856:2;2853:1;2849:10;2844:15;;2820:113;;;2967:1;2958:6;2953:3;2949:16;2942:27;2791:184;2729:246;;;:::o;2981:102::-;3022:6;3073:2;3069:7;3064:2;3057:5;3053:14;3049:28;3039:38;;2981:102;;;:::o;3089:377::-;3177:3;3205:39;3238:5;3205:39;:::i;:::-;3260:71;3324:6;3319:3;3260:71;:::i;:::-;3253:78;;3340:65;3398:6;3393:3;3386:4;3379:5;3375:16;3340:65;:::i;:::-;3430:29;3452:6;3430:29;:::i;:::-;3425:3;3421:39;3414:46;;3181:285;3089:377;;;;:::o;3472:313::-;3585:4;3623:2;3612:9;3608:18;3600:26;;3672:9;3666:4;3662:20;3658:1;3647:9;3643:17;3636:47;3700:78;3773:4;3764:6;3700:78;:::i;:::-;3692:86;;3472:313;;;;:::o;3791:77::-;3828:7;3857:5;3846:16;;3791:77;;;:::o;3874:122::-;3947:24;3965:5;3947:24;:::i;:::-;3940:5;3937:35;3927:63;;3986:1;3983;3976:12;3927:63;3874:122;:::o;4002:139::-;4048:5;4086:6;4073:20;4064:29;;4102:33;4129:5;4102:33;:::i;:::-;4002:139;;;;:::o;4147:474::-;4215:6;4223;4272:2;4260:9;4251:7;4247:23;4243:32;4240:119;;;4278:79;;:::i;:::-;4240:119;4398:1;4423:53;4468:7;4459:6;4448:9;4444:22;4423:53;:::i;:::-;4413:63;;4369:117;4525:2;4551:53;4596:7;4587:6;4576:9;4572:22;4551:53;:::i;:::-;4541:63;;4496:118;4147:474;;;;;:::o;4627:90::-;4661:7;4704:5;4697:13;4690:21;4679:32;;4627:90;;;:::o;4723:109::-;4804:21;4819:5;4804:21;:::i;:::-;4799:3;4792:34;4723:109;;:::o;4838:210::-;4925:4;4963:2;4952:9;4948:18;4940:26;;4976:65;5038:1;5027:9;5023:17;5014:6;4976:65;:::i;:::-;4838:210;;;;:::o;5054:118::-;5141:24;5159:5;5141:24;:::i;:::-;5136:3;5129:37;5054:118;;:::o;5178:222::-;5271:4;5309:2;5298:9;5294:18;5286:26;;5322:71;5390:1;5379:9;5375:17;5366:6;5322:71;:::i;:::-;5178:222;;;;:::o;5406:60::-;5434:3;5455:5;5448:12;;5406:60;;;:::o;5472:142::-;5522:9;5555:53;5573:34;5582:24;5600:5;5582:24;:::i;:::-;5573:34;:::i;:::-;5555:53;:::i;:::-;5542:66;;5472:142;;;:::o;5620:126::-;5670:9;5703:37;5734:5;5703:37;:::i;:::-;5690:50;;5620:126;;;:::o;5752:152::-;5828:9;5861:37;5892:5;5861:37;:::i;:::-;5848:50;;5752:152;;;:::o;5910:183::-;6023:63;6080:5;6023:63;:::i;:::-;6018:3;6011:76;5910:183;;:::o;6099:274::-;6218:4;6256:2;6245:9;6241:18;6233:26;;6269:97;6363:1;6352:9;6348:17;6339:6;6269:97;:::i;:::-;6099:274;;;;:::o;6379:619::-;6456:6;6464;6472;6521:2;6509:9;6500:7;6496:23;6492:32;6489:119;;;6527:79;;:::i;:::-;6489:119;6647:1;6672:53;6717:7;6708:6;6697:9;6693:22;6672:53;:::i;:::-;6662:63;;6618:117;6774:2;6800:53;6845:7;6836:6;6825:9;6821:22;6800:53;:::i;:::-;6790:63;;6745:118;6902:2;6928:53;6973:7;6964:6;6953:9;6949:22;6928:53;:::i;:::-;6918:63;;6873:118;6379:619;;;;;:::o;7004:112::-;7087:22;7103:5;7087:22;:::i;:::-;7082:3;7075:35;7004:112;;:::o;7122:214::-;7211:4;7249:2;7238:9;7234:18;7226:26;;7262:67;7326:1;7315:9;7311:17;7302:6;7262:67;:::i;:::-;7122:214;;;;:::o;7342:329::-;7401:6;7450:2;7438:9;7429:7;7425:23;7421:32;7418:119;;;7456:79;;:::i;:::-;7418:119;7576:1;7601:53;7646:7;7637:6;7626:9;7622:22;7601:53;:::i;:::-;7591:63;;7547:117;7342:329;;;;:::o;7677:118::-;7764:24;7782:5;7764:24;:::i;:::-;7759:3;7752:37;7677:118;;:::o;7801:222::-;7894:4;7932:2;7921:9;7917:18;7909:26;;7945:71;8013:1;8002:9;7998:17;7989:6;7945:71;:::i;:::-;7801:222;;;;:::o;8029:329::-;8088:6;8137:2;8125:9;8116:7;8112:23;8108:32;8105:119;;;8143:79;;:::i;:::-;8105:119;8263:1;8288:53;8333:7;8324:6;8313:9;8309:22;8288:53;:::i;:::-;8278:63;;8234:117;8029:329;;;;:::o;8364:116::-;8434:21;8449:5;8434:21;:::i;:::-;8427:5;8424:32;8414:60;;8470:1;8467;8460:12;8414:60;8364:116;:::o;8486:133::-;8529:5;8567:6;8554:20;8545:29;;8583:30;8607:5;8583:30;:::i;:::-;8486:133;;;;:::o;8625:468::-;8690:6;8698;8747:2;8735:9;8726:7;8722:23;8718:32;8715:119;;;8753:79;;:::i;:::-;8715:119;8873:1;8898:53;8943:7;8934:6;8923:9;8919:22;8898:53;:::i;:::-;8888:63;;8844:117;9000:2;9026:50;9068:7;9059:6;9048:9;9044:22;9026:50;:::i;:::-;9016:60;;8971:115;8625:468;;;;;:::o;9099:180::-;9147:77;9144:1;9137:88;9244:4;9241:1;9234:15;9268:4;9265:1;9258:15;9285:320;9329:6;9366:1;9360:4;9356:12;9346:22;;9413:1;9407:4;9403:12;9434:18;9424:81;;9490:4;9482:6;9478:17;9468:27;;9424:81;9552:2;9544:6;9541:14;9521:18;9518:38;9515:84;;9571:18;;:::i;:::-;9515:84;9336:269;9285:320;;;:::o;9611:182::-;9751:34;9747:1;9739:6;9735:14;9728:58;9611:182;:::o;9799:366::-;9941:3;9962:67;10026:2;10021:3;9962:67;:::i;:::-;9955:74;;10038:93;10127:3;10038:93;:::i;:::-;10156:2;10151:3;10147:12;10140:19;;9799:366;;;:::o;10171:419::-;10337:4;10375:2;10364:9;10360:18;10352:26;;10424:9;10418:4;10414:20;10410:1;10399:9;10395:17;10388:47;10452:131;10578:4;10452:131;:::i;:::-;10444:139;;10171:419;;;:::o;10596:180::-;10644:77;10641:1;10634:88;10741:4;10738:1;10731:15;10765:4;10762:1;10755:15;10782:194;10822:4;10842:20;10860:1;10842:20;:::i;:::-;10837:25;;10876:20;10894:1;10876:20;:::i;:::-;10871:25;;10920:1;10917;10913:9;10905:17;;10944:1;10938:4;10935:11;10932:37;;;10949:18;;:::i;:::-;10932:37;10782:194;;;;:::o;10982:225::-;11122:34;11118:1;11110:6;11106:14;11099:58;11191:8;11186:2;11178:6;11174:15;11167:33;10982:225;:::o;11213:366::-;11355:3;11376:67;11440:2;11435:3;11376:67;:::i;:::-;11369:74;;11452:93;11541:3;11452:93;:::i;:::-;11570:2;11565:3;11561:12;11554:19;;11213:366;;;:::o;11585:419::-;11751:4;11789:2;11778:9;11774:18;11766:26;;11838:9;11832:4;11828:20;11824:1;11813:9;11809:17;11802:47;11866:131;11992:4;11866:131;:::i;:::-;11858:139;;11585:419;;;:::o;12010:191::-;12050:3;12069:20;12087:1;12069:20;:::i;:::-;12064:25;;12103:20;12121:1;12103:20;:::i;:::-;12098:25;;12146:1;12143;12139:9;12132:16;;12167:3;12164:1;12161:10;12158:36;;;12174:18;;:::i;:::-;12158:36;12010:191;;;;:::o;12207:223::-;12347:34;12343:1;12335:6;12331:14;12324:58;12416:6;12411:2;12403:6;12399:15;12392:31;12207:223;:::o;12436:366::-;12578:3;12599:67;12663:2;12658:3;12599:67;:::i;:::-;12592:74;;12675:93;12764:3;12675:93;:::i;:::-;12793:2;12788:3;12784:12;12777:19;;12436:366;;;:::o;12808:419::-;12974:4;13012:2;13001:9;12997:18;12989:26;;13061:9;13055:4;13051:20;13047:1;13036:9;13032:17;13025:47;13089:131;13215:4;13089:131;:::i;:::-;13081:139;;12808:419;;;:::o;13233:221::-;13373:34;13369:1;13361:6;13357:14;13350:58;13442:4;13437:2;13429:6;13425:15;13418:29;13233:221;:::o;13460:366::-;13602:3;13623:67;13687:2;13682:3;13623:67;:::i;:::-;13616:74;;13699:93;13788:3;13699:93;:::i;:::-;13817:2;13812:3;13808:12;13801:19;;13460:366;;;:::o;13832:419::-;13998:4;14036:2;14025:9;14021:18;14013:26;;14085:9;14079:4;14075:20;14071:1;14060:9;14056:17;14049:47;14113:131;14239:4;14113:131;:::i;:::-;14105:139;;13832:419;;;:::o;14257:224::-;14397:34;14393:1;14385:6;14381:14;14374:58;14466:7;14461:2;14453:6;14449:15;14442:32;14257:224;:::o;14487:366::-;14629:3;14650:67;14714:2;14709:3;14650:67;:::i;:::-;14643:74;;14726:93;14815:3;14726:93;:::i;:::-;14844:2;14839:3;14835:12;14828:19;;14487:366;;;:::o;14859:419::-;15025:4;15063:2;15052:9;15048:18;15040:26;;15112:9;15106:4;15102:20;15098:1;15087:9;15083:17;15076:47;15140:131;15266:4;15140:131;:::i;:::-;15132:139;;14859:419;;;:::o;15284:222::-;15424:34;15420:1;15412:6;15408:14;15401:58;15493:5;15488:2;15480:6;15476:15;15469:30;15284:222;:::o;15512:366::-;15654:3;15675:67;15739:2;15734:3;15675:67;:::i;:::-;15668:74;;15751:93;15840:3;15751:93;:::i;:::-;15869:2;15864:3;15860:12;15853:19;;15512:366;;;:::o;15884:419::-;16050:4;16088:2;16077:9;16073:18;16065:26;;16137:9;16131:4;16127:20;16123:1;16112:9;16108:17;16101:47;16165:131;16291:4;16165:131;:::i;:::-;16157:139;;15884:419;;;:::o;16309:228::-;16449:34;16445:1;16437:6;16433:14;16426:58;16518:11;16513:2;16505:6;16501:15;16494:36;16309:228;:::o;16543:366::-;16685:3;16706:67;16770:2;16765:3;16706:67;:::i;:::-;16699:74;;16782:93;16871:3;16782:93;:::i;:::-;16900:2;16895:3;16891:12;16884:19;;16543:366;;;:::o;16915:419::-;17081:4;17119:2;17108:9;17104:18;17096:26;;17168:9;17162:4;17158:20;17154:1;17143:9;17139:17;17132:47;17196:131;17322:4;17196:131;:::i;:::-;17188:139;;16915:419;;;:::o;17340:176::-;17480:28;17476:1;17468:6;17464:14;17457:52;17340:176;:::o;17522:366::-;17664:3;17685:67;17749:2;17744:3;17685:67;:::i;:::-;17678:74;;17761:93;17850:3;17761:93;:::i;:::-;17879:2;17874:3;17870:12;17863:19;;17522:366;;;:::o;17894:419::-;18060:4;18098:2;18087:9;18083:18;18075:26;;18147:9;18141:4;18137:20;18133:1;18122:9;18118:17;18111:47;18175:131;18301:4;18175:131;:::i;:::-;18167:139;;17894:419;;;:::o;18319:233::-;18358:3;18381:24;18399:5;18381:24;:::i;:::-;18372:33;;18427:66;18420:5;18417:77;18414:103;;18497:18;;:::i;:::-;18414:103;18544:1;18537:5;18533:13;18526:20;;18319:233;;;:::o;18558:434::-;18703:4;18741:2;18730:9;18726:18;18718:26;;18754:67;18818:1;18807:9;18803:17;18794:6;18754:67;:::i;:::-;18831:72;18899:2;18888:9;18884:18;18875:6;18831:72;:::i;:::-;18913;18981:2;18970:9;18966:18;18957:6;18913:72;:::i;:::-;18558:434;;;;;;:::o;18998:167::-;19035:3;19058:22;19074:5;19058:22;:::i;:::-;19049:31;;19102:4;19095:5;19092:15;19089:41;;19110:18;;:::i;:::-;19089:41;19157:1;19150:5;19146:13;19139:20;;18998:167;;;:::o;19171:442::-;19320:4;19358:2;19347:9;19343:18;19335:26;;19371:71;19439:1;19428:9;19424:17;19415:6;19371:71;:::i;:::-;19452:72;19520:2;19509:9;19505:18;19496:6;19452:72;:::i;:::-;19534;19602:2;19591:9;19587:18;19578:6;19534:72;:::i;:::-;19171:442;;;;;;:::o;19619:180::-;19667:77;19664:1;19657:88;19764:4;19761:1;19754:15;19788:4;19785:1;19778:15;19805:176;19837:1;19854:20;19872:1;19854:20;:::i;:::-;19849:25;;19888:20;19906:1;19888:20;:::i;:::-;19883:25;;19927:1;19917:35;;19932:18;;:::i;:::-;19917:35;19973:1;19970;19966:9;19961:14;;19805:176;;;;:::o;19987:442::-;20136:4;20174:2;20163:9;20159:18;20151:26;;20187:71;20255:1;20244:9;20240:17;20231:6;20187:71;:::i;:::-;20268:72;20336:2;20325:9;20321:18;20312:6;20268:72;:::i;:::-;20350;20418:2;20407:9;20403:18;20394:6;20350:72;:::i;:::-;19987:442;;;;;;:::o;20435:348::-;20475:7;20498:20;20516:1;20498:20;:::i;:::-;20493:25;;20532:20;20550:1;20532:20;:::i;:::-;20527:25;;20720:1;20652:66;20648:74;20645:1;20642:81;20637:1;20630:9;20623:17;20619:105;20616:131;;;20727:18;;:::i;:::-;20616:131;20775:1;20772;20768:9;20757:20;;20435:348;;;;:::o;20789:185::-;20829:1;20846:20;20864:1;20846:20;:::i;:::-;20841:25;;20880:20;20898:1;20880:20;:::i;:::-;20875:25;;20919:1;20909:35;;20924:18;;:::i;:::-;20909:35;20966:1;20963;20959:9;20954:14;;20789:185;;;;:::o

Swarm Source

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