ETH Price: $3,259.79 (-0.69%)
 

Overview

Max Total Supply

47,000,000 MAGAVT

Holders

44

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
82,339.150973300060337682 MAGAVT

Value
$0.00
0xfbf64ae7287221d9c0e8ae39944aa3b0cc34c492
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:
MAGAVT

Compiler Version
v0.8.24+commit.e11b9ed9

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-06-10
*/

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

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

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

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

}

abstract contract Ownable is Context {
    address private _owner;

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

    constructor() {
        _transferOwnership(_msgSender());
    }

    modifier onlyOwner() {
        _checkOwner();
        _;
    }

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

    function _checkOwner() internal view virtual {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
    }


    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }


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

    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

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

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
}

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

    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) public _isExcludedFromFee;
    mapping (address => bool) public blackListed;

    uint8 private constant _decimals = 18;
    uint256 private constant _tTotal = 47000000 * 10**_decimals; 
    string private constant _name = unicode"MAGA VICTORY";  
    string private constant _symbol = unicode"MAGAVT"; 
    uint256 public _taxSwapThreshold= 100000 * 10**_decimals;
    uint256 public antiWhaleLimit = 20000000 * 10 ** decimals();

    uint256 public _buyFee = 1; //buy tax
    uint256 public _sellFee = 1; // sell tax

    address payable public feeCollectorWallet = payable(0xfF8a068EC3BF8c25476A5a6BDAfC5A556E571Bbb);

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

    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor () {
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); // mainnet router address
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());

        // set the rest of the contract variables
        uniswapV2Router = _uniswapV2Router;

        _balances[_msgSender()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[feeCollectorWallet] = true;

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

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

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

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

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

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

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

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

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

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

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

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        require(!blackListed[from] && !blackListed[to],"Sender or Recipient Blacklisted");
        uint256 taxAmount=0;
        if (!_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {

            if(to != uniswapV2Pair){
               require(balanceOf(to) + amount <= antiWhaleLimit, "Exceeds the antiWhaleLimit.");
            }

            if(_buyFee > 0) {
            if (from == uniswapV2Pair && to != address(uniswapV2Router)) {
                taxAmount = amount.mul(_buyFee).div(100);
            }
            }

            if(_sellFee > 0) {
            if(to == uniswapV2Pair){
                taxAmount = amount.mul(_sellFee).div(100);
            }
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && to == uniswapV2Pair && swapEnabled && contractTokenBalance>_taxSwapThreshold) {
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }

        if(taxAmount>0){
          _balances[address(this)]=_balances[address(this)].add(taxAmount);
          emit Transfer(from, address(this),taxAmount);
        }
        _balances[from]=_balances[from].sub(amount);
        _balances[to]=_balances[to].add(amount.sub(taxAmount));
        emit Transfer(from, to, amount.sub(taxAmount));
    }


    function min(uint256 a, uint256 b) private pure returns (uint256){
      return (a>b)?b:a;
    }

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

    function sendETHToFee(uint256 amount) private {
       (bool callSuccess, ) = payable(feeCollectorWallet).call{value: amount}("");
        require(callSuccess, "Call failed");
    }


    receive() external payable {}


    function changeAntiWhaleLimit(uint256 _maxLimit) public onlyOwner{
        require(_maxLimit > totalSupply().div(200),"Limit too less");
        antiWhaleLimit = _maxLimit;
    }

    function changeBuyTaxes(uint256 _fee) public onlyOwner {
        _buyFee = _fee;
    }

    function changeSellTaxes(uint256 _fee) public onlyOwner {
        _sellFee = _fee;
    }

    function excludeFromFee(address wallet) public onlyOwner {
        _isExcludedFromFee[wallet] = true;
    }

    function subjectToFee(address wallet) public onlyOwner {
        _isExcludedFromFee[wallet] = false;
    }

    function addToNaughtylist(address[] memory _address) public onlyOwner{
        for(uint i = 0; i < _address.length; i++){
            blackListed[_address[i]] = true;
        }
    }

    function removeFromNaughtylist(address[] memory _address) public onlyOwner{
        for(uint i = 0; i < _address.length; i++){
            blackListed[_address[i]] = false;
        }
    }
}

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":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_buyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"_address","type":"address[]"}],"name":"addToNaughtylist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"antiWhaleLimit","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":"address","name":"","type":"address"}],"name":"blackListed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxLimit","type":"uint256"}],"name":"changeAntiWhaleLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_fee","type":"uint256"}],"name":"changeBuyTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_fee","type":"uint256"}],"name":"changeSellTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"feeCollectorWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"_address","type":"address[]"}],"name":"removeFromNaughtylist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"name":"subjectToFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526012600a620000149190620007d4565b620186a062000024919062000824565b600555620000376200054b60201b60201c565b600a620000459190620007d4565b6301312d0062000056919062000824565b6006556001600755600160085573ff8a068ec3bf8c25476a5a6bdafc5a556e571bbb60095f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f600b60146101000a81548160ff0219169083151502179055506001600b60156101000a81548160ff021916908315150217905550348015620000f8575f80fd5b50620001196200010d6200055360201b60201c565b6200055a60201b60201c565b5f737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200017b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001a19190620008d3565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000207573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200022d9190620008d3565b6040518363ffffffff1660e01b81526004016200024c92919062000914565b6020604051808303815f875af115801562000269573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200028f9190620008d3565b600b5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600a5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506012600a6200031e9190620007d4565b6302cd29c06200032f919062000824565b60015f620003426200055360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160035f620003946200061b60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550620004be6200055360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6012600a6200051c9190620007d4565b6302cd29c06200052d919062000824565b6040516200053c919062000950565b60405180910390a3506200096b565b5f6012905090565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115620006cc57808604811115620006a457620006a362000642565b5b6001851615620006b45780820291505b8081029050620006c4856200066f565b945062000684565b94509492505050565b5f82620006e65760019050620007b8565b81620006f5575f9050620007b8565b81600181146200070e576002811462000719576200074f565b6001915050620007b8565b60ff8411156200072e576200072d62000642565b5b8360020a91508482111562000748576200074762000642565b5b50620007b8565b5060208310610133831016604e8410600b8410161715620007895782820a90508381111562000783576200078262000642565b5b620007b8565b6200079884848460016200067b565b92509050818404811115620007b257620007b162000642565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f620007e082620007bf565b9150620007ed83620007c8565b92506200081c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620006d5565b905092915050565b5f6200083082620007bf565b91506200083d83620007bf565b92508282026200084d81620007bf565b9150828204841483151762000867576200086662000642565b5b5092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6200089d8262000872565b9050919050565b620008af8162000891565b8114620008ba575f80fd5b50565b5f81519050620008cd81620008a4565b92915050565b5f60208284031215620008eb57620008ea6200086e565b5b5f620008fa84828501620008bd565b91505092915050565b6200090e8162000891565b82525050565b5f604082019050620009295f83018562000903565b62000938602083018462000903565b9392505050565b6200094a81620007bf565b82525050565b5f602082019050620009655f8301846200093f565b92915050565b612d2980620009795f395ff3fe608060405260043610610184575f3560e01c8063715018a6116100d0578063a3cdf02311610089578063bf474bed11610063578063bf474bed14610577578063d2a3af29146105a1578063dd62ed3e146105c9578063f2fde38b146106055761018b565b8063a3cdf023146104d7578063a9059cbb146104ff578063bbde5b251461053b5761018b565b8063715018a6146103e1578063768dc710146103f75780638da5cb5b1461043357806393114b1d1461045d57806393d89a0c1461048557806395d89b41146104ad5761018b565b806323b872dd1161013d578063437823ec11610117578063437823ec1461032b578063540538b614610353578063590f897e1461037b57806370a08231146103a55761018b565b806323b872dd1461029b578063313ce567146102d757806340b9a54b146103015761018b565b806306fdde031461018f578063095ea7b3146101b95780631234f868146101f557806318160ddd1461021f5780631e0117bd146102495780631fafa8bc146102715761018b565b3661018b57005b5f80fd5b34801561019a575f80fd5b506101a361062d565b6040516101b09190611d7a565b60405180910390f35b3480156101c4575f80fd5b506101df60048036038101906101da9190611e38565b61066a565b6040516101ec9190611e90565b60405180910390f35b348015610200575f80fd5b50610209610687565b6040516102169190611eb8565b60405180910390f35b34801561022a575f80fd5b5061023361068d565b6040516102409190611eb8565b60405180910390f35b348015610254575f80fd5b5061026f600480360381019061026a9190611ed1565b6106b0565b005b34801561027c575f80fd5b5061028561070f565b6040516102929190611f1c565b60405180910390f35b3480156102a6575f80fd5b506102c160048036038101906102bc9190611f35565b610734565b6040516102ce9190611e90565b60405180910390f35b3480156102e2575f80fd5b506102eb610808565b6040516102f89190611fa0565b60405180910390f35b34801561030c575f80fd5b50610315610810565b6040516103229190611eb8565b60405180910390f35b348015610336575f80fd5b50610351600480360381019061034c9190611ed1565b610816565b005b34801561035e575f80fd5b50610379600480360381019061037491906120f9565b610876565b005b348015610386575f80fd5b5061038f610909565b60405161039c9190611eb8565b60405180910390f35b3480156103b0575f80fd5b506103cb60048036038101906103c69190611ed1565b61090f565b6040516103d89190611eb8565b60405180910390f35b3480156103ec575f80fd5b506103f5610955565b005b348015610402575f80fd5b5061041d60048036038101906104189190611ed1565b610968565b60405161042a9190611e90565b60405180910390f35b34801561043e575f80fd5b50610447610985565b604051610454919061214f565b60405180910390f35b348015610468575f80fd5b50610483600480360381019061047e9190612168565b6109ac565b005b348015610490575f80fd5b506104ab60048036038101906104a69190612168565b610a1a565b005b3480156104b8575f80fd5b506104c1610a2c565b6040516104ce9190611d7a565b60405180910390f35b3480156104e2575f80fd5b506104fd60048036038101906104f89190612168565b610a69565b005b34801561050a575f80fd5b5061052560048036038101906105209190611e38565b610a7b565b6040516105329190611e90565b60405180910390f35b348015610546575f80fd5b50610561600480360381019061055c9190611ed1565b610a98565b60405161056e9190611e90565b60405180910390f35b348015610582575f80fd5b5061058b610ab5565b6040516105989190611eb8565b60405180910390f35b3480156105ac575f80fd5b506105c760048036038101906105c291906120f9565b610abb565b005b3480156105d4575f80fd5b506105ef60048036038101906105ea9190612193565b610b4d565b6040516105fc9190611eb8565b60405180910390f35b348015610610575f80fd5b5061062b60048036038101906106269190611ed1565b610bcf565b005b60606040518060400160405280600c81526020017f4d41474120564943544f52590000000000000000000000000000000000000000815250905090565b5f61067d610676610c51565b8484610c58565b6001905092915050565b60065481565b5f6012600a61069c919061232d565b6302cd29c06106ab9190612377565b905090565b6106b8610e1b565b5f60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f610740848484610e99565b6107fd8461074c610c51565b6107f885604051806060016040528060288152602001612ccc6028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6107af610c51565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546116c59092919063ffffffff16565b610c58565b600190509392505050565b5f6012905090565b60075481565b61081e610e1b565b600160035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b61087e610e1b565b5f5b815181101561090557600160045f8484815181106108a1576108a06123b8565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080600101915050610880565b5050565b60085481565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b61095d610e1b565b6109665f611727565b565b6003602052805f5260405f205f915054906101000a900460ff1681565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6109b4610e1b565b6109cf60c86109c161068d565b6117e890919063ffffffff16565b8111610a10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a079061242f565b60405180910390fd5b8060068190555050565b610a22610e1b565b8060088190555050565b60606040518060400160405280600681526020017f4d41474156540000000000000000000000000000000000000000000000000000815250905090565b610a71610e1b565b8060078190555050565b5f610a8e610a87610c51565b8484610e99565b6001905092915050565b6004602052805f5260405f205f915054906101000a900460ff1681565b60055481565b610ac3610e1b565b5f5b8151811015610b49575f60045f848481518110610ae557610ae46123b8565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080600101915050610ac5565b5050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b610bd7610e1b565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610c45576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3c906124bd565b60405180910390fd5b610c4e81611727565b50565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610cc6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cbd9061254b565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610d34576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d2b906125d9565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610e0e9190611eb8565b60405180910390a3505050565b610e23610c51565b73ffffffffffffffffffffffffffffffffffffffff16610e41610985565b73ffffffffffffffffffffffffffffffffffffffff1614610e97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e8e90612641565b60405180910390fd5b565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610f07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610efe906126cf565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610f75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f6c9061275d565b60405180910390fd5b5f8111610fb7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fae906127eb565b60405180910390fd5b60045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611055575060045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b611094576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108b90612853565b60405180910390fd5b5f60035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611133575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561141557600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146111e557600654826111998561090f565b6111a39190612871565b11156111e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111db906128ee565b60405180910390fd5b5b5f60075411156112c957600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156112985750600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156112c8576112c560646112b76007548561183190919063ffffffff16565b6117e890919063ffffffff16565b90505b5b5f600854111561135357600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036113525761134f60646113416008548561183190919063ffffffff16565b6117e890919063ffffffff16565b90505b5b5f61135d3061090f565b9050600b60149054906101000a900460ff161580156113c85750600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156113e05750600b60159054906101000a900460ff165b80156113ed575060055481115b15611413576113fb816118a8565b5f4790505f8111156114115761141047611b1c565b5b505b505b5f8111156115145761146d8160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611be990919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161150b9190611eb8565b60405180910390a35b6115648260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611c4690919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506116076115bb8284611c4690919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611be990919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6116aa8486611c4690919063ffffffff16565b6040516116b79190611eb8565b60405180910390a350505050565b5f83831115829061170c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117039190611d7a565b60405180910390fd5b505f838561171a919061290c565b9050809150509392505050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f61182983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611c8f565b905092915050565b5f808303611841575f90506118a2565b5f828461184e9190612377565b905082848261185d919061296c565b1461189d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161189490612a0c565b60405180910390fd5b809150505b92915050565b6001600b60146101000a81548160ff0219169083151502179055505f810315611aff575f600267ffffffffffffffff8111156118e7576118e6611fbd565b5b6040519080825280602002602001820160405280156119155781602001602082028036833780820191505090505b50905030815f8151811061192c5761192b6123b8565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156119d0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119f49190612a3e565b81600181518110611a0857611a076123b8565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611a6e30600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610c58565b600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611ad0959493929190612b62565b5f604051808303815f87803b158015611ae7575f80fd5b505af1158015611af9573d5f803e3d5ffd5b50505050505b5f600b60146101000a81548160ff02191690831515021790555050565b5f60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682604051611b6290612be7565b5f6040518083038185875af1925050503d805f8114611b9c576040519150601f19603f3d011682016040523d82523d5f602084013e611ba1565b606091505b5050905080611be5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bdc90612c45565b60405180910390fd5b5050565b5f808284611bf79190612871565b905083811015611c3c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c3390612cad565b60405180910390fd5b8091505092915050565b5f611c8783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506116c5565b905092915050565b5f8083118290611cd5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ccc9190611d7a565b60405180910390fd5b505f8385611ce3919061296c565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015611d27578082015181840152602081019050611d0c565b5f8484015250505050565b5f601f19601f8301169050919050565b5f611d4c82611cf0565b611d568185611cfa565b9350611d66818560208601611d0a565b611d6f81611d32565b840191505092915050565b5f6020820190508181035f830152611d928184611d42565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611dd482611dab565b9050919050565b611de481611dca565b8114611dee575f80fd5b50565b5f81359050611dff81611ddb565b92915050565b5f819050919050565b611e1781611e05565b8114611e21575f80fd5b50565b5f81359050611e3281611e0e565b92915050565b5f8060408385031215611e4e57611e4d611da3565b5b5f611e5b85828601611df1565b9250506020611e6c85828601611e24565b9150509250929050565b5f8115159050919050565b611e8a81611e76565b82525050565b5f602082019050611ea35f830184611e81565b92915050565b611eb281611e05565b82525050565b5f602082019050611ecb5f830184611ea9565b92915050565b5f60208284031215611ee657611ee5611da3565b5b5f611ef384828501611df1565b91505092915050565b5f611f0682611dab565b9050919050565b611f1681611efc565b82525050565b5f602082019050611f2f5f830184611f0d565b92915050565b5f805f60608486031215611f4c57611f4b611da3565b5b5f611f5986828701611df1565b9350506020611f6a86828701611df1565b9250506040611f7b86828701611e24565b9150509250925092565b5f60ff82169050919050565b611f9a81611f85565b82525050565b5f602082019050611fb35f830184611f91565b92915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b611ff382611d32565b810181811067ffffffffffffffff8211171561201257612011611fbd565b5b80604052505050565b5f612024611d9a565b90506120308282611fea565b919050565b5f67ffffffffffffffff82111561204f5761204e611fbd565b5b602082029050602081019050919050565b5f80fd5b5f61207661207184612035565b61201b565b9050808382526020820190506020840283018581111561209957612098612060565b5b835b818110156120c257806120ae8882611df1565b84526020840193505060208101905061209b565b5050509392505050565b5f82601f8301126120e0576120df611fb9565b5b81356120f0848260208601612064565b91505092915050565b5f6020828403121561210e5761210d611da3565b5b5f82013567ffffffffffffffff81111561212b5761212a611da7565b5b612137848285016120cc565b91505092915050565b61214981611dca565b82525050565b5f6020820190506121625f830184612140565b92915050565b5f6020828403121561217d5761217c611da3565b5b5f61218a84828501611e24565b91505092915050565b5f80604083850312156121a9576121a8611da3565b5b5f6121b685828601611df1565b92505060206121c785828601611df1565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156122535780860481111561222f5761222e6121d1565b5b600185161561223e5780820291505b808102905061224c856121fe565b9450612213565b94509492505050565b5f8261226b5760019050612326565b81612278575f9050612326565b816001811461228e5760028114612298576122c7565b6001915050612326565b60ff8411156122aa576122a96121d1565b5b8360020a9150848211156122c1576122c06121d1565b5b50612326565b5060208310610133831016604e8410600b84101617156122fc5782820a9050838111156122f7576122f66121d1565b5b612326565b612309848484600161220a565b925090508184048111156123205761231f6121d1565b5b81810290505b9392505050565b5f61233782611e05565b915061234283611f85565b925061236f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461225c565b905092915050565b5f61238182611e05565b915061238c83611e05565b925082820261239a81611e05565b915082820484148315176123b1576123b06121d1565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4c696d697420746f6f206c6573730000000000000000000000000000000000005f82015250565b5f612419600e83611cfa565b9150612424826123e5565b602082019050919050565b5f6020820190508181035f8301526124468161240d565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f6124a7602683611cfa565b91506124b28261244d565b604082019050919050565b5f6020820190508181035f8301526124d48161249b565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612535602483611cfa565b9150612540826124db565b604082019050919050565b5f6020820190508181035f83015261256281612529565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6125c3602283611cfa565b91506125ce82612569565b604082019050919050565b5f6020820190508181035f8301526125f0816125b7565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61262b602083611cfa565b9150612636826125f7565b602082019050919050565b5f6020820190508181035f8301526126588161261f565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6126b9602583611cfa565b91506126c48261265f565b604082019050919050565b5f6020820190508181035f8301526126e6816126ad565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612747602383611cfa565b9150612752826126ed565b604082019050919050565b5f6020820190508181035f8301526127748161273b565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f6127d5602983611cfa565b91506127e08261277b565b604082019050919050565b5f6020820190508181035f830152612802816127c9565b9050919050565b7f53656e646572206f7220526563697069656e7420426c61636b6c6973746564005f82015250565b5f61283d601f83611cfa565b915061284882612809565b602082019050919050565b5f6020820190508181035f83015261286a81612831565b9050919050565b5f61287b82611e05565b915061288683611e05565b925082820190508082111561289e5761289d6121d1565b5b92915050565b7f457863656564732074686520616e74695768616c654c696d69742e00000000005f82015250565b5f6128d8601b83611cfa565b91506128e3826128a4565b602082019050919050565b5f6020820190508181035f830152612905816128cc565b9050919050565b5f61291682611e05565b915061292183611e05565b9250828203905081811115612939576129386121d1565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61297682611e05565b915061298183611e05565b9250826129915761299061293f565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6129f6602183611cfa565b9150612a018261299c565b604082019050919050565b5f6020820190508181035f830152612a23816129ea565b9050919050565b5f81519050612a3881611ddb565b92915050565b5f60208284031215612a5357612a52611da3565b5b5f612a6084828501612a2a565b91505092915050565b5f819050919050565b5f819050919050565b5f612a95612a90612a8b84612a69565b612a72565b611e05565b9050919050565b612aa581612a7b565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612add81611dca565b82525050565b5f612aee8383612ad4565b60208301905092915050565b5f602082019050919050565b5f612b1082612aab565b612b1a8185612ab5565b9350612b2583612ac5565b805f5b83811015612b55578151612b3c8882612ae3565b9750612b4783612afa565b925050600181019050612b28565b5085935050505092915050565b5f60a082019050612b755f830188611ea9565b612b826020830187612a9c565b8181036040830152612b948186612b06565b9050612ba36060830185612140565b612bb06080830184611ea9565b9695505050505050565b5f81905092915050565b50565b5f612bd25f83612bba565b9150612bdd82612bc4565b5f82019050919050565b5f612bf182612bc7565b9150819050919050565b7f43616c6c206661696c65640000000000000000000000000000000000000000005f82015250565b5f612c2f600b83611cfa565b9150612c3a82612bfb565b602082019050919050565b5f6020820190508181035f830152612c5c81612c23565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f612c97601b83611cfa565b9150612ca282612c63565b602082019050919050565b5f6020820190508181035f830152612cc481612c8b565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212202248fab5f4d0453fa7cb3921797467582468345a1ffb8d8ed0b0cfb41ce026ea64736f6c63430008180033

Deployed Bytecode

0x608060405260043610610184575f3560e01c8063715018a6116100d0578063a3cdf02311610089578063bf474bed11610063578063bf474bed14610577578063d2a3af29146105a1578063dd62ed3e146105c9578063f2fde38b146106055761018b565b8063a3cdf023146104d7578063a9059cbb146104ff578063bbde5b251461053b5761018b565b8063715018a6146103e1578063768dc710146103f75780638da5cb5b1461043357806393114b1d1461045d57806393d89a0c1461048557806395d89b41146104ad5761018b565b806323b872dd1161013d578063437823ec11610117578063437823ec1461032b578063540538b614610353578063590f897e1461037b57806370a08231146103a55761018b565b806323b872dd1461029b578063313ce567146102d757806340b9a54b146103015761018b565b806306fdde031461018f578063095ea7b3146101b95780631234f868146101f557806318160ddd1461021f5780631e0117bd146102495780631fafa8bc146102715761018b565b3661018b57005b5f80fd5b34801561019a575f80fd5b506101a361062d565b6040516101b09190611d7a565b60405180910390f35b3480156101c4575f80fd5b506101df60048036038101906101da9190611e38565b61066a565b6040516101ec9190611e90565b60405180910390f35b348015610200575f80fd5b50610209610687565b6040516102169190611eb8565b60405180910390f35b34801561022a575f80fd5b5061023361068d565b6040516102409190611eb8565b60405180910390f35b348015610254575f80fd5b5061026f600480360381019061026a9190611ed1565b6106b0565b005b34801561027c575f80fd5b5061028561070f565b6040516102929190611f1c565b60405180910390f35b3480156102a6575f80fd5b506102c160048036038101906102bc9190611f35565b610734565b6040516102ce9190611e90565b60405180910390f35b3480156102e2575f80fd5b506102eb610808565b6040516102f89190611fa0565b60405180910390f35b34801561030c575f80fd5b50610315610810565b6040516103229190611eb8565b60405180910390f35b348015610336575f80fd5b50610351600480360381019061034c9190611ed1565b610816565b005b34801561035e575f80fd5b50610379600480360381019061037491906120f9565b610876565b005b348015610386575f80fd5b5061038f610909565b60405161039c9190611eb8565b60405180910390f35b3480156103b0575f80fd5b506103cb60048036038101906103c69190611ed1565b61090f565b6040516103d89190611eb8565b60405180910390f35b3480156103ec575f80fd5b506103f5610955565b005b348015610402575f80fd5b5061041d60048036038101906104189190611ed1565b610968565b60405161042a9190611e90565b60405180910390f35b34801561043e575f80fd5b50610447610985565b604051610454919061214f565b60405180910390f35b348015610468575f80fd5b50610483600480360381019061047e9190612168565b6109ac565b005b348015610490575f80fd5b506104ab60048036038101906104a69190612168565b610a1a565b005b3480156104b8575f80fd5b506104c1610a2c565b6040516104ce9190611d7a565b60405180910390f35b3480156104e2575f80fd5b506104fd60048036038101906104f89190612168565b610a69565b005b34801561050a575f80fd5b5061052560048036038101906105209190611e38565b610a7b565b6040516105329190611e90565b60405180910390f35b348015610546575f80fd5b50610561600480360381019061055c9190611ed1565b610a98565b60405161056e9190611e90565b60405180910390f35b348015610582575f80fd5b5061058b610ab5565b6040516105989190611eb8565b60405180910390f35b3480156105ac575f80fd5b506105c760048036038101906105c291906120f9565b610abb565b005b3480156105d4575f80fd5b506105ef60048036038101906105ea9190612193565b610b4d565b6040516105fc9190611eb8565b60405180910390f35b348015610610575f80fd5b5061062b60048036038101906106269190611ed1565b610bcf565b005b60606040518060400160405280600c81526020017f4d41474120564943544f52590000000000000000000000000000000000000000815250905090565b5f61067d610676610c51565b8484610c58565b6001905092915050565b60065481565b5f6012600a61069c919061232d565b6302cd29c06106ab9190612377565b905090565b6106b8610e1b565b5f60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f610740848484610e99565b6107fd8461074c610c51565b6107f885604051806060016040528060288152602001612ccc6028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6107af610c51565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546116c59092919063ffffffff16565b610c58565b600190509392505050565b5f6012905090565b60075481565b61081e610e1b565b600160035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b61087e610e1b565b5f5b815181101561090557600160045f8484815181106108a1576108a06123b8565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080600101915050610880565b5050565b60085481565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b61095d610e1b565b6109665f611727565b565b6003602052805f5260405f205f915054906101000a900460ff1681565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6109b4610e1b565b6109cf60c86109c161068d565b6117e890919063ffffffff16565b8111610a10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a079061242f565b60405180910390fd5b8060068190555050565b610a22610e1b565b8060088190555050565b60606040518060400160405280600681526020017f4d41474156540000000000000000000000000000000000000000000000000000815250905090565b610a71610e1b565b8060078190555050565b5f610a8e610a87610c51565b8484610e99565b6001905092915050565b6004602052805f5260405f205f915054906101000a900460ff1681565b60055481565b610ac3610e1b565b5f5b8151811015610b49575f60045f848481518110610ae557610ae46123b8565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080600101915050610ac5565b5050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b610bd7610e1b565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610c45576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3c906124bd565b60405180910390fd5b610c4e81611727565b50565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610cc6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cbd9061254b565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610d34576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d2b906125d9565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610e0e9190611eb8565b60405180910390a3505050565b610e23610c51565b73ffffffffffffffffffffffffffffffffffffffff16610e41610985565b73ffffffffffffffffffffffffffffffffffffffff1614610e97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e8e90612641565b60405180910390fd5b565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610f07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610efe906126cf565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610f75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f6c9061275d565b60405180910390fd5b5f8111610fb7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fae906127eb565b60405180910390fd5b60045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611055575060045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b611094576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108b90612853565b60405180910390fd5b5f60035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611133575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561141557600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146111e557600654826111998561090f565b6111a39190612871565b11156111e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111db906128ee565b60405180910390fd5b5b5f60075411156112c957600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156112985750600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156112c8576112c560646112b76007548561183190919063ffffffff16565b6117e890919063ffffffff16565b90505b5b5f600854111561135357600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036113525761134f60646113416008548561183190919063ffffffff16565b6117e890919063ffffffff16565b90505b5b5f61135d3061090f565b9050600b60149054906101000a900460ff161580156113c85750600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156113e05750600b60159054906101000a900460ff165b80156113ed575060055481115b15611413576113fb816118a8565b5f4790505f8111156114115761141047611b1c565b5b505b505b5f8111156115145761146d8160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611be990919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161150b9190611eb8565b60405180910390a35b6115648260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611c4690919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506116076115bb8284611c4690919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611be990919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6116aa8486611c4690919063ffffffff16565b6040516116b79190611eb8565b60405180910390a350505050565b5f83831115829061170c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117039190611d7a565b60405180910390fd5b505f838561171a919061290c565b9050809150509392505050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f61182983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611c8f565b905092915050565b5f808303611841575f90506118a2565b5f828461184e9190612377565b905082848261185d919061296c565b1461189d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161189490612a0c565b60405180910390fd5b809150505b92915050565b6001600b60146101000a81548160ff0219169083151502179055505f810315611aff575f600267ffffffffffffffff8111156118e7576118e6611fbd565b5b6040519080825280602002602001820160405280156119155781602001602082028036833780820191505090505b50905030815f8151811061192c5761192b6123b8565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156119d0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119f49190612a3e565b81600181518110611a0857611a076123b8565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611a6e30600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610c58565b600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611ad0959493929190612b62565b5f604051808303815f87803b158015611ae7575f80fd5b505af1158015611af9573d5f803e3d5ffd5b50505050505b5f600b60146101000a81548160ff02191690831515021790555050565b5f60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682604051611b6290612be7565b5f6040518083038185875af1925050503d805f8114611b9c576040519150601f19603f3d011682016040523d82523d5f602084013e611ba1565b606091505b5050905080611be5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bdc90612c45565b60405180910390fd5b5050565b5f808284611bf79190612871565b905083811015611c3c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c3390612cad565b60405180910390fd5b8091505092915050565b5f611c8783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506116c5565b905092915050565b5f8083118290611cd5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ccc9190611d7a565b60405180910390fd5b505f8385611ce3919061296c565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015611d27578082015181840152602081019050611d0c565b5f8484015250505050565b5f601f19601f8301169050919050565b5f611d4c82611cf0565b611d568185611cfa565b9350611d66818560208601611d0a565b611d6f81611d32565b840191505092915050565b5f6020820190508181035f830152611d928184611d42565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611dd482611dab565b9050919050565b611de481611dca565b8114611dee575f80fd5b50565b5f81359050611dff81611ddb565b92915050565b5f819050919050565b611e1781611e05565b8114611e21575f80fd5b50565b5f81359050611e3281611e0e565b92915050565b5f8060408385031215611e4e57611e4d611da3565b5b5f611e5b85828601611df1565b9250506020611e6c85828601611e24565b9150509250929050565b5f8115159050919050565b611e8a81611e76565b82525050565b5f602082019050611ea35f830184611e81565b92915050565b611eb281611e05565b82525050565b5f602082019050611ecb5f830184611ea9565b92915050565b5f60208284031215611ee657611ee5611da3565b5b5f611ef384828501611df1565b91505092915050565b5f611f0682611dab565b9050919050565b611f1681611efc565b82525050565b5f602082019050611f2f5f830184611f0d565b92915050565b5f805f60608486031215611f4c57611f4b611da3565b5b5f611f5986828701611df1565b9350506020611f6a86828701611df1565b9250506040611f7b86828701611e24565b9150509250925092565b5f60ff82169050919050565b611f9a81611f85565b82525050565b5f602082019050611fb35f830184611f91565b92915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b611ff382611d32565b810181811067ffffffffffffffff8211171561201257612011611fbd565b5b80604052505050565b5f612024611d9a565b90506120308282611fea565b919050565b5f67ffffffffffffffff82111561204f5761204e611fbd565b5b602082029050602081019050919050565b5f80fd5b5f61207661207184612035565b61201b565b9050808382526020820190506020840283018581111561209957612098612060565b5b835b818110156120c257806120ae8882611df1565b84526020840193505060208101905061209b565b5050509392505050565b5f82601f8301126120e0576120df611fb9565b5b81356120f0848260208601612064565b91505092915050565b5f6020828403121561210e5761210d611da3565b5b5f82013567ffffffffffffffff81111561212b5761212a611da7565b5b612137848285016120cc565b91505092915050565b61214981611dca565b82525050565b5f6020820190506121625f830184612140565b92915050565b5f6020828403121561217d5761217c611da3565b5b5f61218a84828501611e24565b91505092915050565b5f80604083850312156121a9576121a8611da3565b5b5f6121b685828601611df1565b92505060206121c785828601611df1565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156122535780860481111561222f5761222e6121d1565b5b600185161561223e5780820291505b808102905061224c856121fe565b9450612213565b94509492505050565b5f8261226b5760019050612326565b81612278575f9050612326565b816001811461228e5760028114612298576122c7565b6001915050612326565b60ff8411156122aa576122a96121d1565b5b8360020a9150848211156122c1576122c06121d1565b5b50612326565b5060208310610133831016604e8410600b84101617156122fc5782820a9050838111156122f7576122f66121d1565b5b612326565b612309848484600161220a565b925090508184048111156123205761231f6121d1565b5b81810290505b9392505050565b5f61233782611e05565b915061234283611f85565b925061236f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461225c565b905092915050565b5f61238182611e05565b915061238c83611e05565b925082820261239a81611e05565b915082820484148315176123b1576123b06121d1565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4c696d697420746f6f206c6573730000000000000000000000000000000000005f82015250565b5f612419600e83611cfa565b9150612424826123e5565b602082019050919050565b5f6020820190508181035f8301526124468161240d565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f6124a7602683611cfa565b91506124b28261244d565b604082019050919050565b5f6020820190508181035f8301526124d48161249b565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612535602483611cfa565b9150612540826124db565b604082019050919050565b5f6020820190508181035f83015261256281612529565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6125c3602283611cfa565b91506125ce82612569565b604082019050919050565b5f6020820190508181035f8301526125f0816125b7565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61262b602083611cfa565b9150612636826125f7565b602082019050919050565b5f6020820190508181035f8301526126588161261f565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6126b9602583611cfa565b91506126c48261265f565b604082019050919050565b5f6020820190508181035f8301526126e6816126ad565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612747602383611cfa565b9150612752826126ed565b604082019050919050565b5f6020820190508181035f8301526127748161273b565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f6127d5602983611cfa565b91506127e08261277b565b604082019050919050565b5f6020820190508181035f830152612802816127c9565b9050919050565b7f53656e646572206f7220526563697069656e7420426c61636b6c6973746564005f82015250565b5f61283d601f83611cfa565b915061284882612809565b602082019050919050565b5f6020820190508181035f83015261286a81612831565b9050919050565b5f61287b82611e05565b915061288683611e05565b925082820190508082111561289e5761289d6121d1565b5b92915050565b7f457863656564732074686520616e74695768616c654c696d69742e00000000005f82015250565b5f6128d8601b83611cfa565b91506128e3826128a4565b602082019050919050565b5f6020820190508181035f830152612905816128cc565b9050919050565b5f61291682611e05565b915061292183611e05565b9250828203905081811115612939576129386121d1565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61297682611e05565b915061298183611e05565b9250826129915761299061293f565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6129f6602183611cfa565b9150612a018261299c565b604082019050919050565b5f6020820190508181035f830152612a23816129ea565b9050919050565b5f81519050612a3881611ddb565b92915050565b5f60208284031215612a5357612a52611da3565b5b5f612a6084828501612a2a565b91505092915050565b5f819050919050565b5f819050919050565b5f612a95612a90612a8b84612a69565b612a72565b611e05565b9050919050565b612aa581612a7b565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612add81611dca565b82525050565b5f612aee8383612ad4565b60208301905092915050565b5f602082019050919050565b5f612b1082612aab565b612b1a8185612ab5565b9350612b2583612ac5565b805f5b83811015612b55578151612b3c8882612ae3565b9750612b4783612afa565b925050600181019050612b28565b5085935050505092915050565b5f60a082019050612b755f830188611ea9565b612b826020830187612a9c565b8181036040830152612b948186612b06565b9050612ba36060830185612140565b612bb06080830184611ea9565b9695505050505050565b5f81905092915050565b50565b5f612bd25f83612bba565b9150612bdd82612bc4565b5f82019050919050565b5f612bf182612bc7565b9150819050919050565b7f43616c6c206661696c65640000000000000000000000000000000000000000005f82015250565b5f612c2f600b83611cfa565b9150612c3a82612bfb565b602082019050919050565b5f6020820190508181035f830152612c5c81612c23565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f612c97601b83611cfa565b9150612ca282612c63565b602082019050919050565b5f6020820190508181035f830152612cc481612c8b565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212202248fab5f4d0453fa7cb3921797467582468345a1ffb8d8ed0b0cfb41ce026ea64736f6c63430008180033

Deployed Bytecode Sourcemap

3852:7163:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5653:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6486:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4471:59;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5930:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10510:108;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4630:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6655:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5839:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4539:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10393:109;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10626:186;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4582:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6033:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2570:103;;;;;;;;;;;;;:::i;:::-;;4067:51;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2333:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10010:181;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10295:90;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5744:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10199:88;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6160:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4125:44;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4408:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10820:192;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6335:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2683:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5653:83;5690:13;5723:5;;;;;;;;;;;;;;;;;5716:12;;5653:83;:::o;6486:161::-;6561:4;6578:39;6587:12;:10;:12::i;:::-;6601:7;6610:6;6578:8;:39::i;:::-;6635:4;6628:11;;6486:161;;;;:::o;4471:59::-;;;;:::o;5930:95::-;5983:7;4213:2;4268;:13;;;;:::i;:::-;4257:8;:24;;;;:::i;:::-;6003:14;;5930:95;:::o;10510:108::-;2292:13;:11;:13::i;:::-;10605:5:::1;10576:18;:26;10595:6;10576:26;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;10510:108:::0;:::o;4630:95::-;;;;;;;;;;;;;:::o;6655:313::-;6753:4;6770:36;6780:6;6788:9;6799:6;6770:9;:36::i;:::-;6817:121;6826:6;6834:12;:10;:12::i;:::-;6848:89;6886:6;6848:89;;;;;;;;;;;;;;;;;:11;:19;6860:6;6848:19;;;;;;;;;;;;;;;:33;6868:12;:10;:12::i;:::-;6848:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6817:8;:121::i;:::-;6956:4;6949:11;;6655:313;;;;;:::o;5839:83::-;5880:5;4213:2;5898:16;;5839:83;:::o;4539:26::-;;;;:::o;10393:109::-;2292:13;:11;:13::i;:::-;10490:4:::1;10461:18;:26;10480:6;10461:26;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;10393:109:::0;:::o;10626:186::-;2292:13;:11;:13::i;:::-;10710:6:::1;10706:99;10726:8;:15;10722:1;:19;10706:99;;;10789:4;10762:11;:24;10774:8;10783:1;10774:11;;;;;;;;:::i;:::-;;;;;;;;10762:24;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;10743:3;;;;;;;10706:99;;;;10626:186:::0;:::o;4582:27::-;;;;:::o;6033:119::-;6099:7;6126:9;:18;6136:7;6126:18;;;;;;;;;;;;;;;;6119:25;;6033:119;;;:::o;2570:103::-;2292:13;:11;:13::i;:::-;2635:30:::1;2662:1;2635:18;:30::i;:::-;2570:103::o:0;4067:51::-;;;;;;;;;;;;;;;;;;;;;;:::o;2333:87::-;2379:7;2406:6;;;;;;;;;;;2399:13;;2333:87;:::o;10010:181::-;2292:13;:11;:13::i;:::-;10106:22:::1;10124:3;10106:13;:11;:13::i;:::-;:17;;:22;;;;:::i;:::-;10094:9;:34;10086:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;10174:9;10157:14;:26;;;;10010:181:::0;:::o;10295:90::-;2292:13;:11;:13::i;:::-;10373:4:::1;10362:8;:15;;;;10295:90:::0;:::o;5744:87::-;5783:13;5816:7;;;;;;;;;;;;;;;;;5809:14;;5744:87;:::o;10199:88::-;2292:13;:11;:13::i;:::-;10275:4:::1;10265:7;:14;;;;10199:88:::0;:::o;6160:167::-;6238:4;6255:42;6265:12;:10;:12::i;:::-;6279:9;6290:6;6255:9;:42::i;:::-;6315:4;6308:11;;6160:167;;;;:::o;4125:44::-;;;;;;;;;;;;;;;;;;;;;;:::o;4408:56::-;;;;:::o;10820:192::-;2292:13;:11;:13::i;:::-;10909:6:::1;10905:100;10925:8;:15;10921:1;:19;10905:100;;;10988:5;10961:11;:24;10973:8;10982:1;10973:11;;;;;;;;:::i;:::-;;;;;;;;10961:24;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;10942:3;;;;;;;10905:100;;;;10820:192:::0;:::o;6335:143::-;6416:7;6443:11;:18;6455:5;6443:18;;;;;;;;;;;;;;;:27;6462:7;6443:27;;;;;;;;;;;;;;;;6436:34;;6335:143;;;;:::o;2683:201::-;2292:13;:11;:13::i;:::-;2792:1:::1;2772:22;;:8;:22;;::::0;2764:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2848:28;2867:8;2848:18;:28::i;:::-;2683:201:::0;:::o;93:98::-;146:7;173:10;166:17;;93:98;:::o;6976:335::-;7086:1;7069:19;;:5;:19;;;7061:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7167:1;7148:21;;:7;:21;;;7140:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7249:6;7219:11;:18;7231:5;7219:18;;;;;;;;;;;;;;;:27;7238:7;7219:27;;;;;;;;;;;;;;;:36;;;;7287:7;7271:32;;7280:5;7271:32;;;7296:6;7271:32;;;;;;:::i;:::-;;;;;;;;6976:335;;;:::o;2428:132::-;2503:12;:10;:12::i;:::-;2492:23;;:7;:5;:7::i;:::-;:23;;;2484:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2428:132::o;7319:1814::-;7423:1;7407:18;;:4;:18;;;7399:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7500:1;7486:16;;:2;:16;;;7478:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7570:1;7561:6;:10;7553:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7637:11;:17;7649:4;7637:17;;;;;;;;;;;;;;;;;;;;;;;;;7636:18;:38;;;;;7659:11;:15;7671:2;7659:15;;;;;;;;;;;;;;;;;;;;;;;;;7658:16;7636:38;7628:81;;;;;;;;;;;;:::i;:::-;;;;;;;;;7720:17;7755:18;:24;7774:4;7755:24;;;;;;;;;;;;;;;;;;;;;;;;;7754:25;:52;;;;;7784:18;:22;7803:2;7784:22;;;;;;;;;;;;;;;;;;;;;;;;;7783:23;7754:52;7750:1027;;;7834:13;;;;;;;;;;;7828:19;;:2;:19;;;7825:137;;7900:14;;7890:6;7874:13;7884:2;7874:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;7866:80;;;;;;;;;;;;:::i;:::-;;;;;;;;;7825:137;7991:1;7981:7;;:11;7978:182;;;8021:13;;;;;;;;;;;8013:21;;:4;:21;;;:55;;;;;8052:15;;;;;;;;;;;8038:30;;:2;:30;;;;8013:55;8009:136;;;8101:28;8125:3;8101:19;8112:7;;8101:6;:10;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;8089:40;;8009:136;7978:182;8190:1;8179:8;;:12;8176:146;;;8217:13;;;;;;;;;;;8211:19;;:2;:19;;;8208:99;;8262:29;8287:3;8262:20;8273:8;;8262:6;:10;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;8250:41;;8208:99;8176:146;8338:28;8369:24;8387:4;8369:9;:24::i;:::-;8338:55;;8413:6;;;;;;;;;;;8412:7;:30;;;;;8429:13;;;;;;;;;;;8423:19;;:2;:19;;;8412:30;:45;;;;;8446:11;;;;;;;;;;;8412:45;:87;;;;;8482:17;;8461:20;:38;8412:87;8408:358;;;8520:38;8537:20;8520:16;:38::i;:::-;8577:26;8606:21;8577:50;;8670:1;8649:18;:22;8646:105;;;8696:35;8709:21;8696:12;:35::i;:::-;8646:105;8501:265;8408:358;7808:969;7750:1027;8802:1;8792:9;:11;8789:161;;;8842:39;8871:9;8842;:24;8860:4;8842:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;8817:9;:24;8835:4;8817:24;;;;;;;;;;;;;;;:64;;;;8922:4;8899:39;;8908:4;8899:39;;;8928:9;8899:39;;;;;;:::i;:::-;;;;;;;;8789:161;8976:27;8996:6;8976:9;:15;8986:4;8976:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;8960:9;:15;8970:4;8960:15;;;;;;;;;;;;;;;:43;;;;9028:40;9046:21;9057:9;9046:6;:10;;:21;;;;:::i;:::-;9028:9;:13;9038:2;9028:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;9014:9;:13;9024:2;9014:13;;;;;;;;;;;;;;;:54;;;;9099:2;9084:41;;9093:4;9084:41;;;9103:21;9114:9;9103:6;:10;;:21;;;;:::i;:::-;9084:41;;;;;;:::i;:::-;;;;;;;;7388:1745;7319:1814;;;:::o;1230:190::-;1316:7;1349:1;1344;:6;;1352:12;1336:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1376:9;1392:1;1388;:5;;;;:::i;:::-;1376:17;;1411:1;1404:8;;;1230:190;;;;;:::o;2892:191::-;2966:16;2985:6;;;;;;;;;;;2966:25;;3011:8;3002:6;;:17;;;;;;;;;;;;;;;;;;3066:8;3035:40;;3056:8;3035:40;;;;;;;;;;;;2955:128;2892:191;:::o;1682:132::-;1740:7;1767:39;1771:1;1774;1767:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1760:46;;1682:132;;;;:::o;1428:246::-;1486:7;1515:1;1510;:6;1506:47;;1540:1;1533:8;;;;1506:47;1563:9;1579:1;1575;:5;;;;:::i;:::-;1563:17;;1608:1;1603;1599;:5;;;;:::i;:::-;:10;1591:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1665:1;1658:8;;;1428:246;;;;;:::o;9249:520::-;4934:4;4925:6;;:13;;;;;;;;;;;;;;;;;;9343:1:::1;9330:11;:14:::0;9327:27;9346:7:::1;9327:27;9364:21;9402:1;9388:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9364:40;;9433:4;9415;9420:1;9415:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;9459:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9449:4;9454:1;9449:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;9492:62;9509:4;9524:15;;;;;;;;;;;9542:11;9492:8;:62::i;:::-;9565:15;;;;;;;;;;;:66;;;9646:11;9672:1;9688:4;9715;9735:15;9565:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9316:453;4949:1;4970:5:::0;4961:6;;:14;;;;;;;;;;;;;;;;;;9249:520;:::o;9777:184::-;9834:16;9864:18;;;;;;;;;;;9856:32;;9896:6;9856:51;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9833:74;;;9926:11;9918:35;;;;;;;;;;;;:::i;:::-;;;;;;;;;9823:138;9777:184;:::o;899:179::-;957:7;977:9;993:1;989;:5;;;;:::i;:::-;977:17;;1018:1;1013;:6;;1005:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1069:1;1062:8;;;899:179;;;;:::o;1086:136::-;1144:7;1171:43;1175:1;1178;1171:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1164:50;;1086:136;;;;:::o;1822:189::-;1908:7;1940:1;1936;:5;1943:12;1928:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1967:9;1983:1;1979;:5;;;;:::i;:::-;1967:17;;2002:1;1995:8;;;1822:189;;;;;:::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;1349:75::-;1382:6;1415:2;1409:9;1399:19;;1349:75;:::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:329::-;3857:6;3906:2;3894:9;3885:7;3881:23;3877:32;3874:119;;;3912:79;;:::i;:::-;3874:119;4032:1;4057:53;4102:7;4093:6;4082:9;4078:22;4057:53;:::i;:::-;4047:63;;4003:117;3798:329;;;;:::o;4133:104::-;4178:7;4207:24;4225:5;4207:24;:::i;:::-;4196:35;;4133:104;;;:::o;4243:142::-;4346:32;4372:5;4346:32;:::i;:::-;4341:3;4334:45;4243:142;;:::o;4391:254::-;4500:4;4538:2;4527:9;4523:18;4515:26;;4551:87;4635:1;4624:9;4620:17;4611:6;4551:87;:::i;:::-;4391:254;;;;:::o;4651:619::-;4728:6;4736;4744;4793:2;4781:9;4772:7;4768:23;4764:32;4761:119;;;4799:79;;:::i;:::-;4761:119;4919:1;4944:53;4989:7;4980:6;4969:9;4965:22;4944:53;:::i;:::-;4934:63;;4890:117;5046:2;5072:53;5117:7;5108:6;5097:9;5093:22;5072:53;:::i;:::-;5062:63;;5017:118;5174:2;5200:53;5245:7;5236:6;5225:9;5221:22;5200:53;:::i;:::-;5190:63;;5145:118;4651:619;;;;;:::o;5276:86::-;5311:7;5351:4;5344:5;5340:16;5329:27;;5276:86;;;:::o;5368:112::-;5451:22;5467:5;5451:22;:::i;:::-;5446:3;5439:35;5368:112;;:::o;5486:214::-;5575:4;5613:2;5602:9;5598:18;5590:26;;5626:67;5690:1;5679:9;5675:17;5666:6;5626:67;:::i;:::-;5486:214;;;;:::o;5706:117::-;5815:1;5812;5805:12;5829:180;5877:77;5874:1;5867:88;5974:4;5971:1;5964:15;5998:4;5995:1;5988:15;6015:281;6098:27;6120:4;6098:27;:::i;:::-;6090:6;6086:40;6228:6;6216:10;6213:22;6192:18;6180:10;6177:34;6174:62;6171:88;;;6239:18;;:::i;:::-;6171:88;6279:10;6275:2;6268:22;6058:238;6015:281;;:::o;6302:129::-;6336:6;6363:20;;:::i;:::-;6353:30;;6392:33;6420:4;6412:6;6392:33;:::i;:::-;6302:129;;;:::o;6437:311::-;6514:4;6604:18;6596:6;6593:30;6590:56;;;6626:18;;:::i;:::-;6590:56;6676:4;6668:6;6664:17;6656:25;;6736:4;6730;6726:15;6718:23;;6437:311;;;:::o;6754:117::-;6863:1;6860;6853:12;6894:710;6990:5;7015:81;7031:64;7088:6;7031:64;:::i;:::-;7015:81;:::i;:::-;7006:90;;7116:5;7145:6;7138:5;7131:21;7179:4;7172:5;7168:16;7161:23;;7232:4;7224:6;7220:17;7212:6;7208:30;7261:3;7253:6;7250:15;7247:122;;;7280:79;;:::i;:::-;7247:122;7395:6;7378:220;7412:6;7407:3;7404:15;7378:220;;;7487:3;7516:37;7549:3;7537:10;7516:37;:::i;:::-;7511:3;7504:50;7583:4;7578:3;7574:14;7567:21;;7454:144;7438:4;7433:3;7429:14;7422:21;;7378:220;;;7382:21;6996:608;;6894:710;;;;;:::o;7627:370::-;7698:5;7747:3;7740:4;7732:6;7728:17;7724:27;7714:122;;7755:79;;:::i;:::-;7714:122;7872:6;7859:20;7897:94;7987:3;7979:6;7972:4;7964:6;7960:17;7897:94;:::i;:::-;7888:103;;7704:293;7627:370;;;;:::o;8003:539::-;8087:6;8136:2;8124:9;8115:7;8111:23;8107:32;8104:119;;;8142:79;;:::i;:::-;8104:119;8290:1;8279:9;8275:17;8262:31;8320:18;8312:6;8309:30;8306:117;;;8342:79;;:::i;:::-;8306:117;8447:78;8517:7;8508:6;8497:9;8493:22;8447:78;:::i;:::-;8437:88;;8233:302;8003:539;;;;:::o;8548:118::-;8635:24;8653:5;8635:24;:::i;:::-;8630:3;8623:37;8548:118;;:::o;8672:222::-;8765:4;8803:2;8792:9;8788:18;8780:26;;8816:71;8884:1;8873:9;8869:17;8860:6;8816:71;:::i;:::-;8672:222;;;;:::o;8900:329::-;8959:6;9008:2;8996:9;8987:7;8983:23;8979:32;8976:119;;;9014:79;;:::i;:::-;8976:119;9134:1;9159:53;9204:7;9195:6;9184:9;9180:22;9159:53;:::i;:::-;9149:63;;9105:117;8900:329;;;;:::o;9235:474::-;9303:6;9311;9360:2;9348:9;9339:7;9335:23;9331:32;9328:119;;;9366:79;;:::i;:::-;9328:119;9486:1;9511:53;9556:7;9547:6;9536:9;9532:22;9511:53;:::i;:::-;9501:63;;9457:117;9613:2;9639:53;9684:7;9675:6;9664:9;9660:22;9639:53;:::i;:::-;9629:63;;9584:118;9235:474;;;;;:::o;9715:180::-;9763:77;9760:1;9753:88;9860:4;9857:1;9850:15;9884:4;9881:1;9874:15;9901:102;9943:8;9990:5;9987:1;9983:13;9962:34;;9901:102;;;:::o;10009:848::-;10070:5;10077:4;10101:6;10092:15;;10125:5;10116:14;;10139:712;10160:1;10150:8;10147:15;10139:712;;;10255:4;10250:3;10246:14;10240:4;10237:24;10234:50;;;10264:18;;:::i;:::-;10234:50;10314:1;10304:8;10300:16;10297:451;;;10729:4;10722:5;10718:16;10709:25;;10297:451;10779:4;10773;10769:15;10761:23;;10809:32;10832:8;10809:32;:::i;:::-;10797:44;;10139:712;;;10009:848;;;;;;;:::o;10863:1073::-;10917:5;11108:8;11098:40;;11129:1;11120:10;;11131:5;;11098:40;11157:4;11147:36;;11174:1;11165:10;;11176:5;;11147:36;11243:4;11291:1;11286:27;;;;11327:1;11322:191;;;;11236:277;;11286:27;11304:1;11295:10;;11306:5;;;11322:191;11367:3;11357:8;11354:17;11351:43;;;11374:18;;:::i;:::-;11351:43;11423:8;11420:1;11416:16;11407:25;;11458:3;11451:5;11448:14;11445:40;;;11465:18;;:::i;:::-;11445:40;11498:5;;;11236:277;;11622:2;11612:8;11609:16;11603:3;11597:4;11594:13;11590:36;11572:2;11562:8;11559:16;11554:2;11548:4;11545:12;11541:35;11525:111;11522:246;;;11678:8;11672:4;11668:19;11659:28;;11713:3;11706:5;11703:14;11700:40;;;11720:18;;:::i;:::-;11700:40;11753:5;;11522:246;11793:42;11831:3;11821:8;11815:4;11812:1;11793:42;:::i;:::-;11778:57;;;;11867:4;11862:3;11858:14;11851:5;11848:25;11845:51;;;11876:18;;:::i;:::-;11845:51;11925:4;11918:5;11914:16;11905:25;;10863:1073;;;;;;:::o;11942:281::-;12000:5;12024:23;12042:4;12024:23;:::i;:::-;12016:31;;12068:25;12084:8;12068:25;:::i;:::-;12056:37;;12112:104;12149:66;12139:8;12133:4;12112:104;:::i;:::-;12103:113;;11942:281;;;;:::o;12229:410::-;12269:7;12292:20;12310:1;12292:20;:::i;:::-;12287:25;;12326:20;12344:1;12326:20;:::i;:::-;12321:25;;12381:1;12378;12374:9;12403:30;12421:11;12403:30;:::i;:::-;12392:41;;12582:1;12573:7;12569:15;12566:1;12563:22;12543:1;12536:9;12516:83;12493:139;;12612:18;;:::i;:::-;12493:139;12277:362;12229:410;;;;:::o;12645:180::-;12693:77;12690:1;12683:88;12790:4;12787:1;12780:15;12814:4;12811:1;12804:15;12831:164;12971:16;12967:1;12959:6;12955:14;12948:40;12831:164;:::o;13001:366::-;13143:3;13164:67;13228:2;13223:3;13164:67;:::i;:::-;13157:74;;13240:93;13329:3;13240:93;:::i;:::-;13358:2;13353:3;13349:12;13342:19;;13001:366;;;:::o;13373:419::-;13539:4;13577:2;13566:9;13562:18;13554:26;;13626:9;13620:4;13616:20;13612:1;13601:9;13597:17;13590:47;13654:131;13780:4;13654:131;:::i;:::-;13646:139;;13373:419;;;:::o;13798:225::-;13938:34;13934:1;13926:6;13922:14;13915:58;14007:8;14002:2;13994:6;13990:15;13983:33;13798:225;:::o;14029:366::-;14171:3;14192:67;14256:2;14251:3;14192:67;:::i;:::-;14185:74;;14268:93;14357:3;14268:93;:::i;:::-;14386:2;14381:3;14377:12;14370:19;;14029:366;;;:::o;14401:419::-;14567:4;14605:2;14594:9;14590:18;14582:26;;14654:9;14648:4;14644:20;14640:1;14629:9;14625:17;14618:47;14682:131;14808:4;14682:131;:::i;:::-;14674:139;;14401:419;;;:::o;14826:223::-;14966:34;14962:1;14954:6;14950:14;14943:58;15035:6;15030:2;15022:6;15018:15;15011:31;14826:223;:::o;15055:366::-;15197:3;15218:67;15282:2;15277:3;15218:67;:::i;:::-;15211:74;;15294:93;15383:3;15294:93;:::i;:::-;15412:2;15407:3;15403:12;15396:19;;15055:366;;;:::o;15427:419::-;15593:4;15631:2;15620:9;15616:18;15608:26;;15680:9;15674:4;15670:20;15666:1;15655:9;15651:17;15644:47;15708:131;15834:4;15708:131;:::i;:::-;15700:139;;15427:419;;;:::o;15852:221::-;15992:34;15988:1;15980:6;15976:14;15969:58;16061:4;16056:2;16048:6;16044:15;16037:29;15852:221;:::o;16079:366::-;16221:3;16242:67;16306:2;16301:3;16242:67;:::i;:::-;16235:74;;16318:93;16407:3;16318:93;:::i;:::-;16436:2;16431:3;16427:12;16420:19;;16079:366;;;:::o;16451:419::-;16617:4;16655:2;16644:9;16640:18;16632:26;;16704:9;16698:4;16694:20;16690:1;16679:9;16675:17;16668:47;16732:131;16858:4;16732:131;:::i;:::-;16724:139;;16451:419;;;:::o;16876:182::-;17016:34;17012:1;17004:6;17000:14;16993:58;16876:182;:::o;17064:366::-;17206:3;17227:67;17291:2;17286:3;17227:67;:::i;:::-;17220:74;;17303:93;17392:3;17303:93;:::i;:::-;17421:2;17416:3;17412:12;17405:19;;17064:366;;;:::o;17436:419::-;17602:4;17640:2;17629:9;17625:18;17617:26;;17689:9;17683:4;17679:20;17675:1;17664:9;17660:17;17653:47;17717:131;17843:4;17717:131;:::i;:::-;17709:139;;17436:419;;;:::o;17861:224::-;18001:34;17997:1;17989:6;17985:14;17978:58;18070:7;18065:2;18057:6;18053:15;18046:32;17861:224;:::o;18091:366::-;18233:3;18254:67;18318:2;18313:3;18254:67;:::i;:::-;18247:74;;18330:93;18419:3;18330:93;:::i;:::-;18448:2;18443:3;18439:12;18432:19;;18091:366;;;:::o;18463:419::-;18629:4;18667:2;18656:9;18652:18;18644:26;;18716:9;18710:4;18706:20;18702:1;18691:9;18687:17;18680:47;18744:131;18870:4;18744:131;:::i;:::-;18736:139;;18463:419;;;:::o;18888:222::-;19028:34;19024:1;19016:6;19012:14;19005:58;19097:5;19092:2;19084:6;19080:15;19073:30;18888:222;:::o;19116:366::-;19258:3;19279:67;19343:2;19338:3;19279:67;:::i;:::-;19272:74;;19355:93;19444:3;19355:93;:::i;:::-;19473:2;19468:3;19464:12;19457:19;;19116:366;;;:::o;19488:419::-;19654:4;19692:2;19681:9;19677:18;19669:26;;19741:9;19735:4;19731:20;19727:1;19716:9;19712:17;19705:47;19769:131;19895:4;19769:131;:::i;:::-;19761:139;;19488:419;;;:::o;19913:228::-;20053:34;20049:1;20041:6;20037:14;20030:58;20122:11;20117:2;20109:6;20105:15;20098:36;19913:228;:::o;20147:366::-;20289:3;20310:67;20374:2;20369:3;20310:67;:::i;:::-;20303:74;;20386:93;20475:3;20386:93;:::i;:::-;20504:2;20499:3;20495:12;20488:19;;20147:366;;;:::o;20519:419::-;20685:4;20723:2;20712:9;20708:18;20700:26;;20772:9;20766:4;20762:20;20758:1;20747:9;20743:17;20736:47;20800:131;20926:4;20800:131;:::i;:::-;20792:139;;20519:419;;;:::o;20944:181::-;21084:33;21080:1;21072:6;21068:14;21061:57;20944:181;:::o;21131:366::-;21273:3;21294:67;21358:2;21353:3;21294:67;:::i;:::-;21287:74;;21370:93;21459:3;21370:93;:::i;:::-;21488:2;21483:3;21479:12;21472:19;;21131:366;;;:::o;21503:419::-;21669:4;21707:2;21696:9;21692:18;21684:26;;21756:9;21750:4;21746:20;21742:1;21731:9;21727:17;21720:47;21784:131;21910:4;21784:131;:::i;:::-;21776:139;;21503:419;;;:::o;21928:191::-;21968:3;21987:20;22005:1;21987:20;:::i;:::-;21982:25;;22021:20;22039:1;22021:20;:::i;:::-;22016:25;;22064:1;22061;22057:9;22050:16;;22085:3;22082:1;22079:10;22076:36;;;22092:18;;:::i;:::-;22076:36;21928:191;;;;:::o;22125:177::-;22265:29;22261:1;22253:6;22249:14;22242:53;22125:177;:::o;22308:366::-;22450:3;22471:67;22535:2;22530:3;22471:67;:::i;:::-;22464:74;;22547:93;22636:3;22547:93;:::i;:::-;22665:2;22660:3;22656:12;22649:19;;22308:366;;;:::o;22680:419::-;22846:4;22884:2;22873:9;22869:18;22861:26;;22933:9;22927:4;22923:20;22919:1;22908:9;22904:17;22897:47;22961:131;23087:4;22961:131;:::i;:::-;22953:139;;22680:419;;;:::o;23105:194::-;23145:4;23165:20;23183:1;23165:20;:::i;:::-;23160:25;;23199:20;23217:1;23199:20;:::i;:::-;23194:25;;23243:1;23240;23236:9;23228:17;;23267:1;23261:4;23258:11;23255:37;;;23272:18;;:::i;:::-;23255:37;23105:194;;;;:::o;23305:180::-;23353:77;23350:1;23343:88;23450:4;23447:1;23440:15;23474:4;23471:1;23464:15;23491:185;23531:1;23548:20;23566:1;23548:20;:::i;:::-;23543:25;;23582:20;23600:1;23582:20;:::i;:::-;23577:25;;23621:1;23611:35;;23626:18;;:::i;:::-;23611:35;23668:1;23665;23661:9;23656:14;;23491:185;;;;:::o;23682:220::-;23822:34;23818:1;23810:6;23806:14;23799:58;23891:3;23886:2;23878:6;23874:15;23867:28;23682:220;:::o;23908:366::-;24050:3;24071:67;24135:2;24130:3;24071:67;:::i;:::-;24064:74;;24147:93;24236:3;24147:93;:::i;:::-;24265:2;24260:3;24256:12;24249:19;;23908:366;;;:::o;24280:419::-;24446:4;24484:2;24473:9;24469:18;24461:26;;24533:9;24527:4;24523:20;24519:1;24508:9;24504:17;24497:47;24561:131;24687:4;24561:131;:::i;:::-;24553:139;;24280:419;;;:::o;24705:143::-;24762:5;24793:6;24787:13;24778:22;;24809:33;24836:5;24809:33;:::i;:::-;24705:143;;;;:::o;24854:351::-;24924:6;24973:2;24961:9;24952:7;24948:23;24944:32;24941:119;;;24979:79;;:::i;:::-;24941:119;25099:1;25124:64;25180:7;25171:6;25160:9;25156:22;25124:64;:::i;:::-;25114:74;;25070:128;24854:351;;;;:::o;25211:85::-;25256:7;25285:5;25274:16;;25211:85;;;:::o;25302:60::-;25330:3;25351:5;25344:12;;25302:60;;;:::o;25368:158::-;25426:9;25459:61;25477:42;25486:32;25512:5;25486:32;:::i;:::-;25477:42;:::i;:::-;25459:61;:::i;:::-;25446:74;;25368:158;;;:::o;25532:147::-;25627:45;25666:5;25627:45;:::i;:::-;25622:3;25615:58;25532:147;;:::o;25685:114::-;25752:6;25786:5;25780:12;25770:22;;25685:114;;;:::o;25805:184::-;25904:11;25938:6;25933:3;25926:19;25978:4;25973:3;25969:14;25954:29;;25805:184;;;;:::o;25995:132::-;26062:4;26085:3;26077:11;;26115:4;26110:3;26106:14;26098:22;;25995:132;;;:::o;26133:108::-;26210:24;26228:5;26210:24;:::i;:::-;26205:3;26198:37;26133:108;;:::o;26247:179::-;26316:10;26337:46;26379:3;26371:6;26337:46;:::i;:::-;26415:4;26410:3;26406:14;26392:28;;26247:179;;;;:::o;26432:113::-;26502:4;26534;26529:3;26525:14;26517:22;;26432:113;;;:::o;26581:732::-;26700:3;26729:54;26777:5;26729:54;:::i;:::-;26799:86;26878:6;26873:3;26799:86;:::i;:::-;26792:93;;26909:56;26959:5;26909:56;:::i;:::-;26988:7;27019:1;27004:284;27029:6;27026:1;27023:13;27004:284;;;27105:6;27099:13;27132:63;27191:3;27176:13;27132:63;:::i;:::-;27125:70;;27218:60;27271:6;27218:60;:::i;:::-;27208:70;;27064:224;27051:1;27048;27044:9;27039:14;;27004:284;;;27008:14;27304:3;27297:10;;26705:608;;;26581:732;;;;:::o;27319:831::-;27582:4;27620:3;27609:9;27605:19;27597:27;;27634:71;27702:1;27691:9;27687:17;27678:6;27634:71;:::i;:::-;27715:80;27791:2;27780:9;27776:18;27767:6;27715:80;:::i;:::-;27842:9;27836:4;27832:20;27827:2;27816:9;27812:18;27805:48;27870:108;27973:4;27964:6;27870:108;:::i;:::-;27862:116;;27988:72;28056:2;28045:9;28041:18;28032:6;27988:72;:::i;:::-;28070:73;28138:3;28127:9;28123:19;28114:6;28070:73;:::i;:::-;27319:831;;;;;;;;:::o;28156:147::-;28257:11;28294:3;28279:18;;28156:147;;;;:::o;28309:114::-;;:::o;28429:398::-;28588:3;28609:83;28690:1;28685:3;28609:83;:::i;:::-;28602:90;;28701:93;28790:3;28701:93;:::i;:::-;28819:1;28814:3;28810:11;28803:18;;28429:398;;;:::o;28833:379::-;29017:3;29039:147;29182:3;29039:147;:::i;:::-;29032:154;;29203:3;29196:10;;28833:379;;;:::o;29218:161::-;29358:13;29354:1;29346:6;29342:14;29335:37;29218:161;:::o;29385:366::-;29527:3;29548:67;29612:2;29607:3;29548:67;:::i;:::-;29541:74;;29624:93;29713:3;29624:93;:::i;:::-;29742:2;29737:3;29733:12;29726:19;;29385:366;;;:::o;29757:419::-;29923:4;29961:2;29950:9;29946:18;29938:26;;30010:9;30004:4;30000:20;29996:1;29985:9;29981:17;29974:47;30038:131;30164:4;30038:131;:::i;:::-;30030:139;;29757:419;;;:::o;30182:177::-;30322:29;30318:1;30310:6;30306:14;30299:53;30182:177;:::o;30365:366::-;30507:3;30528:67;30592:2;30587:3;30528:67;:::i;:::-;30521:74;;30604:93;30693:3;30604:93;:::i;:::-;30722:2;30717:3;30713:12;30706:19;;30365:366;;;:::o;30737:419::-;30903:4;30941:2;30930:9;30926:18;30918:26;;30990:9;30984:4;30980:20;30976:1;30965:9;30961:17;30954:47;31018:131;31144:4;31018:131;:::i;:::-;31010:139;;30737:419;;;:::o

Swarm Source

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