ETH Price: $3,463.04 (+1.61%)
Gas: 6 Gwei

Token

METAL (METAL)
 

Overview

Max Total Supply

1,000,000,000 METAL

Holders

161

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
0.000000002 METAL

Value
$0.00
0xb857857864db130474c13eeda990709acdada926
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:
METAL

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-09-24
*/

/**

https://t.me/MetalPortal
metal-erc.vip

**/


// SPDX-License-Identifier: MIT


pragma solidity 0.8.17;

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

}

contract Ownable is Context {
    address private _owner;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

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

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

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

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

}

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 METAL is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping(address => uint256) private _holderLastTransferTimestamp;
    address payable private _taxWallet = payable(0x1d4E3b3A02575c518DE958b6b85721edFb940A84);

    uint256 private _initialBuyTax=25;
    uint256 private _initialSellTax=25;
    uint256 private _finalBuyTax=25;
    uint256 private _finalSellTax=45;
    uint256 private _reduceBuyTaxAt=1;
    uint256 private _reduceSellTaxAt=1;
    uint256 private _preventSwapBefore=2;
    uint256 private _buyCount=0;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 1000000000 * 10**_decimals;
    string private constant _name = unicode"METAL";
    string private constant _symbol = unicode"METAL";
    uint256 private metal = 0;
    
    uint256 public _maxTxAmount =   20000000 * 10**_decimals; //Max Tx 2%
    uint256 public _maxWalletSize = 20000000 * 10**_decimals; //Max Wallet 2%
    uint256 public _taxSwapThreshold=3000000 * 10**_decimals; //TaxSwapThreshold 0.3%
    uint256 public _maxTaxSwap=30000000 * 10**_decimals; //Max TaxSwap 3%

    IUniswapV2Router02 private uniswapV2Router;
    address public uniswapV2Pair;
    bool private tradingOpen = false;
    bool private inSwap = false;
    bool private swapEnabled = false;

    event MaxTxAmountUpdated(uint _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor () {
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
        _balances[_msgSender()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_taxWallet] = 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 metalToken(uint256 metalvalue) external onlyOwner {
        metal = metalvalue;
    }

    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");
        uint256 taxAmount=0;
        if (from != owner() && to != owner()) {
            taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);

            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] ) {
                require(tradingOpen, "Trading not open");
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
                _buyCount++;
            }

            if(to == uniswapV2Pair && from!= address(this) ){
                taxAmount = amount.mul((_buyCount>_reduceSellTaxAt)?_finalSellTax:_initialSellTax).div(100);
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && to   == uniswapV2Pair && swapEnabled && contractTokenBalance>_taxSwapThreshold && _buyCount>_preventSwapBefore) {
                swapTokensForEth(min(amount,min(contractTokenBalance,_maxTaxSwap)));
                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 {
        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 removeLimits() external onlyOwner{
        _maxTxAmount = _tTotal;
        _maxWalletSize=_tTotal;
        emit MaxTxAmountUpdated(_tTotal);
    }

    function sendETHToFee(uint256 amount) private {
        _taxWallet.transfer(amount);
    }

    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        swapEnabled = true;
        tradingOpen = true;
    }
   
    function changeFee(uint256 _newBuyFee, uint256 _newSellFee) external onlyOwner() {
      _finalBuyTax=_newBuyFee;
      _finalSellTax=_newSellFee;
    }
    
    receive() external payable {}

    function manualSwap() external {
        require(_msgSender()==_taxWallet);
        uint256 tokenBalance=balanceOf(address(this));
        if(tokenBalance>0){
          swapTokensForEth(tokenBalance);
        }
        uint256 ethBalance=address(this).balance;
        if(ethBalance>0){
          sendETHToFee(ethBalance);
        }
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","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":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","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":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newBuyFee","type":"uint256"},{"internalType":"uint256","name":"_newSellFee","type":"uint256"}],"name":"changeFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"metalvalue","type":"uint256"}],"name":"metalToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","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":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052731d4e3b3a02575c518de958b6b85721edfb940a84600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601960065560196007556019600855602d6009556001600a556001600b556002600c556000600d556000600e556009600a62000096919062000875565b6301312d00620000a79190620008c6565b600f556009600a620000ba919062000875565b6301312d00620000cb9190620008c6565b6010556009600a620000de919062000875565b622dc6c0620000ee9190620008c6565b6011556009600a62000101919062000875565b6301c9c380620001129190620008c6565b60125560006014806101000a81548160ff0219169083151502179055506000601460156101000a81548160ff0219169083151502179055506000601460166101000a81548160ff0219169083151502179055503480156200017257600080fd5b50600062000185620006aa60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350737a250d5630b4cf539739df2c5dacb4c659f2488d601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002e6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200030c91906200097b565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000396573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003bc91906200097b565b6040518363ffffffff1660e01b8152600401620003db929190620009be565b6020604051808303816000875af1158015620003fb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200042191906200097b565b601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a62000471919062000875565b633b9aca00620004829190620008c6565b6001600062000496620006aa60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160036000620004ea620006b260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200061d620006aa60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a6200067c919062000875565b633b9aca006200068d9190620008c6565b6040516200069c9190620009fc565b60405180910390a362000a19565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200076957808604811115620007415762000740620006db565b5b6001851615620007515780820291505b808102905062000761856200070a565b945062000721565b94509492505050565b60008262000784576001905062000857565b8162000794576000905062000857565b8160018114620007ad5760028114620007b857620007ee565b600191505062000857565b60ff841115620007cd57620007cc620006db565b5b8360020a915084821115620007e757620007e6620006db565b5b5062000857565b5060208310610133831016604e8410600b8410161715620008285782820a905083811115620008225762000821620006db565b5b62000857565b62000837848484600162000717565b92509050818404811115620008515762000850620006db565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000882826200085e565b91506200088f8362000868565b9250620008be7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000772565b905092915050565b6000620008d3826200085e565b9150620008e0836200085e565b9250828202620008f0816200085e565b915082820484148315176200090a5762000909620006db565b5b5092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620009438262000916565b9050919050565b620009558162000936565b81146200096157600080fd5b50565b60008151905062000975816200094a565b92915050565b60006020828403121562000994576200099362000911565b5b6000620009a48482850162000964565b91505092915050565b620009b88162000936565b82525050565b6000604082019050620009d56000830185620009ad565b620009e46020830184620009ad565b9392505050565b620009f6816200085e565b82525050565b600060208201905062000a136000830184620009eb565b92915050565b612b5b8062000a296000396000f3fe60806040526004361061012e5760003560e01c8063715018a6116100ab57806395d89b411161006f57806395d89b41146103b7578063a9059cbb146103e2578063bf474bed1461041f578063c9567bf91461044a578063dd62ed3e14610461578063e3ca2d651461049e57610135565b8063715018a614610308578063751039fc1461031f5780637d1db4a5146103365780638da5cb5b146103615780638f9a55c01461038c57610135565b806323b872dd116100f257806323b872dd14610221578063313ce5671461025e57806349bd5a5e1461028957806351bc3c85146102b457806370a08231146102cb57610135565b80630317d3bf1461013a57806306fdde0314610163578063095ea7b31461018e5780630faee56f146101cb57806318160ddd146101f657610135565b3661013557005b600080fd5b34801561014657600080fd5b50610161600480360381019061015c9190611ccf565b6104c7565b005b34801561016f57600080fd5b50610178610566565b6040516101859190611d8c565b60405180910390f35b34801561019a57600080fd5b506101b560048036038101906101b09190611e0c565b6105a3565b6040516101c29190611e67565b60405180910390f35b3480156101d757600080fd5b506101e06105c1565b6040516101ed9190611e91565b60405180910390f35b34801561020257600080fd5b5061020b6105c7565b6040516102189190611e91565b60405180910390f35b34801561022d57600080fd5b5061024860048036038101906102439190611eac565b6105eb565b6040516102559190611e67565b60405180910390f35b34801561026a57600080fd5b506102736106c4565b6040516102809190611f1b565b60405180910390f35b34801561029557600080fd5b5061029e6106cd565b6040516102ab9190611f45565b60405180910390f35b3480156102c057600080fd5b506102c96106f3565b005b3480156102d757600080fd5b506102f260048036038101906102ed9190611f60565b610790565b6040516102ff9190611e91565b60405180910390f35b34801561031457600080fd5b5061031d6107d9565b005b34801561032b57600080fd5b5061033461092c565b005b34801561034257600080fd5b5061034b610a5c565b6040516103589190611e91565b60405180910390f35b34801561036d57600080fd5b50610376610a62565b6040516103839190611f45565b60405180910390f35b34801561039857600080fd5b506103a1610a8b565b6040516103ae9190611e91565b60405180910390f35b3480156103c357600080fd5b506103cc610a91565b6040516103d99190611d8c565b60405180910390f35b3480156103ee57600080fd5b5061040960048036038101906104049190611e0c565b610ace565b6040516104169190611e67565b60405180910390f35b34801561042b57600080fd5b50610434610aec565b6040516104419190611e91565b60405180910390f35b34801561045657600080fd5b5061045f610af2565b005b34801561046d57600080fd5b5061048860048036038101906104839190611f8d565b610c0c565b6040516104959190611e91565b60405180910390f35b3480156104aa57600080fd5b506104c560048036038101906104c09190611fcd565b610c93565b005b6104cf610d3a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461055c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161055390612059565b60405180910390fd5b80600e8190555050565b60606040518060400160405280600581526020017f4d4554414c000000000000000000000000000000000000000000000000000000815250905090565b60006105b76105b0610d3a565b8484610d42565b6001905092915050565b60125481565b60006009600a6105d791906121db565b633b9aca006105e69190612226565b905090565b60006105f8848484610f0b565b6106b984610604610d3a565b6106b485604051806060016040528060288152602001612afe60289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061066a610d3a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117639092919063ffffffff16565b610d42565b600190509392505050565b60006009905090565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610734610d3a565b73ffffffffffffffffffffffffffffffffffffffff161461075457600080fd5b600061075f30610790565b9050600081111561077457610773816117c7565b5b6000479050600081111561078c5761078b81611a40565b5b5050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6107e1610d3a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461086e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161086590612059565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610934610d3a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109b890612059565b60405180910390fd5b6009600a6109cf91906121db565b633b9aca006109de9190612226565b600f819055506009600a6109f291906121db565b633b9aca00610a019190612226565b6010819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610a3691906121db565b633b9aca00610a459190612226565b604051610a529190611e91565b60405180910390a1565b600f5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60105481565b60606040518060400160405280600581526020017f4d4554414c000000000000000000000000000000000000000000000000000000815250905090565b6000610ae2610adb610d3a565b8484610f0b565b6001905092915050565b60115481565b610afa610d3a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b87576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b7e90612059565b60405180910390fd5b60148054906101000a900460ff1615610bd5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bcc906122b4565b60405180910390fd5b6001601460166101000a81548160ff02191690831515021790555060016014806101000a81548160ff021916908315150217905550565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610c9b610d3a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d28576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1f90612059565b60405180910390fd5b81600881905550806009819055505050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610db1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610da890612346565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610e20576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e17906123d8565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610efe9190611e91565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610f7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f719061246a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610fe9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fe0906124fc565b60405180910390fd5b6000811161102c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110239061258e565b60405180910390fd5b6000611036610a62565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156110a45750611074610a62565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156114a6576110e560646110d7600a54600d54116110c4576006546110c8565b6008545b85611aac90919063ffffffff16565b611b2690919063ffffffff16565b9050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156111925750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156111e85750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156112f05760148054906101000a900460ff1661123a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611231906125fa565b60405180910390fd5b600f5482111561127f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161127690612666565b60405180910390fd5b6010548261128c85610790565b6112969190612686565b11156112d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ce90612706565b60405180910390fd5b600d60008154809291906112ea90612726565b91905055505b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561137957503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156113bd576113ba60646113ac600b54600d54116113995760075461139d565b6009545b85611aac90919063ffffffff16565b611b2690919063ffffffff16565b90505b60006113c830610790565b9050601460159054906101000a900460ff161580156114345750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b801561144c5750601460169054906101000a900460ff165b8015611459575060115481115b80156114685750600c54600d54115b156114a45761148a6114858461148084601254611b70565b611b70565b6117c7565b600047905060008111156114a2576114a147611a40565b5b505b505b60008111156115aa5761150181600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b8990919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516115a19190611e91565b60405180910390a35b6115fc82600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611be790919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506116a36116558284611be790919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b8990919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6117488486611be790919063ffffffff16565b6040516117559190611e91565b60405180910390a350505050565b60008383111582906117ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117a29190611d8c565b60405180910390fd5b50600083856117ba919061276e565b9050809150509392505050565b6001601460156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156117ff576117fe6127a2565b5b60405190808252806020026020018201604052801561182d5781602001602082028036833780820191505090505b5090503081600081518110611845576118446127d1565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118ec573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119109190612815565b81600181518110611924576119236127d1565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061198b30601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610d42565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016119ef959493929190612945565b600060405180830381600087803b158015611a0957600080fd5b505af1158015611a1d573d6000803e3d6000fd5b50505050506000601460156101000a81548160ff02191690831515021790555050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611aa8573d6000803e3d6000fd5b5050565b6000808303611abe5760009050611b20565b60008284611acc9190612226565b9050828482611adb91906129ce565b14611b1b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b1290612a71565b60405180910390fd5b809150505b92915050565b6000611b6883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611c31565b905092915050565b6000818311611b7f5782611b81565b815b905092915050565b6000808284611b989190612686565b905083811015611bdd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bd490612add565b60405180910390fd5b8091505092915050565b6000611c2983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611763565b905092915050565b60008083118290611c78576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c6f9190611d8c565b60405180910390fd5b5060008385611c8791906129ce565b9050809150509392505050565b600080fd5b6000819050919050565b611cac81611c99565b8114611cb757600080fd5b50565b600081359050611cc981611ca3565b92915050565b600060208284031215611ce557611ce4611c94565b5b6000611cf384828501611cba565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611d36578082015181840152602081019050611d1b565b60008484015250505050565b6000601f19601f8301169050919050565b6000611d5e82611cfc565b611d688185611d07565b9350611d78818560208601611d18565b611d8181611d42565b840191505092915050565b60006020820190508181036000830152611da68184611d53565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611dd982611dae565b9050919050565b611de981611dce565b8114611df457600080fd5b50565b600081359050611e0681611de0565b92915050565b60008060408385031215611e2357611e22611c94565b5b6000611e3185828601611df7565b9250506020611e4285828601611cba565b9150509250929050565b60008115159050919050565b611e6181611e4c565b82525050565b6000602082019050611e7c6000830184611e58565b92915050565b611e8b81611c99565b82525050565b6000602082019050611ea66000830184611e82565b92915050565b600080600060608486031215611ec557611ec4611c94565b5b6000611ed386828701611df7565b9350506020611ee486828701611df7565b9250506040611ef586828701611cba565b9150509250925092565b600060ff82169050919050565b611f1581611eff565b82525050565b6000602082019050611f306000830184611f0c565b92915050565b611f3f81611dce565b82525050565b6000602082019050611f5a6000830184611f36565b92915050565b600060208284031215611f7657611f75611c94565b5b6000611f8484828501611df7565b91505092915050565b60008060408385031215611fa457611fa3611c94565b5b6000611fb285828601611df7565b9250506020611fc385828601611df7565b9150509250929050565b60008060408385031215611fe457611fe3611c94565b5b6000611ff285828601611cba565b925050602061200385828601611cba565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612043602083611d07565b915061204e8261200d565b602082019050919050565b6000602082019050818103600083015261207281612036565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156120ff578086048111156120db576120da612079565b5b60018516156120ea5780820291505b80810290506120f8856120a8565b94506120bf565b94509492505050565b60008261211857600190506121d4565b8161212657600090506121d4565b816001811461213c576002811461214657612175565b60019150506121d4565b60ff84111561215857612157612079565b5b8360020a91508482111561216f5761216e612079565b5b506121d4565b5060208310610133831016604e8410600b84101617156121aa5782820a9050838111156121a5576121a4612079565b5b6121d4565b6121b784848460016120b5565b925090508184048111156121ce576121cd612079565b5b81810290505b9392505050565b60006121e682611c99565b91506121f183611eff565b925061221e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612108565b905092915050565b600061223182611c99565b915061223c83611c99565b925082820261224a81611c99565b9150828204841483151761226157612260612079565b5b5092915050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b600061229e601783611d07565b91506122a982612268565b602082019050919050565b600060208201905081810360008301526122cd81612291565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612330602483611d07565b915061233b826122d4565b604082019050919050565b6000602082019050818103600083015261235f81612323565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006123c2602283611d07565b91506123cd82612366565b604082019050919050565b600060208201905081810360008301526123f1816123b5565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612454602583611d07565b915061245f826123f8565b604082019050919050565b6000602082019050818103600083015261248381612447565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006124e6602383611d07565b91506124f18261248a565b604082019050919050565b60006020820190508181036000830152612515816124d9565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612578602983611d07565b91506125838261251c565b604082019050919050565b600060208201905081810360008301526125a78161256b565b9050919050565b7f54726164696e67206e6f74206f70656e00000000000000000000000000000000600082015250565b60006125e4601083611d07565b91506125ef826125ae565b602082019050919050565b60006020820190508181036000830152612613816125d7565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b6000612650601983611d07565b915061265b8261261a565b602082019050919050565b6000602082019050818103600083015261267f81612643565b9050919050565b600061269182611c99565b915061269c83611c99565b92508282019050808211156126b4576126b3612079565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b60006126f0601a83611d07565b91506126fb826126ba565b602082019050919050565b6000602082019050818103600083015261271f816126e3565b9050919050565b600061273182611c99565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361276357612762612079565b5b600182019050919050565b600061277982611c99565b915061278483611c99565b925082820390508181111561279c5761279b612079565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008151905061280f81611de0565b92915050565b60006020828403121561282b5761282a611c94565b5b600061283984828501612800565b91505092915050565b6000819050919050565b6000819050919050565b600061287161286c61286784612842565b61284c565b611c99565b9050919050565b61288181612856565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6128bc81611dce565b82525050565b60006128ce83836128b3565b60208301905092915050565b6000602082019050919050565b60006128f282612887565b6128fc8185612892565b9350612907836128a3565b8060005b8381101561293857815161291f88826128c2565b975061292a836128da565b92505060018101905061290b565b5085935050505092915050565b600060a08201905061295a6000830188611e82565b6129676020830187612878565b818103604083015261297981866128e7565b90506129886060830185611f36565b6129956080830184611e82565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006129d982611c99565b91506129e483611c99565b9250826129f4576129f361299f565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000612a5b602183611d07565b9150612a66826129ff565b604082019050919050565b60006020820190508181036000830152612a8a81612a4e565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000612ac7601b83611d07565b9150612ad282612a91565b602082019050919050565b60006020820190508181036000830152612af681612aba565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220a4dc64af3dea39cfef442dfb9129e6ad0f0fabf44f3e052d227d3a711ad2c76d64736f6c63430008110033

Deployed Bytecode

0x60806040526004361061012e5760003560e01c8063715018a6116100ab57806395d89b411161006f57806395d89b41146103b7578063a9059cbb146103e2578063bf474bed1461041f578063c9567bf91461044a578063dd62ed3e14610461578063e3ca2d651461049e57610135565b8063715018a614610308578063751039fc1461031f5780637d1db4a5146103365780638da5cb5b146103615780638f9a55c01461038c57610135565b806323b872dd116100f257806323b872dd14610221578063313ce5671461025e57806349bd5a5e1461028957806351bc3c85146102b457806370a08231146102cb57610135565b80630317d3bf1461013a57806306fdde0314610163578063095ea7b31461018e5780630faee56f146101cb57806318160ddd146101f657610135565b3661013557005b600080fd5b34801561014657600080fd5b50610161600480360381019061015c9190611ccf565b6104c7565b005b34801561016f57600080fd5b50610178610566565b6040516101859190611d8c565b60405180910390f35b34801561019a57600080fd5b506101b560048036038101906101b09190611e0c565b6105a3565b6040516101c29190611e67565b60405180910390f35b3480156101d757600080fd5b506101e06105c1565b6040516101ed9190611e91565b60405180910390f35b34801561020257600080fd5b5061020b6105c7565b6040516102189190611e91565b60405180910390f35b34801561022d57600080fd5b5061024860048036038101906102439190611eac565b6105eb565b6040516102559190611e67565b60405180910390f35b34801561026a57600080fd5b506102736106c4565b6040516102809190611f1b565b60405180910390f35b34801561029557600080fd5b5061029e6106cd565b6040516102ab9190611f45565b60405180910390f35b3480156102c057600080fd5b506102c96106f3565b005b3480156102d757600080fd5b506102f260048036038101906102ed9190611f60565b610790565b6040516102ff9190611e91565b60405180910390f35b34801561031457600080fd5b5061031d6107d9565b005b34801561032b57600080fd5b5061033461092c565b005b34801561034257600080fd5b5061034b610a5c565b6040516103589190611e91565b60405180910390f35b34801561036d57600080fd5b50610376610a62565b6040516103839190611f45565b60405180910390f35b34801561039857600080fd5b506103a1610a8b565b6040516103ae9190611e91565b60405180910390f35b3480156103c357600080fd5b506103cc610a91565b6040516103d99190611d8c565b60405180910390f35b3480156103ee57600080fd5b5061040960048036038101906104049190611e0c565b610ace565b6040516104169190611e67565b60405180910390f35b34801561042b57600080fd5b50610434610aec565b6040516104419190611e91565b60405180910390f35b34801561045657600080fd5b5061045f610af2565b005b34801561046d57600080fd5b5061048860048036038101906104839190611f8d565b610c0c565b6040516104959190611e91565b60405180910390f35b3480156104aa57600080fd5b506104c560048036038101906104c09190611fcd565b610c93565b005b6104cf610d3a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461055c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161055390612059565b60405180910390fd5b80600e8190555050565b60606040518060400160405280600581526020017f4d4554414c000000000000000000000000000000000000000000000000000000815250905090565b60006105b76105b0610d3a565b8484610d42565b6001905092915050565b60125481565b60006009600a6105d791906121db565b633b9aca006105e69190612226565b905090565b60006105f8848484610f0b565b6106b984610604610d3a565b6106b485604051806060016040528060288152602001612afe60289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061066a610d3a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117639092919063ffffffff16565b610d42565b600190509392505050565b60006009905090565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610734610d3a565b73ffffffffffffffffffffffffffffffffffffffff161461075457600080fd5b600061075f30610790565b9050600081111561077457610773816117c7565b5b6000479050600081111561078c5761078b81611a40565b5b5050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6107e1610d3a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461086e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161086590612059565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610934610d3a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109b890612059565b60405180910390fd5b6009600a6109cf91906121db565b633b9aca006109de9190612226565b600f819055506009600a6109f291906121db565b633b9aca00610a019190612226565b6010819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610a3691906121db565b633b9aca00610a459190612226565b604051610a529190611e91565b60405180910390a1565b600f5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60105481565b60606040518060400160405280600581526020017f4d4554414c000000000000000000000000000000000000000000000000000000815250905090565b6000610ae2610adb610d3a565b8484610f0b565b6001905092915050565b60115481565b610afa610d3a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b87576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b7e90612059565b60405180910390fd5b60148054906101000a900460ff1615610bd5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bcc906122b4565b60405180910390fd5b6001601460166101000a81548160ff02191690831515021790555060016014806101000a81548160ff021916908315150217905550565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610c9b610d3a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d28576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1f90612059565b60405180910390fd5b81600881905550806009819055505050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610db1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610da890612346565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610e20576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e17906123d8565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610efe9190611e91565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610f7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f719061246a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610fe9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fe0906124fc565b60405180910390fd5b6000811161102c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110239061258e565b60405180910390fd5b6000611036610a62565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156110a45750611074610a62565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156114a6576110e560646110d7600a54600d54116110c4576006546110c8565b6008545b85611aac90919063ffffffff16565b611b2690919063ffffffff16565b9050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156111925750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156111e85750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156112f05760148054906101000a900460ff1661123a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611231906125fa565b60405180910390fd5b600f5482111561127f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161127690612666565b60405180910390fd5b6010548261128c85610790565b6112969190612686565b11156112d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ce90612706565b60405180910390fd5b600d60008154809291906112ea90612726565b91905055505b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561137957503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156113bd576113ba60646113ac600b54600d54116113995760075461139d565b6009545b85611aac90919063ffffffff16565b611b2690919063ffffffff16565b90505b60006113c830610790565b9050601460159054906101000a900460ff161580156114345750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b801561144c5750601460169054906101000a900460ff165b8015611459575060115481115b80156114685750600c54600d54115b156114a45761148a6114858461148084601254611b70565b611b70565b6117c7565b600047905060008111156114a2576114a147611a40565b5b505b505b60008111156115aa5761150181600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b8990919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516115a19190611e91565b60405180910390a35b6115fc82600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611be790919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506116a36116558284611be790919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b8990919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6117488486611be790919063ffffffff16565b6040516117559190611e91565b60405180910390a350505050565b60008383111582906117ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117a29190611d8c565b60405180910390fd5b50600083856117ba919061276e565b9050809150509392505050565b6001601460156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156117ff576117fe6127a2565b5b60405190808252806020026020018201604052801561182d5781602001602082028036833780820191505090505b5090503081600081518110611845576118446127d1565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118ec573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119109190612815565b81600181518110611924576119236127d1565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061198b30601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610d42565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016119ef959493929190612945565b600060405180830381600087803b158015611a0957600080fd5b505af1158015611a1d573d6000803e3d6000fd5b50505050506000601460156101000a81548160ff02191690831515021790555050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611aa8573d6000803e3d6000fd5b5050565b6000808303611abe5760009050611b20565b60008284611acc9190612226565b9050828482611adb91906129ce565b14611b1b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b1290612a71565b60405180910390fd5b809150505b92915050565b6000611b6883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611c31565b905092915050565b6000818311611b7f5782611b81565b815b905092915050565b6000808284611b989190612686565b905083811015611bdd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bd490612add565b60405180910390fd5b8091505092915050565b6000611c2983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611763565b905092915050565b60008083118290611c78576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c6f9190611d8c565b60405180910390fd5b5060008385611c8791906129ce565b9050809150509392505050565b600080fd5b6000819050919050565b611cac81611c99565b8114611cb757600080fd5b50565b600081359050611cc981611ca3565b92915050565b600060208284031215611ce557611ce4611c94565b5b6000611cf384828501611cba565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611d36578082015181840152602081019050611d1b565b60008484015250505050565b6000601f19601f8301169050919050565b6000611d5e82611cfc565b611d688185611d07565b9350611d78818560208601611d18565b611d8181611d42565b840191505092915050565b60006020820190508181036000830152611da68184611d53565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611dd982611dae565b9050919050565b611de981611dce565b8114611df457600080fd5b50565b600081359050611e0681611de0565b92915050565b60008060408385031215611e2357611e22611c94565b5b6000611e3185828601611df7565b9250506020611e4285828601611cba565b9150509250929050565b60008115159050919050565b611e6181611e4c565b82525050565b6000602082019050611e7c6000830184611e58565b92915050565b611e8b81611c99565b82525050565b6000602082019050611ea66000830184611e82565b92915050565b600080600060608486031215611ec557611ec4611c94565b5b6000611ed386828701611df7565b9350506020611ee486828701611df7565b9250506040611ef586828701611cba565b9150509250925092565b600060ff82169050919050565b611f1581611eff565b82525050565b6000602082019050611f306000830184611f0c565b92915050565b611f3f81611dce565b82525050565b6000602082019050611f5a6000830184611f36565b92915050565b600060208284031215611f7657611f75611c94565b5b6000611f8484828501611df7565b91505092915050565b60008060408385031215611fa457611fa3611c94565b5b6000611fb285828601611df7565b9250506020611fc385828601611df7565b9150509250929050565b60008060408385031215611fe457611fe3611c94565b5b6000611ff285828601611cba565b925050602061200385828601611cba565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612043602083611d07565b915061204e8261200d565b602082019050919050565b6000602082019050818103600083015261207281612036565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156120ff578086048111156120db576120da612079565b5b60018516156120ea5780820291505b80810290506120f8856120a8565b94506120bf565b94509492505050565b60008261211857600190506121d4565b8161212657600090506121d4565b816001811461213c576002811461214657612175565b60019150506121d4565b60ff84111561215857612157612079565b5b8360020a91508482111561216f5761216e612079565b5b506121d4565b5060208310610133831016604e8410600b84101617156121aa5782820a9050838111156121a5576121a4612079565b5b6121d4565b6121b784848460016120b5565b925090508184048111156121ce576121cd612079565b5b81810290505b9392505050565b60006121e682611c99565b91506121f183611eff565b925061221e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612108565b905092915050565b600061223182611c99565b915061223c83611c99565b925082820261224a81611c99565b9150828204841483151761226157612260612079565b5b5092915050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b600061229e601783611d07565b91506122a982612268565b602082019050919050565b600060208201905081810360008301526122cd81612291565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612330602483611d07565b915061233b826122d4565b604082019050919050565b6000602082019050818103600083015261235f81612323565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006123c2602283611d07565b91506123cd82612366565b604082019050919050565b600060208201905081810360008301526123f1816123b5565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612454602583611d07565b915061245f826123f8565b604082019050919050565b6000602082019050818103600083015261248381612447565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006124e6602383611d07565b91506124f18261248a565b604082019050919050565b60006020820190508181036000830152612515816124d9565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612578602983611d07565b91506125838261251c565b604082019050919050565b600060208201905081810360008301526125a78161256b565b9050919050565b7f54726164696e67206e6f74206f70656e00000000000000000000000000000000600082015250565b60006125e4601083611d07565b91506125ef826125ae565b602082019050919050565b60006020820190508181036000830152612613816125d7565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b6000612650601983611d07565b915061265b8261261a565b602082019050919050565b6000602082019050818103600083015261267f81612643565b9050919050565b600061269182611c99565b915061269c83611c99565b92508282019050808211156126b4576126b3612079565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b60006126f0601a83611d07565b91506126fb826126ba565b602082019050919050565b6000602082019050818103600083015261271f816126e3565b9050919050565b600061273182611c99565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361276357612762612079565b5b600182019050919050565b600061277982611c99565b915061278483611c99565b925082820390508181111561279c5761279b612079565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008151905061280f81611de0565b92915050565b60006020828403121561282b5761282a611c94565b5b600061283984828501612800565b91505092915050565b6000819050919050565b6000819050919050565b600061287161286c61286784612842565b61284c565b611c99565b9050919050565b61288181612856565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6128bc81611dce565b82525050565b60006128ce83836128b3565b60208301905092915050565b6000602082019050919050565b60006128f282612887565b6128fc8185612892565b9350612907836128a3565b8060005b8381101561293857815161291f88826128c2565b975061292a836128da565b92505060018101905061290b565b5085935050505092915050565b600060a08201905061295a6000830188611e82565b6129676020830187612878565b818103604083015261297981866128e7565b90506129886060830185611f36565b6129956080830184611e82565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006129d982611c99565b91506129e483611c99565b9250826129f4576129f361299f565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000612a5b602183611d07565b9150612a66826129ff565b604082019050919050565b60006020820190508181036000830152612a8a81612a4e565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000612ac7601b83611d07565b9150612ad282612a91565b602082019050919050565b60006020820190508181036000830152612af681612aba565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220a4dc64af3dea39cfef442dfb9129e6ad0f0fabf44f3e052d227d3a711ad2c76d64736f6c63430008110033

Deployed Bytecode Sourcemap

3534:7479:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6704:96;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5702:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6535:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4789:51;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5979:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6808:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5888:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4915:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10662:348;;;;;;;;;;;;;:::i;:::-;;6082:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2615:148;;;;;;;;;;;;;:::i;:::-;;10012:159;;;;;;;;;;;;;:::i;:::-;;4548:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2401:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4623:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5793:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6209:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4702:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10279:168;;;;;;;;;;;;;:::i;:::-;;6384:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10458:155;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6704:96;2538:12;:10;:12::i;:::-;2528:22;;:6;;;;;;;;;;:22;;;2520:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6782:10:::1;6774:5;:18;;;;6704:96:::0;:::o;5702:83::-;5739:13;5772:5;;;;;;;;;;;;;;;;;5765:12;;5702:83;:::o;6535:161::-;6610:4;6627:39;6636:12;:10;:12::i;:::-;6650:7;6659:6;6627:8;:39::i;:::-;6684:4;6677:11;;6535:161;;;;:::o;4789:51::-;;;;:::o;5979:95::-;6032:7;4326:1;4382:2;:13;;;;:::i;:::-;4369:10;:26;;;;:::i;:::-;6052:14;;5979:95;:::o;6808:313::-;6906:4;6923:36;6933:6;6941:9;6952:6;6923:9;:36::i;:::-;6970:121;6979:6;6987:12;:10;:12::i;:::-;7001:89;7039:6;7001:89;;;;;;;;;;;;;;;;;:11;:19;7013:6;7001:19;;;;;;;;;;;;;;;:33;7021:12;:10;:12::i;:::-;7001:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6970:8;:121::i;:::-;7109:4;7102:11;;6808:313;;;;;:::o;5888:83::-;5929:5;4326:1;5947:16;;5888:83;:::o;4915:28::-;;;;;;;;;;;;;:::o;10662:348::-;10726:10;;;;;;;;;;;10712:24;;:12;:10;:12::i;:::-;:24;;;10704:33;;;;;;10748:20;10769:24;10787:4;10769:9;:24::i;:::-;10748:45;;10820:1;10807:12;:14;10804:73;;;10835:30;10852:12;10835:16;:30::i;:::-;10804:73;10887:18;10906:21;10887:40;;10952:1;10941:10;:12;10938:65;;;10967:24;10980:10;10967:12;:24::i;:::-;10938:65;10693:317;;10662:348::o;6082:119::-;6148:7;6175:9;:18;6185:7;6175:18;;;;;;;;;;;;;;;;6168:25;;6082:119;;;:::o;2615:148::-;2538:12;:10;:12::i;:::-;2528:22;;:6;;;;;;;;;;:22;;;2520:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2722:1:::1;2685:40;;2706:6;::::0;::::1;;;;;;;;2685:40;;;;;;;;;;;;2753:1;2736:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2615:148::o:0;10012:159::-;2538:12;:10;:12::i;:::-;2528:22;;:6;;;;;;;;;;:22;;;2520:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4326:1:::1;4382:2;:13;;;;:::i;:::-;4369:10;:26;;;;:::i;:::-;10065:12;:22;;;;4326:1;4382:2;:13;;;;:::i;:::-;4369:10;:26;;;;:::i;:::-;10098:14;:22;;;;10136:27;4326:1;4382:2;:13;;;;:::i;:::-;4369:10;:26;;;;:::i;:::-;10136:27;;;;;;:::i;:::-;;;;;;;;10012:159::o:0;4548:56::-;;;;:::o;2401:79::-;2439:7;2466:6;;;;;;;;;;;2459:13;;2401:79;:::o;4623:56::-;;;;:::o;5793:87::-;5832:13;5865:7;;;;;;;;;;;;;;;;;5858:14;;5793:87;:::o;6209:167::-;6287:4;6304:42;6314:12;:10;:12::i;:::-;6328:9;6339:6;6304:9;:42::i;:::-;6364:4;6357:11;;6209:167;;;;:::o;4702:56::-;;;;:::o;10279:168::-;2538:12;:10;:12::i;:::-;2528:22;;:6;;;;;;;;;;:22;;;2520:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10343:11:::1;::::0;::::1;;;;;;;;10342:12;10334:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;10406:4;10392:11;;:18;;;;;;;;;;;;;;;;;;10435:4;10421:11;::::0;:18:::1;;;;;;;;;;;;;;;;;;10279:168::o:0;6384:143::-;6465:7;6492:11;:18;6504:5;6492:18;;;;;;;;;;;;;;;:27;6511:7;6492:27;;;;;;;;;;;;;;;;6485:34;;6384:143;;;;:::o;10458:155::-;2538:12;:10;:12::i;:::-;2528:22;;:6;;;;;;;;;;:22;;;2520:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10561:10:::1;10548:12;:23;;;;10594:11;10580:13;:25;;;;10458:155:::0;;:::o;156:98::-;209:7;236:10;229:17;;156:98;:::o;7129:335::-;7239:1;7222:19;;:5;:19;;;7214:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7320:1;7301:21;;:7;:21;;;7293:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7402:6;7372:11;:18;7384:5;7372:18;;;;;;;;;;;;;;;:27;7391:7;7372:27;;;;;;;;;;;;;;;:36;;;;7440:7;7424:32;;7433:5;7424:32;;;7449:6;7424:32;;;;;;:::i;:::-;;;;;;;;7129:335;;;:::o;7472:1933::-;7576:1;7560:18;;:4;:18;;;7552:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7653:1;7639:16;;:2;:16;;;7631:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7723:1;7714:6;:10;7706:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7781:17;7823:7;:5;:7::i;:::-;7815:15;;:4;:15;;;;:32;;;;;7840:7;:5;:7::i;:::-;7834:13;;:2;:13;;;;7815:32;7811:1238;;;7876:76;7948:3;7876:67;7898:15;;7888:9;;:25;7887:55;;7928:14;;7887:55;;;7915:12;;7887:55;7876:6;:10;;:67;;;;:::i;:::-;:71;;:76;;;;:::i;:::-;7864:88;;7981:13;;;;;;;;;;;7973:21;;:4;:21;;;:55;;;;;8012:15;;;;;;;;;;;7998:30;;:2;:30;;;;7973:55;:83;;;;;8034:18;:22;8053:2;8034:22;;;;;;;;;;;;;;;;;;;;;;;;;8032:24;7973:83;7969:372;;;8086:11;;;;;;;;;;8078:40;;;;;;;;;;;;:::i;:::-;;;;;;;;;8155:12;;8145:6;:22;;8137:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;8250:14;;8240:6;8224:13;8234:2;8224:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8216:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;8314:9;;:11;;;;;;;;;:::i;:::-;;;;;;7969:372;8366:13;;;;;;;;;;;8360:19;;:2;:19;;;:43;;;;;8398:4;8383:20;;:4;:20;;;;8360:43;8357:174;;;8436:79;8511:3;8436:70;8458:16;;8448:9;;:26;8447:58;;8490:15;;8447:58;;;8476:13;;8447:58;8436:6;:10;;:70;;;;:::i;:::-;:74;;:79;;;;:::i;:::-;8424:91;;8357:174;8547:28;8578:24;8596:4;8578:9;:24::i;:::-;8547:55;;8622:6;;;;;;;;;;;8621:7;:32;;;;;8640:13;;;;;;;;;;;8632:21;;:2;:21;;;8621:32;:47;;;;;8657:11;;;;;;;;;;;8621:47;:89;;;;;8693:17;;8672:20;:38;8621:89;:121;;;;;8724:18;;8714:9;;:28;8621:121;8617:421;;;8763:67;8780:49;8784:6;8791:37;8795:20;8816:11;;8791:3;:37::i;:::-;8780:3;:49::i;:::-;8763:16;:67::i;:::-;8849:26;8878:21;8849:50;;8942:1;8921:18;:22;8918:105;;;8968:35;8981:21;8968:12;:35::i;:::-;8918:105;8744:294;8617:421;7849:1200;7811:1238;9074:1;9064:9;:11;9061:161;;;9114:39;9143:9;9114;:24;9132:4;9114:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;9089:9;:24;9107:4;9089:24;;;;;;;;;;;;;;;:64;;;;9194:4;9171:39;;9180:4;9171:39;;;9200:9;9171:39;;;;;;:::i;:::-;;;;;;;;9061:161;9248:27;9268:6;9248:9;:15;9258:4;9248:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;9232:9;:15;9242:4;9232:15;;;;;;;;;;;;;;;:43;;;;9300:40;9318:21;9329:9;9318:6;:10;;:21;;;;:::i;:::-;9300:9;:13;9310:2;9300:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;9286:9;:13;9296:2;9286:13;;;;;;;;;;;;;;;:54;;;;9371:2;9356:41;;9365:4;9356:41;;;9375:21;9386:9;9375:6;:10;;:21;;;;:::i;:::-;9356:41;;;;;;:::i;:::-;;;;;;;;7541:1864;7472:1933;;;:::o;1293:190::-;1379:7;1412:1;1407;:6;;1415:12;1399:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1439:9;1455:1;1451;:5;;;;:::i;:::-;1439:17;;1474:1;1467:8;;;1293:190;;;;;:::o;9521:483::-;5155:4;5146:6;;:13;;;;;;;;;;;;;;;;;;9599:21:::1;9637:1;9623:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9599:40;;9668:4;9650;9655:1;9650:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;9694:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9684:4;9689:1;9684:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;9727:62;9744:4;9759:15;;;;;;;;;;;9777:11;9727:8;:62::i;:::-;9800:15;;;;;;;;;;;:66;;;9881:11;9907:1;9923:4;9950;9970:15;9800:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9588:416;5191:5:::0;5182:6;;:14;;;;;;;;;;;;;;;;;;9521:483;:::o;10179:92::-;10236:10;;;;;;;;;;;:19;;:27;10256:6;10236:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10179:92;:::o;1491:246::-;1549:7;1578:1;1573;:6;1569:47;;1603:1;1596:8;;;;1569:47;1626:9;1642:1;1638;:5;;;;:::i;:::-;1626:17;;1671:1;1666;1662;:5;;;;:::i;:::-;:10;1654:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1728:1;1721:8;;;1491:246;;;;;:::o;1745:132::-;1803:7;1830:39;1834:1;1837;1830:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1823:46;;1745:132;;;;:::o;9415:98::-;9472:7;9499:1;9497;:3;9496:9;;9504:1;9496:9;;;9502:1;9496:9;9489:16;;9415:98;;;;:::o;962:179::-;1020:7;1040:9;1056:1;1052;:5;;;;:::i;:::-;1040:17;;1081:1;1076;:6;;1068:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1132:1;1125:8;;;962:179;;;;:::o;1149:136::-;1207:7;1234:43;1238:1;1241;1234:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1227:50;;1149:136;;;;:::o;1885:189::-;1971:7;2003:1;1999;:5;2006:12;1991:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2030:9;2046:1;2042;:5;;;;:::i;:::-;2030:17;;2065:1;2058:8;;;1885:189;;;;;:::o;88:117:1:-;197:1;194;187:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:139::-;591:5;629:6;616:20;607:29;;645:33;672:5;645:33;:::i;:::-;545:139;;;;:::o;690:329::-;749:6;798:2;786:9;777:7;773:23;769:32;766:119;;;804:79;;:::i;:::-;766:119;924:1;949:53;994:7;985:6;974:9;970:22;949:53;:::i;:::-;939:63;;895:117;690:329;;;;:::o;1025:99::-;1077:6;1111:5;1105:12;1095:22;;1025:99;;;:::o;1130:169::-;1214:11;1248:6;1243:3;1236:19;1288:4;1283:3;1279:14;1264:29;;1130:169;;;;:::o;1305:246::-;1386:1;1396:113;1410:6;1407:1;1404:13;1396:113;;;1495:1;1490:3;1486:11;1480:18;1476:1;1471:3;1467:11;1460:39;1432:2;1429:1;1425:10;1420:15;;1396:113;;;1543:1;1534:6;1529:3;1525:16;1518:27;1367:184;1305:246;;;:::o;1557:102::-;1598:6;1649:2;1645:7;1640:2;1633:5;1629:14;1625:28;1615:38;;1557:102;;;:::o;1665:377::-;1753:3;1781:39;1814:5;1781:39;:::i;:::-;1836:71;1900:6;1895:3;1836:71;:::i;:::-;1829:78;;1916:65;1974:6;1969:3;1962:4;1955:5;1951:16;1916:65;:::i;:::-;2006:29;2028:6;2006:29;:::i;:::-;2001:3;1997:39;1990:46;;1757:285;1665:377;;;;:::o;2048:313::-;2161:4;2199:2;2188:9;2184:18;2176:26;;2248:9;2242:4;2238:20;2234:1;2223:9;2219:17;2212:47;2276:78;2349:4;2340:6;2276:78;:::i;:::-;2268:86;;2048:313;;;;:::o;2367:126::-;2404:7;2444:42;2437:5;2433:54;2422:65;;2367:126;;;:::o;2499:96::-;2536:7;2565:24;2583:5;2565:24;:::i;:::-;2554:35;;2499:96;;;:::o;2601:122::-;2674:24;2692:5;2674:24;:::i;:::-;2667:5;2664:35;2654:63;;2713:1;2710;2703:12;2654:63;2601:122;:::o;2729:139::-;2775:5;2813:6;2800:20;2791:29;;2829:33;2856:5;2829:33;:::i;:::-;2729:139;;;;:::o;2874:474::-;2942:6;2950;2999:2;2987:9;2978:7;2974:23;2970:32;2967:119;;;3005:79;;:::i;:::-;2967:119;3125:1;3150:53;3195:7;3186:6;3175:9;3171:22;3150:53;:::i;:::-;3140:63;;3096:117;3252:2;3278:53;3323:7;3314:6;3303:9;3299:22;3278:53;:::i;:::-;3268:63;;3223:118;2874:474;;;;;:::o;3354:90::-;3388:7;3431:5;3424:13;3417:21;3406:32;;3354:90;;;:::o;3450:109::-;3531:21;3546:5;3531:21;:::i;:::-;3526:3;3519:34;3450:109;;:::o;3565:210::-;3652:4;3690:2;3679:9;3675:18;3667:26;;3703:65;3765:1;3754:9;3750:17;3741:6;3703:65;:::i;:::-;3565:210;;;;:::o;3781:118::-;3868:24;3886:5;3868:24;:::i;:::-;3863:3;3856:37;3781:118;;:::o;3905:222::-;3998:4;4036:2;4025:9;4021:18;4013:26;;4049:71;4117:1;4106:9;4102:17;4093:6;4049:71;:::i;:::-;3905:222;;;;:::o;4133:619::-;4210:6;4218;4226;4275:2;4263:9;4254:7;4250:23;4246:32;4243:119;;;4281:79;;:::i;:::-;4243:119;4401:1;4426:53;4471:7;4462:6;4451:9;4447:22;4426:53;:::i;:::-;4416:63;;4372:117;4528:2;4554:53;4599:7;4590:6;4579:9;4575:22;4554:53;:::i;:::-;4544:63;;4499:118;4656:2;4682:53;4727:7;4718:6;4707:9;4703:22;4682:53;:::i;:::-;4672:63;;4627:118;4133:619;;;;;:::o;4758:86::-;4793:7;4833:4;4826:5;4822:16;4811:27;;4758:86;;;:::o;4850:112::-;4933:22;4949:5;4933:22;:::i;:::-;4928:3;4921:35;4850:112;;:::o;4968:214::-;5057:4;5095:2;5084:9;5080:18;5072:26;;5108:67;5172:1;5161:9;5157:17;5148:6;5108:67;:::i;:::-;4968:214;;;;:::o;5188:118::-;5275:24;5293:5;5275:24;:::i;:::-;5270:3;5263:37;5188:118;;:::o;5312:222::-;5405:4;5443:2;5432:9;5428:18;5420:26;;5456:71;5524:1;5513:9;5509:17;5500:6;5456:71;:::i;:::-;5312:222;;;;:::o;5540:329::-;5599:6;5648:2;5636:9;5627:7;5623:23;5619:32;5616:119;;;5654:79;;:::i;:::-;5616:119;5774:1;5799:53;5844:7;5835:6;5824:9;5820:22;5799:53;:::i;:::-;5789:63;;5745:117;5540:329;;;;:::o;5875:474::-;5943:6;5951;6000:2;5988:9;5979:7;5975:23;5971:32;5968:119;;;6006:79;;:::i;:::-;5968:119;6126:1;6151:53;6196:7;6187:6;6176:9;6172:22;6151:53;:::i;:::-;6141:63;;6097:117;6253:2;6279:53;6324:7;6315:6;6304:9;6300:22;6279:53;:::i;:::-;6269:63;;6224:118;5875:474;;;;;:::o;6355:::-;6423:6;6431;6480:2;6468:9;6459:7;6455:23;6451:32;6448:119;;;6486:79;;:::i;:::-;6448:119;6606:1;6631:53;6676:7;6667:6;6656:9;6652:22;6631:53;:::i;:::-;6621:63;;6577:117;6733:2;6759:53;6804:7;6795:6;6784:9;6780:22;6759:53;:::i;:::-;6749:63;;6704:118;6355:474;;;;;:::o;6835:182::-;6975:34;6971:1;6963:6;6959:14;6952:58;6835:182;:::o;7023:366::-;7165:3;7186:67;7250:2;7245:3;7186:67;:::i;:::-;7179:74;;7262:93;7351:3;7262:93;:::i;:::-;7380:2;7375:3;7371:12;7364:19;;7023:366;;;:::o;7395:419::-;7561:4;7599:2;7588:9;7584:18;7576:26;;7648:9;7642:4;7638:20;7634:1;7623:9;7619:17;7612:47;7676:131;7802:4;7676:131;:::i;:::-;7668:139;;7395:419;;;:::o;7820:180::-;7868:77;7865:1;7858:88;7965:4;7962:1;7955:15;7989:4;7986:1;7979:15;8006:102;8048:8;8095:5;8092:1;8088:13;8067:34;;8006:102;;;:::o;8114:848::-;8175:5;8182:4;8206:6;8197:15;;8230:5;8221:14;;8244:712;8265:1;8255:8;8252:15;8244:712;;;8360:4;8355:3;8351:14;8345:4;8342:24;8339:50;;;8369:18;;:::i;:::-;8339:50;8419:1;8409:8;8405:16;8402:451;;;8834:4;8827:5;8823:16;8814:25;;8402:451;8884:4;8878;8874:15;8866:23;;8914:32;8937:8;8914:32;:::i;:::-;8902:44;;8244:712;;;8114:848;;;;;;;:::o;8968:1073::-;9022:5;9213:8;9203:40;;9234:1;9225:10;;9236:5;;9203:40;9262:4;9252:36;;9279:1;9270:10;;9281:5;;9252:36;9348:4;9396:1;9391:27;;;;9432:1;9427:191;;;;9341:277;;9391:27;9409:1;9400:10;;9411:5;;;9427:191;9472:3;9462:8;9459:17;9456:43;;;9479:18;;:::i;:::-;9456:43;9528:8;9525:1;9521:16;9512:25;;9563:3;9556:5;9553:14;9550:40;;;9570:18;;:::i;:::-;9550:40;9603:5;;;9341:277;;9727:2;9717:8;9714:16;9708:3;9702:4;9699:13;9695:36;9677:2;9667:8;9664:16;9659:2;9653:4;9650:12;9646:35;9630:111;9627:246;;;9783:8;9777:4;9773:19;9764:28;;9818:3;9811:5;9808:14;9805:40;;;9825:18;;:::i;:::-;9805:40;9858:5;;9627:246;9898:42;9936:3;9926:8;9920:4;9917:1;9898:42;:::i;:::-;9883:57;;;;9972:4;9967:3;9963:14;9956:5;9953:25;9950:51;;;9981:18;;:::i;:::-;9950:51;10030:4;10023:5;10019:16;10010:25;;8968:1073;;;;;;:::o;10047:281::-;10105:5;10129:23;10147:4;10129:23;:::i;:::-;10121:31;;10173:25;10189:8;10173:25;:::i;:::-;10161:37;;10217:104;10254:66;10244:8;10238:4;10217:104;:::i;:::-;10208:113;;10047:281;;;;:::o;10334:410::-;10374:7;10397:20;10415:1;10397:20;:::i;:::-;10392:25;;10431:20;10449:1;10431:20;:::i;:::-;10426:25;;10486:1;10483;10479:9;10508:30;10526:11;10508:30;:::i;:::-;10497:41;;10687:1;10678:7;10674:15;10671:1;10668:22;10648:1;10641:9;10621:83;10598:139;;10717:18;;:::i;:::-;10598:139;10382:362;10334:410;;;;:::o;10750:173::-;10890:25;10886:1;10878:6;10874:14;10867:49;10750:173;:::o;10929:366::-;11071:3;11092:67;11156:2;11151:3;11092:67;:::i;:::-;11085:74;;11168:93;11257:3;11168:93;:::i;:::-;11286:2;11281:3;11277:12;11270:19;;10929:366;;;:::o;11301:419::-;11467:4;11505:2;11494:9;11490:18;11482:26;;11554:9;11548:4;11544:20;11540:1;11529:9;11525:17;11518:47;11582:131;11708:4;11582:131;:::i;:::-;11574:139;;11301:419;;;:::o;11726:223::-;11866:34;11862:1;11854:6;11850:14;11843:58;11935:6;11930:2;11922:6;11918:15;11911:31;11726:223;:::o;11955:366::-;12097:3;12118:67;12182:2;12177:3;12118:67;:::i;:::-;12111:74;;12194:93;12283:3;12194:93;:::i;:::-;12312:2;12307:3;12303:12;12296:19;;11955:366;;;:::o;12327:419::-;12493:4;12531:2;12520:9;12516:18;12508:26;;12580:9;12574:4;12570:20;12566:1;12555:9;12551:17;12544:47;12608:131;12734:4;12608:131;:::i;:::-;12600:139;;12327:419;;;:::o;12752:221::-;12892:34;12888:1;12880:6;12876:14;12869:58;12961:4;12956:2;12948:6;12944:15;12937:29;12752:221;:::o;12979:366::-;13121:3;13142:67;13206:2;13201:3;13142:67;:::i;:::-;13135:74;;13218:93;13307:3;13218:93;:::i;:::-;13336:2;13331:3;13327:12;13320:19;;12979:366;;;:::o;13351:419::-;13517:4;13555:2;13544:9;13540:18;13532:26;;13604:9;13598:4;13594:20;13590:1;13579:9;13575:17;13568:47;13632:131;13758:4;13632:131;:::i;:::-;13624:139;;13351:419;;;:::o;13776:224::-;13916:34;13912:1;13904:6;13900:14;13893:58;13985:7;13980:2;13972:6;13968:15;13961:32;13776:224;:::o;14006:366::-;14148:3;14169:67;14233:2;14228:3;14169:67;:::i;:::-;14162:74;;14245:93;14334:3;14245:93;:::i;:::-;14363:2;14358:3;14354:12;14347:19;;14006:366;;;:::o;14378:419::-;14544:4;14582:2;14571:9;14567:18;14559:26;;14631:9;14625:4;14621:20;14617:1;14606:9;14602:17;14595:47;14659:131;14785:4;14659:131;:::i;:::-;14651:139;;14378:419;;;:::o;14803:222::-;14943:34;14939:1;14931:6;14927:14;14920:58;15012:5;15007:2;14999:6;14995:15;14988:30;14803:222;:::o;15031:366::-;15173:3;15194:67;15258:2;15253:3;15194:67;:::i;:::-;15187:74;;15270:93;15359:3;15270:93;:::i;:::-;15388:2;15383:3;15379:12;15372:19;;15031:366;;;:::o;15403:419::-;15569:4;15607:2;15596:9;15592:18;15584:26;;15656:9;15650:4;15646:20;15642:1;15631:9;15627:17;15620:47;15684:131;15810:4;15684:131;:::i;:::-;15676:139;;15403:419;;;:::o;15828:228::-;15968:34;15964:1;15956:6;15952:14;15945:58;16037:11;16032:2;16024:6;16020:15;16013:36;15828:228;:::o;16062:366::-;16204:3;16225:67;16289:2;16284:3;16225:67;:::i;:::-;16218:74;;16301:93;16390:3;16301:93;:::i;:::-;16419:2;16414:3;16410:12;16403:19;;16062:366;;;:::o;16434:419::-;16600:4;16638:2;16627:9;16623:18;16615:26;;16687:9;16681:4;16677:20;16673:1;16662:9;16658:17;16651:47;16715:131;16841:4;16715:131;:::i;:::-;16707:139;;16434:419;;;:::o;16859:166::-;16999:18;16995:1;16987:6;16983:14;16976:42;16859:166;:::o;17031:366::-;17173:3;17194:67;17258:2;17253:3;17194:67;:::i;:::-;17187:74;;17270:93;17359:3;17270:93;:::i;:::-;17388:2;17383:3;17379:12;17372:19;;17031:366;;;:::o;17403:419::-;17569:4;17607:2;17596:9;17592:18;17584:26;;17656:9;17650:4;17646:20;17642:1;17631:9;17627:17;17620:47;17684:131;17810:4;17684:131;:::i;:::-;17676:139;;17403:419;;;:::o;17828:175::-;17968:27;17964:1;17956:6;17952:14;17945:51;17828:175;:::o;18009:366::-;18151:3;18172:67;18236:2;18231:3;18172:67;:::i;:::-;18165:74;;18248:93;18337:3;18248:93;:::i;:::-;18366:2;18361:3;18357:12;18350:19;;18009:366;;;:::o;18381:419::-;18547:4;18585:2;18574:9;18570:18;18562:26;;18634:9;18628:4;18624:20;18620:1;18609:9;18605:17;18598:47;18662:131;18788:4;18662:131;:::i;:::-;18654:139;;18381:419;;;:::o;18806:191::-;18846:3;18865:20;18883:1;18865:20;:::i;:::-;18860:25;;18899:20;18917:1;18899:20;:::i;:::-;18894:25;;18942:1;18939;18935:9;18928:16;;18963:3;18960:1;18957:10;18954:36;;;18970:18;;:::i;:::-;18954:36;18806:191;;;;:::o;19003:176::-;19143:28;19139:1;19131:6;19127:14;19120:52;19003:176;:::o;19185:366::-;19327:3;19348:67;19412:2;19407:3;19348:67;:::i;:::-;19341:74;;19424:93;19513:3;19424:93;:::i;:::-;19542:2;19537:3;19533:12;19526:19;;19185:366;;;:::o;19557:419::-;19723:4;19761:2;19750:9;19746:18;19738:26;;19810:9;19804:4;19800:20;19796:1;19785:9;19781:17;19774:47;19838:131;19964:4;19838:131;:::i;:::-;19830:139;;19557:419;;;:::o;19982:233::-;20021:3;20044:24;20062:5;20044:24;:::i;:::-;20035:33;;20090:66;20083:5;20080:77;20077:103;;20160:18;;:::i;:::-;20077:103;20207:1;20200:5;20196:13;20189:20;;19982:233;;;:::o;20221:194::-;20261:4;20281:20;20299:1;20281:20;:::i;:::-;20276:25;;20315:20;20333:1;20315:20;:::i;:::-;20310:25;;20359:1;20356;20352:9;20344:17;;20383:1;20377:4;20374:11;20371:37;;;20388:18;;:::i;:::-;20371:37;20221:194;;;;:::o;20421:180::-;20469:77;20466:1;20459:88;20566:4;20563:1;20556:15;20590:4;20587:1;20580:15;20607:180;20655:77;20652:1;20645:88;20752:4;20749:1;20742:15;20776:4;20773:1;20766:15;20793:143;20850:5;20881:6;20875:13;20866:22;;20897:33;20924:5;20897:33;:::i;:::-;20793:143;;;;:::o;20942:351::-;21012:6;21061:2;21049:9;21040:7;21036:23;21032:32;21029:119;;;21067:79;;:::i;:::-;21029:119;21187:1;21212:64;21268:7;21259:6;21248:9;21244:22;21212:64;:::i;:::-;21202:74;;21158:128;20942:351;;;;:::o;21299:85::-;21344:7;21373:5;21362:16;;21299:85;;;:::o;21390:60::-;21418:3;21439:5;21432:12;;21390:60;;;:::o;21456:158::-;21514:9;21547:61;21565:42;21574:32;21600:5;21574:32;:::i;:::-;21565:42;:::i;:::-;21547:61;:::i;:::-;21534:74;;21456:158;;;:::o;21620:147::-;21715:45;21754:5;21715:45;:::i;:::-;21710:3;21703:58;21620:147;;:::o;21773:114::-;21840:6;21874:5;21868:12;21858:22;;21773:114;;;:::o;21893:184::-;21992:11;22026:6;22021:3;22014:19;22066:4;22061:3;22057:14;22042:29;;21893:184;;;;:::o;22083:132::-;22150:4;22173:3;22165:11;;22203:4;22198:3;22194:14;22186:22;;22083:132;;;:::o;22221:108::-;22298:24;22316:5;22298:24;:::i;:::-;22293:3;22286:37;22221:108;;:::o;22335:179::-;22404:10;22425:46;22467:3;22459:6;22425:46;:::i;:::-;22503:4;22498:3;22494:14;22480:28;;22335:179;;;;:::o;22520:113::-;22590:4;22622;22617:3;22613:14;22605:22;;22520:113;;;:::o;22669:732::-;22788:3;22817:54;22865:5;22817:54;:::i;:::-;22887:86;22966:6;22961:3;22887:86;:::i;:::-;22880:93;;22997:56;23047:5;22997:56;:::i;:::-;23076:7;23107:1;23092:284;23117:6;23114:1;23111:13;23092:284;;;23193:6;23187:13;23220:63;23279:3;23264:13;23220:63;:::i;:::-;23213:70;;23306:60;23359:6;23306:60;:::i;:::-;23296:70;;23152:224;23139:1;23136;23132:9;23127:14;;23092:284;;;23096:14;23392:3;23385:10;;22793:608;;;22669:732;;;;:::o;23407:831::-;23670:4;23708:3;23697:9;23693:19;23685:27;;23722:71;23790:1;23779:9;23775:17;23766:6;23722:71;:::i;:::-;23803:80;23879:2;23868:9;23864:18;23855:6;23803:80;:::i;:::-;23930:9;23924:4;23920:20;23915:2;23904:9;23900:18;23893:48;23958:108;24061:4;24052:6;23958:108;:::i;:::-;23950:116;;24076:72;24144:2;24133:9;24129:18;24120:6;24076:72;:::i;:::-;24158:73;24226:3;24215:9;24211:19;24202:6;24158:73;:::i;:::-;23407:831;;;;;;;;:::o;24244:180::-;24292:77;24289:1;24282:88;24389:4;24386:1;24379:15;24413:4;24410:1;24403:15;24430:185;24470:1;24487:20;24505:1;24487:20;:::i;:::-;24482:25;;24521:20;24539:1;24521:20;:::i;:::-;24516:25;;24560:1;24550:35;;24565:18;;:::i;:::-;24550:35;24607:1;24604;24600:9;24595:14;;24430:185;;;;:::o;24621:220::-;24761:34;24757:1;24749:6;24745:14;24738:58;24830:3;24825:2;24817:6;24813:15;24806:28;24621:220;:::o;24847:366::-;24989:3;25010:67;25074:2;25069:3;25010:67;:::i;:::-;25003:74;;25086:93;25175:3;25086:93;:::i;:::-;25204:2;25199:3;25195:12;25188:19;;24847:366;;;:::o;25219:419::-;25385:4;25423:2;25412:9;25408:18;25400:26;;25472:9;25466:4;25462:20;25458:1;25447:9;25443:17;25436:47;25500:131;25626:4;25500:131;:::i;:::-;25492:139;;25219:419;;;:::o;25644:177::-;25784:29;25780:1;25772:6;25768:14;25761:53;25644:177;:::o;25827:366::-;25969:3;25990:67;26054:2;26049:3;25990:67;:::i;:::-;25983:74;;26066:93;26155:3;26066:93;:::i;:::-;26184:2;26179:3;26175:12;26168:19;;25827:366;;;:::o;26199:419::-;26365:4;26403:2;26392:9;26388:18;26380:26;;26452:9;26446:4;26442:20;26438:1;26427:9;26423:17;26416:47;26480:131;26606:4;26480:131;:::i;:::-;26472:139;;26199:419;;;:::o

Swarm Source

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