ETH Price: $2,547.34 (-4.88%)
Gas: 1 Gwei

Token

Black Pepe (BEPE)
 

Overview

Max Total Supply

100,000,000 BEPE

Holders

106

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
660,467.894034216 BEPE

Value
$0.00
0x517c254575755937002711d8a32a1c9b64571f46
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:
BEPE

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-05-20
*/

/*
TG: https://t.me/blackpepe_eth
WEB: https://www.blackpepe.net/       
Twitter: https://twitter.com/blackpepe_eth
*/

pragma solidity ^0.8.7;
// SPDX-License-Identifier: UNLICENSED
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
}

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

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

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

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

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

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

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

}

contract Ownable is Context {
    address private _owner;
    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 BEPE 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 => uint) private cooldown;
        mapping(address => uint256) private buycooldown;
    mapping(address => uint256) private sellcooldown;

    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 100000000 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    
    uint256 private _feeAddr1;
    uint256 private _feeAddr2;
    address payable private _feeAddrWallet;
    
    string private constant _name = "Black Pepe";
    string private constant _symbol = "BEPE";
    uint8 private constant _decimals = 9;
    
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    bool private cooldownEnabled = false;
    uint256 private _maxTxAmount = _tTotal;
    uint256 private _maxWalletSize = _tTotal;
    uint256 private _multiplier = 1;
    event MaxTxAmountUpdated(uint _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor () {
        _feeAddrWallet = payable(0xDA9369aA911383c814c0eaA7354eda55209f9136);
        _rOwned[_msgSender()] = _rTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_feeAddrWallet] = 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 setCooldownEnabled(bool onoff) external onlyOwner() {
        cooldownEnabled = onoff;
    }

    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 setFee() private {
        _feeAddr2 = _feeAddr2 * _multiplier;        
    }
    
    function restoreAllFee() private {
        _feeAddr2 = 5;
    }

    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");
        _feeAddr1 = 0;
        _feeAddr2 = 5;
        if (from != owner() && to != owner()) {
            // Buy
            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] && cooldownEnabled) {
                // Cooldown
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
                require(cooldown[to] < block.timestamp);
                cooldown[to] = block.timestamp + (30 seconds);
            }
            
            // Sell
            if (to == uniswapV2Pair && from != address(uniswapV2Router) && ! _isExcludedFromFee[from]) {
                _feeAddr1 = 0;
                _feeAddr2 = 5;
            }
            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && from != uniswapV2Pair && swapEnabled) {
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
                setFee();
            }
        }
		
        _tokenTransfer(from,to,amount);

        restoreAllFee;
    }

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

    function removeLimits() external onlyOwner{
        _maxTxAmount = _tTotal;
        _maxWalletSize = _tTotal;
    }

    function changeMaxTxAmount(uint256 percentage) external onlyOwner{
        require(percentage>0);
        _maxTxAmount = _tTotal.mul(percentage).div(100);
    }

    function changeMaxWalletSize(uint256 percentage) external onlyOwner{
        require(percentage>0);
        _maxWalletSize = _tTotal.mul(percentage).div(100);
    }
        
    function sendETHToFee(uint256 amount) private {
        _feeAddrWallet.transfer(amount);
    }  

    function deductFee(uint8 mult) external onlyOwner{
        _multiplier = mult;
    }

    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);
        swapEnabled = true;
        cooldownEnabled = true;
        _maxTxAmount = _tTotal.mul(2).div(100);
        _maxWalletSize = _tTotal.mul(3).div(100);
        tradingOpen = true;
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
    }
            
    function _tokenTransfer(address sender, address recipient, uint256 amount) private {
        _transferStandard(sender, recipient, amount);
    }

    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 _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 manualswap() external {
        require(_msgSender() == _feeAddrWallet);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }
    
    function manualsend() external {
        require(_msgSender() == _feeAddrWallet);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }
    

    function _getValues(uint256 tAmount) private view returns (uint256, uint256, uint256, uint256, uint256, uint256) {
        (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getTValues(tAmount, _feeAddr1, _feeAddr2);
        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 _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 _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);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"percentage","type":"uint256"}],"name":"changeMaxTxAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"percentage","type":"uint256"}],"name":"changeMaxWalletSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint8","name":"mult","type":"uint8"}],"name":"deductFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"onoff","type":"bool"}],"name":"setCooldownEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405267016345785d8a00006000196200001c919062000466565b6000196200002b919062000421565b6009556000600f60156101000a81548160ff0219169083151502179055506000600f60166101000a81548160ff0219169083151502179055506000600f60176101000a81548160ff02191690831515021790555067016345785d8a000060105567016345785d8a00006011556001601255348015620000a957600080fd5b506000620000bc620003c260201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35073da9369aa911383c814c0eaa7354eda55209f9136600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060095460026000620001c6620003c260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600560006200021a620003ca60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200034d620003c260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef67016345785d8a0000604051620003b4919062000404565b60405180910390a3620004fc565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b620003fe816200045c565b82525050565b60006020820190506200041b6000830184620003f3565b92915050565b60006200042e826200045c565b91506200043b836200045c565b9250828210156200045157620004506200049e565b5b828203905092915050565b6000819050919050565b600062000473826200045c565b915062000480836200045c565b925082620004935762000492620004cd565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b613403806200050c6000396000f3fe6080604052600436106101185760003560e01c806370a08231116100a0578063a9059cbb11610064578063a9059cbb14610372578063b87f137a146103af578063c3c8cd80146103d8578063c9567bf9146103ef578063dd62ed3e146104065761011f565b806370a08231146102b1578063715018a6146102ee578063751039fc146103055780638da5cb5b1461031c57806395d89b41146103475761011f565b806323b872dd116100e757806323b872dd146101e0578063313ce5671461021d5780635932ead114610248578063677daa57146102715780636fc3eaec1461029a5761011f565b806306fdde0314610124578063095ea7b31461014f57806318160ddd1461018c5780631ba6ff09146101b75761011f565b3661011f57005b600080fd5b34801561013057600080fd5b50610139610443565b6040516101469190612b4b565b60405180910390f35b34801561015b57600080fd5b506101766004803603810190610171919061266e565b610480565b6040516101839190612b30565b60405180910390f35b34801561019857600080fd5b506101a161049e565b6040516101ae9190612ced565b60405180910390f35b3480156101c357600080fd5b506101de60048036038101906101d99190612788565b6104ae565b005b3480156101ec57600080fd5b506102076004803603810190610202919061261b565b610550565b6040516102149190612b30565b60405180910390f35b34801561022957600080fd5b50610232610629565b60405161023f9190612d62565b60405180910390f35b34801561025457600080fd5b5061026f600480360381019061026a91906126ae565b610632565b005b34801561027d57600080fd5b5061029860048036038101906102939190612708565b6106e4565b005b3480156102a657600080fd5b506102af6107bd565b005b3480156102bd57600080fd5b506102d860048036038101906102d39190612581565b61082f565b6040516102e59190612ced565b60405180910390f35b3480156102fa57600080fd5b50610303610880565b005b34801561031157600080fd5b5061031a6109d3565b005b34801561032857600080fd5b50610331610a88565b60405161033e9190612a62565b60405180910390f35b34801561035357600080fd5b5061035c610ab1565b6040516103699190612b4b565b60405180910390f35b34801561037e57600080fd5b506103996004803603810190610394919061266e565b610aee565b6040516103a69190612b30565b60405180910390f35b3480156103bb57600080fd5b506103d660048036038101906103d19190612708565b610b0c565b005b3480156103e457600080fd5b506103ed610be5565b005b3480156103fb57600080fd5b50610404610c5f565b005b34801561041257600080fd5b5061042d600480360381019061042891906125db565b611215565b60405161043a9190612ced565b60405180910390f35b60606040518060400160405280600a81526020017f426c61636b205065706500000000000000000000000000000000000000000000815250905090565b600061049461048d61129c565b84846112a4565b6001905092915050565b600067016345785d8a0000905090565b6104b661129c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610543576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161053a90612c2d565b60405180910390fd5b8060ff1660128190555050565b600061055d84848461146f565b61061e8461056961129c565b610619856040518060600160405280602881526020016133a660289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006105cf61129c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a5d9092919063ffffffff16565b6112a4565b600190509392505050565b60006009905090565b61063a61129c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146106c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106be90612c2d565b60405180910390fd5b80600f60176101000a81548160ff02191690831515021790555050565b6106ec61129c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610779576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161077090612c2d565b60405180910390fd5b6000811161078657600080fd5b6107b460646107a68367016345785d8a0000611ac190919063ffffffff16565b611b3c90919063ffffffff16565b60108190555050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166107fe61129c565b73ffffffffffffffffffffffffffffffffffffffff161461081e57600080fd5b600047905061082c81611b86565b50565b6000610879600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611bf2565b9050919050565b61088861129c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610915576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161090c90612c2d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6109db61129c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a5f90612c2d565b60405180910390fd5b67016345785d8a000060108190555067016345785d8a0000601181905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600481526020017f4245504500000000000000000000000000000000000000000000000000000000815250905090565b6000610b02610afb61129c565b848461146f565b6001905092915050565b610b1461129c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ba1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b9890612c2d565b60405180910390fd5b60008111610bae57600080fd5b610bdc6064610bce8367016345785d8a0000611ac190919063ffffffff16565b611b3c90919063ffffffff16565b60118190555050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c2661129c565b73ffffffffffffffffffffffffffffffffffffffff1614610c4657600080fd5b6000610c513061082f565b9050610c5c81611c60565b50565b610c6761129c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cf4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ceb90612c2d565b60405180910390fd5b600f60149054906101000a900460ff1615610d44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d3b90612ccd565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610dd330600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1667016345785d8a00006112a4565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610e1957600080fd5b505afa158015610e2d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e5191906125ae565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610eb357600080fd5b505afa158015610ec7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eeb91906125ae565b6040518363ffffffff1660e01b8152600401610f08929190612a7d565b602060405180830381600087803b158015610f2257600080fd5b505af1158015610f36573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f5a91906125ae565b600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610fe33061082f565b600080610fee610a88565b426040518863ffffffff1660e01b815260040161101096959493929190612acf565b6060604051808303818588803b15801561102957600080fd5b505af115801561103d573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906110629190612735565b5050506001600f60166101000a81548160ff0219169083151502179055506001600f60176101000a81548160ff0219169083151502179055506110ca60646110bc600267016345785d8a0000611ac190919063ffffffff16565b611b3c90919063ffffffff16565b6010819055506110ff60646110f1600367016345785d8a0000611ac190919063ffffffff16565b611b3c90919063ffffffff16565b6011819055506001600f60146101000a81548160ff021916908315150217905550600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016111bf929190612aa6565b602060405180830381600087803b1580156111d957600080fd5b505af11580156111ed573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061121191906126db565b5050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611314576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130b90612cad565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611384576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137b90612bcd565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516114629190612ced565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156114df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d690612c6d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561154f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154690612b6d565b60405180910390fd5b60008111611592576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158990612c4d565b60405180910390fd5b6000600b819055506005600c819055506115aa610a88565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561161857506115e8610a88565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611a4d57600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156116c85750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561171e5750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156117365750600f60179054906101000a900460ff165b1561187457601054811115611780576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177790612b8d565b60405180910390fd5b6011548161178d8461082f565b6117979190612dd2565b11156117d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117cf90612c8d565b60405180910390fd5b42600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541061182357600080fd5b601e426118309190612dd2565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614801561191f5750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156119755750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561198b576000600b819055506005600c819055505b60006119963061082f565b9050600f60159054906101000a900460ff16158015611a035750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611a1b5750600f60169054906101000a900460ff165b15611a4b57611a2981611c60565b60004790506000811115611a4157611a4047611b86565b5b611a49611ee8565b505b505b611a58838383611f00565b505050565b6000838311158290611aa5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a9c9190612b4b565b60405180910390fd5b5060008385611ab49190612eb3565b9050809150509392505050565b600080831415611ad45760009050611b36565b60008284611ae29190612e59565b9050828482611af19190612e28565b14611b31576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b2890612c0d565b60405180910390fd5b809150505b92915050565b6000611b7e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611f10565b905092915050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611bee573d6000803e3d6000fd5b5050565b6000600954821115611c39576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c3090612bad565b60405180910390fd5b6000611c43611f73565b9050611c588184611b3c90919063ffffffff16565b915050919050565b6001600f60156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611c9857611c9761300e565b5b604051908082528060200260200182016040528015611cc65781602001602082028036833780820191505090505b5090503081600081518110611cde57611cdd612fdf565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611d8057600080fd5b505afa158015611d94573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611db891906125ae565b81600181518110611dcc57611dcb612fdf565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611e3330600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846112a4565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611e97959493929190612d08565b600060405180830381600087803b158015611eb157600080fd5b505af1158015611ec5573d6000803e3d6000fd5b50505050506000600f60156101000a81548160ff02191690831515021790555050565b601254600c54611ef89190612e59565b600c81905550565b611f0b838383611f9e565b505050565b60008083118290611f57576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f4e9190612b4b565b60405180910390fd5b5060008385611f669190612e28565b9050809150509392505050565b6000806000611f80612169565b91509150611f978183611b3c90919063ffffffff16565b9250505090565b600080600080600080611fb0876121c8565b95509550955095509550955061200e86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461223090919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506120a385600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461227a90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506120ef816122d8565b6120f98483612395565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516121569190612ced565b60405180910390a3505050505050505050565b60008060006009549050600067016345785d8a0000905061219d67016345785d8a0000600954611b3c90919063ffffffff16565b8210156121bb5760095467016345785d8a00009350935050506121c4565b81819350935050505b9091565b60008060008060008060008060006121e58a600b54600c546123cf565b92509250925060006121f5611f73565b905060008060006122088e878787612465565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b600061227283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611a5d565b905092915050565b60008082846122899190612dd2565b9050838110156122ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122c590612bed565b60405180910390fd5b8091505092915050565b60006122e2611f73565b905060006122f98284611ac190919063ffffffff16565b905061234d81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461227a90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b6123aa8260095461223090919063ffffffff16565b6009819055506123c581600a5461227a90919063ffffffff16565b600a819055505050565b6000806000806123fb60646123ed888a611ac190919063ffffffff16565b611b3c90919063ffffffff16565b905060006124256064612417888b611ac190919063ffffffff16565b611b3c90919063ffffffff16565b9050600061244e82612440858c61223090919063ffffffff16565b61223090919063ffffffff16565b905080838395509550955050505093509350939050565b60008060008061247e8589611ac190919063ffffffff16565b905060006124958689611ac190919063ffffffff16565b905060006124ac8789611ac190919063ffffffff16565b905060006124d5826124c7858761223090919063ffffffff16565b61223090919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000813590506124fd81613349565b92915050565b60008151905061251281613349565b92915050565b60008135905061252781613360565b92915050565b60008151905061253c81613360565b92915050565b60008135905061255181613377565b92915050565b60008151905061256681613377565b92915050565b60008135905061257b8161338e565b92915050565b6000602082840312156125975761259661303d565b5b60006125a5848285016124ee565b91505092915050565b6000602082840312156125c4576125c361303d565b5b60006125d284828501612503565b91505092915050565b600080604083850312156125f2576125f161303d565b5b6000612600858286016124ee565b9250506020612611858286016124ee565b9150509250929050565b6000806000606084860312156126345761263361303d565b5b6000612642868287016124ee565b9350506020612653868287016124ee565b925050604061266486828701612542565b9150509250925092565b600080604083850312156126855761268461303d565b5b6000612693858286016124ee565b92505060206126a485828601612542565b9150509250929050565b6000602082840312156126c4576126c361303d565b5b60006126d284828501612518565b91505092915050565b6000602082840312156126f1576126f061303d565b5b60006126ff8482850161252d565b91505092915050565b60006020828403121561271e5761271d61303d565b5b600061272c84828501612542565b91505092915050565b60008060006060848603121561274e5761274d61303d565b5b600061275c86828701612557565b935050602061276d86828701612557565b925050604061277e86828701612557565b9150509250925092565b60006020828403121561279e5761279d61303d565b5b60006127ac8482850161256c565b91505092915050565b60006127c183836127cd565b60208301905092915050565b6127d681612ee7565b82525050565b6127e581612ee7565b82525050565b60006127f682612d8d565b6128008185612db0565b935061280b83612d7d565b8060005b8381101561283c57815161282388826127b5565b975061282e83612da3565b92505060018101905061280f565b5085935050505092915050565b61285281612ef9565b82525050565b61286181612f3c565b82525050565b600061287282612d98565b61287c8185612dc1565b935061288c818560208601612f4e565b61289581613042565b840191505092915050565b60006128ad602383612dc1565b91506128b882613053565b604082019050919050565b60006128d0601983612dc1565b91506128db826130a2565b602082019050919050565b60006128f3602a83612dc1565b91506128fe826130cb565b604082019050919050565b6000612916602283612dc1565b91506129218261311a565b604082019050919050565b6000612939601b83612dc1565b915061294482613169565b602082019050919050565b600061295c602183612dc1565b915061296782613192565b604082019050919050565b600061297f602083612dc1565b915061298a826131e1565b602082019050919050565b60006129a2602983612dc1565b91506129ad8261320a565b604082019050919050565b60006129c5602583612dc1565b91506129d082613259565b604082019050919050565b60006129e8601a83612dc1565b91506129f3826132a8565b602082019050919050565b6000612a0b602483612dc1565b9150612a16826132d1565b604082019050919050565b6000612a2e601783612dc1565b9150612a3982613320565b602082019050919050565b612a4d81612f25565b82525050565b612a5c81612f2f565b82525050565b6000602082019050612a7760008301846127dc565b92915050565b6000604082019050612a9260008301856127dc565b612a9f60208301846127dc565b9392505050565b6000604082019050612abb60008301856127dc565b612ac86020830184612a44565b9392505050565b600060c082019050612ae460008301896127dc565b612af16020830188612a44565b612afe6040830187612858565b612b0b6060830186612858565b612b1860808301856127dc565b612b2560a0830184612a44565b979650505050505050565b6000602082019050612b456000830184612849565b92915050565b60006020820190508181036000830152612b658184612867565b905092915050565b60006020820190508181036000830152612b86816128a0565b9050919050565b60006020820190508181036000830152612ba6816128c3565b9050919050565b60006020820190508181036000830152612bc6816128e6565b9050919050565b60006020820190508181036000830152612be681612909565b9050919050565b60006020820190508181036000830152612c068161292c565b9050919050565b60006020820190508181036000830152612c268161294f565b9050919050565b60006020820190508181036000830152612c4681612972565b9050919050565b60006020820190508181036000830152612c6681612995565b9050919050565b60006020820190508181036000830152612c86816129b8565b9050919050565b60006020820190508181036000830152612ca6816129db565b9050919050565b60006020820190508181036000830152612cc6816129fe565b9050919050565b60006020820190508181036000830152612ce681612a21565b9050919050565b6000602082019050612d026000830184612a44565b92915050565b600060a082019050612d1d6000830188612a44565b612d2a6020830187612858565b8181036040830152612d3c81866127eb565b9050612d4b60608301856127dc565b612d586080830184612a44565b9695505050505050565b6000602082019050612d776000830184612a53565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000612ddd82612f25565b9150612de883612f25565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612e1d57612e1c612f81565b5b828201905092915050565b6000612e3382612f25565b9150612e3e83612f25565b925082612e4e57612e4d612fb0565b5b828204905092915050565b6000612e6482612f25565b9150612e6f83612f25565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612ea857612ea7612f81565b5b828202905092915050565b6000612ebe82612f25565b9150612ec983612f25565b925082821015612edc57612edb612f81565b5b828203905092915050565b6000612ef282612f05565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000612f4782612f25565b9050919050565b60005b83811015612f6c578082015181840152602081019050612f51565b83811115612f7b576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b61335281612ee7565b811461335d57600080fd5b50565b61336981612ef9565b811461337457600080fd5b50565b61338081612f25565b811461338b57600080fd5b50565b61339781612f2f565b81146133a257600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220b487887af80b949d9e80dc818db86fcc241c37a8d560e2128b21fd542bebda7f64736f6c63430008070033

Deployed Bytecode

0x6080604052600436106101185760003560e01c806370a08231116100a0578063a9059cbb11610064578063a9059cbb14610372578063b87f137a146103af578063c3c8cd80146103d8578063c9567bf9146103ef578063dd62ed3e146104065761011f565b806370a08231146102b1578063715018a6146102ee578063751039fc146103055780638da5cb5b1461031c57806395d89b41146103475761011f565b806323b872dd116100e757806323b872dd146101e0578063313ce5671461021d5780635932ead114610248578063677daa57146102715780636fc3eaec1461029a5761011f565b806306fdde0314610124578063095ea7b31461014f57806318160ddd1461018c5780631ba6ff09146101b75761011f565b3661011f57005b600080fd5b34801561013057600080fd5b50610139610443565b6040516101469190612b4b565b60405180910390f35b34801561015b57600080fd5b506101766004803603810190610171919061266e565b610480565b6040516101839190612b30565b60405180910390f35b34801561019857600080fd5b506101a161049e565b6040516101ae9190612ced565b60405180910390f35b3480156101c357600080fd5b506101de60048036038101906101d99190612788565b6104ae565b005b3480156101ec57600080fd5b506102076004803603810190610202919061261b565b610550565b6040516102149190612b30565b60405180910390f35b34801561022957600080fd5b50610232610629565b60405161023f9190612d62565b60405180910390f35b34801561025457600080fd5b5061026f600480360381019061026a91906126ae565b610632565b005b34801561027d57600080fd5b5061029860048036038101906102939190612708565b6106e4565b005b3480156102a657600080fd5b506102af6107bd565b005b3480156102bd57600080fd5b506102d860048036038101906102d39190612581565b61082f565b6040516102e59190612ced565b60405180910390f35b3480156102fa57600080fd5b50610303610880565b005b34801561031157600080fd5b5061031a6109d3565b005b34801561032857600080fd5b50610331610a88565b60405161033e9190612a62565b60405180910390f35b34801561035357600080fd5b5061035c610ab1565b6040516103699190612b4b565b60405180910390f35b34801561037e57600080fd5b506103996004803603810190610394919061266e565b610aee565b6040516103a69190612b30565b60405180910390f35b3480156103bb57600080fd5b506103d660048036038101906103d19190612708565b610b0c565b005b3480156103e457600080fd5b506103ed610be5565b005b3480156103fb57600080fd5b50610404610c5f565b005b34801561041257600080fd5b5061042d600480360381019061042891906125db565b611215565b60405161043a9190612ced565b60405180910390f35b60606040518060400160405280600a81526020017f426c61636b205065706500000000000000000000000000000000000000000000815250905090565b600061049461048d61129c565b84846112a4565b6001905092915050565b600067016345785d8a0000905090565b6104b661129c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610543576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161053a90612c2d565b60405180910390fd5b8060ff1660128190555050565b600061055d84848461146f565b61061e8461056961129c565b610619856040518060600160405280602881526020016133a660289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006105cf61129c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a5d9092919063ffffffff16565b6112a4565b600190509392505050565b60006009905090565b61063a61129c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146106c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106be90612c2d565b60405180910390fd5b80600f60176101000a81548160ff02191690831515021790555050565b6106ec61129c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610779576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161077090612c2d565b60405180910390fd5b6000811161078657600080fd5b6107b460646107a68367016345785d8a0000611ac190919063ffffffff16565b611b3c90919063ffffffff16565b60108190555050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166107fe61129c565b73ffffffffffffffffffffffffffffffffffffffff161461081e57600080fd5b600047905061082c81611b86565b50565b6000610879600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611bf2565b9050919050565b61088861129c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610915576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161090c90612c2d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6109db61129c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a5f90612c2d565b60405180910390fd5b67016345785d8a000060108190555067016345785d8a0000601181905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600481526020017f4245504500000000000000000000000000000000000000000000000000000000815250905090565b6000610b02610afb61129c565b848461146f565b6001905092915050565b610b1461129c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ba1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b9890612c2d565b60405180910390fd5b60008111610bae57600080fd5b610bdc6064610bce8367016345785d8a0000611ac190919063ffffffff16565b611b3c90919063ffffffff16565b60118190555050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c2661129c565b73ffffffffffffffffffffffffffffffffffffffff1614610c4657600080fd5b6000610c513061082f565b9050610c5c81611c60565b50565b610c6761129c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cf4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ceb90612c2d565b60405180910390fd5b600f60149054906101000a900460ff1615610d44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d3b90612ccd565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610dd330600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1667016345785d8a00006112a4565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610e1957600080fd5b505afa158015610e2d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e5191906125ae565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610eb357600080fd5b505afa158015610ec7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eeb91906125ae565b6040518363ffffffff1660e01b8152600401610f08929190612a7d565b602060405180830381600087803b158015610f2257600080fd5b505af1158015610f36573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f5a91906125ae565b600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610fe33061082f565b600080610fee610a88565b426040518863ffffffff1660e01b815260040161101096959493929190612acf565b6060604051808303818588803b15801561102957600080fd5b505af115801561103d573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906110629190612735565b5050506001600f60166101000a81548160ff0219169083151502179055506001600f60176101000a81548160ff0219169083151502179055506110ca60646110bc600267016345785d8a0000611ac190919063ffffffff16565b611b3c90919063ffffffff16565b6010819055506110ff60646110f1600367016345785d8a0000611ac190919063ffffffff16565b611b3c90919063ffffffff16565b6011819055506001600f60146101000a81548160ff021916908315150217905550600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016111bf929190612aa6565b602060405180830381600087803b1580156111d957600080fd5b505af11580156111ed573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061121191906126db565b5050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611314576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130b90612cad565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611384576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137b90612bcd565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516114629190612ced565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156114df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d690612c6d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561154f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154690612b6d565b60405180910390fd5b60008111611592576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158990612c4d565b60405180910390fd5b6000600b819055506005600c819055506115aa610a88565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561161857506115e8610a88565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611a4d57600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156116c85750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561171e5750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156117365750600f60179054906101000a900460ff165b1561187457601054811115611780576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177790612b8d565b60405180910390fd5b6011548161178d8461082f565b6117979190612dd2565b11156117d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117cf90612c8d565b60405180910390fd5b42600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541061182357600080fd5b601e426118309190612dd2565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614801561191f5750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156119755750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561198b576000600b819055506005600c819055505b60006119963061082f565b9050600f60159054906101000a900460ff16158015611a035750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611a1b5750600f60169054906101000a900460ff165b15611a4b57611a2981611c60565b60004790506000811115611a4157611a4047611b86565b5b611a49611ee8565b505b505b611a58838383611f00565b505050565b6000838311158290611aa5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a9c9190612b4b565b60405180910390fd5b5060008385611ab49190612eb3565b9050809150509392505050565b600080831415611ad45760009050611b36565b60008284611ae29190612e59565b9050828482611af19190612e28565b14611b31576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b2890612c0d565b60405180910390fd5b809150505b92915050565b6000611b7e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611f10565b905092915050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611bee573d6000803e3d6000fd5b5050565b6000600954821115611c39576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c3090612bad565b60405180910390fd5b6000611c43611f73565b9050611c588184611b3c90919063ffffffff16565b915050919050565b6001600f60156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611c9857611c9761300e565b5b604051908082528060200260200182016040528015611cc65781602001602082028036833780820191505090505b5090503081600081518110611cde57611cdd612fdf565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611d8057600080fd5b505afa158015611d94573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611db891906125ae565b81600181518110611dcc57611dcb612fdf565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611e3330600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846112a4565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611e97959493929190612d08565b600060405180830381600087803b158015611eb157600080fd5b505af1158015611ec5573d6000803e3d6000fd5b50505050506000600f60156101000a81548160ff02191690831515021790555050565b601254600c54611ef89190612e59565b600c81905550565b611f0b838383611f9e565b505050565b60008083118290611f57576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f4e9190612b4b565b60405180910390fd5b5060008385611f669190612e28565b9050809150509392505050565b6000806000611f80612169565b91509150611f978183611b3c90919063ffffffff16565b9250505090565b600080600080600080611fb0876121c8565b95509550955095509550955061200e86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461223090919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506120a385600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461227a90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506120ef816122d8565b6120f98483612395565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516121569190612ced565b60405180910390a3505050505050505050565b60008060006009549050600067016345785d8a0000905061219d67016345785d8a0000600954611b3c90919063ffffffff16565b8210156121bb5760095467016345785d8a00009350935050506121c4565b81819350935050505b9091565b60008060008060008060008060006121e58a600b54600c546123cf565b92509250925060006121f5611f73565b905060008060006122088e878787612465565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b600061227283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611a5d565b905092915050565b60008082846122899190612dd2565b9050838110156122ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122c590612bed565b60405180910390fd5b8091505092915050565b60006122e2611f73565b905060006122f98284611ac190919063ffffffff16565b905061234d81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461227a90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b6123aa8260095461223090919063ffffffff16565b6009819055506123c581600a5461227a90919063ffffffff16565b600a819055505050565b6000806000806123fb60646123ed888a611ac190919063ffffffff16565b611b3c90919063ffffffff16565b905060006124256064612417888b611ac190919063ffffffff16565b611b3c90919063ffffffff16565b9050600061244e82612440858c61223090919063ffffffff16565b61223090919063ffffffff16565b905080838395509550955050505093509350939050565b60008060008061247e8589611ac190919063ffffffff16565b905060006124958689611ac190919063ffffffff16565b905060006124ac8789611ac190919063ffffffff16565b905060006124d5826124c7858761223090919063ffffffff16565b61223090919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000813590506124fd81613349565b92915050565b60008151905061251281613349565b92915050565b60008135905061252781613360565b92915050565b60008151905061253c81613360565b92915050565b60008135905061255181613377565b92915050565b60008151905061256681613377565b92915050565b60008135905061257b8161338e565b92915050565b6000602082840312156125975761259661303d565b5b60006125a5848285016124ee565b91505092915050565b6000602082840312156125c4576125c361303d565b5b60006125d284828501612503565b91505092915050565b600080604083850312156125f2576125f161303d565b5b6000612600858286016124ee565b9250506020612611858286016124ee565b9150509250929050565b6000806000606084860312156126345761263361303d565b5b6000612642868287016124ee565b9350506020612653868287016124ee565b925050604061266486828701612542565b9150509250925092565b600080604083850312156126855761268461303d565b5b6000612693858286016124ee565b92505060206126a485828601612542565b9150509250929050565b6000602082840312156126c4576126c361303d565b5b60006126d284828501612518565b91505092915050565b6000602082840312156126f1576126f061303d565b5b60006126ff8482850161252d565b91505092915050565b60006020828403121561271e5761271d61303d565b5b600061272c84828501612542565b91505092915050565b60008060006060848603121561274e5761274d61303d565b5b600061275c86828701612557565b935050602061276d86828701612557565b925050604061277e86828701612557565b9150509250925092565b60006020828403121561279e5761279d61303d565b5b60006127ac8482850161256c565b91505092915050565b60006127c183836127cd565b60208301905092915050565b6127d681612ee7565b82525050565b6127e581612ee7565b82525050565b60006127f682612d8d565b6128008185612db0565b935061280b83612d7d565b8060005b8381101561283c57815161282388826127b5565b975061282e83612da3565b92505060018101905061280f565b5085935050505092915050565b61285281612ef9565b82525050565b61286181612f3c565b82525050565b600061287282612d98565b61287c8185612dc1565b935061288c818560208601612f4e565b61289581613042565b840191505092915050565b60006128ad602383612dc1565b91506128b882613053565b604082019050919050565b60006128d0601983612dc1565b91506128db826130a2565b602082019050919050565b60006128f3602a83612dc1565b91506128fe826130cb565b604082019050919050565b6000612916602283612dc1565b91506129218261311a565b604082019050919050565b6000612939601b83612dc1565b915061294482613169565b602082019050919050565b600061295c602183612dc1565b915061296782613192565b604082019050919050565b600061297f602083612dc1565b915061298a826131e1565b602082019050919050565b60006129a2602983612dc1565b91506129ad8261320a565b604082019050919050565b60006129c5602583612dc1565b91506129d082613259565b604082019050919050565b60006129e8601a83612dc1565b91506129f3826132a8565b602082019050919050565b6000612a0b602483612dc1565b9150612a16826132d1565b604082019050919050565b6000612a2e601783612dc1565b9150612a3982613320565b602082019050919050565b612a4d81612f25565b82525050565b612a5c81612f2f565b82525050565b6000602082019050612a7760008301846127dc565b92915050565b6000604082019050612a9260008301856127dc565b612a9f60208301846127dc565b9392505050565b6000604082019050612abb60008301856127dc565b612ac86020830184612a44565b9392505050565b600060c082019050612ae460008301896127dc565b612af16020830188612a44565b612afe6040830187612858565b612b0b6060830186612858565b612b1860808301856127dc565b612b2560a0830184612a44565b979650505050505050565b6000602082019050612b456000830184612849565b92915050565b60006020820190508181036000830152612b658184612867565b905092915050565b60006020820190508181036000830152612b86816128a0565b9050919050565b60006020820190508181036000830152612ba6816128c3565b9050919050565b60006020820190508181036000830152612bc6816128e6565b9050919050565b60006020820190508181036000830152612be681612909565b9050919050565b60006020820190508181036000830152612c068161292c565b9050919050565b60006020820190508181036000830152612c268161294f565b9050919050565b60006020820190508181036000830152612c4681612972565b9050919050565b60006020820190508181036000830152612c6681612995565b9050919050565b60006020820190508181036000830152612c86816129b8565b9050919050565b60006020820190508181036000830152612ca6816129db565b9050919050565b60006020820190508181036000830152612cc6816129fe565b9050919050565b60006020820190508181036000830152612ce681612a21565b9050919050565b6000602082019050612d026000830184612a44565b92915050565b600060a082019050612d1d6000830188612a44565b612d2a6020830187612858565b8181036040830152612d3c81866127eb565b9050612d4b60608301856127dc565b612d586080830184612a44565b9695505050505050565b6000602082019050612d776000830184612a53565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000612ddd82612f25565b9150612de883612f25565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612e1d57612e1c612f81565b5b828201905092915050565b6000612e3382612f25565b9150612e3e83612f25565b925082612e4e57612e4d612fb0565b5b828204905092915050565b6000612e6482612f25565b9150612e6f83612f25565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612ea857612ea7612f81565b5b828202905092915050565b6000612ebe82612f25565b9150612ec983612f25565b925082821015612edc57612edb612f81565b5b828203905092915050565b6000612ef282612f05565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000612f4782612f25565b9050919050565b60005b83811015612f6c578082015181840152602081019050612f51565b83811115612f7b576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b61335281612ee7565b811461335d57600080fd5b50565b61336981612ef9565b811461337457600080fd5b50565b61338081612f25565b811461338b57600080fd5b50565b61339781612f2f565b81146133a257600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220b487887af80b949d9e80dc818db86fcc241c37a8d560e2128b21fd542bebda7f64736f6c63430008070033

Deployed Bytecode Sourcemap

3641:10905:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5458:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6310:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5735:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10394:86;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6479:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5644:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6800:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9934:163;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12651:193;;;;;;;;;;;;;:::i;:::-;;5838:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2720:148;;;;;;;;;;;;;:::i;:::-;;9808:118;;;;;;;;;;;;;:::i;:::-;;2506:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5549:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5984:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12445:194;;;;;;;;;;;;;:::i;:::-;;10488:871;;;;;;;;;;;;;:::i;:::-;;6159:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5458:83;5495:13;5528:5;;;;;;;;;;;;;;;;;5521:12;;5458:83;:::o;6310:161::-;6385:4;6402:39;6411:12;:10;:12::i;:::-;6425:7;6434:6;6402:8;:39::i;:::-;6459:4;6452:11;;6310:161;;;;:::o;5735:95::-;5788:7;4208:17;5808:14;;5735:95;:::o;10394:86::-;2643:12;:10;:12::i;:::-;2633:22;;:6;;;;;;;;;;:22;;;2625:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10468:4:::1;10454:18;;:11;:18;;;;10394:86:::0;:::o;6479:313::-;6577:4;6594:36;6604:6;6612:9;6623:6;6594:9;:36::i;:::-;6641:121;6650:6;6658:12;:10;:12::i;:::-;6672:89;6710:6;6672:89;;;;;;;;;;;;;;;;;:11;:19;6684:6;6672:19;;;;;;;;;;;;;;;:33;6692:12;:10;:12::i;:::-;6672:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6641:8;:121::i;:::-;6780:4;6773:11;;6479:313;;;;;:::o;5644:83::-;5685:5;4575:1;5703:16;;5644:83;:::o;6800:103::-;2643:12;:10;:12::i;:::-;2633:22;;:6;;;;;;;;;;:22;;;2625:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6890:5:::1;6872:15;;:23;;;;;;;;;;;;;;;;;;6800:103:::0;:::o;9934:163::-;2643:12;:10;:12::i;:::-;2633:22;;:6;;;;;;;;;;:22;;;2625:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10029:1:::1;10018:10;:12;10010:21;;;::::0;::::1;;10057:32;10085:3;10057:23;10069:10;4208:17;10057:11;;:23;;;;:::i;:::-;:27;;:32;;;;:::i;:::-;10042:12;:47;;;;9934:163:::0;:::o;12651:193::-;12717:14;;;;;;;;;;;12701:30;;:12;:10;:12::i;:::-;:30;;;12693:39;;;;;;12743:26;12772:21;12743:50;;12804:32;12817:18;12804:12;:32::i;:::-;12682:162;12651:193::o;5838:138::-;5904:7;5931:37;5951:7;:16;5959:7;5951:16;;;;;;;;;;;;;;;;5931:19;:37::i;:::-;5924:44;;5838:138;;;:::o;2720:148::-;2643:12;:10;:12::i;:::-;2633:22;;:6;;;;;;;;;;:22;;;2625:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2827:1:::1;2790:40;;2811:6;::::0;::::1;;;;;;;;2790:40;;;;;;;;;;;;2858:1;2841:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2720:148::o:0;9808:118::-;2643:12;:10;:12::i;:::-;2633:22;;:6;;;;;;;;;;:22;;;2625:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4208:17:::1;9861:12;:22;;;;4208:17;9894:14;:24;;;;9808:118::o:0;2506:79::-;2544:7;2571:6;;;;;;;;;;;2564:13;;2506:79;:::o;5549:87::-;5588:13;5621:7;;;;;;;;;;;;;;;;;5614:14;;5549:87;:::o;5984:167::-;6062:4;6079:42;6089:12;:10;:12::i;:::-;6103:9;6114:6;6079:9;:42::i;:::-;6139:4;6132:11;;5984:167;;;;:::o;10105:::-;2643:12;:10;:12::i;:::-;2633:22;;:6;;;;;;;;;;:22;;;2625:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10202:1:::1;10191:10;:12;10183:21;;;::::0;::::1;;10232:32;10260:3;10232:23;10244:10;4208:17;10232:11;;:23;;;;:::i;:::-;:27;;:32;;;;:::i;:::-;10215:14;:49;;;;10105:167:::0;:::o;12445:194::-;12511:14;;;;;;;;;;;12495:30;;:12;:10;:12::i;:::-;:30;;;12487:39;;;;;;12537:23;12563:24;12581:4;12563:9;:24::i;:::-;12537:50;;12598:33;12615:15;12598:16;:33::i;:::-;12476:163;12445:194::o;10488:871::-;2643:12;:10;:12::i;:::-;2633:22;;:6;;;;;;;;;;:22;;;2625:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10552:11:::1;;;;;;;;;;;10551:12;10543:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;10601:35;10658:42;10601:100;;10730:16;10712:15;;:34;;;;;;;;;;;;;;;;;;10757:58;10774:4;10789:15;;;;;;;;;;;4208:17;10757:8;:58::i;:::-;10860:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10842:56;;;10907:4;10914:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10842:96;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10826:13;;:112;;;;;;;;;;;;;;;;;;10949:15;;;;;;;;;;;:31;;;10988:21;11019:4;11025:24;11043:4;11025:9;:24::i;:::-;11050:1;11052::::0;11054:7:::1;:5;:7::i;:::-;11062:15;10949:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;11103:4;11089:11;;:18;;;;;;;;;;;;;;;;;;11136:4;11118:15;;:22;;;;;;;;;;;;;;;;;;11166:23;11185:3;11166:14;11178:1;4208:17;11166:11;;:14;;;;:::i;:::-;:18;;:23;;;;:::i;:::-;11151:12;:38;;;;11217:23;11236:3;11217:14;11229:1;4208:17;11217:11;;:14;;;;:::i;:::-;:18;;:23;;;;:::i;:::-;11200:14;:40;;;;11265:4;11251:11;;:18;;;;;;;;;;;;;;;;;;11287:13;;;;;;;;;;;11280:29;;;11318:15;;;;;;;;;;;11336:14;11280:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;10532:827;10488:871::o:0;6159:143::-;6240:7;6267:11;:18;6279:5;6267:18;;;;;;;;;;;;;;;:27;6286:7;6267:27;;;;;;;;;;;;;;;;6260:34;;6159:143;;;;:::o;224:98::-;277:7;304:10;297:17;;224:98;:::o;7346:335::-;7456:1;7439:19;;:5;:19;;;;7431:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7537:1;7518:21;;:7;:21;;;;7510:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7619:6;7589:11;:18;7601:5;7589:18;;;;;;;;;;;;;;;:27;7608:7;7589:27;;;;;;;;;;;;;;;:36;;;;7657:7;7641:32;;7650:5;7641:32;;;7666:6;7641:32;;;;;;:::i;:::-;;;;;;;;7346:335;;;:::o;7689:1620::-;7793:1;7777:18;;:4;:18;;;;7769:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7870:1;7856:16;;:2;:16;;;;7848:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7940:1;7931:6;:10;7923:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8010:1;7998:9;:13;;;;8034:1;8022:9;:13;;;;8058:7;:5;:7::i;:::-;8050:15;;:4;:15;;;;:32;;;;;8075:7;:5;:7::i;:::-;8069:13;;:2;:13;;;;8050:32;8046:1185;;;8131:13;;;;;;;;;;;8123:21;;:4;:21;;;:55;;;;;8162:15;;;;;;;;;;;8148:30;;:2;:30;;;;8123:55;:83;;;;;8184:18;:22;8203:2;8184:22;;;;;;;;;;;;;;;;;;;;;;;;;8182:24;8123:83;:102;;;;;8210:15;;;;;;;;;;;8123:102;8119:452;;;8293:12;;8283:6;:22;;8275:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;8388:14;;8378:6;8362:13;8372:2;8362:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8354:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;8475:15;8460:8;:12;8469:2;8460:12;;;;;;;;;;;;;;;;:30;8452:39;;;;;;8544:10;8525:15;:30;;;;:::i;:::-;8510:8;:12;8519:2;8510:12;;;;;;;;;;;;;;;:45;;;;8119:452;8630:13;;;;;;;;;;;8624:19;;:2;:19;;;:55;;;;;8663:15;;;;;;;;;;;8647:32;;:4;:32;;;;8624:55;:85;;;;;8685:18;:24;8704:4;8685:24;;;;;;;;;;;;;;;;;;;;;;;;;8683:26;8624:85;8620:171;;;8742:1;8730:9;:13;;;;8774:1;8762:9;:13;;;;8620:171;8805:28;8836:24;8854:4;8836:9;:24::i;:::-;8805:55;;8880:6;;;;;;;;;;;8879:7;:32;;;;;8898:13;;;;;;;;;;;8890:21;;:4;:21;;;;8879:32;:47;;;;;8915:11;;;;;;;;;;;8879:47;8875:345;;;8947:38;8964:20;8947:16;:38::i;:::-;9004:26;9033:21;9004:50;;9097:1;9076:18;:22;9073:105;;;9123:35;9136:21;9123:12;:35::i;:::-;9073:105;9196:8;:6;:8::i;:::-;8928:292;8875:345;8084:1147;8046:1185;9245:30;9260:4;9265:2;9268:6;9245:14;:30::i;:::-;7689:1620;;;:::o;1361:190::-;1447:7;1480:1;1475;:6;;1483:12;1467:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1507:9;1523:1;1519;:5;;;;:::i;:::-;1507:17;;1542:1;1535:8;;;1361:190;;;;;:::o;1559:246::-;1617:7;1646:1;1641;:6;1637:47;;;1671:1;1664:8;;;;1637:47;1694:9;1710:1;1706;:5;;;;:::i;:::-;1694:17;;1739:1;1734;1730;:5;;;;:::i;:::-;:10;1722:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1796:1;1789:8;;;1559:246;;;;;:::o;1813:132::-;1871:7;1898:39;1902:1;1905;1898:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1891:46;;1813:132;;;;:::o;10288:96::-;10345:14;;;;;;;;;;;:23;;:31;10369:6;10345:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10288:96;:::o;6911:254::-;6978:7;7017;;7006;:18;;6998:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;7082:19;7105:10;:8;:10::i;:::-;7082:33;;7133:24;7145:11;7133:7;:11;;:24;;;;:::i;:::-;7126:31;;;6911:254;;;:::o;9317:483::-;5042:4;5033:6;;:13;;;;;;;;;;;;;;;;;;9395:21:::1;9433:1;9419:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9395:40;;9464:4;9446;9451:1;9446:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;9490:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9480:4;9485:1;9480:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;9523:62;9540:4;9555:15;;;;;;;;;;;9573:11;9523:8;:62::i;:::-;9596:15;;;;;;;;;;;:66;;;9677:11;9703:1;9719:4;9746;9766:15;9596:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9384:416;5078:5:::0;5069:6;;:14;;;;;;;;;;;;;;;;;;9317:483;:::o;7173:88::-;7234:11;;7222:9;;:23;;;;:::i;:::-;7210:9;:35;;;;7173:88::o;11379:146::-;11473:44;11491:6;11499:9;11510:6;11473:17;:44::i;:::-;11379:146;;;:::o;1953:189::-;2039:7;2071:1;2067;:5;2074:12;2059:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2098:9;2114:1;2110;:5;;;;:::i;:::-;2098:17;;2133:1;2126:8;;;1953:189;;;;;:::o;14110:163::-;14151:7;14172:15;14189;14208:19;:17;:19::i;:::-;14171:56;;;;14245:20;14257:7;14245;:11;;:20;;;;:::i;:::-;14238:27;;;;14110:163;:::o;11533:488::-;11632:15;11649:23;11674:12;11688:23;11713:12;11727:13;11744:19;11755:7;11744:10;:19::i;:::-;11631:132;;;;;;;;;;;;11792:28;11812:7;11792;:15;11800:6;11792:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;11774:7;:15;11782:6;11774:15;;;;;;;;;;;;;;;:46;;;;11852:39;11875:15;11852:7;:18;11860:9;11852:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;11831:7;:18;11839:9;11831:18;;;;;;;;;;;;;;;:60;;;;11903:16;11913:5;11903:9;:16::i;:::-;11930:23;11942:4;11948;11930:11;:23::i;:::-;11986:9;11969:44;;11978:6;11969:44;;;11997:15;11969:44;;;;;;:::i;:::-;;;;;;;;11620:401;;;;;;11533:488;;;:::o;14281:262::-;14331:7;14340;14360:15;14378:7;;14360:25;;14396:15;4208:17;14396:25;;14452:20;4208:17;14452:7;;:11;;:20;;;;:::i;:::-;14442:7;:30;14438:61;;;14482:7;;4208:17;14474:25;;;;;;;;14438:61;14518:7;14527;14510:25;;;;;;14281:262;;;:::o;12858:471::-;12917:7;12926;12935;12944;12953;12962;12983:23;13008:12;13022:13;13039:42;13051:7;13060:9;;13071;;13039:11;:42::i;:::-;12982:99;;;;;;13092:19;13115:10;:8;:10::i;:::-;13092:33;;13137:15;13154:23;13179:12;13195:46;13207:7;13216:4;13222:5;13229:11;13195;:46::i;:::-;13136:105;;;;;;13260:7;13269:15;13286:4;13292:15;13309:4;13315:5;13252:69;;;;;;;;;;;;;;;;;;;12858:471;;;;;;;:::o;1217:136::-;1275:7;1302:43;1306:1;1309;1302:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1295:50;;1217:136;;;;:::o;1030:179::-;1088:7;1108:9;1124:1;1120;:5;;;;:::i;:::-;1108:17;;1149:1;1144;:6;;1136:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1200:1;1193:8;;;1030:179;;;;:::o;12029:212::-;12082:19;12105:10;:8;:10::i;:::-;12082:33;;12126:13;12142:22;12152:11;12142:5;:9;;:22;;;;:::i;:::-;12126:38;;12200:33;12227:5;12200:7;:22;12216:4;12200:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;12175:7;:22;12191:4;12175:22;;;;;;;;;;;;;;;:58;;;;12071:170;;12029:212;:::o;12249:147::-;12327:17;12339:4;12327:7;;:11;;:17;;;;:::i;:::-;12317:7;:27;;;;12368:20;12383:4;12368:10;;:14;;:20;;;;:::i;:::-;12355:10;:33;;;;12249:147;;:::o;13337:351::-;13430:7;13439;13448;13468:12;13483:28;13507:3;13483:19;13495:6;13483:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;13468:43;;13522:13;13538:29;13563:3;13538:20;13550:7;13538;:11;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;13522:45;;13578:23;13604:28;13626:5;13604:17;13616:4;13604:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;13578:54;;13651:15;13668:4;13674:5;13643:37;;;;;;;;;13337:351;;;;;;;:::o;13696:409::-;13806:7;13815;13824;13844:15;13862:24;13874:11;13862:7;:11;;:24;;;;:::i;:::-;13844:42;;13897:12;13912:21;13921:11;13912:4;:8;;:21;;;;:::i;:::-;13897:36;;13944:13;13960:22;13970:11;13960:5;:9;;:22;;;;:::i;:::-;13944:38;;13993:23;14019:28;14041:5;14019:17;14031:4;14019:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;13993:54;;14066:7;14075:15;14092:4;14058:39;;;;;;;;;;13696:409;;;;;;;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;7:139;;;;:::o;152:143::-;209:5;240:6;234:13;225:22;;256:33;283:5;256:33;:::i;:::-;152:143;;;;:::o;301:133::-;344:5;382:6;369:20;360:29;;398:30;422:5;398:30;:::i;:::-;301:133;;;;:::o;440:137::-;494:5;525:6;519:13;510:22;;541:30;565:5;541:30;:::i;:::-;440:137;;;;:::o;583:139::-;629:5;667:6;654:20;645:29;;683:33;710:5;683:33;:::i;:::-;583:139;;;;:::o;728:143::-;785:5;816:6;810:13;801:22;;832:33;859:5;832:33;:::i;:::-;728:143;;;;:::o;877:135::-;921:5;959:6;946:20;937:29;;975:31;1000:5;975:31;:::i;:::-;877:135;;;;:::o;1018:329::-;1077:6;1126:2;1114:9;1105:7;1101:23;1097:32;1094:119;;;1132:79;;:::i;:::-;1094:119;1252:1;1277:53;1322:7;1313:6;1302:9;1298:22;1277:53;:::i;:::-;1267:63;;1223:117;1018:329;;;;:::o;1353:351::-;1423:6;1472:2;1460:9;1451:7;1447:23;1443:32;1440:119;;;1478:79;;:::i;:::-;1440:119;1598:1;1623:64;1679:7;1670:6;1659:9;1655:22;1623:64;:::i;:::-;1613:74;;1569:128;1353:351;;;;:::o;1710:474::-;1778:6;1786;1835:2;1823:9;1814:7;1810:23;1806:32;1803:119;;;1841:79;;:::i;:::-;1803:119;1961:1;1986:53;2031:7;2022:6;2011:9;2007:22;1986:53;:::i;:::-;1976:63;;1932:117;2088:2;2114:53;2159:7;2150:6;2139:9;2135:22;2114:53;:::i;:::-;2104:63;;2059:118;1710:474;;;;;:::o;2190:619::-;2267:6;2275;2283;2332:2;2320:9;2311:7;2307:23;2303:32;2300:119;;;2338:79;;:::i;:::-;2300:119;2458:1;2483:53;2528:7;2519:6;2508:9;2504:22;2483:53;:::i;:::-;2473:63;;2429:117;2585:2;2611:53;2656:7;2647:6;2636:9;2632:22;2611:53;:::i;:::-;2601:63;;2556:118;2713:2;2739:53;2784:7;2775:6;2764:9;2760:22;2739:53;:::i;:::-;2729:63;;2684:118;2190:619;;;;;:::o;2815:474::-;2883:6;2891;2940:2;2928:9;2919:7;2915:23;2911:32;2908:119;;;2946:79;;:::i;:::-;2908:119;3066:1;3091:53;3136:7;3127:6;3116:9;3112:22;3091:53;:::i;:::-;3081:63;;3037:117;3193:2;3219:53;3264:7;3255:6;3244:9;3240:22;3219:53;:::i;:::-;3209:63;;3164:118;2815:474;;;;;:::o;3295:323::-;3351:6;3400:2;3388:9;3379:7;3375:23;3371:32;3368:119;;;3406:79;;:::i;:::-;3368:119;3526:1;3551:50;3593:7;3584:6;3573:9;3569:22;3551:50;:::i;:::-;3541:60;;3497:114;3295:323;;;;:::o;3624:345::-;3691:6;3740:2;3728:9;3719:7;3715:23;3711:32;3708:119;;;3746:79;;:::i;:::-;3708:119;3866:1;3891:61;3944:7;3935:6;3924:9;3920:22;3891:61;:::i;:::-;3881:71;;3837:125;3624:345;;;;:::o;3975:329::-;4034:6;4083:2;4071:9;4062:7;4058:23;4054:32;4051:119;;;4089:79;;:::i;:::-;4051:119;4209:1;4234:53;4279:7;4270:6;4259:9;4255:22;4234:53;:::i;:::-;4224:63;;4180:117;3975:329;;;;:::o;4310:663::-;4398:6;4406;4414;4463:2;4451:9;4442:7;4438:23;4434:32;4431:119;;;4469:79;;:::i;:::-;4431:119;4589:1;4614:64;4670:7;4661:6;4650:9;4646:22;4614:64;:::i;:::-;4604:74;;4560:128;4727:2;4753:64;4809:7;4800:6;4789:9;4785:22;4753:64;:::i;:::-;4743:74;;4698:129;4866:2;4892:64;4948:7;4939:6;4928:9;4924:22;4892:64;:::i;:::-;4882:74;;4837:129;4310:663;;;;;:::o;4979:325::-;5036:6;5085:2;5073:9;5064:7;5060:23;5056:32;5053:119;;;5091:79;;:::i;:::-;5053:119;5211:1;5236:51;5279:7;5270:6;5259:9;5255:22;5236:51;:::i;:::-;5226:61;;5182:115;4979:325;;;;:::o;5310:179::-;5379:10;5400:46;5442:3;5434:6;5400:46;:::i;:::-;5478:4;5473:3;5469:14;5455:28;;5310:179;;;;:::o;5495:108::-;5572:24;5590:5;5572:24;:::i;:::-;5567:3;5560:37;5495:108;;:::o;5609:118::-;5696:24;5714:5;5696:24;:::i;:::-;5691:3;5684:37;5609:118;;:::o;5763:732::-;5882:3;5911:54;5959:5;5911:54;:::i;:::-;5981:86;6060:6;6055:3;5981:86;:::i;:::-;5974:93;;6091:56;6141:5;6091:56;:::i;:::-;6170:7;6201:1;6186:284;6211:6;6208:1;6205:13;6186:284;;;6287:6;6281:13;6314:63;6373:3;6358:13;6314:63;:::i;:::-;6307:70;;6400:60;6453:6;6400:60;:::i;:::-;6390:70;;6246:224;6233:1;6230;6226:9;6221:14;;6186:284;;;6190:14;6486:3;6479:10;;5887:608;;;5763:732;;;;:::o;6501:109::-;6582:21;6597:5;6582:21;:::i;:::-;6577:3;6570:34;6501:109;;:::o;6616:147::-;6711:45;6750:5;6711:45;:::i;:::-;6706:3;6699:58;6616:147;;:::o;6769:364::-;6857:3;6885:39;6918:5;6885:39;:::i;:::-;6940:71;7004:6;6999:3;6940:71;:::i;:::-;6933:78;;7020:52;7065:6;7060:3;7053:4;7046:5;7042:16;7020:52;:::i;:::-;7097:29;7119:6;7097:29;:::i;:::-;7092:3;7088:39;7081:46;;6861:272;6769:364;;;;:::o;7139:366::-;7281:3;7302:67;7366:2;7361:3;7302:67;:::i;:::-;7295:74;;7378:93;7467:3;7378:93;:::i;:::-;7496:2;7491:3;7487:12;7480:19;;7139:366;;;:::o;7511:::-;7653:3;7674:67;7738:2;7733:3;7674:67;:::i;:::-;7667:74;;7750:93;7839:3;7750:93;:::i;:::-;7868:2;7863:3;7859:12;7852:19;;7511:366;;;:::o;7883:::-;8025:3;8046:67;8110:2;8105:3;8046:67;:::i;:::-;8039:74;;8122:93;8211:3;8122:93;:::i;:::-;8240:2;8235:3;8231:12;8224:19;;7883:366;;;:::o;8255:::-;8397:3;8418:67;8482:2;8477:3;8418:67;:::i;:::-;8411:74;;8494:93;8583:3;8494:93;:::i;:::-;8612:2;8607:3;8603:12;8596:19;;8255:366;;;:::o;8627:::-;8769:3;8790:67;8854:2;8849:3;8790:67;:::i;:::-;8783:74;;8866:93;8955:3;8866:93;:::i;:::-;8984:2;8979:3;8975:12;8968:19;;8627:366;;;:::o;8999:::-;9141:3;9162:67;9226:2;9221:3;9162:67;:::i;:::-;9155:74;;9238:93;9327:3;9238:93;:::i;:::-;9356:2;9351:3;9347:12;9340:19;;8999:366;;;:::o;9371:::-;9513:3;9534:67;9598:2;9593:3;9534:67;:::i;:::-;9527:74;;9610:93;9699:3;9610:93;:::i;:::-;9728:2;9723:3;9719:12;9712:19;;9371:366;;;:::o;9743:::-;9885:3;9906:67;9970:2;9965:3;9906:67;:::i;:::-;9899:74;;9982:93;10071:3;9982:93;:::i;:::-;10100:2;10095:3;10091:12;10084:19;;9743:366;;;:::o;10115:::-;10257:3;10278:67;10342:2;10337:3;10278:67;:::i;:::-;10271:74;;10354:93;10443:3;10354:93;:::i;:::-;10472:2;10467:3;10463:12;10456:19;;10115:366;;;:::o;10487:::-;10629:3;10650:67;10714:2;10709:3;10650:67;:::i;:::-;10643:74;;10726:93;10815:3;10726:93;:::i;:::-;10844:2;10839:3;10835:12;10828:19;;10487:366;;;:::o;10859:::-;11001:3;11022:67;11086:2;11081:3;11022:67;:::i;:::-;11015:74;;11098:93;11187:3;11098:93;:::i;:::-;11216:2;11211:3;11207:12;11200:19;;10859:366;;;:::o;11231:::-;11373:3;11394:67;11458:2;11453:3;11394:67;:::i;:::-;11387:74;;11470:93;11559:3;11470:93;:::i;:::-;11588:2;11583:3;11579:12;11572:19;;11231:366;;;:::o;11603:118::-;11690:24;11708:5;11690:24;:::i;:::-;11685:3;11678:37;11603:118;;:::o;11727:112::-;11810:22;11826:5;11810:22;:::i;:::-;11805:3;11798:35;11727:112;;:::o;11845:222::-;11938:4;11976:2;11965:9;11961:18;11953:26;;11989:71;12057:1;12046:9;12042:17;12033:6;11989:71;:::i;:::-;11845:222;;;;:::o;12073:332::-;12194:4;12232:2;12221:9;12217:18;12209:26;;12245:71;12313:1;12302:9;12298:17;12289:6;12245:71;:::i;:::-;12326:72;12394:2;12383:9;12379:18;12370:6;12326:72;:::i;:::-;12073:332;;;;;:::o;12411:::-;12532:4;12570:2;12559:9;12555:18;12547:26;;12583:71;12651:1;12640:9;12636:17;12627:6;12583:71;:::i;:::-;12664:72;12732:2;12721:9;12717:18;12708:6;12664:72;:::i;:::-;12411:332;;;;;:::o;12749:807::-;12998:4;13036:3;13025:9;13021:19;13013:27;;13050:71;13118:1;13107:9;13103:17;13094:6;13050:71;:::i;:::-;13131:72;13199:2;13188:9;13184:18;13175:6;13131:72;:::i;:::-;13213:80;13289:2;13278:9;13274:18;13265:6;13213:80;:::i;:::-;13303;13379:2;13368:9;13364:18;13355:6;13303:80;:::i;:::-;13393:73;13461:3;13450:9;13446:19;13437:6;13393:73;:::i;:::-;13476;13544:3;13533:9;13529:19;13520:6;13476:73;:::i;:::-;12749:807;;;;;;;;;:::o;13562:210::-;13649:4;13687:2;13676:9;13672:18;13664:26;;13700:65;13762:1;13751:9;13747:17;13738:6;13700:65;:::i;:::-;13562:210;;;;:::o;13778:313::-;13891:4;13929:2;13918:9;13914:18;13906:26;;13978:9;13972:4;13968:20;13964:1;13953:9;13949:17;13942:47;14006:78;14079:4;14070:6;14006:78;:::i;:::-;13998:86;;13778:313;;;;:::o;14097:419::-;14263:4;14301:2;14290:9;14286:18;14278:26;;14350:9;14344:4;14340:20;14336:1;14325:9;14321:17;14314:47;14378:131;14504:4;14378:131;:::i;:::-;14370:139;;14097:419;;;:::o;14522:::-;14688:4;14726:2;14715:9;14711:18;14703:26;;14775:9;14769:4;14765:20;14761:1;14750:9;14746:17;14739:47;14803:131;14929:4;14803:131;:::i;:::-;14795:139;;14522:419;;;:::o;14947:::-;15113:4;15151:2;15140:9;15136:18;15128:26;;15200:9;15194:4;15190:20;15186:1;15175:9;15171:17;15164:47;15228:131;15354:4;15228:131;:::i;:::-;15220:139;;14947:419;;;:::o;15372:::-;15538:4;15576:2;15565:9;15561:18;15553:26;;15625:9;15619:4;15615:20;15611:1;15600:9;15596:17;15589:47;15653:131;15779:4;15653:131;:::i;:::-;15645:139;;15372:419;;;:::o;15797:::-;15963:4;16001:2;15990:9;15986:18;15978:26;;16050:9;16044:4;16040:20;16036:1;16025:9;16021:17;16014:47;16078:131;16204:4;16078:131;:::i;:::-;16070:139;;15797:419;;;:::o;16222:::-;16388:4;16426:2;16415:9;16411:18;16403:26;;16475:9;16469:4;16465:20;16461:1;16450:9;16446:17;16439:47;16503:131;16629:4;16503:131;:::i;:::-;16495:139;;16222:419;;;:::o;16647:::-;16813:4;16851:2;16840:9;16836:18;16828:26;;16900:9;16894:4;16890:20;16886:1;16875:9;16871:17;16864:47;16928:131;17054:4;16928:131;:::i;:::-;16920:139;;16647:419;;;:::o;17072:::-;17238:4;17276:2;17265:9;17261:18;17253:26;;17325:9;17319:4;17315:20;17311:1;17300:9;17296:17;17289:47;17353:131;17479:4;17353:131;:::i;:::-;17345:139;;17072:419;;;:::o;17497:::-;17663:4;17701:2;17690:9;17686:18;17678:26;;17750:9;17744:4;17740:20;17736:1;17725:9;17721:17;17714:47;17778:131;17904:4;17778:131;:::i;:::-;17770:139;;17497:419;;;:::o;17922:::-;18088:4;18126:2;18115:9;18111:18;18103:26;;18175:9;18169:4;18165:20;18161:1;18150:9;18146:17;18139:47;18203:131;18329:4;18203:131;:::i;:::-;18195:139;;17922:419;;;:::o;18347:::-;18513:4;18551:2;18540:9;18536:18;18528:26;;18600:9;18594:4;18590:20;18586:1;18575:9;18571:17;18564:47;18628:131;18754:4;18628:131;:::i;:::-;18620:139;;18347:419;;;:::o;18772:::-;18938:4;18976:2;18965:9;18961:18;18953:26;;19025:9;19019:4;19015:20;19011:1;19000:9;18996:17;18989:47;19053:131;19179:4;19053:131;:::i;:::-;19045:139;;18772:419;;;:::o;19197:222::-;19290:4;19328:2;19317:9;19313:18;19305:26;;19341:71;19409:1;19398:9;19394:17;19385:6;19341:71;:::i;:::-;19197:222;;;;:::o;19425:831::-;19688:4;19726:3;19715:9;19711:19;19703:27;;19740:71;19808:1;19797:9;19793:17;19784:6;19740:71;:::i;:::-;19821:80;19897:2;19886:9;19882:18;19873:6;19821:80;:::i;:::-;19948:9;19942:4;19938:20;19933:2;19922:9;19918:18;19911:48;19976:108;20079:4;20070:6;19976:108;:::i;:::-;19968:116;;20094:72;20162:2;20151:9;20147:18;20138:6;20094:72;:::i;:::-;20176:73;20244:3;20233:9;20229:19;20220:6;20176:73;:::i;:::-;19425:831;;;;;;;;:::o;20262:214::-;20351:4;20389:2;20378:9;20374:18;20366:26;;20402:67;20466:1;20455:9;20451:17;20442:6;20402:67;:::i;:::-;20262:214;;;;:::o;20563:132::-;20630:4;20653:3;20645:11;;20683:4;20678:3;20674:14;20666:22;;20563:132;;;:::o;20701:114::-;20768:6;20802:5;20796:12;20786:22;;20701:114;;;:::o;20821:99::-;20873:6;20907:5;20901:12;20891:22;;20821:99;;;:::o;20926:113::-;20996:4;21028;21023:3;21019:14;21011:22;;20926:113;;;:::o;21045:184::-;21144:11;21178:6;21173:3;21166:19;21218:4;21213:3;21209:14;21194:29;;21045:184;;;;:::o;21235:169::-;21319:11;21353:6;21348:3;21341:19;21393:4;21388:3;21384:14;21369:29;;21235:169;;;;:::o;21410:305::-;21450:3;21469:20;21487:1;21469:20;:::i;:::-;21464:25;;21503:20;21521:1;21503:20;:::i;:::-;21498:25;;21657:1;21589:66;21585:74;21582:1;21579:81;21576:107;;;21663:18;;:::i;:::-;21576:107;21707:1;21704;21700:9;21693:16;;21410:305;;;;:::o;21721:185::-;21761:1;21778:20;21796:1;21778:20;:::i;:::-;21773:25;;21812:20;21830:1;21812:20;:::i;:::-;21807:25;;21851:1;21841:35;;21856:18;;:::i;:::-;21841:35;21898:1;21895;21891:9;21886:14;;21721:185;;;;:::o;21912:348::-;21952:7;21975:20;21993:1;21975:20;:::i;:::-;21970:25;;22009:20;22027:1;22009:20;:::i;:::-;22004:25;;22197:1;22129:66;22125:74;22122:1;22119:81;22114:1;22107:9;22100:17;22096:105;22093:131;;;22204:18;;:::i;:::-;22093:131;22252:1;22249;22245:9;22234:20;;21912:348;;;;:::o;22266:191::-;22306:4;22326:20;22344:1;22326:20;:::i;:::-;22321:25;;22360:20;22378:1;22360:20;:::i;:::-;22355:25;;22399:1;22396;22393:8;22390:34;;;22404:18;;:::i;:::-;22390:34;22449:1;22446;22442:9;22434:17;;22266:191;;;;:::o;22463:96::-;22500:7;22529:24;22547:5;22529:24;:::i;:::-;22518:35;;22463:96;;;:::o;22565:90::-;22599:7;22642:5;22635:13;22628:21;22617:32;;22565:90;;;:::o;22661:126::-;22698:7;22738:42;22731:5;22727:54;22716:65;;22661:126;;;:::o;22793:77::-;22830:7;22859:5;22848:16;;22793:77;;;:::o;22876:86::-;22911:7;22951:4;22944:5;22940:16;22929:27;;22876:86;;;:::o;22968:121::-;23026:9;23059:24;23077:5;23059:24;:::i;:::-;23046:37;;22968:121;;;:::o;23095:307::-;23163:1;23173:113;23187:6;23184:1;23181:13;23173:113;;;23272:1;23267:3;23263:11;23257:18;23253:1;23248:3;23244:11;23237:39;23209:2;23206:1;23202:10;23197:15;;23173:113;;;23304:6;23301:1;23298:13;23295:101;;;23384:1;23375:6;23370:3;23366:16;23359:27;23295:101;23144:258;23095:307;;;:::o;23408:180::-;23456:77;23453:1;23446:88;23553:4;23550:1;23543:15;23577:4;23574:1;23567:15;23594:180;23642:77;23639:1;23632:88;23739:4;23736:1;23729:15;23763:4;23760:1;23753:15;23780:180;23828:77;23825:1;23818:88;23925:4;23922:1;23915:15;23949:4;23946:1;23939:15;23966:180;24014:77;24011:1;24004:88;24111:4;24108:1;24101:15;24135:4;24132:1;24125:15;24275:117;24384:1;24381;24374:12;24398:102;24439:6;24490:2;24486:7;24481:2;24474:5;24470:14;24466:28;24456:38;;24398:102;;;:::o;24506:222::-;24646:34;24642:1;24634:6;24630:14;24623:58;24715:5;24710:2;24702:6;24698:15;24691:30;24506:222;:::o;24734:175::-;24874:27;24870:1;24862:6;24858:14;24851:51;24734:175;:::o;24915:229::-;25055:34;25051:1;25043:6;25039:14;25032:58;25124:12;25119:2;25111:6;25107:15;25100:37;24915:229;:::o;25150:221::-;25290:34;25286:1;25278:6;25274:14;25267:58;25359:4;25354:2;25346:6;25342:15;25335:29;25150:221;:::o;25377:177::-;25517:29;25513:1;25505:6;25501:14;25494:53;25377:177;:::o;25560:220::-;25700:34;25696:1;25688:6;25684:14;25677:58;25769:3;25764:2;25756:6;25752:15;25745:28;25560:220;:::o;25786:182::-;25926:34;25922:1;25914:6;25910:14;25903:58;25786:182;:::o;25974:228::-;26114:34;26110:1;26102:6;26098:14;26091:58;26183:11;26178:2;26170:6;26166:15;26159:36;25974:228;:::o;26208:224::-;26348:34;26344:1;26336:6;26332:14;26325:58;26417:7;26412:2;26404:6;26400:15;26393:32;26208:224;:::o;26438:176::-;26578:28;26574:1;26566:6;26562:14;26555:52;26438:176;:::o;26620:223::-;26760:34;26756:1;26748:6;26744:14;26737:58;26829:6;26824:2;26816:6;26812:15;26805:31;26620:223;:::o;26849:173::-;26989:25;26985:1;26977:6;26973:14;26966:49;26849:173;:::o;27028:122::-;27101:24;27119:5;27101:24;:::i;:::-;27094:5;27091:35;27081:63;;27140:1;27137;27130:12;27081:63;27028:122;:::o;27156:116::-;27226:21;27241:5;27226:21;:::i;:::-;27219:5;27216:32;27206:60;;27262:1;27259;27252:12;27206:60;27156:116;:::o;27278:122::-;27351:24;27369:5;27351:24;:::i;:::-;27344:5;27341:35;27331:63;;27390:1;27387;27380:12;27331:63;27278:122;:::o;27406:118::-;27477:22;27493:5;27477:22;:::i;:::-;27470:5;27467:33;27457:61;;27514:1;27511;27504:12;27457:61;27406:118;:::o

Swarm Source

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