ETH Price: $3,486.36 (+7.40%)
Gas: 5 Gwei

Token

ShadowDrag (DRAG)
 

Overview

Max Total Supply

4,999,305,410.785806550169097335 DRAG

Holders

136

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
39,390.810817291849868531 DRAG

Value
$0.00
0x71Eb657915e3d281858633EEc2a9D2aa84D7a66B
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:
ShadowDrag

Compiler Version
v0.8.16+commit.07a7930e

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: MIT

pragma solidity 0.8.16;

interface IERC20 {
    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 Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

    function _msgData() internal view virtual returns (bytes memory) {
        this;
        return msg.data;
    }
}

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

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

    function mod(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}

abstract contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(
        address indexed previousOwner,
        address indexed newOwner
    );

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

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

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

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

    function transferOwnership(address newOwner) public onlyOwner {
        _transferOwnership(newOwner);
    }

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

contract ShadowDrag is Context, IERC20, Ownable {
    using SafeMath for uint256;

    mapping(address => uint256) private _balances;

    mapping(address => mapping(address => uint256)) private _allowances;

    uint256 private _totalSupply;
    string private _name;
    uint8 private _decimals;
    string private _symbol;
    uint256 private _TARGET_TOTAL_SUPPLY;

    uint256 private _totalFeesOnBuy = 3;
    uint256 private _totalFeesOnSell = 6;

    uint256 private TAX_PERCENTAGE = 50;

    mapping(address => bool) public taxedPairs;

    mapping(address => bool) private _isExcludedFromFees;

    event ExcludeFromFees(address indexed account, bool isExcluded);

    constructor() {
        _name = "ShadowDrag";
        _symbol = "DRAG";
        _decimals = 18;
        _totalSupply = 5_000_000_000 * (10 ** 18);
        _TARGET_TOTAL_SUPPLY = 100_000_000 * (10 ** 18);
        _balances[msg.sender] = _totalSupply;

        _isExcludedFromFees[msg.sender] = true;
        _isExcludedFromFees[address(this)] = true;

        emit Transfer(address(0), msg.sender, _totalSupply);
    }

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

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

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

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

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

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

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

        _processTransfer(_msgSender(), recipient, amount);
        return true;
    }

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

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

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

    function increaseAllowance(
        address spender,
        uint256 addedValue
    ) public returns (bool) {
        _approve(
            _msgSender(),
            spender,
            _allowances[_msgSender()][spender].add(addedValue)
        );
        return true;
    }

    function decreaseAllowance(
        address spender,
        uint256 subtractedValue
    ) public returns (bool) {
        _approve(
            _msgSender(),
            spender,
            _allowances[_msgSender()][spender].sub(
                subtractedValue,
                "ERC20: decreased allowance below zero"
            )
        );
        return true;
    }

    function burn(uint256 amount) external returns (bool) {
        _burn(_msgSender(), amount);
        return true;
    }

    function _processTransfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal {

        bool takeFee = true;
        if (_isExcludedFromFees[sender] || _isExcludedFromFees[recipient]) {
            takeFee = false;
        }

        if (!taxedPairs[sender] && !taxedPairs[recipient]) {
            takeFee = false;
        }

        if (_totalSupply <= _TARGET_TOTAL_SUPPLY) {
            takeFee = false;
        }

        if (takeFee) {
            uint256 _totalFees;
            if (taxedPairs[sender]) {
                _totalFees = _totalFeesOnBuy;
            } else {
                _totalFees = _totalFeesOnSell;
            }
            if (_totalFees > 0) {
                uint256 fees = (amount * _totalFees) / 100;

                if (_totalSupply.sub(fees) < _TARGET_TOTAL_SUPPLY) {
                    fees = _totalSupply.sub(_TARGET_TOTAL_SUPPLY);
                }

                amount = amount - fees;

                uint256 TAX_SHARE = (fees * TAX_PERCENTAGE) / 100;
                uint256 BURN_AMOUNT = fees - TAX_SHARE;

                _totalSupply = _totalSupply.sub(BURN_AMOUNT);
                _transfer(sender, address(0), BURN_AMOUNT);
                _transfer(sender, owner(), TAX_SHARE);
            }
        }
        
        _transfer(sender, recipient, amount);
    }

    function _transfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal {
        _balances[sender] = _balances[sender].sub(
            amount,
            "ERC20: transfer amount exceeds balance"
        );
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
    }

    function _burn(address account, uint256 amount) internal {
        require(account != address(0), "ERC20: burn from the zero address");

        _balances[account] = _balances[account].sub(
            amount,
            "ERC20: burn amount exceeds balance"
        );
        _totalSupply = _totalSupply.sub(amount);
        emit Transfer(account, address(0), amount);
    }

    function _approve(address owner, address spender, uint256 amount) internal {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    //=======FeeManagement=======//
    function excludeFromFees(address[] calldata accounts) external onlyOwner {
        for (uint256 i = 0; i < accounts.length; i++) {
            address account = accounts[i];
            // require(!_isExcludedFromFees[account], "Account is already excluded");
            _isExcludedFromFees[account] = true;
            emit ExcludeFromFees(account, true);
        }
    }

    function includeInFees(address[] calldata accounts) external onlyOwner {
        for (uint256 i = 0; i < accounts.length; i++) {
            address account = accounts[i];
            // require(_isExcludedFromFees[account], "Account is already included");
            _isExcludedFromFees[account] = false;
            emit ExcludeFromFees(account, false);
        }
    }

    function isExcludedFromFees(address account) public view returns (bool) {
        return _isExcludedFromFees[account];
    }

    function excludeFromTaxedPairs(address pair)
        external
        onlyOwner
    {
        require(taxedPairs[pair], "Pair is already the value of excluded");
        taxedPairs[pair] = false;
    }

    function includeInTaxedPairs(address pair)
        external
        onlyOwner
    {
        require(!taxedPairs[pair], "Pair is already the value of included");
        taxedPairs[pair] = true;
    }

    function isIncludedInTaxedPairs(address pair) public view returns (bool) {
        return taxedPairs[pair];
    }

    function updateBuyFees(uint256 totalFeesOnBuy) external onlyOwner {
        require(totalFeesOnBuy <= 50, "Fees must be less than 50%");
        
        _totalFeesOnBuy = totalFeesOnBuy;
    }

    function updateSellFees(uint256 totalFeesOnSell) external onlyOwner {
        require(totalFeesOnSell <= 50, "Fees must be less than 50%");

        _totalFeesOnSell = totalFeesOnSell;
    }

    function getFeesOnBuy() external view returns (uint256) {
        return _totalFeesOnBuy;
    }

    function getFeesOnSell() external view returns (uint256) {
        return _totalFeesOnSell;
    }

    function updateTaxPercentage(uint256 taxPercentage) external onlyOwner {
        TAX_PERCENTAGE = taxPercentage;
    }

    function getTaxPercentage() external view returns (uint256) {
        return TAX_PERCENTAGE;
    }
}

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":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeFromFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"}],"name":"excludeFromTaxedPairs","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getFeesOnBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getFeesOnSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTaxPercentage","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"}],"name":"includeInFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"}],"name":"includeInTaxedPairs","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"}],"name":"isIncludedInTaxedPairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"taxedPairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"totalFeesOnBuy","type":"uint256"}],"name":"updateBuyFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"totalFeesOnSell","type":"uint256"}],"name":"updateSellFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"taxPercentage","type":"uint256"}],"name":"updateTaxPercentage","outputs":[],"stateMutability":"nonpayable","type":"function"}]

6080604052600360085560066009556032600a553480156200002057600080fd5b506000620000336200030660201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506040518060400160405280600a81526020017f536861646f7744726167000000000000000000000000000000000000000000008152506004908162000117919062000588565b506040518060400160405280600481526020017f4452414700000000000000000000000000000000000000000000000000000000815250600690816200015e919062000588565b506012600560006101000a81548160ff021916908360ff1602179055506b1027e72f1f128130880000006003819055506a52b7d2dcc80cd2e4000000600781905550600354600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600354604051620002f8919062000680565b60405180910390a36200069d565b600033905090565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200039057607f821691505b602082108103620003a657620003a562000348565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620004107fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620003d1565b6200041c8683620003d1565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000469620004636200045d8462000434565b6200043e565b62000434565b9050919050565b6000819050919050565b620004858362000448565b6200049d620004948262000470565b848454620003de565b825550505050565b600090565b620004b4620004a5565b620004c18184846200047a565b505050565b5b81811015620004e957620004dd600082620004aa565b600181019050620004c7565b5050565b601f82111562000538576200050281620003ac565b6200050d84620003c1565b810160208510156200051d578190505b620005356200052c85620003c1565b830182620004c6565b50505b505050565b600082821c905092915050565b60006200055d600019846008026200053d565b1980831691505092915050565b60006200057883836200054a565b9150826002028217905092915050565b62000593826200030e565b67ffffffffffffffff811115620005af57620005ae62000319565b5b620005bb825462000377565b620005c8828285620004ed565b600060209050601f831160018114620006005760008415620005eb578287015190505b620005f785826200056a565b86555062000667565b601f1984166200061086620003ac565b60005b828110156200063a5784890151825560018201915060208501945060208101905062000613565b868310156200065a578489015162000656601f8916826200054a565b8355505b6001600288020188555050505b505050505050565b6200067a8162000434565b82525050565b60006020820190506200069760008301846200066f565b92915050565b612be380620006ad6000396000f3fe608060405234801561001057600080fd5b50600436106101cf5760003560e01c8063715018a61161010457806395d89b41116100a2578063dd62ed3e11610071578063dd62ed3e14610544578063e6c0625714610574578063eba4c333146105a4578063f2fde38b146105c0576101cf565b806395d89b41146104aa578063a457c2d7146104c8578063a9059cbb146104f8578063bab54f8c14610528576101cf565b8063893d20e8116100de578063893d20e8146104365780638da5cb5b14610454578063923ffc141461047257806392f428701461048e576101cf565b8063715018a6146103f257806371fc4688146103fc5780637d076b3014610418576101cf565b80633f131c6a116101715780634e3137151161014b5780634e313715146103465780634fbee1931461037657806354e5270a146103a657806370a08231146103c2576101cf565b80633f131c6a146102dc57806341550f2e146102f857806342966c6814610316576101cf565b806323b872dd116101ad57806323b872dd1461024057806328be76d314610270578063313ce5671461028e57806339509351146102ac576101cf565b806306fdde03146101d4578063095ea7b3146101f257806318160ddd14610222575b600080fd5b6101dc6105dc565b6040516101e991906120e0565b60405180910390f35b61020c600480360381019061020791906121a0565b61066e565b60405161021991906121fb565b60405180910390f35b61022a61068c565b6040516102379190612225565b60405180910390f35b61025a60048036038101906102559190612240565b610696565b60405161026791906121fb565b60405180910390f35b61027861076f565b6040516102859190612225565b60405180910390f35b610296610779565b6040516102a391906122af565b60405180910390f35b6102c660048036038101906102c191906121a0565b610790565b6040516102d391906121fb565b60405180910390f35b6102f660048036038101906102f191906122ca565b610843565b005b6103006108e2565b60405161030d9190612225565b60405180910390f35b610330600480360381019061032b91906122ca565b6108ec565b60405161033d91906121fb565b60405180910390f35b610360600480360381019061035b91906122f7565b610908565b60405161036d91906121fb565b60405180910390f35b610390600480360381019061038b91906122f7565b61095e565b60405161039d91906121fb565b60405180910390f35b6103c060048036038101906103bb91906122f7565b6109b4565b005b6103dc60048036038101906103d791906122f7565b610b30565b6040516103e99190612225565b60405180910390f35b6103fa610b79565b005b610416600480360381019061041191906122ca565b610ccc565b005b610420610daf565b60405161042d9190612225565b60405180910390f35b61043e610db9565b60405161044b9190612333565b60405180910390f35b61045c610dc8565b6040516104699190612333565b60405180910390f35b61048c600480360381019061048791906123b3565b610df1565b005b6104a860048036038101906104a391906123b3565b610f80565b005b6104b261110f565b6040516104bf91906120e0565b60405180910390f35b6104e260048036038101906104dd91906121a0565b6111a1565b6040516104ef91906121fb565b60405180910390f35b610512600480360381019061050d91906121a0565b61126e565b60405161051f91906121fb565b60405180910390f35b610542600480360381019061053d91906122f7565b61128c565b005b61055e60048036038101906105599190612400565b611409565b60405161056b9190612225565b60405180910390f35b61058e600480360381019061058991906122f7565b611490565b60405161059b91906121fb565b60405180910390f35b6105be60048036038101906105b991906122ca565b6114b0565b005b6105da60048036038101906105d591906122f7565b611593565b005b6060600480546105eb9061246f565b80601f01602080910402602001604051908101604052809291908181526020018280546106179061246f565b80156106645780601f1061063957610100808354040283529160200191610664565b820191906000526020600020905b81548152906001019060200180831161064757829003601f168201915b5050505050905090565b600061068261067b611634565b848461163c565b6001905092915050565b6000600354905090565b60006106a3848484611805565b610764846106af611634565b61075f85604051806060016040528060288152602001612b6160289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610715611634565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ac79092919063ffffffff16565b61163c565b600190509392505050565b6000600854905090565b6000600560009054906101000a900460ff16905090565b600061083961079d611634565b8461083485600260006107ae611634565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b2b90919063ffffffff16565b61163c565b6001905092915050565b61084b611634565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108cf906124ec565b60405180910390fd5b80600a8190555050565b6000600a54905090565b60006108ff6108f9611634565b83611b89565b60019050919050565b6000600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6109bc611634565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a49576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a40906124ec565b60405180910390fd5b600b60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610ad5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610acc9061257e565b60405180910390fd5b6000600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610b81611634565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c0e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c05906124ec565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610cd4611634565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d61576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d58906124ec565b60405180910390fd5b6032811115610da5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9c906125ea565b60405180910390fd5b8060088190555050565b6000600954905090565b6000610dc3610dc8565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610df9611634565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e86576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e7d906124ec565b60405180910390fd5b60005b82829050811015610f7b576000838383818110610ea957610ea861260a565b5b9050602002016020810190610ebe91906122f7565b90506000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df76000604051610f5f91906121fb565b60405180910390a2508080610f7390612668565b915050610e89565b505050565b610f88611634565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611015576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100c906124ec565b60405180910390fd5b60005b8282905081101561110a5760008383838181106110385761103761260a565b5b905060200201602081019061104d91906122f7565b90506001600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df760016040516110ee91906121fb565b60405180910390a250808061110290612668565b915050611018565b505050565b60606006805461111e9061246f565b80601f016020809104026020016040519081016040528092919081815260200182805461114a9061246f565b80156111975780601f1061116c57610100808354040283529160200191611197565b820191906000526020600020905b81548152906001019060200180831161117a57829003601f168201915b5050505050905090565b60006112646111ae611634565b8461125f85604051806060016040528060258152602001612b8960259139600260006111d8611634565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ac79092919063ffffffff16565b61163c565b6001905092915050565b600061128261127b611634565b8484611805565b6001905092915050565b611294611634565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611321576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611318906124ec565b60405180910390fd5b600b60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156113ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113a590612722565b60405180910390fd5b6001600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600b6020528060005260406000206000915054906101000a900460ff1681565b6114b8611634565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611545576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161153c906124ec565b60405180910390fd5b6032811115611589576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611580906125ea565b60405180910390fd5b8060098190555050565b61159b611634565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611628576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161161f906124ec565b60405180910390fd5b61163181611d2c565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036116ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116a2906127b4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361171a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171190612846565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516117f89190612225565b60405180910390a3505050565b600060019050600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806118ac5750600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156118b657600090505b600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561195a5750600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561196457600090505b6007546003541161197457600090505b8015611ab6576000600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156119d85760085490506119de565b60095490505b6000811115611ab4576000606482856119f79190612866565b611a0191906128ef565b9050600754611a1b82600354611e5890919063ffffffff16565b1015611a3b57611a38600754600354611e5890919063ffffffff16565b90505b8084611a479190612920565b935060006064600a5483611a5b9190612866565b611a6591906128ef565b905060008183611a759190612920565b9050611a8c81600354611e5890919063ffffffff16565b600381905550611a9e88600083611ea2565b611ab088611aaa610dc8565b84611ea2565b5050505b505b611ac1848484611ea2565b50505050565b6000838311158290611b0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b0691906120e0565b60405180910390fd5b5060008385611b1e9190612920565b9050809150509392505050565b6000808284611b3a9190612954565b905083811015611b7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b76906129d4565b60405180910390fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611bf8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bef90612a66565b60405180910390fd5b611c6481604051806060016040528060228152602001612b1960229139600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ac79092919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611cbc81600354611e5890919063ffffffff16565b600381905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611d209190612225565b60405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611d9b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d9290612af8565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000611e9a83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611ac7565b905092915050565b611f0e81604051806060016040528060268152602001612b3b60269139600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ac79092919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611fa381600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b2b90919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516120439190612225565b60405180910390a3505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561208a57808201518184015260208101905061206f565b60008484015250505050565b6000601f19601f8301169050919050565b60006120b282612050565b6120bc818561205b565b93506120cc81856020860161206c565b6120d581612096565b840191505092915050565b600060208201905081810360008301526120fa81846120a7565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006121378261210c565b9050919050565b6121478161212c565b811461215257600080fd5b50565b6000813590506121648161213e565b92915050565b6000819050919050565b61217d8161216a565b811461218857600080fd5b50565b60008135905061219a81612174565b92915050565b600080604083850312156121b7576121b6612102565b5b60006121c585828601612155565b92505060206121d68582860161218b565b9150509250929050565b60008115159050919050565b6121f5816121e0565b82525050565b600060208201905061221060008301846121ec565b92915050565b61221f8161216a565b82525050565b600060208201905061223a6000830184612216565b92915050565b60008060006060848603121561225957612258612102565b5b600061226786828701612155565b935050602061227886828701612155565b92505060406122898682870161218b565b9150509250925092565b600060ff82169050919050565b6122a981612293565b82525050565b60006020820190506122c460008301846122a0565b92915050565b6000602082840312156122e0576122df612102565b5b60006122ee8482850161218b565b91505092915050565b60006020828403121561230d5761230c612102565b5b600061231b84828501612155565b91505092915050565b61232d8161212c565b82525050565b60006020820190506123486000830184612324565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126123735761237261234e565b5b8235905067ffffffffffffffff8111156123905761238f612353565b5b6020830191508360208202830111156123ac576123ab612358565b5b9250929050565b600080602083850312156123ca576123c9612102565b5b600083013567ffffffffffffffff8111156123e8576123e7612107565b5b6123f48582860161235d565b92509250509250929050565b6000806040838503121561241757612416612102565b5b600061242585828601612155565b925050602061243685828601612155565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061248757607f821691505b60208210810361249a57612499612440565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006124d660208361205b565b91506124e1826124a0565b602082019050919050565b60006020820190508181036000830152612505816124c9565b9050919050565b7f5061697220697320616c7265616479207468652076616c7565206f662065786360008201527f6c75646564000000000000000000000000000000000000000000000000000000602082015250565b600061256860258361205b565b91506125738261250c565b604082019050919050565b600060208201905081810360008301526125978161255b565b9050919050565b7f46656573206d757374206265206c657373207468616e20353025000000000000600082015250565b60006125d4601a8361205b565b91506125df8261259e565b602082019050919050565b60006020820190508181036000830152612603816125c7565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006126738261216a565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036126a5576126a4612639565b5b600182019050919050565b7f5061697220697320616c7265616479207468652076616c7565206f6620696e6360008201527f6c75646564000000000000000000000000000000000000000000000000000000602082015250565b600061270c60258361205b565b9150612717826126b0565b604082019050919050565b6000602082019050818103600083015261273b816126ff565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061279e60248361205b565b91506127a982612742565b604082019050919050565b600060208201905081810360008301526127cd81612791565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061283060228361205b565b915061283b826127d4565b604082019050919050565b6000602082019050818103600083015261285f81612823565b9050919050565b60006128718261216a565b915061287c8361216a565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156128b5576128b4612639565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006128fa8261216a565b91506129058361216a565b925082612915576129146128c0565b5b828204905092915050565b600061292b8261216a565b91506129368361216a565b925082820390508181111561294e5761294d612639565b5b92915050565b600061295f8261216a565b915061296a8361216a565b925082820190508082111561298257612981612639565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006129be601b8361205b565b91506129c982612988565b602082019050919050565b600060208201905081810360008301526129ed816129b1565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b6000612a5060218361205b565b9150612a5b826129f4565b604082019050919050565b60006020820190508181036000830152612a7f81612a43565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612ae260268361205b565b9150612aed82612a86565b604082019050919050565b60006020820190508181036000830152612b1181612ad5565b905091905056fe45524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220853265fa3dc77de08851d1182737a071fbab1902b07858ddcdc44dc74eea1ea564736f6c63430008100033

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101cf5760003560e01c8063715018a61161010457806395d89b41116100a2578063dd62ed3e11610071578063dd62ed3e14610544578063e6c0625714610574578063eba4c333146105a4578063f2fde38b146105c0576101cf565b806395d89b41146104aa578063a457c2d7146104c8578063a9059cbb146104f8578063bab54f8c14610528576101cf565b8063893d20e8116100de578063893d20e8146104365780638da5cb5b14610454578063923ffc141461047257806392f428701461048e576101cf565b8063715018a6146103f257806371fc4688146103fc5780637d076b3014610418576101cf565b80633f131c6a116101715780634e3137151161014b5780634e313715146103465780634fbee1931461037657806354e5270a146103a657806370a08231146103c2576101cf565b80633f131c6a146102dc57806341550f2e146102f857806342966c6814610316576101cf565b806323b872dd116101ad57806323b872dd1461024057806328be76d314610270578063313ce5671461028e57806339509351146102ac576101cf565b806306fdde03146101d4578063095ea7b3146101f257806318160ddd14610222575b600080fd5b6101dc6105dc565b6040516101e991906120e0565b60405180910390f35b61020c600480360381019061020791906121a0565b61066e565b60405161021991906121fb565b60405180910390f35b61022a61068c565b6040516102379190612225565b60405180910390f35b61025a60048036038101906102559190612240565b610696565b60405161026791906121fb565b60405180910390f35b61027861076f565b6040516102859190612225565b60405180910390f35b610296610779565b6040516102a391906122af565b60405180910390f35b6102c660048036038101906102c191906121a0565b610790565b6040516102d391906121fb565b60405180910390f35b6102f660048036038101906102f191906122ca565b610843565b005b6103006108e2565b60405161030d9190612225565b60405180910390f35b610330600480360381019061032b91906122ca565b6108ec565b60405161033d91906121fb565b60405180910390f35b610360600480360381019061035b91906122f7565b610908565b60405161036d91906121fb565b60405180910390f35b610390600480360381019061038b91906122f7565b61095e565b60405161039d91906121fb565b60405180910390f35b6103c060048036038101906103bb91906122f7565b6109b4565b005b6103dc60048036038101906103d791906122f7565b610b30565b6040516103e99190612225565b60405180910390f35b6103fa610b79565b005b610416600480360381019061041191906122ca565b610ccc565b005b610420610daf565b60405161042d9190612225565b60405180910390f35b61043e610db9565b60405161044b9190612333565b60405180910390f35b61045c610dc8565b6040516104699190612333565b60405180910390f35b61048c600480360381019061048791906123b3565b610df1565b005b6104a860048036038101906104a391906123b3565b610f80565b005b6104b261110f565b6040516104bf91906120e0565b60405180910390f35b6104e260048036038101906104dd91906121a0565b6111a1565b6040516104ef91906121fb565b60405180910390f35b610512600480360381019061050d91906121a0565b61126e565b60405161051f91906121fb565b60405180910390f35b610542600480360381019061053d91906122f7565b61128c565b005b61055e60048036038101906105599190612400565b611409565b60405161056b9190612225565b60405180910390f35b61058e600480360381019061058991906122f7565b611490565b60405161059b91906121fb565b60405180910390f35b6105be60048036038101906105b991906122ca565b6114b0565b005b6105da60048036038101906105d591906122f7565b611593565b005b6060600480546105eb9061246f565b80601f01602080910402602001604051908101604052809291908181526020018280546106179061246f565b80156106645780601f1061063957610100808354040283529160200191610664565b820191906000526020600020905b81548152906001019060200180831161064757829003601f168201915b5050505050905090565b600061068261067b611634565b848461163c565b6001905092915050565b6000600354905090565b60006106a3848484611805565b610764846106af611634565b61075f85604051806060016040528060288152602001612b6160289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610715611634565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ac79092919063ffffffff16565b61163c565b600190509392505050565b6000600854905090565b6000600560009054906101000a900460ff16905090565b600061083961079d611634565b8461083485600260006107ae611634565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b2b90919063ffffffff16565b61163c565b6001905092915050565b61084b611634565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108cf906124ec565b60405180910390fd5b80600a8190555050565b6000600a54905090565b60006108ff6108f9611634565b83611b89565b60019050919050565b6000600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6109bc611634565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a49576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a40906124ec565b60405180910390fd5b600b60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610ad5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610acc9061257e565b60405180910390fd5b6000600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610b81611634565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c0e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c05906124ec565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610cd4611634565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d61576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d58906124ec565b60405180910390fd5b6032811115610da5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9c906125ea565b60405180910390fd5b8060088190555050565b6000600954905090565b6000610dc3610dc8565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610df9611634565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e86576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e7d906124ec565b60405180910390fd5b60005b82829050811015610f7b576000838383818110610ea957610ea861260a565b5b9050602002016020810190610ebe91906122f7565b90506000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df76000604051610f5f91906121fb565b60405180910390a2508080610f7390612668565b915050610e89565b505050565b610f88611634565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611015576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100c906124ec565b60405180910390fd5b60005b8282905081101561110a5760008383838181106110385761103761260a565b5b905060200201602081019061104d91906122f7565b90506001600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df760016040516110ee91906121fb565b60405180910390a250808061110290612668565b915050611018565b505050565b60606006805461111e9061246f565b80601f016020809104026020016040519081016040528092919081815260200182805461114a9061246f565b80156111975780601f1061116c57610100808354040283529160200191611197565b820191906000526020600020905b81548152906001019060200180831161117a57829003601f168201915b5050505050905090565b60006112646111ae611634565b8461125f85604051806060016040528060258152602001612b8960259139600260006111d8611634565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ac79092919063ffffffff16565b61163c565b6001905092915050565b600061128261127b611634565b8484611805565b6001905092915050565b611294611634565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611321576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611318906124ec565b60405180910390fd5b600b60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156113ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113a590612722565b60405180910390fd5b6001600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600b6020528060005260406000206000915054906101000a900460ff1681565b6114b8611634565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611545576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161153c906124ec565b60405180910390fd5b6032811115611589576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611580906125ea565b60405180910390fd5b8060098190555050565b61159b611634565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611628576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161161f906124ec565b60405180910390fd5b61163181611d2c565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036116ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116a2906127b4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361171a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171190612846565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516117f89190612225565b60405180910390a3505050565b600060019050600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806118ac5750600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156118b657600090505b600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561195a5750600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561196457600090505b6007546003541161197457600090505b8015611ab6576000600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156119d85760085490506119de565b60095490505b6000811115611ab4576000606482856119f79190612866565b611a0191906128ef565b9050600754611a1b82600354611e5890919063ffffffff16565b1015611a3b57611a38600754600354611e5890919063ffffffff16565b90505b8084611a479190612920565b935060006064600a5483611a5b9190612866565b611a6591906128ef565b905060008183611a759190612920565b9050611a8c81600354611e5890919063ffffffff16565b600381905550611a9e88600083611ea2565b611ab088611aaa610dc8565b84611ea2565b5050505b505b611ac1848484611ea2565b50505050565b6000838311158290611b0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b0691906120e0565b60405180910390fd5b5060008385611b1e9190612920565b9050809150509392505050565b6000808284611b3a9190612954565b905083811015611b7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b76906129d4565b60405180910390fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611bf8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bef90612a66565b60405180910390fd5b611c6481604051806060016040528060228152602001612b1960229139600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ac79092919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611cbc81600354611e5890919063ffffffff16565b600381905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611d209190612225565b60405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611d9b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d9290612af8565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000611e9a83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611ac7565b905092915050565b611f0e81604051806060016040528060268152602001612b3b60269139600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ac79092919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611fa381600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b2b90919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516120439190612225565b60405180910390a3505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561208a57808201518184015260208101905061206f565b60008484015250505050565b6000601f19601f8301169050919050565b60006120b282612050565b6120bc818561205b565b93506120cc81856020860161206c565b6120d581612096565b840191505092915050565b600060208201905081810360008301526120fa81846120a7565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006121378261210c565b9050919050565b6121478161212c565b811461215257600080fd5b50565b6000813590506121648161213e565b92915050565b6000819050919050565b61217d8161216a565b811461218857600080fd5b50565b60008135905061219a81612174565b92915050565b600080604083850312156121b7576121b6612102565b5b60006121c585828601612155565b92505060206121d68582860161218b565b9150509250929050565b60008115159050919050565b6121f5816121e0565b82525050565b600060208201905061221060008301846121ec565b92915050565b61221f8161216a565b82525050565b600060208201905061223a6000830184612216565b92915050565b60008060006060848603121561225957612258612102565b5b600061226786828701612155565b935050602061227886828701612155565b92505060406122898682870161218b565b9150509250925092565b600060ff82169050919050565b6122a981612293565b82525050565b60006020820190506122c460008301846122a0565b92915050565b6000602082840312156122e0576122df612102565b5b60006122ee8482850161218b565b91505092915050565b60006020828403121561230d5761230c612102565b5b600061231b84828501612155565b91505092915050565b61232d8161212c565b82525050565b60006020820190506123486000830184612324565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126123735761237261234e565b5b8235905067ffffffffffffffff8111156123905761238f612353565b5b6020830191508360208202830111156123ac576123ab612358565b5b9250929050565b600080602083850312156123ca576123c9612102565b5b600083013567ffffffffffffffff8111156123e8576123e7612107565b5b6123f48582860161235d565b92509250509250929050565b6000806040838503121561241757612416612102565b5b600061242585828601612155565b925050602061243685828601612155565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061248757607f821691505b60208210810361249a57612499612440565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006124d660208361205b565b91506124e1826124a0565b602082019050919050565b60006020820190508181036000830152612505816124c9565b9050919050565b7f5061697220697320616c7265616479207468652076616c7565206f662065786360008201527f6c75646564000000000000000000000000000000000000000000000000000000602082015250565b600061256860258361205b565b91506125738261250c565b604082019050919050565b600060208201905081810360008301526125978161255b565b9050919050565b7f46656573206d757374206265206c657373207468616e20353025000000000000600082015250565b60006125d4601a8361205b565b91506125df8261259e565b602082019050919050565b60006020820190508181036000830152612603816125c7565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006126738261216a565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036126a5576126a4612639565b5b600182019050919050565b7f5061697220697320616c7265616479207468652076616c7565206f6620696e6360008201527f6c75646564000000000000000000000000000000000000000000000000000000602082015250565b600061270c60258361205b565b9150612717826126b0565b604082019050919050565b6000602082019050818103600083015261273b816126ff565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061279e60248361205b565b91506127a982612742565b604082019050919050565b600060208201905081810360008301526127cd81612791565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061283060228361205b565b915061283b826127d4565b604082019050919050565b6000602082019050818103600083015261285f81612823565b9050919050565b60006128718261216a565b915061287c8361216a565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156128b5576128b4612639565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006128fa8261216a565b91506129058361216a565b925082612915576129146128c0565b5b828204905092915050565b600061292b8261216a565b91506129368361216a565b925082820390508181111561294e5761294d612639565b5b92915050565b600061295f8261216a565b915061296a8361216a565b925082820190508082111561298257612981612639565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006129be601b8361205b565b91506129c982612988565b602082019050919050565b600060208201905081810360008301526129ed816129b1565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b6000612a5060218361205b565b9150612a5b826129f4565b604082019050919050565b60006020820190508181036000830152612a7f81612a43565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612ae260268361205b565b9150612aed82612a86565b604082019050919050565b60006020820190508181036000830152612b1181612ad5565b905091905056fe45524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220853265fa3dc77de08851d1182737a071fbab1902b07858ddcdc44dc74eea1ea564736f6c63430008100033

Deployed Bytecode Sourcemap

4048:8417:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5469:85;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6154:154;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5562:93;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6316:446;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12022:97;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5279:85;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6770:285;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12234:120;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12362:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7456:122;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11492:115;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10930:126;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11064:207;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5663:112;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3510:140;;;:::i;:::-;;11615:197;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12127:99;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5186:85;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3296:79;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10543:379;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10155:380;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5372:89;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7063:385;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5783:194;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11279:205;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5985:161;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4565:42;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11820:194;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3658:109;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5469:85;5508:13;5541:5;5534:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5469:85;:::o;6154:154::-;6222:4;6239:39;6248:12;:10;:12::i;:::-;6262:7;6271:6;6239:8;:39::i;:::-;6296:4;6289:11;;6154:154;;;;:::o;5562:93::-;5608:7;5635:12;;5628:19;;5562:93;:::o;6316:446::-;6441:4;6458:43;6475:6;6483:9;6494:6;6458:16;:43::i;:::-;6512:220;6535:6;6556:12;:10;:12::i;:::-;6583:138;6639:6;6583:138;;;;;;;;;;;;;;;;;:11;:19;6595:6;6583:19;;;;;;;;;;;;;;;:33;6603:12;:10;:12::i;:::-;6583:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;6512:8;:220::i;:::-;6750:4;6743:11;;6316:446;;;;;:::o;12022:97::-;12069:7;12096:15;;12089:22;;12022:97;:::o;5279:85::-;5322:5;5347:9;;;;;;;;;;;5340:16;;5279:85;:::o;6770:285::-;6875:4;6892:133;6915:12;:10;:12::i;:::-;6942:7;6964:50;7003:10;6964:11;:25;6976:12;:10;:12::i;:::-;6964:25;;;;;;;;;;;;;;;:34;6990:7;6964:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;6892:8;:133::i;:::-;7043:4;7036:11;;6770:285;;;;:::o;12234:120::-;3433:12;:10;:12::i;:::-;3423:22;;:6;;;;;;;;;;:22;;;3415:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12333:13:::1;12316:14;:30;;;;12234:120:::0;:::o;12362:100::-;12413:7;12440:14;;12433:21;;12362:100;:::o;7456:122::-;7504:4;7521:27;7527:12;:10;:12::i;:::-;7541:6;7521:5;:27::i;:::-;7566:4;7559:11;;7456:122;;;:::o;11492:115::-;11559:4;11583:10;:16;11594:4;11583:16;;;;;;;;;;;;;;;;;;;;;;;;;11576:23;;11492:115;;;:::o;10930:126::-;10996:4;11020:19;:28;11040:7;11020:28;;;;;;;;;;;;;;;;;;;;;;;;;11013:35;;10930:126;;;:::o;11064:207::-;3433:12;:10;:12::i;:::-;3423:22;;:6;;;;;;;;;;:22;;;3415:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11170:10:::1;:16;11181:4;11170:16;;;;;;;;;;;;;;;;;;;;;;;;;11162:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;11258:5;11239:10;:16;11250:4;11239:16;;;;;;;;;;;;;;;;:24;;;;;;;;;;;;;;;;;;11064:207:::0;:::o;5663:112::-;5722:7;5749:9;:18;5759:7;5749:18;;;;;;;;;;;;;;;;5742:25;;5663:112;;;:::o;3510:140::-;3433:12;:10;:12::i;:::-;3423:22;;:6;;;;;;;;;;:22;;;3415:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3609:1:::1;3572:40;;3593:6;::::0;::::1;;;;;;;;3572:40;;;;;;;;;;;;3640:1;3623:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;3510:140::o:0;11615:197::-;3433:12;:10;:12::i;:::-;3423:22;;:6;;;;;;;;;;:22;;;3415:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11718:2:::1;11700:14;:20;;11692:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;11790:14;11772:15;:32;;;;11615:197:::0;:::o;12127:99::-;12175:7;12202:16;;12195:23;;12127:99;:::o;5186:85::-;5229:7;5256;:5;:7::i;:::-;5249:14;;5186:85;:::o;3296:79::-;3334:7;3361:6;;;;;;;;;;;3354:13;;3296:79;:::o;10543:379::-;3433:12;:10;:12::i;:::-;3423:22;;:6;;;;;;;;;;:22;;;3415:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10630:9:::1;10625:290;10649:8;;:15;;10645:1;:19;10625:290;;;10686:15;10704:8;;10713:1;10704:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;10686:29;;10847:5;10816:19;:28;10836:7;10816:28;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;10888:7;10872:31;;;10897:5;10872:31;;;;;;:::i;:::-;;;;;;;;10671:244;10666:3;;;;;:::i;:::-;;;;10625:290;;;;10543:379:::0;;:::o;10155:380::-;3433:12;:10;:12::i;:::-;3423:22;;:6;;;;;;;;;;:22;;;3415:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10244:9:::1;10239:289;10263:8;;:15;;10259:1;:19;10239:289;;;10300:15;10318:8;;10327:1;10318:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;10300:29;;10462:4;10431:19;:28;10451:7;10431:28;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;10502:7;10486:30;;;10511:4;10486:30;;;;;;:::i;:::-;;;;;;;;10285:243;10280:3;;;;;:::i;:::-;;;;10239:289;;;;10155:380:::0;;:::o;5372:89::-;5413:13;5446:7;5439:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5372:89;:::o;7063:385::-;7173:4;7190:228;7213:12;:10;:12::i;:::-;7240:7;7262:145;7319:15;7262:145;;;;;;;;;;;;;;;;;:11;:25;7274:12;:10;:12::i;:::-;7262:25;;;;;;;;;;;;;;;:34;7288:7;7262:34;;;;;;;;;;;;;;;;:38;;:145;;;;;:::i;:::-;7190:8;:228::i;:::-;7436:4;7429:11;;7063:385;;;;:::o;5783:194::-;5879:4;5898:49;5915:12;:10;:12::i;:::-;5929:9;5940:6;5898:16;:49::i;:::-;5965:4;5958:11;;5783:194;;;;:::o;11279:205::-;3433:12;:10;:12::i;:::-;3423:22;;:6;;;;;;;;;;:22;;;3415:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11384:10:::1;:16;11395:4;11384:16;;;;;;;;;;;;;;;;;;;;;;;;;11383:17;11375:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11472:4;11453:10;:16;11464:4;11453:16;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;11279:205:::0;:::o;5985:161::-;6084:7;6111:11;:18;6123:5;6111:18;;;;;;;;;;;;;;;:27;6130:7;6111:27;;;;;;;;;;;;;;;;6104:34;;5985:161;;;;:::o;4565:42::-;;;;;;;;;;;;;;;;;;;;;;:::o;11820:194::-;3433:12;:10;:12::i;:::-;3423:22;;:6;;;;;;;;;;:22;;;3415:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11926:2:::1;11907:15;:21;;11899:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;11991:15;11972:16;:34;;;;11820:194:::0;:::o;3658:109::-;3433:12;:10;:12::i;:::-;3423:22;;:6;;;;;;;;;;:22;;;3415:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3731:28:::1;3750:8;3731:18;:28::i;:::-;3658:109:::0;:::o;1149:98::-;1202:7;1229:10;1222:17;;1149:98;:::o;9772:338::-;9883:1;9866:19;;:5;:19;;;9858:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9964:1;9945:21;;:7;:21;;;9937:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10048:6;10018:11;:18;10030:5;10018:18;;;;;;;;;;;;;;;:27;10037:7;10018:27;;;;;;;;;;;;;;;:36;;;;10086:7;10070:32;;10079:5;10070:32;;;10095:6;10070:32;;;;;;:::i;:::-;;;;;;;;9772:338;;;:::o;7586:1400::-;7719:12;7734:4;7719:19;;7753;:27;7773:6;7753:27;;;;;;;;;;;;;;;;;;;;;;;;;:61;;;;7784:19;:30;7804:9;7784:30;;;;;;;;;;;;;;;;;;;;;;;;;7753:61;7749:109;;;7841:5;7831:15;;7749:109;7875:10;:18;7886:6;7875:18;;;;;;;;;;;;;;;;;;;;;;;;;7874:19;:45;;;;;7898:10;:21;7909:9;7898:21;;;;;;;;;;;;;;;;;;;;;;;;;7897:22;7874:45;7870:93;;;7946:5;7936:15;;7870:93;7995:20;;7979:12;;:36;7975:84;;8042:5;8032:15;;7975:84;8075:7;8071:851;;;8099:18;8136:10;:18;8147:6;8136:18;;;;;;;;;;;;;;;;;;;;;;;;;8132:157;;;8188:15;;8175:28;;8132:157;;;8257:16;;8244:29;;8132:157;8320:1;8307:10;:14;8303:608;;;8342:12;8381:3;8367:10;8358:6;:19;;;;:::i;:::-;8357:27;;;;:::i;:::-;8342:42;;8434:20;;8409:22;8426:4;8409:12;;:16;;:22;;;;:::i;:::-;:45;8405:139;;;8486:38;8503:20;;8486:12;;:16;;:38;;;;:::i;:::-;8479:45;;8405:139;8582:4;8573:6;:13;;;;:::i;:::-;8564:22;;8607:17;8653:3;8635:14;;8628:4;:21;;;;:::i;:::-;8627:29;;;;:::i;:::-;8607:49;;8675:19;8704:9;8697:4;:16;;;;:::i;:::-;8675:38;;8749:29;8766:11;8749:12;;:16;;:29;;;;:::i;:::-;8734:12;:44;;;;8797:42;8807:6;8823:1;8827:11;8797:9;:42::i;:::-;8858:37;8868:6;8876:7;:5;:7::i;:::-;8885:9;8858;:37::i;:::-;8323:588;;;8303:608;8084:838;8071:851;8942:36;8952:6;8960:9;8971:6;8942:9;:36::i;:::-;7706:1280;7586:1400;;;:::o;1733:226::-;1853:7;1886:1;1881;:6;;1889:12;1873:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1913:9;1929:1;1925;:5;;;;:::i;:::-;1913:17;;1950:1;1943:8;;;1733:226;;;;;:::o;1400:181::-;1458:7;1478:9;1494:1;1490;:5;;;;:::i;:::-;1478:17;;1519:1;1514;:6;;1506:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1572:1;1565:8;;;1400:181;;;;:::o;9379:385::-;9474:1;9455:21;;:7;:21;;;9447:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9548:105;9585:6;9548:105;;;;;;;;;;;;;;;;;:9;:18;9558:7;9548:18;;;;;;;;;;;;;;;;:22;;:105;;;;;:::i;:::-;9527:9;:18;9537:7;9527:18;;;;;;;;;;;;;;;:126;;;;9679:24;9696:6;9679:12;;:16;;:24;;;;:::i;:::-;9664:12;:39;;;;9745:1;9719:37;;9728:7;9719:37;;;9749:6;9719:37;;;;;;:::i;:::-;;;;;;;;9379:385;;:::o;3775:266::-;3883:1;3863:22;;:8;:22;;;3841:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;3996:8;3967:38;;3988:6;;;;;;;;;;3967:38;;;;;;;;;;;;4025:8;4016:6;;:17;;;;;;;;;;;;;;;;;;3775:266;:::o;1589:136::-;1647:7;1674:43;1678:1;1681;1674:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1667:50;;1589:136;;;;:::o;8994:377::-;9138:108;9174:6;9138:108;;;;;;;;;;;;;;;;;:9;:17;9148:6;9138:17;;;;;;;;;;;;;;;;:21;;:108;;;;;:::i;:::-;9118:9;:17;9128:6;9118:17;;;;;;;;;;;;;;;:128;;;;9280:32;9305:6;9280:9;:20;9290:9;9280:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;9257:9;:20;9267:9;9257:20;;;;;;;;;;;;;;;:55;;;;9345:9;9328:35;;9337:6;9328:35;;;9356:6;9328:35;;;;;;:::i;:::-;;;;;;;;8994:377;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:329::-;4912:6;4961:2;4949:9;4940:7;4936:23;4932:32;4929:119;;;4967:79;;:::i;:::-;4929:119;5087:1;5112:53;5157:7;5148:6;5137:9;5133:22;5112:53;:::i;:::-;5102:63;;5058:117;4853:329;;;;:::o;5188:::-;5247:6;5296:2;5284:9;5275:7;5271:23;5267:32;5264:119;;;5302:79;;:::i;:::-;5264:119;5422:1;5447:53;5492:7;5483:6;5472:9;5468:22;5447:53;:::i;:::-;5437:63;;5393:117;5188:329;;;;:::o;5523:118::-;5610:24;5628:5;5610:24;:::i;:::-;5605:3;5598:37;5523:118;;:::o;5647:222::-;5740:4;5778:2;5767:9;5763:18;5755:26;;5791:71;5859:1;5848:9;5844:17;5835:6;5791:71;:::i;:::-;5647:222;;;;:::o;5875:117::-;5984:1;5981;5974:12;5998:117;6107:1;6104;6097:12;6121:117;6230:1;6227;6220:12;6261:568;6334:8;6344:6;6394:3;6387:4;6379:6;6375:17;6371:27;6361:122;;6402:79;;:::i;:::-;6361:122;6515:6;6502:20;6492:30;;6545:18;6537:6;6534:30;6531:117;;;6567:79;;:::i;:::-;6531:117;6681:4;6673:6;6669:17;6657:29;;6735:3;6727:4;6719:6;6715:17;6705:8;6701:32;6698:41;6695:128;;;6742:79;;:::i;:::-;6695:128;6261:568;;;;;:::o;6835:559::-;6921:6;6929;6978:2;6966:9;6957:7;6953:23;6949:32;6946:119;;;6984:79;;:::i;:::-;6946:119;7132:1;7121:9;7117:17;7104:31;7162:18;7154:6;7151:30;7148:117;;;7184:79;;:::i;:::-;7148:117;7297:80;7369:7;7360:6;7349:9;7345:22;7297:80;:::i;:::-;7279:98;;;;7075:312;6835:559;;;;;:::o;7400:474::-;7468:6;7476;7525:2;7513:9;7504:7;7500:23;7496:32;7493:119;;;7531:79;;:::i;:::-;7493:119;7651:1;7676:53;7721:7;7712:6;7701:9;7697:22;7676:53;:::i;:::-;7666:63;;7622:117;7778:2;7804:53;7849:7;7840:6;7829:9;7825:22;7804:53;:::i;:::-;7794:63;;7749:118;7400:474;;;;;:::o;7880:180::-;7928:77;7925:1;7918:88;8025:4;8022:1;8015:15;8049:4;8046:1;8039:15;8066:320;8110:6;8147:1;8141:4;8137:12;8127:22;;8194:1;8188:4;8184:12;8215:18;8205:81;;8271:4;8263:6;8259:17;8249:27;;8205:81;8333:2;8325:6;8322:14;8302:18;8299:38;8296:84;;8352:18;;:::i;:::-;8296:84;8117:269;8066:320;;;:::o;8392:182::-;8532:34;8528:1;8520:6;8516:14;8509:58;8392:182;:::o;8580:366::-;8722:3;8743:67;8807:2;8802:3;8743:67;:::i;:::-;8736:74;;8819:93;8908:3;8819:93;:::i;:::-;8937:2;8932:3;8928:12;8921:19;;8580:366;;;:::o;8952:419::-;9118:4;9156:2;9145:9;9141:18;9133:26;;9205:9;9199:4;9195:20;9191:1;9180:9;9176:17;9169:47;9233:131;9359:4;9233:131;:::i;:::-;9225:139;;8952:419;;;:::o;9377:224::-;9517:34;9513:1;9505:6;9501:14;9494:58;9586:7;9581:2;9573:6;9569:15;9562:32;9377:224;:::o;9607:366::-;9749:3;9770:67;9834:2;9829:3;9770:67;:::i;:::-;9763:74;;9846:93;9935:3;9846:93;:::i;:::-;9964:2;9959:3;9955:12;9948:19;;9607:366;;;:::o;9979:419::-;10145:4;10183:2;10172:9;10168:18;10160:26;;10232:9;10226:4;10222:20;10218:1;10207:9;10203:17;10196:47;10260:131;10386:4;10260:131;:::i;:::-;10252:139;;9979:419;;;:::o;10404:176::-;10544:28;10540:1;10532:6;10528:14;10521:52;10404:176;:::o;10586:366::-;10728:3;10749:67;10813:2;10808:3;10749:67;:::i;:::-;10742:74;;10825:93;10914:3;10825:93;:::i;:::-;10943:2;10938:3;10934:12;10927:19;;10586:366;;;:::o;10958:419::-;11124:4;11162:2;11151:9;11147:18;11139:26;;11211:9;11205:4;11201:20;11197:1;11186:9;11182:17;11175:47;11239:131;11365:4;11239:131;:::i;:::-;11231:139;;10958:419;;;:::o;11383:180::-;11431:77;11428:1;11421:88;11528:4;11525:1;11518:15;11552:4;11549:1;11542:15;11569:180;11617:77;11614:1;11607:88;11714:4;11711:1;11704:15;11738:4;11735:1;11728:15;11755:233;11794:3;11817:24;11835:5;11817:24;:::i;:::-;11808:33;;11863:66;11856:5;11853:77;11850:103;;11933:18;;:::i;:::-;11850:103;11980:1;11973:5;11969:13;11962:20;;11755:233;;;:::o;11994:224::-;12134:34;12130:1;12122:6;12118:14;12111:58;12203:7;12198:2;12190:6;12186:15;12179:32;11994:224;:::o;12224:366::-;12366:3;12387:67;12451:2;12446:3;12387:67;:::i;:::-;12380:74;;12463:93;12552:3;12463:93;:::i;:::-;12581:2;12576:3;12572:12;12565:19;;12224:366;;;:::o;12596:419::-;12762:4;12800:2;12789:9;12785:18;12777:26;;12849:9;12843:4;12839:20;12835:1;12824:9;12820:17;12813:47;12877:131;13003:4;12877:131;:::i;:::-;12869:139;;12596:419;;;:::o;13021:223::-;13161:34;13157:1;13149:6;13145:14;13138:58;13230:6;13225:2;13217:6;13213:15;13206:31;13021:223;:::o;13250:366::-;13392:3;13413:67;13477:2;13472:3;13413:67;:::i;:::-;13406:74;;13489:93;13578:3;13489:93;:::i;:::-;13607:2;13602:3;13598:12;13591:19;;13250:366;;;:::o;13622:419::-;13788:4;13826:2;13815:9;13811:18;13803:26;;13875:9;13869:4;13865:20;13861:1;13850:9;13846:17;13839:47;13903:131;14029:4;13903:131;:::i;:::-;13895:139;;13622:419;;;:::o;14047:221::-;14187:34;14183:1;14175:6;14171:14;14164:58;14256:4;14251:2;14243:6;14239:15;14232:29;14047:221;:::o;14274:366::-;14416:3;14437:67;14501:2;14496:3;14437:67;:::i;:::-;14430:74;;14513:93;14602:3;14513:93;:::i;:::-;14631:2;14626:3;14622:12;14615:19;;14274:366;;;:::o;14646:419::-;14812:4;14850:2;14839:9;14835:18;14827:26;;14899:9;14893:4;14889:20;14885:1;14874:9;14870:17;14863:47;14927:131;15053:4;14927:131;:::i;:::-;14919:139;;14646:419;;;:::o;15071:348::-;15111:7;15134:20;15152:1;15134:20;:::i;:::-;15129:25;;15168:20;15186:1;15168:20;:::i;:::-;15163:25;;15356:1;15288:66;15284:74;15281:1;15278:81;15273:1;15266:9;15259:17;15255:105;15252:131;;;15363:18;;:::i;:::-;15252:131;15411:1;15408;15404:9;15393:20;;15071:348;;;;:::o;15425:180::-;15473:77;15470:1;15463:88;15570:4;15567:1;15560:15;15594:4;15591:1;15584:15;15611:185;15651:1;15668:20;15686:1;15668:20;:::i;:::-;15663:25;;15702:20;15720:1;15702:20;:::i;:::-;15697:25;;15741:1;15731:35;;15746:18;;:::i;:::-;15731:35;15788:1;15785;15781:9;15776:14;;15611:185;;;;:::o;15802:194::-;15842:4;15862:20;15880:1;15862:20;:::i;:::-;15857:25;;15896:20;15914:1;15896:20;:::i;:::-;15891:25;;15940:1;15937;15933:9;15925:17;;15964:1;15958:4;15955:11;15952:37;;;15969:18;;:::i;:::-;15952:37;15802:194;;;;:::o;16002:191::-;16042:3;16061:20;16079:1;16061:20;:::i;:::-;16056:25;;16095:20;16113:1;16095:20;:::i;:::-;16090:25;;16138:1;16135;16131:9;16124:16;;16159:3;16156:1;16153:10;16150:36;;;16166:18;;:::i;:::-;16150:36;16002:191;;;;:::o;16199:177::-;16339:29;16335:1;16327:6;16323:14;16316:53;16199:177;:::o;16382:366::-;16524:3;16545:67;16609:2;16604:3;16545:67;:::i;:::-;16538:74;;16621:93;16710:3;16621:93;:::i;:::-;16739:2;16734:3;16730:12;16723:19;;16382:366;;;:::o;16754:419::-;16920:4;16958:2;16947:9;16943:18;16935:26;;17007:9;17001:4;16997:20;16993:1;16982:9;16978:17;16971:47;17035:131;17161:4;17035:131;:::i;:::-;17027:139;;16754:419;;;:::o;17179:220::-;17319:34;17315:1;17307:6;17303:14;17296:58;17388:3;17383:2;17375:6;17371:15;17364:28;17179:220;:::o;17405:366::-;17547:3;17568:67;17632:2;17627:3;17568:67;:::i;:::-;17561:74;;17644:93;17733:3;17644:93;:::i;:::-;17762:2;17757:3;17753:12;17746:19;;17405:366;;;:::o;17777:419::-;17943:4;17981:2;17970:9;17966:18;17958:26;;18030:9;18024:4;18020:20;18016:1;18005:9;18001:17;17994:47;18058:131;18184:4;18058:131;:::i;:::-;18050:139;;17777:419;;;:::o;18202:225::-;18342:34;18338:1;18330:6;18326:14;18319:58;18411:8;18406:2;18398:6;18394:15;18387:33;18202:225;:::o;18433:366::-;18575:3;18596:67;18660:2;18655:3;18596:67;:::i;:::-;18589:74;;18672:93;18761:3;18672:93;:::i;:::-;18790:2;18785:3;18781:12;18774:19;;18433:366;;;:::o;18805:419::-;18971:4;19009:2;18998:9;18994:18;18986:26;;19058:9;19052:4;19048:20;19044:1;19033:9;19029:17;19022:47;19086:131;19212:4;19086:131;:::i;:::-;19078:139;;18805:419;;;:::o

Swarm Source

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