ETH Price: $3,373.86 (+0.71%)
Gas: 10 Gwei

Token

Goaty (GOATY)
 

Overview

Max Total Supply

34,063,405,752,664.596100037611778416 GOATY

Holders

190

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
25,847,325,007.167779314566901761 GOATY

Value
$0.00
0x4d72ca7d6de7eb865d8e938b7443acf0462b7096
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:
Goaty

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license
/**
 *Submitted for verification at Etherscan.io on 2023-09-26
*/

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

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

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

    function WETH() external pure returns (address);

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

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

contract Goaty is IERC20 {
    string private _name;
    string private _symbol;
    uint8 private constant _decimals = 18;
    uint256 private _totalSupply;
    
    uint256 public sellTaxPercent = 5; // Initial value of 5%. This means a 5% tax on selling.
    mapping(address => bool) public isExcludedFromFees;
    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;

    // Add a mapping to track if an address has bought
    mapping(address => bool) public hasBought;

    // Counter to keep track of the number of unique buyers
    uint256 public buyerCount = 0;

    
    address public owner;
    address public constant feeWallet =
        0x1e316b28Bd973B50A266e879D079F18331429227;
    address public constant marketingWallet =
        0x1e316b28Bd973B50A266e879D079F18331429227;
    address public constant liquidityWallet = 
        0x22291C80E9Cd65befcb26422d5076671263cC37b;
 
    address public immutable pair;
    address public immutable router;
    address public constant DEAD = 0x000000000000000000000000000000000000dEaD;
    address public immutable WETH;

    bool private isSwapping;

    modifier onlyDeployer() {
        require(msg.sender == owner, "Only the owner can do that");
        _;
    }

   

    constructor() {
        owner = msg.sender;
        _name = "Goaty";
        _symbol = "GOATY";
        _totalSupply = 69_420_000_000_000 * (10 ** _decimals);
        router = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D; // Uniswap V2 router

        WETH = IDEXRouter(router).WETH();

        pair = IDEXFactory(IDEXRouter(router).factory()).createPair(
            address(this),
            WETH
        );

        isExcludedFromFees[owner] = true;
        isExcludedFromFees[marketingWallet] = true;
        isExcludedFromFees[liquidityWallet] = true;
  

        _balances[owner] = _totalSupply;
        emit Transfer(address(0), owner, _totalSupply);
    }

    receive() external payable {}

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

    function totalSupply() public view override returns (uint256) {
        return _totalSupply - _balances[DEAD];
    }

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

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

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

    function rescueEth(uint256 amount) external onlyDeployer {
        (bool success, ) = address(owner).call{value: amount}("");
        success = true;
    }

    function setSellTaxPercent(uint256 newSellTax) external onlyDeployer {
    require(newSellTax <= 100, "Tax cannot be more than 100%");
    sellTaxPercent = newSellTax;
}

    function swapAllContractTokensForEth() internal {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = WETH;

        uint256 tokenAmount = _balances[address(this)];

        if (tokenAmount > 0) {
            _allowances[address(this)][router] += tokenAmount;
            // Swap all the GOATY balance to ETH
            IDEXRouter(router)
                .swapExactTokensForETHSupportingFeeOnTransferTokens(
                    tokenAmount,
                    0,
                    path,
                    feeWallet,
                    block.timestamp
                );
        }
    }

    function rescueToken(address token, uint256 amount) external onlyDeployer {
        IERC20(token).transfer(owner, amount);
    }

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

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

    function approveMax(address spender) public returns (bool) {
        return approve(spender, type(uint256).max);
    }

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

    function increaseAllowance(
        address spender,
        uint256 addedValue
    ) public returns (bool) {
        require(spender != address(0), "NO_ZERO");
        _allowances[msg.sender][spender] =
            allowance(msg.sender, spender) +
            addedValue;
        emit Approval(msg.sender, spender, _allowances[msg.sender][spender]);
        return true;
    }

    function decreaseAllowance(
        address spender,
        uint256 subtractedValue
    ) public returns (bool) {
        require(spender != address(0), "NO_ZERO");
        require(
            allowance(msg.sender, spender) >= subtractedValue,
            "INSUFF_ALLOWANCE"
        );
        _allowances[msg.sender][spender] =
            allowance(msg.sender, spender) -
            subtractedValue;
        emit Approval(msg.sender, spender, _allowances[msg.sender][spender]);
        return true;
    }

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external override returns (bool) {
        if (_allowances[sender][msg.sender] != type(uint256).max) {
            require(
                _allowances[sender][msg.sender] >= amount,
                "INSUFF_ALLOWANCE"
            );
            _allowances[sender][msg.sender] -= amount;
            emit Approval(sender, msg.sender, _allowances[sender][msg.sender]);
        }
        return _transferFrom(sender, recipient, amount);
    }

  function _transferFrom(
    address sender,
    address recipient,
    uint256 amount
) internal returns (bool) {
   
    // If it's a buy, check if should automatically blacklist the buyer
    if (sender == pair) {
        // Check if the buyer has bought before
        if(!hasBought[recipient]){
            hasBought[recipient] = true;
            buyerCount += 1;
        }
    }

    // If not tax-free
    if (!checkTaxFree(sender, recipient)) {
        // 20% tax on sells for the first 10 buyers
        if (hasBought[sender] && buyerCount <= 10 && recipient == pair) {
            _lowGasTransfer(sender, address(this), amount * 20 / 100);
            amount = (amount * 80) / 100;
        }
        // Default sell tax
        else if (recipient == pair) { // Additional condition to ensure it's a sell
            _lowGasTransfer(sender, address(this), amount * sellTaxPercent / 100);
            amount = (amount * (100 - sellTaxPercent)) / 100;
        }
    }

    if (!isSwapping && sender != pair) {
        isSwapping = true;
        swapAllContractTokensForEth();
        isSwapping = false;
    }

    return _lowGasTransfer(sender, recipient, amount);
}

    function checkTaxFree(
        address sender,
        address recipient
    ) internal view returns (bool) {
        if (isSwapping) return true;
        if (isExcludedFromFees[sender] || isExcludedFromFees[recipient])
            return true;
        if (sender == pair || recipient == pair) return false;
        return true;
    }

    function _lowGasTransfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal returns (bool) {
        require(sender != address(0), "Can't use zero addresses here");
        require(
            amount <= _balances[sender],
            "Can't transfer more than you own"
        );
        if (amount == 0) return true;
        _balances[sender] -= amount;
        _balances[recipient] += amount;
        emit Transfer(sender, recipient, amount);
        return true;
    }

    function excludeFromFees(
        address excludedWallet,
        bool status
    ) external onlyDeployer {
        isExcludedFromFees[excludedWallet] = status;
    }

    function renounceOwnership() external onlyDeployer {
        owner = address(0);
    }
}

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":"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":"DEAD","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"WETH","outputs":[{"internalType":"address","name":"","type":"address"}],"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":"spender","type":"address"}],"name":"approveMax","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":"buyerCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","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":"excludedWallet","type":"address"},{"internalType":"bool","name":"status","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"feeWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"hasBought","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":"","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"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":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"rescueEth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"rescueToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTaxPercent","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newSellTax","type":"uint256"}],"name":"setSellTaxPercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"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"},{"stateMutability":"payable","type":"receive"}]

60e0604052600560035560006008553480156200001b57600080fd5b5033600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040518060400160405280600581526020017f476f61747900000000000000000000000000000000000000000000000000000081525060009081620000a39190620007f4565b506040518060400160405280600581526020017f474f41545900000000000000000000000000000000000000000000000000000081525060019081620000ea9190620007f4565b506012600a620000fb919062000a6b565b653f231a70b8006200010e919062000abc565b600281905550737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff168152505060a05173ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001aa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001d0919062000b71565b73ffffffffffffffffffffffffffffffffffffffff1660c08173ffffffffffffffffffffffffffffffffffffffff168152505060a05173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000251573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000277919062000b71565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060c0516040518363ffffffff1660e01b8152600401620002b592919062000bb4565b6020604051808303816000875af1158015620002d5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002fb919062000b71565b73ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff1681525050600160046000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000731e316b28bd973b50a266e879d079f1833142922773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460007322291c80e9cd65befcb26422d5076671263cc37b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060025460056000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6002546040516200056c919062000bf2565b60405180910390a362000c0f565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620005fc57607f821691505b602082108103620006125762000611620005b4565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026200067c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200063d565b6200068886836200063d565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620006d5620006cf620006c984620006a0565b620006aa565b620006a0565b9050919050565b6000819050919050565b620006f183620006b4565b620007096200070082620006dc565b8484546200064a565b825550505050565b600090565b6200072062000711565b6200072d818484620006e6565b505050565b5b8181101562000755576200074960008262000716565b60018101905062000733565b5050565b601f821115620007a4576200076e8162000618565b62000779846200062d565b8101602085101562000789578190505b620007a162000798856200062d565b83018262000732565b50505b505050565b600082821c905092915050565b6000620007c960001984600802620007a9565b1980831691505092915050565b6000620007e48383620007b6565b9150826002028217905092915050565b620007ff826200057a565b67ffffffffffffffff8111156200081b576200081a62000585565b5b620008278254620005e3565b6200083482828562000759565b600060209050601f8311600181146200086c576000841562000857578287015190505b620008638582620007d6565b865550620008d3565b601f1984166200087c8662000618565b60005b82811015620008a6578489015182556001820191506020850194506020810190506200087f565b86831015620008c65784890151620008c2601f891682620007b6565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200096957808604811115620009415762000940620008db565b5b6001851615620009515780820291505b808102905062000961856200090a565b945062000921565b94509492505050565b60008262000984576001905062000a57565b8162000994576000905062000a57565b8160018114620009ad5760028114620009b857620009ee565b600191505062000a57565b60ff841115620009cd57620009cc620008db565b5b8360020a915084821115620009e757620009e6620008db565b5b5062000a57565b5060208310610133831016604e8410600b841016171562000a285782820a90508381111562000a225762000a21620008db565b5b62000a57565b62000a37848484600162000917565b9250905081840481111562000a515762000a50620008db565b5b81810290505b9392505050565b600060ff82169050919050565b600062000a7882620006a0565b915062000a858362000a5e565b925062000ab47fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000972565b905092915050565b600062000ac982620006a0565b915062000ad683620006a0565b925082820262000ae681620006a0565b9150828204841483151762000b005762000aff620008db565b5b5092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000b398262000b0c565b9050919050565b62000b4b8162000b2c565b811462000b5757600080fd5b50565b60008151905062000b6b8162000b40565b92915050565b60006020828403121562000b8a5762000b8962000b07565b5b600062000b9a8482850162000b5a565b91505092915050565b62000bae8162000b2c565b82525050565b600060408201905062000bcb600083018562000ba3565b62000bda602083018462000ba3565b9392505050565b62000bec81620006a0565b82525050565b600060208201905062000c09600083018462000be1565b92915050565b60805160a05160c051612cd762000c7e600039600081816115bb015261205501526000818161185f0152818161215301526121c40152600081816115820152818161188501528181611a0e01528181611aa701528181611b6201528181611cda0152611d2f0152612cd76000f3fe6080604052600436106101c65760003560e01c8063739f08c8116100f7578063a9059cbb11610095578063dd62ed3e11610064578063dd62ed3e1461068d578063e5685bed146106ca578063f25f4b56146106f3578063f887ea401461071e576101cd565b8063a9059cbb146105d1578063ad5c46481461060e578063c024666814610639578063d469801614610662576101cd565b806395d89b41116100d157806395d89b41146105135780639e0cea051461053e578063a457c2d714610569578063a8aa1b31146105a6576101cd565b8063739f08c81461049457806375f0a874146104bd5780638da5cb5b146104e8576101cd565b8063395093511161016457806360068dd81161013e57806360068dd8146103d85780636fb1896c1461041557806370a0823114610440578063715018a61461047d576101cd565b806339509351146103215780634fbee1931461035e578063571ac8b01461039b576101cd565b806318160ddd116101a057806318160ddd1461026557806323b872dd14610290578063313ce567146102cd57806333f3d628146102f8576101cd565b806303fd2a45146101d257806306fdde03146101fd578063095ea7b314610228576101cd565b366101cd57005b600080fd5b3480156101de57600080fd5b506101e7610749565b6040516101f491906122b0565b60405180910390f35b34801561020957600080fd5b5061021261074f565b60405161021f919061235b565b60405180910390f35b34801561023457600080fd5b5061024f600480360381019061024a91906123e4565b6107e1565b60405161025c919061243f565b60405180910390f35b34801561027157600080fd5b5061027a610941565b6040516102879190612469565b60405180910390f35b34801561029c57600080fd5b506102b760048036038101906102b29190612484565b610997565b6040516102c4919061243f565b60405180910390f35b3480156102d957600080fd5b506102e2610c84565b6040516102ef91906124f3565b60405180910390f35b34801561030457600080fd5b5061031f600480360381019061031a91906123e4565b610c8d565b005b34801561032d57600080fd5b50610348600480360381019061034391906123e4565b610dc2565b604051610355919061243f565b60405180910390f35b34801561036a57600080fd5b506103856004803603810190610380919061250e565b610fb2565b604051610392919061243f565b60405180910390f35b3480156103a757600080fd5b506103c260048036038101906103bd919061250e565b610fd2565b6040516103cf919061243f565b60405180910390f35b3480156103e457600080fd5b506103ff60048036038101906103fa919061250e565b611005565b60405161040c919061243f565b60405180910390f35b34801561042157600080fd5b5061042a611025565b6040516104379190612469565b60405180910390f35b34801561044c57600080fd5b506104676004803603810190610462919061250e565b61102b565b6040516104749190612469565b60405180910390f35b34801561048957600080fd5b50610492611074565b005b3480156104a057600080fd5b506104bb60048036038101906104b6919061253b565b611148565b005b3480156104c957600080fd5b506104d261126e565b6040516104df91906122b0565b60405180910390f35b3480156104f457600080fd5b506104fd611286565b60405161050a91906122b0565b60405180910390f35b34801561051f57600080fd5b506105286112ac565b604051610535919061235b565b60405180910390f35b34801561054a57600080fd5b5061055361133e565b6040516105609190612469565b60405180910390f35b34801561057557600080fd5b50610590600480360381019061058b91906123e4565b611344565b60405161059d919061243f565b60405180910390f35b3480156105b257600080fd5b506105bb611580565b6040516105c891906122b0565b60405180910390f35b3480156105dd57600080fd5b506105f860048036038101906105f391906123e4565b6115a4565b604051610605919061243f565b60405180910390f35b34801561061a57600080fd5b506106236115b9565b60405161063091906122b0565b60405180910390f35b34801561064557600080fd5b50610660600480360381019061065b9190612594565b6115dd565b005b34801561066e57600080fd5b506106776116c8565b60405161068491906122b0565b60405180910390f35b34801561069957600080fd5b506106b460048036038101906106af91906125d4565b6116e0565b6040516106c19190612469565b60405180910390f35b3480156106d657600080fd5b506106f160048036038101906106ec919061253b565b611767565b005b3480156106ff57600080fd5b50610708611845565b60405161071591906122b0565b60405180910390f35b34801561072a57600080fd5b5061073361185d565b60405161074091906122b0565b60405180910390f35b61dead81565b60606000805461075e90612643565b80601f016020809104026020016040519081016040528092919081815260200182805461078a90612643565b80156107d75780601f106107ac576101008083540402835291602001916107d7565b820191906000526020600020905b8154815290600101906020018083116107ba57829003601f168201915b5050505050905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610851576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610848906126c0565b60405180910390fd5b81600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161092f9190612469565b60405180910390a36001905092915050565b60006005600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600254610992919061270f565b905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610c705781600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610afb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610af29061278f565b60405180910390fd5b81600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610b87919061270f565b925050819055503373ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054604051610c679190612469565b60405180910390a35b610c7b848484611881565b90509392505050565b60006012905090565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610d1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d14906127fb565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401610d7a92919061281b565b6020604051808303816000875af1158015610d99573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dbd9190612859565b505050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610e32576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e29906126c0565b60405180910390fd5b81610e3d33856116e0565b610e479190612886565b600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054604051610fa09190612469565b60405180910390a36001905092915050565b60046020528060005260406000206000915054906101000a900460ff1681565b6000610ffe827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6107e1565b9050919050565b60076020528060005260406000206000915054906101000a900460ff1681565b60035481565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611104576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110fb906127fb565b60405180910390fd5b6000600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146111d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111cf906127fb565b60405180910390fd5b6000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682604051611220906128eb565b60006040518083038185875af1925050503d806000811461125d576040519150601f19603f3d011682016040523d82523d6000602084013e611262565b606091505b50509050600190505050565b731e316b28bd973b50a266e879d079f1833142922781565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6060600180546112bb90612643565b80601f01602080910402602001604051908101604052809291908181526020018280546112e790612643565b80156113345780601f1061130957610100808354040283529160200191611334565b820191906000526020600020905b81548152906001019060200180831161131757829003601f168201915b5050505050905090565b60085481565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036113b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ab906126c0565b60405180910390fd5b816113bf33856116e0565b1015611400576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113f79061278f565b60405180910390fd5b8161140b33856116e0565b611415919061270f565b600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460405161156e9190612469565b60405180910390a36001905092915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60006115b1338484611881565b905092915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461166d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611664906127fb565b60405180910390fd5b80600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b7322291c80e9cd65befcb26422d5076671263cc37b81565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146117f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117ee906127fb565b60405180910390fd5b606481111561183b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118329061294c565b60405180910390fd5b8060038190555050565b731e316b28bd973b50a266e879d079f1833142922781565b7f000000000000000000000000000000000000000000000000000000000000000081565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361199b57600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661199a576001600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600860008282546119929190612886565b925050819055505b5b6119a58484611c09565b611b4857600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611a055750600a60085411155b8015611a5c57507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b15611aa557611a8484306064601486611a75919061296c565b611a7f91906129dd565b611d96565b506064605083611a94919061296c565b611a9e91906129dd565b9150611b47565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611b4657611b1c8430606460035486611b0d919061296c565b611b1791906129dd565b611d96565b5060646003546064611b2e919061270f565b83611b39919061296c565b611b4391906129dd565b91505b5b5b600960149054906101000a900460ff16158015611bb157507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611bf5576001600960146101000a81548160ff021916908315150217905550611bd9611fb6565b6000600960146101000a81548160ff0219169083151502179055505b611c00848484611d96565b90509392505050565b6000600960149054906101000a900460ff1615611c295760019050611d90565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611cca5750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611cd85760019050611d90565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480611d7d57507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b15611d8b5760009050611d90565b600190505b92915050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611e06576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dfd90612a5a565b60405180910390fd5b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115611e88576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e7f90612ac6565b60405180910390fd5b60008203611e995760019050611faf565b81600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611ee8919061270f565b9250508190555081600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611f3e9190612886565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611fa29190612469565b60405180910390a3600190505b9392505050565b6000600267ffffffffffffffff811115611fd357611fd2612ae6565b5b6040519080825280602002602001820160405280156120015781602001602082028036833780820191505090505b509050308160008151811061201957612018612b15565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f00000000000000000000000000000000000000000000000000000000000000008160018151811061208857612087612b15565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050600081111561226b5780600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546121bb9190612886565b925050819055507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac94782600085731e316b28bd973b50a266e879d079f18331429227426040518663ffffffff1660e01b8152600401612238959493929190612c47565b600060405180830381600087803b15801561225257600080fd5b505af1158015612266573d6000803e3d6000fd5b505050505b5050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061229a8261226f565b9050919050565b6122aa8161228f565b82525050565b60006020820190506122c560008301846122a1565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156123055780820151818401526020810190506122ea565b60008484015250505050565b6000601f19601f8301169050919050565b600061232d826122cb565b61233781856122d6565b93506123478185602086016122e7565b61235081612311565b840191505092915050565b600060208201905081810360008301526123758184612322565b905092915050565b600080fd5b61238b8161228f565b811461239657600080fd5b50565b6000813590506123a881612382565b92915050565b6000819050919050565b6123c1816123ae565b81146123cc57600080fd5b50565b6000813590506123de816123b8565b92915050565b600080604083850312156123fb576123fa61237d565b5b600061240985828601612399565b925050602061241a858286016123cf565b9150509250929050565b60008115159050919050565b61243981612424565b82525050565b60006020820190506124546000830184612430565b92915050565b612463816123ae565b82525050565b600060208201905061247e600083018461245a565b92915050565b60008060006060848603121561249d5761249c61237d565b5b60006124ab86828701612399565b93505060206124bc86828701612399565b92505060406124cd868287016123cf565b9150509250925092565b600060ff82169050919050565b6124ed816124d7565b82525050565b600060208201905061250860008301846124e4565b92915050565b6000602082840312156125245761252361237d565b5b600061253284828501612399565b91505092915050565b6000602082840312156125515761255061237d565b5b600061255f848285016123cf565b91505092915050565b61257181612424565b811461257c57600080fd5b50565b60008135905061258e81612568565b92915050565b600080604083850312156125ab576125aa61237d565b5b60006125b985828601612399565b92505060206125ca8582860161257f565b9150509250929050565b600080604083850312156125eb576125ea61237d565b5b60006125f985828601612399565b925050602061260a85828601612399565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061265b57607f821691505b60208210810361266e5761266d612614565b5b50919050565b7f4e4f5f5a45524f00000000000000000000000000000000000000000000000000600082015250565b60006126aa6007836122d6565b91506126b582612674565b602082019050919050565b600060208201905081810360008301526126d98161269d565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061271a826123ae565b9150612725836123ae565b925082820390508181111561273d5761273c6126e0565b5b92915050565b7f494e535546465f414c4c4f57414e434500000000000000000000000000000000600082015250565b60006127796010836122d6565b915061278482612743565b602082019050919050565b600060208201905081810360008301526127a88161276c565b9050919050565b7f4f6e6c7920746865206f776e65722063616e20646f2074686174000000000000600082015250565b60006127e5601a836122d6565b91506127f0826127af565b602082019050919050565b60006020820190508181036000830152612814816127d8565b9050919050565b600060408201905061283060008301856122a1565b61283d602083018461245a565b9392505050565b60008151905061285381612568565b92915050565b60006020828403121561286f5761286e61237d565b5b600061287d84828501612844565b91505092915050565b6000612891826123ae565b915061289c836123ae565b92508282019050808211156128b4576128b36126e0565b5b92915050565b600081905092915050565b50565b60006128d56000836128ba565b91506128e0826128c5565b600082019050919050565b60006128f6826128c8565b9150819050919050565b7f5461782063616e6e6f74206265206d6f7265207468616e203130302500000000600082015250565b6000612936601c836122d6565b915061294182612900565b602082019050919050565b6000602082019050818103600083015261296581612929565b9050919050565b6000612977826123ae565b9150612982836123ae565b9250828202612990816123ae565b915082820484148315176129a7576129a66126e0565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006129e8826123ae565b91506129f3836123ae565b925082612a0357612a026129ae565b5b828204905092915050565b7f43616e277420757365207a65726f206164647265737365732068657265000000600082015250565b6000612a44601d836122d6565b9150612a4f82612a0e565b602082019050919050565b60006020820190508181036000830152612a7381612a37565b9050919050565b7f43616e2774207472616e73666572206d6f7265207468616e20796f75206f776e600082015250565b6000612ab06020836122d6565b9150612abb82612a7a565b602082019050919050565b60006020820190508181036000830152612adf81612aa3565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000819050919050565b6000819050919050565b6000612b73612b6e612b6984612b44565b612b4e565b6123ae565b9050919050565b612b8381612b58565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612bbe8161228f565b82525050565b6000612bd08383612bb5565b60208301905092915050565b6000602082019050919050565b6000612bf482612b89565b612bfe8185612b94565b9350612c0983612ba5565b8060005b83811015612c3a578151612c218882612bc4565b9750612c2c83612bdc565b925050600181019050612c0d565b5085935050505092915050565b600060a082019050612c5c600083018861245a565b612c696020830187612b7a565b8181036040830152612c7b8186612be9565b9050612c8a60608301856122a1565b612c97608083018461245a565b969550505050505056fea2646970667358221220a4f0c6c2e46f8c0e779d79d254ec61fd1f5826f2b3101bf5b424a5649beff39364736f6c63430008130033

Deployed Bytecode

0x6080604052600436106101c65760003560e01c8063739f08c8116100f7578063a9059cbb11610095578063dd62ed3e11610064578063dd62ed3e1461068d578063e5685bed146106ca578063f25f4b56146106f3578063f887ea401461071e576101cd565b8063a9059cbb146105d1578063ad5c46481461060e578063c024666814610639578063d469801614610662576101cd565b806395d89b41116100d157806395d89b41146105135780639e0cea051461053e578063a457c2d714610569578063a8aa1b31146105a6576101cd565b8063739f08c81461049457806375f0a874146104bd5780638da5cb5b146104e8576101cd565b8063395093511161016457806360068dd81161013e57806360068dd8146103d85780636fb1896c1461041557806370a0823114610440578063715018a61461047d576101cd565b806339509351146103215780634fbee1931461035e578063571ac8b01461039b576101cd565b806318160ddd116101a057806318160ddd1461026557806323b872dd14610290578063313ce567146102cd57806333f3d628146102f8576101cd565b806303fd2a45146101d257806306fdde03146101fd578063095ea7b314610228576101cd565b366101cd57005b600080fd5b3480156101de57600080fd5b506101e7610749565b6040516101f491906122b0565b60405180910390f35b34801561020957600080fd5b5061021261074f565b60405161021f919061235b565b60405180910390f35b34801561023457600080fd5b5061024f600480360381019061024a91906123e4565b6107e1565b60405161025c919061243f565b60405180910390f35b34801561027157600080fd5b5061027a610941565b6040516102879190612469565b60405180910390f35b34801561029c57600080fd5b506102b760048036038101906102b29190612484565b610997565b6040516102c4919061243f565b60405180910390f35b3480156102d957600080fd5b506102e2610c84565b6040516102ef91906124f3565b60405180910390f35b34801561030457600080fd5b5061031f600480360381019061031a91906123e4565b610c8d565b005b34801561032d57600080fd5b50610348600480360381019061034391906123e4565b610dc2565b604051610355919061243f565b60405180910390f35b34801561036a57600080fd5b506103856004803603810190610380919061250e565b610fb2565b604051610392919061243f565b60405180910390f35b3480156103a757600080fd5b506103c260048036038101906103bd919061250e565b610fd2565b6040516103cf919061243f565b60405180910390f35b3480156103e457600080fd5b506103ff60048036038101906103fa919061250e565b611005565b60405161040c919061243f565b60405180910390f35b34801561042157600080fd5b5061042a611025565b6040516104379190612469565b60405180910390f35b34801561044c57600080fd5b506104676004803603810190610462919061250e565b61102b565b6040516104749190612469565b60405180910390f35b34801561048957600080fd5b50610492611074565b005b3480156104a057600080fd5b506104bb60048036038101906104b6919061253b565b611148565b005b3480156104c957600080fd5b506104d261126e565b6040516104df91906122b0565b60405180910390f35b3480156104f457600080fd5b506104fd611286565b60405161050a91906122b0565b60405180910390f35b34801561051f57600080fd5b506105286112ac565b604051610535919061235b565b60405180910390f35b34801561054a57600080fd5b5061055361133e565b6040516105609190612469565b60405180910390f35b34801561057557600080fd5b50610590600480360381019061058b91906123e4565b611344565b60405161059d919061243f565b60405180910390f35b3480156105b257600080fd5b506105bb611580565b6040516105c891906122b0565b60405180910390f35b3480156105dd57600080fd5b506105f860048036038101906105f391906123e4565b6115a4565b604051610605919061243f565b60405180910390f35b34801561061a57600080fd5b506106236115b9565b60405161063091906122b0565b60405180910390f35b34801561064557600080fd5b50610660600480360381019061065b9190612594565b6115dd565b005b34801561066e57600080fd5b506106776116c8565b60405161068491906122b0565b60405180910390f35b34801561069957600080fd5b506106b460048036038101906106af91906125d4565b6116e0565b6040516106c19190612469565b60405180910390f35b3480156106d657600080fd5b506106f160048036038101906106ec919061253b565b611767565b005b3480156106ff57600080fd5b50610708611845565b60405161071591906122b0565b60405180910390f35b34801561072a57600080fd5b5061073361185d565b60405161074091906122b0565b60405180910390f35b61dead81565b60606000805461075e90612643565b80601f016020809104026020016040519081016040528092919081815260200182805461078a90612643565b80156107d75780601f106107ac576101008083540402835291602001916107d7565b820191906000526020600020905b8154815290600101906020018083116107ba57829003601f168201915b5050505050905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610851576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610848906126c0565b60405180910390fd5b81600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161092f9190612469565b60405180910390a36001905092915050565b60006005600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600254610992919061270f565b905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610c705781600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610afb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610af29061278f565b60405180910390fd5b81600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610b87919061270f565b925050819055503373ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054604051610c679190612469565b60405180910390a35b610c7b848484611881565b90509392505050565b60006012905090565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610d1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d14906127fb565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401610d7a92919061281b565b6020604051808303816000875af1158015610d99573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dbd9190612859565b505050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610e32576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e29906126c0565b60405180910390fd5b81610e3d33856116e0565b610e479190612886565b600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054604051610fa09190612469565b60405180910390a36001905092915050565b60046020528060005260406000206000915054906101000a900460ff1681565b6000610ffe827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6107e1565b9050919050565b60076020528060005260406000206000915054906101000a900460ff1681565b60035481565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611104576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110fb906127fb565b60405180910390fd5b6000600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146111d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111cf906127fb565b60405180910390fd5b6000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682604051611220906128eb565b60006040518083038185875af1925050503d806000811461125d576040519150601f19603f3d011682016040523d82523d6000602084013e611262565b606091505b50509050600190505050565b731e316b28bd973b50a266e879d079f1833142922781565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6060600180546112bb90612643565b80601f01602080910402602001604051908101604052809291908181526020018280546112e790612643565b80156113345780601f1061130957610100808354040283529160200191611334565b820191906000526020600020905b81548152906001019060200180831161131757829003601f168201915b5050505050905090565b60085481565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036113b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ab906126c0565b60405180910390fd5b816113bf33856116e0565b1015611400576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113f79061278f565b60405180910390fd5b8161140b33856116e0565b611415919061270f565b600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460405161156e9190612469565b60405180910390a36001905092915050565b7f000000000000000000000000ff5c060bac1b51e3f7d20e4656cddae02c0d197981565b60006115b1338484611881565b905092915050565b7f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc281565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461166d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611664906127fb565b60405180910390fd5b80600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b7322291c80e9cd65befcb26422d5076671263cc37b81565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146117f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117ee906127fb565b60405180910390fd5b606481111561183b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118329061294c565b60405180910390fd5b8060038190555050565b731e316b28bd973b50a266e879d079f1833142922781565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b60007f000000000000000000000000ff5c060bac1b51e3f7d20e4656cddae02c0d197973ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361199b57600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661199a576001600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600860008282546119929190612886565b925050819055505b5b6119a58484611c09565b611b4857600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611a055750600a60085411155b8015611a5c57507f000000000000000000000000ff5c060bac1b51e3f7d20e4656cddae02c0d197973ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b15611aa557611a8484306064601486611a75919061296c565b611a7f91906129dd565b611d96565b506064605083611a94919061296c565b611a9e91906129dd565b9150611b47565b7f000000000000000000000000ff5c060bac1b51e3f7d20e4656cddae02c0d197973ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611b4657611b1c8430606460035486611b0d919061296c565b611b1791906129dd565b611d96565b5060646003546064611b2e919061270f565b83611b39919061296c565b611b4391906129dd565b91505b5b5b600960149054906101000a900460ff16158015611bb157507f000000000000000000000000ff5c060bac1b51e3f7d20e4656cddae02c0d197973ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611bf5576001600960146101000a81548160ff021916908315150217905550611bd9611fb6565b6000600960146101000a81548160ff0219169083151502179055505b611c00848484611d96565b90509392505050565b6000600960149054906101000a900460ff1615611c295760019050611d90565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611cca5750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611cd85760019050611d90565b7f000000000000000000000000ff5c060bac1b51e3f7d20e4656cddae02c0d197973ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480611d7d57507f000000000000000000000000ff5c060bac1b51e3f7d20e4656cddae02c0d197973ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b15611d8b5760009050611d90565b600190505b92915050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611e06576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dfd90612a5a565b60405180910390fd5b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115611e88576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e7f90612ac6565b60405180910390fd5b60008203611e995760019050611faf565b81600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611ee8919061270f565b9250508190555081600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611f3e9190612886565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611fa29190612469565b60405180910390a3600190505b9392505050565b6000600267ffffffffffffffff811115611fd357611fd2612ae6565b5b6040519080825280602002602001820160405280156120015781602001602082028036833780820191505090505b509050308160008151811061201957612018612b15565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc28160018151811061208857612087612b15565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050600081111561226b5780600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060007f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546121bb9190612886565b925050819055507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac94782600085731e316b28bd973b50a266e879d079f18331429227426040518663ffffffff1660e01b8152600401612238959493929190612c47565b600060405180830381600087803b15801561225257600080fd5b505af1158015612266573d6000803e3d6000fd5b505050505b5050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061229a8261226f565b9050919050565b6122aa8161228f565b82525050565b60006020820190506122c560008301846122a1565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156123055780820151818401526020810190506122ea565b60008484015250505050565b6000601f19601f8301169050919050565b600061232d826122cb565b61233781856122d6565b93506123478185602086016122e7565b61235081612311565b840191505092915050565b600060208201905081810360008301526123758184612322565b905092915050565b600080fd5b61238b8161228f565b811461239657600080fd5b50565b6000813590506123a881612382565b92915050565b6000819050919050565b6123c1816123ae565b81146123cc57600080fd5b50565b6000813590506123de816123b8565b92915050565b600080604083850312156123fb576123fa61237d565b5b600061240985828601612399565b925050602061241a858286016123cf565b9150509250929050565b60008115159050919050565b61243981612424565b82525050565b60006020820190506124546000830184612430565b92915050565b612463816123ae565b82525050565b600060208201905061247e600083018461245a565b92915050565b60008060006060848603121561249d5761249c61237d565b5b60006124ab86828701612399565b93505060206124bc86828701612399565b92505060406124cd868287016123cf565b9150509250925092565b600060ff82169050919050565b6124ed816124d7565b82525050565b600060208201905061250860008301846124e4565b92915050565b6000602082840312156125245761252361237d565b5b600061253284828501612399565b91505092915050565b6000602082840312156125515761255061237d565b5b600061255f848285016123cf565b91505092915050565b61257181612424565b811461257c57600080fd5b50565b60008135905061258e81612568565b92915050565b600080604083850312156125ab576125aa61237d565b5b60006125b985828601612399565b92505060206125ca8582860161257f565b9150509250929050565b600080604083850312156125eb576125ea61237d565b5b60006125f985828601612399565b925050602061260a85828601612399565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061265b57607f821691505b60208210810361266e5761266d612614565b5b50919050565b7f4e4f5f5a45524f00000000000000000000000000000000000000000000000000600082015250565b60006126aa6007836122d6565b91506126b582612674565b602082019050919050565b600060208201905081810360008301526126d98161269d565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061271a826123ae565b9150612725836123ae565b925082820390508181111561273d5761273c6126e0565b5b92915050565b7f494e535546465f414c4c4f57414e434500000000000000000000000000000000600082015250565b60006127796010836122d6565b915061278482612743565b602082019050919050565b600060208201905081810360008301526127a88161276c565b9050919050565b7f4f6e6c7920746865206f776e65722063616e20646f2074686174000000000000600082015250565b60006127e5601a836122d6565b91506127f0826127af565b602082019050919050565b60006020820190508181036000830152612814816127d8565b9050919050565b600060408201905061283060008301856122a1565b61283d602083018461245a565b9392505050565b60008151905061285381612568565b92915050565b60006020828403121561286f5761286e61237d565b5b600061287d84828501612844565b91505092915050565b6000612891826123ae565b915061289c836123ae565b92508282019050808211156128b4576128b36126e0565b5b92915050565b600081905092915050565b50565b60006128d56000836128ba565b91506128e0826128c5565b600082019050919050565b60006128f6826128c8565b9150819050919050565b7f5461782063616e6e6f74206265206d6f7265207468616e203130302500000000600082015250565b6000612936601c836122d6565b915061294182612900565b602082019050919050565b6000602082019050818103600083015261296581612929565b9050919050565b6000612977826123ae565b9150612982836123ae565b9250828202612990816123ae565b915082820484148315176129a7576129a66126e0565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006129e8826123ae565b91506129f3836123ae565b925082612a0357612a026129ae565b5b828204905092915050565b7f43616e277420757365207a65726f206164647265737365732068657265000000600082015250565b6000612a44601d836122d6565b9150612a4f82612a0e565b602082019050919050565b60006020820190508181036000830152612a7381612a37565b9050919050565b7f43616e2774207472616e73666572206d6f7265207468616e20796f75206f776e600082015250565b6000612ab06020836122d6565b9150612abb82612a7a565b602082019050919050565b60006020820190508181036000830152612adf81612aa3565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000819050919050565b6000819050919050565b6000612b73612b6e612b6984612b44565b612b4e565b6123ae565b9050919050565b612b8381612b58565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612bbe8161228f565b82525050565b6000612bd08383612bb5565b60208301905092915050565b6000602082019050919050565b6000612bf482612b89565b612bfe8185612b94565b9350612c0983612ba5565b8060005b83811015612c3a578151612c218882612bc4565b9750612c2c83612bdc565b925050600181019050612c0d565b5085935050505092915050565b600060a082019050612c5c600083018861245a565b612c696020830187612b7a565b8181036040830152612c7b8186612be9565b9050612c8a60608301856122a1565b612c97608083018461245a565b969550505050505056fea2646970667358221220a4f0c6c2e46f8c0e779d79d254ec61fd1f5826f2b3101bf5b424a5649beff39364736f6c63430008130033

Deployed Bytecode Sourcemap

1554:8437:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2618:73;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3624:92;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5828:293;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3724:118;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7055:557;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3850:92;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5195:130;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6129:387;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1823:50;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5700:120;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2064:41;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1727:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4054:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9900:88;;;;;;;;;;;;;:::i;:::-;;4181:158;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2340:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2219:20;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3950:96;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2175:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6524:523;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2544:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5511:181;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2698:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9721:171;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2440:94;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5333:170;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4347:172;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2246:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2580:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2618:73;2649:42;2618:73;:::o;3624:92::-;3670:13;3703:5;3696:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3624:92;:::o;5828:293::-;5928:4;5972:1;5953:21;;:7;:21;;;5945:41;;;;;;;;;;;;:::i;:::-;;;;;;;;;6032:6;5997:11;:23;6009:10;5997:23;;;;;;;;;;;;;;;:32;6021:7;5997:32;;;;;;;;;;;;;;;:41;;;;6075:7;6054:37;;6063:10;6054:37;;;6084:6;6054:37;;;;;;:::i;:::-;;;;;;;;6109:4;6102:11;;5828:293;;;;:::o;3724:118::-;3777:7;3819:9;:15;2649:42;3819:15;;;;;;;;;;;;;;;;3804:12;;:30;;;;:::i;:::-;3797:37;;3724:118;:::o;7055:557::-;7189:4;7245:17;7210:11;:19;7222:6;7210:19;;;;;;;;;;;;;;;:31;7230:10;7210:31;;;;;;;;;;;;;;;;:52;7206:341;;7340:6;7305:11;:19;7317:6;7305:19;;;;;;;;;;;;;;;:31;7325:10;7305:31;;;;;;;;;;;;;;;;:41;;7279:119;;;;;;;;;;;;:::i;:::-;;;;;;;;;7448:6;7413:11;:19;7425:6;7413:19;;;;;;;;;;;;;;;:31;7433:10;7413:31;;;;;;;;;;;;;;;;:41;;;;;;;:::i;:::-;;;;;;;;7491:10;7474:61;;7483:6;7474:61;;;7503:11;:19;7515:6;7503:19;;;;;;;;;;;;;;;:31;7523:10;7503:31;;;;;;;;;;;;;;;;7474:61;;;;;;:::i;:::-;;;;;;;;7206:341;7564:40;7578:6;7586:9;7597:6;7564:13;:40::i;:::-;7557:47;;7055:557;;;;;:::o;3850:92::-;3900:5;1677:2;3918:16;;3850:92;:::o;5195:130::-;2825:5;;;;;;;;;;;2811:19;;:10;:19;;;2803:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;5287:5:::1;5280:22;;;5303:5;;;;;;;;;;;5310:6;5280:37;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;5195:130:::0;;:::o;6129:387::-;6234:4;6278:1;6259:21;;:7;:21;;;6251:41;;;;;;;;;;;;:::i;:::-;;;;;;;;;6397:10;6351:30;6361:10;6373:7;6351:9;:30::i;:::-;:56;;;;:::i;:::-;6303:11;:23;6315:10;6303:23;;;;;;;;;;;;;;;:32;6327:7;6303:32;;;;;;;;;;;;;;;:104;;;;6444:7;6423:63;;6432:10;6423:63;;;6453:11;:23;6465:10;6453:23;;;;;;;;;;;;;;;:32;6477:7;6453:32;;;;;;;;;;;;;;;;6423:63;;;;;;:::i;:::-;;;;;;;;6504:4;6497:11;;6129:387;;;;:::o;1823:50::-;;;;;;;;;;;;;;;;;;;;;;:::o;5700:120::-;5753:4;5777:35;5785:7;5794:17;5777:7;:35::i;:::-;5770:42;;5700:120;;;:::o;2064:41::-;;;;;;;;;;;;;;;;;;;;;;:::o;1727:33::-;;;;:::o;4054:119::-;4120:7;4147:9;:18;4157:7;4147:18;;;;;;;;;;;;;;;;4140:25;;4054:119;;;:::o;9900:88::-;2825:5;;;;;;;;;;;2811:19;;:10;:19;;;2803:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;9978:1:::1;9962:5;;:18;;;;;;;;;;;;;;;;;;9900:88::o:0;4181:158::-;2825:5;;;;;;;;;;;2811:19;;:10;:19;;;2803:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;4250:12:::1;4276:5;;;;;;;;;;;4268:19;;4295:6;4268:38;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4249:57;;;4327:4;4317:14;;4238:101;4181:158:::0;:::o;2340:93::-;2391:42;2340:93;:::o;2219:20::-;;;;;;;;;;;;;:::o;3950:96::-;3998:13;4031:7;4024:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3950:96;:::o;2175:29::-;;;;:::o;6524:523::-;6634:4;6678:1;6659:21;;:7;:21;;;6651:41;;;;;;;;;;;;:::i;:::-;;;;;;;;;6759:15;6725:30;6735:10;6747:7;6725:9;:30::i;:::-;:49;;6703:115;;;;;;;;;;;;:::i;:::-;;;;;;;;;6923:15;6877:30;6887:10;6899:7;6877:9;:30::i;:::-;:61;;;;:::i;:::-;6829:11;:23;6841:10;6829:23;;;;;;;;;;;;;;;:32;6853:7;6829:32;;;;;;;;;;;;;;;:109;;;;6975:7;6954:63;;6963:10;6954:63;;;6984:11;:23;6996:10;6984:23;;;;;;;;;;;;;;;:32;7008:7;6984:32;;;;;;;;;;;;;;;;6954:63;;;;;;:::i;:::-;;;;;;;;7035:4;7028:11;;6524:523;;;;:::o;2544:29::-;;;:::o;5511:181::-;5616:4;5640:44;5654:10;5666:9;5677:6;5640:13;:44::i;:::-;5633:51;;5511:181;;;;:::o;2698:29::-;;;:::o;9721:171::-;2825:5;;;;;;;;;;;2811:19;;:10;:19;;;2803:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;9878:6:::1;9841:18;:34;9860:14;9841:34;;;;;;;;;;;;;;;;:43;;;;;;;;;;;;;;;;;;9721:171:::0;;:::o;2440:94::-;2492:42;2440:94;:::o;5333:170::-;5440:7;5467:11;:19;5479:6;5467:19;;;;;;;;;;;;;;;:28;5487:7;5467:28;;;;;;;;;;;;;;;;5460:35;;5333:170;;;;:::o;4347:172::-;2825:5;;;;;;;;;;;2811:19;;:10;:19;;;2803:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;4445:3:::1;4431:10;:17;;4423:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;4505:10;4488:14;:27;;;;4347:172:::0;:::o;2246:87::-;2291:42;2246:87;:::o;2580:31::-;;;:::o;7618:1210::-;7728:4;7833;7823:14;;:6;:14;;;7819:196;;7903:9;:20;7913:9;7903:20;;;;;;;;;;;;;;;;;;;;;;;;;7899:109;;7962:4;7939:9;:20;7949:9;7939:20;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;7995:1;7981:10;;:15;;;;;;;:::i;:::-;;;;;;;;7899:109;7819:196;8052:31;8065:6;8073:9;8052:12;:31::i;:::-;8047:572;;8153:9;:17;8163:6;8153:17;;;;;;;;;;;;;;;;;;;;;;;;;:37;;;;;8188:2;8174:10;;:16;;8153:37;:58;;;;;8207:4;8194:17;;:9;:17;;;8153:58;8149:463;;;8228:57;8244:6;8260:4;8281:3;8276:2;8267:6;:11;;;;:::i;:::-;:17;;;;:::i;:::-;8228:15;:57::i;:::-;;8325:3;8319:2;8310:6;:11;;;;:::i;:::-;8309:19;;;;:::i;:::-;8300:28;;8149:463;;;8401:4;8388:17;;:9;:17;;;8384:228;;8468:69;8484:6;8500:4;8533:3;8516:14;;8507:6;:23;;;;:::i;:::-;:29;;;;:::i;:::-;8468:15;:69::i;:::-;;8597:3;8578:14;;8572:3;:20;;;;:::i;:::-;8562:6;:31;;;;:::i;:::-;8561:39;;;;:::i;:::-;8552:48;;8384:228;8149:463;8047:572;8632:10;;;;;;;;;;;8631:11;:29;;;;;8656:4;8646:14;;:6;:14;;;;8631:29;8627:140;;;8686:4;8673:10;;:17;;;;;;;;;;;;;;;;;;8701:29;:27;:29::i;:::-;8754:5;8741:10;;:18;;;;;;;;;;;;;;;;;;8627:140;8782:42;8798:6;8806:9;8817:6;8782:15;:42::i;:::-;8775:49;;7618:1210;;;;;:::o;8836:343::-;8941:4;8962:10;;;;;;;;;;;8958:27;;;8981:4;8974:11;;;;8958:27;9000:18;:26;9019:6;9000:26;;;;;;;;;;;;;;;;;;;;;;;;;:59;;;;9030:18;:29;9049:9;9030:29;;;;;;;;;;;;;;;;;;;;;;;;;9000:59;8996:89;;;9081:4;9074:11;;;;8996:89;9110:4;9100:14;;:6;:14;;;:35;;;;9131:4;9118:17;;:9;:17;;;9100:35;9096:53;;;9144:5;9137:12;;;;9096:53;9167:4;9160:11;;8836:343;;;;;:::o;9187:526::-;9315:4;9358:1;9340:20;;:6;:20;;;9332:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;9437:9;:17;9447:6;9437:17;;;;;;;;;;;;;;;;9427:6;:27;;9405:109;;;;;;;;;;;;:::i;:::-;;;;;;;;;9539:1;9529:6;:11;9525:28;;9549:4;9542:11;;;;9525:28;9585:6;9564:9;:17;9574:6;9564:17;;;;;;;;;;;;;;;;:27;;;;;;;:::i;:::-;;;;;;;;9626:6;9602:9;:20;9612:9;9602:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;9665:9;9648:35;;9657:6;9648:35;;;9676:6;9648:35;;;;;;:::i;:::-;;;;;;;;9701:4;9694:11;;9187:526;;;;;;:::o;4527:660::-;4586:21;4624:1;4610:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4586:40;;4655:4;4637;4642:1;4637:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;4681:4;4671;4676:1;4671:7;;;;;;;;:::i;:::-;;;;;;;:14;;;;;;;;;;;4698:19;4720:9;:24;4738:4;4720:24;;;;;;;;;;;;;;;;4698:46;;4775:1;4761:11;:15;4757:423;;;4831:11;4793;:26;4813:4;4793:26;;;;;;;;;;;;;;;:34;4820:6;4793:34;;;;;;;;;;;;;;;;:49;;;;;;;:::i;:::-;;;;;;;;4918:6;4907:87;;;5017:11;5051:1;5075:4;2291:42;5134:15;4907:261;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4757:423;4575:612;;4527:660::o;7:126:1:-;44:7;84:42;77:5;73:54;62:65;;7:126;;;:::o;139:96::-;176:7;205:24;223:5;205:24;:::i;:::-;194:35;;139:96;;;:::o;241:118::-;328:24;346:5;328:24;:::i;:::-;323:3;316:37;241:118;;:::o;365:222::-;458:4;496:2;485:9;481:18;473:26;;509:71;577:1;566:9;562:17;553:6;509:71;:::i;:::-;365:222;;;;:::o;593:99::-;645:6;679:5;673:12;663:22;;593:99;;;:::o;698:169::-;782:11;816:6;811:3;804:19;856:4;851:3;847:14;832:29;;698:169;;;;:::o;873:246::-;954:1;964:113;978:6;975:1;972:13;964:113;;;1063:1;1058:3;1054:11;1048:18;1044:1;1039:3;1035:11;1028:39;1000:2;997:1;993:10;988:15;;964:113;;;1111:1;1102:6;1097:3;1093:16;1086:27;935:184;873:246;;;:::o;1125:102::-;1166:6;1217:2;1213:7;1208:2;1201:5;1197:14;1193:28;1183:38;;1125:102;;;:::o;1233:377::-;1321:3;1349:39;1382:5;1349:39;:::i;:::-;1404:71;1468:6;1463:3;1404:71;:::i;:::-;1397:78;;1484:65;1542:6;1537:3;1530:4;1523:5;1519:16;1484:65;:::i;:::-;1574:29;1596:6;1574:29;:::i;:::-;1569:3;1565:39;1558:46;;1325:285;1233:377;;;;:::o;1616:313::-;1729:4;1767:2;1756:9;1752:18;1744:26;;1816:9;1810:4;1806:20;1802:1;1791:9;1787:17;1780:47;1844:78;1917:4;1908:6;1844:78;:::i;:::-;1836:86;;1616:313;;;;:::o;2016:117::-;2125:1;2122;2115:12;2262:122;2335:24;2353:5;2335:24;:::i;:::-;2328:5;2325:35;2315:63;;2374:1;2371;2364:12;2315:63;2262:122;:::o;2390:139::-;2436:5;2474:6;2461:20;2452:29;;2490:33;2517:5;2490:33;:::i;:::-;2390:139;;;;:::o;2535:77::-;2572:7;2601:5;2590:16;;2535:77;;;:::o;2618:122::-;2691:24;2709:5;2691:24;:::i;:::-;2684:5;2681:35;2671:63;;2730:1;2727;2720:12;2671:63;2618:122;:::o;2746:139::-;2792:5;2830:6;2817:20;2808:29;;2846:33;2873:5;2846:33;:::i;:::-;2746:139;;;;:::o;2891:474::-;2959:6;2967;3016:2;3004:9;2995:7;2991:23;2987:32;2984:119;;;3022:79;;:::i;:::-;2984:119;3142:1;3167:53;3212:7;3203:6;3192:9;3188:22;3167:53;:::i;:::-;3157:63;;3113:117;3269:2;3295:53;3340:7;3331:6;3320:9;3316:22;3295:53;:::i;:::-;3285:63;;3240:118;2891:474;;;;;:::o;3371:90::-;3405:7;3448:5;3441:13;3434:21;3423:32;;3371:90;;;:::o;3467:109::-;3548:21;3563:5;3548:21;:::i;:::-;3543:3;3536:34;3467:109;;:::o;3582:210::-;3669:4;3707:2;3696:9;3692:18;3684:26;;3720:65;3782:1;3771:9;3767:17;3758:6;3720:65;:::i;:::-;3582:210;;;;:::o;3798:118::-;3885:24;3903:5;3885:24;:::i;:::-;3880:3;3873:37;3798:118;;:::o;3922:222::-;4015:4;4053:2;4042:9;4038:18;4030:26;;4066:71;4134:1;4123:9;4119:17;4110:6;4066:71;:::i;:::-;3922:222;;;;:::o;4150:619::-;4227:6;4235;4243;4292:2;4280:9;4271:7;4267:23;4263:32;4260:119;;;4298:79;;:::i;:::-;4260:119;4418:1;4443:53;4488:7;4479:6;4468:9;4464:22;4443:53;:::i;:::-;4433:63;;4389:117;4545:2;4571:53;4616:7;4607:6;4596:9;4592:22;4571:53;:::i;:::-;4561:63;;4516:118;4673:2;4699:53;4744:7;4735:6;4724:9;4720:22;4699:53;:::i;:::-;4689:63;;4644:118;4150:619;;;;;:::o;4775:86::-;4810:7;4850:4;4843:5;4839:16;4828:27;;4775:86;;;:::o;4867:112::-;4950:22;4966:5;4950:22;:::i;:::-;4945:3;4938:35;4867:112;;:::o;4985:214::-;5074:4;5112:2;5101:9;5097:18;5089:26;;5125:67;5189:1;5178:9;5174:17;5165:6;5125:67;:::i;:::-;4985:214;;;;:::o;5205:329::-;5264:6;5313:2;5301:9;5292:7;5288:23;5284:32;5281:119;;;5319:79;;:::i;:::-;5281:119;5439:1;5464:53;5509:7;5500:6;5489:9;5485:22;5464:53;:::i;:::-;5454:63;;5410:117;5205:329;;;;:::o;5540:::-;5599:6;5648:2;5636:9;5627:7;5623:23;5619:32;5616:119;;;5654:79;;:::i;:::-;5616:119;5774:1;5799:53;5844:7;5835:6;5824:9;5820:22;5799:53;:::i;:::-;5789:63;;5745:117;5540:329;;;;:::o;5875:116::-;5945:21;5960:5;5945:21;:::i;:::-;5938:5;5935:32;5925:60;;5981:1;5978;5971:12;5925:60;5875:116;:::o;5997:133::-;6040:5;6078:6;6065:20;6056:29;;6094:30;6118:5;6094:30;:::i;:::-;5997:133;;;;:::o;6136:468::-;6201:6;6209;6258:2;6246:9;6237:7;6233:23;6229:32;6226:119;;;6264:79;;:::i;:::-;6226:119;6384:1;6409:53;6454:7;6445:6;6434:9;6430:22;6409:53;:::i;:::-;6399:63;;6355:117;6511:2;6537:50;6579:7;6570:6;6559:9;6555:22;6537:50;:::i;:::-;6527:60;;6482:115;6136:468;;;;;:::o;6610:474::-;6678:6;6686;6735:2;6723:9;6714:7;6710:23;6706:32;6703:119;;;6741:79;;:::i;:::-;6703:119;6861:1;6886:53;6931:7;6922:6;6911:9;6907:22;6886:53;:::i;:::-;6876:63;;6832:117;6988:2;7014:53;7059:7;7050:6;7039:9;7035:22;7014:53;:::i;:::-;7004:63;;6959:118;6610:474;;;;;:::o;7090:180::-;7138:77;7135:1;7128:88;7235:4;7232:1;7225:15;7259:4;7256:1;7249:15;7276:320;7320:6;7357:1;7351:4;7347:12;7337:22;;7404:1;7398:4;7394:12;7425:18;7415:81;;7481:4;7473:6;7469:17;7459:27;;7415:81;7543:2;7535:6;7532:14;7512:18;7509:38;7506:84;;7562:18;;:::i;:::-;7506:84;7327:269;7276:320;;;:::o;7602:157::-;7742:9;7738:1;7730:6;7726:14;7719:33;7602:157;:::o;7765:365::-;7907:3;7928:66;7992:1;7987:3;7928:66;:::i;:::-;7921:73;;8003:93;8092:3;8003:93;:::i;:::-;8121:2;8116:3;8112:12;8105:19;;7765:365;;;:::o;8136:419::-;8302:4;8340:2;8329:9;8325:18;8317:26;;8389:9;8383:4;8379:20;8375:1;8364:9;8360:17;8353:47;8417:131;8543:4;8417:131;:::i;:::-;8409:139;;8136:419;;;:::o;8561:180::-;8609:77;8606:1;8599:88;8706:4;8703:1;8696:15;8730:4;8727:1;8720:15;8747:194;8787:4;8807:20;8825:1;8807:20;:::i;:::-;8802:25;;8841:20;8859:1;8841:20;:::i;:::-;8836:25;;8885:1;8882;8878:9;8870:17;;8909:1;8903:4;8900:11;8897:37;;;8914:18;;:::i;:::-;8897:37;8747:194;;;;:::o;8947:166::-;9087:18;9083:1;9075:6;9071:14;9064:42;8947:166;:::o;9119:366::-;9261:3;9282:67;9346:2;9341:3;9282:67;:::i;:::-;9275:74;;9358:93;9447:3;9358:93;:::i;:::-;9476:2;9471:3;9467:12;9460:19;;9119:366;;;:::o;9491:419::-;9657:4;9695:2;9684:9;9680:18;9672:26;;9744:9;9738:4;9734:20;9730:1;9719:9;9715:17;9708:47;9772:131;9898:4;9772:131;:::i;:::-;9764:139;;9491:419;;;:::o;9916:176::-;10056:28;10052:1;10044:6;10040:14;10033:52;9916:176;:::o;10098:366::-;10240:3;10261:67;10325:2;10320:3;10261:67;:::i;:::-;10254:74;;10337:93;10426:3;10337:93;:::i;:::-;10455:2;10450:3;10446:12;10439:19;;10098:366;;;:::o;10470:419::-;10636:4;10674:2;10663:9;10659:18;10651:26;;10723:9;10717:4;10713:20;10709:1;10698:9;10694:17;10687:47;10751:131;10877:4;10751:131;:::i;:::-;10743:139;;10470:419;;;:::o;10895:332::-;11016:4;11054:2;11043:9;11039:18;11031:26;;11067:71;11135:1;11124:9;11120:17;11111:6;11067:71;:::i;:::-;11148:72;11216:2;11205:9;11201:18;11192:6;11148:72;:::i;:::-;10895:332;;;;;:::o;11233:137::-;11287:5;11318:6;11312:13;11303:22;;11334:30;11358:5;11334:30;:::i;:::-;11233:137;;;;:::o;11376:345::-;11443:6;11492:2;11480:9;11471:7;11467:23;11463:32;11460:119;;;11498:79;;:::i;:::-;11460:119;11618:1;11643:61;11696:7;11687:6;11676:9;11672:22;11643:61;:::i;:::-;11633:71;;11589:125;11376:345;;;;:::o;11727:191::-;11767:3;11786:20;11804:1;11786:20;:::i;:::-;11781:25;;11820:20;11838:1;11820:20;:::i;:::-;11815:25;;11863:1;11860;11856:9;11849:16;;11884:3;11881:1;11878:10;11875:36;;;11891:18;;:::i;:::-;11875:36;11727:191;;;;:::o;11924:147::-;12025:11;12062:3;12047:18;;11924:147;;;;:::o;12077:114::-;;:::o;12197:398::-;12356:3;12377:83;12458:1;12453:3;12377:83;:::i;:::-;12370:90;;12469:93;12558:3;12469:93;:::i;:::-;12587:1;12582:3;12578:11;12571:18;;12197:398;;;:::o;12601:379::-;12785:3;12807:147;12950:3;12807:147;:::i;:::-;12800:154;;12971:3;12964:10;;12601:379;;;:::o;12986:178::-;13126:30;13122:1;13114:6;13110:14;13103:54;12986:178;:::o;13170:366::-;13312:3;13333:67;13397:2;13392:3;13333:67;:::i;:::-;13326:74;;13409:93;13498:3;13409:93;:::i;:::-;13527:2;13522:3;13518:12;13511:19;;13170:366;;;:::o;13542:419::-;13708:4;13746:2;13735:9;13731:18;13723:26;;13795:9;13789:4;13785:20;13781:1;13770:9;13766:17;13759:47;13823:131;13949:4;13823:131;:::i;:::-;13815:139;;13542:419;;;:::o;13967:410::-;14007:7;14030:20;14048:1;14030:20;:::i;:::-;14025:25;;14064:20;14082:1;14064:20;:::i;:::-;14059:25;;14119:1;14116;14112:9;14141:30;14159:11;14141:30;:::i;:::-;14130:41;;14320:1;14311:7;14307:15;14304:1;14301:22;14281:1;14274:9;14254:83;14231:139;;14350:18;;:::i;:::-;14231:139;14015:362;13967:410;;;;:::o;14383:180::-;14431:77;14428:1;14421:88;14528:4;14525:1;14518:15;14552:4;14549:1;14542:15;14569:185;14609:1;14626:20;14644:1;14626:20;:::i;:::-;14621:25;;14660:20;14678:1;14660:20;:::i;:::-;14655:25;;14699:1;14689:35;;14704:18;;:::i;:::-;14689:35;14746:1;14743;14739:9;14734:14;;14569:185;;;;:::o;14760:179::-;14900:31;14896:1;14888:6;14884:14;14877:55;14760:179;:::o;14945:366::-;15087:3;15108:67;15172:2;15167:3;15108:67;:::i;:::-;15101:74;;15184:93;15273:3;15184:93;:::i;:::-;15302:2;15297:3;15293:12;15286:19;;14945:366;;;:::o;15317:419::-;15483:4;15521:2;15510:9;15506:18;15498:26;;15570:9;15564:4;15560:20;15556:1;15545:9;15541:17;15534:47;15598:131;15724:4;15598:131;:::i;:::-;15590:139;;15317:419;;;:::o;15742:182::-;15882:34;15878:1;15870:6;15866:14;15859:58;15742:182;:::o;15930:366::-;16072:3;16093:67;16157:2;16152:3;16093:67;:::i;:::-;16086:74;;16169:93;16258:3;16169:93;:::i;:::-;16287:2;16282:3;16278:12;16271:19;;15930:366;;;:::o;16302:419::-;16468:4;16506:2;16495:9;16491:18;16483:26;;16555:9;16549:4;16545:20;16541:1;16530:9;16526:17;16519:47;16583:131;16709:4;16583:131;:::i;:::-;16575:139;;16302:419;;;:::o;16727:180::-;16775:77;16772:1;16765:88;16872:4;16869:1;16862:15;16896:4;16893:1;16886:15;16913:180;16961:77;16958:1;16951:88;17058:4;17055:1;17048:15;17082:4;17079:1;17072:15;17099:85;17144:7;17173:5;17162:16;;17099:85;;;:::o;17190:60::-;17218:3;17239:5;17232:12;;17190:60;;;:::o;17256:158::-;17314:9;17347:61;17365:42;17374:32;17400:5;17374:32;:::i;:::-;17365:42;:::i;:::-;17347:61;:::i;:::-;17334:74;;17256:158;;;:::o;17420:147::-;17515:45;17554:5;17515:45;:::i;:::-;17510:3;17503:58;17420:147;;:::o;17573:114::-;17640:6;17674:5;17668:12;17658:22;;17573:114;;;:::o;17693:184::-;17792:11;17826:6;17821:3;17814:19;17866:4;17861:3;17857:14;17842:29;;17693:184;;;;:::o;17883:132::-;17950:4;17973:3;17965:11;;18003:4;17998:3;17994:14;17986:22;;17883:132;;;:::o;18021:108::-;18098:24;18116:5;18098:24;:::i;:::-;18093:3;18086:37;18021:108;;:::o;18135:179::-;18204:10;18225:46;18267:3;18259:6;18225:46;:::i;:::-;18303:4;18298:3;18294:14;18280:28;;18135:179;;;;:::o;18320:113::-;18390:4;18422;18417:3;18413:14;18405:22;;18320:113;;;:::o;18469:732::-;18588:3;18617:54;18665:5;18617:54;:::i;:::-;18687:86;18766:6;18761:3;18687:86;:::i;:::-;18680:93;;18797:56;18847:5;18797:56;:::i;:::-;18876:7;18907:1;18892:284;18917:6;18914:1;18911:13;18892:284;;;18993:6;18987:13;19020:63;19079:3;19064:13;19020:63;:::i;:::-;19013:70;;19106:60;19159:6;19106:60;:::i;:::-;19096:70;;18952:224;18939:1;18936;18932:9;18927:14;;18892:284;;;18896:14;19192:3;19185:10;;18593:608;;;18469:732;;;;:::o;19207:831::-;19470:4;19508:3;19497:9;19493:19;19485:27;;19522:71;19590:1;19579:9;19575:17;19566:6;19522:71;:::i;:::-;19603:80;19679:2;19668:9;19664:18;19655:6;19603:80;:::i;:::-;19730:9;19724:4;19720:20;19715:2;19704:9;19700:18;19693:48;19758:108;19861:4;19852:6;19758:108;:::i;:::-;19750:116;;19876:72;19944:2;19933:9;19929:18;19920:6;19876:72;:::i;:::-;19958:73;20026:3;20015:9;20011:19;20002:6;19958:73;:::i;:::-;19207:831;;;;;;;;:::o

Swarm Source

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