ETH Price: $3,467.22 (+2.16%)
Gas: 11 Gwei

Token

Past Project ($PAST)
 

Overview

Max Total Supply

1,000,000,000,000 $PAST

Holders

440

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Filtered by Token Holder
t3rnar8.eth
Balance
88,826,008.532898299 $PAST

Value
$0.00
0x3e528ad9f3975f247243336d28596be4965b3c59
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

THE PAST PROJECT connects users' most nostalgic memories with contemporary blockchain technology.

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
PastProject

Compiler Version
v0.8.13+commit.abaa5c0e

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-03-20
*/

/**
 * 
 * SPDX-License-Identifier: UNLICENSED 
 * 
*/

pragma solidity ^0.8.4;

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

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

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;
        return c;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if(a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }

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

    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }

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

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

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

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

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

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

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

}  

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

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

contract PastProject is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _rOwned;
    mapping (address => uint256) private _tOwned;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private _bots;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 1e12 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    
    string private constant _name = unicode"Past Project";
    string private constant _symbol = unicode"$PAST";
    
    uint8 private constant _decimals = 9;
    uint256 private _taxFee = 2;
    uint256 private _teamFee = 6;
    uint256 private _previousTaxFee = _taxFee;
    uint256 private _previousteamFee = _teamFee;
    address payable private _MultiSig;
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen = false;
    bool private _noTaxMode = false;
    bool private inSwap = false;
    uint256 private walletLimitDuration;
    struct User {
        uint256 buyCD;
        bool exists;
    }

    event MaxBuyAmountUpdated(uint _maxBuyAmount);
    event CooldownEnabledUpdated(bool _cooldown);
    event FeeMultiplierUpdated(uint _multiplier);
    event FeeRateUpdated(uint _rate);

    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
        constructor (address payable MultiSig) {
        _MultiSig = MultiSig;
        _rOwned[_msgSender()] = _rTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_MultiSig] = true;
        emit Transfer(address(0), _msgSender(), _tTotal);
    }

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

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

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

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

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

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

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

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

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

    function tokenFromReflection(uint256 rAmount) private view returns(uint256) {
        require(rAmount <= _rTotal, "Amount must be less than total reflections");
        uint256 currentRate =  _getRate();
        return rAmount.div(currentRate);
    }

    function removeAllFee() private {
        if(_taxFee == 0 && _teamFee == 0) return;
        _previousTaxFee = _taxFee;
        _previousteamFee = _teamFee;
        _taxFee = 0;
        _teamFee = 0;
    }
    
    function restoreAllFee() private {
        _taxFee = _previousTaxFee;
        _teamFee = _previousteamFee;
    }

    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }
    
    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");

        if(from != owner() && to != owner()) {
            
            require(!_bots[from] && !_bots[to]);
            
            if(from == uniswapV2Pair && to != address(uniswapV2Router) && !_isExcludedFromFee[to]) {
                require(tradingOpen, "Trading not yet enabled.");
                
                if (walletLimitDuration > block.timestamp) {
                    uint walletBalance = balanceOf(address(to));
                    require(amount.add(walletBalance) <= _tTotal.mul(2).div(100));
                }
            }
            uint256 contractTokenBalance = balanceOf(address(this));

            if(!inSwap && from != uniswapV2Pair && tradingOpen) {
                if(contractTokenBalance > 0) {
                    if(contractTokenBalance > balanceOf(uniswapV2Pair).mul(5).div(100)) {
                        contractTokenBalance = balanceOf(uniswapV2Pair).mul(5).div(100);
                    }
                    swapTokensForEth(contractTokenBalance);
                }
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }
        bool takeFee = true;

        if(_isExcludedFromFee[from] || _isExcludedFromFee[to] || _noTaxMode){
            takeFee = false;
        }
        
        _tokenTransfer(from,to,amount,takeFee);
    }

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }
        
    function sendETHToFee(uint256 amount) private {
        _MultiSig.transfer(amount);
    }
    
    function _tokenTransfer(address sender, address recipient, uint256 amount, bool takeFee) private {
        if(!takeFee)
            removeAllFee();
        _transferStandard(sender, recipient, amount);
        if(!takeFee)
            restoreAllFee();
    }

    function _transferStandard(address sender, address recipient, uint256 tAmount) private {
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); 

        _takeTeam(tTeam);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _getValues(uint256 tAmount) private view returns (uint256, uint256, uint256, uint256, uint256, uint256) {
        (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getTValues(tAmount, _taxFee, _teamFee);
        uint256 currentRate =  _getRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, tTeam, currentRate);
        return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam);
    }

    function _getTValues(uint256 tAmount, uint256 taxFee, uint256 TeamFee) private pure returns (uint256, uint256, uint256) {
        uint256 tFee = tAmount.mul(taxFee).div(100);
        uint256 tTeam = tAmount.mul(TeamFee).div(100);
        uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam);
        return (tTransferAmount, tFee, tTeam);
    }

    function _getRate() private view returns(uint256) {
        (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
        return rSupply.div(tSupply);
    }

    function _getCurrentSupply() private view returns(uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;
        if(rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
        return (rSupply, tSupply);
    }

    function _getRValues(uint256 tAmount, uint256 tFee, uint256 tTeam, uint256 currentRate) private pure returns (uint256, uint256, uint256) {
        uint256 rAmount = tAmount.mul(currentRate);
        uint256 rFee = tFee.mul(currentRate);
        uint256 rTeam = tTeam.mul(currentRate);
        uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam);
        return (rAmount, rTransferAmount, rFee);
    }

    function _takeTeam(uint256 tTeam) private {
        uint256 currentRate =  _getRate();
        uint256 rTeam = tTeam.mul(currentRate);

        _rOwned[address(this)] = _rOwned[address(this)].add(rTeam);
    }

    function _reflectFee(uint256 rFee, uint256 tFee) private {
        _rTotal = _rTotal.sub(rFee);
        _tFeeTotal = _tFeeTotal.add(tFee);
    }

    receive() external payable {}
    
    function openTrading() external onlyOwner {
        require(!tradingOpen,"trading is already open");
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
        tradingOpen = true;
        walletLimitDuration = block.timestamp + (60 minutes);
    }
    
    function excludeFromFee (address payable ad) external {
        require(_msgSender() == _MultiSig);
        _isExcludedFromFee[ad] = true;
    }
    
    function includeToFee (address payable ad) external {
        require(_msgSender() == _MultiSig);
        _isExcludedFromFee[ad] = false;
    }

    function setMarketingWallet (address payable MultiSig) external {
        require(_msgSender() == _MultiSig);
        _isExcludedFromFee[_MultiSig] = false;
        _MultiSig = MultiSig;
        _isExcludedFromFee[MultiSig] = true;
    }
    
    function setNoTaxMode(bool onoff) external {
        require(_msgSender() == _MultiSig);
        _noTaxMode = onoff;
    }
    
    function setTeamFee(uint256 team) external {
        require(_msgSender() == _MultiSig);
        require(team <= 7);
        _teamFee = team;
    }
        
    function setTaxFee(uint256 tax) external {
        require(_msgSender() == _MultiSig);
        require(tax <= 1);
        _taxFee = tax;
    }
    
    function setBots(address[] memory bots_) public onlyOwner {
        for (uint i = 0; i < bots_.length; i++) {
            if (bots_[i] != uniswapV2Pair && bots_[i] != address(uniswapV2Router)) {
                _bots[bots_[i]] = true;
            }
        }
    }
    
    function delBot(address notbot) public  {
        require(_msgSender() == _MultiSig);
        _bots[notbot] = false;
    }
    
    function isBot(address ad) public view returns (bool) {
        return _bots[ad];
    }
    
    function manualswap() external {
        require(_msgSender() == _MultiSig);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }
    
    function manualsend() external {
        require(_msgSender() == _MultiSig);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }

    function thisBalance() public view returns (uint) {
        return balanceOf(address(this));
    }

    function amountInPool() public view returns (uint) {
        return balanceOf(uniswapV2Pair);
    }

    function multiSendTokens(address[] memory accounts, uint256[] memory amounts) public onlyOwner {
        require(accounts.length == amounts.length, "Lengths do not match.");
        for (uint8 i = 0; i < accounts.length; i++) {
            require(balanceOf(msg.sender) >= amounts[i]);
            _transfer(msg.sender, accounts[i], amounts[i]*10**_decimals);
        }
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address payable","name":"MultiSig","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"_cooldown","type":"bool"}],"name":"CooldownEnabledUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_multiplier","type":"uint256"}],"name":"FeeMultiplierUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_rate","type":"uint256"}],"name":"FeeRateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxBuyAmount","type":"uint256"}],"name":"MaxBuyAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"amountInPool","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"notbot","type":"address"}],"name":"delBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"ad","type":"address"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"ad","type":"address"}],"name":"includeToFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"ad","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"multiSendTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"setBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"MultiSig","type":"address"}],"name":"setMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"onoff","type":"bool"}],"name":"setNoTaxMode","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tax","type":"uint256"}],"name":"setTaxFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"team","type":"uint256"}],"name":"setTeamFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"thisBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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"},{"stateMutability":"payable","type":"receive"}]

60806040526200001b683635c9adc5dea00000600019620001f3565b620000299060001962000216565b600755600260098190556006600a819055600b91909155600c55600f805462ffffff60a01b191690553480156200005f57600080fd5b50604051620023893803806200238983398101604081905262000082916200023c565b600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600d80546001600160a01b0319166001600160a01b03831617905560075460026000620000ed3390565b6001600160a01b03166001600160a01b031681526020019081526020016000208190555060016005600062000127620001e460201b60201c565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff199687161790553081526005909352818320805485166001908117909155600d54909116835291208054909216179055620001863390565b6001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef683635c9adc5dea00000604051620001d591815260200190565b60405180910390a3506200026e565b6000546001600160a01b031690565b6000826200021157634e487b7160e01b600052601260045260246000fd5b500690565b6000828210156200023757634e487b7160e01b600052601160045260246000fd5b500390565b6000602082840312156200024f57600080fd5b81516001600160a01b03811681146200026757600080fd5b9392505050565b61210b806200027e6000396000f3fe6080604052600436106101855760003560e01c806370a08231116100d1578063c3c8cd801161008a578063cf0848f711610064578063cf0848f714610484578063db92dbb6146104a4578063dd62ed3e146104b9578063e6ec64ec146104ff57600080fd5b8063c3c8cd801461043a578063c4081a4c1461044f578063c9567bf91461046f57600080fd5b806370a082311461036f578063715018a61461038f5780638da5cb5b146103a457806395d89b41146103cc578063a9059cbb146103fa578063b515566a1461041a57600080fd5b806327f3a72a1161013e578063437823ec11610118578063437823ec146102fa5780634b740b161461031a5780635d098b381461033a5780636fc3eaec1461035a57600080fd5b806327f3a72a14610290578063313ce567146102a55780633bbac579146102c157600080fd5b806306fdde0314610191578063095ea7b3146101d857806318160ddd1461020857806323b872dd1461022e5780632610eaca1461024e578063273123b71461027057600080fd5b3661018c57005b600080fd5b34801561019d57600080fd5b5060408051808201909152600c81526b14185cdd08141c9bda9958dd60a21b60208201525b6040516101cf9190611a90565b60405180910390f35b3480156101e457600080fd5b506101f86101f3366004611afa565b61051f565b60405190151581526020016101cf565b34801561021457600080fd5b50683635c9adc5dea000005b6040519081526020016101cf565b34801561023a57600080fd5b506101f8610249366004611b26565b610536565b34801561025a57600080fd5b5061026e610269366004611c46565b61059f565b005b34801561027c57600080fd5b5061026e61028b366004611d01565b6106cd565b34801561029c57600080fd5b5061022061070e565b3480156102b157600080fd5b50604051600981526020016101cf565b3480156102cd57600080fd5b506101f86102dc366004611d01565b6001600160a01b031660009081526006602052604090205460ff1690565b34801561030657600080fd5b5061026e610315366004611d01565b61071e565b34801561032657600080fd5b5061026e610335366004611d2c565b610762565b34801561034657600080fd5b5061026e610355366004611d01565b6107a0565b34801561036657600080fd5b5061026e610810565b34801561037b57600080fd5b5061022061038a366004611d01565b61083d565b34801561039b57600080fd5b5061026e61085f565b3480156103b057600080fd5b506000546040516001600160a01b0390911681526020016101cf565b3480156103d857600080fd5b5060408051808201909152600581526409141054d560da1b60208201526101c2565b34801561040657600080fd5b506101f8610415366004611afa565b6108d3565b34801561042657600080fd5b5061026e610435366004611d49565b6108e0565b34801561044657600080fd5b5061026e6109fd565b34801561045b57600080fd5b5061026e61046a366004611d86565b610a33565b34801561047b57600080fd5b5061026e610a66565b34801561049057600080fd5b5061026e61049f366004611d01565b610de0565b3480156104b057600080fd5b50610220610e21565b3480156104c557600080fd5b506102206104d4366004611d9f565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b34801561050b57600080fd5b5061026e61051a366004611d86565b610e39565b600061052c338484610e6c565b5060015b92915050565b6000610543848484610f90565b6105958433610590856040518060600160405280602881526020016120ae602891396001600160a01b038a1660009081526004602090815260408083203384529091529020549190611369565b610e6c565b5060019392505050565b6000546001600160a01b031633146105d25760405162461bcd60e51b81526004016105c990611dd8565b60405180910390fd5b805182511461061b5760405162461bcd60e51b81526020600482015260156024820152742632b733ba3439903237903737ba1036b0ba31b41760591b60448201526064016105c9565b60005b82518160ff1610156106c857818160ff168151811061063f5761063f611e0d565b60200260200101516106503361083d565b101561065b57600080fd5b6106b633848360ff168151811061067457610674611e0d565b60200260200101516009600a61068a9190611f1d565b858560ff168151811061069f5761069f611e0d565b60200260200101516106b19190611f2c565b610f90565b806106c081611f4b565b91505061061e565b505050565b600d546001600160a01b0316336001600160a01b0316146106ed57600080fd5b6001600160a01b03166000908152600660205260409020805460ff19169055565b60006107193061083d565b905090565b600d546001600160a01b0316336001600160a01b03161461073e57600080fd5b6001600160a01b03166000908152600560205260409020805460ff19166001179055565b600d546001600160a01b0316336001600160a01b03161461078257600080fd5b600f8054911515600160a81b0260ff60a81b19909216919091179055565b600d546001600160a01b0316336001600160a01b0316146107c057600080fd5b600d80546001600160a01b03908116600090815260056020526040808220805460ff1990811690915584546001600160a01b03191695909316948517909355928352912080549091166001179055565b600d546001600160a01b0316336001600160a01b03161461083057600080fd5b4761083a816113a3565b50565b6001600160a01b038116600090815260026020526040812054610530906113dd565b6000546001600160a01b031633146108895760405162461bcd60e51b81526004016105c990611dd8565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b600061052c338484610f90565b6000546001600160a01b0316331461090a5760405162461bcd60e51b81526004016105c990611dd8565b60005b81518110156109f957600f5482516001600160a01b039091169083908390811061093957610939611e0d565b60200260200101516001600160a01b03161415801561098a5750600e5482516001600160a01b039091169083908390811061097657610976611e0d565b60200260200101516001600160a01b031614155b156109e7576001600660008484815181106109a7576109a7611e0d565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a81548160ff0219169083151502179055505b806109f181611f6a565b91505061090d565b5050565b600d546001600160a01b0316336001600160a01b031614610a1d57600080fd5b6000610a283061083d565b905061083a81611461565b600d546001600160a01b0316336001600160a01b031614610a5357600080fd5b6001811115610a6157600080fd5b600955565b6000546001600160a01b03163314610a905760405162461bcd60e51b81526004016105c990611dd8565b600f54600160a01b900460ff1615610aea5760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016105c9565b600e80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155610b273082683635c9adc5dea00000610e6c565b806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b65573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b899190611f83565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610bd6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bfa9190611f83565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610c47573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c6b9190611f83565b600f80546001600160a01b0319166001600160a01b03928316179055600e541663f305d7194730610c9b8161083d565b600080610cb06000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610d18573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610d3d9190611fa0565b5050600f54600e5460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b3906044016020604051808303816000875af1158015610d96573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dba9190611fce565b50600f805460ff60a01b1916600160a01b179055610dda42610e10611feb565b60105550565b600d546001600160a01b0316336001600160a01b031614610e0057600080fd5b6001600160a01b03166000908152600560205260409020805460ff19169055565b600f54600090610719906001600160a01b031661083d565b600d546001600160a01b0316336001600160a01b031614610e5957600080fd5b6007811115610e6757600080fd5b600a55565b6001600160a01b038316610ece5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016105c9565b6001600160a01b038216610f2f5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016105c9565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610ff45760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016105c9565b6001600160a01b0382166110565760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016105c9565b600081116110b85760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016105c9565b6000546001600160a01b038481169116148015906110e457506000546001600160a01b03838116911614155b156112f8576001600160a01b03831660009081526006602052604090205460ff1615801561112b57506001600160a01b03821660009081526006602052604090205460ff16155b61113457600080fd5b600f546001600160a01b03848116911614801561115f5750600e546001600160a01b03838116911614155b801561118457506001600160a01b03821660009081526005602052604090205460ff16155b1561122f57600f54600160a01b900460ff166111e25760405162461bcd60e51b815260206004820152601860248201527f54726164696e67206e6f742079657420656e61626c65642e000000000000000060448201526064016105c9565b42601054111561122f5760006111f78361083d565b90506112186064611212683635c9adc5dea0000060026115db565b9061165d565b611222838361169f565b111561122d57600080fd5b505b600061123a3061083d565b600f54909150600160b01b900460ff161580156112655750600f546001600160a01b03858116911614155b801561127a5750600f54600160a01b900460ff165b156112f65780156112e457600f546112ae90606490611212906005906112a8906001600160a01b031661083d565b906115db565b8111156112db57600f546112d890606490611212906005906112a8906001600160a01b031661083d565b90505b6112e481611461565b4780156112f4576112f4476113a3565b505b505b6001600160a01b03831660009081526005602052604090205460019060ff168061133a57506001600160a01b03831660009081526005602052604090205460ff165b8061134e5750600f54600160a81b900460ff165b15611357575060005b611363848484846116fe565b50505050565b6000818484111561138d5760405162461bcd60e51b81526004016105c99190611a90565b50600061139a8486612003565b95945050505050565b600d546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156109f9573d6000803e3d6000fd5b60006007548211156114445760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084016105c9565b600061144e61172c565b905061145a838261165d565b9392505050565b600f805460ff60b01b1916600160b01b17905560408051600280825260608201835260009260208301908036833701905050905030816000815181106114a9576114a9611e0d565b6001600160a01b03928316602091820292909201810191909152600e54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611502573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115269190611f83565b8160018151811061153957611539611e0d565b6001600160a01b039283166020918202929092010152600e5461155f9130911684610e6c565b600e5460405163791ac94760e01b81526001600160a01b039091169063791ac9479061159890859060009086903090429060040161201a565b600060405180830381600087803b1580156115b257600080fd5b505af11580156115c6573d6000803e3d6000fd5b5050600f805460ff60b01b1916905550505050565b6000826000036115ed57506000610530565b60006115f98385611f2c565b905082611606858361208b565b1461145a5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016105c9565b600061145a83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061174f565b6000806116ac8385611feb565b90508381101561145a5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016105c9565b8061170b5761170b61177d565b6117168484846117ab565b8061136357611363600b54600955600c54600a55565b60008060006117396118a2565b9092509050611748828261165d565b9250505090565b600081836117705760405162461bcd60e51b81526004016105c99190611a90565b50600061139a848661208b565b60095415801561178d5750600a54155b1561179457565b60098054600b55600a8054600c5560009182905555565b6000806000806000806117bd876118e4565b6001600160a01b038f16600090815260026020526040902054959b509399509197509550935091506117ef9087611941565b6001600160a01b03808b1660009081526002602052604080822093909355908a168152205461181e908661169f565b6001600160a01b03891660009081526002602052604090205561184081611983565b61184a84836119cd565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161188f91815260200190565b60405180910390a3505050505050505050565b6007546000908190683635c9adc5dea000006118be828261165d565b8210156118db57505060075492683635c9adc5dea0000092509050565b90939092509050565b60008060008060008060008060006119018a600954600a546119f1565b925092509250600061191161172c565b905060008060006119248e878787611a40565b919e509c509a509598509396509194505050505091939550919395565b600061145a83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611369565b600061198d61172c565b9050600061199b83836115db565b306000908152600260205260409020549091506119b8908261169f565b30600090815260026020526040902055505050565b6007546119da9083611941565b6007556008546119ea908261169f565b6008555050565b6000808080611a05606461121289896115db565b90506000611a1860646112128a896115db565b90506000611a3082611a2a8b86611941565b90611941565b9992985090965090945050505050565b6000808080611a4f88866115db565b90506000611a5d88876115db565b90506000611a6b88886115db565b90506000611a7d82611a2a8686611941565b939b939a50919850919650505050505050565b600060208083528351808285015260005b81811015611abd57858101830151858201604001528201611aa1565b81811115611acf576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b038116811461083a57600080fd5b60008060408385031215611b0d57600080fd5b8235611b1881611ae5565b946020939093013593505050565b600080600060608486031215611b3b57600080fd5b8335611b4681611ae5565b92506020840135611b5681611ae5565b929592945050506040919091013590565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715611ba657611ba6611b67565b604052919050565b600067ffffffffffffffff821115611bc857611bc8611b67565b5060051b60200190565b600082601f830112611be357600080fd5b81356020611bf8611bf383611bae565b611b7d565b82815260059290921b84018101918181019086841115611c1757600080fd5b8286015b84811015611c3b578035611c2e81611ae5565b8352918301918301611c1b565b509695505050505050565b60008060408385031215611c5957600080fd5b823567ffffffffffffffff80821115611c7157600080fd5b611c7d86838701611bd2565b9350602091508185013581811115611c9457600080fd5b85019050601f81018613611ca757600080fd5b8035611cb5611bf382611bae565b81815260059190911b82018301908381019088831115611cd457600080fd5b928401925b82841015611cf257833582529284019290840190611cd9565b80955050505050509250929050565b600060208284031215611d1357600080fd5b813561145a81611ae5565b801515811461083a57600080fd5b600060208284031215611d3e57600080fd5b813561145a81611d1e565b600060208284031215611d5b57600080fd5b813567ffffffffffffffff811115611d7257600080fd5b611d7e84828501611bd2565b949350505050565b600060208284031215611d9857600080fd5b5035919050565b60008060408385031215611db257600080fd5b8235611dbd81611ae5565b91506020830135611dcd81611ae5565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600181815b80851115611e74578160001904821115611e5a57611e5a611e23565b80851615611e6757918102915b93841c9390800290611e3e565b509250929050565b600082611e8b57506001610530565b81611e9857506000610530565b8160018114611eae5760028114611eb857611ed4565b6001915050610530565b60ff841115611ec957611ec9611e23565b50506001821b610530565b5060208310610133831016604e8410600b8410161715611ef7575081810a610530565b611f018383611e39565b8060001904821115611f1557611f15611e23565b029392505050565b600061145a60ff841683611e7c565b6000816000190483118215151615611f4657611f46611e23565b500290565b600060ff821660ff8103611f6157611f61611e23565b60010192915050565b600060018201611f7c57611f7c611e23565b5060010190565b600060208284031215611f9557600080fd5b815161145a81611ae5565b600080600060608486031215611fb557600080fd5b8351925060208401519150604084015190509250925092565b600060208284031215611fe057600080fd5b815161145a81611d1e565b60008219821115611ffe57611ffe611e23565b500190565b60008282101561201557612015611e23565b500390565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561206a5784516001600160a01b031683529383019391830191600101612045565b50506001600160a01b03969096166060850152505050608001529392505050565b6000826120a857634e487b7160e01b600052601260045260246000fd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212206e20bdd687f48aa560877099cb33fc5afc2212a5069e8d25884e6cac6b806f6064736f6c634300080d0033000000000000000000000000e8c387ce56ae22ca623db5a7a47dea9ec45ff195

Deployed Bytecode

0x6080604052600436106101855760003560e01c806370a08231116100d1578063c3c8cd801161008a578063cf0848f711610064578063cf0848f714610484578063db92dbb6146104a4578063dd62ed3e146104b9578063e6ec64ec146104ff57600080fd5b8063c3c8cd801461043a578063c4081a4c1461044f578063c9567bf91461046f57600080fd5b806370a082311461036f578063715018a61461038f5780638da5cb5b146103a457806395d89b41146103cc578063a9059cbb146103fa578063b515566a1461041a57600080fd5b806327f3a72a1161013e578063437823ec11610118578063437823ec146102fa5780634b740b161461031a5780635d098b381461033a5780636fc3eaec1461035a57600080fd5b806327f3a72a14610290578063313ce567146102a55780633bbac579146102c157600080fd5b806306fdde0314610191578063095ea7b3146101d857806318160ddd1461020857806323b872dd1461022e5780632610eaca1461024e578063273123b71461027057600080fd5b3661018c57005b600080fd5b34801561019d57600080fd5b5060408051808201909152600c81526b14185cdd08141c9bda9958dd60a21b60208201525b6040516101cf9190611a90565b60405180910390f35b3480156101e457600080fd5b506101f86101f3366004611afa565b61051f565b60405190151581526020016101cf565b34801561021457600080fd5b50683635c9adc5dea000005b6040519081526020016101cf565b34801561023a57600080fd5b506101f8610249366004611b26565b610536565b34801561025a57600080fd5b5061026e610269366004611c46565b61059f565b005b34801561027c57600080fd5b5061026e61028b366004611d01565b6106cd565b34801561029c57600080fd5b5061022061070e565b3480156102b157600080fd5b50604051600981526020016101cf565b3480156102cd57600080fd5b506101f86102dc366004611d01565b6001600160a01b031660009081526006602052604090205460ff1690565b34801561030657600080fd5b5061026e610315366004611d01565b61071e565b34801561032657600080fd5b5061026e610335366004611d2c565b610762565b34801561034657600080fd5b5061026e610355366004611d01565b6107a0565b34801561036657600080fd5b5061026e610810565b34801561037b57600080fd5b5061022061038a366004611d01565b61083d565b34801561039b57600080fd5b5061026e61085f565b3480156103b057600080fd5b506000546040516001600160a01b0390911681526020016101cf565b3480156103d857600080fd5b5060408051808201909152600581526409141054d560da1b60208201526101c2565b34801561040657600080fd5b506101f8610415366004611afa565b6108d3565b34801561042657600080fd5b5061026e610435366004611d49565b6108e0565b34801561044657600080fd5b5061026e6109fd565b34801561045b57600080fd5b5061026e61046a366004611d86565b610a33565b34801561047b57600080fd5b5061026e610a66565b34801561049057600080fd5b5061026e61049f366004611d01565b610de0565b3480156104b057600080fd5b50610220610e21565b3480156104c557600080fd5b506102206104d4366004611d9f565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b34801561050b57600080fd5b5061026e61051a366004611d86565b610e39565b600061052c338484610e6c565b5060015b92915050565b6000610543848484610f90565b6105958433610590856040518060600160405280602881526020016120ae602891396001600160a01b038a1660009081526004602090815260408083203384529091529020549190611369565b610e6c565b5060019392505050565b6000546001600160a01b031633146105d25760405162461bcd60e51b81526004016105c990611dd8565b60405180910390fd5b805182511461061b5760405162461bcd60e51b81526020600482015260156024820152742632b733ba3439903237903737ba1036b0ba31b41760591b60448201526064016105c9565b60005b82518160ff1610156106c857818160ff168151811061063f5761063f611e0d565b60200260200101516106503361083d565b101561065b57600080fd5b6106b633848360ff168151811061067457610674611e0d565b60200260200101516009600a61068a9190611f1d565b858560ff168151811061069f5761069f611e0d565b60200260200101516106b19190611f2c565b610f90565b806106c081611f4b565b91505061061e565b505050565b600d546001600160a01b0316336001600160a01b0316146106ed57600080fd5b6001600160a01b03166000908152600660205260409020805460ff19169055565b60006107193061083d565b905090565b600d546001600160a01b0316336001600160a01b03161461073e57600080fd5b6001600160a01b03166000908152600560205260409020805460ff19166001179055565b600d546001600160a01b0316336001600160a01b03161461078257600080fd5b600f8054911515600160a81b0260ff60a81b19909216919091179055565b600d546001600160a01b0316336001600160a01b0316146107c057600080fd5b600d80546001600160a01b03908116600090815260056020526040808220805460ff1990811690915584546001600160a01b03191695909316948517909355928352912080549091166001179055565b600d546001600160a01b0316336001600160a01b03161461083057600080fd5b4761083a816113a3565b50565b6001600160a01b038116600090815260026020526040812054610530906113dd565b6000546001600160a01b031633146108895760405162461bcd60e51b81526004016105c990611dd8565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b600061052c338484610f90565b6000546001600160a01b0316331461090a5760405162461bcd60e51b81526004016105c990611dd8565b60005b81518110156109f957600f5482516001600160a01b039091169083908390811061093957610939611e0d565b60200260200101516001600160a01b03161415801561098a5750600e5482516001600160a01b039091169083908390811061097657610976611e0d565b60200260200101516001600160a01b031614155b156109e7576001600660008484815181106109a7576109a7611e0d565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a81548160ff0219169083151502179055505b806109f181611f6a565b91505061090d565b5050565b600d546001600160a01b0316336001600160a01b031614610a1d57600080fd5b6000610a283061083d565b905061083a81611461565b600d546001600160a01b0316336001600160a01b031614610a5357600080fd5b6001811115610a6157600080fd5b600955565b6000546001600160a01b03163314610a905760405162461bcd60e51b81526004016105c990611dd8565b600f54600160a01b900460ff1615610aea5760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016105c9565b600e80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155610b273082683635c9adc5dea00000610e6c565b806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b65573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b899190611f83565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610bd6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bfa9190611f83565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610c47573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c6b9190611f83565b600f80546001600160a01b0319166001600160a01b03928316179055600e541663f305d7194730610c9b8161083d565b600080610cb06000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610d18573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610d3d9190611fa0565b5050600f54600e5460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b3906044016020604051808303816000875af1158015610d96573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dba9190611fce565b50600f805460ff60a01b1916600160a01b179055610dda42610e10611feb565b60105550565b600d546001600160a01b0316336001600160a01b031614610e0057600080fd5b6001600160a01b03166000908152600560205260409020805460ff19169055565b600f54600090610719906001600160a01b031661083d565b600d546001600160a01b0316336001600160a01b031614610e5957600080fd5b6007811115610e6757600080fd5b600a55565b6001600160a01b038316610ece5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016105c9565b6001600160a01b038216610f2f5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016105c9565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610ff45760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016105c9565b6001600160a01b0382166110565760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016105c9565b600081116110b85760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016105c9565b6000546001600160a01b038481169116148015906110e457506000546001600160a01b03838116911614155b156112f8576001600160a01b03831660009081526006602052604090205460ff1615801561112b57506001600160a01b03821660009081526006602052604090205460ff16155b61113457600080fd5b600f546001600160a01b03848116911614801561115f5750600e546001600160a01b03838116911614155b801561118457506001600160a01b03821660009081526005602052604090205460ff16155b1561122f57600f54600160a01b900460ff166111e25760405162461bcd60e51b815260206004820152601860248201527f54726164696e67206e6f742079657420656e61626c65642e000000000000000060448201526064016105c9565b42601054111561122f5760006111f78361083d565b90506112186064611212683635c9adc5dea0000060026115db565b9061165d565b611222838361169f565b111561122d57600080fd5b505b600061123a3061083d565b600f54909150600160b01b900460ff161580156112655750600f546001600160a01b03858116911614155b801561127a5750600f54600160a01b900460ff165b156112f65780156112e457600f546112ae90606490611212906005906112a8906001600160a01b031661083d565b906115db565b8111156112db57600f546112d890606490611212906005906112a8906001600160a01b031661083d565b90505b6112e481611461565b4780156112f4576112f4476113a3565b505b505b6001600160a01b03831660009081526005602052604090205460019060ff168061133a57506001600160a01b03831660009081526005602052604090205460ff165b8061134e5750600f54600160a81b900460ff165b15611357575060005b611363848484846116fe565b50505050565b6000818484111561138d5760405162461bcd60e51b81526004016105c99190611a90565b50600061139a8486612003565b95945050505050565b600d546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156109f9573d6000803e3d6000fd5b60006007548211156114445760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084016105c9565b600061144e61172c565b905061145a838261165d565b9392505050565b600f805460ff60b01b1916600160b01b17905560408051600280825260608201835260009260208301908036833701905050905030816000815181106114a9576114a9611e0d565b6001600160a01b03928316602091820292909201810191909152600e54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611502573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115269190611f83565b8160018151811061153957611539611e0d565b6001600160a01b039283166020918202929092010152600e5461155f9130911684610e6c565b600e5460405163791ac94760e01b81526001600160a01b039091169063791ac9479061159890859060009086903090429060040161201a565b600060405180830381600087803b1580156115b257600080fd5b505af11580156115c6573d6000803e3d6000fd5b5050600f805460ff60b01b1916905550505050565b6000826000036115ed57506000610530565b60006115f98385611f2c565b905082611606858361208b565b1461145a5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016105c9565b600061145a83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061174f565b6000806116ac8385611feb565b90508381101561145a5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016105c9565b8061170b5761170b61177d565b6117168484846117ab565b8061136357611363600b54600955600c54600a55565b60008060006117396118a2565b9092509050611748828261165d565b9250505090565b600081836117705760405162461bcd60e51b81526004016105c99190611a90565b50600061139a848661208b565b60095415801561178d5750600a54155b1561179457565b60098054600b55600a8054600c5560009182905555565b6000806000806000806117bd876118e4565b6001600160a01b038f16600090815260026020526040902054959b509399509197509550935091506117ef9087611941565b6001600160a01b03808b1660009081526002602052604080822093909355908a168152205461181e908661169f565b6001600160a01b03891660009081526002602052604090205561184081611983565b61184a84836119cd565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161188f91815260200190565b60405180910390a3505050505050505050565b6007546000908190683635c9adc5dea000006118be828261165d565b8210156118db57505060075492683635c9adc5dea0000092509050565b90939092509050565b60008060008060008060008060006119018a600954600a546119f1565b925092509250600061191161172c565b905060008060006119248e878787611a40565b919e509c509a509598509396509194505050505091939550919395565b600061145a83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611369565b600061198d61172c565b9050600061199b83836115db565b306000908152600260205260409020549091506119b8908261169f565b30600090815260026020526040902055505050565b6007546119da9083611941565b6007556008546119ea908261169f565b6008555050565b6000808080611a05606461121289896115db565b90506000611a1860646112128a896115db565b90506000611a3082611a2a8b86611941565b90611941565b9992985090965090945050505050565b6000808080611a4f88866115db565b90506000611a5d88876115db565b90506000611a6b88886115db565b90506000611a7d82611a2a8686611941565b939b939a50919850919650505050505050565b600060208083528351808285015260005b81811015611abd57858101830151858201604001528201611aa1565b81811115611acf576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b038116811461083a57600080fd5b60008060408385031215611b0d57600080fd5b8235611b1881611ae5565b946020939093013593505050565b600080600060608486031215611b3b57600080fd5b8335611b4681611ae5565b92506020840135611b5681611ae5565b929592945050506040919091013590565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715611ba657611ba6611b67565b604052919050565b600067ffffffffffffffff821115611bc857611bc8611b67565b5060051b60200190565b600082601f830112611be357600080fd5b81356020611bf8611bf383611bae565b611b7d565b82815260059290921b84018101918181019086841115611c1757600080fd5b8286015b84811015611c3b578035611c2e81611ae5565b8352918301918301611c1b565b509695505050505050565b60008060408385031215611c5957600080fd5b823567ffffffffffffffff80821115611c7157600080fd5b611c7d86838701611bd2565b9350602091508185013581811115611c9457600080fd5b85019050601f81018613611ca757600080fd5b8035611cb5611bf382611bae565b81815260059190911b82018301908381019088831115611cd457600080fd5b928401925b82841015611cf257833582529284019290840190611cd9565b80955050505050509250929050565b600060208284031215611d1357600080fd5b813561145a81611ae5565b801515811461083a57600080fd5b600060208284031215611d3e57600080fd5b813561145a81611d1e565b600060208284031215611d5b57600080fd5b813567ffffffffffffffff811115611d7257600080fd5b611d7e84828501611bd2565b949350505050565b600060208284031215611d9857600080fd5b5035919050565b60008060408385031215611db257600080fd5b8235611dbd81611ae5565b91506020830135611dcd81611ae5565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600181815b80851115611e74578160001904821115611e5a57611e5a611e23565b80851615611e6757918102915b93841c9390800290611e3e565b509250929050565b600082611e8b57506001610530565b81611e9857506000610530565b8160018114611eae5760028114611eb857611ed4565b6001915050610530565b60ff841115611ec957611ec9611e23565b50506001821b610530565b5060208310610133831016604e8410600b8410161715611ef7575081810a610530565b611f018383611e39565b8060001904821115611f1557611f15611e23565b029392505050565b600061145a60ff841683611e7c565b6000816000190483118215151615611f4657611f46611e23565b500290565b600060ff821660ff8103611f6157611f61611e23565b60010192915050565b600060018201611f7c57611f7c611e23565b5060010190565b600060208284031215611f9557600080fd5b815161145a81611ae5565b600080600060608486031215611fb557600080fd5b8351925060208401519150604084015190509250925092565b600060208284031215611fe057600080fd5b815161145a81611d1e565b60008219821115611ffe57611ffe611e23565b500190565b60008282101561201557612015611e23565b500390565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561206a5784516001600160a01b031683529383019391830191600101612045565b50506001600160a01b03969096166060850152505050608001529392505050565b6000826120a857634e487b7160e01b600052601260045260246000fd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212206e20bdd687f48aa560877099cb33fc5afc2212a5069e8d25884e6cac6b806f6064736f6c634300080d0033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

000000000000000000000000e8c387ce56ae22ca623db5a7a47dea9ec45ff195

-----Decoded View---------------
Arg [0] : MultiSig (address): 0xe8c387ce56AE22cA623DB5A7a47DEA9eC45ff195

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000e8c387ce56ae22ca623db5a7a47dea9ec45ff195


Deployed Bytecode Sourcemap

3848:12753:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5726:83;;;;;;;;;;-1:-1:-1;5796:5:0;;;;;;;;;;;;-1:-1:-1;;;5796:5:0;;;;5726:83;;;;;;;:::i;:::-;;;;;;;;6578:161;;;;;;;;;;-1:-1:-1;6578:161:0;;;;;:::i;:::-;;:::i;:::-;;;1237:14:1;;1230:22;1212:41;;1200:2;1185:18;6578:161:0;1072:187:1;6003:95:0;;;;;;;;;;-1:-1:-1;4304:12:0;6003:95;;;1410:25:1;;;1398:2;1383:18;6003:95:0;1264:177:1;6747:313:0;;;;;;;;;;-1:-1:-1;6747:313:0;;;;;:::i;:::-;;:::i;16217:381::-;;;;;;;;;;-1:-1:-1;16217:381:0;;;;;:::i;:::-;;:::i;:::-;;15365:125;;;;;;;;;;-1:-1:-1;15365:125:0;;;;;:::i;:::-;;:::i;16000:100::-;;;;;;;;;;;;;:::i;5912:83::-;;;;;;;;;;-1:-1:-1;5912:83:0;;4574:1;4786:36:1;;4774:2;4759:18;5912:83:0;4644:184:1;15502:89:0;;;;;;;;;;-1:-1:-1;15502:89:0;;;;;:::i;:::-;-1:-1:-1;;;;;15574:9:0;15550:4;15574:9;;;:5;:9;;;;;;;;;15502:89;14054:147;;;;;;;;;;-1:-1:-1;14054:147:0;;;;;:::i;:::-;;:::i;14621:125::-;;;;;;;;;;-1:-1:-1;14621:125:0;;;;;:::i;:::-;;:::i;14367:242::-;;;;;;;;;;-1:-1:-1;14367:242:0;;;;;:::i;:::-;;:::i;15804:188::-;;;;;;;;;;;;;:::i;6106:138::-;;;;;;;;;;-1:-1:-1;6106:138:0;;;;;:::i;:::-;;:::i;2927:148::-;;;;;;;;;;;;;:::i;2713:79::-;;;;;;;;;;-1:-1:-1;2751:7:0;2778:6;2713:79;;-1:-1:-1;;;;;2778:6:0;;;5608:51:1;;5596:2;5581:18;2713:79:0;5462:203:1;5817:87:0;;;;;;;;;;-1:-1:-1;5889:7:0;;;;;;;;;;;;-1:-1:-1;;;5889:7:0;;;;5817:87;;6252:167;;;;;;;;;;-1:-1:-1;6252:167:0;;;;;:::i;:::-;;:::i;15083:270::-;;;;;;;;;;-1:-1:-1;15083:270:0;;;;;:::i;:::-;;:::i;15603:189::-;;;;;;;;;;;;;:::i;14925:146::-;;;;;;;;;;-1:-1:-1;14925:146:0;;;;;:::i;:::-;;:::i;13272:770::-;;;;;;;;;;;;;:::i;14213:146::-;;;;;;;;;;-1:-1:-1;14213:146:0;;;;;:::i;:::-;;:::i;16108:101::-;;;;;;;;;;;;;:::i;6427:143::-;;;;;;;;;;-1:-1:-1;6427:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6535:18:0;;;6508:7;6535:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6427:143;14758:151;;;;;;;;;;-1:-1:-1;14758:151:0;;;;;:::i;:::-;;:::i;6578:161::-;6653:4;6670:39;202:10;6693:7;6702:6;6670:8;:39::i;:::-;-1:-1:-1;6727:4:0;6578:161;;;;;:::o;6747:313::-;6845:4;6862:36;6872:6;6880:9;6891:6;6862:9;:36::i;:::-;6909:121;6918:6;202:10;6940:89;6978:6;6940:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6940:19:0;;;;;;:11;:19;;;;;;;;202:10;6940:33;;;;;;;;;;:37;:89::i;:::-;6909:8;:121::i;:::-;-1:-1:-1;7048:4:0;6747:313;;;;;:::o;16217:381::-;2840:6;;-1:-1:-1;;;;;2840:6:0;202:10;2840:22;2832:67;;;;-1:-1:-1;;;2832:67:0;;;;;;;:::i;:::-;;;;;;;;;16350:7:::1;:14;16331:8;:15;:33;16323:67;;;::::0;-1:-1:-1;;;16323:67:0;;7164:2:1;16323:67:0::1;::::0;::::1;7146:21:1::0;7203:2;7183:18;;;7176:30;-1:-1:-1;;;7222:18:1;;;7215:51;7283:18;;16323:67:0::1;6962:345:1::0;16323:67:0::1;16406:7;16401:190;16423:8;:15;16419:1;:19;;;16401:190;;;16493:7;16501:1;16493:10;;;;;;;;;;:::i;:::-;;;;;;;16468:21;16478:10;16468:9;:21::i;:::-;:35;;16460:44;;;::::0;::::1;;16519:60;16529:10;16541:8;16550:1;16541:11;;;;;;;;;;:::i;:::-;;;;;;;4574:1;16565:2;:13;;;;:::i;:::-;16554:7;16562:1;16554:10;;;;;;;;;;:::i;:::-;;;;;;;:24;;;;:::i;:::-;16519:9;:60::i;:::-;16440:3:::0;::::1;::::0;::::1;:::i;:::-;;;;16401:190;;;;16217:381:::0;;:::o;15365:125::-;15440:9;;-1:-1:-1;;;;;15440:9:0;202:10;-1:-1:-1;;;;;15424:25:0;;15416:34;;;;;;-1:-1:-1;;;;;15461:13:0;15477:5;15461:13;;;:5;:13;;;;;:21;;-1:-1:-1;;15461:21:0;;;15365:125::o;16000:100::-;16044:4;16068:24;16086:4;16068:9;:24::i;:::-;16061:31;;16000:100;:::o;14054:147::-;14143:9;;-1:-1:-1;;;;;14143:9:0;202:10;-1:-1:-1;;;;;14127:25:0;;14119:34;;;;;;-1:-1:-1;;;;;14164:22:0;;;;;:18;:22;;;;;:29;;-1:-1:-1;;14164:29:0;14189:4;14164:29;;;14054:147::o;14621:125::-;14699:9;;-1:-1:-1;;;;;14699:9:0;202:10;-1:-1:-1;;;;;14683:25:0;;14675:34;;;;;;14720:10;:18;;;;;-1:-1:-1;;;14720:18:0;-1:-1:-1;;;;14720:18:0;;;;;;;;;14621:125::o;14367:242::-;14466:9;;-1:-1:-1;;;;;14466:9:0;202:10;-1:-1:-1;;;;;14450:25:0;;14442:34;;;;;;14506:9;;;-1:-1:-1;;;;;14506:9:0;;;14519:5;14487:29;;;:18;:29;;;;;;:37;;-1:-1:-1;;14487:37:0;;;;;;14535:20;;-1:-1:-1;;;;;;14535:20:0;;;;;;;;;;;14566:28;;;;;:35;;;;;-1:-1:-1;14566:35:0;;;14367:242::o;15804:188::-;15870:9;;-1:-1:-1;;;;;15870:9:0;202:10;-1:-1:-1;;;;;15854:25:0;;15846:34;;;;;;15920:21;15952:32;15920:21;15952:12;:32::i;:::-;15835:157;15804:188::o;6106:138::-;-1:-1:-1;;;;;6219:16:0;;6172:7;6219:16;;;:7;:16;;;;;;6199:37;;:19;:37::i;2927:148::-;2840:6;;-1:-1:-1;;;;;2840:6:0;202:10;2840:22;2832:67;;;;-1:-1:-1;;;2832:67:0;;;;;;;:::i;:::-;3034:1:::1;3018:6:::0;;2997:40:::1;::::0;-1:-1:-1;;;;;3018:6:0;;::::1;::::0;2997:40:::1;::::0;3034:1;;2997:40:::1;3065:1;3048:19:::0;;-1:-1:-1;;;;;;3048:19:0::1;::::0;;2927:148::o;6252:167::-;6330:4;6347:42;202:10;6371:9;6382:6;6347:9;:42::i;15083:270::-;2840:6;;-1:-1:-1;;;;;2840:6:0;202:10;2840:22;2832:67;;;;-1:-1:-1;;;2832:67:0;;;;;;;:::i;:::-;15157:6:::1;15152:194;15173:5;:12;15169:1;:16;15152:194;;;15223:13;::::0;15211:8;;-1:-1:-1;;;;;15223:13:0;;::::1;::::0;15211:5;;15217:1;;15211:8;::::1;;;;;:::i;:::-;;;;;;;-1:-1:-1::0;;;;;15211:25:0::1;;;:65;;;;-1:-1:-1::0;15260:15:0::1;::::0;15240:8;;-1:-1:-1;;;;;15260:15:0;;::::1;::::0;15240:5;;15246:1;;15240:8;::::1;;;;;:::i;:::-;;;;;;;-1:-1:-1::0;;;;;15240:36:0::1;;;15211:65;15207:128;;;15315:4;15297:5;:15;15303:5;15309:1;15303:8;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1::0;;;;;15297:15:0::1;-1:-1:-1::0;;;;;15297:15:0::1;;;;;;;;;;;;;:22;;;;;;;;;;;;;;;;;;15207:128;15187:3:::0;::::1;::::0;::::1;:::i;:::-;;;;15152:194;;;;15083:270:::0;:::o;15603:189::-;15669:9;;-1:-1:-1;;;;;15669:9:0;202:10;-1:-1:-1;;;;;15653:25:0;;15645:34;;;;;;15690:23;15716:24;15734:4;15716:9;:24::i;:::-;15690:50;;15751:33;15768:15;15751:16;:33::i;14925:146::-;15001:9;;-1:-1:-1;;;;;15001:9:0;202:10;-1:-1:-1;;;;;14985:25:0;;14977:34;;;;;;15037:1;15030:3;:8;;15022:17;;;;;;15050:7;:13;14925:146::o;13272:770::-;2840:6;;-1:-1:-1;;;;;2840:6:0;202:10;2840:22;2832:67;;;;-1:-1:-1;;;2832:67:0;;;;;;;:::i;:::-;13334:11:::1;::::0;-1:-1:-1;;;13334:11:0;::::1;;;13333:12;13325:47;;;::::0;-1:-1:-1;;;13325:47:0;;9654:2:1;13325:47:0::1;::::0;::::1;9636:21:1::0;9693:2;9673:18;;;9666:30;9732:25;9712:18;;;9705:53;9775:18;;13325:47:0::1;9452:347:1::0;13325:47:0::1;13494:15;:34:::0;;-1:-1:-1;;;;;;13494:34:0::1;13440:42;13494:34:::0;;::::1;::::0;;;13539:58:::1;13556:4;13440:42:::0;4304:12:::1;13539:8;:58::i;:::-;13642:16;-1:-1:-1::0;;;;;13642:24:0::1;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;13624:56:0::1;;13689:4;13696:16;-1:-1:-1::0;;;;;13696:21:0::1;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13624:96;::::0;-1:-1:-1;;;;;;13624:96:0::1;::::0;;;;;;-1:-1:-1;;;;;10290:15:1;;;13624:96:0::1;::::0;::::1;10272:34:1::0;10342:15;;10322:18;;;10315:43;10207:18;;13624:96:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13608:13;:112:::0;;-1:-1:-1;;;;;;13608:112:0::1;-1:-1:-1::0;;;;;13608:112:0;;::::1;;::::0;;13731:15:::1;::::0;::::1;:31;13770:21;13801:4;13807:24;13801:4:::0;13807:9:::1;:24::i;:::-;13832:1;13834::::0;13836:7:::1;2751::::0;2778:6;-1:-1:-1;;;;;2778:6:0;;2713:79;13836:7:::1;13731:129;::::0;::::1;::::0;;;-1:-1:-1;;;;;;13731:129:0;;;-1:-1:-1;;;;;10728:15:1;;;13731:129:0::1;::::0;::::1;10710:34:1::0;10760:18;;;10753:34;;;;10803:18;;;10796:34;;;;10846:18;;;10839:34;10910:15;;;10889:19;;;10882:44;13844:15:0::1;10942:19:1::0;;;10935:35;10644:19;;13731:129:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;13878:13:0::1;::::0;13909:15:::1;::::0;13871:71:::1;::::0;-1:-1:-1;;;13871:71:0;;-1:-1:-1;;;;;13909:15:0;;::::1;13871:71;::::0;::::1;11466:51:1::0;-1:-1:-1;;11533:18:1;;;11526:34;13878:13:0;::::1;::::0;-1:-1:-1;13871:29:0::1;::::0;11439:18:1;;13871:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;13953:11:0::1;:18:::0;;-1:-1:-1;;;;13953:18:0::1;-1:-1:-1::0;;;13953:18:0::1;::::0;;14004:30:::1;:15;14023:10;14004:30;:::i;:::-;13982:19;:52:::0;-1:-1:-1;13272:770:0:o;14213:146::-;14300:9;;-1:-1:-1;;;;;14300:9:0;202:10;-1:-1:-1;;;;;14284:25:0;;14276:34;;;;;;-1:-1:-1;;;;;14321:22:0;14346:5;14321:22;;;:18;:22;;;;;:30;;-1:-1:-1;;14321:30:0;;;14213:146::o;16108:101::-;16187:13;;16153:4;;16177:24;;-1:-1:-1;;;;;16187:13:0;16177:9;:24::i;14758:151::-;14836:9;;-1:-1:-1;;;;;14836:9:0;202:10;-1:-1:-1;;;;;14820:25:0;;14812:34;;;;;;14873:1;14865:4;:9;;14857:18;;;;;;14886:8;:15;14758:151::o;7675:335::-;-1:-1:-1;;;;;7768:19:0;;7760:68;;;;-1:-1:-1;;;7760:68:0;;12156:2:1;7760:68:0;;;12138:21:1;12195:2;12175:18;;;12168:30;12234:34;12214:18;;;12207:62;-1:-1:-1;;;12285:18:1;;;12278:34;12329:19;;7760:68:0;11954:400:1;7760:68:0;-1:-1:-1;;;;;7847:21:0;;7839:68;;;;-1:-1:-1;;;7839:68:0;;12561:2:1;7839:68:0;;;12543:21:1;12600:2;12580:18;;;12573:30;12639:34;12619:18;;;12612:62;-1:-1:-1;;;12690:18:1;;;12683:32;12732:19;;7839:68:0;12359:398:1;7839:68:0;-1:-1:-1;;;;;7918:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7970:32;;1410:25:1;;;7970:32:0;;1383:18:1;7970:32:0;;;;;;;7675:335;;;:::o;8022:1767::-;-1:-1:-1;;;;;8110:18:0;;8102:68;;;;-1:-1:-1;;;8102:68:0;;12964:2:1;8102:68:0;;;12946:21:1;13003:2;12983:18;;;12976:30;13042:34;13022:18;;;13015:62;-1:-1:-1;;;13093:18:1;;;13086:35;13138:19;;8102:68:0;12762:401:1;8102:68:0;-1:-1:-1;;;;;8189:16:0;;8181:64;;;;-1:-1:-1;;;8181:64:0;;13370:2:1;8181:64:0;;;13352:21:1;13409:2;13389:18;;;13382:30;13448:34;13428:18;;;13421:62;-1:-1:-1;;;13499:18:1;;;13492:33;13542:19;;8181:64:0;13168:399:1;8181:64:0;8273:1;8264:6;:10;8256:64;;;;-1:-1:-1;;;8256:64:0;;13774:2:1;8256:64:0;;;13756:21:1;13813:2;13793:18;;;13786:30;13852:34;13832:18;;;13825:62;-1:-1:-1;;;13903:18:1;;;13896:39;13952:19;;8256:64:0;13572:405:1;8256:64:0;2751:7;2778:6;-1:-1:-1;;;;;8336:15:0;;;2778:6;;8336:15;;;;:32;;-1:-1:-1;2751:7:0;2778:6;-1:-1:-1;;;;;8355:13:0;;;2778:6;;8355:13;;8336:32;8333:1238;;;-1:-1:-1;;;;;8408:11:0;;;;;;:5;:11;;;;;;;;8407:12;:26;;;;-1:-1:-1;;;;;;8424:9:0;;;;;;:5;:9;;;;;;;;8423:10;8407:26;8399:35;;;;;;8474:13;;-1:-1:-1;;;;;8466:21:0;;;8474:13;;8466:21;:55;;;;-1:-1:-1;8505:15:0;;-1:-1:-1;;;;;8491:30:0;;;8505:15;;8491:30;;8466:55;:82;;;;-1:-1:-1;;;;;;8526:22:0;;;;;;:18;:22;;;;;;;;8525:23;8466:82;8463:419;;;8577:11;;-1:-1:-1;;;8577:11:0;;;;8569:48;;;;-1:-1:-1;;;8569:48:0;;14184:2:1;8569:48:0;;;14166:21:1;14223:2;14203:18;;;14196:30;14262:26;14242:18;;;14235:54;14306:18;;8569:48:0;13982:348:1;8569:48:0;8680:15;8658:19;;:37;8654:213;;;8720:18;8741:22;8759:2;8741:9;:22::i;:::-;8720:43;-1:-1:-1;8823:23:0;8842:3;8823:14;4304:12;8835:1;8823:11;:14::i;:::-;:18;;:23::i;:::-;8794:25;:6;8805:13;8794:10;:25::i;:::-;:52;;8786:61;;;;;;8697:170;8654:213;8896:28;8927:24;8945:4;8927:9;:24::i;:::-;8972:6;;8896:55;;-1:-1:-1;;;;8972:6:0;;;;8971:7;:32;;;;-1:-1:-1;8990:13:0;;-1:-1:-1;;;;;8982:21:0;;;8990:13;;8982:21;;8971:32;:47;;;;-1:-1:-1;9007:11:0;;-1:-1:-1;;;9007:11:0;;;;8971:47;8968:592;;;9042:24;;9039:314;;9127:13;;9117:40;;9153:3;;9117:31;;9146:1;;9117:24;;-1:-1:-1;;;;;9127:13:0;9117:9;:24::i;:::-;:28;;:31::i;:40::-;9094:20;:63;9091:182;;;9219:13;;9209:40;;9245:3;;9209:31;;9238:1;;9209:24;;-1:-1:-1;;;;;9219:13:0;9209:9;:24::i;:40::-;9186:63;;9091:182;9295:38;9312:20;9295:16;:38::i;:::-;9400:21;9443:22;;9440:105;;9490:35;9503:21;9490:12;:35::i;:::-;9020:540;8968:592;8370:1201;8333:1238;-1:-1:-1;;;;;9616:24:0;;9581:12;9616:24;;;:18;:24;;;;;;9596:4;;9616:24;;;:50;;-1:-1:-1;;;;;;9644:22:0;;;;;;:18;:22;;;;;;;;9616:50;:64;;;-1:-1:-1;9670:10:0;;-1:-1:-1;;;9670:10:0;;;;9616:64;9613:110;;;-1:-1:-1;9706:5:0;9613:110;9743:38;9758:4;9763:2;9766:6;9773:7;9743:14;:38::i;:::-;8091:1698;8022:1767;;;:::o;1259:190::-;1345:7;1381:12;1373:6;;;;1365:29;;;;-1:-1:-1;;;1365:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1405:9:0;1417:5;1421:1;1417;:5;:::i;:::-;1405:17;1259:190;-1:-1:-1;;;;;1259:190:0:o;10296:91::-;10353:9;;:26;;-1:-1:-1;;;;;10353:9:0;;;;:26;;;;;10372:6;;10353:9;:26;:9;:26;10372:6;10353:9;:26;;;;;;;;;;;;;;;;;;;7068:254;7135:7;7174;;7163;:18;;7155:73;;;;-1:-1:-1;;;7155:73:0;;14667:2:1;7155:73:0;;;14649:21:1;14706:2;14686:18;;;14679:30;14745:34;14725:18;;;14718:62;-1:-1:-1;;;14796:18:1;;;14789:40;14846:19;;7155:73:0;14465:406:1;7155:73:0;7239:19;7262:10;:8;:10::i;:::-;7239:33;-1:-1:-1;7290:24:0;:7;7239:33;7290:11;:24::i;:::-;7283:31;7068:254;-1:-1:-1;;;7068:254:0:o;9797:483::-;5328:6;:13;;-1:-1:-1;;;;5328:13:0;-1:-1:-1;;;5328:13:0;;;9899:16:::1;::::0;;9913:1:::1;9899:16:::0;;;;;::::1;::::0;;-1:-1:-1;;9899:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;9899:16:0::1;9875:40;;9944:4;9926;9931:1;9926:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9926:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;9970:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;9970:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;9926:7;;9970:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9960:4;9965:1;9960:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9960:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;10035:15:::1;::::0;10003:62:::1;::::0;10020:4:::1;::::0;10035:15:::1;10053:11:::0;10003:8:::1;:62::i;:::-;10076:15;::::0;:196:::1;::::0;-1:-1:-1;;;10076:196:0;;-1:-1:-1;;;;;10076:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;10157:11;;10076:15:::1;::::0;10199:4;;10226::::1;::::0;10246:15:::1;::::0;10076:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5364:6:0;:14;;-1:-1:-1;;;;5364:14:0;;;-1:-1:-1;;;;9797:483:0:o;1457:245::-;1515:7;1538:1;1543;1538:6;1535:46;;-1:-1:-1;1568:1:0;1561:8;;1535:46;1591:9;1603:5;1607:1;1603;:5;:::i;:::-;1591:17;-1:-1:-1;1636:1:0;1627:5;1631:1;1591:17;1627:5;:::i;:::-;:10;1619:56;;;;-1:-1:-1;;;1619:56:0;;16285:2:1;1619:56:0;;;16267:21:1;16324:2;16304:18;;;16297:30;16363:34;16343:18;;;16336:62;-1:-1:-1;;;16414:18:1;;;16407:31;16455:19;;1619:56:0;16083:397:1;1710:132:0;1768:7;1795:39;1799:1;1802;1795:39;;;;;;;;;;;;;;;;;:3;:39::i;928:179::-;986:7;;1018:5;1022:1;1018;:5;:::i;:::-;1006:17;;1047:1;1042;:6;;1034:46;;;;-1:-1:-1;;;1034:46:0;;16687:2:1;1034:46:0;;;16669:21:1;16726:2;16706:18;;;16699:30;16765:29;16745:18;;;16738:57;16812:18;;1034:46:0;16485:351:1;10399:263:0;10511:7;10507:40;;10533:14;:12;:14::i;:::-;10558:44;10576:6;10584:9;10595:6;10558:17;:44::i;:::-;10617:7;10613:41;;10639:15;7606;;7596:7;:25;7643:16;;7632:8;:27;7552:115;12003:163;12044:7;12065:15;12082;12101:19;:17;:19::i;:::-;12064:56;;-1:-1:-1;12064:56:0;-1:-1:-1;12138:20:0;12064:56;;12138:11;:20::i;:::-;12131:27;;;;12003:163;:::o;1850:189::-;1936:7;1971:12;1964:5;1956:28;;;;-1:-1:-1;;;1956:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1995:9:0;2007:5;2011:1;2007;:5;:::i;7330:210::-;7376:7;;:12;:29;;;;-1:-1:-1;7392:8:0;;:13;7376:29;7373:41;;;7330:210::o;7373:41::-;7442:7;;;7424:15;:25;7479:8;;;7460:16;:27;-1:-1:-1;7498:11:0;;;;7520:12;7330:210::o;10670:490::-;10769:15;10786:23;10811:12;10825:23;10850:12;10864:13;10881:19;10892:7;10881:10;:19::i;:::-;-1:-1:-1;;;;;10929:15:0;;;;;;:7;:15;;;;;;10768:132;;-1:-1:-1;10768:132:0;;-1:-1:-1;10768:132:0;;-1:-1:-1;10768:132:0;-1:-1:-1;10768:132:0;-1:-1:-1;10768:132:0;-1:-1:-1;10929:28:0;;10768:132;10929:19;:28::i;:::-;-1:-1:-1;;;;;10911:15:0;;;;;;;:7;:15;;;;;;:46;;;;10989:18;;;;;;;:39;;11012:15;10989:22;:39::i;:::-;-1:-1:-1;;;;;10968:18:0;;;;;;:7;:18;;;;;:60;11042:16;11052:5;11042:9;:16::i;:::-;11069:23;11081:4;11087;11069:11;:23::i;:::-;11125:9;-1:-1:-1;;;;;11108:44:0;11117:6;-1:-1:-1;;;;;11108:44:0;;11136:15;11108:44;;;;1410:25:1;;1398:2;1383:18;;1264:177;11108:44:0;;;;;;;;10757:403;;;;;;10670:490;;;:::o;12174:255::-;12271:7;;12224;;;;4304:12;12338:20;12271:7;4304:12;12338:11;:20::i;:::-;12328:7;:30;12325:60;;;-1:-1:-1;;12368:7:0;;;4304:12;;-1:-1:-1;12174:255:0;-1:-1:-1;12174:255:0:o;12325:60::-;12404:7;;12413;;-1:-1:-1;12174:255:0;-1:-1:-1;12174:255:0:o;11168:468::-;11227:7;11236;11245;11254;11263;11272;11293:23;11318:12;11332:13;11349:39;11361:7;11370;;11379:8;;11349:11;:39::i;:::-;11292:96;;;;;;11399:19;11422:10;:8;:10::i;:::-;11399:33;;11444:15;11461:23;11486:12;11502:46;11514:7;11523:4;11529:5;11536:11;11502;:46::i;:::-;11443:105;;-1:-1:-1;11443:105:0;-1:-1:-1;11443:105:0;-1:-1:-1;11599:15:0;;-1:-1:-1;11616:4:0;;-1:-1:-1;11622:5:0;;-1:-1:-1;;;;;11168:468:0;;;;;;;:::o;1115:136::-;1173:7;1200:43;1204:1;1207;1200:43;;;;;;;;;;;;;;;;;:3;:43::i;12854:214::-;12907:19;12930:10;:8;:10::i;:::-;12907:33;-1:-1:-1;12951:13:0;12967:22;:5;12907:33;12967:9;:22::i;:::-;13043:4;13027:22;;;;:7;:22;;;;;;12951:38;;-1:-1:-1;13027:33:0;;12951:38;13027:26;:33::i;:::-;13018:4;13002:22;;;;:7;:22;;;;;:58;-1:-1:-1;;;12854:214:0:o;13076:147::-;13154:7;;:17;;13166:4;13154:11;:17::i;:::-;13144:7;:27;13195:10;;:20;;13210:4;13195:14;:20::i;:::-;13182:10;:33;-1:-1:-1;;13076:147:0:o;11644:351::-;11737:7;;;;11790:28;11814:3;11790:19;:7;11802:6;11790:11;:19::i;:28::-;11775:43;-1:-1:-1;11829:13:0;11845:29;11870:3;11845:20;:7;11857;11845:11;:20::i;:29::-;11829:45;-1:-1:-1;11885:23:0;11911:28;11829:45;11911:17;:7;11923:4;11911:11;:17::i;:::-;:21;;:28::i;:::-;11885:54;11975:4;;-1:-1:-1;11981:5:0;;-1:-1:-1;11644:351:0;;-1:-1:-1;;;;;11644:351:0:o;12437:409::-;12547:7;;;;12603:24;:7;12615:11;12603;:24::i;:::-;12585:42;-1:-1:-1;12638:12:0;12653:21;:4;12662:11;12653:8;:21::i;:::-;12638:36;-1:-1:-1;12685:13:0;12701:22;:5;12711:11;12701:9;:22::i;:::-;12685:38;-1:-1:-1;12734:23:0;12760:28;12685:38;12760:17;:7;12772:4;12760:11;:17::i;:28::-;12807:7;;;;-1:-1:-1;12833:4:0;;-1:-1:-1;12437:409:0;;-1:-1:-1;;;;;;;12437:409:0:o;14:597:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;452:6;449:1;446:13;443:91;;;522:1;517:2;508:6;497:9;493:22;489:31;482:42;443:91;-1:-1:-1;595:2:1;574:15;-1:-1:-1;;570:29:1;555:45;;;;602:2;551:54;;14:597;-1:-1:-1;;;14:597:1:o;616:131::-;-1:-1:-1;;;;;691:31:1;;681:42;;671:70;;737:1;734;727:12;752:315;820:6;828;881:2;869:9;860:7;856:23;852:32;849:52;;;897:1;894;887:12;849:52;936:9;923:23;955:31;980:5;955:31;:::i;:::-;1005:5;1057:2;1042:18;;;;1029:32;;-1:-1:-1;;;752:315:1:o;1446:456::-;1523:6;1531;1539;1592:2;1580:9;1571:7;1567:23;1563:32;1560:52;;;1608:1;1605;1598:12;1560:52;1647:9;1634:23;1666:31;1691:5;1666:31;:::i;:::-;1716:5;-1:-1:-1;1773:2:1;1758:18;;1745:32;1786:33;1745:32;1786:33;:::i;:::-;1446:456;;1838:7;;-1:-1:-1;;;1892:2:1;1877:18;;;;1864:32;;1446:456::o;1907:127::-;1968:10;1963:3;1959:20;1956:1;1949:31;1999:4;1996:1;1989:15;2023:4;2020:1;2013:15;2039:275;2110:2;2104:9;2175:2;2156:13;;-1:-1:-1;;2152:27:1;2140:40;;2210:18;2195:34;;2231:22;;;2192:62;2189:88;;;2257:18;;:::i;:::-;2293:2;2286:22;2039:275;;-1:-1:-1;2039:275:1:o;2319:183::-;2379:4;2412:18;2404:6;2401:30;2398:56;;;2434:18;;:::i;:::-;-1:-1:-1;2479:1:1;2475:14;2491:4;2471:25;;2319:183::o;2507:737::-;2561:5;2614:3;2607:4;2599:6;2595:17;2591:27;2581:55;;2632:1;2629;2622:12;2581:55;2668:6;2655:20;2694:4;2718:60;2734:43;2774:2;2734:43;:::i;:::-;2718:60;:::i;:::-;2812:15;;;2898:1;2894:10;;;;2882:23;;2878:32;;;2843:12;;;;2922:15;;;2919:35;;;2950:1;2947;2940:12;2919:35;2986:2;2978:6;2974:15;2998:217;3014:6;3009:3;3006:15;2998:217;;;3094:3;3081:17;3111:31;3136:5;3111:31;:::i;:::-;3155:18;;3193:12;;;;3031;;2998:217;;;-1:-1:-1;3233:5:1;2507:737;-1:-1:-1;;;;;;2507:737:1:o;3249:1138::-;3367:6;3375;3428:2;3416:9;3407:7;3403:23;3399:32;3396:52;;;3444:1;3441;3434:12;3396:52;3484:9;3471:23;3513:18;3554:2;3546:6;3543:14;3540:34;;;3570:1;3567;3560:12;3540:34;3593:61;3646:7;3637:6;3626:9;3622:22;3593:61;:::i;:::-;3583:71;;3673:2;3663:12;;3728:2;3717:9;3713:18;3700:32;3757:2;3747:8;3744:16;3741:36;;;3773:1;3770;3763:12;3741:36;3796:24;;;-1:-1:-1;3851:4:1;3843:13;;3839:27;-1:-1:-1;3829:55:1;;3880:1;3877;3870:12;3829:55;3916:2;3903:16;3939:60;3955:43;3995:2;3955:43;:::i;3939:60::-;4033:15;;;4115:1;4111:10;;;;4103:19;;4099:28;;;4064:12;;;;4139:19;;;4136:39;;;4171:1;4168;4161:12;4136:39;4195:11;;;;4215:142;4231:6;4226:3;4223:15;4215:142;;;4297:17;;4285:30;;4248:12;;;;4335;;;;4215:142;;;4376:5;4366:15;;;;;;;3249:1138;;;;;:::o;4392:247::-;4451:6;4504:2;4492:9;4483:7;4479:23;4475:32;4472:52;;;4520:1;4517;4510:12;4472:52;4559:9;4546:23;4578:31;4603:5;4578:31;:::i;5093:118::-;5179:5;5172:13;5165:21;5158:5;5155:32;5145:60;;5201:1;5198;5191:12;5216:241;5272:6;5325:2;5313:9;5304:7;5300:23;5296:32;5293:52;;;5341:1;5338;5331:12;5293:52;5380:9;5367:23;5399:28;5421:5;5399:28;:::i;5670:348::-;5754:6;5807:2;5795:9;5786:7;5782:23;5778:32;5775:52;;;5823:1;5820;5813:12;5775:52;5863:9;5850:23;5896:18;5888:6;5885:30;5882:50;;;5928:1;5925;5918:12;5882:50;5951:61;6004:7;5995:6;5984:9;5980:22;5951:61;:::i;:::-;5941:71;5670:348;-1:-1:-1;;;;5670:348:1:o;6023:180::-;6082:6;6135:2;6123:9;6114:7;6110:23;6106:32;6103:52;;;6151:1;6148;6141:12;6103:52;-1:-1:-1;6174:23:1;;6023:180;-1:-1:-1;6023:180:1:o;6208:388::-;6276:6;6284;6337:2;6325:9;6316:7;6312:23;6308:32;6305:52;;;6353:1;6350;6343:12;6305:52;6392:9;6379:23;6411:31;6436:5;6411:31;:::i;:::-;6461:5;-1:-1:-1;6518:2:1;6503:18;;6490:32;6531:33;6490:32;6531:33;:::i;:::-;6583:7;6573:17;;;6208:388;;;;;:::o;6601:356::-;6803:2;6785:21;;;6822:18;;;6815:30;6881:34;6876:2;6861:18;;6854:62;6948:2;6933:18;;6601:356::o;7312:127::-;7373:10;7368:3;7364:20;7361:1;7354:31;7404:4;7401:1;7394:15;7428:4;7425:1;7418:15;7444:127;7505:10;7500:3;7496:20;7493:1;7486:31;7536:4;7533:1;7526:15;7560:4;7557:1;7550:15;7576:422;7665:1;7708:5;7665:1;7722:270;7743:7;7733:8;7730:21;7722:270;;;7802:4;7798:1;7794:6;7790:17;7784:4;7781:27;7778:53;;;7811:18;;:::i;:::-;7861:7;7851:8;7847:22;7844:55;;;7881:16;;;;7844:55;7960:22;;;;7920:15;;;;7722:270;;;7726:3;7576:422;;;;;:::o;8003:806::-;8052:5;8082:8;8072:80;;-1:-1:-1;8123:1:1;8137:5;;8072:80;8171:4;8161:76;;-1:-1:-1;8208:1:1;8222:5;;8161:76;8253:4;8271:1;8266:59;;;;8339:1;8334:130;;;;8246:218;;8266:59;8296:1;8287:10;;8310:5;;;8334:130;8371:3;8361:8;8358:17;8355:43;;;8378:18;;:::i;:::-;-1:-1:-1;;8434:1:1;8420:16;;8449:5;;8246:218;;8548:2;8538:8;8535:16;8529:3;8523:4;8520:13;8516:36;8510:2;8500:8;8497:16;8492:2;8486:4;8483:12;8479:35;8476:77;8473:159;;;-1:-1:-1;8585:19:1;;;8617:5;;8473:159;8664:34;8689:8;8683:4;8664:34;:::i;:::-;8734:6;8730:1;8726:6;8722:19;8713:7;8710:32;8707:58;;;8745:18;;:::i;:::-;8783:20;;8003:806;-1:-1:-1;;;8003:806:1:o;8814:140::-;8872:5;8901:47;8942:4;8932:8;8928:19;8922:4;8901:47;:::i;8959:168::-;8999:7;9065:1;9061;9057:6;9053:14;9050:1;9047:21;9042:1;9035:9;9028:17;9024:45;9021:71;;;9072:18;;:::i;:::-;-1:-1:-1;9112:9:1;;8959:168::o;9132:175::-;9169:3;9213:4;9206:5;9202:16;9242:4;9233:7;9230:17;9227:43;;9250:18;;:::i;:::-;9299:1;9286:15;;9132:175;-1:-1:-1;;9132:175:1:o;9312:135::-;9351:3;9372:17;;;9369:43;;9392:18;;:::i;:::-;-1:-1:-1;9439:1:1;9428:13;;9312:135::o;9804:251::-;9874:6;9927:2;9915:9;9906:7;9902:23;9898:32;9895:52;;;9943:1;9940;9933:12;9895:52;9975:9;9969:16;9994:31;10019:5;9994:31;:::i;10981:306::-;11069:6;11077;11085;11138:2;11126:9;11117:7;11113:23;11109:32;11106:52;;;11154:1;11151;11144:12;11106:52;11183:9;11177:16;11167:26;;11233:2;11222:9;11218:18;11212:25;11202:35;;11277:2;11266:9;11262:18;11256:25;11246:35;;10981:306;;;;;:::o;11571:245::-;11638:6;11691:2;11679:9;11670:7;11666:23;11662:32;11659:52;;;11707:1;11704;11697:12;11659:52;11739:9;11733:16;11758:28;11780:5;11758:28;:::i;11821:128::-;11861:3;11892:1;11888:6;11885:1;11882:13;11879:39;;;11898:18;;:::i;:::-;-1:-1:-1;11934:9:1;;11821:128::o;14335:125::-;14375:4;14403:1;14400;14397:8;14394:34;;;14408:18;;:::i;:::-;-1:-1:-1;14445:9:1;;14335:125::o;14876:980::-;15138:4;15186:3;15175:9;15171:19;15217:6;15206:9;15199:25;15243:2;15281:6;15276:2;15265:9;15261:18;15254:34;15324:3;15319:2;15308:9;15304:18;15297:31;15348:6;15383;15377:13;15414:6;15406;15399:22;15452:3;15441:9;15437:19;15430:26;;15491:2;15483:6;15479:15;15465:29;;15512:1;15522:195;15536:6;15533:1;15530:13;15522:195;;;15601:13;;-1:-1:-1;;;;;15597:39:1;15585:52;;15692:15;;;;15657:12;;;;15633:1;15551:9;15522:195;;;-1:-1:-1;;;;;;;15773:32:1;;;;15768:2;15753:18;;15746:60;-1:-1:-1;;;15837:3:1;15822:19;15815:35;15734:3;14876:980;-1:-1:-1;;;14876:980:1:o;15861:217::-;15901:1;15927;15917:132;;15971:10;15966:3;15962:20;15959:1;15952:31;16006:4;16003:1;15996:15;16034:4;16031:1;16024:15;15917:132;-1:-1:-1;16063:9:1;;15861:217::o

Swarm Source

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