ETH Price: $2,981.65 (+2.11%)
Gas: 1 Gwei

Token

ERITO 富 (ERITO)
 

Overview

Max Total Supply

1,000,000,000 ERITO

Holders

53

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
7,606,557.747198597 ERITO

Value
$0.00
0x435a6a7ff09df33b464b0302e7f3ef8391e6f1b6
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:
ERITO

Compiler Version
v0.8.9+commit.e5eed63a

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-10-17
*/

/**

富

Telegram: https://t.me/ERITO100x


*/

pragma solidity 0.8.9;

// SPDX-License-Identifier: UNLICENSED 
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);
}

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

}

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

}

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

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
}

contract ERITO is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _rOwned;
    mapping (address => uint256) private _tOwned;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private bots;
    mapping (address => uint) private cooldown;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 1000000000 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;

    uint256 private _feeAddr1;
    uint256 private _feeAddr2;
    uint256 private _standardTax;
    address payable private _feeAddrWallet;

    string private constant _name = unicode"ERITO 富";
    string private constant _symbol = "ERITO";
    uint8 private constant _decimals = 9;

    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    bool private cooldownEnabled = false;
    uint256 private _maxTxAmount = _tTotal.mul(2).div(100);
    uint256 private _maxWalletSize = _tTotal.mul(2).div(100);
    event MaxTxAmountUpdated(uint _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor () {
        _feeAddrWallet = payable(_msgSender());
        _rOwned[_msgSender()] = _rTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_feeAddrWallet] = true;
        _standardTax=5;

        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 setCooldownEnabled(bool onoff) external onlyOwner() {
        cooldownEnabled = onoff;
    }

    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 _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()) {
            require(!bots[from] && !bots[to]);
            _feeAddr1 = 0;
            _feeAddr2 = _standardTax;
            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] && cooldownEnabled) {
                // Cooldown
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");

            }

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

            if (to == uniswapV2Pair && ! _isExcludedFromFee[to] && cooldownEnabled) {
                require(_standardTax != 0);
            }

        }else{
          _feeAddr1 = 0;
          _feeAddr2 = 0;
        }

        _tokenTransfer(from,to,amount);
    }

    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 setStandardTax(uint256 newTax) external {
      require(_msgSender() == _feeAddrWallet);
      require(newTax<5);
      _standardTax=newTax;
    }

    function removeLimits() external onlyOwner{
        _maxTxAmount = _tTotal;
        _maxWalletSize = _tTotal;
    }

    function sendETHToFee(uint256 amount) private {
        _feeAddrWallet.transfer(amount);
    }

    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        swapEnabled = true;
        cooldownEnabled = true;

        tradingOpen = true;
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
    }

        function addbot(address[] memory bots_) public onlyOwner {
        for (uint i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }

    function _tokenTransfer(address sender, address recipient, uint256 amount) private {
        _transferStandard(sender, recipient, amount);
    }

    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 manualswap() external {
        require(_msgSender() == _feeAddrWallet);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }

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


    function _getValues(uint256 tAmount) private view returns (uint256, uint256, uint256, uint256, uint256, uint256) {
        (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getTValues(tAmount, _feeAddr1, _feeAddr2);
        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 taxFee, uint256 TeamFee) private pure returns (uint256, uint256, uint256) {
        uint256 tFee = tAmount.mul(taxFee).div(100);
        uint256 tTeam = tAmount.mul(TeamFee).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);
    }
}

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":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"addbot","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":[],"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":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"onoff","type":"bool"}],"name":"setCooldownEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newTax","type":"uint256"}],"name":"setStandardTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"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"},{"stateMutability":"payable","type":"receive"}]

6080604052670de0b6b3a76400006000196200001c9190620005d0565b6000196200002b919062000637565b6008556000600f60156101000a81548160ff0219169083151502179055506000600f60166101000a81548160ff0219169083151502179055506000600f60176101000a81548160ff021916908315150217905550620000bc6064620000a86002670de0b6b3a76400006200042860201b6200114c1790919060201c565b620004ac60201b620011c71790919060201c565b601055620000fc6064620000e86002670de0b6b3a76400006200042860201b6200114c1790919060201c565b620004ac60201b620011c71790919060201c565b6011553480156200010c57600080fd5b5060006200011f620004fe60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350620001cd620004fe60201b60201c565b600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506008546002600062000224620004fe60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160056000620002786200050660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506005600c81905550620003b3620004fe60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef670de0b6b3a76400006040516200041a919062000683565b60405180910390a362000899565b6000808314156200043d5760009050620004a6565b600082846200044d9190620006a0565b90508284826200045e919062000701565b14620004a1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200049890620007c0565b60405180910390fd5b809150505b92915050565b6000620004f683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200052f60201b60201c565b905092915050565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000808311829062000579576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000570919062000875565b60405180910390fd5b50600083856200058a919062000701565b9050809150509392505050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620005dd8262000597565b9150620005ea8362000597565b925082620005fd57620005fc620005a1565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620006448262000597565b9150620006518362000597565b92508282101562000667576200066662000608565b5b828203905092915050565b6200067d8162000597565b82525050565b60006020820190506200069a600083018462000672565b92915050565b6000620006ad8262000597565b9150620006ba8362000597565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615620006f657620006f562000608565b5b828202905092915050565b60006200070e8262000597565b91506200071b8362000597565b9250826200072e576200072d620005a1565b5b828204905092915050565b600082825260208201905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000620007a860218362000739565b9150620007b5826200074a565b604082019050919050565b60006020820190508181036000830152620007db8162000799565b9050919050565b600081519050919050565b60005b838110156200080d578082015181840152602081019050620007f0565b838111156200081d576000848401525b50505050565b6000601f19601f8301169050919050565b60006200084182620007e2565b6200084d818562000739565b93506200085f818560208601620007ed565b6200086a8162000823565b840191505092915050565b6000602082019050818103600083015262000891818462000834565b905092915050565b61335980620008a96000396000f3fe60806040526004361061010d5760003560e01c8063751039fc11610095578063a9059cbb11610064578063a9059cbb1461033e578063c3c8cd801461037b578063c9567bf914610392578063ccfee5d6146103a9578063dd62ed3e146103d257610114565b8063751039fc146102a8578063843f7be2146102bf5780638da5cb5b146102e857806395d89b411461031357610114565b8063313ce567116100dc578063313ce567146101e95780635932ead1146102145780636fc3eaec1461023d57806370a0823114610254578063715018a61461029157610114565b806306fdde0314610119578063095ea7b31461014457806318160ddd1461018157806323b872dd146101ac57610114565b3661011457005b600080fd5b34801561012557600080fd5b5061012e61040f565b60405161013b91906123c4565b60405180910390f35b34801561015057600080fd5b5061016b6004803603810190610166919061248e565b61044c565b60405161017891906124e9565b60405180910390f35b34801561018d57600080fd5b5061019661046a565b6040516101a39190612513565b60405180910390f35b3480156101b857600080fd5b506101d360048036038101906101ce919061252e565b61047a565b6040516101e091906124e9565b60405180910390f35b3480156101f557600080fd5b506101fe610553565b60405161020b919061259d565b60405180910390f35b34801561022057600080fd5b5061023b600480360381019061023691906125e4565b61055c565b005b34801561024957600080fd5b5061025261060e565b005b34801561026057600080fd5b5061027b60048036038101906102769190612611565b610680565b6040516102889190612513565b60405180910390f35b34801561029d57600080fd5b506102a66106d1565b005b3480156102b457600080fd5b506102bd610824565b005b3480156102cb57600080fd5b506102e660048036038101906102e1919061263e565b6108d9565b005b3480156102f457600080fd5b506102fd610951565b60405161030a919061267a565b60405180910390f35b34801561031f57600080fd5b5061032861097a565b60405161033591906123c4565b60405180910390f35b34801561034a57600080fd5b506103656004803603810190610360919061248e565b6109b7565b60405161037291906124e9565b60405180910390f35b34801561038757600080fd5b506103906109d5565b005b34801561039e57600080fd5b506103a7610a4f565b005b3480156103b557600080fd5b506103d060048036038101906103cb91906127dd565b610f9b565b005b3480156103de57600080fd5b506103f960048036038101906103f49190612826565b6110c5565b6040516104069190612513565b60405180910390f35b60606040518060400160405280600981526020017f455249544f20e5af8c0000000000000000000000000000000000000000000000815250905090565b6000610460610459611211565b8484611219565b6001905092915050565b6000670de0b6b3a7640000905090565b60006104878484846113e4565b61054884610493611211565b610543856040518060600160405280602881526020016132fc60289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006104f9611211565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546119779092919063ffffffff16565b611219565b600190509392505050565b60006009905090565b610564611211565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146105f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105e8906128b2565b60405180910390fd5b80600f60176101000a81548160ff02191690831515021790555050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661064f611211565b73ffffffffffffffffffffffffffffffffffffffff161461066f57600080fd5b600047905061067d816119db565b50565b60006106ca600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a47565b9050919050565b6106d9611211565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610766576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075d906128b2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b61082c611211565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108b0906128b2565b60405180910390fd5b670de0b6b3a7640000601081905550670de0b6b3a7640000601181905550565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661091a611211565b73ffffffffffffffffffffffffffffffffffffffff161461093a57600080fd5b6005811061094757600080fd5b80600c8190555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600581526020017f455249544f000000000000000000000000000000000000000000000000000000815250905090565b60006109cb6109c4611211565b84846113e4565b6001905092915050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610a16611211565b73ffffffffffffffffffffffffffffffffffffffff1614610a3657600080fd5b6000610a4130610680565b9050610a4c81611ab5565b50565b610a57611211565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ae4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610adb906128b2565b60405180910390fd5b600f60149054906101000a900460ff1615610b34576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2b9061291e565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610bc330600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16670de0b6b3a7640000611219565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610c0957600080fd5b505afa158015610c1d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c419190612953565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610ca357600080fd5b505afa158015610cb7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cdb9190612953565b6040518363ffffffff1660e01b8152600401610cf8929190612980565b602060405180830381600087803b158015610d1257600080fd5b505af1158015610d26573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d4a9190612953565b600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610dd330610680565b600080610dde610951565b426040518863ffffffff1660e01b8152600401610e00969594939291906129ee565b6060604051808303818588803b158015610e1957600080fd5b505af1158015610e2d573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610e529190612a64565b5050506001600f60166101000a81548160ff0219169083151502179055506001600f60176101000a81548160ff0219169083151502179055506001600f60146101000a81548160ff021916908315150217905550600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610f45929190612ab7565b602060405180830381600087803b158015610f5f57600080fd5b505af1158015610f73573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f979190612af5565b5050565b610fa3611211565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611030576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611027906128b2565b60405180910390fd5b60005b81518110156110c15760016006600084848151811061105557611054612b22565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806110b990612b80565b915050611033565b5050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60008083141561115f57600090506111c1565b6000828461116d9190612bc9565b905082848261117c9190612c52565b146111bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111b390612cf5565b60405180910390fd5b809150505b92915050565b600061120983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611d3d565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611289576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128090612d87565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156112f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112f090612e19565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516113d79190612513565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611454576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144b90612eab565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156114c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114bb90612f3d565b60405180910390fd5b60008111611507576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114fe90612fcf565b60405180910390fd5b61150f610951565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561157d575061154d610951565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561195657600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156116265750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61162f57600080fd5b6000600a81905550600c54600b81905550600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156116eb5750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156117415750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156117595750600f60179054906101000a900460ff165b156117b7576011548161176b84610680565b6117759190612fef565b11156117b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117ad90613091565b60405180910390fd5b5b60006117c230610680565b9050600f60159054906101000a900460ff1615801561182f5750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156118475750600f60169054906101000a900460ff165b80156118535750600081115b1561187b5761186181611ab5565b6000479050600081111561187957611878476119db565b5b505b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156119225750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561193a5750600f60179054906101000a900460ff165b15611950576000600c54141561194f57600080fd5b5b50611967565b6000600a819055506000600b819055505b611972838383611da0565b505050565b60008383111582906119bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119b691906123c4565b60405180910390fd5b50600083856119ce91906130b1565b9050809150509392505050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611a43573d6000803e3d6000fd5b5050565b6000600854821115611a8e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a8590613157565b60405180910390fd5b6000611a98611db0565b9050611aad81846111c790919063ffffffff16565b915050919050565b6001600f60156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611aed57611aec61269a565b5b604051908082528060200260200182016040528015611b1b5781602001602082028036833780820191505090505b5090503081600081518110611b3357611b32612b22565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611bd557600080fd5b505afa158015611be9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c0d9190612953565b81600181518110611c2157611c20612b22565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611c8830600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611219565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611cec959493929190613235565b600060405180830381600087803b158015611d0657600080fd5b505af1158015611d1a573d6000803e3d6000fd5b50505050506000600f60156101000a81548160ff02191690831515021790555050565b60008083118290611d84576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d7b91906123c4565b60405180910390fd5b5060008385611d939190612c52565b9050809150509392505050565b611dab838383611ddb565b505050565b6000806000611dbd611fa6565b91509150611dd481836111c790919063ffffffff16565b9250505090565b600080600080600080611ded87612005565b955095509550955095509550611e4b86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461206d90919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611ee085600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120b790919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611f2c81612115565b611f3684836121d2565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611f939190612513565b60405180910390a3505050505050505050565b600080600060085490506000670de0b6b3a76400009050611fda670de0b6b3a76400006008546111c790919063ffffffff16565b821015611ff857600854670de0b6b3a7640000935093505050612001565b81819350935050505b9091565b60008060008060008060008060006120228a600a54600b5461220c565b9250925092506000612032611db0565b905060008060006120458e8787876122a2565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b60006120af83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611977565b905092915050565b60008082846120c69190612fef565b90508381101561210b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612102906132db565b60405180910390fd5b8091505092915050565b600061211f611db0565b90506000612136828461114c90919063ffffffff16565b905061218a81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120b790919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b6121e78260085461206d90919063ffffffff16565b600881905550612202816009546120b790919063ffffffff16565b6009819055505050565b600080600080612238606461222a888a61114c90919063ffffffff16565b6111c790919063ffffffff16565b905060006122626064612254888b61114c90919063ffffffff16565b6111c790919063ffffffff16565b9050600061228b8261227d858c61206d90919063ffffffff16565b61206d90919063ffffffff16565b905080838395509550955050505093509350939050565b6000806000806122bb858961114c90919063ffffffff16565b905060006122d2868961114c90919063ffffffff16565b905060006122e9878961114c90919063ffffffff16565b9050600061231282612304858761206d90919063ffffffff16565b61206d90919063ffffffff16565b9050838184965096509650505050509450945094915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561236557808201518184015260208101905061234a565b83811115612374576000848401525b50505050565b6000601f19601f8301169050919050565b60006123968261232b565b6123a08185612336565b93506123b0818560208601612347565b6123b98161237a565b840191505092915050565b600060208201905081810360008301526123de818461238b565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612425826123fa565b9050919050565b6124358161241a565b811461244057600080fd5b50565b6000813590506124528161242c565b92915050565b6000819050919050565b61246b81612458565b811461247657600080fd5b50565b60008135905061248881612462565b92915050565b600080604083850312156124a5576124a46123f0565b5b60006124b385828601612443565b92505060206124c485828601612479565b9150509250929050565b60008115159050919050565b6124e3816124ce565b82525050565b60006020820190506124fe60008301846124da565b92915050565b61250d81612458565b82525050565b60006020820190506125286000830184612504565b92915050565b600080600060608486031215612547576125466123f0565b5b600061255586828701612443565b935050602061256686828701612443565b925050604061257786828701612479565b9150509250925092565b600060ff82169050919050565b61259781612581565b82525050565b60006020820190506125b2600083018461258e565b92915050565b6125c1816124ce565b81146125cc57600080fd5b50565b6000813590506125de816125b8565b92915050565b6000602082840312156125fa576125f96123f0565b5b6000612608848285016125cf565b91505092915050565b600060208284031215612627576126266123f0565b5b600061263584828501612443565b91505092915050565b600060208284031215612654576126536123f0565b5b600061266284828501612479565b91505092915050565b6126748161241a565b82525050565b600060208201905061268f600083018461266b565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6126d28261237a565b810181811067ffffffffffffffff821117156126f1576126f061269a565b5b80604052505050565b60006127046123e6565b905061271082826126c9565b919050565b600067ffffffffffffffff8211156127305761272f61269a565b5b602082029050602081019050919050565b600080fd5b600061275961275484612715565b6126fa565b9050808382526020820190506020840283018581111561277c5761277b612741565b5b835b818110156127a557806127918882612443565b84526020840193505060208101905061277e565b5050509392505050565b600082601f8301126127c4576127c3612695565b5b81356127d4848260208601612746565b91505092915050565b6000602082840312156127f3576127f26123f0565b5b600082013567ffffffffffffffff811115612811576128106123f5565b5b61281d848285016127af565b91505092915050565b6000806040838503121561283d5761283c6123f0565b5b600061284b85828601612443565b925050602061285c85828601612443565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061289c602083612336565b91506128a782612866565b602082019050919050565b600060208201905081810360008301526128cb8161288f565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6000612908601783612336565b9150612913826128d2565b602082019050919050565b60006020820190508181036000830152612937816128fb565b9050919050565b60008151905061294d8161242c565b92915050565b600060208284031215612969576129686123f0565b5b60006129778482850161293e565b91505092915050565b6000604082019050612995600083018561266b565b6129a2602083018461266b565b9392505050565b6000819050919050565b6000819050919050565b60006129d86129d36129ce846129a9565b6129b3565b612458565b9050919050565b6129e8816129bd565b82525050565b600060c082019050612a03600083018961266b565b612a106020830188612504565b612a1d60408301876129df565b612a2a60608301866129df565b612a37608083018561266b565b612a4460a0830184612504565b979650505050505050565b600081519050612a5e81612462565b92915050565b600080600060608486031215612a7d57612a7c6123f0565b5b6000612a8b86828701612a4f565b9350506020612a9c86828701612a4f565b9250506040612aad86828701612a4f565b9150509250925092565b6000604082019050612acc600083018561266b565b612ad96020830184612504565b9392505050565b600081519050612aef816125b8565b92915050565b600060208284031215612b0b57612b0a6123f0565b5b6000612b1984828501612ae0565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612b8b82612458565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612bbe57612bbd612b51565b5b600182019050919050565b6000612bd482612458565b9150612bdf83612458565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612c1857612c17612b51565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612c5d82612458565b9150612c6883612458565b925082612c7857612c77612c23565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000612cdf602183612336565b9150612cea82612c83565b604082019050919050565b60006020820190508181036000830152612d0e81612cd2565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612d71602483612336565b9150612d7c82612d15565b604082019050919050565b60006020820190508181036000830152612da081612d64565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612e03602283612336565b9150612e0e82612da7565b604082019050919050565b60006020820190508181036000830152612e3281612df6565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612e95602583612336565b9150612ea082612e39565b604082019050919050565b60006020820190508181036000830152612ec481612e88565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612f27602383612336565b9150612f3282612ecb565b604082019050919050565b60006020820190508181036000830152612f5681612f1a565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612fb9602983612336565b9150612fc482612f5d565b604082019050919050565b60006020820190508181036000830152612fe881612fac565b9050919050565b6000612ffa82612458565b915061300583612458565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561303a57613039612b51565b5b828201905092915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b600061307b601a83612336565b915061308682613045565b602082019050919050565b600060208201905081810360008301526130aa8161306e565b9050919050565b60006130bc82612458565b91506130c783612458565b9250828210156130da576130d9612b51565b5b828203905092915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b6000613141602a83612336565b915061314c826130e5565b604082019050919050565b6000602082019050818103600083015261317081613134565b9050919050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6131ac8161241a565b82525050565b60006131be83836131a3565b60208301905092915050565b6000602082019050919050565b60006131e282613177565b6131ec8185613182565b93506131f783613193565b8060005b8381101561322857815161320f88826131b2565b975061321a836131ca565b9250506001810190506131fb565b5085935050505092915050565b600060a08201905061324a6000830188612504565b61325760208301876129df565b818103604083015261326981866131d7565b9050613278606083018561266b565b6132856080830184612504565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006132c5601b83612336565b91506132d08261328f565b602082019050919050565b600060208201905081810360008301526132f4816132b8565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122060e269ad58df3965322060adb553e59805e61589b29b35e1b3fd77991eec40bf64736f6c63430008090033

Deployed Bytecode

0x60806040526004361061010d5760003560e01c8063751039fc11610095578063a9059cbb11610064578063a9059cbb1461033e578063c3c8cd801461037b578063c9567bf914610392578063ccfee5d6146103a9578063dd62ed3e146103d257610114565b8063751039fc146102a8578063843f7be2146102bf5780638da5cb5b146102e857806395d89b411461031357610114565b8063313ce567116100dc578063313ce567146101e95780635932ead1146102145780636fc3eaec1461023d57806370a0823114610254578063715018a61461029157610114565b806306fdde0314610119578063095ea7b31461014457806318160ddd1461018157806323b872dd146101ac57610114565b3661011457005b600080fd5b34801561012557600080fd5b5061012e61040f565b60405161013b91906123c4565b60405180910390f35b34801561015057600080fd5b5061016b6004803603810190610166919061248e565b61044c565b60405161017891906124e9565b60405180910390f35b34801561018d57600080fd5b5061019661046a565b6040516101a39190612513565b60405180910390f35b3480156101b857600080fd5b506101d360048036038101906101ce919061252e565b61047a565b6040516101e091906124e9565b60405180910390f35b3480156101f557600080fd5b506101fe610553565b60405161020b919061259d565b60405180910390f35b34801561022057600080fd5b5061023b600480360381019061023691906125e4565b61055c565b005b34801561024957600080fd5b5061025261060e565b005b34801561026057600080fd5b5061027b60048036038101906102769190612611565b610680565b6040516102889190612513565b60405180910390f35b34801561029d57600080fd5b506102a66106d1565b005b3480156102b457600080fd5b506102bd610824565b005b3480156102cb57600080fd5b506102e660048036038101906102e1919061263e565b6108d9565b005b3480156102f457600080fd5b506102fd610951565b60405161030a919061267a565b60405180910390f35b34801561031f57600080fd5b5061032861097a565b60405161033591906123c4565b60405180910390f35b34801561034a57600080fd5b506103656004803603810190610360919061248e565b6109b7565b60405161037291906124e9565b60405180910390f35b34801561038757600080fd5b506103906109d5565b005b34801561039e57600080fd5b506103a7610a4f565b005b3480156103b557600080fd5b506103d060048036038101906103cb91906127dd565b610f9b565b005b3480156103de57600080fd5b506103f960048036038101906103f49190612826565b6110c5565b6040516104069190612513565b60405180910390f35b60606040518060400160405280600981526020017f455249544f20e5af8c0000000000000000000000000000000000000000000000815250905090565b6000610460610459611211565b8484611219565b6001905092915050565b6000670de0b6b3a7640000905090565b60006104878484846113e4565b61054884610493611211565b610543856040518060600160405280602881526020016132fc60289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006104f9611211565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546119779092919063ffffffff16565b611219565b600190509392505050565b60006009905090565b610564611211565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146105f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105e8906128b2565b60405180910390fd5b80600f60176101000a81548160ff02191690831515021790555050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661064f611211565b73ffffffffffffffffffffffffffffffffffffffff161461066f57600080fd5b600047905061067d816119db565b50565b60006106ca600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a47565b9050919050565b6106d9611211565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610766576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075d906128b2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b61082c611211565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108b0906128b2565b60405180910390fd5b670de0b6b3a7640000601081905550670de0b6b3a7640000601181905550565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661091a611211565b73ffffffffffffffffffffffffffffffffffffffff161461093a57600080fd5b6005811061094757600080fd5b80600c8190555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600581526020017f455249544f000000000000000000000000000000000000000000000000000000815250905090565b60006109cb6109c4611211565b84846113e4565b6001905092915050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610a16611211565b73ffffffffffffffffffffffffffffffffffffffff1614610a3657600080fd5b6000610a4130610680565b9050610a4c81611ab5565b50565b610a57611211565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ae4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610adb906128b2565b60405180910390fd5b600f60149054906101000a900460ff1615610b34576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2b9061291e565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610bc330600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16670de0b6b3a7640000611219565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610c0957600080fd5b505afa158015610c1d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c419190612953565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610ca357600080fd5b505afa158015610cb7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cdb9190612953565b6040518363ffffffff1660e01b8152600401610cf8929190612980565b602060405180830381600087803b158015610d1257600080fd5b505af1158015610d26573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d4a9190612953565b600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610dd330610680565b600080610dde610951565b426040518863ffffffff1660e01b8152600401610e00969594939291906129ee565b6060604051808303818588803b158015610e1957600080fd5b505af1158015610e2d573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610e529190612a64565b5050506001600f60166101000a81548160ff0219169083151502179055506001600f60176101000a81548160ff0219169083151502179055506001600f60146101000a81548160ff021916908315150217905550600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610f45929190612ab7565b602060405180830381600087803b158015610f5f57600080fd5b505af1158015610f73573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f979190612af5565b5050565b610fa3611211565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611030576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611027906128b2565b60405180910390fd5b60005b81518110156110c15760016006600084848151811061105557611054612b22565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806110b990612b80565b915050611033565b5050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60008083141561115f57600090506111c1565b6000828461116d9190612bc9565b905082848261117c9190612c52565b146111bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111b390612cf5565b60405180910390fd5b809150505b92915050565b600061120983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611d3d565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611289576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128090612d87565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156112f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112f090612e19565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516113d79190612513565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611454576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144b90612eab565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156114c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114bb90612f3d565b60405180910390fd5b60008111611507576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114fe90612fcf565b60405180910390fd5b61150f610951565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561157d575061154d610951565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561195657600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156116265750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61162f57600080fd5b6000600a81905550600c54600b81905550600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156116eb5750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156117415750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156117595750600f60179054906101000a900460ff165b156117b7576011548161176b84610680565b6117759190612fef565b11156117b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117ad90613091565b60405180910390fd5b5b60006117c230610680565b9050600f60159054906101000a900460ff1615801561182f5750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156118475750600f60169054906101000a900460ff165b80156118535750600081115b1561187b5761186181611ab5565b6000479050600081111561187957611878476119db565b5b505b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156119225750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561193a5750600f60179054906101000a900460ff165b15611950576000600c54141561194f57600080fd5b5b50611967565b6000600a819055506000600b819055505b611972838383611da0565b505050565b60008383111582906119bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119b691906123c4565b60405180910390fd5b50600083856119ce91906130b1565b9050809150509392505050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611a43573d6000803e3d6000fd5b5050565b6000600854821115611a8e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a8590613157565b60405180910390fd5b6000611a98611db0565b9050611aad81846111c790919063ffffffff16565b915050919050565b6001600f60156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611aed57611aec61269a565b5b604051908082528060200260200182016040528015611b1b5781602001602082028036833780820191505090505b5090503081600081518110611b3357611b32612b22565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611bd557600080fd5b505afa158015611be9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c0d9190612953565b81600181518110611c2157611c20612b22565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611c8830600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611219565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611cec959493929190613235565b600060405180830381600087803b158015611d0657600080fd5b505af1158015611d1a573d6000803e3d6000fd5b50505050506000600f60156101000a81548160ff02191690831515021790555050565b60008083118290611d84576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d7b91906123c4565b60405180910390fd5b5060008385611d939190612c52565b9050809150509392505050565b611dab838383611ddb565b505050565b6000806000611dbd611fa6565b91509150611dd481836111c790919063ffffffff16565b9250505090565b600080600080600080611ded87612005565b955095509550955095509550611e4b86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461206d90919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611ee085600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120b790919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611f2c81612115565b611f3684836121d2565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611f939190612513565b60405180910390a3505050505050505050565b600080600060085490506000670de0b6b3a76400009050611fda670de0b6b3a76400006008546111c790919063ffffffff16565b821015611ff857600854670de0b6b3a7640000935093505050612001565b81819350935050505b9091565b60008060008060008060008060006120228a600a54600b5461220c565b9250925092506000612032611db0565b905060008060006120458e8787876122a2565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b60006120af83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611977565b905092915050565b60008082846120c69190612fef565b90508381101561210b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612102906132db565b60405180910390fd5b8091505092915050565b600061211f611db0565b90506000612136828461114c90919063ffffffff16565b905061218a81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120b790919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b6121e78260085461206d90919063ffffffff16565b600881905550612202816009546120b790919063ffffffff16565b6009819055505050565b600080600080612238606461222a888a61114c90919063ffffffff16565b6111c790919063ffffffff16565b905060006122626064612254888b61114c90919063ffffffff16565b6111c790919063ffffffff16565b9050600061228b8261227d858c61206d90919063ffffffff16565b61206d90919063ffffffff16565b905080838395509550955050505093509350939050565b6000806000806122bb858961114c90919063ffffffff16565b905060006122d2868961114c90919063ffffffff16565b905060006122e9878961114c90919063ffffffff16565b9050600061231282612304858761206d90919063ffffffff16565b61206d90919063ffffffff16565b9050838184965096509650505050509450945094915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561236557808201518184015260208101905061234a565b83811115612374576000848401525b50505050565b6000601f19601f8301169050919050565b60006123968261232b565b6123a08185612336565b93506123b0818560208601612347565b6123b98161237a565b840191505092915050565b600060208201905081810360008301526123de818461238b565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612425826123fa565b9050919050565b6124358161241a565b811461244057600080fd5b50565b6000813590506124528161242c565b92915050565b6000819050919050565b61246b81612458565b811461247657600080fd5b50565b60008135905061248881612462565b92915050565b600080604083850312156124a5576124a46123f0565b5b60006124b385828601612443565b92505060206124c485828601612479565b9150509250929050565b60008115159050919050565b6124e3816124ce565b82525050565b60006020820190506124fe60008301846124da565b92915050565b61250d81612458565b82525050565b60006020820190506125286000830184612504565b92915050565b600080600060608486031215612547576125466123f0565b5b600061255586828701612443565b935050602061256686828701612443565b925050604061257786828701612479565b9150509250925092565b600060ff82169050919050565b61259781612581565b82525050565b60006020820190506125b2600083018461258e565b92915050565b6125c1816124ce565b81146125cc57600080fd5b50565b6000813590506125de816125b8565b92915050565b6000602082840312156125fa576125f96123f0565b5b6000612608848285016125cf565b91505092915050565b600060208284031215612627576126266123f0565b5b600061263584828501612443565b91505092915050565b600060208284031215612654576126536123f0565b5b600061266284828501612479565b91505092915050565b6126748161241a565b82525050565b600060208201905061268f600083018461266b565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6126d28261237a565b810181811067ffffffffffffffff821117156126f1576126f061269a565b5b80604052505050565b60006127046123e6565b905061271082826126c9565b919050565b600067ffffffffffffffff8211156127305761272f61269a565b5b602082029050602081019050919050565b600080fd5b600061275961275484612715565b6126fa565b9050808382526020820190506020840283018581111561277c5761277b612741565b5b835b818110156127a557806127918882612443565b84526020840193505060208101905061277e565b5050509392505050565b600082601f8301126127c4576127c3612695565b5b81356127d4848260208601612746565b91505092915050565b6000602082840312156127f3576127f26123f0565b5b600082013567ffffffffffffffff811115612811576128106123f5565b5b61281d848285016127af565b91505092915050565b6000806040838503121561283d5761283c6123f0565b5b600061284b85828601612443565b925050602061285c85828601612443565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061289c602083612336565b91506128a782612866565b602082019050919050565b600060208201905081810360008301526128cb8161288f565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6000612908601783612336565b9150612913826128d2565b602082019050919050565b60006020820190508181036000830152612937816128fb565b9050919050565b60008151905061294d8161242c565b92915050565b600060208284031215612969576129686123f0565b5b60006129778482850161293e565b91505092915050565b6000604082019050612995600083018561266b565b6129a2602083018461266b565b9392505050565b6000819050919050565b6000819050919050565b60006129d86129d36129ce846129a9565b6129b3565b612458565b9050919050565b6129e8816129bd565b82525050565b600060c082019050612a03600083018961266b565b612a106020830188612504565b612a1d60408301876129df565b612a2a60608301866129df565b612a37608083018561266b565b612a4460a0830184612504565b979650505050505050565b600081519050612a5e81612462565b92915050565b600080600060608486031215612a7d57612a7c6123f0565b5b6000612a8b86828701612a4f565b9350506020612a9c86828701612a4f565b9250506040612aad86828701612a4f565b9150509250925092565b6000604082019050612acc600083018561266b565b612ad96020830184612504565b9392505050565b600081519050612aef816125b8565b92915050565b600060208284031215612b0b57612b0a6123f0565b5b6000612b1984828501612ae0565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612b8b82612458565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612bbe57612bbd612b51565b5b600182019050919050565b6000612bd482612458565b9150612bdf83612458565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612c1857612c17612b51565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612c5d82612458565b9150612c6883612458565b925082612c7857612c77612c23565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000612cdf602183612336565b9150612cea82612c83565b604082019050919050565b60006020820190508181036000830152612d0e81612cd2565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612d71602483612336565b9150612d7c82612d15565b604082019050919050565b60006020820190508181036000830152612da081612d64565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612e03602283612336565b9150612e0e82612da7565b604082019050919050565b60006020820190508181036000830152612e3281612df6565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612e95602583612336565b9150612ea082612e39565b604082019050919050565b60006020820190508181036000830152612ec481612e88565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612f27602383612336565b9150612f3282612ecb565b604082019050919050565b60006020820190508181036000830152612f5681612f1a565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612fb9602983612336565b9150612fc482612f5d565b604082019050919050565b60006020820190508181036000830152612fe881612fac565b9050919050565b6000612ffa82612458565b915061300583612458565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561303a57613039612b51565b5b828201905092915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b600061307b601a83612336565b915061308682613045565b602082019050919050565b600060208201905081810360008301526130aa8161306e565b9050919050565b60006130bc82612458565b91506130c783612458565b9250828210156130da576130d9612b51565b5b828203905092915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b6000613141602a83612336565b915061314c826130e5565b604082019050919050565b6000602082019050818103600083015261317081613134565b9050919050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6131ac8161241a565b82525050565b60006131be83836131a3565b60208301905092915050565b6000602082019050919050565b60006131e282613177565b6131ec8185613182565b93506131f783613193565b8060005b8381101561322857815161320f88826131b2565b975061321a836131ca565b9250506001810190506131fb565b5085935050505092915050565b600060a08201905061324a6000830188612504565b61325760208301876129df565b818103604083015261326981866131d7565b9050613278606083018561266b565b6132856080830184612504565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006132c5601b83612336565b91506132d08261328f565b602082019050919050565b600060208201905081810360008301526132f4816132b8565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122060e269ad58df3965322060adb553e59805e61589b29b35e1b3fd77991eec40bf64736f6c63430008090033

Deployed Bytecode Sourcemap

3573:10272:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5343:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6195:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5620:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6364:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5529:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6685:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11960:193;;;;;;;;;;;;;:::i;:::-;;5723:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2654:148;;;;;;;;;;;;;:::i;:::-;;9511:118;;;;;;;;;;;;;:::i;:::-;;9344:159;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2440:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5434:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5869:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11758:194;;;;;;;;;;;;;:::i;:::-;;9741:773;;;;;;;;;;;;;:::i;:::-;;10526:163;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6044:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5343:83;5380:13;5413:5;;;;;;;;;;;;;;;;;5406:12;;5343:83;:::o;6195:161::-;6270:4;6287:39;6296:12;:10;:12::i;:::-;6310:7;6319:6;6287:8;:39::i;:::-;6344:4;6337:11;;6195:161;;;;:::o;5620:95::-;5673:7;4071:18;5693:14;;5620:95;:::o;6364:313::-;6462:4;6479:36;6489:6;6497:9;6508:6;6479:9;:36::i;:::-;6526:121;6535:6;6543:12;:10;:12::i;:::-;6557:89;6595:6;6557:89;;;;;;;;;;;;;;;;;:11;:19;6569:6;6557:19;;;;;;;;;;;;;;;:33;6577:12;:10;:12::i;:::-;6557:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6526:8;:121::i;:::-;6665:4;6658:11;;6364:313;;;;;:::o;5529:83::-;5570:5;4473:1;5588:16;;5529:83;:::o;6685:103::-;2577:12;:10;:12::i;:::-;2567:22;;:6;;;;;;;;;;:22;;;2559:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6775:5:::1;6757:15;;:23;;;;;;;;;;;;;;;;;;6685:103:::0;:::o;11960:193::-;12026:14;;;;;;;;;;;12010:30;;:12;:10;:12::i;:::-;:30;;;12002:39;;;;;;12052:26;12081:21;12052:50;;12113:32;12126:18;12113:12;:32::i;:::-;11991:162;11960:193::o;5723:138::-;5789:7;5816:37;5836:7;:16;5844:7;5836:16;;;;;;;;;;;;;;;;5816:19;:37::i;:::-;5809:44;;5723:138;;;:::o;2654:148::-;2577:12;:10;:12::i;:::-;2567:22;;:6;;;;;;;;;;:22;;;2559:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2761:1:::1;2724:40;;2745:6;::::0;::::1;;;;;;;;2724:40;;;;;;;;;;;;2792:1;2775:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2654:148::o:0;9511:118::-;2577:12;:10;:12::i;:::-;2567:22;;:6;;;;;;;;;;:22;;;2559:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4071:18:::1;9564:12;:22;;;;4071:18;9597:14;:24;;;;9511:118::o:0;9344:159::-;9426:14;;;;;;;;;;;9410:30;;:12;:10;:12::i;:::-;:30;;;9402:39;;;;;;9465:1;9458:6;:8;9450:17;;;;;;9489:6;9476:12;:19;;;;9344:159;:::o;2440:79::-;2478:7;2505:6;;;;;;;;;;;2498:13;;2440:79;:::o;5434:87::-;5473:13;5506:7;;;;;;;;;;;;;;;;;5499:14;;5434:87;:::o;5869:167::-;5947:4;5964:42;5974:12;:10;:12::i;:::-;5988:9;5999:6;5964:9;:42::i;:::-;6024:4;6017:11;;5869:167;;;;:::o;11758:194::-;11824:14;;;;;;;;;;;11808:30;;:12;:10;:12::i;:::-;:30;;;11800:39;;;;;;11850:23;11876:24;11894:4;11876:9;:24::i;:::-;11850:50;;11911:33;11928:15;11911:16;:33::i;:::-;11789:163;11758:194::o;9741:773::-;2577:12;:10;:12::i;:::-;2567:22;;:6;;;;;;;;;;:22;;;2559:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9805:11:::1;;;;;;;;;;;9804:12;9796:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;9854:35;9911:42;9854:100;;9983:16;9965:15;;:34;;;;;;;;;;;;;;;;;;10010:58;10027:4;10042:15;;;;;;;;;;;4071:18;10010:8;:58::i;:::-;10113:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10095:56;;;10160:4;10167:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10095:96;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10079:13;;:112;;;;;;;;;;;;;;;;;;10202:15;;;;;;;;;;;:31;;;10241:21;10272:4;10278:24;10296:4;10278:9;:24::i;:::-;10303:1;10305::::0;10307:7:::1;:5;:7::i;:::-;10315:15;10202:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;10356:4;10342:11;;:18;;;;;;;;;;;;;;;;;;10389:4;10371:15;;:22;;;;;;;;;;;;;;;;;;10420:4;10406:11;;:18;;;;;;;;;;;;;;;;;;10442:13;;;;;;;;;;;10435:29;;;10473:15;;;;;;;;;;;10491:14;10435:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;9785:729;9741:773::o:0;10526:163::-;2577:12;:10;:12::i;:::-;2567:22;;:6;;;;;;;;;;:22;;;2559:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10599:6:::1;10594:88;10615:5;:12;10611:1;:16;10594:88;;;10666:4;10649;:14;10654:5;10660:1;10654:8;;;;;;;;:::i;:::-;;;;;;;;10649:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;10629:3;;;;;:::i;:::-;;;;10594:88;;;;10526:163:::0;:::o;6044:143::-;6125:7;6152:11;:18;6164:5;6152:18;;;;;;;;;;;;;;;:27;6171:7;6152:27;;;;;;;;;;;;;;;;6145:34;;6044:143;;;;:::o;1493:246::-;1551:7;1580:1;1575;:6;1571:47;;;1605:1;1598:8;;;;1571:47;1628:9;1644:1;1640;:5;;;;:::i;:::-;1628:17;;1673:1;1668;1664;:5;;;;:::i;:::-;:10;1656:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1730:1;1723:8;;;1493:246;;;;;:::o;1747:132::-;1805:7;1832:39;1836:1;1839;1832:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1825:46;;1747:132;;;;:::o;158:98::-;211:7;238:10;231:17;;158:98;:::o;7058:335::-;7168:1;7151:19;;:5;:19;;;;7143:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7249:1;7230:21;;:7;:21;;;;7222:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7331:6;7301:11;:18;7313:5;7301:18;;;;;;;;;;;;;;;:27;7320:7;7301:27;;;;;;;;;;;;;;;:36;;;;7369:7;7353:32;;7362:5;7353:32;;;7378:6;7353:32;;;;;;:::i;:::-;;;;;;;;7058:335;;;:::o;7401:1444::-;7505:1;7489:18;;:4;:18;;;;7481:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7582:1;7568:16;;:2;:16;;;;7560:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7652:1;7643:6;:10;7635:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7726:7;:5;:7::i;:::-;7718:15;;:4;:15;;;;:32;;;;;7743:7;:5;:7::i;:::-;7737:13;;:2;:13;;;;7718:32;7714:1081;;;7776:4;:10;7781:4;7776:10;;;;;;;;;;;;;;;;;;;;;;;;;7775:11;:24;;;;;7791:4;:8;7796:2;7791:8;;;;;;;;;;;;;;;;;;;;;;;;;7790:9;7775:24;7767:33;;;;;;7827:1;7815:9;:13;;;;7855:12;;7843:9;:24;;;;7894:13;;;;;;;;;;;7886:21;;:4;:21;;;:55;;;;;7925:15;;;;;;;;;;;7911:30;;:2;:30;;;;7886:55;:83;;;;;7947:18;:22;7966:2;7947:22;;;;;;;;;;;;;;;;;;;;;;;;;7945:24;7886:83;:102;;;;;7973:15;;;;;;;;;;;7886:102;7882:253;;;8072:14;;8062:6;8046:13;8056:2;8046:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8038:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;7882:253;8151:28;8182:24;8200:4;8182:9;:24::i;:::-;8151:55;;8226:6;;;;;;;;;;;8225:7;:32;;;;;8244:13;;;;;;;;;;;8236:21;;:4;:21;;;;8225:32;:47;;;;;8261:11;;;;;;;;;;;8225:47;:73;;;;;8297:1;8276:20;:22;8225:73;8221:344;;;8319:38;8336:20;8319:16;:38::i;:::-;8376:26;8405:21;8376:50;;8469:1;8448:18;:22;8445:105;;;8495:35;8508:21;8495:12;:35::i;:::-;8445:105;8300:265;8221:344;8591:13;;;;;;;;;;;8585:19;;:2;:19;;;:47;;;;;8610:18;:22;8629:2;8610:22;;;;;;;;;;;;;;;;;;;;;;;;;8608:24;8585:47;:66;;;;;8636:15;;;;;;;;;;;8585:66;8581:133;;;8696:1;8680:12;;:17;;8672:26;;;;;;8581:133;7752:975;7714:1081;;;8756:1;8744:9;:13;;;;8782:1;8770:9;:13;;;;7714:1081;8807:30;8822:4;8827:2;8830:6;8807:14;:30::i;:::-;7401:1444;;;:::o;1295:190::-;1381:7;1414:1;1409;:6;;1417:12;1401:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1441:9;1457:1;1453;:5;;;;:::i;:::-;1441:17;;1476:1;1469:8;;;1295:190;;;;;:::o;9637:96::-;9694:14;;;;;;;;;;;:23;;:31;9718:6;9694:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9637:96;:::o;6796:254::-;6863:7;6902;;6891;:18;;6883:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;6967:19;6990:10;:8;:10::i;:::-;6967:33;;7018:24;7030:11;7018:7;:11;;:24;;;;:::i;:::-;7011:31;;;6796:254;;;:::o;8853:483::-;4930:4;4921:6;;:13;;;;;;;;;;;;;;;;;;8931:21:::1;8969:1;8955:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8931:40;;9000:4;8982;8987:1;8982:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;9026:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9016:4;9021:1;9016:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;9059:62;9076:4;9091:15;;;;;;;;;;;9109:11;9059:8;:62::i;:::-;9132:15;;;;;;;;;;;:66;;;9213:11;9239:1;9255:4;9282;9302:15;9132:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;8920:416;4966:5:::0;4957:6;;:14;;;;;;;;;;;;;;;;;;8853:483;:::o;1887:189::-;1973:7;2005:1;2001;:5;2008:12;1993:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2032:9;2048:1;2044;:5;;;;:::i;:::-;2032:17;;2067:1;2060:8;;;1887:189;;;;;:::o;10697:146::-;10791:44;10809:6;10817:9;10828:6;10791:17;:44::i;:::-;10697:146;;;:::o;13415:163::-;13456:7;13477:15;13494;13513:19;:17;:19::i;:::-;13476:56;;;;13550:20;13562:7;13550;:11;;:20;;;;:::i;:::-;13543:27;;;;13415:163;:::o;10851:487::-;10950:15;10967:23;10992:12;11006:23;11031:12;11045:13;11062:19;11073:7;11062:10;:19::i;:::-;10949:132;;;;;;;;;;;;11110:28;11130:7;11110;:15;11118:6;11110:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;11092:7;:15;11100:6;11092:15;;;;;;;;;;;;;;;:46;;;;11170:39;11193:15;11170:7;:18;11178:9;11170:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;11149:7;:18;11157:9;11149:18;;;;;;;;;;;;;;;:60;;;;11220:16;11230:5;11220:9;:16::i;:::-;11247:23;11259:4;11265;11247:11;:23::i;:::-;11303:9;11286:44;;11295:6;11286:44;;;11314:15;11286:44;;;;;;:::i;:::-;;;;;;;;10938:400;;;;;;10851:487;;;:::o;13586:256::-;13636:7;13645;13665:15;13683:7;;13665:25;;13701:15;4071:18;13701:25;;13751:20;4071:18;13751:7;;:11;;:20;;;;:::i;:::-;13741:7;:30;13737:61;;;13781:7;;4071:18;13773:25;;;;;;;;13737:61;13817:7;13826;13809:25;;;;;;13586:256;;;:::o;12163:471::-;12222:7;12231;12240;12249;12258;12267;12288:23;12313:12;12327:13;12344:42;12356:7;12365:9;;12376;;12344:11;:42::i;:::-;12287:99;;;;;;12397:19;12420:10;:8;:10::i;:::-;12397:33;;12442:15;12459:23;12484:12;12500:46;12512:7;12521:4;12527:5;12534:11;12500;:46::i;:::-;12441:105;;;;;;12565:7;12574:15;12591:4;12597:15;12614:4;12620:5;12557:69;;;;;;;;;;;;;;;;;;;12163:471;;;;;;;:::o;1151:136::-;1209:7;1236:43;1240:1;1243;1236:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1229:50;;1151:136;;;;:::o;964:179::-;1022:7;1042:9;1058:1;1054;:5;;;;:::i;:::-;1042:17;;1083:1;1078;:6;;1070:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1134:1;1127:8;;;964:179;;;;:::o;11346:212::-;11399:19;11422:10;:8;:10::i;:::-;11399:33;;11443:13;11459:22;11469:11;11459:5;:9;;:22;;;;:::i;:::-;11443:38;;11517:33;11544:5;11517:7;:22;11533:4;11517:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;11492:7;:22;11508:4;11492:22;;;;;;;;;;;;;;;:58;;;;11388:170;;11346:212;:::o;11566:147::-;11644:17;11656:4;11644:7;;:11;;:17;;;;:::i;:::-;11634:7;:27;;;;11685:20;11700:4;11685:10;;:14;;:20;;;;:::i;:::-;11672:10;:33;;;;11566:147;;:::o;12642:351::-;12735:7;12744;12753;12773:12;12788:28;12812:3;12788:19;12800:6;12788:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;12773:43;;12827:13;12843:29;12868:3;12843:20;12855:7;12843;:11;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;12827:45;;12883:23;12909:28;12931:5;12909:17;12921:4;12909:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;12883:54;;12956:15;12973:4;12979:5;12948:37;;;;;;;;;12642:351;;;;;;;:::o;13001:409::-;13111:7;13120;13129;13149:15;13167:24;13179:11;13167:7;:11;;:24;;;;:::i;:::-;13149:42;;13202:12;13217:21;13226:11;13217:4;:8;;:21;;;;:::i;:::-;13202:36;;13249:13;13265:22;13275:11;13265:5;:9;;:22;;;;:::i;:::-;13249:38;;13298:23;13324:28;13346:5;13324:17;13336:4;13324:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;13298:54;;13371:7;13380:15;13397:4;13363:39;;;;;;;;;;13001:409;;;;;;;;:::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:307::-;355:1;365:113;379:6;376:1;373:13;365:113;;;464:1;459:3;455:11;449:18;445:1;440:3;436:11;429:39;401:2;398:1;394:10;389:15;;365:113;;;496:6;493:1;490:13;487:101;;;576:1;567:6;562:3;558:16;551:27;487:101;336:258;287:307;;;:::o;600:102::-;641:6;692:2;688:7;683:2;676:5;672:14;668:28;658:38;;600:102;;;:::o;708:364::-;796:3;824:39;857:5;824:39;:::i;:::-;879:71;943:6;938:3;879:71;:::i;:::-;872:78;;959:52;1004:6;999:3;992:4;985:5;981:16;959:52;:::i;:::-;1036:29;1058:6;1036:29;:::i;:::-;1031:3;1027:39;1020:46;;800:272;708:364;;;;:::o;1078:313::-;1191:4;1229:2;1218:9;1214:18;1206:26;;1278:9;1272:4;1268:20;1264:1;1253:9;1249:17;1242:47;1306:78;1379:4;1370:6;1306:78;:::i;:::-;1298:86;;1078:313;;;;:::o;1397:75::-;1430:6;1463:2;1457:9;1447:19;;1397:75;:::o;1478:117::-;1587:1;1584;1577:12;1601:117;1710:1;1707;1700:12;1724:126;1761:7;1801:42;1794:5;1790:54;1779:65;;1724:126;;;:::o;1856:96::-;1893:7;1922:24;1940:5;1922:24;:::i;:::-;1911:35;;1856:96;;;:::o;1958:122::-;2031:24;2049:5;2031:24;:::i;:::-;2024:5;2021:35;2011:63;;2070:1;2067;2060:12;2011:63;1958:122;:::o;2086:139::-;2132:5;2170:6;2157:20;2148:29;;2186:33;2213:5;2186:33;:::i;:::-;2086:139;;;;:::o;2231:77::-;2268:7;2297:5;2286:16;;2231:77;;;:::o;2314:122::-;2387:24;2405:5;2387:24;:::i;:::-;2380:5;2377:35;2367:63;;2426:1;2423;2416:12;2367:63;2314:122;:::o;2442:139::-;2488:5;2526:6;2513:20;2504:29;;2542:33;2569:5;2542:33;:::i;:::-;2442:139;;;;:::o;2587:474::-;2655:6;2663;2712:2;2700:9;2691:7;2687:23;2683:32;2680:119;;;2718:79;;:::i;:::-;2680:119;2838:1;2863:53;2908:7;2899:6;2888:9;2884:22;2863:53;:::i;:::-;2853:63;;2809:117;2965:2;2991:53;3036:7;3027:6;3016:9;3012:22;2991:53;:::i;:::-;2981:63;;2936:118;2587:474;;;;;:::o;3067:90::-;3101:7;3144:5;3137:13;3130:21;3119:32;;3067:90;;;:::o;3163:109::-;3244:21;3259:5;3244:21;:::i;:::-;3239:3;3232:34;3163:109;;:::o;3278:210::-;3365:4;3403:2;3392:9;3388:18;3380:26;;3416:65;3478:1;3467:9;3463:17;3454:6;3416:65;:::i;:::-;3278:210;;;;:::o;3494:118::-;3581:24;3599:5;3581:24;:::i;:::-;3576:3;3569:37;3494:118;;:::o;3618:222::-;3711:4;3749:2;3738:9;3734:18;3726:26;;3762:71;3830:1;3819:9;3815:17;3806:6;3762:71;:::i;:::-;3618:222;;;;:::o;3846:619::-;3923:6;3931;3939;3988:2;3976:9;3967:7;3963:23;3959:32;3956:119;;;3994:79;;:::i;:::-;3956:119;4114:1;4139:53;4184:7;4175:6;4164:9;4160:22;4139:53;:::i;:::-;4129:63;;4085:117;4241:2;4267:53;4312:7;4303:6;4292:9;4288:22;4267:53;:::i;:::-;4257:63;;4212:118;4369:2;4395:53;4440:7;4431:6;4420:9;4416:22;4395:53;:::i;:::-;4385:63;;4340:118;3846:619;;;;;:::o;4471:86::-;4506:7;4546:4;4539:5;4535:16;4524:27;;4471:86;;;:::o;4563:112::-;4646:22;4662:5;4646:22;:::i;:::-;4641:3;4634:35;4563:112;;:::o;4681:214::-;4770:4;4808:2;4797:9;4793:18;4785:26;;4821:67;4885:1;4874:9;4870:17;4861:6;4821:67;:::i;:::-;4681:214;;;;:::o;4901:116::-;4971:21;4986:5;4971:21;:::i;:::-;4964:5;4961:32;4951:60;;5007:1;5004;4997:12;4951:60;4901:116;:::o;5023:133::-;5066:5;5104:6;5091:20;5082:29;;5120:30;5144:5;5120:30;:::i;:::-;5023:133;;;;:::o;5162:323::-;5218:6;5267:2;5255:9;5246:7;5242:23;5238:32;5235:119;;;5273:79;;:::i;:::-;5235:119;5393:1;5418:50;5460:7;5451:6;5440:9;5436:22;5418:50;:::i;:::-;5408:60;;5364:114;5162:323;;;;:::o;5491:329::-;5550:6;5599:2;5587:9;5578:7;5574:23;5570:32;5567:119;;;5605:79;;:::i;:::-;5567:119;5725:1;5750:53;5795:7;5786:6;5775:9;5771:22;5750:53;:::i;:::-;5740:63;;5696:117;5491:329;;;;:::o;5826:::-;5885:6;5934:2;5922:9;5913:7;5909:23;5905:32;5902:119;;;5940:79;;:::i;:::-;5902:119;6060:1;6085:53;6130:7;6121:6;6110:9;6106:22;6085:53;:::i;:::-;6075:63;;6031:117;5826:329;;;;:::o;6161:118::-;6248:24;6266:5;6248:24;:::i;:::-;6243:3;6236:37;6161:118;;:::o;6285:222::-;6378:4;6416:2;6405:9;6401:18;6393:26;;6429:71;6497:1;6486:9;6482:17;6473:6;6429:71;:::i;:::-;6285:222;;;;:::o;6513:117::-;6622:1;6619;6612:12;6636:180;6684:77;6681:1;6674:88;6781:4;6778:1;6771:15;6805:4;6802:1;6795:15;6822:281;6905:27;6927:4;6905:27;:::i;:::-;6897:6;6893:40;7035:6;7023:10;7020:22;6999:18;6987:10;6984:34;6981:62;6978:88;;;7046:18;;:::i;:::-;6978:88;7086:10;7082:2;7075:22;6865:238;6822:281;;:::o;7109:129::-;7143:6;7170:20;;:::i;:::-;7160:30;;7199:33;7227:4;7219:6;7199:33;:::i;:::-;7109:129;;;:::o;7244:311::-;7321:4;7411:18;7403:6;7400:30;7397:56;;;7433:18;;:::i;:::-;7397:56;7483:4;7475:6;7471:17;7463:25;;7543:4;7537;7533:15;7525:23;;7244:311;;;:::o;7561:117::-;7670:1;7667;7660:12;7701:710;7797:5;7822:81;7838:64;7895:6;7838:64;:::i;:::-;7822:81;:::i;:::-;7813:90;;7923:5;7952:6;7945:5;7938:21;7986:4;7979:5;7975:16;7968:23;;8039:4;8031:6;8027:17;8019:6;8015:30;8068:3;8060:6;8057:15;8054:122;;;8087:79;;:::i;:::-;8054:122;8202:6;8185:220;8219:6;8214:3;8211:15;8185:220;;;8294:3;8323:37;8356:3;8344:10;8323:37;:::i;:::-;8318:3;8311:50;8390:4;8385:3;8381:14;8374:21;;8261:144;8245:4;8240:3;8236:14;8229:21;;8185:220;;;8189:21;7803:608;;7701:710;;;;;:::o;8434:370::-;8505:5;8554:3;8547:4;8539:6;8535:17;8531:27;8521:122;;8562:79;;:::i;:::-;8521:122;8679:6;8666:20;8704:94;8794:3;8786:6;8779:4;8771:6;8767:17;8704:94;:::i;:::-;8695:103;;8511:293;8434:370;;;;:::o;8810:539::-;8894:6;8943:2;8931:9;8922:7;8918:23;8914:32;8911:119;;;8949:79;;:::i;:::-;8911:119;9097:1;9086:9;9082:17;9069:31;9127:18;9119:6;9116:30;9113:117;;;9149:79;;:::i;:::-;9113:117;9254:78;9324:7;9315:6;9304:9;9300:22;9254:78;:::i;:::-;9244:88;;9040:302;8810:539;;;;:::o;9355:474::-;9423:6;9431;9480:2;9468:9;9459:7;9455:23;9451:32;9448:119;;;9486:79;;:::i;:::-;9448:119;9606:1;9631:53;9676:7;9667:6;9656:9;9652:22;9631:53;:::i;:::-;9621:63;;9577:117;9733:2;9759:53;9804:7;9795:6;9784:9;9780:22;9759:53;:::i;:::-;9749:63;;9704:118;9355:474;;;;;:::o;9835:182::-;9975:34;9971:1;9963:6;9959:14;9952:58;9835:182;:::o;10023:366::-;10165:3;10186:67;10250:2;10245:3;10186:67;:::i;:::-;10179:74;;10262:93;10351:3;10262:93;:::i;:::-;10380:2;10375:3;10371:12;10364:19;;10023:366;;;:::o;10395:419::-;10561:4;10599:2;10588:9;10584:18;10576:26;;10648:9;10642:4;10638:20;10634:1;10623:9;10619:17;10612:47;10676:131;10802:4;10676:131;:::i;:::-;10668:139;;10395:419;;;:::o;10820:173::-;10960:25;10956:1;10948:6;10944:14;10937:49;10820:173;:::o;10999:366::-;11141:3;11162:67;11226:2;11221:3;11162:67;:::i;:::-;11155:74;;11238:93;11327:3;11238:93;:::i;:::-;11356:2;11351:3;11347:12;11340:19;;10999:366;;;:::o;11371:419::-;11537:4;11575:2;11564:9;11560:18;11552:26;;11624:9;11618:4;11614:20;11610:1;11599:9;11595:17;11588:47;11652:131;11778:4;11652:131;:::i;:::-;11644:139;;11371:419;;;:::o;11796:143::-;11853:5;11884:6;11878:13;11869:22;;11900:33;11927:5;11900:33;:::i;:::-;11796:143;;;;:::o;11945:351::-;12015:6;12064:2;12052:9;12043:7;12039:23;12035:32;12032:119;;;12070:79;;:::i;:::-;12032:119;12190:1;12215:64;12271:7;12262:6;12251:9;12247:22;12215:64;:::i;:::-;12205:74;;12161:128;11945:351;;;;:::o;12302:332::-;12423:4;12461:2;12450:9;12446:18;12438:26;;12474:71;12542:1;12531:9;12527:17;12518:6;12474:71;:::i;:::-;12555:72;12623:2;12612:9;12608:18;12599:6;12555:72;:::i;:::-;12302:332;;;;;:::o;12640:85::-;12685:7;12714:5;12703:16;;12640:85;;;:::o;12731:60::-;12759:3;12780:5;12773:12;;12731:60;;;:::o;12797:158::-;12855:9;12888:61;12906:42;12915:32;12941:5;12915:32;:::i;:::-;12906:42;:::i;:::-;12888:61;:::i;:::-;12875:74;;12797:158;;;:::o;12961:147::-;13056:45;13095:5;13056:45;:::i;:::-;13051:3;13044:58;12961:147;;:::o;13114:807::-;13363:4;13401:3;13390:9;13386:19;13378:27;;13415:71;13483:1;13472:9;13468:17;13459:6;13415:71;:::i;:::-;13496:72;13564:2;13553:9;13549:18;13540:6;13496:72;:::i;:::-;13578:80;13654:2;13643:9;13639:18;13630:6;13578:80;:::i;:::-;13668;13744:2;13733:9;13729:18;13720:6;13668:80;:::i;:::-;13758:73;13826:3;13815:9;13811:19;13802:6;13758:73;:::i;:::-;13841;13909:3;13898:9;13894:19;13885:6;13841:73;:::i;:::-;13114:807;;;;;;;;;:::o;13927:143::-;13984:5;14015:6;14009:13;14000:22;;14031:33;14058:5;14031:33;:::i;:::-;13927:143;;;;:::o;14076:663::-;14164:6;14172;14180;14229:2;14217:9;14208:7;14204:23;14200:32;14197:119;;;14235:79;;:::i;:::-;14197:119;14355:1;14380:64;14436:7;14427:6;14416:9;14412:22;14380:64;:::i;:::-;14370:74;;14326:128;14493:2;14519:64;14575:7;14566:6;14555:9;14551:22;14519:64;:::i;:::-;14509:74;;14464:129;14632:2;14658:64;14714:7;14705:6;14694:9;14690:22;14658:64;:::i;:::-;14648:74;;14603:129;14076:663;;;;;:::o;14745:332::-;14866:4;14904:2;14893:9;14889:18;14881:26;;14917:71;14985:1;14974:9;14970:17;14961:6;14917:71;:::i;:::-;14998:72;15066:2;15055:9;15051:18;15042:6;14998:72;:::i;:::-;14745:332;;;;;:::o;15083:137::-;15137:5;15168:6;15162:13;15153:22;;15184:30;15208:5;15184:30;:::i;:::-;15083:137;;;;:::o;15226:345::-;15293:6;15342:2;15330:9;15321:7;15317:23;15313:32;15310:119;;;15348:79;;:::i;:::-;15310:119;15468:1;15493:61;15546:7;15537:6;15526:9;15522:22;15493:61;:::i;:::-;15483:71;;15439:125;15226:345;;;;:::o;15577:180::-;15625:77;15622:1;15615:88;15722:4;15719:1;15712:15;15746:4;15743:1;15736:15;15763:180;15811:77;15808:1;15801:88;15908:4;15905:1;15898:15;15932:4;15929:1;15922:15;15949:233;15988:3;16011:24;16029:5;16011:24;:::i;:::-;16002:33;;16057:66;16050:5;16047:77;16044:103;;;16127:18;;:::i;:::-;16044:103;16174:1;16167:5;16163:13;16156:20;;15949:233;;;:::o;16188:348::-;16228:7;16251:20;16269:1;16251:20;:::i;:::-;16246:25;;16285:20;16303:1;16285:20;:::i;:::-;16280:25;;16473:1;16405:66;16401:74;16398:1;16395:81;16390:1;16383:9;16376:17;16372:105;16369:131;;;16480:18;;:::i;:::-;16369:131;16528:1;16525;16521:9;16510:20;;16188:348;;;;:::o;16542:180::-;16590:77;16587:1;16580:88;16687:4;16684:1;16677:15;16711:4;16708:1;16701:15;16728:185;16768:1;16785:20;16803:1;16785:20;:::i;:::-;16780:25;;16819:20;16837:1;16819:20;:::i;:::-;16814:25;;16858:1;16848:35;;16863:18;;:::i;:::-;16848:35;16905:1;16902;16898:9;16893:14;;16728:185;;;;:::o;16919:220::-;17059:34;17055:1;17047:6;17043:14;17036:58;17128:3;17123:2;17115:6;17111:15;17104:28;16919:220;:::o;17145:366::-;17287:3;17308:67;17372:2;17367:3;17308:67;:::i;:::-;17301:74;;17384:93;17473:3;17384:93;:::i;:::-;17502:2;17497:3;17493:12;17486:19;;17145:366;;;:::o;17517:419::-;17683:4;17721:2;17710:9;17706:18;17698:26;;17770:9;17764:4;17760:20;17756:1;17745:9;17741:17;17734:47;17798:131;17924:4;17798:131;:::i;:::-;17790:139;;17517:419;;;:::o;17942:223::-;18082:34;18078:1;18070:6;18066:14;18059:58;18151:6;18146:2;18138:6;18134:15;18127:31;17942:223;:::o;18171:366::-;18313:3;18334:67;18398:2;18393:3;18334:67;:::i;:::-;18327:74;;18410:93;18499:3;18410:93;:::i;:::-;18528:2;18523:3;18519:12;18512:19;;18171:366;;;:::o;18543:419::-;18709:4;18747:2;18736:9;18732:18;18724:26;;18796:9;18790:4;18786:20;18782:1;18771:9;18767:17;18760:47;18824:131;18950:4;18824:131;:::i;:::-;18816:139;;18543:419;;;:::o;18968:221::-;19108:34;19104:1;19096:6;19092:14;19085:58;19177:4;19172:2;19164:6;19160:15;19153:29;18968:221;:::o;19195:366::-;19337:3;19358:67;19422:2;19417:3;19358:67;:::i;:::-;19351:74;;19434:93;19523:3;19434:93;:::i;:::-;19552:2;19547:3;19543:12;19536:19;;19195:366;;;:::o;19567:419::-;19733:4;19771:2;19760:9;19756:18;19748:26;;19820:9;19814:4;19810:20;19806:1;19795:9;19791:17;19784:47;19848:131;19974:4;19848:131;:::i;:::-;19840:139;;19567:419;;;:::o;19992:224::-;20132:34;20128:1;20120:6;20116:14;20109:58;20201:7;20196:2;20188:6;20184:15;20177:32;19992:224;:::o;20222:366::-;20364:3;20385:67;20449:2;20444:3;20385:67;:::i;:::-;20378:74;;20461:93;20550:3;20461:93;:::i;:::-;20579:2;20574:3;20570:12;20563:19;;20222:366;;;:::o;20594:419::-;20760:4;20798:2;20787:9;20783:18;20775:26;;20847:9;20841:4;20837:20;20833:1;20822:9;20818:17;20811:47;20875:131;21001:4;20875:131;:::i;:::-;20867:139;;20594:419;;;:::o;21019:222::-;21159:34;21155:1;21147:6;21143:14;21136:58;21228:5;21223:2;21215:6;21211:15;21204:30;21019:222;:::o;21247:366::-;21389:3;21410:67;21474:2;21469:3;21410:67;:::i;:::-;21403:74;;21486:93;21575:3;21486:93;:::i;:::-;21604:2;21599:3;21595:12;21588:19;;21247:366;;;:::o;21619:419::-;21785:4;21823:2;21812:9;21808:18;21800:26;;21872:9;21866:4;21862:20;21858:1;21847:9;21843:17;21836:47;21900:131;22026:4;21900:131;:::i;:::-;21892:139;;21619:419;;;:::o;22044:228::-;22184:34;22180:1;22172:6;22168:14;22161:58;22253:11;22248:2;22240:6;22236:15;22229:36;22044:228;:::o;22278:366::-;22420:3;22441:67;22505:2;22500:3;22441:67;:::i;:::-;22434:74;;22517:93;22606:3;22517:93;:::i;:::-;22635:2;22630:3;22626:12;22619:19;;22278:366;;;:::o;22650:419::-;22816:4;22854:2;22843:9;22839:18;22831:26;;22903:9;22897:4;22893:20;22889:1;22878:9;22874:17;22867:47;22931:131;23057:4;22931:131;:::i;:::-;22923:139;;22650:419;;;:::o;23075:305::-;23115:3;23134:20;23152:1;23134:20;:::i;:::-;23129:25;;23168:20;23186:1;23168:20;:::i;:::-;23163:25;;23322:1;23254:66;23250:74;23247:1;23244:81;23241:107;;;23328:18;;:::i;:::-;23241:107;23372:1;23369;23365:9;23358:16;;23075:305;;;;:::o;23386:176::-;23526:28;23522:1;23514:6;23510:14;23503:52;23386:176;:::o;23568:366::-;23710:3;23731:67;23795:2;23790:3;23731:67;:::i;:::-;23724:74;;23807:93;23896:3;23807:93;:::i;:::-;23925:2;23920:3;23916:12;23909:19;;23568:366;;;:::o;23940:419::-;24106:4;24144:2;24133:9;24129:18;24121:26;;24193:9;24187:4;24183:20;24179:1;24168:9;24164:17;24157:47;24221:131;24347:4;24221:131;:::i;:::-;24213:139;;23940:419;;;:::o;24365:191::-;24405:4;24425:20;24443:1;24425:20;:::i;:::-;24420:25;;24459:20;24477:1;24459:20;:::i;:::-;24454:25;;24498:1;24495;24492:8;24489:34;;;24503:18;;:::i;:::-;24489:34;24548:1;24545;24541:9;24533:17;;24365:191;;;;:::o;24562:229::-;24702:34;24698:1;24690:6;24686:14;24679:58;24771:12;24766:2;24758:6;24754:15;24747:37;24562:229;:::o;24797:366::-;24939:3;24960:67;25024:2;25019:3;24960:67;:::i;:::-;24953:74;;25036:93;25125:3;25036:93;:::i;:::-;25154:2;25149:3;25145:12;25138:19;;24797:366;;;:::o;25169:419::-;25335:4;25373:2;25362:9;25358:18;25350:26;;25422:9;25416:4;25412:20;25408:1;25397:9;25393:17;25386:47;25450:131;25576:4;25450:131;:::i;:::-;25442:139;;25169:419;;;:::o;25594:114::-;25661:6;25695:5;25689:12;25679:22;;25594:114;;;:::o;25714:184::-;25813:11;25847:6;25842:3;25835:19;25887:4;25882:3;25878:14;25863:29;;25714:184;;;;:::o;25904:132::-;25971:4;25994:3;25986:11;;26024:4;26019:3;26015:14;26007:22;;25904:132;;;:::o;26042:108::-;26119:24;26137:5;26119:24;:::i;:::-;26114:3;26107:37;26042:108;;:::o;26156:179::-;26225:10;26246:46;26288:3;26280:6;26246:46;:::i;:::-;26324:4;26319:3;26315:14;26301:28;;26156:179;;;;:::o;26341:113::-;26411:4;26443;26438:3;26434:14;26426:22;;26341:113;;;:::o;26490:732::-;26609:3;26638:54;26686:5;26638:54;:::i;:::-;26708:86;26787:6;26782:3;26708:86;:::i;:::-;26701:93;;26818:56;26868:5;26818:56;:::i;:::-;26897:7;26928:1;26913:284;26938:6;26935:1;26932:13;26913:284;;;27014:6;27008:13;27041:63;27100:3;27085:13;27041:63;:::i;:::-;27034:70;;27127:60;27180:6;27127:60;:::i;:::-;27117:70;;26973:224;26960:1;26957;26953:9;26948:14;;26913:284;;;26917:14;27213:3;27206:10;;26614:608;;;26490:732;;;;:::o;27228:831::-;27491:4;27529:3;27518:9;27514:19;27506:27;;27543:71;27611:1;27600:9;27596:17;27587:6;27543:71;:::i;:::-;27624:80;27700:2;27689:9;27685:18;27676:6;27624:80;:::i;:::-;27751:9;27745:4;27741:20;27736:2;27725:9;27721:18;27714:48;27779:108;27882:4;27873:6;27779:108;:::i;:::-;27771:116;;27897:72;27965:2;27954:9;27950:18;27941:6;27897:72;:::i;:::-;27979:73;28047:3;28036:9;28032:19;28023:6;27979:73;:::i;:::-;27228:831;;;;;;;;:::o;28065:177::-;28205:29;28201:1;28193:6;28189:14;28182:53;28065:177;:::o;28248:366::-;28390:3;28411:67;28475:2;28470:3;28411:67;:::i;:::-;28404:74;;28487:93;28576:3;28487:93;:::i;:::-;28605:2;28600:3;28596:12;28589:19;;28248:366;;;:::o;28620:419::-;28786:4;28824:2;28813:9;28809:18;28801:26;;28873:9;28867:4;28863:20;28859:1;28848:9;28844:17;28837:47;28901:131;29027:4;28901:131;:::i;:::-;28893:139;;28620:419;;;:::o

Swarm Source

ipfs://60e269ad58df3965322060adb553e59805e61589b29b35e1b3fd77991eec40bf
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.