ETH Price: $3,052.36 (+4.86%)
 

Overview

Max Total Supply

1,000,000,000,000 SHIBABES

Holders

235

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
1,285,160,710.204343848 SHIBABES

Value
$0.00
0xCc1752f0663b3DF003d048019566C4582454b20b
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

Shiba Babes is a modelling career project built on Ethereum chain.

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
SHIBABABES

Compiler Version
v0.8.5+commit.a4f2e591

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2021-07-28
*/

/**
 * 
 * Shiba Babes
 * 
 * SPDX-License-Identifier: UNLICENSED 
 * 
*/
pragma solidity ^0.8.4;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

contract SHIBABABES is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _rOwned;
    mapping (address => uint256) private _tOwned;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private bots;
    mapping (address => User) private cooldown;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 1e12 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    string private constant _name = unicode"Shiba Babes";
    string private constant _symbol = unicode"SHIBABES";
    uint8 private constant _decimals = 9;
    uint256 private _taxFee = 2;
    uint256 private _teamFee = 8;
    uint256 private _feeRate = 6;
    uint256 private _feeMultiplier = 1000;
    uint256 private _launchTime;
    uint256 private _previousTaxFee = _taxFee;
    uint256 private _previousteamFee = _teamFee;
    uint256 private _maxBuyAmount;
    address payable private _FeeAddress;
    address payable private _marketingWalletAddress;
    address payable private _marketingFixedWalletAddress;
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private _cooldownEnabled = true;
    bool private inSwap = false;
    bool private _useImpactFeeSetter = true;
    uint256 private buyLimitEnd;
    uint256 private walletLimitDuration;
    struct User {
        uint256 buy;
        uint256 sell;
        uint256 sellCD;
        bool exists;
    }

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

    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
    constructor (address payable FeeAddress, address payable marketingWalletAddress, address payable marketingFixedWalletAddress) {
        _FeeAddress = FeeAddress;
        _marketingWalletAddress = marketingWalletAddress;
        _marketingFixedWalletAddress = marketingFixedWalletAddress;
        _rOwned[_msgSender()] = _rTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[FeeAddress] = true;
        _isExcludedFromFee[marketingWalletAddress] = true;
        _isExcludedFromFee[marketingFixedWalletAddress] = true;
        emit Transfer(address(0), _msgSender(), _tTotal);
    }

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

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

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

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

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

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

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

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

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

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

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

    function setFee(uint256 impactFee) private {
        uint256 _impactFee = 12;
        if(impactFee < 12) {
            _impactFee = 12;
        } else if(impactFee > 35) {
            _impactFee = 35;
        } else {
            _impactFee = impactFee;
        }
        if(_impactFee.mod(2) != 0) {
            _impactFee++;
        }
        _taxFee = (_impactFee.mul(2)).div(10);
        _teamFee = (_impactFee.mul(8)).div(10);
    }

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

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");

        if(from != owner() && to != owner()) {
            if(_cooldownEnabled) {
                if(!cooldown[msg.sender].exists) {
                    cooldown[msg.sender] = User(0,0,0,true);
                }
            }

            // buy
            if(from == uniswapV2Pair && to != address(uniswapV2Router) && !_isExcludedFromFee[to]) {
                require(tradingOpen, "Trading not yet enabled.");
                _taxFee = 2;
                _teamFee = 8;
                if(_cooldownEnabled) {
                    if(buyLimitEnd > block.timestamp) {
                        require(amount <= _maxBuyAmount);
                        require(cooldown[to].buy < block.timestamp, "Your buy cooldown has not expired.");
                        cooldown[to].buy = block.timestamp + (45 seconds);
                    }

                    if (walletLimitDuration > block.timestamp) {
                        uint walletBalance = balanceOf(address(to));
                        require(amount.add(walletBalance) <= _tTotal.mul(2).div(100));
                    }
                    
                }
                if(_cooldownEnabled) {
                    if (cooldown[to].sellCD == 0) {
                        cooldown[to].sellCD++;
                    } else {
                        cooldown[to].sellCD = block.timestamp + (15 seconds);
                    }
                }
            }
            uint256 contractTokenBalance = balanceOf(address(this));

            // sell
            if(!inSwap && from != uniswapV2Pair && tradingOpen) {
                require(!bots[from] && !bots[to]);
                if(_cooldownEnabled) {
                    require(cooldown[from].sell < block.timestamp, "Your sell cooldown has not expired.");
                }

                if(_useImpactFeeSetter) {
                    uint256 feeBasis = amount.mul(_feeMultiplier);
                    feeBasis = feeBasis.div(balanceOf(uniswapV2Pair).add(amount));
                    setFee(feeBasis);
                }

                if(contractTokenBalance > 0) {
                    if(contractTokenBalance > balanceOf(uniswapV2Pair).mul(_feeRate).div(100)) {
                        contractTokenBalance = balanceOf(uniswapV2Pair).mul(_feeRate).div(100);
                    }
                    swapTokensForEth(contractTokenBalance);
                }
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }
        bool takeFee = true;

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

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

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

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

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

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

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

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

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

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

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

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

    receive() external payable {}
    
    function addLiquidity() 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);
        _maxBuyAmount = 5000000000 * 10**9;
        _launchTime = block.timestamp;
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
    }

    function openTrading() public onlyOwner {
        tradingOpen = true;
        buyLimitEnd = block.timestamp + (15 seconds);
        walletLimitDuration = block.timestamp + (1 hours);
    }
    
    function setBots(address[] memory bots_) public onlyOwner {
        for (uint i = 0; i < bots_.length; i++) {
            if (bots_[i] != uniswapV2Pair && bots_[i] != address(uniswapV2Router)) {
                bots[bots_[i]] = true;
            }
        }
    }
    
    function delBot(address notbot) public onlyOwner {
        bots[notbot] = false;
    }
    
    function isBot(address ad) public view returns (bool) {
        return bots[ad];
    }

    function manualswap() external {
        require(_msgSender() == _FeeAddress);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }
    
    function manualsend() external {
        require(_msgSender() == _FeeAddress);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }

    function setFeeRate(uint256 rate) external {
        require(_msgSender() == _FeeAddress);
        require(rate < 51, "Rate can't exceed 50%");
        _feeRate = rate;
        emit FeeRateUpdated(_feeRate);
    }

    function setCooldownEnabled(bool onoff) external onlyOwner() {
        _cooldownEnabled = onoff;
        emit CooldownEnabledUpdated(_cooldownEnabled);
    }

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

    function cooldownEnabled() public view returns (bool) {
        return _cooldownEnabled;
    }

    function timeToBuy(address buyer) public view returns (uint) {
        return block.timestamp - cooldown[buyer].buy;
    }

    function timeToSell(address buyer) public view returns (uint) {
        return block.timestamp - cooldown[buyer].sell;
    }

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

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address payable","name":"FeeAddress","type":"address"},{"internalType":"address payable","name":"marketingWalletAddress","type":"address"},{"internalType":"address payable","name":"marketingFixedWalletAddress","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"_cooldown","type":"bool"}],"name":"CooldownEnabledUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_multiplier","type":"uint256"}],"name":"FeeMultiplierUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_rate","type":"uint256"}],"name":"FeeRateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxBuyAmount","type":"uint256"}],"name":"MaxBuyAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"addLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"amountInPool","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"cooldownEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"notbot","type":"address"}],"name":"delBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"ad","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"setBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"onoff","type":"bool"}],"name":"setCooldownEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"rate","type":"uint256"}],"name":"setFeeRate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"thisBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"buyer","type":"address"}],"name":"timeToBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"buyer","type":"address"}],"name":"timeToSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052683635c9adc5dea000006000196200001d919062000636565b6000196200002c9190620005bd565b6008556002600a556008600b556006600c556103e8600d55600a54600f55600b546010556001601660156101000a81548160ff02191690831515021790555060006016806101000a81548160ff0219169083151502179055506001601660176101000a81548160ff021916908315150217905550348015620000ad57600080fd5b506040516200496f3803806200496f8339818101604052810190620000d3919062000533565b6000620000e5620004eb60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35082601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600854600260006200025d620004eb60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160056000620002b1620004f360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000472620004eb60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef683635c9adc5dea00000604051620004da9190620005a0565b60405180910390a3505050620006eb565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000815190506200052d81620006d1565b92915050565b6000806000606084860312156200054f576200054e620006cc565b5b60006200055f868287016200051c565b935050602062000572868287016200051c565b925050604062000585868287016200051c565b9150509250925092565b6200059a816200062c565b82525050565b6000602082019050620005b760008301846200058f565b92915050565b6000620005ca826200062c565b9150620005d7836200062c565b925082821015620005ed57620005ec6200066e565b5b828203905092915050565b600062000605826200060c565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600062000643826200062c565b915062000650836200062c565b9250826200066357620006626200069d565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600080fd5b620006dc81620005f8565b8114620006e857600080fd5b50565b61427480620006fb6000396000f3fe60806040526004361061016a5760003560e01c806370a08231116100d1578063a9fc35a91161008a578063c9567bf911610064578063c9567bf914610537578063db92dbb61461054e578063dd62ed3e14610579578063e8078d94146105b657610171565b8063a9fc35a9146104ba578063b515566a146104f7578063c3c8cd801461052057610171565b806370a08231146103a8578063715018a6146103e55780638da5cb5b146103fc57806395d89b4114610427578063a9059cbb14610452578063a985ceef1461048f57610171565b8063313ce56711610123578063313ce5671461029a5780633bbac579146102c557806345596e2e146103025780635932ead11461032b57806368a3a6a5146103545780636fc3eaec1461039157610171565b806306fdde0314610176578063095ea7b3146101a157806318160ddd146101de57806323b872dd14610209578063273123b71461024657806327f3a72a1461026f57610171565b3661017157005b600080fd5b34801561018257600080fd5b5061018b6105cd565b60405161019891906137ea565b60405180910390f35b3480156101ad57600080fd5b506101c860048036038101906101c391906132ab565b61060a565b6040516101d591906137cf565b60405180910390f35b3480156101ea57600080fd5b506101f3610628565b60405161020091906139cc565b60405180910390f35b34801561021557600080fd5b50610230600480360381019061022b9190613258565b610639565b60405161023d91906137cf565b60405180910390f35b34801561025257600080fd5b5061026d600480360381019061026891906131be565b610712565b005b34801561027b57600080fd5b50610284610802565b60405161029191906139cc565b60405180910390f35b3480156102a657600080fd5b506102af610812565b6040516102bc9190613a41565b60405180910390f35b3480156102d157600080fd5b506102ec60048036038101906102e791906131be565b61081b565b6040516102f991906137cf565b60405180910390f35b34801561030e57600080fd5b506103296004803603810190610324919061338e565b610871565b005b34801561033757600080fd5b50610352600480360381019061034d9190613334565b610958565b005b34801561036057600080fd5b5061037b600480360381019061037691906131be565b610a50565b60405161038891906139cc565b60405180910390f35b34801561039d57600080fd5b506103a6610aa7565b005b3480156103b457600080fd5b506103cf60048036038101906103ca91906131be565b610b19565b6040516103dc91906139cc565b60405180910390f35b3480156103f157600080fd5b506103fa610b6a565b005b34801561040857600080fd5b50610411610cbd565b60405161041e9190613701565b60405180910390f35b34801561043357600080fd5b5061043c610ce6565b60405161044991906137ea565b60405180910390f35b34801561045e57600080fd5b50610479600480360381019061047491906132ab565b610d23565b60405161048691906137cf565b60405180910390f35b34801561049b57600080fd5b506104a4610d41565b6040516104b191906137cf565b60405180910390f35b3480156104c657600080fd5b506104e160048036038101906104dc91906131be565b610d58565b6040516104ee91906139cc565b60405180910390f35b34801561050357600080fd5b5061051e600480360381019061051991906132eb565b610daf565b005b34801561052c57600080fd5b50610535610fbf565b005b34801561054357600080fd5b5061054c611039565b005b34801561055a57600080fd5b50610563611112565b60405161057091906139cc565b60405180910390f35b34801561058557600080fd5b506105a0600480360381019061059b9190613218565b611144565b6040516105ad91906139cc565b60405180910390f35b3480156105c257600080fd5b506105cb6111cb565b005b60606040518060400160405280600b81526020017f5368696261204261626573000000000000000000000000000000000000000000815250905090565b600061061e6106176116dd565b84846116e5565b6001905092915050565b6000683635c9adc5dea00000905090565b60006106468484846118b0565b610707846106526116dd565b6107028560405180606001604052806028815260200161421760289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006106b86116dd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461234a9092919063ffffffff16565b6116e5565b600190509392505050565b61071a6116dd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161079e9061390c565b60405180910390fd5b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600061080d30610b19565b905090565b60006009905090565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108b26116dd565b73ffffffffffffffffffffffffffffffffffffffff16146108d257600080fd5b60338110610915576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161090c906138ac565b60405180910390fd5b80600c819055507f208f1b468d3d61f0f085e975bd9d04367c930d599642faad06695229f3eadcd8600c5460405161094d91906139cc565b60405180910390a150565b6109606116dd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109e49061390c565b60405180910390fd5b80601660156101000a81548160ff0219169083151502179055507f0d63187a8abb5b4d1bb562e1163897386b0a88ee72e0799dd105bd0fd6f28706601660159054906101000a900460ff16604051610a4591906137cf565b60405180910390a150565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015442610aa09190613be3565b9050919050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610ae86116dd565b73ffffffffffffffffffffffffffffffffffffffff1614610b0857600080fd5b6000479050610b16816123ae565b50565b6000610b63600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612525565b9050919050565b610b726116dd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf69061390c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600881526020017f5348494241424553000000000000000000000000000000000000000000000000815250905090565b6000610d37610d306116dd565b84846118b0565b6001905092915050565b6000601660159054906101000a900460ff16905090565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001015442610da89190613be3565b9050919050565b610db76116dd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3b9061390c565b60405180910390fd5b60005b8151811015610fbb57601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16828281518110610e9c57610e9b613dba565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614158015610f305750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16828281518110610f0f57610f0e613dba565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614155b15610fa857600160066000848481518110610f4e57610f4d613dba565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b8080610fb390613ce2565b915050610e47565b5050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166110006116dd565b73ffffffffffffffffffffffffffffffffffffffff161461102057600080fd5b600061102b30610b19565b905061103681612593565b50565b6110416116dd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110c59061390c565b60405180910390fd5b6001601660146101000a81548160ff021916908315150217905550600f426110f69190613b02565b601781905550610e104261110a9190613b02565b601881905550565b600061113f601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610b19565b905090565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6111d36116dd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611260576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112579061390c565b60405180910390fd5b601660149054906101000a900460ff16156112b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a79061398c565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061134030601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16683635c9adc5dea000006116e5565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561138657600080fd5b505afa15801561139a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113be91906131eb565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561142057600080fd5b505afa158015611434573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061145891906131eb565b6040518363ffffffff1660e01b815260040161147592919061371c565b602060405180830381600087803b15801561148f57600080fd5b505af11580156114a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114c791906131eb565b601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061155030610b19565b60008061155b610cbd565b426040518863ffffffff1660e01b815260040161157d9695949392919061376e565b6060604051808303818588803b15801561159657600080fd5b505af11580156115aa573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906115cf91906133bb565b505050674563918244f4000060118190555042600e81905550601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611687929190613745565b602060405180830381600087803b1580156116a157600080fd5b505af11580156116b5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116d99190613361565b5050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611755576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174c9061396c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156117c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117bc9061384c565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516118a391906139cc565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611920576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119179061394c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611990576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119879061380c565b60405180910390fd5b600081116119d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119ca9061392c565b60405180910390fd5b6119db610cbd565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611a495750611a19610cbd565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561228757601660159054906101000a900460ff1615611b6057600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160009054906101000a900460ff16611b5f57604051806080016040528060008152602001600081526020016000815260200160011515815250600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008201518160000155602082015181600101556040820151816002015560608201518160030160006101000a81548160ff0219169083151502179055509050505b5b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611c0b5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611c615750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611f4657601660149054906101000a900460ff16611cb5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cac906139ac565b60405180910390fd5b6002600a819055506008600b81905550601660159054906101000a900460ff1615611e3357426017541115611dcb57601154811115611cf357600080fd5b42600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015410611d77576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d6e9061386c565b60405180910390fd5b602d42611d849190613b02565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055505b426018541115611e32576000611de083610b19565b9050611e126064611e046002683635c9adc5dea0000061281990919063ffffffff16565b61289490919063ffffffff16565b611e2582846128de90919063ffffffff16565b1115611e3057600080fd5b505b5b601660159054906101000a900460ff1615611f45576000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201541415611ef057600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206002016000815480929190611ee690613ce2565b9190505550611f44565b600f42611efd9190613b02565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201819055505b5b5b6000611f5130610b19565b905060168054906101000a900460ff16158015611fbc5750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611fd45750601660149054906101000a900460ff165b1561228557600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561207d5750600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61208657600080fd5b601660159054906101000a900460ff16156121205742600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101541061211f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612116906138cc565b60405180910390fd5b5b601660179054906101000a900460ff16156121aa57600061214c600d548461281990919063ffffffff16565b905061219d61218e84612180601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610b19565b6128de90919063ffffffff16565b8261289490919063ffffffff16565b90506121a88161293c565b505b600081111561226b5761220560646121f7600c546121e9601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610b19565b61281990919063ffffffff16565b61289490919063ffffffff16565b8111156122615761225e6064612250600c54612242601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610b19565b61281990919063ffffffff16565b61289490919063ffffffff16565b90505b61226a81612593565b5b6000479050600081111561228357612282476123ae565b5b505b505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061232e5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561233857600090505b612344848484846129f3565b50505050565b6000838311158290612392576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161238991906137ea565b60405180910390fd5b50600083856123a19190613be3565b9050809150509392505050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6123fe60028461289490919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015612429573d6000803e3d6000fd5b50601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc61247a60048461289490919063ffffffff16565b9081150290604051600060405180830381858888f193505050501580156124a5573d6000803e3d6000fd5b50601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6124f660048461289490919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015612521573d6000803e3d6000fd5b5050565b600060085482111561256c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125639061382c565b60405180910390fd5b6000612576612a20565b905061258b818461289490919063ffffffff16565b915050919050565b60016016806101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156125ca576125c9613de9565b5b6040519080825280602002602001820160405280156125f85781602001602082028036833780820191505090505b50905030816000815181106126105761260f613dba565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156126b257600080fd5b505afa1580156126c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126ea91906131eb565b816001815181106126fe576126fd613dba565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061276530601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846116e5565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016127c99594939291906139e7565b600060405180830381600087803b1580156127e357600080fd5b505af11580156127f7573d6000803e3d6000fd5b505050505060006016806101000a81548160ff02191690831515021790555050565b60008083141561282c576000905061288e565b6000828461283a9190613b89565b90508284826128499190613b58565b14612889576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612880906138ec565b60405180910390fd5b809150505b92915050565b60006128d683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612a4b565b905092915050565b60008082846128ed9190613b02565b905083811015612932576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129299061388c565b60405180910390fd5b8091505092915050565b6000600c9050600c82101561295457600c905061296b565b6023821115612966576023905061296a565b8190505b5b6000612981600283612aae90919063ffffffff16565b1461299557808061299190613ce2565b9150505b6129bc600a6129ae60028461281990919063ffffffff16565b61289490919063ffffffff16565b600a819055506129e9600a6129db60088461281990919063ffffffff16565b61289490919063ffffffff16565b600b819055505050565b80612a0157612a00612af8565b5b612a0c848484612b3b565b80612a1a57612a19612d06565b5b50505050565b6000806000612a2d612d1a565b91509150612a44818361289490919063ffffffff16565b9250505090565b60008083118290612a92576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a8991906137ea565b60405180910390fd5b5060008385612aa19190613b58565b9050809150509392505050565b6000612af083836040518060400160405280601881526020017f536166654d6174683a206d6f64756c6f206279207a65726f0000000000000000815250612d7c565b905092915050565b6000600a54148015612b0c57506000600b54145b15612b1657612b39565b600a54600f81905550600b546010819055506000600a819055506000600b819055505b565b600080600080600080612b4d87612dda565b955095509550955095509550612bab86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e4290919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612c4085600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128de90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612c8c81612e8c565b612c968483612f49565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051612cf391906139cc565b60405180910390a3505050505050505050565b600f54600a81905550601054600b81905550565b600080600060085490506000683635c9adc5dea000009050612d50683635c9adc5dea0000060085461289490919063ffffffff16565b821015612d6f57600854683635c9adc5dea00000935093505050612d78565b81819350935050505b9091565b6000808314158290612dc4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612dbb91906137ea565b60405180910390fd5b508284612dd19190613d2b565b90509392505050565b6000806000806000806000806000612df78a600a54600b54612f83565b9250925092506000612e07612a20565b90506000806000612e1a8e878787613019565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000612e8483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061234a565b905092915050565b6000612e96612a20565b90506000612ead828461281990919063ffffffff16565b9050612f0181600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128de90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b612f5e82600854612e4290919063ffffffff16565b600881905550612f79816009546128de90919063ffffffff16565b6009819055505050565b600080600080612faf6064612fa1888a61281990919063ffffffff16565b61289490919063ffffffff16565b90506000612fd96064612fcb888b61281990919063ffffffff16565b61289490919063ffffffff16565b9050600061300282612ff4858c612e4290919063ffffffff16565b612e4290919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080613032858961281990919063ffffffff16565b90506000613049868961281990919063ffffffff16565b90506000613060878961281990919063ffffffff16565b905060006130898261307b8587612e4290919063ffffffff16565b612e4290919063ffffffff16565b9050838184965096509650505050509450945094915050565b60006130b56130b084613a81565b613a5c565b905080838252602082019050828560208602820111156130d8576130d7613e1d565b5b60005b8581101561310857816130ee8882613112565b8452602084019350602083019250506001810190506130db565b5050509392505050565b600081359050613121816141d1565b92915050565b600081519050613136816141d1565b92915050565b600082601f83011261315157613150613e18565b5b81356131618482602086016130a2565b91505092915050565b600081359050613179816141e8565b92915050565b60008151905061318e816141e8565b92915050565b6000813590506131a3816141ff565b92915050565b6000815190506131b8816141ff565b92915050565b6000602082840312156131d4576131d3613e27565b5b60006131e284828501613112565b91505092915050565b60006020828403121561320157613200613e27565b5b600061320f84828501613127565b91505092915050565b6000806040838503121561322f5761322e613e27565b5b600061323d85828601613112565b925050602061324e85828601613112565b9150509250929050565b60008060006060848603121561327157613270613e27565b5b600061327f86828701613112565b935050602061329086828701613112565b92505060406132a186828701613194565b9150509250925092565b600080604083850312156132c2576132c1613e27565b5b60006132d085828601613112565b92505060206132e185828601613194565b9150509250929050565b60006020828403121561330157613300613e27565b5b600082013567ffffffffffffffff81111561331f5761331e613e22565b5b61332b8482850161313c565b91505092915050565b60006020828403121561334a57613349613e27565b5b60006133588482850161316a565b91505092915050565b60006020828403121561337757613376613e27565b5b60006133858482850161317f565b91505092915050565b6000602082840312156133a4576133a3613e27565b5b60006133b284828501613194565b91505092915050565b6000806000606084860312156133d4576133d3613e27565b5b60006133e2868287016131a9565b93505060206133f3868287016131a9565b9250506040613404868287016131a9565b9150509250925092565b600061341a8383613426565b60208301905092915050565b61342f81613c17565b82525050565b61343e81613c17565b82525050565b600061344f82613abd565b6134598185613ae0565b935061346483613aad565b8060005b8381101561349557815161347c888261340e565b975061348783613ad3565b925050600181019050613468565b5085935050505092915050565b6134ab81613c29565b82525050565b6134ba81613c6c565b82525050565b60006134cb82613ac8565b6134d58185613af1565b93506134e5818560208601613c7e565b6134ee81613e2c565b840191505092915050565b6000613506602383613af1565b915061351182613e3d565b604082019050919050565b6000613529602a83613af1565b915061353482613e8c565b604082019050919050565b600061354c602283613af1565b915061355782613edb565b604082019050919050565b600061356f602283613af1565b915061357a82613f2a565b604082019050919050565b6000613592601b83613af1565b915061359d82613f79565b602082019050919050565b60006135b5601583613af1565b91506135c082613fa2565b602082019050919050565b60006135d8602383613af1565b91506135e382613fcb565b604082019050919050565b60006135fb602183613af1565b91506136068261401a565b604082019050919050565b600061361e602083613af1565b915061362982614069565b602082019050919050565b6000613641602983613af1565b915061364c82614092565b604082019050919050565b6000613664602583613af1565b915061366f826140e1565b604082019050919050565b6000613687602483613af1565b915061369282614130565b604082019050919050565b60006136aa601783613af1565b91506136b58261417f565b602082019050919050565b60006136cd601883613af1565b91506136d8826141a8565b602082019050919050565b6136ec81613c55565b82525050565b6136fb81613c5f565b82525050565b60006020820190506137166000830184613435565b92915050565b60006040820190506137316000830185613435565b61373e6020830184613435565b9392505050565b600060408201905061375a6000830185613435565b61376760208301846136e3565b9392505050565b600060c0820190506137836000830189613435565b61379060208301886136e3565b61379d60408301876134b1565b6137aa60608301866134b1565b6137b76080830185613435565b6137c460a08301846136e3565b979650505050505050565b60006020820190506137e460008301846134a2565b92915050565b6000602082019050818103600083015261380481846134c0565b905092915050565b60006020820190508181036000830152613825816134f9565b9050919050565b600060208201905081810360008301526138458161351c565b9050919050565b600060208201905081810360008301526138658161353f565b9050919050565b6000602082019050818103600083015261388581613562565b9050919050565b600060208201905081810360008301526138a581613585565b9050919050565b600060208201905081810360008301526138c5816135a8565b9050919050565b600060208201905081810360008301526138e5816135cb565b9050919050565b60006020820190508181036000830152613905816135ee565b9050919050565b6000602082019050818103600083015261392581613611565b9050919050565b6000602082019050818103600083015261394581613634565b9050919050565b6000602082019050818103600083015261396581613657565b9050919050565b600060208201905081810360008301526139858161367a565b9050919050565b600060208201905081810360008301526139a58161369d565b9050919050565b600060208201905081810360008301526139c5816136c0565b9050919050565b60006020820190506139e160008301846136e3565b92915050565b600060a0820190506139fc60008301886136e3565b613a0960208301876134b1565b8181036040830152613a1b8186613444565b9050613a2a6060830185613435565b613a3760808301846136e3565b9695505050505050565b6000602082019050613a5660008301846136f2565b92915050565b6000613a66613a77565b9050613a728282613cb1565b919050565b6000604051905090565b600067ffffffffffffffff821115613a9c57613a9b613de9565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000613b0d82613c55565b9150613b1883613c55565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613b4d57613b4c613d5c565b5b828201905092915050565b6000613b6382613c55565b9150613b6e83613c55565b925082613b7e57613b7d613d8b565b5b828204905092915050565b6000613b9482613c55565b9150613b9f83613c55565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613bd857613bd7613d5c565b5b828202905092915050565b6000613bee82613c55565b9150613bf983613c55565b925082821015613c0c57613c0b613d5c565b5b828203905092915050565b6000613c2282613c35565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000613c7782613c55565b9050919050565b60005b83811015613c9c578082015181840152602081019050613c81565b83811115613cab576000848401525b50505050565b613cba82613e2c565b810181811067ffffffffffffffff82111715613cd957613cd8613de9565b5b80604052505050565b6000613ced82613c55565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415613d2057613d1f613d5c565b5b600182019050919050565b6000613d3682613c55565b9150613d4183613c55565b925082613d5157613d50613d8b565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f596f75722062757920636f6f6c646f776e20686173206e6f742065787069726560008201527f642e000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f526174652063616e277420657863656564203530250000000000000000000000600082015250565b7f596f75722073656c6c20636f6f6c646f776e20686173206e6f7420657870697260008201527f65642e0000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b7f54726164696e67206e6f742079657420656e61626c65642e0000000000000000600082015250565b6141da81613c17565b81146141e557600080fd5b50565b6141f181613c29565b81146141fc57600080fd5b50565b61420881613c55565b811461421357600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212203c16c2fe783e71f0f963fa49ea32eb2384e5c158d6c1c2dac2638b911f0d1b4664736f6c634300080500330000000000000000000000002054a670d8c17cd5599e939da27c2dfd453328c200000000000000000000000035e196d12b1c716b3a5292b134d4703a12433ab6000000000000000000000000db65c0ec7e4cf9dbb532829c513e3ec9fc4c6ad3

Deployed Bytecode

0x60806040526004361061016a5760003560e01c806370a08231116100d1578063a9fc35a91161008a578063c9567bf911610064578063c9567bf914610537578063db92dbb61461054e578063dd62ed3e14610579578063e8078d94146105b657610171565b8063a9fc35a9146104ba578063b515566a146104f7578063c3c8cd801461052057610171565b806370a08231146103a8578063715018a6146103e55780638da5cb5b146103fc57806395d89b4114610427578063a9059cbb14610452578063a985ceef1461048f57610171565b8063313ce56711610123578063313ce5671461029a5780633bbac579146102c557806345596e2e146103025780635932ead11461032b57806368a3a6a5146103545780636fc3eaec1461039157610171565b806306fdde0314610176578063095ea7b3146101a157806318160ddd146101de57806323b872dd14610209578063273123b71461024657806327f3a72a1461026f57610171565b3661017157005b600080fd5b34801561018257600080fd5b5061018b6105cd565b60405161019891906137ea565b60405180910390f35b3480156101ad57600080fd5b506101c860048036038101906101c391906132ab565b61060a565b6040516101d591906137cf565b60405180910390f35b3480156101ea57600080fd5b506101f3610628565b60405161020091906139cc565b60405180910390f35b34801561021557600080fd5b50610230600480360381019061022b9190613258565b610639565b60405161023d91906137cf565b60405180910390f35b34801561025257600080fd5b5061026d600480360381019061026891906131be565b610712565b005b34801561027b57600080fd5b50610284610802565b60405161029191906139cc565b60405180910390f35b3480156102a657600080fd5b506102af610812565b6040516102bc9190613a41565b60405180910390f35b3480156102d157600080fd5b506102ec60048036038101906102e791906131be565b61081b565b6040516102f991906137cf565b60405180910390f35b34801561030e57600080fd5b506103296004803603810190610324919061338e565b610871565b005b34801561033757600080fd5b50610352600480360381019061034d9190613334565b610958565b005b34801561036057600080fd5b5061037b600480360381019061037691906131be565b610a50565b60405161038891906139cc565b60405180910390f35b34801561039d57600080fd5b506103a6610aa7565b005b3480156103b457600080fd5b506103cf60048036038101906103ca91906131be565b610b19565b6040516103dc91906139cc565b60405180910390f35b3480156103f157600080fd5b506103fa610b6a565b005b34801561040857600080fd5b50610411610cbd565b60405161041e9190613701565b60405180910390f35b34801561043357600080fd5b5061043c610ce6565b60405161044991906137ea565b60405180910390f35b34801561045e57600080fd5b50610479600480360381019061047491906132ab565b610d23565b60405161048691906137cf565b60405180910390f35b34801561049b57600080fd5b506104a4610d41565b6040516104b191906137cf565b60405180910390f35b3480156104c657600080fd5b506104e160048036038101906104dc91906131be565b610d58565b6040516104ee91906139cc565b60405180910390f35b34801561050357600080fd5b5061051e600480360381019061051991906132eb565b610daf565b005b34801561052c57600080fd5b50610535610fbf565b005b34801561054357600080fd5b5061054c611039565b005b34801561055a57600080fd5b50610563611112565b60405161057091906139cc565b60405180910390f35b34801561058557600080fd5b506105a0600480360381019061059b9190613218565b611144565b6040516105ad91906139cc565b60405180910390f35b3480156105c257600080fd5b506105cb6111cb565b005b60606040518060400160405280600b81526020017f5368696261204261626573000000000000000000000000000000000000000000815250905090565b600061061e6106176116dd565b84846116e5565b6001905092915050565b6000683635c9adc5dea00000905090565b60006106468484846118b0565b610707846106526116dd565b6107028560405180606001604052806028815260200161421760289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006106b86116dd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461234a9092919063ffffffff16565b6116e5565b600190509392505050565b61071a6116dd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161079e9061390c565b60405180910390fd5b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600061080d30610b19565b905090565b60006009905090565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108b26116dd565b73ffffffffffffffffffffffffffffffffffffffff16146108d257600080fd5b60338110610915576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161090c906138ac565b60405180910390fd5b80600c819055507f208f1b468d3d61f0f085e975bd9d04367c930d599642faad06695229f3eadcd8600c5460405161094d91906139cc565b60405180910390a150565b6109606116dd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109e49061390c565b60405180910390fd5b80601660156101000a81548160ff0219169083151502179055507f0d63187a8abb5b4d1bb562e1163897386b0a88ee72e0799dd105bd0fd6f28706601660159054906101000a900460ff16604051610a4591906137cf565b60405180910390a150565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015442610aa09190613be3565b9050919050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610ae86116dd565b73ffffffffffffffffffffffffffffffffffffffff1614610b0857600080fd5b6000479050610b16816123ae565b50565b6000610b63600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612525565b9050919050565b610b726116dd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf69061390c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600881526020017f5348494241424553000000000000000000000000000000000000000000000000815250905090565b6000610d37610d306116dd565b84846118b0565b6001905092915050565b6000601660159054906101000a900460ff16905090565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001015442610da89190613be3565b9050919050565b610db76116dd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3b9061390c565b60405180910390fd5b60005b8151811015610fbb57601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16828281518110610e9c57610e9b613dba565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614158015610f305750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16828281518110610f0f57610f0e613dba565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614155b15610fa857600160066000848481518110610f4e57610f4d613dba565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b8080610fb390613ce2565b915050610e47565b5050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166110006116dd565b73ffffffffffffffffffffffffffffffffffffffff161461102057600080fd5b600061102b30610b19565b905061103681612593565b50565b6110416116dd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110c59061390c565b60405180910390fd5b6001601660146101000a81548160ff021916908315150217905550600f426110f69190613b02565b601781905550610e104261110a9190613b02565b601881905550565b600061113f601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610b19565b905090565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6111d36116dd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611260576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112579061390c565b60405180910390fd5b601660149054906101000a900460ff16156112b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a79061398c565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061134030601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16683635c9adc5dea000006116e5565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561138657600080fd5b505afa15801561139a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113be91906131eb565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561142057600080fd5b505afa158015611434573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061145891906131eb565b6040518363ffffffff1660e01b815260040161147592919061371c565b602060405180830381600087803b15801561148f57600080fd5b505af11580156114a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114c791906131eb565b601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061155030610b19565b60008061155b610cbd565b426040518863ffffffff1660e01b815260040161157d9695949392919061376e565b6060604051808303818588803b15801561159657600080fd5b505af11580156115aa573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906115cf91906133bb565b505050674563918244f4000060118190555042600e81905550601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611687929190613745565b602060405180830381600087803b1580156116a157600080fd5b505af11580156116b5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116d99190613361565b5050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611755576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174c9061396c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156117c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117bc9061384c565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516118a391906139cc565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611920576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119179061394c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611990576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119879061380c565b60405180910390fd5b600081116119d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119ca9061392c565b60405180910390fd5b6119db610cbd565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611a495750611a19610cbd565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561228757601660159054906101000a900460ff1615611b6057600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160009054906101000a900460ff16611b5f57604051806080016040528060008152602001600081526020016000815260200160011515815250600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008201518160000155602082015181600101556040820151816002015560608201518160030160006101000a81548160ff0219169083151502179055509050505b5b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611c0b5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611c615750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611f4657601660149054906101000a900460ff16611cb5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cac906139ac565b60405180910390fd5b6002600a819055506008600b81905550601660159054906101000a900460ff1615611e3357426017541115611dcb57601154811115611cf357600080fd5b42600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015410611d77576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d6e9061386c565b60405180910390fd5b602d42611d849190613b02565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055505b426018541115611e32576000611de083610b19565b9050611e126064611e046002683635c9adc5dea0000061281990919063ffffffff16565b61289490919063ffffffff16565b611e2582846128de90919063ffffffff16565b1115611e3057600080fd5b505b5b601660159054906101000a900460ff1615611f45576000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201541415611ef057600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206002016000815480929190611ee690613ce2565b9190505550611f44565b600f42611efd9190613b02565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201819055505b5b5b6000611f5130610b19565b905060168054906101000a900460ff16158015611fbc5750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611fd45750601660149054906101000a900460ff165b1561228557600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561207d5750600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61208657600080fd5b601660159054906101000a900460ff16156121205742600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101541061211f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612116906138cc565b60405180910390fd5b5b601660179054906101000a900460ff16156121aa57600061214c600d548461281990919063ffffffff16565b905061219d61218e84612180601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610b19565b6128de90919063ffffffff16565b8261289490919063ffffffff16565b90506121a88161293c565b505b600081111561226b5761220560646121f7600c546121e9601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610b19565b61281990919063ffffffff16565b61289490919063ffffffff16565b8111156122615761225e6064612250600c54612242601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610b19565b61281990919063ffffffff16565b61289490919063ffffffff16565b90505b61226a81612593565b5b6000479050600081111561228357612282476123ae565b5b505b505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061232e5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561233857600090505b612344848484846129f3565b50505050565b6000838311158290612392576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161238991906137ea565b60405180910390fd5b50600083856123a19190613be3565b9050809150509392505050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6123fe60028461289490919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015612429573d6000803e3d6000fd5b50601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc61247a60048461289490919063ffffffff16565b9081150290604051600060405180830381858888f193505050501580156124a5573d6000803e3d6000fd5b50601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6124f660048461289490919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015612521573d6000803e3d6000fd5b5050565b600060085482111561256c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125639061382c565b60405180910390fd5b6000612576612a20565b905061258b818461289490919063ffffffff16565b915050919050565b60016016806101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156125ca576125c9613de9565b5b6040519080825280602002602001820160405280156125f85781602001602082028036833780820191505090505b50905030816000815181106126105761260f613dba565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156126b257600080fd5b505afa1580156126c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126ea91906131eb565b816001815181106126fe576126fd613dba565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061276530601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846116e5565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016127c99594939291906139e7565b600060405180830381600087803b1580156127e357600080fd5b505af11580156127f7573d6000803e3d6000fd5b505050505060006016806101000a81548160ff02191690831515021790555050565b60008083141561282c576000905061288e565b6000828461283a9190613b89565b90508284826128499190613b58565b14612889576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612880906138ec565b60405180910390fd5b809150505b92915050565b60006128d683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612a4b565b905092915050565b60008082846128ed9190613b02565b905083811015612932576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129299061388c565b60405180910390fd5b8091505092915050565b6000600c9050600c82101561295457600c905061296b565b6023821115612966576023905061296a565b8190505b5b6000612981600283612aae90919063ffffffff16565b1461299557808061299190613ce2565b9150505b6129bc600a6129ae60028461281990919063ffffffff16565b61289490919063ffffffff16565b600a819055506129e9600a6129db60088461281990919063ffffffff16565b61289490919063ffffffff16565b600b819055505050565b80612a0157612a00612af8565b5b612a0c848484612b3b565b80612a1a57612a19612d06565b5b50505050565b6000806000612a2d612d1a565b91509150612a44818361289490919063ffffffff16565b9250505090565b60008083118290612a92576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a8991906137ea565b60405180910390fd5b5060008385612aa19190613b58565b9050809150509392505050565b6000612af083836040518060400160405280601881526020017f536166654d6174683a206d6f64756c6f206279207a65726f0000000000000000815250612d7c565b905092915050565b6000600a54148015612b0c57506000600b54145b15612b1657612b39565b600a54600f81905550600b546010819055506000600a819055506000600b819055505b565b600080600080600080612b4d87612dda565b955095509550955095509550612bab86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e4290919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612c4085600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128de90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612c8c81612e8c565b612c968483612f49565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051612cf391906139cc565b60405180910390a3505050505050505050565b600f54600a81905550601054600b81905550565b600080600060085490506000683635c9adc5dea000009050612d50683635c9adc5dea0000060085461289490919063ffffffff16565b821015612d6f57600854683635c9adc5dea00000935093505050612d78565b81819350935050505b9091565b6000808314158290612dc4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612dbb91906137ea565b60405180910390fd5b508284612dd19190613d2b565b90509392505050565b6000806000806000806000806000612df78a600a54600b54612f83565b9250925092506000612e07612a20565b90506000806000612e1a8e878787613019565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000612e8483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061234a565b905092915050565b6000612e96612a20565b90506000612ead828461281990919063ffffffff16565b9050612f0181600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128de90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b612f5e82600854612e4290919063ffffffff16565b600881905550612f79816009546128de90919063ffffffff16565b6009819055505050565b600080600080612faf6064612fa1888a61281990919063ffffffff16565b61289490919063ffffffff16565b90506000612fd96064612fcb888b61281990919063ffffffff16565b61289490919063ffffffff16565b9050600061300282612ff4858c612e4290919063ffffffff16565b612e4290919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080613032858961281990919063ffffffff16565b90506000613049868961281990919063ffffffff16565b90506000613060878961281990919063ffffffff16565b905060006130898261307b8587612e4290919063ffffffff16565b612e4290919063ffffffff16565b9050838184965096509650505050509450945094915050565b60006130b56130b084613a81565b613a5c565b905080838252602082019050828560208602820111156130d8576130d7613e1d565b5b60005b8581101561310857816130ee8882613112565b8452602084019350602083019250506001810190506130db565b5050509392505050565b600081359050613121816141d1565b92915050565b600081519050613136816141d1565b92915050565b600082601f83011261315157613150613e18565b5b81356131618482602086016130a2565b91505092915050565b600081359050613179816141e8565b92915050565b60008151905061318e816141e8565b92915050565b6000813590506131a3816141ff565b92915050565b6000815190506131b8816141ff565b92915050565b6000602082840312156131d4576131d3613e27565b5b60006131e284828501613112565b91505092915050565b60006020828403121561320157613200613e27565b5b600061320f84828501613127565b91505092915050565b6000806040838503121561322f5761322e613e27565b5b600061323d85828601613112565b925050602061324e85828601613112565b9150509250929050565b60008060006060848603121561327157613270613e27565b5b600061327f86828701613112565b935050602061329086828701613112565b92505060406132a186828701613194565b9150509250925092565b600080604083850312156132c2576132c1613e27565b5b60006132d085828601613112565b92505060206132e185828601613194565b9150509250929050565b60006020828403121561330157613300613e27565b5b600082013567ffffffffffffffff81111561331f5761331e613e22565b5b61332b8482850161313c565b91505092915050565b60006020828403121561334a57613349613e27565b5b60006133588482850161316a565b91505092915050565b60006020828403121561337757613376613e27565b5b60006133858482850161317f565b91505092915050565b6000602082840312156133a4576133a3613e27565b5b60006133b284828501613194565b91505092915050565b6000806000606084860312156133d4576133d3613e27565b5b60006133e2868287016131a9565b93505060206133f3868287016131a9565b9250506040613404868287016131a9565b9150509250925092565b600061341a8383613426565b60208301905092915050565b61342f81613c17565b82525050565b61343e81613c17565b82525050565b600061344f82613abd565b6134598185613ae0565b935061346483613aad565b8060005b8381101561349557815161347c888261340e565b975061348783613ad3565b925050600181019050613468565b5085935050505092915050565b6134ab81613c29565b82525050565b6134ba81613c6c565b82525050565b60006134cb82613ac8565b6134d58185613af1565b93506134e5818560208601613c7e565b6134ee81613e2c565b840191505092915050565b6000613506602383613af1565b915061351182613e3d565b604082019050919050565b6000613529602a83613af1565b915061353482613e8c565b604082019050919050565b600061354c602283613af1565b915061355782613edb565b604082019050919050565b600061356f602283613af1565b915061357a82613f2a565b604082019050919050565b6000613592601b83613af1565b915061359d82613f79565b602082019050919050565b60006135b5601583613af1565b91506135c082613fa2565b602082019050919050565b60006135d8602383613af1565b91506135e382613fcb565b604082019050919050565b60006135fb602183613af1565b91506136068261401a565b604082019050919050565b600061361e602083613af1565b915061362982614069565b602082019050919050565b6000613641602983613af1565b915061364c82614092565b604082019050919050565b6000613664602583613af1565b915061366f826140e1565b604082019050919050565b6000613687602483613af1565b915061369282614130565b604082019050919050565b60006136aa601783613af1565b91506136b58261417f565b602082019050919050565b60006136cd601883613af1565b91506136d8826141a8565b602082019050919050565b6136ec81613c55565b82525050565b6136fb81613c5f565b82525050565b60006020820190506137166000830184613435565b92915050565b60006040820190506137316000830185613435565b61373e6020830184613435565b9392505050565b600060408201905061375a6000830185613435565b61376760208301846136e3565b9392505050565b600060c0820190506137836000830189613435565b61379060208301886136e3565b61379d60408301876134b1565b6137aa60608301866134b1565b6137b76080830185613435565b6137c460a08301846136e3565b979650505050505050565b60006020820190506137e460008301846134a2565b92915050565b6000602082019050818103600083015261380481846134c0565b905092915050565b60006020820190508181036000830152613825816134f9565b9050919050565b600060208201905081810360008301526138458161351c565b9050919050565b600060208201905081810360008301526138658161353f565b9050919050565b6000602082019050818103600083015261388581613562565b9050919050565b600060208201905081810360008301526138a581613585565b9050919050565b600060208201905081810360008301526138c5816135a8565b9050919050565b600060208201905081810360008301526138e5816135cb565b9050919050565b60006020820190508181036000830152613905816135ee565b9050919050565b6000602082019050818103600083015261392581613611565b9050919050565b6000602082019050818103600083015261394581613634565b9050919050565b6000602082019050818103600083015261396581613657565b9050919050565b600060208201905081810360008301526139858161367a565b9050919050565b600060208201905081810360008301526139a58161369d565b9050919050565b600060208201905081810360008301526139c5816136c0565b9050919050565b60006020820190506139e160008301846136e3565b92915050565b600060a0820190506139fc60008301886136e3565b613a0960208301876134b1565b8181036040830152613a1b8186613444565b9050613a2a6060830185613435565b613a3760808301846136e3565b9695505050505050565b6000602082019050613a5660008301846136f2565b92915050565b6000613a66613a77565b9050613a728282613cb1565b919050565b6000604051905090565b600067ffffffffffffffff821115613a9c57613a9b613de9565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000613b0d82613c55565b9150613b1883613c55565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613b4d57613b4c613d5c565b5b828201905092915050565b6000613b6382613c55565b9150613b6e83613c55565b925082613b7e57613b7d613d8b565b5b828204905092915050565b6000613b9482613c55565b9150613b9f83613c55565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613bd857613bd7613d5c565b5b828202905092915050565b6000613bee82613c55565b9150613bf983613c55565b925082821015613c0c57613c0b613d5c565b5b828203905092915050565b6000613c2282613c35565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000613c7782613c55565b9050919050565b60005b83811015613c9c578082015181840152602081019050613c81565b83811115613cab576000848401525b50505050565b613cba82613e2c565b810181811067ffffffffffffffff82111715613cd957613cd8613de9565b5b80604052505050565b6000613ced82613c55565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415613d2057613d1f613d5c565b5b600182019050919050565b6000613d3682613c55565b9150613d4183613c55565b925082613d5157613d50613d8b565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f596f75722062757920636f6f6c646f776e20686173206e6f742065787069726560008201527f642e000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f526174652063616e277420657863656564203530250000000000000000000000600082015250565b7f596f75722073656c6c20636f6f6c646f776e20686173206e6f7420657870697260008201527f65642e0000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b7f54726164696e67206e6f742079657420656e61626c65642e0000000000000000600082015250565b6141da81613c17565b81146141e557600080fd5b50565b6141f181613c29565b81146141fc57600080fd5b50565b61420881613c55565b811461421357600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212203c16c2fe783e71f0f963fa49ea32eb2384e5c158d6c1c2dac2638b911f0d1b4664736f6c63430008050033

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

0000000000000000000000002054a670d8c17cd5599e939da27c2dfd453328c200000000000000000000000035e196d12b1c716b3a5292b134d4703a12433ab6000000000000000000000000db65c0ec7e4cf9dbb532829c513e3ec9fc4c6ad3

-----Decoded View---------------
Arg [0] : FeeAddress (address): 0x2054A670d8C17cD5599E939dA27c2DfD453328C2
Arg [1] : marketingWalletAddress (address): 0x35E196D12b1c716B3a5292B134d4703A12433aB6
Arg [2] : marketingFixedWalletAddress (address): 0xdb65C0Ec7E4cF9Dbb532829C513e3EC9FC4c6ad3

-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 0000000000000000000000002054a670d8c17cd5599e939da27c2dfd453328c2
Arg [1] : 00000000000000000000000035e196d12b1c716b3a5292b134d4703a12433ab6
Arg [2] : 000000000000000000000000db65c0ec7e4cf9dbb532829c513e3ec9fc4c6ad3


Deployed Bytecode Sourcemap

3865:14988:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6508:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7360:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6785:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7529:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17280:88;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18271:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6694:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17380:88;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17877:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18103:160;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18483:124;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17679:190;;;;;;;;;;;;;:::i;:::-;;6888:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2946:148;;;;;;;;;;;;;:::i;:::-;;2732:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6599:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7034:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18379:96;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18615:126;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16999:269;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17476:191;;;;;;;;;;;;;:::i;:::-;;16795:192;;;;;;;;;;;;;:::i;:::-;;18749:101;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7209:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16021:766;;;;;;;;;;;;;:::i;:::-;;6508:83;6545:13;6578:5;;;;;;;;;;;;;;;;;6571:12;;6508:83;:::o;7360:161::-;7435:4;7452:39;7461:12;:10;:12::i;:::-;7475:7;7484:6;7452:8;:39::i;:::-;7509:4;7502:11;;7360:161;;;;:::o;6785:95::-;6838:7;4368:12;6858:14;;6785:95;:::o;7529:313::-;7627:4;7644:36;7654:6;7662:9;7673:6;7644:9;:36::i;:::-;7691:121;7700:6;7708:12;:10;:12::i;:::-;7722:89;7760:6;7722:89;;;;;;;;;;;;;;;;;:11;:19;7734:6;7722:19;;;;;;;;;;;;;;;:33;7742:12;:10;:12::i;:::-;7722:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;7691:8;:121::i;:::-;7830:4;7823:11;;7529:313;;;;;:::o;17280:88::-;2869:12;:10;:12::i;:::-;2859:22;;:6;;;;;;;;;;:22;;;2851:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17355:5:::1;17340:4;:12;17345:6;17340:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;17280:88:::0;:::o;18271:100::-;18315:4;18339:24;18357:4;18339:9;:24::i;:::-;18332:31;;18271:100;:::o;6694:83::-;6735:5;4628:1;6753:16;;6694:83;:::o;17380:88::-;17428:4;17452;:8;17457:2;17452:8;;;;;;;;;;;;;;;;;;;;;;;;;17445:15;;17380:88;;;:::o;17877:218::-;17955:11;;;;;;;;;;;17939:27;;:12;:10;:12::i;:::-;:27;;;17931:36;;;;;;17993:2;17986:4;:9;17978:43;;;;;;;;;;;;:::i;:::-;;;;;;;;;18043:4;18032:8;:15;;;;18063:24;18078:8;;18063:24;;;;;;:::i;:::-;;;;;;;;17877:218;:::o;18103:160::-;2869:12;:10;:12::i;:::-;2859:22;;:6;;;;;;;;;;:22;;;2851:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18194:5:::1;18175:16;;:24;;;;;;;;;;;;;;;;;;18215:40;18238:16;;;;;;;;;;;18215:40;;;;;;:::i;:::-;;;;;;;;18103:160:::0;:::o;18483:124::-;18538:4;18580:8;:15;18589:5;18580:15;;;;;;;;;;;;;;;:19;;;18562:15;:37;;;;:::i;:::-;18555:44;;18483:124;;;:::o;17679:190::-;17745:11;;;;;;;;;;;17729:27;;:12;:10;:12::i;:::-;:27;;;17721:36;;;;;;17768:26;17797:21;17768:50;;17829:32;17842:18;17829:12;:32::i;:::-;17710:159;17679:190::o;6888:138::-;6954:7;6981:37;7001:7;:16;7009:7;7001:16;;;;;;;;;;;;;;;;6981:19;:37::i;:::-;6974:44;;6888:138;;;:::o;2946:148::-;2869:12;:10;:12::i;:::-;2859:22;;:6;;;;;;;;;;:22;;;2851:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3053:1:::1;3016:40;;3037:6;::::0;::::1;;;;;;;;3016:40;;;;;;;;;;;;3084:1;3067:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2946:148::o:0;2732:79::-;2770:7;2797:6;;;;;;;;;;;2790:13;;2732:79;:::o;6599:87::-;6638:13;6671:7;;;;;;;;;;;;;;;;;6664:14;;6599:87;:::o;7034:167::-;7112:4;7129:42;7139:12;:10;:12::i;:::-;7153:9;7164:6;7129:9;:42::i;:::-;7189:4;7182:11;;7034:167;;;;:::o;18379:96::-;18427:4;18451:16;;;;;;;;;;;18444:23;;18379:96;:::o;18615:126::-;18671:4;18713:8;:15;18722:5;18713:15;;;;;;;;;;;;;;;:20;;;18695:15;:38;;;;:::i;:::-;18688:45;;18615:126;;;:::o;16999:269::-;2869:12;:10;:12::i;:::-;2859:22;;:6;;;;;;;;;;:22;;;2851:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17073:6:::1;17068:193;17089:5;:12;17085:1;:16;17068:193;;;17139:13;;;;;;;;;;;17127:25;;:5;17133:1;17127:8;;;;;;;;:::i;:::-;;;;;;;;:25;;;;:65;;;;;17176:15;;;;;;;;;;;17156:36;;:5;17162:1;17156:8;;;;;;;;:::i;:::-;;;;;;;;:36;;;;17127:65;17123:127;;;17230:4;17213;:14;17218:5;17224:1;17218:8;;;;;;;;:::i;:::-;;;;;;;;17213:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;17123:127;17103:3;;;;;:::i;:::-;;;;17068:193;;;;16999:269:::0;:::o;17476:191::-;17542:11;;;;;;;;;;;17526:27;;:12;:10;:12::i;:::-;:27;;;17518:36;;;;;;17565:23;17591:24;17609:4;17591:9;:24::i;:::-;17565:50;;17626:33;17643:15;17626:16;:33::i;:::-;17507:160;17476:191::o;16795:192::-;2869:12;:10;:12::i;:::-;2859:22;;:6;;;;;;;;;;:22;;;2851:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16860:4:::1;16846:11;;:18;;;;;;;;;;;;;;;;;;16908:10;16889:15;:30;;;;:::i;:::-;16875:11;:44;;;;16971:7;16952:15;:27;;;;:::i;:::-;16930:19;:49;;;;16795:192::o:0;18749:101::-;18794:4;18818:24;18828:13;;;;;;;;;;;18818:9;:24::i;:::-;18811:31;;18749:101;:::o;7209:143::-;7290:7;7317:11;:18;7329:5;7317:18;;;;;;;;;;;;;;;:27;7336:7;7317:27;;;;;;;;;;;;;;;;7310:34;;7209:143;;;;:::o;16021:766::-;2869:12;:10;:12::i;:::-;2859:22;;:6;;;;;;;;;;:22;;;2851:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16086:11:::1;;;;;;;;;;;16085:12;16077:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;16135:35;16192:42;16135:100;;16264:16;16246:15;;:34;;;;;;;;;;;;;;;;;;16291:58;16308:4;16323:15;;;;;;;;;;;4368:12;16291:8;:58::i;:::-;16394:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16376:56;;;16441:4;16448:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16376:96;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16360:13;;:112;;;;;;;;;;;;;;;;;;16483:15;;;;;;;;;;;:31;;;16522:21;16553:4;16559:24;16577:4;16559:9;:24::i;:::-;16584:1;16586::::0;16588:7:::1;:5;:7::i;:::-;16596:15;16483:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;16639:18;16623:13;:34;;;;16682:15;16668:11;:29;;;;16715:13;;;;;;;;;;;16708:29;;;16746:15;;;;;;;;;;;16764:14;16708:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;16066:721;16021:766::o:0;141:98::-;194:7;221:10;214:17;;141:98;:::o;8916:335::-;9026:1;9009:19;;:5;:19;;;;9001:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9107:1;9088:21;;:7;:21;;;;9080:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9189:6;9159:11;:18;9171:5;9159:18;;;;;;;;;;;;;;;:27;9178:7;9159:27;;;;;;;;;;;;;;;:36;;;;9227:7;9211:32;;9220:5;9211:32;;;9236:6;9211:32;;;;;;:::i;:::-;;;;;;;;8916:335;;;:::o;9259:3149::-;9363:1;9347:18;;:4;:18;;;;9339:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9440:1;9426:16;;:2;:16;;;;9418:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9510:1;9501:6;:10;9493:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9581:7;:5;:7::i;:::-;9573:15;;:4;:15;;;;:32;;;;;9598:7;:5;:7::i;:::-;9592:13;;:2;:13;;;;9573:32;9570:2634;;;9625:16;;;;;;;;;;;9622:170;;;9666:8;:20;9675:10;9666:20;;;;;;;;;;;;;;;:27;;;;;;;;;;;;9662:115;;9741:16;;;;;;;;9746:1;9741:16;;;;9748:1;9741:16;;;;9750:1;9741:16;;;;9752:4;9741:16;;;;;9718:8;:20;9727:10;9718:20;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9662:115;9622:170;9839:13;;;;;;;;;;;9831:21;;:4;:21;;;:55;;;;;9870:15;;;;;;;;;;;9856:30;;:2;:30;;;;9831:55;:82;;;;;9891:18;:22;9910:2;9891:22;;;;;;;;;;;;;;;;;;;;;;;;;9890:23;9831:82;9828:1176;;;9942:11;;;;;;;;;;;9934:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;10011:1;10001:7;:11;;;;10042:1;10031:8;:12;;;;10065:16;;;;;;;;;;;10062:635;;;10123:15;10109:11;;:29;10106:301;;;10185:13;;10175:6;:23;;10167:32;;;;;;10253:15;10234:8;:12;10243:2;10234:12;;;;;;;;;;;;;;;:16;;;:34;10226:81;;;;;;;;;;;;:::i;:::-;;;;;;;;;10372:10;10353:15;:30;;;;:::i;:::-;10334:8;:12;10343:2;10334:12;;;;;;;;;;;;;;;:16;;:49;;;;10106:301;10457:15;10435:19;;:37;10431:225;;;10501:18;10522:22;10540:2;10522:9;:22::i;:::-;10501:43;;10608:23;10627:3;10608:14;10620:1;4368:12;10608:11;;:14;;;;:::i;:::-;:18;;:23;;;;:::i;:::-;10579:25;10590:13;10579:6;:10;;:25;;;;:::i;:::-;:52;;10571:61;;;;;;10474:182;10431:225;10062:635;10718:16;;;;;;;;;;;10715:274;;;10786:1;10763:8;:12;10772:2;10763:12;;;;;;;;;;;;;;;:19;;;:24;10759:211;;;10816:8;:12;10825:2;10816:12;;;;;;;;;;;;;;;:19;;;:21;;;;;;;;;:::i;:::-;;;;;;10759:211;;;10935:10;10916:15;:30;;;;:::i;:::-;10894:8;:12;10903:2;10894:12;;;;;;;;;;;;;;;:19;;:52;;;;10759:211;10715:274;9828:1176;11018:28;11049:24;11067:4;11049:9;:24::i;:::-;11018:55;;11115:6;;;;;;;;;;11114:7;:32;;;;;11133:13;;;;;;;;;;;11125:21;;:4;:21;;;;11114:32;:47;;;;;11150:11;;;;;;;;;;;11114:47;11111:1082;;;11191:4;:10;11196:4;11191:10;;;;;;;;;;;;;;;;;;;;;;;;;11190:11;:24;;;;;11206:4;:8;11211:2;11206:8;;;;;;;;;;;;;;;;;;;;;;;;;11205:9;11190:24;11182:33;;;;;;11237:16;;;;;;;;;;;11234:149;;;11308:15;11286:8;:14;11295:4;11286:14;;;;;;;;;;;;;;;:19;;;:37;11278:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;11234:149;11406:19;;;;;;;;;;;11403:235;;;11450:16;11469:26;11480:14;;11469:6;:10;;:26;;;;:::i;:::-;11450:45;;11529:50;11542:36;11571:6;11542:24;11552:13;;;;;;;;;;;11542:9;:24::i;:::-;:28;;:36;;;;:::i;:::-;11529:8;:12;;:50;;;;:::i;:::-;11518:61;;11602:16;11609:8;11602:6;:16::i;:::-;11427:211;11403:235;11684:1;11661:20;:24;11658:328;;;11736:47;11779:3;11736:38;11765:8;;11736:24;11746:13;;;;;;;;;;;11736:9;:24::i;:::-;:28;;:38;;;;:::i;:::-;:42;;:47;;;;:::i;:::-;11713:20;:70;11710:196;;;11835:47;11878:3;11835:38;11864:8;;11835:24;11845:13;;;;;;;;;;;11835:9;:24::i;:::-;:28;;:38;;;;:::i;:::-;:42;;:47;;;;:::i;:::-;11812:70;;11710:196;11928:38;11945:20;11928:16;:38::i;:::-;11658:328;12004:26;12033:21;12004:50;;12097:1;12076:18;:22;12073:105;;;12123:35;12136:21;12123:12;:35::i;:::-;12073:105;11163:1030;11111:1082;9607:2597;9570:2634;12214:12;12229:4;12214:19;;12249:18;:24;12268:4;12249:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;12277:18;:22;12296:2;12277:22;;;;;;;;;;;;;;;;;;;;;;;;;12249:50;12246:96;;;12325:5;12315:15;;12246:96;12362:38;12377:4;12382:2;12385:6;12392:7;12362:14;:38::i;:::-;9328:3080;9259:3149;;;:::o;1278:190::-;1364:7;1397:1;1392;:6;;1400:12;1384:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1424:9;1440:1;1436;:5;;;;:::i;:::-;1424:17;;1459:1;1452:8;;;1278:190;;;;;:::o;12915:221::-;12972:11;;;;;;;;;;;:20;;:35;12993:13;13004:1;12993:6;:10;;:13;;;;:::i;:::-;12972:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13018:23;;;;;;;;;;;:32;;:47;13051:13;13062:1;13051:6;:10;;:13;;;;:::i;:::-;13018:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13076:28;;;;;;;;;;;:37;;:52;13114:13;13125:1;13114:6;:10;;:13;;;;:::i;:::-;13076:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12915:221;:::o;7850:254::-;7917:7;7956;;7945;:18;;7937:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;8021:19;8044:10;:8;:10::i;:::-;8021:33;;8072:24;8084:11;8072:7;:11;;:24;;;;:::i;:::-;8065:31;;;7850:254;;;:::o;12416:483::-;5778:4;5769:6;;:13;;;;;;;;;;;;;;;;;;12494:21:::1;12532:1;12518:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12494:40;;12563:4;12545;12550:1;12545:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;12589:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12579:4;12584:1;12579:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;12622:62;12639:4;12654:15;;;;;;;;;;;12672:11;12622:8;:62::i;:::-;12695:15;;;;;;;;;;;:66;;;12776:11;12802:1;12818:4;12845;12865:15;12695:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;12483:416;5814:5:::0;5805:6;;:14;;;;;;;;;;;;;;;;;;12416:483;:::o;1476:245::-;1534:7;1562:1;1557;:6;1554:46;;;1587:1;1580:8;;;;1554:46;1610:9;1626:1;1622;:5;;;;:::i;:::-;1610:17;;1655:1;1650;1646;:5;;;;:::i;:::-;:10;1638:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1712:1;1705:8;;;1476:245;;;;;:::o;1729:132::-;1787:7;1814:39;1818:1;1821;1814:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1807:46;;1729:132;;;;:::o;947:179::-;1005:7;1025:9;1041:1;1037;:5;;;;:::i;:::-;1025:17;;1066:1;1061;:6;;1053:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1117:1;1110:8;;;947:179;;;;:::o;8457:451::-;8511:18;8532:2;8511:23;;8560:2;8548:9;:14;8545:183;;;8592:2;8579:15;;8545:183;;;8627:2;8615:9;:14;8612:116;;;8659:2;8646:15;;8612:116;;;8707:9;8694:22;;8612:116;8545:183;8762:1;8741:17;8756:1;8741:10;:14;;:17;;;;:::i;:::-;:22;8738:66;;8780:12;;;;;:::i;:::-;;;;8738:66;8824:27;8848:2;8825:17;8840:1;8825:10;:14;;:17;;;;:::i;:::-;8824:23;;:27;;;;:::i;:::-;8814:7;:37;;;;8873:27;8897:2;8874:17;8889:1;8874:10;:14;;:17;;;;:::i;:::-;8873:23;;:27;;;;:::i;:::-;8862:8;:38;;;;8500:408;8457:451;:::o;13148:263::-;13260:7;13256:40;;13282:14;:12;:14::i;:::-;13256:40;13307:44;13325:6;13333:9;13344:6;13307:17;:44::i;:::-;13366:7;13362:41;;13388:15;:13;:15::i;:::-;13362:41;13148:263;;;;:::o;14752:163::-;14793:7;14814:15;14831;14850:19;:17;:19::i;:::-;14813:56;;;;14887:20;14899:7;14887;:11;;:20;;;;:::i;:::-;14880:27;;;;14752:163;:::o;1869:189::-;1955:7;1987:1;1983;:5;1990:12;1975:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2014:9;2030:1;2026;:5;;;;:::i;:::-;2014:17;;2049:1;2042:8;;;1869:189;;;;;:::o;2066:130::-;2124:7;2151:37;2155:1;2158;2151:37;;;;;;;;;;;;;;;;;:3;:37::i;:::-;2144:44;;2066:130;;;;:::o;8112:210::-;8169:1;8158:7;;:12;:29;;;;;8186:1;8174:8;;:13;8158:29;8155:41;;;8189:7;;8155:41;8224:7;;8206:15;:25;;;;8261:8;;8242:16;:27;;;;8290:1;8280:7;:11;;;;8313:1;8302:8;:12;;;;8112:210;:::o;13419:490::-;13518:15;13535:23;13560:12;13574:23;13599:12;13613:13;13630:19;13641:7;13630:10;:19::i;:::-;13517:132;;;;;;;;;;;;13678:28;13698:7;13678;:15;13686:6;13678:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;13660:7;:15;13668:6;13660:15;;;;;;;;;;;;;;;:46;;;;13738:39;13761:15;13738:7;:18;13746:9;13738:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;13717:7;:18;13725:9;13717:18;;;;;;;;;;;;;;;:60;;;;13791:16;13801:5;13791:9;:16::i;:::-;13818:23;13830:4;13836;13818:11;:23::i;:::-;13874:9;13857:44;;13866:6;13857:44;;;13885:15;13857:44;;;;;;:::i;:::-;;;;;;;;13506:403;;;;;;13419:490;;;:::o;8334:115::-;8388:15;;8378:7;:25;;;;8425:16;;8414:8;:27;;;;8334:115::o;14923:255::-;14973:7;14982;15002:15;15020:7;;15002:25;;15038:15;4368:12;15038:25;;15087:20;4368:12;15087:7;;:11;;:20;;;;:::i;:::-;15077:7;:30;15074:60;;;15117:7;;4368:12;15109:25;;;;;;;;15074:60;15153:7;15162;15145:25;;;;;;14923:255;;;:::o;2204:166::-;2290:7;2323:1;2318;:6;;2326:12;2310:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2361:1;2357;:5;;;;:::i;:::-;2350:12;;2204:166;;;;;:::o;13917:468::-;13976:7;13985;13994;14003;14012;14021;14042:23;14067:12;14081:13;14098:39;14110:7;14119;;14128:8;;14098:11;:39::i;:::-;14041:96;;;;;;14148:19;14171:10;:8;:10::i;:::-;14148:33;;14193:15;14210:23;14235:12;14251:46;14263:7;14272:4;14278:5;14285:11;14251;:46::i;:::-;14192:105;;;;;;14316:7;14325:15;14342:4;14348:15;14365:4;14371:5;14308:69;;;;;;;;;;;;;;;;;;;13917:468;;;;;;;:::o;1134:136::-;1192:7;1219:43;1223:1;1226;1219:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1212:50;;1134:136;;;;:::o;15603:214::-;15656:19;15679:10;:8;:10::i;:::-;15656:33;;15700:13;15716:22;15726:11;15716:5;:9;;:22;;;;:::i;:::-;15700:38;;15776:33;15803:5;15776:7;:22;15792:4;15776:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;15751:7;:22;15767:4;15751:22;;;;;;;;;;;;;;;:58;;;;15645:172;;15603:214;:::o;15825:147::-;15903:17;15915:4;15903:7;;:11;;:17;;;;:::i;:::-;15893:7;:27;;;;15944:20;15959:4;15944:10;;:14;;:20;;;;:::i;:::-;15931:10;:33;;;;15825:147;;:::o;14393:351::-;14486:7;14495;14504;14524:12;14539:28;14563:3;14539:19;14551:6;14539:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;14524:43;;14578:13;14594:29;14619:3;14594:20;14606:7;14594;:11;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;14578:45;;14634:23;14660:28;14682:5;14660:17;14672:4;14660:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;14634:54;;14707:15;14724:4;14730:5;14699:37;;;;;;;;;14393:351;;;;;;;:::o;15186:409::-;15296:7;15305;15314;15334:15;15352:24;15364:11;15352:7;:11;;:24;;;;:::i;:::-;15334:42;;15387:12;15402:21;15411:11;15402:4;:8;;:21;;;;:::i;:::-;15387:36;;15434:13;15450:22;15460:11;15450:5;:9;;:22;;;;:::i;:::-;15434:38;;15483:23;15509:28;15531:5;15509:17;15521:4;15509:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;15483:54;;15556:7;15565:15;15582:4;15548:39;;;;;;;;;;15186:409;;;;;;;;:::o;24:722:1:-;120:5;145:81;161:64;218:6;161:64;:::i;:::-;145:81;:::i;:::-;136:90;;246:5;275:6;268:5;261:21;309:4;302:5;298:16;291:23;;335:6;385:3;377:4;369:6;365:17;360:3;356:27;353:36;350:2;;;404:79;;:::i;:::-;350:2;517:1;502:238;527:6;524:1;521:13;502:238;;;595:3;624:37;657:3;645:10;624:37;:::i;:::-;619:3;612:50;691:4;686:3;682:14;675:21;;725:4;720:3;716:14;709:21;;562:178;549:1;546;542:9;537:14;;502:238;;;506:14;126:620;;;;;;;:::o;752:139::-;798:5;836:6;823:20;814:29;;852:33;879:5;852:33;:::i;:::-;804:87;;;;:::o;897:143::-;954:5;985:6;979:13;970:22;;1001:33;1028:5;1001:33;:::i;:::-;960:80;;;;:::o;1063:370::-;1134:5;1183:3;1176:4;1168:6;1164:17;1160:27;1150:2;;1191:79;;:::i;:::-;1150:2;1308:6;1295:20;1333:94;1423:3;1415:6;1408:4;1400:6;1396:17;1333:94;:::i;:::-;1324:103;;1140:293;;;;;:::o;1439:133::-;1482:5;1520:6;1507:20;1498:29;;1536:30;1560:5;1536:30;:::i;:::-;1488:84;;;;:::o;1578:137::-;1632:5;1663:6;1657:13;1648:22;;1679:30;1703:5;1679:30;:::i;:::-;1638:77;;;;:::o;1721:139::-;1767:5;1805:6;1792:20;1783:29;;1821:33;1848:5;1821:33;:::i;:::-;1773:87;;;;:::o;1866:143::-;1923:5;1954:6;1948:13;1939:22;;1970:33;1997:5;1970:33;:::i;:::-;1929:80;;;;:::o;2015:329::-;2074:6;2123:2;2111:9;2102:7;2098:23;2094:32;2091:2;;;2129:79;;:::i;:::-;2091:2;2249:1;2274:53;2319:7;2310:6;2299:9;2295:22;2274:53;:::i;:::-;2264:63;;2220:117;2081:263;;;;:::o;2350:351::-;2420:6;2469:2;2457:9;2448:7;2444:23;2440:32;2437:2;;;2475:79;;:::i;:::-;2437:2;2595:1;2620:64;2676:7;2667:6;2656:9;2652:22;2620:64;:::i;:::-;2610:74;;2566:128;2427:274;;;;:::o;2707:474::-;2775:6;2783;2832:2;2820:9;2811:7;2807:23;2803:32;2800:2;;;2838:79;;:::i;:::-;2800:2;2958:1;2983:53;3028:7;3019:6;3008:9;3004:22;2983:53;:::i;:::-;2973:63;;2929:117;3085:2;3111:53;3156:7;3147:6;3136:9;3132:22;3111:53;:::i;:::-;3101:63;;3056:118;2790:391;;;;;:::o;3187:619::-;3264:6;3272;3280;3329:2;3317:9;3308:7;3304:23;3300:32;3297:2;;;3335:79;;:::i;:::-;3297:2;3455:1;3480:53;3525:7;3516:6;3505:9;3501:22;3480:53;:::i;:::-;3470:63;;3426:117;3582:2;3608:53;3653:7;3644:6;3633:9;3629:22;3608:53;:::i;:::-;3598:63;;3553:118;3710:2;3736:53;3781:7;3772:6;3761:9;3757:22;3736:53;:::i;:::-;3726:63;;3681:118;3287:519;;;;;:::o;3812:474::-;3880:6;3888;3937:2;3925:9;3916:7;3912:23;3908:32;3905:2;;;3943:79;;:::i;:::-;3905:2;4063:1;4088:53;4133:7;4124:6;4113:9;4109:22;4088:53;:::i;:::-;4078:63;;4034:117;4190:2;4216:53;4261:7;4252:6;4241:9;4237:22;4216:53;:::i;:::-;4206:63;;4161:118;3895:391;;;;;:::o;4292:539::-;4376:6;4425:2;4413:9;4404:7;4400:23;4396:32;4393:2;;;4431:79;;:::i;:::-;4393:2;4579:1;4568:9;4564:17;4551:31;4609:18;4601:6;4598:30;4595:2;;;4631:79;;:::i;:::-;4595:2;4736:78;4806:7;4797:6;4786:9;4782:22;4736:78;:::i;:::-;4726:88;;4522:302;4383:448;;;;:::o;4837:323::-;4893:6;4942:2;4930:9;4921:7;4917:23;4913:32;4910:2;;;4948:79;;:::i;:::-;4910:2;5068:1;5093:50;5135:7;5126:6;5115:9;5111:22;5093:50;:::i;:::-;5083:60;;5039:114;4900:260;;;;:::o;5166:345::-;5233:6;5282:2;5270:9;5261:7;5257:23;5253:32;5250:2;;;5288:79;;:::i;:::-;5250:2;5408:1;5433:61;5486:7;5477:6;5466:9;5462:22;5433:61;:::i;:::-;5423:71;;5379:125;5240:271;;;;:::o;5517:329::-;5576:6;5625:2;5613:9;5604:7;5600:23;5596:32;5593:2;;;5631:79;;:::i;:::-;5593:2;5751:1;5776:53;5821:7;5812:6;5801:9;5797:22;5776:53;:::i;:::-;5766:63;;5722:117;5583:263;;;;:::o;5852:663::-;5940:6;5948;5956;6005:2;5993:9;5984:7;5980:23;5976:32;5973:2;;;6011:79;;:::i;:::-;5973:2;6131:1;6156:64;6212:7;6203:6;6192:9;6188:22;6156:64;:::i;:::-;6146:74;;6102:128;6269:2;6295:64;6351:7;6342:6;6331:9;6327:22;6295:64;:::i;:::-;6285:74;;6240:129;6408:2;6434:64;6490:7;6481:6;6470:9;6466:22;6434:64;:::i;:::-;6424:74;;6379:129;5963:552;;;;;:::o;6521:179::-;6590:10;6611:46;6653:3;6645:6;6611:46;:::i;:::-;6689:4;6684:3;6680:14;6666:28;;6601:99;;;;:::o;6706:108::-;6783:24;6801:5;6783:24;:::i;:::-;6778:3;6771:37;6761:53;;:::o;6820:118::-;6907:24;6925:5;6907:24;:::i;:::-;6902:3;6895:37;6885:53;;:::o;6974:732::-;7093:3;7122:54;7170:5;7122:54;:::i;:::-;7192:86;7271:6;7266:3;7192:86;:::i;:::-;7185:93;;7302:56;7352:5;7302:56;:::i;:::-;7381:7;7412:1;7397:284;7422:6;7419:1;7416:13;7397:284;;;7498:6;7492:13;7525:63;7584:3;7569:13;7525:63;:::i;:::-;7518:70;;7611:60;7664:6;7611:60;:::i;:::-;7601:70;;7457:224;7444:1;7441;7437:9;7432:14;;7397:284;;;7401:14;7697:3;7690:10;;7098:608;;;;;;;:::o;7712:109::-;7793:21;7808:5;7793:21;:::i;:::-;7788:3;7781:34;7771:50;;:::o;7827:147::-;7922:45;7961:5;7922:45;:::i;:::-;7917:3;7910:58;7900:74;;:::o;7980:364::-;8068:3;8096:39;8129:5;8096:39;:::i;:::-;8151:71;8215:6;8210:3;8151:71;:::i;:::-;8144:78;;8231:52;8276:6;8271:3;8264:4;8257:5;8253:16;8231:52;:::i;:::-;8308:29;8330:6;8308:29;:::i;:::-;8303:3;8299:39;8292:46;;8072:272;;;;;:::o;8350:366::-;8492:3;8513:67;8577:2;8572:3;8513:67;:::i;:::-;8506:74;;8589:93;8678:3;8589:93;:::i;:::-;8707:2;8702:3;8698:12;8691:19;;8496:220;;;:::o;8722:366::-;8864:3;8885:67;8949:2;8944:3;8885:67;:::i;:::-;8878:74;;8961:93;9050:3;8961:93;:::i;:::-;9079:2;9074:3;9070:12;9063:19;;8868:220;;;:::o;9094:366::-;9236:3;9257:67;9321:2;9316:3;9257:67;:::i;:::-;9250:74;;9333:93;9422:3;9333:93;:::i;:::-;9451:2;9446:3;9442:12;9435:19;;9240:220;;;:::o;9466:366::-;9608:3;9629:67;9693:2;9688:3;9629:67;:::i;:::-;9622:74;;9705:93;9794:3;9705:93;:::i;:::-;9823:2;9818:3;9814:12;9807:19;;9612:220;;;:::o;9838:366::-;9980:3;10001:67;10065:2;10060:3;10001:67;:::i;:::-;9994:74;;10077:93;10166:3;10077:93;:::i;:::-;10195:2;10190:3;10186:12;10179:19;;9984:220;;;:::o;10210:366::-;10352:3;10373:67;10437:2;10432:3;10373:67;:::i;:::-;10366:74;;10449:93;10538:3;10449:93;:::i;:::-;10567:2;10562:3;10558:12;10551:19;;10356:220;;;:::o;10582:366::-;10724:3;10745:67;10809:2;10804:3;10745:67;:::i;:::-;10738:74;;10821:93;10910:3;10821:93;:::i;:::-;10939:2;10934:3;10930:12;10923:19;;10728:220;;;:::o;10954:366::-;11096:3;11117:67;11181:2;11176:3;11117:67;:::i;:::-;11110:74;;11193:93;11282:3;11193:93;:::i;:::-;11311:2;11306:3;11302:12;11295:19;;11100:220;;;:::o;11326:366::-;11468:3;11489:67;11553:2;11548:3;11489:67;:::i;:::-;11482:74;;11565:93;11654:3;11565:93;:::i;:::-;11683:2;11678:3;11674:12;11667:19;;11472:220;;;:::o;11698:366::-;11840:3;11861:67;11925:2;11920:3;11861:67;:::i;:::-;11854:74;;11937:93;12026:3;11937:93;:::i;:::-;12055:2;12050:3;12046:12;12039:19;;11844:220;;;:::o;12070:366::-;12212:3;12233:67;12297:2;12292:3;12233:67;:::i;:::-;12226:74;;12309:93;12398:3;12309:93;:::i;:::-;12427:2;12422:3;12418:12;12411:19;;12216:220;;;:::o;12442:366::-;12584:3;12605:67;12669:2;12664:3;12605:67;:::i;:::-;12598:74;;12681:93;12770:3;12681:93;:::i;:::-;12799:2;12794:3;12790:12;12783:19;;12588:220;;;:::o;12814:366::-;12956:3;12977:67;13041:2;13036:3;12977:67;:::i;:::-;12970:74;;13053:93;13142:3;13053:93;:::i;:::-;13171:2;13166:3;13162:12;13155:19;;12960:220;;;:::o;13186:366::-;13328:3;13349:67;13413:2;13408:3;13349:67;:::i;:::-;13342:74;;13425:93;13514:3;13425:93;:::i;:::-;13543:2;13538:3;13534:12;13527:19;;13332:220;;;:::o;13558:118::-;13645:24;13663:5;13645:24;:::i;:::-;13640:3;13633:37;13623:53;;:::o;13682:112::-;13765:22;13781:5;13765:22;:::i;:::-;13760:3;13753:35;13743:51;;:::o;13800:222::-;13893:4;13931:2;13920:9;13916:18;13908:26;;13944:71;14012:1;14001:9;13997:17;13988:6;13944:71;:::i;:::-;13898:124;;;;:::o;14028:332::-;14149:4;14187:2;14176:9;14172:18;14164:26;;14200:71;14268:1;14257:9;14253:17;14244:6;14200:71;:::i;:::-;14281:72;14349:2;14338:9;14334:18;14325:6;14281:72;:::i;:::-;14154:206;;;;;:::o;14366:332::-;14487:4;14525:2;14514:9;14510:18;14502:26;;14538:71;14606:1;14595:9;14591:17;14582:6;14538:71;:::i;:::-;14619:72;14687:2;14676:9;14672:18;14663:6;14619:72;:::i;:::-;14492:206;;;;;:::o;14704:807::-;14953:4;14991:3;14980:9;14976:19;14968:27;;15005:71;15073:1;15062:9;15058:17;15049:6;15005:71;:::i;:::-;15086:72;15154:2;15143:9;15139:18;15130:6;15086:72;:::i;:::-;15168:80;15244:2;15233:9;15229:18;15220:6;15168:80;:::i;:::-;15258;15334:2;15323:9;15319:18;15310:6;15258:80;:::i;:::-;15348:73;15416:3;15405:9;15401:19;15392:6;15348:73;:::i;:::-;15431;15499:3;15488:9;15484:19;15475:6;15431:73;:::i;:::-;14958:553;;;;;;;;;:::o;15517:210::-;15604:4;15642:2;15631:9;15627:18;15619:26;;15655:65;15717:1;15706:9;15702:17;15693:6;15655:65;:::i;:::-;15609:118;;;;:::o;15733:313::-;15846:4;15884:2;15873:9;15869:18;15861:26;;15933:9;15927:4;15923:20;15919:1;15908:9;15904:17;15897:47;15961:78;16034:4;16025:6;15961:78;:::i;:::-;15953:86;;15851:195;;;;:::o;16052:419::-;16218:4;16256:2;16245:9;16241:18;16233:26;;16305:9;16299:4;16295:20;16291:1;16280:9;16276:17;16269:47;16333:131;16459:4;16333:131;:::i;:::-;16325:139;;16223:248;;;:::o;16477:419::-;16643:4;16681:2;16670:9;16666:18;16658:26;;16730:9;16724:4;16720:20;16716:1;16705:9;16701:17;16694:47;16758:131;16884:4;16758:131;:::i;:::-;16750:139;;16648:248;;;:::o;16902:419::-;17068:4;17106:2;17095:9;17091:18;17083:26;;17155:9;17149:4;17145:20;17141:1;17130:9;17126:17;17119:47;17183:131;17309:4;17183:131;:::i;:::-;17175:139;;17073:248;;;:::o;17327:419::-;17493:4;17531:2;17520:9;17516:18;17508:26;;17580:9;17574:4;17570:20;17566:1;17555:9;17551:17;17544:47;17608:131;17734:4;17608:131;:::i;:::-;17600:139;;17498:248;;;:::o;17752:419::-;17918:4;17956:2;17945:9;17941:18;17933:26;;18005:9;17999:4;17995:20;17991:1;17980:9;17976:17;17969:47;18033:131;18159:4;18033:131;:::i;:::-;18025:139;;17923:248;;;:::o;18177:419::-;18343:4;18381:2;18370:9;18366:18;18358:26;;18430:9;18424:4;18420:20;18416:1;18405:9;18401:17;18394:47;18458:131;18584:4;18458:131;:::i;:::-;18450:139;;18348:248;;;:::o;18602:419::-;18768:4;18806:2;18795:9;18791:18;18783:26;;18855:9;18849:4;18845:20;18841:1;18830:9;18826:17;18819:47;18883:131;19009:4;18883:131;:::i;:::-;18875:139;;18773:248;;;:::o;19027:419::-;19193:4;19231:2;19220:9;19216:18;19208:26;;19280:9;19274:4;19270:20;19266:1;19255:9;19251:17;19244:47;19308:131;19434:4;19308:131;:::i;:::-;19300:139;;19198:248;;;:::o;19452:419::-;19618:4;19656:2;19645:9;19641:18;19633:26;;19705:9;19699:4;19695:20;19691:1;19680:9;19676:17;19669:47;19733:131;19859:4;19733:131;:::i;:::-;19725:139;;19623:248;;;:::o;19877:419::-;20043:4;20081:2;20070:9;20066:18;20058:26;;20130:9;20124:4;20120:20;20116:1;20105:9;20101:17;20094:47;20158:131;20284:4;20158:131;:::i;:::-;20150:139;;20048:248;;;:::o;20302:419::-;20468:4;20506:2;20495:9;20491:18;20483:26;;20555:9;20549:4;20545:20;20541:1;20530:9;20526:17;20519:47;20583:131;20709:4;20583:131;:::i;:::-;20575:139;;20473:248;;;:::o;20727:419::-;20893:4;20931:2;20920:9;20916:18;20908:26;;20980:9;20974:4;20970:20;20966:1;20955:9;20951:17;20944:47;21008:131;21134:4;21008:131;:::i;:::-;21000:139;;20898:248;;;:::o;21152:419::-;21318:4;21356:2;21345:9;21341:18;21333:26;;21405:9;21399:4;21395:20;21391:1;21380:9;21376:17;21369:47;21433:131;21559:4;21433:131;:::i;:::-;21425:139;;21323:248;;;:::o;21577:419::-;21743:4;21781:2;21770:9;21766:18;21758:26;;21830:9;21824:4;21820:20;21816:1;21805:9;21801:17;21794:47;21858:131;21984:4;21858:131;:::i;:::-;21850:139;;21748:248;;;:::o;22002:222::-;22095:4;22133:2;22122:9;22118:18;22110:26;;22146:71;22214:1;22203:9;22199:17;22190:6;22146:71;:::i;:::-;22100:124;;;;:::o;22230:831::-;22493:4;22531:3;22520:9;22516:19;22508:27;;22545:71;22613:1;22602:9;22598:17;22589:6;22545:71;:::i;:::-;22626:80;22702:2;22691:9;22687:18;22678:6;22626:80;:::i;:::-;22753:9;22747:4;22743:20;22738:2;22727:9;22723:18;22716:48;22781:108;22884:4;22875:6;22781:108;:::i;:::-;22773:116;;22899:72;22967:2;22956:9;22952:18;22943:6;22899:72;:::i;:::-;22981:73;23049:3;23038:9;23034:19;23025:6;22981:73;:::i;:::-;22498:563;;;;;;;;:::o;23067:214::-;23156:4;23194:2;23183:9;23179:18;23171:26;;23207:67;23271:1;23260:9;23256:17;23247:6;23207:67;:::i;:::-;23161:120;;;;:::o;23287:129::-;23321:6;23348:20;;:::i;:::-;23338:30;;23377:33;23405:4;23397:6;23377:33;:::i;:::-;23328:88;;;:::o;23422:75::-;23455:6;23488:2;23482:9;23472:19;;23462:35;:::o;23503:311::-;23580:4;23670:18;23662:6;23659:30;23656:2;;;23692:18;;:::i;:::-;23656:2;23742:4;23734:6;23730:17;23722:25;;23802:4;23796;23792:15;23784:23;;23585:229;;;:::o;23820:132::-;23887:4;23910:3;23902:11;;23940:4;23935:3;23931:14;23923:22;;23892:60;;;:::o;23958:114::-;24025:6;24059:5;24053:12;24043:22;;24032:40;;;:::o;24078:99::-;24130:6;24164:5;24158:12;24148:22;;24137:40;;;:::o;24183:113::-;24253:4;24285;24280:3;24276:14;24268:22;;24258:38;;;:::o;24302:184::-;24401:11;24435:6;24430:3;24423:19;24475:4;24470:3;24466:14;24451:29;;24413:73;;;;:::o;24492:169::-;24576:11;24610:6;24605:3;24598:19;24650:4;24645:3;24641:14;24626:29;;24588:73;;;;:::o;24667:305::-;24707:3;24726:20;24744:1;24726:20;:::i;:::-;24721:25;;24760:20;24778:1;24760:20;:::i;:::-;24755:25;;24914:1;24846:66;24842:74;24839:1;24836:81;24833:2;;;24920:18;;:::i;:::-;24833:2;24964:1;24961;24957:9;24950:16;;24711:261;;;;:::o;24978:185::-;25018:1;25035:20;25053:1;25035:20;:::i;:::-;25030:25;;25069:20;25087:1;25069:20;:::i;:::-;25064:25;;25108:1;25098:2;;25113:18;;:::i;:::-;25098:2;25155:1;25152;25148:9;25143:14;;25020:143;;;;:::o;25169:348::-;25209:7;25232:20;25250:1;25232:20;:::i;:::-;25227:25;;25266:20;25284:1;25266:20;:::i;:::-;25261:25;;25454:1;25386:66;25382:74;25379:1;25376:81;25371:1;25364:9;25357:17;25353:105;25350:2;;;25461:18;;:::i;:::-;25350:2;25509:1;25506;25502:9;25491:20;;25217:300;;;;:::o;25523:191::-;25563:4;25583:20;25601:1;25583:20;:::i;:::-;25578:25;;25617:20;25635:1;25617:20;:::i;:::-;25612:25;;25656:1;25653;25650:8;25647:2;;;25661:18;;:::i;:::-;25647:2;25706:1;25703;25699:9;25691:17;;25568:146;;;;:::o;25720:96::-;25757:7;25786:24;25804:5;25786:24;:::i;:::-;25775:35;;25765:51;;;:::o;25822:90::-;25856:7;25899:5;25892:13;25885:21;25874:32;;25864:48;;;:::o;25918:126::-;25955:7;25995:42;25988:5;25984:54;25973:65;;25963:81;;;:::o;26050:77::-;26087:7;26116:5;26105:16;;26095:32;;;:::o;26133:86::-;26168:7;26208:4;26201:5;26197:16;26186:27;;26176:43;;;:::o;26225:121::-;26283:9;26316:24;26334:5;26316:24;:::i;:::-;26303:37;;26293:53;;;:::o;26352:307::-;26420:1;26430:113;26444:6;26441:1;26438:13;26430:113;;;26529:1;26524:3;26520:11;26514:18;26510:1;26505:3;26501:11;26494:39;26466:2;26463:1;26459:10;26454:15;;26430:113;;;26561:6;26558:1;26555:13;26552:2;;;26641:1;26632:6;26627:3;26623:16;26616:27;26552:2;26401:258;;;;:::o;26665:281::-;26748:27;26770:4;26748:27;:::i;:::-;26740:6;26736:40;26878:6;26866:10;26863:22;26842:18;26830:10;26827:34;26824:62;26821:2;;;26889:18;;:::i;:::-;26821:2;26929:10;26925:2;26918:22;26708:238;;;:::o;26952:233::-;26991:3;27014:24;27032:5;27014:24;:::i;:::-;27005:33;;27060:66;27053:5;27050:77;27047:2;;;27130:18;;:::i;:::-;27047:2;27177:1;27170:5;27166:13;27159:20;;26995:190;;;:::o;27191:176::-;27223:1;27240:20;27258:1;27240:20;:::i;:::-;27235:25;;27274:20;27292:1;27274:20;:::i;:::-;27269:25;;27313:1;27303:2;;27318:18;;:::i;:::-;27303:2;27359:1;27356;27352:9;27347:14;;27225:142;;;;:::o;27373:180::-;27421:77;27418:1;27411:88;27518:4;27515:1;27508:15;27542:4;27539:1;27532:15;27559:180;27607:77;27604:1;27597:88;27704:4;27701:1;27694:15;27728:4;27725:1;27718:15;27745:180;27793:77;27790:1;27783:88;27890:4;27887:1;27880:15;27914:4;27911:1;27904:15;27931:180;27979:77;27976:1;27969:88;28076:4;28073:1;28066:15;28100:4;28097:1;28090:15;28117:117;28226:1;28223;28216:12;28240:117;28349:1;28346;28339:12;28363:117;28472:1;28469;28462:12;28486:117;28595:1;28592;28585:12;28609:102;28650:6;28701:2;28697:7;28692:2;28685:5;28681:14;28677:28;28667:38;;28657:54;;;:::o;28717:222::-;28857:34;28853:1;28845:6;28841:14;28834:58;28926:5;28921:2;28913:6;28909:15;28902:30;28823:116;:::o;28945:229::-;29085:34;29081:1;29073:6;29069:14;29062:58;29154:12;29149:2;29141:6;29137:15;29130:37;29051:123;:::o;29180:221::-;29320:34;29316:1;29308:6;29304:14;29297:58;29389:4;29384:2;29376:6;29372:15;29365:29;29286:115;:::o;29407:221::-;29547:34;29543:1;29535:6;29531:14;29524:58;29616:4;29611:2;29603:6;29599:15;29592:29;29513:115;:::o;29634:177::-;29774:29;29770:1;29762:6;29758:14;29751:53;29740:71;:::o;29817:171::-;29957:23;29953:1;29945:6;29941:14;29934:47;29923:65;:::o;29994:222::-;30134:34;30130:1;30122:6;30118:14;30111:58;30203:5;30198:2;30190:6;30186:15;30179:30;30100:116;:::o;30222:220::-;30362:34;30358:1;30350:6;30346:14;30339:58;30431:3;30426:2;30418:6;30414:15;30407:28;30328:114;:::o;30448:182::-;30588:34;30584:1;30576:6;30572:14;30565:58;30554:76;:::o;30636:228::-;30776:34;30772:1;30764:6;30760:14;30753:58;30845:11;30840:2;30832:6;30828:15;30821:36;30742:122;:::o;30870:224::-;31010:34;31006:1;30998:6;30994:14;30987:58;31079:7;31074:2;31066:6;31062:15;31055:32;30976:118;:::o;31100:223::-;31240:34;31236:1;31228:6;31224:14;31217:58;31309:6;31304:2;31296:6;31292:15;31285:31;31206:117;:::o;31329:173::-;31469:25;31465:1;31457:6;31453:14;31446:49;31435:67;:::o;31508:174::-;31648:26;31644:1;31636:6;31632:14;31625:50;31614:68;:::o;31688:122::-;31761:24;31779:5;31761:24;:::i;:::-;31754:5;31751:35;31741:2;;31800:1;31797;31790:12;31741:2;31731:79;:::o;31816:116::-;31886:21;31901:5;31886:21;:::i;:::-;31879:5;31876:32;31866:2;;31922:1;31919;31912:12;31866:2;31856:76;:::o;31938:122::-;32011:24;32029:5;32011:24;:::i;:::-;32004:5;32001:35;31991:2;;32050:1;32047;32040:12;31991:2;31981:79;:::o

Swarm Source

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