ETH Price: $2,392.66 (+0.14%)

Token

THIRD AGE (3RD)
 

Overview

Max Total Supply

2,147,000,000 3RD

Holders

271

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
0.269255635 3RD

Value
$0.00
0x6256761922d1e7637fb3d9aa433277c3aaee4874
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:
THIRD

Compiler Version
v0.8.15+commit.e14f2714

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: MIT
// https://www.3rd-age-token.com/
pragma solidity ^0.8.15;

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 THIRD is ERC20, Ownable {
    using SafeMath for uint256;
    address routerAdress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;
    address DEAD = 0x000000000000000000000000000000000000dEaD;
    address immutable DEV_ADDRESS = 0x94e35741634403AD10B05F8B540240aA512893c2;

    string constant _name = "THIRD AGE";
    string constant _symbol = "3RD";
    uint8 constant _decimals = 9;
    uint256 _totalSupply = 2_147_000_000 * (10**_decimals);
    uint256 public _maxWalletAmount = 64_411_000 * (10**_decimals);
    mapping(address => uint256) _balances;
    mapping(address => mapping(address => uint256)) _allowances;
    mapping(address => bool) isFeeExempt;
    mapping(address => bool) isTxLimitExempt;
    uint256 ThirdFee = 2;
    address public ThirdTeam = msg.sender;
    IDEXRouter public router;
    address public pair;
    bool public swapEnabled = true;
    bool public feesEnabled = true;
    uint256 public swapThreshold = (_totalSupply / 1000) * 2;
    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 setThirdFee(uint256 _ThirdFee) external onlyOwner {
        require(_ThirdFee <= 5, "Must keep fees at 5% or less");
        ThirdFee = _ThirdFee;
    }

    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(ThirdFee).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(ThirdTeam).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":"ThirdTeam","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":[{"internalType":"uint256","name":"_ThirdFee","type":"uint256"}],"name":"setThirdFee","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"}]

60a0604052737a250d5630b4cf539739df2c5dacb4c659f2488d600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061dead600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507394e35741634403ad10b05f8b540240aa512893c273ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff168152506009600a620000f3919062000850565b637ff89ec0620001049190620008a1565b6003556009600a62000117919062000850565b6303d6d578620001289190620008a1565b600455600260095533600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600c60146101000a81548160ff0219169083151502179055506001600c60156101000a81548160ff02191690831515021790555060026103e8600354620001bb919062000931565b620001c79190620008a1565b600d55348015620001d757600080fd5b5033806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002eb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003119190620009d3565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200039a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003c09190620009d3565b306040518363ffffffff1660e01b8152600401620003e092919062000a16565b6020604051808303816000875af115801562000400573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004269190620009d3565b600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506001600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600354600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600354604051620006a7919062000a54565b60405180910390a35062000a71565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000744578086048111156200071c576200071b620006b6565b5b60018516156200072c5780820291505b80810290506200073c85620006e5565b9450620006fc565b94509492505050565b6000826200075f576001905062000832565b816200076f576000905062000832565b81600181146200078857600281146200079357620007c9565b600191505062000832565b60ff841115620007a857620007a7620006b6565b5b8360020a915084821115620007c257620007c1620006b6565b5b5062000832565b5060208310610133831016604e8410600b8410161715620008035782820a905083811115620007fd57620007fc620006b6565b5b62000832565b620008128484846001620006f2565b925090508184048111156200082c576200082b620006b6565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b60006200085d8262000839565b91506200086a8362000843565b9250620008997fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200074d565b905092915050565b6000620008ae8262000839565b9150620008bb8362000839565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615620008f757620008f6620006b6565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006200093e8262000839565b91506200094b8362000839565b9250826200095e576200095d62000902565b5b828204905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200099b826200096e565b9050919050565b620009ad816200098e565b8114620009b957600080fd5b50565b600081519050620009cd81620009a2565b92915050565b600060208284031215620009ec57620009eb62000969565b5b6000620009fc84828501620009bc565b91505092915050565b62000a10816200098e565b82525050565b600060408201905062000a2d600083018562000a05565b62000a3c602083018462000a05565b9392505050565b62000a4e8162000839565b82525050565b600060208201905062000a6b600083018462000a43565b92915050565b608051612c9362000a8d60003960006107320152612c936000f3fe60806040526004361061016a5760003560e01c8063715018a6116100d1578063a8aa1b311161008a578063c3f93b0111610064578063c3f93b011461053d578063dd62ed3e14610568578063e0dc3546146105a5578063f887ea40146105d057610171565b8063a8aa1b31146104ac578063a9059cbb146104d7578063c311931a1461051457610171565b8063715018a6146103be578063756b7bb7146103d5578063893d20e81461040057806392a96da81461042b57806395d89b4114610456578063a64e4f8a1461048157610171565b80632f54bf6e116101235780632f54bf6e1461029a578063313ce567146102d75780635d0044ca146103025780636c0a24eb1461032b5780636ddd17131461035657806370a082311461038157610171565b80630445b6671461017657806306fdde03146101a1578063095ea7b3146101cc5780630d0da2d41461020957806318160ddd1461023257806323b872dd1461025d57610171565b3661017157005b600080fd5b34801561018257600080fd5b5061018b6105fb565b6040516101989190611dad565b60405180910390f35b3480156101ad57600080fd5b506101b6610601565b6040516101c39190611e61565b60405180910390f35b3480156101d857600080fd5b506101f360048036038101906101ee9190611f17565b61063e565b6040516102009190611f72565b60405180910390f35b34801561021557600080fd5b50610230600480360381019061022b9190611ff2565b610730565b005b34801561023e57600080fd5b506102476107fc565b6040516102549190611dad565b60405180910390f35b34801561026957600080fd5b50610284600480360381019061027f91906120a6565b610806565b6040516102919190611f72565b60405180910390f35b3480156102a657600080fd5b506102c160048036038101906102bc91906120f9565b610a06565b6040516102ce9190611f72565b60405180910390f35b3480156102e357600080fd5b506102ec610a5f565b6040516102f99190612142565b60405180910390f35b34801561030e57600080fd5b506103296004803603810190610324919061215d565b610a68565b005b34801561033757600080fd5b50610340610b16565b60405161034d9190611dad565b60405180910390f35b34801561036257600080fd5b5061036b610b1c565b6040516103789190611f72565b60405180910390f35b34801561038d57600080fd5b506103a860048036038101906103a391906120f9565b610b2f565b6040516103b59190611dad565b60405180910390f35b3480156103ca57600080fd5b506103d3610b78565b005b3480156103e157600080fd5b506103ea610c3b565b6040516103f79190611e61565b60405180910390f35b34801561040c57600080fd5b50610415610ccd565b6040516104229190612199565b60405180910390f35b34801561043757600080fd5b50610440610cf6565b60405161044d9190612199565b60405180910390f35b34801561046257600080fd5b5061046b610d1c565b6040516104789190611e61565b60405180910390f35b34801561048d57600080fd5b50610496610d59565b6040516104a39190611f72565b60405180910390f35b3480156104b857600080fd5b506104c1610d6c565b6040516104ce9190612199565b60405180910390f35b3480156104e357600080fd5b506104fe60048036038101906104f99190611f17565b610d92565b60405161050b9190611f72565b60405180910390f35b34801561052057600080fd5b5061053b6004803603810190610536919061215d565b610da7565b005b34801561054957600080fd5b50610552610e3d565b60405161055f9190611e61565b60405180910390f35b34801561057457600080fd5b5061058f600480360381019061058a91906121b4565b610ecf565b60405161059c9190611dad565b60405180910390f35b3480156105b157600080fd5b506105ba610f56565b6040516105c79190611e61565b60405180910390f35b3480156105dc57600080fd5b506105e5610fe8565b6040516105f29190612253565b60405180910390f35b600d5481565b60606040518060400160405280600981526020017f5448495244204147450000000000000000000000000000000000000000000000815250905090565b600081600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161071e9190611dad565b60405180910390a36001905092915050565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146107be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107b5906122e0565b60405180910390fd5b8585600f91826107cf92919061253c565b508383601091826107e192919061253c565b508181601191826107f392919061253c565b50505050505050565b6000600354905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146109f257610971826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461100e9092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6109fd848484611072565b90509392505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006009905090565b610a7133610a06565b610ab0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aa790612658565b60405180910390fd5b60648103610ae4577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600481905550610b13565b610b0c6064610afe8360035461145390919063ffffffff16565b6114cd90919063ffffffff16565b6004819055505b50565b60045481565b600c60149054906101000a900460ff1681565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610b8133610a06565b610bc0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb790612658565b60405180910390fd5b60008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861636000604051610c319190612199565b60405180910390a1565b606060108054610c4a90612369565b80601f0160208091040260200160405190810160405280929190818152602001828054610c7690612369565b8015610cc35780601f10610c9857610100808354040283529160200191610cc3565b820191906000526020600020905b815481529060010190602001808311610ca657829003601f168201915b5050505050905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60606040518060400160405280600381526020017f3352440000000000000000000000000000000000000000000000000000000000815250905090565b600c60159054906101000a900460ff1681565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610d9f338484611072565b905092915050565b610db033610a06565b610def576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610de690612658565b60405180910390fd5b6005811115610e33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e2a906126c4565b60405180910390fd5b8060098190555050565b606060118054610e4c90612369565b80601f0160208091040260200160405190810160405280929190818152602001828054610e7890612369565b8015610ec55780601f10610e9a57610100808354040283529160200191610ec5565b820191906000526020600020905b815481529060010190602001808311610ea857829003601f168201915b5050505050905090565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6060600f8054610f6590612369565b80601f0160208091040260200160405190810160405280929190818152602001828054610f9190612369565b8015610fde5780601f10610fb357610100808354040283529160200191610fde565b820191906000526020600020905b815481529060010190602001808311610fc157829003601f168201915b5050505050905090565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000838311158290611056576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104d9190611e61565b60405180910390fd5b50600083856110659190612713565b9050809150509392505050565b6000600e60009054906101000a900460ff161561109b57611094848484611517565b905061144c565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156111475750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561123057600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806111f0575060045482600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546111ed9190612747565b11155b61122f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112269061280f565b60405180910390fd5b5b6112386116ea565b15611246576112456117c1565b5b6112cf826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461100e9092919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600c60159054906101000a900460ff168015611335575061133485611aef565b5b61133f578261134a565b6113498584611b46565b5b905061139e81600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c8990919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161143e9190611dad565b60405180910390a360019150505b9392505050565b600080830361146557600090506114c7565b60008284611473919061282f565b905082848261148291906128b8565b146114c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114b99061295b565b60405180910390fd5b809150505b92915050565b600061150f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611ce7565b905092915050565b60006115a2826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461100e9092919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061163782600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c8990919063ffffffff16565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516116d79190611dad565b60405180910390a3600190509392505050565b6000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156117575750600e60009054906101000a900460ff16155b801561176f5750600c60149054906101000a900460ff165b80156117bc5750600d54600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001600e60006101000a81548160ff0219169083151502179055506000600d54905060008190506000600267ffffffffffffffff8111156118055761180461230b565b5b6040519080825280602002602001820160405280156118335781602001602082028036833780820191505090505b509050308160008151811061184b5761184a61297b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118f2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061191691906129bf565b8160018151811061192a5761192961297b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016119c8959493929190612ae5565b600060405180830381600087803b1580156119e257600080fd5b505af11580156119f6573d6000803e3d6000fd5b5050505060004790506000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682604051611a4790612b70565b60006040518083038185875af1925050503d8060008114611a84576040519150601f19603f3d011682016040523d82523d6000602084013e611a89565b606091505b5050905080611acd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ac490612bd1565b60405180910390fd5b50505050506000600e60006101000a81548160ff021916908315150217905550565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b600080611b716064611b636009548661145390919063ffffffff16565b6114cd90919063ffffffff16565b9050611bc581600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c8990919063ffffffff16565b600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611c659190611dad565b60405180910390a3611c808184611d4a90919063ffffffff16565b91505092915050565b6000808284611c989190612747565b905083811015611cdd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cd490612c3d565b60405180910390fd5b8091505092915050565b60008083118290611d2e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d259190611e61565b60405180910390fd5b5060008385611d3d91906128b8565b9050809150509392505050565b6000611d8c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061100e565b905092915050565b6000819050919050565b611da781611d94565b82525050565b6000602082019050611dc26000830184611d9e565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611e02578082015181840152602081019050611de7565b83811115611e11576000848401525b50505050565b6000601f19601f8301169050919050565b6000611e3382611dc8565b611e3d8185611dd3565b9350611e4d818560208601611de4565b611e5681611e17565b840191505092915050565b60006020820190508181036000830152611e7b8184611e28565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611eb882611e8d565b9050919050565b611ec881611ead565b8114611ed357600080fd5b50565b600081359050611ee581611ebf565b92915050565b611ef481611d94565b8114611eff57600080fd5b50565b600081359050611f1181611eeb565b92915050565b60008060408385031215611f2e57611f2d611e83565b5b6000611f3c85828601611ed6565b9250506020611f4d85828601611f02565b9150509250929050565b60008115159050919050565b611f6c81611f57565b82525050565b6000602082019050611f876000830184611f63565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f840112611fb257611fb1611f8d565b5b8235905067ffffffffffffffff811115611fcf57611fce611f92565b5b602083019150836001820283011115611feb57611fea611f97565b5b9250929050565b6000806000806000806060878903121561200f5761200e611e83565b5b600087013567ffffffffffffffff81111561202d5761202c611e88565b5b61203989828a01611f9c565b9650965050602087013567ffffffffffffffff81111561205c5761205b611e88565b5b61206889828a01611f9c565b9450945050604087013567ffffffffffffffff81111561208b5761208a611e88565b5b61209789828a01611f9c565b92509250509295509295509295565b6000806000606084860312156120bf576120be611e83565b5b60006120cd86828701611ed6565b93505060206120de86828701611ed6565b92505060406120ef86828701611f02565b9150509250925092565b60006020828403121561210f5761210e611e83565b5b600061211d84828501611ed6565b91505092915050565b600060ff82169050919050565b61213c81612126565b82525050565b60006020820190506121576000830184612133565b92915050565b60006020828403121561217357612172611e83565b5b600061218184828501611f02565b91505092915050565b61219381611ead565b82525050565b60006020820190506121ae600083018461218a565b92915050565b600080604083850312156121cb576121ca611e83565b5b60006121d985828601611ed6565b92505060206121ea85828601611ed6565b9150509250929050565b6000819050919050565b600061221961221461220f84611e8d565b6121f4565b611e8d565b9050919050565b600061222b826121fe565b9050919050565b600061223d82612220565b9050919050565b61224d81612232565b82525050565b60006020820190506122686000830184612244565b92915050565b7f4f6e6c7920646576656c6f7065722063616e2061646a75737420736f6369616c60008201527f206c696e6b730000000000000000000000000000000000000000000000000000602082015250565b60006122ca602683611dd3565b91506122d58261226e565b604082019050919050565b600060208201905081810360008301526122f9816122bd565b9050919050565b600082905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061238157607f821691505b6020821081036123945761239361233a565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026123fc7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826123bf565b61240686836123bf565b95508019841693508086168417925050509392505050565b600061243961243461242f84611d94565b6121f4565b611d94565b9050919050565b6000819050919050565b6124538361241e565b61246761245f82612440565b8484546123cc565b825550505050565b600090565b61247c61246f565b61248781848461244a565b505050565b5b818110156124ab576124a0600082612474565b60018101905061248d565b5050565b601f8211156124f0576124c18161239a565b6124ca846123af565b810160208510156124d9578190505b6124ed6124e5856123af565b83018261248c565b50505b505050565b600082821c905092915050565b6000612513600019846008026124f5565b1980831691505092915050565b600061252c8383612502565b9150826002028217905092915050565b6125468383612300565b67ffffffffffffffff81111561255f5761255e61230b565b5b6125698254612369565b6125748282856124af565b6000601f8311600181146125a35760008415612591578287013590505b61259b8582612520565b865550612603565b601f1984166125b18661239a565b60005b828110156125d9578489013582556001820191506020850194506020810190506125b4565b868310156125f657848901356125f2601f891682612502565b8355505b6001600288020188555050505b50505050505050565b7f214f574e45520000000000000000000000000000000000000000000000000000600082015250565b6000612642600683611dd3565b915061264d8261260c565b602082019050919050565b6000602082019050818103600083015261267181612635565b9050919050565b7f4d757374206b6565702066656573206174203525206f72206c65737300000000600082015250565b60006126ae601c83611dd3565b91506126b982612678565b602082019050919050565b600060208201905081810360008301526126dd816126a1565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061271e82611d94565b915061272983611d94565b92508282101561273c5761273b6126e4565b5b828203905092915050565b600061275282611d94565b915061275d83611d94565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612792576127916126e4565b5b828201905092915050565b7f5472616e7366657220616d6f756e74206578636565647320746865206261672060008201527f73697a652e000000000000000000000000000000000000000000000000000000602082015250565b60006127f9602583611dd3565b91506128048261279d565b604082019050919050565b60006020820190508181036000830152612828816127ec565b9050919050565b600061283a82611d94565b915061284583611d94565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561287e5761287d6126e4565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006128c382611d94565b91506128ce83611d94565b9250826128de576128dd612889565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000612945602183611dd3565b9150612950826128e9565b604082019050919050565b6000602082019050818103600083015261297481612938565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000815190506129b981611ebf565b92915050565b6000602082840312156129d5576129d4611e83565b5b60006129e3848285016129aa565b91505092915050565b6000819050919050565b6000612a11612a0c612a07846129ec565b6121f4565b611d94565b9050919050565b612a21816129f6565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612a5c81611ead565b82525050565b6000612a6e8383612a53565b60208301905092915050565b6000602082019050919050565b6000612a9282612a27565b612a9c8185612a32565b9350612aa783612a43565b8060005b83811015612ad8578151612abf8882612a62565b9750612aca83612a7a565b925050600181019050612aab565b5085935050505092915050565b600060a082019050612afa6000830188611d9e565b612b076020830187612a18565b8181036040830152612b198186612a87565b9050612b28606083018561218a565b612b356080830184611d9e565b9695505050505050565b600081905092915050565b50565b6000612b5a600083612b3f565b9150612b6582612b4a565b600082019050919050565b6000612b7b82612b4d565b9150819050919050565b7f72656365697665722072656a656374656420455448207472616e736665720000600082015250565b6000612bbb601e83611dd3565b9150612bc682612b85565b602082019050919050565b60006020820190508181036000830152612bea81612bae565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000612c27601b83611dd3565b9150612c3282612bf1565b602082019050919050565b60006020820190508181036000830152612c5681612c1a565b905091905056fea2646970667358221220cd3810db82dfa33acf71694cf123e9b2e93e76dab06d1be43bcb562e555680e864736f6c634300080f0033

Deployed Bytecode

0x60806040526004361061016a5760003560e01c8063715018a6116100d1578063a8aa1b311161008a578063c3f93b0111610064578063c3f93b011461053d578063dd62ed3e14610568578063e0dc3546146105a5578063f887ea40146105d057610171565b8063a8aa1b31146104ac578063a9059cbb146104d7578063c311931a1461051457610171565b8063715018a6146103be578063756b7bb7146103d5578063893d20e81461040057806392a96da81461042b57806395d89b4114610456578063a64e4f8a1461048157610171565b80632f54bf6e116101235780632f54bf6e1461029a578063313ce567146102d75780635d0044ca146103025780636c0a24eb1461032b5780636ddd17131461035657806370a082311461038157610171565b80630445b6671461017657806306fdde03146101a1578063095ea7b3146101cc5780630d0da2d41461020957806318160ddd1461023257806323b872dd1461025d57610171565b3661017157005b600080fd5b34801561018257600080fd5b5061018b6105fb565b6040516101989190611dad565b60405180910390f35b3480156101ad57600080fd5b506101b6610601565b6040516101c39190611e61565b60405180910390f35b3480156101d857600080fd5b506101f360048036038101906101ee9190611f17565b61063e565b6040516102009190611f72565b60405180910390f35b34801561021557600080fd5b50610230600480360381019061022b9190611ff2565b610730565b005b34801561023e57600080fd5b506102476107fc565b6040516102549190611dad565b60405180910390f35b34801561026957600080fd5b50610284600480360381019061027f91906120a6565b610806565b6040516102919190611f72565b60405180910390f35b3480156102a657600080fd5b506102c160048036038101906102bc91906120f9565b610a06565b6040516102ce9190611f72565b60405180910390f35b3480156102e357600080fd5b506102ec610a5f565b6040516102f99190612142565b60405180910390f35b34801561030e57600080fd5b506103296004803603810190610324919061215d565b610a68565b005b34801561033757600080fd5b50610340610b16565b60405161034d9190611dad565b60405180910390f35b34801561036257600080fd5b5061036b610b1c565b6040516103789190611f72565b60405180910390f35b34801561038d57600080fd5b506103a860048036038101906103a391906120f9565b610b2f565b6040516103b59190611dad565b60405180910390f35b3480156103ca57600080fd5b506103d3610b78565b005b3480156103e157600080fd5b506103ea610c3b565b6040516103f79190611e61565b60405180910390f35b34801561040c57600080fd5b50610415610ccd565b6040516104229190612199565b60405180910390f35b34801561043757600080fd5b50610440610cf6565b60405161044d9190612199565b60405180910390f35b34801561046257600080fd5b5061046b610d1c565b6040516104789190611e61565b60405180910390f35b34801561048d57600080fd5b50610496610d59565b6040516104a39190611f72565b60405180910390f35b3480156104b857600080fd5b506104c1610d6c565b6040516104ce9190612199565b60405180910390f35b3480156104e357600080fd5b506104fe60048036038101906104f99190611f17565b610d92565b60405161050b9190611f72565b60405180910390f35b34801561052057600080fd5b5061053b6004803603810190610536919061215d565b610da7565b005b34801561054957600080fd5b50610552610e3d565b60405161055f9190611e61565b60405180910390f35b34801561057457600080fd5b5061058f600480360381019061058a91906121b4565b610ecf565b60405161059c9190611dad565b60405180910390f35b3480156105b157600080fd5b506105ba610f56565b6040516105c79190611e61565b60405180910390f35b3480156105dc57600080fd5b506105e5610fe8565b6040516105f29190612253565b60405180910390f35b600d5481565b60606040518060400160405280600981526020017f5448495244204147450000000000000000000000000000000000000000000000815250905090565b600081600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161071e9190611dad565b60405180910390a36001905092915050565b7f00000000000000000000000094e35741634403ad10b05f8b540240aa512893c273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146107be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107b5906122e0565b60405180910390fd5b8585600f91826107cf92919061253c565b508383601091826107e192919061253c565b508181601191826107f392919061253c565b50505050505050565b6000600354905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146109f257610971826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461100e9092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6109fd848484611072565b90509392505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006009905090565b610a7133610a06565b610ab0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aa790612658565b60405180910390fd5b60648103610ae4577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600481905550610b13565b610b0c6064610afe8360035461145390919063ffffffff16565b6114cd90919063ffffffff16565b6004819055505b50565b60045481565b600c60149054906101000a900460ff1681565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610b8133610a06565b610bc0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb790612658565b60405180910390fd5b60008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861636000604051610c319190612199565b60405180910390a1565b606060108054610c4a90612369565b80601f0160208091040260200160405190810160405280929190818152602001828054610c7690612369565b8015610cc35780601f10610c9857610100808354040283529160200191610cc3565b820191906000526020600020905b815481529060010190602001808311610ca657829003601f168201915b5050505050905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60606040518060400160405280600381526020017f3352440000000000000000000000000000000000000000000000000000000000815250905090565b600c60159054906101000a900460ff1681565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610d9f338484611072565b905092915050565b610db033610a06565b610def576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610de690612658565b60405180910390fd5b6005811115610e33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e2a906126c4565b60405180910390fd5b8060098190555050565b606060118054610e4c90612369565b80601f0160208091040260200160405190810160405280929190818152602001828054610e7890612369565b8015610ec55780601f10610e9a57610100808354040283529160200191610ec5565b820191906000526020600020905b815481529060010190602001808311610ea857829003601f168201915b5050505050905090565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6060600f8054610f6590612369565b80601f0160208091040260200160405190810160405280929190818152602001828054610f9190612369565b8015610fde5780601f10610fb357610100808354040283529160200191610fde565b820191906000526020600020905b815481529060010190602001808311610fc157829003601f168201915b5050505050905090565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000838311158290611056576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104d9190611e61565b60405180910390fd5b50600083856110659190612713565b9050809150509392505050565b6000600e60009054906101000a900460ff161561109b57611094848484611517565b905061144c565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156111475750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561123057600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806111f0575060045482600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546111ed9190612747565b11155b61122f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112269061280f565b60405180910390fd5b5b6112386116ea565b15611246576112456117c1565b5b6112cf826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461100e9092919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600c60159054906101000a900460ff168015611335575061133485611aef565b5b61133f578261134a565b6113498584611b46565b5b905061139e81600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c8990919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161143e9190611dad565b60405180910390a360019150505b9392505050565b600080830361146557600090506114c7565b60008284611473919061282f565b905082848261148291906128b8565b146114c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114b99061295b565b60405180910390fd5b809150505b92915050565b600061150f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611ce7565b905092915050565b60006115a2826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461100e9092919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061163782600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c8990919063ffffffff16565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516116d79190611dad565b60405180910390a3600190509392505050565b6000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156117575750600e60009054906101000a900460ff16155b801561176f5750600c60149054906101000a900460ff165b80156117bc5750600d54600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001600e60006101000a81548160ff0219169083151502179055506000600d54905060008190506000600267ffffffffffffffff8111156118055761180461230b565b5b6040519080825280602002602001820160405280156118335781602001602082028036833780820191505090505b509050308160008151811061184b5761184a61297b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118f2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061191691906129bf565b8160018151811061192a5761192961297b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016119c8959493929190612ae5565b600060405180830381600087803b1580156119e257600080fd5b505af11580156119f6573d6000803e3d6000fd5b5050505060004790506000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682604051611a4790612b70565b60006040518083038185875af1925050503d8060008114611a84576040519150601f19603f3d011682016040523d82523d6000602084013e611a89565b606091505b5050905080611acd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ac490612bd1565b60405180910390fd5b50505050506000600e60006101000a81548160ff021916908315150217905550565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b600080611b716064611b636009548661145390919063ffffffff16565b6114cd90919063ffffffff16565b9050611bc581600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c8990919063ffffffff16565b600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611c659190611dad565b60405180910390a3611c808184611d4a90919063ffffffff16565b91505092915050565b6000808284611c989190612747565b905083811015611cdd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cd490612c3d565b60405180910390fd5b8091505092915050565b60008083118290611d2e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d259190611e61565b60405180910390fd5b5060008385611d3d91906128b8565b9050809150509392505050565b6000611d8c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061100e565b905092915050565b6000819050919050565b611da781611d94565b82525050565b6000602082019050611dc26000830184611d9e565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611e02578082015181840152602081019050611de7565b83811115611e11576000848401525b50505050565b6000601f19601f8301169050919050565b6000611e3382611dc8565b611e3d8185611dd3565b9350611e4d818560208601611de4565b611e5681611e17565b840191505092915050565b60006020820190508181036000830152611e7b8184611e28565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611eb882611e8d565b9050919050565b611ec881611ead565b8114611ed357600080fd5b50565b600081359050611ee581611ebf565b92915050565b611ef481611d94565b8114611eff57600080fd5b50565b600081359050611f1181611eeb565b92915050565b60008060408385031215611f2e57611f2d611e83565b5b6000611f3c85828601611ed6565b9250506020611f4d85828601611f02565b9150509250929050565b60008115159050919050565b611f6c81611f57565b82525050565b6000602082019050611f876000830184611f63565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f840112611fb257611fb1611f8d565b5b8235905067ffffffffffffffff811115611fcf57611fce611f92565b5b602083019150836001820283011115611feb57611fea611f97565b5b9250929050565b6000806000806000806060878903121561200f5761200e611e83565b5b600087013567ffffffffffffffff81111561202d5761202c611e88565b5b61203989828a01611f9c565b9650965050602087013567ffffffffffffffff81111561205c5761205b611e88565b5b61206889828a01611f9c565b9450945050604087013567ffffffffffffffff81111561208b5761208a611e88565b5b61209789828a01611f9c565b92509250509295509295509295565b6000806000606084860312156120bf576120be611e83565b5b60006120cd86828701611ed6565b93505060206120de86828701611ed6565b92505060406120ef86828701611f02565b9150509250925092565b60006020828403121561210f5761210e611e83565b5b600061211d84828501611ed6565b91505092915050565b600060ff82169050919050565b61213c81612126565b82525050565b60006020820190506121576000830184612133565b92915050565b60006020828403121561217357612172611e83565b5b600061218184828501611f02565b91505092915050565b61219381611ead565b82525050565b60006020820190506121ae600083018461218a565b92915050565b600080604083850312156121cb576121ca611e83565b5b60006121d985828601611ed6565b92505060206121ea85828601611ed6565b9150509250929050565b6000819050919050565b600061221961221461220f84611e8d565b6121f4565b611e8d565b9050919050565b600061222b826121fe565b9050919050565b600061223d82612220565b9050919050565b61224d81612232565b82525050565b60006020820190506122686000830184612244565b92915050565b7f4f6e6c7920646576656c6f7065722063616e2061646a75737420736f6369616c60008201527f206c696e6b730000000000000000000000000000000000000000000000000000602082015250565b60006122ca602683611dd3565b91506122d58261226e565b604082019050919050565b600060208201905081810360008301526122f9816122bd565b9050919050565b600082905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061238157607f821691505b6020821081036123945761239361233a565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026123fc7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826123bf565b61240686836123bf565b95508019841693508086168417925050509392505050565b600061243961243461242f84611d94565b6121f4565b611d94565b9050919050565b6000819050919050565b6124538361241e565b61246761245f82612440565b8484546123cc565b825550505050565b600090565b61247c61246f565b61248781848461244a565b505050565b5b818110156124ab576124a0600082612474565b60018101905061248d565b5050565b601f8211156124f0576124c18161239a565b6124ca846123af565b810160208510156124d9578190505b6124ed6124e5856123af565b83018261248c565b50505b505050565b600082821c905092915050565b6000612513600019846008026124f5565b1980831691505092915050565b600061252c8383612502565b9150826002028217905092915050565b6125468383612300565b67ffffffffffffffff81111561255f5761255e61230b565b5b6125698254612369565b6125748282856124af565b6000601f8311600181146125a35760008415612591578287013590505b61259b8582612520565b865550612603565b601f1984166125b18661239a565b60005b828110156125d9578489013582556001820191506020850194506020810190506125b4565b868310156125f657848901356125f2601f891682612502565b8355505b6001600288020188555050505b50505050505050565b7f214f574e45520000000000000000000000000000000000000000000000000000600082015250565b6000612642600683611dd3565b915061264d8261260c565b602082019050919050565b6000602082019050818103600083015261267181612635565b9050919050565b7f4d757374206b6565702066656573206174203525206f72206c65737300000000600082015250565b60006126ae601c83611dd3565b91506126b982612678565b602082019050919050565b600060208201905081810360008301526126dd816126a1565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061271e82611d94565b915061272983611d94565b92508282101561273c5761273b6126e4565b5b828203905092915050565b600061275282611d94565b915061275d83611d94565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612792576127916126e4565b5b828201905092915050565b7f5472616e7366657220616d6f756e74206578636565647320746865206261672060008201527f73697a652e000000000000000000000000000000000000000000000000000000602082015250565b60006127f9602583611dd3565b91506128048261279d565b604082019050919050565b60006020820190508181036000830152612828816127ec565b9050919050565b600061283a82611d94565b915061284583611d94565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561287e5761287d6126e4565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006128c382611d94565b91506128ce83611d94565b9250826128de576128dd612889565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000612945602183611dd3565b9150612950826128e9565b604082019050919050565b6000602082019050818103600083015261297481612938565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000815190506129b981611ebf565b92915050565b6000602082840312156129d5576129d4611e83565b5b60006129e3848285016129aa565b91505092915050565b6000819050919050565b6000612a11612a0c612a07846129ec565b6121f4565b611d94565b9050919050565b612a21816129f6565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612a5c81611ead565b82525050565b6000612a6e8383612a53565b60208301905092915050565b6000602082019050919050565b6000612a9282612a27565b612a9c8185612a32565b9350612aa783612a43565b8060005b83811015612ad8578151612abf8882612a62565b9750612aca83612a7a565b925050600181019050612aab565b5085935050505092915050565b600060a082019050612afa6000830188611d9e565b612b076020830187612a18565b8181036040830152612b198186612a87565b9050612b28606083018561218a565b612b356080830184611d9e565b9695505050505050565b600081905092915050565b50565b6000612b5a600083612b3f565b9150612b6582612b4a565b600082019050919050565b6000612b7b82612b4d565b9150819050919050565b7f72656365697665722072656a656374656420455448207472616e736665720000600082015250565b6000612bbb601e83611dd3565b9150612bc682612b85565b602082019050919050565b60006020820190508181036000830152612bea81612bae565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000612c27601b83611dd3565b9150612c3282612bf1565b602082019050919050565b60006020820190508181036000830152612c5681612c1a565b905091905056fea2646970667358221220cd3810db82dfa33acf71694cf123e9b2e93e76dab06d1be43bcb562e555680e864736f6c634300080f0033

Deployed Bytecode Sourcemap

4592:7770:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5531:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6340:94;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7535:248;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11481:473;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6442:102;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7987:424;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2584:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6552:94;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8591:257;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5060:62;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5457:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6860:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2695:131;;;;;;;;;;;;;:::i;:::-;;12084:116;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6760:92;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5356:37;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6654:98;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5494:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5431:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7791:188;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8419:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12208:114;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7339:188;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11962:114;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5400:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5531:56;;;;:::o;6340:94::-;6388:13;6421:5;;;;;;;;;;;;;;;;;6414:12;;6340:94;:::o;7535:248::-;7637:4;7694:6;7659:11;:23;7671:10;7659:23;;;;;;;;;;;;;;;:32;7683:7;7659:32;;;;;;;;;;;;;;;:41;;;;7737:7;7716:37;;7725:10;7716:37;;;7746:6;7716:37;;;;;;:::i;:::-;;;;;;;;7771:4;7764:11;;7535:248;;;;:::o;11481:473::-;11706:11;11692:25;;:10;:25;;;11670:113;;;;;;;;;;;;:::i;:::-;;;;;;;;;11818:20;;11796:19;:42;;;;;;;:::i;:::-;;11872:21;;11849:20;:44;;;;;;;:::i;:::-;;11926:20;;11904:19;:42;;;;;;;:::i;:::-;;11481:473;;;;;;:::o;6442:102::-;6497:7;6524:12;;6517:19;;6442:102;:::o;7987:424::-;8121:4;8177:17;8142:11;:19;8154:6;8142:19;;;;;;;;;;;;;;;:31;8162:10;8142:31;;;;;;;;;;;;;;;;:52;8138:206;;8245:87;8299:6;8245:87;;;;;;;;;;;;;;;;;:11;:19;8257:6;8245:19;;;;;;;;;;;;;;;:31;8265:10;8245:31;;;;;;;;;;;;;;;;:53;;:87;;;;;:::i;:::-;8211:11;:19;8223:6;8211:19;;;;;;;;;;;;;;;:31;8231:10;8211:31;;;;;;;;;;;;;;;:121;;;;8138:206;8363:40;8377:6;8385:9;8396:6;8363:13;:40::i;:::-;8356:47;;7987:424;;;;;:::o;2584:103::-;2639:4;2674:5;;;;;;;;;;;2663:16;;:7;:16;;;2656:23;;2584:103;;;:::o;6552:94::-;6604:5;4991:1;6622:16;;6552:94;:::o;8591:257::-;2526:19;2534:10;2526:7;:19::i;:::-;2518:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;8683:3:::1;8668:11;:18:::0;8664:177:::1;;8722:17;8703:16;:36;;;;8664:177;;;8791:38;8825:3;8791:29;8808:11;8791:12;;:16;;:29;;;;:::i;:::-;:33;;:38;;;;:::i;:::-;8772:16;:57;;;;8664:177;8591:257:::0;:::o;5060:62::-;;;;:::o;5457:30::-;;;;;;;;;;;;;:::o;6860:119::-;6926:7;6953:9;:18;6963:7;6953:18;;;;;;;;;;;;;;;;6946:25;;6860:119;;;:::o;2695:131::-;2526:19;2534:10;2526:7;:19::i;:::-;2518:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;2768:1:::1;2752:5:::0;::::1;:18;;;;;;;;;;;;;;;;;;2786:32;2815:1;2786:32;;;;;;:::i;:::-;;;;;;;;2695:131::o:0;12084:116::-;12139:13;12172:20;12165:27;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12084:116;:::o;6760:92::-;6812:7;6839:5;;;;;;;;;;;6832:12;;6760:92;:::o;5356:37::-;;;;;;;;;;;;;:::o;6654:98::-;6704:13;6737:7;;;;;;;;;;;;;;;;;6730:14;;6654:98;:::o;5494:30::-;;;;;;;;;;;;;:::o;5431:19::-;;;;;;;;;;;;;:::o;7791:188::-;7898:4;7927:44;7941:10;7953:9;7964:6;7927:13;:44::i;:::-;7920:51;;7791:188;;;;:::o;8419:164::-;2526:19;2534:10;2526:7;:19::i;:::-;2518:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;8510:1:::1;8497:9;:14;;8489:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;8566:9;8555:8;:20;;;;8419:164:::0;:::o;12208:114::-;12262:13;12295:19;12288:26;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12208:114;:::o;7339:188::-;7459:7;7491:11;:19;7503:6;7491:19;;;;;;;;;;;;;;;:28;7511:7;7491:28;;;;;;;;;;;;;;;;7484:35;;7339:188;;;;:::o;11962:114::-;12016:13;12049:19;12042:26;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11962:114;:::o;5400:24::-;;;;;;;;;;;;;:::o;451:224::-;571:7;604:1;599;:6;;607:12;591:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;631:9;647:1;643;:5;;;;:::i;:::-;631:17;;666:1;659:8;;;451:224;;;;;:::o;10015:1007::-;10141:4;10162:6;;;;;;;;;;;10158:87;;;10192:41;10207:6;10215:9;10226:6;10192:14;:41::i;:::-;10185:48;;;;10158:87;10274:4;;;;;;;;;;;10261:17;;:9;:17;;;;:38;;;;;10295:4;;;;;;;;;;;10282:17;;:9;:17;;;;10261:38;10257:270;;;10342:15;:26;10358:9;10342:26;;;;;;;;;;;;;;;;;;;;;;;;;:100;;;;10426:16;;10416:6;10393:9;:20;10403:9;10393:20;;;;;;;;;;;;;;;;:29;;;;:::i;:::-;:49;;10342:100;10316:199;;;;;;;;;;;;:::i;:::-;;;;;;;;;10257:270;10543:16;:14;:16::i;:::-;10539:59;;;10576:10;:8;:10::i;:::-;10539:59;10630:90;10666:6;10630:90;;;;;;;;;;;;;;;;;:9;:17;10640:6;10630:17;;;;;;;;;;;;;;;;:21;;:90;;;;;:::i;:::-;10610:9;:17;10620:6;10610:17;;;;;;;;;;;;;;;:110;;;;10733:22;10758:11;;;;;;;;;;;:36;;;;;10773:21;10787:6;10773:13;:21::i;:::-;10758:36;:97;;10849:6;10758:97;;;10810:23;10818:6;10826;10810:7;:23::i;:::-;10758:97;10733:122;;10891:40;10916:14;10891:9;:20;10901:9;10891:20;;;;;;;;;;;;;;;;:24;;:40;;;;:::i;:::-;10868:9;:20;10878:9;10868:20;;;;;;;;;;;;;;;:63;;;;10966:9;10949:43;;10958:6;10949:43;;;10977:14;10949:43;;;;;;:::i;:::-;;;;;;;;11010:4;11003:11;;;10015:1007;;;;;;:::o;683:246::-;741:7;770:1;765;:6;761:47;;795:1;788:8;;;;761:47;818:9;834:1;830;:5;;;;:::i;:::-;818:17;;863:1;858;854;:5;;;;:::i;:::-;:10;846:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;920:1;913:8;;;683:246;;;;;:::o;937:132::-;995:7;1022:39;1026:1;1029;1022:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1015:46;;937:132;;;;:::o;11030:401::-;11157:4;11194:90;11230:6;11194:90;;;;;;;;;;;;;;;;;:9;:17;11204:6;11194:17;;;;;;;;;;;;;;;;:21;;:90;;;;;:::i;:::-;11174:9;:17;11184:6;11174:17;;;;;;;;;;;;;;;:110;;;;11318:32;11343:6;11318:9;:20;11328:9;11318:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;11295:9;:20;11305:9;11295:20;;;;;;;;;;;;;;;:55;;;;11383:9;11366:35;;11375:6;11366:35;;;11394:6;11366:35;;;;;;:::i;:::-;;;;;;;;11419:4;11412:11;;11030:401;;;;;:::o;6987:222::-;7036:4;7087;;;;;;;;;;;7073:18;;:10;:18;;;;:42;;;;;7109:6;;;;;;;;;;;7108:7;7073:42;:70;;;;;7132:11;;;;;;;;;;;7073:70;:128;;;;;7188:13;;7160:9;:24;7178:4;7160:24;;;;;;;;;;;;;;;;:41;;7073:128;7053:148;;6987:222;:::o;9253:754::-;5652:4;5643:6;;:13;;;;;;;;;;;;;;;;;;9302:28:::1;9333:13;;9302:44;;9357:20;9380;9357:43;;9413:21;9451:1;9437:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9413:40;;9482:4;9464;9469:1;9464:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;9508:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9498:4;9503:1;9498:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;9534:6;;;;;;;;;;;:57;;;9606:12;9633:1;9649:4;9676;9696:15;9534:188;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9735:26;9764:21;9735:50;;9813:21;9883:9;;;;;;;;;;;9875:23;;9906:18;9875:54;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9798:131;;;9948:16;9940:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;9291:716;;;;;5688:5:::0;5679:6;;:14;;;;;;;;;;;;;;;;;;9253:754::o;7217:114::-;7279:4;7304:11;:19;7316:6;7304:19;;;;;;;;;;;;;;;;;;;;;;;;;7303:20;7296:27;;7217:114;;;:::o;8904:341::-;8989:7;9014:17;9034:29;9059:3;9034:20;9045:8;;9034:6;:10;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;9014:49;;9101:39;9130:9;9101;:24;9119:4;9101:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;9074:9;:24;9092:4;9074:24;;;;;;;;;;;;;;;:66;;;;9181:4;9156:42;;9165:6;9156:42;;;9188:9;9156:42;;;;;;:::i;:::-;;;;;;;;9216:21;9227:9;9216:6;:10;;:21;;;;:::i;:::-;9209:28;;;8904:341;;;;:::o;120:179::-;178:7;198:9;214:1;210;:5;;;;:::i;:::-;198:17;;239:1;234;:6;;226:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;290:1;283:8;;;120:179;;;;:::o;1077:223::-;1197:7;1229:1;1225;:5;1232:12;1217:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1256:9;1272:1;1268;:5;;;;:::i;:::-;1256:17;;1291:1;1284:8;;;1077:223;;;;;:::o;307:136::-;365:7;392:43;396:1;399;392:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;385:50;;307: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:307::-;790:1;800:113;814:6;811:1;808:13;800:113;;;899:1;894:3;890:11;884:18;880:1;875:3;871:11;864:39;836:2;833:1;829:10;824:15;;800:113;;;931:6;928:1;925:13;922:101;;;1011:1;1002:6;997:3;993:16;986:27;922:101;771:258;722:307;;;:::o;1035:102::-;1076:6;1127:2;1123:7;1118:2;1111:5;1107:14;1103:28;1093:38;;1035:102;;;:::o;1143:364::-;1231:3;1259:39;1292:5;1259:39;:::i;:::-;1314:71;1378:6;1373:3;1314:71;:::i;:::-;1307:78;;1394:52;1439:6;1434:3;1427:4;1420:5;1416:16;1394:52;:::i;:::-;1471:29;1493:6;1471:29;:::i;:::-;1466:3;1462:39;1455:46;;1235:272;1143:364;;;;:::o;1513:313::-;1626:4;1664:2;1653:9;1649:18;1641:26;;1713:9;1707:4;1703:20;1699:1;1688:9;1684:17;1677:47;1741:78;1814:4;1805:6;1741:78;:::i;:::-;1733:86;;1513:313;;;;:::o;1913:117::-;2022:1;2019;2012:12;2036:117;2145:1;2142;2135:12;2159:126;2196:7;2236:42;2229:5;2225:54;2214:65;;2159:126;;;:::o;2291:96::-;2328:7;2357:24;2375:5;2357:24;:::i;:::-;2346:35;;2291:96;;;:::o;2393:122::-;2466:24;2484:5;2466:24;:::i;:::-;2459:5;2456:35;2446:63;;2505:1;2502;2495:12;2446:63;2393:122;:::o;2521:139::-;2567:5;2605:6;2592:20;2583:29;;2621:33;2648:5;2621:33;:::i;:::-;2521:139;;;;:::o;2666:122::-;2739:24;2757:5;2739:24;:::i;:::-;2732:5;2729:35;2719:63;;2778:1;2775;2768:12;2719:63;2666:122;:::o;2794:139::-;2840:5;2878:6;2865:20;2856:29;;2894:33;2921:5;2894:33;:::i;:::-;2794:139;;;;:::o;2939:474::-;3007:6;3015;3064:2;3052:9;3043:7;3039:23;3035:32;3032:119;;;3070:79;;:::i;:::-;3032:119;3190:1;3215:53;3260:7;3251:6;3240:9;3236:22;3215:53;:::i;:::-;3205:63;;3161:117;3317:2;3343:53;3388:7;3379:6;3368:9;3364:22;3343:53;:::i;:::-;3333:63;;3288:118;2939:474;;;;;:::o;3419:90::-;3453:7;3496:5;3489:13;3482:21;3471:32;;3419:90;;;:::o;3515:109::-;3596:21;3611:5;3596:21;:::i;:::-;3591:3;3584:34;3515:109;;:::o;3630:210::-;3717:4;3755:2;3744:9;3740:18;3732:26;;3768:65;3830:1;3819:9;3815:17;3806:6;3768:65;:::i;:::-;3630:210;;;;:::o;3846:117::-;3955:1;3952;3945:12;3969:117;4078:1;4075;4068:12;4092:117;4201:1;4198;4191:12;4229:553;4287:8;4297:6;4347:3;4340:4;4332:6;4328:17;4324:27;4314:122;;4355:79;;:::i;:::-;4314:122;4468:6;4455:20;4445:30;;4498:18;4490:6;4487:30;4484:117;;;4520:79;;:::i;:::-;4484:117;4634:4;4626:6;4622:17;4610:29;;4688:3;4680:4;4672:6;4668:17;4658:8;4654:32;4651:41;4648:128;;;4695:79;;:::i;:::-;4648:128;4229:553;;;;;:::o;4788:1219::-;4901:6;4909;4917;4925;4933;4941;4990:2;4978:9;4969:7;4965:23;4961:32;4958:119;;;4996:79;;:::i;:::-;4958:119;5144:1;5133:9;5129:17;5116:31;5174:18;5166:6;5163:30;5160:117;;;5196:79;;:::i;:::-;5160:117;5309:65;5366:7;5357:6;5346:9;5342:22;5309:65;:::i;:::-;5291:83;;;;5087:297;5451:2;5440:9;5436:18;5423:32;5482:18;5474:6;5471:30;5468:117;;;5504:79;;:::i;:::-;5468:117;5617:65;5674:7;5665:6;5654:9;5650:22;5617:65;:::i;:::-;5599:83;;;;5394:298;5759:2;5748:9;5744:18;5731:32;5790:18;5782:6;5779:30;5776:117;;;5812:79;;:::i;:::-;5776:117;5925:65;5982:7;5973:6;5962:9;5958:22;5925:65;:::i;:::-;5907:83;;;;5702:298;4788:1219;;;;;;;;:::o;6013:619::-;6090:6;6098;6106;6155:2;6143:9;6134:7;6130:23;6126:32;6123:119;;;6161:79;;:::i;:::-;6123:119;6281:1;6306:53;6351:7;6342:6;6331:9;6327:22;6306:53;:::i;:::-;6296:63;;6252:117;6408:2;6434:53;6479:7;6470:6;6459:9;6455:22;6434:53;:::i;:::-;6424:63;;6379:118;6536:2;6562:53;6607:7;6598:6;6587:9;6583:22;6562:53;:::i;:::-;6552:63;;6507:118;6013:619;;;;;:::o;6638:329::-;6697:6;6746:2;6734:9;6725:7;6721:23;6717:32;6714:119;;;6752:79;;:::i;:::-;6714:119;6872:1;6897:53;6942:7;6933:6;6922:9;6918:22;6897:53;:::i;:::-;6887:63;;6843:117;6638:329;;;;:::o;6973:86::-;7008:7;7048:4;7041:5;7037:16;7026:27;;6973:86;;;:::o;7065:112::-;7148:22;7164:5;7148:22;:::i;:::-;7143:3;7136:35;7065:112;;:::o;7183:214::-;7272:4;7310:2;7299:9;7295:18;7287:26;;7323:67;7387:1;7376:9;7372:17;7363:6;7323:67;:::i;:::-;7183:214;;;;:::o;7403:329::-;7462:6;7511:2;7499:9;7490:7;7486:23;7482:32;7479:119;;;7517:79;;:::i;:::-;7479:119;7637:1;7662:53;7707:7;7698:6;7687:9;7683:22;7662:53;:::i;:::-;7652:63;;7608:117;7403:329;;;;:::o;7738:118::-;7825:24;7843:5;7825:24;:::i;:::-;7820:3;7813:37;7738:118;;:::o;7862:222::-;7955:4;7993:2;7982:9;7978:18;7970:26;;8006:71;8074:1;8063:9;8059:17;8050:6;8006:71;:::i;:::-;7862:222;;;;:::o;8090:474::-;8158:6;8166;8215:2;8203:9;8194:7;8190:23;8186:32;8183:119;;;8221:79;;:::i;:::-;8183:119;8341:1;8366:53;8411:7;8402:6;8391:9;8387:22;8366:53;:::i;:::-;8356:63;;8312:117;8468:2;8494:53;8539:7;8530:6;8519:9;8515:22;8494:53;:::i;:::-;8484:63;;8439:118;8090:474;;;;;:::o;8570:60::-;8598:3;8619:5;8612:12;;8570:60;;;:::o;8636:142::-;8686:9;8719:53;8737:34;8746:24;8764:5;8746:24;:::i;:::-;8737:34;:::i;:::-;8719:53;:::i;:::-;8706:66;;8636:142;;;:::o;8784:126::-;8834:9;8867:37;8898:5;8867:37;:::i;:::-;8854:50;;8784:126;;;:::o;8916:144::-;8984:9;9017:37;9048:5;9017:37;:::i;:::-;9004:50;;8916:144;;;:::o;9066:167::-;9171:55;9220:5;9171:55;:::i;:::-;9166:3;9159:68;9066:167;;:::o;9239:258::-;9350:4;9388:2;9377:9;9373:18;9365:26;;9401:89;9487:1;9476:9;9472:17;9463:6;9401:89;:::i;:::-;9239:258;;;;:::o;9503:225::-;9643:34;9639:1;9631:6;9627:14;9620:58;9712:8;9707:2;9699:6;9695:15;9688:33;9503:225;:::o;9734:366::-;9876:3;9897:67;9961:2;9956:3;9897:67;:::i;:::-;9890:74;;9973:93;10062:3;9973:93;:::i;:::-;10091:2;10086:3;10082:12;10075:19;;9734:366;;;:::o;10106:419::-;10272:4;10310:2;10299:9;10295:18;10287:26;;10359:9;10353:4;10349:20;10345:1;10334:9;10330:17;10323:47;10387:131;10513:4;10387:131;:::i;:::-;10379:139;;10106:419;;;:::o;10531:97::-;10590:6;10618:3;10608:13;;10531:97;;;;:::o;10634:180::-;10682:77;10679:1;10672:88;10779:4;10776:1;10769:15;10803:4;10800:1;10793:15;10820:180;10868:77;10865:1;10858:88;10965:4;10962:1;10955:15;10989:4;10986:1;10979:15;11006:320;11050:6;11087:1;11081:4;11077:12;11067:22;;11134:1;11128:4;11124:12;11155:18;11145:81;;11211:4;11203:6;11199:17;11189:27;;11145:81;11273:2;11265:6;11262:14;11242:18;11239:38;11236:84;;11292:18;;:::i;:::-;11236:84;11057:269;11006:320;;;:::o;11332:141::-;11381:4;11404:3;11396:11;;11427:3;11424:1;11417:14;11461:4;11458:1;11448:18;11440:26;;11332:141;;;:::o;11479:93::-;11516:6;11563:2;11558;11551:5;11547:14;11543:23;11533:33;;11479:93;;;:::o;11578:107::-;11622:8;11672:5;11666:4;11662:16;11641:37;;11578:107;;;;:::o;11691:393::-;11760:6;11810:1;11798:10;11794:18;11833:97;11863:66;11852:9;11833:97;:::i;:::-;11951:39;11981:8;11970:9;11951:39;:::i;:::-;11939:51;;12023:4;12019:9;12012:5;12008:21;11999:30;;12072:4;12062:8;12058:19;12051:5;12048:30;12038:40;;11767:317;;11691:393;;;;;:::o;12090:142::-;12140:9;12173:53;12191:34;12200:24;12218:5;12200:24;:::i;:::-;12191:34;:::i;:::-;12173:53;:::i;:::-;12160:66;;12090:142;;;:::o;12238:75::-;12281:3;12302:5;12295:12;;12238:75;;;:::o;12319:269::-;12429:39;12460:7;12429:39;:::i;:::-;12490:91;12539:41;12563:16;12539:41;:::i;:::-;12531:6;12524:4;12518:11;12490:91;:::i;:::-;12484:4;12477:105;12395:193;12319:269;;;:::o;12594:73::-;12639:3;12594:73;:::o;12673:189::-;12750:32;;:::i;:::-;12791:65;12849:6;12841;12835:4;12791:65;:::i;:::-;12726:136;12673:189;;:::o;12868:186::-;12928:120;12945:3;12938:5;12935:14;12928:120;;;12999:39;13036:1;13029:5;12999:39;:::i;:::-;12972:1;12965:5;12961:13;12952:22;;12928:120;;;12868:186;;:::o;13060:543::-;13161:2;13156:3;13153:11;13150:446;;;13195:38;13227:5;13195:38;:::i;:::-;13279:29;13297:10;13279:29;:::i;:::-;13269:8;13265:44;13462:2;13450:10;13447:18;13444:49;;;13483:8;13468:23;;13444:49;13506:80;13562:22;13580:3;13562:22;:::i;:::-;13552:8;13548:37;13535:11;13506:80;:::i;:::-;13165:431;;13150:446;13060:543;;;:::o;13609:117::-;13663:8;13713:5;13707:4;13703:16;13682:37;;13609:117;;;;:::o;13732:169::-;13776:6;13809:51;13857:1;13853:6;13845:5;13842:1;13838:13;13809:51;:::i;:::-;13805:56;13890:4;13884;13880:15;13870:25;;13783:118;13732:169;;;;:::o;13906:295::-;13982:4;14128:29;14153:3;14147:4;14128:29;:::i;:::-;14120:37;;14190:3;14187:1;14183:11;14177:4;14174:21;14166:29;;13906:295;;;;:::o;14206:1403::-;14330:44;14370:3;14365;14330:44;:::i;:::-;14439:18;14431:6;14428:30;14425:56;;;14461:18;;:::i;:::-;14425:56;14505:38;14537:4;14531:11;14505:38;:::i;:::-;14590:67;14650:6;14642;14636:4;14590:67;:::i;:::-;14684:1;14713:2;14705:6;14702:14;14730:1;14725:632;;;;15401:1;15418:6;15415:84;;;15474:9;15469:3;15465:19;15452:33;15443:42;;15415:84;15525:67;15585:6;15578:5;15525:67;:::i;:::-;15519:4;15512:81;15374:229;14695:908;;14725:632;14777:4;14773:9;14765:6;14761:22;14811:37;14843:4;14811:37;:::i;:::-;14870:1;14884:215;14898:7;14895:1;14892:14;14884:215;;;14984:9;14979:3;14975:19;14962:33;14954:6;14947:49;15035:1;15027:6;15023:14;15013:24;;15082:2;15071:9;15067:18;15054:31;;14921:4;14918:1;14914:12;14909:17;;14884:215;;;15127:6;15118:7;15115:19;15112:186;;;15192:9;15187:3;15183:19;15170:33;15235:48;15277:4;15269:6;15265:17;15254:9;15235:48;:::i;:::-;15227:6;15220:64;15135:163;15112:186;15344:1;15340;15332:6;15328:14;15324:22;15318:4;15311:36;14732:625;;;14695:908;;14305:1304;;;14206:1403;;;:::o;15615:156::-;15755:8;15751:1;15743:6;15739:14;15732:32;15615:156;:::o;15777:365::-;15919:3;15940:66;16004:1;15999:3;15940:66;:::i;:::-;15933:73;;16015:93;16104:3;16015:93;:::i;:::-;16133:2;16128:3;16124:12;16117:19;;15777:365;;;:::o;16148:419::-;16314:4;16352:2;16341:9;16337:18;16329:26;;16401:9;16395:4;16391:20;16387:1;16376:9;16372:17;16365:47;16429:131;16555:4;16429:131;:::i;:::-;16421:139;;16148:419;;;:::o;16573:178::-;16713:30;16709:1;16701:6;16697:14;16690:54;16573:178;:::o;16757:366::-;16899:3;16920:67;16984:2;16979:3;16920:67;:::i;:::-;16913:74;;16996:93;17085:3;16996:93;:::i;:::-;17114:2;17109:3;17105:12;17098:19;;16757:366;;;:::o;17129:419::-;17295:4;17333:2;17322:9;17318:18;17310:26;;17382:9;17376:4;17372:20;17368:1;17357:9;17353:17;17346:47;17410:131;17536:4;17410:131;:::i;:::-;17402:139;;17129:419;;;:::o;17554:180::-;17602:77;17599:1;17592:88;17699:4;17696:1;17689:15;17723:4;17720:1;17713:15;17740:191;17780:4;17800:20;17818:1;17800:20;:::i;:::-;17795:25;;17834:20;17852:1;17834:20;:::i;:::-;17829:25;;17873:1;17870;17867:8;17864:34;;;17878:18;;:::i;:::-;17864:34;17923:1;17920;17916:9;17908:17;;17740:191;;;;:::o;17937:305::-;17977:3;17996:20;18014:1;17996:20;:::i;:::-;17991:25;;18030:20;18048:1;18030:20;:::i;:::-;18025:25;;18184:1;18116:66;18112:74;18109:1;18106:81;18103:107;;;18190:18;;:::i;:::-;18103:107;18234:1;18231;18227:9;18220:16;;17937:305;;;;:::o;18248:224::-;18388:34;18384:1;18376:6;18372:14;18365:58;18457:7;18452:2;18444:6;18440:15;18433:32;18248:224;:::o;18478:366::-;18620:3;18641:67;18705:2;18700:3;18641:67;:::i;:::-;18634:74;;18717:93;18806:3;18717:93;:::i;:::-;18835:2;18830:3;18826:12;18819:19;;18478:366;;;:::o;18850:419::-;19016:4;19054:2;19043:9;19039:18;19031:26;;19103:9;19097:4;19093:20;19089:1;19078:9;19074:17;19067:47;19131:131;19257:4;19131:131;:::i;:::-;19123:139;;18850:419;;;:::o;19275:348::-;19315:7;19338:20;19356:1;19338:20;:::i;:::-;19333:25;;19372:20;19390:1;19372:20;:::i;:::-;19367:25;;19560:1;19492:66;19488:74;19485:1;19482:81;19477:1;19470:9;19463:17;19459:105;19456:131;;;19567:18;;:::i;:::-;19456:131;19615:1;19612;19608:9;19597:20;;19275:348;;;;:::o;19629:180::-;19677:77;19674:1;19667:88;19774:4;19771:1;19764:15;19798:4;19795:1;19788:15;19815:185;19855:1;19872:20;19890:1;19872:20;:::i;:::-;19867:25;;19906:20;19924:1;19906:20;:::i;:::-;19901:25;;19945:1;19935:35;;19950:18;;:::i;:::-;19935:35;19992:1;19989;19985:9;19980:14;;19815:185;;;;:::o;20006:220::-;20146:34;20142:1;20134:6;20130:14;20123:58;20215:3;20210:2;20202:6;20198:15;20191:28;20006:220;:::o;20232:366::-;20374:3;20395:67;20459:2;20454:3;20395:67;:::i;:::-;20388:74;;20471:93;20560:3;20471:93;:::i;:::-;20589:2;20584:3;20580:12;20573:19;;20232:366;;;:::o;20604:419::-;20770:4;20808:2;20797:9;20793:18;20785:26;;20857:9;20851:4;20847:20;20843:1;20832:9;20828:17;20821:47;20885:131;21011:4;20885:131;:::i;:::-;20877:139;;20604:419;;;:::o;21029:180::-;21077:77;21074:1;21067:88;21174:4;21171:1;21164:15;21198:4;21195:1;21188:15;21215:143;21272:5;21303:6;21297:13;21288:22;;21319:33;21346:5;21319:33;:::i;:::-;21215:143;;;;:::o;21364:351::-;21434:6;21483:2;21471:9;21462:7;21458:23;21454:32;21451:119;;;21489:79;;:::i;:::-;21451:119;21609:1;21634:64;21690:7;21681:6;21670:9;21666:22;21634:64;:::i;:::-;21624:74;;21580:128;21364:351;;;;:::o;21721:85::-;21766:7;21795:5;21784:16;;21721:85;;;:::o;21812:158::-;21870:9;21903:61;21921:42;21930:32;21956:5;21930:32;:::i;:::-;21921:42;:::i;:::-;21903:61;:::i;:::-;21890:74;;21812:158;;;:::o;21976:147::-;22071:45;22110:5;22071:45;:::i;:::-;22066:3;22059:58;21976:147;;:::o;22129:114::-;22196:6;22230:5;22224:12;22214:22;;22129:114;;;:::o;22249:184::-;22348:11;22382:6;22377:3;22370:19;22422:4;22417:3;22413:14;22398:29;;22249:184;;;;:::o;22439:132::-;22506:4;22529:3;22521:11;;22559:4;22554:3;22550:14;22542:22;;22439:132;;;:::o;22577:108::-;22654:24;22672:5;22654:24;:::i;:::-;22649:3;22642:37;22577:108;;:::o;22691:179::-;22760:10;22781:46;22823:3;22815:6;22781:46;:::i;:::-;22859:4;22854:3;22850:14;22836:28;;22691:179;;;;:::o;22876:113::-;22946:4;22978;22973:3;22969:14;22961:22;;22876:113;;;:::o;23025:732::-;23144:3;23173:54;23221:5;23173:54;:::i;:::-;23243:86;23322:6;23317:3;23243:86;:::i;:::-;23236:93;;23353:56;23403:5;23353:56;:::i;:::-;23432:7;23463:1;23448:284;23473:6;23470:1;23467:13;23448:284;;;23549:6;23543:13;23576:63;23635:3;23620:13;23576:63;:::i;:::-;23569:70;;23662:60;23715:6;23662:60;:::i;:::-;23652:70;;23508:224;23495:1;23492;23488:9;23483:14;;23448:284;;;23452:14;23748:3;23741:10;;23149:608;;;23025:732;;;;:::o;23763:831::-;24026:4;24064:3;24053:9;24049:19;24041:27;;24078:71;24146:1;24135:9;24131:17;24122:6;24078:71;:::i;:::-;24159:80;24235:2;24224:9;24220:18;24211:6;24159:80;:::i;:::-;24286:9;24280:4;24276:20;24271:2;24260:9;24256:18;24249:48;24314:108;24417:4;24408:6;24314:108;:::i;:::-;24306:116;;24432:72;24500:2;24489:9;24485:18;24476:6;24432:72;:::i;:::-;24514:73;24582:3;24571:9;24567:19;24558:6;24514:73;:::i;:::-;23763:831;;;;;;;;:::o;24600:147::-;24701:11;24738:3;24723:18;;24600:147;;;;:::o;24753:114::-;;:::o;24873:398::-;25032:3;25053:83;25134:1;25129:3;25053:83;:::i;:::-;25046:90;;25145:93;25234:3;25145:93;:::i;:::-;25263:1;25258:3;25254:11;25247:18;;24873:398;;;:::o;25277:379::-;25461:3;25483:147;25626:3;25483:147;:::i;:::-;25476:154;;25647:3;25640:10;;25277:379;;;:::o;25662:180::-;25802:32;25798:1;25790:6;25786:14;25779:56;25662:180;:::o;25848:366::-;25990:3;26011:67;26075:2;26070:3;26011:67;:::i;:::-;26004:74;;26087:93;26176:3;26087:93;:::i;:::-;26205:2;26200:3;26196:12;26189:19;;25848:366;;;:::o;26220:419::-;26386:4;26424:2;26413:9;26409:18;26401:26;;26473:9;26467:4;26463:20;26459:1;26448:9;26444:17;26437:47;26501:131;26627:4;26501:131;:::i;:::-;26493:139;;26220:419;;;:::o;26645:177::-;26785:29;26781:1;26773:6;26769:14;26762:53;26645:177;:::o;26828:366::-;26970:3;26991:67;27055:2;27050:3;26991:67;:::i;:::-;26984:74;;27067:93;27156:3;27067:93;:::i;:::-;27185:2;27180:3;27176:12;27169:19;;26828:366;;;:::o;27200:419::-;27366:4;27404:2;27393:9;27389:18;27381:26;;27453:9;27447:4;27443:20;27439:1;27428:9;27424:17;27417:47;27481:131;27607:4;27481:131;:::i;:::-;27473:139;;27200:419;;;:::o

Swarm Source

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