ETH Price: $2,813.05 (+8.40%)
 

Overview

Max Total Supply

100,000,000,000 WAGIE

Holders

67

Total Transfers

-

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

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:
WAGIE

Compiler Version
v0.8.13+commit.abaa5c0e

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-07-29
*/

/**
 /$$      /$$  /$$$$$$   /$$$$$$  /$$$$$$ /$$$$$$$$
| $$  /$ | $$ /$$__  $$ /$$__  $$|_  $$_/| $$_____/
| $$ /$$$| $$| $$   $$| $$  __/  | $$  | $$      
| $$/$$ $$ $$| $$$$$$$$| $$ /$$$$  | $$  | $$$$$  
| $$$$_  $$$$| $$__  $$| $$|_  $$  | $$  | $$__/  
| $$$/   $$$| $$  | $$| $$   $$  | $$  | $$      
| $$/     $$| $$  | $$|  $$$$$$/ /$$$$$$| $$$$$$$$
|__/     __/|__/  |__/ ______/ |______/|________/
 
https://wagies.net/
          https://t.me/WagiesERC
                        https://twitter.com/WagiesERC                                      
*/
 
// SPDX-License-Identifier: MIT
 
pragma solidity 0.8.13;
 
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);
}
 
interface IFactory {
    function createPair(address tokenA, address tokenB) external returns (address pair);
    function getPair(address tokenA, address tokenB) external view returns (address pair);
}
 
interface IRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
 
    function addLiquidityETH(
        address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline
    ) external payable returns (
        uint256 amountToken, uint256 amountETH, uint256 liquidity
    );
 
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline
    ) external;
}
 
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, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;
        return c;
    }
}
 
abstract contract Context {
    function _msgSender() internal view virtual returns (address) { return msg.sender; }
}
 
contract Ownable is Context {
    address private _owner;
    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
    }
    function owner() public view returns (address) { return _owner; }
    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner.");
        _;
    }
    function renounceOwnership() external virtual onlyOwner { _owner = address(0); }
    function transferOwnership(address newOwner) external virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address.");
        _owner = newOwner;
    }
}
 
contract WAGIE is IERC20, Ownable {
    using SafeMath for uint256;
    IRouter public uniswapV2Router;
    address public uniswapV2Pair;
    string private constant _name =  "Wagies";
    string private constant _symbol = "WAGIE";
    uint8 private constant _decimals = 18;
    mapping (address => uint256) private balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    uint256 private constant _totalSupply = 100000000000 * 10**18; // 100 billion
    uint256 private _launchBlockNumber;
    mapping (address => bool) public automatedMarketMakerPairs;
    bool public isLiquidityAdded = false;
    uint256 public maxWalletAmount = _totalSupply;
    uint256 public maxTxAmount = _totalSupply;
    mapping (address => bool) private _isExcludedFromMaxWalletLimit;
    mapping (address => bool) private _isExcludedFromMaxTransactionLimit;
    mapping (address => bool) private _isExcludedFromFee;
    uint8 public taxFee = 2;
    uint8 public burnFee = 3;
    address public constant dead = 0x000000000000000000000000000000000000dEaD;
    address public taxWallet;
    uint256 minimumTokensBeforeSwap = _totalSupply * 250 / 1000000; // .025%
 
    event ClaimETH(uint256 indexed amount);
 
    constructor() {
        IRouter _uniswapV2Router = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        taxWallet = owner();
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromMaxWalletLimit[address(uniswapV2Router)] = true;
        _isExcludedFromMaxWalletLimit[address(this)] = true;
        _isExcludedFromMaxWalletLimit[owner()] = true;
        _isExcludedFromMaxTransactionLimit[address(uniswapV2Router)] = true;
        _isExcludedFromMaxTransactionLimit[address(this)] = true;
        _isExcludedFromMaxTransactionLimit[owner()] = true;
        balances[address(this)] = _totalSupply;
        emit Transfer(address(0), address(this), _totalSupply);
    }
 
    receive() external payable {} // so the contract can receive eth
 
    function transfer(address recipient, uint256 amount) external override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }
    function approve(address spender, uint256 amount) external override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }
    function transferFrom( address sender,address recipient,uint256 amount) external override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount,"ERC20: transfer amount exceeds allowance."));
        return true;
    }
    function increaseAllowance(address spender, uint256 addedValue) external virtual returns (bool){
        _approve(_msgSender(),spender,_allowances[_msgSender()][spender].add(addedValue));
        return true;
    }
    function decreaseAllowance(address spender, uint256 subtractedValue) external virtual returns (bool) {
        _approve(_msgSender(),spender,_allowances[_msgSender()][spender].sub(subtractedValue,"ERC20: decreased allowance below zero."));
        return true;
    }
    function excludeFromMaxWalletLimit(address account, bool excluded) external onlyOwner {
        require(_isExcludedFromMaxWalletLimit[account] != excluded, string.concat(_name, ": account is already excluded from max wallet limit."));
        _isExcludedFromMaxWalletLimit[account] = excluded;
    }
    function excludeFromMaxTransactionLimit(address account, bool excluded) external onlyOwner {
        require(_isExcludedFromMaxTransactionLimit[account] != excluded, string.concat(_name, ": account is already excluded from max tx limit."));
        _isExcludedFromMaxTransactionLimit[account] = excluded;
    }
    function excludeFromFees(address account, bool excluded) external onlyOwner {
        require(_isExcludedFromFee[account] != excluded, string.concat(_name, ": account is already excluded from fees."));
        _isExcludedFromFee[account] = excluded;
    }
    function setMaxWalletAmount(uint256 newValue) external onlyOwner {
        require(newValue != maxWalletAmount, string.concat(_name, ": cannot update maxWalletAmount to same value."));
        require(newValue > _totalSupply * 1 / 100, string.concat(_name, ": maxWalletAmount must be >1% of total supply."));
        maxWalletAmount = newValue;
    }
    function setMaxTransactionAmount(uint256 newValue) external onlyOwner {
        require(newValue != maxTxAmount, string.concat(_name, ": cannot update maxTxAmount to same value."));
        require(newValue > _totalSupply * 1 / 1000, string.concat(_name, ": maxTxAmount must be > .1% of total supply."));
        maxTxAmount = newValue;
    }
    function setNewTaxFee(uint8 newValue) external onlyOwner {
        require(newValue != taxFee, string.concat(_name, " : cannot update taxFee to same value."));
        require(newValue <= 5, string.concat(_name, ": cannot update taxFee to value > 5."));
        taxFee = newValue;
    }
    function setNewBurnFee(uint8 newValue) external onlyOwner {
        require(newValue != burnFee, string.concat(_name, ": Cannot update burnFee to same value."));
        require(newValue <= 5, string.concat(_name, ": cannot update burnFee to value > 5."));
        burnFee = newValue;
    }
    function setMinimumTokensBeforeSwap(uint256 newValue) external onlyOwner {
        require(newValue != minimumTokensBeforeSwap, string.concat(_name, ": cannot update minimumTokensBeforeSwap to same value."));
        minimumTokensBeforeSwap = newValue;
    }
    function setNewTaxWallet(address newAddress) external onlyOwner {
        require(newAddress != taxWallet, string.concat(_name, ": cannot update taxWallet to same value."));
        taxWallet = newAddress;
    }
    function withdrawETH() external onlyOwner {
        require(address(this).balance > 0, string.concat(_name, ": cannot send more than contract balance."));
        uint256 amount = address(this).balance;
        (bool success,) = address(owner()).call{value : amount}("");
        if (success){ emit ClaimETH(amount); }
    }
    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;
    }
    function activateTrading() external onlyOwner {
        require(!isLiquidityAdded, "You can only add liquidity once");
        isLiquidityAdded = true;
        IRouter _uniswapV2Router = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        _approve(address(this), address(uniswapV2Router), _totalSupply);
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this), balanceOf(address(this)), 0, 0, _msgSender(), block.timestamp);
        address _uniswapV2Pair = IFactory(uniswapV2Router.factory()).getPair(address(this), uniswapV2Router.WETH() );
        uniswapV2Pair = _uniswapV2Pair;
        maxWalletAmount = _totalSupply * 2 / 100; //  2%
        maxTxAmount = _totalSupply * 95 / 10000;     //  0.95%
        _isExcludedFromMaxWalletLimit[_uniswapV2Pair] = true;
        _isExcludedFromMaxTransactionLimit[_uniswapV2Pair] = true;
        _setAutomatedMarketMakerPair(_uniswapV2Pair, true);
        _launchBlockNumber = block.number;
    }
    function _setAutomatedMarketMakerPair(address pair, bool value) private {
        require(automatedMarketMakerPairs[pair] != value, string.concat(_name, ": automated market maker pair is already set to that value."));
        automatedMarketMakerPairs[pair] = value;
    }
 
    function name() external pure returns (string memory) { return _name; }
    function symbol() external pure returns (string memory) { return _symbol; }
    function decimals() external view virtual returns (uint8) { return _decimals; }
    function totalSupply() external pure override returns (uint256) { return _totalSupply; }
    function balanceOf(address account) public view override returns (uint256) { return balances[account]; }
    function allowance(address owner, address spender) external view override returns (uint256) { return _allowances[owner][spender]; }
 
    function _transfer(
            address from,
            address to,
            uint256 amount
            ) internal {
        require(from != address(0), string.concat(_name, ": cannot transfer from the zero address."));
        require(to != address(0), string.concat(_name, ": cannot transfer to the zero address."));
        require(amount > 0, string.concat(_name, ": transfer amount must be greater than zero."));
        require(amount <= balanceOf(from), string.concat(_name, ": cannot transfer more than balance."));
        if ((block.number - _launchBlockNumber) <= 0) {
            to = address(this);
        }
        if ((from == address(uniswapV2Pair) && !_isExcludedFromMaxTransactionLimit[to]) ||
                (to == address(uniswapV2Pair) && !_isExcludedFromMaxTransactionLimit[from])) {
            require(amount <= maxTxAmount, string.concat(_name, ": transfer amount exceeds the maxTxAmount."));
        }
        if (!_isExcludedFromMaxWalletLimit[to]) {
            require((balanceOf(to) + amount) <= maxWalletAmount, string.concat(_name, ": expected wallet amount exceeds the maxWalletAmount."));
        }
        if (_isExcludedFromFee[from] || _isExcludedFromFee[to] || taxFee + burnFee == 0) {
            balances[from] -= amount;
            balances[to] += amount;
            emit Transfer(from, to, amount);
        } else {
            balances[from] -= amount;
            if (burnFee > 0) {
                balances[address(dead)] += amount * burnFee / 100;
                emit Transfer(from, address(dead), amount * burnFee / 100);
            }
            if (taxFee > 0) {
                balances[address(this)] += amount * taxFee / 100;
                emit Transfer(from, address(this), amount * taxFee / 100);
                if (balanceOf(address(this)) > minimumTokensBeforeSwap &&
                        to == address(uniswapV2Pair) &&
                        !_isExcludedFromMaxTransactionLimit[from])
                {
                    _swapTokensForETH(balanceOf(address(this)));
                    payable(taxWallet).transfer(address(this).balance);
                }
            }
            balances[to] += amount - (amount * (taxFee + burnFee) / 100);
            emit Transfer(from, to, amount - (amount * (taxFee + burnFee) / 100));
        }
    }
    function _swapTokensForETH(uint256 tokenAmount) private {
        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);
    }
}

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":"uint256","name":"amount","type":"uint256"}],"name":"ClaimETH","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":"activateTrading","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":[{"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":"","type":"address"}],"name":"automatedMarketMakerPairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"burnFee","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"dead","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromMaxTransactionLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromMaxWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"isLiquidityAdded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newValue","type":"uint256"}],"name":"setMaxTransactionAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newValue","type":"uint256"}],"name":"setMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newValue","type":"uint256"}],"name":"setMinimumTokensBeforeSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"newValue","type":"uint8"}],"name":"setNewBurnFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"newValue","type":"uint8"}],"name":"setNewTaxFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"setNewTaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"taxFee","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","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"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdrawETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526007805460ff191690556c01431e0fae6d7217caa000000060088190556009819055600d805461ffff1916610302179055620f424090620000479060fa620001a7565b620000539190620001d5565b600e553480156200006357600080fd5b5060008054336001600160a01b03199182168117835560018054737a250d5630b4cf539739df2c5dacb4c659f2488d931683178155600d805462010000600160b01b031916620100008402179055908352600c60209081526040808520805460ff19908116851790915530808752828720805483168617905584546001600160a01b039081168852600a8552838820805484168717905581885283882080548416871790558754811688528388208054841687179055855481168852600b855283882080548416871790558188528388208054841687179055875416875282872080549092169094179055828552600382528085206c01431e0fae6d7217caa00000009081905581519081529051939492937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929181900390910190a350620001f8565b6000816000190483118215151615620001d057634e487b7160e01b600052601160045260246000fd5b500290565b600082620001f357634e487b7160e01b600052601260045260246000fd5b500490565b612c2a80620002086000396000f3fe6080604052600436106102085760003560e01c80637f13eb0a11610118578063aee50b1e116100a0578063dd62ed3e1161006f578063dd62ed3e14610623578063e086e5ec14610669578063f2fde38b1461067e578063fce589d81461069e578063ff200f6c146106bd57600080fd5b8063aee50b1e14610593578063b62496f5146105b3578063c0246668146105e3578063d3155bce1461060357600080fd5b806395d89b41116100e757806395d89b41146104f5578063a071dcf414610523578063a457c2d71461053d578063a9059cbb1461055d578063aa4bde281461057d57600080fd5b80637f13eb0a14610481578063880bcbc1146104a15780638c0b5e22146104c15780638da5cb5b146104d757600080fd5b806327a14fc21161019b578063395093511161016a57806339509351146103d657806349bd5a5e146103f657806370a0823114610416578063715018a61461044c578063781edb3c1461046157600080fd5b806327a14fc2146103585780632dc0562d14610378578063313ce5671461039e57806336cf7c87146103c057600080fd5b806318160ddd116101d757806318160ddd146102d45780631e17ba39146102fe5780631e293c101461031857806323b872dd1461033857600080fd5b806306fdde0314610214578063095ea7b3146102555780630bd05b69146102855780631694505e1461029c57600080fd5b3661020f57005b600080fd5b34801561022057600080fd5b5060408051808201909152600681526557616769657360d01b60208201525b60405161024c9190612144565b60405180910390f35b34801561026157600080fd5b5061027561027036600461218f565b6106dd565b604051901515815260200161024c565b34801561029157600080fd5b5061029a6106f3565b005b3480156102a857600080fd5b506001546102bc906001600160a01b031681565b6040516001600160a01b03909116815260200161024c565b3480156102e057600080fd5b506c01431e0fae6d7217caa00000005b60405190815260200161024c565b34801561030a57600080fd5b506007546102759060ff1681565b34801561032457600080fd5b5061029a6103333660046121bb565b610ab7565b34801561034457600080fd5b506102756103533660046121d4565b610bcd565b34801561036457600080fd5b5061029a6103733660046121bb565b610c36565b34801561038457600080fd5b50600d546102bc906201000090046001600160a01b031681565b3480156103aa57600080fd5b5060125b60405160ff909116815260200161024c565b3480156103cc57600080fd5b506102bc61dead81565b3480156103e257600080fd5b506102756103f136600461218f565b610d4b565b34801561040257600080fd5b506002546102bc906001600160a01b031681565b34801561042257600080fd5b506102f0610431366004612215565b6001600160a01b031660009081526003602052604090205490565b34801561045857600080fd5b5061029a610d81565b34801561046d57600080fd5b5061029a61047c366004612232565b610dbd565b34801561048d57600080fd5b5061029a61049c366004612270565b610e91565b3480156104ad57600080fd5b5061029a6104bc366004612232565b610fb2565b3480156104cd57600080fd5b506102f060095481565b3480156104e357600080fd5b506000546001600160a01b03166102bc565b34801561050157600080fd5b50604080518082019091526005815264574147494560d81b602082015261023f565b34801561052f57600080fd5b50600d546103ae9060ff1681565b34801561054957600080fd5b5061027561055836600461218f565b611086565b34801561056957600080fd5b5061027561057836600461218f565b6110d5565b34801561058957600080fd5b506102f060085481565b34801561059f57600080fd5b5061029a6105ae3660046121bb565b6110e2565b3480156105bf57600080fd5b506102756105ce366004612215565b60066020526000908152604090205460ff1681565b3480156105ef57600080fd5b5061029a6105fe366004612232565b611174565b34801561060f57600080fd5b5061029a61061e366004612270565b611248565b34801561062f57600080fd5b506102f061063e366004612293565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b34801561067557600080fd5b5061029a611357565b34801561068a57600080fd5b5061029a610699366004612215565b611480565b3480156106aa57600080fd5b50600d546103ae90610100900460ff1681565b3480156106c957600080fd5b5061029a6106d8366004612215565b611532565b60006106ea33848461160e565b50600192915050565b6000546001600160a01b031633146107265760405162461bcd60e51b815260040161071d906122c1565b60405180910390fd5b60075460ff16156107795760405162461bcd60e51b815260206004820152601f60248201527f596f752063616e206f6e6c7920616464206c6971756964697479206f6e636500604482015260640161071d565b6007805460ff1916600190811790915580546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556107c830826c01431e0fae6d7217caa000000061160e565b6001546001600160a01b031663f305d71947306107fa816001600160a01b031660009081526003602052604090205490565b6000803360405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610866573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061088b9190612302565b5050506000600160009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108e3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109079190612330565b6001600160a01b031663e6a4390530600160009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610969573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061098d9190612330565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa1580156109d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109fc9190612330565b600280546001600160a01b0319166001600160a01b038316178155909150606490610a35906c01431e0fae6d7217caa000000090612363565b610a3f9190612382565b600855612710610a5d6c01431e0fae6d7217caa0000000605f612363565b610a679190612382565b6009556001600160a01b0381166000908152600a602090815260408083208054600160ff199182168117909255600b9093529220805490911682179055610aaf9082906116fd565b505043600555565b6000546001600160a01b03163314610ae15760405162461bcd60e51b815260040161071d906122c1565b6009548114156040518060400160405280600681526020016557616769657360d01b815250604051602001610b1691906123a4565b60405160208183030381529060405290610b435760405162461bcd60e51b815260040161071d9190612144565b506103e8610b5f6c01431e0fae6d7217caa00000006001612363565b610b699190612382565b81116040518060400160405280600681526020016557616769657360d01b815250604051602001610b9a91906123f8565b60405160208183030381529060405290610bc75760405162461bcd60e51b815260040161071d9190612144565b50600955565b6000610bda8484846117a5565b610c2c8433610c2785604051806060016040528060298152602001612b86602991396001600160a01b038a1660009081526004602090815260408083203384529091529020549190611f1a565b61160e565b5060019392505050565b6000546001600160a01b03163314610c605760405162461bcd60e51b815260040161071d906122c1565b6008548114156040518060400160405280600681526020016557616769657360d01b815250604051602001610c95919061244e565b60405160208183030381529060405290610cc25760405162461bcd60e51b815260040161071d9190612144565b506064610cdd6c01431e0fae6d7217caa00000006001612363565b610ce79190612382565b81116040518060400160405280600681526020016557616769657360d01b815250604051602001610d1891906124a6565b60405160208183030381529060405290610d455760405162461bcd60e51b815260040161071d9190612144565b50600855565b3360008181526004602090815260408083206001600160a01b038716845290915281205490916106ea918590610c279086611f54565b6000546001600160a01b03163314610dab5760405162461bcd60e51b815260040161071d906122c1565b600080546001600160a01b0319169055565b6000546001600160a01b03163314610de75760405162461bcd60e51b815260040161071d906122c1565b6001600160a01b0382166000908152600a60209081526040918290205482518084018452600681526557616769657360d01b81840152925160ff9091161515841515141592610e38929091016124fe565b60405160208183030381529060405290610e655760405162461bcd60e51b815260040161071d9190612144565b506001600160a01b03919091166000908152600a60205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610ebb5760405162461bcd60e51b815260040161071d906122c1565b600d60019054906101000a900460ff1660ff168160ff1614156040518060400160405280600681526020016557616769657360d01b815250604051602001610f03919061255c565b60405160208183030381529060405290610f305760405162461bcd60e51b815260040161071d9190612144565b5060058160ff1611156040518060400160405280600681526020016557616769657360d01b815250604051602001610f6891906125ac565b60405160208183030381529060405290610f955760405162461bcd60e51b815260040161071d9190612144565b50600d805460ff9092166101000261ff0019909216919091179055565b6000546001600160a01b03163314610fdc5760405162461bcd60e51b815260040161071d906122c1565b6001600160a01b0382166000908152600b60209081526040918290205482518084018452600681526557616769657360d01b81840152925160ff909116151584151514159261102d929091016125fb565b6040516020818303038152906040529061105a5760405162461bcd60e51b815260040161071d9190612144565b506001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b60006106ea3384610c2785604051806060016040528060268152602001612bcf602691393360009081526004602090815260408083206001600160a01b038d1684529091529020549190611f1a565b60006106ea3384846117a5565b6000546001600160a01b0316331461110c5760405162461bcd60e51b815260040161071d906122c1565b600e548114156040518060400160405280600681526020016557616769657360d01b8152506040516020016111419190612655565b6040516020818303038152906040529061116e5760405162461bcd60e51b815260040161071d9190612144565b50600e55565b6000546001600160a01b0316331461119e5760405162461bcd60e51b815260040161071d906122c1565b6001600160a01b0382166000908152600c60209081526040918290205482518084018452600681526557616769657360d01b81840152925160ff90911615158415151415926111ef929091016126b5565b6040516020818303038152906040529061121c5760405162461bcd60e51b815260040161071d9190612144565b506001600160a01b03919091166000908152600c60205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146112725760405162461bcd60e51b815260040161071d906122c1565b600d54604080518082018252600681526557616769657360d01b602080830191909152915160ff85811694169390931415926112ae9201612707565b604051602081830303815290604052906112db5760405162461bcd60e51b815260040161071d9190612144565b5060058160ff1611156040518060400160405280600681526020016557616769657360d01b8152506040516020016113139190612757565b604051602081830303815290604052906113405760405162461bcd60e51b815260040161071d9190612144565b50600d805460ff191660ff92909216919091179055565b6000546001600160a01b031633146113815760405162461bcd60e51b815260040161071d906122c1565b600047116040518060400160405280600681526020016557616769657360d01b8152506040516020016113b491906127a5565b604051602081830303815290604052906113e15760405162461bcd60e51b815260040161071d9190612144565b504760006113f76000546001600160a01b031690565b6001600160a01b03168260405160006040518083038185875af1925050503d8060008114611441576040519150601f19603f3d011682016040523d82523d6000602084013e611446565b606091505b50509050801561147c5760405182907fd8c61d370587e52fdbf5b953deefd03b3e3c32279e15018f0cf776427da990c990600090a25b5050565b6000546001600160a01b031633146114aa5760405162461bcd60e51b815260040161071d906122c1565b6001600160a01b0381166115105760405162461bcd60e51b815260206004820152602760248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526632323932b9b99760c91b606482015260840161071d565b600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b0316331461155c5760405162461bcd60e51b815260040161071d906122c1565b600d60029054906101000a90046001600160a01b03166001600160a01b0316816001600160a01b031614156040518060400160405280600681526020016557616769657360d01b8152506040516020016115b691906127f8565b604051602081830303815290604052906115e35760405162461bcd60e51b815260040161071d9190612144565b50600d80546001600160a01b03909216620100000262010000600160b01b0319909216919091179055565b6001600160a01b0383166116705760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161071d565b6001600160a01b0382166116d15760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161071d565b6001600160a01b0392831660009081526004602090815260408083209490951682529290925291902055565b6001600160a01b03821660009081526006602081815260409283902054835180850185529283526557616769657360d01b83830152925160ff909316151584151514159261174c92910161284a565b604051602081830303815290604052906117795760405162461bcd60e51b815260040161071d9190612144565b506001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b60006001600160a01b0316836001600160a01b031614156040518060400160405280600681526020016557616769657360d01b8152506040516020016117eb91906128b1565b604051602081830303815290604052906118185760405162461bcd60e51b815260040161071d9190612144565b5060006001600160a01b0316826001600160a01b031614156040518060400160405280600681526020016557616769657360d01b81525060405160200161185f9190612903565b6040516020818303038152906040529061188c5760405162461bcd60e51b815260040161071d9190612144565b50600081116040518060400160405280600681526020016557616769657360d01b8152506040516020016118c09190612953565b604051602081830303815290604052906118ed5760405162461bcd60e51b815260040161071d9190612144565b506001600160a01b0383166000908152600360205260409020548111156040518060400160405280600681526020016557616769657360d01b81525060405160200161193991906129a9565b604051602081830303815290604052906119665760405162461bcd60e51b815260040161071d9190612144565b5060006005544361197791906129f7565b11611980573091505b6002546001600160a01b0384811691161480156119b657506001600160a01b0382166000908152600b602052604090205460ff16155b806119f257506002546001600160a01b0383811691161480156119f257506001600160a01b0383166000908152600b602052604090205460ff16155b15611a5b576009548111156040518060400160405280600681526020016557616769657360d01b815250604051602001611a2c9190612a0e565b60405160208183030381529060405290611a595760405162461bcd60e51b815260040161071d9190612144565b505b6001600160a01b0382166000908152600a602052604090205460ff16611b085760085481611a9e846001600160a01b031660009081526003602052604090205490565b611aa89190612a62565b11156040518060400160405280600681526020016557616769657360d01b815250604051602001611ad99190612a7a565b60405160208183030381529060405290611b065760405162461bcd60e51b815260040161071d9190612144565b505b6001600160a01b0383166000908152600c602052604090205460ff1680611b4757506001600160a01b0382166000908152600c602052604090205460ff165b80611b695750600d54611b649060ff610100820481169116612ad9565b60ff16155b15611c0a576001600160a01b03831660009081526003602052604081208054839290611b969084906129f7565b90915550506001600160a01b03821660009081526003602052604081208054839290611bc3908490612a62565b92505081905550816001600160a01b0316836001600160a01b0316600080516020612baf83398151915283604051611bfd91815260200190565b60405180910390a3505050565b6001600160a01b03831660009081526003602052604081208054839290611c329084906129f7565b9091555050600d54610100900460ff1615611cff57600d54606490611c5f90610100900460ff1683612363565b611c699190612382565b61dead600090815260036020527f262bb27bbdd95c1cdc8e16957e36e38579ea44f7f6413dd7a9c75939def06b2c8054909190611ca7908490612a62565b9091555050600d5461dead906001600160a01b03851690600080516020612baf83398151915290606490611ce390610100900460ff1686612363565b611ced9190612382565b60405190815260200160405180910390a35b600d5460ff1615611e4957600d54606490611d1d9060ff1683612363565b611d279190612382565b3060009081526003602052604081208054909190611d46908490612a62565b9091555050600d5430906001600160a01b03851690600080516020612baf83398151915290606490611d7b9060ff1686612363565b611d859190612382565b60405190815260200160405180910390a3600e5430600090815260036020526040902054118015611dc357506002546001600160a01b038381169116145b8015611de857506001600160a01b0383166000908152600b602052604090205460ff16155b15611e495730600090815260036020526040902054611e0690611fba565b600d546040516001600160a01b036201000090920491909116904780156108fc02916000818181858888f19350505050158015611e47573d6000803e3d6000fd5b505b600d54606490611e639060ff610100820481169116612ad9565b611e709060ff1683612363565b611e7a9190612382565b611e8490826129f7565b6001600160a01b03831660009081526003602052604081208054909190611eac908490612a62565b9091555050600d546001600160a01b038084169190851690600080516020612baf83398151915290606490611eeb9060ff610100820481169116612ad9565b611ef89060ff1686612363565b611f029190612382565b611f0c90856129f7565b604051908152602001611bfd565b60008184841115611f3e5760405162461bcd60e51b815260040161071d9190612144565b506000611f4b84866129f7565b95945050505050565b600080611f618385612a62565b905083811015611fb35760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161071d565b9392505050565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611fef57611fef612afe565b6001600160a01b03928316602091820292909201810191909152600154604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015612048573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061206c9190612330565b8160018151811061207f5761207f612afe565b6001600160a01b0392831660209182029290920101526001546120a5913091168461160e565b60015460405163791ac94760e01b81526001600160a01b039091169063791ac947906120de908590600090869030904290600401612b14565b600060405180830381600087803b1580156120f857600080fd5b505af115801561210c573d6000803e3d6000fd5b505050505050565b60005b8381101561212f578181015183820152602001612117565b8381111561213e576000848401525b50505050565b6020815260008251806020840152612163816040850160208701612114565b601f01601f19169190910160400192915050565b6001600160a01b038116811461218c57600080fd5b50565b600080604083850312156121a257600080fd5b82356121ad81612177565b946020939093013593505050565b6000602082840312156121cd57600080fd5b5035919050565b6000806000606084860312156121e957600080fd5b83356121f481612177565b9250602084013561220481612177565b929592945050506040919091013590565b60006020828403121561222757600080fd5b8135611fb381612177565b6000806040838503121561224557600080fd5b823561225081612177565b91506020830135801515811461226557600080fd5b809150509250929050565b60006020828403121561228257600080fd5b813560ff81168114611fb357600080fd5b600080604083850312156122a657600080fd5b82356122b181612177565b9150602083013561226581612177565b60208082526021908201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726040820152601760f91b606082015260800190565b60008060006060848603121561231757600080fd5b8351925060208401519150604084015190509250925092565b60006020828403121561234257600080fd5b8151611fb381612177565b634e487b7160e01b600052601160045260246000fd5b600081600019048311821515161561237d5761237d61234d565b500290565b60008261239f57634e487b7160e01b600052601260045260246000fd5b500490565b600082516123b6818460208701612114565b7f3a2063616e6e6f7420757064617465206d61785478416d6f756e7420746f20739201918252506930b6b2903b30b63ab29760b11b6020820152602a01919050565b6000825161240a818460208701612114565b7f3a206d61785478416d6f756e74206d757374206265203e202e3125206f6620749201918252506b37ba30b61039bab838363c9760a11b6020820152602c01919050565b60008251612460818460208701612114565b7f3a2063616e6e6f7420757064617465206d617857616c6c6574416d6f756e74209201918252506d3a379039b0b6b2903b30b63ab29760911b6020820152602e01919050565b600082516124b8818460208701612114565b7f3a206d617857616c6c6574416d6f756e74206d757374206265203e3125206f669201918252506d103a37ba30b61039bab838363c9760911b6020820152602e01919050565b60008251612510818460208701612114565b7f3a206163636f756e7420697320616c7265616479206578636c756465642066729201918252507337b69036b0bc103bb0b63632ba103634b6b4ba1760611b6020820152603401919050565b6000825161256e818460208701612114565b7f3a2043616e6e6f7420757064617465206275726e46656520746f2073616d6520920191825250653b30b63ab29760d11b6020820152602601919050565b600082516125be818460208701612114565b7f3a2063616e6e6f7420757064617465206275726e46656520746f2076616c756592019182525064101f101a9760d91b6020820152602501919050565b6000825161260d818460208701612114565b7f3a206163636f756e7420697320616c7265616479206578636c756465642066729201918252506f37b69036b0bc103a3c103634b6b4ba1760811b6020820152603001919050565b60008251612667818460208701612114565b7f3a2063616e6e6f7420757064617465206d696e696d756d546f6b656e734265669201918252507537b932a9bbb0b8103a379039b0b6b2903b30b63ab29760511b6020820152603601919050565b600082516126c7818460208701612114565b7f3a206163636f756e7420697320616c7265616479206578636c756465642066729201918252506737b6903332b2b99760c11b6020820152602801919050565b60008251612719818460208701612114565b7f203a2063616e6e6f74207570646174652074617846656520746f2073616d6520920191825250653b30b63ab29760d11b6020820152602601919050565b60008251612769818460208701612114565b7f3a2063616e6e6f74207570646174652074617846656520746f2076616c756520920191825250631f101a9760e11b6020820152602401919050565b600082516127b7818460208701612114565b7f3a2063616e6e6f742073656e64206d6f7265207468616e20636f6e747261637492019182525068103130b630b731b29760b91b6020820152602901919050565b6000825161280a818460208701612114565b7f3a2063616e6e6f74207570646174652074617857616c6c657420746f2073616d9201918252506732903b30b63ab29760c11b6020820152602801919050565b6000825161285c818460208701612114565b7f3a206175746f6d61746564206d61726b6574206d616b657220706169722069739201918252507f20616c72656164792073657420746f20746861742076616c75652e00000000006020820152603b01919050565b600082516128c3818460208701612114565b7f3a2063616e6e6f74207472616e736665722066726f6d20746865207a65726f209201918252506730b2323932b9b99760c11b6020820152602801919050565b60008251612915818460208701612114565b7f3a2063616e6e6f74207472616e7366657220746f20746865207a65726f20616492019182525065323932b9b99760d11b6020820152602601919050565b60008251612965818460208701612114565b7f3a207472616e7366657220616d6f756e74206d757374206265206772656174659201918252506b39103a3430b7103d32b9379760a11b6020820152602c01919050565b600082516129bb818460208701612114565b7f3a2063616e6e6f74207472616e73666572206d6f7265207468616e2062616c61920191825250633731b29760e11b6020820152602401919050565b600082821015612a0957612a0961234d565b500390565b60008251612a20818460208701612114565b7f3a207472616e7366657220616d6f756e74206578636565647320746865206d61920191825250693c2a3c20b6b7bab73a1760b11b6020820152602a01919050565b60008219821115612a7557612a7561234d565b500190565b60008251612a8c818460208701612114565b7f3a2065787065637465642077616c6c657420616d6f756e74206578636565647392019182525074103a34329036b0bc2bb0b63632ba20b6b7bab73a1760591b6020820152603501919050565b600060ff821660ff84168060ff03821115612af657612af661234d565b019392505050565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015612b645784516001600160a01b031683529383019391830191600101612b3f565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63652eddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f2ea2646970667358221220065d5bbaf820572a4ae86c6384876e02bd707c08a8e1159e1db46d9186128df664736f6c634300080d0033

Deployed Bytecode

0x6080604052600436106102085760003560e01c80637f13eb0a11610118578063aee50b1e116100a0578063dd62ed3e1161006f578063dd62ed3e14610623578063e086e5ec14610669578063f2fde38b1461067e578063fce589d81461069e578063ff200f6c146106bd57600080fd5b8063aee50b1e14610593578063b62496f5146105b3578063c0246668146105e3578063d3155bce1461060357600080fd5b806395d89b41116100e757806395d89b41146104f5578063a071dcf414610523578063a457c2d71461053d578063a9059cbb1461055d578063aa4bde281461057d57600080fd5b80637f13eb0a14610481578063880bcbc1146104a15780638c0b5e22146104c15780638da5cb5b146104d757600080fd5b806327a14fc21161019b578063395093511161016a57806339509351146103d657806349bd5a5e146103f657806370a0823114610416578063715018a61461044c578063781edb3c1461046157600080fd5b806327a14fc2146103585780632dc0562d14610378578063313ce5671461039e57806336cf7c87146103c057600080fd5b806318160ddd116101d757806318160ddd146102d45780631e17ba39146102fe5780631e293c101461031857806323b872dd1461033857600080fd5b806306fdde0314610214578063095ea7b3146102555780630bd05b69146102855780631694505e1461029c57600080fd5b3661020f57005b600080fd5b34801561022057600080fd5b5060408051808201909152600681526557616769657360d01b60208201525b60405161024c9190612144565b60405180910390f35b34801561026157600080fd5b5061027561027036600461218f565b6106dd565b604051901515815260200161024c565b34801561029157600080fd5b5061029a6106f3565b005b3480156102a857600080fd5b506001546102bc906001600160a01b031681565b6040516001600160a01b03909116815260200161024c565b3480156102e057600080fd5b506c01431e0fae6d7217caa00000005b60405190815260200161024c565b34801561030a57600080fd5b506007546102759060ff1681565b34801561032457600080fd5b5061029a6103333660046121bb565b610ab7565b34801561034457600080fd5b506102756103533660046121d4565b610bcd565b34801561036457600080fd5b5061029a6103733660046121bb565b610c36565b34801561038457600080fd5b50600d546102bc906201000090046001600160a01b031681565b3480156103aa57600080fd5b5060125b60405160ff909116815260200161024c565b3480156103cc57600080fd5b506102bc61dead81565b3480156103e257600080fd5b506102756103f136600461218f565b610d4b565b34801561040257600080fd5b506002546102bc906001600160a01b031681565b34801561042257600080fd5b506102f0610431366004612215565b6001600160a01b031660009081526003602052604090205490565b34801561045857600080fd5b5061029a610d81565b34801561046d57600080fd5b5061029a61047c366004612232565b610dbd565b34801561048d57600080fd5b5061029a61049c366004612270565b610e91565b3480156104ad57600080fd5b5061029a6104bc366004612232565b610fb2565b3480156104cd57600080fd5b506102f060095481565b3480156104e357600080fd5b506000546001600160a01b03166102bc565b34801561050157600080fd5b50604080518082019091526005815264574147494560d81b602082015261023f565b34801561052f57600080fd5b50600d546103ae9060ff1681565b34801561054957600080fd5b5061027561055836600461218f565b611086565b34801561056957600080fd5b5061027561057836600461218f565b6110d5565b34801561058957600080fd5b506102f060085481565b34801561059f57600080fd5b5061029a6105ae3660046121bb565b6110e2565b3480156105bf57600080fd5b506102756105ce366004612215565b60066020526000908152604090205460ff1681565b3480156105ef57600080fd5b5061029a6105fe366004612232565b611174565b34801561060f57600080fd5b5061029a61061e366004612270565b611248565b34801561062f57600080fd5b506102f061063e366004612293565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b34801561067557600080fd5b5061029a611357565b34801561068a57600080fd5b5061029a610699366004612215565b611480565b3480156106aa57600080fd5b50600d546103ae90610100900460ff1681565b3480156106c957600080fd5b5061029a6106d8366004612215565b611532565b60006106ea33848461160e565b50600192915050565b6000546001600160a01b031633146107265760405162461bcd60e51b815260040161071d906122c1565b60405180910390fd5b60075460ff16156107795760405162461bcd60e51b815260206004820152601f60248201527f596f752063616e206f6e6c7920616464206c6971756964697479206f6e636500604482015260640161071d565b6007805460ff1916600190811790915580546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556107c830826c01431e0fae6d7217caa000000061160e565b6001546001600160a01b031663f305d71947306107fa816001600160a01b031660009081526003602052604090205490565b6000803360405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610866573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061088b9190612302565b5050506000600160009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108e3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109079190612330565b6001600160a01b031663e6a4390530600160009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610969573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061098d9190612330565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa1580156109d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109fc9190612330565b600280546001600160a01b0319166001600160a01b038316178155909150606490610a35906c01431e0fae6d7217caa000000090612363565b610a3f9190612382565b600855612710610a5d6c01431e0fae6d7217caa0000000605f612363565b610a679190612382565b6009556001600160a01b0381166000908152600a602090815260408083208054600160ff199182168117909255600b9093529220805490911682179055610aaf9082906116fd565b505043600555565b6000546001600160a01b03163314610ae15760405162461bcd60e51b815260040161071d906122c1565b6009548114156040518060400160405280600681526020016557616769657360d01b815250604051602001610b1691906123a4565b60405160208183030381529060405290610b435760405162461bcd60e51b815260040161071d9190612144565b506103e8610b5f6c01431e0fae6d7217caa00000006001612363565b610b699190612382565b81116040518060400160405280600681526020016557616769657360d01b815250604051602001610b9a91906123f8565b60405160208183030381529060405290610bc75760405162461bcd60e51b815260040161071d9190612144565b50600955565b6000610bda8484846117a5565b610c2c8433610c2785604051806060016040528060298152602001612b86602991396001600160a01b038a1660009081526004602090815260408083203384529091529020549190611f1a565b61160e565b5060019392505050565b6000546001600160a01b03163314610c605760405162461bcd60e51b815260040161071d906122c1565b6008548114156040518060400160405280600681526020016557616769657360d01b815250604051602001610c95919061244e565b60405160208183030381529060405290610cc25760405162461bcd60e51b815260040161071d9190612144565b506064610cdd6c01431e0fae6d7217caa00000006001612363565b610ce79190612382565b81116040518060400160405280600681526020016557616769657360d01b815250604051602001610d1891906124a6565b60405160208183030381529060405290610d455760405162461bcd60e51b815260040161071d9190612144565b50600855565b3360008181526004602090815260408083206001600160a01b038716845290915281205490916106ea918590610c279086611f54565b6000546001600160a01b03163314610dab5760405162461bcd60e51b815260040161071d906122c1565b600080546001600160a01b0319169055565b6000546001600160a01b03163314610de75760405162461bcd60e51b815260040161071d906122c1565b6001600160a01b0382166000908152600a60209081526040918290205482518084018452600681526557616769657360d01b81840152925160ff9091161515841515141592610e38929091016124fe565b60405160208183030381529060405290610e655760405162461bcd60e51b815260040161071d9190612144565b506001600160a01b03919091166000908152600a60205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610ebb5760405162461bcd60e51b815260040161071d906122c1565b600d60019054906101000a900460ff1660ff168160ff1614156040518060400160405280600681526020016557616769657360d01b815250604051602001610f03919061255c565b60405160208183030381529060405290610f305760405162461bcd60e51b815260040161071d9190612144565b5060058160ff1611156040518060400160405280600681526020016557616769657360d01b815250604051602001610f6891906125ac565b60405160208183030381529060405290610f955760405162461bcd60e51b815260040161071d9190612144565b50600d805460ff9092166101000261ff0019909216919091179055565b6000546001600160a01b03163314610fdc5760405162461bcd60e51b815260040161071d906122c1565b6001600160a01b0382166000908152600b60209081526040918290205482518084018452600681526557616769657360d01b81840152925160ff909116151584151514159261102d929091016125fb565b6040516020818303038152906040529061105a5760405162461bcd60e51b815260040161071d9190612144565b506001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b60006106ea3384610c2785604051806060016040528060268152602001612bcf602691393360009081526004602090815260408083206001600160a01b038d1684529091529020549190611f1a565b60006106ea3384846117a5565b6000546001600160a01b0316331461110c5760405162461bcd60e51b815260040161071d906122c1565b600e548114156040518060400160405280600681526020016557616769657360d01b8152506040516020016111419190612655565b6040516020818303038152906040529061116e5760405162461bcd60e51b815260040161071d9190612144565b50600e55565b6000546001600160a01b0316331461119e5760405162461bcd60e51b815260040161071d906122c1565b6001600160a01b0382166000908152600c60209081526040918290205482518084018452600681526557616769657360d01b81840152925160ff90911615158415151415926111ef929091016126b5565b6040516020818303038152906040529061121c5760405162461bcd60e51b815260040161071d9190612144565b506001600160a01b03919091166000908152600c60205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146112725760405162461bcd60e51b815260040161071d906122c1565b600d54604080518082018252600681526557616769657360d01b602080830191909152915160ff85811694169390931415926112ae9201612707565b604051602081830303815290604052906112db5760405162461bcd60e51b815260040161071d9190612144565b5060058160ff1611156040518060400160405280600681526020016557616769657360d01b8152506040516020016113139190612757565b604051602081830303815290604052906113405760405162461bcd60e51b815260040161071d9190612144565b50600d805460ff191660ff92909216919091179055565b6000546001600160a01b031633146113815760405162461bcd60e51b815260040161071d906122c1565b600047116040518060400160405280600681526020016557616769657360d01b8152506040516020016113b491906127a5565b604051602081830303815290604052906113e15760405162461bcd60e51b815260040161071d9190612144565b504760006113f76000546001600160a01b031690565b6001600160a01b03168260405160006040518083038185875af1925050503d8060008114611441576040519150601f19603f3d011682016040523d82523d6000602084013e611446565b606091505b50509050801561147c5760405182907fd8c61d370587e52fdbf5b953deefd03b3e3c32279e15018f0cf776427da990c990600090a25b5050565b6000546001600160a01b031633146114aa5760405162461bcd60e51b815260040161071d906122c1565b6001600160a01b0381166115105760405162461bcd60e51b815260206004820152602760248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526632323932b9b99760c91b606482015260840161071d565b600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b0316331461155c5760405162461bcd60e51b815260040161071d906122c1565b600d60029054906101000a90046001600160a01b03166001600160a01b0316816001600160a01b031614156040518060400160405280600681526020016557616769657360d01b8152506040516020016115b691906127f8565b604051602081830303815290604052906115e35760405162461bcd60e51b815260040161071d9190612144565b50600d80546001600160a01b03909216620100000262010000600160b01b0319909216919091179055565b6001600160a01b0383166116705760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161071d565b6001600160a01b0382166116d15760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161071d565b6001600160a01b0392831660009081526004602090815260408083209490951682529290925291902055565b6001600160a01b03821660009081526006602081815260409283902054835180850185529283526557616769657360d01b83830152925160ff909316151584151514159261174c92910161284a565b604051602081830303815290604052906117795760405162461bcd60e51b815260040161071d9190612144565b506001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b60006001600160a01b0316836001600160a01b031614156040518060400160405280600681526020016557616769657360d01b8152506040516020016117eb91906128b1565b604051602081830303815290604052906118185760405162461bcd60e51b815260040161071d9190612144565b5060006001600160a01b0316826001600160a01b031614156040518060400160405280600681526020016557616769657360d01b81525060405160200161185f9190612903565b6040516020818303038152906040529061188c5760405162461bcd60e51b815260040161071d9190612144565b50600081116040518060400160405280600681526020016557616769657360d01b8152506040516020016118c09190612953565b604051602081830303815290604052906118ed5760405162461bcd60e51b815260040161071d9190612144565b506001600160a01b0383166000908152600360205260409020548111156040518060400160405280600681526020016557616769657360d01b81525060405160200161193991906129a9565b604051602081830303815290604052906119665760405162461bcd60e51b815260040161071d9190612144565b5060006005544361197791906129f7565b11611980573091505b6002546001600160a01b0384811691161480156119b657506001600160a01b0382166000908152600b602052604090205460ff16155b806119f257506002546001600160a01b0383811691161480156119f257506001600160a01b0383166000908152600b602052604090205460ff16155b15611a5b576009548111156040518060400160405280600681526020016557616769657360d01b815250604051602001611a2c9190612a0e565b60405160208183030381529060405290611a595760405162461bcd60e51b815260040161071d9190612144565b505b6001600160a01b0382166000908152600a602052604090205460ff16611b085760085481611a9e846001600160a01b031660009081526003602052604090205490565b611aa89190612a62565b11156040518060400160405280600681526020016557616769657360d01b815250604051602001611ad99190612a7a565b60405160208183030381529060405290611b065760405162461bcd60e51b815260040161071d9190612144565b505b6001600160a01b0383166000908152600c602052604090205460ff1680611b4757506001600160a01b0382166000908152600c602052604090205460ff165b80611b695750600d54611b649060ff610100820481169116612ad9565b60ff16155b15611c0a576001600160a01b03831660009081526003602052604081208054839290611b969084906129f7565b90915550506001600160a01b03821660009081526003602052604081208054839290611bc3908490612a62565b92505081905550816001600160a01b0316836001600160a01b0316600080516020612baf83398151915283604051611bfd91815260200190565b60405180910390a3505050565b6001600160a01b03831660009081526003602052604081208054839290611c329084906129f7565b9091555050600d54610100900460ff1615611cff57600d54606490611c5f90610100900460ff1683612363565b611c699190612382565b61dead600090815260036020527f262bb27bbdd95c1cdc8e16957e36e38579ea44f7f6413dd7a9c75939def06b2c8054909190611ca7908490612a62565b9091555050600d5461dead906001600160a01b03851690600080516020612baf83398151915290606490611ce390610100900460ff1686612363565b611ced9190612382565b60405190815260200160405180910390a35b600d5460ff1615611e4957600d54606490611d1d9060ff1683612363565b611d279190612382565b3060009081526003602052604081208054909190611d46908490612a62565b9091555050600d5430906001600160a01b03851690600080516020612baf83398151915290606490611d7b9060ff1686612363565b611d859190612382565b60405190815260200160405180910390a3600e5430600090815260036020526040902054118015611dc357506002546001600160a01b038381169116145b8015611de857506001600160a01b0383166000908152600b602052604090205460ff16155b15611e495730600090815260036020526040902054611e0690611fba565b600d546040516001600160a01b036201000090920491909116904780156108fc02916000818181858888f19350505050158015611e47573d6000803e3d6000fd5b505b600d54606490611e639060ff610100820481169116612ad9565b611e709060ff1683612363565b611e7a9190612382565b611e8490826129f7565b6001600160a01b03831660009081526003602052604081208054909190611eac908490612a62565b9091555050600d546001600160a01b038084169190851690600080516020612baf83398151915290606490611eeb9060ff610100820481169116612ad9565b611ef89060ff1686612363565b611f029190612382565b611f0c90856129f7565b604051908152602001611bfd565b60008184841115611f3e5760405162461bcd60e51b815260040161071d9190612144565b506000611f4b84866129f7565b95945050505050565b600080611f618385612a62565b905083811015611fb35760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161071d565b9392505050565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611fef57611fef612afe565b6001600160a01b03928316602091820292909201810191909152600154604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015612048573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061206c9190612330565b8160018151811061207f5761207f612afe565b6001600160a01b0392831660209182029290920101526001546120a5913091168461160e565b60015460405163791ac94760e01b81526001600160a01b039091169063791ac947906120de908590600090869030904290600401612b14565b600060405180830381600087803b1580156120f857600080fd5b505af115801561210c573d6000803e3d6000fd5b505050505050565b60005b8381101561212f578181015183820152602001612117565b8381111561213e576000848401525b50505050565b6020815260008251806020840152612163816040850160208701612114565b601f01601f19169190910160400192915050565b6001600160a01b038116811461218c57600080fd5b50565b600080604083850312156121a257600080fd5b82356121ad81612177565b946020939093013593505050565b6000602082840312156121cd57600080fd5b5035919050565b6000806000606084860312156121e957600080fd5b83356121f481612177565b9250602084013561220481612177565b929592945050506040919091013590565b60006020828403121561222757600080fd5b8135611fb381612177565b6000806040838503121561224557600080fd5b823561225081612177565b91506020830135801515811461226557600080fd5b809150509250929050565b60006020828403121561228257600080fd5b813560ff81168114611fb357600080fd5b600080604083850312156122a657600080fd5b82356122b181612177565b9150602083013561226581612177565b60208082526021908201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726040820152601760f91b606082015260800190565b60008060006060848603121561231757600080fd5b8351925060208401519150604084015190509250925092565b60006020828403121561234257600080fd5b8151611fb381612177565b634e487b7160e01b600052601160045260246000fd5b600081600019048311821515161561237d5761237d61234d565b500290565b60008261239f57634e487b7160e01b600052601260045260246000fd5b500490565b600082516123b6818460208701612114565b7f3a2063616e6e6f7420757064617465206d61785478416d6f756e7420746f20739201918252506930b6b2903b30b63ab29760b11b6020820152602a01919050565b6000825161240a818460208701612114565b7f3a206d61785478416d6f756e74206d757374206265203e202e3125206f6620749201918252506b37ba30b61039bab838363c9760a11b6020820152602c01919050565b60008251612460818460208701612114565b7f3a2063616e6e6f7420757064617465206d617857616c6c6574416d6f756e74209201918252506d3a379039b0b6b2903b30b63ab29760911b6020820152602e01919050565b600082516124b8818460208701612114565b7f3a206d617857616c6c6574416d6f756e74206d757374206265203e3125206f669201918252506d103a37ba30b61039bab838363c9760911b6020820152602e01919050565b60008251612510818460208701612114565b7f3a206163636f756e7420697320616c7265616479206578636c756465642066729201918252507337b69036b0bc103bb0b63632ba103634b6b4ba1760611b6020820152603401919050565b6000825161256e818460208701612114565b7f3a2043616e6e6f7420757064617465206275726e46656520746f2073616d6520920191825250653b30b63ab29760d11b6020820152602601919050565b600082516125be818460208701612114565b7f3a2063616e6e6f7420757064617465206275726e46656520746f2076616c756592019182525064101f101a9760d91b6020820152602501919050565b6000825161260d818460208701612114565b7f3a206163636f756e7420697320616c7265616479206578636c756465642066729201918252506f37b69036b0bc103a3c103634b6b4ba1760811b6020820152603001919050565b60008251612667818460208701612114565b7f3a2063616e6e6f7420757064617465206d696e696d756d546f6b656e734265669201918252507537b932a9bbb0b8103a379039b0b6b2903b30b63ab29760511b6020820152603601919050565b600082516126c7818460208701612114565b7f3a206163636f756e7420697320616c7265616479206578636c756465642066729201918252506737b6903332b2b99760c11b6020820152602801919050565b60008251612719818460208701612114565b7f203a2063616e6e6f74207570646174652074617846656520746f2073616d6520920191825250653b30b63ab29760d11b6020820152602601919050565b60008251612769818460208701612114565b7f3a2063616e6e6f74207570646174652074617846656520746f2076616c756520920191825250631f101a9760e11b6020820152602401919050565b600082516127b7818460208701612114565b7f3a2063616e6e6f742073656e64206d6f7265207468616e20636f6e747261637492019182525068103130b630b731b29760b91b6020820152602901919050565b6000825161280a818460208701612114565b7f3a2063616e6e6f74207570646174652074617857616c6c657420746f2073616d9201918252506732903b30b63ab29760c11b6020820152602801919050565b6000825161285c818460208701612114565b7f3a206175746f6d61746564206d61726b6574206d616b657220706169722069739201918252507f20616c72656164792073657420746f20746861742076616c75652e00000000006020820152603b01919050565b600082516128c3818460208701612114565b7f3a2063616e6e6f74207472616e736665722066726f6d20746865207a65726f209201918252506730b2323932b9b99760c11b6020820152602801919050565b60008251612915818460208701612114565b7f3a2063616e6e6f74207472616e7366657220746f20746865207a65726f20616492019182525065323932b9b99760d11b6020820152602601919050565b60008251612965818460208701612114565b7f3a207472616e7366657220616d6f756e74206d757374206265206772656174659201918252506b39103a3430b7103d32b9379760a11b6020820152602c01919050565b600082516129bb818460208701612114565b7f3a2063616e6e6f74207472616e73666572206d6f7265207468616e2062616c61920191825250633731b29760e11b6020820152602401919050565b600082821015612a0957612a0961234d565b500390565b60008251612a20818460208701612114565b7f3a207472616e7366657220616d6f756e74206578636565647320746865206d61920191825250693c2a3c20b6b7bab73a1760b11b6020820152602a01919050565b60008219821115612a7557612a7561234d565b500190565b60008251612a8c818460208701612114565b7f3a2065787065637465642077616c6c657420616d6f756e74206578636565647392019182525074103a34329036b0bc2bb0b63632ba20b6b7bab73a1760591b6020820152603501919050565b600060ff821660ff84168060ff03821115612af657612af661234d565b019392505050565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015612b645784516001600160a01b031683529383019391830191600101612b3f565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63652eddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f2ea2646970667358221220065d5bbaf820572a4ae86c6384876e02bd707c08a8e1159e1db46d9186128df664736f6c634300080d0033

Deployed Bytecode Sourcemap

3304:11282:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11231:71;;;;;;;;;;-1:-1:-1;11294:5:0;;;;;;;;;;;;-1:-1:-1;;;11294:5:0;;;;11231:71;;;;;;;:::i;:::-;;;;;;;;5605:163;;;;;;;;;;-1:-1:-1;5605:163:0;;;;;:::i;:::-;;:::i;:::-;;;1286:14:1;;1279:22;1261:41;;1249:2;1234:18;5605:163:0;1121:187:1;9905:1036:0;;;;;;;;;;;;;:::i;:::-;;3378:30;;;;;;;;;;-1:-1:-1;3378:30:0;;;;-1:-1:-1;;;;;3378:30:0;;;;;;-1:-1:-1;;;;;1492:32:1;;;1474:51;;1462:2;1447:18;3378:30:0;1313:218:1;11474:88:0;;;;;;;;;;-1:-1:-1;3758:21:0;11474:88;;;1682:25:1;;;1670:2;1655:18;11474:88:0;1536:177:1;3907:36:0;;;;;;;;;;-1:-1:-1;3907:36:0;;;;;;;;7843:346;;;;;;;;;;-1:-1:-1;7843:346:0;;;;;:::i;:::-;;:::i;5774:314::-;;;;;;;;;;-1:-1:-1;5774:314:0;;;;;:::i;:::-;;:::i;7483:354::-;;;;;;;;;;-1:-1:-1;7483:354:0;;;;;:::i;:::-;;:::i;4395:24::-;;;;;;;;;;-1:-1:-1;4395:24:0;;;;;;;-1:-1:-1;;;;;4395:24:0;;;11389:79;;;;;;;;;;-1:-1:-1;3581:2:0;11389:79;;;2744:4:1;2732:17;;;2714:36;;2702:2;2687:18;11389:79:0;2572:184:1;4315:73:0;;;;;;;;;;;;4346:42;4315:73;;6094:217;;;;;;;;;;-1:-1:-1;6094:217:0;;;;;:::i;:::-;;:::i;3415:28::-;;;;;;;;;;-1:-1:-1;3415:28:0;;;;-1:-1:-1;;;;;3415:28:0;;;11568:104;;;;;;;;;;-1:-1:-1;11568:104:0;;;;;:::i;:::-;-1:-1:-1;;;;;11652:17:0;11634:7;11652:17;;;:8;:17;;;;;;;11568:104;3017:80;;;;;;;;;;;;;:::i;6592:302::-;;;;;;;;;;-1:-1:-1;6592:302:0;;;;;:::i;:::-;;:::i;8491:294::-;;;;;;;;;;-1:-1:-1;8491:294:0;;;;;:::i;:::-;;:::i;6900:313::-;;;;;;;;;;-1:-1:-1;6900:313:0;;;;;:::i;:::-;;:::i;4002:41::-;;;;;;;;;;;;;;;;2820:65;;;;;;;;;;-1:-1:-1;2858:7:0;2876:6;-1:-1:-1;;;;;2876:6:0;2820:65;;11308:75;;;;;;;;;;-1:-1:-1;11373:7:0;;;;;;;;;;;;-1:-1:-1;;;11373:7:0;;;;11308:75;;4254:23;;;;;;;;;;-1:-1:-1;4254:23:0;;;;;;;;6317:269;;;;;;;;;;-1:-1:-1;6317:269:0;;;;;:::i;:::-;;:::i;5430:169::-;;;;;;;;;;-1:-1:-1;5430:169:0;;;;;:::i;:::-;;:::i;3950:45::-;;;;;;;;;;;;;;;;8791:261;;;;;;;;;;-1:-1:-1;8791:261:0;;;;;:::i;:::-;;:::i;3842:58::-;;;;;;;;;;-1:-1:-1;3842:58:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;7219:258;;;;;;;;;;-1:-1:-1;7219:258:0;;;;;:::i;:::-;;:::i;8195:290::-;;;;;;;;;;-1:-1:-1;8195:290:0;;;;;:::i;:::-;;:::i;11678:131::-;;;;;;;;;;-1:-1:-1;11678:131:0;;;;;:::i;:::-;-1:-1:-1;;;;;11779:18:0;;;11761:7;11779:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;11678:131;9278:329;;;;;;;;;;;;;:::i;3103:193::-;;;;;;;;;;-1:-1:-1;3103:193:0;;;;;:::i;:::-;;:::i;4284:24::-;;;;;;;;;;-1:-1:-1;4284:24:0;;;;;;;;;;;9058:214;;;;;;;;;;-1:-1:-1;9058:214:0;;;;;:::i;:::-;;:::i;5605:163::-;5682:4;5699:39;2634:10;5722:7;5731:6;5699:8;:39::i;:::-;-1:-1:-1;5756:4:0;5605:163;;;;:::o;9905:1036::-;2931:6;;-1:-1:-1;;;;;2931:6:0;2634:10;2931:22;2923:68;;;;-1:-1:-1;;;2923:68:0;;;;;;;:::i;:::-;;;;;;;;;9971:16:::1;::::0;::::1;;9970:17;9962:61;;;::::0;-1:-1:-1;;;9962:61:0;;4705:2:1;9962:61:0::1;::::0;::::1;4687:21:1::0;4744:2;4724:18;;;4717:30;4783:33;4763:18;;;4756:61;4834:18;;9962:61:0::1;4503:355:1::0;9962:61:0::1;10034:16;:23:::0;;-1:-1:-1;;10034:23:0::1;10053:4;10034:23:::0;;::::1;::::0;;;10157:34;;-1:-1:-1;;;;;;10157:34:0::1;10103:42;10157:34:::0;;::::1;::::0;;;10202:63:::1;10219:4;10103:42:::0;3758:21:::1;10202:8;:63::i;:::-;10276:15;::::0;-1:-1:-1;;;;;10276:15:0::1;:31;10315:21;10346:4;10353:24;10346:4:::0;-1:-1:-1;;;;;11652:17:0;11634:7;11652:17;;;:8;:17;;;;;;;11568:104;10353:24:::1;10379:1;::::0;2634:10;10276:139:::1;::::0;::::1;::::0;;;-1:-1:-1;;;;;;10276:139:0;;;-1:-1:-1;;;;;5222:15:1;;;10276:139:0::1;::::0;::::1;5204:34:1::0;5254:18;;;5247:34;;;;5297:18;;;5290:34;;;;5340:18;;;5333:34;5404:15;;;5383:19;;;5376:44;10399:15:0::1;5436:19:1::0;;;5429:35;5138:19;;10276:139:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;10426:22;10460:15;;;;;;;;;-1:-1:-1::0;;;;;10460:15:0::1;-1:-1:-1::0;;;;;10460:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10451:43:0::1;;10503:4;10510:15;;;;;;;;;-1:-1:-1::0;;;;;10510:15:0::1;-1:-1:-1::0;;;;;10510:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10451:83;::::0;-1:-1:-1;;;;;;10451:83:0::1;::::0;;;;;;-1:-1:-1;;;;;6272:15:1;;;10451:83:0::1;::::0;::::1;6254:34:1::0;6324:15;;6304:18;;;6297:43;6189:18;;10451:83:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10545:13;:30:::0;;-1:-1:-1;;;;;;10545:30:0::1;-1:-1:-1::0;;;;;10545:30:0;::::1;;::::0;;;;-1:-1:-1;10623:3:0::1;::::0;10604:16:::1;::::0;3758:21:::1;::::0;10604:16:::1;:::i;:::-;:22;;;;:::i;:::-;10586:15;:40:::0;10678:5:::1;10658:17;3758:21;10673:2;10658:17;:::i;:::-;:25;;;;:::i;:::-;10644:11;:39:::0;-1:-1:-1;;;;;10708:45:0;::::1;;::::0;;;:29:::1;:45;::::0;;;;;;;:52;;10756:4:::1;-1:-1:-1::0;;10708:52:0;;::::1;::::0;::::1;::::0;;;10771:34:::1;:50:::0;;;;;:57;;;;::::1;::::0;::::1;::::0;;10839:50:::1;::::0;10708:45;;10839:28:::1;:50::i;:::-;-1:-1:-1::0;;10921:12:0::1;10900:18;:33:::0;9905:1036::o;7843:346::-;2931:6;;-1:-1:-1;;;;;2931:6:0;2634:10;2931:22;2923:68;;;;-1:-1:-1;;;2923:68:0;;;;;;;:::i;:::-;7944:11:::1;;7932:8;:23;;7971:5;;;;;;;;;;;;;-1:-1:-1::0;;;7971:5:0::1;;::::0;7957:66:::1;;;;;;;;:::i;:::-;;;;;;;;;;;;;7924:100;;;;;-1:-1:-1::0;;;7924:100:0::1;;;;;;;;:::i;:::-;-1:-1:-1::0;8073:4:0::1;8054:16;3758:21;8069:1;8054:16;:::i;:::-;:23;;;;:::i;:::-;8043:8;:34;8093:5;;;;;;;;;;;;;-1:-1:-1::0;;;8093:5:0::1;;::::0;8079:68:::1;;;;;;;;:::i;:::-;;;;;;;;;;;;;8035:113;;;;;-1:-1:-1::0;;;8035:113:0::1;;;;;;;;:::i;:::-;-1:-1:-1::0;8159:11:0::1;:22:::0;7843:346::o;5774:314::-;5873:4;5890:36;5900:6;5908:9;5919:6;5890:9;:36::i;:::-;5937:121;5946:6;2634:10;5968:89;6006:6;5968:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5968:19:0;;;;;;:11;:19;;;;;;;;2634:10;5968:33;;;;;;;;;;:37;:89::i;:::-;5937:8;:121::i;:::-;-1:-1:-1;6076:4:0;5774:314;;;;;:::o;7483:354::-;2931:6;;-1:-1:-1;;;;;2931:6:0;2634:10;2931:22;2923:68;;;;-1:-1:-1;;;2923:68:0;;;;;;;:::i;:::-;7579:15:::1;;7567:8;:27;;7610:5;;;;;;;;;;;;;-1:-1:-1::0;;;7610:5:0::1;;::::0;7596:70:::1;;;;;;;;:::i;:::-;;;;;;;;;;;;;7559:108;;;;;-1:-1:-1::0;;;7559:108:0::1;;;;;;;;:::i;:::-;-1:-1:-1::0;7716:3:0::1;7697:16;3758:21;7712:1;7697:16;:::i;:::-;:22;;;;:::i;:::-;7686:8;:33;7735:5;;;;;;;;;;;;;-1:-1:-1::0;;;7735:5:0::1;;::::0;7721:70:::1;;;;;;;;:::i;:::-;;;;;;;;;;;;;7678:114;;;;;-1:-1:-1::0;;;7678:114:0::1;;;;;;;;:::i;:::-;-1:-1:-1::0;7803:15:0::1;:26:::0;7483:354::o;6094:217::-;2634:10;6184:4;6230:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;6230:34:0;;;;;;;;;;6184:4;;6200:81;;6222:7;;6230:50;;6269:10;6230:38;:50::i;3017:80::-;2931:6;;-1:-1:-1;;;;;2931:6:0;2634:10;2931:22;2923:68;;;;-1:-1:-1;;;2923:68:0;;;;;;;:::i;:::-;3092:1:::1;3075:19:::0;;-1:-1:-1;;;;;;3075:19:0::1;::::0;;3017:80::o;6592:302::-;2931:6;;-1:-1:-1;;;;;2931:6:0;2634:10;2931:22;2923:68;;;;-1:-1:-1;;;2923:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;6697:38:0;::::1;;::::0;;;:29:::1;:38;::::0;;;;;;;;;6763:5;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;6763:5:0;;::::1;::::0;6749:76;;6697:38:::1;::::0;;::::1;:50;;::::0;::::1;;;;::::0;6749:76:::1;::::0;6763:5;;6749:76:::1;;:::i;:::-;;;;;;;;;;;;;6689:137;;;;;-1:-1:-1::0;;;6689:137:0::1;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;;6837:38:0;;;::::1;;::::0;;;:29:::1;:38;::::0;;;;:49;;-1:-1:-1;;6837:49:0::1;::::0;::::1;;::::0;;;::::1;::::0;;6592:302::o;8491:294::-;2931:6;;-1:-1:-1;;;;;2931:6:0;2634:10;2931:22;2923:68;;;;-1:-1:-1;;;2923:68:0;;;;;;;:::i;:::-;8580:7:::1;;;;;;;;;;;8568:19;;:8;:19;;;;8603:5;;;;;;;;;;;;;-1:-1:-1::0;;;8603:5:0::1;;::::0;8589:62:::1;;;;;;;;:::i;:::-;;;;;;;;;;;;;8560:92;;;;;-1:-1:-1::0;;;8560:92:0::1;;;;;;;;:::i;:::-;;8683:1;8671:8;:13;;;;8700:5;;;;;;;;;;;;;-1:-1:-1::0;;;8700:5:0::1;;::::0;8686:61:::1;;;;;;;;:::i;:::-;;;;;;;;;;;;;8663:85;;;;;-1:-1:-1::0;;;8663:85:0::1;;;;;;;;:::i;:::-;-1:-1:-1::0;8759:7:0::1;:18:::0;;::::1;::::0;;::::1;;;-1:-1:-1::0;;8759:18:0;;::::1;::::0;;;::::1;::::0;;8491:294::o;6900:313::-;2931:6;;-1:-1:-1;;;;;2931:6:0;2634:10;2931:22;2923:68;;;;-1:-1:-1;;;2923:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;7010:43:0;::::1;;::::0;;;:34:::1;:43;::::0;;;;;;;;;7081:5;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;7081:5:0;;::::1;::::0;7067:72;;7010:43:::1;::::0;;::::1;:55;;::::0;::::1;;;;::::0;7067:72:::1;::::0;7081:5;;7067:72:::1;;:::i;:::-;;;;;;;;;;;;;7002:138;;;;;-1:-1:-1::0;;;7002:138:0::1;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;;7151:43:0;;;::::1;;::::0;;;:34:::1;:43;::::0;;;;:54;;-1:-1:-1;;7151:54:0::1;::::0;::::1;;::::0;;;::::1;::::0;;6900:313::o;6317:269::-;6412:4;6429:127;2634:10;6451:7;6459:96;6498:15;6459:96;;;;;;;;;;;;;;;;;2634:10;6459:25;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;6459:34:0;;;;;;;;;;;;:38;:96::i;5430:169::-;5510:4;5527:42;2634:10;5551:9;5562:6;5527:9;:42::i;8791:261::-;2931:6;;-1:-1:-1;;;;;2931:6:0;2634:10;2931:22;2923:68;;;;-1:-1:-1;;;2923:68:0;;;;;;;:::i;:::-;8895:23:::1;;8883:8;:35;;8934:5;;;;;;;;;;;;;-1:-1:-1::0;;;8934:5:0::1;;::::0;8920:78:::1;;;;;;;;:::i;:::-;;;;;;;;;;;;;8875:124;;;;;-1:-1:-1::0;;;8875:124:0::1;;;;;;;;:::i;:::-;-1:-1:-1::0;9010:23:0::1;:34:::0;8791:261::o;7219:258::-;2931:6;;-1:-1:-1;;;;;2931:6:0;2634:10;2931:22;2923:68;;;;-1:-1:-1;;;2923:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;7314:27:0;::::1;;::::0;;;:18:::1;:27;::::0;;;;;;;;;7369:5;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;7369:5:0;;::::1;::::0;7355:64;;7314:27:::1;::::0;;::::1;:39;;::::0;::::1;;;;::::0;7355:64:::1;::::0;7369:5;;7355:64:::1;;:::i;:::-;;;;;;;;;;;;;7306:114;;;;;-1:-1:-1::0;;;7306:114:0::1;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;;7431:27:0;;;::::1;;::::0;;;:18:::1;:27;::::0;;;;:38;;-1:-1:-1;;7431:38:0::1;::::0;::::1;;::::0;;;::::1;::::0;;7219:258::o;8195:290::-;2931:6;;-1:-1:-1;;;;;2931:6:0;2634:10;2931:22;2923:68;;;;-1:-1:-1;;;2923:68:0;;;;;;;:::i;:::-;8283:6:::1;::::0;8305:5:::1;::::0;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;8305:5:0::1;::::0;;::::1;::::0;;;;8291:62;;8283:6:::1;8271:18:::0;;::::1;8283:6:::0;::::1;8271:18:::0;;;::::1;;::::0;8291:62:::1;::::0;::::1;;:::i;:::-;;;;;;;;;;;;;8263:91;;;;;-1:-1:-1::0;;;8263:91:0::1;;;;;;;;:::i;:::-;;8385:1;8373:8;:13;;;;8402:5;;;;;;;;;;;;;-1:-1:-1::0;;;8402:5:0::1;;::::0;8388:60:::1;;;;;;;;:::i;:::-;;;;;;;;;;;;;8365:84;;;;;-1:-1:-1::0;;;8365:84:0::1;;;;;;;;:::i;:::-;-1:-1:-1::0;8460:6:0::1;:17:::0;;-1:-1:-1;;8460:17:0::1;;::::0;;;::::1;::::0;;;::::1;::::0;;8195:290::o;9278:329::-;2931:6;;-1:-1:-1;;;;;2931:6:0;2634:10;2931:22;2923:68;;;;-1:-1:-1;;;2923:68:0;;;;;;;:::i;:::-;9363:1:::1;9339:21;:25;9380:5;;;;;;;;;;;;;-1:-1:-1::0;;;9380:5:0::1;;::::0;9366:65:::1;;;;;;;;:::i;:::-;;;;;;;;;;;;;9331:101;;;;;-1:-1:-1::0;;;9331:101:0::1;;;;;;;;:::i;:::-;-1:-1:-1::0;9460:21:0::1;9443:14;9518:7;2858::::0;2876:6;-1:-1:-1;;;;;2876:6:0;;2820:65;9518:7:::1;-1:-1:-1::0;;;;;9510:21:0::1;9540:6;9510:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9492:59;;;9566:7;9562:38;;;9581:16;::::0;9590:6;;9581:16:::1;::::0;;;::::1;9562:38;9320:287;;9278:329::o:0;3103:193::-;2931:6;;-1:-1:-1;;;;;2931:6:0;2634:10;2931:22;2923:68;;;;-1:-1:-1;;;2923:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3194:22:0;::::1;3186:74;;;::::0;-1:-1:-1;;;3186:74:0;;14105:2:1;3186:74:0::1;::::0;::::1;14087:21:1::0;14144:2;14124:18;;;14117:30;14183:34;14163:18;;;14156:62;-1:-1:-1;;;14234:18:1;;;14227:37;14281:19;;3186:74:0::1;13903:403:1::0;3186:74:0::1;3271:6;:17:::0;;-1:-1:-1;;;;;;3271:17:0::1;-1:-1:-1::0;;;;;3271:17:0;;;::::1;::::0;;;::::1;::::0;;3103:193::o;9058:214::-;2931:6;;-1:-1:-1;;;;;2931:6:0;2634:10;2931:22;2923:68;;;;-1:-1:-1;;;2923:68:0;;;;;;;:::i;:::-;9155:9:::1;;;;;;;;;-1:-1:-1::0;;;;;9155:9:0::1;-1:-1:-1::0;;;;;9141:23:0::1;:10;-1:-1:-1::0;;;;;9141:23:0::1;;;9180:5;;;;;;;;;;;;;-1:-1:-1::0;;;9180:5:0::1;;::::0;9166:64:::1;;;;;;;;:::i;:::-;;;;;;;;;;;;;9133:98;;;;;-1:-1:-1::0;;;9133:98:0::1;;;;;;;;:::i;:::-;-1:-1:-1::0;9242:9:0::1;:22:::0;;-1:-1:-1;;;;;9242:22:0;;::::1;::::0;::::1;-1:-1:-1::0;;;;;;9242:22:0;;::::1;::::0;;;::::1;::::0;;9058:214::o;9613:286::-;-1:-1:-1;;;;;9705:19:0;;9697:68;;;;-1:-1:-1;;;9697:68:0;;15034:2:1;9697:68:0;;;15016:21:1;15073:2;15053:18;;;15046:30;15112:34;15092:18;;;15085:62;-1:-1:-1;;;15163:18:1;;;15156:34;15207:19;;9697:68:0;14832:400:1;9697:68:0;-1:-1:-1;;;;;9784:21:0;;9776:68;;;;-1:-1:-1;;;9776:68:0;;15439:2:1;9776:68:0;;;15421:21:1;15478:2;15458:18;;;15451:30;15517:34;15497:18;;;15490:62;-1:-1:-1;;;15568:18:1;;;15561:32;15610:19;;9776:68:0;15237:398:1;9776:68:0;-1:-1:-1;;;;;9855:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;9613:286::o;10947:275::-;-1:-1:-1;;;;;11038:31:0;;;;;;:25;:31;;;;;;;;;;11094:5;;;;;;;;;;-1:-1:-1;;;11094:5:0;;;;11080:83;;11038:31;;;;:40;;;;;;;;11080:83;;11094:5;11080:83;;:::i;:::-;;;;;;;;;;;;;11030:134;;;;;-1:-1:-1;;;11030:134:0;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;11175:31:0;;;;;;;;:25;:31;;;;;:39;;-1:-1:-1;;11175:39:0;;;;;;;;;;10947:275::o;11818:2363::-;11977:1;-1:-1:-1;;;;;11961:18:0;:4;-1:-1:-1;;;;;11961:18:0;;;11995:5;;;;;;;;;;;;;-1:-1:-1;;;11995:5:0;;;11981:64;;;;;;;;:::i;:::-;;;;;;;;;;;;;11953:93;;;;;-1:-1:-1;;;11953:93:0;;;;;;;;:::i;:::-;;12079:1;-1:-1:-1;;;;;12065:16:0;:2;-1:-1:-1;;;;;12065:16:0;;;12097:5;;;;;;;;;;;;;-1:-1:-1;;;12097:5:0;;;12083:62;;;;;;;;:::i;:::-;;;;;;;;;;;;;12057:89;;;;;-1:-1:-1;;;12057:89:0;;;;;;;;:::i;:::-;;12174:1;12165:6;:10;12191:5;;;;;;;;;;;;;-1:-1:-1;;;12191:5:0;;;12177:68;;;;;;;;:::i;:::-;;;;;;;;;;;;;12157:89;;;;;-1:-1:-1;;;12157:89:0;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;11652:17:0;;11634:7;11652:17;;;:8;:17;;;;;;12265:6;:25;;12306:5;;;;;;;;;;;;;-1:-1:-1;;;12306:5:0;;;12292:60;;;;;;;;:::i;:::-;;;;;;;;;;;;;12257:96;;;;;-1:-1:-1;;;12257:96:0;;;;;;;;:::i;:::-;;12407:1;12384:18;;12369:12;:33;;;;:::i;:::-;12368:40;12364:91;;12438:4;12425:18;;12364:91;12486:13;;-1:-1:-1;;;;;12470:30:0;;;12486:13;;12470:30;:73;;;;-1:-1:-1;;;;;;12505:38:0;;;;;;:34;:38;;;;;;;;12504:39;12470:73;12469:171;;;-1:-1:-1;12580:13:0;;-1:-1:-1;;;;;12566:28:0;;;12580:13;;12566:28;:73;;;;-1:-1:-1;;;;;;12599:40:0;;;;;;:34;:40;;;;;;;;12598:41;12566:73;12465:302;;;12675:11;;12665:6;:21;;12702:5;;;;;;;;;;;;;-1:-1:-1;;;12702:5:0;;;12688:66;;;;;;;;:::i;:::-;;;;;;;;;;;;;12657:98;;;;;-1:-1:-1;;;12657:98:0;;;;;;;;:::i;:::-;;12465:302;-1:-1:-1;;;;;12782:33:0;;;;;;:29;:33;;;;;;;;12777:198;;12868:15;;12857:6;12841:13;12851:2;-1:-1:-1;;;;;11652:17:0;11634:7;11652:17;;;:8;:17;;;;;;;11568:104;12841:13;:22;;;;:::i;:::-;12840:43;;12899:5;;;;;;;;;;;;;-1:-1:-1;;;12899:5:0;;;12885:77;;;;;;;;:::i;:::-;;;;;;;;;;;;;12832:131;;;;;-1:-1:-1;;;12832:131:0;;;;;;;;:::i;:::-;;12777:198;-1:-1:-1;;;;;12989:24:0;;;;;;:18;:24;;;;;;;;;:50;;-1:-1:-1;;;;;;13017:22:0;;;;;;:18;:22;;;;;;;;12989:50;:75;;;-1:-1:-1;13052:7:0;;13043:16;;13052:7;;;;;;;13043:6;:16;:::i;:::-;:21;;;12989:75;12985:1189;;;-1:-1:-1;;;;;13081:14:0;;;;;;:8;:14;;;;;:24;;13099:6;;13081:14;:24;;13099:6;;13081:24;:::i;:::-;;;;-1:-1:-1;;;;;;;13120:12:0;;;;;;:8;:12;;;;;:22;;13136:6;;13120:12;:22;;13136:6;;13120:22;:::i;:::-;;;;;;;;13177:2;-1:-1:-1;;;;;13162:26:0;13171:4;-1:-1:-1;;;;;13162:26:0;-1:-1:-1;;;;;;;;;;;13181:6:0;13162:26;;;;1682:25:1;;1670:2;1655:18;;1536:177;13162:26:0;;;;;;;;11818:2363;;;:::o;12985:1189::-;-1:-1:-1;;;;;13221:14:0;;;;;;:8;:14;;;;;:24;;13239:6;;13221:14;:24;;13239:6;;13221:24;:::i;:::-;;;;-1:-1:-1;;13264:7:0;;;;;;;:11;13260:178;;13332:7;;13342:3;;13323:16;;13332:7;;;;;13323:6;:16;:::i;:::-;:22;;;;:::i;:::-;4346:42;13296:23;;;;:8;:23;;;:49;;:23;;;:49;;;;;:::i;:::-;;;;-1:-1:-1;;13408:7:0;;4346:42;;-1:-1:-1;;;;;13369:53:0;;;-1:-1:-1;;;;;;;;;;;13369:53:0;13418:3;;13399:16;;13408:7;;;;;13399:6;:16;:::i;:::-;:22;;;;:::i;:::-;13369:53;;1682:25:1;;;1670:2;1655:18;13369:53:0;;;;;;;13260:178;13456:6;;;;:10;13452:552;;13523:6;;13532:3;;13514:15;;13523:6;;13514;:15;:::i;:::-;:21;;;;:::i;:::-;13504:4;13487:23;;;;:8;:23;;;;;:48;;:23;;;:48;;;;;:::i;:::-;;;;-1:-1:-1;;13598:6:0;;13582:4;;-1:-1:-1;;;;;13559:52:0;;;-1:-1:-1;;;;;;;;;;;13559:52:0;13607:3;;13589:15;;13598:6;;13589;:15;:::i;:::-;:21;;;;:::i;:::-;13559:52;;1682:25:1;;;1670:2;1655:18;13559:52:0;;;;;;;13661:23;;13652:4;11634:7;11652:17;;;:8;:17;;;;;;13634:50;:107;;;;-1:-1:-1;13727:13:0;;-1:-1:-1;;;;;13713:28:0;;;13727:13;;13713:28;13634:107;:177;;;;-1:-1:-1;;;;;;13771:40:0;;;;;;:34;:40;;;;;;;;13770:41;13634:177;13630:359;;;13889:4;11634:7;11652:17;;;:8;:17;;;;;;13853:43;;:17;:43::i;:::-;13927:9;;13919:50;;-1:-1:-1;;;;;13927:9:0;;;;;;;;;13947:21;13919:50;;;;;;;;;13947:21;13927:9;13919:50;;;;;;;;;;;;;;;;;;;;;13630:359;14063:7;;14074:3;;14054:16;;14063:7;;;;;;;14054:6;:16;:::i;:::-;14044:27;;;;:6;:27;:::i;:::-;:33;;;;:::i;:::-;14034:44;;:6;:44;:::i;:::-;-1:-1:-1;;;;;14018:12:0;;;;;;:8;:12;;;;;:60;;:12;;;:60;;;;;:::i;:::-;;;;-1:-1:-1;;14146:7:0;;-1:-1:-1;;;;;14098:64:0;;;;;;;;-1:-1:-1;;;;;;;;;;;14098:64:0;14157:3;;14137:16;;14146:7;;;;;;;14137:6;:16;:::i;:::-;14127:27;;;;:6;:27;:::i;:::-;:33;;;;:::i;:::-;14117:44;;:6;:44;:::i;:::-;14098:64;;1682:25:1;;;1670:2;1655:18;14098:64:0;1536:177:1;2332:190:0;2418:7;2454:12;2446:6;;;;2438:29;;;;-1:-1:-1;;;2438:29:0;;;;;;;;:::i;:::-;-1:-1:-1;2478:9:0;2490:5;2494:1;2490;:5;:::i;:::-;2478:17;2332:190;-1:-1:-1;;;;;2332:190:0:o;2147:179::-;2205:7;;2237:5;2241:1;2237;:5;:::i;:::-;2225:17;;2266:1;2261;:6;;2253:46;;;;-1:-1:-1;;;2253:46:0;;19993:2:1;2253:46:0;;;19975:21:1;20032:2;20012:18;;;20005:30;20071:29;20051:18;;;20044:57;20118:18;;2253:46:0;19791:351:1;2253:46:0;2317:1;2147:179;-1:-1:-1;;;2147:179:0:o;14187:396::-;14278:16;;;14292:1;14278:16;;;;;;;;14254:21;;14278:16;;;;;;;;;;-1:-1:-1;14278:16:0;14254:40;;14323:4;14305;14310:1;14305:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;14305:23:0;;;:7;;;;;;;;;;:23;;;;14349:15;;:22;;;-1:-1:-1;;;14349:22:0;;;;:15;;;;;:20;;:22;;;;;14305:7;;14349:22;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14339:4;14344:1;14339:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;14339:32:0;;;:7;;;;;;;;;:32;14414:15;;14382:62;;14399:4;;14414:15;14432:11;14382:8;:62::i;:::-;14455:15;;:120;;-1:-1:-1;;;14455:120:0;;-1:-1:-1;;;;;14455:15:0;;;;:66;;:120;;14522:11;;14455:15;;14538:4;;14552;;14559:15;;14455:120;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14243:340;14187:396;:::o;14:258:1:-;86:1;96:113;110:6;107:1;104:13;96:113;;;186:11;;;180:18;167:11;;;160:39;132:2;125:10;96:113;;;227:6;224:1;221:13;218:48;;;262:1;253:6;248:3;244:16;237:27;218:48;;14:258;;;:::o;277:383::-;426:2;415:9;408:21;389:4;458:6;452:13;501:6;496:2;485:9;481:18;474:34;517:66;576:6;571:2;560:9;556:18;551:2;543:6;539:15;517:66;:::i;:::-;644:2;623:15;-1:-1:-1;;619:29:1;604:45;;;;651:2;600:54;;277:383;-1:-1:-1;;277:383:1:o;665:131::-;-1:-1:-1;;;;;740:31:1;;730:42;;720:70;;786:1;783;776:12;720:70;665:131;:::o;801:315::-;869:6;877;930:2;918:9;909:7;905:23;901:32;898:52;;;946:1;943;936:12;898:52;985:9;972:23;1004:31;1029:5;1004:31;:::i;:::-;1054:5;1106:2;1091:18;;;;1078:32;;-1:-1:-1;;;801:315:1:o;1718:180::-;1777:6;1830:2;1818:9;1809:7;1805:23;1801:32;1798:52;;;1846:1;1843;1836:12;1798:52;-1:-1:-1;1869:23:1;;1718:180;-1:-1:-1;1718:180:1:o;1903:456::-;1980:6;1988;1996;2049:2;2037:9;2028:7;2024:23;2020:32;2017:52;;;2065:1;2062;2055:12;2017:52;2104:9;2091:23;2123:31;2148:5;2123:31;:::i;:::-;2173:5;-1:-1:-1;2230:2:1;2215:18;;2202:32;2243:33;2202:32;2243:33;:::i;:::-;1903:456;;2295:7;;-1:-1:-1;;;2349:2:1;2334:18;;;;2321:32;;1903:456::o;2761:247::-;2820:6;2873:2;2861:9;2852:7;2848:23;2844:32;2841:52;;;2889:1;2886;2879:12;2841:52;2928:9;2915:23;2947:31;2972:5;2947:31;:::i;3013:416::-;3078:6;3086;3139:2;3127:9;3118:7;3114:23;3110:32;3107:52;;;3155:1;3152;3145:12;3107:52;3194:9;3181:23;3213:31;3238:5;3213:31;:::i;:::-;3263:5;-1:-1:-1;3320:2:1;3305:18;;3292:32;3362:15;;3355:23;3343:36;;3333:64;;3393:1;3390;3383:12;3333:64;3416:7;3406:17;;;3013:416;;;;;:::o;3434:269::-;3491:6;3544:2;3532:9;3523:7;3519:23;3515:32;3512:52;;;3560:1;3557;3550:12;3512:52;3599:9;3586:23;3649:4;3642:5;3638:16;3631:5;3628:27;3618:55;;3669:1;3666;3659:12;3708:388;3776:6;3784;3837:2;3825:9;3816:7;3812:23;3808:32;3805:52;;;3853:1;3850;3843:12;3805:52;3892:9;3879:23;3911:31;3936:5;3911:31;:::i;:::-;3961:5;-1:-1:-1;4018:2:1;4003:18;;3990:32;4031:33;3990:32;4031:33;:::i;4101:397::-;4303:2;4285:21;;;4342:2;4322:18;;;4315:30;4381:34;4376:2;4361:18;;4354:62;-1:-1:-1;;;4447:2:1;4432:18;;4425:31;4488:3;4473:19;;4101:397::o;5475:306::-;5563:6;5571;5579;5632:2;5620:9;5611:7;5607:23;5603:32;5600:52;;;5648:1;5645;5638:12;5600:52;5677:9;5671:16;5661:26;;5727:2;5716:9;5712:18;5706:25;5696:35;;5771:2;5760:9;5756:18;5750:25;5740:35;;5475:306;;;;;:::o;5786:251::-;5856:6;5909:2;5897:9;5888:7;5884:23;5880:32;5877:52;;;5925:1;5922;5915:12;5877:52;5957:9;5951:16;5976:31;6001:5;5976:31;:::i;6351:127::-;6412:10;6407:3;6403:20;6400:1;6393:31;6443:4;6440:1;6433:15;6467:4;6464:1;6457:15;6483:168;6523:7;6589:1;6585;6581:6;6577:14;6574:1;6571:21;6566:1;6559:9;6552:17;6548:45;6545:71;;;6596:18;;:::i;:::-;-1:-1:-1;6636:9:1;;6483:168::o;6656:217::-;6696:1;6722;6712:132;;6766:10;6761:3;6757:20;6754:1;6747:31;6801:4;6798:1;6791:15;6829:4;6826:1;6819:15;6712:132;-1:-1:-1;6858:9:1;;6656:217::o;6878:518::-;7110:3;7148:6;7142:13;7164:53;7210:6;7205:3;7198:4;7190:6;7186:17;7164:53;:::i;:::-;7278:34;7239:16;;7264:49;;;-1:-1:-1;;;;7340:4:1;7329:16;;7322:38;7387:2;7376:14;;6878:518;-1:-1:-1;6878:518:1:o;7401:520::-;7633:3;7671:6;7665:13;7687:53;7733:6;7728:3;7721:4;7713:6;7709:17;7687:53;:::i;:::-;7801:34;7762:16;;7787:49;;;-1:-1:-1;;;;7863:4:1;7852:16;;7845:40;7912:2;7901:14;;7401:520;-1:-1:-1;7401:520:1:o;7926:522::-;8158:3;8196:6;8190:13;8212:53;8258:6;8253:3;8246:4;8238:6;8234:17;8212:53;:::i;:::-;8326:34;8287:16;;8312:49;;;-1:-1:-1;;;;8388:4:1;8377:16;;8370:42;8439:2;8428:14;;7926:522;-1:-1:-1;7926:522:1:o;8453:::-;8685:3;8723:6;8717:13;8739:53;8785:6;8780:3;8773:4;8765:6;8761:17;8739:53;:::i;:::-;8853:34;8814:16;;8839:49;;;-1:-1:-1;;;;8915:4:1;8904:16;;8897:42;8966:2;8955:14;;8453:522;-1:-1:-1;8453:522:1:o;8980:528::-;9212:3;9250:6;9244:13;9266:53;9312:6;9307:3;9300:4;9292:6;9288:17;9266:53;:::i;:::-;9380:34;9341:16;;9366:49;;;-1:-1:-1;;;;9442:4:1;9431:16;;9424:48;9499:2;9488:14;;8980:528;-1:-1:-1;8980:528:1:o;9513:514::-;9745:3;9783:6;9777:13;9799:53;9845:6;9840:3;9833:4;9825:6;9821:17;9799:53;:::i;:::-;9913:34;9874:16;;9899:49;;;-1:-1:-1;;;;9975:4:1;9964:16;;9957:34;10018:2;10007:14;;9513:514;-1:-1:-1;9513:514:1:o;10032:513::-;10264:3;10302:6;10296:13;10318:53;10364:6;10359:3;10352:4;10344:6;10340:17;10318:53;:::i;:::-;10432:34;10393:16;;10418:49;;;-1:-1:-1;;;;10494:4:1;10483:16;;10476:33;10536:2;10525:14;;10032:513;-1:-1:-1;10032:513:1:o;10550:524::-;10782:3;10820:6;10814:13;10836:53;10882:6;10877:3;10870:4;10862:6;10858:17;10836:53;:::i;:::-;10950:34;10911:16;;10936:49;;;-1:-1:-1;;;;11012:4:1;11001:16;;10994:44;11065:2;11054:14;;10550:524;-1:-1:-1;10550:524:1:o;11079:530::-;11311:3;11349:6;11343:13;11365:53;11411:6;11406:3;11399:4;11391:6;11387:17;11365:53;:::i;:::-;11479:34;11440:16;;11465:49;;;-1:-1:-1;;;;11541:4:1;11530:16;;11523:50;11600:2;11589:14;;11079:530;-1:-1:-1;11079:530:1:o;11614:516::-;11846:3;11884:6;11878:13;11900:53;11946:6;11941:3;11934:4;11926:6;11922:17;11900:53;:::i;:::-;12014:34;11975:16;;12000:49;;;-1:-1:-1;;;;12076:4:1;12065:16;;12058:36;12121:2;12110:14;;11614:516;-1:-1:-1;11614:516:1:o;12135:514::-;12367:3;12405:6;12399:13;12421:53;12467:6;12462:3;12455:4;12447:6;12443:17;12421:53;:::i;:::-;12535:34;12496:16;;12521:49;;;-1:-1:-1;;;;12597:4:1;12586:16;;12579:34;12640:2;12629:14;;12135:514;-1:-1:-1;12135:514:1:o;12654:512::-;12886:3;12924:6;12918:13;12940:53;12986:6;12981:3;12974:4;12966:6;12962:17;12940:53;:::i;:::-;13054:34;13015:16;;13040:49;;;-1:-1:-1;;;;13116:4:1;13105:16;;13098:32;13157:2;13146:14;;12654:512;-1:-1:-1;12654:512:1:o;13171:517::-;13403:3;13441:6;13435:13;13457:53;13503:6;13498:3;13491:4;13483:6;13479:17;13457:53;:::i;:::-;13571:34;13532:16;;13557:49;;;-1:-1:-1;;;;13633:4:1;13622:16;;13615:37;13679:2;13668:14;;13171:517;-1:-1:-1;13171:517:1:o;14311:516::-;14543:3;14581:6;14575:13;14597:53;14643:6;14638:3;14631:4;14623:6;14619:17;14597:53;:::i;:::-;14711:34;14672:16;;14697:49;;;-1:-1:-1;;;;14773:4:1;14762:16;;14755:36;14818:2;14807:14;;14311:516;-1:-1:-1;14311:516:1:o;15640:535::-;15872:3;15910:6;15904:13;15926:53;15972:6;15967:3;15960:4;15952:6;15948:17;15926:53;:::i;:::-;16040:34;16001:16;;16026:49;;;-1:-1:-1;16109:29:1;16102:4;16091:16;;16084:55;16166:2;16155:14;;15640:535;-1:-1:-1;15640:535:1:o;16180:516::-;16412:3;16450:6;16444:13;16466:53;16512:6;16507:3;16500:4;16492:6;16488:17;16466:53;:::i;:::-;16580:34;16541:16;;16566:49;;;-1:-1:-1;;;;16642:4:1;16631:16;;16624:36;16687:2;16676:14;;16180:516;-1:-1:-1;16180:516:1:o;16701:514::-;16933:3;16971:6;16965:13;16987:53;17033:6;17028:3;17021:4;17013:6;17009:17;16987:53;:::i;:::-;17101:34;17062:16;;17087:49;;;-1:-1:-1;;;;17163:4:1;17152:16;;17145:34;17206:2;17195:14;;16701:514;-1:-1:-1;16701:514:1:o;17220:520::-;17452:3;17490:6;17484:13;17506:53;17552:6;17547:3;17540:4;17532:6;17528:17;17506:53;:::i;:::-;17620:34;17581:16;;17606:49;;;-1:-1:-1;;;;17682:4:1;17671:16;;17664:40;17731:2;17720:14;;17220:520;-1:-1:-1;17220:520:1:o;17745:512::-;17977:3;18015:6;18009:13;18031:53;18077:6;18072:3;18065:4;18057:6;18053:17;18031:53;:::i;:::-;18145:34;18106:16;;18131:49;;;-1:-1:-1;;;;18207:4:1;18196:16;;18189:32;18248:2;18237:14;;17745:512;-1:-1:-1;17745:512:1:o;18262:125::-;18302:4;18330:1;18327;18324:8;18321:34;;;18335:18;;:::i;:::-;-1:-1:-1;18372:9:1;;18262:125::o;18392:518::-;18624:3;18662:6;18656:13;18678:53;18724:6;18719:3;18712:4;18704:6;18700:17;18678:53;:::i;:::-;18792:34;18753:16;;18778:49;;;-1:-1:-1;;;;18854:4:1;18843:16;;18836:38;18901:2;18890:14;;18392:518;-1:-1:-1;18392:518:1:o;18915:128::-;18955:3;18986:1;18982:6;18979:1;18976:13;18973:39;;;18992:18;;:::i;:::-;-1:-1:-1;19028:9:1;;18915:128::o;19048:529::-;19280:3;19318:6;19312:13;19334:53;19380:6;19375:3;19368:4;19360:6;19356:17;19334:53;:::i;:::-;19448:34;19409:16;;19434:49;;;-1:-1:-1;;;;19510:4:1;19499:16;;19492:49;19568:2;19557:14;;19048:529;-1:-1:-1;19048:529:1:o;19582:204::-;19620:3;19656:4;19653:1;19649:12;19688:4;19685:1;19681:12;19723:3;19717:4;19713:14;19708:3;19705:23;19702:49;;;19731:18;;:::i;:::-;19767:13;;19582:204;-1:-1:-1;;;19582:204:1:o;20279:127::-;20340:10;20335:3;20331:20;20328:1;20321:31;20371:4;20368:1;20361:15;20395:4;20392:1;20385:15;20411:980;20673:4;20721:3;20710:9;20706:19;20752:6;20741:9;20734:25;20778:2;20816:6;20811:2;20800:9;20796:18;20789:34;20859:3;20854:2;20843:9;20839:18;20832:31;20883:6;20918;20912:13;20949:6;20941;20934:22;20987:3;20976:9;20972:19;20965:26;;21026:2;21018:6;21014:15;21000:29;;21047:1;21057:195;21071:6;21068:1;21065:13;21057:195;;;21136:13;;-1:-1:-1;;;;;21132:39:1;21120:52;;21227:15;;;;21192:12;;;;21168:1;21086:9;21057:195;;;-1:-1:-1;;;;;;;21308:32:1;;;;21303:2;21288:18;;21281:60;-1:-1:-1;;;21372:3:1;21357:19;21350:35;21269:3;20411:980;-1:-1:-1;;;20411:980:1:o

Swarm Source

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