ETH Price: $3,441.38 (-1.05%)
Gas: 3 Gwei

Token

ONE WORLD (ONEWORLD)
 

Overview

Max Total Supply

1,000,000,000 ONEWORLD

Holders

65

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
9,191,511.12 ONEWORLD

Value
$0.00
0x63BcadF3A14E1967d66886E7249327414136B8B0
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:
ONE

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-01-19
*/

/* SPDX-License-Identifier: MIT 

    ______    _____  ___    _______      __   __  ___     ______     _______   ___       ________   
   /    " \  (\"   \|"  \  /"     "|    |"  |/  \|  "|   /    " \   /"      \ |"  |     |"      "\  
  // ____  \ |.\\   \    |(: ______)    |'  /    \:  |  // ____  \ |:        |||  |     (.  ___  :) 
 /  /    ) :)|: \.   \\  | \/    |      |: /'        | /  /    ) :)|_____/   )|:  |     |: \   ) || 
(: (____/ // |.  \    \. | // ___)_      \//  /\'    |(: (____/ //  //      /  \  |___  (| (___\ || 
 \        /  |    \    \ |(:      "|     /   /  \\   | \        /  |:  __   \ ( \_|:  \ |:       :) 
  \"_____/    \___|\____\) \_______)    |___/    \___|  \"_____/   |__|  \___) \_______)(________/  

Twitter: https://twitter.com/oneworlderc20
Telegram: t.me/OneWorld_Quest
Website: https://oneworld.quest/                                                                                                  
*/

pragma solidity ^0.8.7;

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

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

contract Ownable is Context {
    address private _owner;
    address private _previousOwner;
    event OwnershipTransferred(
        address indexed previousOwner,
        address indexed newOwner
    );

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

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

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

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

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

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

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

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

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

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;

    function factory() external pure returns (address);

    function WETH() external pure returns (address);

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

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

    string private constant _name = "ONE WORLD";
    string private constant _symbol = "ONEWORLD";
    uint8 private constant _decimals = 9;

    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    uint256 private constant MAX = ~uint256(0);
    uint256 public _totalSupply = 1000000000 * 10**9;

    //Buy Fee
    uint256 private _taxFeeOnBuy = 12; // 10 after the first 48h

    //Sell Fee
    uint256 private _taxFeeOnSell = 24; // 12 after the first 48h

    //Original Fee
    uint256 private _taxFee = _taxFeeOnSell;

    uint256 private _previoustaxFee = _taxFee;

    mapping(address => bool) public blacklist;

    address payable public marketingAddress = payable(0x2c12Bafb9d1652644Ce052f7E20b6B6428c499E0);

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;

    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = true;
    
    uint256 public _maxTxAmount = 7500000 * 10**9; // 0.75%
    uint256 public _maxWalletSize = 20000000 * 10**9; // 2%
    uint256 public _tokenSwapThreshold = 1000000 * 10**9; //0.1%

    event MaxTxAmountUpdated(uint256 _maxTxAmount);

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

    constructor() {
        _balances[_msgSender()] = _totalSupply;

        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );
        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());

        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[marketingAddress] = true;

        emit Transfer(address(0), _msgSender(), _totalSupply);
    }

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

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

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

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

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

    function launch() public onlyOwner {    
        tradingOpen = true;
    }

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

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

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

    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) private {
        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 removeAllFee() private {
        if (_taxFee == 0) return;

        _previoustaxFee = _taxFee;

        _taxFee = 0;
    }

    function restoreAllFee() private {
        _taxFee = _previoustaxFee;
    }

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

    // Transfer functions
    function _transfer(
        address from,
        address to,
        uint256 amount
    ) private {
        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() && to != owner()) {
            //Trade start check
            require(tradingOpen,"TOKEN: This token isn't tradable yet");
            require(amount <= _maxTxAmount, "TOKEN: Max Transaction Limit");
            require(!blacklist[from] && !blacklist[to],"TOKEN: Your account is blacklisted!");
            
            if (to != uniswapV2Pair) {
                require(
                    balanceOf(to) + amount < _maxWalletSize,
                    "TOKEN: Balance exceeds wallet size!"
                );
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            bool shouldSwap = contractTokenBalance >= _tokenSwapThreshold;

            if (contractTokenBalance >= _maxTxAmount) {
                contractTokenBalance = _maxTxAmount;
            }

            if (shouldSwap && !inSwap && from != uniswapV2Pair && swapEnabled) {
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 0) {
                    sendETHtoMarketing(address(this).balance);
                }
            }
        }

        bool takeFee = true;

        //Transfer Tokens
        if (
            (_isExcludedFromFee[from] || _isExcludedFromFee[to]) ||
            (from != uniswapV2Pair && to != uniswapV2Pair)
        ) {
            takeFee = false;
        } else {
            //Set Fee for Buys
            if (from == uniswapV2Pair && to != address(uniswapV2Router)) {
                _taxFee = _taxFeeOnBuy;
            }

            //Set Fee for Sells
            if (to == uniswapV2Pair && from != address(uniswapV2Router)) {
                _taxFee = _taxFeeOnSell;
            }
        }

        _tokenTransfer(from, to, amount, takeFee);
    }

    function _tokenTransfer(
        address sender,
        address recipient,
        uint256 amount,
        bool takeFee
    ) private {
        if (!takeFee) removeAllFee();
        _transferStandard(sender, recipient, amount);
        if (!takeFee) restoreAllFee();
    }

    function _transferStandard(
        address sender,
        address recipient,
        uint256 amount
    ) private {
        uint256 feeAmount = amount.mul(_taxFee).div(100);
        uint256 remainingAmount = amount.sub(feeAmount);
        _balances[sender] = _balances[sender].sub(amount);
        _balances[address(this)] = _balances[address(this)].add(feeAmount);
        _balances[recipient] = _balances[recipient].add(remainingAmount);
        emit Transfer(sender, recipient, remainingAmount);
    }

    // Swap and send functions
    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

    function sendETHtoMarketing(uint256 amount) private {
        (bool success, ) = marketingAddress.call{value: amount}("");
        require(success, "Tx Failed");
    }

    function manualswap() external {
        require(_msgSender() == marketingAddress);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }

    function manualsend() external {
        require(_msgSender() == marketingAddress);
        uint256 contractETHBalance = address(this).balance;
        sendETHtoMarketing(contractETHBalance);
    }

    // Blacklist and whitelist
    function blacklistAddresses(address[] memory _blacklist) public onlyOwner {
        for (uint256 i = 0; i < _blacklist.length; i++) {
            blacklist[_blacklist[i]] = true;
        }
    }

    function whitelistAddress(address whitelist) external onlyOwner {
        blacklist[whitelist] = false;
    }

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

    // Setters
    function setExcludeFromFee(address account, bool excluded)
        external
        onlyOwner
    {
        _isExcludedFromFee[account] = excluded;
    }

    function setMarketingWalletAddress(address payable _marketingAddress)
        external
        onlyOwner
    {
        marketingAddress = _marketingAddress;
    }

    function setFee(
        uint256 taxFeeOnBuy,
        uint256 taxFeeOnSell
    ) public onlyOwner {
        _taxFeeOnBuy = taxFeeOnBuy;
        _taxFeeOnSell = taxFeeOnSell;
    }

    function setMinSwapTokensThreshold(uint256 tokenSwapThreshold)
        public
        onlyOwner
    {
        _tokenSwapThreshold = tokenSwapThreshold;
    }

    function setSwapEnabled(bool _swapEnabled) public onlyOwner {
        swapEnabled = _swapEnabled;
    }

    function setMaxTxnAmount(uint256 maxTxAmount) public onlyOwner {
        _maxTxAmount = maxTxAmount;
    }

    function setMaxWalletSize(uint256 maxWalletSize) public onlyOwner {
        _maxWalletSize = maxWalletSize;
    }

    // Enable the current contract to receive ETH
    receive() external payable {}
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_tokenSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"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":"address","name":"","type":"address"}],"name":"blacklist","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"_blacklist","type":"address[]"}],"name":"blacklistAddresses","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"setExcludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"taxFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnSell","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"_marketingAddress","type":"address"}],"name":"setMarketingWalletAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"setMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWalletSize","type":"uint256"}],"name":"setMaxWalletSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenSwapThreshold","type":"uint256"}],"name":"setMinSwapTokensThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_swapEnabled","type":"bool"}],"name":"setSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"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":"address","name":"whitelist","type":"address"}],"name":"whitelistAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052670de0b6b3a7640000600555600c6006556018600755600754600855600854600955732c12bafb9d1652644ce052f7e20b6b6428c499e0600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600d60156101000a81548160ff0219169083151502179055506001600d60166101000a81548160ff021916908315150217905550661aa535d3d0c000600e5566470de4df820000600f5566038d7ea4c68000601055348015620000df57600080fd5b506000620000f2620005cd60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35060055460026000620001a7620005cd60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200028657600080fd5b505afa1580156200029b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002c1919062000615565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200032457600080fd5b505afa15801562000339573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200035f919062000615565b6040518363ffffffff1660e01b81526004016200037e92919062000669565b602060405180830381600087803b1580156200039957600080fd5b505af1158015620003ae573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003d4919062000615565b600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600460006200042a620005d560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200055d620005cd60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600554604051620005be919062000696565b60405180910390a35062000710565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000815190506200060f81620006f6565b92915050565b6000602082840312156200062e576200062d620006f1565b5b60006200063e84828501620005fe565b91505092915050565b6200065281620006b3565b82525050565b6200066381620006e7565b82525050565b600060408201905062000680600083018562000647565b6200068f602083018462000647565b9392505050565b6000602082019050620006ad600083018462000658565b92915050565b6000620006c082620006c7565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600080fd5b6200070181620006b3565b81146200070d57600080fd5b50565b61386080620007206000396000f3fe6080604052600436106101e75760003560e01c806374010ece11610102578063a9059cbb11610095578063e01af92c11610064578063e01af92c146106b5578063ea1644d5146106de578063f16f07ae14610707578063f9f92be414610732576101ee565b8063a9059cbb146105fb578063af9549e014610638578063c3c8cd8014610661578063dd62ed3e14610678576101ee565b80638f9a55c0116100d15780638f9a55c01461055157806395d89b411461057c57806398a5c315146105a7578063a5ece941146105d0576101ee565b806374010ece146104a957806377a54eb8146104d25780637d1db4a5146104fb5780638da5cb5b14610526576101ee565b8063415665851161017a5780635342acb4116101495780635342acb4146104015780636fc3eaec1461043e57806370a0823114610455578063715018a614610492576101ee565b8063415665851461035b57806349bd5a5e146103845780634cb80fd5146103af57806352f7c988146103d8576101ee565b806318160ddd116101b657806318160ddd1461029d57806323b872dd146102c8578063313ce567146103055780633eaaf86b14610330576101ee565b806301339c21146101f357806306fdde031461020a578063095ea7b3146102355780631694505e14610272576101ee565b366101ee57005b600080fd5b3480156101ff57600080fd5b5061020861076f565b005b34801561021657600080fd5b5061021f610821565b60405161022c9190612de3565b60405180910390f35b34801561024157600080fd5b5061025c6004803603810190610257919061292e565b61085e565b6040516102699190612dad565b60405180910390f35b34801561027e57600080fd5b5061028761087c565b6040516102949190612dc8565b60405180910390f35b3480156102a957600080fd5b506102b26108a2565b6040516102bf9190612fa5565b60405180910390f35b3480156102d457600080fd5b506102ef60048036038101906102ea919061289b565b6108ac565b6040516102fc9190612dad565b60405180910390f35b34801561031157600080fd5b5061031a610985565b604051610327919061301a565b60405180910390f35b34801561033c57600080fd5b5061034561098e565b6040516103529190612fa5565b60405180910390f35b34801561036757600080fd5b50610382600480360381019061037d91906127d4565b610994565b005b34801561039057600080fd5b50610399610a84565b6040516103a69190612d77565b60405180910390f35b3480156103bb57600080fd5b506103d660048036038101906103d1919061282e565b610aaa565b005b3480156103e457600080fd5b506103ff60048036038101906103fa9190612a11565b610b83565b005b34801561040d57600080fd5b50610428600480360381019061042391906127d4565b610c2a565b6040516104359190612dad565b60405180910390f35b34801561044a57600080fd5b50610453610c80565b005b34801561046157600080fd5b5061047c600480360381019061047791906127d4565b610cf2565b6040516104899190612fa5565b60405180910390f35b34801561049e57600080fd5b506104a7610d3b565b005b3480156104b557600080fd5b506104d060048036038101906104cb91906129e4565b610e8e565b005b3480156104de57600080fd5b506104f960048036038101906104f4919061296e565b610f2d565b005b34801561050757600080fd5b50610510611057565b60405161051d9190612fa5565b60405180910390f35b34801561053257600080fd5b5061053b61105d565b6040516105489190612d77565b60405180910390f35b34801561055d57600080fd5b50610566611086565b6040516105739190612fa5565b60405180910390f35b34801561058857600080fd5b5061059161108c565b60405161059e9190612de3565b60405180910390f35b3480156105b357600080fd5b506105ce60048036038101906105c991906129e4565b6110c9565b005b3480156105dc57600080fd5b506105e5611168565b6040516105f29190612d92565b60405180910390f35b34801561060757600080fd5b50610622600480360381019061061d919061292e565b61118e565b60405161062f9190612dad565b60405180910390f35b34801561064457600080fd5b5061065f600480360381019061065a91906128ee565b6111ac565b005b34801561066d57600080fd5b5061067661129c565b005b34801561068457600080fd5b5061069f600480360381019061069a919061285b565b611316565b6040516106ac9190612fa5565b60405180910390f35b3480156106c157600080fd5b506106dc60048036038101906106d791906129b7565b61139d565b005b3480156106ea57600080fd5b50610705600480360381019061070091906129e4565b61144f565b005b34801561071357600080fd5b5061071c6114ee565b6040516107299190612fa5565b60405180910390f35b34801561073e57600080fd5b50610759600480360381019061075491906127d4565b6114f4565b6040516107669190612dad565b60405180910390f35b610777611514565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610804576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107fb90612f05565b60405180910390fd5b6001600d60146101000a81548160ff021916908315150217905550565b60606040518060400160405280600981526020017f4f4e4520574f524c440000000000000000000000000000000000000000000000815250905090565b600061087261086b611514565b848461151c565b6001905092915050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600554905090565b60006108b98484846116e7565b61097a846108c5611514565b6109758560405180606001604052806028815260200161380360289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061092b611514565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e759092919063ffffffff16565b61151c565b600190509392505050565b60006009905090565b60055481565b61099c611514565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a29576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a2090612f05565b60405180910390fd5b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610ab2611514565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b3f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b3690612f05565b60405180910390fd5b80600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610b8b611514565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c18576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0f90612f05565b60405180910390fd5b81600681905550806007819055505050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610cc1611514565b73ffffffffffffffffffffffffffffffffffffffff1614610ce157600080fd5b6000479050610cef81611ed9565b50565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610d43611514565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dd0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dc790612f05565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610e96611514565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f23576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1a90612f05565b60405180910390fd5b80600e8190555050565b610f35611514565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fc2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fb990612f05565b60405180910390fd5b60005b8151811015611053576001600a6000848481518110610fe757610fe66133b5565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061104b9061330e565b915050610fc5565b5050565b600e5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600f5481565b60606040518060400160405280600881526020017f4f4e45574f524c44000000000000000000000000000000000000000000000000815250905090565b6110d1611514565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461115e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161115590612f05565b60405180910390fd5b8060108190555050565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006111a261119b611514565b84846116e7565b6001905092915050565b6111b4611514565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611241576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123890612f05565b60405180910390fd5b80600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166112dd611514565b73ffffffffffffffffffffffffffffffffffffffff16146112fd57600080fd5b600061130830610cf2565b905061131381611fab565b50565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6113a5611514565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611432576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142990612f05565b60405180910390fd5b80600d60166101000a81548160ff02191690831515021790555050565b611457611514565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114db90612f05565b60405180910390fd5b80600f8190555050565b60105481565b600a6020528060005260406000206000915054906101000a900460ff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561158c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158390612f85565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156115fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115f390612e45565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516116da9190612fa5565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611757576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174e90612f45565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156117c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117be90612e05565b60405180910390fd5b6000811161180a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161180190612f25565b60405180910390fd5b61181261105d565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611880575061185061105d565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611b8657600d60149054906101000a900460ff166118d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118cb90612ea5565b60405180910390fd5b600e54811115611919576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161191090612e25565b60405180910390fd5b600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156119bd5750600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6119fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119f390612e65565b60405180910390fd5b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611aa957600f5481611a5e84610cf2565b611a6891906130e6565b10611aa8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a9f90612f65565b60405180910390fd5b5b6000611ab430610cf2565b905060006010548210159050600e548210611acf57600e5491505b808015611ae95750600d60159054906101000a900460ff16155b8015611b435750600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611b5b5750600d60169054906101000a900460ff165b15611b8357611b6982611fab565b60004790506000811115611b8157611b8047611ed9565b5b505b50505b600060019050600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611c2d5750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611ce05750600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611cdf5750600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15611cee5760009050611e63565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611d995750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611da8576006546008819055505b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611e535750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611e62576007546008819055505b5b611e6f84848484612233565b50505050565b6000838311158290611ebd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eb49190612de3565b60405180910390fd5b5060008385611ecc91906131c7565b9050809150509392505050565b6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682604051611f2190612d62565b60006040518083038185875af1925050503d8060008114611f5e576040519150601f19603f3d011682016040523d82523d6000602084013e611f63565b606091505b5050905080611fa7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f9e90612ec5565b60405180910390fd5b5050565b6001600d60156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611fe357611fe26133e4565b5b6040519080825280602002602001820160405280156120115781602001602082028036833780820191505090505b5090503081600081518110612029576120286133b5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156120cb57600080fd5b505afa1580156120df573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121039190612801565b81600181518110612117576121166133b5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061217e30600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461151c565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016121e2959493929190612fc0565b600060405180830381600087803b1580156121fc57600080fd5b505af1158015612210573d6000803e3d6000fd5b50505050506000600d60156101000a81548160ff02191690831515021790555050565b8061224157612240612260565b5b61224c848484612284565b8061225a576122596124f2565b5b50505050565b6000600854141561227057612282565b60085460098190555060006008819055505b565b60006122ae60646122a0600854856124fd90919063ffffffff16565b61257890919063ffffffff16565b905060006122c582846125c290919063ffffffff16565b905061231983600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125c290919063ffffffff16565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506123ae82600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461260c90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061244381600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461260c90919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516124e39190612fa5565b60405180910390a35050505050565b600954600881905550565b6000808314156125105760009050612572565b6000828461251e919061316d565b905082848261252d919061313c565b1461256d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161256490612ee5565b60405180910390fd5b809150505b92915050565b60006125ba83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061266a565b905092915050565b600061260483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611e75565b905092915050565b600080828461261b91906130e6565b905083811015612660576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161265790612e85565b60405180910390fd5b8091505092915050565b600080831182906126b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126a89190612de3565b60405180910390fd5b50600083856126c0919061313c565b9050809150509392505050565b60006126e06126db8461305a565b613035565b9050808382526020820190508285602086028201111561270357612702613418565b5b60005b858110156127335781612719888261273d565b845260208401935060208301925050600181019050612706565b5050509392505050565b60008135905061274c816137a6565b92915050565b600081519050612761816137a6565b92915050565b600081359050612776816137bd565b92915050565b600082601f83011261279157612790613413565b5b81356127a18482602086016126cd565b91505092915050565b6000813590506127b9816137d4565b92915050565b6000813590506127ce816137eb565b92915050565b6000602082840312156127ea576127e9613422565b5b60006127f88482850161273d565b91505092915050565b60006020828403121561281757612816613422565b5b600061282584828501612752565b91505092915050565b60006020828403121561284457612843613422565b5b600061285284828501612767565b91505092915050565b6000806040838503121561287257612871613422565b5b60006128808582860161273d565b92505060206128918582860161273d565b9150509250929050565b6000806000606084860312156128b4576128b3613422565b5b60006128c28682870161273d565b93505060206128d38682870161273d565b92505060406128e4868287016127bf565b9150509250925092565b6000806040838503121561290557612904613422565b5b60006129138582860161273d565b9250506020612924858286016127aa565b9150509250929050565b6000806040838503121561294557612944613422565b5b60006129538582860161273d565b9250506020612964858286016127bf565b9150509250929050565b60006020828403121561298457612983613422565b5b600082013567ffffffffffffffff8111156129a2576129a161341d565b5b6129ae8482850161277c565b91505092915050565b6000602082840312156129cd576129cc613422565b5b60006129db848285016127aa565b91505092915050565b6000602082840312156129fa576129f9613422565b5b6000612a08848285016127bf565b91505092915050565b60008060408385031215612a2857612a27613422565b5b6000612a36858286016127bf565b9250506020612a47858286016127bf565b9150509250929050565b6000612a5d8383612a78565b60208301905092915050565b612a728161320d565b82525050565b612a81816131fb565b82525050565b612a90816131fb565b82525050565b6000612aa182613096565b612aab81856130b9565b9350612ab683613086565b8060005b83811015612ae7578151612ace8882612a51565b9750612ad9836130ac565b925050600181019050612aba565b5085935050505092915050565b612afd8161321f565b82525050565b612b0c81613262565b82525050565b612b1b81613274565b82525050565b6000612b2c826130a1565b612b3681856130d5565b9350612b468185602086016132aa565b612b4f81613427565b840191505092915050565b6000612b676023836130d5565b9150612b7282613438565b604082019050919050565b6000612b8a601c836130d5565b9150612b9582613487565b602082019050919050565b6000612bad6022836130d5565b9150612bb8826134b0565b604082019050919050565b6000612bd06023836130d5565b9150612bdb826134ff565b604082019050919050565b6000612bf3601b836130d5565b9150612bfe8261354e565b602082019050919050565b6000612c166024836130d5565b9150612c2182613577565b604082019050919050565b6000612c396009836130d5565b9150612c44826135c6565b602082019050919050565b6000612c5c6021836130d5565b9150612c67826135ef565b604082019050919050565b6000612c7f6020836130d5565b9150612c8a8261363e565b602082019050919050565b6000612ca26029836130d5565b9150612cad82613667565b604082019050919050565b6000612cc56025836130d5565b9150612cd0826136b6565b604082019050919050565b6000612ce86023836130d5565b9150612cf382613705565b604082019050919050565b6000612d0b6000836130ca565b9150612d1682613754565b600082019050919050565b6000612d2e6024836130d5565b9150612d3982613757565b604082019050919050565b612d4d8161324b565b82525050565b612d5c81613255565b82525050565b6000612d6d82612cfe565b9150819050919050565b6000602082019050612d8c6000830184612a87565b92915050565b6000602082019050612da76000830184612a69565b92915050565b6000602082019050612dc26000830184612af4565b92915050565b6000602082019050612ddd6000830184612b03565b92915050565b60006020820190508181036000830152612dfd8184612b21565b905092915050565b60006020820190508181036000830152612e1e81612b5a565b9050919050565b60006020820190508181036000830152612e3e81612b7d565b9050919050565b60006020820190508181036000830152612e5e81612ba0565b9050919050565b60006020820190508181036000830152612e7e81612bc3565b9050919050565b60006020820190508181036000830152612e9e81612be6565b9050919050565b60006020820190508181036000830152612ebe81612c09565b9050919050565b60006020820190508181036000830152612ede81612c2c565b9050919050565b60006020820190508181036000830152612efe81612c4f565b9050919050565b60006020820190508181036000830152612f1e81612c72565b9050919050565b60006020820190508181036000830152612f3e81612c95565b9050919050565b60006020820190508181036000830152612f5e81612cb8565b9050919050565b60006020820190508181036000830152612f7e81612cdb565b9050919050565b60006020820190508181036000830152612f9e81612d21565b9050919050565b6000602082019050612fba6000830184612d44565b92915050565b600060a082019050612fd56000830188612d44565b612fe26020830187612b12565b8181036040830152612ff48186612a96565b90506130036060830185612a87565b6130106080830184612d44565b9695505050505050565b600060208201905061302f6000830184612d53565b92915050565b600061303f613050565b905061304b82826132dd565b919050565b6000604051905090565b600067ffffffffffffffff821115613075576130746133e4565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b60006130f18261324b565b91506130fc8361324b565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561313157613130613357565b5b828201905092915050565b60006131478261324b565b91506131528361324b565b92508261316257613161613386565b5b828204905092915050565b60006131788261324b565b91506131838361324b565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156131bc576131bb613357565b5b828202905092915050565b60006131d28261324b565b91506131dd8361324b565b9250828210156131f0576131ef613357565b5b828203905092915050565b60006132068261322b565b9050919050565b60006132188261322b565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061326d82613286565b9050919050565b600061327f8261324b565b9050919050565b600061329182613298565b9050919050565b60006132a38261322b565b9050919050565b60005b838110156132c85780820151818401526020810190506132ad565b838111156132d7576000848401525b50505050565b6132e682613427565b810181811067ffffffffffffffff82111715613305576133046133e4565b5b80604052505050565b60006133198261324b565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561334c5761334b613357565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f544f4b454e3a205468697320746f6b656e2069736e2774207472616461626c6560008201527f2079657400000000000000000000000000000000000000000000000000000000602082015250565b7f5478204661696c65640000000000000000000000000000000000000000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b50565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6137af816131fb565b81146137ba57600080fd5b50565b6137c68161320d565b81146137d157600080fd5b50565b6137dd8161321f565b81146137e857600080fd5b50565b6137f48161324b565b81146137ff57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122088f5f573699953f70a6d2ae6191563b1741813c2694b93162518c22dcbb225e264736f6c63430008070033

Deployed Bytecode

0x6080604052600436106101e75760003560e01c806374010ece11610102578063a9059cbb11610095578063e01af92c11610064578063e01af92c146106b5578063ea1644d5146106de578063f16f07ae14610707578063f9f92be414610732576101ee565b8063a9059cbb146105fb578063af9549e014610638578063c3c8cd8014610661578063dd62ed3e14610678576101ee565b80638f9a55c0116100d15780638f9a55c01461055157806395d89b411461057c57806398a5c315146105a7578063a5ece941146105d0576101ee565b806374010ece146104a957806377a54eb8146104d25780637d1db4a5146104fb5780638da5cb5b14610526576101ee565b8063415665851161017a5780635342acb4116101495780635342acb4146104015780636fc3eaec1461043e57806370a0823114610455578063715018a614610492576101ee565b8063415665851461035b57806349bd5a5e146103845780634cb80fd5146103af57806352f7c988146103d8576101ee565b806318160ddd116101b657806318160ddd1461029d57806323b872dd146102c8578063313ce567146103055780633eaaf86b14610330576101ee565b806301339c21146101f357806306fdde031461020a578063095ea7b3146102355780631694505e14610272576101ee565b366101ee57005b600080fd5b3480156101ff57600080fd5b5061020861076f565b005b34801561021657600080fd5b5061021f610821565b60405161022c9190612de3565b60405180910390f35b34801561024157600080fd5b5061025c6004803603810190610257919061292e565b61085e565b6040516102699190612dad565b60405180910390f35b34801561027e57600080fd5b5061028761087c565b6040516102949190612dc8565b60405180910390f35b3480156102a957600080fd5b506102b26108a2565b6040516102bf9190612fa5565b60405180910390f35b3480156102d457600080fd5b506102ef60048036038101906102ea919061289b565b6108ac565b6040516102fc9190612dad565b60405180910390f35b34801561031157600080fd5b5061031a610985565b604051610327919061301a565b60405180910390f35b34801561033c57600080fd5b5061034561098e565b6040516103529190612fa5565b60405180910390f35b34801561036757600080fd5b50610382600480360381019061037d91906127d4565b610994565b005b34801561039057600080fd5b50610399610a84565b6040516103a69190612d77565b60405180910390f35b3480156103bb57600080fd5b506103d660048036038101906103d1919061282e565b610aaa565b005b3480156103e457600080fd5b506103ff60048036038101906103fa9190612a11565b610b83565b005b34801561040d57600080fd5b50610428600480360381019061042391906127d4565b610c2a565b6040516104359190612dad565b60405180910390f35b34801561044a57600080fd5b50610453610c80565b005b34801561046157600080fd5b5061047c600480360381019061047791906127d4565b610cf2565b6040516104899190612fa5565b60405180910390f35b34801561049e57600080fd5b506104a7610d3b565b005b3480156104b557600080fd5b506104d060048036038101906104cb91906129e4565b610e8e565b005b3480156104de57600080fd5b506104f960048036038101906104f4919061296e565b610f2d565b005b34801561050757600080fd5b50610510611057565b60405161051d9190612fa5565b60405180910390f35b34801561053257600080fd5b5061053b61105d565b6040516105489190612d77565b60405180910390f35b34801561055d57600080fd5b50610566611086565b6040516105739190612fa5565b60405180910390f35b34801561058857600080fd5b5061059161108c565b60405161059e9190612de3565b60405180910390f35b3480156105b357600080fd5b506105ce60048036038101906105c991906129e4565b6110c9565b005b3480156105dc57600080fd5b506105e5611168565b6040516105f29190612d92565b60405180910390f35b34801561060757600080fd5b50610622600480360381019061061d919061292e565b61118e565b60405161062f9190612dad565b60405180910390f35b34801561064457600080fd5b5061065f600480360381019061065a91906128ee565b6111ac565b005b34801561066d57600080fd5b5061067661129c565b005b34801561068457600080fd5b5061069f600480360381019061069a919061285b565b611316565b6040516106ac9190612fa5565b60405180910390f35b3480156106c157600080fd5b506106dc60048036038101906106d791906129b7565b61139d565b005b3480156106ea57600080fd5b50610705600480360381019061070091906129e4565b61144f565b005b34801561071357600080fd5b5061071c6114ee565b6040516107299190612fa5565b60405180910390f35b34801561073e57600080fd5b50610759600480360381019061075491906127d4565b6114f4565b6040516107669190612dad565b60405180910390f35b610777611514565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610804576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107fb90612f05565b60405180910390fd5b6001600d60146101000a81548160ff021916908315150217905550565b60606040518060400160405280600981526020017f4f4e4520574f524c440000000000000000000000000000000000000000000000815250905090565b600061087261086b611514565b848461151c565b6001905092915050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600554905090565b60006108b98484846116e7565b61097a846108c5611514565b6109758560405180606001604052806028815260200161380360289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061092b611514565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e759092919063ffffffff16565b61151c565b600190509392505050565b60006009905090565b60055481565b61099c611514565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a29576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a2090612f05565b60405180910390fd5b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610ab2611514565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b3f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b3690612f05565b60405180910390fd5b80600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610b8b611514565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c18576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0f90612f05565b60405180910390fd5b81600681905550806007819055505050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610cc1611514565b73ffffffffffffffffffffffffffffffffffffffff1614610ce157600080fd5b6000479050610cef81611ed9565b50565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610d43611514565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dd0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dc790612f05565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610e96611514565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f23576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1a90612f05565b60405180910390fd5b80600e8190555050565b610f35611514565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fc2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fb990612f05565b60405180910390fd5b60005b8151811015611053576001600a6000848481518110610fe757610fe66133b5565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061104b9061330e565b915050610fc5565b5050565b600e5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600f5481565b60606040518060400160405280600881526020017f4f4e45574f524c44000000000000000000000000000000000000000000000000815250905090565b6110d1611514565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461115e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161115590612f05565b60405180910390fd5b8060108190555050565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006111a261119b611514565b84846116e7565b6001905092915050565b6111b4611514565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611241576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123890612f05565b60405180910390fd5b80600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166112dd611514565b73ffffffffffffffffffffffffffffffffffffffff16146112fd57600080fd5b600061130830610cf2565b905061131381611fab565b50565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6113a5611514565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611432576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142990612f05565b60405180910390fd5b80600d60166101000a81548160ff02191690831515021790555050565b611457611514565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114db90612f05565b60405180910390fd5b80600f8190555050565b60105481565b600a6020528060005260406000206000915054906101000a900460ff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561158c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158390612f85565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156115fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115f390612e45565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516116da9190612fa5565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611757576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174e90612f45565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156117c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117be90612e05565b60405180910390fd5b6000811161180a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161180190612f25565b60405180910390fd5b61181261105d565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611880575061185061105d565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611b8657600d60149054906101000a900460ff166118d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118cb90612ea5565b60405180910390fd5b600e54811115611919576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161191090612e25565b60405180910390fd5b600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156119bd5750600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6119fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119f390612e65565b60405180910390fd5b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611aa957600f5481611a5e84610cf2565b611a6891906130e6565b10611aa8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a9f90612f65565b60405180910390fd5b5b6000611ab430610cf2565b905060006010548210159050600e548210611acf57600e5491505b808015611ae95750600d60159054906101000a900460ff16155b8015611b435750600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611b5b5750600d60169054906101000a900460ff165b15611b8357611b6982611fab565b60004790506000811115611b8157611b8047611ed9565b5b505b50505b600060019050600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611c2d5750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611ce05750600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611cdf5750600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15611cee5760009050611e63565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611d995750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611da8576006546008819055505b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611e535750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611e62576007546008819055505b5b611e6f84848484612233565b50505050565b6000838311158290611ebd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eb49190612de3565b60405180910390fd5b5060008385611ecc91906131c7565b9050809150509392505050565b6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682604051611f2190612d62565b60006040518083038185875af1925050503d8060008114611f5e576040519150601f19603f3d011682016040523d82523d6000602084013e611f63565b606091505b5050905080611fa7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f9e90612ec5565b60405180910390fd5b5050565b6001600d60156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611fe357611fe26133e4565b5b6040519080825280602002602001820160405280156120115781602001602082028036833780820191505090505b5090503081600081518110612029576120286133b5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156120cb57600080fd5b505afa1580156120df573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121039190612801565b81600181518110612117576121166133b5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061217e30600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461151c565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016121e2959493929190612fc0565b600060405180830381600087803b1580156121fc57600080fd5b505af1158015612210573d6000803e3d6000fd5b50505050506000600d60156101000a81548160ff02191690831515021790555050565b8061224157612240612260565b5b61224c848484612284565b8061225a576122596124f2565b5b50505050565b6000600854141561227057612282565b60085460098190555060006008819055505b565b60006122ae60646122a0600854856124fd90919063ffffffff16565b61257890919063ffffffff16565b905060006122c582846125c290919063ffffffff16565b905061231983600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125c290919063ffffffff16565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506123ae82600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461260c90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061244381600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461260c90919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516124e39190612fa5565b60405180910390a35050505050565b600954600881905550565b6000808314156125105760009050612572565b6000828461251e919061316d565b905082848261252d919061313c565b1461256d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161256490612ee5565b60405180910390fd5b809150505b92915050565b60006125ba83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061266a565b905092915050565b600061260483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611e75565b905092915050565b600080828461261b91906130e6565b905083811015612660576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161265790612e85565b60405180910390fd5b8091505092915050565b600080831182906126b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126a89190612de3565b60405180910390fd5b50600083856126c0919061313c565b9050809150509392505050565b60006126e06126db8461305a565b613035565b9050808382526020820190508285602086028201111561270357612702613418565b5b60005b858110156127335781612719888261273d565b845260208401935060208301925050600181019050612706565b5050509392505050565b60008135905061274c816137a6565b92915050565b600081519050612761816137a6565b92915050565b600081359050612776816137bd565b92915050565b600082601f83011261279157612790613413565b5b81356127a18482602086016126cd565b91505092915050565b6000813590506127b9816137d4565b92915050565b6000813590506127ce816137eb565b92915050565b6000602082840312156127ea576127e9613422565b5b60006127f88482850161273d565b91505092915050565b60006020828403121561281757612816613422565b5b600061282584828501612752565b91505092915050565b60006020828403121561284457612843613422565b5b600061285284828501612767565b91505092915050565b6000806040838503121561287257612871613422565b5b60006128808582860161273d565b92505060206128918582860161273d565b9150509250929050565b6000806000606084860312156128b4576128b3613422565b5b60006128c28682870161273d565b93505060206128d38682870161273d565b92505060406128e4868287016127bf565b9150509250925092565b6000806040838503121561290557612904613422565b5b60006129138582860161273d565b9250506020612924858286016127aa565b9150509250929050565b6000806040838503121561294557612944613422565b5b60006129538582860161273d565b9250506020612964858286016127bf565b9150509250929050565b60006020828403121561298457612983613422565b5b600082013567ffffffffffffffff8111156129a2576129a161341d565b5b6129ae8482850161277c565b91505092915050565b6000602082840312156129cd576129cc613422565b5b60006129db848285016127aa565b91505092915050565b6000602082840312156129fa576129f9613422565b5b6000612a08848285016127bf565b91505092915050565b60008060408385031215612a2857612a27613422565b5b6000612a36858286016127bf565b9250506020612a47858286016127bf565b9150509250929050565b6000612a5d8383612a78565b60208301905092915050565b612a728161320d565b82525050565b612a81816131fb565b82525050565b612a90816131fb565b82525050565b6000612aa182613096565b612aab81856130b9565b9350612ab683613086565b8060005b83811015612ae7578151612ace8882612a51565b9750612ad9836130ac565b925050600181019050612aba565b5085935050505092915050565b612afd8161321f565b82525050565b612b0c81613262565b82525050565b612b1b81613274565b82525050565b6000612b2c826130a1565b612b3681856130d5565b9350612b468185602086016132aa565b612b4f81613427565b840191505092915050565b6000612b676023836130d5565b9150612b7282613438565b604082019050919050565b6000612b8a601c836130d5565b9150612b9582613487565b602082019050919050565b6000612bad6022836130d5565b9150612bb8826134b0565b604082019050919050565b6000612bd06023836130d5565b9150612bdb826134ff565b604082019050919050565b6000612bf3601b836130d5565b9150612bfe8261354e565b602082019050919050565b6000612c166024836130d5565b9150612c2182613577565b604082019050919050565b6000612c396009836130d5565b9150612c44826135c6565b602082019050919050565b6000612c5c6021836130d5565b9150612c67826135ef565b604082019050919050565b6000612c7f6020836130d5565b9150612c8a8261363e565b602082019050919050565b6000612ca26029836130d5565b9150612cad82613667565b604082019050919050565b6000612cc56025836130d5565b9150612cd0826136b6565b604082019050919050565b6000612ce86023836130d5565b9150612cf382613705565b604082019050919050565b6000612d0b6000836130ca565b9150612d1682613754565b600082019050919050565b6000612d2e6024836130d5565b9150612d3982613757565b604082019050919050565b612d4d8161324b565b82525050565b612d5c81613255565b82525050565b6000612d6d82612cfe565b9150819050919050565b6000602082019050612d8c6000830184612a87565b92915050565b6000602082019050612da76000830184612a69565b92915050565b6000602082019050612dc26000830184612af4565b92915050565b6000602082019050612ddd6000830184612b03565b92915050565b60006020820190508181036000830152612dfd8184612b21565b905092915050565b60006020820190508181036000830152612e1e81612b5a565b9050919050565b60006020820190508181036000830152612e3e81612b7d565b9050919050565b60006020820190508181036000830152612e5e81612ba0565b9050919050565b60006020820190508181036000830152612e7e81612bc3565b9050919050565b60006020820190508181036000830152612e9e81612be6565b9050919050565b60006020820190508181036000830152612ebe81612c09565b9050919050565b60006020820190508181036000830152612ede81612c2c565b9050919050565b60006020820190508181036000830152612efe81612c4f565b9050919050565b60006020820190508181036000830152612f1e81612c72565b9050919050565b60006020820190508181036000830152612f3e81612c95565b9050919050565b60006020820190508181036000830152612f5e81612cb8565b9050919050565b60006020820190508181036000830152612f7e81612cdb565b9050919050565b60006020820190508181036000830152612f9e81612d21565b9050919050565b6000602082019050612fba6000830184612d44565b92915050565b600060a082019050612fd56000830188612d44565b612fe26020830187612b12565b8181036040830152612ff48186612a96565b90506130036060830185612a87565b6130106080830184612d44565b9695505050505050565b600060208201905061302f6000830184612d53565b92915050565b600061303f613050565b905061304b82826132dd565b919050565b6000604051905090565b600067ffffffffffffffff821115613075576130746133e4565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b60006130f18261324b565b91506130fc8361324b565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561313157613130613357565b5b828201905092915050565b60006131478261324b565b91506131528361324b565b92508261316257613161613386565b5b828204905092915050565b60006131788261324b565b91506131838361324b565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156131bc576131bb613357565b5b828202905092915050565b60006131d28261324b565b91506131dd8361324b565b9250828210156131f0576131ef613357565b5b828203905092915050565b60006132068261322b565b9050919050565b60006132188261322b565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061326d82613286565b9050919050565b600061327f8261324b565b9050919050565b600061329182613298565b9050919050565b60006132a38261322b565b9050919050565b60005b838110156132c85780820151818401526020810190506132ad565b838111156132d7576000848401525b50505050565b6132e682613427565b810181811067ffffffffffffffff82111715613305576133046133e4565b5b80604052505050565b60006133198261324b565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561334c5761334b613357565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f544f4b454e3a205468697320746f6b656e2069736e2774207472616461626c6560008201527f2079657400000000000000000000000000000000000000000000000000000000602082015250565b7f5478204661696c65640000000000000000000000000000000000000000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b50565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6137af816131fb565b81146137ba57600080fd5b50565b6137c68161320d565b81146137d157600080fd5b50565b6137dd8161321f565b81146137e857600080fd5b50565b6137f48161324b565b81146137ff57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122088f5f573699953f70a6d2ae6191563b1741813c2694b93162518c22dcbb225e264736f6c63430008070033

Deployed Bytecode Sourcemap

4784:10219:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7408:76;;;;;;;;;;;;;:::i;:::-;;6896:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7891:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5741:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7173:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8699:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7082:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5246:48;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13567:111;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5789:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14030:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14205:185;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13716:124;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13120:201;;;;;;;;;;;;;:::i;:::-;;7281:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2525:148;;;;;;;;;;;;;:::i;:::-;;14681:108;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13361:198;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5935:45;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2311:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5996:48;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6987:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14398:162;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5639:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7492:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13864:158;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12916:196;;;;;;;;;;;;;:::i;:::-;;7699:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14568:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14797:115;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6057:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5589:41;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7408:76;2448:12;:10;:12::i;:::-;2438:22;;:6;;;;;;;;;;:22;;;2430:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;7472:4:::1;7458:11;;:18;;;;;;;;;;;;;;;;;;7408:76::o:0;6896:83::-;6933:13;6966:5;;;;;;;;;;;;;;;;;6959:12;;6896:83;:::o;7891:193::-;7993:4;8015:39;8024:12;:10;:12::i;:::-;8038:7;8047:6;8015:8;:39::i;:::-;8072:4;8065:11;;7891:193;;;;:::o;5741:41::-;;;;;;;;;;;;;:::o;7173:100::-;7226:7;7253:12;;7246:19;;7173:100;:::o;8699:446::-;8831:4;8848:36;8858:6;8866:9;8877:6;8848:9;:36::i;:::-;8895:220;8918:6;8939:12;:10;:12::i;:::-;8966:138;9022:6;8966:138;;;;;;;;;;;;;;;;;:11;:19;8978:6;8966:19;;;;;;;;;;;;;;;:33;8986:12;:10;:12::i;:::-;8966:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;8895:8;:220::i;:::-;9133:4;9126:11;;8699:446;;;;;:::o;7082:83::-;7123:5;5003:1;7141:16;;7082:83;:::o;5246:48::-;;;;:::o;13567:111::-;2448:12;:10;:12::i;:::-;2438:22;;:6;;;;;;;;;;:22;;;2430:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13665:5:::1;13642:9;:20;13652:9;13642:20;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;13567:111:::0;:::o;5789:28::-;;;;;;;;;;;;;:::o;14030:167::-;2448:12;:10;:12::i;:::-;2438:22;;:6;;;;;;;;;;:22;;;2430:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14172:17:::1;14153:16;;:36;;;;;;;;;;;;;;;;;;14030:167:::0;:::o;14205:185::-;2448:12;:10;:12::i;:::-;2438:22;;:6;;;;;;;;;;:22;;;2430:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14332:11:::1;14317:12;:26;;;;14370:12;14354:13;:28;;;;14205:185:::0;;:::o;13716:124::-;13781:4;13805:18;:27;13824:7;13805:27;;;;;;;;;;;;;;;;;;;;;;;;;13798:34;;13716:124;;;:::o;13120:201::-;13186:16;;;;;;;;;;;13170:32;;:12;:10;:12::i;:::-;:32;;;13162:41;;;;;;13214:26;13243:21;13214:50;;13275:38;13294:18;13275;:38::i;:::-;13151:170;13120:201::o;7281:119::-;7347:7;7374:9;:18;7384:7;7374:18;;;;;;;;;;;;;;;;7367:25;;7281:119;;;:::o;2525:148::-;2448:12;:10;:12::i;:::-;2438:22;;:6;;;;;;;;;;:22;;;2430:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2632:1:::1;2595:40;;2616:6;::::0;::::1;;;;;;;;2595:40;;;;;;;;;;;;2663:1;2646:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2525:148::o:0;14681:108::-;2448:12;:10;:12::i;:::-;2438:22;;:6;;;;;;;;;;:22;;;2430:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14770:11:::1;14755:12;:26;;;;14681:108:::0;:::o;13361:198::-;2448:12;:10;:12::i;:::-;2438:22;;:6;;;;;;;;;;:22;;;2430:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13451:9:::1;13446:106;13470:10;:17;13466:1;:21;13446:106;;;13536:4;13509:9;:24;13519:10;13530:1;13519:13;;;;;;;;:::i;:::-;;;;;;;;13509:24;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;13489:3;;;;;:::i;:::-;;;;13446:106;;;;13361:198:::0;:::o;5935:45::-;;;;:::o;2311:79::-;2349:7;2376:6;;;;;;;;;;;2369:13;;2311:79;:::o;5996:48::-;;;;:::o;6987:87::-;7026:13;7059:7;;;;;;;;;;;;;;;;;7052:14;;6987:87;:::o;14398:162::-;2448:12;:10;:12::i;:::-;2438:22;;:6;;;;;;;;;;:22;;;2430:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14534:18:::1;14512:19;:40;;;;14398:162:::0;:::o;5639:93::-;;;;;;;;;;;;;:::o;7492:199::-;7597:4;7619:42;7629:12;:10;:12::i;:::-;7643:9;7654:6;7619:9;:42::i;:::-;7679:4;7672:11;;7492:199;;;;:::o;13864:158::-;2448:12;:10;:12::i;:::-;2438:22;;:6;;;;;;;;;;:22;;;2430:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14006:8:::1;13976:18;:27;13995:7;13976:27;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;13864:158:::0;;:::o;12916:196::-;12982:16;;;;;;;;;;;12966:32;;:12;:10;:12::i;:::-;:32;;;12958:41;;;;;;13010:23;13036:24;13054:4;13036:9;:24::i;:::-;13010:50;;13071:33;13088:15;13071:16;:33::i;:::-;12947:165;12916:196::o;7699:184::-;7816:7;7848:11;:18;7860:5;7848:18;;;;;;;;;;;;;;;:27;7867:7;7848:27;;;;;;;;;;;;;;;;7841:34;;7699:184;;;;:::o;14568:105::-;2448:12;:10;:12::i;:::-;2438:22;;:6;;;;;;;;;;:22;;;2430:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14653:12:::1;14639:11;;:26;;;;;;;;;;;;;;;;;;14568:105:::0;:::o;14797:115::-;2448:12;:10;:12::i;:::-;2438:22;;:6;;;;;;;;;;:22;;;2430:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14891:13:::1;14874:14;:30;;;;14797:115:::0;:::o;6057:52::-;;;;:::o;5589:41::-;;;;;;;;;;;;;;;;;;;;;;:::o;1025:98::-;1078:7;1105:10;1098:17;;1025:98;:::o;8092:369::-;8236:1;8219:19;;:5;:19;;;;8211:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8317:1;8298:21;;:7;:21;;;;8290:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8399:6;8369:11;:18;8381:5;8369:18;;;;;;;;;;;;;;;:27;8388:7;8369:27;;;;;;;;;;;;;;;:36;;;;8437:7;8421:32;;8430:5;8421:32;;;8446:6;8421:32;;;;;;:::i;:::-;;;;;;;;8092:369;;;:::o;9180:2212::-;9318:1;9302:18;;:4;:18;;;;9294:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9395:1;9381:16;;:2;:16;;;;9373:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9465:1;9456:6;:10;9448:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9537:7;:5;:7::i;:::-;9529:15;;:4;:15;;;;:32;;;;;9554:7;:5;:7::i;:::-;9548:13;;:2;:13;;;;9529:32;9525:1198;;;9619:11;;;;;;;;;;;9611:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;9703:12;;9693:6;:22;;9685:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;9772:9;:15;9782:4;9772:15;;;;;;;;;;;;;;;;;;;;;;;;;9771:16;:34;;;;;9792:9;:13;9802:2;9792:13;;;;;;;;;;;;;;;;;;;;;;;;;9791:14;9771:34;9763:81;;;;;;;;;;;;:::i;:::-;;;;;;;;;9883:13;;;;;;;;;;;9877:19;;:2;:19;;;9873:208;;9972:14;;9963:6;9947:13;9957:2;9947:9;:13::i;:::-;:22;;;;:::i;:::-;:39;9917:148;;;;;;;;;;;;:::i;:::-;;;;;;;;;9873:208;10097:28;10128:24;10146:4;10128:9;:24::i;:::-;10097:55;;10167:15;10209:19;;10185:20;:43;;10167:61;;10273:12;;10249:20;:36;10245:112;;10329:12;;10306:35;;10245:112;10377:10;:21;;;;;10392:6;;;;;;;;;;;10391:7;10377:21;:46;;;;;10410:13;;;;;;;;;;;10402:21;;:4;:21;;;;10377:46;:61;;;;;10427:11;;;;;;;;;;;10377:61;10373:339;;;10459:38;10476:20;10459:16;:38::i;:::-;10516:26;10545:21;10516:50;;10610:1;10589:18;:22;10585:112;;;10636:41;10655:21;10636:18;:41::i;:::-;10585:112;10440:272;10373:339;9563:1160;;9525:1198;10735:12;10750:4;10735:19;;10813:18;:24;10832:4;10813:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;10841:18;:22;10860:2;10841:22;;;;;;;;;;;;;;;;;;;;;;;;;10813:50;10812:115;;;;10890:13;;;;;;;;;;;10882:21;;:4;:21;;;;:44;;;;;10913:13;;;;;;;;;;;10907:19;;:2;:19;;;;10882:44;10812:115;10794:537;;;10964:5;10954:15;;10794:537;;;11046:13;;;;;;;;;;;11038:21;;:4;:21;;;:55;;;;;11077:15;;;;;;;;;;;11063:30;;:2;:30;;;;11038:55;11034:118;;;11124:12;;11114:7;:22;;;;11034:118;11211:13;;;;;;;;;;;11205:19;;:2;:19;;;:55;;;;;11244:15;;;;;;;;;;;11228:32;;:4;:32;;;;11205:55;11201:119;;;11291:13;;11281:7;:23;;;;11201:119;10794:537;11343:41;11358:4;11364:2;11368:6;11376:7;11343:14;:41::i;:::-;9283:2109;9180:2212;;;:::o;3035:224::-;3155:7;3188:1;3183;:6;;3191:12;3175:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3215:9;3231:1;3227;:5;;;;:::i;:::-;3215:17;;3250:1;3243:8;;;3035:224;;;;;:::o;12738:170::-;12802:12;12820:16;;;;;;;;;;;:21;;12849:6;12820:40;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12801:59;;;12879:7;12871:29;;;;;;;;;;;;:::i;:::-;;;;;;;;;12790:118;12738:170;:::o;12247:483::-;6223:4;6214:6;;:13;;;;;;;;;;;;;;;;;;12325:21:::1;12363:1;12349:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12325:40;;12394:4;12376;12381:1;12376:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;12420:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12410:4;12415:1;12410:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;12453:62;12470:4;12485:15;;;;;;;;;;;12503:11;12453:8;:62::i;:::-;12526:15;;;;;;;;;;;:66;;;12607:11;12633:1;12649:4;12676;12696:15;12526:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;12314:416;6259:5:::0;6250:6;;:14;;;;;;;;;;;;;;;;;;12247:483;:::o;11400:282::-;11556:7;11551:28;;11565:14;:12;:14::i;:::-;11551:28;11590:44;11608:6;11616:9;11627:6;11590:17;:44::i;:::-;11650:7;11645:29;;11659:15;:13;:15::i;:::-;11645:29;11400:282;;;;:::o;8469:137::-;8527:1;8516:7;;:12;8512:25;;;8530:7;;8512:25;8567:7;;8549:15;:25;;;;8597:1;8587:7;:11;;;;8469:137;:::o;11690:517::-;11821:17;11841:28;11865:3;11841:19;11852:7;;11841:6;:10;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;11821:48;;11880:23;11906:21;11917:9;11906:6;:10;;:21;;;;:::i;:::-;11880:47;;11958:29;11980:6;11958:9;:17;11968:6;11958:17;;;;;;;;;;;;;;;;:21;;:29;;;;:::i;:::-;11938:9;:17;11948:6;11938:17;;;;;;;;;;;;;;;:49;;;;12025:39;12054:9;12025;:24;12043:4;12025:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;11998:9;:24;12016:4;11998:24;;;;;;;;;;;;;;;:66;;;;12098:41;12123:15;12098:9;:20;12108:9;12098:20;;;;;;;;;;;;;;;;:24;;:41;;;;:::i;:::-;12075:9;:20;12085:9;12075:20;;;;;;;;;;;;;;;:64;;;;12172:9;12155:44;;12164:6;12155:44;;;12183:15;12155:44;;;;;;:::i;:::-;;;;;;;;11810:397;;11690:517;;;:::o;8614:77::-;8668:15;;8658:7;:25;;;;8614:77::o;3267:246::-;3325:7;3354:1;3349;:6;3345:47;;;3379:1;3372:8;;;;3345:47;3402:9;3418:1;3414;:5;;;;:::i;:::-;3402:17;;3447:1;3442;3438;:5;;;;:::i;:::-;:10;3430:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;3504:1;3497:8;;;3267:246;;;;;:::o;3521:132::-;3579:7;3606:39;3610:1;3613;3606:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;3599:46;;3521:132;;;;:::o;2891:136::-;2949:7;2976:43;2980:1;2983;2976:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2969:50;;2891:136;;;;:::o;2704:179::-;2762:7;2782:9;2798:1;2794;:5;;;;:::i;:::-;2782:17;;2823:1;2818;:6;;2810:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2874:1;2867:8;;;2704:179;;;;:::o;3661:223::-;3781:7;3813:1;3809;:5;3816:12;3801:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3840:9;3856:1;3852;:5;;;;:::i;:::-;3840:17;;3875:1;3868:8;;;3661:223;;;;;:::o;24:722:1:-;120:5;145:81;161:64;218:6;161:64;:::i;:::-;145:81;:::i;:::-;136:90;;246:5;275:6;268:5;261:21;309:4;302:5;298:16;291:23;;335:6;385:3;377:4;369:6;365:17;360:3;356:27;353:36;350:143;;;404:79;;:::i;:::-;350:143;517:1;502:238;527:6;524:1;521:13;502:238;;;595:3;624:37;657:3;645:10;624:37;:::i;:::-;619:3;612:50;691:4;686:3;682:14;675:21;;725:4;720:3;716:14;709:21;;562:178;549:1;546;542:9;537:14;;502:238;;;506:14;126:620;;24:722;;;;;:::o;752:139::-;798:5;836:6;823:20;814:29;;852:33;879:5;852:33;:::i;:::-;752:139;;;;:::o;897:143::-;954:5;985:6;979:13;970:22;;1001:33;1028:5;1001:33;:::i;:::-;897:143;;;;:::o;1046:155::-;1100:5;1138:6;1125:20;1116:29;;1154:41;1189:5;1154:41;:::i;:::-;1046:155;;;;:::o;1224:370::-;1295:5;1344:3;1337:4;1329:6;1325:17;1321:27;1311:122;;1352:79;;:::i;:::-;1311:122;1469:6;1456:20;1494:94;1584:3;1576:6;1569:4;1561:6;1557:17;1494:94;:::i;:::-;1485:103;;1301:293;1224:370;;;;:::o;1600:133::-;1643:5;1681:6;1668:20;1659:29;;1697:30;1721:5;1697:30;:::i;:::-;1600:133;;;;:::o;1739:139::-;1785:5;1823:6;1810:20;1801:29;;1839:33;1866:5;1839:33;:::i;:::-;1739:139;;;;:::o;1884:329::-;1943:6;1992:2;1980:9;1971:7;1967:23;1963:32;1960:119;;;1998:79;;:::i;:::-;1960:119;2118:1;2143:53;2188:7;2179:6;2168:9;2164:22;2143:53;:::i;:::-;2133:63;;2089:117;1884:329;;;;:::o;2219:351::-;2289:6;2338:2;2326:9;2317:7;2313:23;2309:32;2306:119;;;2344:79;;:::i;:::-;2306:119;2464:1;2489:64;2545:7;2536:6;2525:9;2521:22;2489:64;:::i;:::-;2479:74;;2435:128;2219:351;;;;:::o;2576:345::-;2643:6;2692:2;2680:9;2671:7;2667:23;2663:32;2660:119;;;2698:79;;:::i;:::-;2660:119;2818:1;2843:61;2896:7;2887:6;2876:9;2872:22;2843:61;:::i;:::-;2833:71;;2789:125;2576:345;;;;:::o;2927:474::-;2995:6;3003;3052:2;3040:9;3031:7;3027:23;3023:32;3020:119;;;3058:79;;:::i;:::-;3020:119;3178:1;3203:53;3248:7;3239:6;3228:9;3224:22;3203:53;:::i;:::-;3193:63;;3149:117;3305:2;3331:53;3376:7;3367:6;3356:9;3352:22;3331:53;:::i;:::-;3321:63;;3276:118;2927:474;;;;;:::o;3407:619::-;3484:6;3492;3500;3549:2;3537:9;3528:7;3524:23;3520:32;3517:119;;;3555:79;;:::i;:::-;3517:119;3675:1;3700:53;3745:7;3736:6;3725:9;3721:22;3700:53;:::i;:::-;3690:63;;3646:117;3802:2;3828:53;3873:7;3864:6;3853:9;3849:22;3828:53;:::i;:::-;3818:63;;3773:118;3930:2;3956:53;4001:7;3992:6;3981:9;3977:22;3956:53;:::i;:::-;3946:63;;3901:118;3407:619;;;;;:::o;4032:468::-;4097:6;4105;4154:2;4142:9;4133:7;4129:23;4125:32;4122:119;;;4160:79;;:::i;:::-;4122:119;4280:1;4305:53;4350:7;4341:6;4330:9;4326:22;4305:53;:::i;:::-;4295:63;;4251:117;4407:2;4433:50;4475:7;4466:6;4455:9;4451:22;4433:50;:::i;:::-;4423:60;;4378:115;4032:468;;;;;:::o;4506:474::-;4574:6;4582;4631:2;4619:9;4610:7;4606:23;4602:32;4599:119;;;4637:79;;:::i;:::-;4599:119;4757:1;4782:53;4827:7;4818:6;4807:9;4803:22;4782:53;:::i;:::-;4772:63;;4728:117;4884:2;4910:53;4955:7;4946:6;4935:9;4931:22;4910:53;:::i;:::-;4900:63;;4855:118;4506:474;;;;;:::o;4986:539::-;5070:6;5119:2;5107:9;5098:7;5094:23;5090:32;5087:119;;;5125:79;;:::i;:::-;5087:119;5273:1;5262:9;5258:17;5245:31;5303:18;5295:6;5292:30;5289:117;;;5325:79;;:::i;:::-;5289:117;5430:78;5500:7;5491:6;5480:9;5476:22;5430:78;:::i;:::-;5420:88;;5216:302;4986:539;;;;:::o;5531:323::-;5587:6;5636:2;5624:9;5615:7;5611:23;5607:32;5604:119;;;5642:79;;:::i;:::-;5604:119;5762:1;5787:50;5829:7;5820:6;5809:9;5805:22;5787:50;:::i;:::-;5777:60;;5733:114;5531:323;;;;:::o;5860:329::-;5919:6;5968:2;5956:9;5947:7;5943:23;5939:32;5936:119;;;5974:79;;:::i;:::-;5936:119;6094:1;6119:53;6164:7;6155:6;6144:9;6140:22;6119:53;:::i;:::-;6109:63;;6065:117;5860:329;;;;:::o;6195:474::-;6263:6;6271;6320:2;6308:9;6299:7;6295:23;6291:32;6288:119;;;6326:79;;:::i;:::-;6288:119;6446:1;6471:53;6516:7;6507:6;6496:9;6492:22;6471:53;:::i;:::-;6461:63;;6417:117;6573:2;6599:53;6644:7;6635:6;6624:9;6620:22;6599:53;:::i;:::-;6589:63;;6544:118;6195:474;;;;;:::o;6675:179::-;6744:10;6765:46;6807:3;6799:6;6765:46;:::i;:::-;6843:4;6838:3;6834:14;6820:28;;6675:179;;;;:::o;6860:142::-;6963:32;6989:5;6963:32;:::i;:::-;6958:3;6951:45;6860:142;;:::o;7008:108::-;7085:24;7103:5;7085:24;:::i;:::-;7080:3;7073:37;7008:108;;:::o;7122:118::-;7209:24;7227:5;7209:24;:::i;:::-;7204:3;7197:37;7122:118;;:::o;7276:732::-;7395:3;7424:54;7472:5;7424:54;:::i;:::-;7494:86;7573:6;7568:3;7494:86;:::i;:::-;7487:93;;7604:56;7654:5;7604:56;:::i;:::-;7683:7;7714:1;7699:284;7724:6;7721:1;7718:13;7699:284;;;7800:6;7794:13;7827:63;7886:3;7871:13;7827:63;:::i;:::-;7820:70;;7913:60;7966:6;7913:60;:::i;:::-;7903:70;;7759:224;7746:1;7743;7739:9;7734:14;;7699:284;;;7703:14;7999:3;7992:10;;7400:608;;;7276:732;;;;:::o;8014:109::-;8095:21;8110:5;8095:21;:::i;:::-;8090:3;8083:34;8014:109;;:::o;8129:183::-;8242:63;8299:5;8242:63;:::i;:::-;8237:3;8230:76;8129:183;;:::o;8318:147::-;8413:45;8452:5;8413:45;:::i;:::-;8408:3;8401:58;8318:147;;:::o;8471:364::-;8559:3;8587:39;8620:5;8587:39;:::i;:::-;8642:71;8706:6;8701:3;8642:71;:::i;:::-;8635:78;;8722:52;8767:6;8762:3;8755:4;8748:5;8744:16;8722:52;:::i;:::-;8799:29;8821:6;8799:29;:::i;:::-;8794:3;8790:39;8783:46;;8563:272;8471:364;;;;:::o;8841:366::-;8983:3;9004:67;9068:2;9063:3;9004:67;:::i;:::-;8997:74;;9080:93;9169:3;9080:93;:::i;:::-;9198:2;9193:3;9189:12;9182:19;;8841:366;;;:::o;9213:::-;9355:3;9376:67;9440:2;9435:3;9376:67;:::i;:::-;9369:74;;9452:93;9541:3;9452:93;:::i;:::-;9570:2;9565:3;9561:12;9554:19;;9213:366;;;:::o;9585:::-;9727:3;9748:67;9812:2;9807:3;9748:67;:::i;:::-;9741:74;;9824:93;9913:3;9824:93;:::i;:::-;9942:2;9937:3;9933:12;9926:19;;9585:366;;;:::o;9957:::-;10099:3;10120:67;10184:2;10179:3;10120:67;:::i;:::-;10113:74;;10196:93;10285:3;10196:93;:::i;:::-;10314:2;10309:3;10305:12;10298:19;;9957:366;;;:::o;10329:::-;10471:3;10492:67;10556:2;10551:3;10492:67;:::i;:::-;10485:74;;10568:93;10657:3;10568:93;:::i;:::-;10686:2;10681:3;10677:12;10670:19;;10329:366;;;:::o;10701:::-;10843:3;10864:67;10928:2;10923:3;10864:67;:::i;:::-;10857:74;;10940:93;11029:3;10940:93;:::i;:::-;11058:2;11053:3;11049:12;11042:19;;10701:366;;;:::o;11073:365::-;11215:3;11236:66;11300:1;11295:3;11236:66;:::i;:::-;11229:73;;11311:93;11400:3;11311:93;:::i;:::-;11429:2;11424:3;11420:12;11413:19;;11073:365;;;:::o;11444:366::-;11586:3;11607:67;11671:2;11666:3;11607:67;:::i;:::-;11600:74;;11683:93;11772:3;11683:93;:::i;:::-;11801:2;11796:3;11792:12;11785:19;;11444:366;;;:::o;11816:::-;11958:3;11979:67;12043:2;12038:3;11979:67;:::i;:::-;11972:74;;12055:93;12144:3;12055:93;:::i;:::-;12173:2;12168:3;12164:12;12157:19;;11816:366;;;:::o;12188:::-;12330:3;12351:67;12415:2;12410:3;12351:67;:::i;:::-;12344:74;;12427:93;12516:3;12427:93;:::i;:::-;12545:2;12540:3;12536:12;12529:19;;12188:366;;;:::o;12560:::-;12702:3;12723:67;12787:2;12782:3;12723:67;:::i;:::-;12716:74;;12799:93;12888:3;12799:93;:::i;:::-;12917:2;12912:3;12908:12;12901:19;;12560:366;;;:::o;12932:::-;13074:3;13095:67;13159:2;13154:3;13095:67;:::i;:::-;13088:74;;13171:93;13260:3;13171:93;:::i;:::-;13289:2;13284:3;13280:12;13273:19;;12932:366;;;:::o;13304:398::-;13463:3;13484:83;13565:1;13560:3;13484:83;:::i;:::-;13477:90;;13576:93;13665:3;13576:93;:::i;:::-;13694:1;13689:3;13685:11;13678:18;;13304:398;;;:::o;13708:366::-;13850:3;13871:67;13935:2;13930:3;13871:67;:::i;:::-;13864:74;;13947:93;14036:3;13947:93;:::i;:::-;14065:2;14060:3;14056:12;14049:19;;13708:366;;;:::o;14080:118::-;14167:24;14185:5;14167:24;:::i;:::-;14162:3;14155:37;14080:118;;:::o;14204:112::-;14287:22;14303:5;14287:22;:::i;:::-;14282:3;14275:35;14204:112;;:::o;14322:379::-;14506:3;14528:147;14671:3;14528:147;:::i;:::-;14521:154;;14692:3;14685:10;;14322:379;;;:::o;14707:222::-;14800:4;14838:2;14827:9;14823:18;14815:26;;14851:71;14919:1;14908:9;14904:17;14895:6;14851:71;:::i;:::-;14707:222;;;;:::o;14935:254::-;15044:4;15082:2;15071:9;15067:18;15059:26;;15095:87;15179:1;15168:9;15164:17;15155:6;15095:87;:::i;:::-;14935:254;;;;:::o;15195:210::-;15282:4;15320:2;15309:9;15305:18;15297:26;;15333:65;15395:1;15384:9;15380:17;15371:6;15333:65;:::i;:::-;15195:210;;;;:::o;15411:274::-;15530:4;15568:2;15557:9;15553:18;15545:26;;15581:97;15675:1;15664:9;15660:17;15651:6;15581:97;:::i;:::-;15411:274;;;;:::o;15691:313::-;15804:4;15842:2;15831:9;15827:18;15819:26;;15891:9;15885:4;15881:20;15877:1;15866:9;15862:17;15855:47;15919:78;15992:4;15983:6;15919:78;:::i;:::-;15911:86;;15691:313;;;;:::o;16010:419::-;16176:4;16214:2;16203:9;16199:18;16191:26;;16263:9;16257:4;16253:20;16249:1;16238:9;16234:17;16227:47;16291:131;16417:4;16291:131;:::i;:::-;16283:139;;16010:419;;;:::o;16435:::-;16601:4;16639:2;16628:9;16624:18;16616:26;;16688:9;16682:4;16678:20;16674:1;16663:9;16659:17;16652:47;16716:131;16842:4;16716:131;:::i;:::-;16708:139;;16435:419;;;:::o;16860:::-;17026:4;17064:2;17053:9;17049:18;17041:26;;17113:9;17107:4;17103:20;17099:1;17088:9;17084:17;17077:47;17141:131;17267:4;17141:131;:::i;:::-;17133:139;;16860:419;;;:::o;17285:::-;17451:4;17489:2;17478:9;17474:18;17466:26;;17538:9;17532:4;17528:20;17524:1;17513:9;17509:17;17502:47;17566:131;17692:4;17566:131;:::i;:::-;17558:139;;17285:419;;;:::o;17710:::-;17876:4;17914:2;17903:9;17899:18;17891:26;;17963:9;17957:4;17953:20;17949:1;17938:9;17934:17;17927:47;17991:131;18117:4;17991:131;:::i;:::-;17983:139;;17710:419;;;:::o;18135:::-;18301:4;18339:2;18328:9;18324:18;18316:26;;18388:9;18382:4;18378:20;18374:1;18363:9;18359:17;18352:47;18416:131;18542:4;18416:131;:::i;:::-;18408:139;;18135:419;;;:::o;18560:::-;18726:4;18764:2;18753:9;18749:18;18741:26;;18813:9;18807:4;18803:20;18799:1;18788:9;18784:17;18777:47;18841:131;18967:4;18841:131;:::i;:::-;18833:139;;18560:419;;;:::o;18985:::-;19151:4;19189:2;19178:9;19174:18;19166:26;;19238:9;19232:4;19228:20;19224:1;19213:9;19209:17;19202:47;19266:131;19392:4;19266:131;:::i;:::-;19258:139;;18985:419;;;:::o;19410:::-;19576:4;19614:2;19603:9;19599:18;19591:26;;19663:9;19657:4;19653:20;19649:1;19638:9;19634:17;19627:47;19691:131;19817:4;19691:131;:::i;:::-;19683:139;;19410:419;;;:::o;19835:::-;20001:4;20039:2;20028:9;20024:18;20016:26;;20088:9;20082:4;20078:20;20074:1;20063:9;20059:17;20052:47;20116:131;20242:4;20116:131;:::i;:::-;20108:139;;19835:419;;;:::o;20260:::-;20426:4;20464:2;20453:9;20449:18;20441:26;;20513:9;20507:4;20503:20;20499:1;20488:9;20484:17;20477:47;20541:131;20667:4;20541:131;:::i;:::-;20533:139;;20260:419;;;:::o;20685:::-;20851:4;20889:2;20878:9;20874:18;20866:26;;20938:9;20932:4;20928:20;20924:1;20913:9;20909:17;20902:47;20966:131;21092:4;20966:131;:::i;:::-;20958:139;;20685:419;;;:::o;21110:::-;21276:4;21314:2;21303:9;21299:18;21291:26;;21363:9;21357:4;21353:20;21349:1;21338:9;21334:17;21327:47;21391:131;21517:4;21391:131;:::i;:::-;21383:139;;21110:419;;;:::o;21535:222::-;21628:4;21666:2;21655:9;21651:18;21643:26;;21679:71;21747:1;21736:9;21732:17;21723:6;21679:71;:::i;:::-;21535:222;;;;:::o;21763:831::-;22026:4;22064:3;22053:9;22049:19;22041:27;;22078:71;22146:1;22135:9;22131:17;22122:6;22078:71;:::i;:::-;22159:80;22235:2;22224:9;22220:18;22211:6;22159:80;:::i;:::-;22286:9;22280:4;22276:20;22271:2;22260:9;22256:18;22249:48;22314:108;22417:4;22408:6;22314:108;:::i;:::-;22306:116;;22432:72;22500:2;22489:9;22485:18;22476:6;22432:72;:::i;:::-;22514:73;22582:3;22571:9;22567:19;22558:6;22514:73;:::i;:::-;21763:831;;;;;;;;:::o;22600:214::-;22689:4;22727:2;22716:9;22712:18;22704:26;;22740:67;22804:1;22793:9;22789:17;22780:6;22740:67;:::i;:::-;22600:214;;;;:::o;22820:129::-;22854:6;22881:20;;:::i;:::-;22871:30;;22910:33;22938:4;22930:6;22910:33;:::i;:::-;22820:129;;;:::o;22955:75::-;22988:6;23021:2;23015:9;23005:19;;22955:75;:::o;23036:311::-;23113:4;23203:18;23195:6;23192:30;23189:56;;;23225:18;;:::i;:::-;23189:56;23275:4;23267:6;23263:17;23255:25;;23335:4;23329;23325:15;23317:23;;23036:311;;;:::o;23353:132::-;23420:4;23443:3;23435:11;;23473:4;23468:3;23464:14;23456:22;;23353:132;;;:::o;23491:114::-;23558:6;23592:5;23586:12;23576:22;;23491:114;;;:::o;23611:99::-;23663:6;23697:5;23691:12;23681:22;;23611:99;;;:::o;23716:113::-;23786:4;23818;23813:3;23809:14;23801:22;;23716:113;;;:::o;23835:184::-;23934:11;23968:6;23963:3;23956:19;24008:4;24003:3;23999:14;23984:29;;23835:184;;;;:::o;24025:147::-;24126:11;24163:3;24148:18;;24025:147;;;;:::o;24178:169::-;24262:11;24296:6;24291:3;24284:19;24336:4;24331:3;24327:14;24312:29;;24178:169;;;;:::o;24353:305::-;24393:3;24412:20;24430:1;24412:20;:::i;:::-;24407:25;;24446:20;24464:1;24446:20;:::i;:::-;24441:25;;24600:1;24532:66;24528:74;24525:1;24522:81;24519:107;;;24606:18;;:::i;:::-;24519:107;24650:1;24647;24643:9;24636:16;;24353:305;;;;:::o;24664:185::-;24704:1;24721:20;24739:1;24721:20;:::i;:::-;24716:25;;24755:20;24773:1;24755:20;:::i;:::-;24750:25;;24794:1;24784:35;;24799:18;;:::i;:::-;24784:35;24841:1;24838;24834:9;24829:14;;24664:185;;;;:::o;24855:348::-;24895:7;24918:20;24936:1;24918:20;:::i;:::-;24913:25;;24952:20;24970:1;24952:20;:::i;:::-;24947:25;;25140:1;25072:66;25068:74;25065:1;25062:81;25057:1;25050:9;25043:17;25039:105;25036:131;;;25147:18;;:::i;:::-;25036:131;25195:1;25192;25188:9;25177:20;;24855:348;;;;:::o;25209:191::-;25249:4;25269:20;25287:1;25269:20;:::i;:::-;25264:25;;25303:20;25321:1;25303:20;:::i;:::-;25298:25;;25342:1;25339;25336:8;25333:34;;;25347:18;;:::i;:::-;25333:34;25392:1;25389;25385:9;25377:17;;25209:191;;;;:::o;25406:96::-;25443:7;25472:24;25490:5;25472:24;:::i;:::-;25461:35;;25406:96;;;:::o;25508:104::-;25553:7;25582:24;25600:5;25582:24;:::i;:::-;25571:35;;25508:104;;;:::o;25618:90::-;25652:7;25695:5;25688:13;25681:21;25670:32;;25618:90;;;:::o;25714:126::-;25751:7;25791:42;25784:5;25780:54;25769:65;;25714:126;;;:::o;25846:77::-;25883:7;25912:5;25901:16;;25846:77;;;:::o;25929:86::-;25964:7;26004:4;25997:5;25993:16;25982:27;;25929:86;;;:::o;26021:152::-;26097:9;26130:37;26161:5;26130:37;:::i;:::-;26117:50;;26021:152;;;:::o;26179:121::-;26237:9;26270:24;26288:5;26270:24;:::i;:::-;26257:37;;26179:121;;;:::o;26306:126::-;26356:9;26389:37;26420:5;26389:37;:::i;:::-;26376:50;;26306:126;;;:::o;26438:113::-;26488:9;26521:24;26539:5;26521:24;:::i;:::-;26508:37;;26438:113;;;:::o;26557:307::-;26625:1;26635:113;26649:6;26646:1;26643:13;26635:113;;;26734:1;26729:3;26725:11;26719:18;26715:1;26710:3;26706:11;26699:39;26671:2;26668:1;26664:10;26659:15;;26635:113;;;26766:6;26763:1;26760:13;26757:101;;;26846:1;26837:6;26832:3;26828:16;26821:27;26757:101;26606:258;26557:307;;;:::o;26870:281::-;26953:27;26975:4;26953:27;:::i;:::-;26945:6;26941:40;27083:6;27071:10;27068:22;27047:18;27035:10;27032:34;27029:62;27026:88;;;27094:18;;:::i;:::-;27026:88;27134:10;27130:2;27123:22;26913:238;26870:281;;:::o;27157:233::-;27196:3;27219:24;27237:5;27219:24;:::i;:::-;27210:33;;27265:66;27258:5;27255:77;27252:103;;;27335:18;;:::i;:::-;27252:103;27382:1;27375:5;27371:13;27364:20;;27157:233;;;:::o;27396:180::-;27444:77;27441:1;27434:88;27541:4;27538:1;27531:15;27565:4;27562:1;27555:15;27582:180;27630:77;27627:1;27620:88;27727:4;27724:1;27717:15;27751:4;27748:1;27741:15;27768:180;27816:77;27813:1;27806:88;27913:4;27910:1;27903:15;27937:4;27934:1;27927:15;27954:180;28002:77;27999:1;27992:88;28099:4;28096:1;28089:15;28123:4;28120:1;28113:15;28140:117;28249:1;28246;28239:12;28263:117;28372:1;28369;28362:12;28386:117;28495:1;28492;28485:12;28509:117;28618:1;28615;28608:12;28632:102;28673:6;28724:2;28720:7;28715:2;28708:5;28704:14;28700:28;28690:38;;28632:102;;;:::o;28740:222::-;28880:34;28876:1;28868:6;28864:14;28857:58;28949:5;28944:2;28936:6;28932:15;28925:30;28740:222;:::o;28968:178::-;29108:30;29104:1;29096:6;29092:14;29085:54;28968:178;:::o;29152:221::-;29292:34;29288:1;29280:6;29276:14;29269:58;29361:4;29356:2;29348:6;29344:15;29337:29;29152:221;:::o;29379:222::-;29519:34;29515:1;29507:6;29503:14;29496:58;29588:5;29583:2;29575:6;29571:15;29564:30;29379:222;:::o;29607:177::-;29747:29;29743:1;29735:6;29731:14;29724:53;29607:177;:::o;29790:223::-;29930:34;29926:1;29918:6;29914:14;29907:58;29999:6;29994:2;29986:6;29982:15;29975:31;29790:223;:::o;30019:159::-;30159:11;30155:1;30147:6;30143:14;30136:35;30019:159;:::o;30184:220::-;30324:34;30320:1;30312:6;30308:14;30301:58;30393:3;30388:2;30380:6;30376:15;30369:28;30184:220;:::o;30410:182::-;30550:34;30546:1;30538:6;30534:14;30527:58;30410:182;:::o;30598:228::-;30738:34;30734:1;30726:6;30722:14;30715:58;30807:11;30802:2;30794:6;30790:15;30783:36;30598:228;:::o;30832:224::-;30972:34;30968:1;30960:6;30956:14;30949:58;31041:7;31036:2;31028:6;31024:15;31017:32;30832:224;:::o;31062:222::-;31202:34;31198:1;31190:6;31186:14;31179:58;31271:5;31266:2;31258:6;31254:15;31247:30;31062:222;:::o;31290:114::-;;:::o;31410:223::-;31550:34;31546:1;31538:6;31534:14;31527:58;31619:6;31614:2;31606:6;31602:15;31595:31;31410:223;:::o;31639:122::-;31712:24;31730:5;31712:24;:::i;:::-;31705:5;31702:35;31692:63;;31751:1;31748;31741:12;31692:63;31639:122;:::o;31767:138::-;31848:32;31874:5;31848:32;:::i;:::-;31841:5;31838:43;31828:71;;31895:1;31892;31885:12;31828:71;31767:138;:::o;31911:116::-;31981:21;31996:5;31981:21;:::i;:::-;31974:5;31971:32;31961:60;;32017:1;32014;32007:12;31961:60;31911:116;:::o;32033:122::-;32106:24;32124:5;32106:24;:::i;:::-;32099:5;32096:35;32086:63;;32145:1;32142;32135:12;32086:63;32033:122;:::o

Swarm Source

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