ETH Price: $2,384.13 (+1.37%)

Token

I Dont Give A Fuck (idgafffffffffffffffff)
 

Overview

Max Total Supply

69,420,000 idgafffffffffffffffff

Holders

76

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
160,052.744771392 idgafffffffffffffffff

Value
$0.00
0x7d1f188219b7a1ee679b4936aa71b003c24f3b32
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:
isimplydontgiveafuck

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

/**

Token Name: I Don’t Give A Fuck 
Ticker: $idgaffffffffffffffffffff

---

Purpose: Because... why not?

---

Token Description: It's crypto. It exists. That's it.

---

Features:

1. Whitepaper: It was either this or nap. Nap won.
2. Utility: It's a token. Do with it what you will.
3. Total Supply: Some random number. Let's say... 69,420,000 IDGAF.
4. Roadmap: 
   - Now: It's here.
   - Later: It might still be here.
   - Eventually: Who knows?

---

Tokenomics:
- Total Supply: 69,420,000 IDGAF. Seems legit.
- Distribution:
   - 93% - Out there.
   - 3.5% - Here, somewhere.
   - 3.5% - Beer money.

---

Transaction Fee: 2%.
- 1% - Goes somewhere.
- 1% - Dunno, we'll figure it out.

---

Narrative: IDGAF. Do you?

---

Disclaimer: Look, crypto's real. Do your research. This? It's whatever...

*/

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.15;
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);
    }

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

}

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 isimplydontgiveafuck is Context, IERC20, Ownable {

    using SafeMath for uint256;

    string private constant _name = "I Dont Give A Fuck";
    string private constant _symbol = "idgafffffffffffffffff";
    uint8 private constant _decimals = 9;

    mapping(address => uint256) private _rOwned;
    mapping(address => uint256) private _tOwned;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 69_420_000 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    uint256 private _redisFeeOnBuy = 0;
    uint256 private _taxFeeOnBuy = 25;
    uint256 private _redisFeeOnSell = 0;
    uint256 private _taxFeeOnSell = 35;

    //Original Fee
    uint256 private _redisFee = _redisFeeOnSell;
    uint256 private _taxFee = _taxFeeOnSell;

    uint256 private _previousredisFee = _redisFee;
    uint256 private _previoustaxFee = _taxFee;

    mapping (address => bool) public preTrader;
    address payable private _developmentAddress = payable(0xE24A97168a71679D75564F562C6935837A2dEf90);
    address payable private _marketingAddress = payable(0xE24A97168a71679D75564F562C6935837A2dEf90);

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;

    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = true;

    uint256 public _maxTxAmount = 1_388_400 * 10**9;
    uint256 public _maxWalletSize = 1_388_400 * 10**9;
    uint256 public _swapTokensAtAmount = 28_000 * 10**9;

    event MaxTxAmountUpdated(uint256 _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor() {

        _rOwned[_msgSender()] = _rTotal;

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

        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_developmentAddress] = true;
        _isExcludedFromFee[_marketingAddress] = true;

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

    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 pure override returns (uint256) {
        return _tTotal;
    }

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

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

    function tokenFromReflection(uint256 rAmount)
        private
        view
        returns (uint256)
    {
        require(
            rAmount <= _rTotal,
            "Amount must be less than total reflections"
        );
        uint256 currentRate = _getRate();
        return rAmount.div(currentRate);
    }

    function removeAllFee() private {
        if (_redisFee == 0 && _taxFee == 0) return;

        _previousredisFee = _redisFee;
        _previoustaxFee = _taxFee;

        _redisFee = 0;
        _taxFee = 0;
    }

    function restoreAllFee() private {
        _redisFee = _previousredisFee;
        _taxFee = _previoustaxFee;
    }

    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 _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() && !preTrader[from] && !preTrader[to]) {

            //Trade start check
            if (!tradingOpen) {
                require(preTrader[from], "TOKEN: This account cannot send tokens until trading is enabled");
            }

            require(amount <= _maxTxAmount, "TOKEN: Max Transaction Limit");

            if(to != uniswapV2Pair) {
                require(balanceOf(to) + amount < _maxWalletSize, "TOKEN: Balance exceeds wallet size!");
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            bool canSwap = contractTokenBalance >= _swapTokensAtAmount;

            if(contractTokenBalance >= _swapTokensAtAmount * 20)
            {
                contractTokenBalance = _swapTokensAtAmount * 20;
            }

            if (canSwap && !inSwap && from != uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 0) {
                    sendETHToFee(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)) {
                _redisFee = _redisFeeOnBuy;
                _taxFee = _taxFeeOnBuy;
            }

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

        }

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

    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 sendETHToFee(uint256 amount) private {
        _marketingAddress.transfer(amount);
    }

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

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

    function manualsend() external {
        require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }

    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 tAmount
    ) private {
        (
            uint256 rAmount,
            uint256 rTransferAmount,
            uint256 rFee,
            uint256 tTransferAmount,
            uint256 tFee,
            uint256 tTeam
        ) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
        _takeTeam(tTeam);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _takeTeam(uint256 tTeam) private {
        uint256 currentRate = _getRate();
        uint256 rTeam = tTeam.mul(currentRate);
        _rOwned[address(this)] = _rOwned[address(this)].add(rTeam);
    }

    function _reflectFee(uint256 rFee, uint256 tFee) private {
        _rTotal = _rTotal.sub(rFee);
        _tFeeTotal = _tFeeTotal.add(tFee);
    }

    receive() external payable {}

    function _getValues(uint256 tAmount)
        private
        view
        returns (
            uint256,
            uint256,
            uint256,
            uint256,
            uint256,
            uint256
        )
    {
        (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) =
            _getTValues(tAmount, _redisFee, _taxFee);
        uint256 currentRate = _getRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) =
            _getRValues(tAmount, tFee, tTeam, currentRate);
        return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam);
    }

    function _getTValues(
        uint256 tAmount,
        uint256 redisFee,
        uint256 taxFee
    )
        private
        pure
        returns (
            uint256,
            uint256,
            uint256
        )
    {
        uint256 tFee = tAmount.mul(redisFee).div(100);
        uint256 tTeam = tAmount.mul(taxFee).div(100);
        uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam);
        return (tTransferAmount, tFee, tTeam);
    }

    function _getRValues(
        uint256 tAmount,
        uint256 tFee,
        uint256 tTeam,
        uint256 currentRate
    )
        private
        pure
        returns (
            uint256,
            uint256,
            uint256
        )
    {
        uint256 rAmount = tAmount.mul(currentRate);
        uint256 rFee = tFee.mul(currentRate);
        uint256 rTeam = tTeam.mul(currentRate);
        uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam);
        return (rAmount, rTransferAmount, rFee);
    }

    function _getRate() private view returns (uint256) {
        (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
        return rSupply.div(tSupply);
    }

    function _getCurrentSupply() private view returns (uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;
        if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
        return (rSupply, tSupply);
    }

    function setFee(uint256 redisFeeOnBuy, uint256 redisFeeOnSell, uint256 taxFeeOnBuy, uint256 taxFeeOnSell) public onlyOwner {
        require(redisFeeOnBuy + taxFeeOnBuy < 20, "TOKEN: Buy tax too high.");
        require(redisFeeOnSell + taxFeeOnSell < 20, "TOKEN: Sell tax too high.");
        _redisFeeOnBuy = redisFeeOnBuy;
        _redisFeeOnSell = redisFeeOnSell;
        _taxFeeOnBuy = taxFeeOnBuy;
        _taxFeeOnSell = taxFeeOnSell;
    }

    //Set minimum tokens required to swap.
    function setMinSwapTokensThreshold(uint256 swapTokensAtAmount) public onlyOwner {
        _swapTokensAtAmount = swapTokensAtAmount;
    }

    //Set minimum tokens required to swap.
    function toggleSwap(bool _swapEnabled) public onlyOwner {
        swapEnabled = _swapEnabled;
    }

    //Set maximum transaction
    function setMaxTxnAmount(uint256 maxTxAmount) public onlyOwner {
        _maxTxAmount = maxTxAmount;
    }

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

    function excludeMultipleAccountsFromFees(address[] calldata accounts, bool excluded) public onlyOwner {
        for(uint256 i = 0; i < accounts.length; i++) {
            _isExcludedFromFee[accounts[i]] = excluded;
        }
    }

    function allowPreTrading(address[] calldata accounts) public onlyOwner {
        for(uint256 i = 0; i < accounts.length; i++) {
            preTrader[accounts[i]] = true;
        }
    }

    function removePreTrading(address[] calldata accounts) public onlyOwner {
        for(uint256 i = 0; i < accounts.length; i++) {
            delete preTrader[accounts[i]];
        }
    }
}

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":"_swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"}],"name":"allowPreTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeMultipleAccountsFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","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":[{"internalType":"address","name":"","type":"address"}],"name":"preTrader","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"}],"name":"removePreTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"redisFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"redisFeeOnSell","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnSell","type":"uint256"}],"name":"setFee","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":"swapTokensAtAmount","type":"uint256"}],"name":"setMinSwapTokensThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"setTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_swapEnabled","type":"bool"}],"name":"toggleSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405266f6a11f484ec0005f196200001a9190620006e1565b5f1962000028919062000745565b6006555f60085560196009555f600a556023600b55600a54600c55600b54600d55600c54600e55600d54600f5573e24a97168a71679d75564f562c6935837a2def9060115f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073e24a97168a71679d75564f562c6935837a2def9060125f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f601460156101000a81548160ff0219169083151502179055506001601460166101000a81548160ff0219169083151502179055506604eebe10ce60006015556604eebe10ce6000601655651977420dc0006017553480156200015e575f80fd5b505f620001706200067d60201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35060065460025f620002226200067d60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f737a250d5630b4cf539739df2c5dacb4c659f2488d90508060135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000301573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620003279190620007e4565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200038d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620003b39190620007e4565b6040518363ffffffff1660e01b8152600401620003d292919062000825565b6020604051808303815f875af1158015620003ef573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620004159190620007e4565b60145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160055f620004696200068460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160055f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160055f60115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160055f60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550620006096200067d60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef66f6a11f484ec0006040516200066e919062000861565b60405180910390a3506200087c565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f819050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f620006ed82620006ab565b9150620006fa83620006ab565b9250826200070d576200070c620006b4565b5b828206905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6200075182620006ab565b91506200075e83620006ab565b925082820390508181111562000779576200077862000718565b5b92915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f620007ae8262000783565b9050919050565b620007c081620007a2565b8114620007cb575f80fd5b50565b5f81519050620007de81620007b5565b92915050565b5f60208284031215620007fc57620007fb6200077f565b5b5f6200080b84828501620007ce565b91505092915050565b6200081f81620007a2565b82525050565b5f6040820190506200083a5f83018562000814565b62000849602083018462000814565b9392505050565b6200085b81620006ab565b82525050565b5f602082019050620008765f83018462000850565b92915050565b613bbd806200088a5f395ff3fe6080604052600436106101c5575f3560e01c80637c519ffb116100f6578063a9059cbb11610094578063c492f04611610063578063c492f046146105e8578063dd62ed3e14610610578063ea1644d51461064c578063f2fde38b14610674576101cc565b8063a9059cbb14610532578063b5a652231461056e578063bdd795ef14610596578063c3c8cd80146105d2576101cc565b80638f9a55c0116100d05780638f9a55c01461048e57806395d89b41146104b857806398a5c315146104e2578063a2a957bb1461050a576101cc565b80637c519ffb146104245780637d1db4a51461043a5780638da5cb5b14610464576101cc565b806349bd5a5e116101635780636fc3eaec1161013d5780636fc3eaec1461039457806370a08231146103aa578063715018a6146103e657806374010ece146103fc576101cc565b806349bd5a5e1461031a57806367aadb7e146103445780636d8aa8f81461036c576101cc565b806318160ddd1161019f57806318160ddd1461026057806323b872dd1461028a5780632fd689e3146102c6578063313ce567146102f0576101cc565b806306fdde03146101d0578063095ea7b3146101fa5780631694505e14610236576101cc565b366101cc57005b5f80fd5b3480156101db575f80fd5b506101e461069c565b6040516101f19190612bae565b60405180910390f35b348015610205575f80fd5b50610220600480360381019061021b9190612c63565b6106d9565b60405161022d9190612cbb565b60405180910390f35b348015610241575f80fd5b5061024a6106f6565b6040516102579190612d2f565b60405180910390f35b34801561026b575f80fd5b5061027461071b565b6040516102819190612d57565b60405180910390f35b348015610295575f80fd5b506102b060048036038101906102ab9190612d70565b610729565b6040516102bd9190612cbb565b60405180910390f35b3480156102d1575f80fd5b506102da6107fd565b6040516102e79190612d57565b60405180910390f35b3480156102fb575f80fd5b50610304610803565b6040516103119190612ddb565b60405180910390f35b348015610325575f80fd5b5061032e61080b565b60405161033b9190612e03565b60405180910390f35b34801561034f575f80fd5b5061036a60048036038101906103659190612e7d565b610830565b005b348015610377575f80fd5b50610392600480360381019061038d9190612ef2565b61095c565b005b34801561039f575f80fd5b506103a8610a0d565b005b3480156103b5575f80fd5b506103d060048036038101906103cb9190612f1d565b610ada565b6040516103dd9190612d57565b60405180910390f35b3480156103f1575f80fd5b506103fa610b28565b005b348015610407575f80fd5b50610422600480360381019061041d9190612f48565b610c76565b005b34801561042f575f80fd5b50610438610d14565b005b348015610445575f80fd5b5061044e610dc4565b60405161045b9190612d57565b60405180910390f35b34801561046f575f80fd5b50610478610dca565b6040516104859190612e03565b60405180910390f35b348015610499575f80fd5b506104a2610df1565b6040516104af9190612d57565b60405180910390f35b3480156104c3575f80fd5b506104cc610df7565b6040516104d99190612bae565b60405180910390f35b3480156104ed575f80fd5b5061050860048036038101906105039190612f48565b610e34565b005b348015610515575f80fd5b50610530600480360381019061052b9190612f73565b610ed2565b005b34801561053d575f80fd5b5061055860048036038101906105539190612c63565b611024565b6040516105659190612cbb565b60405180910390f35b348015610579575f80fd5b50610594600480360381019061058f9190612e7d565b611041565b005b3480156105a1575f80fd5b506105bc60048036038101906105b79190612f1d565b611176565b6040516105c99190612cbb565b60405180910390f35b3480156105dd575f80fd5b506105e6611193565b005b3480156105f3575f80fd5b5061060e60048036038101906106099190612fd7565b611268565b005b34801561061b575f80fd5b5061063660048036038101906106319190613034565b61139d565b6040516106439190612d57565b60405180910390f35b348015610657575f80fd5b50610672600480360381019061066d9190612f48565b61141f565b005b34801561067f575f80fd5b5061069a60048036038101906106959190612f1d565b6114bd565b005b60606040518060400160405280601281526020017f4920446f6e7420476976652041204675636b0000000000000000000000000000815250905090565b5f6106ec6106e561167a565b8484611681565b6001905092915050565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f66f6a11f484ec000905090565b5f610735848484611844565b6107f28461074161167a565b6107ed85604051806060016040528060288152602001613b606028913960045f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6107a461167a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546120999092919063ffffffff16565b611681565b600190509392505050565b60175481565b5f6009905090565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61083861167a565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108bb906130bc565b60405180910390fd5b5f5b828290508110156109575760105f8484848181106108e7576108e66130da565b5b90506020020160208101906108fc9190612f1d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81549060ff0219169055808061094f90613134565b9150506108c6565b505050565b61096461167a565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109e7906130bc565b60405180910390fd5b80601460166101000a81548160ff02191690831515021790555050565b60115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610a4d61167a565b73ffffffffffffffffffffffffffffffffffffffff161480610ac2575060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610aaa61167a565b73ffffffffffffffffffffffffffffffffffffffff16145b610aca575f80fd5b5f479050610ad7816120fb565b50565b5f610b2160025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612163565b9050919050565b610b3061167a565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bbc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb3906130bc565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610c7e61167a565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d01906130bc565b60405180910390fd5b8060158190555050565b610d1c61167a565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610da8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9f906130bc565b60405180910390fd5b60016014806101000a81548160ff021916908315150217905550565b60155481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60165481565b60606040518060400160405280601581526020017f6964676166666666666666666666666666666666660000000000000000000000815250905090565b610e3c61167a565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ec8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ebf906130bc565b60405180910390fd5b8060178190555050565b610eda61167a565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f66576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5d906130bc565b60405180910390fd5b60148285610f74919061317b565b10610fb4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fab906131f8565b60405180910390fd5b60148184610fc2919061317b565b10611002576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ff990613260565b60405180910390fd5b8360088190555082600a819055508160098190555080600b8190555050505050565b5f61103761103061167a565b8484611844565b6001905092915050565b61104961167a565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110cc906130bc565b60405180910390fd5b5f5b8282905081101561117157600160105f8585858181106110fa576110f96130da565b5b905060200201602081019061110f9190612f1d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550808061116990613134565b9150506110d7565b505050565b6010602052805f5260405f205f915054906101000a900460ff1681565b60115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166111d361167a565b73ffffffffffffffffffffffffffffffffffffffff161480611248575060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661123061167a565b73ffffffffffffffffffffffffffffffffffffffff16145b611250575f80fd5b5f61125a30610ada565b9050611265816121cf565b50565b61127061167a565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112f3906130bc565b60405180910390fd5b5f5b83839050811015611397578160055f8686858181106113205761131f6130da565b5b90506020020160208101906113359190612f1d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550808061138f90613134565b9150506112fe565b50505050565b5f60045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b61142761167a565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114aa906130bc565b60405180910390fd5b8060168190555050565b6114c561167a565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611551576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611548906130bc565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036115bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115b6906132ee565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036116ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116e69061337c565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361175d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117549061340a565b60405180910390fd5b8060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516118379190612d57565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036118b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118a990613498565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611920576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161191790613526565b60405180910390fd5b5f8111611962576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611959906135b4565b60405180910390fd5b61196a610dca565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156119d857506119a8610dca565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611a2b575060105f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611a7e575060105f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611da65760148054906101000a900460ff16611b1f5760105f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16611b1e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b1590613642565b60405180910390fd5b5b601554811115611b64576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b5b906136aa565b60405180910390fd5b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611c105760165481611bc584610ada565b611bcf919061317b565b10611c0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c0690613738565b60405180910390fd5b5b5f611c1a30610ada565b90505f60175482101590506014601754611c349190613756565b8210611c4c576014601754611c499190613756565b91505b808015611c665750601460159054906101000a900460ff16155b8015611cbf575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611cd75750601460169054906101000a900460ff165b8015611d2a575060055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611d7d575060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611da357611d8b826121cf565b5f4790505f811115611da157611da0476120fb565b5b505b50505b5f6001905060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611e46575060055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b80611ef7575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611ef6575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15611f04575f9050612087565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611fad575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611fc557600854600c81905550600954600d819055505b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561206e575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561208657600a54600c81905550600b54600d819055505b5b6120938484848461243a565b50505050565b5f8383111582906120e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120d79190612bae565b60405180910390fd5b505f83856120ee9190613797565b9050809150509392505050565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f1935050505015801561215f573d5f803e3d5ffd5b5050565b5f6006548211156121a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121a09061383a565b60405180910390fd5b5f6121b2612467565b90506121c7818461249090919063ffffffff16565b915050919050565b6001601460156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff81111561220657612205613858565b5b6040519080825280602002602001820160405280156122345781602001602082028036833780820191505090505b50905030815f8151811061224b5761224a6130da565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156122ef573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906123139190613899565b81600181518110612327576123266130da565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061238d3060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611681565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016123ef9594939291906139b4565b5f604051808303815f87803b158015612406575f80fd5b505af1158015612418573d5f803e3d5ffd5b50505050505f601460156101000a81548160ff02191690831515021790555050565b80612448576124476124d9565b5b612453848484612512565b80612461576124606126d2565b5b50505050565b5f805f6124726126e6565b91509150612489818361249090919063ffffffff16565b9250505090565b5f6124d183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061273f565b905092915050565b5f600c541480156124eb57505f600d54145b61251057600c54600e81905550600d54600f819055505f600c819055505f600d819055505b565b5f805f805f80612521876127a0565b95509550955095509550955061257d8660025f8c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461280090919063ffffffff16565b60025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061260e8560025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461284990919063ffffffff16565b60025f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550612658816128a6565b612662848361295d565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516126bf9190612d57565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b5f805f60065490505f66f6a11f484ec000905061271566f6a11f484ec00060065461249090919063ffffffff16565b8210156127325760065466f6a11f484ec00093509350505061273b565b81819350935050505b9091565b5f8083118290612785576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161277c9190612bae565b60405180910390fd5b505f83856127939190613a39565b9050809150509392505050565b5f805f805f805f805f6127b88a600c54600d54612997565b9250925092505f6127c7612467565b90505f805f6127d88e878787612a29565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b5f61284183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612099565b905092915050565b5f808284612857919061317b565b90508381101561289c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161289390613ab3565b60405180910390fd5b8091505092915050565b5f6128af612467565b90505f6128c58284612aad90919063ffffffff16565b90506129178160025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461284990919063ffffffff16565b60025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505050565b6129728260065461280090919063ffffffff16565b60068190555061298d8160075461284990919063ffffffff16565b6007819055505050565b5f805f806129c160646129b3888a612aad90919063ffffffff16565b61249090919063ffffffff16565b90505f6129ea60646129dc888b612aad90919063ffffffff16565b61249090919063ffffffff16565b90505f612a1282612a04858c61280090919063ffffffff16565b61280090919063ffffffff16565b905080838395509550955050505093509350939050565b5f805f80612a408589612aad90919063ffffffff16565b90505f612a568689612aad90919063ffffffff16565b90505f612a6c8789612aad90919063ffffffff16565b90505f612a9482612a86858761280090919063ffffffff16565b61280090919063ffffffff16565b9050838184965096509650505050509450945094915050565b5f808303612abd575f9050612b1e565b5f8284612aca9190613756565b9050828482612ad99190613a39565b14612b19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b1090613b41565b60405180910390fd5b809150505b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015612b5b578082015181840152602081019050612b40565b5f8484015250505050565b5f601f19601f8301169050919050565b5f612b8082612b24565b612b8a8185612b2e565b9350612b9a818560208601612b3e565b612ba381612b66565b840191505092915050565b5f6020820190508181035f830152612bc68184612b76565b905092915050565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612bff82612bd6565b9050919050565b612c0f81612bf5565b8114612c19575f80fd5b50565b5f81359050612c2a81612c06565b92915050565b5f819050919050565b612c4281612c30565b8114612c4c575f80fd5b50565b5f81359050612c5d81612c39565b92915050565b5f8060408385031215612c7957612c78612bce565b5b5f612c8685828601612c1c565b9250506020612c9785828601612c4f565b9150509250929050565b5f8115159050919050565b612cb581612ca1565b82525050565b5f602082019050612cce5f830184612cac565b92915050565b5f819050919050565b5f612cf7612cf2612ced84612bd6565b612cd4565b612bd6565b9050919050565b5f612d0882612cdd565b9050919050565b5f612d1982612cfe565b9050919050565b612d2981612d0f565b82525050565b5f602082019050612d425f830184612d20565b92915050565b612d5181612c30565b82525050565b5f602082019050612d6a5f830184612d48565b92915050565b5f805f60608486031215612d8757612d86612bce565b5b5f612d9486828701612c1c565b9350506020612da586828701612c1c565b9250506040612db686828701612c4f565b9150509250925092565b5f60ff82169050919050565b612dd581612dc0565b82525050565b5f602082019050612dee5f830184612dcc565b92915050565b612dfd81612bf5565b82525050565b5f602082019050612e165f830184612df4565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f840112612e3d57612e3c612e1c565b5b8235905067ffffffffffffffff811115612e5a57612e59612e20565b5b602083019150836020820283011115612e7657612e75612e24565b5b9250929050565b5f8060208385031215612e9357612e92612bce565b5b5f83013567ffffffffffffffff811115612eb057612eaf612bd2565b5b612ebc85828601612e28565b92509250509250929050565b612ed181612ca1565b8114612edb575f80fd5b50565b5f81359050612eec81612ec8565b92915050565b5f60208284031215612f0757612f06612bce565b5b5f612f1484828501612ede565b91505092915050565b5f60208284031215612f3257612f31612bce565b5b5f612f3f84828501612c1c565b91505092915050565b5f60208284031215612f5d57612f5c612bce565b5b5f612f6a84828501612c4f565b91505092915050565b5f805f8060808587031215612f8b57612f8a612bce565b5b5f612f9887828801612c4f565b9450506020612fa987828801612c4f565b9350506040612fba87828801612c4f565b9250506060612fcb87828801612c4f565b91505092959194509250565b5f805f60408486031215612fee57612fed612bce565b5b5f84013567ffffffffffffffff81111561300b5761300a612bd2565b5b61301786828701612e28565b9350935050602061302a86828701612ede565b9150509250925092565b5f806040838503121561304a57613049612bce565b5b5f61305785828601612c1c565b925050602061306885828601612c1c565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6130a6602083612b2e565b91506130b182613072565b602082019050919050565b5f6020820190508181035f8301526130d38161309a565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61313e82612c30565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036131705761316f613107565b5b600182019050919050565b5f61318582612c30565b915061319083612c30565b92508282019050808211156131a8576131a7613107565b5b92915050565b7f544f4b454e3a204275792074617820746f6f20686967682e00000000000000005f82015250565b5f6131e2601883612b2e565b91506131ed826131ae565b602082019050919050565b5f6020820190508181035f83015261320f816131d6565b9050919050565b7f544f4b454e3a2053656c6c2074617820746f6f20686967682e000000000000005f82015250565b5f61324a601983612b2e565b915061325582613216565b602082019050919050565b5f6020820190508181035f8301526132778161323e565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f6132d8602683612b2e565b91506132e38261327e565b604082019050919050565b5f6020820190508181035f830152613305816132cc565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f613366602483612b2e565b91506133718261330c565b604082019050919050565b5f6020820190508181035f8301526133938161335a565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6133f4602283612b2e565b91506133ff8261339a565b604082019050919050565b5f6020820190508181035f830152613421816133e8565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f613482602583612b2e565b915061348d82613428565b604082019050919050565b5f6020820190508181035f8301526134af81613476565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f613510602383612b2e565b915061351b826134b6565b604082019050919050565b5f6020820190508181035f83015261353d81613504565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f61359e602983612b2e565b91506135a982613544565b604082019050919050565b5f6020820190508181035f8301526135cb81613592565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e64205f8201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b5f61362c603f83612b2e565b9150613637826135d2565b604082019050919050565b5f6020820190508181035f83015261365981613620565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d6974000000005f82015250565b5f613694601c83612b2e565b915061369f82613660565b602082019050919050565b5f6020820190508181035f8301526136c181613688565b9050919050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073695f8201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b5f613722602383612b2e565b915061372d826136c8565b604082019050919050565b5f6020820190508181035f83015261374f81613716565b9050919050565b5f61376082612c30565b915061376b83612c30565b925082820261377981612c30565b915082820484148315176137905761378f613107565b5b5092915050565b5f6137a182612c30565b91506137ac83612c30565b92508282039050818111156137c4576137c3613107565b5b92915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c20725f8201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b5f613824602a83612b2e565b915061382f826137ca565b604082019050919050565b5f6020820190508181035f83015261385181613818565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f8151905061389381612c06565b92915050565b5f602082840312156138ae576138ad612bce565b5b5f6138bb84828501613885565b91505092915050565b5f819050919050565b5f6138e76138e26138dd846138c4565b612cd4565b612c30565b9050919050565b6138f7816138cd565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61392f81612bf5565b82525050565b5f6139408383613926565b60208301905092915050565b5f602082019050919050565b5f613962826138fd565b61396c8185613907565b935061397783613917565b805f5b838110156139a757815161398e8882613935565b97506139998361394c565b92505060018101905061397a565b5085935050505092915050565b5f60a0820190506139c75f830188612d48565b6139d460208301876138ee565b81810360408301526139e68186613958565b90506139f56060830185612df4565b613a026080830184612d48565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613a4382612c30565b9150613a4e83612c30565b925082613a5e57613a5d613a0c565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613a9d601b83612b2e565b9150613aa882613a69565b602082019050919050565b5f6020820190508181035f830152613aca81613a91565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f613b2b602183612b2e565b9150613b3682613ad1565b604082019050919050565b5f6020820190508181035f830152613b5881613b1f565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220566d7a71de36dafeb746924e32d37814ff24ccc7e88520b4e9367a86ade653d764736f6c63430008140033

Deployed Bytecode

0x6080604052600436106101c5575f3560e01c80637c519ffb116100f6578063a9059cbb11610094578063c492f04611610063578063c492f046146105e8578063dd62ed3e14610610578063ea1644d51461064c578063f2fde38b14610674576101cc565b8063a9059cbb14610532578063b5a652231461056e578063bdd795ef14610596578063c3c8cd80146105d2576101cc565b80638f9a55c0116100d05780638f9a55c01461048e57806395d89b41146104b857806398a5c315146104e2578063a2a957bb1461050a576101cc565b80637c519ffb146104245780637d1db4a51461043a5780638da5cb5b14610464576101cc565b806349bd5a5e116101635780636fc3eaec1161013d5780636fc3eaec1461039457806370a08231146103aa578063715018a6146103e657806374010ece146103fc576101cc565b806349bd5a5e1461031a57806367aadb7e146103445780636d8aa8f81461036c576101cc565b806318160ddd1161019f57806318160ddd1461026057806323b872dd1461028a5780632fd689e3146102c6578063313ce567146102f0576101cc565b806306fdde03146101d0578063095ea7b3146101fa5780631694505e14610236576101cc565b366101cc57005b5f80fd5b3480156101db575f80fd5b506101e461069c565b6040516101f19190612bae565b60405180910390f35b348015610205575f80fd5b50610220600480360381019061021b9190612c63565b6106d9565b60405161022d9190612cbb565b60405180910390f35b348015610241575f80fd5b5061024a6106f6565b6040516102579190612d2f565b60405180910390f35b34801561026b575f80fd5b5061027461071b565b6040516102819190612d57565b60405180910390f35b348015610295575f80fd5b506102b060048036038101906102ab9190612d70565b610729565b6040516102bd9190612cbb565b60405180910390f35b3480156102d1575f80fd5b506102da6107fd565b6040516102e79190612d57565b60405180910390f35b3480156102fb575f80fd5b50610304610803565b6040516103119190612ddb565b60405180910390f35b348015610325575f80fd5b5061032e61080b565b60405161033b9190612e03565b60405180910390f35b34801561034f575f80fd5b5061036a60048036038101906103659190612e7d565b610830565b005b348015610377575f80fd5b50610392600480360381019061038d9190612ef2565b61095c565b005b34801561039f575f80fd5b506103a8610a0d565b005b3480156103b5575f80fd5b506103d060048036038101906103cb9190612f1d565b610ada565b6040516103dd9190612d57565b60405180910390f35b3480156103f1575f80fd5b506103fa610b28565b005b348015610407575f80fd5b50610422600480360381019061041d9190612f48565b610c76565b005b34801561042f575f80fd5b50610438610d14565b005b348015610445575f80fd5b5061044e610dc4565b60405161045b9190612d57565b60405180910390f35b34801561046f575f80fd5b50610478610dca565b6040516104859190612e03565b60405180910390f35b348015610499575f80fd5b506104a2610df1565b6040516104af9190612d57565b60405180910390f35b3480156104c3575f80fd5b506104cc610df7565b6040516104d99190612bae565b60405180910390f35b3480156104ed575f80fd5b5061050860048036038101906105039190612f48565b610e34565b005b348015610515575f80fd5b50610530600480360381019061052b9190612f73565b610ed2565b005b34801561053d575f80fd5b5061055860048036038101906105539190612c63565b611024565b6040516105659190612cbb565b60405180910390f35b348015610579575f80fd5b50610594600480360381019061058f9190612e7d565b611041565b005b3480156105a1575f80fd5b506105bc60048036038101906105b79190612f1d565b611176565b6040516105c99190612cbb565b60405180910390f35b3480156105dd575f80fd5b506105e6611193565b005b3480156105f3575f80fd5b5061060e60048036038101906106099190612fd7565b611268565b005b34801561061b575f80fd5b5061063660048036038101906106319190613034565b61139d565b6040516106439190612d57565b60405180910390f35b348015610657575f80fd5b50610672600480360381019061066d9190612f48565b61141f565b005b34801561067f575f80fd5b5061069a60048036038101906106959190612f1d565b6114bd565b005b60606040518060400160405280601281526020017f4920446f6e7420476976652041204675636b0000000000000000000000000000815250905090565b5f6106ec6106e561167a565b8484611681565b6001905092915050565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f66f6a11f484ec000905090565b5f610735848484611844565b6107f28461074161167a565b6107ed85604051806060016040528060288152602001613b606028913960045f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6107a461167a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546120999092919063ffffffff16565b611681565b600190509392505050565b60175481565b5f6009905090565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61083861167a565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108bb906130bc565b60405180910390fd5b5f5b828290508110156109575760105f8484848181106108e7576108e66130da565b5b90506020020160208101906108fc9190612f1d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81549060ff0219169055808061094f90613134565b9150506108c6565b505050565b61096461167a565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109e7906130bc565b60405180910390fd5b80601460166101000a81548160ff02191690831515021790555050565b60115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610a4d61167a565b73ffffffffffffffffffffffffffffffffffffffff161480610ac2575060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610aaa61167a565b73ffffffffffffffffffffffffffffffffffffffff16145b610aca575f80fd5b5f479050610ad7816120fb565b50565b5f610b2160025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612163565b9050919050565b610b3061167a565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bbc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb3906130bc565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610c7e61167a565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d01906130bc565b60405180910390fd5b8060158190555050565b610d1c61167a565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610da8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9f906130bc565b60405180910390fd5b60016014806101000a81548160ff021916908315150217905550565b60155481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60165481565b60606040518060400160405280601581526020017f6964676166666666666666666666666666666666660000000000000000000000815250905090565b610e3c61167a565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ec8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ebf906130bc565b60405180910390fd5b8060178190555050565b610eda61167a565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f66576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5d906130bc565b60405180910390fd5b60148285610f74919061317b565b10610fb4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fab906131f8565b60405180910390fd5b60148184610fc2919061317b565b10611002576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ff990613260565b60405180910390fd5b8360088190555082600a819055508160098190555080600b8190555050505050565b5f61103761103061167a565b8484611844565b6001905092915050565b61104961167a565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110cc906130bc565b60405180910390fd5b5f5b8282905081101561117157600160105f8585858181106110fa576110f96130da565b5b905060200201602081019061110f9190612f1d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550808061116990613134565b9150506110d7565b505050565b6010602052805f5260405f205f915054906101000a900460ff1681565b60115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166111d361167a565b73ffffffffffffffffffffffffffffffffffffffff161480611248575060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661123061167a565b73ffffffffffffffffffffffffffffffffffffffff16145b611250575f80fd5b5f61125a30610ada565b9050611265816121cf565b50565b61127061167a565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112f3906130bc565b60405180910390fd5b5f5b83839050811015611397578160055f8686858181106113205761131f6130da565b5b90506020020160208101906113359190612f1d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550808061138f90613134565b9150506112fe565b50505050565b5f60045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b61142761167a565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114aa906130bc565b60405180910390fd5b8060168190555050565b6114c561167a565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611551576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611548906130bc565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036115bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115b6906132ee565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036116ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116e69061337c565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361175d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117549061340a565b60405180910390fd5b8060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516118379190612d57565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036118b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118a990613498565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611920576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161191790613526565b60405180910390fd5b5f8111611962576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611959906135b4565b60405180910390fd5b61196a610dca565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156119d857506119a8610dca565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611a2b575060105f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611a7e575060105f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611da65760148054906101000a900460ff16611b1f5760105f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16611b1e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b1590613642565b60405180910390fd5b5b601554811115611b64576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b5b906136aa565b60405180910390fd5b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611c105760165481611bc584610ada565b611bcf919061317b565b10611c0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c0690613738565b60405180910390fd5b5b5f611c1a30610ada565b90505f60175482101590506014601754611c349190613756565b8210611c4c576014601754611c499190613756565b91505b808015611c665750601460159054906101000a900460ff16155b8015611cbf575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611cd75750601460169054906101000a900460ff165b8015611d2a575060055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611d7d575060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611da357611d8b826121cf565b5f4790505f811115611da157611da0476120fb565b5b505b50505b5f6001905060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611e46575060055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b80611ef7575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611ef6575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15611f04575f9050612087565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611fad575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611fc557600854600c81905550600954600d819055505b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561206e575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561208657600a54600c81905550600b54600d819055505b5b6120938484848461243a565b50505050565b5f8383111582906120e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120d79190612bae565b60405180910390fd5b505f83856120ee9190613797565b9050809150509392505050565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f1935050505015801561215f573d5f803e3d5ffd5b5050565b5f6006548211156121a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121a09061383a565b60405180910390fd5b5f6121b2612467565b90506121c7818461249090919063ffffffff16565b915050919050565b6001601460156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff81111561220657612205613858565b5b6040519080825280602002602001820160405280156122345781602001602082028036833780820191505090505b50905030815f8151811061224b5761224a6130da565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156122ef573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906123139190613899565b81600181518110612327576123266130da565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061238d3060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611681565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016123ef9594939291906139b4565b5f604051808303815f87803b158015612406575f80fd5b505af1158015612418573d5f803e3d5ffd5b50505050505f601460156101000a81548160ff02191690831515021790555050565b80612448576124476124d9565b5b612453848484612512565b80612461576124606126d2565b5b50505050565b5f805f6124726126e6565b91509150612489818361249090919063ffffffff16565b9250505090565b5f6124d183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061273f565b905092915050565b5f600c541480156124eb57505f600d54145b61251057600c54600e81905550600d54600f819055505f600c819055505f600d819055505b565b5f805f805f80612521876127a0565b95509550955095509550955061257d8660025f8c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461280090919063ffffffff16565b60025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061260e8560025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461284990919063ffffffff16565b60025f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550612658816128a6565b612662848361295d565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516126bf9190612d57565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b5f805f60065490505f66f6a11f484ec000905061271566f6a11f484ec00060065461249090919063ffffffff16565b8210156127325760065466f6a11f484ec00093509350505061273b565b81819350935050505b9091565b5f8083118290612785576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161277c9190612bae565b60405180910390fd5b505f83856127939190613a39565b9050809150509392505050565b5f805f805f805f805f6127b88a600c54600d54612997565b9250925092505f6127c7612467565b90505f805f6127d88e878787612a29565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b5f61284183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612099565b905092915050565b5f808284612857919061317b565b90508381101561289c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161289390613ab3565b60405180910390fd5b8091505092915050565b5f6128af612467565b90505f6128c58284612aad90919063ffffffff16565b90506129178160025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461284990919063ffffffff16565b60025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505050565b6129728260065461280090919063ffffffff16565b60068190555061298d8160075461284990919063ffffffff16565b6007819055505050565b5f805f806129c160646129b3888a612aad90919063ffffffff16565b61249090919063ffffffff16565b90505f6129ea60646129dc888b612aad90919063ffffffff16565b61249090919063ffffffff16565b90505f612a1282612a04858c61280090919063ffffffff16565b61280090919063ffffffff16565b905080838395509550955050505093509350939050565b5f805f80612a408589612aad90919063ffffffff16565b90505f612a568689612aad90919063ffffffff16565b90505f612a6c8789612aad90919063ffffffff16565b90505f612a9482612a86858761280090919063ffffffff16565b61280090919063ffffffff16565b9050838184965096509650505050509450945094915050565b5f808303612abd575f9050612b1e565b5f8284612aca9190613756565b9050828482612ad99190613a39565b14612b19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b1090613b41565b60405180910390fd5b809150505b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015612b5b578082015181840152602081019050612b40565b5f8484015250505050565b5f601f19601f8301169050919050565b5f612b8082612b24565b612b8a8185612b2e565b9350612b9a818560208601612b3e565b612ba381612b66565b840191505092915050565b5f6020820190508181035f830152612bc68184612b76565b905092915050565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612bff82612bd6565b9050919050565b612c0f81612bf5565b8114612c19575f80fd5b50565b5f81359050612c2a81612c06565b92915050565b5f819050919050565b612c4281612c30565b8114612c4c575f80fd5b50565b5f81359050612c5d81612c39565b92915050565b5f8060408385031215612c7957612c78612bce565b5b5f612c8685828601612c1c565b9250506020612c9785828601612c4f565b9150509250929050565b5f8115159050919050565b612cb581612ca1565b82525050565b5f602082019050612cce5f830184612cac565b92915050565b5f819050919050565b5f612cf7612cf2612ced84612bd6565b612cd4565b612bd6565b9050919050565b5f612d0882612cdd565b9050919050565b5f612d1982612cfe565b9050919050565b612d2981612d0f565b82525050565b5f602082019050612d425f830184612d20565b92915050565b612d5181612c30565b82525050565b5f602082019050612d6a5f830184612d48565b92915050565b5f805f60608486031215612d8757612d86612bce565b5b5f612d9486828701612c1c565b9350506020612da586828701612c1c565b9250506040612db686828701612c4f565b9150509250925092565b5f60ff82169050919050565b612dd581612dc0565b82525050565b5f602082019050612dee5f830184612dcc565b92915050565b612dfd81612bf5565b82525050565b5f602082019050612e165f830184612df4565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f840112612e3d57612e3c612e1c565b5b8235905067ffffffffffffffff811115612e5a57612e59612e20565b5b602083019150836020820283011115612e7657612e75612e24565b5b9250929050565b5f8060208385031215612e9357612e92612bce565b5b5f83013567ffffffffffffffff811115612eb057612eaf612bd2565b5b612ebc85828601612e28565b92509250509250929050565b612ed181612ca1565b8114612edb575f80fd5b50565b5f81359050612eec81612ec8565b92915050565b5f60208284031215612f0757612f06612bce565b5b5f612f1484828501612ede565b91505092915050565b5f60208284031215612f3257612f31612bce565b5b5f612f3f84828501612c1c565b91505092915050565b5f60208284031215612f5d57612f5c612bce565b5b5f612f6a84828501612c4f565b91505092915050565b5f805f8060808587031215612f8b57612f8a612bce565b5b5f612f9887828801612c4f565b9450506020612fa987828801612c4f565b9350506040612fba87828801612c4f565b9250506060612fcb87828801612c4f565b91505092959194509250565b5f805f60408486031215612fee57612fed612bce565b5b5f84013567ffffffffffffffff81111561300b5761300a612bd2565b5b61301786828701612e28565b9350935050602061302a86828701612ede565b9150509250925092565b5f806040838503121561304a57613049612bce565b5b5f61305785828601612c1c565b925050602061306885828601612c1c565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6130a6602083612b2e565b91506130b182613072565b602082019050919050565b5f6020820190508181035f8301526130d38161309a565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61313e82612c30565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036131705761316f613107565b5b600182019050919050565b5f61318582612c30565b915061319083612c30565b92508282019050808211156131a8576131a7613107565b5b92915050565b7f544f4b454e3a204275792074617820746f6f20686967682e00000000000000005f82015250565b5f6131e2601883612b2e565b91506131ed826131ae565b602082019050919050565b5f6020820190508181035f83015261320f816131d6565b9050919050565b7f544f4b454e3a2053656c6c2074617820746f6f20686967682e000000000000005f82015250565b5f61324a601983612b2e565b915061325582613216565b602082019050919050565b5f6020820190508181035f8301526132778161323e565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f6132d8602683612b2e565b91506132e38261327e565b604082019050919050565b5f6020820190508181035f830152613305816132cc565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f613366602483612b2e565b91506133718261330c565b604082019050919050565b5f6020820190508181035f8301526133938161335a565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6133f4602283612b2e565b91506133ff8261339a565b604082019050919050565b5f6020820190508181035f830152613421816133e8565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f613482602583612b2e565b915061348d82613428565b604082019050919050565b5f6020820190508181035f8301526134af81613476565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f613510602383612b2e565b915061351b826134b6565b604082019050919050565b5f6020820190508181035f83015261353d81613504565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f61359e602983612b2e565b91506135a982613544565b604082019050919050565b5f6020820190508181035f8301526135cb81613592565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e64205f8201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b5f61362c603f83612b2e565b9150613637826135d2565b604082019050919050565b5f6020820190508181035f83015261365981613620565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d6974000000005f82015250565b5f613694601c83612b2e565b915061369f82613660565b602082019050919050565b5f6020820190508181035f8301526136c181613688565b9050919050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073695f8201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b5f613722602383612b2e565b915061372d826136c8565b604082019050919050565b5f6020820190508181035f83015261374f81613716565b9050919050565b5f61376082612c30565b915061376b83612c30565b925082820261377981612c30565b915082820484148315176137905761378f613107565b5b5092915050565b5f6137a182612c30565b91506137ac83612c30565b92508282039050818111156137c4576137c3613107565b5b92915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c20725f8201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b5f613824602a83612b2e565b915061382f826137ca565b604082019050919050565b5f6020820190508181035f83015261385181613818565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f8151905061389381612c06565b92915050565b5f602082840312156138ae576138ad612bce565b5b5f6138bb84828501613885565b91505092915050565b5f819050919050565b5f6138e76138e26138dd846138c4565b612cd4565b612c30565b9050919050565b6138f7816138cd565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61392f81612bf5565b82525050565b5f6139408383613926565b60208301905092915050565b5f602082019050919050565b5f613962826138fd565b61396c8185613907565b935061397783613917565b805f5b838110156139a757815161398e8882613935565b97506139998361394c565b92505060018101905061397a565b5085935050505092915050565b5f60a0820190506139c75f830188612d48565b6139d460208301876138ee565b81810360408301526139e68186613958565b90506139f56060830185612df4565b613a026080830184612d48565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613a4382612c30565b9150613a4e83612c30565b925082613a5e57613a5d613a0c565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613a9d601b83612b2e565b9150613aa882613a69565b602082019050919050565b5f6020820190508181035f830152613aca81613a91565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f613b2b602183612b2e565b9150613b3682613ad1565b604082019050919050565b5f6020820190508181035f830152613b5881613b1f565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220566d7a71de36dafeb746924e32d37814ff24ccc7e88520b4e9367a86ade653d764736f6c63430008140033

Deployed Bytecode Sourcemap

4923:13726:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7419:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8344:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6266:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7696:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8545:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6566:51;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7605:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6314:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18455:191;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17636:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13298:235;;;;;;;;;;;;;:::i;:::-;;7799:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2410:148;;;;;;;;;;;;;:::i;:::-;;17776:108;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12970:76;;;;;;;;;;;;;:::i;:::-;;6456:47;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2196:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6510:49;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7510:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17445:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16939:454;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7945:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18257:190;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6009:42;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13054:236;;;;;;;;;;;;;:::i;:::-;;18015:234;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8152:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17892:115;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2566:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7419:83;7456:13;7489:5;;;;;;;;;;;;;;;;;7482:12;;7419:83;:::o;8344:193::-;8446:4;8468:39;8477:12;:10;:12::i;:::-;8491:7;8500:6;8468:8;:39::i;:::-;8525:4;8518:11;;8344:193;;;;:::o;6266:41::-;;;;;;;;;;;;;:::o;7696:95::-;7749:7;5509:18;7769:14;;7696:95;:::o;8545:446::-;8677:4;8694:36;8704:6;8712:9;8723:6;8694:9;:36::i;:::-;8741:220;8764:6;8785:12;:10;:12::i;:::-;8812:138;8868:6;8812:138;;;;;;;;;;;;;;;;;:11;:19;8824:6;8812:19;;;;;;;;;;;;;;;:33;8832:12;:10;:12::i;:::-;8812:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;8741:8;:220::i;:::-;8979:4;8972:11;;8545:446;;;;;:::o;6566:51::-;;;;:::o;7605:83::-;7646:5;5183:1;7664:16;;7605:83;:::o;6314:28::-;;;;;;;;;;;;;:::o;18455:191::-;2333:12;:10;:12::i;:::-;2323:22;;:6;;;;;;;;;;:22;;;2315:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18542:9:::1;18538:101;18561:8;;:15;;18557:1;:19;18538:101;;;18605:9;:22;18615:8;;18624:1;18615:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;18605:22;;;;;;;;;;;;;;;;18598:29;;;;;;;;;;;18578:3;;;;;:::i;:::-;;;;18538:101;;;;18455:191:::0;;:::o;17636:101::-;2333:12;:10;:12::i;:::-;2323:22;;:6;;;;;;;;;;:22;;;2315:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17717:12:::1;17703:11;;:26;;;;;;;;;;;;;;;;;;17636:101:::0;:::o;13298:235::-;13364:19;;;;;;;;;;;13348:35;;:12;:10;:12::i;:::-;:35;;;:72;;;;13403:17;;;;;;;;;;;13387:33;;:12;:10;:12::i;:::-;:33;;;13348:72;13340:81;;;;;;13432:26;13461:21;13432:50;;13493:32;13506:18;13493:12;:32::i;:::-;13329:204;13298:235::o;7799:138::-;7865:7;7892:37;7912:7;:16;7920:7;7912:16;;;;;;;;;;;;;;;;7892:19;:37::i;:::-;7885:44;;7799:138;;;:::o;2410:148::-;2333:12;:10;:12::i;:::-;2323:22;;:6;;;;;;;;;;:22;;;2315:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2517:1:::1;2480:40;;2501:6;::::0;::::1;;;;;;;;2480:40;;;;;;;;;;;;2548:1;2531:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2410:148::o:0;17776:108::-;2333:12;:10;:12::i;:::-;2323:22;;:6;;;;;;;;;;:22;;;2315:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17865:11:::1;17850:12;:26;;;;17776:108:::0;:::o;12970:76::-;2333:12;:10;:12::i;:::-;2323:22;;:6;;;;;;;;;;:22;;;2315:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13034:4:::1;13020:11;::::0;:18:::1;;;;;;;;;;;;;;;;;;12970:76::o:0;6456:47::-;;;;:::o;2196:79::-;2234:7;2261:6;;;;;;;;;;;2254:13;;2196:79;:::o;6510:49::-;;;;:::o;7510:87::-;7549:13;7582:7;;;;;;;;;;;;;;;;;7575:14;;7510:87;:::o;17445:139::-;2333:12;:10;:12::i;:::-;2323:22;;:6;;;;;;;;;;:22;;;2315:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17558:18:::1;17536:19;:40;;;;17445:139:::0;:::o;16939:454::-;2333:12;:10;:12::i;:::-;2323:22;;:6;;;;;;;;;;:22;;;2315:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17111:2:::1;17097:11;17081:13;:27;;;;:::i;:::-;:32;17073:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;17193:2;17178:12;17161:14;:29;;;;:::i;:::-;:34;17153:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;17253:13;17236:14;:30;;;;17295:14;17277:15;:32;;;;17335:11;17320:12;:26;;;;17373:12;17357:13;:28;;;;16939:454:::0;;;;:::o;7945:199::-;8050:4;8072:42;8082:12;:10;:12::i;:::-;8096:9;8107:6;8072:9;:42::i;:::-;8132:4;8125:11;;7945:199;;;;:::o;18257:190::-;2333:12;:10;:12::i;:::-;2323:22;;:6;;;;;;;;;;:22;;;2315:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18343:9:::1;18339:101;18362:8;;:15;;18358:1;:19;18339:101;;;18424:4;18399:9;:22;18409:8;;18418:1;18409:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;18399:22;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;18379:3;;;;;:::i;:::-;;;;18339:101;;;;18257:190:::0;;:::o;6009:42::-;;;;;;;;;;;;;;;;;;;;;;:::o;13054:236::-;13120:19;;;;;;;;;;;13104:35;;:12;:10;:12::i;:::-;:35;;;:72;;;;13159:17;;;;;;;;;;;13143:33;;:12;:10;:12::i;:::-;:33;;;13104:72;13096:81;;;;;;13188:23;13214:24;13232:4;13214:9;:24::i;:::-;13188:50;;13249:33;13266:15;13249:16;:33::i;:::-;13085:205;13054:236::o;18015:234::-;2333:12;:10;:12::i;:::-;2323:22;;:6;;;;;;;;;;:22;;;2315:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18132:9:::1;18128:114;18151:8;;:15;;18147:1;:19;18128:114;;;18222:8;18188:18;:31;18207:8;;18216:1;18207:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;18188:31;;;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;18168:3;;;;;:::i;:::-;;;;18128:114;;;;18015:234:::0;;;:::o;8152:184::-;8269:7;8301:11;:18;8313:5;8301:18;;;;;;;;;;;;;;;:27;8320:7;8301:27;;;;;;;;;;;;;;;;8294:34;;8152:184;;;;:::o;17892:115::-;2333:12;:10;:12::i;:::-;2323:22;;:6;;;;;;;;;;:22;;;2315:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17986:13:::1;17969:14;:30;;;;17892:115:::0;:::o;2566:244::-;2333:12;:10;:12::i;:::-;2323:22;;:6;;;;;;;;;;:22;;;2315:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2675:1:::1;2655:22;;:8;:22;;::::0;2647:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2765:8;2736:38;;2757:6;::::0;::::1;;;;;;;;2736:38;;;;;;;;;;;;2794:8;2785:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;2566:244:::0;:::o;955:98::-;1008:7;1035:10;1028:17;;955:98;:::o;9682:369::-;9826:1;9809:19;;:5;:19;;;9801:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9907:1;9888:21;;:7;:21;;;9880:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9989:6;9959:11;:18;9971:5;9959:18;;;;;;;;;;;;;;;:27;9978:7;9959:27;;;;;;;;;;;;;;;:36;;;;10027:7;10011:32;;10020:5;10011:32;;;10036:6;10011:32;;;;;;:::i;:::-;;;;;;;;9682:369;;;:::o;10059:2305::-;10197:1;10181:18;;:4;:18;;;10173:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10274:1;10260:16;;:2;:16;;;10252:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;10344:1;10335:6;:10;10327:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;10416:7;:5;:7::i;:::-;10408:15;;:4;:15;;;;:32;;;;;10433:7;:5;:7::i;:::-;10427:13;;:2;:13;;;;10408:32;:52;;;;;10445:9;:15;10455:4;10445:15;;;;;;;;;;;;;;;;;;;;;;;;;10444:16;10408:52;:70;;;;;10465:9;:13;10475:2;10465:13;;;;;;;;;;;;;;;;;;;;;;;;;10464:14;10408:70;10404:1234;;;10535:11;;;;;;;;;;10530:144;;10575:9;:15;10585:4;10575:15;;;;;;;;;;;;;;;;;;;;;;;;;10567:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;10530:144;10708:12;;10698:6;:22;;10690:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;10779:13;;;;;;;;;;;10773:19;;:2;:19;;;10770:146;;10846:14;;10837:6;10821:13;10831:2;10821:9;:13::i;:::-;:22;;;;:::i;:::-;:39;10813:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;10770:146;10932:28;10963:24;10981:4;10963:9;:24::i;:::-;10932:55;;11002:12;11041:19;;11017:20;:43;;11002:58;;11126:2;11104:19;;:24;;;;:::i;:::-;11080:20;:48;11077:148;;11207:2;11185:19;;:24;;;;:::i;:::-;11162:47;;11077:148;11245:7;:18;;;;;11257:6;;;;;;;;;;;11256:7;11245:18;:43;;;;;11275:13;;;;;;;;;;;11267:21;;:4;:21;;;;11245:43;:58;;;;;11292:11;;;;;;;;;;;11245:58;:87;;;;;11308:18;:24;11327:4;11308:24;;;;;;;;;;;;;;;;;;;;;;;;;11307:25;11245:87;:114;;;;;11337:18;:22;11356:2;11337:22;;;;;;;;;;;;;;;;;;;;;;;;;11336:23;11245:114;11241:386;;;11380:38;11397:20;11380:16;:38::i;:::-;11437:26;11466:21;11437:50;;11531:1;11510:18;:22;11506:106;;;11557:35;11570:21;11557:12;:35::i;:::-;11506:106;11361:266;11241:386;10480:1158;;10404:1234;11650:12;11665:4;11650:19;;11714:18;:24;11733:4;11714:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;11742:18;:22;11761:2;11742:22;;;;;;;;;;;;;;;;;;;;;;;;;11714:50;11713:102;;;;11778:13;;;;;;;;;;;11770:21;;:4;:21;;;;:44;;;;;11801:13;;;;;;;;;;;11795:19;;:2;:19;;;;11770:44;11713:102;11709:594;;;11842:5;11832:15;;11709:594;;;11925:13;;;;;;;;;;;11917:21;;:4;:21;;;:55;;;;;11956:15;;;;;;;;;;;11942:30;;:2;:30;;;;11917:55;11914:162;;;12005:14;;11993:9;:26;;;;12048:12;;12038:7;:22;;;;11914:162;12135:13;;;;;;;;;;;12129:19;;:2;:19;;;:55;;;;;12168:15;;;;;;;;;;;12152:32;;:4;:32;;;;12129:55;12125:165;;;12217:15;;12205:9;:27;;;;12261:13;;12251:7;:23;;;;12125:165;11709:594;12315:41;12330:4;12336:2;12340:6;12348:7;12315:14;:41::i;:::-;10162:2202;10059:2305;;;:::o;3174:224::-;3294:7;3327:1;3322;:6;;3330:12;3314:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3354:9;3370:1;3366;:5;;;;:::i;:::-;3354:17;;3389:1;3382:8;;;3174:224;;;;;:::o;12863:99::-;12920:17;;;;;;;;;;;:26;;:34;12947:6;12920:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12863:99;:::o;8999:323::-;9094:7;9152;;9141;:18;;9119:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;9240:19;9262:10;:8;:10::i;:::-;9240:32;;9290:24;9302:11;9290:7;:11;;:24;;;;:::i;:::-;9283:31;;;8999:323;;;:::o;12372:483::-;6720:4;6711:6;;:13;;;;;;;;;;;;;;;;;;12450:21:::1;12488:1;12474:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12450:40;;12519:4;12501;12506:1;12501:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;12545:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12535:4;12540:1;12535:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;12578:62;12595:4;12610:15;;;;;;;;;;;12628:11;12578:8;:62::i;:::-;12651:15;;;;;;;;;;;:66;;;12732:11;12758:1;12774:4;12801;12821:15;12651:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;12439:416;6756:5:::0;6747:6;;:14;;;;;;;;;;;;;;;;;;12372:483;:::o;13541:282::-;13697:7;13692:28;;13706:14;:12;:14::i;:::-;13692:28;13731:44;13749:6;13757:9;13768:6;13731:17;:44::i;:::-;13791:7;13786:29;;13800:15;:13;:15::i;:::-;13786:29;13541:282;;;;:::o;16502:164::-;16544:7;16565:15;16582;16601:19;:17;:19::i;:::-;16564:56;;;;16638:20;16650:7;16638;:11;;:20;;;;:::i;:::-;16631:27;;;;16502:164;:::o;3660:132::-;3718:7;3745:39;3749:1;3752;3745:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;3738:46;;3660:132;;;;:::o;9330:219::-;9390:1;9377:9;;:14;:30;;;;;9406:1;9395:7;;:12;9377:30;9409:7;9373:43;9448:9;;9428:17;:29;;;;9486:7;;9468:15;:25;;;;9518:1;9506:9;:13;;;;9540:1;9530:7;:11;;;;9330:219;:::o;13831:610::-;13978:15;14008:23;14046:12;14073:23;14111:12;14138:13;14165:19;14176:7;14165:10;:19::i;:::-;13963:221;;;;;;;;;;;;14213:28;14233:7;14213;:15;14221:6;14213:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;14195:7;:15;14203:6;14195:15;;;;;;;;;;;;;;;:46;;;;14273:39;14296:15;14273:7;:18;14281:9;14273:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;14252:7;:18;14260:9;14252:18;;;;;;;;;;;;;;;:60;;;;14323:16;14333:5;14323:9;:16::i;:::-;14350:23;14362:4;14368;14350:11;:23::i;:::-;14406:9;14389:44;;14398:6;14389:44;;;14417:15;14389:44;;;;;;:::i;:::-;;;;;;;;13952:489;;;;;;13831:610;;;:::o;9557:117::-;9613:17;;9601:9;:29;;;;9651:15;;9641:7;:25;;;;9557:117::o;16674:257::-;16725:7;16734;16754:15;16772:7;;16754:25;;16790:15;5509:18;16790:25;;16840:20;5509:18;16840:7;;:11;;:20;;;;:::i;:::-;16830:7;:30;16826:61;;;16870:7;;5509:18;16862:25;;;;;;;;16826:61;16906:7;16915;16898:25;;;;;;16674:257;;;:::o;3800:223::-;3920:7;3952:1;3948;:5;3955:12;3940:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3979:9;3995:1;3991;:5;;;;:::i;:::-;3979:17;;4014:1;4007:8;;;3800:223;;;;;:::o;14860:615::-;14960:7;14982;15004;15026;15048;15070;15106:23;15131:12;15145:13;15175:40;15187:7;15196:9;;15207:7;;15175:11;:40::i;:::-;15105:110;;;;;;15226:19;15248:10;:8;:10::i;:::-;15226:32;;15270:15;15287:23;15312:12;15341:46;15353:7;15362:4;15368:5;15375:11;15341;:46::i;:::-;15269:118;;;;;;15406:7;15415:15;15432:4;15438:15;15455:4;15461:5;15398:69;;;;;;;;;;;;;;;;;;;14860:615;;;;;;;:::o;3030:136::-;3088:7;3115:43;3119:1;3122;3115:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;3108:50;;3030:136;;;;:::o;2843:179::-;2901:7;2921:9;2937:1;2933;:5;;;;:::i;:::-;2921:17;;2962:1;2957;:6;;2949:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;3013:1;3006:8;;;2843:179;;;;:::o;14449:211::-;14502:19;14524:10;:8;:10::i;:::-;14502:32;;14545:13;14561:22;14571:11;14561:5;:9;;:22;;;;:::i;:::-;14545:38;;14619:33;14646:5;14619:7;:22;14635:4;14619:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;14594:7;:22;14610:4;14594:22;;;;;;;;;;;;;;;:58;;;;14491:169;;14449:211;:::o;14668:147::-;14746:17;14758:4;14746:7;;:11;;:17;;;;:::i;:::-;14736:7;:27;;;;14787:20;14802:4;14787:10;;:14;;:20;;;;:::i;:::-;14774:10;:33;;;;14668:147;;:::o;15483:469::-;15652:7;15674;15696;15731:12;15746:30;15772:3;15746:21;15758:8;15746:7;:11;;:21;;;;:::i;:::-;:25;;:30;;;;:::i;:::-;15731:45;;15787:13;15803:28;15827:3;15803:19;15815:6;15803:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;15787:44;;15842:23;15868:28;15890:5;15868:17;15880:4;15868:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;15842:54;;15915:15;15932:4;15938:5;15907:37;;;;;;;;;15483:469;;;;;;;:::o;15960:534::-;16154:7;16176;16198;16233:15;16251:24;16263:11;16251:7;:11;;:24;;;;:::i;:::-;16233:42;;16286:12;16301:21;16310:11;16301:4;:8;;:21;;;;:::i;:::-;16286:36;;16333:13;16349:22;16359:11;16349:5;:9;;:22;;;;:::i;:::-;16333:38;;16382:23;16408:28;16430:5;16408:17;16420:4;16408:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;16382:54;;16455:7;16464:15;16481:4;16447:39;;;;;;;;;;15960:534;;;;;;;;:::o;3406:246::-;3464:7;3493:1;3488;:6;3484:47;;3518:1;3511:8;;;;3484:47;3541:9;3557:1;3553;:5;;;;:::i;:::-;3541:17;;3586:1;3581;3577;:5;;;;:::i;:::-;:10;3569:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;3643:1;3636:8;;;3406:246;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:60::-;3474:3;3495:5;3488:12;;3446:60;;;:::o;3512:142::-;3562:9;3595:53;3613:34;3622:24;3640:5;3622:24;:::i;:::-;3613:34;:::i;:::-;3595:53;:::i;:::-;3582:66;;3512:142;;;:::o;3660:126::-;3710:9;3743:37;3774:5;3743:37;:::i;:::-;3730:50;;3660:126;;;:::o;3792:152::-;3868:9;3901:37;3932:5;3901:37;:::i;:::-;3888:50;;3792:152;;;:::o;3950:183::-;4063:63;4120:5;4063:63;:::i;:::-;4058:3;4051:76;3950:183;;:::o;4139:274::-;4258:4;4296:2;4285:9;4281:18;4273:26;;4309:97;4403:1;4392:9;4388:17;4379:6;4309:97;:::i;:::-;4139:274;;;;:::o;4419:118::-;4506:24;4524:5;4506:24;:::i;:::-;4501:3;4494:37;4419:118;;:::o;4543:222::-;4636:4;4674:2;4663:9;4659:18;4651:26;;4687:71;4755:1;4744:9;4740:17;4731:6;4687:71;:::i;:::-;4543:222;;;;:::o;4771:619::-;4848:6;4856;4864;4913:2;4901:9;4892:7;4888:23;4884:32;4881:119;;;4919:79;;:::i;:::-;4881:119;5039:1;5064:53;5109:7;5100:6;5089:9;5085:22;5064:53;:::i;:::-;5054:63;;5010:117;5166:2;5192:53;5237:7;5228:6;5217:9;5213:22;5192:53;:::i;:::-;5182:63;;5137:118;5294:2;5320:53;5365:7;5356:6;5345:9;5341:22;5320:53;:::i;:::-;5310:63;;5265:118;4771:619;;;;;:::o;5396:86::-;5431:7;5471:4;5464:5;5460:16;5449:27;;5396:86;;;:::o;5488:112::-;5571:22;5587:5;5571:22;:::i;:::-;5566:3;5559:35;5488:112;;:::o;5606:214::-;5695:4;5733:2;5722:9;5718:18;5710:26;;5746:67;5810:1;5799:9;5795:17;5786:6;5746:67;:::i;:::-;5606:214;;;;:::o;5826:118::-;5913:24;5931:5;5913:24;:::i;:::-;5908:3;5901:37;5826:118;;:::o;5950:222::-;6043:4;6081:2;6070:9;6066:18;6058:26;;6094:71;6162:1;6151:9;6147:17;6138:6;6094:71;:::i;:::-;5950:222;;;;:::o;6178:117::-;6287:1;6284;6277:12;6301:117;6410:1;6407;6400:12;6424:117;6533:1;6530;6523:12;6564:568;6637:8;6647:6;6697:3;6690:4;6682:6;6678:17;6674:27;6664:122;;6705:79;;:::i;:::-;6664:122;6818:6;6805:20;6795:30;;6848:18;6840:6;6837:30;6834:117;;;6870:79;;:::i;:::-;6834:117;6984:4;6976:6;6972:17;6960:29;;7038:3;7030:4;7022:6;7018:17;7008:8;7004:32;7001:41;6998:128;;;7045:79;;:::i;:::-;6998:128;6564:568;;;;;:::o;7138:559::-;7224:6;7232;7281:2;7269:9;7260:7;7256:23;7252:32;7249:119;;;7287:79;;:::i;:::-;7249:119;7435:1;7424:9;7420:17;7407:31;7465:18;7457:6;7454:30;7451:117;;;7487:79;;:::i;:::-;7451:117;7600:80;7672:7;7663:6;7652:9;7648:22;7600:80;:::i;:::-;7582:98;;;;7378:312;7138:559;;;;;:::o;7703:116::-;7773:21;7788:5;7773:21;:::i;:::-;7766:5;7763:32;7753:60;;7809:1;7806;7799:12;7753:60;7703:116;:::o;7825:133::-;7868:5;7906:6;7893:20;7884:29;;7922:30;7946:5;7922:30;:::i;:::-;7825:133;;;;:::o;7964:323::-;8020:6;8069:2;8057:9;8048:7;8044:23;8040:32;8037:119;;;8075:79;;:::i;:::-;8037:119;8195:1;8220:50;8262:7;8253:6;8242:9;8238:22;8220:50;:::i;:::-;8210:60;;8166:114;7964:323;;;;:::o;8293:329::-;8352:6;8401:2;8389:9;8380:7;8376:23;8372:32;8369:119;;;8407:79;;:::i;:::-;8369:119;8527:1;8552:53;8597:7;8588:6;8577:9;8573:22;8552:53;:::i;:::-;8542:63;;8498:117;8293:329;;;;:::o;8628:::-;8687:6;8736:2;8724:9;8715:7;8711:23;8707:32;8704:119;;;8742:79;;:::i;:::-;8704:119;8862:1;8887:53;8932:7;8923:6;8912:9;8908:22;8887:53;:::i;:::-;8877:63;;8833:117;8628:329;;;;:::o;8963:765::-;9049:6;9057;9065;9073;9122:3;9110:9;9101:7;9097:23;9093:33;9090:120;;;9129:79;;:::i;:::-;9090:120;9249:1;9274:53;9319:7;9310:6;9299:9;9295:22;9274:53;:::i;:::-;9264:63;;9220:117;9376:2;9402:53;9447:7;9438:6;9427:9;9423:22;9402:53;:::i;:::-;9392:63;;9347:118;9504:2;9530:53;9575:7;9566:6;9555:9;9551:22;9530:53;:::i;:::-;9520:63;;9475:118;9632:2;9658:53;9703:7;9694:6;9683:9;9679:22;9658:53;:::i;:::-;9648:63;;9603:118;8963:765;;;;;;;:::o;9734:698::-;9826:6;9834;9842;9891:2;9879:9;9870:7;9866:23;9862:32;9859:119;;;9897:79;;:::i;:::-;9859:119;10045:1;10034:9;10030:17;10017:31;10075:18;10067:6;10064:30;10061:117;;;10097:79;;:::i;:::-;10061:117;10210:80;10282:7;10273:6;10262:9;10258:22;10210:80;:::i;:::-;10192:98;;;;9988:312;10339:2;10365:50;10407:7;10398:6;10387:9;10383:22;10365:50;:::i;:::-;10355:60;;10310:115;9734:698;;;;;:::o;10438:474::-;10506:6;10514;10563:2;10551:9;10542:7;10538:23;10534:32;10531:119;;;10569:79;;:::i;:::-;10531:119;10689:1;10714:53;10759:7;10750:6;10739:9;10735:22;10714:53;:::i;:::-;10704:63;;10660:117;10816:2;10842:53;10887:7;10878:6;10867:9;10863:22;10842:53;:::i;:::-;10832:63;;10787:118;10438:474;;;;;:::o;10918:182::-;11058:34;11054:1;11046:6;11042:14;11035:58;10918:182;:::o;11106:366::-;11248:3;11269:67;11333:2;11328:3;11269:67;:::i;:::-;11262:74;;11345:93;11434:3;11345:93;:::i;:::-;11463:2;11458:3;11454:12;11447:19;;11106:366;;;:::o;11478:419::-;11644:4;11682:2;11671:9;11667:18;11659:26;;11731:9;11725:4;11721:20;11717:1;11706:9;11702:17;11695:47;11759:131;11885:4;11759:131;:::i;:::-;11751:139;;11478:419;;;:::o;11903:180::-;11951:77;11948:1;11941:88;12048:4;12045:1;12038:15;12072:4;12069:1;12062:15;12089:180;12137:77;12134:1;12127:88;12234:4;12231:1;12224:15;12258:4;12255:1;12248:15;12275:233;12314:3;12337:24;12355:5;12337:24;:::i;:::-;12328:33;;12383:66;12376:5;12373:77;12370:103;;12453:18;;:::i;:::-;12370:103;12500:1;12493:5;12489:13;12482:20;;12275:233;;;:::o;12514:191::-;12554:3;12573:20;12591:1;12573:20;:::i;:::-;12568:25;;12607:20;12625:1;12607:20;:::i;:::-;12602:25;;12650:1;12647;12643:9;12636:16;;12671:3;12668:1;12665:10;12662:36;;;12678:18;;:::i;:::-;12662:36;12514:191;;;;:::o;12711:174::-;12851:26;12847:1;12839:6;12835:14;12828:50;12711:174;:::o;12891:366::-;13033:3;13054:67;13118:2;13113:3;13054:67;:::i;:::-;13047:74;;13130:93;13219:3;13130:93;:::i;:::-;13248:2;13243:3;13239:12;13232:19;;12891:366;;;:::o;13263:419::-;13429:4;13467:2;13456:9;13452:18;13444:26;;13516:9;13510:4;13506:20;13502:1;13491:9;13487:17;13480:47;13544:131;13670:4;13544:131;:::i;:::-;13536:139;;13263:419;;;:::o;13688:175::-;13828:27;13824:1;13816:6;13812:14;13805:51;13688:175;:::o;13869:366::-;14011:3;14032:67;14096:2;14091:3;14032:67;:::i;:::-;14025:74;;14108:93;14197:3;14108:93;:::i;:::-;14226:2;14221:3;14217:12;14210:19;;13869:366;;;:::o;14241:419::-;14407:4;14445:2;14434:9;14430:18;14422:26;;14494:9;14488:4;14484:20;14480:1;14469:9;14465:17;14458:47;14522:131;14648:4;14522:131;:::i;:::-;14514:139;;14241:419;;;:::o;14666:225::-;14806:34;14802:1;14794:6;14790:14;14783:58;14875:8;14870:2;14862:6;14858:15;14851:33;14666:225;:::o;14897:366::-;15039:3;15060:67;15124:2;15119:3;15060:67;:::i;:::-;15053:74;;15136:93;15225:3;15136:93;:::i;:::-;15254:2;15249:3;15245:12;15238:19;;14897:366;;;:::o;15269:419::-;15435:4;15473:2;15462:9;15458:18;15450:26;;15522:9;15516:4;15512:20;15508:1;15497:9;15493:17;15486:47;15550:131;15676:4;15550:131;:::i;:::-;15542:139;;15269:419;;;:::o;15694:223::-;15834:34;15830:1;15822:6;15818:14;15811:58;15903:6;15898:2;15890:6;15886:15;15879:31;15694:223;:::o;15923:366::-;16065:3;16086:67;16150:2;16145:3;16086:67;:::i;:::-;16079:74;;16162:93;16251:3;16162:93;:::i;:::-;16280:2;16275:3;16271:12;16264:19;;15923:366;;;:::o;16295:419::-;16461:4;16499:2;16488:9;16484:18;16476:26;;16548:9;16542:4;16538:20;16534:1;16523:9;16519:17;16512:47;16576:131;16702:4;16576:131;:::i;:::-;16568:139;;16295:419;;;:::o;16720:221::-;16860:34;16856:1;16848:6;16844:14;16837:58;16929:4;16924:2;16916:6;16912:15;16905:29;16720:221;:::o;16947:366::-;17089:3;17110:67;17174:2;17169:3;17110:67;:::i;:::-;17103:74;;17186:93;17275:3;17186:93;:::i;:::-;17304:2;17299:3;17295:12;17288:19;;16947:366;;;:::o;17319:419::-;17485:4;17523:2;17512:9;17508:18;17500:26;;17572:9;17566:4;17562:20;17558:1;17547:9;17543:17;17536:47;17600:131;17726:4;17600:131;:::i;:::-;17592:139;;17319:419;;;:::o;17744:224::-;17884:34;17880:1;17872:6;17868:14;17861:58;17953:7;17948:2;17940:6;17936:15;17929:32;17744:224;:::o;17974:366::-;18116:3;18137:67;18201:2;18196:3;18137:67;:::i;:::-;18130:74;;18213:93;18302:3;18213:93;:::i;:::-;18331:2;18326:3;18322:12;18315:19;;17974:366;;;:::o;18346:419::-;18512:4;18550:2;18539:9;18535:18;18527:26;;18599:9;18593:4;18589:20;18585:1;18574:9;18570:17;18563:47;18627:131;18753:4;18627:131;:::i;:::-;18619:139;;18346:419;;;:::o;18771:222::-;18911:34;18907:1;18899:6;18895:14;18888:58;18980:5;18975:2;18967:6;18963:15;18956:30;18771:222;:::o;18999:366::-;19141:3;19162:67;19226:2;19221:3;19162:67;:::i;:::-;19155:74;;19238:93;19327:3;19238:93;:::i;:::-;19356:2;19351:3;19347:12;19340:19;;18999:366;;;:::o;19371:419::-;19537:4;19575:2;19564:9;19560:18;19552:26;;19624:9;19618:4;19614:20;19610:1;19599:9;19595:17;19588:47;19652:131;19778:4;19652:131;:::i;:::-;19644:139;;19371:419;;;:::o;19796:228::-;19936:34;19932:1;19924:6;19920:14;19913:58;20005:11;20000:2;19992:6;19988:15;19981:36;19796:228;:::o;20030:366::-;20172:3;20193:67;20257:2;20252:3;20193:67;:::i;:::-;20186:74;;20269:93;20358:3;20269:93;:::i;:::-;20387:2;20382:3;20378:12;20371:19;;20030:366;;;:::o;20402:419::-;20568:4;20606:2;20595:9;20591:18;20583:26;;20655:9;20649:4;20645:20;20641:1;20630:9;20626:17;20619:47;20683:131;20809:4;20683:131;:::i;:::-;20675:139;;20402:419;;;:::o;20827:250::-;20967:34;20963:1;20955:6;20951:14;20944:58;21036:33;21031:2;21023:6;21019:15;21012:58;20827:250;:::o;21083:366::-;21225:3;21246:67;21310:2;21305:3;21246:67;:::i;:::-;21239:74;;21322:93;21411:3;21322:93;:::i;:::-;21440:2;21435:3;21431:12;21424:19;;21083:366;;;:::o;21455:419::-;21621:4;21659:2;21648:9;21644:18;21636:26;;21708:9;21702:4;21698:20;21694:1;21683:9;21679:17;21672:47;21736:131;21862:4;21736:131;:::i;:::-;21728:139;;21455:419;;;:::o;21880:178::-;22020:30;22016:1;22008:6;22004:14;21997:54;21880:178;:::o;22064:366::-;22206:3;22227:67;22291:2;22286:3;22227:67;:::i;:::-;22220:74;;22303:93;22392:3;22303:93;:::i;:::-;22421:2;22416:3;22412:12;22405:19;;22064:366;;;:::o;22436:419::-;22602:4;22640:2;22629:9;22625:18;22617:26;;22689:9;22683:4;22679:20;22675:1;22664:9;22660:17;22653:47;22717:131;22843:4;22717:131;:::i;:::-;22709:139;;22436:419;;;:::o;22861:222::-;23001:34;22997:1;22989:6;22985:14;22978:58;23070:5;23065:2;23057:6;23053:15;23046:30;22861:222;:::o;23089:366::-;23231:3;23252:67;23316:2;23311:3;23252:67;:::i;:::-;23245:74;;23328:93;23417:3;23328:93;:::i;:::-;23446:2;23441:3;23437:12;23430:19;;23089:366;;;:::o;23461:419::-;23627:4;23665:2;23654:9;23650:18;23642:26;;23714:9;23708:4;23704:20;23700:1;23689:9;23685:17;23678:47;23742:131;23868:4;23742:131;:::i;:::-;23734:139;;23461:419;;;:::o;23886:410::-;23926:7;23949:20;23967:1;23949:20;:::i;:::-;23944:25;;23983:20;24001:1;23983:20;:::i;:::-;23978:25;;24038:1;24035;24031:9;24060:30;24078:11;24060:30;:::i;:::-;24049:41;;24239:1;24230:7;24226:15;24223:1;24220:22;24200:1;24193:9;24173:83;24150:139;;24269:18;;:::i;:::-;24150:139;23934:362;23886:410;;;;:::o;24302:194::-;24342:4;24362:20;24380:1;24362:20;:::i;:::-;24357:25;;24396:20;24414:1;24396:20;:::i;:::-;24391:25;;24440:1;24437;24433:9;24425:17;;24464:1;24458:4;24455:11;24452:37;;;24469:18;;:::i;:::-;24452:37;24302:194;;;;:::o;24502:229::-;24642:34;24638:1;24630:6;24626:14;24619:58;24711:12;24706:2;24698:6;24694:15;24687:37;24502:229;:::o;24737:366::-;24879:3;24900:67;24964:2;24959:3;24900:67;:::i;:::-;24893:74;;24976:93;25065:3;24976:93;:::i;:::-;25094:2;25089:3;25085:12;25078:19;;24737:366;;;:::o;25109:419::-;25275:4;25313:2;25302:9;25298:18;25290:26;;25362:9;25356:4;25352:20;25348:1;25337:9;25333:17;25326:47;25390:131;25516:4;25390:131;:::i;:::-;25382:139;;25109:419;;;:::o;25534:180::-;25582:77;25579:1;25572:88;25679:4;25676:1;25669:15;25703:4;25700:1;25693:15;25720:143;25777:5;25808:6;25802:13;25793:22;;25824:33;25851:5;25824:33;:::i;:::-;25720:143;;;;:::o;25869:351::-;25939:6;25988:2;25976:9;25967:7;25963:23;25959:32;25956:119;;;25994:79;;:::i;:::-;25956:119;26114:1;26139:64;26195:7;26186:6;26175:9;26171:22;26139:64;:::i;:::-;26129:74;;26085:128;25869:351;;;;:::o;26226:85::-;26271:7;26300:5;26289:16;;26226:85;;;:::o;26317:158::-;26375:9;26408:61;26426:42;26435:32;26461:5;26435:32;:::i;:::-;26426:42;:::i;:::-;26408:61;:::i;:::-;26395:74;;26317:158;;;:::o;26481:147::-;26576:45;26615:5;26576:45;:::i;:::-;26571:3;26564:58;26481:147;;:::o;26634:114::-;26701:6;26735:5;26729:12;26719:22;;26634:114;;;:::o;26754:184::-;26853:11;26887:6;26882:3;26875:19;26927:4;26922:3;26918:14;26903:29;;26754:184;;;;:::o;26944:132::-;27011:4;27034:3;27026:11;;27064:4;27059:3;27055:14;27047:22;;26944:132;;;:::o;27082:108::-;27159:24;27177:5;27159:24;:::i;:::-;27154:3;27147:37;27082:108;;:::o;27196:179::-;27265:10;27286:46;27328:3;27320:6;27286:46;:::i;:::-;27364:4;27359:3;27355:14;27341:28;;27196:179;;;;:::o;27381:113::-;27451:4;27483;27478:3;27474:14;27466:22;;27381:113;;;:::o;27530:732::-;27649:3;27678:54;27726:5;27678:54;:::i;:::-;27748:86;27827:6;27822:3;27748:86;:::i;:::-;27741:93;;27858:56;27908:5;27858:56;:::i;:::-;27937:7;27968:1;27953:284;27978:6;27975:1;27972:13;27953:284;;;28054:6;28048:13;28081:63;28140:3;28125:13;28081:63;:::i;:::-;28074:70;;28167:60;28220:6;28167:60;:::i;:::-;28157:70;;28013:224;28000:1;27997;27993:9;27988:14;;27953:284;;;27957:14;28253:3;28246:10;;27654:608;;;27530:732;;;;:::o;28268:831::-;28531:4;28569:3;28558:9;28554:19;28546:27;;28583:71;28651:1;28640:9;28636:17;28627:6;28583:71;:::i;:::-;28664:80;28740:2;28729:9;28725:18;28716:6;28664:80;:::i;:::-;28791:9;28785:4;28781:20;28776:2;28765:9;28761:18;28754:48;28819:108;28922:4;28913:6;28819:108;:::i;:::-;28811:116;;28937:72;29005:2;28994:9;28990:18;28981:6;28937:72;:::i;:::-;29019:73;29087:3;29076:9;29072:19;29063:6;29019:73;:::i;:::-;28268:831;;;;;;;;:::o;29105:180::-;29153:77;29150:1;29143:88;29250:4;29247:1;29240:15;29274:4;29271:1;29264:15;29291:185;29331:1;29348:20;29366:1;29348:20;:::i;:::-;29343:25;;29382:20;29400:1;29382:20;:::i;:::-;29377:25;;29421:1;29411:35;;29426:18;;:::i;:::-;29411:35;29468:1;29465;29461:9;29456:14;;29291:185;;;;:::o;29482:177::-;29622:29;29618:1;29610:6;29606:14;29599:53;29482:177;:::o;29665:366::-;29807:3;29828:67;29892:2;29887:3;29828:67;:::i;:::-;29821:74;;29904:93;29993:3;29904:93;:::i;:::-;30022:2;30017:3;30013:12;30006:19;;29665:366;;;:::o;30037:419::-;30203:4;30241:2;30230:9;30226:18;30218:26;;30290:9;30284:4;30280:20;30276:1;30265:9;30261:17;30254:47;30318:131;30444:4;30318:131;:::i;:::-;30310:139;;30037:419;;;:::o;30462:220::-;30602:34;30598:1;30590:6;30586:14;30579:58;30671:3;30666:2;30658:6;30654:15;30647:28;30462:220;:::o;30688:366::-;30830:3;30851:67;30915:2;30910:3;30851:67;:::i;:::-;30844:74;;30927:93;31016:3;30927:93;:::i;:::-;31045:2;31040:3;31036:12;31029:19;;30688:366;;;:::o;31060:419::-;31226:4;31264:2;31253:9;31249:18;31241:26;;31313:9;31307:4;31303:20;31299:1;31288:9;31284:17;31277:47;31341:131;31467:4;31341:131;:::i;:::-;31333:139;;31060:419;;;:::o

Swarm Source

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