ETH Price: $2,342.32 (-0.35%)

Token

Furphy (Furphy)
 

Overview

Max Total Supply

2,000,000,000 Furphy

Holders

67

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
2,781,427.138113607 Furphy

Value
$0.00
0x6b0ae70ececdbe3ec1f97a90c5641e3c9f1e38e9
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:
Furphy

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.19;

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 ERC20 {
    function totalSupply() external view returns (uint256);

    function decimals() external view returns (uint8);

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

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

    function getOwner() external view returns (address);

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

abstract contract Ownable {
    address internal owner;

    constructor(address _owner) {
        owner = _owner;
    }

    modifier onlyOwner() {
        require(isOwner(msg.sender), "!OWNER");
        _;
    }

    function isOwner(address account) public view returns (bool) {
        return account == owner;
    }

    function renounceOwnership() public onlyOwner {
        owner = address(0);
        emit OwnershipTransferred(address(0));
    }

    event OwnershipTransferred(address owner);
}

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

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

    function WETH() external pure returns (address);

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint256 amountADesired,
        uint256 amountBDesired,
        uint256 amountAMin,
        uint256 amountBMin,
        address to,
        uint256 deadline
    )
        external
        returns (
            uint256 amountA,
            uint256 amountB,
            uint256 liquidity
        );

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

    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;

    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external payable;

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

contract Furphy is ERC20, Ownable {
    using SafeMath for uint256;
    address routerAdress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;
    address DEAD = 0x000000000000000000000000000000000000dEaD;
    address immutable DEV_ADDRESS = 0xf93aBa9097915F48B36D3E373E876D733f708f19;

    string constant _name = "Furphy";
    string constant _symbol = "Furphy";
    uint8 constant _decimals = 9;
    uint256 _totalSupply = 2_000_000_000 * (10**_decimals);
    uint256 public _maxWalletAmount = 40_000_000 * (10**_decimals);
    mapping(address => uint256) _balances;
    mapping(address => mapping(address => uint256)) _allowances;
    mapping(address => bool) isFeeExempt;
    mapping(address => bool) isTxLimitExempt;
    uint256 FurphyFee = 0;
    address public FurphyTeam = msg.sender;
    IDEXRouter public router;
    address public pair;
    bool public swapEnabled = true;
    bool public feesEnabled = true;
    uint256 public swapThreshold = (_totalSupply / 1000) * 5;
    bool inSwap;
    modifier swapping() {
        inSwap = true;
        _;
        inSwap = false;
    }

    string private _websiteInformation;
    string private _telegramInformation;
    string private _twitterInformation;

    constructor() Ownable(msg.sender) {
        router = IDEXRouter(routerAdress);
        pair = IDEXFactory(router.factory()).createPair(
            router.WETH(),
            address(this)
        );
        _allowances[address(this)][address(router)] = type(uint256).max;
        address _owner = owner;
        isFeeExempt[_owner] = true;
        isTxLimitExempt[_owner] = true;
        _balances[_owner] = _totalSupply;
        emit Transfer(address(0), _owner, _totalSupply);
    }

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

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

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

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

    function getOwner() external view override returns (address) {
        return owner;
    }

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

    function shouldSwapBack() internal view returns (bool) {
        return
            msg.sender != pair &&
            !inSwap &&
            swapEnabled &&
            _balances[address(this)] >= swapThreshold;
    }

    function shouldTakeFee(address sender) internal view returns (bool) {
        return !isFeeExempt[sender];
    }

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

    function approve(address spender, uint256 amount)
        public
        override
        returns (bool)
    {
        _allowances[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }

    function transfer(address recipient, uint256 amount)
        external
        override
        returns (bool)
    {
        return _transferFrom(msg.sender, recipient, amount);
    }

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external override returns (bool) {
        if (_allowances[sender][msg.sender] != type(uint256).max) {
            _allowances[sender][msg.sender] = _allowances[sender][msg.sender]
                .sub(amount, "Insufficient Allowance");
        }

        return _transferFrom(sender, recipient, amount);
    }

    function setMaxWallet(uint256 _percentage) external onlyOwner {
        if (_percentage == 100) {
            _maxWalletAmount = type(uint256).max;
        } else {
            _maxWalletAmount = _totalSupply.mul(_percentage).div(100);
        }
    }

    /**
        Internal functions
    **/

    function takeFee(address sender, uint256 amount)
        internal
        returns (uint256)
    {
        uint256 feeAmount = amount.mul(FurphyFee).div(100);
        _balances[address(this)] = _balances[address(this)].add(feeAmount);
        emit Transfer(sender, address(this), feeAmount);
        return amount.sub(feeAmount);
    }

    function swapBack() internal swapping {
        uint256 contractTokenBalance = swapThreshold;
        uint256 amountToSwap = contractTokenBalance;

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();

        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amountToSwap,
            0,
            path,
            address(this),
            block.timestamp
        );

        uint256 amountETHMarketing = address(this).balance;

        (
            bool MarketingSuccess, /* bytes memory data */

        ) = payable(FurphyTeam).call{value: amountETHMarketing}("");
        require(MarketingSuccess, "receiver rejected ETH transfer");
    }

    function _transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) internal returns (bool) {
        if (inSwap) {
            return _basicTransfer(sender, recipient, amount);
        }

        if (recipient != pair && recipient != DEAD) {
            require(
                isTxLimitExempt[recipient] ||
                    _balances[recipient] + amount <= _maxWalletAmount,
                "Transfer amount exceeds the bag size."
            );
        }

        if (shouldSwapBack()) {
            swapBack();
        }

        _balances[sender] = _balances[sender].sub(
            amount,
            "Insufficient Balance"
        );

        uint256 amountReceived = feesEnabled && shouldTakeFee(sender)
            ? takeFee(sender, amount)
            : amount;

        _balances[recipient] = _balances[recipient].add(amountReceived);

        emit Transfer(sender, recipient, amountReceived);
        return true;
    }

    function _basicTransfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal returns (bool) {
        _balances[sender] = _balances[sender].sub(
            amount,
            "Insufficient Balance"
        );
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }

    /**
        Social links
    **/

    function setSocials(
        string calldata __websiteInformation,
        string calldata __telegramInformation,
        string calldata __twitterInformation
    ) external {
        require(
            msg.sender == DEV_ADDRESS,
            "Only developer can adjust social links"
        );

        _websiteInformation = __websiteInformation;
        _telegramInformation = __telegramInformation;
        _twitterInformation = __twitterInformation;
    }

    function getWebsiteInformation() public view returns (string memory) {
        return _websiteInformation;
    }

    function getTelegramInformation() public view returns (string memory) {
        return _telegramInformation;
    }

    function getTwitterInformation() public view returns (string memory) {
        return _twitterInformation;
    }

    receive() external payable {}
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","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":"FurphyTeam","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","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":"feesEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTelegramInformation","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTwitterInformation","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getWebsiteInformation","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_percentage","type":"uint256"}],"name":"setMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"__websiteInformation","type":"string"},{"internalType":"string","name":"__telegramInformation","type":"string"},{"internalType":"string","name":"__twitterInformation","type":"string"}],"name":"setSocials","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60a0604052737a250d5630b4cf539739df2c5dacb4c659f2488d600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061dead600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073f93aba9097915f48b36d3e373e876d733f708f1973ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff168152506009600a620000f3919062000850565b6377359400620001049190620008a1565b6003556009600a62000117919062000850565b6302625a00620001289190620008a1565b600455600060095533600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600c60146101000a81548160ff0219169083151502179055506001600c60156101000a81548160ff02191690831515021790555060056103e8600354620001bb91906200091b565b620001c79190620008a1565b600d55348015620001d757600080fd5b5033806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002eb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003119190620009bd565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200039a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003c09190620009bd565b306040518363ffffffff1660e01b8152600401620003e092919062000a00565b6020604051808303816000875af115801562000400573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004269190620009bd565b600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506001600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600354600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600354604051620006a7919062000a3e565b60405180910390a35062000a5b565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000744578086048111156200071c576200071b620006b6565b5b60018516156200072c5780820291505b80810290506200073c85620006e5565b9450620006fc565b94509492505050565b6000826200075f576001905062000832565b816200076f576000905062000832565b81600181146200078857600281146200079357620007c9565b600191505062000832565b60ff841115620007a857620007a7620006b6565b5b8360020a915084821115620007c257620007c1620006b6565b5b5062000832565b5060208310610133831016604e8410600b8410161715620008035782820a905083811115620007fd57620007fc620006b6565b5b62000832565b620008128484846001620006f2565b925090508184048111156200082c576200082b620006b6565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b60006200085d8262000839565b91506200086a8362000843565b9250620008997fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200074d565b905092915050565b6000620008ae8262000839565b9150620008bb8362000839565b9250828202620008cb8162000839565b91508282048414831517620008e557620008e4620006b6565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620009288262000839565b9150620009358362000839565b925082620009485762000947620008ec565b5b828204905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620009858262000958565b9050919050565b620009978162000978565b8114620009a357600080fd5b50565b600081519050620009b7816200098c565b92915050565b600060208284031215620009d657620009d562000953565b5b6000620009e684828501620009a6565b91505092915050565b620009fa8162000978565b82525050565b600060408201905062000a176000830185620009ef565b62000a266020830184620009ef565b9392505050565b62000a388162000839565b82525050565b600060208201905062000a55600083018462000a2d565b92915050565b608051612b0a62000a7760003960006106ee0152612b0a6000f3fe60806040526004361061014f5760003560e01c806370a08231116100b6578063a8aa1b311161006f578063a8aa1b3114610491578063a9059cbb146104bc578063c3f93b01146104f9578063dd62ed3e14610524578063e0dc354614610561578063f887ea401461058c57610156565b806370a0823114610391578063715018a6146103ce578063756b7bb7146103e5578063893d20e81461041057806395d89b411461043b578063a64e4f8a1461046657610156565b80632878d10e116101085780632878d10e1461027f5780632f54bf6e146102aa578063313ce567146102e75780635d0044ca146103125780636c0a24eb1461033b5780636ddd17131461036657610156565b80630445b6671461015b57806306fdde0314610186578063095ea7b3146101b15780630d0da2d4146101ee57806318160ddd1461021757806323b872dd1461024257610156565b3661015657005b600080fd5b34801561016757600080fd5b506101706105b7565b60405161017d9190611cd3565b60405180910390f35b34801561019257600080fd5b5061019b6105bd565b6040516101a89190611d7e565b60405180910390f35b3480156101bd57600080fd5b506101d860048036038101906101d39190611e34565b6105fa565b6040516101e59190611e8f565b60405180910390f35b3480156101fa57600080fd5b5061021560048036038101906102109190611f0f565b6106ec565b005b34801561022357600080fd5b5061022c6107b8565b6040516102399190611cd3565b60405180910390f35b34801561024e57600080fd5b5061026960048036038101906102649190611fc3565b6107c2565b6040516102769190611e8f565b60405180910390f35b34801561028b57600080fd5b506102946109c2565b6040516102a19190612025565b60405180910390f35b3480156102b657600080fd5b506102d160048036038101906102cc9190612040565b6109e8565b6040516102de9190611e8f565b60405180910390f35b3480156102f357600080fd5b506102fc610a41565b6040516103099190612089565b60405180910390f35b34801561031e57600080fd5b50610339600480360381019061033491906120a4565b610a4a565b005b34801561034757600080fd5b50610350610af8565b60405161035d9190611cd3565b60405180910390f35b34801561037257600080fd5b5061037b610afe565b6040516103889190611e8f565b60405180910390f35b34801561039d57600080fd5b506103b860048036038101906103b39190612040565b610b11565b6040516103c59190611cd3565b60405180910390f35b3480156103da57600080fd5b506103e3610b5a565b005b3480156103f157600080fd5b506103fa610c1d565b6040516104079190611d7e565b60405180910390f35b34801561041c57600080fd5b50610425610caf565b6040516104329190612025565b60405180910390f35b34801561044757600080fd5b50610450610cd8565b60405161045d9190611d7e565b60405180910390f35b34801561047257600080fd5b5061047b610d15565b6040516104889190611e8f565b60405180910390f35b34801561049d57600080fd5b506104a6610d28565b6040516104b39190612025565b60405180910390f35b3480156104c857600080fd5b506104e360048036038101906104de9190611e34565b610d4e565b6040516104f09190611e8f565b60405180910390f35b34801561050557600080fd5b5061050e610d63565b60405161051b9190611d7e565b60405180910390f35b34801561053057600080fd5b5061054b600480360381019061054691906120d1565b610df5565b6040516105589190611cd3565b60405180910390f35b34801561056d57600080fd5b50610576610e7c565b6040516105839190611d7e565b60405180910390f35b34801561059857600080fd5b506105a1610f0e565b6040516105ae9190612170565b60405180910390f35b600d5481565b60606040518060400160405280600681526020017f4675727068790000000000000000000000000000000000000000000000000000815250905090565b600081600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516106da9190611cd3565b60405180910390a36001905092915050565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461077a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610771906121fd565b60405180910390fd5b8585600f918261078b929190612459565b5083836010918261079d929190612459565b508181601191826107af929190612459565b50505050505050565b6000600354905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146109ae5761092d826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610f349092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6109b9848484610f98565b90509392505050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006009905090565b610a53336109e8565b610a92576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8990612575565b60405180910390fd5b60648103610ac6577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600481905550610af5565b610aee6064610ae08360035461137990919063ffffffff16565b6113f390919063ffffffff16565b6004819055505b50565b60045481565b600c60149054906101000a900460ff1681565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610b63336109e8565b610ba2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b9990612575565b60405180910390fd5b60008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861636000604051610c139190612025565b60405180910390a1565b606060108054610c2c90612286565b80601f0160208091040260200160405190810160405280929190818152602001828054610c5890612286565b8015610ca55780601f10610c7a57610100808354040283529160200191610ca5565b820191906000526020600020905b815481529060010190602001808311610c8857829003601f168201915b5050505050905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600681526020017f4675727068790000000000000000000000000000000000000000000000000000815250905090565b600c60159054906101000a900460ff1681565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610d5b338484610f98565b905092915050565b606060118054610d7290612286565b80601f0160208091040260200160405190810160405280929190818152602001828054610d9e90612286565b8015610deb5780601f10610dc057610100808354040283529160200191610deb565b820191906000526020600020905b815481529060010190602001808311610dce57829003601f168201915b5050505050905090565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6060600f8054610e8b90612286565b80601f0160208091040260200160405190810160405280929190818152602001828054610eb790612286565b8015610f045780601f10610ed957610100808354040283529160200191610f04565b820191906000526020600020905b815481529060010190602001808311610ee757829003601f168201915b5050505050905090565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000838311158290610f7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f739190611d7e565b60405180910390fd5b5060008385610f8b91906125c4565b9050809150509392505050565b6000600e60009054906101000a900460ff1615610fc157610fba84848461143d565b9050611372565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561106d5750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561115657600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611116575060045482600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461111391906125f8565b11155b611155576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161114c9061269e565b60405180910390fd5b5b61115e611610565b1561116c5761116b6116e7565b5b6111f5826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610f349092919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600c60159054906101000a900460ff16801561125b575061125a85611a15565b5b6112655782611270565b61126f8584611a6c565b5b90506112c481600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611baf90919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516113649190611cd3565b60405180910390a360019150505b9392505050565b600080830361138b57600090506113ed565b6000828461139991906126be565b90508284826113a8919061272f565b146113e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113df906127d2565b60405180910390fd5b809150505b92915050565b600061143583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611c0d565b905092915050565b60006114c8826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610f349092919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061155d82600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611baf90919063ffffffff16565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516115fd9190611cd3565b60405180910390a3600190509392505050565b6000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415801561167d5750600e60009054906101000a900460ff16155b80156116955750600c60149054906101000a900460ff165b80156116e25750600d54600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001600e60006101000a81548160ff0219169083151502179055506000600d54905060008190506000600267ffffffffffffffff81111561172b5761172a612228565b5b6040519080825280602002602001820160405280156117595781602001602082028036833780820191505090505b5090503081600081518110611771576117706127f2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611818573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061183c9190612836565b816001815181106118505761184f6127f2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016118ee95949392919061295c565b600060405180830381600087803b15801561190857600080fd5b505af115801561191c573d6000803e3d6000fd5b5050505060004790506000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168260405161196d906129e7565b60006040518083038185875af1925050503d80600081146119aa576040519150601f19603f3d011682016040523d82523d6000602084013e6119af565b606091505b50509050806119f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119ea90612a48565b60405180910390fd5b50505050506000600e60006101000a81548160ff021916908315150217905550565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b600080611a976064611a896009548661137990919063ffffffff16565b6113f390919063ffffffff16565b9050611aeb81600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611baf90919063ffffffff16565b600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611b8b9190611cd3565b60405180910390a3611ba68184611c7090919063ffffffff16565b91505092915050565b6000808284611bbe91906125f8565b905083811015611c03576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bfa90612ab4565b60405180910390fd5b8091505092915050565b60008083118290611c54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c4b9190611d7e565b60405180910390fd5b5060008385611c63919061272f565b9050809150509392505050565b6000611cb283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610f34565b905092915050565b6000819050919050565b611ccd81611cba565b82525050565b6000602082019050611ce86000830184611cc4565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611d28578082015181840152602081019050611d0d565b60008484015250505050565b6000601f19601f8301169050919050565b6000611d5082611cee565b611d5a8185611cf9565b9350611d6a818560208601611d0a565b611d7381611d34565b840191505092915050565b60006020820190508181036000830152611d988184611d45565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611dd582611daa565b9050919050565b611de581611dca565b8114611df057600080fd5b50565b600081359050611e0281611ddc565b92915050565b611e1181611cba565b8114611e1c57600080fd5b50565b600081359050611e2e81611e08565b92915050565b60008060408385031215611e4b57611e4a611da0565b5b6000611e5985828601611df3565b9250506020611e6a85828601611e1f565b9150509250929050565b60008115159050919050565b611e8981611e74565b82525050565b6000602082019050611ea46000830184611e80565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f840112611ecf57611ece611eaa565b5b8235905067ffffffffffffffff811115611eec57611eeb611eaf565b5b602083019150836001820283011115611f0857611f07611eb4565b5b9250929050565b60008060008060008060608789031215611f2c57611f2b611da0565b5b600087013567ffffffffffffffff811115611f4a57611f49611da5565b5b611f5689828a01611eb9565b9650965050602087013567ffffffffffffffff811115611f7957611f78611da5565b5b611f8589828a01611eb9565b9450945050604087013567ffffffffffffffff811115611fa857611fa7611da5565b5b611fb489828a01611eb9565b92509250509295509295509295565b600080600060608486031215611fdc57611fdb611da0565b5b6000611fea86828701611df3565b9350506020611ffb86828701611df3565b925050604061200c86828701611e1f565b9150509250925092565b61201f81611dca565b82525050565b600060208201905061203a6000830184612016565b92915050565b60006020828403121561205657612055611da0565b5b600061206484828501611df3565b91505092915050565b600060ff82169050919050565b6120838161206d565b82525050565b600060208201905061209e600083018461207a565b92915050565b6000602082840312156120ba576120b9611da0565b5b60006120c884828501611e1f565b91505092915050565b600080604083850312156120e8576120e7611da0565b5b60006120f685828601611df3565b925050602061210785828601611df3565b9150509250929050565b6000819050919050565b600061213661213161212c84611daa565b612111565b611daa565b9050919050565b60006121488261211b565b9050919050565b600061215a8261213d565b9050919050565b61216a8161214f565b82525050565b60006020820190506121856000830184612161565b92915050565b7f4f6e6c7920646576656c6f7065722063616e2061646a75737420736f6369616c60008201527f206c696e6b730000000000000000000000000000000000000000000000000000602082015250565b60006121e7602683611cf9565b91506121f28261218b565b604082019050919050565b60006020820190508181036000830152612216816121da565b9050919050565b600082905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061229e57607f821691505b6020821081036122b1576122b0612257565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026123197fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826122dc565b61232386836122dc565b95508019841693508086168417925050509392505050565b600061235661235161234c84611cba565b612111565b611cba565b9050919050565b6000819050919050565b6123708361233b565b61238461237c8261235d565b8484546122e9565b825550505050565b600090565b61239961238c565b6123a4818484612367565b505050565b5b818110156123c8576123bd600082612391565b6001810190506123aa565b5050565b601f82111561240d576123de816122b7565b6123e7846122cc565b810160208510156123f6578190505b61240a612402856122cc565b8301826123a9565b50505b505050565b600082821c905092915050565b600061243060001984600802612412565b1980831691505092915050565b6000612449838361241f565b9150826002028217905092915050565b612463838361221d565b67ffffffffffffffff81111561247c5761247b612228565b5b6124868254612286565b6124918282856123cc565b6000601f8311600181146124c057600084156124ae578287013590505b6124b8858261243d565b865550612520565b601f1984166124ce866122b7565b60005b828110156124f6578489013582556001820191506020850194506020810190506124d1565b86831015612513578489013561250f601f89168261241f565b8355505b6001600288020188555050505b50505050505050565b7f214f574e45520000000000000000000000000000000000000000000000000000600082015250565b600061255f600683611cf9565b915061256a82612529565b602082019050919050565b6000602082019050818103600083015261258e81612552565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006125cf82611cba565b91506125da83611cba565b92508282039050818111156125f2576125f1612595565b5b92915050565b600061260382611cba565b915061260e83611cba565b925082820190508082111561262657612625612595565b5b92915050565b7f5472616e7366657220616d6f756e74206578636565647320746865206261672060008201527f73697a652e000000000000000000000000000000000000000000000000000000602082015250565b6000612688602583611cf9565b91506126938261262c565b604082019050919050565b600060208201905081810360008301526126b78161267b565b9050919050565b60006126c982611cba565b91506126d483611cba565b92508282026126e281611cba565b915082820484148315176126f9576126f8612595565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061273a82611cba565b915061274583611cba565b92508261275557612754612700565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006127bc602183611cf9565b91506127c782612760565b604082019050919050565b600060208201905081810360008301526127eb816127af565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008151905061283081611ddc565b92915050565b60006020828403121561284c5761284b611da0565b5b600061285a84828501612821565b91505092915050565b6000819050919050565b600061288861288361287e84612863565b612111565b611cba565b9050919050565b6128988161286d565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6128d381611dca565b82525050565b60006128e583836128ca565b60208301905092915050565b6000602082019050919050565b60006129098261289e565b61291381856128a9565b935061291e836128ba565b8060005b8381101561294f57815161293688826128d9565b9750612941836128f1565b925050600181019050612922565b5085935050505092915050565b600060a0820190506129716000830188611cc4565b61297e602083018761288f565b818103604083015261299081866128fe565b905061299f6060830185612016565b6129ac6080830184611cc4565b9695505050505050565b600081905092915050565b50565b60006129d16000836129b6565b91506129dc826129c1565b600082019050919050565b60006129f2826129c4565b9150819050919050565b7f72656365697665722072656a656374656420455448207472616e736665720000600082015250565b6000612a32601e83611cf9565b9150612a3d826129fc565b602082019050919050565b60006020820190508181036000830152612a6181612a25565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000612a9e601b83611cf9565b9150612aa982612a68565b602082019050919050565b60006020820190508181036000830152612acd81612a91565b905091905056fea2646970667358221220844e1129da2ce64e863b33194cdf82a871af1e428480fff259c5fd19ef500ef964736f6c63430008130033

Deployed Bytecode

0x60806040526004361061014f5760003560e01c806370a08231116100b6578063a8aa1b311161006f578063a8aa1b3114610491578063a9059cbb146104bc578063c3f93b01146104f9578063dd62ed3e14610524578063e0dc354614610561578063f887ea401461058c57610156565b806370a0823114610391578063715018a6146103ce578063756b7bb7146103e5578063893d20e81461041057806395d89b411461043b578063a64e4f8a1461046657610156565b80632878d10e116101085780632878d10e1461027f5780632f54bf6e146102aa578063313ce567146102e75780635d0044ca146103125780636c0a24eb1461033b5780636ddd17131461036657610156565b80630445b6671461015b57806306fdde0314610186578063095ea7b3146101b15780630d0da2d4146101ee57806318160ddd1461021757806323b872dd1461024257610156565b3661015657005b600080fd5b34801561016757600080fd5b506101706105b7565b60405161017d9190611cd3565b60405180910390f35b34801561019257600080fd5b5061019b6105bd565b6040516101a89190611d7e565b60405180910390f35b3480156101bd57600080fd5b506101d860048036038101906101d39190611e34565b6105fa565b6040516101e59190611e8f565b60405180910390f35b3480156101fa57600080fd5b5061021560048036038101906102109190611f0f565b6106ec565b005b34801561022357600080fd5b5061022c6107b8565b6040516102399190611cd3565b60405180910390f35b34801561024e57600080fd5b5061026960048036038101906102649190611fc3565b6107c2565b6040516102769190611e8f565b60405180910390f35b34801561028b57600080fd5b506102946109c2565b6040516102a19190612025565b60405180910390f35b3480156102b657600080fd5b506102d160048036038101906102cc9190612040565b6109e8565b6040516102de9190611e8f565b60405180910390f35b3480156102f357600080fd5b506102fc610a41565b6040516103099190612089565b60405180910390f35b34801561031e57600080fd5b50610339600480360381019061033491906120a4565b610a4a565b005b34801561034757600080fd5b50610350610af8565b60405161035d9190611cd3565b60405180910390f35b34801561037257600080fd5b5061037b610afe565b6040516103889190611e8f565b60405180910390f35b34801561039d57600080fd5b506103b860048036038101906103b39190612040565b610b11565b6040516103c59190611cd3565b60405180910390f35b3480156103da57600080fd5b506103e3610b5a565b005b3480156103f157600080fd5b506103fa610c1d565b6040516104079190611d7e565b60405180910390f35b34801561041c57600080fd5b50610425610caf565b6040516104329190612025565b60405180910390f35b34801561044757600080fd5b50610450610cd8565b60405161045d9190611d7e565b60405180910390f35b34801561047257600080fd5b5061047b610d15565b6040516104889190611e8f565b60405180910390f35b34801561049d57600080fd5b506104a6610d28565b6040516104b39190612025565b60405180910390f35b3480156104c857600080fd5b506104e360048036038101906104de9190611e34565b610d4e565b6040516104f09190611e8f565b60405180910390f35b34801561050557600080fd5b5061050e610d63565b60405161051b9190611d7e565b60405180910390f35b34801561053057600080fd5b5061054b600480360381019061054691906120d1565b610df5565b6040516105589190611cd3565b60405180910390f35b34801561056d57600080fd5b50610576610e7c565b6040516105839190611d7e565b60405180910390f35b34801561059857600080fd5b506105a1610f0e565b6040516105ae9190612170565b60405180910390f35b600d5481565b60606040518060400160405280600681526020017f4675727068790000000000000000000000000000000000000000000000000000815250905090565b600081600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516106da9190611cd3565b60405180910390a36001905092915050565b7f000000000000000000000000f93aba9097915f48b36d3e373e876d733f708f1973ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461077a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610771906121fd565b60405180910390fd5b8585600f918261078b929190612459565b5083836010918261079d929190612459565b508181601191826107af929190612459565b50505050505050565b6000600354905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146109ae5761092d826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610f349092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6109b9848484610f98565b90509392505050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006009905090565b610a53336109e8565b610a92576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8990612575565b60405180910390fd5b60648103610ac6577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600481905550610af5565b610aee6064610ae08360035461137990919063ffffffff16565b6113f390919063ffffffff16565b6004819055505b50565b60045481565b600c60149054906101000a900460ff1681565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610b63336109e8565b610ba2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b9990612575565b60405180910390fd5b60008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861636000604051610c139190612025565b60405180910390a1565b606060108054610c2c90612286565b80601f0160208091040260200160405190810160405280929190818152602001828054610c5890612286565b8015610ca55780601f10610c7a57610100808354040283529160200191610ca5565b820191906000526020600020905b815481529060010190602001808311610c8857829003601f168201915b5050505050905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600681526020017f4675727068790000000000000000000000000000000000000000000000000000815250905090565b600c60159054906101000a900460ff1681565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610d5b338484610f98565b905092915050565b606060118054610d7290612286565b80601f0160208091040260200160405190810160405280929190818152602001828054610d9e90612286565b8015610deb5780601f10610dc057610100808354040283529160200191610deb565b820191906000526020600020905b815481529060010190602001808311610dce57829003601f168201915b5050505050905090565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6060600f8054610e8b90612286565b80601f0160208091040260200160405190810160405280929190818152602001828054610eb790612286565b8015610f045780601f10610ed957610100808354040283529160200191610f04565b820191906000526020600020905b815481529060010190602001808311610ee757829003601f168201915b5050505050905090565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000838311158290610f7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f739190611d7e565b60405180910390fd5b5060008385610f8b91906125c4565b9050809150509392505050565b6000600e60009054906101000a900460ff1615610fc157610fba84848461143d565b9050611372565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561106d5750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561115657600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611116575060045482600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461111391906125f8565b11155b611155576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161114c9061269e565b60405180910390fd5b5b61115e611610565b1561116c5761116b6116e7565b5b6111f5826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610f349092919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600c60159054906101000a900460ff16801561125b575061125a85611a15565b5b6112655782611270565b61126f8584611a6c565b5b90506112c481600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611baf90919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516113649190611cd3565b60405180910390a360019150505b9392505050565b600080830361138b57600090506113ed565b6000828461139991906126be565b90508284826113a8919061272f565b146113e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113df906127d2565b60405180910390fd5b809150505b92915050565b600061143583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611c0d565b905092915050565b60006114c8826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610f349092919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061155d82600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611baf90919063ffffffff16565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516115fd9190611cd3565b60405180910390a3600190509392505050565b6000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415801561167d5750600e60009054906101000a900460ff16155b80156116955750600c60149054906101000a900460ff165b80156116e25750600d54600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001600e60006101000a81548160ff0219169083151502179055506000600d54905060008190506000600267ffffffffffffffff81111561172b5761172a612228565b5b6040519080825280602002602001820160405280156117595781602001602082028036833780820191505090505b5090503081600081518110611771576117706127f2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611818573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061183c9190612836565b816001815181106118505761184f6127f2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016118ee95949392919061295c565b600060405180830381600087803b15801561190857600080fd5b505af115801561191c573d6000803e3d6000fd5b5050505060004790506000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168260405161196d906129e7565b60006040518083038185875af1925050503d80600081146119aa576040519150601f19603f3d011682016040523d82523d6000602084013e6119af565b606091505b50509050806119f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119ea90612a48565b60405180910390fd5b50505050506000600e60006101000a81548160ff021916908315150217905550565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b600080611a976064611a896009548661137990919063ffffffff16565b6113f390919063ffffffff16565b9050611aeb81600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611baf90919063ffffffff16565b600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611b8b9190611cd3565b60405180910390a3611ba68184611c7090919063ffffffff16565b91505092915050565b6000808284611bbe91906125f8565b905083811015611c03576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bfa90612ab4565b60405180910390fd5b8091505092915050565b60008083118290611c54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c4b9190611d7e565b60405180910390fd5b5060008385611c63919061272f565b9050809150509392505050565b6000611cb283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610f34565b905092915050565b6000819050919050565b611ccd81611cba565b82525050565b6000602082019050611ce86000830184611cc4565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611d28578082015181840152602081019050611d0d565b60008484015250505050565b6000601f19601f8301169050919050565b6000611d5082611cee565b611d5a8185611cf9565b9350611d6a818560208601611d0a565b611d7381611d34565b840191505092915050565b60006020820190508181036000830152611d988184611d45565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611dd582611daa565b9050919050565b611de581611dca565b8114611df057600080fd5b50565b600081359050611e0281611ddc565b92915050565b611e1181611cba565b8114611e1c57600080fd5b50565b600081359050611e2e81611e08565b92915050565b60008060408385031215611e4b57611e4a611da0565b5b6000611e5985828601611df3565b9250506020611e6a85828601611e1f565b9150509250929050565b60008115159050919050565b611e8981611e74565b82525050565b6000602082019050611ea46000830184611e80565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f840112611ecf57611ece611eaa565b5b8235905067ffffffffffffffff811115611eec57611eeb611eaf565b5b602083019150836001820283011115611f0857611f07611eb4565b5b9250929050565b60008060008060008060608789031215611f2c57611f2b611da0565b5b600087013567ffffffffffffffff811115611f4a57611f49611da5565b5b611f5689828a01611eb9565b9650965050602087013567ffffffffffffffff811115611f7957611f78611da5565b5b611f8589828a01611eb9565b9450945050604087013567ffffffffffffffff811115611fa857611fa7611da5565b5b611fb489828a01611eb9565b92509250509295509295509295565b600080600060608486031215611fdc57611fdb611da0565b5b6000611fea86828701611df3565b9350506020611ffb86828701611df3565b925050604061200c86828701611e1f565b9150509250925092565b61201f81611dca565b82525050565b600060208201905061203a6000830184612016565b92915050565b60006020828403121561205657612055611da0565b5b600061206484828501611df3565b91505092915050565b600060ff82169050919050565b6120838161206d565b82525050565b600060208201905061209e600083018461207a565b92915050565b6000602082840312156120ba576120b9611da0565b5b60006120c884828501611e1f565b91505092915050565b600080604083850312156120e8576120e7611da0565b5b60006120f685828601611df3565b925050602061210785828601611df3565b9150509250929050565b6000819050919050565b600061213661213161212c84611daa565b612111565b611daa565b9050919050565b60006121488261211b565b9050919050565b600061215a8261213d565b9050919050565b61216a8161214f565b82525050565b60006020820190506121856000830184612161565b92915050565b7f4f6e6c7920646576656c6f7065722063616e2061646a75737420736f6369616c60008201527f206c696e6b730000000000000000000000000000000000000000000000000000602082015250565b60006121e7602683611cf9565b91506121f28261218b565b604082019050919050565b60006020820190508181036000830152612216816121da565b9050919050565b600082905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061229e57607f821691505b6020821081036122b1576122b0612257565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026123197fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826122dc565b61232386836122dc565b95508019841693508086168417925050509392505050565b600061235661235161234c84611cba565b612111565b611cba565b9050919050565b6000819050919050565b6123708361233b565b61238461237c8261235d565b8484546122e9565b825550505050565b600090565b61239961238c565b6123a4818484612367565b505050565b5b818110156123c8576123bd600082612391565b6001810190506123aa565b5050565b601f82111561240d576123de816122b7565b6123e7846122cc565b810160208510156123f6578190505b61240a612402856122cc565b8301826123a9565b50505b505050565b600082821c905092915050565b600061243060001984600802612412565b1980831691505092915050565b6000612449838361241f565b9150826002028217905092915050565b612463838361221d565b67ffffffffffffffff81111561247c5761247b612228565b5b6124868254612286565b6124918282856123cc565b6000601f8311600181146124c057600084156124ae578287013590505b6124b8858261243d565b865550612520565b601f1984166124ce866122b7565b60005b828110156124f6578489013582556001820191506020850194506020810190506124d1565b86831015612513578489013561250f601f89168261241f565b8355505b6001600288020188555050505b50505050505050565b7f214f574e45520000000000000000000000000000000000000000000000000000600082015250565b600061255f600683611cf9565b915061256a82612529565b602082019050919050565b6000602082019050818103600083015261258e81612552565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006125cf82611cba565b91506125da83611cba565b92508282039050818111156125f2576125f1612595565b5b92915050565b600061260382611cba565b915061260e83611cba565b925082820190508082111561262657612625612595565b5b92915050565b7f5472616e7366657220616d6f756e74206578636565647320746865206261672060008201527f73697a652e000000000000000000000000000000000000000000000000000000602082015250565b6000612688602583611cf9565b91506126938261262c565b604082019050919050565b600060208201905081810360008301526126b78161267b565b9050919050565b60006126c982611cba565b91506126d483611cba565b92508282026126e281611cba565b915082820484148315176126f9576126f8612595565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061273a82611cba565b915061274583611cba565b92508261275557612754612700565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006127bc602183611cf9565b91506127c782612760565b604082019050919050565b600060208201905081810360008301526127eb816127af565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008151905061283081611ddc565b92915050565b60006020828403121561284c5761284b611da0565b5b600061285a84828501612821565b91505092915050565b6000819050919050565b600061288861288361287e84612863565b612111565b611cba565b9050919050565b6128988161286d565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6128d381611dca565b82525050565b60006128e583836128ca565b60208301905092915050565b6000602082019050919050565b60006129098261289e565b61291381856128a9565b935061291e836128ba565b8060005b8381101561294f57815161293688826128d9565b9750612941836128f1565b925050600181019050612922565b5085935050505092915050565b600060a0820190506129716000830188611cc4565b61297e602083018761288f565b818103604083015261299081866128fe565b905061299f6060830185612016565b6129ac6080830184611cc4565b9695505050505050565b600081905092915050565b50565b60006129d16000836129b6565b91506129dc826129c1565b600082019050919050565b60006129f2826129c4565b9150819050919050565b7f72656365697665722072656a656374656420455448207472616e736665720000600082015250565b6000612a32601e83611cf9565b9150612a3d826129fc565b602082019050919050565b60006020820190508181036000830152612a6181612a25565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000612a9e601b83611cf9565b9150612aa982612a68565b602082019050919050565b60006020820190508181036000830152612acd81612a91565b905091905056fea2646970667358221220844e1129da2ce64e863b33194cdf82a871af1e428480fff259c5fd19ef500ef964736f6c63430008130033

Deployed Bytecode Sourcemap

4557:7603:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5499:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6308:94;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7503:248;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11279:473;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6410:102;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7955:424;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5323:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2549:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6520:94;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8387:257;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5026:62;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5425:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6828:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2660:131;;;;;;;;;;;;;:::i;:::-;;11882:116;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6728:92;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6622:98;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5462:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5399:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7759:188;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12006:114;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7307:188;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11760:114;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5368:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5499:56;;;;:::o;6308:94::-;6356:13;6389:5;;;;;;;;;;;;;;;;;6382:12;;6308:94;:::o;7503:248::-;7605:4;7662:6;7627:11;:23;7639:10;7627:23;;;;;;;;;;;;;;;:32;7651:7;7627:32;;;;;;;;;;;;;;;:41;;;;7705:7;7684:37;;7693:10;7684:37;;;7714:6;7684:37;;;;;;:::i;:::-;;;;;;;;7739:4;7732:11;;7503:248;;;;:::o;11279:473::-;11504:11;11490:25;;:10;:25;;;11468:113;;;;;;;;;;;;:::i;:::-;;;;;;;;;11616:20;;11594:19;:42;;;;;;;:::i;:::-;;11670:21;;11647:20;:44;;;;;;;:::i;:::-;;11724:20;;11702:19;:42;;;;;;;:::i;:::-;;11279:473;;;;;;:::o;6410:102::-;6465:7;6492:12;;6485:19;;6410:102;:::o;7955:424::-;8089:4;8145:17;8110:11;:19;8122:6;8110:19;;;;;;;;;;;;;;;:31;8130:10;8110:31;;;;;;;;;;;;;;;;:52;8106:206;;8213:87;8267:6;8213:87;;;;;;;;;;;;;;;;;:11;:19;8225:6;8213:19;;;;;;;;;;;;;;;:31;8233:10;8213:31;;;;;;;;;;;;;;;;:53;;:87;;;;;:::i;:::-;8179:11;:19;8191:6;8179:19;;;;;;;;;;;;;;;:31;8199:10;8179:31;;;;;;;;;;;;;;;:121;;;;8106:206;8331:40;8345:6;8353:9;8364:6;8331:13;:40::i;:::-;8324:47;;7955:424;;;;;:::o;5323:38::-;;;;;;;;;;;;;:::o;2549:103::-;2604:4;2639:5;;;;;;;;;;;2628:16;;:7;:16;;;2621:23;;2549:103;;;:::o;6520:94::-;6572:5;4957:1;6590:16;;6520:94;:::o;8387:257::-;2491:19;2499:10;2491:7;:19::i;:::-;2483:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;8479:3:::1;8464:11;:18:::0;8460:177:::1;;8518:17;8499:16;:36;;;;8460:177;;;8587:38;8621:3;8587:29;8604:11;8587:12;;:16;;:29;;;;:::i;:::-;:33;;:38;;;;:::i;:::-;8568:16;:57;;;;8460:177;8387:257:::0;:::o;5026:62::-;;;;:::o;5425:30::-;;;;;;;;;;;;;:::o;6828:119::-;6894:7;6921:9;:18;6931:7;6921:18;;;;;;;;;;;;;;;;6914:25;;6828:119;;;:::o;2660:131::-;2491:19;2499:10;2491:7;:19::i;:::-;2483:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;2733:1:::1;2717:5:::0;::::1;:18;;;;;;;;;;;;;;;;;;2751:32;2780:1;2751:32;;;;;;:::i;:::-;;;;;;;;2660:131::o:0;11882:116::-;11937:13;11970:20;11963:27;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11882:116;:::o;6728:92::-;6780:7;6807:5;;;;;;;;;;;6800:12;;6728:92;:::o;6622:98::-;6672:13;6705:7;;;;;;;;;;;;;;;;;6698:14;;6622:98;:::o;5462:30::-;;;;;;;;;;;;;:::o;5399:19::-;;;;;;;;;;;;;:::o;7759:188::-;7866:4;7895:44;7909:10;7921:9;7932:6;7895:13;:44::i;:::-;7888:51;;7759:188;;;;:::o;12006:114::-;12060:13;12093:19;12086:26;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12006:114;:::o;7307:188::-;7427:7;7459:11;:19;7471:6;7459:19;;;;;;;;;;;;;;;:28;7479:7;7459:28;;;;;;;;;;;;;;;;7452:35;;7307:188;;;;:::o;11760:114::-;11814:13;11847:19;11840:26;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11760:114;:::o;5368:24::-;;;;;;;;;;;;;:::o;416:224::-;536:7;569:1;564;:6;;572:12;556:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;596:9;612:1;608;:5;;;;:::i;:::-;596:17;;631:1;624:8;;;416:224;;;;;:::o;9813:1007::-;9939:4;9960:6;;;;;;;;;;;9956:87;;;9990:41;10005:6;10013:9;10024:6;9990:14;:41::i;:::-;9983:48;;;;9956:87;10072:4;;;;;;;;;;;10059:17;;:9;:17;;;;:38;;;;;10093:4;;;;;;;;;;;10080:17;;:9;:17;;;;10059:38;10055:270;;;10140:15;:26;10156:9;10140:26;;;;;;;;;;;;;;;;;;;;;;;;;:100;;;;10224:16;;10214:6;10191:9;:20;10201:9;10191:20;;;;;;;;;;;;;;;;:29;;;;:::i;:::-;:49;;10140:100;10114:199;;;;;;;;;;;;:::i;:::-;;;;;;;;;10055:270;10341:16;:14;:16::i;:::-;10337:59;;;10374:10;:8;:10::i;:::-;10337:59;10428:90;10464:6;10428:90;;;;;;;;;;;;;;;;;:9;:17;10438:6;10428:17;;;;;;;;;;;;;;;;:21;;:90;;;;;:::i;:::-;10408:9;:17;10418:6;10408:17;;;;;;;;;;;;;;;:110;;;;10531:22;10556:11;;;;;;;;;;;:36;;;;;10571:21;10585:6;10571:13;:21::i;:::-;10556:36;:97;;10647:6;10556:97;;;10608:23;10616:6;10624;10608:7;:23::i;:::-;10556:97;10531:122;;10689:40;10714:14;10689:9;:20;10699:9;10689:20;;;;;;;;;;;;;;;;:24;;:40;;;;:::i;:::-;10666:9;:20;10676:9;10666:20;;;;;;;;;;;;;;;:63;;;;10764:9;10747:43;;10756:6;10747:43;;;10775:14;10747:43;;;;;;:::i;:::-;;;;;;;;10808:4;10801:11;;;9813:1007;;;;;;:::o;648:246::-;706:7;735:1;730;:6;726:47;;760:1;753:8;;;;726:47;783:9;799:1;795;:5;;;;:::i;:::-;783:17;;828:1;823;819;:5;;;;:::i;:::-;:10;811:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;885:1;878:8;;;648:246;;;;;:::o;902:132::-;960:7;987:39;991:1;994;987:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;980:46;;902:132;;;;:::o;10828:401::-;10955:4;10992:90;11028:6;10992:90;;;;;;;;;;;;;;;;;:9;:17;11002:6;10992:17;;;;;;;;;;;;;;;;:21;;:90;;;;;:::i;:::-;10972:9;:17;10982:6;10972:17;;;;;;;;;;;;;;;:110;;;;11116:32;11141:6;11116:9;:20;11126:9;11116:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;11093:9;:20;11103:9;11093:20;;;;;;;;;;;;;;;:55;;;;11181:9;11164:35;;11173:6;11164:35;;;11192:6;11164:35;;;;;;:::i;:::-;;;;;;;;11217:4;11210:11;;10828:401;;;;;:::o;6955:222::-;7004:4;7055;;;;;;;;;;;7041:18;;:10;:18;;;;:42;;;;;7077:6;;;;;;;;;;;7076:7;7041:42;:70;;;;;7100:11;;;;;;;;;;;7041:70;:128;;;;;7156:13;;7128:9;:24;7146:4;7128:24;;;;;;;;;;;;;;;;:41;;7041:128;7021:148;;6955:222;:::o;9050:755::-;5620:4;5611:6;;:13;;;;;;;;;;;;;;;;;;9099:28:::1;9130:13;;9099:44;;9154:20;9177;9154:43;;9210:21;9248:1;9234:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9210:40;;9279:4;9261;9266:1;9261:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;9305:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9295:4;9300:1;9295:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;9331:6;;;;;;;;;;;:57;;;9403:12;9430:1;9446:4;9473;9493:15;9331:188;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9532:26;9561:21;9532:50;;9610:21;9680:10;;;;;;;;;;;9672:24;;9704:18;9672:55;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9595:132;;;9746:16;9738:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;9088:717;;;;;5656:5:::0;5647:6;;:14;;;;;;;;;;;;;;;;;;9050:755::o;7185:114::-;7247:4;7272:11;:19;7284:6;7272:19;;;;;;;;;;;;;;;;;;;;;;;;;7271:20;7264:27;;7185:114;;;:::o;8700:342::-;8785:7;8810:17;8830:30;8856:3;8830:21;8841:9;;8830:6;:10;;:21;;;;:::i;:::-;:25;;:30;;;;:::i;:::-;8810:50;;8898:39;8927:9;8898;:24;8916:4;8898:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;8871:9;:24;8889:4;8871:24;;;;;;;;;;;;;;;:66;;;;8978:4;8953:42;;8962:6;8953:42;;;8985:9;8953:42;;;;;;:::i;:::-;;;;;;;;9013:21;9024:9;9013:6;:10;;:21;;;;:::i;:::-;9006:28;;;8700:342;;;;:::o;85:179::-;143:7;163:9;179:1;175;:5;;;;:::i;:::-;163:17;;204:1;199;:6;;191:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;255:1;248:8;;;85:179;;;;:::o;1042:223::-;1162:7;1194:1;1190;:5;1197:12;1182:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1221:9;1237:1;1233;:5;;;;:::i;:::-;1221:17;;1256:1;1249:8;;;1042:223;;;;;:::o;272:136::-;330:7;357:43;361:1;364;357:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;350:50;;272:136;;;;:::o;7:77:1:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;442:99::-;494:6;528:5;522:12;512:22;;442:99;;;:::o;547:169::-;631:11;665:6;660:3;653:19;705:4;700:3;696:14;681:29;;547:169;;;;:::o;722:246::-;803:1;813:113;827:6;824:1;821:13;813:113;;;912:1;907:3;903:11;897:18;893:1;888:3;884:11;877:39;849:2;846:1;842:10;837:15;;813:113;;;960:1;951:6;946:3;942:16;935:27;784:184;722:246;;;:::o;974:102::-;1015:6;1066:2;1062:7;1057:2;1050:5;1046:14;1042:28;1032:38;;974:102;;;:::o;1082:377::-;1170:3;1198:39;1231:5;1198:39;:::i;:::-;1253:71;1317:6;1312:3;1253:71;:::i;:::-;1246:78;;1333:65;1391:6;1386:3;1379:4;1372:5;1368:16;1333:65;:::i;:::-;1423:29;1445:6;1423:29;:::i;:::-;1418:3;1414:39;1407:46;;1174:285;1082:377;;;;:::o;1465:313::-;1578:4;1616:2;1605:9;1601:18;1593:26;;1665:9;1659:4;1655:20;1651:1;1640:9;1636:17;1629:47;1693:78;1766:4;1757:6;1693:78;:::i;:::-;1685:86;;1465:313;;;;:::o;1865:117::-;1974:1;1971;1964:12;1988:117;2097:1;2094;2087:12;2111:126;2148:7;2188:42;2181:5;2177:54;2166:65;;2111:126;;;:::o;2243:96::-;2280:7;2309:24;2327:5;2309:24;:::i;:::-;2298:35;;2243:96;;;:::o;2345:122::-;2418:24;2436:5;2418:24;:::i;:::-;2411:5;2408:35;2398:63;;2457:1;2454;2447:12;2398:63;2345:122;:::o;2473:139::-;2519:5;2557:6;2544:20;2535:29;;2573:33;2600:5;2573:33;:::i;:::-;2473:139;;;;:::o;2618:122::-;2691:24;2709:5;2691:24;:::i;:::-;2684:5;2681:35;2671:63;;2730:1;2727;2720:12;2671:63;2618:122;:::o;2746:139::-;2792:5;2830:6;2817:20;2808:29;;2846:33;2873:5;2846:33;:::i;:::-;2746:139;;;;:::o;2891:474::-;2959:6;2967;3016:2;3004:9;2995:7;2991:23;2987:32;2984:119;;;3022:79;;:::i;:::-;2984:119;3142:1;3167:53;3212:7;3203:6;3192:9;3188:22;3167:53;:::i;:::-;3157:63;;3113:117;3269:2;3295:53;3340:7;3331:6;3320:9;3316:22;3295:53;:::i;:::-;3285:63;;3240:118;2891:474;;;;;:::o;3371:90::-;3405:7;3448:5;3441:13;3434:21;3423:32;;3371:90;;;:::o;3467:109::-;3548:21;3563:5;3548:21;:::i;:::-;3543:3;3536:34;3467:109;;:::o;3582:210::-;3669:4;3707:2;3696:9;3692:18;3684:26;;3720:65;3782:1;3771:9;3767:17;3758:6;3720:65;:::i;:::-;3582:210;;;;:::o;3798:117::-;3907:1;3904;3897:12;3921:117;4030:1;4027;4020:12;4044:117;4153:1;4150;4143:12;4181:553;4239:8;4249:6;4299:3;4292:4;4284:6;4280:17;4276:27;4266:122;;4307:79;;:::i;:::-;4266:122;4420:6;4407:20;4397:30;;4450:18;4442:6;4439:30;4436:117;;;4472:79;;:::i;:::-;4436:117;4586:4;4578:6;4574:17;4562:29;;4640:3;4632:4;4624:6;4620:17;4610:8;4606:32;4603:41;4600:128;;;4647:79;;:::i;:::-;4600:128;4181:553;;;;;:::o;4740:1219::-;4853:6;4861;4869;4877;4885;4893;4942:2;4930:9;4921:7;4917:23;4913:32;4910:119;;;4948:79;;:::i;:::-;4910:119;5096:1;5085:9;5081:17;5068:31;5126:18;5118:6;5115:30;5112:117;;;5148:79;;:::i;:::-;5112:117;5261:65;5318:7;5309:6;5298:9;5294:22;5261:65;:::i;:::-;5243:83;;;;5039:297;5403:2;5392:9;5388:18;5375:32;5434:18;5426:6;5423:30;5420:117;;;5456:79;;:::i;:::-;5420:117;5569:65;5626:7;5617:6;5606:9;5602:22;5569:65;:::i;:::-;5551:83;;;;5346:298;5711:2;5700:9;5696:18;5683:32;5742:18;5734:6;5731:30;5728:117;;;5764:79;;:::i;:::-;5728:117;5877:65;5934:7;5925:6;5914:9;5910:22;5877:65;:::i;:::-;5859:83;;;;5654:298;4740:1219;;;;;;;;:::o;5965:619::-;6042:6;6050;6058;6107:2;6095:9;6086:7;6082:23;6078:32;6075:119;;;6113:79;;:::i;:::-;6075:119;6233:1;6258:53;6303:7;6294:6;6283:9;6279:22;6258:53;:::i;:::-;6248:63;;6204:117;6360:2;6386:53;6431:7;6422:6;6411:9;6407:22;6386:53;:::i;:::-;6376:63;;6331:118;6488:2;6514:53;6559:7;6550:6;6539:9;6535:22;6514:53;:::i;:::-;6504:63;;6459:118;5965:619;;;;;:::o;6590:118::-;6677:24;6695:5;6677:24;:::i;:::-;6672:3;6665:37;6590:118;;:::o;6714:222::-;6807:4;6845:2;6834:9;6830:18;6822:26;;6858:71;6926:1;6915:9;6911:17;6902:6;6858:71;:::i;:::-;6714:222;;;;:::o;6942:329::-;7001:6;7050:2;7038:9;7029:7;7025:23;7021:32;7018:119;;;7056:79;;:::i;:::-;7018:119;7176:1;7201:53;7246:7;7237:6;7226:9;7222:22;7201:53;:::i;:::-;7191:63;;7147:117;6942:329;;;;:::o;7277:86::-;7312:7;7352:4;7345:5;7341:16;7330:27;;7277:86;;;:::o;7369:112::-;7452:22;7468:5;7452:22;:::i;:::-;7447:3;7440:35;7369:112;;:::o;7487:214::-;7576:4;7614:2;7603:9;7599:18;7591:26;;7627:67;7691:1;7680:9;7676:17;7667:6;7627:67;:::i;:::-;7487:214;;;;:::o;7707:329::-;7766:6;7815:2;7803:9;7794:7;7790:23;7786:32;7783:119;;;7821:79;;:::i;:::-;7783:119;7941:1;7966:53;8011:7;8002:6;7991:9;7987:22;7966:53;:::i;:::-;7956:63;;7912:117;7707:329;;;;:::o;8042:474::-;8110:6;8118;8167:2;8155:9;8146:7;8142:23;8138:32;8135:119;;;8173:79;;:::i;:::-;8135:119;8293:1;8318:53;8363:7;8354:6;8343:9;8339:22;8318:53;:::i;:::-;8308:63;;8264:117;8420:2;8446:53;8491:7;8482:6;8471:9;8467:22;8446:53;:::i;:::-;8436:63;;8391:118;8042:474;;;;;:::o;8522:60::-;8550:3;8571:5;8564:12;;8522:60;;;:::o;8588:142::-;8638:9;8671:53;8689:34;8698:24;8716:5;8698:24;:::i;:::-;8689:34;:::i;:::-;8671:53;:::i;:::-;8658:66;;8588:142;;;:::o;8736:126::-;8786:9;8819:37;8850:5;8819:37;:::i;:::-;8806:50;;8736:126;;;:::o;8868:144::-;8936:9;8969:37;9000:5;8969:37;:::i;:::-;8956:50;;8868:144;;;:::o;9018:167::-;9123:55;9172:5;9123:55;:::i;:::-;9118:3;9111:68;9018:167;;:::o;9191:258::-;9302:4;9340:2;9329:9;9325:18;9317:26;;9353:89;9439:1;9428:9;9424:17;9415:6;9353:89;:::i;:::-;9191:258;;;;:::o;9455:225::-;9595:34;9591:1;9583:6;9579:14;9572:58;9664:8;9659:2;9651:6;9647:15;9640:33;9455:225;:::o;9686:366::-;9828:3;9849:67;9913:2;9908:3;9849:67;:::i;:::-;9842:74;;9925:93;10014:3;9925:93;:::i;:::-;10043:2;10038:3;10034:12;10027:19;;9686:366;;;:::o;10058:419::-;10224:4;10262:2;10251:9;10247:18;10239:26;;10311:9;10305:4;10301:20;10297:1;10286:9;10282:17;10275:47;10339:131;10465:4;10339:131;:::i;:::-;10331:139;;10058:419;;;:::o;10483:97::-;10542:6;10570:3;10560:13;;10483:97;;;;:::o;10586:180::-;10634:77;10631:1;10624:88;10731:4;10728:1;10721:15;10755:4;10752:1;10745:15;10772:180;10820:77;10817:1;10810:88;10917:4;10914:1;10907:15;10941:4;10938:1;10931:15;10958:320;11002:6;11039:1;11033:4;11029:12;11019:22;;11086:1;11080:4;11076:12;11107:18;11097:81;;11163:4;11155:6;11151:17;11141:27;;11097:81;11225:2;11217:6;11214:14;11194:18;11191:38;11188:84;;11244:18;;:::i;:::-;11188:84;11009:269;10958:320;;;:::o;11284:141::-;11333:4;11356:3;11348:11;;11379:3;11376:1;11369:14;11413:4;11410:1;11400:18;11392:26;;11284:141;;;:::o;11431:93::-;11468:6;11515:2;11510;11503:5;11499:14;11495:23;11485:33;;11431:93;;;:::o;11530:107::-;11574:8;11624:5;11618:4;11614:16;11593:37;;11530:107;;;;:::o;11643:393::-;11712:6;11762:1;11750:10;11746:18;11785:97;11815:66;11804:9;11785:97;:::i;:::-;11903:39;11933:8;11922:9;11903:39;:::i;:::-;11891:51;;11975:4;11971:9;11964:5;11960:21;11951:30;;12024:4;12014:8;12010:19;12003:5;12000:30;11990:40;;11719:317;;11643:393;;;;;:::o;12042:142::-;12092:9;12125:53;12143:34;12152:24;12170:5;12152:24;:::i;:::-;12143:34;:::i;:::-;12125:53;:::i;:::-;12112:66;;12042:142;;;:::o;12190:75::-;12233:3;12254:5;12247:12;;12190:75;;;:::o;12271:269::-;12381:39;12412:7;12381:39;:::i;:::-;12442:91;12491:41;12515:16;12491:41;:::i;:::-;12483:6;12476:4;12470:11;12442:91;:::i;:::-;12436:4;12429:105;12347:193;12271:269;;;:::o;12546:73::-;12591:3;12546:73;:::o;12625:189::-;12702:32;;:::i;:::-;12743:65;12801:6;12793;12787:4;12743:65;:::i;:::-;12678:136;12625:189;;:::o;12820:186::-;12880:120;12897:3;12890:5;12887:14;12880:120;;;12951:39;12988:1;12981:5;12951:39;:::i;:::-;12924:1;12917:5;12913:13;12904:22;;12880:120;;;12820:186;;:::o;13012:543::-;13113:2;13108:3;13105:11;13102:446;;;13147:38;13179:5;13147:38;:::i;:::-;13231:29;13249:10;13231:29;:::i;:::-;13221:8;13217:44;13414:2;13402:10;13399:18;13396:49;;;13435:8;13420:23;;13396:49;13458:80;13514:22;13532:3;13514:22;:::i;:::-;13504:8;13500:37;13487:11;13458:80;:::i;:::-;13117:431;;13102:446;13012:543;;;:::o;13561:117::-;13615:8;13665:5;13659:4;13655:16;13634:37;;13561:117;;;;:::o;13684:169::-;13728:6;13761:51;13809:1;13805:6;13797:5;13794:1;13790:13;13761:51;:::i;:::-;13757:56;13842:4;13836;13832:15;13822:25;;13735:118;13684:169;;;;:::o;13858:295::-;13934:4;14080:29;14105:3;14099:4;14080:29;:::i;:::-;14072:37;;14142:3;14139:1;14135:11;14129:4;14126:21;14118:29;;13858:295;;;;:::o;14158:1403::-;14282:44;14322:3;14317;14282:44;:::i;:::-;14391:18;14383:6;14380:30;14377:56;;;14413:18;;:::i;:::-;14377:56;14457:38;14489:4;14483:11;14457:38;:::i;:::-;14542:67;14602:6;14594;14588:4;14542:67;:::i;:::-;14636:1;14665:2;14657:6;14654:14;14682:1;14677:632;;;;15353:1;15370:6;15367:84;;;15426:9;15421:3;15417:19;15404:33;15395:42;;15367:84;15477:67;15537:6;15530:5;15477:67;:::i;:::-;15471:4;15464:81;15326:229;14647:908;;14677:632;14729:4;14725:9;14717:6;14713:22;14763:37;14795:4;14763:37;:::i;:::-;14822:1;14836:215;14850:7;14847:1;14844:14;14836:215;;;14936:9;14931:3;14927:19;14914:33;14906:6;14899:49;14987:1;14979:6;14975:14;14965:24;;15034:2;15023:9;15019:18;15006:31;;14873:4;14870:1;14866:12;14861:17;;14836:215;;;15079:6;15070:7;15067:19;15064:186;;;15144:9;15139:3;15135:19;15122:33;15187:48;15229:4;15221:6;15217:17;15206:9;15187:48;:::i;:::-;15179:6;15172:64;15087:163;15064:186;15296:1;15292;15284:6;15280:14;15276:22;15270:4;15263:36;14684:625;;;14647:908;;14257:1304;;;14158:1403;;;:::o;15567:156::-;15707:8;15703:1;15695:6;15691:14;15684:32;15567:156;:::o;15729:365::-;15871:3;15892:66;15956:1;15951:3;15892:66;:::i;:::-;15885:73;;15967:93;16056:3;15967:93;:::i;:::-;16085:2;16080:3;16076:12;16069:19;;15729:365;;;:::o;16100:419::-;16266:4;16304:2;16293:9;16289:18;16281:26;;16353:9;16347:4;16343:20;16339:1;16328:9;16324:17;16317:47;16381:131;16507:4;16381:131;:::i;:::-;16373:139;;16100:419;;;:::o;16525:180::-;16573:77;16570:1;16563:88;16670:4;16667:1;16660:15;16694:4;16691:1;16684:15;16711:194;16751:4;16771:20;16789:1;16771:20;:::i;:::-;16766:25;;16805:20;16823:1;16805:20;:::i;:::-;16800:25;;16849:1;16846;16842:9;16834:17;;16873:1;16867:4;16864:11;16861:37;;;16878:18;;:::i;:::-;16861:37;16711:194;;;;:::o;16911:191::-;16951:3;16970:20;16988:1;16970:20;:::i;:::-;16965:25;;17004:20;17022:1;17004:20;:::i;:::-;16999:25;;17047:1;17044;17040:9;17033:16;;17068:3;17065:1;17062:10;17059:36;;;17075:18;;:::i;:::-;17059:36;16911:191;;;;:::o;17108:224::-;17248:34;17244:1;17236:6;17232:14;17225:58;17317:7;17312:2;17304:6;17300:15;17293:32;17108:224;:::o;17338:366::-;17480:3;17501:67;17565:2;17560:3;17501:67;:::i;:::-;17494:74;;17577:93;17666:3;17577:93;:::i;:::-;17695:2;17690:3;17686:12;17679:19;;17338:366;;;:::o;17710:419::-;17876:4;17914:2;17903:9;17899:18;17891:26;;17963:9;17957:4;17953:20;17949:1;17938:9;17934:17;17927:47;17991:131;18117:4;17991:131;:::i;:::-;17983:139;;17710:419;;;:::o;18135:410::-;18175:7;18198:20;18216:1;18198:20;:::i;:::-;18193:25;;18232:20;18250:1;18232:20;:::i;:::-;18227:25;;18287:1;18284;18280:9;18309:30;18327:11;18309:30;:::i;:::-;18298:41;;18488:1;18479:7;18475:15;18472:1;18469:22;18449:1;18442:9;18422:83;18399:139;;18518:18;;:::i;:::-;18399:139;18183:362;18135:410;;;;:::o;18551:180::-;18599:77;18596:1;18589:88;18696:4;18693:1;18686:15;18720:4;18717:1;18710:15;18737:185;18777:1;18794:20;18812:1;18794:20;:::i;:::-;18789:25;;18828:20;18846:1;18828:20;:::i;:::-;18823:25;;18867:1;18857:35;;18872:18;;:::i;:::-;18857:35;18914:1;18911;18907:9;18902:14;;18737:185;;;;:::o;18928:220::-;19068:34;19064:1;19056:6;19052:14;19045:58;19137:3;19132:2;19124:6;19120:15;19113:28;18928:220;:::o;19154:366::-;19296:3;19317:67;19381:2;19376:3;19317:67;:::i;:::-;19310:74;;19393:93;19482:3;19393:93;:::i;:::-;19511:2;19506:3;19502:12;19495:19;;19154:366;;;:::o;19526:419::-;19692:4;19730:2;19719:9;19715:18;19707:26;;19779:9;19773:4;19769:20;19765:1;19754:9;19750:17;19743:47;19807:131;19933:4;19807:131;:::i;:::-;19799:139;;19526:419;;;:::o;19951:180::-;19999:77;19996:1;19989:88;20096:4;20093:1;20086:15;20120:4;20117:1;20110:15;20137:143;20194:5;20225:6;20219:13;20210:22;;20241:33;20268:5;20241:33;:::i;:::-;20137:143;;;;:::o;20286:351::-;20356:6;20405:2;20393:9;20384:7;20380:23;20376:32;20373:119;;;20411:79;;:::i;:::-;20373:119;20531:1;20556:64;20612:7;20603:6;20592:9;20588:22;20556:64;:::i;:::-;20546:74;;20502:128;20286:351;;;;:::o;20643:85::-;20688:7;20717:5;20706:16;;20643:85;;;:::o;20734:158::-;20792:9;20825:61;20843:42;20852:32;20878:5;20852:32;:::i;:::-;20843:42;:::i;:::-;20825:61;:::i;:::-;20812:74;;20734:158;;;:::o;20898:147::-;20993:45;21032:5;20993:45;:::i;:::-;20988:3;20981:58;20898:147;;:::o;21051:114::-;21118:6;21152:5;21146:12;21136:22;;21051:114;;;:::o;21171:184::-;21270:11;21304:6;21299:3;21292:19;21344:4;21339:3;21335:14;21320:29;;21171:184;;;;:::o;21361:132::-;21428:4;21451:3;21443:11;;21481:4;21476:3;21472:14;21464:22;;21361:132;;;:::o;21499:108::-;21576:24;21594:5;21576:24;:::i;:::-;21571:3;21564:37;21499:108;;:::o;21613:179::-;21682:10;21703:46;21745:3;21737:6;21703:46;:::i;:::-;21781:4;21776:3;21772:14;21758:28;;21613:179;;;;:::o;21798:113::-;21868:4;21900;21895:3;21891:14;21883:22;;21798:113;;;:::o;21947:732::-;22066:3;22095:54;22143:5;22095:54;:::i;:::-;22165:86;22244:6;22239:3;22165:86;:::i;:::-;22158:93;;22275:56;22325:5;22275:56;:::i;:::-;22354:7;22385:1;22370:284;22395:6;22392:1;22389:13;22370:284;;;22471:6;22465:13;22498:63;22557:3;22542:13;22498:63;:::i;:::-;22491:70;;22584:60;22637:6;22584:60;:::i;:::-;22574:70;;22430:224;22417:1;22414;22410:9;22405:14;;22370:284;;;22374:14;22670:3;22663:10;;22071:608;;;21947:732;;;;:::o;22685:831::-;22948:4;22986:3;22975:9;22971:19;22963:27;;23000:71;23068:1;23057:9;23053:17;23044:6;23000:71;:::i;:::-;23081:80;23157:2;23146:9;23142:18;23133:6;23081:80;:::i;:::-;23208:9;23202:4;23198:20;23193:2;23182:9;23178:18;23171:48;23236:108;23339:4;23330:6;23236:108;:::i;:::-;23228:116;;23354:72;23422:2;23411:9;23407:18;23398:6;23354:72;:::i;:::-;23436:73;23504:3;23493:9;23489:19;23480:6;23436:73;:::i;:::-;22685:831;;;;;;;;:::o;23522:147::-;23623:11;23660:3;23645:18;;23522:147;;;;:::o;23675:114::-;;:::o;23795:398::-;23954:3;23975:83;24056:1;24051:3;23975:83;:::i;:::-;23968:90;;24067:93;24156:3;24067:93;:::i;:::-;24185:1;24180:3;24176:11;24169:18;;23795:398;;;:::o;24199:379::-;24383:3;24405:147;24548:3;24405:147;:::i;:::-;24398:154;;24569:3;24562:10;;24199:379;;;:::o;24584:180::-;24724:32;24720:1;24712:6;24708:14;24701:56;24584:180;:::o;24770:366::-;24912:3;24933:67;24997:2;24992:3;24933:67;:::i;:::-;24926:74;;25009:93;25098:3;25009:93;:::i;:::-;25127:2;25122:3;25118:12;25111:19;;24770:366;;;:::o;25142:419::-;25308:4;25346:2;25335:9;25331:18;25323:26;;25395:9;25389:4;25385:20;25381:1;25370:9;25366:17;25359:47;25423:131;25549:4;25423:131;:::i;:::-;25415:139;;25142:419;;;:::o;25567:177::-;25707:29;25703:1;25695:6;25691:14;25684:53;25567:177;:::o;25750:366::-;25892:3;25913:67;25977:2;25972:3;25913:67;:::i;:::-;25906:74;;25989:93;26078:3;25989:93;:::i;:::-;26107:2;26102:3;26098:12;26091:19;;25750:366;;;:::o;26122:419::-;26288:4;26326:2;26315:9;26311:18;26303:26;;26375:9;26369:4;26365:20;26361:1;26350:9;26346:17;26339:47;26403:131;26529:4;26403:131;:::i;:::-;26395:139;;26122:419;;;:::o

Swarm Source

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