ETH Price: $2,472.16 (+0.72%)
 

Overview

Max Total Supply

100,000,000 HITLER

Holders

12

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
9,600.000335545 HITLER

Value
$0.00
0xe04cf891321ba0ab1a5e50e7d9bfaf58397d6684
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
HitlerInu

Compiler Version
v0.8.16+commit.07a7930e

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-08-15
*/

/**

Hitler Inu - $HITLER

Hitler Inu is the meme token inspired by the ex-Nazi leader and probably the most notorious person in the history of humanity.
​
Even though Adolf Hitler was in his essence a criminal, he was picked by the people, and his talent to lead the masses can't be denied.
In the Crypto Degen World, he would be known as the ultimate shiller!
​
$HITLER token will be focused on spreading awareness of all the toxic people in the degen crypto space, by exposing them on our platform.

⛽ Anti-Jeet Tax
⛽ No Harm Intended (Meme)
⛽ 24/7 Active Team
⛽ Reveal the Toxic People
⛽ $HITLER dApp

Twitter: https://twitter.com/hitlerinueth
Telegram: https://t.me/hitlerinu
Web: https://www.hitlerinu.com

*/

// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.8.16;

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

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

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

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

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

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

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

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

}

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

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

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

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

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

}  

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

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

contract HitlerInu is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _rOwned;
    mapping (address => uint256) private _tOwned;
    mapping (address => uint256) private _buyMap;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private bots;
    mapping (address => uint) private cooldown;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 100 * 10**6 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    
    struct Taxes {
        uint256 buyFee1;
        uint256 buyFee2;
        uint256 sellFee1;
        uint256 sellFee2;
    }

    Taxes private _taxes = Taxes(0,4,0,4);
    uint256 private initialTotalBuyFee = _taxes.buyFee1 + _taxes.buyFee2;
    uint256 private initialTotalSellFee = _taxes.sellFee1 + _taxes.sellFee2;

    uint256 private sellTax = _taxes.sellFee2;
    uint256 private earlySellTax = 15;

    address payable private _feeAddrWallet;
    uint256 private _feeRate = 20;
    
    string private constant _name = "Hitler Inu";
    string private constant _symbol = "HITLER";
    uint8 private constant _decimals = 9;
    
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;

    bool private tradingOpen;
    uint256 launchedAt;

    bool private inSwap = false;
    bool private swapEnabled = false;
    bool private cooldownEnabled = false;

    uint256 private _maxTxAmount = _tTotal;
    uint256 private _maxWalletSize = _tTotal;

    event MaxTxAmountUpdated(uint _maxTxAmount);
    event TaxChange(uint _tax);

    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor () {
        _feeAddrWallet = payable(0x95291841bdfE25A1168617779900612b48c84f1D);
        _rOwned[_msgSender()] = _rTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_feeAddrWallet] = true;
        emit Transfer(address(0), _msgSender(), _tTotal);
    }

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

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

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

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

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

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

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

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

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

    function setCooldownEnabled(bool onoff) external onlyOwner() {
        cooldownEnabled = onoff;
    }

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

    function _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(amount > 0, "Amount cannot be zero.");

        if (from != owner() && to != owner()) {

            if (!_isBuy(from)) {
                if (_buyMap[tx.origin] != 0 &&
                    (_buyMap[tx.origin] + (2 hours) >= block.timestamp))  {
                    _taxes.sellFee2 = earlySellTax;
                } else {
                    _taxes.sellFee2 = sellTax;
                }
            } else {
                if (_buyMap[to] == 0) {
                    _buyMap[to] = block.timestamp;
                }
                _taxes.sellFee2 = sellTax;
            }

            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] && cooldownEnabled) {
                // buy
                require(amount <= _maxTxAmount, "Max transaction exceeded.");
                require(balanceOf(to) + amount <= _maxWalletSize, "Max wallet exceeded.");
            }

            if (from != address(uniswapV2Router) && ! _isExcludedFromFee[from] && to == uniswapV2Pair){
                require(!bots[from] && !bots[to]);
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            if(contractTokenBalance > balanceOf(uniswapV2Pair).mul(_feeRate).div(100)) {
                contractTokenBalance = balanceOf(uniswapV2Pair).mul(_feeRate).div(100);
            }

            if (!inSwap && from != uniswapV2Pair && swapEnabled) {

                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }

        _tokenTransfer(from,to,amount);
    }

    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 + 60
        );
    }

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

    function getCurrentFees() public view returns (uint256, uint256, uint256, uint256) {
        return (_taxes.buyFee1, _taxes.buyFee2, _taxes.sellFee1, _taxes.sellFee2);
    }

    function adjustFees(uint256 buyFee1, uint256 buyFee2, uint256 sellFee1, uint256 sellFee2) external onlyOwner {
        require(buyFee1 + buyFee2 <= initialTotalBuyFee);
        require(sellFee1 + sellFee2 <= initialTotalSellFee);
        _taxes.buyFee1 = buyFee1;
        _taxes.buyFee2 = buyFee2;
        _taxes.sellFee1 = sellFee1;
        _taxes.sellFee2 = sellFee2;
    }

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

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

    function setFeeRate(uint256 rate) external onlyOwner() {
        require(rate<=49);
        _feeRate = rate;
    }
        
    function sendETHToFee(uint256 amount) private {
        _feeAddrWallet.transfer(amount);
    }  

    function openTrading() external onlyOwner() {
        require(!tradingOpen, "Trading already open.");
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        swapEnabled = true;
        cooldownEnabled = true;
        _maxTxAmount = _tTotal.mul(3).div(100);
        _maxWalletSize = _tTotal.mul(3).div(100);
        tradingOpen = true;
        launchedAt = block.number;
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
    }
    
    function addBot(address[] memory _bots) public onlyOwner {
        for (uint i = 0; i < _bots.length; i++) {
            if (_bots[i] != address(this) && _bots[i] != uniswapV2Pair && _bots[i] != address(uniswapV2Router)){
                bots[_bots[i]] = true;
            }
        }
    }
    
    function delBot(address notbot) public onlyOwner {
        bots[notbot] = false;
    }
        
    function _tokenTransfer(address sender, address recipient, uint256 amount) private {
        _transferStandard(sender, recipient, amount);
    }

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

    function _takeTeam(uint256 tTeam) private {
        uint256 currentRate =  _getRate();
        uint256 rTeam = tTeam.mul(currentRate);
        _rOwned[address(this)] = _rOwned[address(this)].add(rTeam);
    }

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

    receive() external payable {}
    
    function manualswap() external onlyOwner {
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }
    
    function manualsend() external onlyOwner {
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }

    function _getValues(uint256 tAmount) private view returns (uint256, uint256, uint256, uint256, uint256, uint256) {
        (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _isBuy(_msgSender()) ? _getTValues(tAmount, _taxes.buyFee1, _taxes.buyFee2) : _getTValues(tAmount, _taxes.sellFee1, _taxes.sellFee2);
        uint256 currentRate =  _getRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, tTeam, currentRate);
        return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam);
    }

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

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

    function _isBuy(address _sender) private view returns (bool) {
        return _sender == uniswapV2Pair;
    }

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

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

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_tax","type":"uint256"}],"name":"TaxChange","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address[]","name":"_bots","type":"address[]"}],"name":"addBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"buyFee1","type":"uint256"},{"internalType":"uint256","name":"buyFee2","type":"uint256"},{"internalType":"uint256","name":"sellFee1","type":"uint256"},{"internalType":"uint256","name":"sellFee2","type":"uint256"}],"name":"adjustFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"percentage","type":"uint256"}],"name":"changeMaxTxAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"percentage","type":"uint256"}],"name":"changeMaxWalletSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"notbot","type":"address"}],"name":"delBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCurrentFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"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":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"onoff","type":"bool"}],"name":"setCooldownEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"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":"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"}]

608060405267016345785d8a00006000196200001c9190620004c0565b6000196200002b919062000527565b60095560405180608001604052806000815260200160048152602001600081526020016004815250600b600082015181600001556020820151816001015560408201518160020155606082015181600301555050600b60010154600b6000015462000097919062000562565b600f55600b60030154600b60020154620000b2919062000562565b601055600b60030154601155600f601255601480556000601860006101000a81548160ff0219169083151502179055506000601860016101000a81548160ff0219169083151502179055506000601860026101000a81548160ff02191690831515021790555067016345785d8a000060195567016345785d8a0000601a553480156200013d57600080fd5b506000620001506200045660201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3507395291841bdfe25a1168617779900612b48c84f1d601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600954600260006200025a6200045660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160066000620002ae6200045e60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160066000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620003e16200045660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef67016345785d8a0000604051620004489190620005ae565b60405180910390a3620005cb565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620004cd8262000487565b9150620004da8362000487565b925082620004ed57620004ec62000491565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620005348262000487565b9150620005418362000487565b92508282039050818111156200055c576200055b620004f8565b5b92915050565b60006200056f8262000487565b91506200057c8362000487565b9250828201905080821115620005975762000596620004f8565b5b92915050565b620005a88162000487565b82525050565b6000602082019050620005c560008301846200059d565b92915050565b613bca80620005db6000396000f3fe6080604052600436106101445760003560e01c80636fc3eaec116100b657806395d89b411161006f57806395d89b411461041c578063a9059cbb14610447578063b87f137a14610484578063c3c8cd80146104ad578063c9567bf9146104c4578063dd62ed3e146104db5761014b565b80636fc3eaec1461034157806370a0823114610358578063715018a61461039557806371908a03146103ac578063751039fc146103da5780638da5cb5b146103f15761014b565b806323b872dd1161010857806323b872dd14610235578063273123b714610272578063313ce5671461029b57806345596e2e146102c65780635932ead1146102ef578063677daa57146103185761014b565b806306fdde0314610150578063095ea7b31461017b57806317e1df5b146101b857806318160ddd146101e157806321bbcbb11461020c5761014b565b3661014b57005b600080fd5b34801561015c57600080fd5b50610165610518565b6040516101729190612c8a565b60405180910390f35b34801561018757600080fd5b506101a2600480360381019061019d9190612d54565b610555565b6040516101af9190612daf565b60405180910390f35b3480156101c457600080fd5b506101df60048036038101906101da9190612dca565b610573565b005b3480156101ed57600080fd5b506101f661066a565b6040516102039190612e40565b60405180910390f35b34801561021857600080fd5b50610233600480360381019061022e9190612fa3565b61067a565b005b34801561024157600080fd5b5061025c60048036038101906102579190612fec565b6108dc565b6040516102699190612daf565b60405180910390f35b34801561027e57600080fd5b506102996004803603810190610294919061303f565b6109b5565b005b3480156102a757600080fd5b506102b0610aa5565b6040516102bd9190613088565b60405180910390f35b3480156102d257600080fd5b506102ed60048036038101906102e891906130a3565b610aae565b005b3480156102fb57600080fd5b50610316600480360381019061031191906130fc565b610b5b565b005b34801561032457600080fd5b5061033f600480360381019061033a91906130a3565b610c0d565b005b34801561034d57600080fd5b50610356610ce6565b005b34801561036457600080fd5b5061037f600480360381019061037a919061303f565b610d8c565b60405161038c9190612e40565b60405180910390f35b3480156103a157600080fd5b506103aa610ddd565b005b3480156103b857600080fd5b506103c1610f30565b6040516103d19493929190613129565b60405180910390f35b3480156103e657600080fd5b506103ef610f5c565b005b3480156103fd57600080fd5b50610406611011565b604051610413919061317d565b60405180910390f35b34801561042857600080fd5b5061043161103a565b60405161043e9190612c8a565b60405180910390f35b34801561045357600080fd5b5061046e60048036038101906104699190612d54565b611077565b60405161047b9190612daf565b60405180910390f35b34801561049057600080fd5b506104ab60048036038101906104a691906130a3565b611095565b005b3480156104b957600080fd5b506104c261116e565b005b3480156104d057600080fd5b506104d961121c565b005b3480156104e757600080fd5b5061050260048036038101906104fd9190613198565b61178e565b60405161050f9190612e40565b60405180910390f35b60606040518060400160405280600a81526020017f4869746c657220496e7500000000000000000000000000000000000000000000815250905090565b6000610569610562611815565b848461181d565b6001905092915050565b61057b611815565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610608576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105ff90613224565b60405180910390fd5b600f5483856106179190613273565b111561062257600080fd5b60105481836106319190613273565b111561063c57600080fd5b83600b6000018190555082600b6001018190555081600b6002018190555080600b6003018190555050505050565b600067016345785d8a0000905090565b610682611815565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461070f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161070690613224565b60405180910390fd5b60005b81518110156108d8573073ffffffffffffffffffffffffffffffffffffffff16828281518110610745576107446132a7565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff16141580156107d95750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168282815181106107b8576107b76132a7565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614155b801561084d5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682828151811061082c5761082b6132a7565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614155b156108c55760016007600084848151811061086b5761086a6132a7565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b80806108d0906132d6565b915050610712565b5050565b60006108e98484846119e6565b6109aa846108f5611815565b6109a585604051806060016040528060288152602001613b6d60289139600560008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061095b611815565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120f69092919063ffffffff16565b61181d565b600190509392505050565b6109bd611815565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a4190613224565b60405180910390fd5b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60006009905090565b610ab6611815565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b3a90613224565b60405180910390fd5b6031811115610b5157600080fd5b8060148190555050565b610b63611815565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bf0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610be790613224565b60405180910390fd5b80601860026101000a81548160ff02191690831515021790555050565b610c15611815565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ca2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9990613224565b60405180910390fd5b60008111610caf57600080fd5b610cdd6064610ccf8367016345785d8a000061215a90919063ffffffff16565b6121d490919063ffffffff16565b60198190555050565b610cee611815565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7290613224565b60405180910390fd5b6000479050610d898161221e565b50565b6000610dd6600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461228a565b9050919050565b610de5611815565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e72576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6990613224565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600080600080600b60000154600b60010154600b60020154600b60030154935093509350935090919293565b610f64611815565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ff1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fe890613224565b60405180910390fd5b67016345785d8a000060198190555067016345785d8a0000601a81905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600681526020017f4849544c45520000000000000000000000000000000000000000000000000000815250905090565b600061108b611084611815565b84846119e6565b6001905092915050565b61109d611815565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461112a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112190613224565b60405180910390fd5b6000811161113757600080fd5b61116560646111578367016345785d8a000061215a90919063ffffffff16565b6121d490919063ffffffff16565b601a8190555050565b611176611815565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611203576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111fa90613224565b60405180910390fd5b600061120e30610d8c565b9050611219816122f8565b50565b611224611815565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a890613224565b60405180910390fd5b601660149054906101000a900460ff1615611301576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112f89061336a565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061139030601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1667016345785d8a000061181d565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156113db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113ff919061339f565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611466573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061148a919061339f565b6040518363ffffffff1660e01b81526004016114a79291906133cc565b6020604051808303816000875af11580156114c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114ea919061339f565b601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061157330610d8c565b60008061157e611011565b426040518863ffffffff1660e01b81526004016115a09695949392919061343a565b60606040518083038185885af11580156115be573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906115e391906134b0565b5050506001601860016101000a81548160ff0219169083151502179055506001601860026101000a81548160ff02191690831515021790555061164b606461163d600367016345785d8a000061215a90919063ffffffff16565b6121d490919063ffffffff16565b6019819055506116806064611672600367016345785d8a000061215a90919063ffffffff16565b6121d490919063ffffffff16565b601a819055506001601660146101000a81548160ff02191690831515021790555043601781905550601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611747929190613503565b6020604051808303816000875af1158015611766573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061178a9190613541565b5050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361188c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611883906135e0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036118fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118f290613672565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516119d99190612e40565b60405180910390a3505050565b60008111611a29576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a20906136de565b60405180910390fd5b611a31611011565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611a9f5750611a6f611011565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156120e657611aad8361257d565b611b75576000600460003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414158015611b4d575042611c20600460003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b4a9190613273565b10155b15611b6357601254600b60030181905550611b70565b601154600b600301819055505b611c0e565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205403611c015742600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b601154600b600301819055505b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611cb95750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611d0f5750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611d275750601860029054906101000a900460ff165b15611dca57601954811115611d71576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d689061374a565b60405180910390fd5b601a5481611d7e84610d8c565b611d889190613273565b1115611dc9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dc0906137b6565b60405180910390fd5b5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611e725750600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611ecb5750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b15611f7e57600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611f745750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611f7d57600080fd5b5b6000611f8930610d8c565b9050611fdd6064611fcf601454611fc1601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610d8c565b61215a90919063ffffffff16565b6121d490919063ffffffff16565b81111561203957612036606461202860145461201a601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610d8c565b61215a90919063ffffffff16565b6121d490919063ffffffff16565b90505b601860009054906101000a900460ff161580156120a45750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156120bc5750601860019054906101000a900460ff165b156120e4576120ca816122f8565b600047905060008111156120e2576120e14761221e565b5b505b505b6120f18383836125d7565b505050565b600083831115829061213e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121359190612c8a565b60405180910390fd5b506000838561214d91906137d6565b9050809150509392505050565b600080830361216c57600090506121ce565b6000828461217a919061380a565b90508284826121899190613893565b146121c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121c090613936565b60405180910390fd5b809150505b92915050565b600061221683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506125e7565b905092915050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612286573d6000803e3d6000fd5b5050565b60006009548211156122d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122c8906139c8565b60405180910390fd5b60006122db61264a565b90506122f081846121d490919063ffffffff16565b915050919050565b6001601860006101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156123305761232f612e60565b5b60405190808252806020026020018201604052801561235e5781602001602082028036833780820191505090505b5090503081600081518110612376576123756132a7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561241d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612441919061339f565b81600181518110612455576124546132a7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506124bc30601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461181d565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430603c4261250c9190613273565b6040518663ffffffff1660e01b815260040161252c959493929190613aa6565b600060405180830381600087803b15801561254657600080fd5b505af115801561255a573d6000803e3d6000fd5b50505050506000601860006101000a81548160ff02191690831515021790555050565b6000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b6125e2838383612675565b505050565b6000808311829061262e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126259190612c8a565b60405180910390fd5b506000838561263d9190613893565b9050809150509392505050565b6000806000612657612840565b9150915061266e81836121d490919063ffffffff16565b9250505090565b6000806000806000806126878761289f565b9550955095509550955095506126e586600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461293c90919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061277a85600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461298690919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506127c6816129e4565b6127d08483612aa1565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161282d9190612e40565b60405180910390a3505050505050505050565b60008060006009549050600067016345785d8a0000905061287467016345785d8a00006009546121d490919063ffffffff16565b8210156128925760095467016345785d8a000093509350505061289b565b81819350935050505b9091565b60008060008060008060008060006128bd6128b8611815565b61257d565b6128db576128d68a600b60020154600b60030154612adb565b6128f1565b6128f08a600b60000154600b60010154612adb565b5b925092509250600061290161264a565b905060008060006129148e878787612b71565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b600061297e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506120f6565b905092915050565b60008082846129959190613273565b9050838110156129da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129d190613b4c565b60405180910390fd5b8091505092915050565b60006129ee61264a565b90506000612a05828461215a90919063ffffffff16565b9050612a5981600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461298690919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b612ab68260095461293c90919063ffffffff16565b600981905550612ad181600a5461298690919063ffffffff16565b600a819055505050565b600080600080612b076064612af9888a61215a90919063ffffffff16565b6121d490919063ffffffff16565b90506000612b316064612b23888b61215a90919063ffffffff16565b6121d490919063ffffffff16565b90506000612b5a82612b4c858c61293c90919063ffffffff16565b61293c90919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080612b8a858961215a90919063ffffffff16565b90506000612ba1868961215a90919063ffffffff16565b90506000612bb8878961215a90919063ffffffff16565b90506000612be182612bd3858761293c90919063ffffffff16565b61293c90919063ffffffff16565b9050838184965096509650505050509450945094915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612c34578082015181840152602081019050612c19565b60008484015250505050565b6000601f19601f8301169050919050565b6000612c5c82612bfa565b612c668185612c05565b9350612c76818560208601612c16565b612c7f81612c40565b840191505092915050565b60006020820190508181036000830152612ca48184612c51565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612ceb82612cc0565b9050919050565b612cfb81612ce0565b8114612d0657600080fd5b50565b600081359050612d1881612cf2565b92915050565b6000819050919050565b612d3181612d1e565b8114612d3c57600080fd5b50565b600081359050612d4e81612d28565b92915050565b60008060408385031215612d6b57612d6a612cb6565b5b6000612d7985828601612d09565b9250506020612d8a85828601612d3f565b9150509250929050565b60008115159050919050565b612da981612d94565b82525050565b6000602082019050612dc46000830184612da0565b92915050565b60008060008060808587031215612de457612de3612cb6565b5b6000612df287828801612d3f565b9450506020612e0387828801612d3f565b9350506040612e1487828801612d3f565b9250506060612e2587828801612d3f565b91505092959194509250565b612e3a81612d1e565b82525050565b6000602082019050612e556000830184612e31565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612e9882612c40565b810181811067ffffffffffffffff82111715612eb757612eb6612e60565b5b80604052505050565b6000612eca612cac565b9050612ed68282612e8f565b919050565b600067ffffffffffffffff821115612ef657612ef5612e60565b5b602082029050602081019050919050565b600080fd5b6000612f1f612f1a84612edb565b612ec0565b90508083825260208201905060208402830185811115612f4257612f41612f07565b5b835b81811015612f6b5780612f578882612d09565b845260208401935050602081019050612f44565b5050509392505050565b600082601f830112612f8a57612f89612e5b565b5b8135612f9a848260208601612f0c565b91505092915050565b600060208284031215612fb957612fb8612cb6565b5b600082013567ffffffffffffffff811115612fd757612fd6612cbb565b5b612fe384828501612f75565b91505092915050565b60008060006060848603121561300557613004612cb6565b5b600061301386828701612d09565b935050602061302486828701612d09565b925050604061303586828701612d3f565b9150509250925092565b60006020828403121561305557613054612cb6565b5b600061306384828501612d09565b91505092915050565b600060ff82169050919050565b6130828161306c565b82525050565b600060208201905061309d6000830184613079565b92915050565b6000602082840312156130b9576130b8612cb6565b5b60006130c784828501612d3f565b91505092915050565b6130d981612d94565b81146130e457600080fd5b50565b6000813590506130f6816130d0565b92915050565b60006020828403121561311257613111612cb6565b5b6000613120848285016130e7565b91505092915050565b600060808201905061313e6000830187612e31565b61314b6020830186612e31565b6131586040830185612e31565b6131656060830184612e31565b95945050505050565b61317781612ce0565b82525050565b6000602082019050613192600083018461316e565b92915050565b600080604083850312156131af576131ae612cb6565b5b60006131bd85828601612d09565b92505060206131ce85828601612d09565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061320e602083612c05565b9150613219826131d8565b602082019050919050565b6000602082019050818103600083015261323d81613201565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061327e82612d1e565b915061328983612d1e565b92508282019050808211156132a1576132a0613244565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006132e182612d1e565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361331357613312613244565b5b600182019050919050565b7f54726164696e6720616c7265616479206f70656e2e0000000000000000000000600082015250565b6000613354601583612c05565b915061335f8261331e565b602082019050919050565b6000602082019050818103600083015261338381613347565b9050919050565b60008151905061339981612cf2565b92915050565b6000602082840312156133b5576133b4612cb6565b5b60006133c38482850161338a565b91505092915050565b60006040820190506133e1600083018561316e565b6133ee602083018461316e565b9392505050565b6000819050919050565b6000819050919050565b600061342461341f61341a846133f5565b6133ff565b612d1e565b9050919050565b61343481613409565b82525050565b600060c08201905061344f600083018961316e565b61345c6020830188612e31565b613469604083018761342b565b613476606083018661342b565b613483608083018561316e565b61349060a0830184612e31565b979650505050505050565b6000815190506134aa81612d28565b92915050565b6000806000606084860312156134c9576134c8612cb6565b5b60006134d78682870161349b565b93505060206134e88682870161349b565b92505060406134f98682870161349b565b9150509250925092565b6000604082019050613518600083018561316e565b6135256020830184612e31565b9392505050565b60008151905061353b816130d0565b92915050565b60006020828403121561355757613556612cb6565b5b60006135658482850161352c565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006135ca602483612c05565b91506135d58261356e565b604082019050919050565b600060208201905081810360008301526135f9816135bd565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061365c602283612c05565b915061366782613600565b604082019050919050565b6000602082019050818103600083015261368b8161364f565b9050919050565b7f416d6f756e742063616e6e6f74206265207a65726f2e00000000000000000000600082015250565b60006136c8601683612c05565b91506136d382613692565b602082019050919050565b600060208201905081810360008301526136f7816136bb565b9050919050565b7f4d6178207472616e73616374696f6e2065786365656465642e00000000000000600082015250565b6000613734601983612c05565b915061373f826136fe565b602082019050919050565b6000602082019050818103600083015261376381613727565b9050919050565b7f4d61782077616c6c65742065786365656465642e000000000000000000000000600082015250565b60006137a0601483612c05565b91506137ab8261376a565b602082019050919050565b600060208201905081810360008301526137cf81613793565b9050919050565b60006137e182612d1e565b91506137ec83612d1e565b925082820390508181111561380457613803613244565b5b92915050565b600061381582612d1e565b915061382083612d1e565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561385957613858613244565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061389e82612d1e565b91506138a983612d1e565b9250826138b9576138b8613864565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613920602183612c05565b915061392b826138c4565b604082019050919050565b6000602082019050818103600083015261394f81613913565b9050919050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b60006139b2602a83612c05565b91506139bd82613956565b604082019050919050565b600060208201905081810360008301526139e1816139a5565b9050919050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613a1d81612ce0565b82525050565b6000613a2f8383613a14565b60208301905092915050565b6000602082019050919050565b6000613a53826139e8565b613a5d81856139f3565b9350613a6883613a04565b8060005b83811015613a99578151613a808882613a23565b9750613a8b83613a3b565b925050600181019050613a6c565b5085935050505092915050565b600060a082019050613abb6000830188612e31565b613ac8602083018761342b565b8181036040830152613ada8186613a48565b9050613ae9606083018561316e565b613af66080830184612e31565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613b36601b83612c05565b9150613b4182613b00565b602082019050919050565b60006020820190508181036000830152613b6581613b29565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122022fde824b76075d3eb025c85d2f37caf9646d41037e123150828e6bac53c80cb64736f6c63430008100033

Deployed Bytecode

0x6080604052600436106101445760003560e01c80636fc3eaec116100b657806395d89b411161006f57806395d89b411461041c578063a9059cbb14610447578063b87f137a14610484578063c3c8cd80146104ad578063c9567bf9146104c4578063dd62ed3e146104db5761014b565b80636fc3eaec1461034157806370a0823114610358578063715018a61461039557806371908a03146103ac578063751039fc146103da5780638da5cb5b146103f15761014b565b806323b872dd1161010857806323b872dd14610235578063273123b714610272578063313ce5671461029b57806345596e2e146102c65780635932ead1146102ef578063677daa57146103185761014b565b806306fdde0314610150578063095ea7b31461017b57806317e1df5b146101b857806318160ddd146101e157806321bbcbb11461020c5761014b565b3661014b57005b600080fd5b34801561015c57600080fd5b50610165610518565b6040516101729190612c8a565b60405180910390f35b34801561018757600080fd5b506101a2600480360381019061019d9190612d54565b610555565b6040516101af9190612daf565b60405180910390f35b3480156101c457600080fd5b506101df60048036038101906101da9190612dca565b610573565b005b3480156101ed57600080fd5b506101f661066a565b6040516102039190612e40565b60405180910390f35b34801561021857600080fd5b50610233600480360381019061022e9190612fa3565b61067a565b005b34801561024157600080fd5b5061025c60048036038101906102579190612fec565b6108dc565b6040516102699190612daf565b60405180910390f35b34801561027e57600080fd5b506102996004803603810190610294919061303f565b6109b5565b005b3480156102a757600080fd5b506102b0610aa5565b6040516102bd9190613088565b60405180910390f35b3480156102d257600080fd5b506102ed60048036038101906102e891906130a3565b610aae565b005b3480156102fb57600080fd5b50610316600480360381019061031191906130fc565b610b5b565b005b34801561032457600080fd5b5061033f600480360381019061033a91906130a3565b610c0d565b005b34801561034d57600080fd5b50610356610ce6565b005b34801561036457600080fd5b5061037f600480360381019061037a919061303f565b610d8c565b60405161038c9190612e40565b60405180910390f35b3480156103a157600080fd5b506103aa610ddd565b005b3480156103b857600080fd5b506103c1610f30565b6040516103d19493929190613129565b60405180910390f35b3480156103e657600080fd5b506103ef610f5c565b005b3480156103fd57600080fd5b50610406611011565b604051610413919061317d565b60405180910390f35b34801561042857600080fd5b5061043161103a565b60405161043e9190612c8a565b60405180910390f35b34801561045357600080fd5b5061046e60048036038101906104699190612d54565b611077565b60405161047b9190612daf565b60405180910390f35b34801561049057600080fd5b506104ab60048036038101906104a691906130a3565b611095565b005b3480156104b957600080fd5b506104c261116e565b005b3480156104d057600080fd5b506104d961121c565b005b3480156104e757600080fd5b5061050260048036038101906104fd9190613198565b61178e565b60405161050f9190612e40565b60405180910390f35b60606040518060400160405280600a81526020017f4869746c657220496e7500000000000000000000000000000000000000000000815250905090565b6000610569610562611815565b848461181d565b6001905092915050565b61057b611815565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610608576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105ff90613224565b60405180910390fd5b600f5483856106179190613273565b111561062257600080fd5b60105481836106319190613273565b111561063c57600080fd5b83600b6000018190555082600b6001018190555081600b6002018190555080600b6003018190555050505050565b600067016345785d8a0000905090565b610682611815565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461070f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161070690613224565b60405180910390fd5b60005b81518110156108d8573073ffffffffffffffffffffffffffffffffffffffff16828281518110610745576107446132a7565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff16141580156107d95750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168282815181106107b8576107b76132a7565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614155b801561084d5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682828151811061082c5761082b6132a7565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614155b156108c55760016007600084848151811061086b5761086a6132a7565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b80806108d0906132d6565b915050610712565b5050565b60006108e98484846119e6565b6109aa846108f5611815565b6109a585604051806060016040528060288152602001613b6d60289139600560008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061095b611815565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120f69092919063ffffffff16565b61181d565b600190509392505050565b6109bd611815565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a4190613224565b60405180910390fd5b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60006009905090565b610ab6611815565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b3a90613224565b60405180910390fd5b6031811115610b5157600080fd5b8060148190555050565b610b63611815565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bf0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610be790613224565b60405180910390fd5b80601860026101000a81548160ff02191690831515021790555050565b610c15611815565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ca2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9990613224565b60405180910390fd5b60008111610caf57600080fd5b610cdd6064610ccf8367016345785d8a000061215a90919063ffffffff16565b6121d490919063ffffffff16565b60198190555050565b610cee611815565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7290613224565b60405180910390fd5b6000479050610d898161221e565b50565b6000610dd6600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461228a565b9050919050565b610de5611815565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e72576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6990613224565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600080600080600b60000154600b60010154600b60020154600b60030154935093509350935090919293565b610f64611815565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ff1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fe890613224565b60405180910390fd5b67016345785d8a000060198190555067016345785d8a0000601a81905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600681526020017f4849544c45520000000000000000000000000000000000000000000000000000815250905090565b600061108b611084611815565b84846119e6565b6001905092915050565b61109d611815565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461112a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112190613224565b60405180910390fd5b6000811161113757600080fd5b61116560646111578367016345785d8a000061215a90919063ffffffff16565b6121d490919063ffffffff16565b601a8190555050565b611176611815565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611203576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111fa90613224565b60405180910390fd5b600061120e30610d8c565b9050611219816122f8565b50565b611224611815565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a890613224565b60405180910390fd5b601660149054906101000a900460ff1615611301576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112f89061336a565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061139030601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1667016345785d8a000061181d565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156113db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113ff919061339f565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611466573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061148a919061339f565b6040518363ffffffff1660e01b81526004016114a79291906133cc565b6020604051808303816000875af11580156114c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114ea919061339f565b601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061157330610d8c565b60008061157e611011565b426040518863ffffffff1660e01b81526004016115a09695949392919061343a565b60606040518083038185885af11580156115be573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906115e391906134b0565b5050506001601860016101000a81548160ff0219169083151502179055506001601860026101000a81548160ff02191690831515021790555061164b606461163d600367016345785d8a000061215a90919063ffffffff16565b6121d490919063ffffffff16565b6019819055506116806064611672600367016345785d8a000061215a90919063ffffffff16565b6121d490919063ffffffff16565b601a819055506001601660146101000a81548160ff02191690831515021790555043601781905550601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611747929190613503565b6020604051808303816000875af1158015611766573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061178a9190613541565b5050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361188c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611883906135e0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036118fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118f290613672565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516119d99190612e40565b60405180910390a3505050565b60008111611a29576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a20906136de565b60405180910390fd5b611a31611011565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611a9f5750611a6f611011565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156120e657611aad8361257d565b611b75576000600460003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414158015611b4d575042611c20600460003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b4a9190613273565b10155b15611b6357601254600b60030181905550611b70565b601154600b600301819055505b611c0e565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205403611c015742600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b601154600b600301819055505b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611cb95750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611d0f5750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611d275750601860029054906101000a900460ff165b15611dca57601954811115611d71576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d689061374a565b60405180910390fd5b601a5481611d7e84610d8c565b611d889190613273565b1115611dc9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dc0906137b6565b60405180910390fd5b5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611e725750600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611ecb5750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b15611f7e57600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611f745750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611f7d57600080fd5b5b6000611f8930610d8c565b9050611fdd6064611fcf601454611fc1601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610d8c565b61215a90919063ffffffff16565b6121d490919063ffffffff16565b81111561203957612036606461202860145461201a601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610d8c565b61215a90919063ffffffff16565b6121d490919063ffffffff16565b90505b601860009054906101000a900460ff161580156120a45750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156120bc5750601860019054906101000a900460ff165b156120e4576120ca816122f8565b600047905060008111156120e2576120e14761221e565b5b505b505b6120f18383836125d7565b505050565b600083831115829061213e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121359190612c8a565b60405180910390fd5b506000838561214d91906137d6565b9050809150509392505050565b600080830361216c57600090506121ce565b6000828461217a919061380a565b90508284826121899190613893565b146121c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121c090613936565b60405180910390fd5b809150505b92915050565b600061221683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506125e7565b905092915050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612286573d6000803e3d6000fd5b5050565b60006009548211156122d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122c8906139c8565b60405180910390fd5b60006122db61264a565b90506122f081846121d490919063ffffffff16565b915050919050565b6001601860006101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156123305761232f612e60565b5b60405190808252806020026020018201604052801561235e5781602001602082028036833780820191505090505b5090503081600081518110612376576123756132a7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561241d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612441919061339f565b81600181518110612455576124546132a7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506124bc30601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461181d565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430603c4261250c9190613273565b6040518663ffffffff1660e01b815260040161252c959493929190613aa6565b600060405180830381600087803b15801561254657600080fd5b505af115801561255a573d6000803e3d6000fd5b50505050506000601860006101000a81548160ff02191690831515021790555050565b6000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b6125e2838383612675565b505050565b6000808311829061262e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126259190612c8a565b60405180910390fd5b506000838561263d9190613893565b9050809150509392505050565b6000806000612657612840565b9150915061266e81836121d490919063ffffffff16565b9250505090565b6000806000806000806126878761289f565b9550955095509550955095506126e586600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461293c90919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061277a85600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461298690919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506127c6816129e4565b6127d08483612aa1565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161282d9190612e40565b60405180910390a3505050505050505050565b60008060006009549050600067016345785d8a0000905061287467016345785d8a00006009546121d490919063ffffffff16565b8210156128925760095467016345785d8a000093509350505061289b565b81819350935050505b9091565b60008060008060008060008060006128bd6128b8611815565b61257d565b6128db576128d68a600b60020154600b60030154612adb565b6128f1565b6128f08a600b60000154600b60010154612adb565b5b925092509250600061290161264a565b905060008060006129148e878787612b71565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b600061297e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506120f6565b905092915050565b60008082846129959190613273565b9050838110156129da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129d190613b4c565b60405180910390fd5b8091505092915050565b60006129ee61264a565b90506000612a05828461215a90919063ffffffff16565b9050612a5981600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461298690919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b612ab68260095461293c90919063ffffffff16565b600981905550612ad181600a5461298690919063ffffffff16565b600a819055505050565b600080600080612b076064612af9888a61215a90919063ffffffff16565b6121d490919063ffffffff16565b90506000612b316064612b23888b61215a90919063ffffffff16565b6121d490919063ffffffff16565b90506000612b5a82612b4c858c61293c90919063ffffffff16565b61293c90919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080612b8a858961215a90919063ffffffff16565b90506000612ba1868961215a90919063ffffffff16565b90506000612bb8878961215a90919063ffffffff16565b90506000612be182612bd3858761293c90919063ffffffff16565b61293c90919063ffffffff16565b9050838184965096509650505050509450945094915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612c34578082015181840152602081019050612c19565b60008484015250505050565b6000601f19601f8301169050919050565b6000612c5c82612bfa565b612c668185612c05565b9350612c76818560208601612c16565b612c7f81612c40565b840191505092915050565b60006020820190508181036000830152612ca48184612c51565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612ceb82612cc0565b9050919050565b612cfb81612ce0565b8114612d0657600080fd5b50565b600081359050612d1881612cf2565b92915050565b6000819050919050565b612d3181612d1e565b8114612d3c57600080fd5b50565b600081359050612d4e81612d28565b92915050565b60008060408385031215612d6b57612d6a612cb6565b5b6000612d7985828601612d09565b9250506020612d8a85828601612d3f565b9150509250929050565b60008115159050919050565b612da981612d94565b82525050565b6000602082019050612dc46000830184612da0565b92915050565b60008060008060808587031215612de457612de3612cb6565b5b6000612df287828801612d3f565b9450506020612e0387828801612d3f565b9350506040612e1487828801612d3f565b9250506060612e2587828801612d3f565b91505092959194509250565b612e3a81612d1e565b82525050565b6000602082019050612e556000830184612e31565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612e9882612c40565b810181811067ffffffffffffffff82111715612eb757612eb6612e60565b5b80604052505050565b6000612eca612cac565b9050612ed68282612e8f565b919050565b600067ffffffffffffffff821115612ef657612ef5612e60565b5b602082029050602081019050919050565b600080fd5b6000612f1f612f1a84612edb565b612ec0565b90508083825260208201905060208402830185811115612f4257612f41612f07565b5b835b81811015612f6b5780612f578882612d09565b845260208401935050602081019050612f44565b5050509392505050565b600082601f830112612f8a57612f89612e5b565b5b8135612f9a848260208601612f0c565b91505092915050565b600060208284031215612fb957612fb8612cb6565b5b600082013567ffffffffffffffff811115612fd757612fd6612cbb565b5b612fe384828501612f75565b91505092915050565b60008060006060848603121561300557613004612cb6565b5b600061301386828701612d09565b935050602061302486828701612d09565b925050604061303586828701612d3f565b9150509250925092565b60006020828403121561305557613054612cb6565b5b600061306384828501612d09565b91505092915050565b600060ff82169050919050565b6130828161306c565b82525050565b600060208201905061309d6000830184613079565b92915050565b6000602082840312156130b9576130b8612cb6565b5b60006130c784828501612d3f565b91505092915050565b6130d981612d94565b81146130e457600080fd5b50565b6000813590506130f6816130d0565b92915050565b60006020828403121561311257613111612cb6565b5b6000613120848285016130e7565b91505092915050565b600060808201905061313e6000830187612e31565b61314b6020830186612e31565b6131586040830185612e31565b6131656060830184612e31565b95945050505050565b61317781612ce0565b82525050565b6000602082019050613192600083018461316e565b92915050565b600080604083850312156131af576131ae612cb6565b5b60006131bd85828601612d09565b92505060206131ce85828601612d09565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061320e602083612c05565b9150613219826131d8565b602082019050919050565b6000602082019050818103600083015261323d81613201565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061327e82612d1e565b915061328983612d1e565b92508282019050808211156132a1576132a0613244565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006132e182612d1e565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361331357613312613244565b5b600182019050919050565b7f54726164696e6720616c7265616479206f70656e2e0000000000000000000000600082015250565b6000613354601583612c05565b915061335f8261331e565b602082019050919050565b6000602082019050818103600083015261338381613347565b9050919050565b60008151905061339981612cf2565b92915050565b6000602082840312156133b5576133b4612cb6565b5b60006133c38482850161338a565b91505092915050565b60006040820190506133e1600083018561316e565b6133ee602083018461316e565b9392505050565b6000819050919050565b6000819050919050565b600061342461341f61341a846133f5565b6133ff565b612d1e565b9050919050565b61343481613409565b82525050565b600060c08201905061344f600083018961316e565b61345c6020830188612e31565b613469604083018761342b565b613476606083018661342b565b613483608083018561316e565b61349060a0830184612e31565b979650505050505050565b6000815190506134aa81612d28565b92915050565b6000806000606084860312156134c9576134c8612cb6565b5b60006134d78682870161349b565b93505060206134e88682870161349b565b92505060406134f98682870161349b565b9150509250925092565b6000604082019050613518600083018561316e565b6135256020830184612e31565b9392505050565b60008151905061353b816130d0565b92915050565b60006020828403121561355757613556612cb6565b5b60006135658482850161352c565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006135ca602483612c05565b91506135d58261356e565b604082019050919050565b600060208201905081810360008301526135f9816135bd565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061365c602283612c05565b915061366782613600565b604082019050919050565b6000602082019050818103600083015261368b8161364f565b9050919050565b7f416d6f756e742063616e6e6f74206265207a65726f2e00000000000000000000600082015250565b60006136c8601683612c05565b91506136d382613692565b602082019050919050565b600060208201905081810360008301526136f7816136bb565b9050919050565b7f4d6178207472616e73616374696f6e2065786365656465642e00000000000000600082015250565b6000613734601983612c05565b915061373f826136fe565b602082019050919050565b6000602082019050818103600083015261376381613727565b9050919050565b7f4d61782077616c6c65742065786365656465642e000000000000000000000000600082015250565b60006137a0601483612c05565b91506137ab8261376a565b602082019050919050565b600060208201905081810360008301526137cf81613793565b9050919050565b60006137e182612d1e565b91506137ec83612d1e565b925082820390508181111561380457613803613244565b5b92915050565b600061381582612d1e565b915061382083612d1e565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561385957613858613244565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061389e82612d1e565b91506138a983612d1e565b9250826138b9576138b8613864565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613920602183612c05565b915061392b826138c4565b604082019050919050565b6000602082019050818103600083015261394f81613913565b9050919050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b60006139b2602a83612c05565b91506139bd82613956565b604082019050919050565b600060208201905081810360008301526139e1816139a5565b9050919050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613a1d81612ce0565b82525050565b6000613a2f8383613a14565b60208301905092915050565b6000602082019050919050565b6000613a53826139e8565b613a5d81856139f3565b9350613a6883613a04565b8060005b83811015613a99578151613a808882613a23565b9750613a8b83613a3b565b925050600181019050613a6c565b5085935050505092915050565b600060a082019050613abb6000830188612e31565b613ac8602083018761342b565b8181036040830152613ada8186613a48565b9050613ae9606083018561316e565b613af66080830184612e31565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613b36601b83612c05565b9150613b4182613b00565b602082019050919050565b60006020820190508181036000830152613b6581613b29565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122022fde824b76075d3eb025c85d2f37caf9646d41037e123150828e6bac53c80cb64736f6c63430008100033

Deployed Bytecode Sourcemap

4272:12548:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6505:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7357:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11225:382;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6782:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13118:296;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7526:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13426:88;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6691:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11961:117;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7847:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11615:163;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14762:153;;;;;;;;;;;;;:::i;:::-;;6885:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3351:148;;;;;;;;;;;;;:::i;:::-;;11042:175;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;10916:118;;;;;;;;;;;;;:::i;:::-;;3137:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6596:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7031:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11786;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14596:154;;;;;;;;;;;;;:::i;:::-;;12200:906;;;;;;;;;;;;;:::i;:::-;;7206:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6505:83;6542:13;6575:5;;;;;;;;;;;;;;;;;6568:12;;6505:83;:::o;7357:161::-;7432:4;7449:39;7458:12;:10;:12::i;:::-;7472:7;7481:6;7449:8;:39::i;:::-;7506:4;7499:11;;7357:161;;;;:::o;11225:382::-;3274:12;:10;:12::i;:::-;3264:22;;:6;;;;;;;;;;:22;;;3256:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11374:18:::1;;11363:7;11353;:17;;;;:::i;:::-;:39;;11345:48;;;::::0;::::1;;11435:19;;11423:8;11412;:19;;;;:::i;:::-;:42;;11404:51;;;::::0;::::1;;11483:7;11466:6;:14;;:24;;;;11518:7;11501:6;:14;;:24;;;;11554:8;11536:6;:15;;:26;;;;11591:8;11573:6;:15;;:26;;;;11225:382:::0;;;;:::o;6782:95::-;6835:7;4825:19;6855:14;;6782:95;:::o;13118:296::-;3274:12;:10;:12::i;:::-;3264:22;;:6;;;;;;;;;;:22;;;3256:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13191:6:::1;13186:221;13207:5;:12;13203:1;:16;13186:221;;;13265:4;13245:25;;:5;13251:1;13245:8;;;;;;;;:::i;:::-;;;;;;;;:25;;;;:54;;;;;13286:13;;;;;;;;;;;13274:25;;:5;13280:1;13274:8;;;;;;;;:::i;:::-;;;;;;;;:25;;;;13245:54;:94;;;;;13323:15;;;;;;;;;;;13303:36;;:5;13309:1;13303:8;;;;;;;;:::i;:::-;;;;;;;;:36;;;;13245:94;13241:155;;;13376:4;13359;:14;13364:5;13370:1;13364:8;;;;;;;;:::i;:::-;;;;;;;;13359:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;13241:155;13221:3;;;;;:::i;:::-;;;;13186:221;;;;13118:296:::0;:::o;7526:313::-;7624:4;7641:36;7651:6;7659:9;7670:6;7641:9;:36::i;:::-;7688:121;7697:6;7705:12;:10;:12::i;:::-;7719:89;7757:6;7719:89;;;;;;;;;;;;;;;;;:11;:19;7731:6;7719:19;;;;;;;;;;;;;;;:33;7739:12;:10;:12::i;:::-;7719:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;7688:8;:121::i;:::-;7827:4;7820:11;;7526:313;;;;;:::o;13426:88::-;3274:12;:10;:12::i;:::-;3264:22;;:6;;;;;;;;;;:22;;;3256:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13501:5:::1;13486:4;:12;13491:6;13486:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;13426:88:::0;:::o;6691:83::-;6732:5;5592:1;6750:16;;6691:83;:::o;11961:117::-;3274:12;:10;:12::i;:::-;3264:22;;:6;;;;;;;;;;:22;;;3256:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12041:2:::1;12035:4;:8;;12027:17;;;::::0;::::1;;12066:4;12055:8;:15;;;;11961:117:::0;:::o;7847:103::-;3274:12;:10;:12::i;:::-;3264:22;;:6;;;;;;;;;;:22;;;3256:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;7937:5:::1;7919:15;;:23;;;;;;;;;;;;;;;;;;7847:103:::0;:::o;11615:163::-;3274:12;:10;:12::i;:::-;3264:22;;:6;;;;;;;;;;:22;;;3256:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11710:1:::1;11699:10;:12;11691:21;;;::::0;::::1;;11738:32;11766:3;11738:23;11750:10;4825:19;11738:11;;:23;;;;:::i;:::-;:27;;:32;;;;:::i;:::-;11723:12;:47;;;;11615:163:::0;:::o;14762:153::-;3274:12;:10;:12::i;:::-;3264:22;;:6;;;;;;;;;;:22;;;3256:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14814:26:::1;14843:21;14814:50;;14875:32;14888:18;14875:12;:32::i;:::-;14803:112;14762:153::o:0;6885:138::-;6951:7;6978:37;6998:7;:16;7006:7;6998:16;;;;;;;;;;;;;;;;6978:19;:37::i;:::-;6971:44;;6885:138;;;:::o;3351:148::-;3274:12;:10;:12::i;:::-;3264:22;;:6;;;;;;;;;;:22;;;3256:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3458:1:::1;3421:40;;3442:6;::::0;::::1;;;;;;;;3421:40;;;;;;;;;;;;3489:1;3472:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;3351:148::o:0;11042:175::-;11089:7;11098;11107;11116;11144:6;:14;;;11160:6;:14;;;11176:6;:15;;;11193:6;:15;;;11136:73;;;;;;;;11042:175;;;;:::o;10916:118::-;3274:12;:10;:12::i;:::-;3264:22;;:6;;;;;;;;;;:22;;;3256:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4825:19:::1;10969:12;:22;;;;4825:19;11002:14;:24;;;;10916:118::o:0;3137:79::-;3175:7;3202:6;;;;;;;;;;;3195:13;;3137:79;:::o;6596:87::-;6635:13;6668:7;;;;;;;;;;;;;;;;;6661:14;;6596:87;:::o;7031:167::-;7109:4;7126:42;7136:12;:10;:12::i;:::-;7150:9;7161:6;7126:9;:42::i;:::-;7186:4;7179:11;;7031:167;;;;:::o;11786:::-;3274:12;:10;:12::i;:::-;3264:22;;:6;;;;;;;;;;:22;;;3256:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11883:1:::1;11872:10;:12;11864:21;;;::::0;::::1;;11913:32;11941:3;11913:23;11925:10;4825:19;11913:11;;:23;;;;:::i;:::-;:27;;:32;;;;:::i;:::-;11896:14;:49;;;;11786:167:::0;:::o;14596:154::-;3274:12;:10;:12::i;:::-;3264:22;;:6;;;;;;;;;;:22;;;3256:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14648:23:::1;14674:24;14692:4;14674:9;:24::i;:::-;14648:50;;14709:33;14726:15;14709:16;:33::i;:::-;14637:113;14596:154::o:0;12200:906::-;3274:12;:10;:12::i;:::-;3264:22;;:6;;;;;;;;;;:22;;;3256:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12264:11:::1;;;;;;;;;;;12263:12;12255:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;12312:35;12369:42;12312:100;;12441:16;12423:15;;:34;;;;;;;;;;;;;;;;;;12468:58;12485:4;12500:15;;;;;;;;;;;4825:19;12468:8;:58::i;:::-;12571:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12553:56;;;12618:4;12625:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12553:96;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12537:13;;:112;;;;;;;;;;;;;;;;;;12660:15;;;;;;;;;;;:31;;;12699:21;12730:4;12736:24;12754:4;12736:9;:24::i;:::-;12761:1;12763::::0;12765:7:::1;:5;:7::i;:::-;12773:15;12660:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;12814:4;12800:11;;:18;;;;;;;;;;;;;;;;;;12847:4;12829:15;;:22;;;;;;;;;;;;;;;;;;12877:23;12896:3;12877:14;12889:1;4825:19;12877:11;;:14;;;;:::i;:::-;:18;;:23;;;;:::i;:::-;12862:12;:38;;;;12928:23;12947:3;12928:14;12940:1;4825:19;12928:11;;:14;;;;:::i;:::-;:18;;:23;;;;:::i;:::-;12911:14;:40;;;;12976:4;12962:11;;:18;;;;;;;;;;;;;;;;;;13004:12;12991:10;:25;;;;13034:13;;;;;;;;;;;13027:29;;;13065:15;;;;;;;;;;;13083:14;13027:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12244:862;12200:906::o:0;7206:143::-;7287:7;7314:11;:18;7326:5;7314:18;;;;;;;;;;;;;;;:27;7333:7;7314:27;;;;;;;;;;;;;;;;7307:34;;7206:143;;;;:::o;855:98::-;908:7;935:10;928:17;;855:98;:::o;8220:335::-;8330:1;8313:19;;:5;:19;;;8305:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8411:1;8392:21;;:7;:21;;;8384:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8493:6;8463:11;:18;8475:5;8463:18;;;;;;;;;;;;;;;:27;8482:7;8463:27;;;;;;;;;;;;;;;:36;;;;8531:7;8515:32;;8524:5;8515:32;;;8540:6;8515:32;;;;;;:::i;:::-;;;;;;;;8220:335;;;:::o;8563:1849::-;8660:1;8651:6;:10;8643:45;;;;;;;;;;;;:::i;:::-;;;;;;;;;8713:7;:5;:7::i;:::-;8705:15;;:4;:15;;;;:32;;;;;8730:7;:5;:7::i;:::-;8724:13;;:2;:13;;;;8705:32;8701:1661;;;8761:12;8768:4;8761:6;:12::i;:::-;8756:484;;8820:1;8798:7;:18;8806:9;8798:18;;;;;;;;;;;;;;;;:23;;:99;;;;;8881:15;8869:7;8847;:18;8855:9;8847:18;;;;;;;;;;;;;;;;:30;;;;:::i;:::-;:49;;8798:99;8794:253;;;8941:12;;8923:6;:15;;:30;;;;8794:253;;;9020:7;;9002:6;:15;;:25;;;;8794:253;8756:484;;;9106:1;9091:7;:11;9099:2;9091:11;;;;;;;;;;;;;;;;:16;9087:94;;9146:15;9132:7;:11;9140:2;9132:11;;;;;;;;;;;;;;;:29;;;;9087:94;9217:7;;9199:6;:15;;:25;;;;8756:484;9268:13;;;;;;;;;;;9260:21;;:4;:21;;;:55;;;;;9299:15;;;;;;;;;;;9285:30;;:2;:30;;;;9260:55;:83;;;;;9321:18;:22;9340:2;9321:22;;;;;;;;;;;;;;;;;;;;;;;;;9319:24;9260:83;:102;;;;;9347:15;;;;;;;;;;;9260:102;9256:319;;;9425:12;;9415:6;:22;;9407:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;9520:14;;9510:6;9494:13;9504:2;9494:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;9486:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;9256:319;9611:15;;;;;;;;;;;9595:32;;:4;:32;;;;:62;;;;;9633:18;:24;9652:4;9633:24;;;;;;;;;;;;;;;;;;;;;;;;;9631:26;9595:62;:85;;;;;9667:13;;;;;;;;;;;9661:19;;:2;:19;;;9595:85;9591:158;;;9709:4;:10;9714:4;9709:10;;;;;;;;;;;;;;;;;;;;;;;;;9708:11;:24;;;;;9724:4;:8;9729:2;9724:8;;;;;;;;;;;;;;;;;;;;;;;;;9723:9;9708:24;9700:33;;;;;;9591:158;9765:28;9796:24;9814:4;9796:9;:24::i;:::-;9765:55;;9861:47;9904:3;9861:38;9890:8;;9861:24;9871:13;;;;;;;;;;;9861:9;:24::i;:::-;:28;;:38;;;;:::i;:::-;:42;;:47;;;;:::i;:::-;9838:20;:70;9835:180;;;9952:47;9995:3;9952:38;9981:8;;9952:24;9962:13;;;;;;;;;;;9952:9;:24::i;:::-;:28;;:38;;;;:::i;:::-;:42;;:47;;;;:::i;:::-;9929:70;;9835:180;10036:6;;;;;;;;;;;10035:7;:32;;;;;10054:13;;;;;;;;;;;10046:21;;:4;:21;;;;10035:32;:47;;;;;10071:11;;;;;;;;;;;10035:47;10031:320;;;10105:38;10122:20;10105:16;:38::i;:::-;10162:26;10191:21;10162:50;;10255:1;10234:18;:22;10231:105;;;10281:35;10294:21;10281:12;:35::i;:::-;10231:105;10084:267;10031:320;8739:1623;8701:1661;10374:30;10389:4;10394:2;10397:6;10374:14;:30::i;:::-;8563:1849;;;:::o;1992:190::-;2078:7;2111:1;2106;:6;;2114:12;2098:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2138:9;2154:1;2150;:5;;;;:::i;:::-;2138:17;;2173:1;2166:8;;;1992:190;;;;;:::o;2190:246::-;2248:7;2277:1;2272;:6;2268:47;;2302:1;2295:8;;;;2268:47;2325:9;2341:1;2337;:5;;;;:::i;:::-;2325:17;;2370:1;2365;2361;:5;;;;:::i;:::-;:10;2353:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2427:1;2420:8;;;2190:246;;;;;:::o;2444:132::-;2502:7;2529:39;2533:1;2536;2529:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2522:46;;2444:132;;;;:::o;12094:96::-;12151:14;;;;;;;;;;;:23;;:31;12175:6;12151:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12094:96;:::o;7958:254::-;8025:7;8064;;8053;:18;;8045:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;8129:19;8152:10;:8;:10::i;:::-;8129:33;;8180:24;8192:11;8180:7;:11;;:24;;;;:::i;:::-;8173:31;;;7958:254;;;:::o;10420:488::-;6089:4;6080:6;;:13;;;;;;;;;;;;;;;;;;10498:21:::1;10536:1;10522:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10498:40;;10567:4;10549;10554:1;10549:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;10593:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10583:4;10588:1;10583:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;10626:62;10643:4;10658:15;;;;;;;;;;;10676:11;10626:8;:62::i;:::-;10699:15;;;;;;;;;;;:66;;;10780:11;10806:1;10822:4;10849;10887:2;10869:15;:20;;;;:::i;:::-;10699:201;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10487:421;6125:5:::0;6116:6;;:14;;;;;;;;;;;;;;;;;;10420:488;:::o;16268:111::-;16323:4;16358:13;;;;;;;;;;;16347:24;;:7;:24;;;16340:31;;16268:111;;;:::o;13530:146::-;13624:44;13642:6;13650:9;13661:6;13624:17;:44::i;:::-;13530:146;;;:::o;2584:189::-;2670:7;2702:1;2698;:5;2705:12;2690:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2729:9;2745:1;2741;:5;;;;:::i;:::-;2729:17;;2764:1;2757:8;;;2584:189;;;;;:::o;16384:163::-;16425:7;16446:15;16463;16482:19;:17;:19::i;:::-;16445:56;;;;16519:20;16531:7;16519;:11;;:20;;;;:::i;:::-;16512:27;;;;16384:163;:::o;13684:488::-;13783:15;13800:23;13825:12;13839:23;13864:12;13878:13;13895:19;13906:7;13895:10;:19::i;:::-;13782:132;;;;;;;;;;;;13943:28;13963:7;13943;:15;13951:6;13943:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;13925:7;:15;13933:6;13925:15;;;;;;;;;;;;;;;:46;;;;14003:39;14026:15;14003:7;:18;14011:9;14003:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;13982:7;:18;13990:9;13982:18;;;;;;;;;;;;;;;:60;;;;14054:16;14064:5;14054:9;:16::i;:::-;14081:23;14093:4;14099;14081:11;:23::i;:::-;14137:9;14120:44;;14129:6;14120:44;;;14148:15;14120:44;;;;;;:::i;:::-;;;;;;;;13771:401;;;;;;13684:488;;;:::o;16555:262::-;16605:7;16614;16634:15;16652:7;;16634:25;;16670:15;4825:19;16670:25;;16726:20;4825:19;16726:7;;:11;;:20;;;;:::i;:::-;16716:7;:30;16712:61;;;16756:7;;4825:19;16748:25;;;;;;;;16712:61;16792:7;16801;16784:25;;;;;;16555:262;;;:::o;14923:561::-;14982:7;14991;15000;15009;15018;15027;15048:23;15073:12;15087:13;15104:20;15111:12;:10;:12::i;:::-;15104:6;:20::i;:::-;:132;;15182:54;15194:7;15203:6;:15;;;15220:6;:15;;;15182:11;:54::i;:::-;15104:132;;;15127:52;15139:7;15148:6;:14;;;15164:6;:14;;;15127:11;:52::i;:::-;15104:132;15047:189;;;;;;15247:19;15270:10;:8;:10::i;:::-;15247:33;;15292:15;15309:23;15334:12;15350:46;15362:7;15371:4;15377:5;15384:11;15350;:46::i;:::-;15291:105;;;;;;15415:7;15424:15;15441:4;15447:15;15464:4;15470:5;15407:69;;;;;;;;;;;;;;;;;;;14923:561;;;;;;;:::o;1848:136::-;1906:7;1933:43;1937:1;1940;1933:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1926:50;;1848:136;;;;:::o;1661:179::-;1719:7;1739:9;1755:1;1751;:5;;;;:::i;:::-;1739:17;;1780:1;1775;:6;;1767:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1831:1;1824:8;;;1661:179;;;;:::o;14180:212::-;14233:19;14256:10;:8;:10::i;:::-;14233:33;;14277:13;14293:22;14303:11;14293:5;:9;;:22;;;;:::i;:::-;14277:38;;14351:33;14378:5;14351:7;:22;14367:4;14351:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;14326:7;:22;14342:4;14326:22;;;;;;;;;;;;;;;:58;;;;14222:170;;14180:212;:::o;14400:147::-;14478:17;14490:4;14478:7;;:11;;:17;;;;:::i;:::-;14468:7;:27;;;;14519:20;14534:4;14519:10;;:14;;:20;;;;:::i;:::-;14506:10;:33;;;;14400:147;;:::o;15492:351::-;15585:7;15594;15603;15623:12;15638:28;15662:3;15638:19;15650:6;15638:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;15623:43;;15677:13;15693:29;15718:3;15693:20;15705:7;15693;:11;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;15677:45;;15733:23;15759:28;15781:5;15759:17;15771:4;15759:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;15733:54;;15806:15;15823:4;15829:5;15798:37;;;;;;;;;15492:351;;;;;;;:::o;15851:409::-;15961:7;15970;15979;15999:15;16017:24;16029:11;16017:7;:11;;:24;;;;:::i;:::-;15999:42;;16052:12;16067:21;16076:11;16067:4;:8;;:21;;;;:::i;:::-;16052:36;;16099:13;16115:22;16125:11;16115:5;:9;;:22;;;;:::i;:::-;16099:38;;16148:23;16174:28;16196:5;16174:17;16186:4;16174:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;16148:54;;16221:7;16230:15;16247:4;16213:39;;;;;;;;;;15851:409;;;;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1349:75::-;1382:6;1415:2;1409:9;1399:19;;1349:75;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:765::-;3532:6;3540;3548;3556;3605:3;3593:9;3584:7;3580:23;3576:33;3573:120;;;3612:79;;:::i;:::-;3573:120;3732:1;3757:53;3802:7;3793:6;3782:9;3778:22;3757:53;:::i;:::-;3747:63;;3703:117;3859:2;3885:53;3930:7;3921:6;3910:9;3906:22;3885:53;:::i;:::-;3875:63;;3830:118;3987:2;4013:53;4058:7;4049:6;4038:9;4034:22;4013:53;:::i;:::-;4003:63;;3958:118;4115:2;4141:53;4186:7;4177:6;4166:9;4162:22;4141:53;:::i;:::-;4131:63;;4086:118;3446:765;;;;;;;:::o;4217:118::-;4304:24;4322:5;4304:24;:::i;:::-;4299:3;4292:37;4217:118;;:::o;4341:222::-;4434:4;4472:2;4461:9;4457:18;4449:26;;4485:71;4553:1;4542:9;4538:17;4529:6;4485:71;:::i;:::-;4341:222;;;;:::o;4569:117::-;4678:1;4675;4668:12;4692:180;4740:77;4737:1;4730:88;4837:4;4834:1;4827:15;4861:4;4858:1;4851:15;4878:281;4961:27;4983:4;4961:27;:::i;:::-;4953:6;4949:40;5091:6;5079:10;5076:22;5055:18;5043:10;5040:34;5037:62;5034:88;;;5102:18;;:::i;:::-;5034:88;5142:10;5138:2;5131:22;4921:238;4878:281;;:::o;5165:129::-;5199:6;5226:20;;:::i;:::-;5216:30;;5255:33;5283:4;5275:6;5255:33;:::i;:::-;5165:129;;;:::o;5300:311::-;5377:4;5467:18;5459:6;5456:30;5453:56;;;5489:18;;:::i;:::-;5453:56;5539:4;5531:6;5527:17;5519:25;;5599:4;5593;5589:15;5581:23;;5300:311;;;:::o;5617:117::-;5726:1;5723;5716:12;5757:710;5853:5;5878:81;5894:64;5951:6;5894:64;:::i;:::-;5878:81;:::i;:::-;5869:90;;5979:5;6008:6;6001:5;5994:21;6042:4;6035:5;6031:16;6024:23;;6095:4;6087:6;6083:17;6075:6;6071:30;6124:3;6116:6;6113:15;6110:122;;;6143:79;;:::i;:::-;6110:122;6258:6;6241:220;6275:6;6270:3;6267:15;6241:220;;;6350:3;6379:37;6412:3;6400:10;6379:37;:::i;:::-;6374:3;6367:50;6446:4;6441:3;6437:14;6430:21;;6317:144;6301:4;6296:3;6292:14;6285:21;;6241:220;;;6245:21;5859:608;;5757:710;;;;;:::o;6490:370::-;6561:5;6610:3;6603:4;6595:6;6591:17;6587:27;6577:122;;6618:79;;:::i;:::-;6577:122;6735:6;6722:20;6760:94;6850:3;6842:6;6835:4;6827:6;6823:17;6760:94;:::i;:::-;6751:103;;6567:293;6490:370;;;;:::o;6866:539::-;6950:6;6999:2;6987:9;6978:7;6974:23;6970:32;6967:119;;;7005:79;;:::i;:::-;6967:119;7153:1;7142:9;7138:17;7125:31;7183:18;7175:6;7172:30;7169:117;;;7205:79;;:::i;:::-;7169:117;7310:78;7380:7;7371:6;7360:9;7356:22;7310:78;:::i;:::-;7300:88;;7096:302;6866:539;;;;:::o;7411:619::-;7488:6;7496;7504;7553:2;7541:9;7532:7;7528:23;7524:32;7521:119;;;7559:79;;:::i;:::-;7521:119;7679:1;7704:53;7749:7;7740:6;7729:9;7725:22;7704:53;:::i;:::-;7694:63;;7650:117;7806:2;7832:53;7877:7;7868:6;7857:9;7853:22;7832:53;:::i;:::-;7822:63;;7777:118;7934:2;7960:53;8005:7;7996:6;7985:9;7981:22;7960:53;:::i;:::-;7950:63;;7905:118;7411:619;;;;;:::o;8036:329::-;8095:6;8144:2;8132:9;8123:7;8119:23;8115:32;8112:119;;;8150:79;;:::i;:::-;8112:119;8270:1;8295:53;8340:7;8331:6;8320:9;8316:22;8295:53;:::i;:::-;8285:63;;8241:117;8036:329;;;;:::o;8371:86::-;8406:7;8446:4;8439:5;8435:16;8424:27;;8371:86;;;:::o;8463:112::-;8546:22;8562:5;8546:22;:::i;:::-;8541:3;8534:35;8463:112;;:::o;8581:214::-;8670:4;8708:2;8697:9;8693:18;8685:26;;8721:67;8785:1;8774:9;8770:17;8761:6;8721:67;:::i;:::-;8581:214;;;;:::o;8801:329::-;8860:6;8909:2;8897:9;8888:7;8884:23;8880:32;8877:119;;;8915:79;;:::i;:::-;8877:119;9035:1;9060:53;9105:7;9096:6;9085:9;9081:22;9060:53;:::i;:::-;9050:63;;9006:117;8801:329;;;;:::o;9136:116::-;9206:21;9221:5;9206:21;:::i;:::-;9199:5;9196:32;9186:60;;9242:1;9239;9232:12;9186:60;9136:116;:::o;9258:133::-;9301:5;9339:6;9326:20;9317:29;;9355:30;9379:5;9355:30;:::i;:::-;9258:133;;;;:::o;9397:323::-;9453:6;9502:2;9490:9;9481:7;9477:23;9473:32;9470:119;;;9508:79;;:::i;:::-;9470:119;9628:1;9653:50;9695:7;9686:6;9675:9;9671:22;9653:50;:::i;:::-;9643:60;;9599:114;9397:323;;;;:::o;9726:553::-;9903:4;9941:3;9930:9;9926:19;9918:27;;9955:71;10023:1;10012:9;10008:17;9999:6;9955:71;:::i;:::-;10036:72;10104:2;10093:9;10089:18;10080:6;10036:72;:::i;:::-;10118;10186:2;10175:9;10171:18;10162:6;10118:72;:::i;:::-;10200;10268:2;10257:9;10253:18;10244:6;10200:72;:::i;:::-;9726:553;;;;;;;:::o;10285:118::-;10372:24;10390:5;10372:24;:::i;:::-;10367:3;10360:37;10285:118;;:::o;10409:222::-;10502:4;10540:2;10529:9;10525:18;10517:26;;10553:71;10621:1;10610:9;10606:17;10597:6;10553:71;:::i;:::-;10409:222;;;;:::o;10637:474::-;10705:6;10713;10762:2;10750:9;10741:7;10737:23;10733:32;10730:119;;;10768:79;;:::i;:::-;10730:119;10888:1;10913:53;10958:7;10949:6;10938:9;10934:22;10913:53;:::i;:::-;10903:63;;10859:117;11015:2;11041:53;11086:7;11077:6;11066:9;11062:22;11041:53;:::i;:::-;11031:63;;10986:118;10637:474;;;;;:::o;11117:182::-;11257:34;11253:1;11245:6;11241:14;11234:58;11117:182;:::o;11305:366::-;11447:3;11468:67;11532:2;11527:3;11468:67;:::i;:::-;11461:74;;11544:93;11633:3;11544:93;:::i;:::-;11662:2;11657:3;11653:12;11646:19;;11305:366;;;:::o;11677:419::-;11843:4;11881:2;11870:9;11866:18;11858:26;;11930:9;11924:4;11920:20;11916:1;11905:9;11901:17;11894:47;11958:131;12084:4;11958:131;:::i;:::-;11950:139;;11677:419;;;:::o;12102:180::-;12150:77;12147:1;12140:88;12247:4;12244:1;12237:15;12271:4;12268:1;12261:15;12288:191;12328:3;12347:20;12365:1;12347:20;:::i;:::-;12342:25;;12381:20;12399:1;12381:20;:::i;:::-;12376:25;;12424:1;12421;12417:9;12410:16;;12445:3;12442:1;12439:10;12436:36;;;12452:18;;:::i;:::-;12436:36;12288:191;;;;:::o;12485:180::-;12533:77;12530:1;12523:88;12630:4;12627:1;12620:15;12654:4;12651:1;12644:15;12671:233;12710:3;12733:24;12751:5;12733:24;:::i;:::-;12724:33;;12779:66;12772:5;12769:77;12766:103;;12849:18;;:::i;:::-;12766:103;12896:1;12889:5;12885:13;12878:20;;12671:233;;;:::o;12910:171::-;13050:23;13046:1;13038:6;13034:14;13027:47;12910:171;:::o;13087:366::-;13229:3;13250:67;13314:2;13309:3;13250:67;:::i;:::-;13243:74;;13326:93;13415:3;13326:93;:::i;:::-;13444:2;13439:3;13435:12;13428:19;;13087:366;;;:::o;13459:419::-;13625:4;13663:2;13652:9;13648:18;13640:26;;13712:9;13706:4;13702:20;13698:1;13687:9;13683:17;13676:47;13740:131;13866:4;13740:131;:::i;:::-;13732:139;;13459:419;;;:::o;13884:143::-;13941:5;13972:6;13966:13;13957:22;;13988:33;14015:5;13988:33;:::i;:::-;13884:143;;;;:::o;14033:351::-;14103:6;14152:2;14140:9;14131:7;14127:23;14123:32;14120:119;;;14158:79;;:::i;:::-;14120:119;14278:1;14303:64;14359:7;14350:6;14339:9;14335:22;14303:64;:::i;:::-;14293:74;;14249:128;14033:351;;;;:::o;14390:332::-;14511:4;14549:2;14538:9;14534:18;14526:26;;14562:71;14630:1;14619:9;14615:17;14606:6;14562:71;:::i;:::-;14643:72;14711:2;14700:9;14696:18;14687:6;14643:72;:::i;:::-;14390:332;;;;;:::o;14728:85::-;14773:7;14802:5;14791:16;;14728:85;;;:::o;14819:60::-;14847:3;14868:5;14861:12;;14819:60;;;:::o;14885:158::-;14943:9;14976:61;14994:42;15003:32;15029:5;15003:32;:::i;:::-;14994:42;:::i;:::-;14976:61;:::i;:::-;14963:74;;14885:158;;;:::o;15049:147::-;15144:45;15183:5;15144:45;:::i;:::-;15139:3;15132:58;15049:147;;:::o;15202:807::-;15451:4;15489:3;15478:9;15474:19;15466:27;;15503:71;15571:1;15560:9;15556:17;15547:6;15503:71;:::i;:::-;15584:72;15652:2;15641:9;15637:18;15628:6;15584:72;:::i;:::-;15666:80;15742:2;15731:9;15727:18;15718:6;15666:80;:::i;:::-;15756;15832:2;15821:9;15817:18;15808:6;15756:80;:::i;:::-;15846:73;15914:3;15903:9;15899:19;15890:6;15846:73;:::i;:::-;15929;15997:3;15986:9;15982:19;15973:6;15929:73;:::i;:::-;15202:807;;;;;;;;;:::o;16015:143::-;16072:5;16103:6;16097:13;16088:22;;16119:33;16146:5;16119:33;:::i;:::-;16015:143;;;;:::o;16164:663::-;16252:6;16260;16268;16317:2;16305:9;16296:7;16292:23;16288:32;16285:119;;;16323:79;;:::i;:::-;16285:119;16443:1;16468:64;16524:7;16515:6;16504:9;16500:22;16468:64;:::i;:::-;16458:74;;16414:128;16581:2;16607:64;16663:7;16654:6;16643:9;16639:22;16607:64;:::i;:::-;16597:74;;16552:129;16720:2;16746:64;16802:7;16793:6;16782:9;16778:22;16746:64;:::i;:::-;16736:74;;16691:129;16164:663;;;;;:::o;16833:332::-;16954:4;16992:2;16981:9;16977:18;16969:26;;17005:71;17073:1;17062:9;17058:17;17049:6;17005:71;:::i;:::-;17086:72;17154:2;17143:9;17139:18;17130:6;17086:72;:::i;:::-;16833:332;;;;;:::o;17171:137::-;17225:5;17256:6;17250:13;17241:22;;17272:30;17296:5;17272:30;:::i;:::-;17171:137;;;;:::o;17314:345::-;17381:6;17430:2;17418:9;17409:7;17405:23;17401:32;17398:119;;;17436:79;;:::i;:::-;17398:119;17556:1;17581:61;17634:7;17625:6;17614:9;17610:22;17581:61;:::i;:::-;17571:71;;17527:125;17314:345;;;;:::o;17665:223::-;17805:34;17801:1;17793:6;17789:14;17782:58;17874:6;17869:2;17861:6;17857:15;17850:31;17665:223;:::o;17894:366::-;18036:3;18057:67;18121:2;18116:3;18057:67;:::i;:::-;18050:74;;18133:93;18222:3;18133:93;:::i;:::-;18251:2;18246:3;18242:12;18235:19;;17894:366;;;:::o;18266:419::-;18432:4;18470:2;18459:9;18455:18;18447:26;;18519:9;18513:4;18509:20;18505:1;18494:9;18490:17;18483:47;18547:131;18673:4;18547:131;:::i;:::-;18539:139;;18266:419;;;:::o;18691:221::-;18831:34;18827:1;18819:6;18815:14;18808:58;18900:4;18895:2;18887:6;18883:15;18876:29;18691:221;:::o;18918:366::-;19060:3;19081:67;19145:2;19140:3;19081:67;:::i;:::-;19074:74;;19157:93;19246:3;19157:93;:::i;:::-;19275:2;19270:3;19266:12;19259:19;;18918:366;;;:::o;19290:419::-;19456:4;19494:2;19483:9;19479:18;19471:26;;19543:9;19537:4;19533:20;19529:1;19518:9;19514:17;19507:47;19571:131;19697:4;19571:131;:::i;:::-;19563:139;;19290:419;;;:::o;19715:172::-;19855:24;19851:1;19843:6;19839:14;19832:48;19715:172;:::o;19893:366::-;20035:3;20056:67;20120:2;20115:3;20056:67;:::i;:::-;20049:74;;20132:93;20221:3;20132:93;:::i;:::-;20250:2;20245:3;20241:12;20234:19;;19893:366;;;:::o;20265:419::-;20431:4;20469:2;20458:9;20454:18;20446:26;;20518:9;20512:4;20508:20;20504:1;20493:9;20489:17;20482:47;20546:131;20672:4;20546:131;:::i;:::-;20538:139;;20265:419;;;:::o;20690:175::-;20830:27;20826:1;20818:6;20814:14;20807:51;20690:175;:::o;20871:366::-;21013:3;21034:67;21098:2;21093:3;21034:67;:::i;:::-;21027:74;;21110:93;21199:3;21110:93;:::i;:::-;21228:2;21223:3;21219:12;21212:19;;20871:366;;;:::o;21243:419::-;21409:4;21447:2;21436:9;21432:18;21424:26;;21496:9;21490:4;21486:20;21482:1;21471:9;21467:17;21460:47;21524:131;21650:4;21524:131;:::i;:::-;21516:139;;21243:419;;;:::o;21668:170::-;21808:22;21804:1;21796:6;21792:14;21785:46;21668:170;:::o;21844:366::-;21986:3;22007:67;22071:2;22066:3;22007:67;:::i;:::-;22000:74;;22083:93;22172:3;22083:93;:::i;:::-;22201:2;22196:3;22192:12;22185:19;;21844:366;;;:::o;22216:419::-;22382:4;22420:2;22409:9;22405:18;22397:26;;22469:9;22463:4;22459:20;22455:1;22444:9;22440:17;22433:47;22497:131;22623:4;22497:131;:::i;:::-;22489:139;;22216:419;;;:::o;22641:194::-;22681:4;22701:20;22719:1;22701:20;:::i;:::-;22696:25;;22735:20;22753:1;22735:20;:::i;:::-;22730:25;;22779:1;22776;22772:9;22764:17;;22803:1;22797:4;22794:11;22791:37;;;22808:18;;:::i;:::-;22791:37;22641:194;;;;:::o;22841:348::-;22881:7;22904:20;22922:1;22904:20;:::i;:::-;22899:25;;22938:20;22956:1;22938:20;:::i;:::-;22933:25;;23126:1;23058:66;23054:74;23051:1;23048:81;23043:1;23036:9;23029:17;23025:105;23022:131;;;23133:18;;:::i;:::-;23022:131;23181:1;23178;23174:9;23163:20;;22841:348;;;;:::o;23195:180::-;23243:77;23240:1;23233:88;23340:4;23337:1;23330:15;23364:4;23361:1;23354:15;23381:185;23421:1;23438:20;23456:1;23438:20;:::i;:::-;23433:25;;23472:20;23490:1;23472:20;:::i;:::-;23467:25;;23511:1;23501:35;;23516:18;;:::i;:::-;23501:35;23558:1;23555;23551:9;23546:14;;23381:185;;;;:::o;23572:220::-;23712:34;23708:1;23700:6;23696:14;23689:58;23781:3;23776:2;23768:6;23764:15;23757:28;23572:220;:::o;23798:366::-;23940:3;23961:67;24025:2;24020:3;23961:67;:::i;:::-;23954:74;;24037:93;24126:3;24037:93;:::i;:::-;24155:2;24150:3;24146:12;24139:19;;23798:366;;;:::o;24170:419::-;24336:4;24374:2;24363:9;24359:18;24351:26;;24423:9;24417:4;24413:20;24409:1;24398:9;24394:17;24387:47;24451:131;24577:4;24451:131;:::i;:::-;24443:139;;24170:419;;;:::o;24595:229::-;24735:34;24731:1;24723:6;24719:14;24712:58;24804:12;24799:2;24791:6;24787:15;24780:37;24595:229;:::o;24830:366::-;24972:3;24993:67;25057:2;25052:3;24993:67;:::i;:::-;24986:74;;25069:93;25158:3;25069:93;:::i;:::-;25187:2;25182:3;25178:12;25171:19;;24830:366;;;:::o;25202:419::-;25368:4;25406:2;25395:9;25391:18;25383:26;;25455:9;25449:4;25445:20;25441:1;25430:9;25426:17;25419:47;25483:131;25609:4;25483:131;:::i;:::-;25475:139;;25202:419;;;:::o;25627:114::-;25694:6;25728:5;25722:12;25712:22;;25627:114;;;:::o;25747:184::-;25846:11;25880:6;25875:3;25868:19;25920:4;25915:3;25911:14;25896:29;;25747:184;;;;:::o;25937:132::-;26004:4;26027:3;26019:11;;26057:4;26052:3;26048:14;26040:22;;25937:132;;;:::o;26075:108::-;26152:24;26170:5;26152:24;:::i;:::-;26147:3;26140:37;26075:108;;:::o;26189:179::-;26258:10;26279:46;26321:3;26313:6;26279:46;:::i;:::-;26357:4;26352:3;26348:14;26334:28;;26189:179;;;;:::o;26374:113::-;26444:4;26476;26471:3;26467:14;26459:22;;26374:113;;;:::o;26523:732::-;26642:3;26671:54;26719:5;26671:54;:::i;:::-;26741:86;26820:6;26815:3;26741:86;:::i;:::-;26734:93;;26851:56;26901:5;26851:56;:::i;:::-;26930:7;26961:1;26946:284;26971:6;26968:1;26965:13;26946:284;;;27047:6;27041:13;27074:63;27133:3;27118:13;27074:63;:::i;:::-;27067:70;;27160:60;27213:6;27160:60;:::i;:::-;27150:70;;27006:224;26993:1;26990;26986:9;26981:14;;26946:284;;;26950:14;27246:3;27239:10;;26647:608;;;26523:732;;;;:::o;27261:831::-;27524:4;27562:3;27551:9;27547:19;27539:27;;27576:71;27644:1;27633:9;27629:17;27620:6;27576:71;:::i;:::-;27657:80;27733:2;27722:9;27718:18;27709:6;27657:80;:::i;:::-;27784:9;27778:4;27774:20;27769:2;27758:9;27754:18;27747:48;27812:108;27915:4;27906:6;27812:108;:::i;:::-;27804:116;;27930:72;27998:2;27987:9;27983:18;27974:6;27930:72;:::i;:::-;28012:73;28080:3;28069:9;28065:19;28056:6;28012:73;:::i;:::-;27261:831;;;;;;;;:::o;28098:177::-;28238:29;28234:1;28226:6;28222:14;28215:53;28098:177;:::o;28281:366::-;28423:3;28444:67;28508:2;28503:3;28444:67;:::i;:::-;28437:74;;28520:93;28609:3;28520:93;:::i;:::-;28638:2;28633:3;28629:12;28622:19;;28281:366;;;:::o;28653:419::-;28819:4;28857:2;28846:9;28842:18;28834:26;;28906:9;28900:4;28896:20;28892:1;28881:9;28877:17;28870:47;28934:131;29060:4;28934:131;:::i;:::-;28926:139;;28653:419;;;:::o

Swarm Source

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