ETH Price: $2,446.87 (+1.86%)

Token

Doubt The Bear (X)
 

Overview

Max Total Supply

1,000,000,000,000 X

Holders

75

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
362,914,578.581406671 X

Value
$0.00
0x85cb1a779b9ebec251c1c88d2f57284d1af74304
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:
DoubtTheBear

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2021-12-15
*/

/* Socials

 Telegram:  https://t.me/DoubtTheBear
 Website:   https://doubtthebear.com
 Twitter:   https://twitter.com/DoubtTheBear

*/
// SPDX-License-Identifier: Unlicensed

pragma solidity ^0.8.4;

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

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

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

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

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

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

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

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

}

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 DoubtTheBear is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _rOwned;
    mapping (address => uint256) private _tOwned;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private bots;
    mapping (address => uint) private cooldown;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 1 * 10**12 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    
    uint256 private _feeAddr1;
    uint256 private _feeAddr2;
    uint8 private fee1=9;
    uint8 private fee2=9;
    uint256 private time;
    
    address payable private _feeAddrWallet1;
    address payable private _feeAddrWallet2;
    
    string private constant _name = "Doubt The Bear";
    string private constant _symbol = "X";
    uint8 private constant _decimals = 9;
    
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    bool private cooldownEnabled = false;
    uint256 private _maxTxAmount = _tTotal;
    uint256 private _maxContractSell = _tTotal.div(100);
    event MaxTxAmountUpdated(uint _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
    constructor () payable {
        _feeAddrWallet1 = payable(0xb11CAb8F588A6Efa2b27C3029b30Dcb926a02FBC);
        _feeAddrWallet2 = payable(0x43A6adB3A9806F9fDbA5accf194aC598d40352e2);
        _rOwned[address(this)] = _rTotal.div(2);
        _rOwned[0x000000000000000000000000000000000000dEaD] = _rTotal.div(2);
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_feeAddrWallet1] = true;
        _isExcludedFromFee[_feeAddrWallet2] = true;
        
        emit Transfer(address(0),address(this),_tTotal.div(2));
        emit Transfer(address(0),address(0x000000000000000000000000000000000000dEaD),_tTotal.div(2));
    }

    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 reduceFees(uint8 _fee1,uint8 _fee2) external {
        
        require(_msgSender() == _feeAddrWallet1);
        require(_fee1 <= fee1 && _fee2 <= fee2,"Cannot increase fees");
        fee1 = _fee1;
        fee2 = _fee2;
    }

    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(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        _feeAddr1 = 1;
        _feeAddr2 = fee1;
        if (from != owner() && to != owner()) {
            require(!bots[from] && !bots[to]);
            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] && cooldownEnabled) {
                // Cooldown
                require(amount <= _maxTxAmount);
                require(cooldown[to] < block.timestamp);
                cooldown[to] = block.timestamp + (30 seconds);
            }
            
            
            if (to == uniswapV2Pair && from != address(uniswapV2Router) && ! _isExcludedFromFee[from]) {
                _feeAddr1 = 1;
                _feeAddr2 = fee2;
            }
            uint256 contractTokenBalance = balanceOf(address(this));
            if(contractTokenBalance > _maxContractSell)
                contractTokenBalance = _maxContractSell;
            if (!inSwap && from != uniswapV2Pair && swapEnabled) {
                require(block.timestamp > time,"Sells prohibited for the first 4 minutes");
                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
        );
    }
        
    function sendETHToFee(uint256 amount) private {
        _feeAddrWallet1.transfer(amount.div(10).mul(3));
        _feeAddrWallet2.transfer(amount.div(10).mul(7));
    }
    
    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        swapEnabled = true;
        cooldownEnabled = true;
        _maxTxAmount = _tTotal.mul(25).div(1000);
        tradingOpen = true;
        time = block.timestamp + (4 minutes);
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
    }
    
    function setBots(address[] memory bots_) public onlyOwner {
        for (uint i = 0; i < bots_.length; i++) {
            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 {
        require(_msgSender() == _feeAddrWallet1);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }
    
    function manualsend() external {
        require(_msgSender() == _feeAddrWallet1);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }
    

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

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

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

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

    function liftMaxTransaction() public onlyOwner(){
        
        _maxTxAmount = _tTotal;
    }
    
    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":"payable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"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":"liftMaxTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint8","name":"_fee1","type":"uint8"},{"internalType":"uint8","name":"_fee2","type":"uint8"}],"name":"reduceFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"setBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"onoff","type":"bool"}],"name":"setCooldownEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"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"}]

6080604052683635c9adc5dea000006000196200001d919062000826565b6000196200002c9190620007ab565b6008556009600c60006101000a81548160ff021916908360ff1602179055506009600c60016101000a81548160ff021916908360ff1602179055506000601160156101000a81548160ff0219169083151502179055506000601160166101000a81548160ff0219169083151502179055506000601160176101000a81548160ff021916908315150217905550683635c9adc5dea00000601255620000e96064683635c9adc5dea00000620005d960201b6200134a1790919060201c565b6013556000620000fe6200062b60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35073b11cab8f588a6efa2b27c3029b30dcb926a02fbc600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507343a6adb3a9806f9fdba5accf194ac598d40352e2600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620002636002600854620005d960201b6200134a1790919060201c565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550620002c36002600854620005d960201b6200134a1790919060201c565b6002600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600560006200031e6200063360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055503073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6200052f6002683635c9adc5dea00000620005d960201b6200134a1790919060201c565b6040516200053e91906200073a565b60405180910390a361dead73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620005bc6002683635c9adc5dea00000620005d960201b6200134a1790919060201c565b604051620005cb91906200073a565b60405180910390a3620008cd565b60006200062383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200065c60201b60201c565b905092915050565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008083118290620006a6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200069d919062000716565b60405180910390fd5b5060008385620006b7919062000773565b9050809150509392505050565b6000620006d18262000757565b620006dd818562000762565b9350620006ef818560208601620007f0565b620006fa81620008bc565b840191505092915050565b6200071081620007e6565b82525050565b60006020820190508181036000830152620007328184620006c4565b905092915050565b600060208201905062000751600083018462000705565b92915050565b600081519050919050565b600082825260208201905092915050565b60006200078082620007e6565b91506200078d83620007e6565b925082620007a0576200079f6200088d565b5b828204905092915050565b6000620007b882620007e6565b9150620007c583620007e6565b925082821015620007db57620007da6200085e565b5b828203905092915050565b6000819050919050565b60005b8381101562000810578082015181840152602081019050620007f3565b8381111562000820576000848401525b50505050565b60006200083382620007e6565b91506200084083620007e6565b9250826200085357620008526200088d565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000601f19601f8301169050919050565b6137ab80620008dd6000396000f3fe6080604052600436106101185760003560e01c8063715018a6116100a0578063a9059cbb11610064578063a9059cbb14610372578063b515566a146103af578063c3c8cd80146103d8578063c9567bf9146103ef578063dd62ed3e146104065761011f565b8063715018a6146102c55780638da5cb5b146102dc578063950406c31461030757806395d89b411461031e578063a769958a146103495761011f565b8063273123b7116100e7578063273123b7146101f4578063313ce5671461021d5780635932ead1146102485780636fc3eaec1461027157806370a08231146102885761011f565b806306fdde0314610124578063095ea7b31461014f57806318160ddd1461018c57806323b872dd146101b75761011f565b3661011f57005b600080fd5b34801561013057600080fd5b50610139610443565b6040516101469190612df3565b60405180910390f35b34801561015b57600080fd5b50610176600480360381019061017191906128e7565b610480565b6040516101839190612dd8565b60405180910390f35b34801561019857600080fd5b506101a161049e565b6040516101ae9190612f95565b60405180910390f35b3480156101c357600080fd5b506101de60048036038101906101d99190612894565b6104af565b6040516101eb9190612dd8565b60405180910390f35b34801561020057600080fd5b5061021b600480360381019061021691906127fa565b610588565b005b34801561022957600080fd5b50610232610678565b60405161023f919061300a565b60405180910390f35b34801561025457600080fd5b5061026f600480360381019061026a9190612970565b610681565b005b34801561027d57600080fd5b50610286610733565b005b34801561029457600080fd5b506102af60048036038101906102aa91906127fa565b6107a5565b6040516102bc9190612f95565b60405180910390f35b3480156102d157600080fd5b506102da6107f6565b005b3480156102e857600080fd5b506102f1610949565b6040516102fe9190612d0a565b60405180910390f35b34801561031357600080fd5b5061031c610972565b005b34801561032a57600080fd5b50610333610a19565b6040516103409190612df3565b60405180910390f35b34801561035557600080fd5b50610370600480360381019061036b9190612a1d565b610a56565b005b34801561037e57600080fd5b50610399600480360381019061039491906128e7565b610b6a565b6040516103a69190612dd8565b60405180910390f35b3480156103bb57600080fd5b506103d660048036038101906103d19190612927565b610b88565b005b3480156103e457600080fd5b506103ed610cb2565b005b3480156103fb57600080fd5b50610404610d2c565b005b34801561041257600080fd5b5061042d60048036038101906104289190612854565b6112c3565b60405161043a9190612f95565b60405180910390f35b60606040518060400160405280600e81526020017f446f756274205468652042656172000000000000000000000000000000000000815250905090565b600061049461048d611394565b848461139c565b6001905092915050565b6000683635c9adc5dea00000905090565b60006104bc848484611567565b61057d846104c8611394565b6105788560405180606001604052806028815260200161374e60289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061052e611394565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611be29092919063ffffffff16565b61139c565b600190509392505050565b610590611394565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461061d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161061490612eb5565b60405180910390fd5b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60006009905090565b610689611394565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610716576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161070d90612eb5565b60405180910390fd5b80601160176101000a81548160ff02191690831515021790555050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610774611394565b73ffffffffffffffffffffffffffffffffffffffff161461079457600080fd5b60004790506107a281611c46565b50565b60006107ef600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d67565b9050919050565b6107fe611394565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461088b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161088290612eb5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61097a611394565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a07576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109fe90612eb5565b60405180910390fd5b683635c9adc5dea00000601281905550565b60606040518060400160405280600181526020017f5800000000000000000000000000000000000000000000000000000000000000815250905090565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610a97611394565b73ffffffffffffffffffffffffffffffffffffffff1614610ab757600080fd5b600c60009054906101000a900460ff1660ff168260ff1611158015610af15750600c60019054906101000a900460ff1660ff168160ff1611155b610b30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2790612f75565b60405180910390fd5b81600c60006101000a81548160ff021916908360ff16021790555080600c60016101000a81548160ff021916908360ff1602179055505050565b6000610b7e610b77611394565b8484611567565b6001905092915050565b610b90611394565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c1490612eb5565b60405180910390fd5b60005b8151811015610cae57600160066000848481518110610c4257610c41613352565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610ca6906132ab565b915050610c20565b5050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610cf3611394565b73ffffffffffffffffffffffffffffffffffffffff1614610d1357600080fd5b6000610d1e306107a5565b9050610d2981611dd5565b50565b610d34611394565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dc1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db890612eb5565b60405180910390fd5b601160149054906101000a900460ff1615610e11576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e0890612f35565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610ea130601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16683635c9adc5dea0000061139c565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610ee757600080fd5b505afa158015610efb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f1f9190612827565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610f8157600080fd5b505afa158015610f95573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fb99190612827565b6040518363ffffffff1660e01b8152600401610fd6929190612d25565b602060405180830381600087803b158015610ff057600080fd5b505af1158015611004573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110289190612827565b601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71947306110b1306107a5565b6000806110bc610949565b426040518863ffffffff1660e01b81526004016110de96959493929190612d77565b6060604051808303818588803b1580156110f757600080fd5b505af115801561110b573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061113091906129ca565b5050506001601160166101000a81548160ff0219169083151502179055506001601160176101000a81548160ff02191690831515021790555061119a6103e861118c6019683635c9adc5dea0000061205d90919063ffffffff16565b61134a90919063ffffffff16565b6012819055506001601160146101000a81548160ff02191690831515021790555060f0426111c891906130cb565b600d81905550601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040161126d929190612d4e565b602060405180830381600087803b15801561128757600080fd5b505af115801561129b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112bf919061299d565b5050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600061138c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506120d8565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561140c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140390612f15565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561147c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147390612e55565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161155a9190612f95565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156115d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ce90612ef5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611647576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161163e90612e15565b60405180910390fd5b6000811161168a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168190612ed5565b60405180910390fd5b6001600a81905550600c60009054906101000a900460ff1660ff16600b819055506116b3610949565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561172157506116f1610949565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611bd257600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156117ca5750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6117d357600080fd5b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561187e5750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156118d45750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156118ec5750601160179054906101000a900460ff165b1561199c5760125481111561190057600080fd5b42600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541061194b57600080fd5b601e4261195891906130cb565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16148015611a475750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611a9d5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611ac4576001600a81905550600c60019054906101000a900460ff1660ff16600b819055505b6000611acf306107a5565b9050601354811115611ae15760135490505b601160159054906101000a900460ff16158015611b4c5750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611b645750601160169054906101000a900460ff165b15611bd057600d544211611bad576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ba490612f55565b60405180910390fd5b611bb681611dd5565b60004790506000811115611bce57611bcd47611c46565b5b505b505b611bdd83838361213b565b505050565b6000838311158290611c2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c219190612df3565b60405180910390fd5b5060008385611c3991906131ac565b9050809150509392505050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611ca96003611c9b600a8661134a90919063ffffffff16565b61205d90919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611cd4573d6000803e3d6000fd5b50600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611d386007611d2a600a8661134a90919063ffffffff16565b61205d90919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611d63573d6000803e3d6000fd5b5050565b6000600854821115611dae576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611da590612e35565b60405180910390fd5b6000611db861214b565b9050611dcd818461134a90919063ffffffff16565b915050919050565b6001601160156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611e0d57611e0c613381565b5b604051908082528060200260200182016040528015611e3b5781602001602082028036833780820191505090505b5090503081600081518110611e5357611e52613352565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611ef557600080fd5b505afa158015611f09573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f2d9190612827565b81600181518110611f4157611f40613352565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611fa830601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461139c565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161200c959493929190612fb0565b600060405180830381600087803b15801561202657600080fd5b505af115801561203a573d6000803e3d6000fd5b50505050506000601160156101000a81548160ff02191690831515021790555050565b60008083141561207057600090506120d2565b6000828461207e9190613152565b905082848261208d9190613121565b146120cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120c490612e95565b60405180910390fd5b809150505b92915050565b6000808311829061211f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121169190612df3565b60405180910390fd5b506000838561212e9190613121565b9050809150509392505050565b612146838383612176565b505050565b6000806000612158612341565b9150915061216f818361134a90919063ffffffff16565b9250505090565b600080600080600080612188876123a3565b9550955095509550955095506121e686600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461240b90919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061227b85600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461245590919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506122c7816124b3565b6122d18483612570565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161232e9190612f95565b60405180910390a3505050505050505050565b600080600060085490506000683635c9adc5dea000009050612377683635c9adc5dea0000060085461134a90919063ffffffff16565b82101561239657600854683635c9adc5dea0000093509350505061239f565b81819350935050505b9091565b60008060008060008060008060006123c08a600a54600b546125aa565b92509250925060006123d061214b565b905060008060006123e38e878787612640565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b600061244d83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611be2565b905092915050565b600080828461246491906130cb565b9050838110156124a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124a090612e75565b60405180910390fd5b8091505092915050565b60006124bd61214b565b905060006124d4828461205d90919063ffffffff16565b905061252881600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461245590919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b6125858260085461240b90919063ffffffff16565b6008819055506125a08160095461245590919063ffffffff16565b6009819055505050565b6000806000806125d660646125c8888a61205d90919063ffffffff16565b61134a90919063ffffffff16565b9050600061260060646125f2888b61205d90919063ffffffff16565b61134a90919063ffffffff16565b905060006126298261261b858c61240b90919063ffffffff16565b61240b90919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080612659858961205d90919063ffffffff16565b90506000612670868961205d90919063ffffffff16565b90506000612687878961205d90919063ffffffff16565b905060006126b0826126a2858761240b90919063ffffffff16565b61240b90919063ffffffff16565b9050838184965096509650505050509450945094915050565b60006126dc6126d78461304a565b613025565b905080838252602082019050828560208602820111156126ff576126fe6133b5565b5b60005b8581101561272f57816127158882612739565b845260208401935060208301925050600181019050612702565b5050509392505050565b600081359050612748816136f1565b92915050565b60008151905061275d816136f1565b92915050565b600082601f830112612778576127776133b0565b5b81356127888482602086016126c9565b91505092915050565b6000813590506127a081613708565b92915050565b6000815190506127b581613708565b92915050565b6000813590506127ca8161371f565b92915050565b6000815190506127df8161371f565b92915050565b6000813590506127f481613736565b92915050565b6000602082840312156128105761280f6133bf565b5b600061281e84828501612739565b91505092915050565b60006020828403121561283d5761283c6133bf565b5b600061284b8482850161274e565b91505092915050565b6000806040838503121561286b5761286a6133bf565b5b600061287985828601612739565b925050602061288a85828601612739565b9150509250929050565b6000806000606084860312156128ad576128ac6133bf565b5b60006128bb86828701612739565b93505060206128cc86828701612739565b92505060406128dd868287016127bb565b9150509250925092565b600080604083850312156128fe576128fd6133bf565b5b600061290c85828601612739565b925050602061291d858286016127bb565b9150509250929050565b60006020828403121561293d5761293c6133bf565b5b600082013567ffffffffffffffff81111561295b5761295a6133ba565b5b61296784828501612763565b91505092915050565b600060208284031215612986576129856133bf565b5b600061299484828501612791565b91505092915050565b6000602082840312156129b3576129b26133bf565b5b60006129c1848285016127a6565b91505092915050565b6000806000606084860312156129e3576129e26133bf565b5b60006129f1868287016127d0565b9350506020612a02868287016127d0565b9250506040612a13868287016127d0565b9150509250925092565b60008060408385031215612a3457612a336133bf565b5b6000612a42858286016127e5565b9250506020612a53858286016127e5565b9150509250929050565b6000612a698383612a75565b60208301905092915050565b612a7e816131e0565b82525050565b612a8d816131e0565b82525050565b6000612a9e82613086565b612aa881856130a9565b9350612ab383613076565b8060005b83811015612ae4578151612acb8882612a5d565b9750612ad68361309c565b925050600181019050612ab7565b5085935050505092915050565b612afa816131f2565b82525050565b612b0981613235565b82525050565b6000612b1a82613091565b612b2481856130ba565b9350612b34818560208601613247565b612b3d816133c4565b840191505092915050565b6000612b556023836130ba565b9150612b60826133d5565b604082019050919050565b6000612b78602a836130ba565b9150612b8382613424565b604082019050919050565b6000612b9b6022836130ba565b9150612ba682613473565b604082019050919050565b6000612bbe601b836130ba565b9150612bc9826134c2565b602082019050919050565b6000612be16021836130ba565b9150612bec826134eb565b604082019050919050565b6000612c046020836130ba565b9150612c0f8261353a565b602082019050919050565b6000612c276029836130ba565b9150612c3282613563565b604082019050919050565b6000612c4a6025836130ba565b9150612c55826135b2565b604082019050919050565b6000612c6d6024836130ba565b9150612c7882613601565b604082019050919050565b6000612c906017836130ba565b9150612c9b82613650565b602082019050919050565b6000612cb36028836130ba565b9150612cbe82613679565b604082019050919050565b6000612cd66014836130ba565b9150612ce1826136c8565b602082019050919050565b612cf58161321e565b82525050565b612d0481613228565b82525050565b6000602082019050612d1f6000830184612a84565b92915050565b6000604082019050612d3a6000830185612a84565b612d476020830184612a84565b9392505050565b6000604082019050612d636000830185612a84565b612d706020830184612cec565b9392505050565b600060c082019050612d8c6000830189612a84565b612d996020830188612cec565b612da66040830187612b00565b612db36060830186612b00565b612dc06080830185612a84565b612dcd60a0830184612cec565b979650505050505050565b6000602082019050612ded6000830184612af1565b92915050565b60006020820190508181036000830152612e0d8184612b0f565b905092915050565b60006020820190508181036000830152612e2e81612b48565b9050919050565b60006020820190508181036000830152612e4e81612b6b565b9050919050565b60006020820190508181036000830152612e6e81612b8e565b9050919050565b60006020820190508181036000830152612e8e81612bb1565b9050919050565b60006020820190508181036000830152612eae81612bd4565b9050919050565b60006020820190508181036000830152612ece81612bf7565b9050919050565b60006020820190508181036000830152612eee81612c1a565b9050919050565b60006020820190508181036000830152612f0e81612c3d565b9050919050565b60006020820190508181036000830152612f2e81612c60565b9050919050565b60006020820190508181036000830152612f4e81612c83565b9050919050565b60006020820190508181036000830152612f6e81612ca6565b9050919050565b60006020820190508181036000830152612f8e81612cc9565b9050919050565b6000602082019050612faa6000830184612cec565b92915050565b600060a082019050612fc56000830188612cec565b612fd26020830187612b00565b8181036040830152612fe48186612a93565b9050612ff36060830185612a84565b6130006080830184612cec565b9695505050505050565b600060208201905061301f6000830184612cfb565b92915050565b600061302f613040565b905061303b828261327a565b919050565b6000604051905090565b600067ffffffffffffffff82111561306557613064613381565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b60006130d68261321e565b91506130e18361321e565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613116576131156132f4565b5b828201905092915050565b600061312c8261321e565b91506131378361321e565b92508261314757613146613323565b5b828204905092915050565b600061315d8261321e565b91506131688361321e565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156131a1576131a06132f4565b5b828202905092915050565b60006131b78261321e565b91506131c28361321e565b9250828210156131d5576131d46132f4565b5b828203905092915050565b60006131eb826131fe565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006132408261321e565b9050919050565b60005b8381101561326557808201518184015260208101905061324a565b83811115613274576000848401525b50505050565b613283826133c4565b810181811067ffffffffffffffff821117156132a2576132a1613381565b5b80604052505050565b60006132b68261321e565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156132e9576132e86132f4565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b7f53656c6c732070726f6869626974656420666f7220746865206669727374203460008201527f206d696e75746573000000000000000000000000000000000000000000000000602082015250565b7f43616e6e6f7420696e6372656173652066656573000000000000000000000000600082015250565b6136fa816131e0565b811461370557600080fd5b50565b613711816131f2565b811461371c57600080fd5b50565b6137288161321e565b811461373357600080fd5b50565b61373f81613228565b811461374a57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220a50230427592742f8f77ee54f53be5c547b83ab9d498837d3ac61b545501ed6b64736f6c63430008070033

Deployed Bytecode

0x6080604052600436106101185760003560e01c8063715018a6116100a0578063a9059cbb11610064578063a9059cbb14610372578063b515566a146103af578063c3c8cd80146103d8578063c9567bf9146103ef578063dd62ed3e146104065761011f565b8063715018a6146102c55780638da5cb5b146102dc578063950406c31461030757806395d89b411461031e578063a769958a146103495761011f565b8063273123b7116100e7578063273123b7146101f4578063313ce5671461021d5780635932ead1146102485780636fc3eaec1461027157806370a08231146102885761011f565b806306fdde0314610124578063095ea7b31461014f57806318160ddd1461018c57806323b872dd146101b75761011f565b3661011f57005b600080fd5b34801561013057600080fd5b50610139610443565b6040516101469190612df3565b60405180910390f35b34801561015b57600080fd5b50610176600480360381019061017191906128e7565b610480565b6040516101839190612dd8565b60405180910390f35b34801561019857600080fd5b506101a161049e565b6040516101ae9190612f95565b60405180910390f35b3480156101c357600080fd5b506101de60048036038101906101d99190612894565b6104af565b6040516101eb9190612dd8565b60405180910390f35b34801561020057600080fd5b5061021b600480360381019061021691906127fa565b610588565b005b34801561022957600080fd5b50610232610678565b60405161023f919061300a565b60405180910390f35b34801561025457600080fd5b5061026f600480360381019061026a9190612970565b610681565b005b34801561027d57600080fd5b50610286610733565b005b34801561029457600080fd5b506102af60048036038101906102aa91906127fa565b6107a5565b6040516102bc9190612f95565b60405180910390f35b3480156102d157600080fd5b506102da6107f6565b005b3480156102e857600080fd5b506102f1610949565b6040516102fe9190612d0a565b60405180910390f35b34801561031357600080fd5b5061031c610972565b005b34801561032a57600080fd5b50610333610a19565b6040516103409190612df3565b60405180910390f35b34801561035557600080fd5b50610370600480360381019061036b9190612a1d565b610a56565b005b34801561037e57600080fd5b50610399600480360381019061039491906128e7565b610b6a565b6040516103a69190612dd8565b60405180910390f35b3480156103bb57600080fd5b506103d660048036038101906103d19190612927565b610b88565b005b3480156103e457600080fd5b506103ed610cb2565b005b3480156103fb57600080fd5b50610404610d2c565b005b34801561041257600080fd5b5061042d60048036038101906104289190612854565b6112c3565b60405161043a9190612f95565b60405180910390f35b60606040518060400160405280600e81526020017f446f756274205468652042656172000000000000000000000000000000000000815250905090565b600061049461048d611394565b848461139c565b6001905092915050565b6000683635c9adc5dea00000905090565b60006104bc848484611567565b61057d846104c8611394565b6105788560405180606001604052806028815260200161374e60289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061052e611394565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611be29092919063ffffffff16565b61139c565b600190509392505050565b610590611394565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461061d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161061490612eb5565b60405180910390fd5b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60006009905090565b610689611394565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610716576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161070d90612eb5565b60405180910390fd5b80601160176101000a81548160ff02191690831515021790555050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610774611394565b73ffffffffffffffffffffffffffffffffffffffff161461079457600080fd5b60004790506107a281611c46565b50565b60006107ef600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d67565b9050919050565b6107fe611394565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461088b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161088290612eb5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61097a611394565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a07576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109fe90612eb5565b60405180910390fd5b683635c9adc5dea00000601281905550565b60606040518060400160405280600181526020017f5800000000000000000000000000000000000000000000000000000000000000815250905090565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610a97611394565b73ffffffffffffffffffffffffffffffffffffffff1614610ab757600080fd5b600c60009054906101000a900460ff1660ff168260ff1611158015610af15750600c60019054906101000a900460ff1660ff168160ff1611155b610b30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2790612f75565b60405180910390fd5b81600c60006101000a81548160ff021916908360ff16021790555080600c60016101000a81548160ff021916908360ff1602179055505050565b6000610b7e610b77611394565b8484611567565b6001905092915050565b610b90611394565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c1490612eb5565b60405180910390fd5b60005b8151811015610cae57600160066000848481518110610c4257610c41613352565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610ca6906132ab565b915050610c20565b5050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610cf3611394565b73ffffffffffffffffffffffffffffffffffffffff1614610d1357600080fd5b6000610d1e306107a5565b9050610d2981611dd5565b50565b610d34611394565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dc1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db890612eb5565b60405180910390fd5b601160149054906101000a900460ff1615610e11576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e0890612f35565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610ea130601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16683635c9adc5dea0000061139c565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610ee757600080fd5b505afa158015610efb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f1f9190612827565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610f8157600080fd5b505afa158015610f95573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fb99190612827565b6040518363ffffffff1660e01b8152600401610fd6929190612d25565b602060405180830381600087803b158015610ff057600080fd5b505af1158015611004573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110289190612827565b601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71947306110b1306107a5565b6000806110bc610949565b426040518863ffffffff1660e01b81526004016110de96959493929190612d77565b6060604051808303818588803b1580156110f757600080fd5b505af115801561110b573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061113091906129ca565b5050506001601160166101000a81548160ff0219169083151502179055506001601160176101000a81548160ff02191690831515021790555061119a6103e861118c6019683635c9adc5dea0000061205d90919063ffffffff16565b61134a90919063ffffffff16565b6012819055506001601160146101000a81548160ff02191690831515021790555060f0426111c891906130cb565b600d81905550601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040161126d929190612d4e565b602060405180830381600087803b15801561128757600080fd5b505af115801561129b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112bf919061299d565b5050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600061138c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506120d8565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561140c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140390612f15565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561147c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147390612e55565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161155a9190612f95565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156115d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ce90612ef5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611647576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161163e90612e15565b60405180910390fd5b6000811161168a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168190612ed5565b60405180910390fd5b6001600a81905550600c60009054906101000a900460ff1660ff16600b819055506116b3610949565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561172157506116f1610949565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611bd257600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156117ca5750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6117d357600080fd5b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561187e5750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156118d45750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156118ec5750601160179054906101000a900460ff165b1561199c5760125481111561190057600080fd5b42600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541061194b57600080fd5b601e4261195891906130cb565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16148015611a475750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611a9d5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611ac4576001600a81905550600c60019054906101000a900460ff1660ff16600b819055505b6000611acf306107a5565b9050601354811115611ae15760135490505b601160159054906101000a900460ff16158015611b4c5750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611b645750601160169054906101000a900460ff165b15611bd057600d544211611bad576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ba490612f55565b60405180910390fd5b611bb681611dd5565b60004790506000811115611bce57611bcd47611c46565b5b505b505b611bdd83838361213b565b505050565b6000838311158290611c2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c219190612df3565b60405180910390fd5b5060008385611c3991906131ac565b9050809150509392505050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611ca96003611c9b600a8661134a90919063ffffffff16565b61205d90919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611cd4573d6000803e3d6000fd5b50600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611d386007611d2a600a8661134a90919063ffffffff16565b61205d90919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611d63573d6000803e3d6000fd5b5050565b6000600854821115611dae576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611da590612e35565b60405180910390fd5b6000611db861214b565b9050611dcd818461134a90919063ffffffff16565b915050919050565b6001601160156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611e0d57611e0c613381565b5b604051908082528060200260200182016040528015611e3b5781602001602082028036833780820191505090505b5090503081600081518110611e5357611e52613352565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611ef557600080fd5b505afa158015611f09573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f2d9190612827565b81600181518110611f4157611f40613352565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611fa830601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461139c565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161200c959493929190612fb0565b600060405180830381600087803b15801561202657600080fd5b505af115801561203a573d6000803e3d6000fd5b50505050506000601160156101000a81548160ff02191690831515021790555050565b60008083141561207057600090506120d2565b6000828461207e9190613152565b905082848261208d9190613121565b146120cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120c490612e95565b60405180910390fd5b809150505b92915050565b6000808311829061211f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121169190612df3565b60405180910390fd5b506000838561212e9190613121565b9050809150509392505050565b612146838383612176565b505050565b6000806000612158612341565b9150915061216f818361134a90919063ffffffff16565b9250505090565b600080600080600080612188876123a3565b9550955095509550955095506121e686600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461240b90919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061227b85600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461245590919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506122c7816124b3565b6122d18483612570565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161232e9190612f95565b60405180910390a3505050505050505050565b600080600060085490506000683635c9adc5dea000009050612377683635c9adc5dea0000060085461134a90919063ffffffff16565b82101561239657600854683635c9adc5dea0000093509350505061239f565b81819350935050505b9091565b60008060008060008060008060006123c08a600a54600b546125aa565b92509250925060006123d061214b565b905060008060006123e38e878787612640565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b600061244d83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611be2565b905092915050565b600080828461246491906130cb565b9050838110156124a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124a090612e75565b60405180910390fd5b8091505092915050565b60006124bd61214b565b905060006124d4828461205d90919063ffffffff16565b905061252881600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461245590919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b6125858260085461240b90919063ffffffff16565b6008819055506125a08160095461245590919063ffffffff16565b6009819055505050565b6000806000806125d660646125c8888a61205d90919063ffffffff16565b61134a90919063ffffffff16565b9050600061260060646125f2888b61205d90919063ffffffff16565b61134a90919063ffffffff16565b905060006126298261261b858c61240b90919063ffffffff16565b61240b90919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080612659858961205d90919063ffffffff16565b90506000612670868961205d90919063ffffffff16565b90506000612687878961205d90919063ffffffff16565b905060006126b0826126a2858761240b90919063ffffffff16565b61240b90919063ffffffff16565b9050838184965096509650505050509450945094915050565b60006126dc6126d78461304a565b613025565b905080838252602082019050828560208602820111156126ff576126fe6133b5565b5b60005b8581101561272f57816127158882612739565b845260208401935060208301925050600181019050612702565b5050509392505050565b600081359050612748816136f1565b92915050565b60008151905061275d816136f1565b92915050565b600082601f830112612778576127776133b0565b5b81356127888482602086016126c9565b91505092915050565b6000813590506127a081613708565b92915050565b6000815190506127b581613708565b92915050565b6000813590506127ca8161371f565b92915050565b6000815190506127df8161371f565b92915050565b6000813590506127f481613736565b92915050565b6000602082840312156128105761280f6133bf565b5b600061281e84828501612739565b91505092915050565b60006020828403121561283d5761283c6133bf565b5b600061284b8482850161274e565b91505092915050565b6000806040838503121561286b5761286a6133bf565b5b600061287985828601612739565b925050602061288a85828601612739565b9150509250929050565b6000806000606084860312156128ad576128ac6133bf565b5b60006128bb86828701612739565b93505060206128cc86828701612739565b92505060406128dd868287016127bb565b9150509250925092565b600080604083850312156128fe576128fd6133bf565b5b600061290c85828601612739565b925050602061291d858286016127bb565b9150509250929050565b60006020828403121561293d5761293c6133bf565b5b600082013567ffffffffffffffff81111561295b5761295a6133ba565b5b61296784828501612763565b91505092915050565b600060208284031215612986576129856133bf565b5b600061299484828501612791565b91505092915050565b6000602082840312156129b3576129b26133bf565b5b60006129c1848285016127a6565b91505092915050565b6000806000606084860312156129e3576129e26133bf565b5b60006129f1868287016127d0565b9350506020612a02868287016127d0565b9250506040612a13868287016127d0565b9150509250925092565b60008060408385031215612a3457612a336133bf565b5b6000612a42858286016127e5565b9250506020612a53858286016127e5565b9150509250929050565b6000612a698383612a75565b60208301905092915050565b612a7e816131e0565b82525050565b612a8d816131e0565b82525050565b6000612a9e82613086565b612aa881856130a9565b9350612ab383613076565b8060005b83811015612ae4578151612acb8882612a5d565b9750612ad68361309c565b925050600181019050612ab7565b5085935050505092915050565b612afa816131f2565b82525050565b612b0981613235565b82525050565b6000612b1a82613091565b612b2481856130ba565b9350612b34818560208601613247565b612b3d816133c4565b840191505092915050565b6000612b556023836130ba565b9150612b60826133d5565b604082019050919050565b6000612b78602a836130ba565b9150612b8382613424565b604082019050919050565b6000612b9b6022836130ba565b9150612ba682613473565b604082019050919050565b6000612bbe601b836130ba565b9150612bc9826134c2565b602082019050919050565b6000612be16021836130ba565b9150612bec826134eb565b604082019050919050565b6000612c046020836130ba565b9150612c0f8261353a565b602082019050919050565b6000612c276029836130ba565b9150612c3282613563565b604082019050919050565b6000612c4a6025836130ba565b9150612c55826135b2565b604082019050919050565b6000612c6d6024836130ba565b9150612c7882613601565b604082019050919050565b6000612c906017836130ba565b9150612c9b82613650565b602082019050919050565b6000612cb36028836130ba565b9150612cbe82613679565b604082019050919050565b6000612cd66014836130ba565b9150612ce1826136c8565b602082019050919050565b612cf58161321e565b82525050565b612d0481613228565b82525050565b6000602082019050612d1f6000830184612a84565b92915050565b6000604082019050612d3a6000830185612a84565b612d476020830184612a84565b9392505050565b6000604082019050612d636000830185612a84565b612d706020830184612cec565b9392505050565b600060c082019050612d8c6000830189612a84565b612d996020830188612cec565b612da66040830187612b00565b612db36060830186612b00565b612dc06080830185612a84565b612dcd60a0830184612cec565b979650505050505050565b6000602082019050612ded6000830184612af1565b92915050565b60006020820190508181036000830152612e0d8184612b0f565b905092915050565b60006020820190508181036000830152612e2e81612b48565b9050919050565b60006020820190508181036000830152612e4e81612b6b565b9050919050565b60006020820190508181036000830152612e6e81612b8e565b9050919050565b60006020820190508181036000830152612e8e81612bb1565b9050919050565b60006020820190508181036000830152612eae81612bd4565b9050919050565b60006020820190508181036000830152612ece81612bf7565b9050919050565b60006020820190508181036000830152612eee81612c1a565b9050919050565b60006020820190508181036000830152612f0e81612c3d565b9050919050565b60006020820190508181036000830152612f2e81612c60565b9050919050565b60006020820190508181036000830152612f4e81612c83565b9050919050565b60006020820190508181036000830152612f6e81612ca6565b9050919050565b60006020820190508181036000830152612f8e81612cc9565b9050919050565b6000602082019050612faa6000830184612cec565b92915050565b600060a082019050612fc56000830188612cec565b612fd26020830187612b00565b8181036040830152612fe48186612a93565b9050612ff36060830185612a84565b6130006080830184612cec565b9695505050505050565b600060208201905061301f6000830184612cfb565b92915050565b600061302f613040565b905061303b828261327a565b919050565b6000604051905090565b600067ffffffffffffffff82111561306557613064613381565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b60006130d68261321e565b91506130e18361321e565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613116576131156132f4565b5b828201905092915050565b600061312c8261321e565b91506131378361321e565b92508261314757613146613323565b5b828204905092915050565b600061315d8261321e565b91506131688361321e565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156131a1576131a06132f4565b5b828202905092915050565b60006131b78261321e565b91506131c28361321e565b9250828210156131d5576131d46132f4565b5b828203905092915050565b60006131eb826131fe565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006132408261321e565b9050919050565b60005b8381101561326557808201518184015260208101905061324a565b83811115613274576000848401525b50505050565b613283826133c4565b810181811067ffffffffffffffff821117156132a2576132a1613381565b5b80604052505050565b60006132b68261321e565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156132e9576132e86132f4565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b7f53656c6c732070726f6869626974656420666f7220746865206669727374203460008201527f206d696e75746573000000000000000000000000000000000000000000000000602082015250565b7f43616e6e6f7420696e6372656173652066656573000000000000000000000000600082015250565b6136fa816131e0565b811461370557600080fd5b50565b613711816131f2565b811461371c57600080fd5b50565b6137288161321e565b811461373357600080fd5b50565b61373f81613228565b811461374a57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220a50230427592742f8f77ee54f53be5c547b83ab9d498837d3ac61b545501ed6b64736f6c63430008070033

Deployed Bytecode Sourcemap

3662:11328:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5873:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6725:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6150:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6894:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11606:88;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6059:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7215:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12983:194;;;;;;;;;;;;;:::i;:::-;;6253:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2741:148;;;;;;;;;;;;;:::i;:::-;;2527:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14614:99;;;;;;;;;;;;;:::i;:::-;;5964:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7330:242;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6399:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11430:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12776:195;;;;;;;;;;;;;:::i;:::-;;10549:869;;;;;;;;;;;;;:::i;:::-;;6574:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5873:83;5910:13;5943:5;;;;;;;;;;;;;;;;;5936:12;;5873:83;:::o;6725:161::-;6800:4;6817:39;6826:12;:10;:12::i;:::-;6840:7;6849:6;6817:8;:39::i;:::-;6874:4;6867:11;;6725:161;;;;:::o;6150:95::-;6203:7;4167:18;6223:14;;6150:95;:::o;6894:313::-;6992:4;7009:36;7019:6;7027:9;7038:6;7009:9;:36::i;:::-;7056:121;7065:6;7073:12;:10;:12::i;:::-;7087:89;7125:6;7087:89;;;;;;;;;;;;;;;;;:11;:19;7099:6;7087:19;;;;;;;;;;;;;;;:33;7107:12;:10;:12::i;:::-;7087:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;7056:8;:121::i;:::-;7195:4;7188:11;;6894:313;;;;;:::o;11606:88::-;2664:12;:10;:12::i;:::-;2654:22;;:6;;;;;;;;;;:22;;;2646:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11681:5:::1;11666:4;:12;11671:6;11666:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;11606:88:::0;:::o;6059:83::-;6100:5;4670:1;6118:16;;6059:83;:::o;7215:103::-;2664:12;:10;:12::i;:::-;2654:22;;:6;;;;;;;;;;:22;;;2646:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;7305:5:::1;7287:15;;:23;;;;;;;;;;;;;;;;;;7215:103:::0;:::o;12983:194::-;13049:15;;;;;;;;;;;13033:31;;:12;:10;:12::i;:::-;:31;;;13025:40;;;;;;13076:26;13105:21;13076:50;;13137:32;13150:18;13137:12;:32::i;:::-;13014:163;12983:194::o;6253:138::-;6319:7;6346:37;6366:7;:16;6374:7;6366:16;;;;;;;;;;;;;;;;6346:19;:37::i;:::-;6339:44;;6253:138;;;:::o;2741:148::-;2664:12;:10;:12::i;:::-;2654:22;;:6;;;;;;;;;;:22;;;2646:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2848:1:::1;2811:40;;2832:6;::::0;::::1;;;;;;;;2811:40;;;;;;;;;;;;2879:1;2862:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2741:148::o:0;2527:79::-;2565:7;2592:6;;;;;;;;;;;2585:13;;2527:79;:::o;14614:99::-;2664:12;:10;:12::i;:::-;2654:22;;:6;;;;;;;;;;:22;;;2646:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4167:18:::1;14683:12;:22;;;;14614:99::o:0;5964:87::-;6003:13;6036:7;;;;;;;;;;;;;;;;;6029:14;;5964:87;:::o;7330:242::-;7429:15;;;;;;;;;;;7413:31;;:12;:10;:12::i;:::-;:31;;;7405:40;;;;;;7473:4;;;;;;;;;;;7464:13;;:5;:13;;;;:30;;;;;7490:4;;;;;;;;;;;7481:13;;:5;:13;;;;7464:30;7456:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;7536:5;7529:4;;:12;;;;;;;;;;;;;;;;;;7559:5;7552:4;;:12;;;;;;;;;;;;;;;;;;7330:242;;:::o;6399:167::-;6477:4;6494:42;6504:12;:10;:12::i;:::-;6518:9;6529:6;6494:9;:42::i;:::-;6554:4;6547:11;;6399:167;;;;:::o;11430:164::-;2664:12;:10;:12::i;:::-;2654:22;;:6;;;;;;;;;;:22;;;2646:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11504:6:::1;11499:88;11520:5;:12;11516:1;:16;11499:88;;;11571:4;11554;:14;11559:5;11565:1;11559:8;;;;;;;;:::i;:::-;;;;;;;;11554:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;11534:3;;;;;:::i;:::-;;;;11499:88;;;;11430:164:::0;:::o;12776:195::-;12842:15;;;;;;;;;;;12826:31;;:12;:10;:12::i;:::-;:31;;;12818:40;;;;;;12869:23;12895:24;12913:4;12895:9;:24::i;:::-;12869:50;;12930:33;12947:15;12930:16;:33::i;:::-;12807:164;12776:195::o;10549:869::-;2664:12;:10;:12::i;:::-;2654:22;;:6;;;;;;;;;;:22;;;2646:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10613:11:::1;;;;;;;;;;;10612:12;10604:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;10662:35;10719:42;10662:100;;10791:16;10773:15;;:34;;;;;;;;;;;;;;;;;;10818:58;10835:4;10850:15;;;;;;;;;;;4167:18;10818:8;:58::i;:::-;10921:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10903:56;;;10968:4;10975:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10903:96;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10887:13;;:112;;;;;;;;;;;;;;;;;;11010:15;;;;;;;;;;;:31;;;11049:21;11080:4;11086:24;11104:4;11086:9;:24::i;:::-;11111:1;11113::::0;11115:7:::1;:5;:7::i;:::-;11123:15;11010:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;11164:4;11150:11;;:18;;;;;;;;;;;;;;;;;;11197:4;11179:15;;:22;;;;;;;;;;;;;;;;;;11227:25;11247:4;11227:15;11239:2;4167:18;11227:11;;:15;;;;:::i;:::-;:19;;:25;;;;:::i;:::-;11212:12;:40;;;;11277:4;11263:11;;:18;;;;;;;;;;;;;;;;;;11318:9;11299:15;:29;;;;:::i;:::-;11292:4;:36;;;;11346:13;;;;;;;;;;;11339:29;;;11377:15;;;;;;;;;;;11395:14;11339:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;10593:825;10549:869::o:0;6574:143::-;6655:7;6682:11;:18;6694:5;6682:18;;;;;;;;;;;;;;;:27;6701:7;6682:27;;;;;;;;;;;;;;;;6675:34;;6574:143;;;;:::o;1834:132::-;1892:7;1919:39;1923:1;1926;1919:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1912:46;;1834:132;;;;:::o;245:98::-;298:7;325:10;318:17;;245:98;:::o;7842:335::-;7952:1;7935:19;;:5;:19;;;;7927:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8033:1;8014:21;;:7;:21;;;;8006:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8115:6;8085:11;:18;8097:5;8085:18;;;;;;;;;;;;;;;:27;8104:7;8085:27;;;;;;;;;;;;;;;:36;;;;8153:7;8137:32;;8146:5;8137:32;;;8162:6;8137:32;;;;;;:::i;:::-;;;;;;;;7842:335;;;:::o;8185:1675::-;8289:1;8273:18;;:4;:18;;;;8265:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8366:1;8352:16;;:2;:16;;;;8344:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8436:1;8427:6;:10;8419:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8506:1;8494:9;:13;;;;8530:4;;;;;;;;;;;8518:16;;:9;:16;;;;8557:7;:5;:7::i;:::-;8549:15;;:4;:15;;;;:32;;;;;8574:7;:5;:7::i;:::-;8568:13;;:2;:13;;;;8549:32;8545:1263;;;8607:4;:10;8612:4;8607:10;;;;;;;;;;;;;;;;;;;;;;;;;8606:11;:24;;;;;8622:4;:8;8627:2;8622:8;;;;;;;;;;;;;;;;;;;;;;;;;8621:9;8606:24;8598:33;;;;;;8658:13;;;;;;;;;;;8650:21;;:4;:21;;;:55;;;;;8689:15;;;;;;;;;;;8675:30;;:2;:30;;;;8650:55;:83;;;;;8711:18;:22;8730:2;8711:22;;;;;;;;;;;;;;;;;;;;;;;;;8709:24;8650:83;:102;;;;;8737:15;;;;;;;;;;;8650:102;8646:325;;;8820:12;;8810:6;:22;;8802:31;;;;;;8875:15;8860:8;:12;8869:2;8860:12;;;;;;;;;;;;;;;;:30;8852:39;;;;;;8944:10;8925:15;:30;;;;:::i;:::-;8910:8;:12;8919:2;8910:12;;;;;;;;;;;;;;;:45;;;;8646:325;9023:13;;;;;;;;;;;9017:19;;:2;:19;;;:55;;;;;9056:15;;;;;;;;;;;9040:32;;:4;:32;;;;9017:55;:85;;;;;9078:18;:24;9097:4;9078:24;;;;;;;;;;;;;;;;;;;;;;;;;9076:26;9017:85;9013:174;;;9135:1;9123:9;:13;;;;9167:4;;;;;;;;;;;9155:16;;:9;:16;;;;9013:174;9201:28;9232:24;9250:4;9232:9;:24::i;:::-;9201:55;;9297:16;;9274:20;:39;9271:100;;;9355:16;;9332:39;;9271:100;9391:6;;;;;;;;;;;9390:7;:32;;;;;9409:13;;;;;;;;;;;9401:21;;:4;:21;;;;9390:32;:47;;;;;9426:11;;;;;;;;;;;9390:47;9386:411;;;9484:4;;9466:15;:22;9458:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;9551:38;9568:20;9551:16;:38::i;:::-;9608:26;9637:21;9608:50;;9701:1;9680:18;:22;9677:105;;;9727:35;9740:21;9727:12;:35::i;:::-;9677:105;9439:358;9386:411;8583:1225;8545:1263;9822:30;9837:4;9842:2;9845:6;9822:14;:30::i;:::-;8185:1675;;;:::o;1382:190::-;1468:7;1501:1;1496;:6;;1504:12;1488:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1528:9;1544:1;1540;:5;;;;:::i;:::-;1528:17;;1563:1;1556:8;;;1382:190;;;;;:::o;10367:170::-;10424:15;;;;;;;;;;;:24;;:47;10449:21;10468:1;10449:14;10460:2;10449:6;:10;;:14;;;;:::i;:::-;:18;;:21;;;;:::i;:::-;10424:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10482:15;;;;;;;;;;;:24;;:47;10507:21;10526:1;10507:14;10518:2;10507:6;:10;;:14;;;;:::i;:::-;:18;;:21;;;;:::i;:::-;10482:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10367:170;:::o;7580:254::-;7647:7;7686;;7675;:18;;7667:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;7751:19;7774:10;:8;:10::i;:::-;7751:33;;7802:24;7814:11;7802:7;:11;;:24;;;;:::i;:::-;7795:31;;;7580:254;;;:::o;9868:483::-;5110:4;5101:6;;:13;;;;;;;;;;;;;;;;;;9946:21:::1;9984:1;9970:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9946:40;;10015:4;9997;10002:1;9997:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;10041:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10031:4;10036:1;10031:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;10074:62;10091:4;10106:15;;;;;;;;;;;10124:11;10074:8;:62::i;:::-;10147:15;;;;;;;;;;;:66;;;10228:11;10254:1;10270:4;10297;10317:15;10147:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9935:416;5146:5:::0;5137:6;;:14;;;;;;;;;;;;;;;;;;9868:483;:::o;1580:246::-;1638:7;1667:1;1662;:6;1658:47;;;1692:1;1685:8;;;;1658:47;1715:9;1731:1;1727;:5;;;;:::i;:::-;1715:17;;1760:1;1755;1751;:5;;;;:::i;:::-;:10;1743:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1817:1;1810:8;;;1580:246;;;;;:::o;1974:189::-;2060:7;2092:1;2088;:5;2095:12;2080:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2119:9;2135:1;2131;:5;;;;:::i;:::-;2119:17;;2154:1;2147:8;;;1974:189;;;;;:::o;11710:146::-;11804:44;11822:6;11830:9;11841:6;11804:17;:44::i;:::-;11710:146;;;:::o;14443:163::-;14484:7;14505:15;14522;14541:19;:17;:19::i;:::-;14504:56;;;;14578:20;14590:7;14578;:11;;:20;;;;:::i;:::-;14571:27;;;;14443:163;:::o;11864:488::-;11963:15;11980:23;12005:12;12019:23;12044:12;12058:13;12075:19;12086:7;12075:10;:19::i;:::-;11962:132;;;;;;;;;;;;12123:28;12143:7;12123;:15;12131:6;12123:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;12105:7;:15;12113:6;12105:15;;;;;;;;;;;;;;;:46;;;;12183:39;12206:15;12183:7;:18;12191:9;12183:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;12162:7;:18;12170:9;12162:18;;;;;;;;;;;;;;;:60;;;;12234:16;12244:5;12234:9;:16::i;:::-;12261:23;12273:4;12279;12261:11;:23::i;:::-;12317:9;12300:44;;12309:6;12300:44;;;12328:15;12300:44;;;;;;:::i;:::-;;;;;;;;11951:401;;;;;;11864:488;;;:::o;14725:262::-;14775:7;14784;14804:15;14822:7;;14804:25;;14840:15;4167:18;14840:25;;14896:20;4167:18;14896:7;;:11;;:20;;;;:::i;:::-;14886:7;:30;14882:61;;;14926:7;;4167:18;14918:25;;;;;;;;14882:61;14962:7;14971;14954:25;;;;;;14725:262;;;:::o;13191:471::-;13250:7;13259;13268;13277;13286;13295;13316:23;13341:12;13355:13;13372:42;13384:7;13393:9;;13404;;13372:11;:42::i;:::-;13315:99;;;;;;13425:19;13448:10;:8;:10::i;:::-;13425:33;;13470:15;13487:23;13512:12;13528:46;13540:7;13549:4;13555:5;13562:11;13528;:46::i;:::-;13469:105;;;;;;13593:7;13602:15;13619:4;13625:15;13642:4;13648:5;13585:69;;;;;;;;;;;;;;;;;;;13191:471;;;;;;;:::o;1238:136::-;1296:7;1323:43;1327:1;1330;1323:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1316:50;;1238:136;;;;:::o;1051:179::-;1109:7;1129:9;1145:1;1141;:5;;;;:::i;:::-;1129:17;;1170:1;1165;:6;;1157:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1221:1;1214:8;;;1051:179;;;;:::o;12360:212::-;12413:19;12436:10;:8;:10::i;:::-;12413:33;;12457:13;12473:22;12483:11;12473:5;:9;;:22;;;;:::i;:::-;12457:38;;12531:33;12558:5;12531:7;:22;12547:4;12531:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;12506:7;:22;12522:4;12506:22;;;;;;;;;;;;;;;:58;;;;12402:170;;12360:212;:::o;12580:147::-;12658:17;12670:4;12658:7;;:11;;:17;;;;:::i;:::-;12648:7;:27;;;;12699:20;12714:4;12699:10;;:14;;:20;;;;:::i;:::-;12686:10;:33;;;;12580:147;;:::o;13670:351::-;13763:7;13772;13781;13801:12;13816:28;13840:3;13816:19;13828:6;13816:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;13801:43;;13855:13;13871:29;13896:3;13871:20;13883:7;13871;:11;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;13855:45;;13911:23;13937:28;13959:5;13937:17;13949:4;13937:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;13911:54;;13984:15;14001:4;14007:5;13976:37;;;;;;;;;13670:351;;;;;;;:::o;14029:409::-;14139:7;14148;14157;14177:15;14195:24;14207:11;14195:7;:11;;:24;;;;:::i;:::-;14177:42;;14230:12;14245:21;14254:11;14245:4;:8;;:21;;;;:::i;:::-;14230:36;;14277:13;14293:22;14303:11;14293:5;:9;;:22;;;;:::i;:::-;14277:38;;14326:23;14352:28;14374:5;14352:17;14364:4;14352:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;14326:54;;14399:7;14408:15;14425:4;14391:39;;;;;;;;;;14029:409;;;;;;;;:::o;24:722:1:-;120:5;145:81;161:64;218:6;161:64;:::i;:::-;145:81;:::i;:::-;136:90;;246:5;275:6;268:5;261:21;309:4;302:5;298:16;291:23;;335:6;385:3;377:4;369:6;365:17;360:3;356:27;353:36;350:143;;;404:79;;:::i;:::-;350:143;517:1;502:238;527:6;524:1;521:13;502:238;;;595:3;624:37;657:3;645:10;624:37;:::i;:::-;619:3;612:50;691:4;686:3;682:14;675:21;;725:4;720:3;716:14;709:21;;562:178;549:1;546;542:9;537:14;;502:238;;;506:14;126:620;;24:722;;;;;:::o;752:139::-;798:5;836:6;823:20;814:29;;852:33;879:5;852:33;:::i;:::-;752:139;;;;:::o;897:143::-;954:5;985:6;979:13;970:22;;1001:33;1028:5;1001:33;:::i;:::-;897:143;;;;:::o;1063:370::-;1134:5;1183:3;1176:4;1168:6;1164:17;1160:27;1150:122;;1191:79;;:::i;:::-;1150:122;1308:6;1295:20;1333:94;1423:3;1415:6;1408:4;1400:6;1396:17;1333:94;:::i;:::-;1324:103;;1140:293;1063:370;;;;:::o;1439:133::-;1482:5;1520:6;1507:20;1498:29;;1536:30;1560:5;1536:30;:::i;:::-;1439:133;;;;:::o;1578:137::-;1632:5;1663:6;1657:13;1648:22;;1679:30;1703:5;1679:30;:::i;:::-;1578:137;;;;:::o;1721:139::-;1767:5;1805:6;1792:20;1783:29;;1821:33;1848:5;1821:33;:::i;:::-;1721:139;;;;:::o;1866:143::-;1923:5;1954:6;1948:13;1939:22;;1970:33;1997:5;1970:33;:::i;:::-;1866:143;;;;:::o;2015:135::-;2059:5;2097:6;2084:20;2075:29;;2113:31;2138:5;2113:31;:::i;:::-;2015:135;;;;:::o;2156:329::-;2215:6;2264:2;2252:9;2243:7;2239:23;2235:32;2232:119;;;2270:79;;:::i;:::-;2232:119;2390:1;2415:53;2460:7;2451:6;2440:9;2436:22;2415:53;:::i;:::-;2405:63;;2361:117;2156:329;;;;:::o;2491:351::-;2561:6;2610:2;2598:9;2589:7;2585:23;2581:32;2578:119;;;2616:79;;:::i;:::-;2578:119;2736:1;2761:64;2817:7;2808:6;2797:9;2793:22;2761:64;:::i;:::-;2751:74;;2707:128;2491:351;;;;:::o;2848:474::-;2916:6;2924;2973:2;2961:9;2952:7;2948:23;2944:32;2941:119;;;2979:79;;:::i;:::-;2941:119;3099:1;3124:53;3169:7;3160:6;3149:9;3145:22;3124:53;:::i;:::-;3114:63;;3070:117;3226:2;3252:53;3297:7;3288:6;3277:9;3273:22;3252:53;:::i;:::-;3242:63;;3197:118;2848:474;;;;;:::o;3328:619::-;3405:6;3413;3421;3470:2;3458:9;3449:7;3445:23;3441:32;3438:119;;;3476:79;;:::i;:::-;3438:119;3596:1;3621:53;3666:7;3657:6;3646:9;3642:22;3621:53;:::i;:::-;3611:63;;3567:117;3723:2;3749:53;3794:7;3785:6;3774:9;3770:22;3749:53;:::i;:::-;3739:63;;3694:118;3851:2;3877:53;3922:7;3913:6;3902:9;3898:22;3877:53;:::i;:::-;3867:63;;3822:118;3328:619;;;;;:::o;3953:474::-;4021:6;4029;4078:2;4066:9;4057:7;4053:23;4049:32;4046:119;;;4084:79;;:::i;:::-;4046:119;4204:1;4229:53;4274:7;4265:6;4254:9;4250:22;4229:53;:::i;:::-;4219:63;;4175:117;4331:2;4357:53;4402:7;4393:6;4382:9;4378:22;4357:53;:::i;:::-;4347:63;;4302:118;3953:474;;;;;:::o;4433:539::-;4517:6;4566:2;4554:9;4545:7;4541:23;4537:32;4534:119;;;4572:79;;:::i;:::-;4534:119;4720:1;4709:9;4705:17;4692:31;4750:18;4742:6;4739:30;4736:117;;;4772:79;;:::i;:::-;4736:117;4877:78;4947:7;4938:6;4927:9;4923:22;4877:78;:::i;:::-;4867:88;;4663:302;4433:539;;;;:::o;4978:323::-;5034:6;5083:2;5071:9;5062:7;5058:23;5054:32;5051:119;;;5089:79;;:::i;:::-;5051:119;5209:1;5234:50;5276:7;5267:6;5256:9;5252:22;5234:50;:::i;:::-;5224:60;;5180:114;4978:323;;;;:::o;5307:345::-;5374:6;5423:2;5411:9;5402:7;5398:23;5394:32;5391:119;;;5429:79;;:::i;:::-;5391:119;5549:1;5574:61;5627:7;5618:6;5607:9;5603:22;5574:61;:::i;:::-;5564:71;;5520:125;5307:345;;;;:::o;5658:663::-;5746:6;5754;5762;5811:2;5799:9;5790:7;5786:23;5782:32;5779:119;;;5817:79;;:::i;:::-;5779:119;5937:1;5962:64;6018:7;6009:6;5998:9;5994:22;5962:64;:::i;:::-;5952:74;;5908:128;6075:2;6101:64;6157:7;6148:6;6137:9;6133:22;6101:64;:::i;:::-;6091:74;;6046:129;6214:2;6240:64;6296:7;6287:6;6276:9;6272:22;6240:64;:::i;:::-;6230:74;;6185:129;5658:663;;;;;:::o;6327:466::-;6391:6;6399;6448:2;6436:9;6427:7;6423:23;6419:32;6416:119;;;6454:79;;:::i;:::-;6416:119;6574:1;6599:51;6642:7;6633:6;6622:9;6618:22;6599:51;:::i;:::-;6589:61;;6545:115;6699:2;6725:51;6768:7;6759:6;6748:9;6744:22;6725:51;:::i;:::-;6715:61;;6670:116;6327:466;;;;;:::o;6799:179::-;6868:10;6889:46;6931:3;6923:6;6889:46;:::i;:::-;6967:4;6962:3;6958:14;6944:28;;6799:179;;;;:::o;6984:108::-;7061:24;7079:5;7061:24;:::i;:::-;7056:3;7049:37;6984:108;;:::o;7098:118::-;7185:24;7203:5;7185:24;:::i;:::-;7180:3;7173:37;7098:118;;:::o;7252:732::-;7371:3;7400:54;7448:5;7400:54;:::i;:::-;7470:86;7549:6;7544:3;7470:86;:::i;:::-;7463:93;;7580:56;7630:5;7580:56;:::i;:::-;7659:7;7690:1;7675:284;7700:6;7697:1;7694:13;7675:284;;;7776:6;7770:13;7803:63;7862:3;7847:13;7803:63;:::i;:::-;7796:70;;7889:60;7942:6;7889:60;:::i;:::-;7879:70;;7735:224;7722:1;7719;7715:9;7710:14;;7675:284;;;7679:14;7975:3;7968:10;;7376:608;;;7252:732;;;;:::o;7990:109::-;8071:21;8086:5;8071:21;:::i;:::-;8066:3;8059:34;7990:109;;:::o;8105:147::-;8200:45;8239:5;8200:45;:::i;:::-;8195:3;8188:58;8105:147;;:::o;8258:364::-;8346:3;8374:39;8407:5;8374:39;:::i;:::-;8429:71;8493:6;8488:3;8429:71;:::i;:::-;8422:78;;8509:52;8554:6;8549:3;8542:4;8535:5;8531:16;8509:52;:::i;:::-;8586:29;8608:6;8586:29;:::i;:::-;8581:3;8577:39;8570:46;;8350:272;8258:364;;;;:::o;8628:366::-;8770:3;8791:67;8855:2;8850:3;8791:67;:::i;:::-;8784:74;;8867:93;8956:3;8867:93;:::i;:::-;8985:2;8980:3;8976:12;8969:19;;8628:366;;;:::o;9000:::-;9142:3;9163:67;9227:2;9222:3;9163:67;:::i;:::-;9156:74;;9239:93;9328:3;9239:93;:::i;:::-;9357:2;9352:3;9348:12;9341:19;;9000:366;;;:::o;9372:::-;9514:3;9535:67;9599:2;9594:3;9535:67;:::i;:::-;9528:74;;9611:93;9700:3;9611:93;:::i;:::-;9729:2;9724:3;9720:12;9713:19;;9372:366;;;:::o;9744:::-;9886:3;9907:67;9971:2;9966:3;9907:67;:::i;:::-;9900:74;;9983:93;10072:3;9983:93;:::i;:::-;10101:2;10096:3;10092:12;10085:19;;9744:366;;;:::o;10116:::-;10258:3;10279:67;10343:2;10338:3;10279:67;:::i;:::-;10272:74;;10355:93;10444:3;10355:93;:::i;:::-;10473:2;10468:3;10464:12;10457:19;;10116:366;;;:::o;10488:::-;10630:3;10651:67;10715:2;10710:3;10651:67;:::i;:::-;10644:74;;10727:93;10816:3;10727:93;:::i;:::-;10845:2;10840:3;10836:12;10829:19;;10488:366;;;:::o;10860:::-;11002:3;11023:67;11087:2;11082:3;11023:67;:::i;:::-;11016:74;;11099:93;11188:3;11099:93;:::i;:::-;11217:2;11212:3;11208:12;11201:19;;10860:366;;;:::o;11232:::-;11374:3;11395:67;11459:2;11454:3;11395:67;:::i;:::-;11388:74;;11471:93;11560:3;11471:93;:::i;:::-;11589:2;11584:3;11580:12;11573:19;;11232:366;;;:::o;11604:::-;11746:3;11767:67;11831:2;11826:3;11767:67;:::i;:::-;11760:74;;11843:93;11932:3;11843:93;:::i;:::-;11961:2;11956:3;11952:12;11945:19;;11604:366;;;:::o;11976:::-;12118:3;12139:67;12203:2;12198:3;12139:67;:::i;:::-;12132:74;;12215:93;12304:3;12215:93;:::i;:::-;12333:2;12328:3;12324:12;12317:19;;11976:366;;;:::o;12348:::-;12490:3;12511:67;12575:2;12570:3;12511:67;:::i;:::-;12504:74;;12587:93;12676:3;12587:93;:::i;:::-;12705:2;12700:3;12696:12;12689:19;;12348:366;;;:::o;12720:::-;12862:3;12883:67;12947:2;12942:3;12883:67;:::i;:::-;12876:74;;12959:93;13048:3;12959:93;:::i;:::-;13077:2;13072:3;13068:12;13061:19;;12720:366;;;:::o;13092:118::-;13179:24;13197:5;13179:24;:::i;:::-;13174:3;13167:37;13092:118;;:::o;13216:112::-;13299:22;13315:5;13299:22;:::i;:::-;13294:3;13287:35;13216:112;;:::o;13334:222::-;13427:4;13465:2;13454:9;13450:18;13442:26;;13478:71;13546:1;13535:9;13531:17;13522:6;13478:71;:::i;:::-;13334:222;;;;:::o;13562:332::-;13683:4;13721:2;13710:9;13706:18;13698:26;;13734:71;13802:1;13791:9;13787:17;13778:6;13734:71;:::i;:::-;13815:72;13883:2;13872:9;13868:18;13859:6;13815:72;:::i;:::-;13562:332;;;;;:::o;13900:::-;14021:4;14059:2;14048:9;14044:18;14036:26;;14072:71;14140:1;14129:9;14125:17;14116:6;14072:71;:::i;:::-;14153:72;14221:2;14210:9;14206:18;14197:6;14153:72;:::i;:::-;13900:332;;;;;:::o;14238:807::-;14487:4;14525:3;14514:9;14510:19;14502:27;;14539:71;14607:1;14596:9;14592:17;14583:6;14539:71;:::i;:::-;14620:72;14688:2;14677:9;14673:18;14664:6;14620:72;:::i;:::-;14702:80;14778:2;14767:9;14763:18;14754:6;14702:80;:::i;:::-;14792;14868:2;14857:9;14853:18;14844:6;14792:80;:::i;:::-;14882:73;14950:3;14939:9;14935:19;14926:6;14882:73;:::i;:::-;14965;15033:3;15022:9;15018:19;15009:6;14965:73;:::i;:::-;14238:807;;;;;;;;;:::o;15051:210::-;15138:4;15176:2;15165:9;15161:18;15153:26;;15189:65;15251:1;15240:9;15236:17;15227:6;15189:65;:::i;:::-;15051:210;;;;:::o;15267:313::-;15380:4;15418:2;15407:9;15403:18;15395:26;;15467:9;15461:4;15457:20;15453:1;15442:9;15438:17;15431:47;15495:78;15568:4;15559:6;15495:78;:::i;:::-;15487:86;;15267:313;;;;:::o;15586:419::-;15752:4;15790:2;15779:9;15775:18;15767:26;;15839:9;15833:4;15829:20;15825:1;15814:9;15810:17;15803:47;15867:131;15993:4;15867:131;:::i;:::-;15859:139;;15586:419;;;:::o;16011:::-;16177:4;16215:2;16204:9;16200:18;16192:26;;16264:9;16258:4;16254:20;16250:1;16239:9;16235:17;16228:47;16292:131;16418:4;16292:131;:::i;:::-;16284:139;;16011:419;;;:::o;16436:::-;16602:4;16640:2;16629:9;16625:18;16617:26;;16689:9;16683:4;16679:20;16675:1;16664:9;16660:17;16653:47;16717:131;16843:4;16717:131;:::i;:::-;16709:139;;16436:419;;;:::o;16861:::-;17027:4;17065:2;17054:9;17050:18;17042:26;;17114:9;17108:4;17104:20;17100:1;17089:9;17085:17;17078:47;17142:131;17268:4;17142:131;:::i;:::-;17134:139;;16861:419;;;:::o;17286:::-;17452:4;17490:2;17479:9;17475:18;17467:26;;17539:9;17533:4;17529:20;17525:1;17514:9;17510:17;17503:47;17567:131;17693:4;17567:131;:::i;:::-;17559:139;;17286:419;;;:::o;17711:::-;17877:4;17915:2;17904:9;17900:18;17892:26;;17964:9;17958:4;17954:20;17950:1;17939:9;17935:17;17928:47;17992:131;18118:4;17992:131;:::i;:::-;17984:139;;17711:419;;;:::o;18136:::-;18302:4;18340:2;18329:9;18325:18;18317:26;;18389:9;18383:4;18379:20;18375:1;18364:9;18360:17;18353:47;18417:131;18543:4;18417:131;:::i;:::-;18409:139;;18136:419;;;:::o;18561:::-;18727:4;18765:2;18754:9;18750:18;18742:26;;18814:9;18808:4;18804:20;18800:1;18789:9;18785:17;18778:47;18842:131;18968:4;18842:131;:::i;:::-;18834:139;;18561:419;;;:::o;18986:::-;19152:4;19190:2;19179:9;19175:18;19167:26;;19239:9;19233:4;19229:20;19225:1;19214:9;19210:17;19203:47;19267:131;19393:4;19267:131;:::i;:::-;19259:139;;18986:419;;;:::o;19411:::-;19577:4;19615:2;19604:9;19600:18;19592:26;;19664:9;19658:4;19654:20;19650:1;19639:9;19635:17;19628:47;19692:131;19818:4;19692:131;:::i;:::-;19684:139;;19411:419;;;:::o;19836:::-;20002:4;20040:2;20029:9;20025:18;20017:26;;20089:9;20083:4;20079:20;20075:1;20064:9;20060:17;20053:47;20117:131;20243:4;20117:131;:::i;:::-;20109:139;;19836:419;;;:::o;20261:::-;20427:4;20465:2;20454:9;20450:18;20442:26;;20514:9;20508:4;20504:20;20500:1;20489:9;20485:17;20478:47;20542:131;20668:4;20542:131;:::i;:::-;20534:139;;20261:419;;;:::o;20686:222::-;20779:4;20817:2;20806:9;20802:18;20794:26;;20830:71;20898:1;20887:9;20883:17;20874:6;20830:71;:::i;:::-;20686:222;;;;:::o;20914:831::-;21177:4;21215:3;21204:9;21200:19;21192:27;;21229:71;21297:1;21286:9;21282:17;21273:6;21229:71;:::i;:::-;21310:80;21386:2;21375:9;21371:18;21362:6;21310:80;:::i;:::-;21437:9;21431:4;21427:20;21422:2;21411:9;21407:18;21400:48;21465:108;21568:4;21559:6;21465:108;:::i;:::-;21457:116;;21583:72;21651:2;21640:9;21636:18;21627:6;21583:72;:::i;:::-;21665:73;21733:3;21722:9;21718:19;21709:6;21665:73;:::i;:::-;20914:831;;;;;;;;:::o;21751:214::-;21840:4;21878:2;21867:9;21863:18;21855:26;;21891:67;21955:1;21944:9;21940:17;21931:6;21891:67;:::i;:::-;21751:214;;;;:::o;21971:129::-;22005:6;22032:20;;:::i;:::-;22022:30;;22061:33;22089:4;22081:6;22061:33;:::i;:::-;21971:129;;;:::o;22106:75::-;22139:6;22172:2;22166:9;22156:19;;22106:75;:::o;22187:311::-;22264:4;22354:18;22346:6;22343:30;22340:56;;;22376:18;;:::i;:::-;22340:56;22426:4;22418:6;22414:17;22406:25;;22486:4;22480;22476:15;22468:23;;22187:311;;;:::o;22504:132::-;22571:4;22594:3;22586:11;;22624:4;22619:3;22615:14;22607:22;;22504:132;;;:::o;22642:114::-;22709:6;22743:5;22737:12;22727:22;;22642:114;;;:::o;22762:99::-;22814:6;22848:5;22842:12;22832:22;;22762:99;;;:::o;22867:113::-;22937:4;22969;22964:3;22960:14;22952:22;;22867:113;;;:::o;22986:184::-;23085:11;23119:6;23114:3;23107:19;23159:4;23154:3;23150:14;23135:29;;22986:184;;;;:::o;23176:169::-;23260:11;23294:6;23289:3;23282:19;23334:4;23329:3;23325:14;23310:29;;23176:169;;;;:::o;23351:305::-;23391:3;23410:20;23428:1;23410:20;:::i;:::-;23405:25;;23444:20;23462:1;23444:20;:::i;:::-;23439:25;;23598:1;23530:66;23526:74;23523:1;23520:81;23517:107;;;23604:18;;:::i;:::-;23517:107;23648:1;23645;23641:9;23634:16;;23351:305;;;;:::o;23662:185::-;23702:1;23719:20;23737:1;23719:20;:::i;:::-;23714:25;;23753:20;23771:1;23753:20;:::i;:::-;23748:25;;23792:1;23782:35;;23797:18;;:::i;:::-;23782:35;23839:1;23836;23832:9;23827:14;;23662:185;;;;:::o;23853:348::-;23893:7;23916:20;23934:1;23916:20;:::i;:::-;23911:25;;23950:20;23968:1;23950:20;:::i;:::-;23945:25;;24138:1;24070:66;24066:74;24063:1;24060:81;24055:1;24048:9;24041:17;24037:105;24034:131;;;24145:18;;:::i;:::-;24034:131;24193:1;24190;24186:9;24175:20;;23853:348;;;;:::o;24207:191::-;24247:4;24267:20;24285:1;24267:20;:::i;:::-;24262:25;;24301:20;24319:1;24301:20;:::i;:::-;24296:25;;24340:1;24337;24334:8;24331:34;;;24345:18;;:::i;:::-;24331:34;24390:1;24387;24383:9;24375:17;;24207:191;;;;:::o;24404:96::-;24441:7;24470:24;24488:5;24470:24;:::i;:::-;24459:35;;24404:96;;;:::o;24506:90::-;24540:7;24583:5;24576:13;24569:21;24558:32;;24506:90;;;:::o;24602:126::-;24639:7;24679:42;24672:5;24668:54;24657:65;;24602:126;;;:::o;24734:77::-;24771:7;24800:5;24789:16;;24734:77;;;:::o;24817:86::-;24852:7;24892:4;24885:5;24881:16;24870:27;;24817:86;;;:::o;24909:121::-;24967:9;25000:24;25018:5;25000:24;:::i;:::-;24987:37;;24909:121;;;:::o;25036:307::-;25104:1;25114:113;25128:6;25125:1;25122:13;25114:113;;;25213:1;25208:3;25204:11;25198:18;25194:1;25189:3;25185:11;25178:39;25150:2;25147:1;25143:10;25138:15;;25114:113;;;25245:6;25242:1;25239:13;25236:101;;;25325:1;25316:6;25311:3;25307:16;25300:27;25236:101;25085:258;25036:307;;;:::o;25349:281::-;25432:27;25454:4;25432:27;:::i;:::-;25424:6;25420:40;25562:6;25550:10;25547:22;25526:18;25514:10;25511:34;25508:62;25505:88;;;25573:18;;:::i;:::-;25505:88;25613:10;25609:2;25602:22;25392:238;25349:281;;:::o;25636:233::-;25675:3;25698:24;25716:5;25698:24;:::i;:::-;25689:33;;25744:66;25737:5;25734:77;25731:103;;;25814:18;;:::i;:::-;25731:103;25861:1;25854:5;25850:13;25843:20;;25636:233;;;:::o;25875:180::-;25923:77;25920:1;25913:88;26020:4;26017:1;26010:15;26044:4;26041:1;26034:15;26061:180;26109:77;26106:1;26099:88;26206:4;26203:1;26196:15;26230:4;26227:1;26220:15;26247:180;26295:77;26292:1;26285:88;26392:4;26389:1;26382:15;26416:4;26413:1;26406:15;26433:180;26481:77;26478:1;26471:88;26578:4;26575:1;26568:15;26602:4;26599:1;26592:15;26619:117;26728:1;26725;26718:12;26742:117;26851:1;26848;26841:12;26865:117;26974:1;26971;26964:12;26988:117;27097:1;27094;27087:12;27111:102;27152:6;27203:2;27199:7;27194:2;27187:5;27183:14;27179:28;27169:38;;27111:102;;;:::o;27219:222::-;27359:34;27355:1;27347:6;27343:14;27336:58;27428:5;27423:2;27415:6;27411:15;27404:30;27219:222;:::o;27447:229::-;27587:34;27583:1;27575:6;27571:14;27564:58;27656:12;27651:2;27643:6;27639:15;27632:37;27447:229;:::o;27682:221::-;27822:34;27818:1;27810:6;27806:14;27799:58;27891:4;27886:2;27878:6;27874:15;27867:29;27682:221;:::o;27909:177::-;28049:29;28045:1;28037:6;28033:14;28026:53;27909:177;:::o;28092:220::-;28232:34;28228:1;28220:6;28216:14;28209:58;28301:3;28296:2;28288:6;28284:15;28277:28;28092:220;:::o;28318:182::-;28458:34;28454:1;28446:6;28442:14;28435:58;28318:182;:::o;28506:228::-;28646:34;28642:1;28634:6;28630:14;28623:58;28715:11;28710:2;28702:6;28698:15;28691:36;28506:228;:::o;28740:224::-;28880:34;28876:1;28868:6;28864:14;28857:58;28949:7;28944:2;28936:6;28932:15;28925:32;28740:224;:::o;28970:223::-;29110:34;29106:1;29098:6;29094:14;29087:58;29179:6;29174:2;29166:6;29162:15;29155:31;28970:223;:::o;29199:173::-;29339:25;29335:1;29327:6;29323:14;29316:49;29199:173;:::o;29378:227::-;29518:34;29514:1;29506:6;29502:14;29495:58;29587:10;29582:2;29574:6;29570:15;29563:35;29378:227;:::o;29611:170::-;29751:22;29747:1;29739:6;29735:14;29728:46;29611:170;:::o;29787:122::-;29860:24;29878:5;29860:24;:::i;:::-;29853:5;29850:35;29840:63;;29899:1;29896;29889:12;29840:63;29787:122;:::o;29915:116::-;29985:21;30000:5;29985:21;:::i;:::-;29978:5;29975:32;29965:60;;30021:1;30018;30011:12;29965:60;29915:116;:::o;30037:122::-;30110:24;30128:5;30110:24;:::i;:::-;30103:5;30100:35;30090:63;;30149:1;30146;30139:12;30090:63;30037:122;:::o;30165:118::-;30236:22;30252:5;30236:22;:::i;:::-;30229:5;30226:33;30216:61;;30273:1;30270;30263:12;30216:61;30165:118;:::o

Swarm Source

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